Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Minor conflict in r8169, bug fix had two versions in net and net-next, take the net-next hunks. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -6094,6 +6094,15 @@ static int rt2800_init_registers(struct rt2x00_dev *rt2x00dev)
|
||||
rt2800_delete_wcid_attr(rt2x00dev, i);
|
||||
}
|
||||
|
||||
/*
|
||||
* Clear encryption initialization vectors on start, but keep them
|
||||
* for watchdog reset. Otherwise we will have wrong IVs and not be
|
||||
* able to keep connections after reset.
|
||||
*/
|
||||
if (!test_bit(DEVICE_STATE_RESET, &rt2x00dev->flags))
|
||||
for (i = 0; i < 256; i++)
|
||||
rt2800_register_write(rt2x00dev, MAC_IVEIV_ENTRY(i), 0);
|
||||
|
||||
/*
|
||||
* Clear all beacons
|
||||
*/
|
||||
|
@@ -658,6 +658,7 @@ enum rt2x00_state_flags {
|
||||
DEVICE_STATE_ENABLED_RADIO,
|
||||
DEVICE_STATE_SCANNING,
|
||||
DEVICE_STATE_FLUSHING,
|
||||
DEVICE_STATE_RESET,
|
||||
|
||||
/*
|
||||
* Driver configuration
|
||||
|
@@ -1256,13 +1256,14 @@ static int rt2x00lib_initialize(struct rt2x00_dev *rt2x00dev)
|
||||
|
||||
int rt2x00lib_start(struct rt2x00_dev *rt2x00dev)
|
||||
{
|
||||
int retval;
|
||||
int retval = 0;
|
||||
|
||||
if (test_bit(DEVICE_STATE_STARTED, &rt2x00dev->flags)) {
|
||||
/*
|
||||
* This is special case for ieee80211_restart_hw(), otherwise
|
||||
* mac80211 never call start() two times in row without stop();
|
||||
*/
|
||||
set_bit(DEVICE_STATE_RESET, &rt2x00dev->flags);
|
||||
rt2x00dev->ops->lib->pre_reset_hw(rt2x00dev);
|
||||
rt2x00lib_stop(rt2x00dev);
|
||||
}
|
||||
@@ -1273,14 +1274,14 @@ int rt2x00lib_start(struct rt2x00_dev *rt2x00dev)
|
||||
*/
|
||||
retval = rt2x00lib_load_firmware(rt2x00dev);
|
||||
if (retval)
|
||||
return retval;
|
||||
goto out;
|
||||
|
||||
/*
|
||||
* Initialize the device.
|
||||
*/
|
||||
retval = rt2x00lib_initialize(rt2x00dev);
|
||||
if (retval)
|
||||
return retval;
|
||||
goto out;
|
||||
|
||||
rt2x00dev->intf_ap_count = 0;
|
||||
rt2x00dev->intf_sta_count = 0;
|
||||
@@ -1289,11 +1290,13 @@ int rt2x00lib_start(struct rt2x00_dev *rt2x00dev)
|
||||
/* Enable the radio */
|
||||
retval = rt2x00lib_enable_radio(rt2x00dev);
|
||||
if (retval)
|
||||
return retval;
|
||||
goto out;
|
||||
|
||||
set_bit(DEVICE_STATE_STARTED, &rt2x00dev->flags);
|
||||
|
||||
return 0;
|
||||
out:
|
||||
clear_bit(DEVICE_STATE_RESET, &rt2x00dev->flags);
|
||||
return retval;
|
||||
}
|
||||
|
||||
void rt2x00lib_stop(struct rt2x00_dev *rt2x00dev)
|
||||
|
Reference in New Issue
Block a user