Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6
Linus Torvalds [Sat, 23 Oct 2010 18:47:02 +0000 (11:47 -0700)]
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1699 commits)
  bnx2/bnx2x: Unsupported Ethtool operations should return -EINVAL.
  vlan: Calling vlan_hwaccel_do_receive() is always valid.
  tproxy: use the interface primary IP address as a default value for --on-ip
  tproxy: added IPv6 support to the socket match
  cxgb3: function namespace cleanup
  tproxy: added IPv6 support to the TPROXY target
  tproxy: added IPv6 socket lookup function to nf_tproxy_core
  be2net: Changes to use only priority codes allowed by f/w
  tproxy: allow non-local binds of IPv6 sockets if IP_TRANSPARENT is enabled
  tproxy: added tproxy sockopt interface in the IPV6 layer
  tproxy: added udp6_lib_lookup function
  tproxy: added const specifiers to udp lookup functions
  tproxy: split off ipv6 defragmentation to a separate module
  l2tp: small cleanup
  nf_nat: restrict ICMP translation for embedded header
  can: mcp251x: fix generation of error frames
  can: mcp251x: fix endless loop in interrupt handler if CANINTF_MERRF is set
  can-raw: add msg_flags to distinguish local traffic
  9p: client code cleanup
  rds: make local functions/variables static
  ...

Fix up conflicts in net/core/dev.c, drivers/net/pcmcia/smc91c92_cs.c and
drivers/net/wireless/ath/ath9k/debug.c as per David

57 files changed:
1  2 
Documentation/feature-removal-schedule.txt
MAINTAINERS
arch/arm/mach-omap2/board-omap3pandora.c
drivers/bluetooth/hci_ldisc.c
drivers/net/3c527.c
drivers/net/Kconfig
drivers/net/bfin_mac.c
drivers/net/cxgb4/cxgb4_main.c
drivers/net/irda/sir_dev.c
drivers/net/pcmcia/3c574_cs.c
drivers/net/pcmcia/3c589_cs.c
drivers/net/pcmcia/axnet_cs.c
drivers/net/pcmcia/com20020_cs.c
drivers/net/pcmcia/fmvj18x_cs.c
drivers/net/pcmcia/ibmtr_cs.c
drivers/net/pcmcia/nmclan_cs.c
drivers/net/pcmcia/pcnet_cs.c
drivers/net/pcmcia/smc91c92_cs.c
drivers/net/pcmcia/xirc2ps_cs.c
drivers/net/ppp_generic.c
drivers/net/usb/hso.c
drivers/net/wireless/airo.c
drivers/net/wireless/ath/ath5k/debug.c
drivers/net/wireless/ath/ath9k/debug.c
drivers/net/wireless/ath/ath9k/htc_drv_main.c
drivers/net/wireless/iwlwifi/iwl-3945-rs.c
drivers/net/wireless/iwlwifi/iwl-agn-rs.c
drivers/net/wireless/iwlwifi/iwl-debugfs.c
drivers/net/wireless/libertas/if_cs.c
drivers/net/wireless/ray_cs.c
drivers/net/wireless/rt2x00/rt2x00debug.c
drivers/net/wireless/wl1251/debugfs.c
drivers/net/wireless/wl3501_cs.c
drivers/s390/scsi/zfcp_qdio.c
drivers/scsi/bnx2i/bnx2i.h
drivers/scsi/bnx2i/bnx2i_hwi.c
drivers/vhost/net.c
drivers/vhost/vhost.c
drivers/vhost/vhost.h
include/linux/netfilter/nfnetlink_conntrack.h
include/linux/pci_ids.h
net/bluetooth/rfcomm/tty.c
net/core/datagram.c
net/core/dev.c
net/core/skbuff.c
net/core/sock.c
net/ipv4/netfilter/nf_nat_core.c
net/mac80211/debugfs.c
net/mac80211/debugfs_key.c
net/mac80211/debugfs_netdev.c
net/mac80211/debugfs_sta.c
net/mac80211/rate.c
net/mac80211/rc80211_pid_debugfs.c
net/netfilter/core.c
net/netfilter/nf_conntrack_netlink.c
net/sctp/probe.c
net/socket.c

diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
@@@ -215,16 -219,9 +222,9 @@@ menuconfig NET_ETHERNE
  
  if NET_ETHERNET
  
