16 Oct, 2007

38 commits

  • * 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm: (95 commits)
    [ARM] 4578/1: CM-x270: PCMCIA support
    [ARM] 4577/1: ITE 8152 PCI bridge support
    [ARM] 4576/1: CM-X270 machine support
    [ARM] pxa: Avoid pxa_gpio_mode() in gpio_direction_{in,out}put()
    [ARM] pxa: move pxa_set_mode() from pxa2xx_mainstone.c to mainstone.c
    [ARM] pxa: move pxa_set_mode() from pxa2xx_lubbock.c to lubbock.c
    [ARM] pxa: Make cpu_is_pxaXXX dependent on configuration symbols
    [ARM] pxa: PXA3xx base support
    [NET] smc91x: fix PXA DMA support code
    [SERIAL] Fix console initialisation ordering
    [ARM] pxa: tidy up arch/arm/mach-pxa/Makefile
    [ARM] Update arch/arm/Kconfig for drivers/Kconfig changes
    [ARM] 4600/1: fix kernel build failure with build-id-supporting binutils
    [ARM] 4599/1: Preserve ATAG list for use with kexec (2.6.23)
    [ARM] Rename consistent_sync() as dma_cache_maint()
    [ARM] 4572/1: ep93xx: add cirrus logic edb9307 support
    [ARM] 4596/1: S3C2412: Correct IRQs for SDI+CF and add decoding support
    [ARM] 4595/1: ns9xxx: define registers as void __iomem * instead of volatile u32
    [ARM] 4594/1: ns9xxx: use the new gpio functions
    [ARM] 4593/1: ns9xxx: implement generic clockevents
    ...

    Linus Torvalds
     
  • * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (42 commits)
    [IPV6]: Consolidate the ip6_pol_route_(input|output) pair
    [TCP]: Make snd_cwnd_cnt 32-bit
    [TCP]: Update the /proc/net/tcp documentation
    [NETNS]: Don't panic on creating the namespace's loopback
    [NEIGH]: Ensure that pneigh_lookup is protected with RTNL
    [INET]: kmalloc+memset -> kzalloc in frag_alloc_queue
    [ISDN]: Fix compile with CONFIG_ISDN_X25 disabled.
    [IPV6]: Replace sk_buff ** with sk_buff * in input handlers
    [SELINUX]: Update for netfilter ->hook() arg changes.
    [INET]: Consolidate the xxx_put
    [INET]: Small cleanup for xxx_put after evictor consolidation
    [INET]: Consolidate the xxx_evictor
    [INET]: Consolidate the xxx_frag_destroy
    [INET]: Consolidate xxx_the secret_rebuild
    [INET]: Consolidate the xxx_frag_kill
    [INET]: Collect common frag sysctl variables together
    [INET]: Collect frag queues management objects together
    [INET]: Move common fields from frag_queues in one place.
    [TG3]: Fix performance regression on 5705.
    [ISDN]: Remove local copy of device name to make sure renames work.
    ...

    Linus Torvalds
     
  • Keep tx and rx elements separate on different cachelines to prevent
    bouncing.

    Signed-off-by: Jeremy Fitzhardinge
    Acked-by: Jeff Garzik
    Cc: Stephen Hemminger
    Cc: Christoph Hellwig
    Signed-off-by: Jeff Garzik

    Jeremy Fitzhardinge
     
  • This will convert remaining non-obvious or naive calculations of array
    sizes to use ARRAY_SIZE() macro.

    Signed-off-by: Alejandro Martinez Ruiz
    Signed-off-by: Jeff Garzik

    Alejandro Martinez Ruiz
     
  • When the loopback device is failed to initialize inside the new
    namespaces, panic() is called. Do not do it when the namespace
    in question is not the init_net.

    Plus cleanup the error path a bit.

    Signed-off-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Pavel Emelyanov
     
  • A performance regression was introduced by the following commit:

    commit ee6a99b539a50b4e9398938a0a6d37f8bf911550
    Author: Michael Chan
    Date: Wed Jul 18 21:49:10 2007 -0700

    [TG3]: Fix msi issue with kexec/kdump.

    In making that change, the PCI latency timer and cache line size
    registers were not restored after chip reset. On the 5705, the
    latency timer gets reset to 0 during chip reset and this causes
    very poor performance.

    Update version to 3.84.

    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Michael Chan
     
  • By the time we get to that switch by PHY type, we have 8bit
    value. No need to keep it in u64 when u8 would do.

    Signed-off-by: Al Viro
    Signed-off-by: David S. Miller

    Al Viro
     
  • Noticed by Coverity checker and reported by Adrian Bunk.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • drivers/net/ucc_geth.c: In function 'ucc_geth_rx':
    drivers/net/ucc_geth.c:3483: error: 'dev' undeclared (first use in this function)
    drivers/net/ucc_geth.c:3483: error: (Each undeclared identifier is reported only once
    drivers/net/ucc_geth.c:3483: error: for each function it appears in.)
    make[2]: *** [drivers/net/ucc_geth.o] Error 1

    Signed-off-by: Emil Medve
    Signed-off-by: Jeff Garzik

    Emil Medve
     
  • Protect all new napi function calls with CONFIG_GFAR_NAPI. Otherwise
    the driver will stop working when CONFIG_GFAR_NAPI disabled.

    Signed-off-by: Li Yang
    Signed-off-by: Jeff Garzik

    Li Yang
     
  • Signed-off-by: Li Yang
    Signed-off-by: Jeff Garzik

    Li Yang
     
  • Signed-off-by: Li Yang
    Signed-off-by: Jeff Garzik

    Li Yang
     
  • Add new prom.h for AU1x00.

    Signed-off-by: Yoichi Yuasa
    Acked-by: Ralf Baechle
    Signed-off-by: Jeff Garzik

    Yoichi Yuasa
     
  • Update AU1000 get_ethernet_addr().
    Three functions were brought together in one.

    Signed-off-by: Yoichi Yuasa
    Acked-by: Ralf Baechle
    Signed-off-by: Jeff Garzik

    Yoichi Yuasa
     
  • General cleanups mostly as suggested by checkpatch plus getting rid of
    homebrew version of offsetof().

    Signed-off-by: Ralf Baechle
    Signed-off-by: Jeff Garzik

    Ralf Baechle
     
  • Caused by "[NET]: Introduce and use print_mac() and DECLARE_MAC_BUF()"
    aka 0795af5729b18218767fab27c44b1384f72dc9ad.

    Signed-off-by: Ralf Baechle
    Signed-off-by: Jeff Garzik

    Ralf Baechle
     
  • With the base stored in dcr_host_t, there's no need for callers to pass
    the dcr_n into dcr_unmap(). In fact this removes the possibility of them
    passing the incorrect value, which would then be iounmap()'ed.

    Signed-off-by: Michael Ellerman
    Signed-off-by: Jeff Garzik

    Michael Ellerman
     
  • Now that all users of dcr_read()/dcr_write() add the dcr_host_t.base, we
    can save them the trouble and do it in dcr_read()/dcr_write().

    As some background to why we just went through all this jiggery-pokery,
    benh sayeth:

    Initially the goal of the dcr_read/dcr_write routines was to operate like
    mfdcr/mtdcr which take absolute DCR numbers. The reason is that on 4xx
    hardware, indirect DCR access is a pain (goes through a table of
    instructions) and it's useful to have the compiler resolve an absolute DCR
    inline.

    We decided that wasn't worth the API bastardisation since most places
    where absolute DCR values are used are low level 4xx-only code which may
    as well continue using mfdcr/mtdcr, while the new API is designed for
    device "instances" that can exist on 4xx and Axon type platforms and may
    be located at variable DCR offsets.

    Signed-off-by: Michael Ellerman
    Signed-off-by: Jeff Garzik

    Michael Ellerman
     
  • This requires us to do a sort-of fake dcr_map(), so that base is set
    properly. This will be fixed/removed when the device-tree-aware emac driver
    is merged.

    Signed-off-by: Michael Ellerman
    Signed-off-by: Jeff Garzik

    Michael Ellerman
     
  • Now that dcr_host_t contains the base address, we can use that in the
    ibm_newemac code, rather than storing it separately.

    Signed-off-by: Michael Ellerman
    Signed-off-by: Jeff Garzik

    Michael Ellerman
     
  • If pci_enable_device fails, bdx_probe returns without freeing the
    allocated pci_nic structure.

    Coverity CID 1908.

    Signed-off-by: Florin Malita
    Signed-off-by: Jeff Garzik

    Florin Malita
     
  • bea3348eef27e6044b6161fd04c3152215f96411 broke the build of tc35815.c
    for the non-NAPI case:

    CC drivers/net/tc35815.o
    drivers/net/tc35815.c: In function 'tc35815_interrupt':
    drivers/net/tc35815.c:1464: error: redefinition of 'lp'
    drivers/net/tc35815.c:1443: error: previous definition of 'lp' was here

    Signed-off-by: Ralf Baechle
    Signed-off-by: Jeff Garzik

    Ralf Baechle
     
  • Fix build breakage by the recent statistics cleanup in cset
    09f75cd7bf13720738e6a196cc0107ce9a5bd5a0.

    Signed-off-by: Ralf Baechle
    Signed-off-by: Jeff Garzik

    Ralf Baechle
     
  • New version which uses less locking and drops old API

    Signed-off-by: Matteo Croce
    Signed-off-by: Eugene Konev
    Signed-off-by: Felix Fietkau
    Signed-off-by: Jeff Garzik

    Matteo Croce
     
  • The myri10ge driver is now at version 1.3.2-1.287.

    Signed-off-by: Brice Goglin
    Signed-off-by: Jeff Garzik

    Brice Goglin
     
  • Add support for IPv6 TSO to the myri10ge driver.

    Signed-off-by: Brice Goglin
    Signed-off-by: Jeff Garzik

    Brice Goglin
     
  • Update myri10ge firmware headers to latest upstream version with
    TSO6 and RSS support.

    Signed-off-by: Brice Goglin
    Signed-off-by: Jeff Garzik

    Brice Goglin
     
  • Fix one comment in myri10ge.c and update indendation and white spaces
    to match the code generated by indent from upstream CVS.

    Signed-off-by: Brice Goglin
    Signed-off-by: Jeff Garzik

    Brice Goglin
     
  • Update the "don't change MAC of slaves" functionality added in
    previous changes to be a generic option, rather than something tied to
    IB devices, as it's occasionally useful for regular ethernet devices as
    well.

    Adds "fail_over_mac" option (which is automatically enabled for IB
    slaves), applicable only to active-backup mode.

    Includes documentation update.

    Updates bonding driver version to 3.2.0.

    Signed-off-by: Jay Vosburgh
    Signed-off-by: Jeff Garzik

    Jay Vosburgh
     
  • When bonding enslaves non Ethernet devices it takes pointers to functions
    in the module that owns the slaves. In this case it becomes unsafe
    to keep the bonding master registered after last slave was unenslaved
    because we don't know if the pointers are still valid. Destroying the bond when slave_cnt is zero
    ensures that these functions be used anymore.

    Signed-off-by: Moni Shoua
    Acked-by: Jay Vosburgh
    Signed-off-by: Jeff Garzik

    Moni Shoua
     
  • Delay sending a gratuitous_arp when LINK_STATE_LINKWATCH_PENDING bit
    in dev->state field is on. This improves the chances for the arp packet to
    be transmitted.

    Signed-off-by: Moni Shoua
    Acked-by: Jay Vosburgh
    Signed-off-by: Jeff Garzik

    Moni Shoua
     
  • bonding sometimes uses Ethernet constants (such as MTU and address length) which
    are not good when it enslaves non Ethernet devices (such as InfiniBand).

    Signed-off-by: Moni Shoua
    Acked-by: Jay Vosburgh
    Signed-off-by: Jeff Garzik

    Moni Shoua
     
  • Allow to enslave devices when the bonding device is not up. Over the discussion
    held at the previous post this seemed to be the most clean way to go, where it
    is not expected to cause instabilities.

    Normally, the bonding driver is UP before any enslavement takes place.
    Once a netdevice is UP, the network stack acts to have it join some multicast groups
    (eg the all-hosts 224.0.0.1). Now, since ether_setup() have set the bonding device
    type to be ARPHRD_ETHER and address len to be ETHER_ALEN, the net core code
    computes a wrong multicast link address. This is b/c ip_eth_mc_map() is called
    where for multicast joins taking place after the enslavement another ip_xxx_mc_map()
    is called (eg ip_ib_mc_map() when the bond type is ARPHRD_INFINIBAND)

    Signed-off-by: Moni Shoua
    Signed-off-by: Or Gerlitz
    Acked-by: Jay Vosburgh
    Signed-off-by: Jeff Garzik

    Moni Shoua
     
  • This patch allows for enslaving netdevices which do not support
    the set_mac_address() function. In that case the bond mac address is the one
    of the active slave, where remote peers are notified on the mac address
    (neighbour) change by Gratuitous ARP sent by bonding when fail-over occurs
    (this is already done by the bonding code).

    Signed-off-by: Moni Shoua
    Signed-off-by: Or Gerlitz
    Acked-by: Jay Vosburgh
    Signed-off-by: Jeff Garzik

    Moni Shoua
     
  • This patch changes some of the bond netdevice attributes and functions
    to be that of the active slave for the case of the enslaved device not being
    of ARPHRD_ETHER type. Basically it overrides those setting done by ether_setup(),
    which are netdevice **type** dependent and hence might be not appropriate for
    devices of other types. It also enforces mutual exclusion on bonding slaves
    from dissimilar ether types, as was concluded over the v1 discussion.

    IPoIB (see Documentation/infiniband/ipoib.txt) MAC address is made of a 3 bytes
    IB QP (Queue Pair) number and 16 bytes IB port GID (Global ID) of the port this
    IPoIB device is bounded to. The QP is a resource created by the IB HW and the
    GID is an identifier burned into the HCA (i have omitted here some details which
    are not important for the bonding RFC).

    Signed-off-by: Moni Shoua
    Signed-off-by: Or Gerlitz
    Acked-by: Jay Vosburgh
    Signed-off-by: Jeff Garzik

    Moni Shoua
     
  • pci_enable_device() is __must_check so do that in natsemi_resume().

    Signed-off-by: Mark Brown
    Signed-off-by: Jeff Garzik

    Mark Brown
     
  • Unless we have failed to fill the RX ring the timer used by the natsemi
    driver is not particularly urgent and can use round_jiffies() to allow
    grouping with other timers.

    Signed-off-by: Mark Brown
    Signed-off-by: Jeff Garzik

    Mark Brown
     
  • The PXA DMA support code for smc91x doesn't pass a struct device to
    the dma_*map_single() functions, which leads to an oops in the dma
    bounce code. We have a struct device which was used to probe the
    SMC chip. Use it.

    (This patch is slightly larger because it requires struct smc_local
    to move into the header file.)

    Signed-off-by: Russell King

    Russell King
     

15 Oct, 2007

2 commits

  • The call to napi_disable() in the PCI shutdown handler is problematic,
    and is aggravated by the new NAPI.
    Also, make sure watchdog timer doesn't go off.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: Linus Torvalds

    Stephen Hemminger
     
  • if your mask is host-endian, you should apply it after le64_to_cpu();
    if it's little-endian - before. Doing both (for the same mask and
    little-endian value) is broken.

    Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro