From 8598432e02b789982595b102cb23877cedd553a5 Mon Sep 17 00:00:00 2001 From: Andrey Borzenkov Date: Tue, 20 Jan 2009 20:26:46 +0300 Subject: [PATCH] --- yaml --- r: 130168 b: refs/heads/master c: 7fe99c4e28ab54eada8aa456b417114e6ef21587 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/net/wireless/orinoco/orinoco.c | 30 +++++++++----------- 2 files changed, 14 insertions(+), 18 deletions(-) diff --git a/[refs] b/[refs] index 7916b8673c61..b759624077fa 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5dc306f3bd1d4cfdf79df39221b3036eab1ddcf3 +refs/heads/master: 7fe99c4e28ab54eada8aa456b417114e6ef21587 diff --git a/trunk/drivers/net/wireless/orinoco/orinoco.c b/trunk/drivers/net/wireless/orinoco/orinoco.c index c3bb85e0251e..39eab39b065f 100644 --- a/trunk/drivers/net/wireless/orinoco/orinoco.c +++ b/trunk/drivers/net/wireless/orinoco/orinoco.c @@ -5068,33 +5068,30 @@ static int orinoco_ioctl_set_genie(struct net_device *dev, struct orinoco_private *priv = netdev_priv(dev); u8 *buf; unsigned long flags; - int err = 0; /* cut off at IEEE80211_MAX_DATA_LEN */ if ((wrqu->data.length > IEEE80211_MAX_DATA_LEN) || (wrqu->data.length && (extra == NULL))) return -EINVAL; - if (orinoco_lock(priv, &flags) != 0) - return -EBUSY; - if (wrqu->data.length) { buf = kmalloc(wrqu->data.length, GFP_KERNEL); - if (buf == NULL) { - err = -ENOMEM; - goto out; - } + if (buf == NULL) + return -ENOMEM; memcpy(buf, extra, wrqu->data.length); - kfree(priv->wpa_ie); - priv->wpa_ie = buf; - priv->wpa_ie_len = wrqu->data.length; - } else { - kfree(priv->wpa_ie); - priv->wpa_ie = NULL; - priv->wpa_ie_len = 0; + } else + buf = NULL; + + if (orinoco_lock(priv, &flags) != 0) { + kfree(buf); + return -EBUSY; } + kfree(priv->wpa_ie); + priv->wpa_ie = buf; + priv->wpa_ie_len = wrqu->data.length; + if (priv->wpa_ie) { /* Looks like wl_lkm wants to check the auth alg, and * somehow pass it to the firmware. @@ -5103,9 +5100,8 @@ static int orinoco_ioctl_set_genie(struct net_device *dev, */ } -out: orinoco_unlock(priv, &flags); - return err; + return 0; } static int orinoco_ioctl_get_genie(struct net_device *dev,