1. 11 Jan, 2008 3 commits
    • Ohad Ben-Cohen's avatar
      [BLUETOOTH]: Always send explicit hci_ll wake-up acks. · 5c548226
      Ohad Ben-Cohen authored
      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: default avatarOhad Ben-Cohen <ohad@bencohen.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5c548226
    • Dave Young's avatar
      [BLUETOOTH]: rfcomm tty BUG_ON() code fix · f951375d
      Dave Young authored
      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: default avatarDave Young <hidave.darkstar@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f951375d
    • Jarek Poplawski's avatar
      [AX25] af_ax25: Possible circular locking. · ecd2ebde
      Jarek Poplawski authored
      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: default avatarBernard Pidoux <f6bvp@free.fr>
      Signed-off-by: default avatarJarek Poplawski <jarkao2@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ecd2ebde
  2. 10 Jan, 2008 4 commits
  3. 09 Jan, 2008 33 commits