Message ID | 1406129207-1302-7-git-send-email-dh.herrmann@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Jul 23, 2014 at 05:26:41PM +0200, David Herrmann wrote: > Testing the return value of list_entry() for NULL is a no-op (as it is > just a fancy container_of() / offsetof()). Drop the superfluous if-clause > and instead verify the actual root-node is available. This is probably > what it was meant to test for from the beginning, anyway. > > Signed-off-by: David Herrmann <dh.herrmann@gmail.com> Oh drm handling of alpha. I've tried to dig out how this all works together and it's dangerous. drm totally ignored this thing called dma api so needed to handle cpu phys address vs. bus address offsets itself. If you munge around also in the agp code (which is really only used by drm) then you'll notice that it's handled completely differently on alpha vs. ppc. Tbh I'd wait until this is all officially dead and then rip it all out. -Daniel > --- > drivers/gpu/drm/drm_fops.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c > index a402061..afba0bf 100644 > --- a/drivers/gpu/drm/drm_fops.c > +++ b/drivers/gpu/drm/drm_fops.c > @@ -330,11 +330,11 @@ static int drm_open_helper(struct file *filp, struct drm_minor *minor) > dev->hose = pci_dev->sysdata; > pci_dev_put(pci_dev); > } > - if (!dev->hose) { > + > + if (!dev->hose && pci_root_buses.next) { > struct pci_bus *b = list_entry(pci_root_buses.next, > - struct pci_bus, node); > - if (b) > - dev->hose = b->sysdata; > + struct pci_bus, node); > + dev->hose = b->sysdata; > } > } > #endif > -- > 2.0.2 >
On Wed, Jul 23, 2014 at 09:29:48PM +0200, Daniel Vetter wrote: > On Wed, Jul 23, 2014 at 05:26:41PM +0200, David Herrmann wrote: > > Testing the return value of list_entry() for NULL is a no-op (as it is > > just a fancy container_of() / offsetof()). Drop the superfluous if-clause > > and instead verify the actual root-node is available. This is probably > > what it was meant to test for from the beginning, anyway. > > > > Signed-off-by: David Herrmann <dh.herrmann@gmail.com> > > Oh drm handling of alpha. I've tried to dig out how this all works > together and it's dangerous. drm totally ignored this thing called dma api > so needed to handle cpu phys address vs. bus address offsets itself. If > you munge around also in the agp code (which is really only used by drm) > then you'll notice that it's handled completely differently on alpha vs. > ppc. > > Tbh I'd wait until this is all officially dead and then rip it all out. I dare you for a patch to rip out alpha drm handling completely though ;-) ppc probably needs to stay a bit longer, there's still lots of apple hardware with radeons around. -Daniel
diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c index a402061..afba0bf 100644 --- a/drivers/gpu/drm/drm_fops.c +++ b/drivers/gpu/drm/drm_fops.c @@ -330,11 +330,11 @@ static int drm_open_helper(struct file *filp, struct drm_minor *minor) dev->hose = pci_dev->sysdata; pci_dev_put(pci_dev); } - if (!dev->hose) { + + if (!dev->hose && pci_root_buses.next) { struct pci_bus *b = list_entry(pci_root_buses.next, - struct pci_bus, node); - if (b) - dev->hose = b->sysdata; + struct pci_bus, node); + dev->hose = b->sysdata; } } #endif
Testing the return value of list_entry() for NULL is a no-op (as it is just a fancy container_of() / offsetof()). Drop the superfluous if-clause and instead verify the actual root-node is available. This is probably what it was meant to test for from the beginning, anyway. Signed-off-by: David Herrmann <dh.herrmann@gmail.com> --- drivers/gpu/drm/drm_fops.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)