android_kernel_xiaomi_sm7250/arch
Arnd Bergmann 3a843d7cd3 [PATCH] spufs: fix mailbox polling
Handling mailbox interrupts was broken in multiple respects,
the combination of which was hiding the bugs most of the time.

- The ibox interrupt mask was open initially even though there
  are no waiters on a newly created SPU.

- Acknowledging the mailbox interrupt did not work because
  it is level triggered and the mailbox data is never retrieved
  from inside the interrupt handler.

- The interrupt handler delivered interrupts with a disabled
  mask if another interrupt is triggered for the same class
  but a different mask.

- The poll function did not enable the interrupt if it had not
  been enabled, so we might run into the poll timeout if none of
  the other bugs saved us and no signal was delivered.

We probably still have a similar problem with blocking
read/write on mailbox files, but that will result in extra
wakeup in the worst case, not in incorrect behaviour.

Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-01-09 14:53:01 +11:00
..
alpha [PATCH] Alpha: convert to generic irq framework (alpha part) 2006-01-06 08:33:40 -08:00
arm [ARM] Move asm/hardware/clock.h to linux/clk.h 2006-01-07 16:15:52 +00:00
arm26 arch/arm26/nwfpe/fpmodule.c: remove kernel 2.0 #ifdef 2006-01-03 13:42:12 +01:00
cris [PATCH] cris: kgdb: remove double_this() 2006-01-06 08:33:45 -08:00
frv [PATCH] frv: improve signal handling 2006-01-06 08:33:33 -08:00
h8300 [PATCH] sched: disable preempt in idle tasks 2005-11-09 07:56:33 -08:00
i386 x86: remove bogus 'pci=usepirqmask' suggestion when no irq is defined 2006-01-06 08:43:16 -08:00
ia64 [IA64] Fix compile warnings in setup.c 2006-01-05 13:30:52 -08:00
m32r [PATCH] m32r: Remove unnecessary icu_data_t definitions 2006-01-06 08:33:44 -08:00
m68k [PATCH] m68k: convert thread flags to use bit fields 2005-11-13 18:14:14 -08:00
m68knommu [PATCH] m68knommu: enable_irq/disable_irq 2006-01-06 08:33:44 -08:00
mips Relax the rw_verify_area() error checking. 2006-01-04 16:20:40 -08:00
parisc [PARISC] Remove unused variable in signal.c 2005-11-17 16:43:52 -05:00
powerpc [PATCH] spufs: fix mailbox polling 2006-01-09 14:53:01 +11:00
ppc [PATCH] ppc: removed unused variable i from code. 2006-01-09 14:51:37 +11:00
s390 [PATCH] s390: cleanup Kconfig 2006-01-06 08:33:53 -08:00
sh [PATCH] sched: resched and cpu_idle rework 2005-11-09 07:56:33 -08:00
sh64 [PATCH] sched: resched and cpu_idle rework 2005-11-09 07:56:33 -08:00
sparc [SPARC]: Use STABS_DEBUG and DWARF_DEBUG macros in vmlinux.lds.S 2005-12-28 13:22:54 -08:00
sparc64 [SPARC]: Use STABS_DEBUG and DWARF_DEBUG macros in vmlinux.lds.S 2005-12-28 13:22:54 -08:00
um [PATCH] uml: free network IRQ correctly 2006-01-06 08:33:48 -08:00
v850 [PATCH] v850: use generic hardirq code 2005-11-15 08:59:20 -08:00
x86_64 Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild 2006-01-06 15:23:56 -08:00
xtensa Merge master.kernel.org:/home/rmk/linux-2.6-drvmodel 2005-11-11 09:24:26 -08:00