From 56dc8bce9f761cf61258e25d96dec4072273d8db Mon Sep 17 00:00:00 2001 From: Santosh Shilimkar Date: Sat, 13 Oct 2018 21:36:49 +0800 Subject: rds: add transport specific tos_map hook RDMA transport maps user tos to underline virtual lanes(VL) for IB or DSCP values. RDMA CM transport abstract thats for RDS. TCP transport makes use of default priority 0 and maps all user tos values to it. Reviewed-by: Sowmini Varadhan Signed-off-by: Santosh Shilimkar [yanjun.zhu@oracle.com: Adapted original patch with ipv6 changes] Signed-off-by: Zhu Yanjun --- net/rds/af_rds.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'net/rds/af_rds.c') diff --git a/net/rds/af_rds.c b/net/rds/af_rds.c index 904515858037..d6cc97fbbbb0 100644 --- a/net/rds/af_rds.c +++ b/net/rds/af_rds.c @@ -255,16 +255,18 @@ static __poll_t rds_poll(struct file *file, struct socket *sock, static int rds_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg) { struct rds_sock *rs = rds_sk_to_rs(sock->sk); - rds_tos_t tos; + rds_tos_t utos, tos = 0; switch (cmd) { case SIOCRDSSETTOS: - if (get_user(tos, (rds_tos_t __user *)arg)) + if (get_user(utos, (rds_tos_t __user *)arg)) return -EFAULT; if (rs->rs_transport && - rs->rs_transport->t_type == RDS_TRANS_TCP) - tos = 0; + rs->rs_transport->get_tos_map) + tos = rs->rs_transport->get_tos_map(utos); + else + return -ENOIOCTLCMD; spin_lock_bh(&rds_sock_lock); if (rs->rs_tos || rs->rs_conn) { -- cgit v1.2.3