From 0e1736850a0a78440eb773e394b9e56ce55d4c86 Mon Sep 17 00:00:00 2001 From: Oliver Hartkopp Date: Sun, 29 Apr 2018 13:17:48 +0200 Subject: [PATCH] isotp: support getname callback for Linux 4.17+ Following mainline commit 9b2c45d479d0fb8647c9e83359df69162b5fbe5f ("net: make getname() functions return length rather than use int* parameter") Signed-off-by: Oliver Hartkopp --- net/can/isotp.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/net/can/isotp.c b/net/can/isotp.c index 7c9aa45..5ade3f7 100644 --- a/net/can/isotp.c +++ b/net/can/isotp.c @@ -1163,8 +1163,12 @@ out: return err; } +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,17,0) +static int isotp_getname(struct socket *sock, struct sockaddr *uaddr, int peer) +#else static int isotp_getname(struct socket *sock, struct sockaddr *uaddr, int *len, int peer) +#endif { struct sockaddr_can *addr = (struct sockaddr_can *)uaddr; struct sock *sk = sock->sk; @@ -1178,9 +1182,13 @@ static int isotp_getname(struct socket *sock, struct sockaddr *uaddr, addr->can_addr.tp.rx_id = so->rxid; addr->can_addr.tp.tx_id = so->txid; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,17,0) + return sizeof(*addr); +#else *len = sizeof(*addr); return 0; +#endif } #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)