śr., 6 maj 2020 o 19:12 Jakub Kicinski <kuba@xxxxxxxxxx> napisał(a): > > On Wed, 6 May 2020 08:39:47 +0200 Bartosz Golaszewski wrote: > > wt., 5 maj 2020 o 19:31 Jakub Kicinski <kuba@xxxxxxxxxx> napisał(a): > > > > > > On Tue, 5 May 2020 16:02:25 +0200 Bartosz Golaszewski wrote: > > > > From: Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx> > > > > > > > > Provide devm_register_netdev() - a device resource managed variant > > > > of register_netdev(). This new helper will only work for net_device > > > > structs that have a parent device assigned and are devres managed too. > > > > > > > > Signed-off-by: Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx> > > > > > > > diff --git a/net/core/dev.c b/net/core/dev.c > > > > index 522288177bbd..99db537c9468 100644 > > > > --- a/net/core/dev.c > > > > +++ b/net/core/dev.c > > > > @@ -9519,6 +9519,54 @@ int register_netdev(struct net_device *dev) > > > > } > > > > EXPORT_SYMBOL(register_netdev); > > > > > > > > +struct netdevice_devres { > > > > + struct net_device *ndev; > > > > +}; > > > > > > Is there really a need to define a structure if we only need a pointer? > > > > > > > There is no need for that, but it really is more readable this way. > > Also: using a pointer directly doesn't save us any memory nor code > > here. > > I don't care either way but devm_alloc_etherdev_mqs() and co. are using > the double pointer directly. Please make things consistent. Either do > the same, or define the structure in some header and convert other > helpers to also make use of it. In order to use devres_find() to check if struct net_device is managed in devm_register_netdev() I need to know the address of the release function used by devm_alloc_etherdev_mqs(). Do you mind if I move all networking devres routines (currently only devm_alloc_etherdev_mqs()) into a separate .c file (e.g. under net/devres.c)? Bart