David,

Are you okay with this patch and okay with it going in via Ben's
powerpc tree?  Ben wants to ensure that changes outside arch/powerpc/
are properly acked before going into his tree.

Thanks,
g.

On Sat, Feb 28, 2009 at 9:09 PM, Grant Likely <grant.lik...@secretlab.ca> wrote:
> On Fri, Feb 27, 2009 at 4:54 PM, John Linn <john.l...@xilinx.com> wrote:
>> The driver was not releasing memory when it was removed or
>> when there was a failure during probe. This fixes it.
>>
>> Signed-off-by: John Linn <john.l...@xilinx.com>
>
> Looks good.
>
> Acked-by: Grant Likely <grant.lik...@secretlab.ca>
>
> I'll pick this up into my -next branch and ask Ben to pull it in the
> next week or so.

> ---
> This is an incremental patch to the patch (updated driver
> for device tree) that is in the next branch.
> ---
>  drivers/spi/xilinx_spi.c |    9 +++++++--
>  1 files changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/spi/xilinx_spi.c b/drivers/spi/xilinx_spi.c
> index fe7e5f3..494d3f7 100644
> --- a/drivers/spi/xilinx_spi.c
> +++ b/drivers/spi/xilinx_spi.c
> @@ -354,7 +354,7 @@ static int __init xilinx_spi_of_probe(struct of_device 
> *ofdev,
>        if (xspi->regs == NULL) {
>                rc = -ENOMEM;
>                dev_warn(&ofdev->dev, "ioremap failure\n");
> -               goto put_master;
> +               goto release_mem;
>        }
>        xspi->irq = r_irq->start;
>
> @@ -365,7 +365,7 @@ static int __init xilinx_spi_of_probe(struct of_device 
> *ofdev,
>        prop = of_get_property(ofdev->node, "xlnx,num-ss-bits", &len);
>        if (!prop || len < sizeof(*prop)) {
>                dev_warn(&ofdev->dev, "no 'xlnx,num-ss-bits' property\n");
> -               goto put_master;
> +               goto unmap_io;
>        }
>        master->num_chipselect = *prop;
>
> @@ -397,6 +397,8 @@ free_irq:
>        free_irq(xspi->irq, xspi);
>  unmap_io:
>        iounmap(xspi->regs);
> +release_mem:
> +       release_mem_region(r_mem->start, resource_size(r_mem));
>  put_master:
>        spi_master_put(master);
>        return rc;
> @@ -406,6 +408,7 @@ static int __devexit xilinx_spi_remove(struct of_device 
> *ofdev)
>  {
>        struct xilinx_spi *xspi;
>        struct spi_master *master;
> +       struct resource r_mem;
>
>        master = platform_get_drvdata(ofdev);
>        xspi = spi_master_get_devdata(master);
> @@ -413,6 +416,8 @@ static int __devexit xilinx_spi_remove(struct of_device 
> *ofdev)
>        spi_bitbang_stop(&xspi->bitbang);
>        free_irq(xspi->irq, xspi);
>        iounmap(xspi->regs);
> +       if (!of_address_to_resource(ofdev->node, 0, &r_mem))
> +               release_mem_region(r_mem.start, resource_size(&r_mem));
>        dev_set_drvdata(&ofdev->dev, 0);
>        spi_master_put(xspi->bitbang.master);
>
> --
> 1.5.3.4
>
>
>
> This email and any attachments are intended for the sole use of the named 
> recipient(s) and contain(s) confidential information that may be proprietary, 
> privileged or copyrighted under applicable law. If you are not the intended 
> recipient, do not read, copy, or forward this email message or any 
> attachments. Delete this email message and any attachments immediately.
>
>
>



-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to