Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Thu, 20 Jan 2011 04:25:45 +0000 (20:25 -0800)]
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (41 commits)
  sctp: user perfect name for Delayed SACK Timer option
  net: fix can_checksum_protocol() arguments swap
  Revert "netlink: test for all flags of the NLM_F_DUMP composite"
  gianfar: Fix misleading indentation in startup_gfar()
  net/irda/sh_irda: return to RX mode when TX error
  net offloading: Do not mask out NETIF_F_HW_VLAN_TX for vlan.
  USB CDC NCM: tx_fixup() race condition fix
  ns83820: Avoid bad pointer deref in ns83820_init_one().
  ipv6: Silence privacy extensions initialization
  bnx2x: Update bnx2x version to 1.62.00-4
  bnx2x: Fix AER setting for BCM57712
  bnx2x: Fix BCM84823 LED behavior
  bnx2x: Mark full duplex on some external PHYs
  bnx2x: Fix BCM8073/BCM8727 microcode loading
  bnx2x: LED fix for BCM8727 over BCM57712
  bnx2x: Common init will be executed only once after POR
  bnx2x: Swap BCM8073 PHY polarity if required
  iwlwifi: fix valid chain reading from EEPROM
  ath5k: fix locking in tx_complete_poll_work
  ath9k_hw: do PA offset calibration only on longcal interval
  ...

1  2 
drivers/net/bnx2x/bnx2x.h
drivers/net/bnx2x/bnx2x_reg.h
drivers/net/gianfar.c
include/net/sctp/user.h
net/core/dev.c

@@@ -22,8 -22,8 +22,8 @@@
   * (you will need to reboot afterwards) */
  /* #define BNX2X_STOP_ON_ERROR */
  
- #define DRV_MODULE_VERSION      "1.62.00-3"
- #define DRV_MODULE_RELDATE      "2010/12/21"
+ #define DRV_MODULE_VERSION      "1.62.00-4"
+ #define DRV_MODULE_RELDATE      "2011/01/18"
  #define BNX2X_BC_VER            0x040200
  
  #define BNX2X_MULTI_QUEUE
