Re: [PATCH] usb: typec: ucsi: Changing the driver data type to void

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

 



On Tue, Jun 18, 2024 at 04:14:57PM +0300, Heikki Krogerus wrote:
> On Tue, Jun 18, 2024 at 02:20:03PM +0200, Greg Kroah-Hartman wrote:
> > On Tue, Jun 18, 2024 at 03:00:24PM +0300, Heikki Krogerus wrote:
> > > Let's use the same data type as struct device.
> > > 
> > > Signed-off-by: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx>
> > > ---
> > >  drivers/usb/typec/ucsi/ucsi.h | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > 
> > > diff --git a/drivers/usb/typec/ucsi/ucsi.h b/drivers/usb/typec/ucsi/ucsi.h
> > > index 97eda8cd63df..1280cac314fe 100644
> > > --- a/drivers/usb/typec/ucsi/ucsi.h
> > > +++ b/drivers/usb/typec/ucsi/ucsi.h
> > > @@ -395,7 +395,7 @@ struct ucsi_debugfs_entry {
> > >  struct ucsi {
> > >  	u16 version;
> > >  	struct device *dev;
> > > -	struct driver_data *driver_data;
> > > +	void *driver_data;
> > 
> > Nice, but why?
> > 
> > And how was this building?  I don't see a "struct driver_data" defined
> > anywhere here.
> 
> I had not even thought about that, but that's weird.
> 
> I can write anything after "struct" there, and it will just build
> without any warnings or errors. The complier does not seem to even
> check the type in this case, since the member is always assigned a
> void pointer.

Ah, I guess the compiler never actually has to look up what 'struct
driver_data' is if it is never referenced (i.e. you are only casting
void * to it.)

> So this is actually a bug, no?

Kind of?  But it works, so let's just leave it alone :)

I'll take this patch as it is "obviously correct" now, but sure looked
odd to start with.

thanks,

greg k-h




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux