Re: [PATCH] cciss: add 30 second initial timeout wait on controller reset

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 03/15/2010 03:52 PM, James Bottomley wrote:
> On Mon, 2010-03-15 at 15:30 +0100, Tomas Henzl wrote:
>   
>> On 03/15/2010 02:25 PM, James Bottomley wrote:
>>     
>>> On Mon, 2010-03-15 at 14:13 +0100, Tomas Henzl wrote:
>>>   
>>>       
>>>> It looks like the patch - cciss: remove 30 second initial timeout on controller reset
>>>> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5e18cfd04feca78cc08a6b8b71a60a610de81eaa
>>>> has caused a regression. 
>>>> During kdump a box with an 5i controller freezes.
>>>> The HP Smart Array 5i Controller probably needs some more time 
>>>> of inactivity after reset.
>>>> To get rid of it we can revert the above mentioned patch or use
>>>> the patch below which adds an additional timeout only for this 
>>>> one controller (HP Smart Array 5i). I haven't seen this with other
>>>> cciss controllers.
>>>>
>>>> cciss: add 30 second initial timeout wait on controller reset
>>>>
>>>> Signed-off-by: Tomas Henzl <thenzl@xxxxxxxxxx>
>>>>
>>>> diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
>>>> index 9e3af30..34ec2c7 100644
>>>> --- a/drivers/block/cciss.c
>>>> +++ b/drivers/block/cciss.c
>>>> @@ -4172,9 +4172,13 @@ static int __devinit cciss_init_one(struct pci_dev *pdev,
>>>>  		if (cciss_hard_reset_controller(pdev) || cciss_reset_msi(pdev))
>>>>  			return -ENODEV;
>>>>  
>>>> -		/* Now try to get the controller to respond to a no-op. Some
>>>> -		   devices (notably the HP Smart Array 5i Controller) need
>>>> -		   up to 30 seconds to respond. */
>>>> +		/* The HP Smart Array 5i Controller needs
>>>> +		 * at least 20 seconds before first status checking
>>>> +		 * set it to 30 seconds for this controller to be sure */
>>>> +		if (0x4080 == pdev->subsystem_device)
>>>> +			schedule_timeout_uninterruptible(30*HZ);
>>>>     
>>>>         
>>> The HZ thing is deprecated, plus if you really want an interruptible
>>> sleep, you need to check for signals going in.
>>>
>>> It's far better to use msleep_interruptible, which does all of this for
>>> you (of course, it might be even better if we had ssleep_interruptible).
>>>
>>> James
>>>   
>>>       
>> schedule_timeout_uninterruptible is used in this module and this function
>> so it would keep the style. 
>> I don't want to care about signals so ssleep is fine?
>>     
> Yes, sorry, we've so many different variants of functions that all do
> approximately the same thing that I sometimes get confused ... I misread
> the above for schedule_timeout_interruptible (missing the un).  So
> ssleep is perfect.
>
> James
>   
Is there something more I could do for this patch?

Tomas


--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux