mirror of https://gitee.com/openkylin/linux.git
rtl8187: Fix locking of private data
In rtl8187_add_interface(), the mutex that protects the data in struct rtl8187_priv does not include all references to that structure. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
1fac36ee7d
commit
66aafd9a31
|
@ -974,19 +974,21 @@ static int rtl8187_add_interface(struct ieee80211_hw *dev,
|
|||
{
|
||||
struct rtl8187_priv *priv = dev->priv;
|
||||
int i;
|
||||
int ret = -EOPNOTSUPP;
|
||||
|
||||
mutex_lock(&priv->conf_mutex);
|
||||
if (priv->mode != NL80211_IFTYPE_MONITOR)
|
||||
return -EOPNOTSUPP;
|
||||
goto exit;
|
||||
|
||||
switch (conf->type) {
|
||||
case NL80211_IFTYPE_STATION:
|
||||
priv->mode = conf->type;
|
||||
break;
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
goto exit;
|
||||
}
|
||||
|
||||
mutex_lock(&priv->conf_mutex);
|
||||
ret = 0;
|
||||
priv->vif = conf->vif;
|
||||
|
||||
rtl818x_iowrite8(priv, &priv->map->EEPROM_CMD, RTL818X_EEPROM_CMD_CONFIG);
|
||||
|
@ -995,8 +997,9 @@ static int rtl8187_add_interface(struct ieee80211_hw *dev,
|
|||
((u8 *)conf->mac_addr)[i]);
|
||||
rtl818x_iowrite8(priv, &priv->map->EEPROM_CMD, RTL818X_EEPROM_CMD_NORMAL);
|
||||
|
||||
exit:
|
||||
mutex_unlock(&priv->conf_mutex);
|
||||
return 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void rtl8187_remove_interface(struct ieee80211_hw *dev,
|
||||
|
|
Loading…
Reference in New Issue