Re: [PATCH 3/3] agp/intel: Destroy the scatterlist on allocation failure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2010.07.24 18:29:37 +0100, Chris Wilson wrote:
> A side-effect of being able to use custom page allocations with the
> sg_table is that it cannot reap the partially constructed scatterlist if
> fails to allocate a page. So we need to call sg_free_table() ourselves
> if sg_alloc_table() fails.

Why? Doesn't sg_alloc_table() handle the failure case to call sg_free_table()
already?

> 
> Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
> Cc Dave Airlie <airlied@xxxxxxxxxx>
> ---
>  drivers/char/agp/intel-gtt.c |   13 ++++++++-----
>  1 files changed, 8 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/char/agp/intel-gtt.c b/drivers/char/agp/intel-gtt.c
> index f97122a..5615d70 100644
> --- a/drivers/char/agp/intel-gtt.c
> +++ b/drivers/char/agp/intel-gtt.c
> @@ -104,7 +104,7 @@ static int intel_agp_map_memory(struct agp_memory *mem)
>  	DBG("try mapping %lu pages\n", (unsigned long)mem->page_count);
>  
>  	if (sg_alloc_table(&st, mem->page_count, GFP_KERNEL))
> -		return -ENOMEM;
> +		goto err;
>  
>  	mem->sg_list = sg = st.sgl;
>  
> @@ -113,11 +113,14 @@ static int intel_agp_map_memory(struct agp_memory *mem)
>  
>  	mem->num_sg = pci_map_sg(intel_private.pcidev, mem->sg_list,
>  				 mem->page_count, PCI_DMA_BIDIRECTIONAL);
> -	if (unlikely(!mem->num_sg)) {
> -		intel_agp_free_sglist(mem);
> -		return -ENOMEM;
> -	}
> +	if (unlikely(!mem->num_sg))
> +		goto err;
> +
>  	return 0;
> +
> +err:
> +	sg_free_table(&st);
> +	return -ENOMEM;
>  }
>  
>  static void intel_agp_unmap_memory(struct agp_memory *mem)
> -- 
> 1.7.1
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@xxxxxxxxxxxxxxxxxxxxx
> http://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Open Source Technology Center, Intel ltd.

$gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827

Attachment: signature.asc
Description: Digital signature

_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel

[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux