1
0
Files
linux/drivers/scsi
Andreas Herrmann 04846f2592 [SCSI] limit recursion when flushing shost->starved_list
Attached is a patch that should limit a possible recursion that can
lead to a stack overflow like follows:

Kernel stack overflow.
CPU:    3    Not tainted
Process zfcperp0.0.d819
(pid: 13897, task: 000000003e0d8cc8, ksp: 000000003499dbb8)
Krnl PSW : 0404000180000000 000000000030f8b2 (get_device+0x12/0x48)
Krnl GPRS: 00000000135a1980 000000000030f758 000000003ed6c1e8 0000000000000005
           0000000000000000 000000000044a780 000000003dbf7000 0000000034e15800
           000000003621c048 070000003499c108 000000003499c1a0 000000003ed6c000
           0000000040895000 00000000408ab630 000000003499c0a0 000000003499c0a0
Krnl Code: a7 fb ff e8 a7 19 00 00 b9 02 00 22 e3 e0 f0 98 00 24 a7 84
Call Trace:
([<000000004089edc2>] scsi_request_fn+0x13e/0x650 [scsi_mod])
 [<00000000002c5ff4>] blk_run_queue+0xd4/0x1a4
 [<000000004089ff8c>] scsi_queue_insert+0x22c/0x2a4 [scsi_mod]
 [<000000004089779a>] scsi_dispatch_cmd+0x8a/0x3d0 [scsi_mod]
 [<000000004089f1ec>] scsi_request_fn+0x568/0x650 [scsi_mod]
...
 [<000000004089f1ec>] scsi_request_fn+0x568/0x650 [scsi_mod]
 [<00000000002c5ff4>] blk_run_queue+0xd4/0x1a4
 [<000000004089ff8c>] scsi_queue_insert+0x22c/0x2a4 [scsi_mod]
 [<000000004089779a>] scsi_dispatch_cmd+0x8a/0x3d0 [scsi_mod]
 [<000000004089f1ec>] scsi_request_fn+0x568/0x650 [scsi_mod]
 [<00000000002c5ff4>] blk_run_queue+0xd4/0x1a4
 [<000000004089fa9e>] scsi_run_host_queues+0x196/0x230 [scsi_mod]
 [<00000000409eba28>] zfcp_erp_thread+0x2638/0x3080 [zfcp]
 [<0000000000107462>] kernel_thread_starter+0x6/0xc
 [<000000000010745c>] kernel_thread_starter+0x0/0xc
<0>Kernel panic - not syncing: Corrupt kernel stack, can't continue.

This stack overflow occurred during tests on s390 using zfcp.
Recursion depth for this panic was 19.

Usually recursion between blk_run_queue and a request_fn is avoided
using QUEUE_FLAG_REENTER. But this does not help if the scsi stack
tries to flush the starved_list of a scsi_host.

Limit recursion depth when flushing the starved_list
of a scsi_host.

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2006-08-19 13:31:53 -07:00
..
2006-07-03 09:41:12 -05:00
2006-08-02 10:53:18 -04:00
2006-07-03 09:41:12 -05:00
2006-07-03 09:41:12 -05:00
2006-01-01 22:21:50 +01:00
2006-01-14 10:55:12 -06:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2006-07-03 09:41:12 -05:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2006-08-04 09:28:43 -04:00
2005-04-16 15:20:36 -07:00
2006-07-03 09:41:12 -05:00
2006-06-30 19:25:36 +02:00
2005-04-16 15:20:36 -07:00
2005-11-09 15:44:09 -05:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2006-07-24 22:47:14 -07:00
2006-08-06 15:59:26 -05:00
2005-11-09 15:48:20 -05:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2006-08-06 15:59:26 -05:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2006-08-06 15:50:50 -05:00
2006-08-06 15:51:12 -05:00
2006-05-20 09:35:20 -05:00
2005-04-16 15:20:36 -07:00
2006-06-25 10:00:58 -07:00
2006-06-25 10:00:58 -07:00
2006-08-06 15:59:26 -05:00
2005-04-16 15:20:36 -07:00
2006-06-26 09:58:18 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2006-07-03 09:41:12 -05:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-11-09 15:48:20 -05:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-05-20 12:53:13 -05:00
2005-05-20 12:53:13 -05:00
2005-05-20 12:53:13 -05:00
2006-07-03 09:41:12 -05:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2006-06-26 09:30:00 -05:00
2005-04-16 15:20:36 -07:00
2006-08-06 15:59:26 -05:00
2005-04-16 15:20:36 -07:00
2006-08-06 15:59:26 -05:00
2006-07-03 09:41:12 -05:00
2006-03-23 07:38:09 -08:00
2005-04-16 15:20:36 -07:00
2006-07-09 11:27:03 -05:00
2006-06-29 11:06:30 -04:00