Re: [PATCH] sc16is7xx: Defer probe if device read fails

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

 




> On Mar 29, 2021, at 11:18 AM, Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
> 
> On Mon, Mar 29, 2021 at 03:40:35PM +0000, Annaliese McDermond wrote:
>> A test was added to the probe function to ensure the device was
>> actually connected and working before successfully completing a
>> probe.  If the device was actually there, but the I2C bus was not
>> ready yet for whatever reason, the probe fails permanently.
>> 
>> Change the probe so that we defer the probe on a regmap read
>> failure so that we try the probe again when the dependent drivers
>> are potentially loaded.  This should not affect the case where the
>> device truly isn't present because the probe will never successfully
>> complete.
>> 
>> Fixes: 2aa916e ("sc16is7xx: Read the LSR register for basic device presence check")
> 
> Please use the full 12 characters of the git commit id, as the
> documentation asks for.  This should be:
> 
> Fixes: 2aa916e67db3 ("sc16is7xx: Read the LSR register for basic device presence check")

I’m sorry, I must have missed the section specifying that, and since I saw commits like
05962f95f9ac specifying 7 characters in their “fixes” line, I made the assumption that
this was the correct length.

Would you like me to post a v2 patch with the hash changed?

>> Cc: stable@xxxxxxxxxxxxxxx
>> Signed-off-by: Annaliese McDermond <nh6z@xxxxxxxx>
>> ---
>> drivers/tty/serial/sc16is7xx.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>> 
>> diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c
>> index f86ec2d2635b..9adb8362578c 100644
>> --- a/drivers/tty/serial/sc16is7xx.c
>> +++ b/drivers/tty/serial/sc16is7xx.c
>> @@ -1196,7 +1196,7 @@ static int sc16is7xx_probe(struct device *dev,
>> 	ret = regmap_read(regmap,
>> 			  SC16IS7XX_LSR_REG << SC16IS7XX_REG_SHIFT, &val);
>> 	if (ret < 0)
>> -		return ret;
>> +		return -EPROBE_DEFER;
>> 
>> 	/* Alloc port structure */
>> 	s = devm_kzalloc(dev, struct_size(s, p, devtype->nr_uart), GFP_KERNEL);
>> -- 
>> 2.27.0
> 
> Any reason you did not cc: the tty maintainer with this change?

None other than I believed “serial drivers” to be more specific than “tty layer” when
looking at the maintainers.  I’m happy to Cc Jiri if needed.

> 
> thanks,
> 
> greg k-h

-- Anna




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux