1. 09 Jun, 2011 2 commits
    • Tejun Heo's avatar
      block: remove non-syncing __disk_block_events() and fold it into disk_block_events() · c3af54af
      Tejun Heo authored
      After the previous update to disk_check_events(), nobody is using
      non-syncing __disk_block_events().  Remove @sync and, as this makes
      __disk_block_events() virtually identical to disk_block_events(),
      remove the underscore prefixed version.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Cc: Jens Axboe <axboe@kernel.dk>
      Signed-off-by: default avatarJens Axboe <jaxboe@fusionio.com>
      c3af54af
    • Tejun Heo's avatar
      block: don't use non-syncing event blocking in disk_check_events() · a9dce2a3
      Tejun Heo authored
      This patch is part of fix for triggering of WARN_ON_ONCE() in
      disk_clear_events() reported in bug#34662.
      
        https://bugzilla.kernel.org/show_bug.cgi?id=34662
      
      disk_clear_events() blocks events, schedules and flushes the event
      work.  It expects the work to have started execution on schedule and
      finished on return from flush.  WARN_ON_ONCE() triggers if the event
      work hasn't executed as expected.  This problem happens because
      __disk_block_events() fails to guarantee that the event work item is
      not in flight on return from the function in race-free manner.  The
      problem is two-fold and this patch addresses one of them.
      
      When __disk_block_events() is called with @sync == %false, it bumps
      event block count, calls cancel_delayed_work() and return.  This makes
      it impossible to guarantee that event polling is not in flight on
      return from syncing __disk_block_events() - if the first blocker was
      non-syncing, polling could still be in progress and later syncing ones
      would assume that the first blocker already canceled it.
      
      Making __disk_block_events() cancel_sync regardless of block count
      isn't feasible either as it may race with forced event checking in
      disk_clear_events().
      
      As disk_check_events() is the only user of non-syncing
      __disk_block_events(), updating it to directly cancel and schedule
      event work is the easiest way to solve the issue.
      
      Note that there's another bug in __disk_block_events() and this patch
      doesn't fix the issue completely.  Later patch will fix the other bug.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Tested-by: default avatarSitsofe Wheeler <sitsofe@yahoo.com>
      Reported-by: default avatarSitsofe Wheeler <sitsofe@yahoo.com>
      Reported-by: default avatarBorislav Petkov <bp@alien8.de>
      Reported-by: default avatarMeelis Roos <mroos@linux.ee>
      Reported-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Kay Sievers <kay.sievers@vrfy.org>
      Signed-off-by: default avatarJens Axboe <jaxboe@fusionio.com>
      a9dce2a3
  2. 06 Jun, 2011 1 commit
  3. 04 Jun, 2011 2 commits
    • Linus Torvalds's avatar
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 · 0e833d8c
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (40 commits)
        tg3: Fix tg3_skb_error_unmap()
        net: tracepoint of net_dev_xmit sees freed skb and causes panic
        drivers/net/can/flexcan.c: add missing clk_put
        net: dm9000: Get the chip in a known good state before enabling interrupts
        drivers/net/davinci_emac.c: add missing clk_put
        af-packet: Add flag to distinguish VID 0 from no-vlan.
        caif: Fix race when conditionally taking rtnl lock
        usbnet/cdc_ncm: add missing .reset_resume hook
        vlan: fix typo in vlan_dev_hard_start_xmit()
        net/ipv4: Check for mistakenly passed in non-IPv4 address
        iwl4965: correctly validate temperature value
        bluetooth l2cap: fix locking in l2cap_global_chan_by_psm
        ath9k: fix two more bugs in tx power
        cfg80211: don't drop p2p probe responses
        Revert "net: fix section mismatches"
        drivers/net/usb/catc.c: Fix potential deadlock in catc_ctrl_run()
        sctp: stop pending timers and purge queues when peer restart asoc
        drivers/net: ks8842 Fix crash on received packet when in PIO mode.
        ip_options_compile: properly handle unaligned pointer
        iwlagn: fix incorrect PCI subsystem id for 6150 devices
        ...
      0e833d8c
  4. 03 Jun, 2011 18 commits
  5. 02 Jun, 2011 17 commits