[{"id":1774771,"web_url":"http://patchwork.ozlabs.org/comment/1774771/","msgid":"<063D6719AE5E284EB5DD2968C1650D6DD007F521@AcuExch.aculab.com>","list_archive_url":null,"date":"2017-09-25T14:41:30","subject":"RE: [PATCH v4 4/9] em28xx: fix em28xx_dvb_init for KASAN","submitter":{"id":6689,"url":"http://patchwork.ozlabs.org/api/people/6689/","name":"David Laight","email":"David.Laight@ACULAB.COM"},"content":"From: Arnd Bergmann\n> Sent: 22 September 2017 22:29\n...\n> It seems that this is triggered in part by using strlcpy(), which the\n> compiler doesn't recognize as copying at most 'len' bytes, since strlcpy\n> is not part of the C standard.\n\nNeither is strncpy().\n\nIt'll almost certainly be a marker in a header file somewhere,\nso it should be possibly to teach it about other functions.\n\n\tDavid","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y16HB6kMyz9tXC\n\tfor <patchwork-incoming@ozlabs.org>;\n\tTue, 26 Sep 2017 00:41:58 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S935941AbdIYOlt convert rfc822-to-8bit (ORCPT\n\t<rfc822;patchwork-incoming@ozlabs.org>);\n\tMon, 25 Sep 2017 10:41:49 -0400","from smtp-out4.electric.net ([192.162.216.185]:63679 \"EHLO\n\tsmtp-out4.electric.net\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S933355AbdIYOlr (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Mon, 25 Sep 2017 10:41:47 -0400","from 1dwUZe-00022E-U3 by out4a.electric.net with emc1-ok (Exim\n\t4.87) (envelope-from <David.Laight@ACULAB.COM>)\n\tid 1dwUZj-0002NO-WB; Mon, 25 Sep 2017 07:41:35 -0700","by emcmailer; Mon, 25 Sep 2017 07:41:35 -0700","from [156.67.243.126] (helo=AcuExch.aculab.com)\n\tby out4a.electric.net with esmtps (TLSv1:AES128-SHA:128)\n\t(Exim 4.87) (envelope-from <David.Laight@ACULAB.COM>)\n\tid 1dwUZe-00022E-U3; Mon, 25 Sep 2017 07:41:30 -0700","from ACUEXCH.Aculab.com ([::1]) by AcuExch.aculab.com ([::1]) with\n\tmapi id 14.03.0123.003; Mon, 25 Sep 2017 15:41:31 +0100"],"From":"David Laight <David.Laight@ACULAB.COM>","To":"'Arnd Bergmann' <arnd@arndb.de>,\n\tMauro Carvalho Chehab <mchehab@kernel.org>","CC":"Jiri Pirko <jiri@resnulli.us>, Arend van Spriel\n\t<arend.vanspriel@broadcom.com>, Kalle Valo <kvalo@codeaurora.org>,\n\t\"David S. Miller\" <davem@davemloft.net>, \n\tAndrey Ryabinin <aryabinin@virtuozzo.com>, Alexander Potapenko\n\t<glider@google.com>,         Dmitry Vyukov <dvyukov@google.com>,\n\tMasahiro Yamada <yamada.masahiro@socionext.com>, \n\tMichal Marek <mmarek@suse.com>,\n\tAndrew Morton <akpm@linux-foundation.org>, Kees Cook\n\t<keescook@chromium.org>, Geert Uytterhoeven <geert@linux-m68k.org>,\n\t\"Greg Kroah-Hartman\" <gregkh@linuxfoundation.org>, \n\t\"linux-media@vger.kernel.org\" <linux-media@vger.kernel.org>, \n\t\"linux-kernel@vger.kernel.org\" <linux-kernel@vger.kernel.org>, \n\t\"netdev@vger.kernel.org\" <netdev@vger.kernel.org>, \n\t\"linux-wireless@vger.kernel.org\" <linux-wireless@vger.kernel.org>, \n\t\"brcm80211-dev-list.pdl@broadcom.com\" \n\t<brcm80211-dev-list.pdl@broadcom.com>, \"brcm80211-dev-list@cypress.com\"\n\t<brcm80211-dev-list@cypress.com>, \"kasan-dev@googlegroups.com\"\n\t<kasan-dev@googlegroups.com>, \"linux-kbuild@vger.kernel.org\"\n\t<linux-kbuild@vger.kernel.org>, Jakub Jelinek <jakub@gcc.gnu.org>,\n\t=?windows-1252?q?Martin_Li=9Aka?= <marxin@gcc.gnu.org>,\n\t\"stable@vger.kernel.org\" <stable@vger.kernel.org>","Subject":"RE: [PATCH v4 4/9] em28xx: fix em28xx_dvb_init for KASAN","Thread-Topic":"[PATCH v4 4/9] em28xx: fix em28xx_dvb_init for KASAN","Thread-Index":"AQHTM+pQTq51yuwnA0mEOpAZrSrSVKLFsHEA","Date":"Mon, 25 Sep 2017 14:41:30 +0000","Message-ID":"<063D6719AE5E284EB5DD2968C1650D6DD007F521@AcuExch.aculab.com>","References":"<20170922212930.620249-1-arnd@arndb.de>\n\t<20170922212930.620249-5-arnd@arndb.de>","In-Reply-To":"<20170922212930.620249-5-arnd@arndb.de>","Accept-Language":"en-GB, en-US","Content-Language":"en-US","X-MS-Has-Attach":"","X-MS-TNEF-Correlator":"","x-originating-ip":"[10.202.99.200]","Content-Type":"text/plain; charset=\"Windows-1252\"","Content-Transfer-Encoding":"8BIT","MIME-Version":"1.0","X-Outbound-IP":"156.67.243.126","X-Env-From":"David.Laight@ACULAB.COM","X-Proto":"esmtps","X-Revdns":"","X-HELO":"AcuExch.aculab.com","X-TLS":"TLSv1:AES128-SHA:128","X-Authenticated_ID":"","X-PolicySMART":"3396946, 3397078","X-Virus-Status":["Scanned by VirusSMART (c)","Scanned by VirusSMART (s)"],"Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}},{"id":1775186,"web_url":"http://patchwork.ozlabs.org/comment/1775186/","msgid":"<CAK8P3a1zxjMsQTBPijCo8FJjEU5aRVTr7n_NZ1YM2UnDPKoRLw@mail.gmail.com>","list_archive_url":null,"date":"2017-09-26T06:32:08","subject":"Re: [PATCH v4 4/9] em28xx: fix em28xx_dvb_init for KASAN","submitter":{"id":30,"url":"http://patchwork.ozlabs.org/api/people/30/","name":"Arnd Bergmann","email":"arnd@arndb.de"},"content":"On Mon, Sep 25, 2017 at 7:41 AM, David Laight <David.Laight@aculab.com> wrote:\n> From: Arnd Bergmann\n>> Sent: 22 September 2017 22:29\n> ...\n>> It seems that this is triggered in part by using strlcpy(), which the\n>> compiler doesn't recognize as copying at most 'len' bytes, since strlcpy\n>> is not part of the C standard.\n>\n> Neither is strncpy().\n>\n> It'll almost certainly be a marker in a header file somewhere,\n> so it should be possibly to teach it about other functions.\n\nI'm currently travelling and haven't investigated in detail, but from\ntaking a closer look here, I found that the hardened 'strlcpy()'\nin include/linux/string.h triggers it. There is also a hardened\n(much shorted) 'strncpy()' that doesn't trigger it in the same file,\nand having only the extern declaration of strncpy also doesn't.\n\n        Arnd","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"mPI10jm2\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y1WMq4tQvz9s76\n\tfor <patchwork-incoming@ozlabs.org>;\n\tTue, 26 Sep 2017 16:32:23 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S965925AbdIZGcN (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tTue, 26 Sep 2017 02:32:13 -0400","from mail-oi0-f67.google.com ([209.85.218.67]:38824 \"EHLO\n\tmail-oi0-f67.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S965865AbdIZGcJ (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Tue, 26 Sep 2017 02:32:09 -0400","by mail-oi0-f67.google.com with SMTP id s145so737305oie.5;\n\tMon, 25 Sep 2017 23:32:09 -0700 (PDT)","by 10.157.0.70 with HTTP; Mon, 25 Sep 2017 23:32:08 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=gmail.com; s=20161025;\n\th=mime-version:sender:in-reply-to:references:from:date:message-id\n\t:subject:to:cc;\n\tbh=g7pyUKJGYKq2TXVawmncqlG1lbJ8skAYInijUyG/QZI=;\n\tb=mPI10jm2PPK2NgicLcsK54g8PFkZdcpcsV6RzZRkFLKOxu5u1taW61NnZvL+Kr+4xv\n\t50XW4dxFVw9cC+pwPz8WFjqhALygMe6MYIGI1z/bp7X+rx+OgZAos3S3DcMJsRNUrK5J\n\ta0iNI6xByX8YKCvS/RtNjmHyXLyfS1pWgd77zhoha4nonTkcUOGbLAT0edv6h3uHB2qE\n\thMUWX4wKQ9MHiFV26kCku7dZ6eVFpCakM4BRWnvPrGRJBpFRndAnZ0VLEZOm6Pr3SXK6\n\t7xRNmCvsJhD36ppg74/G4YqJkK99vTandIKxAJkiSKVi+aNS+BByh79colLz0Di1CnjC\n\tArSQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:sender:in-reply-to:references:from\n\t:date:message-id:subject:to:cc;\n\tbh=g7pyUKJGYKq2TXVawmncqlG1lbJ8skAYInijUyG/QZI=;\n\tb=ZmiTeCROI6gGgzTSLuST+qOONjNiLT1PMmja+xUw1KzkkB2MNPKkqYzkJa64I1LMUT\n\twZYOBVk6ggISNQuRCIGn/90UckC2MzQfDhgR2qqGoSIpKu+xz8Ty4odyej7yuUhn99Dx\n\tl1aT6kG1uToQNkCdzFiHCjbuMmSmAWUoG03/6DthJB5aXEENzvN1Sb49PdXN9lg+pSct\n\tfIX28Pe54ByOaTrKcGIy3q/2BH2009p3oEaoIebg7NSj63JHTUDs9TsyG+oi79QTtyYW\n\tIFzN/NnPVrzh8pc11MGbx0GOpf+ZlUe4howW9BkUEeYzhz3TuA0cbwlafCrNPa/r++gA\n\tycCw==","X-Gm-Message-State":"AHPjjUh8YszWyLEHu2Ek2KfVF9EeH929PYk4emtlFfqwcUSATXSqXTWN\n\tRSCZ2b0wIjx+bxm0uJCsrK/4ummyQ2tILeZ/fvM=","X-Google-Smtp-Source":"AOwi7QBHRyMd32v86tO11zjO2Le0LSxhBH4K3eULNfTqVt2b3HFhKZFoDis3/IX0hZSnmVMxRMgnQmO9pBD/n0Fbsfo=","X-Received":"by 10.202.185.9 with SMTP id j9mr12342613oif.45.1506407528581;\n\tMon, 25 Sep 2017 23:32:08 -0700 (PDT)","MIME-Version":"1.0","In-Reply-To":"<063D6719AE5E284EB5DD2968C1650D6DD007F521@AcuExch.aculab.com>","References":"<20170922212930.620249-1-arnd@arndb.de>\n\t<20170922212930.620249-5-arnd@arndb.de>\n\t<063D6719AE5E284EB5DD2968C1650D6DD007F521@AcuExch.aculab.com>","From":"Arnd Bergmann <arnd@arndb.de>","Date":"Mon, 25 Sep 2017 23:32:08 -0700","X-Google-Sender-Auth":"mLGlzhypbZzM4hdmr2CeHSenNGA","Message-ID":"<CAK8P3a1zxjMsQTBPijCo8FJjEU5aRVTr7n_NZ1YM2UnDPKoRLw@mail.gmail.com>","Subject":"Re: [PATCH v4 4/9] em28xx: fix em28xx_dvb_init for KASAN","To":"David Laight <David.Laight@aculab.com>","Cc":"Mauro Carvalho Chehab <mchehab@kernel.org>,\n\tJiri Pirko <jiri@resnulli.us>, Arend van Spriel\n\t<arend.vanspriel@broadcom.com>, Kalle Valo <kvalo@codeaurora.org>,\n\t\"David S. Miller\" <davem@davemloft.net>, \n\tAndrey Ryabinin <aryabinin@virtuozzo.com>, Alexander Potapenko\n\t<glider@google.com>,         Dmitry Vyukov <dvyukov@google.com>,\n\tMasahiro Yamada <yamada.masahiro@socionext.com>, \n\tMichal Marek <mmarek@suse.com>,\n\tAndrew Morton <akpm@linux-foundation.org>, Kees Cook\n\t<keescook@chromium.org>, Geert Uytterhoeven <geert@linux-m68k.org>,\n\tGreg Kroah-Hartman <gregkh@linuxfoundation.org>, \n\t\"linux-media@vger.kernel.org\" <linux-media@vger.kernel.org>, \n\t\"linux-kernel@vger.kernel.org\" <linux-kernel@vger.kernel.org>, \n\t\"netdev@vger.kernel.org\" <netdev@vger.kernel.org>, \n\t\"linux-wireless@vger.kernel.org\" <linux-wireless@vger.kernel.org>, \n\t\"brcm80211-dev-list.pdl@broadcom.com\" \n\t<brcm80211-dev-list.pdl@broadcom.com>, \"brcm80211-dev-list@cypress.com\"\n\t<brcm80211-dev-list@cypress.com>, \"kasan-dev@googlegroups.com\"\n\t<kasan-dev@googlegroups.com>, \"linux-kbuild@vger.kernel.org\"\n\t<linux-kbuild@vger.kernel.org>, Jakub Jelinek <jakub@gcc.gnu.org>,\n\t=?utf-8?q?Martin_Li=C5=A1ka?= <marxin@gcc.gnu.org>,\n\t\"stable@vger.kernel.org\" <stable@vger.kernel.org>","Content-Type":"text/plain; charset=\"UTF-8\"","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}},{"id":1775193,"web_url":"http://patchwork.ozlabs.org/comment/1775193/","msgid":"<CAK8P3a37Ts5q7BvA2JWse87huyAp+=e18CUXEt8731RrBnB+Ow@mail.gmail.com>","list_archive_url":null,"date":"2017-09-26T06:47:45","subject":"Re: [PATCH v4 4/9] em28xx: fix em28xx_dvb_init for KASAN","submitter":{"id":30,"url":"http://patchwork.ozlabs.org/api/people/30/","name":"Arnd Bergmann","email":"arnd@arndb.de"},"content":"On Mon, Sep 25, 2017 at 11:32 PM, Arnd Bergmann <arnd@arndb.de> wrote:\n> On Mon, Sep 25, 2017 at 7:41 AM, David Laight <David.Laight@aculab.com> wrote:\n>> From: Arnd Bergmann\n>>> Sent: 22 September 2017 22:29\n>> ...\n>>> It seems that this is triggered in part by using strlcpy(), which the\n>>> compiler doesn't recognize as copying at most 'len' bytes, since strlcpy\n>>> is not part of the C standard.\n>>\n>> Neither is strncpy().\n>>\n>> It'll almost certainly be a marker in a header file somewhere,\n>> so it should be possibly to teach it about other functions.\n>\n> I'm currently travelling and haven't investigated in detail, but from\n> taking a closer look here, I found that the hardened 'strlcpy()'\n> in include/linux/string.h triggers it. There is also a hardened\n> (much shorted) 'strncpy()' that doesn't trigger it in the same file,\n> and having only the extern declaration of strncpy also doesn't.\n\nAnd a little more experimenting leads to this simple patch that fixes\nthe problem:\n\n--- a/include/linux/string.h\n+++ b/include/linux/string.h\n@@ -254,7 +254,7 @@ __FORTIFY_INLINE size_t strlcpy(char *p, const\nchar *q, size_t size)\n        size_t q_size = __builtin_object_size(q, 0);\n        if (p_size == (size_t)-1 && q_size == (size_t)-1)\n                return __real_strlcpy(p, q, size);\n-       ret = strlen(q);\n+       ret = __builtin_strlen(q);\n        if (size) {\n                size_t len = (ret >= size) ? size - 1 : ret;\n                if (__builtin_constant_p(len) && len >= p_size)\n\nThe problem is apparently that the fortified strlcpy calls the fortified strlen,\nwhich in turn calls strnlen and that ends up calling the extern '__real_strnlen'\nthat gcc cannot reduce to a constant expression for a constant input.\n\nNot sure if that change is the best fix, but it seems to address the problem in\nthis driver and probably leads to better code in other places as well.\n\n          Arnd","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"DQwqO8+H\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y1Wjv6RxSz9t3B\n\tfor <patchwork-incoming@ozlabs.org>;\n\tTue, 26 Sep 2017 16:48:03 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S936748AbdIZGrv (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tTue, 26 Sep 2017 02:47:51 -0400","from mail-oi0-f68.google.com ([209.85.218.68]:33686 \"EHLO\n\tmail-oi0-f68.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S933842AbdIZGrr (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Tue, 26 Sep 2017 02:47:47 -0400","by mail-oi0-f68.google.com with SMTP id z73so5551287oia.0;\n\tMon, 25 Sep 2017 23:47:46 -0700 (PDT)","by 10.157.0.70 with HTTP; Mon, 25 Sep 2017 23:47:45 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=gmail.com; s=20161025;\n\th=mime-version:sender:in-reply-to:references:from:date:message-id\n\t:subject:to:cc;\n\tbh=PsEvcK00qK+dsHmnfbLaEKGdKNgYLeXgWN70UJEPpfA=;\n\tb=DQwqO8+HJkvMlpLe/7G/N/vY47XqnHcMp049iF9AJIU4+hOnZQxkXv8LYGW5/ueNQz\n\tCD/DIqq8w4GDyUuLfkZSwH0892h79fMl3E9eaSvrYEtpcFmRAgwhbJTL1toAZm6wB0UC\n\tbxEUm5SnQ6vlhj9+psAHFeKKBmFis6fbAl8TQAKZJqAcFvLAOBKBaehsaJLgWc5wHkJT\n\tNwQYAY5Rnydqjctupivk98eLekIDIrh4hjJfaj6impHPJ+Ro1Z3otLggCGNh2bgLXDLl\n\tcE9ziBBr5+NKOOa4AgUxHwkW+TWgBgxly5nIkqZ0amfLkfUy5ZZByQsYLDWz9gTjj6qF\n\tUYSw==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:sender:in-reply-to:references:from\n\t:date:message-id:subject:to:cc;\n\tbh=PsEvcK00qK+dsHmnfbLaEKGdKNgYLeXgWN70UJEPpfA=;\n\tb=DSNlfzDbemses6WfnW0wZpd9FVMFT2nFxb/GIvdGgBEfc+/XAS6u3fCN7MM8cmmRDW\n\tfUpf7Yp2p7LefywI6R+GQhdkt+cO92M8qAUU1GbEaD1UXT3ucyc3a+sBx8UysaZgEE7Z\n\tFUWUBNNKVejzVLi5LBiJaTNmaoq6SIbtG4LSHsMAcLL2188DSFHS9/Wyhim2DJV7Gsoj\n\t/YqpSUPJcd9P5xR+tMY47767ZlHriL5eDBqssTAwRY9aE0eOIE27cGRJ6G9u4mAeonnD\n\tlAgWbzxmumJSOqtzYYDLZEyJzFfvZqYCovnvQqVgV86ty34YOa0iHyj89DwqvVuwGdkD\n\tjSew==","X-Gm-Message-State":"AHPjjUgq+b3ts5ug680lJ+Zs+6pEwkti6G4dtIpEXlM0t3RSW/DuSVmq\n\tS4cKbNRYvElBSUTj8b9/8hwRmpfLP9cGtJmvU6Q=","X-Google-Smtp-Source":"AOwi7QBkoQsPGX6+KCsfW699jGWzlBa61+GWW4zbkSgT42+3Eyz8LKSkStsBOCjtNVGsDFGyRlnkzbsFDw7yAoQILBk=","X-Received":"by 10.202.185.9 with SMTP id j9mr12374546oif.45.1506408466182;\n\tMon, 25 Sep 2017 23:47:46 -0700 (PDT)","MIME-Version":"1.0","In-Reply-To":"<CAK8P3a1zxjMsQTBPijCo8FJjEU5aRVTr7n_NZ1YM2UnDPKoRLw@mail.gmail.com>","References":"<20170922212930.620249-1-arnd@arndb.de>\n\t<20170922212930.620249-5-arnd@arndb.de>\n\t<063D6719AE5E284EB5DD2968C1650D6DD007F521@AcuExch.aculab.com>\n\t<CAK8P3a1zxjMsQTBPijCo8FJjEU5aRVTr7n_NZ1YM2UnDPKoRLw@mail.gmail.com>","From":"Arnd Bergmann <arnd@arndb.de>","Date":"Mon, 25 Sep 2017 23:47:45 -0700","X-Google-Sender-Auth":"HQ_mIl9Uz7wWSjTodbVv7aMZaN0","Message-ID":"<CAK8P3a37Ts5q7BvA2JWse87huyAp+=e18CUXEt8731RrBnB+Ow@mail.gmail.com>","Subject":"Re: [PATCH v4 4/9] em28xx: fix em28xx_dvb_init for KASAN","To":"David Laight <David.Laight@aculab.com>","Cc":"Mauro Carvalho Chehab <mchehab@kernel.org>,\n\tJiri Pirko <jiri@resnulli.us>, Arend van Spriel\n\t<arend.vanspriel@broadcom.com>, Kalle Valo <kvalo@codeaurora.org>,\n\t\"David S. Miller\" <davem@davemloft.net>, \n\tAndrey Ryabinin <aryabinin@virtuozzo.com>, Alexander Potapenko\n\t<glider@google.com>,         Dmitry Vyukov <dvyukov@google.com>,\n\tMasahiro Yamada <yamada.masahiro@socionext.com>, \n\tMichal Marek <mmarek@suse.com>,\n\tAndrew Morton <akpm@linux-foundation.org>, Kees Cook\n\t<keescook@chromium.org>, Geert Uytterhoeven <geert@linux-m68k.org>,\n\tGreg Kroah-Hartman <gregkh@linuxfoundation.org>, \n\t\"linux-media@vger.kernel.org\" <linux-media@vger.kernel.org>, \n\t\"linux-kernel@vger.kernel.org\" <linux-kernel@vger.kernel.org>, \n\t\"netdev@vger.kernel.org\" <netdev@vger.kernel.org>, \n\t\"linux-wireless@vger.kernel.org\" <linux-wireless@vger.kernel.org>, \n\t\"brcm80211-dev-list.pdl@broadcom.com\" \n\t<brcm80211-dev-list.pdl@broadcom.com>, \"brcm80211-dev-list@cypress.com\"\n\t<brcm80211-dev-list@cypress.com>, \"kasan-dev@googlegroups.com\"\n\t<kasan-dev@googlegroups.com>, \"linux-kbuild@vger.kernel.org\"\n\t<linux-kbuild@vger.kernel.org>, Jakub Jelinek <jakub@gcc.gnu.org>,\n\t=?utf-8?q?Martin_Li=C5=A1ka?= <marxin@gcc.gnu.org>,\n\t\"stable@vger.kernel.org\" <stable@vger.kernel.org>","Content-Type":"text/plain; charset=\"UTF-8\"","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}},{"id":1775677,"web_url":"http://patchwork.ozlabs.org/comment/1775677/","msgid":"<e7e6418e-4340-5057-aa17-800082aca5fb@virtuozzo.com>","list_archive_url":null,"date":"2017-09-26T16:49:48","subject":"Re: [PATCH v4 4/9] em28xx: fix em28xx_dvb_init for KASAN","submitter":{"id":67796,"url":"http://patchwork.ozlabs.org/api/people/67796/","name":"Andrey Ryabinin","email":"aryabinin@virtuozzo.com"},"content":"On 09/26/2017 09:47 AM, Arnd Bergmann wrote:\n> On Mon, Sep 25, 2017 at 11:32 PM, Arnd Bergmann <arnd@arndb.de> wrote:\n>> On Mon, Sep 25, 2017 at 7:41 AM, David Laight <David.Laight@aculab.com> wrote:\n>>> From: Arnd Bergmann\n>>>> Sent: 22 September 2017 22:29\n>>> ...\n>>>> It seems that this is triggered in part by using strlcpy(), which the\n>>>> compiler doesn't recognize as copying at most 'len' bytes, since strlcpy\n>>>> is not part of the C standard.\n>>>\n>>> Neither is strncpy().\n>>>\n>>> It'll almost certainly be a marker in a header file somewhere,\n>>> so it should be possibly to teach it about other functions.\n>>\n>> I'm currently travelling and haven't investigated in detail, but from\n>> taking a closer look here, I found that the hardened 'strlcpy()'\n>> in include/linux/string.h triggers it. There is also a hardened\n>> (much shorted) 'strncpy()' that doesn't trigger it in the same file,\n>> and having only the extern declaration of strncpy also doesn't.\n> \n> And a little more experimenting leads to this simple patch that fixes\n> the problem:\n> \n> --- a/include/linux/string.h\n> +++ b/include/linux/string.h\n> @@ -254,7 +254,7 @@ __FORTIFY_INLINE size_t strlcpy(char *p, const\n> char *q, size_t size)\n>         size_t q_size = __builtin_object_size(q, 0);\n>         if (p_size == (size_t)-1 && q_size == (size_t)-1)\n>                 return __real_strlcpy(p, q, size);\n> -       ret = strlen(q);\n> +       ret = __builtin_strlen(q);\n\n\nI think this is not correct. Fortified strlen called here on purpose. If sizeof q is known at compile time\nand 'q' contains not-null fortified strlen() will panic.\n\n\n>         if (size) {\n>                 size_t len = (ret >= size) ? size - 1 : ret;\n>                 if (__builtin_constant_p(len) && len >= p_size)\n> \n> The problem is apparently that the fortified strlcpy calls the fortified strlen,\n> which in turn calls strnlen and that ends up calling the extern '__real_strnlen'\n> that gcc cannot reduce to a constant expression for a constant input.\n\n\nPer my observation, it's the code like this:\n\tif () \n\t\tfortify_panic(__func__);\n\n\nsomehow prevent gcc to merge several \"struct i2c_board_info info;\" into one stack slot.\nWith the hack bellow, stack usage reduced to ~1,6K:\n\n---\n include/linux/string.h | 4 ----\n 1 file changed, 4 deletions(-)\n\ndiff --git a/include/linux/string.h b/include/linux/string.h\nindex 54d21783e18d..9a96ff3ebf94 100644\n--- a/include/linux/string.h\n+++ b/include/linux/string.h\n@@ -261,8 +261,6 @@ __FORTIFY_INLINE __kernel_size_t strlen(const char *p)\n \tif (p_size == (size_t)-1)\n \t\treturn __builtin_strlen(p);\n \tret = strnlen(p, p_size);\n-\tif (p_size <= ret)\n-\t\tfortify_panic(__func__);\n \treturn ret;\n }\n \n@@ -271,8 +269,6 @@ __FORTIFY_INLINE __kernel_size_t strnlen(const char *p, __kernel_size_t maxlen)\n {\n \tsize_t p_size = __builtin_object_size(p, 0);\n \t__kernel_size_t ret = __real_strnlen(p, maxlen < p_size ? maxlen : p_size);\n-\tif (p_size <= ret && maxlen != ret)\n-\t\tfortify_panic(__func__);\n \treturn ret;\n }\n\n\n\n\n> Not sure if that change is the best fix, but it seems to address the problem in\n> this driver and probably leads to better code in other places as well.\n> \n\nProbably it would be better to solve this on the strlcpy side, but I haven't found the way to do this right.\nAlternative solutions:\n\n - use memcpy() instead of strlcpy(). All source strings are smaller than I2C_NAME_SIZE, so we could\n   do something like this - memcpy(info.type, \"si2168\", sizeof(\"si2168\"));\n   Also this should be faster.\n\n - Move code under different \"case:\" in the switch(dev->model) to the separate function should help as well.\n   But it might be harder to backport into stables.","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=virtuozzo.com header.i=@virtuozzo.com\n\theader.b=\"AMpphwo5\"; dkim-atps=neutral","spf=none (sender IP is )\n\tsmtp.mailfrom=aryabinin@virtuozzo.com; "],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y1n1X584cz9sxR\n\tfor <patchwork-incoming@ozlabs.org>;\n\tWed, 27 Sep 2017 02:47:28 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S968066AbdIZQrE (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tTue, 26 Sep 2017 12:47:04 -0400","from mail-eopbgr00094.outbound.protection.outlook.com\n\t([40.107.0.94]:17376\n\t\"EHLO EUR02-AM5-obe.outbound.protection.outlook.com\"\n\trhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP\n\tid S936407AbdIZQrA (ORCPT <rfc822;netdev@vger.kernel.org>);\n\tTue, 26 Sep 2017 12:47:00 -0400","from [172.16.25.12] (195.214.232.6) by\n\tDB6PR08MB2824.eurprd08.prod.outlook.com (2603:10a6:6:1d::27) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7;\n\tTue, 26 Sep 2017 16:46:51 +0000"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com;\n\ts=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version;\n\tbh=97QMXsLibuzoIZ3BemGeHTunXNd6vTHVlSqS3rZHcwY=;\n\tb=AMpphwo543aSokt5Xy1j7J9O3I1nbJSrnW9sxfI6CjQKVCUpFQlYZCzHXWChnzXHjVpkGzI44dxiscyyLDW26pTi9R1ZrDFQZ4ThzTjqlNgCMKUavA0Rj/UtLqXV9ApBvOvBXbvmBW7r4is1CHyO9kZJDv1uMJO91QrpuicmnII=","Subject":"Re: [PATCH v4 4/9] em28xx: fix em28xx_dvb_init for KASAN","To":"Arnd Bergmann <arnd@arndb.de>, David Laight <David.Laight@aculab.com>","Cc":"Mauro Carvalho Chehab <mchehab@kernel.org>,\n\tJiri Pirko <jiri@resnulli.us>, Arend van Spriel\n\t<arend.vanspriel@broadcom.com>, Kalle Valo <kvalo@codeaurora.org>,\n\t\"David S. Miller\" <davem@davemloft.net>, \n\tAlexander Potapenko <glider@google.com>, Dmitry Vyukov\n\t<dvyukov@google.com>, Masahiro Yamada <yamada.masahiro@socionext.com>,\n\tMichal Marek <mmarek@suse.com>, \n\tAndrew Morton <akpm@linux-foundation.org>, Kees Cook\n\t<keescook@chromium.org>, Geert Uytterhoeven <geert@linux-m68k.org>,\n\tGreg Kroah-Hartman <gregkh@linuxfoundation.org>, \n\t\"linux-media@vger.kernel.org\" <linux-media@vger.kernel.org>, \n\t\"linux-kernel@vger.kernel.org\" <linux-kernel@vger.kernel.org>, \n\t\"netdev@vger.kernel.org\" <netdev@vger.kernel.org>, \n\t\"linux-wireless@vger.kernel.org\" <linux-wireless@vger.kernel.org>, \n\t\"brcm80211-dev-list.pdl@broadcom.com\" \n\t<brcm80211-dev-list.pdl@broadcom.com>, \"brcm80211-dev-list@cypress.com\"\n\t<brcm80211-dev-list@cypress.com>, \"kasan-dev@googlegroups.com\"\n\t<kasan-dev@googlegroups.com>, \"linux-kbuild@vger.kernel.org\"\n\t<linux-kbuild@vger.kernel.org>, Jakub Jelinek <jakub@gcc.gnu.org>,\n\t=?utf-8?q?Martin_Li=C5=A1ka?= <marxin@gcc.gnu.org>,\n\t\"stable@vger.kernel.org\" <stable@vger.kernel.org>","References":"<20170922212930.620249-1-arnd@arndb.de>\n\t<20170922212930.620249-5-arnd@arndb.de>\n\t<063D6719AE5E284EB5DD2968C1650D6DD007F521@AcuExch.aculab.com>\n\t<CAK8P3a1zxjMsQTBPijCo8FJjEU5aRVTr7n_NZ1YM2UnDPKoRLw@mail.gmail.com>\n\t<CAK8P3a37Ts5q7BvA2JWse87huyAp+=e18CUXEt8731RrBnB+Ow@mail.gmail.com>","From":"Andrey Ryabinin <aryabinin@virtuozzo.com>","Message-ID":"<e7e6418e-4340-5057-aa17-800082aca5fb@virtuozzo.com>","Date":"Tue, 26 Sep 2017 19:49:48 +0300","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101\n\tThunderbird/52.3.0","MIME-Version":"1.0","In-Reply-To":"<CAK8P3a37Ts5q7BvA2JWse87huyAp+=e18CUXEt8731RrBnB+Ow@mail.gmail.com>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-US","Content-Transfer-Encoding":"7bit","X-Originating-IP":"[195.214.232.6]","X-ClientProxiedBy":"AM5PR0701CA0020.eurprd07.prod.outlook.com\n\t(2603:10a6:203:51::30) To DB6PR08MB2824.eurprd08.prod.outlook.com\n\t(2603:10a6:6:1d::27)","X-MS-PublicTrafficType":"Email","X-MS-Office365-Filtering-Correlation-Id":"c3c72870-5b1e-4fa7-246a-08d504fe30cc","X-Microsoft-Antispam":"UriScan:; BCL:0; PCL:0;\n\tRULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075);\n\tSRVR:DB6PR08MB2824; ","X-Microsoft-Exchange-Diagnostics":["1; DB6PR08MB2824;\n\t3:CfN5z486WiSEWbqOZE9Edy9bORbnpWiwZR4r6gp1Yaa0ZnveTZey4n8ILdDVkrzElx21eTF9+zuUmYoz+aOG6N1VOr2anjwN5wKLOpE1ah22n51c9FQjZm1rka+Mdjm3TDerux+slrBxmFcY0LT8R7JEAAtVzHC+npnIr3xQqq1JLDs9kv4+RMU735QO28WW+4g67aLjVY+4gUwxztIYWVfmFDkxHMHZLbMQc+JYqyMmcw/StV+/xHBSmUCIgOmT;\n\t25:m4hKirLtUXQvzaypD8chp5NuOaooRR9G/SvCTgpbJCWzt+afSWDTWDHnbPIm9O21dgv36n08rcnfV7ApyYjXipjcDa6wDsQT/XTBCZuqBcfhKOLeUyowkKBpGrTRUcPHkqEqvm/JlgYQzp4xEGm6CS1UUxyJAlDKYh0rJTeqXqHbuBKevap5I/lmAKzt2r5AV8pdJ1H6BK1IgGaIzLblFHi/4MTpqS27xXOol6KnG0h+pR8RS1L0WbFI5HUAkZYfyZ25afWJM3SQBcqQzI8oNS+VfUtzRrEh9c2uD9urWF6vRliv/KaCFOIYRNuUzmsxwqRR+5BzvuK5oXzqotd3kA==;\n\t31:4f7RPZxBB2reHNaxkDeQQOVrbPR8koqr40xpHdCs//ptP38aNl1YyAl3AdLIn1r6KijY0qJNHPC0mbohvyhUrTOyyqGRc/Qn9Nvq0aBG3jbWhNTNRhY0AeqkxrSpydHJNZXNeJkLFsGHI2GkkQhdgGYTJyZp2AJqVfbBdeCuNE3NZyVU2wkV5wZPkSHJNT75L0kJ8PMIJA83Vr63lrMDtWTgNV0D73IxMBvljtuXKck=","1; DB6PR08MB2824;\n\t20:e8TYPnd+BxPDEviM/Kubbb4hMcH/KlgkHLwBeObl8eW2GQsNhp4ekSiXK3wVZ4GQO5rkJNmaTf8O44OAPXxl0YkmBgNgvxz8pnUqJTMS3zOWpcdC/AH7bXGMRB4YiwZzPWDw8YQhfa02gvWY+BODr8LkaMk2FyHLP5HnIfQzyDqCVlzjX1nsqOe+VGVEiKyuJ1RHNd9WQFYUXohiOOPHfH5wMCm54eo+8ThyGhxGnGOMkYvI5rVN7+GgDcVxUR42ti1QzMCkXS9HbsKETyroZwmVFZjGMlMU+Gj3BG3T8oKVAtLnMmQ2NIH0dwk0RMt5uptWf0XYHRBCYjk5ZZ/W6u7e7zpcM+5ImhWrDThjz/XEXev00FdBaGAueiewSv9FMl7dS1UCa8krbtvbNtNxtOOZXj2/EniFebYgVwQXD1k=;\n\t4:2EQ/XUn6vI4LycLZ9i6UgcQh5DqsnHF+sU7vTZjMsMlTefoEihF3ODvFdZC7+iWJiXwZ+1Mcov42amif3WJ3POMehrQs/GS3l4djoO0FQJ7VoO/iMVIl6xec3gGEdxBaiOboOTBLeO/g6GM86lLn7g2VSnhRcXTp7WMXoG5+VcQRqEagipk68BqBeJ7Rnt2BIuCt56aZYvGCL3UkwF9XvvWyDdlcNGyD5OKS2Bh36IiDmpLbhyJjYVUxfSuInNtE","=?utf-8?q?1=3BDB6PR08MB2824=3B23=3AKQp3?=\n\t=?utf-8?q?WPuDuFpWWkH0Q8UFRf8bng5RIfueeQQ8KPhid9QGx2yEUQIHFVACCqIK?=\n\t=?utf-8?q?7KoyEcJ8UXP0rhu0AVGRZCjbcJ6/yhujQ/ZW2INzU2z1PDrexo+1o7cm?=\n\t=?utf-8?q?itfIAhEFMu54ijt2/ER3e8zor2Yeau7Xg/Zyz6aihfVpt7ZutaIMSPZA?=\n\t=?utf-8?q?BjoVsKP7jXvXDmQ4f/PRHMS1+DYpfW9gtnybmSxTrB1++4wjQl0FKGOF?=\n\t=?utf-8?q?Vm3sW0H2OQ7b1owRDmtZyuGTQGLxsxhJFuFL7IQM1H3wyMJVmjrlUvn4?=\n\t=?utf-8?q?G2jqfV2MRsvCGDTjwPqYnIBmIEhARJbLPezWuQtEpIkPLfH3D9uLtjl3?=\n\t=?utf-8?q?4uqsuSE8NST5H66EOc7abuUyBJPiLoH34XwGy/W1V9x9s8skr6L8w/+6?=\n\t=?utf-8?q?5JFQdVXdQqTZwh64jS7ipzWtyLqBAhyPHR2+osk76sA97CII8YOVsP+x?=\n\t=?utf-8?q?r2X+6wJi3OHWoBEIjIBcRcSAPqyU6QCVX+4u+p/bFpLDZvSpY1nLX0G+?=\n\t=?utf-8?q?6XONSbTJAEV9YNgZy0GMCd72azSrCiNVN7TsSlw6Eq2P21odcuMja+GQ?=\n\t=?utf-8?q?AGZ9nt8x78LY2Fsq9tYS08aKbOjGhadcCEiBobZQSIgWUThRTeRCqwKy?=\n\t=?utf-8?q?qCVJ8Y5h5OzHi8JShHEEeG/OCKVxj3UuKiAea+zA2/DTXXc2qQ/935K4?=\n\t=?utf-8?q?wXcpFLMuFZP1Y+pfQqAIYUjBQu53RaGVPvWjTuVr23zXNzJlnpkIR76s?=\n\t=?utf-8?q?jrhFl1suIzcXdr99eEHXBVfx9a+Yra/VwFQ0yE27HKe7s8/WcHMyjbZu?=\n\t=?utf-8?q?S84egHO2Vp/sMSH3S5XO8XRb2kbEOCLvRb73mzeL8YOa2wiOnyMDLZmg?=\n\t=?utf-8?q?ZQ91kQYSkWpIfnwFME9kOeiz0zLx0HaYRPT/eq9uq9pjUcIoTqTTMEx0?=\n\t=?utf-8?q?JTJmIIAvfCJoIe1GcFTbadMfU8ATYAQ2gIHt7TUYKoQ8tEncrjRPhK53?=\n\t=?utf-8?q?KiZ4TM4V1QrLkNyQM1xvYWEA94qb8rTpPhaOCrVp08ZnIUGPbw0AWfJF?=\n\t=?utf-8?q?6lYjnHKi8YHXTx5uTfE/AOEClBfHCikkiykV44T0lkVHsFyq+onG1D9V?=\n\t=?utf-8?q?sIzvTMdlvaTMshdnikh92BumzCzxU4wCc3GBDDSYbjhgnl9mIkyMt34d?=\n\t=?utf-8?q?N3XXCYAJLZWy6F/Yk13HueyYyxufZgtC92Lvf1n63RYAx/MrmsvKc5q1?=\n\t=?utf-8?q?WrsfsRlTZC2e0UpeacpwG0KntDDqf1e8X/6C2T6EnLaxgN5w29xIEZze?=\n\t=?utf-8?q?zDPdmVfbVpFDn0rXaxvfyc7HXZ60Yr9zXxuoj1kQgUs/bnu1bPN7WTX9?=\n\t=?utf-8?q?0mLu8jwlR/bZu7W3uX1CNuPJA8JcDNuXOR1QmPYZZ3BHWeoO12Bilkyl?=\n\t=?utf-8?q?k8gly0kXn+sRTa8OoICsN+DYPSBgBt+24bXslGCNXMBr3rsm2Or5cOe/?=\n\t=?utf-8?q?artw?=","1; DB6PR08MB2824;\n\t6:ujp5yLHtl8a7qVfNZBCdQj1/fXASyfNdxEHXDNJOyA6fCd5nw7zK2eNwYIuL3Yi1ghokO/c5YxPpIQGm7vVBFDQyjdd6+WQqlESfDIFrjP3kSI2JmVzMVBxkTkodn0mGUkP5tmHsKkmSLmSegO2JjqOz+U9P36oMipb0Yze04cgf58y1BUftxE0npujxOnrZ8/GlNmvBaVFttJbIRkDWmMhcMC4iuKq2gngwUORltfx0KE2FsmWHVx2xi4nITF57+zmbyI3H9j4JKsgxNLtdQWuJFCevFeCPQg6DYxRBGC0WU7fIMYSAJuoNhJ7LvlRZr9QrptZYGnMWuPZnu27OYw==;\n\t5:v11jrcdNDy3Kn/plB4t2MbX7khtE1ZFUCLpWDruFX7oLYqpUrCFxAwim+EFBTeVR/BIt5P8atN8/H4kIa0v7978iSg+/pXKkvvPkL8pY7VZ68Dt7SQHhun2xFLjvcInQTgtnTAADHzO8KeSEJtQHNw==;\n\t24:cZKQES2mNrdJ4pInJxkVw0mJUeq71lAbTmHbP/cSDIqWm0O88bVNoDhW/ffAWM6wqkOK7P45M70Y3F9YBQG+6Ewnnv2tuIhHp1Z6OorYY/A=;\n\t7:a4lxO9TICJPNfuXIkkfim9C5qGzEo49yZrBdtkNtWTBgLiEq9LggLmUeA61qHmyokvB1EpWxwmPtxvKIfvIMgUrMoQIFvgHQtPFMZRgSeMRWAqw+xp3RItDY69d/b61tDQjyaTNnrysrPcGTNJzqA1hVmRZkURof3pxUEdGG9JQfLKg2y+BwxYXUJUsvftd97ZH14qVs02dZ0yueqYwjSg0I/EiTjY3+PHMFHVGI/AE=","1; DB6PR08MB2824;\n\t20:5GJtSwDKXT2vJDAB+4wKjmJB5OFue5dQvkVkCV4sKxC7BU4w6UpvyzbQXxOPLoS4FmUuD2nLSnYpHYK5/1a1DyLO/lVsyJlMaWT7pUc7G8i5WXLopixgRl9RYRsIZhpeSSQeIspNUh50M2O/nfNggs3+gBbvjrYIlOfIW54beYw="],"X-MS-TrafficTypeDiagnostic":"DB6PR08MB2824:","X-Exchange-Antispam-Report-Test":"UriScan:;","X-Microsoft-Antispam-PRVS":"<DB6PR08MB2824EC1DFD23137CA3F6F976B07B0@DB6PR08MB2824.eurprd08.prod.outlook.com>","X-Exchange-Antispam-Report-CFA-Test":"BCL:0; PCL:0;\n\tRULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(100000703101)(100105400095)(3002001)(93006095)(93001095)(10201501046)(6041248)(20161123562025)(20161123564025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123560025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:DB6PR08MB2824; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:DB6PR08MB2824; ","X-Forefront-PRVS":"0442E569BC","X-Forefront-Antispam-Report":"SFV:NSPM;\n\tSFS:(10019020)(6009001)(6049001)(346002)(376002)(189002)(377454003)(199003)(24454002)(54906003)(25786009)(6246003)(316002)(8936002)(65826007)(7736002)(189998001)(76176999)(6666003)(54356999)(229853002)(16526017)(16576012)(50986999)(64126003)(101416001)(53936002)(7416002)(58126008)(6116002)(23676002)(8676002)(305945005)(36756003)(33646002)(93886005)(68736007)(106356001)(5660300001)(97736004)(3846002)(105586002)(47776003)(50466002)(83506001)(2906002)(2950100002)(31696002)(81156014)(230700001)(4326008)(81166006)(65806001)(66066001)(65956001)(110136005)(478600001)(77096006)(31686004)(53546010)(86362001)(6486002);\n\tDIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR08MB2824; H:[172.16.25.12];\n\tFPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; ","Received-SPF":"None (protection.outlook.com: virtuozzo.com does not designate\n\tpermitted sender hosts)","SpamDiagnosticOutput":"1:99","SpamDiagnosticMetadata":"NSPM","X-OriginatorOrg":"virtuozzo.com","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"26 Sep 2017 16:46:51.0153\n\t(UTC)","X-MS-Exchange-CrossTenant-FromEntityHeader":"Hosted","X-MS-Exchange-CrossTenant-Id":"0bc7f26d-0264-416e-a6fc-8352af79c58f","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"DB6PR08MB2824","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}},{"id":1776340,"web_url":"http://patchwork.ozlabs.org/comment/1776340/","msgid":"<CAK8P3a2C7DBTfQZvRi-QQfrfm1GXktFcXQRmXmzpF4SCa+BADA@mail.gmail.com>","list_archive_url":null,"date":"2017-09-27T13:26:21","subject":"Re: [PATCH v4 4/9] em28xx: fix em28xx_dvb_init for KASAN","submitter":{"id":30,"url":"http://patchwork.ozlabs.org/api/people/30/","name":"Arnd Bergmann","email":"arnd@arndb.de"},"content":"On Tue, Sep 26, 2017 at 9:49 AM, Andrey Ryabinin\n<aryabinin@virtuozzo.com> wrote:\n>\n>\n> On 09/26/2017 09:47 AM, Arnd Bergmann wrote:\n>> On Mon, Sep 25, 2017 at 11:32 PM, Arnd Bergmann <arnd@arndb.de> wrote:\n\n>> +       ret = __builtin_strlen(q);\n>\n>\n> I think this is not correct. Fortified strlen called here on purpose. If sizeof q is known at compile time\n> and 'q' contains not-null fortified strlen() will panic.\n\nOk, got it.\n\n>>         if (size) {\n>>                 size_t len = (ret >= size) ? size - 1 : ret;\n>>                 if (__builtin_constant_p(len) && len >= p_size)\n>>\n>> The problem is apparently that the fortified strlcpy calls the fortified strlen,\n>> which in turn calls strnlen and that ends up calling the extern '__real_strnlen'\n>> that gcc cannot reduce to a constant expression for a constant input.\n>\n>\n> Per my observation, it's the code like this:\n>         if ()\n>                 fortify_panic(__func__);\n>\n>\n> somehow prevent gcc to merge several \"struct i2c_board_info info;\" into one stack slot.\n> With the hack bellow, stack usage reduced to ~1,6K:\n\n1.6k is also what I see with my patch, or any other approach I tried\nthat changes\nstring.h. With the split up em28xx_dvb_init() function (and without\nchanges to string.h),\nI got down to a few hundred bytes for the largest handler.\n\n> ---\n>  include/linux/string.h | 4 ----\n>  1 file changed, 4 deletions(-)\n>\n> diff --git a/include/linux/string.h b/include/linux/string.h\n> index 54d21783e18d..9a96ff3ebf94 100644\n> --- a/include/linux/string.h\n> +++ b/include/linux/string.h\n> @@ -261,8 +261,6 @@ __FORTIFY_INLINE __kernel_size_t strlen(const char *p)\n>         if (p_size == (size_t)-1)\n>                 return __builtin_strlen(p);\n>         ret = strnlen(p, p_size);\n> -       if (p_size <= ret)\n> -               fortify_panic(__func__);\n>         return ret;\n>  }\n>\n> @@ -271,8 +269,6 @@ __FORTIFY_INLINE __kernel_size_t strnlen(const char *p, __kernel_size_t maxlen)\n>  {\n>         size_t p_size = __builtin_object_size(p, 0);\n>         __kernel_size_t ret = __real_strnlen(p, maxlen < p_size ? maxlen : p_size);\n> -       if (p_size <= ret && maxlen != ret)\n> -               fortify_panic(__func__);\n>         return ret;\n\nI've reduced it further to this change:\n\n--- a/include/linux/string.h\n+++ b/include/linux/string.h\n@@ -227,7 +227,7 @@ static inline const char *kbasename(const char *path)\n #define __FORTIFY_INLINE extern __always_inline __attribute__((gnu_inline))\n #define __RENAME(x) __asm__(#x)\n\n-void fortify_panic(const char *name) __noreturn __cold;\n+void fortify_panic(const char *name) __cold;\n void __read_overflow(void) __compiletime_error(\"detected read beyond\nsize of object passed as 1st parameter\");\n void __read_overflow2(void) __compiletime_error(\"detected read beyond\nsize of object passed as 2nd parameter\");\n void __read_overflow3(void) __compiletime_error(\"detected read beyond\nsize of object passed as 3rd parameter\");\n\nI don't immediately see why the __noreturn changes the behavior here, any idea?\n\n>> Not sure if that change is the best fix, but it seems to address the problem in\n>> this driver and probably leads to better code in other places as well.\n>>\n>\n> Probably it would be better to solve this on the strlcpy side, but I haven't found the way to do this right.\n> Alternative solutions:\n>\n>  - use memcpy() instead of strlcpy(). All source strings are smaller than I2C_NAME_SIZE, so we could\n>    do something like this - memcpy(info.type, \"si2168\", sizeof(\"si2168\"));\n>    Also this should be faster.\n\nThis would be very similar to the patch I posted at the start of this\nthread to use strncpy(), right?\nI was hoping that changing strlcpy() here could also improve other\nusers that might run into\nthe same situation, but stay below the 2048-byte stack frame limit.\n\n>  - Move code under different \"case:\" in the switch(dev->model) to the separate function should help as well.\n>    But it might be harder to backport into stables.\n\nAgreed, I posted this in earlier versions of the patch series, see\nhttps://patchwork.kernel.org/patch/9601025/\n\nThe new patch was a result of me trying to come up with a less\ninvasive version to\nmake it easier to backport, since I would like to backport the last\npatch in the series\nthat depends on all the earlier ones.\n\n         Arnd","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"ab/MeSsR\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y2JW93nLCz9tXw\n\tfor <patchwork-incoming@ozlabs.org>;\n\tWed, 27 Sep 2017 23:26:29 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1753169AbdI0N00 (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tWed, 27 Sep 2017 09:26:26 -0400","from mail-oi0-f68.google.com ([209.85.218.68]:32937 \"EHLO\n\tmail-oi0-f68.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1753090AbdI0N0W (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Wed, 27 Sep 2017 09:26:22 -0400","by mail-oi0-f68.google.com with SMTP id z73so8748011oia.0;\n\tWed, 27 Sep 2017 06:26:22 -0700 (PDT)","by 10.157.0.70 with HTTP; Wed, 27 Sep 2017 06:26:21 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=gmail.com; s=20161025;\n\th=mime-version:sender:in-reply-to:references:from:date:message-id\n\t:subject:to:cc;\n\tbh=wUbgQ3NzqkySxz/FOtMJot84Y0Zv6VV3bATNf+isrgA=;\n\tb=ab/MeSsR3G7LdLH5aM/nTKlxCaCcsjdH0V5PYlx+iFRxRqrmQOeh1z9zND6g+x8vQG\n\tvmCso3P6yAjtx01nGMVCXE/JibETOtsd1V9Q8+zgtgMtTS6CeTS8o674VWs0ZoZQACdP\n\twWygO5zd5wehDwMpwxBtdG9Hd1Ah/9628XD1nbqWS/NrS2jf2ovmaXZuirRTU71Aoehs\n\t5bc8RsMZN07amXU4z35q5IY5RrV0ndpchQeWnjU1um62dhfjxqYO8IWgJKV04/EZ/aej\n\tdoK82jmNxEE73a3a2HTKCr9sjgXrvqJId3Z1jMVxQ2jfMinoDPvMXa6uYaAdNM8RqH2G\n\t1I9A==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:sender:in-reply-to:references:from\n\t:date:message-id:subject:to:cc;\n\tbh=wUbgQ3NzqkySxz/FOtMJot84Y0Zv6VV3bATNf+isrgA=;\n\tb=Obah/E4UO+m9vTYWZvOjLPedkQatHshNxO3rAYDhxJubNc81lt+LiSrrhQvujNDzTA\n\tlGi6zHn5ztmJsuMLPAQRv/8FgF0iUjzhI8uY0McP0dZFM6kWgmxEtLBziFVwR+YvolyS\n\tpHSYclbmc7GrN4FHEPAobXOTDqXjkevtDpms9rHdDXtQPJf7tZpIdYLIyi9h+f4tXKKq\n\tZWL+3MVn1gszJS3nbUxDKxwGSresEWZendwizDSuTSTN6lTLHW3IgfDgmPZATTl4xUhN\n\tC+RshoG2q/bQ8KO9Tg6Zd8MvnINv2GIZDwWOBiZXEUjPB0G6dnsgFzPkwlch520uLRmX\n\t301w==","X-Gm-Message-State":"AMCzsaV8M076NtOVH8U+zZfyTgzf6eGkR8R8VfuibnQNVHE3O7C3xDTs\n\tlBmjVpga2qvp55M8yEtjA2nrxikQKYpS88Y4I7A=","X-Google-Smtp-Source":"AOwi7QDwQkhev8W/4muXAbIVp2ocXuZI45Pyay2k88a36O/aTVP4FykTjGdFmgHw0XIXszEAt0mv6sH9wXyjlRUR0bY=","X-Received":"by 10.157.17.6 with SMTP id g6mr876951ote.305.1506518781499; Wed,\n\t27 Sep 2017 06:26:21 -0700 (PDT)","MIME-Version":"1.0","In-Reply-To":"<e7e6418e-4340-5057-aa17-800082aca5fb@virtuozzo.com>","References":"<20170922212930.620249-1-arnd@arndb.de>\n\t<20170922212930.620249-5-arnd@arndb.de>\n\t<063D6719AE5E284EB5DD2968C1650D6DD007F521@AcuExch.aculab.com>\n\t<CAK8P3a1zxjMsQTBPijCo8FJjEU5aRVTr7n_NZ1YM2UnDPKoRLw@mail.gmail.com>\n\t<CAK8P3a37Ts5q7BvA2JWse87huyAp+=e18CUXEt8731RrBnB+Ow@mail.gmail.com>\n\t<e7e6418e-4340-5057-aa17-800082aca5fb@virtuozzo.com>","From":"Arnd Bergmann <arnd@arndb.de>","Date":"Wed, 27 Sep 2017 06:26:21 -0700","X-Google-Sender-Auth":"dDhfa6basSal96bnA8rFwdk5SU0","Message-ID":"<CAK8P3a2C7DBTfQZvRi-QQfrfm1GXktFcXQRmXmzpF4SCa+BADA@mail.gmail.com>","Subject":"Re: [PATCH v4 4/9] em28xx: fix em28xx_dvb_init for KASAN","To":"Andrey Ryabinin <aryabinin@virtuozzo.com>","Cc":"David Laight <David.Laight@aculab.com>, Mauro Carvalho Chehab\n\t<mchehab@kernel.org>,         Jiri Pirko <jiri@resnulli.us>,\n\tArend van Spriel <arend.vanspriel@broadcom.com>, \n\tKalle Valo <kvalo@codeaurora.org>, \"David S. Miller\"\n\t<davem@davemloft.net>,         Alexander Potapenko <glider@google.com>,\n\tDmitry Vyukov <dvyukov@google.com>, \n\tMasahiro Yamada <yamada.masahiro@socionext.com>, Michal Marek\n\t<mmarek@suse.com>,         Andrew Morton <akpm@linux-foundation.org>,\n\tKees Cook <keescook@chromium.org>, \n\tGeert Uytterhoeven <geert@linux-m68k.org>, Greg Kroah-Hartman\n\t<gregkh@linuxfoundation.org>, \"linux-media@vger.kernel.org\"\n\t<linux-media@vger.kernel.org>, \"linux-kernel@vger.kernel.org\"\n\t<linux-kernel@vger.kernel.org>, \"netdev@vger.kernel.org\"\n\t<netdev@vger.kernel.org>, \"linux-wireless@vger.kernel.org\"\n\t<linux-wireless@vger.kernel.org>, \"brcm80211-dev-list.pdl@broadcom.com\" \n\t<brcm80211-dev-list.pdl@broadcom.com>, \"brcm80211-dev-list@cypress.com\"\n\t<brcm80211-dev-list@cypress.com>, \"kasan-dev@googlegroups.com\"\n\t<kasan-dev@googlegroups.com>, \"linux-kbuild@vger.kernel.org\"\n\t<linux-kbuild@vger.kernel.org>, Jakub Jelinek <jakub@gcc.gnu.org>,\n\t=?utf-8?q?Martin_Li=C5=A1ka?= <marxin@gcc.gnu.org>,\n\t\"stable@vger.kernel.org\" <stable@vger.kernel.org>","Content-Type":"text/plain; charset=\"UTF-8\"","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}},{"id":1777018,"web_url":"http://patchwork.ozlabs.org/comment/1777018/","msgid":"<2631e8a6-03f2-69ea-d889-afd9a345e7ef@virtuozzo.com>","list_archive_url":null,"date":"2017-09-28T13:09:46","subject":"Re: [PATCH v4 4/9] em28xx: fix em28xx_dvb_init for KASAN","submitter":{"id":67796,"url":"http://patchwork.ozlabs.org/api/people/67796/","name":"Andrey Ryabinin","email":"aryabinin@virtuozzo.com"},"content":"On 09/27/2017 04:26 PM, Arnd Bergmann wrote:\n> On Tue, Sep 26, 2017 at 9:49 AM, Andrey Ryabinin\n> <aryabinin@virtuozzo.com> wrote:\n>>\n>>\n>> On 09/26/2017 09:47 AM, Arnd Bergmann wrote:\n>>> On Mon, Sep 25, 2017 at 11:32 PM, Arnd Bergmann <arnd@arndb.de> wrote:\n> \n>>> +       ret = __builtin_strlen(q);\n>>\n>>\n>> I think this is not correct. Fortified strlen called here on purpose. If sizeof q is known at compile time\n>> and 'q' contains not-null fortified strlen() will panic.\n> \n> Ok, got it.\n> \n>>>         if (size) {\n>>>                 size_t len = (ret >= size) ? size - 1 : ret;\n>>>                 if (__builtin_constant_p(len) && len >= p_size)\n>>>\n>>> The problem is apparently that the fortified strlcpy calls the fortified strlen,\n>>> which in turn calls strnlen and that ends up calling the extern '__real_strnlen'\n>>> that gcc cannot reduce to a constant expression for a constant input.\n>>\n>>\n>> Per my observation, it's the code like this:\n>>         if ()\n>>                 fortify_panic(__func__);\n>>\n>>\n>> somehow prevent gcc to merge several \"struct i2c_board_info info;\" into one stack slot.\n>> With the hack bellow, stack usage reduced to ~1,6K:\n> \n> 1.6k is also what I see with my patch, or any other approach I tried\n> that changes\n> string.h. With the split up em28xx_dvb_init() function (and without\n> changes to string.h),\n> I got down to a few hundred bytes for the largest handler.\n> \n>> ---\n>>  include/linux/string.h | 4 ----\n>>  1 file changed, 4 deletions(-)\n>>\n>> diff --git a/include/linux/string.h b/include/linux/string.h\n>> index 54d21783e18d..9a96ff3ebf94 100644\n>> --- a/include/linux/string.h\n>> +++ b/include/linux/string.h\n>> @@ -261,8 +261,6 @@ __FORTIFY_INLINE __kernel_size_t strlen(const char *p)\n>>         if (p_size == (size_t)-1)\n>>                 return __builtin_strlen(p);\n>>         ret = strnlen(p, p_size);\n>> -       if (p_size <= ret)\n>> -               fortify_panic(__func__);\n>>         return ret;\n>>  }\n>>\n>> @@ -271,8 +269,6 @@ __FORTIFY_INLINE __kernel_size_t strnlen(const char *p, __kernel_size_t maxlen)\n>>  {\n>>         size_t p_size = __builtin_object_size(p, 0);\n>>         __kernel_size_t ret = __real_strnlen(p, maxlen < p_size ? maxlen : p_size);\n>> -       if (p_size <= ret && maxlen != ret)\n>> -               fortify_panic(__func__);\n>>         return ret;\n> \n> I've reduced it further to this change:\n> \n> --- a/include/linux/string.h\n> +++ b/include/linux/string.h\n> @@ -227,7 +227,7 @@ static inline const char *kbasename(const char *path)\n>  #define __FORTIFY_INLINE extern __always_inline __attribute__((gnu_inline))\n>  #define __RENAME(x) __asm__(#x)\n> \n> -void fortify_panic(const char *name) __noreturn __cold;\n> +void fortify_panic(const char *name) __cold;\n>  void __read_overflow(void) __compiletime_error(\"detected read beyond\n> size of object passed as 1st parameter\");\n>  void __read_overflow2(void) __compiletime_error(\"detected read beyond\n> size of object passed as 2nd parameter\");\n>  void __read_overflow3(void) __compiletime_error(\"detected read beyond\n> size of object passed as 3rd parameter\");\n> \n> I don't immediately see why the __noreturn changes the behavior here, any idea?\n> \n\n\nAt first I thought that this somehow might be related to __asan_handle_no_return(). GCC calls it\nbefore noreturn function. So I made patch to remove generation of these calls (we don't need them in the kernel anyway)\nbut it didn't help. It must be something else than.\n\n\n>>> Not sure if that change is the best fix, but it seems to address the problem in\n>>> this driver and probably leads to better code in other places as well.\n>>>\n>>\n>> Probably it would be better to solve this on the strlcpy side, but I haven't found the way to do this right.\n>> Alternative solutions:\n>>\n>>  - use memcpy() instead of strlcpy(). All source strings are smaller than I2C_NAME_SIZE, so we could\n>>    do something like this - memcpy(info.type, \"si2168\", sizeof(\"si2168\"));\n>>    Also this should be faster.\n> \n> This would be very similar to the patch I posted at the start of this\n> thread to use strncpy(), right?\n\nSure.\n\n> I was hoping that changing strlcpy() here could also improve other\n> users that might run into\n> the same situation, but stay below the 2048-byte stack frame limit.\n> \n>>  - Move code under different \"case:\" in the switch(dev->model) to the separate function should help as well.\n>>    But it might be harder to backport into stables.\n> \n> Agreed, I posted this in earlier versions of the patch series, see\n> https://patchwork.kernel.org/patch/9601025/\n> \n> The new patch was a result of me trying to come up with a less\n> invasive version to\n> make it easier to backport, since I would like to backport the last\n> patch in the series\n> that depends on all the earlier ones.\n> \n>          Arnd\n>","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=virtuozzo.com header.i=@virtuozzo.com\n\theader.b=\"bHSCIttg\"; dkim-atps=neutral","spf=none (sender IP is )\n\tsmtp.mailfrom=aryabinin@virtuozzo.com; "],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y2w2b2dThz9t5Y\n\tfor <patchwork-incoming@ozlabs.org>;\n\tThu, 28 Sep 2017 23:07:19 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1753093AbdI1NHB (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tThu, 28 Sep 2017 09:07:01 -0400","from mail-he1eur01on0126.outbound.protection.outlook.com\n\t([104.47.0.126]:6416\n\t\"EHLO EUR01-HE1-obe.outbound.protection.outlook.com\"\n\trhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP\n\tid S1751906AbdI1NG5 (ORCPT <rfc822;netdev@vger.kernel.org>);\n\tThu, 28 Sep 2017 09:06:57 -0400","from [172.16.25.12] (195.214.232.6) by\n\tDB6PR08MB2821.eurprd08.prod.outlook.com (2603:10a6:6:1d::24) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7;\n\tThu, 28 Sep 2017 13:06:48 +0000"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com;\n\ts=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version;\n\tbh=yoG5f1r589gY8HMaFQQbvmH4JJWRNRQnUAOKM2s7RBg=;\n\tb=bHSCIttgefFu0OZIJTy3AdXmLb0kXiG6MnRetDY/cUfv+nMPwORBH6OZqBg38L+w7nay6rBK22/p5rhhkGW4ZSLjLJht7tgUHdpZhezYZn4Xc6fBDPzV9s83Aku2RO86VwLQJO2cK5f84+BKUKw9fh1DEdPztTZxar9hS0OxkJA=","Subject":"Re: [PATCH v4 4/9] em28xx: fix em28xx_dvb_init for KASAN","To":"Arnd Bergmann <arnd@arndb.de>","Cc":"David Laight <David.Laight@aculab.com>, Mauro Carvalho Chehab\n\t<mchehab@kernel.org>,         Jiri Pirko <jiri@resnulli.us>,\n\tArend van Spriel <arend.vanspriel@broadcom.com>, \n\tKalle Valo <kvalo@codeaurora.org>, \"David S. Miller\"\n\t<davem@davemloft.net>,         Alexander Potapenko <glider@google.com>,\n\tDmitry Vyukov <dvyukov@google.com>, \n\tMasahiro Yamada <yamada.masahiro@socionext.com>, Michal Marek\n\t<mmarek@suse.com>,         Andrew Morton <akpm@linux-foundation.org>,\n\tKees Cook <keescook@chromium.org>, \n\tGeert Uytterhoeven <geert@linux-m68k.org>, Greg Kroah-Hartman\n\t<gregkh@linuxfoundation.org>, \"linux-media@vger.kernel.org\"\n\t<linux-media@vger.kernel.org>, \"linux-kernel@vger.kernel.org\"\n\t<linux-kernel@vger.kernel.org>, \"netdev@vger.kernel.org\"\n\t<netdev@vger.kernel.org>, \"linux-wireless@vger.kernel.org\"\n\t<linux-wireless@vger.kernel.org>, \"brcm80211-dev-list.pdl@broadcom.com\" \n\t<brcm80211-dev-list.pdl@broadcom.com>, \"brcm80211-dev-list@cypress.com\"\n\t<brcm80211-dev-list@cypress.com>, \"kasan-dev@googlegroups.com\"\n\t<kasan-dev@googlegroups.com>, \"linux-kbuild@vger.kernel.org\"\n\t<linux-kbuild@vger.kernel.org>, Jakub Jelinek <jakub@gcc.gnu.org>,\n\t=?utf-8?q?Martin_Li=C5=A1ka?= <marxin@gcc.gnu.org>,\n\t\"stable@vger.kernel.org\" <stable@vger.kernel.org>","References":"<20170922212930.620249-1-arnd@arndb.de>\n\t<20170922212930.620249-5-arnd@arndb.de>\n\t<063D6719AE5E284EB5DD2968C1650D6DD007F521@AcuExch.aculab.com>\n\t<CAK8P3a1zxjMsQTBPijCo8FJjEU5aRVTr7n_NZ1YM2UnDPKoRLw@mail.gmail.com>\n\t<CAK8P3a37Ts5q7BvA2JWse87huyAp+=e18CUXEt8731RrBnB+Ow@mail.gmail.com>\n\t<e7e6418e-4340-5057-aa17-800082aca5fb@virtuozzo.com>\n\t<CAK8P3a2C7DBTfQZvRi-QQfrfm1GXktFcXQRmXmzpF4SCa+BADA@mail.gmail.com>","From":"Andrey Ryabinin <aryabinin@virtuozzo.com>","Message-ID":"<2631e8a6-03f2-69ea-d889-afd9a345e7ef@virtuozzo.com>","Date":"Thu, 28 Sep 2017 16:09:46 +0300","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101\n\tThunderbird/52.3.0","MIME-Version":"1.0","In-Reply-To":"<CAK8P3a2C7DBTfQZvRi-QQfrfm1GXktFcXQRmXmzpF4SCa+BADA@mail.gmail.com>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-US","Content-Transfer-Encoding":"7bit","X-Originating-IP":"[195.214.232.6]","X-ClientProxiedBy":"AM5PR0701CA0006.eurprd07.prod.outlook.com\n\t(2603:10a6:203:51::16) To DB6PR08MB2821.eurprd08.prod.outlook.com\n\t(2603:10a6:6:1d::24)","X-MS-PublicTrafficType":"Email","X-MS-Office365-Filtering-Correlation-Id":"fddde0e1-ce09-4afb-fe9a-08d50671c80a","X-Microsoft-Antispam":"UriScan:; BCL:0; PCL:0;\n\tRULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075);\n\tSRVR:DB6PR08MB2821; ","X-Microsoft-Exchange-Diagnostics":["1; DB6PR08MB2821;\n\t3:BtOuym7JTH7xvaS9F/bIrE760OvBFxVGFiwfIPhEM9fbcmS9QODJEjsaeC+HGNR6EqC+lcn1kmdVzhZhq75w5yPQ6e6ZtD/mU3dyaOhJylVoKXpShOOJ7p3JJRBNYm0qlIcT5bdwAogScX0ii/XQwk1H+YCHEaVKX2pevLVC4evC6tf/o3OMNpIhscs+rzERw4uZhSn3ajh4PRwEip+tV4Lmwy8SPg9DKUSwwka/AAtZ+xY1Vzv7bsoP/VW7+RKJ;\n\t25:2IDHNdwwDO35GZtYycmwyq0mlL3RSWx7PvZuVs4JotpWwe9zT7vTWmuss13x3/tEA3i1BG81OxT0nBOYWsYvk703nNmuiwBIL/gDZZhpVF92dhBKx+/stEykn4r/vsYxhu89mS4IGLSMKlq0g2fn0biBx6Ycd1k965N40ybZbSgk+AWhpdJ7xqDsWubgLDoOKpwu0u6I6Aajpy8L6gR1epEpK0CnTDvGulWu+fPrVSygTjWGDallsgExztcNr9sCZLlCbiuWgkNkYvHejRVtEXcUdhHWPrhJNfSawHGzgDH1EF8aFMRzsyMJ58fa8vqGgU/fx77pAJmKm+w0RKVLRA==;\n\t31:tGD4MHjJHvyrf+rv85HaV/96cnPObDqZtdBKCb19j6p6dyEk+M25+Qs9rEkmEOvT5PULhSJWbKYcca11nU+2+EUqDnt3W/GzoTgd0LFbTLyjCuoIEjf1C5Kl8RAYW0RPpX29CAJP0xIBcjTO9guMAzc3AnujxIy5Kdb1zzmj0hvKS4iPHlkEAIx7EDwoFpStvgStqSLG0cFaIQzZYaNS6kMhQSI+q46V40PFJFzOj5Q=","1; DB6PR08MB2821;\n\t20:7BHYeSlYll01lx/LhGwNtDuU6D55luxxpLTmodNIO9Bav0sHsTE/Pggobktj4jUObBCNiBsg6yvT8RcrThtC/whRt9WFIGKd9GZkYytM86ymbRTFEtts0FjTtgMC9HeKqSQ3tvcUEyZbpAITHz76YIUnf/BHChZ89ej4fHmP58WnlRg+v3+HzeLUn9PdBdd7XHgrA3IMoolUSoJGKO7tPvX3/837p86H6tQUE0sTmTbruHqTlnkHH3U5wBrm7TOHbrF+E1lvHlTncLlJFmqLcmMMTPraruvHRh9KXYaXx//IHumnoTkTWYOYlNEc1r/oBh6s+1GYH3kJrBHghAd1rmy3G0PR/1qqDZcIRUBa0OzBd4bJkg8lhNKxK74j2JnJiVagQULjjaFthifeApGGyQHCSjajikmaPuikBrR7Gb0=;\n\t4:9R5xMUBOIHetdL3CobUgdEL4p/ZgeUm35GnUdFRLp+V/RfHrOn8lhsqyA8WucoTLDoNWxrA3Hn7/wFnysBxI9m8zksoysssz1PpGtSqAhQeXBT06jP5P72GCBfAv2FyMtYdTU65/G/LlPj/6xrVcK5HRe+a5QH4Crf4ZTaToM3Bvx4f6Lz2y1nfrINPVO0aPhPPHMZ1cVIuhoUK8rGhtOLmOJKNB2A7h0BuaRweHf4qCnbShVAcvDp899JONwSnF","=?utf-8?q?1=3BDB6PR08MB2821=3B23=3AT8q2?=\n\t=?utf-8?q?yOFZpPtcHpp6uGZniLgBRLIbvh2rRatbtwBCfPlmiSoosxsEdSy85xXU?=\n\t=?utf-8?q?SHRnSu2LN4LfDmutqDRYeWlkSB2mJEsYIfkJhLMcVsOXl2LgPdfcAfmy?=\n\t=?utf-8?q?DoGCHE9YR+kVEjWLiw6o0JiOZcK5257D8F6o2J3dzYyq5aDjkuKZTnE5?=\n\t=?utf-8?q?LZ0iuax6shv8ZEaOkSCTBFldx0cqmU9ZOhi7ZNm5zQrw/xF0F9Z/FzKi?=\n\t=?utf-8?q?jwDqJJiERuON7/oWpLBGMp9GOTDOiJIqVwlWpET8pSaGAWmSqYVSZiWi?=\n\t=?utf-8?q?YHGMF+irwnrXCIFk5YTmlRolPmiFIkCI3EaypKz4hpBmK5z42uifMDdW?=\n\t=?utf-8?q?1ro1AltQlcyu0f09qhBFXYhtiuWEK9zIZvxIcXvKgnBnqWx676OA1LmV?=\n\t=?utf-8?q?Xnp9qAoes89pxYaLGlhboBXZB2OXomCPfCBbVyTzQ+SKaY0YcDX5OTOs?=\n\t=?utf-8?q?ALRWWN6cKMPlXzbdforYST7wt5h++R9MBC0+TRdUJXqeRkgjJqb5VTIw?=\n\t=?utf-8?q?DY8xyIK/C3ctSI+0lEhFREP3gPEy457XcvOwFoKGyVWPgI1J3SG2lCzl?=\n\t=?utf-8?q?Oc97OXad2Q04lJjXkWndzeEip9fucwACszf1Hlkj8xPsF3DybKxM5I4M?=\n\t=?utf-8?q?SD+P2LjJD327uHRff9g7uOoILK6VSecHkBjeNDwLPlD9LBlbk8HGcL5W?=\n\t=?utf-8?q?DZHRs48u59AAae0hWVpmeliFo3emukilS20/f0lx0a48LKO9Wrzq74z3?=\n\t=?utf-8?q?sz5DZKyHuVyEIndUSvo+/K3WUFQJt1wBxA77Vnp+BS2DSSCkR1RB9HOb?=\n\t=?utf-8?q?J+RxBfe4mb2QZvVZa5SxcB60dDhVtA4VNWAQnGe7ha4+JzF+fQ2gY2J+?=\n\t=?utf-8?q?03ibFq58pP60Wr58mgoNFQK9/EEyWlf6vnTDstuAbm9qSY4UJ2eP+MHy?=\n\t=?utf-8?q?lL+OnR6yJZSro9wArVCtcOwMJsUfKliG7rORs38JjcY5ZcY49vh78fUX?=\n\t=?utf-8?q?Mr4ZnOgVua2eh0UMmL42woA5hfqfkbYUPbeLlu5R1c7OATUwdIQ+unu8?=\n\t=?utf-8?q?+Wg/AFuy0WwR0RaC4byV+077guWmf0TcO1EZ70K8ZypDM9HWy1s0fAD1?=\n\t=?utf-8?q?aHM7j88rP5BhSxxjTD0WTHUQh6vT88d6n/xOKQfCI/obVzT54TqvjhGJ?=\n\t=?utf-8?q?vYRjycZ+XMiu5G7WnC42IFfOKkJcd05hvPo2YCLEDBCqkJmdyE5w7L0q?=\n\t=?utf-8?q?/MRybAwdU7Kz9ZFkIr5b8t1QR6mkXFkzy10i12ifVWXwAY8nHMREGTYm?=\n\t=?utf-8?q?BFLwIuoGEsrbp7MaNhcYTvnM6lCHW5KTBWhBZA8QhaqjV5AfuslJpEgB?=\n\t=?utf-8?q?+sPEFJtiUhzBVoYHSHzrPvn7Z8BeVJtMeNztNmeAHvqrpD7Vac/BkE8X?=\n\t=?utf-8?q?5jU1EImh29NlntnyScS1ZY4hJiTeRzq7zD0DcLVwGuZiG5FhLdONse5n?=\n\t=?utf-8?q?OPooHwy8Y3057ScOt59jRR/PR53jaUKrxQgi3dpRcPs9Xwc=3D?=","1; DB6PR08MB2821;\n\t6:boKP9cG1kf3FKiOsibCX1thzTX2jCKxs5Ourl2EN1b6ljlZGgwKmyUvuM6ADIYQ8xRp4Bybj82W4DfcC5YbMIHVSzQKNq9+83MtJhru6jsx2AvGzedYWTBPYskT+x8rOnTBNn/6bRC8SpMm8Boih8zxuXjPJohmrrrUD3GKfHJlvrfVEpEiXZfAiTcLU88jwq5T/VUPIyxIt63qqE7IB3PyKtGQwnNQj8FA7D2yAwsDx5lIIVjXFJn6jQS0+DLEx0hLulfgMVPlR0FDqBzggxkJXQdcSDdZBKHd568lcdf+2GKiio5BSKp6cszddAD7vqN8+Tit/QFPO5IxG6LbIgw==;\n\t5:K0V6DoY86dPMzIOW6KieJsaobMdmraCqf9RRUVb0FMEqH8SmZMe8OnataGXjhigN998PhY1ZYtyrLZWrBfHSt2u2P9uDSPk4P9Indyc53S3PgONB69JBEYQB6HOVRWbN11KWMCjl0SlcdoqbDWRX9w==;\n\t24:+PMIUB8VAQ0yjo4TkkeKRzyJsOp4gaxx/iQjAwxv2Hiyn/+YheQzTVKmlJnAWMMSTmShA1Sl7qbJiT741+f9WvpMkmJ1BCpuKu8bZkpuHOk=;\n\t7:3l7pY/DImvhYHnwei6F8UNKCx4mSh41nvgsUHmkt9j9l7URX5HTQuGZAd5sTtG1cJkXpfV3Fzdsf98rj5VBe8Go+T5mwraTMsXQlJODubQ+ZAiogYLIuDMRYjrS28l3k0x6WMWs+li6t+9Qhhkd150bM4eddCebq8isiR71fy4NNRhcTQihg9FIjcayfUzmLTB5966Jc43UzyUbHErsWw6HlZiKuDbBOfByN5p2IOMs=","1; DB6PR08MB2821;\n\t20:zfN8PSPVFABenD4ywa0YDD/7llIjtLPm3kCdj+HQcuWPy+WKNE4iBLOPbqmy/w6amCDLhW2DFtoIThI8OTdT7d07NCsv3FsC8Oj6N+EVkQQYGz9ta4PXLRIH02Czxuw3cIaZjhglRozozs56mmuLUM+oNWi1lQt024q9CRt1xu4="],"X-MS-TrafficTypeDiagnostic":"DB6PR08MB2821:","X-Exchange-Antispam-Report-Test":"UriScan:;","X-Microsoft-Antispam-PRVS":"<DB6PR08MB28214F5119FD3A5886D948E8B0790@DB6PR08MB2821.eurprd08.prod.outlook.com>","X-Exchange-Antispam-Report-CFA-Test":"BCL:0; PCL:0;\n\tRULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(93006095)(93001095)(10201501046)(3002001)(100000703101)(100105400095)(6041248)(20161123562025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123558100)(20161123560025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:DB6PR08MB2821; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:DB6PR08MB2821; ","X-Forefront-PRVS":"0444EB1997","X-Forefront-Antispam-Report":"SFV:NSPM;\n\tSFS:(10019020)(6009001)(6049001)(346002)(376002)(39830400002)(199003)(24454002)(189002)(377454003)(316002)(478600001)(93886005)(2906002)(101416001)(50986999)(86362001)(229853002)(16526017)(16576012)(77096006)(6486002)(189998001)(53936002)(4326008)(7736002)(6306002)(83506001)(31686004)(50466002)(66066001)(76176999)(305945005)(68736007)(64126003)(54356999)(33646002)(65956001)(8676002)(65826007)(230700001)(65806001)(54906003)(97736004)(47776003)(7416002)(53546010)(966005)(6116002)(58126008)(5660300001)(25786009)(105586002)(106356001)(36756003)(3846002)(31696002)(81156014)(6246003)(81166006)(6916009)(23676002)(8936002)(2950100002);\n\tDIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR08MB2821; H:[172.16.25.12];\n\tFPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; ","Received-SPF":"None (protection.outlook.com: virtuozzo.com does not designate\n\tpermitted sender hosts)","SpamDiagnosticOutput":"1:99","SpamDiagnosticMetadata":"NSPM","X-OriginatorOrg":"virtuozzo.com","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"28 Sep 2017 13:06:48.1434\n\t(UTC)","X-MS-Exchange-CrossTenant-FromEntityHeader":"Hosted","X-MS-Exchange-CrossTenant-Id":"0bc7f26d-0264-416e-a6fc-8352af79c58f","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"DB6PR08MB2821","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}},{"id":1777065,"web_url":"http://patchwork.ozlabs.org/comment/1777065/","msgid":"<CAK8P3a3BiPh+d4vcb4pbbOsZLegp6YGk+BU3L=71sxatTuk-GQ@mail.gmail.com>","list_archive_url":null,"date":"2017-09-28T14:30:59","subject":"Re: [PATCH v4 4/9] em28xx: fix em28xx_dvb_init for KASAN","submitter":{"id":30,"url":"http://patchwork.ozlabs.org/api/people/30/","name":"Arnd Bergmann","email":"arnd@arndb.de"},"content":"On Thu, Sep 28, 2017 at 6:09 AM, Andrey Ryabinin\n<aryabinin@virtuozzo.com> wrote:\n> On 09/27/2017 04:26 PM, Arnd Bergmann wrote:\n>> On Tue, Sep 26, 2017 at 9:49 AM, Andrey Ryabinin\n>> <aryabinin@virtuozzo.com> wrote:\n\n>> --- a/include/linux/string.h\n>> +++ b/include/linux/string.h\n>> @@ -227,7 +227,7 @@ static inline const char *kbasename(const char *path)\n>>  #define __FORTIFY_INLINE extern __always_inline __attribute__((gnu_inline))\n>>  #define __RENAME(x) __asm__(#x)\n>>\n>> -void fortify_panic(const char *name) __noreturn __cold;\n>> +void fortify_panic(const char *name) __cold;\n>>  void __read_overflow(void) __compiletime_error(\"detected read beyond\n>> size of object passed as 1st parameter\");\n>>  void __read_overflow2(void) __compiletime_error(\"detected read beyond\n>> size of object passed as 2nd parameter\");\n>>  void __read_overflow3(void) __compiletime_error(\"detected read beyond\n>> size of object passed as 3rd parameter\");\n>>\n>> I don't immediately see why the __noreturn changes the behavior here, any idea?\n>>\n>\n>\n> At first I thought that this somehow might be related to __asan_handle_no_return(). GCC calls it\n> before noreturn function. So I made patch to remove generation of these calls (we don't need them in the kernel anyway)\n> but it didn't help. It must be something else than.\n\nI made a reduced test case yesterday (see http://paste.ubuntu.com/25628030/),\nand it shows the same behavior with and without the sanitizer, it uses 128\nbytes without the noreturn attribute and 480 bytes when its added, the sanitizer\nadds a factor of 1.5x on top. It's possible that I did something wrong while\nreducing, since the original driver file uses very little stack (a few hundred\nbytes) without -fsanitize=kernel-address, but finding out what happens in\nthe reduced case may still help understand the other one.\n\n        Arnd","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"pqrIGgn0\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y2xvV50xPz9t66\n\tfor <patchwork-incoming@ozlabs.org>;\n\tFri, 29 Sep 2017 00:31:18 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1753152AbdI1ObE (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tThu, 28 Sep 2017 10:31:04 -0400","from mail-oi0-f68.google.com ([209.85.218.68]:53745 \"EHLO\n\tmail-oi0-f68.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1752156AbdI1ObB (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Thu, 28 Sep 2017 10:31:01 -0400","by mail-oi0-f68.google.com with SMTP id j126so2538686oia.10;\n\tThu, 28 Sep 2017 07:31:00 -0700 (PDT)","by 10.157.0.70 with HTTP; Thu, 28 Sep 2017 07:30:59 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=gmail.com; s=20161025;\n\th=mime-version:sender:in-reply-to:references:from:date:message-id\n\t:subject:to:cc;\n\tbh=I1O/da7Cm19dCmqEKi0/lzsMsqjzXNuVyOhXZSMcj18=;\n\tb=pqrIGgn05tWBPpPws7oFfl0UTZUybYwxhfSw0c3zEplvU59XyPopBJSp3+EokZiIqA\n\tDKVquHNnkTpFc4Yq9OEDZILb4Oh8sgrjXwSC7YEOM05k20oRIvu3gXVUeFV8EvhCWOOZ\n\tyOHzXzq+ooiYumvPL72AzRzIYrxzz5jKHVCqZx2DY5zogryui3vqMiVVfM/h95sB9I6g\n\tKa4LQ1mHi3yFwc2piMTCRymqEYB2c/sO5NcgsgBuC/HvI8wawtCDfczpl8T4TRxBBtgu\n\t6QWACqZECQq7ewAhycY8dluWLbJLeUo2K4CdBO3gX0JCjOLwejCIYpKwfGdCS89HPlEh\n\tdHBA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:sender:in-reply-to:references:from\n\t:date:message-id:subject:to:cc;\n\tbh=I1O/da7Cm19dCmqEKi0/lzsMsqjzXNuVyOhXZSMcj18=;\n\tb=QFDHr+jUKiJsQdNHAvvwIYndjQsWtBQoo1tN3ExN/vZqQW/dNjBPq7X3gXYCJotA2c\n\t02EWXwLPIstPAZhosnI+S8ssqk9VHiusGfMXKqHOqDWCqxhHidmpwAjiBtWxkSDmNgdN\n\tmgR9gHm5V2OaBUJZIs1w0ai/sLcBqqTxWE2CGfrEA1eD4NzDlsoP3cxx8Lu4fuRUGfow\n\tDTAH+CAzS5emcq+ZSL9cxJI+Ef8DLjzVDyLhD8RSxoNdjSxYjXeASouEVZOILicoJAxJ\n\tjf4xVjQ85bPVZRBqS3KYJptLFklWK9QoPxgT2zK5NZh0AZVtRQkQizc+6K4ZiSwBAPLm\n\tEGqw==","X-Gm-Message-State":"AMCzsaUcYWo0PUXS323QbV1Z676IAXrWrZGmZF2opUu6eGEBHEdVpHW7\n\tjfIFHcAjxIElJTN4QTmKrB97EM9WbTFysmyMSalY6R5I","X-Google-Smtp-Source":"AOwi7QCAStJ78cigUmPok5LjXI5wcZKqdjOGQegPtURAE1Zek/ROOz7xdAIaHyNN39X8JxCG11bm/RsmfGS8xLyNsyA=","X-Received":"by 10.202.73.84 with SMTP id w81mr470317oia.61.1506609060327;\n\tThu, 28 Sep 2017 07:31:00 -0700 (PDT)","MIME-Version":"1.0","In-Reply-To":"<2631e8a6-03f2-69ea-d889-afd9a345e7ef@virtuozzo.com>","References":"<20170922212930.620249-1-arnd@arndb.de>\n\t<20170922212930.620249-5-arnd@arndb.de>\n\t<063D6719AE5E284EB5DD2968C1650D6DD007F521@AcuExch.aculab.com>\n\t<CAK8P3a1zxjMsQTBPijCo8FJjEU5aRVTr7n_NZ1YM2UnDPKoRLw@mail.gmail.com>\n\t<CAK8P3a37Ts5q7BvA2JWse87huyAp+=e18CUXEt8731RrBnB+Ow@mail.gmail.com>\n\t<e7e6418e-4340-5057-aa17-800082aca5fb@virtuozzo.com>\n\t<CAK8P3a2C7DBTfQZvRi-QQfrfm1GXktFcXQRmXmzpF4SCa+BADA@mail.gmail.com>\n\t<2631e8a6-03f2-69ea-d889-afd9a345e7ef@virtuozzo.com>","From":"Arnd Bergmann <arnd@arndb.de>","Date":"Thu, 28 Sep 2017 07:30:59 -0700","X-Google-Sender-Auth":"JdOa3uEugxJPge4gb1YcDg53m_E","Message-ID":"<CAK8P3a3BiPh+d4vcb4pbbOsZLegp6YGk+BU3L=71sxatTuk-GQ@mail.gmail.com>","Subject":"Re: [PATCH v4 4/9] em28xx: fix em28xx_dvb_init for KASAN","To":"Andrey Ryabinin <aryabinin@virtuozzo.com>","Cc":"David Laight <David.Laight@aculab.com>, Mauro Carvalho Chehab\n\t<mchehab@kernel.org>,         Jiri Pirko <jiri@resnulli.us>,\n\tArend van Spriel <arend.vanspriel@broadcom.com>, \n\tKalle Valo <kvalo@codeaurora.org>, \"David S. Miller\"\n\t<davem@davemloft.net>,         Alexander Potapenko <glider@google.com>,\n\tDmitry Vyukov <dvyukov@google.com>, \n\tMasahiro Yamada <yamada.masahiro@socionext.com>, Michal Marek\n\t<mmarek@suse.com>,         Andrew Morton <akpm@linux-foundation.org>,\n\tKees Cook <keescook@chromium.org>, \n\tGeert Uytterhoeven <geert@linux-m68k.org>, Greg Kroah-Hartman\n\t<gregkh@linuxfoundation.org>, \"linux-media@vger.kernel.org\"\n\t<linux-media@vger.kernel.org>, \"linux-kernel@vger.kernel.org\"\n\t<linux-kernel@vger.kernel.org>, \"netdev@vger.kernel.org\"\n\t<netdev@vger.kernel.org>, \"linux-wireless@vger.kernel.org\"\n\t<linux-wireless@vger.kernel.org>, \"brcm80211-dev-list.pdl@broadcom.com\" \n\t<brcm80211-dev-list.pdl@broadcom.com>, \"brcm80211-dev-list@cypress.com\"\n\t<brcm80211-dev-list@cypress.com>, \"kasan-dev@googlegroups.com\"\n\t<kasan-dev@googlegroups.com>, \"linux-kbuild@vger.kernel.org\"\n\t<linux-kbuild@vger.kernel.org>, Jakub Jelinek <jakub@gcc.gnu.org>,\n\t=?utf-8?q?Martin_Li=C5=A1ka?= <marxin@gcc.gnu.org>,\n\t\"stable@vger.kernel.org\" <stable@vger.kernel.org>","Content-Type":"text/plain; charset=\"UTF-8\"","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}},{"id":1778201,"web_url":"http://patchwork.ozlabs.org/comment/1778201/","msgid":"<CAK8P3a0WtHjvo6tOp79U4gKjLSRmVCAmjYU_xTVJfBL1Qe-hdQ@mail.gmail.com>","list_archive_url":null,"date":"2017-10-02T08:33:37","subject":"Re: [PATCH v4 4/9] em28xx: fix em28xx_dvb_init for KASAN","submitter":{"id":30,"url":"http://patchwork.ozlabs.org/api/people/30/","name":"Arnd Bergmann","email":"arnd@arndb.de"},"content":"On Thu, Sep 28, 2017 at 4:30 PM, Arnd Bergmann <arnd@arndb.de> wrote:\n> On Thu, Sep 28, 2017 at 6:09 AM, Andrey Ryabinin\n> <aryabinin@virtuozzo.com> wrote:\n>> On 09/27/2017 04:26 PM, Arnd Bergmann wrote:\n>>> On Tue, Sep 26, 2017 at 9:49 AM, Andrey Ryabinin\n>>> <aryabinin@virtuozzo.com> wrote:\n>\n>>> --- a/include/linux/string.h\n>>> +++ b/include/linux/string.h\n>>> @@ -227,7 +227,7 @@ static inline const char *kbasename(const char *path)\n>>>  #define __FORTIFY_INLINE extern __always_inline __attribute__((gnu_inline))\n>>>  #define __RENAME(x) __asm__(#x)\n>>>\n>>> -void fortify_panic(const char *name) __noreturn __cold;\n>>> +void fortify_panic(const char *name) __cold;\n>>>  void __read_overflow(void) __compiletime_error(\"detected read beyond\n>>> size of object passed as 1st parameter\");\n>>>  void __read_overflow2(void) __compiletime_error(\"detected read beyond\n>>> size of object passed as 2nd parameter\");\n>>>  void __read_overflow3(void) __compiletime_error(\"detected read beyond\n>>> size of object passed as 3rd parameter\");\n>>>\n>>> I don't immediately see why the __noreturn changes the behavior here, any idea?\n>>>\n>>\n>>\n>> At first I thought that this somehow might be related to __asan_handle_no_return(). GCC calls it\n>> before noreturn function. So I made patch to remove generation of these calls (we don't need them in the kernel anyway)\n>> but it didn't help. It must be something else than.\n>\n> I made a reduced test case yesterday (see http://paste.ubuntu.com/25628030/),\n> and it shows the same behavior with and without the sanitizer, it uses 128\n> bytes without the noreturn attribute and 480 bytes when its added, the sanitizer\n> adds a factor of 1.5x on top. It's possible that I did something wrong while\n> reducing, since the original driver file uses very little stack (a few hundred\n> bytes) without -fsanitize=kernel-address, but finding out what happens in\n> the reduced case may still help understand the other one.\n\nThis is now GCC PR82365, see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82365\n\nI've come up with a workaround, but I'm not sure if that is any better than the\nalternatives, will send the patch as a follow-up in a bit.\n\n     Arnd","headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"RlhZP/2s\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y5FnL2jbBz9t4Z\n\tfor <patchwork-incoming@ozlabs.org>;\n\tMon,  2 Oct 2017 19:33:58 +1100 (AEDT)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751188AbdJBIdm (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tMon, 2 Oct 2017 04:33:42 -0400","from mail-oi0-f67.google.com ([209.85.218.67]:49276 \"EHLO\n\tmail-oi0-f67.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1750943AbdJBIdi (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Mon, 2 Oct 2017 04:33:38 -0400","by mail-oi0-f67.google.com with SMTP id w197so3304625oif.6;\n\tMon, 02 Oct 2017 01:33:38 -0700 (PDT)","by 10.157.0.70 with HTTP; Mon, 2 Oct 2017 01:33:37 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=gmail.com; s=20161025;\n\th=mime-version:sender:in-reply-to:references:from:date:message-id\n\t:subject:to:cc;\n\tbh=bgHUN3cjnVtcuYs148l3uz0wAkgBpWrc5smp5HARS4o=;\n\tb=RlhZP/2sKafsADrodwqwUMNXKIO83nOAI92l6Mc64YGgV92hicXguMg1+DsEj1y0v1\n\tWdCPCo/ucogJABXbPtPoVdl7ZVwO7Da5pTbyj7+QyEwaO3ij4QNqS39/DbR5BfqLZi4T\n\tvW5G2jua9Y6MEFpiUMSMllD9Vge8WmYu3H2NZD/PaQSLifagbY+b13Ox2fWsCsioJkiB\n\t2Bcyo4UIlXFUTBGS7hmw8XqilbTtDv6o6corxcfXsKbm464DEl7GrvAUstTUaGJFldhe\n\tY3icDOm+HIx5Ou+6aAuprz0FKausYb50jiOGTHLHY+y4jm870G6Jwe8EKoTyABqc13Wr\n\tM4xA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:sender:in-reply-to:references:from\n\t:date:message-id:subject:to:cc;\n\tbh=bgHUN3cjnVtcuYs148l3uz0wAkgBpWrc5smp5HARS4o=;\n\tb=OdpjT6G/83owCA1+U7TbWpxRtqXmeXIxeTCe7AhK70wkEt8BHNkKAikjrrYo0TwgHD\n\tdYE01XKkLl32EQnfYI2va36zLbAjGVN5olk7MPa7OFS9D0oS7itwoLbbonXUAzV+0yP5\n\tCn/z67ktNP/p8UHgtId3F5OauN26/RVPlJq2A8FWFHtX+nfksk3oGJgphrt6mq5bxXRV\n\t7CT4NVCkm3nJym10RTZdvCuphrONI/rCtlRstsrvZ9koiMs6w2372wi6o5f6OrfHDEMW\n\tm/+2nWqcfLo6blfLkjKWv8mfJktGHXfAJrN7GdUb8ZuLEfoip2OdW0Jlo54BPf2oy9P2\n\tJ9wg==","X-Gm-Message-State":"AMCzsaUrDfrshXZykZpaLrPI2eEZo1Pvi1HbL4k5977cnsEc+XMxPwDQ\n\tulAFA24iG2Z3pL+S0wGiZZqML9BRiWzxpYh4USc=","X-Google-Smtp-Source":"AOwi7QAjdMJpR/RLZy02eOJckAmT9BhdBnwuS6x3mVijuDy0egIIqoFRbSFyJTWiSNMgeW/IWLtDMxf77EQIkgOO768=","X-Received":"by 10.202.220.133 with SMTP id\n\tt127mr5488636oig.130.1506933217925; \n\tMon, 02 Oct 2017 01:33:37 -0700 (PDT)","MIME-Version":"1.0","In-Reply-To":"<CAK8P3a3BiPh+d4vcb4pbbOsZLegp6YGk+BU3L=71sxatTuk-GQ@mail.gmail.com>","References":"<20170922212930.620249-1-arnd@arndb.de>\n\t<20170922212930.620249-5-arnd@arndb.de>\n\t<063D6719AE5E284EB5DD2968C1650D6DD007F521@AcuExch.aculab.com>\n\t<CAK8P3a1zxjMsQTBPijCo8FJjEU5aRVTr7n_NZ1YM2UnDPKoRLw@mail.gmail.com>\n\t<CAK8P3a37Ts5q7BvA2JWse87huyAp+=e18CUXEt8731RrBnB+Ow@mail.gmail.com>\n\t<e7e6418e-4340-5057-aa17-800082aca5fb@virtuozzo.com>\n\t<CAK8P3a2C7DBTfQZvRi-QQfrfm1GXktFcXQRmXmzpF4SCa+BADA@mail.gmail.com>\n\t<2631e8a6-03f2-69ea-d889-afd9a345e7ef@virtuozzo.com>\n\t<CAK8P3a3BiPh+d4vcb4pbbOsZLegp6YGk+BU3L=71sxatTuk-GQ@mail.gmail.com>","From":"Arnd Bergmann <arnd@arndb.de>","Date":"Mon, 2 Oct 2017 10:33:37 +0200","X-Google-Sender-Auth":"Fy9Zw8FuYKP8UWlersXFC6TVRZQ","Message-ID":"<CAK8P3a0WtHjvo6tOp79U4gKjLSRmVCAmjYU_xTVJfBL1Qe-hdQ@mail.gmail.com>","Subject":"Re: [PATCH v4 4/9] em28xx: fix em28xx_dvb_init for KASAN","To":"Andrey Ryabinin <aryabinin@virtuozzo.com>","Cc":"David Laight <David.Laight@aculab.com>, Mauro Carvalho Chehab\n\t<mchehab@kernel.org>,         Jiri Pirko <jiri@resnulli.us>,\n\tArend van Spriel <arend.vanspriel@broadcom.com>, \n\tKalle Valo <kvalo@codeaurora.org>, \"David S. Miller\"\n\t<davem@davemloft.net>,         Alexander Potapenko <glider@google.com>,\n\tDmitry Vyukov <dvyukov@google.com>, \n\tMasahiro Yamada <yamada.masahiro@socionext.com>, Michal Marek\n\t<mmarek@suse.com>,         Andrew Morton <akpm@linux-foundation.org>,\n\tKees Cook <keescook@chromium.org>, \n\tGeert Uytterhoeven <geert@linux-m68k.org>, Greg Kroah-Hartman\n\t<gregkh@linuxfoundation.org>, \"linux-media@vger.kernel.org\"\n\t<linux-media@vger.kernel.org>, \"linux-kernel@vger.kernel.org\"\n\t<linux-kernel@vger.kernel.org>, \"netdev@vger.kernel.org\"\n\t<netdev@vger.kernel.org>, \"linux-wireless@vger.kernel.org\"\n\t<linux-wireless@vger.kernel.org>, \"brcm80211-dev-list.pdl@broadcom.com\" \n\t<brcm80211-dev-list.pdl@broadcom.com>, \"brcm80211-dev-list@cypress.com\"\n\t<brcm80211-dev-list@cypress.com>, \"kasan-dev@googlegroups.com\"\n\t<kasan-dev@googlegroups.com>, \"linux-kbuild@vger.kernel.org\"\n\t<linux-kbuild@vger.kernel.org>, Jakub Jelinek <jakub@gcc.gnu.org>,\n\t=?utf-8?q?Martin_Li=C5=A1ka?= <marxin@gcc.gnu.org>,\n\t\"stable@vger.kernel.org\" <stable@vger.kernel.org>","Content-Type":"text/plain; charset=\"UTF-8\"","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"}}]