aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/bus
diff options
context:
space:
mode:
authorValentin Rothberg <valentinrothberg@gmail.com>2015-03-05 09:23:08 -0500
committerIngo Molnar <mingo@kernel.org>2015-03-05 14:53:06 -0500
commitd8bf368d0631d4bc2612d8bf2e4e8e74e620d0cc (patch)
treea4f35064af9e579d5b20ee440c1a14ff390b31c2 /drivers/bus
parent33ca8a53f262b4af40611bea331b8c87d133af72 (diff)
genirq: Remove the deprecated 'IRQF_DISABLED' request_irq() flag entirely
The IRQF_DISABLED flag is a NOOP and has been scheduled for removal since Linux v2.6.36 by commit 6932bf37bed4 ("genirq: Remove IRQF_DISABLED from core code"). According to commit e58aa3d2d0cc ("genirq: Run irq handlers with interrupts disabled"), running IRQ handlers with interrupts enabled can cause stack overflows when the interrupt line of the issuing device is still active. This patch ends the grace period for IRQF_DISABLED (i.e., SA_INTERRUPT in older versions of Linux) and removes the definition and all remaining usages of this flag. There's still a few non-functional references left in the kernel source: - The bigger hunk in Documentation/scsi/ncr53c8xx.txt is removed entirely as IRQF_DISABLED is gone now; the usage in older kernel versions (including the old SA_INTERRUPT flag) should be discouraged. The trouble of using IRQF_SHARED is a general problem and not specific to any driver. - I left the reference in Documentation/PCI/MSI-HOWTO.txt untouched since it has already been removed in linux-next. - All remaining references are changelogs that I suggest to keep. Signed-off-by: Valentin Rothberg <valentinrothberg@gmail.com> Cc: Afzal Mohammed <afzal@ti.com> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Brian Norris <computersforpeace@gmail.com> Cc: Christoph Hellwig <hch@lst.de> Cc: Dan Carpenter <dan.carpenter@oracle.com> Cc: David Woodhouse <dwmw2@infradead.org> Cc: Ewan Milne <emilne@redhat.com> Cc: Eyal Perry <eyalpe@mellanox.com> Cc: Felipe Balbi <balbi@ti.com> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Hannes Reinecke <hare@suse.de> Cc: Hongliang Tao <taohl@lemote.com> Cc: Huacai Chen <chenhc@lemote.com> Cc: Jiri Kosina <jkosina@suse.cz> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Keerthy <j-keerthy@ti.com> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Nishanth Menon <nm@ti.com> Cc: Paul Bolle <pebolle@tiscali.nl> Cc: Peter Ujfalusi <peter.ujfalusi@ti.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Quentin Lambert <lambert.quentin@gmail.com> Cc: Rajendra Nayak <rnayak@ti.com> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Santosh Shilimkar <santosh.shilimkar@ti.com> Cc: Sricharan R <r.sricharan@ti.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Tony Lindgren <tony@atomide.com> Cc: Zhou Wang <wangzhou1@hisilicon.com> Cc: iss_storagedev@hp.com Cc: linux-mips@linux-mips.org Cc: linux-mtd@lists.infradead.org Link: http://lkml.kernel.org/r/1425565425-12604-1-git-send-email-valentinrothberg@gmail.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'drivers/bus')
-rw-r--r--drivers/bus/omap_l3_noc.c4
-rw-r--r--drivers/bus/omap_l3_smx.c10
2 files changed, 6 insertions, 8 deletions
diff --git a/drivers/bus/omap_l3_noc.c b/drivers/bus/omap_l3_noc.c
index 029bc73de001..11f7982cbdb3 100644
--- a/drivers/bus/omap_l3_noc.c
+++ b/drivers/bus/omap_l3_noc.c
@@ -284,7 +284,7 @@ static int omap_l3_probe(struct platform_device *pdev)
284 */ 284 */
285 l3->debug_irq = platform_get_irq(pdev, 0); 285 l3->debug_irq = platform_get_irq(pdev, 0);
286 ret = devm_request_irq(l3->dev, l3->debug_irq, l3_interrupt_handler, 286 ret = devm_request_irq(l3->dev, l3->debug_irq, l3_interrupt_handler,
287 IRQF_DISABLED, "l3-dbg-irq", l3); 287 0x0, "l3-dbg-irq", l3);
288 if (ret) { 288 if (ret) {
289 dev_err(l3->dev, "request_irq failed for %d\n", 289 dev_err(l3->dev, "request_irq failed for %d\n",
290 l3->debug_irq); 290 l3->debug_irq);
@@ -293,7 +293,7 @@ static int omap_l3_probe(struct platform_device *pdev)
293 293
294 l3->app_irq = platform_get_irq(pdev, 1); 294 l3->app_irq = platform_get_irq(pdev, 1);
295 ret = devm_request_irq(l3->dev, l3->app_irq, l3_interrupt_handler, 295 ret = devm_request_irq(l3->dev, l3->app_irq, l3_interrupt_handler,
296 IRQF_DISABLED, "l3-app-irq", l3); 296 0x0, "l3-app-irq", l3);
297 if (ret) 297 if (ret)
298 dev_err(l3->dev, "request_irq failed for %d\n", l3->app_irq); 298 dev_err(l3->dev, "request_irq failed for %d\n", l3->app_irq);
299 299
diff --git a/drivers/bus/omap_l3_smx.c b/drivers/bus/omap_l3_smx.c
index 597fdaee7315..360a5c0a4ee0 100644
--- a/drivers/bus/omap_l3_smx.c
+++ b/drivers/bus/omap_l3_smx.c
@@ -251,18 +251,16 @@ static int omap3_l3_probe(struct platform_device *pdev)
251 } 251 }
252 252
253 l3->debug_irq = platform_get_irq(pdev, 0); 253 l3->debug_irq = platform_get_irq(pdev, 0);
254 ret = request_irq(l3->debug_irq, omap3_l3_app_irq, 254 ret = request_irq(l3->debug_irq, omap3_l3_app_irq, IRQF_TRIGGER_RISING,
255 IRQF_DISABLED | IRQF_TRIGGER_RISING, 255 "l3-debug-irq", l3);
256 "l3-debug-irq", l3);
257 if (ret) { 256 if (ret) {
258 dev_err(&pdev->dev, "couldn't request debug irq\n"); 257 dev_err(&pdev->dev, "couldn't request debug irq\n");
259 goto err1; 258 goto err1;
260 } 259 }
261 260
262 l3->app_irq = platform_get_irq(pdev, 1); 261 l3->app_irq = platform_get_irq(pdev, 1);
263 ret = request_irq(l3->app_irq, omap3_l3_app_irq, 262 ret = request_irq(l3->app_irq, omap3_l3_app_irq, IRQF_TRIGGER_RISING,
264 IRQF_DISABLED | IRQF_TRIGGER_RISING, 263 "l3-app-irq", l3);
265 "l3-app-irq", l3);
266 if (ret) { 264 if (ret) {
267 dev_err(&pdev->dev, "couldn't request app irq\n"); 265 dev_err(&pdev->dev, "couldn't request app irq\n");
268 goto err2; 266 goto err2;