summaryrefslogtreecommitdiff
path: root/net/rds/rds_single_path.h
blob: e1241af7c1add4ce6a75c087a3f03baa839dcab5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#ifndef _RDS_RDS_SINGLE_H
#define _RDS_RDS_SINGLE_H

#define	c_xmit_rm		c_path[0].cp_xmit_rm
#define	c_xmit_sg		c_path[0].cp_xmit_sg
#define	c_xmit_hdr_off		c_path[0].cp_xmit_hdr_off
#define	c_xmit_data_off		c_path[0].cp_xmit_data_off
#define	c_xmit_atomic_sent	c_path[0].cp_xmit_atomic_sent
#define	c_xmit_rdma_sent	c_path[0].cp_xmit_rdma_sent
#define	c_xmit_data_sent	c_path[0].cp_xmit_data_sent
#define	c_lock			c_path[0].cp_lock
#define c_next_tx_seq		c_path[0].cp_next_tx_seq
#define c_send_queue		c_path[0].cp_send_queue
#define c_retrans		c_path[0].cp_retrans
#define c_next_rx_seq		c_path[0].cp_next_rx_seq
#define c_transport_data	c_path[0].cp_transport_data
#define c_state			c_path[0].cp_state
#define c_send_gen		c_path[0].cp_send_gen
#define c_flags			c_path[0].cp_flags
#define c_reconnect_jiffies	c_path[0].cp_reconnect_jiffies
#define c_send_w		c_path[0].cp_send_w
#define c_recv_w		c_path[0].cp_recv_w
#define c_conn_w		c_path[0].cp_conn_w
#define c_down_w		c_path[0].cp_down_w
#define c_cm_lock		c_path[0].cp_cm_lock
#define c_waitq			c_path[0].cp_waitq
#define c_unacked_packets	c_path[0].cp_unacked_packets
#define c_unacked_bytes		c_path[0].cp_unacked_bytes

#endif /* _RDS_RDS_SINGLE_H */
-------------------------------------------------- swapper/1/0 just changed the state of lock: (&(&sighand->siglock)->rlock){-.....}, at: [<ffffffffbd0a1bc6>] __lock_task_sighand+0xb6/0x2c0 but this lock took another, HARDIRQ-unsafe lock in the past: (ucounts_lock){+.+...} and interrupts could create inverse lock ordering between them. other info that might help us debug this: Chain exists of: &(&sighand->siglock)->rlock --> &(&tty->ctrl_lock)->rlock --> ucounts_lock Possible interrupt unsafe locking scenario: CPU0 CPU1 ---- ---- lock(ucounts_lock); local_irq_disable(); lock(&(&sighand->siglock)->rlock); lock(&(&tty->ctrl_lock)->rlock); <Interrupt> lock(&(&sighand->siglock)->rlock); *** DEADLOCK *** This patch removes a dependency between rlock and ucount_lock. Fixes: f333c700c610 ("pidns: Add a limit on the number of pid namespaces") Cc: stable@vger.kernel.org Signed-off-by: Andrei Vagin <avagin@openvz.org> Acked-by: Al Viro <viro@ZenIV.linux.org.uk> Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Diffstat (limited to 'net/rose')