11 Oct, 2007

6 commits

  • These have been superceded by the new ->get_sset_count() hook.

    Signed-off-by: Jeff Garzik
    Signed-off-by: David S. Miller

    Jeff Garzik
     
  • This is nicer than the MAC_FMT stuff.

    Signed-off-by: Joe Perches
    Signed-off-by: David S. Miller

    Joe Perches
     
  • For the operations
    get-tx-csum
    get-sg
    get-tso
    get-ufo
    the default ethtool_op_xxx behavior is fine for all drivers, so we
    permit op==NULL to imply the default behavior.

    This provides a more uniform behavior across all drivers, eliminating
    ethtool(8) "ioctl not supported" errors on older drivers that had
    not been updated for the latest sub-ioctls.

    The ethtool_op_xxx() functions are left exported, in case anyone
    wishes to call them directly from a driver-private implementation --
    a not-uncommon case. Should an ethtool_op_xxx() helper remain unused
    for a while, except by net/core/ethtool.c, we can un-export it at a
    later date.

    [ Resolved conflicts with set/get value ethtool patch... -DaveM ]

    Signed-off-by: Jeff Garzik
    Signed-off-by: David S. Miller

    Jeff Garzik
     
  • Signed-off-by: Denis Cheng
    Signed-off-by: Jeff Garzik

    Denis Cheng
     
  • It's been a useless no-op for long enough in 2.6 so I figured it's time to
    remove it. The number of people that could object because they're
    maintaining unified 2.4 and 2.6 drivers is probably rather small.

    [ Handled drivers added by netdev tree and some missed IRDA cases... -DaveM ]

    Signed-off-by: Ralf Baechle
    Signed-off-by: Jeff Garzik
    Signed-off-by: David S. Miller

    Ralf Baechle
     
  • Several devices have multiple independant RX queues per net
    device, and some have a single interrupt doorbell for several
    queues.

    In either case, it's easier to support layouts like that if the
    structure representing the poll is independant from the net
    device itself.

    The signature of the ->poll() call back goes from:

    int foo_poll(struct net_device *dev, int *budget)

    to

    int foo_poll(struct napi_struct *napi, int budget)

    The caller is returned the number of RX packets processed (or
    the number of "NAPI credits" consumed if you want to get
    abstract). The callee no longer messes around bumping
    dev->quota, *budget, etc. because that is all handled in the
    caller upon return.

    The napi_struct is to be embedded in the device driver private data
    structures.

    Furthermore, it is the driver's responsibility to disable all NAPI
    instances in it's ->stop() device close handler. Since the
    napi_struct is privatized into the driver's private data structures,
    only the driver knows how to get at all of the napi_struct instances
    it may have per-device.

    With lots of help and suggestions from Rusty Russell, Roland Dreier,
    Michael Chan, Jeff Garzik, and Jamal Hadi Salim.

    Bug fixes from Thomas Graf, Roland Dreier, Peter Zijlstra,
    Joseph Fannin, Scott Wood, Hans J. Koch, and Michael Chan.

    [ Ported to current tree and all drivers converted. Integrated
    Stephen's follow-on kerneldoc additions, and restored poll_list
    handling to the old style to fix mutual exclusion issues. -DaveM ]

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     

28 Sep, 2007

1 commit


14 Aug, 2007

1 commit


01 Aug, 2007

1 commit


12 Jul, 2007

1 commit

  • Instead of all drivers reading pci config space to get the revision
    ID, they can now use the pci_device->revision member.

    This exposes some issues where drivers where reading a word or a dword
    for the revision number, and adding useless error-handling around the
    read. Some drivers even just read it for no purpose of all.

    In devices where the revision ID is being copied over and used in what
    appears to be the equivalent of hotpath, I have left the copy code
    and the cached copy as not to influence the driver's performance.

    Compile tested with make all{yes,mod}config on x86_64 and i386.

    Signed-off-by: Auke Kok
    Acked-by: Dave Jones
    Signed-off-by: Greg Kroah-Hartman

    Auke Kok
     

03 Jun, 2007

1 commit

  • To assure the symmetry of poll enable/disable in up/down, we should
    initialize the netdevice to be poll_disabled at load time. Doing
    this after register_netdevice leaves us open to another race, so
    lets move all the netif_* calls above register_netdevice so the
    stack starts out how we expect it to be.

    Signed-off-by: Auke Kok
    Cc: Herbert Xu
    Cc: Doug Chapman
    Signed-off-by: Jeff Garzik

    Auke Kok
     

30 May, 2007

1 commit

  • This restores the previously removed netif_poll_enable call in e1000_open.
    It's needed on all but the first call to e1000_open for a NIC as
    e1000_close always calls netif_poll_disable.

    netif_poll_enable can only be called safely if no polls have been
    scheduled. This should be the case as long as we don't enter our IRQ
    handler.

    In order to guarantee this we explicitly disable IRQs as early as possible
    when we're probing the NIC.

    Signed-off-by: Herbert Xu
    Cc: "Kok, Auke"
    Cc: Jeff Garzik
    Cc: Andrew Morton
    Signed-off-by: Andrew Morton
    Signed-off-by: Jeff Garzik

    Herbert Xu
     

22 May, 2007

