Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
David S. Miller [Wed, 21 Apr 2010 08:14:25 +0000 (01:14 -0700)]
Conflicts:
drivers/net/wireless/iwlwifi/iwl-6000.c
net/core/dev.c

18 files changed:
1  2 
MAINTAINERS
drivers/net/8139too.c
drivers/net/wireless/iwlwifi/iwl-6000.c
drivers/net/wireless/iwlwifi/iwl-agn.c
drivers/net/wireless/iwlwifi/iwl-calib.c
drivers/net/wireless/iwlwifi/iwl-core.c
drivers/net/wireless/iwlwifi/iwl-core.h
drivers/net/wireless/iwlwifi/iwl-dev.h
drivers/net/wireless/iwlwifi/iwl-eeprom.h
drivers/net/wireless/iwlwifi/iwl-scan.c
net/bridge/br_multicast.c
net/core/dev.c
net/ipv4/ip_output.c
net/ipv6/ip6_output.c
net/ipv6/tcp_ipv6.c
net/mac80211/agg-tx.c
net/mac80211/mlme.c
net/packet/af_packet.c

diff --cc MAINTAINERS
Simple merge
Simple merge
@@@ -256,13 -254,13 +256,14 @@@ static struct iwl_lib_ops iwl6000_lib 
        },
        .eeprom_ops = {
                .regulatory_bands = {
 -                      EEPROM_5000_REG_BAND_1_CHANNELS,
 -                      EEPROM_5000_REG_BAND_2_CHANNELS,
 -                      EEPROM_5000_REG_BAND_3_CHANNELS,
 -                      EEPROM_5000_REG_BAND_4_CHANNELS,
 -                      EEPROM_5000_REG_BAND_5_CHANNELS,
 +                      EEPROM_REG_BAND_1_CHANNELS,
 +                      EEPROM_REG_BAND_2_CHANNELS,
 +                      EEPROM_REG_BAND_3_CHANNELS,
 +                      EEPROM_REG_BAND_4_CHANNELS,
 +                      EEPROM_REG_BAND_5_CHANNELS,
 +                      EEPROM_REG_BAND_24_HT40_CHANNELS,
+                       EEPROM_6000_REG_BAND_24_HT40_CHANNELS,
 -                      EEPROM_5000_REG_BAND_52_HT40_CHANNELS
 +                      EEPROM_REG_BAND_52_HT40_CHANNELS
                },
                .verify_signature  = iwlcore_eeprom_verify_signature,
                .acquire_semaphore = iwlcore_eeprom_acquire_semaphore,
@@@ -323,13 -318,13 +324,13 @@@ static struct iwl_lib_ops iwl6050_lib 
        },
        .eeprom_ops = {
                .regulatory_bands = {
 -                      EEPROM_5000_REG_BAND_1_CHANNELS,
 -                      EEPROM_5000_REG_BAND_2_CHANNELS,
 -                      EEPROM_5000_REG_BAND_3_CHANNELS,
 -                      EEPROM_5000_REG_BAND_4_CHANNELS,
 -                      EEPROM_5000_REG_BAND_5_CHANNELS,
 +                      EEPROM_REG_BAND_1_CHANNELS,
 +                      EEPROM_REG_BAND_2_CHANNELS,
 +                      EEPROM_REG_BAND_3_CHANNELS,
 +                      EEPROM_REG_BAND_4_CHANNELS,
 +                      EEPROM_REG_BAND_5_CHANNELS,
-                       EEPROM_REG_BAND_24_HT40_CHANNELS,
+                       EEPROM_6000_REG_BAND_24_HT40_CHANNELS,
 -                      EEPROM_5000_REG_BAND_52_HT40_CHANNELS
 +                      EEPROM_REG_BAND_52_HT40_CHANNELS
                },
                .verify_signature  = iwlcore_eeprom_verify_signature,
                .acquire_semaphore = iwlcore_eeprom_acquire_semaphore,
@@@ -188,21 -188,25 +188,25 @@@ struct iwl_eeprom_enhanced_txpwr 
  /* 5000 regulatory - indirect access */
  #define EEPROM_5000_REG_SKU_ID ((0x02)\
                | INDIRECT_ADDRESS | INDIRECT_REGULATORY)   /* 4  bytes */
 -#define EEPROM_5000_REG_BAND_1_CHANNELS       ((0x08)\
 +#define EEPROM_REG_BAND_1_CHANNELS       ((0x08)\
                | INDIRECT_ADDRESS | INDIRECT_REGULATORY)   /* 28 bytes */
 -#define EEPROM_5000_REG_BAND_2_CHANNELS       ((0x26)\
 +#define EEPROM_REG_BAND_2_CHANNELS       ((0x26)\
                | INDIRECT_ADDRESS | INDIRECT_REGULATORY)   /* 26 bytes */
 -#define EEPROM_5000_REG_BAND_3_CHANNELS       ((0x42)\
 +#define EEPROM_REG_BAND_3_CHANNELS       ((0x42)\
                | INDIRECT_ADDRESS | INDIRECT_REGULATORY)   /* 24 bytes */
 -#define EEPROM_5000_REG_BAND_4_CHANNELS       ((0x5C)\
 +#define EEPROM_REG_BAND_4_CHANNELS       ((0x5C)\
                | INDIRECT_ADDRESS | INDIRECT_REGULATORY)   /* 22 bytes */
 -#define EEPROM_5000_REG_BAND_5_CHANNELS       ((0x74)\
 +#define EEPROM_REG_BAND_5_CHANNELS       ((0x74)\
                | INDIRECT_ADDRESS | INDIRECT_REGULATORY)   /* 12 bytes */
 -#define EEPROM_5000_REG_BAND_24_HT40_CHANNELS  ((0x82)\
 +#define EEPROM_REG_BAND_24_HT40_CHANNELS  ((0x82)\
                | INDIRECT_ADDRESS | INDIRECT_REGULATORY)   /* 14  bytes */
 -#define EEPROM_5000_REG_BAND_52_HT40_CHANNELS  ((0x92)\
 +#define EEPROM_REG_BAND_52_HT40_CHANNELS  ((0x92)\
                | INDIRECT_ADDRESS | INDIRECT_REGULATORY)   /* 22  bytes */
  
