Re: [PATCH 1/5] nubus: Simplify check in remove callback

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

 



Hello Finn,

On Sat, Jul 31, 2021 at 08:32:38PM +1000, Finn Thain wrote:
On Tue, 27 Jul 2021, Uwe Kleine-König wrote:
On Tue, Jul 27, 2021 at 07:50:39PM +1000, Finn Thain wrote:
On Tue, 27 Jul 2021, Uwe Kleine-König wrote:

The driver core only calls a remove callback when the device was 
successfully bound (aka probed) before. So dev->driver is never 
NULL.

Are you sure dev->driver is non-NULL for the lifetime of the device? A 
quick glance at device_reprobe() makes me wonder about that.

Not for the lifetime of the device, but as long as a driver is bound to 
the device. device_reprobe() calls device_driver_detach() after which 
the driver is considered unbound and dev->driver is assigned NULL. (via 
device_driver_detach -> device_release_driver_internal -> 
__device_release_driver)

Are you saying that this situation does not presently apply to nubus, 
zorro or superhyway? Or are you saying that the remove callback will never 
be called in this situation?

I'm saying that if you call device_reprobe() the remove callback is
called before dev->driver becomes NULL. So in the remove callback it's
safe to assume that dev->driver is non-NULL.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | https://www.pengutronix.de/ |

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux