1. 10 Oct, 2008 3 commits
  2. 09 Oct, 2008 12 commits
  3. 08 Oct, 2008 3 commits
  4. 07 Oct, 2008 13 commits
    • Daniele Lacamera's avatar
      tcp: Fix tcp_hybla zero congestion window growth with small rho and large cwnd. · 9d2c27e1
      Daniele Lacamera authored
      Because of rounding, in certain conditions, i.e. when in congestion
      avoidance state rho is smaller than 1/128 of the current cwnd, TCP
      Hybla congestion control starves and the cwnd is kept constant
      forever.
      
      This patch forces an increment by one segment after #send_cwnd calls
      without increments(newreno behavior).
      Signed-off-by: default avatarDaniele Lacamera <root@danielinux.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9d2c27e1
    • Herbert Xu's avatar
      net: Fix netdev_run_todo dead-lock · 58ec3b4d
      Herbert Xu authored
      Benjamin Thery tracked down a bug that explains many instances
      of the error
      
      unregister_netdevice: waiting for %s to become free. Usage count = %d
      
      It turns out that netdev_run_todo can dead-lock with itself if
      a second instance of it is run in a thread that will then free
      a reference to the device waited on by the first instance.
      
      The problem is really quite silly.  We were trying to create
      parallelism where none was required.  As netdev_run_todo always
      follows a RTNL section, and that todo tasks can only be added
      with the RTNL held, by definition you should only need to wait
      for the very ones that you've added and be done with it.
      
      There is no need for a second mutex or spinlock.
      
      This is exactly what the following patch does.
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      58ec3b4d
    • David S. Miller's avatar
    • Ali Saidi's avatar
      tcp: Fix possible double-ack w/ user dma · 53240c20
      Ali Saidi authored
      From: Ali Saidi <saidi@engin.umich.edu>
      
      When TCP receive copy offload is enabled it's possible that
      tcp_rcv_established() will cause two acks to be sent for a single
      packet. In the case that a tcp_dma_early_copy() is successful,
      copied_early is set to true which causes tcp_cleanup_rbuf() to be
      called early which can send an ack. Further along in
      tcp_rcv_established(), __tcp_ack_snd_check() is called and will
      schedule a delayed ACK. If no packets are processed before the delayed
      ack timer expires the packet will be acked twice.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      53240c20
    • Patrick McHardy's avatar
      net: only invoke dev->change_rx_flags when device is UP · b6c40d68
      Patrick McHardy authored
      Jesper Dangaard Brouer <hawk@comx.dk> reported a bug when setting a VLAN
      device down that is in promiscous mode:
      
      When the VLAN device is set down, the promiscous count on the real
      device is decremented by one by vlan_dev_stop(). When removing the
      promiscous flag from the VLAN device afterwards, the promiscous
      count on the real device is decremented a second time by the
      vlan_change_rx_flags() callback.
      
      The root cause for this is that the ->change_rx_flags() callback is
      invoked while the device is down. The synchronization is meant to mirror
      the behaviour of the ->set_rx_mode callbacks, meaning the ->open function
      is responsible for doing a full sync on open, the ->close() function is
      responsible for doing full cleanup on ->stop() and ->change_rx_flags()
      is meant to do incremental changes while the device is UP.
      
      Only invoke ->change_rx_flags() while the device is UP to provide the
      intended behaviour.
      Tested-by: default avatarJesper Dangaard Brouer <jdb@comx.dk>
      Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b6c40d68
    • Matt Mackall's avatar
      SLOB: fix bogus ksize calculation · 85ba94ba
      Matt Mackall authored
      SLOB's ksize calculation was braindamaged and generally harmlessly
      underreported the allocation size. But for very small buffers, it could
      in fact overreport them, leading code depending on krealloc to overrun
      the allocation and trample other data.
      Signed-off-by: default avatarMatt Mackall <mpm@selenic.com>
      Tested-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      85ba94ba
    • Linus Torvalds's avatar
      Revert "V4L/DVB (8904): cx88: add missing unlock_kernel" · e09e6e2b
      Linus Torvalds authored
      This reverts commit 135aedc3, as
      requested by Hans Verkuil.
      
      It was a patch for 2.6.28 where the BKL was pushed down from v4l core to
      the drivers, not for 2.6.27!
      Requested-by: default avatarHans Verkuil <hverkuil@xs4all.nl>
      Cc: Mauro Carvalho Chehab <mchehab@infradead.org>
      Signed-of-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e09e6e2b
    • Tony Lindgren's avatar
      Merge current mainline tree into linux-omap tree · 5b99e69f
      Tony Lindgren authored
      Merge branches 'master' and 'linus'
      5b99e69f
    • David Brownell's avatar
      twl4030-gpio irq simplification · f9ceca72
      David Brownell authored
      Simplify and correct TWL4030 GPIO IRQ handling:
      
       - support mask() not just unmask()
       - use genirq handle_edge_irq() handler not custom hacks
       - let that handle (correct) accounting of chained IRQ counts
       - use the more efficient clear-on-read mechanism
       - don't misuse IRQ_LEVEL
       - remove some superfluous locking
       - locking fix:  all irq_chip data needs spinlock protection
      
      Cleanups:
       - give the helper thread a more accurate name
       - don't name the NOP ack() method misleadingly
       - use generic_handle_irq(), not a manually unrolled version thereof
       - comment fixes
      
      Note that the previous IRQ dispatch code was somewhat confused.
      It seemed not to know that it was working with edge triggered
      interrupts, much less ones which could be transparently acked.
      
      (Also note that COR=1 doesn't enable Clear-On-Read for all modules;
      some are documented as using COR=0 for that.  GPIO uses COR=1.)
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      f9ceca72
    • David Brownell's avatar
      twl4030-core irq simplification · 83f474a2
      David Brownell authored
      Simplify twl4030 IRQ handling by removing a needless custom flow
      handler.  The top level IRQs, from the PIH, are well suited for
      handle_simple_irq() ... they can't be acked or masked.
      
      Switching resolves some issues with how IRQs were dispatched.
      Notably, abuse of desc->status, IRQ accounting, and handling
      of various faults.
      
      In short, use standard genirq code.
      
      Drivers that request_irq() to the PIH will need to pay more
      attention to things like setting IRQF_DISABLED (since it's
      no longer ignored), and making I2C calls from handlers (you'll
      need a lockdep workaround).
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      83f474a2
    • David Brownell's avatar
      twl4030 "subdriver" irq tweaks · baae8496
      David Brownell authored
      Bugfixes to TWL subdriver irq handler setup ... lockdep
      workarounds, remove IRQF_DISABLED.  NOPs with current code.
      
      These changes are specific to the drivers which register
      directly with the PIH irq_chip (in twl4030-core), and are
      prerequsites to a cleanup patch for that PIH infrastructure.
      (Unless you don't use these drivers.)
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      baae8496
    • David Brownell's avatar
      beagle: two more GPIOs · 85c0074e
      David Brownell authored
      Request two more GPIOs on Beagle:  MMC write protect, DVI enable.
      
      Also define the first OMAP3 GPIO mux config symbols, with a new
      naming convention.  Examples:
      
        - GPIO42 is bidirectional, and uses external pull up/down (if any);
        - GPIO42_UP is bidirectional, with an internal pullup;
        - GPIO42_DOWN is bidirectional, with an internal pulldown.
        - GPIO42_OUT is output-only, and needs no pullup or pulldown.
      
      All of those would be fully functional through the standard GPIO
      interface as well as the legacy OMAP-only one, except GPIO42_OUT
      which won't let you read the actual pin value after setting it.
      
      There's no special off-mode support for these particular pins;
      on Beagle they have external pullups or pulldowns.
      
      (OMAP2 can use this naming convention too, except that since it
      has no input-enable the "_OUT" convention can't be used there.)
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      85c0074e
    • Kevin Hilman's avatar
  5. 06 Oct, 2008 9 commits