1 commit

  • Herbert Xu wrote:
    "netif_poll_enable can only be called if you've previously called
    netif_poll_disable. Otherwise a poll might already be in action
    and you may get a crash like this."

    Removing the call to netif_poll_enable in e1000_open should fix this issue,
    the only other call to netif_poll_enable is in e1000_up() which is only
    reached after a device reset or resume.

    Bugzilla: http://bugzilla.kernel.org/show_bug.cgi?id=8455
    https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=240339

    Tested by Doug Chapman

    Signed-off-by: Auke Kok
    Acked-by: Herbert Xu
    Signed-off-by: Jeff Garzik

    Auke Kok
     

18 May, 2007

1 commit

  • pci_enable_msi failure is a normal event so we should not print any error.
    Going over the code I spotted a missing pci_disable_msi() leak when irq
    allocation fails. The whole code also needed a cleanup, so I combined the
    two different calls to pci_request_irq into a single call making this
    look a lot better. All #ifdef CONFIG_PCI_MSI's have been removed.

    Compile tested with both CONFIG_PCI_MSI enabled and disabled.

    Signed-off-by: Auke Kok
    Cc: H. Peter Anvin
    Signed-off-by: Jeff Garzik

    Auke Kok
     

10 May, 2007

2 commits

  • flush_work(wq, work) doesn't need the first parameter, we can use cwq->wq
    (this was possible from the very beginnig, I missed this). So we can unify
    flush_work_keventd and flush_work.

    Also, rename flush_work() to cancel_work_sync() and fix all callers.
    Perhaps this is not the best name, but "flush_work" is really bad.

    (akpm: this is why the earlier patches bypassed maintainers)

    Signed-off-by: Oleg Nesterov
    Cc: Jeff Garzik
    Cc: "David S. Miller"
    Cc: Jens Axboe
    Cc: Tejun Heo
    Cc: Auke Kok ,
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • Switch e1000 over to flush_work_keventd(). This probably fixes a netdev-close
    versus linkwatch rtnl_lock() deadlock which nobody knew about.

    (akpm: bypassed maintainers, sorry. There are other patches which depend on
    this)

    Cc: "Maciej W. Rozycki"
    Cc: David Howells
    Cc: "David S. Miller"
    Cc: Jeff Garzik
    Acked-by: Auke Kok
    Cc: Oleg Nesterov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

28 Apr, 2007

5 commits


26 Apr, 2007

12 commits


20 Apr, 2007

1 commit

  • This reverts commit 60cba200f11b6f90f35634c5cd608773ae3721b7. It's been
    linked to lockups of the e1000 hardware, see for example

    https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=229603

    but it's likely that the commit itself is not really introducing the
    bug, but just allowing an unrelated problem to rear its ugly head (ie
    one current working theory is that the code exposes us to a hardware
    race condition by decreasing the amount of time we spend in each NAPI
    poll cycle).

    We'll revert it until root cause is known. Intel has a repeatable
    reproduction on two different machines and bus traces of the hardware
    doing something bad.

    Acked-by: Jesse Brandeburg
    Cc: Jeff Garzik
    Cc: David S. Miller
    Cc: Greg KH
    Cc: Dave Jones
    Cc: Auke Kok
    Cc: Andrew Morton
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

03 Mar, 2007

1 commit

  • This patch splits the vlan_group struct into a multi-allocated struct. On
    x86_64, the size of the original struct is a little more than 32KB, causing
    a 4-order allocation, which is prune to problems caused by buddy-system
    external fragmentation conditions.

    I couldn't just use vmalloc() because vfree() cannot be called in the
    softirq context of the RCU callback.

    Signed-off-by: Dan Aloni
    Acked-by: Jeff Garzik
    Signed-off-by: David S. Miller

    Dan Aloni
     

22 Feb, 2007

1 commit

  • This reverts commit d2ed16356ff4fb9de23fbc5e5d582ce580390106.

    As Thomas Gleixner reports:
    "e1000 is not working anymore. ifup fails permanentely.
    ADDRCONF(NETDEV_UP): eth0: link is not ready
    nothing else"

    The broken commit was identified with "git bisect".

    Auke Kok says:
    "I think we need to drop this now. The report that says that this
    *fixes* something might have been on regular interrupts only. I
    currently suspect that it breaks all MSI interrupts, which would make
    sense if I look a the code. Very bad indeed."

    Cc: Jesse Brandeburg
    Acked-by: Auke Kok
    Cc: Andrew Morton
    Cc: Jeff Garzik
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

20 Feb, 2007

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial: (25 commits)
    Documentation/kernel-docs.txt update.
    arch/cris: typo in KERN_INFO
    Storage class should be before const qualifier
    kernel/printk.c: comment fix
    update I/O sched Kconfig help texts - CFQ is now default, not AS.
    Remove duplicate listing of Cris arch from README
    kbuild: more doc. cleanups
    doc: make doc. for maxcpus= more visible
    drivers/net/eexpress.c: remove duplicate comment
    add a help text for BLK_DEV_GENERIC
    correct a dead URL in the IP_MULTICAST help text
    fix the BAYCOM_SER_HDX help text
    fix SCSI_SCAN_ASYNC help text
    trivial documentation patch for platform.txt
    Fix typos concerning hierarchy
    Fix comment typo "spin_lock_irqrestore".
    Fix misspellings of "agressive".
    drivers/scsi/a100u2w.c: trivial typo patch
    Correct trivial typo in log2.h.
    Remove useless FIND_FIRST_BIT() macro from cardbus.c.
    ...

    Linus Torvalds
     

18 Feb, 2007

3 commits