linux-mips
[Top] [All Lists]

Duplicated allocation in AU1xxx OHCI driver

To: linux-mips <linux-mips@linux-mips.org>
Subject: Duplicated allocation in AU1xxx OHCI driver
From: Karl Lessard <klessard@sunrisetelecom.com>
Date: Thu, 14 Oct 2004 15:45:39 -0400
Original-recipient: rfc822;linux-mips@linux-mips.org
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.0) Gecko/20020623 Debian/1.0.0-0.woody.1
Hello,

I was looking at the code of the new ohci-au1xxx, and I've figured out that operationnal regiters resource is allocated two times: once when registering the OHCI platform device (check in drivers/base/platform.c),
and once in OHCI driver probe.
Is that ok?? I'm kind of surprised that the second allocation doesn't failed. Removing it seems to works
well for me.

Thanks,
Karl
--- linux-mips/drivers/usb/host/ohci-au1xxx.c   Sun Oct 10 13:56:25 2004
+++ linux/drivers/usb/host/ohci-au1xxx.c        Thu Oct 14 15:39:11 2004
@@ -91,13 +91,6 @@ int usb_hcd_au1xxx_probe (const struct h
        struct usb_hcd *hcd = 0;
 
        unsigned int *addr = NULL;
-
-       if (!request_mem_region(dev->resource[0].start,
-                               dev->resource[0].end
-                               - dev->resource[0].start + 1, hcd_name)) {
-               pr_debug("request_mem_region failed");
-               return -EBUSY;
-       }
        
        au1xxx_start_hc(dev);
        
@@ -173,9 +166,6 @@ int usb_hcd_au1xxx_probe (const struct h
                driver->hcd_free(hcd);
  err1:
        au1xxx_stop_hc(dev);
-       release_mem_region(dev->resource[0].start,
-                               dev->resource[0].end
-                          - dev->resource[0].start + 1);
        return retval;
 }
 
@@ -219,9 +209,6 @@ void usb_hcd_au1xxx_remove (struct usb_h
        hcd->driver->hcd_free (hcd);
 
        au1xxx_stop_hc(dev);
-       release_mem_region(dev->resource[0].start,
-                          dev->resource[0].end
-                          - dev->resource[0].start + 1);
 }
 
 /*-------------------------------------------------------------------------*/
<Prev in Thread] Current Thread [Next in Thread>