linux-bl808/arch/mips/include/asm
James Hogan 6ae1756fad
MIPS: Drop spurious __unused in struct compat_flock
MIPS' struct compat_flock doesn't match the 32-bit struct flock, as it
has an extra short __unused before pad[4], which combined with alignment
increases the size to 40 bytes compared with struct flock's 36 bytes.

Since commit 8c6657cb50 ("Switch flock copyin/copyout primitives to
copy_{from,to}_user()"), put_compat_flock() writes the full compat_flock
struct to userland, which results in corruption of the userland word
after the struct flock when running 32-bit userlands on 64-bit kernels.

This was observed to cause a bus error exception when starting Firefox
on Debian 8 (Jessie).

Reported-by: Peter Mamonov <pmamonov@gmail.com>
Signed-off-by: James Hogan <jhogan@kernel.org>
Tested-by: Peter Mamonov <pmamonov@gmail.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: linux-mips@linux-mips.org
Cc: <stable@vger.kernel.org> # 4.13+
Patchwork: https://patchwork.linux-mips.org/patch/18646/
2018-02-20 15:46:44 +00:00
..
dec
emma
fw
ip32
lasat
mach-ar7
mach-ath25
mach-ath79
mach-au1x00
mach-bcm47xx
mach-bcm63xx
mach-bmips
mach-cavium-octeon
mach-cobalt
mach-db1x00
mach-dec
mach-emma2rh
mach-generic
mach-ip22
mach-ip27
mach-ip28
mach-ip32
mach-jazz
mach-jz4740
mach-lantiq
mach-lasat
mach-loongson32
mach-loongson64
mach-malta
mach-netlogic
mach-paravirt
mach-pic32
mach-pistachio
mach-pmcs-msp71xx
mach-pnx833x
mach-ralink
mach-rc32434
mach-rm
mach-sibyte
mach-tx39xx
mach-tx49xx
mach-vr41xx
mach-xilfpga
mips-boards
netlogic
octeon
pci
sgi
sibyte
sn
txx9
vr41xx
xtalk
abi.h
addrspace.h
amon.h
arch_hweight.h
asm-eva.h
asm-offsets.h
asm-prototypes.h
asm.h
asmmacro-32.h
asmmacro-64.h
asmmacro.h
atomic.h
barrier.h
bcache.h
bitops.h
bitrev.h
bmips-spaces.h
bmips.h
bootinfo.h
branch.h
break.h
bug.h
bugs.h
cache.h
cacheflush.h
cacheops.h
cdmm.h
cevt-r4k.h
checksum.h
clock.h
clocksource.h
cmp.h
cmpxchg.h
compat-signal.h
compat.h
compiler.h
cop2.h
cpu-features.h
cpu-info.h
cpu-type.h
cpu.h
cpufeature.h
debug.h
delay.h
device.h
div64.h
dma-coherence.h
dma-direct.h
dma-mapping.h
dma.h
ds1287.h
dsemul.h
dsp.h
edac.h
elf.h
errno.h
eva.h
exec.h
extable.h
fb.h
fixmap.h
floppy.h
fpregdef.h
fpu.h
fpu_emulator.h
ftrace.h
futex.h
gio_device.h
gt64120.h
hardirq.h
hazards.h
highmem.h
hpet.h
hugetlb.h
hw_irq.h
i8259.h
ide.h
idle.h
inst.h
io.h
irq.h
irq_cpu.h
irq_gt641xx.h
irq_regs.h
irqflags.h
isadep.h
jazz.h
jazzdma.h
jump_label.h
Kbuild
kdebug.h
kexec.h
kgdb.h
kmap_types.h
kprobes.h
kvm_host.h
kvm_para.h
linkage.h
llsc.h
local.h
m48t37.h
maar.h
machine.h
mc146818-time.h
mc146818rtc.h
mips-cm.h
mips-cpc.h
mips-cps.h
mips-gic.h
mips-r2-to-r6-emul.h
mips_machine.h
mips_mt.h
mipsmtregs.h
mipsprom.h
mipsregs.h
mmu.h
mmu_context.h
mmzone.h
module.h
msa.h
msc01_ic.h
nile4.h
paccess.h
page.h
pci.h
perf_event.h
pgalloc.h
pgtable-32.h
pgtable-64.h
pgtable-bits.h
pgtable.h
pm-cps.h
pm.h
pmon.h
prefetch.h
processor.h
prom.h
ptrace.h
r4k-timer.h
r4kcache.h
reboot.h
reg.h
regdef.h
rtlx.h
seccomp.h
serial.h
setup.h
sgialib.h
sgiarcs.h
shmparam.h
sigcontext.h
signal.h
sim.h
smp-cps.h
smp-ops.h
smp.h
sni.h
socket.h
sparsemem.h
spinlock.h
spinlock_types.h
spram.h
stackframe.h
stackprotector.h
stacktrace.h
string.h
switch_to.h
syscall.h
termios.h
thread_info.h
time.h
timex.h
tlb.h
tlbdebug.h
tlbex.h
tlbflush.h
tlbmisc.h
topology.h
traps.h
txx9irq.h
txx9pio.h
txx9tmr.h
types.h
uaccess.h
uasm.h
unistd.h
uprobes.h
vdso.h
vga.h
vpe.h
war.h
watch.h
wbflush.h
yamon-dt.h