Merge master.kernel.org:/home/rmk/linux-2.6-arm
* master.kernel.org:/home/rmk/linux-2.6-arm: [ARM] 4875/1: Add MODULE_ALIAS to ixp4xx-beeper module [ARM] 4873/1: Fix ITE 8152 interrupt demux [ARM] 4878/1: Add oabi shim for fstatat64
This commit is contained in:
commit
d5f1a21ca0
3 changed files with 28 additions and 3 deletions
|
@ -120,6 +120,7 @@ void it8152_irq_demux(unsigned int irq, struct irq_desc *desc)
|
|||
time, when they all three were 0. */
|
||||
bits_pd = __raw_readl(IT8152_INTC_PDCNIRR);
|
||||
bits_lp = __raw_readl(IT8152_INTC_LPCNIRR);
|
||||
bits_ld = __raw_readl(IT8152_INTC_LDCNIRR);
|
||||
if (!(bits_ld | bits_lp | bits_pd))
|
||||
return;
|
||||
}
|
||||
|
@ -133,14 +134,14 @@ void it8152_irq_demux(unsigned int irq, struct irq_desc *desc)
|
|||
|
||||
bits_lp &= ((1 << IT8152_LP_IRQ_COUNT) - 1);
|
||||
while (bits_lp) {
|
||||
i = __ffs(bits_pd);
|
||||
i = __ffs(bits_lp);
|
||||
it8152_irq(IT8152_LP_IRQ(i));
|
||||
bits_lp &= ~(1 << i);
|
||||
}
|
||||
|
||||
bits_ld &= ((1 << IT8152_LD_IRQ_COUNT) - 1);
|
||||
while (bits_ld) {
|
||||
i = __ffs(bits_pd);
|
||||
i = __ffs(bits_ld);
|
||||
it8152_irq(IT8152_LD_IRQ(i));
|
||||
bits_ld &= ~(1 << i);
|
||||
}
|
||||
|
|
|
@ -336,7 +336,7 @@
|
|||
CALL(sys_mknodat)
|
||||
/* 325 */ CALL(sys_fchownat)
|
||||
CALL(sys_futimesat)
|
||||
CALL(sys_fstatat64)
|
||||
CALL(ABI(sys_fstatat64, sys_oabi_fstatat64))
|
||||
CALL(sys_unlinkat)
|
||||
CALL(sys_renameat)
|
||||
/* 330 */ CALL(sys_linkat)
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
* sys_stat64:
|
||||
* sys_lstat64:
|
||||
* sys_fstat64:
|
||||
* sys_fstatat64:
|
||||
*
|
||||
* struct stat64 has different sizes and some members are shifted
|
||||
* Compatibility wrappers are needed for them and provided below.
|
||||
|
@ -169,6 +170,29 @@ asmlinkage long sys_oabi_fstat64(unsigned long fd,
|
|||
return error;
|
||||
}
|
||||
|
||||
asmlinkage long sys_oabi_fstatat64(int dfd,
|
||||
char __user *filename,
|
||||
struct oldabi_stat64 __user *statbuf,
|
||||
int flag)
|
||||
{
|
||||
struct kstat stat;
|
||||
int error = -EINVAL;
|
||||
|
||||
if ((flag & ~AT_SYMLINK_NOFOLLOW) != 0)
|
||||
goto out;
|
||||
|
||||
if (flag & AT_SYMLINK_NOFOLLOW)
|
||||
error = vfs_lstat_fd(dfd, filename, &stat);
|
||||
else
|
||||
error = vfs_stat_fd(dfd, filename, &stat);
|
||||
|
||||
if (!error)
|
||||
error = cp_oldabi_stat64(&stat, statbuf);
|
||||
|
||||
out:
|
||||
return error;
|
||||
}
|
||||
|
||||
struct oabi_flock64 {
|
||||
short l_type;
|
||||
short l_whence;
|
||||
|
|
Loading…
Reference in a new issue