tmp_suning_uos_patched/net/tipc
Ying Xue 258f8667a2 tipc: add lock nesting notation to quiet lockdep warning
TIPC accept() call grabs the socket lock on a newly allocated
socket while holding the socket lock on an old socket. But lockdep
worries that this might be a recursive lock attempt:

  [ INFO: possible recursive locking detected ]
  ---------------------------------------------
  kworker/u:0/6 is trying to acquire lock:
  (sk_lock-AF_TIPC){+.+.+.}, at: [<c8c1226c>] accept+0x15c/0x310 [tipc]

  but task is already holding lock:
  (sk_lock-AF_TIPC){+.+.+.}, at: [<c8c12138>] accept+0x28/0x310 [tipc]

  other info that might help us debug this:
  Possible unsafe locking scenario:

          CPU0
          ----
          lock(sk_lock-AF_TIPC);
          lock(sk_lock-AF_TIPC);

          *** DEADLOCK ***

  May be due to missing lock nesting notation
  [...]

Tell lockdep that this locking is safe by using lock_sock_nested().
This is similar to what was done in commit 5131a184a3 for
SCTP code ("SCTP: lock_sock_nested in sctp_sock_migrate").

Also note that this is isn't something that is seen normally,
as it was uncovered with some experimental work-in-progress
code not yet ready for mainline.  So no need for stable
backports or similar of this commit.

Signed-off-by: Ying Xue <ying.xue@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
2012-12-07 17:23:23 -05:00
..
addr.c tipc: compress out gratuitous extra carriage returns 2012-04-30 15:53:56 -04:00
addr.h tipc: compress out gratuitous extra carriage returns 2012-04-30 15:53:56 -04:00
bcast.c tipc: rename supported flag to recv_permitted 2012-11-22 07:50:51 -05:00
bcast.h tipc: compress out gratuitous extra carriage returns 2012-04-30 15:53:56 -04:00
bearer.c tipc: remove the bearer congestion mechanism 2012-11-21 20:07:25 -05:00
bearer.h tipc: remove the bearer congestion mechanism 2012-11-21 20:07:25 -05:00
config.c tipc: eliminate configuration for maximum number of name publications 2012-08-20 02:26:31 -07:00
config.h tipc: Optimize re-initialization of configuration service 2012-04-26 17:19:07 -04:00
core.c tipc: delete TIPC_ADVANCED Kconfig variable 2012-11-22 14:33:29 -05:00
core.h tipc: eliminate configuration for maximum number of name publications 2012-08-20 02:26:31 -07:00
discover.c tipc: remove the bearer congestion mechanism 2012-11-21 20:07:25 -05:00
discover.h
eth_media.c tipc: fix lockdep warning during bearer initialization 2012-08-20 02:26:30 -07:00
handler.c tipc: do not use tasklet_disable before tasklet_kill 2012-11-03 15:10:14 -04:00
Kconfig tipc: delete TIPC_ADVANCED Kconfig variable 2012-11-22 14:33:29 -05:00
link.c tipc: remove obsolete flush of stale reassembly buffer 2012-12-06 17:20:19 -05:00
link.h tipc: remove the bearer congestion mechanism 2012-11-21 20:07:25 -05:00
log.c tipc: remove print_buf and deprecated log buffer code 2012-07-13 19:34:43 -04:00
Makefile tipc: compress out gratuitous extra carriage returns 2012-04-30 15:53:56 -04:00
msg.c tipc: remove TIPC packet debugging functions and macros 2012-07-13 19:25:16 -04:00
msg.h tipc: compress out gratuitous extra carriage returns 2012-04-30 15:53:56 -04:00
name_distr.c tipc: eliminate an unnecessary cast of node variable 2012-11-22 14:33:28 -05:00
name_distr.h
name_table.c net/tipc/name_table.c: Remove unecessary semicolon 2012-09-18 16:08:19 -04:00
name_table.h tipc: compress out gratuitous extra carriage returns 2012-04-30 15:53:56 -04:00
net.c tipc: change tipc_net_start routine return value type 2012-08-20 02:26:30 -07:00
net.h tipc: change tipc_net_start routine return value type 2012-08-20 02:26:30 -07:00
netlink.c netlink: Rename pid to portid to avoid confusion 2012-09-10 15:30:41 -04:00
node_subscr.c tipc: use standard printk shortcut macros (pr_err etc.) 2012-07-13 19:24:44 -04:00
node_subscr.h tipc: compress out gratuitous extra carriage returns 2012-04-30 15:53:56 -04:00
node.c tipc: introduce message to synchronize broadcast link 2012-11-22 14:33:21 -05:00
node.h tipc: rename supported flag to recv_permitted 2012-11-22 07:50:51 -05:00
port.c tipc: standardize across connect/disconnect function naming 2012-12-07 17:23:19 -05:00
port.h tipc: standardize across connect/disconnect function naming 2012-12-07 17:23:19 -05:00
ref.c tipc: use standard printk shortcut macros (pr_err etc.) 2012-07-13 19:24:44 -04:00
ref.h
socket.c tipc: add lock nesting notation to quiet lockdep warning 2012-12-07 17:23:23 -05:00
subscr.c tipc: standardize across connect/disconnect function naming 2012-12-07 17:23:19 -05:00
subscr.h tipc: compress out gratuitous extra carriage returns 2012-04-30 15:53:56 -04:00