1. 06 Jul, 2006 29 commits
  2. 05 Jul, 2006 11 commits
    • Linus Torvalds's avatar
      Merge git://git.linux-nfs.org/pub/linux/nfs-2.6 · a942b57b
      Linus Torvalds authored
      * git://git.linux-nfs.org/pub/linux/nfs-2.6:
        NLM,NFSv4: Wait on local locks before we put RPC calls on the wire
        VFS: Add support for the FL_ACCESS flag to flock_lock_file()
        NFSv4: Ensure nfs4_lock_expired() caches delegated locks
        NLM,NFSv4: Don't put UNLOCK requests on the wire unless we hold a lock
        VFS: Allow caller to determine if BSD or posix locks were actually freed
        NFS: Optimise away an excessive GETATTR call when a file is symlinked
        This fixes a panic doing the first READDIR or READDIRPLUS call when:
        NFS: Fix NFS page_state usage
        Revert "Merge branch 'odirect'"
      a942b57b
    • Linus Torvalds's avatar
      Merge master.kernel.org:/home/rmk/linux-2.6-arm · 887e5d5f
      Linus Torvalds authored
      * master.kernel.org:/home/rmk/linux-2.6-arm:
        [ARM] 3711/1: AT91 timer update
        [ARM] 3709/1: pnx4008: convert to generic irq subsystem
        [ARM] 3710/1: AT91 Serial: Use GPIO API
      887e5d5f
    • Linus Torvalds's avatar
      Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 · e8f75588
      Linus Torvalds authored
      * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6: (39 commits)
        [PATCH] myri10ge - Export more parameters to ethtool
        [PATCH] myri10ge - Use dev_info() when printing parameters after probe
        [PATCH] myri10ge - Drop ununsed nvidia chipset id
        [PATCH] myri10ge - Drop unused pm_state
        [PATCH] Fix freeing of net device
        [PATCH] remove dead entry in net wan Kconfig
        [PATCH] NI5010 netcard cleanup
        [PATCH] lock validator: fix ns83820.c irq-flags bug
        [PATCH] pcnet32: Cleanup rx buffers after loopback test.
        [PATCH] pcnet32: Suspend the chip rather than restart when changing multicast/promisc
        [PATCH] pcnet32: Handle memory allocation failures cleanly when resizing tx/rx rings
        [PATCH] pcnet32: Use kcalloc instead of kmalloc and memset
        [PATCH] pcnet32: Fix off-by-one in get_ringparam
        [PATCH] pcnet32: Use PCI_DEVICE macro
        [PATCH] pcnet32: Fix Section mismatch error
        [PATCH] Add support for the Cicada 8201 PHY
        [PATCH] zd1211rw: disable TX queue during stop
        [PATCH] ZyDAS ZD1211 USB-WLAN driver
        [PATCH] softmac: fix build-break from 881ee6999d66c8fc903b429b73bbe6045b38c549
        [PATCH] CONFIG_WIRELESS_EXT is neccessary after all
        ...
      e8f75588
    • Brice Goglin's avatar
      [PATCH] myri10ge - Export more parameters to ethtool · 2c1a1088
      Brice Goglin authored
      Add the IRQ line, the tx_boundary, and whether Write-combining and MSI
      are enabled to the list of parameters that are exported to ethtool.
      Signed-off-by: default avatarBrice Goglin <brice@myri.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      2c1a1088
    • Brice Goglin's avatar
      [PATCH] myri10ge - Use dev_info() when printing parameters after probe · d6020787
      Brice Goglin authored
      Displaying the interface name when listing the device parameters
      at the end of myri10ge_probe is not a good idea since udev might
      rename the interface soon afterwards.
      Print the bus id instead, using dev_info().
      Signed-off-by: default avatarBrice Goglin <brice@myri.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      d6020787
    • brice@myri.com's avatar
      [PATCH] myri10ge - Drop ununsed nvidia chipset id · 18ac5443
      brice@myri.com authored
      The workaround for the AER capability of the nVidia chipset has been
      removed, we don't need this PCI id anymore. Drop it.
      Signed-off-by: default avatarBrice Goglin <brice@myri.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      18ac5443
    • brice@myri.com's avatar
      [PATCH] myri10ge - Drop unused pm_state · ec590970
      brice@myri.com authored
      The pm_state field in the myri10ge_priv structure is unused. Drop it.
      Signed-off-by: default avatarBrice Goglin <brice@myri.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      ec590970
    • Ralf Baechle's avatar
      [PATCH] Fix freeing of net device · b07db75a
      Ralf Baechle authored
      Plus optical sugar.
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      b07db75a
    • Paul Fulghum's avatar
      [PATCH] remove dead entry in net wan Kconfig · 22db99bd
      Paul Fulghum authored
      Remove dead entry from net wan Kconfig and net wan Makefile..  This entry is
      left over from 2.4 where synclink used syncppp driver directly.  synclink
      drivers now use generic HDLC
      Signed-off-by: default avatarPaul Fulghum <paulkf@microgate.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      22db99bd
    • Andreas Mohr's avatar
      [PATCH] NI5010 netcard cleanup · 5b552b16
      Andreas Mohr authored
      - updated MAINTAINERS entry to new format
      - updated Jan-Pascal's (ACKed) and my email address
      - driver cleanup/modernization (runtime-, not hardware-tested)
      
      [bunk@stusta.de: build fix]
      Signed-off-by: default avatarAndreas Mohr <andi@lisas.de>
      Cc: Jeff Garzik <jeff@garzik.org>
      Cc: Jan-Pascal van Best <jvbest@qv3pluto.leidenuniv.nl>
      Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      5b552b16
    • Ingo Molnar's avatar
      [PATCH] lock validator: fix ns83820.c irq-flags bug · 3a10cceb
      Ingo Molnar authored
      Barry K. Nathan reported the following lockdep warning:
      
      [  197.343948] BUG: warning at kernel/lockdep.c:1856/trace_hardirqs_on()
      [  197.345928]  [<c010329b>] show_trace_log_lvl+0x5b/0x105
      [  197.346359]  [<c0103896>] show_trace+0x1b/0x20
      [  197.346759]  [<c01038ed>] dump_stack+0x1f/0x24
      [  197.347159]  [<c012efa2>] trace_hardirqs_on+0xfb/0x185
      [  197.348873]  [<c029b009>] _spin_unlock_irq+0x24/0x2d
      [  197.350620]  [<e09034e8>] do_tx_done+0x171/0x179 [ns83820]
      [  197.350895]  [<e090445c>] ns83820_irq+0x149/0x20b [ns83820]
      [  197.351166]  [<c013b4b8>] handle_IRQ_event+0x1d/0x52
      [  197.353216]  [<c013c6c2>] handle_level_irq+0x97/0xe1
      [  197.355157]  [<c01048c3>] do_IRQ+0x8b/0xac
      [  197.355612]  [<c0102d9d>] common_interrupt+0x25/0x2c
      
      this is caused because the ns83820 driver re-enables irq flags
      in hardirq context.
      
      While legal in theory, in practice it should only be done if the
      hardware is really old and has some very high overhead in its ISR.
      (such as PIO IDE)
      
      For modern hardware, running ISRs with irqs enabled is discouraged,
      because 1) new hardware is fast enough to not cause latency problems
      2) allowing the nesting of hardware interrupts only 'spreads out'
      the handling of the current ISR, causing extra cachemisses that would
      otherwise not happen. Furthermore, on architectures where ISRs share
      the kernel stacks, enabling interrupts in ISRs introduces a much
      higher kernel-stack-nesting and thus kernel-stack-overflow risk.
      3) not managing irq-flags via the _irqsave / _irqrestore variants
      is dangerous: it's easy to forget whether one function nests inside
      another, and irq flags might be mismanaged.
      
      In the few cases where re-enabling interrupts in an ISR is considered
      useful (and unavoidable), it has to be taught to the lock validator
      explicitly (because the lock validator needs the "no ISR ever enables
      hardirqs" artificial simplification to keep the IRQ/softirq locking
      dependencies manageable).
      
      This teaching is done via the explicit use local_irq_enable_in_hardirq().
      On a stock kernel this maps to local_irq_enable(). If the lock validator
      is enabled then this does not enable interrupts.
      
      Now, the analysis of drivers/net/ns83820.c's irq flags use: the
      irq-enabling in irq context seems intentional, but i dont think it's
      justified. Furthermore, the driver suffers from problem #3 above too,
      in ns83820_tx_timeout() it disables irqs via local_irq_save(), but
      then it calls do_tx_done() which does a spin_unlock_irq(),
      re-enabling for a function that does not expect it! While currently
      this bug seems harmless (only some debug printout seems to be
      affected by it), it's nevertheless something to be fixed.
      
      So this patch makes the ns83820 ISR irq-flags-safe, and cleans up
      do_tx_done() use and locking to avoid the ns83820_tx_timeout() bug.
      
      From: Arjan van de Ven <arjan@linux.intel.com>
      
        ns83820_mib_isr takes the misc_lock in IRQ context.  All other places that
        do this in the ISR already use _irqsave versions, make this consistent at
        least.  At some point in the future someone should audit the driver to see
        if all _irqsave's in the ISR can go away, this is generally an iffy/fragile
        proposition though; for now get it safe, simple and consistent.
      
      From: Arjan van de Ven <arjan@linux.intel.com>
      
      ok this is a real driver deadlock:
      
      The ns83820 driver enabled interrupts (by unlocking the misc_lock with
      _irq) while still holding the rx_info.lock, which is required to be irq
      safe since it's used in the ISR like this:
                      writel(1, dev->base + IER);
                      spin_unlock_irq(&dev->misc_lock);
                      kick_rx(ndev);
                      spin_unlock_irq(&dev->rx_info.lock);
      
      This is can cause a deadlock if an irq was pending at the first
      spin_unlock_irq already, or if one would hit during kick_rx().
      Simply remove the first _irq solves this
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      Cc: Benjamin LaHaise <bcrl@kvack.org>
      Cc: Jeff Garzik <jeff@garzik.org>
      Signed-off-by: default avatarArjan van de Ven <arjan@linux.intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      3a10cceb