mac80211: fix ad-hoc mode performance regression
[openwrt.git] / package / mac80211 / patches / 603-rt2x00-introduce-rt2x00eeprom.patch
index 0fb42f9fed9d510081babfac313ae381f6af8c85..31e33b7818da4ec6237130cd6dcb473da0d23dbc 100644 (file)
 +}
 --- a/drivers/net/wireless/rt2x00/rt2x00.h
 +++ b/drivers/net/wireless/rt2x00/rt2x00.h
-@@ -554,6 +554,7 @@ struct rt2x00lib_ops {
+@@ -560,6 +560,7 @@ struct rt2x00lib_ops {
                               const u8 *data, const size_t len);
        int (*load_firmware) (struct rt2x00_dev *rt2x00dev,
                              const u8 *data, const size_t len);
  
        /*
         * Device initialization/deinitialization handlers.
-@@ -705,6 +706,7 @@ enum rt2x00_capability_flags {
+@@ -713,6 +714,7 @@ enum rt2x00_capability_flags {
        REQUIRE_SW_SEQNO,
        REQUIRE_HT_TX_DESC,
        REQUIRE_PS_AUTOWAKE,
  
        /*
         * Capabilities
-@@ -961,6 +963,11 @@ struct rt2x00_dev {
+@@ -968,6 +970,11 @@ struct rt2x00_dev {
        const struct firmware *fw;
  
        /*
        DECLARE_KFIFO_PTR(txstatus_fifo, u32);
 --- a/drivers/net/wireless/rt2x00/rt2x00lib.h
 +++ b/drivers/net/wireless/rt2x00/rt2x00lib.h
-@@ -309,6 +309,22 @@ static inline void rt2x00lib_free_firmwa
+@@ -322,6 +322,22 @@ static inline void rt2x00lib_free_firmwa
  #endif /* CONFIG_RT2X00_LIB_FIRMWARE */
  
  /*
        .get_entry_state        = rt2800pci_get_entry_state,
 --- a/drivers/net/wireless/rt2x00/rt2x00dev.c
 +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
-@@ -1145,6 +1145,10 @@ int rt2x00lib_probe_dev(struct rt2x00_de
+@@ -1161,6 +1161,10 @@ int rt2x00lib_probe_dev(struct rt2x00_de
                    BIT(NL80211_IFTYPE_MESH_POINT) |
                    BIT(NL80211_IFTYPE_WDS);
  
        /*
         * Initialize work.
         */
-@@ -1261,6 +1265,11 @@ void rt2x00lib_remove_dev(struct rt2x00_
-        * Free queue structures.
+@@ -1284,6 +1288,11 @@ void rt2x00lib_remove_dev(struct rt2x00_
         */
-       rt2x00queue_free(rt2x00dev);
+       if (rt2x00dev->drv_data)
+               kfree(rt2x00dev->drv_data);
 +
 +      /*
 +       * Free EEPROM image.