On Thu, Aug 24, 2023 at 01:40:35PM +0200, Greg KH wrote: > On Thu, Aug 24, 2023 at 01:10:13PM +0200, Martin Zaťovič wrote: > > +static inline void wiegand_controller_put(void *ptr) > > Why is this a void *? It should be "struct wiegand_controller *" It is a void* because it is being passed to devm_add_action_or_reset() and this function only accepts a pointer to a function that accepts a void* parameter. I am not sure if there is a way around it. > > Please never use void * if at all possible. > > > +static inline void wiegand_unregister_driver(struct wiegand_driver *wdrv) > > +{ > > + if (wdrv) > > How could this ever be true? > > > + driver_unregister(&wdrv->driver); > > +} > > + > > +static inline struct wiegand_driver *to_wiegand_driver(struct device_driver *drv) > > +{ > > + return drv ? container_of(drv, struct wiegand_driver, driver) : NULL; > > How could drv be NULL? > > And you should make this a const *, right? Will fix the other issues. Thank you! > > thanks, > > greg k-h