From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753776AbcGaNmV (ORCPT ); Sun, 31 Jul 2016 09:42:21 -0400 Received: from mail-db5eur01on0069.outbound.protection.outlook.com ([104.47.2.69]:14412 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752822AbcGaNmM (ORCPT ); Sun, 31 Jul 2016 09:42:12 -0400 X-Greylist: delayed 890 seconds by postgrey-1.27 at vger.kernel.org; Sun, 31 Jul 2016 09:42:11 EDT Authentication-Results: spf=pass (sender IP is 188.184.36.50) smtp.mailfrom=cern.ch; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=bestguesspass action=none header.from=cern.ch; Subject: Re: kernel/printk/printk.c: Invalid access when buffer wraps around? To: Sergey Senozhatsky References: <89c15437-5a97-68b1-d83f-097f3b047559@cern.ch> <20160731084108.GA538@swordfish> CC: Andrew Morton , Petr Mladek , Andrey Ryabinin , Kees Cook , Thierry Reding , Geliang Tang , Tejun Heo , Ivan Delalande , From: Vincent Brillault Message-ID: <14d57dba-e293-11c2-67b2-18313a3a9b34@cern.ch> Date: Sun, 31 Jul 2016 15:26:41 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <20160731084108.GA538@swordfish> Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="eWnfU47BMUrIAjMchlop3J1L35viAdvFg" X-Originating-IP: [92.129.140.124] X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:188.184.36.50;IPV:NLI;CTRY:CH;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(7916002)(2980300002)(438002)(189002)(199003)(586003)(74482002)(2950100001)(4001350100001)(3846002)(5890100001)(50986999)(246002)(8936002)(31686004)(8676002)(11100500001)(21480400002)(54356999)(64126003)(7416002)(6116002)(76176999)(87936001)(2906002)(110136002)(65956001)(86362001)(356003)(305945005)(512944002)(189998001)(4326007)(31696002)(84326002)(65806001)(77096005)(16796002)(66066001)(106466001)(568964002)(117156001)(92566002)(7636002)(7736002)(33646002)(19580405001)(7846002)(19580395003)(36756003)(83506001)(65826006);DIR:OUT;SFP:1101;SCL:1;SRVR:DB4PR06MB444;H:CERNMX11.cern.ch;FPR:;SPF:Pass;PTR:cernmx11.cern.ch;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;AM1FFO11FD025;1:+qw3JLgxMevWzRFmjugijH3lcAz6PXwZyWIq52mS0fS4yNkvu67sullP7V23gSa4NDEqavqnNZSZ4Ra8YlxOuDq7lp/qGqs0DVMaTD08tZozK+xLczTOqsoQBdNEupFI+xgWSkbSDWaju1Pzr8oItg6d1yFhYV9lYSQINj3wGWpQQF0XglEuf5+0LDHRhQxAf6gRCizYiNJ2+BfGe7vkx2VxyDRIF/8s3jOICCN5EQ3g7oB1ht4lsLtg0iwK2b+ZbSgJfIU0yjzzyCeu6pRkUO8WBbPzf/GxMTfkAuZzztlIqFOTGUWhBSsYol0YzQ2LBqreIttN07UqpovKgqavR9GQZBnZNoQHCfQGyk2uoJVJdlmZo9UMCtBOjhJwkVxI8pYiU5ggINf/BW+ikNE6DwUsGllmZGW+ETWzadTLr99KPVTXQscJ45GfiqLE/okf4OXaqvt8i/rNOuz/8P/ZdH0U+meIgEcXATmzmO2zMWYUlGHmvR7MXCiK9fEHZG9eYz+kB1himjdtTL+dmyezEIz25Fld0XztWd1iHC057gYkrkEmnAapjim22R8rEBbH X-MS-Office365-Filtering-Correlation-Id: 89144e15-841b-4bc0-8ce1-08d3b9465a97 X-Microsoft-Exchange-Diagnostics: 1;DB4PR06MB444;2:PcDuH6Ouj12fww0FPEGxkjQS+dBBHv1EyadBNOSxFBCfAra9b9WQK1cGnoRKgTRdhq017FnTEG0LRG3kTjaW46kiSOataIi69OewryOLrMsr1wb/kXOFuD3/qTQYwm6TpGpcU8Q7msp+VGUBRSyBLSwrug7XVN68GH3AbjpcwGchBWafOJ+QuPL4+ZO/1l4u;3:CkVlK8pQfL9wT30Vs+9VtkePmGuBhUMB39QDSlz5FfBtwvoRO339RkODWyJdL1E3Y+SLbMd5WzDT+/1zOm8TaSHhpA9RztOFOPD2yC2LBn+StOkXI1jACSZ7P9GhF3ysiRrd7WEfE86yzwjgr+uwmXMqX367/RCVTRhehW97clRT6OMyv3n0nLtMRJZ6CjOfT9zgs8iH3mRSPCpm5U6bcxFzkK0v0h/cgPBPtryTZCCpErCKqTupLQ21QHQcMKHHouFXKAiNh4zW+TFp2du6/A==;25:PzdW3iE3o1W7dNoMAVgwr8OlHDx+JgZVDgkAdq/2q9DbjEgRGrVZpkpP6PF9qjMNymTVaDp+s20X2g1lsvCsUyyU1tLGYILSr3CZryRfMh17EHikkLQuDhuege7K0AdCy5A89/jMzkYVeIYj6+RTag4l6zkSm8HbDefZlgxO9KKa9krUa75TZwP0CvqmbgPOlNrrkJK6iZhn62QedSI388hsgTFmrb3Jg1EMWWO2JUzcMhL8rk3rN6+q5lCOAzulyi2zpXWR9vvE/SUDLUd9STk4y4UYDgGd+DEU/BQSCO9Mqef+JkgQ47FVhLABPSoXIdZR7wwpHMeQIVsqzSiv3v2Y7tsD96g/G/VEIwXHCuPa9u3NBMbjWWxZ4vcIExRWktc1mdNlM+uThO5zOTdKrKgZP20xg9noJMlpvEtXKNo= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(8251501002);SRVR:DB4PR06MB444; X-Microsoft-Exchange-Diagnostics: 1;DB4PR06MB444;31:P1ZOxaJ9N5DL/u3N1Dz6QTSokv6bTUdW9VkJjdqLBFUEzGX+svaSNu9oq3EQ4Yi0frqxaZ6a+kkkRc08h+WAIPZ+vNnku3t6GZY+gbPCub4HBTKcY9arzu9Vmqi1RfMH7nz2eMK6FDIz8EVPMGNmACDfR5qlPYDMGgxJphNWsCceOccF7MBqpRuchbRKfLZ8Bq2UoTT+MWLsyCvm2TnADQ==;20:guRZU6lo/VlS9BW5NuiAs/yae30DFc3+gmXq+tTmoEmKnGu4a8BL4XDDK28h0A0SsSx1I02QsVq4qjIf3wN/WGhthhJY/hilV/lVMM5M1GN82PgqufYh16QqyGZIM24GNB4dJxxWCg+ASvMzd6EmuRSJr5dF7Z7vDx9Z6EemDJ3j3FyB4Q9gLE+d9nQQsBWxYHjcfxkac49BWcngZiyvz6eIFynh9+y7aAXJpL+A9Hviyokk1RPbnHC3ypSO5mewAsFqqxeLyg0qUEKsnFPRx7BRBmbK9izlwGzyiMlxHAL+M1Nfa7d2lbCLpeh7DELquCvZ+A9RxxvWiipW9PanqmaSgZwl/qYkx/aRJeu7jcfBrXSMymvF4wtOt5dJHr882o7wgahnd1RbkFr8p8/NEG6i2aycfO1GZcVa2+GPyja/lGlpts5BcTaq/uF6q1kieVqq7kg3o5rzOJdaEIOPdvUYuQuwmq9dutJO80uhAviSiMzNfERMjRv/oIHe+1yI X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(9452136761055)(130843839470238); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(13018025)(5005006)(8121501046)(13024025)(13016025)(13023025)(3002001)(10201501046);SRVR:DB4PR06MB444;BCL:0;PCL:0;RULEID:;SRVR:DB4PR06MB444; X-Microsoft-Exchange-Diagnostics: 1;DB4PR06MB444;4:NbxQWJayqEn0SMHygIs7wvvg7k8tWPgNjUcTQYJdnda5cccBvF0cg8KOHvDZxxFkKq8oIS7ztUk31X6cTuu4/dq0+VZ7ZpWweRgC4I0b5d/e9aPZ6JY+OMN/x2kTzRKVJPsrACaCdqmhfgSCoIoj75Gpey/sUNnLzHiflonhLa8wQErD66JvBN1qfpFkMJ+zlN8lPkUO8JgtlAuVUSgecws7qzEEhbWLyRfJtj3345NEPBHUIdTSJvS4ca/Rx9LCCxTlB8Tj/WNb9FsRVkgE7tKG4hMCQbpAc7I6R1vssgq9qbKvL1LrheQGTeSmWMmNGXPE5OaQMJLys/4JN1ZxQN+WhZfb3+uLA7KKo5Tqzjog1piVVjdFcW2S274r9AIs543tDJ13FGYHMu/LqZOB4FQ1WXrBgEinp9r0R21lVszEphm+uOIyXlOyZxBvk7YCiv5vXP1jI5Hz0zoaz8qjxiNIXs4wUZnNNFRaMut8ZT/1ZDcP2wEgEv4VFMsnigXWvKdI1JFMIHSAknG4hWJ9qg== X-Forefront-PRVS: 0020414413 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DB4PR06MB444;23:dsqdNVhbWj6VgmcXnF6lq0mOVoyIY2PH/EM8yhycV4?= =?us-ascii?Q?+oJfr8+kwUiCHBlc20fhOqQhwT3/e1eYgTDaKfDkrwrFTIFxvLKMrDWyKQZk?= =?us-ascii?Q?MaBdx6Zw+F2UgDmuKUzMNR8J6kZHaiDuXoPiRfWLuY996fFRiEiLcODDdL7t?= =?us-ascii?Q?ZqAxSNfTtfCPz1AVvJv8mzArg3oNZ+X4PlmdoJ/tOaIVmQlovx7mPlZ55Er4?= =?us-ascii?Q?CHE/BW2zzioL+IpnoN3m0cqqjyWHg/wj+g4Un2DF5cBGQpqIQh0ipenpSZIt?= =?us-ascii?Q?t5qrrJOS37ZQkIZKNFVxKtM1C77yet+rVa92ZaMW2ACcwxfRuOpAj89lf29n?= =?us-ascii?Q?hU2RF0P8Iu8Lm+4t16h+xnVZ/vn4F9VHtfvHpf9Yg0GKHDo6RpElgWzup6la?= =?us-ascii?Q?9sVkgIytopd0IbZj9jn4iq/uI1WnAAOdrP4vA/3msHkNxXIAvhZle6L3tdlu?= =?us-ascii?Q?zvC11JS1tZYqTxcdpYY9v27dPdAsjQ89qjbxiqB7gIxROlqaTAgDJgVBFDbX?= =?us-ascii?Q?3cqRmBTaVM7WZrVq4giFXRFiOQNLpHMXmfXa4t1ezzGOS6fIQ1PA++cJdnmo?= =?us-ascii?Q?MI2HTO/QpBp9tB1XcXU9jTMIgmd+XkykWvFEyTye7NkpgGml2iXBPiN0jSyC?= =?us-ascii?Q?QmBkS9Zkh3YvPVuVLo06hEegh5fOpQglqCEI0PkEvMOcxdITNdSsaQnjS78g?= =?us-ascii?Q?bku3P7Id0ABNij9ekU+YeOEXfX2yvq/DOefJltxJSiVirQXraCPvP4ixfdkB?= =?us-ascii?Q?zqZW12uG/jrmaEUubRoa/XxmSOo1paWYknoyIRBh2Ud0mFbk6hEMCoxnb1Z2?= =?us-ascii?Q?Hm/CAzuoHPJBpFv/pEfehgx6oiNSJ4G72yNSUnVXenBdkDsJLlCfiElNQkKr?= =?us-ascii?Q?cyCV0AoDrUL7//tfRKTmm5jnEh7QlRwQEaoFLesS8k8kO13JAzfsnCJaXItH?= =?us-ascii?Q?HT89TT1+SNZBhmKJeU7ATYMXAVLbppAIN5sKhl3xdQkxNoas2qG6J0ZLmTnj?= =?us-ascii?Q?hQ2i8qJOS+5ecKzRCtpo0/w3k0uw7I2iW71+Y/Mpq9ZW6y9PcJ2r4//I5OIw?= =?us-ascii?Q?4b8POQIBk/DXnOctlI7rZf+BLXC3mNis6LI+KfHTKsomrd04cqZvOpA6+PJR?= =?us-ascii?Q?3a+v2GVE+aVNGLIrECFBQ/GDOtxxEesFdEzUHgI8F7py8P5ZrxHg5A9TF/np?= =?us-ascii?Q?ZuBiwP9IgJQeEX18qqwyHRP4oD8BOIVI2dJvIKSF/V3kURYHyPHTfi/zw0qd?= =?us-ascii?Q?+fH1kpeNZXiMyab0Wctlcw+JNDB8IruPWWopK8ipBdqWIdbk7n3un5ObsK4A?= =?us-ascii?Q?=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;DB4PR06MB444;6:W11hE6Dmt02ORwrXVsYU1Vu6g6352/xwSI3lxdeJYSS7SohN9YP8eADh9nK9HDT27QvLLhS8P3zILEzCtjAHLBpAmmTZkF64GB52/qO+gXdYYrZSOV1JMxKleW35SecVJnugw7DIvsJvmWVPeBidy7Iy3mSXt4Bnt98NbvbmZh9AtjwAO3nnhJ821YmsTULX0bGLth+cYwkK1GtCYkLeMCPr3l1/btCI72Yc7JFxRLIfu4VUMn5PJX7ViHNCpE/4TjpxRJK923hZRqSMwAQuXwO+u+rCEfXEHTUqq83J9D4=;5:MCrpRTfD6wZ+zQRWAJ1ULLhETboNoXzzFxSLJDGLvLxwLfHsWiQbUJSvy9B7sbQLusa7F/pfVS95G4wQI6wGxut4XzA9Ad0KJcMvGrpX80gMp35QWIFLpT2LVOT928Ct/EdwFKOE0bKwyzdkiiU5Cw==;24:0c9K0fYZDScY0i7qWvQZVNMsKnHv3l2FGFmNZoZ9iX1v7hf6m+H9dRe55v1loGf9e000lg9DC6lNzQHFb61rdU0jaJtpwCqnvXm3g4JS1dM=;7:9o3975nf+aH6+EF3ru95NWO19iYLF7hC9xWM9awzbfiAs3ZaUdScx4Ff4Edl68E7Cja4ZjlVc3yCYV76Y8X6UWlNRfB0X0lcsaT187ht7MFMHcYezOGFzHbXUseEdPvVcsvF75q0BqeJh55/JYoitNu1dSh8Zpu8Es9Yo37VNhW0PHAhOMHxTF0uqnAiyNT6OD+II+4Eyw6x8SCWg1Vx0T5/X3QYov670KVwMxNuHAcMfm01nHG6I+fyECAaZ11c SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cern.ch X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jul 2016 13:27:00.5294 (UTC) X-MS-Exchange-CrossTenant-Id: c80d3499-4a40-4a8c-986e-abce017d6b19 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c80d3499-4a40-4a8c-986e-abce017d6b19;Ip=[188.184.36.50];Helo=[CERNMX11.cern.ch] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR06MB444 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --eWnfU47BMUrIAjMchlop3J1L35viAdvFg Content-Type: multipart/mixed; boundary="UJ27vEsQTUCKlEar8gjsDAlOLkcTXnH4V" From: Vincent Brillault To: Sergey Senozhatsky Cc: Andrew Morton , Petr Mladek , Andrey Ryabinin , Kees Cook , Thierry Reding , Geliang Tang , Tejun Heo , Ivan Delalande , linux-kernel@vger.kernel.org Message-ID: <14d57dba-e293-11c2-67b2-18313a3a9b34@cern.ch> Subject: Re: kernel/printk/printk.c: Invalid access when buffer wraps around? References: <89c15437-5a97-68b1-d83f-097f3b047559@cern.ch> <20160731084108.GA538@swordfish> In-Reply-To: <20160731084108.GA538@swordfish> --UJ27vEsQTUCKlEar8gjsDAlOLkcTXnH4V Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Dear Sergey, > sorry for long reply. do you see this in practice? No, I've only thought of the bug will trying to adapt this code to build a separate cyclic buffer in a dedicated kernel module. > the first printk()->console_unlock() to notice `seen_seq !=3D log_next_= seq` > will wakeup a task from log_wait, sleeping on > wait_event_interruptible(seq !=3D log_next_seq) Yes, but a task could be not waiting to read reading while still having open /dev/kmsg (e.g. after having read it in O_NONBLOCK) > so I believe your assumption here is that we wrap around and then fill = up > the log_buf again without waking up the klogd even once, correct? >=20 > CPU0 CPU1 >=20 > console_lock(); > printk(); > ... devkmsg_read(); > printk(); > console_unlock(); >=20 > like the above? Mmm, I did not think of such a case, which might be possible. I was more thinking of a userland daemon reading the buffer (via /dev/kmsg) in non-blocking mode and only pulling from time to time. I agree that this is probably not seen often, which could explain why nobody can see it in practice. Thanks for your time, Vincent Brillault --UJ27vEsQTUCKlEar8gjsDAlOLkcTXnH4V-- --eWnfU47BMUrIAjMchlop3J1L35viAdvFg Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCgAGBQJXnfyeAAoJEM8JrGClGcypi5QP/231FSrKDFehFLvG5dpXu+zF l/mIS64wKf2zy5W6elExzS0Ch4aQzBRru0oXI51x8BgPuoeZmbqZ6rAyzoFVJzkR Ln5jy24rnW78xxH7tpASD0B1ifTFc2yLJ0MAWsv1ieL094ItWst7YCBlNKV+gcCt 4iY3MPlNXC0f3HZAKAXo4NQB1bEr3Cjz0ucckl84SVjXHD82DpuJS941OmfHvWvQ OgX5VaWJKlOaMZPrSuZc7IkdlA8Op5b+C3Cw+DZWVWSkNsPD8GFePrnf7gBNqXU0 ulNz8rNU2KxdqYmUWkzrxyiKpsiqdYbsKDXoCxDaInNDBnR+Mw7yCA7O7lEK8Mzi BHrq5EF8KyAcuH3UYfBOxTkjFyFi+HuEKAOXhBQ4OYdg2jqYpqJwrkGn5sPnMQSI RvqjMeTLzXLE9LcMIeD/81CMmKyL2NQQKCBi8G5UPR0Z6NTHR18krPbGUjANTFic imTOMarL0F59jgbvHfZJF3VTAGtInkKBo8djAz2F6RqqxHbi/S20pGZ0EMFakP7N c/CcmUm1rj07uY4po8mInFek62sfKyQnegwYR13P/ULa5+wyuMKocC+yhooDv7WX kHG5rOWC7zXph4p98c+Xi7qhafMdRtUGhXUxt8d14hsUcCRAAdY6e+Og9aq//OqV 7Ys0A0QLv/5XUjEjgDiH =qlGA -----END PGP SIGNATURE----- --eWnfU47BMUrIAjMchlop3J1L35viAdvFg--