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