1. 08 3月, 2013 2 次提交
  2. 28 2月, 2013 1 次提交
    • S
      hlist: drop the node parameter from iterators · b67bfe0d
      Sasha Levin 提交于
      I'm not sure why, but the hlist for each entry iterators were conceived
      
              list_for_each_entry(pos, head, member)
      
      The hlist ones were greedy and wanted an extra parameter:
      
              hlist_for_each_entry(tpos, pos, head, member)
      
      Why did they need an extra pos parameter? I'm not quite sure. Not only
      they don't really need it, it also prevents the iterator from looking
      exactly like the list iterator, which is unfortunate.
      
      Besides the semantic patch, there was some manual work required:
      
       - Fix up the actual hlist iterators in linux/list.h
       - Fix up the declaration of other iterators based on the hlist ones.
       - A very small amount of places were using the 'node' parameter, this
       was modified to use 'obj->member' instead.
       - Coccinelle didn't handle the hlist_for_each_entry_safe iterator
       properly, so those had to be fixed up manually.
      
      The semantic patch which is mostly the work of Peter Senna Tschudin is here:
      
      @@
      iterator name hlist_for_each_entry, hlist_for_each_entry_continue, hlist_for_each_entry_from, hlist_for_each_entry_rcu, hlist_for_each_entry_rcu_bh, hlist_for_each_entry_continue_rcu_bh, for_each_busy_worker, ax25_uid_for_each, ax25_for_each, inet_bind_bucket_for_each, sctp_for_each_hentry, sk_for_each, sk_for_each_rcu, sk_for_each_from, sk_for_each_safe, sk_for_each_bound, hlist_for_each_entry_safe, hlist_for_each_entry_continue_rcu, nr_neigh_for_each, nr_neigh_for_each_safe, nr_node_for_each, nr_node_for_each_safe, for_each_gfn_indirect_valid_sp, for_each_gfn_sp, for_each_host;
      
      type T;
      expression a,c,d,e;
      identifier b;
      statement S;
      @@
      
      -T b;
          <+... when != b
      (
      hlist_for_each_entry(a,
      - b,
      c, d) S
      |
      hlist_for_each_entry_continue(a,
      - b,
      c) S
      |
      hlist_for_each_entry_from(a,
      - b,
      c) S
      |
      hlist_for_each_entry_rcu(a,
      - b,
      c, d) S
      |
      hlist_for_each_entry_rcu_bh(a,
      - b,
      c, d) S
      |
      hlist_for_each_entry_continue_rcu_bh(a,
      - b,
      c) S
      |
      for_each_busy_worker(a, c,
      - b,
      d) S
      |
      ax25_uid_for_each(a,
      - b,
      c) S
      |
      ax25_for_each(a,
      - b,
      c) S
      |
      inet_bind_bucket_for_each(a,
      - b,
      c) S
      |
      sctp_for_each_hentry(a,
      - b,
      c) S
      |
      sk_for_each(a,
      - b,
      c) S
      |
      sk_for_each_rcu(a,
      - b,
      c) S
      |
      sk_for_each_from
      -(a, b)
      +(a)
      S
      + sk_for_each_from(a) S
      |
      sk_for_each_safe(a,
      - b,
      c, d) S
      |
      sk_for_each_bound(a,
      - b,
      c) S
      |
      hlist_for_each_entry_safe(a,
      - b,
      c, d, e) S
      |
      hlist_for_each_entry_continue_rcu(a,
      - b,
      c) S
      |
      nr_neigh_for_each(a,
      - b,
      c) S
      |
      nr_neigh_for_each_safe(a,
      - b,
      c, d) S
      |
      nr_node_for_each(a,
      - b,
      c) S
      |
      nr_node_for_each_safe(a,
      - b,
      c, d) S
      |
      - for_each_gfn_sp(a, c, d, b) S
      + for_each_gfn_sp(a, c, d) S
      |
      - for_each_gfn_indirect_valid_sp(a, c, d, b) S
      + for_each_gfn_indirect_valid_sp(a, c, d) S
      |
      for_each_host(a,
      - b,
      c) S
      |
      for_each_host_safe(a,
      - b,
      c, d) S
      |
      for_each_mesh_entry(a,
      - b,
      c, d) S
      )
          ...+>
      
      [akpm@linux-foundation.org: drop bogus change from net/ipv4/raw.c]
      [akpm@linux-foundation.org: drop bogus hunk from net/ipv6/raw.c]
      [akpm@linux-foundation.org: checkpatch fixes]
      [akpm@linux-foundation.org: fix warnings]
      [akpm@linux-foudnation.org: redo intrusive kvm changes]
      Tested-by: NPeter Senna Tschudin <peter.senna@gmail.com>
      Acked-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Signed-off-by: NSasha Levin <sasha.levin@oracle.com>
      Cc: Wu Fengguang <fengguang.wu@intel.com>
      Cc: Marcelo Tosatti <mtosatti@redhat.com>
      Cc: Gleb Natapov <gleb@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b67bfe0d
  3. 22 9月, 2012 1 次提交
  4. 16 8月, 2012 2 次提交
  5. 07 8月, 2012 1 次提交
  6. 05 6月, 2012 5 次提交
  7. 29 3月, 2012 1 次提交
  8. 03 3月, 2012 1 次提交
  9. 23 2月, 2012 1 次提交
  10. 21 2月, 2012 4 次提交
  11. 20 2月, 2012 7 次提交
  12. 13 2月, 2012 1 次提交
  13. 03 1月, 2012 1 次提交
  14. 20 12月, 2011 1 次提交
  15. 19 12月, 2011 4 次提交
  16. 21 9月, 2011 1 次提交
    • A
      Bluetooth: Add mgmt events for blacklisting · 5e762444
      Antti Julku 提交于
      Add management interface events for blocking/unblocking a device.
      Sender of the block device command gets cmd complete and other
      mgmt sockets get the event. Event is also sent to mgmt sockets when
      blocking is done with ioctl, e.g when blocking a device with
      hciconfig. This makes it possible for bluetoothd to track status
      of blocked devices when a third party block or unblocks a device.
      
      Event sending is handled in mgmt_device_blocked function which gets
      called from hci_blacklist_add in hci_core.c. A pending command is
      added in mgmt_block_device, so that it can found when sending the
      event - the event is not sent to the socket from which the pending
      command came. Locks were moved out from hci_core.c to hci_sock.c
      and mgmt.c, because locking is needed also for mgmt_pending_add in
      mgmt.c.
      Signed-off-by: NAntti Julku <antti.julku@nokia.com>
      Signed-off-by: NGustavo F. Padovan <padovan@profusion.mobi>
      5e762444
  17. 17 6月, 2011 1 次提交
  18. 22 2月, 2011 1 次提交
    • A
      Bluetooth: fix build break on hci_sock.c · b7440a14
      Anand Gadiyar 提交于
      Linux-next as of 20110217 complains when building for OMAP1.
      
        LD      vmlinux
      `hci_sock_cleanup' referenced in section `.init.text' of net/built-in.o: defined in discarded section `.exit.text' of net/built-in.o
      `hci_sock_cleanup' referenced in section `.init.text' of net/built-in.o: defined in discarded section `.exit.text' of net/built-in.o
      make: *** [vmlinux] Error 1
      
      A recent patch by Gustavo (Bluetooth: Merge L2CAP and SCO modules
      into bluetooth.ko) introduced this by calling the hci_sock_cleanup
      function in the error path of bt_init.
      
      Fix this by dropping the __exit marking for hci_sock_cleanup.
      Signed-off-by: NAnand Gadiyar <gadiyar@ti.com>
      Signed-off-by: NGustavo F. Padovan <padovan@profusion.mobi>
      b7440a14
  19. 08 2月, 2011 1 次提交
  20. 23 12月, 2010 1 次提交
  21. 08 12月, 2010 2 次提交