From patchwork Tue Apr 16 20:31:14 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 162382 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp4665249jan; Tue, 16 Apr 2019 13:31:54 -0700 (PDT) X-Google-Smtp-Source: APXvYqz6E0Px2d4WFin9yyTZNc7TQjHbW3/t2AbhHoaUD/1u8ftSLZGJVydlKcH8fHD8uxXymPr3 X-Received: by 2002:a63:e304:: with SMTP id f4mr74121896pgh.374.1555446714594; Tue, 16 Apr 2019 13:31:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555446714; cv=none; d=google.com; s=arc-20160816; b=zV9b5wdQjfCKp/IxA32FbuWvcSKMQAfllnAQKdzxDvaCIXGDllZvqoMBiQdQG1DLMg 6Vbc3VfDze8hbX8GQ9TLIyT0bmlXb6mM7uHOL+2hu9FxdOgnTaA5+Sew0eqJr+xlG+cP xWOuy5inO5sd/vP6VRPakE4jALCaNcznIAct7QGd2T03v4fT3lMxwjBF/97JSGco3IcK iI5KW9jMx6LTAzplZ/y3bMH+VHJ0rrbnI88AKfixsGkCgE5aSXPqdDn+1pu2j6I7Xoge xpostzkqBPSpyc3qvfpiaUVzjGQUUguV5vk1SKKN10nZf0qKgdcALwKSyobl0wbNBkw/ ngmA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=IjYh6gxVYrmfMcNZUQJZz3WAeZeSwGLw5vyAwUc4yyI=; b=s3CIwQ7Ve6LO+8ELbxAm4g6ZpGx+vKILHU8Uu8LboleSPygjsajmYJ7hccNH8QN0PW UevG+DuIUesTr1XhiKEZsaXqiQRzEwGjiCeCfLbDx0eevfNPJCkfuiycxQR37VX89sXV ILC+xRB8dtKBusHd5HLkdNFakMykBiqXCupm/SyLusXR7i2lKva/Ni0mPguZjfnRuh9/ f+Hmsk9xDNCJnnT/ltv0CY4R6gHrBEO00kYtWVj9OOan1TpSJp2NsfVvHw1PAN7WVW8Y snDKzLMcBikIJacdxXD3SGrV62uj5qC4TfddX0wjOdCelrKAp0kkThGKzWYZF+ZFraB2 My7Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c32si48328913pgl.510.2019.04.16.13.31.54; Tue, 16 Apr 2019 13:31:54 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730768AbfDPUbw (ORCPT + 30 others); Tue, 16 Apr 2019 16:31:52 -0400 Received: from mout.kundenserver.de ([217.72.192.73]:43555 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730325AbfDPUbw (ORCPT ); Tue, 16 Apr 2019 16:31:52 -0400 Received: from threadripper.lan ([149.172.19.189]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.145]) with ESMTPA (Nemesis) id 1N2mS2-1grMbt2AaS-0134ab; Tue, 16 Apr 2019 22:31:45 +0200 From: Arnd Bergmann To: "David S. Miller" , Eric Dumazet , Willem de Bruijn , Deepa Dinamani , Arnd Bergmann Cc: Yafang Shao , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net] socket: fix compat SO_RCVTIMEO_NEW/SO_SNDTIMEO_NEW Date: Tue, 16 Apr 2019 22:31:14 +0200 Message-Id: <20190416203143.408835-1-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 MIME-Version: 1.0 X-Provags-ID: V03:K1:Gr+wKH+d/ofnFqh9hLhzKvW3GV6jgcB8Gk07iFcnWJLu7KZp6KQ T0DZ2ua5K4qyTidoFk2vc5V09AexvVg9OsVbQ5ZddpsrKi4T71xjHf/0pU/stJGwMTSVPLO DDg8OI/horOdut6seP63iljYhZwtKseZDwtf2NaSQyBSWYVzzm9mK4WqKKnTIuW3OFSPyGv awUJYR+6iO/0EO2KvXcoA== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:8nIufYNRBU0=:gBihqo+8yzCf1wLnfqevyu ERX87mA2zQfsckvPNyRxkKNeKO/i8jG8mqtbtBPO9fiyRCf7X1lehH9KQUCfdzhXIUya/P0bK ATPrPzj8NbNdEnB7Vz/MFIE0eJTuLNFz2g0BLlWe9UhGU226x13xT0sw2jRjZsOnCeB9nv+fj feMMPSHbBWkKWpYUNw+5DfK7h/r8Dax3RKY+zdvvBrkpFZl6ujT++zrgzeKdHHAsaZoWthYz4 dwhUkfxo+TJY+SZ/tMHR18IvB/gbhtx7c1ngxbNA3Jishnghs0aiqxLT9P4xpsjJCMMhnT+MJ Hjk54o6PhkJ6I+COIzp4wjpNLprdcMDRdeUMeyoJLs47i/hiLkaxonG6FtD6rGCHL6tKmaVSZ JKBJJ4UFABFgz0Yoozju9+fZ05lQxWXZMiW3FX9bx+rVQLTp3RRw+T04Pg3I8YlenfsK92hoC lg2XOb6RuRlq7Iw9YUzYD8BN6mutmknLeNcrjNhJxZ2AmrmfmpElSZCL0706BZjrPBIup8xMx Y5M697YAkKQs3d/nWRui7VXb4uwbUkWWs4/adHSP07igGSLHYA2oQ4hKBD/ssNGMAQz0cTbVu rWNxZnveX7F1ho0d8CqvodhZvq77cNRrYY8nQ9Y32OyejouQDYgIwci2lomay/niUsdU6rMcl zL05yptiDxxd6JHAPUXWc/dPdiVBTE2CKRH+YUkeIs3Vj0OolE923AdbOy97JoFg8iMmNr4g2 n0scb2LnGNwkLXcAuxQ3ENQCFM3cTRY1zUfVgQ== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org It looks like the new socket options only work correctly for native execution, but in case of compat mode fall back to the old behavior as we ignore the 'old_timeval' flag. Rework so we treat SO_RCVTIMEO_NEW/SO_SNDTIMEO_NEW the same way in compat and native 32-bit mode. Cc: Deepa Dinamani Fixes: a9beb86ae6e5 ("sock: Add SO_RCVTIMEO_NEW and SO_SNDTIMEO_NEW") Signed-off-by: Arnd Bergmann --- net/core/sock.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- 2.20.0 Acked-by: Deepa Dinamani diff --git a/net/core/sock.c b/net/core/sock.c index dc7c31d66200..1e418c0b3b73 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -348,7 +348,7 @@ static int sock_get_timeout(long timeo, void *optval, bool old_timeval) tv.tv_usec = ((timeo % HZ) * USEC_PER_SEC) / HZ; } - if (in_compat_syscall() && !COMPAT_USE_64BIT_TIME) { + if (old_timeval && in_compat_syscall() && !COMPAT_USE_64BIT_TIME) { struct old_timeval32 tv32 = { tv.tv_sec, tv.tv_usec }; *(struct old_timeval32 *)optval = tv32; return sizeof(tv32); @@ -372,7 +372,7 @@ static int sock_set_timeout(long *timeo_p, char __user *optval, int optlen, bool { struct __kernel_sock_timeval tv; - if (in_compat_syscall() && !COMPAT_USE_64BIT_TIME) { + if (old_timeval && in_compat_syscall() && !COMPAT_USE_64BIT_TIME) { struct old_timeval32 tv32; if (optlen < sizeof(tv32))