Commit 436f271996a1925e506d5004dcbf62bce24e5777

Authored by Julia Lawall
Committed by Greg Kroah-Hartman
1 parent f0675e2a99

drivers/usb/host/ehci-grlib.c: use devm_ functions

The various devm_ functions allocate memory that is released when a driver
detaches.  This patch uses these functions for data that is allocated in
the probe function of a platform device and is only freed in the remove
function.

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Showing 1 changed file with 3 additions and 15 deletions Side-by-side Diff

drivers/usb/host/ehci-grlib.c
... ... @@ -127,12 +127,6 @@
127 127 hcd->rsrc_start = res.start;
128 128 hcd->rsrc_len = resource_size(&res);
129 129  
130   - if (!request_mem_region(hcd->rsrc_start, hcd->rsrc_len, hcd_name)) {
131   - printk(KERN_ERR "%s: request_mem_region failed\n", __FILE__);
132   - rv = -EBUSY;
133   - goto err_rmr;
134   - }
135   -
136 130 irq = irq_of_parse_and_map(dn, 0);
137 131 if (irq == NO_IRQ) {
138 132 printk(KERN_ERR "%s: irq_of_parse_and_map failed\n", __FILE__);
139 133  
... ... @@ -140,9 +134,9 @@
140 134 goto err_irq;
141 135 }
142 136  
143   - hcd->regs = ioremap(hcd->rsrc_start, hcd->rsrc_len);
  137 + hcd->regs = devm_request_and_ioremap(&op->dev, &res);
144 138 if (!hcd->regs) {
145   - printk(KERN_ERR "%s: ioremap failed\n", __FILE__);
  139 + pr_err("%s: devm_request_and_ioremap failed\n", __FILE__);
146 140 rv = -ENOMEM;
147 141 goto err_ioremap;
148 142 }
149 143  
150 144  
... ... @@ -161,17 +155,13 @@
161 155  
162 156 rv = usb_add_hcd(hcd, irq, 0);
163 157 if (rv)
164   - goto err_ehci;
  158 + goto err_ioremap;
165 159  
166 160 return 0;
167 161  
168   -err_ehci:
169   - iounmap(hcd->regs);
170 162 err_ioremap:
171 163 irq_dispose_mapping(irq);
172 164 err_irq:
173   - release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
174   -err_rmr:
175 165 usb_put_hcd(hcd);
176 166  
177 167 return rv;
178 168  
... ... @@ -188,9 +178,7 @@
188 178  
189 179 usb_remove_hcd(hcd);
190 180  
191   - iounmap(hcd->regs);
192 181 irq_dispose_mapping(hcd->irq);
193   - release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
194 182  
195 183 usb_put_hcd(hcd);
196 184