Re: [PATCH net-next v4 05/22] ethtool: introduce ethtool netlink interface

From: Michal Kubecek
Date: Thu Mar 21 2019 - 12:47:36 EST


On Thu, Mar 21, 2019 at 04:25:09PM +0100, Andrew Lunn wrote:
> On Thu, Mar 21, 2019 at 03:13:43PM +0100, Michal Kubecek wrote:
> > On Thu, Mar 21, 2019 at 02:57:05PM +0100, Andrew Lunn wrote:
> > > On Thu, Mar 21, 2019 at 02:07:35PM +0100, Michal Kubecek wrote:
> > > > +static int __init ethnl_init(void)
> > > > +{
> > > > + int ret;
> > > > +
> > > > + ret = genl_register_family(&ethtool_genl_family);
> > > > + if (ret < 0)
> > > > + panic("ethtool: could not register genetlink family\n");
> > >
> > > Panic seems a bit strong. Do we really want to kill the box because
> > > this fails?
> >
> > When I switched CONFIG_ETHTOOL_NETLINK from tristate to bool, I checked
> > some other non-modular subsystems to see what they do on failed
> > initialization and each of them did handle it by panic() so I didn't
> > think about it too much and did the same.
> >
> > Thinking about it now, if the family registration fails, the only entry
> > point to care about should be ethtool_notify() (I'll have to check more
> > carefully to be sure) so that adding a check there should be sufficient
> > to let everything work (except for the netlink interface, of course).
>
> Hi Michal
>
> So maybe do a WARN_ON() and return the error code.
>
> Linus has been quite vocal about killing the box when there is no real
> need...

Yes, WARN_ON() seems to be the right thing to do: it says clearly enough
something went seriously wrong but doesn't make the system completely
unusable. I'll do that in v5.

Michal