[PATCH 06/12] drm: fix __alpha__ PCI lookup

Daniel Vetter daniel at ffwll.ch
Wed Jul 23 12:29:48 PDT 2014


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 at 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
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch


More information about the dri-devel mailing list