- config MII
-       tristate "Generic Media Independent Interface device support"
-       help
-         Most ethernet controllers have MII transceiver either as an external
-         or internal device.  It is safe to say Y or M here even if your
-         ethernet card lack MII.
  config MACB
        tristate "Atmel MACB support"
 -      depends on AVR32 || ARCH_AT91SAM9260 || ARCH_AT91SAM9263 || ARCH_AT91SAM9G20 || ARCH_AT91SAM9G45 || ARCH_AT91CAP9
 +      depends on HAVE_NET_MACB
        select PHYLIB
        help
          The Atmel MACB ethernet interface is found on many AT32 and AT91
Simple merge
Simple merge
Simple merge
@@@ -279,11 -280,11 +279,10 @@@ static int tc574_probe(struct pcmcia_de
        spin_lock_init(&lp->window_lock);
        link->resource[0]->end = 32;
        link->resource[0]->flags |= IO_DATA_PATH_WIDTH_16;
 -      link->conf.Attributes = CONF_ENABLE_IRQ;
 -      link->conf.IntType = INT_MEMORY_AND_IO;
 -      link->conf.ConfigIndex = 1;
 +      link->config_flags |= CONF_ENABLE_IRQ;
 +      link->config_index = 1;
  
        dev->netdev_ops = &el3_netdev_ops;
-       SET_ETHTOOL_OPS(dev, &netdev_ethtool_ops);
        dev->watchdog_timeo = TX_TIMEOUT;
  
        return tc574_config(link);
Simple merge
Simple merge
Simple merge
@@@ -594,10 -605,9 +595,10 @@@ static int fmvj18x_setup_mfc(struct pcm
      if (i != 0)
        return -1;
  
 -    lp->base = ioremap(req.Base, req.Size);
 +    lp->base = ioremap(link->resource[3]->start,
 +                     resource_size(link->resource[3]));
      if (lp->base == NULL) {
-       printk(KERN_NOTICE "fmvj18x_cs: ioremap failed\n");
+       netdev_notice(dev, "ioremap failed\n");
        return -1;
      }
  
@@@ -101,20 -103,11 +102,10 @@@ static void ibmtr_detach(struct pcmcia_
  
  typedef struct ibmtr_dev_t {
        struct pcmcia_device    *p_dev;
 -    struct net_device *dev;
 -    window_handle_t     sram_win_handle;
 -    struct tok_info   *ti;
 +      struct net_device       *dev;
 +      struct tok_info         *ti;
  } ibmtr_dev_t;
  
- static void netdev_get_drvinfo(struct net_device *dev,
-                              struct ethtool_drvinfo *info)
- {
-       strcpy(info->driver, "ibmtr_cs");
- }
- static const struct ethtool_ops netdev_ethtool_ops = {
-       .get_drvinfo            = netdev_get_drvinfo,
- };
  static irqreturn_t ibmtr_interrupt(int irq, void *dev_id) {
        ibmtr_dev_t *info = dev_id;
        struct net_device *dev = info->dev;
Simple merge
@@@ -1466,13 -1513,12 +1446,13 @@@ static int setup_shmem_window(struct pc
  
      ei_status.tx_start_page = start_pg;
      ei_status.rx_start_page = start_pg + TX_PAGES;
 -    ei_status.stop_page = start_pg + ((req.Size - offset) >> 8);
 +    ei_status.stop_page = start_pg + (
 +          (resource_size(link->resource[3]) - offset) >> 8);
  
      /* set up block i/o functions */
-     ei_status.get_8390_hdr = &shmem_get_8390_hdr;
-     ei_status.block_input = &shmem_block_input;
-     ei_status.block_output = &shmem_block_output;
+     ei_status.get_8390_hdr = shmem_get_8390_hdr;
+     ei_status.block_input = shmem_block_input;
+     ei_status.block_output = shmem_block_output;
  
      info->flags |= USE_SHMEM;
      return 0;
@@@ -792,10 -819,13 +794,10 @@@ static int check_sig(struct pcmcia_devi
      }
  
      if (width) {
-           printk(KERN_INFO "smc91c92_cs: using 8-bit IO window.\n");
 -          modconf_t mod = {
 -                  .Attributes = CONF_IO_CHANGE_WIDTH,
 -          };
+           pr_info("using 8-bit IO window\n");
  
            smc91c92_suspend(link);
 -          pcmcia_modify_configuration(link, &mod);
 +          pcmcia_fixup_iowidth(link);
            smc91c92_resume(link);
            return check_sig(link);
      }
@@@ -792,11 -832,9 +786,11 @@@ xirc2ps_config(struct pcmcia_device * l
             * try to configure as Ethernet only.
             * .... */
        }
-       printk(KNOT_XIRC "no ports available\n");
+       pr_notice("no ports available\n");
      } else {
 +      link->io_lines = 10;
        link->resource[0]->end = 16;
 +      link->resource[0]->flags |= IO_DATA_PATH_WIDTH_16;
        for (ioaddr = 0x300; ioaddr < 0x400; ioaddr += 0x10) {
            link->resource[0]->start = ioaddr;
            if (!(err = pcmcia_request_io(link)))
Simple merge
Simple merge
Simple merge
@@@ -483,9 -480,62 +483,63 @@@ static const struct file_operations fop
        .write = write_file_antenna,
        .open = ath5k_debugfs_open,
        .owner = THIS_MODULE,
 +      .llseek = default_llseek,
  };
  
+ /* debugfs: misc */
+ static ssize_t read_file_misc(struct file *file, char __user *user_buf,
+                                  size_t count, loff_t *ppos)
+ {
+       struct ath5k_softc *sc = file->private_data;
+       char buf[700];
+       unsigned int len = 0;
+       u32 filt = ath5k_hw_get_rx_filter(sc->ah);
+       len += snprintf(buf+len, sizeof(buf)-len, "bssid-mask: %pM\n",
+                       sc->bssidmask);
+       len += snprintf(buf+len, sizeof(buf)-len, "filter-flags: 0x%x ",
+                       filt);
+       if (filt & AR5K_RX_FILTER_UCAST)
+               len += snprintf(buf+len, sizeof(buf)-len, " UCAST");
+       if (filt & AR5K_RX_FILTER_MCAST)
+               len += snprintf(buf+len, sizeof(buf)-len, " MCAST");
+       if (filt & AR5K_RX_FILTER_BCAST)
+               len += snprintf(buf+len, sizeof(buf)-len, " BCAST");
+       if (filt & AR5K_RX_FILTER_CONTROL)
+               len += snprintf(buf+len, sizeof(buf)-len, " CONTROL");
+       if (filt & AR5K_RX_FILTER_BEACON)
+               len += snprintf(buf+len, sizeof(buf)-len, " BEACON");
+       if (filt & AR5K_RX_FILTER_PROM)
+               len += snprintf(buf+len, sizeof(buf)-len, " PROM");
+       if (filt & AR5K_RX_FILTER_XRPOLL)
+               len += snprintf(buf+len, sizeof(buf)-len, " XRPOLL");
+       if (filt & AR5K_RX_FILTER_PROBEREQ)
+               len += snprintf(buf+len, sizeof(buf)-len, " PROBEREQ");
+       if (filt & AR5K_RX_FILTER_PHYERR_5212)
+               len += snprintf(buf+len, sizeof(buf)-len, " PHYERR-5212");
+       if (filt & AR5K_RX_FILTER_RADARERR_5212)
+               len += snprintf(buf+len, sizeof(buf)-len, " RADARERR-5212");
+       if (filt & AR5K_RX_FILTER_PHYERR_5211)
+               snprintf(buf+len, sizeof(buf)-len, " PHYERR-5211");
+       if (filt & AR5K_RX_FILTER_RADARERR_5211)
+               len += snprintf(buf+len, sizeof(buf)-len, " RADARERR-5211");
+       len += snprintf(buf+len, sizeof(buf)-len, "\nopmode: %s (%d)\n",
+                       ath_opmode_to_string(sc->opmode), sc->opmode);
+       if (len > sizeof(buf))
+               len = sizeof(buf);
+       return simple_read_from_buffer(user_buf, count, ppos, buf, len);
+ }
+ static const struct file_operations fops_misc = {
+       .read = read_file_misc,
+       .open = ath5k_debugfs_open,
+       .owner = THIS_MODULE,
+ };
  
  /* debugfs: frameerrors */
  
@@@ -379,100 -375,9 +379,10 @@@ static ssize_t read_file_interrupt(stru
  static const struct file_operations fops_interrupt = {
        .read = read_file_interrupt,
        .open = ath9k_debugfs_open,
 -      .owner = THIS_MODULE
 +      .owner = THIS_MODULE,
 +      .llseek = default_llseek,
  };
  
- void ath_debug_stat_rc(struct ath_softc *sc, int final_rate)
- {
-       struct ath_rc_stats *stats;
-       stats = &sc->debug.stats.rcstats[final_rate];
-       stats->success++;
- }
- void ath_debug_stat_retries(struct ath_softc *sc, int rix,
-                           int xretries, int retries, u8 per)
- {
-       struct ath_rc_stats *stats = &sc->debug.stats.rcstats[rix];
-       stats->xretries += xretries;
-       stats->retries += retries;
-       stats->per = per;
- }
- static ssize_t read_file_rcstat(struct file *file, char __user *user_buf,
-                               size_t count, loff_t *ppos)
- {
-       struct ath_softc *sc = file->private_data;
-       char *buf;
-       unsigned int len = 0, max;
-       int i = 0;
-       ssize_t retval;
-       if (sc->cur_rate_table == NULL)
-               return 0;
-       max = 80 + sc->cur_rate_table->rate_cnt * 1024 + 1;
-       buf = kmalloc(max, GFP_KERNEL);
-       if (buf == NULL)
-               return -ENOMEM;
-       len += sprintf(buf, "%6s %6s %6s "
-                      "%10s %10s %10s %10s\n",
-                      "HT", "MCS", "Rate",
-                      "Success", "Retries", "XRetries", "PER");
-       for (i = 0; i < sc->cur_rate_table->rate_cnt; i++) {
-               u32 ratekbps = sc->cur_rate_table->info[i].ratekbps;
-               struct ath_rc_stats *stats = &sc->debug.stats.rcstats[i];
-               char mcs[5];
-               char htmode[5];
-               int used_mcs = 0, used_htmode = 0;
-               if (WLAN_RC_PHY_HT(sc->cur_rate_table->info[i].phy)) {
-                       used_mcs = snprintf(mcs, 5, "%d",
-                               sc->cur_rate_table->info[i].ratecode);
-                       if (WLAN_RC_PHY_40(sc->cur_rate_table->info[i].phy))
-                               used_htmode = snprintf(htmode, 5, "HT40");
-                       else if (WLAN_RC_PHY_20(sc->cur_rate_table->info[i].phy))
-                               used_htmode = snprintf(htmode, 5, "HT20");
-                       else
-                               used_htmode = snprintf(htmode, 5, "????");
-               }
-               mcs[used_mcs] = '\0';
-               htmode[used_htmode] = '\0';
-               len += snprintf(buf + len, max - len,
-                       "%6s %6s %3u.%d: "
-                       "%10u %10u %10u %10u\n",
-                       htmode,
-                       mcs,
-                       ratekbps / 1000,
-                       (ratekbps % 1000) / 100,
-                       stats->success,
-                       stats->retries,
-                       stats->xretries,
-                       stats->per);
-       }
-       if (len > max)
-               len = max;
-       retval = simple_read_from_buffer(user_buf, count, ppos, buf, len);
-       kfree(buf);
-       return retval;
- }
- static const struct file_operations fops_rcstat = {
-       .read = read_file_rcstat,
-       .open = ath9k_debugfs_open,
-       .owner = THIS_MODULE,
-       .llseek = default_llseek,
- };
  static const char * ath_wiphy_state_str(enum ath_wiphy_state state)
  {
        switch (state) {
Simple merge
@@@ -43,9 -43,9 +43,8 @@@
  #include <linux/if_arp.h>
  #include <linux/ioport.h>
  #include <linux/skbuff.h>
- #include <linux/ethtool.h>
  #include <linux/ieee80211.h>
  
 -#include <pcmcia/cs.h>
  #include <pcmcia/cistpl.h>
  #include <pcmcia/cisreg.h>
  #include <pcmcia/ds.h>
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -106,10 -104,10 +104,10 @@@ struct vhost_virtqueue 
         * vhost_work execution acts instead of rcu_read_lock() and the end of
         * vhost_work execution acts instead of rcu_read_lock().
         * Writers use virtqueue mutex. */
 -      void *private_data;
 +      void __rcu *private_data;
        /* Log write descriptors */
        void __user *log_base;
-       struct vhost_log log[VHOST_NET_MAX_SG];
+       struct vhost_log *log;
  };
  
  struct vhost_dev {
Simple merge
Simple merge
Simple merge
diff --cc net/core/dev.c
  #include <linux/jhash.h>
  #include <linux/random.h>
  #include <trace/events/napi.h>
 +#include <trace/events/net.h>
 +#include <trace/events/skb.h>
  #include <linux/pci.h>
+ #include <linux/inetdevice.h>
  
  #include "net-sysfs.h"
  
@@@ -2835,10 -2898,6 +2905,8 @@@ static int __netif_receive_skb(struct s
        if (!netdev_tstamp_prequeue)
                net_timestamp_check(skb);
  
 +      trace_netif_receive_skb(skb);
-       if (vlan_tx_tag_present(skb) && vlan_hwaccel_do_receive(skb))
-               return NET_RX_SUCCESS;
 +
        /* if we've gotten here through NAPI, check netpoll */
        if (netpoll_receive_skb(skb))
                return NET_RX_DROP;
Simple merge
diff --cc net/core/sock.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc net/socket.c
Simple merge