+ /* 6000 regulatory - indirect access */
+ #define EEPROM_6000_REG_BAND_24_HT40_CHANNELS  ((0x80)\
+               | INDIRECT_ADDRESS | INDIRECT_REGULATORY)   /* 14  bytes */
  /* 6000 and up regulatory tx power - indirect access */
  /* max. elements per section */
  #define EEPROM_MAX_TXPOWER_SECTION_ELEMENTS   (8)
@@@ -577,10 -586,10 +586,9 @@@ static void iwl_bg_start_internal_scan(
        set_bit(STATUS_SCANNING, &priv->status);
        priv->is_internal_short_scan = true;
        queue_work(priv->workqueue, &priv->request_scan);
- out:
-       return ret;
+  unlock:
+       mutex_unlock(&priv->mutex);
  }
 -EXPORT_SYMBOL(iwl_internal_short_hw_scan);
  
  #define IWL_SCAN_CHECK_WATCHDOG (7 * HZ)
  
Simple merge
diff --cc net/core/dev.c
@@@ -2015,8 -1989,12 +2015,12 @@@ static struct netdev_queue *dev_pick_tx
                        if (dev->real_num_tx_queues > 1)
                                queue_index = skb_tx_hash(dev, skb);
  
-                       if (sk && rcu_dereference_check(sk->sk_dst_cache, 1))
-                               sk_tx_queue_set(sk, queue_index);
+                       if (sk) {
 -                              struct dst_entry *dst = rcu_dereference_bh(sk->sk_dst_cache);
++                              struct dst_entry *dst = rcu_dereference_check(sk->sk_dst_cache, 1);
+                               if (dst && skb_dst(skb) == dst)
+                                       sk_tx_queue_set(sk, queue_index);
+                       }
                }
        }
  
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge