From: Thomas Gleixner Date: Thu, 17 Mar 2011 19:32:49 +0000 (+0000) Subject: gpio/langwell: Fix broken irq_eoi change. X-Git-Tag: v2.6.39-rc1~417^2~5 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=20e2aa916f6b56e6b1d9e34f4c6e8183d27cb81f;p=pandora-kernel.git gpio/langwell: Fix broken irq_eoi change. commit 0766d20fd (langwell_gpio: modify EOI handling following change of kernel irq subsystem) changes - desc->chip->eoi(irq); + + if (desc->chip->irq_eoi) + desc->chip->irq_eoi(irq_get_irq_data(irq)); + else + dev_warn(pg->chip.dev, "missing EOI handler for irq %d\n", irq); With the following explanation: "Latest kernel has many changes in IRQ subsystem and its interfaces, like adding irq_eoi" for struct irq_chip, this patch will make it support both the new and old interface." This is completely bogus. #1) The changelog does not match the patch at all #2) This driver relies on the assumption that it sits behind an eoi capable interrupt line. If the implementation of the underlying chip changes from eoi to irq_eoi then this driver has to follow that change and not add a total bogosity. #3) Just mechanically changing eoi to irq_eoi without checking the background of that change is sloppy at best. Remove the sillyness and retrieve the interrupt data from irq_desc directly. No need to go through a sparse irq lookup. Reported-by: Stephen Rothwell Signed-off-by: Thomas Gleixner Cc: Feng Tang Cc: Alek Du Cc: Alan Cox Cc: Andrew Morton Signed-off-by: Grant Likely --- Reading git-diff-tree failed