Re: [PATCH 0/3] move visorbus out of staging to drivers/virt/visorbus
From: Greg KH
Date: Tue Jun 06 2017 - 11:06:29 EST
On Tue, Jun 06, 2017 at 04:54:30PM +0200, Greg KH wrote:
> On Tue, Jun 06, 2017 at 04:53:22PM +0200, Greg KH wrote:
> > On Tue, Jun 06, 2017 at 04:49:09PM +0200, Greg KH wrote:
> > > On Mon, Jun 05, 2017 at 04:07:29PM -0400, David Kershner wrote:
> > > > This patchset moves drivers/staging/unisys/include to
> > > > include/linux/visorbus, and moves drivers/staging/unisys/visorbus to
> > > > drivers/virt/visorbus.
> > >
> > > Um, are you thinking it is ready to be moved? Have you asked for
> > > another review?
> > >
> > > In a totally random chance, I was doing some driver core work today and
> > > I noticed that in drivers/staging/unisys/visorbus/visorbus_main.c, you
> > > have 2 tabs for your 'struct attribute' variables, which is really odd.
> > >
> > > Also, you should be using the ATTRIBUTE_GROUPS() macro for them instead
> > > of having to "open code" the struct attribute_group lists.
> > >
> > > So either you all have horrible luck in that I just happened to find the
> > > only remaining problem, or that you should proabably ask for a good code
> > > audit, I haven't looked at the code before today since the last round of
> > > "fun" I found in just one other random file :)
> >
> > Also, many of the attribute callbacks in that file seem to all have
> > their leading '{' in the wrong place. Odd that checkpatch.pl doesn't
> > catch that...
> >
> > partition_handle_show() is one such example that is obviously wrong.
> >
> > There's also one checkpatch.pl warning for it, which should probably be
> > resolved as well.
>
> drivers/staging/unisys/visorbus/visorbus_main.c:1035: WARNING: Prefer using '"%s...", __func__' to using 'create_bus_instance', this function's name, in a string
>
> to be specific, something you should have caught, right?
>
> Are you sure this is ready to be moved out of staging? :(
Eek, I can't look away...
You do this a bunch:
if (dev->visorchannel) {
visorchannel_destroy(dev->visorchannel);
yet the first thing that visorchannel_destroy() does is check for null.
So, no need to test this twice, right, only do so in the function, that
will make your code flow a lot "smoother" where ever you are calling
this.
Ok, I'll stop now, gotta go find some dinner...
greg k-h