summaryrefslogtreecommitdiffstats
path: root/drivers/net
Commit message (Collapse)AuthorAgeFilesLines
...
* | | mv643xx_eth: implement ->set_rx_mode()Lennert Buytenhek2008-11-201-70/+104
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, if multiple unicast addresses are programmed into a mv643xx_eth interface, the core networking will resort to enabling promiscuous mode on the interface, as mv643xx_eth does not implement ->set_rx_mode(). This patch switches mv643xx_eth over from ->set_multicast_list() to ->set_rx_mode(), and implements support for secondary unicast addresses. The hardware can handle multiple unicast addresses as long as their first 11 nibbles are the same (i.e. are of the form xx:xx:xx:xx:xx:xy where the x part is the same for all addresses), so if that is the case, we use that mode. If it's not the case, we enable unicast promiscuous mode in the hardware, which is slightly better than enabling promiscuous mode for multicasts as well, which is what would happen before. While we are at it, change the programming sequence so that we don't clear all filter bits first, so we don't lose all incoming packets while the filter is being reprogrammed. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | mv643xx_eth: inline txq_alloc_desc_index()Lennert Buytenhek2008-11-201-17/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since txq_alloc_desc_index() is a very simple function, and since descriptor ring index handling for transmit reclaim, receive processing and receive refill is already handled inline as well, inline txq_alloc_desc_index() into its two call sites. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | mv643xx_eth: introduce per-port register area pointerLennert Buytenhek2008-11-201-109/+121
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The mv643xx_eth driver uses the rdl()/wrl() macros to read and write hardware registers. Per-port registers are accessed in the following way: #define PORT_STATUS(p) (0x0444 + ((p) << 10)) [...] static inline u32 rdl(struct mv643xx_eth_private *mp, int offset) { return readl(mp->shared->base + offset); } [...] port_status = rdl(mp, PORT_STATUS(mp->port_num)); By giving the per-port 'struct mv643xx_eth_private' its own 'void __iomem *base' pointer that points to the per-port register area, we can get rid of both the double indirection and the << 10 that is done for every per-port register access -- this patch does that. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | mv643xx_eth: checkpatch fixesLennert Buytenhek2008-11-201-16/+22
| | | | | | | | | | | | | | | | | | | | | Fix up a couple of coding style issues caught by checkpatch. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | myri10ge: remove hardcoded sram_sizeBrice Goglin2008-11-201-10/+13
| | | | | | | | | | | | | | | | | | | | | | | | Removes the use of a hardcoded sram_size, determine string_spec location from the MCP header instead. Signed-off-by: Brice Goglin <brice@myri.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | myri10ge: fix per-slice rx/tx_dropped countersBrice Goglin2008-11-201-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | Properly attribute transmit and receive drops by incrementing the per-slice counter. Signed-off-by: Brice Goglin <brice@myri.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | netdev/smc91x: unify Blackfin code a bit and use proper read/write functionsMike Frysinger2008-11-201-33/+12
| | | | | | | | | | | | | | | | | | Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | netdevice hamradio: Convert directly reference of netdev->privWang Chen2008-11-202-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | Since all the memory, which pointed by netdev->priv, are allocated in advance instead of by alloc_netdev(). Use netdev->ml_priv to point to those memory. Signed-off-by: Wang Chen <wangchen@cn.fujitsu.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | netdevice: 82596: Convert netdev->priv to netdev_privWang Chen2008-11-201-14/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. When alloc_etherdev(), no memory be allocated to netdev->priv. 2. And it's need to get a whole page for priv. For these reasons, use netdev->ml_priv to point to the page is the best method to convert directly reference of netdev->priv. Signed-off-by: Wang Chen <wangchen@cn.fujitsu.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | igb: Fix tx/rx_ring_count parameters for igb on suspend/resume/ring resizeAlexander Duyck2008-11-203-57/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When suspending the device the ring structure is freed which causes it to loose track of the count. To resolve this we need to move the ring count outside of the ring structure and store it in the adapter struct. In addition to resolving the suspend/resume issue this patch also addresses issues seen in the event of memory allocation errors causing uneven ring sizes on multiple queues. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | igb: simplify swap in clean_rx_irq if using packet splitAlexander Duyck2008-11-201-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This update replaces the xchg calls that were added with a pair of assignments as there is no need for the xchg calls and they were found to cause issues on some architectures. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | igb: update name to reflect new hardwareAlexander Duyck2008-11-201-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | This patch adds the 82576 device to the description for igb in Kconfig. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | acenic: convert to net_device_opsStephen Hemminger2008-11-191-8/+12
| | | | | | | | | | | | | | | | | | | | | Convert this driver to network device ops. Compile tested only. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | niu: convert to net_device_opsStephen Hemminger2008-11-191-8/+13
| | | | | | | | | | | | | | | | | | | | | Convert this driver to network device ops. Compile tested only (give me hw!) Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | forcedeth: convert to net_device_opsStephen Hemminger2008-11-191-12/+17
| | | | | | | | | | | | | | | | | | | | | Convert this driver to network device ops. Compile tested only. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | tg3: convert to net_device_opsStephen Hemminger2008-11-191-12/+19
| | | | | | | | | | | | | | | | | | | | | Convert this driver to network device ops. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | ixgb: convert to net_device_opsStephen Hemminger2008-11-192-27/+36
| | | | | | | | | | | | | | | | | | | | | Convert this driver to network device ops. Compile tested only. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | enic: convert to net_device_opsStephen Hemminger2008-11-191-12/+17
| | | | | | | | | | | | | | | | | | | | | Convert this driver to network device ops. Compile tested only. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | ppp: convert to net_device_opsStephen Hemminger2008-11-191-1/+5
| | | | | | | | | | | | | | | | | | | | | Convert this driver to network device ops. Compile tested only. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | e100: convert to net_device_opsStephen Hemminger2008-11-191-11/+16
| | | | | | | | | | | | | | | | | | | | | Convert to new network device ops interface. Compile tested only. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | igb: convert to net_device_opsStephen Hemminger2008-11-191-14/+19
| | | | | | | | | | | | | | | | | | | | | Convert to new network device ops interface. Compile tested only. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | via-velocity: convert to net_device_opsStephen Hemminger2008-11-191-10/+14
| | | | | | | | | | | | | | | | | | | | | Convert this driver to network device ops. Compile tested only. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | e1000: convert to net_device_opsStephen Hemminger2008-11-191-14/+21
| | | | | | | | | | | | | | | | | | | | | Convert to new network device ops interface. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | cxgb2: convert to net_device_opsStephen Hemminger2008-11-191-11/+19
| | | | | | | | | | | | | | | | | | | | | Convert this driver to network device ops. Compile teseted only. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | cxgb3: convert to net_device_opsStephen Hemminger2008-11-191-13/+16
| | | | | | | | | | | | | | | | | | | | | Convert this driver to network device ops. Compile tested only. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | atlx: convert to net_device_opsStephen Hemminger2008-11-192-28/+33
| | | | | | | | | | | | | | | | | | | | | Convert this driver to network device ops. Compile tested only. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | atl1e: convert to net_device_opsStephen Hemminger2008-11-191-13/+19
| | | | | | | | | | | | | | | | | | | | | Convert this driver to network device ops. Compile tested only. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | tun: convert to net_device_opsStephen Hemminger2008-11-191-5/+20
| | | | | | | | | | | | | | | | | | | | | | | | Convert the TUN/TAP tunnel driver to net_device_ops. Split the ops in two, and retain compatability. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | 8139: convert to net_device_opsStephen Hemminger2008-11-192-24/+36
| | | | | | | | | | | | | | | | | | | | | Convert to new network device ops interface. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | r8169: convert to net_device_opsFrancois Romieu2008-11-191-16/+32
| | | | | | | | | | | | | | | | | | Based upon a patch by Stephen Hemminger. Signed-off-by: David S. Miller <davem@davemloft.net>
* | | skge: convert to net_device_opsStephen Hemminger2008-11-191-18/+33
| | | | | | | | | | | | | | | | | | | | | Convert to new network device ops interface. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | sky2: convert to net_device_opsStephen Hemminger2008-11-191-13/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | Convert to new network device ops interface. Slight additional complexity here because the second port does not allow netpoll and therefore has different virtual function table. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | e1000e: convert to net_device_opsStephen Hemminger2008-11-191-14/+20
| | | | | | | | | | | | | | | | | | Convert e1000e to network device ops. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
* | | bonding: convert to net_device_opsStephen Hemminger2008-11-193-66/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Convert to net_device_ops table. Note: for some operations move error checking into generic networking layer (rather than looking at pointers in bonding). A couple of gratituous style cleanups to get rid of extra {} Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | macvlan: convert to net_device_opsStephen Hemminger2008-11-191-7/+12
| | | | | | | | | | | | | | | | | | | | | Convert to net_device_ops function table. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | veth: convert to net_device_opsStephen Hemminger2008-11-191-4/+8
| | | | | | | | | | | | | | | | | | | | | Convert to net_device_ops function table. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | ifb: convert to net_device_opsStephen Hemminger2008-11-191-3/+8
| | | | | | | | | | | | | | | | | | | | | Convert to new network device ops interface. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | netdev: convert loopback to net_device_opsStephen Hemminger2008-11-191-4/+8
| | | | | | | | | | | | | | | | | | | | | First device to convert over is the loopback device. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | netdev: introduce dev_get_stats()Stephen Hemminger2008-11-192-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order for the network device ops get_stats call to be immutable, the handling of the default internal network device stats block has to be changed. Add a new helper function which replaces the old use of internal_get_stats. Note: change return code to make it clear that the caller should not go changing the returned statistics. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | Merge branch 'master' of ↵David S. Miller2008-11-1832-114/+531
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: drivers/isdn/i4l/isdn_net.c fs/cifs/connect.c
| * | Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6Linus Torvalds2008-11-1723-98/+494
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (27 commits) rtnetlink: propagate error from dev_change_flags in do_setlink() isdn: remove extra byteswap in isdn_net_ciscohdlck_slarp_send_reply Phonet: refuse to send bigger than MTU packets e1000e: fix IPMI traffic e1000e: fix warn_on reload after phy_id error phy: fix phy address bug e100: fix dma error in direction for mapping igb: use dev_printk instead of printk qla3xxx: Cleanup: Fix link print statements. igb: Use device_set_wakeup_enable e1000: Use device_set_wakeup_enable e1000e: Use device_set_wakeup_enable via-velocity: enable perfect filtering for multicast packets phy: Add support for Marvell 88E1118 PHY mlx4_en: Pause parameters per port phylib: fix premature freeing of struct mii_bus atl1: Do not enumerate options unsupported by chip atl1e: fix broken multicast by removing unnecessary crc inversion gianfar: Fix DMA unmap invocations net/ucc_geth: Fix oops in uec_get_ethtool_stats() ...
| | * e1000e: fix IPMI trafficJeff Kirsher2008-11-163-2/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some users reported that they have machines with BMCs enabled that cannot receive IPMI traffic after e1000e is loaded. http://marc.info/?l=e1000-devel&m=121909039127414&w=2 http://marc.info/?l=e1000-devel&m=121365543823387&w=2 This fixes the issue if they load with the new parameter = 0 by disabling crc stripping, but leaves the performance feature on for most users. Based on work done by Hong Zhang. Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| | * e1000e: fix warn_on reload after phy_id errorJeff Kirsher2008-11-161-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the driver fails to initialize the first time due to the failure in the phy_id check the kernel triggers a warn_on on the second try to load the driver because the driver did not free the msi/x resources in the first load because of the previous failure in phy_id check. Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| | * phy: fix phy address bugGiulio Benetti2008-11-161-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | PHYID returns 0xffff and not 0xffffffff when not found and in some case(at91sam9263) 0x0. Maybe this patch could be useful. Signed-off-by: Giulio Benetti <giulio.benetti@micronovasrl.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| | * e100: fix dma error in direction for mappingJesse Brandeburg2008-11-161-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The e100 driver triggers BUG_ON(buf->direction != dir) by doing pci_map_single(..., PCI_DMA_BIDIRECTIONAL) and pci_dma_sync_single_for_device(..., PCI_DMA_TODEVICE). Changing the DMA direction, especially with dmabounce will result in unexpected behaviour. Reported-by: Anders Grafstrom <grfstrm@users.sourceforge.net> Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| | * igb: use dev_printk instead of printkBjorn Helgaas2008-11-161-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | Use dev_printk() instead of printk() to give a little more context and use consistent format. Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| | * qla3xxx: Cleanup: Fix link print statements.Ron Mercer2008-11-161-14/+5
| | | | | | | | | | | | | | | | | | | | | Removed debug print statements and improved conditionals around informational statements. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| | * igb: Use device_set_wakeup_enable\"Rafael J. Wysocki\2008-11-162-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since dev->power.should_wakeup bit is used by the PCI core to decide whether the device should wake up the system from sleep states, set/unset this bit whenever WOL is enabled/disabled using igb_set_wol(). Accordingly, use device_can_wakeup() for checking if wake-up is supported by the device. Signed-off-by: "Rafael J. Wysocki" <rjw@sisk.pl> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| | * e1000: Use device_set_wakeup_enable\"Rafael J. Wysocki\2008-11-162-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since dev->power.should_wakeup bit is used by the PCI core to decide whether the device should wake up the system from sleep states, set/unset this bit whenever WOL is enabled/disabled using e1000_set_wol(). Accordingly, use device_can_wakeup() for checking if wake-up is supported by the device. Signed-off-by: "Rafael J. Wysocki" <rjw@sisk.pl> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| | * e1000e: Use device_set_wakeup_enable\"Rafael J. Wysocki\2008-11-162-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since dev->power.should_wakeup bit is used by the PCI core to decide whether the device should wake up the system from sleep states, set/unset this bit whenever WOL is enabled/disabled using e1000_set_wol(). Accordingly, use device_can_wakeup() for checking if wake-up is supported by the device. Signed-off-by: "Rafael J. Wysocki" <rjw@sisk.pl> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
OpenPOWER on IntegriCloud