1. 11 1月, 2008 4 次提交
    • E
      [DECNET] ROUTE: fix rcu_dereference() uses in /proc/net/decnet_cache · 0d89d794
      Eric Dumazet 提交于
      In dn_rt_cache_get_next(), no need to guard seq->private by a
      rcu_dereference() since seq is private to the thread running this
      function. Reading seq.private once (as guaranted bu rcu_dereference())
      or several time if compiler really is dumb enough wont change the
      result.
       
      But we miss real spots where rcu_dereference() are needed, both in
      dn_rt_cache_get_first() and dn_rt_cache_get_next()
      Signed-off-by: NEric Dumazet <dada1@cosmosbay.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0d89d794
    • O
      [BLUETOOTH]: Always send explicit hci_ll wake-up acks. · 5c548226
      Ohad Ben-Cohen 提交于
      In the (rare) event of simultaneous mutual wake up requests,
      do send the chip an explicit wake-up ack. This is required
      for Texas Instruments's BRF6350 chip.
      Signed-off-by: NOhad Ben-Cohen <ohad@bencohen.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5c548226
    • D
      [BLUETOOTH]: rfcomm tty BUG_ON() code fix · f951375d
      Dave Young 提交于
      1) In tty.c the BUG_ON at line 115 will never be called, because the the
         before list_del_init in this same function.
      	115          BUG_ON(!list_empty(&dev->list));
         So move the list_del_init to rfcomm_dev_del 
      
      2) The rfcomm_dev_del could be called from diffrent path
         (rfcomm_tty_hangup/rfcomm_dev_state_change/rfcomm_release_dev),
      
         So add another BUG_ON when the rfcomm_dev_del is called more than
         one time.
      Signed-off-by: NDave Young <hidave.darkstar@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f951375d
    • J
      [AX25] af_ax25: Possible circular locking. · ecd2ebde
      Jarek Poplawski 提交于
      Bernard Pidoux F6BVP reported:
      > When I killall kissattach I can see the following message.
      >
      > This happens on kernel 2.6.24-rc5 already patched with the 6 previously
      > patches I sent recently.
      >
      >
      > =======================================================
      > [ INFO: possible circular locking dependency detected ]
      > 2.6.23.9 #1
      > -------------------------------------------------------
      > kissattach/2906 is trying to acquire lock:
      >  (linkfail_lock){-+..}, at: [<d8bd4603>] ax25_link_failed+0x11/0x39 [ax25]
      >
      > but task is already holding lock:
      >  (ax25_list_lock){-+..}, at: [<d8bd7c7c>] ax25_device_event+0x38/0x84
      > [ax25]
      >
      > which lock already depends on the new lock.
      >
      >
      > the existing dependency chain (in reverse order) is:
      ...
      
      lockdep is worried about the different order here:
      
      #1 (rose_neigh_list_lock){-+..}:
      #3 (ax25_list_lock){-+..}:
      
      #0 (linkfail_lock){-+..}:
      #1 (rose_neigh_list_lock){-+..}:
      
      #3 (ax25_list_lock){-+..}:
      #0 (linkfail_lock){-+..}:
      
      So, ax25_list_lock could be taken before and after linkfail_lock. 
      I don't know if this three-thread clutch is very probable (or
      possible at all), but it seems another bug reported by Bernard
      ("[...] system impossible to reboot with linux-2.6.24-rc5")
      could have similar source - namely ax25_list_lock held by
      ax25_kill_by_device() during ax25_disconnect(). It looks like the
      only place which calls ax25_disconnect() this way, so I guess, it
      isn't necessary.
      
      This patch is breaking the lock for ax25_disconnect().
      Reported-and-tested-by: NBernard Pidoux <f6bvp@free.fr>
      Signed-off-by: NJarek Poplawski <jarkao2@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ecd2ebde
  2. 10 1月, 2008 6 次提交
    • M
      [AX25]: Kill user triggable printks. · 27d1cba2
      maximilian attems 提交于
      sfuzz can easily trigger any of those.
      
      move the printk message to the corresponding comment: makes the
      intention of the code clear and easy to pick up on an scheduled
      removal.  as bonus simplify the braces placement.
      Signed-off-by: Nmaximilian attems <max@stro.at>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      27d1cba2
    • E
      [IPV4] ROUTE: fix rcu_dereference() uses in /proc/net/rt_cache · 0bcceadc
      Eric Dumazet 提交于
      In rt_cache_get_next(), no need to guard seq->private by a
      rcu_dereference() since seq is private to the thread running this
      function. Reading seq.private once (as guaranted bu rcu_dereference())
      or several time if compiler really is dumb enough wont change the
      result.
      
      But we miss real spots where rcu_dereference() are needed, both in
      rt_cache_get_first() and rt_cache_get_next()
      Signed-off-by: NEric Dumazet <dada1@cosmosbay.com>
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0bcceadc
    • P
      [NEIGH]: Fix race between neigh_parms_release and neightbl_fill_parms · 9cd40029
      Pavel Emelyanov 提交于
      The neightbl_fill_parms() is called under the write-locked tbl->lock
      and accesses the parms->dev. The negh_parm_release() calls the
      dev_put(parms->dev) without this lock. This creates a tiny race window
      on which the parms contains potentially stale dev pointer.
      
      To fix this race it's enough to move the dev_put() upper under the
      tbl->lock, but note, that the parms are held by neighbors and thus can
      live after the neigh_parms_release() is called, so we still can have a
      parm with bad dev pointer.
      
      I didn't find where the neigh->parms->dev is accessed, but still think
      that putting the dev is to be done in a place, where the parms are
      really freed. Am I right with that?
      Signed-off-by: NPavel Emelyanov <xemul@openvz.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9cd40029
    • M
      [NIU]: Support for Marvell PHY · b0de8e40
      Mirko Lindner 提交于
      From: Mirko Lindner <mlindner@marvell.com>
      
      This patch makes necessary changes in the Neptune driver to support 
      the new Marvell PHY. It also adds support for the LED blinking
      on Neptune cards with Marvell PHY. All registers are using defines
      in the niu.h header file as is already done for the BCM8704 registers.
      
      [ Coding style, etc. cleanups -DaveM ]
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b0de8e40
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 · fd0b45df
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (36 commits)
        [ATM]: Check IP header validity in mpc_send_packet
        [IPV6]: IPV6_MULTICAST_IF setting is ignored on link-local connect()
        [CONNECTOR]: Don't touch queue dev after decrement of ref count.
        [SOCK]: Adds a rcu_dereference() in sk_filter
        [XFRM]: xfrm_algo_clone() allocates too much memory
        [FORCEDETH]: Fix reversing the MAC address on suspend.
        [NET]: mcs7830 passes msecs instead of jiffies to usb_control_msg
        [LRO] Fix lro_mgr->features checks
        [NET]: Clone the sk_buff 'iif' field in __skb_clone()
        [IPV4] ROUTE: ip_rt_dump() is unecessary slow
        [NET]: kaweth was forgotten in msec switchover of usb_start_wait_urb
        [NET] Intel ethernet drivers: update MAINTAINERS
        [NET]: Make ->poll() breakout consistent in Intel ethernet drivers.
        [NET]: Stop polling when napi_disable() is pending.
        [NET]: Fix drivers to handle napi_disable() disabling interrupts.
        [NETXEN]: Fix ->poll() done logic.
        mac80211: return an error when SIWRATE doesn't match any rate
        ssb: Fix probing of PCI cores if PCI and PCIE core is available
        [NET]: Do not check netif_running() and carrier state in ->poll()
        [NET]: Add NAPI_STATE_DISABLE.
        ...
      fd0b45df
    • R
      show_task: real_parent · fcfd50af
      Roland McGrath 提交于
      The show_task function invoked by sysrq-t et al displays the
      pid and parent's pid of each task.  It seems more useful to
      show the actual process hierarchy here than who is using
      ptrace on each process.
      Signed-off-by: NRoland McGrath <roland@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      fcfd50af
  3. 09 1月, 2008 30 次提交