@@@ -1415,12 -1415,12 +1415,12 @@@ struct bnx2x_func_init_params 
                else
  
  /* skip rx queue
 - * if FCOE l2 support is diabled and this is the fcoe L2 queue
 + * if FCOE l2 support is disabled and this is the fcoe L2 queue
   */
  #define skip_rx_queue(bp, idx)        (NO_FCOE(bp) && IS_FCOE_IDX(idx))
  
  /* skip tx queue
 - * if FCOE l2 support is diabled and this is the fcoe L2 queue
 + * if FCOE l2 support is disabled and this is the fcoe L2 queue
   */
  #define skip_tx_queue(bp, idx)        (NO_FCOE(bp) && IS_FCOE_IDX(idx))
  
     (~misc_registers_sw_timer_cfg_4.sw_timer_cfg_4[1] ) is set */
  #define MISC_REG_SW_TIMER_RELOAD_VAL_4                                 0xa2fc
  /* [RW 32] the value of the counter for sw timers1-8. there are 8 addresses
 -   in this register. addres 0 - timer 1; address 1 - timer 2, ...  address 7 -
 +   in this register. address 0 - timer 1; address 1 - timer 2, ...  address 7 -
     timer 8 */
  #define MISC_REG_SW_TIMER_VAL                                  0xa5c0
  /* [RW 1] Set by the MCP to remember if one or more of the drivers is/are
@@@ -6194,7 -6194,11 +6194,11 @@@ Theotherbitsarereservedandshouldbezero*
  #define MDIO_CTL_REG_84823_MEDIA_PRIORITY_COPPER      0x0000
  #define MDIO_CTL_REG_84823_MEDIA_PRIORITY_FIBER               0x0100
  #define MDIO_CTL_REG_84823_MEDIA_FIBER_1G                     0x1000
+ #define MDIO_CTL_REG_84823_USER_CTRL_REG              0x4005
+ #define MDIO_CTL_REG_84823_USER_CTRL_CMS              0x0080
  
+ #define MDIO_PMA_REG_84823_CTL_LED_CTL_1              0xa8e3
+ #define MDIO_PMA_REG_84823_LED3_STRETCH_EN            0x0080
  
  #define IGU_FUNC_BASE                 0x0400
  
diff --combined drivers/net/gianfar.c
@@@ -95,7 -95,6 +95,7 @@@
  #include <linux/phy.h>
  #include <linux/phy_fixed.h>
  #include <linux/of.h>
 +#include <linux/of_net.h>
  
  #include "gianfar.h"
  #include "fsl_pq_mdio.h"
@@@ -1920,7 -1919,7 +1920,7 @@@ int startup_gfar(struct net_device *nde
                if (err) {
                        for (j = 0; j < i; j++)
                                free_grp_irqs(&priv->gfargrp[j]);
-                               goto irq_fail;
+                       goto irq_fail;
                }
        }
  
diff --combined include/net/sctp/user.h
@@@ -78,6 -78,7 +78,7 @@@ typedef __s32 sctp_assoc_t
  #define SCTP_GET_PEER_ADDR_INFO       15
  #define SCTP_DELAYED_ACK_TIME 16
  #define SCTP_DELAYED_ACK SCTP_DELAYED_ACK_TIME
+ #define SCTP_DELAYED_SACK SCTP_DELAYED_ACK_TIME
  #define SCTP_CONTEXT  17
  #define SCTP_FRAGMENT_INTERLEAVE      18
  #define SCTP_PARTIAL_DELIVERY_POINT   19 /* Set/Get partial delivery point */
  #define SCTP_SOCKOPT_PEELOFF  102     /* peel off association. */
  /* Options 104-106 are deprecated and removed. Do not use this space */
  #define SCTP_SOCKOPT_CONNECTX_OLD     107     /* CONNECTX old requests. */
 -#define SCTP_GET_PEER_ADDRS   108             /* Get all peer addresss. */
 -#define SCTP_GET_LOCAL_ADDRS  109             /* Get all local addresss. */
 +#define SCTP_GET_PEER_ADDRS   108             /* Get all peer address. */
 +#define SCTP_GET_LOCAL_ADDRS  109             /* Get all local address. */
  #define SCTP_SOCKOPT_CONNECTX 110             /* CONNECTX requests. */
  #define SCTP_SOCKOPT_CONNECTX3        111     /* CONNECTX requests (updated) */
  
diff --combined net/core/dev.c
@@@ -2001,7 -2001,7 +2001,7 @@@ static bool can_checksum_protocol(unsig
  
  static int harmonize_features(struct sk_buff *skb, __be16 protocol, int features)
  {
-       if (!can_checksum_protocol(protocol, features)) {
+       if (!can_checksum_protocol(features, protocol)) {
                features &= ~NETIF_F_ALL_CSUM;
                features &= ~NETIF_F_SG;
        } else if (illegal_highdma(skb->dev, skb)) {
@@@ -2023,13 -2023,13 +2023,13 @@@ int netif_skb_features(struct sk_buff *
                return harmonize_features(skb, protocol, features);
        }
  
-       features &= skb->dev->vlan_features;
+       features &= (skb->dev->vlan_features | NETIF_F_HW_VLAN_TX);
  
        if (protocol != htons(ETH_P_8021Q)) {
                return harmonize_features(skb, protocol, features);
        } else {
                features &= NETIF_F_SG | NETIF_F_HIGHDMA | NETIF_F_FRAGLIST |
-                               NETIF_F_GEN_CSUM;
+                               NETIF_F_GEN_CSUM | NETIF_F_HW_VLAN_TX;
                return harmonize_features(skb, protocol, features);
        }
  }
@@@ -6189,7 -6189,7 +6189,7 @@@ static void __net_exit default_device_e
  static void __net_exit default_device_exit_batch(struct list_head *net_list)
  {
        /* At exit all network devices most be removed from a network
 -       * namespace.  Do this in the reverse order of registeration.
 +       * namespace.  Do this in the reverse order of registration.
         * Do this across as many network namespaces as possible to
         * improve batching efficiency.
         */