diff options
author | Inaky Perez-Gonzalez <inaky@linux.intel.com> | 2009-09-16 21:33:26 -0400 |
---|---|---|
committer | Inaky Perez-Gonzalez <inaky@linux.intel.com> | 2009-10-19 02:56:09 -0400 |
commit | 2869da8587604e3fea5f85aeade486a08e8313bf (patch) | |
tree | e5894e5ffbc7eea4c3dc01406abfbbcfd8022467 /drivers/net/wimax/i2400m/usb.c | |
parent | 0856ccf29dfbaf957e4be80dd3eb88d97810b633 (diff) |
wimax/i2400m: do bootmode buffer management in i2400m_setup/release()
After the introduction of i2400m->bus_setup/release, there is no more
race condition where the bootmode buffers are needed before
i2400m_setup() is called.
Before, the SDIO driver would setup RX before calling i2400m_setup()
and thus need those buffers; now RX setup is done in
i2400m->bus_setup(), which is called by i2400m_setup().
Thus, all the bootmode buffer management can now be done completely
inside i2400m_setup()/i2400m_release(), removing complexity from the
bus-specific drivers.
Signed-off-by: Inaky Perez-Gonzalez <inaky@linux.intel.com>
Diffstat (limited to 'drivers/net/wimax/i2400m/usb.c')
-rw-r--r-- | drivers/net/wimax/i2400m/usb.c | 8 |
1 files changed, 0 insertions, 8 deletions
diff --git a/drivers/net/wimax/i2400m/usb.c b/drivers/net/wimax/i2400m/usb.c index 3bf3f7288fe6..77567970fe9a 100644 --- a/drivers/net/wimax/i2400m/usb.c +++ b/drivers/net/wimax/i2400m/usb.c | |||
@@ -447,12 +447,6 @@ int i2400mu_probe(struct usb_interface *iface, | |||
447 | usb_dev->autosuspend_disabled = 0; | 447 | usb_dev->autosuspend_disabled = 0; |
448 | #endif | 448 | #endif |
449 | 449 | ||
450 | result = i2400m_bm_buf_alloc(i2400m); | ||
451 | if (result < 0) { | ||
452 | dev_err(dev, "cannot allocate USB bootmode buffer\n"); | ||
453 | goto error_bm_buf_alloc; | ||
454 | } | ||
455 | |||
456 | result = i2400m_setup(i2400m, I2400M_BRI_MAC_REINIT); | 450 | result = i2400m_setup(i2400m, I2400M_BRI_MAC_REINIT); |
457 | if (result < 0) { | 451 | if (result < 0) { |
458 | dev_err(dev, "cannot setup device: %d\n", result); | 452 | dev_err(dev, "cannot setup device: %d\n", result); |
@@ -468,8 +462,6 @@ int i2400mu_probe(struct usb_interface *iface, | |||
468 | error_debugfs_add: | 462 | error_debugfs_add: |
469 | i2400m_release(i2400m); | 463 | i2400m_release(i2400m); |
470 | error_setup: | 464 | error_setup: |
471 | i2400m_bm_buf_free(i2400m); | ||
472 | error_bm_buf_alloc: | ||
473 | usb_set_intfdata(iface, NULL); | 465 | usb_set_intfdata(iface, NULL); |
474 | usb_put_dev(i2400mu->usb_dev); | 466 | usb_put_dev(i2400mu->usb_dev); |
475 | free_netdev(net_dev); | 467 | free_netdev(net_dev); |