Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932933AbbGJQ6W (ORCPT ); Fri, 10 Jul 2015 12:58:22 -0400 Received: from lists.s-osg.org ([54.187.51.154]:47899 "EHLO lists.s-osg.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932736AbbGJQ6F (ORCPT ); Fri, 10 Jul 2015 12:58:05 -0400 Message-ID: <559FF99A.30509@osg.samsung.com> Date: Fri, 10 Jul 2015 10:58:02 -0600 From: Shuah Khan Organization: Samsung Open Source Group User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Greg Kroah-Hartman , Linus Torvalds , vz@mleia.com, Tejun Heo CC: Ming Lei , Shuah Khan , Linux Kernel Mailing List Subject: Re: Linux 4.2-rc1 References: <559E72B1.2050903@osg.samsung.com> <559E7AA4.6020602@osg.samsung.com> <20150709144540.GA27723@kroah.com> <559EB218.80404@osg.samsung.com> In-Reply-To: <559EB218.80404@osg.samsung.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 6063 Lines: 142 On 07/09/2015 11:40 AM, Shuah Khan wrote: > On 07/09/2015 08:45 AM, Greg Kroah-Hartman wrote: >> On Thu, Jul 09, 2015 at 07:44:04AM -0600, Shuah Khan wrote: >>> On 07/09/2015 07:10 AM, Shuah Khan wrote: >>>> On 07/08/2015 09:17 PM, Linus Torvalds wrote: >>>>> On Wed, Jul 8, 2015 at 5:58 PM, Ming Lei wrote: >>>>>> On Thu, Jul 9, 2015 at 1:29 AM, Linus Torvalds >>>>>> wrote: >>>>>>> Also, it looks like you need to hold the "fw_lock" to even look at >>>>>>> that pointer, since the buffer can get reallocated etc. >>>>>> >>>>>> Yes, the above code with holding 'fw_lock' is right fix for the issue since >>>>>> sysfs read can happen anytime, and there is one race between firmware >>>>>> request abort and reading uevent of sysfs. >>>>> >>>>> So if fw_priv->buf is NULL, what should we do? >>>>> >>>>> Should we skip the TIMEOUT= and ASYNC= fields too? >>>>> >>>>> Something like the attached, perhaps? >>>>> >>>>> Shuah, how reproducible is this? Does this (completely untested) patch >>>>> make any difference? >>>>> >>>> >>>> Happened both times I booted 4.2-rc1 up, so I would say 100% so far. >>>> I will test with your patch and report results. >>>> >>> >>> Yes. This patch fixed the problem. >> >> That's great, but what changed recently to cause this problem to happen? >> Any chance you can bisect to the problem commit? >> > > :) Starting bisect now. Thankfully I built 4.1.0 in this tree > which is good place to start. Let you know in a bit > Ok here is the bisect result. Did I mention "I really love bisect on the very first rc after the merge window" :) I am not sure why this patch would cause the problem I am seeing. This patch itself looks like a cleanup type patch and doesn't really fix a bug. I am building with this patch reverted at the moment to confirm. In the meantime: eaa5cd926345f86e9df1eb6b0490da539f5ce7d0 is the first bad commit commit eaa5cd926345f86e9df1eb6b0490da539f5ce7d0 Author: Vladimir Zapolskiy Date: Fri May 22 00:21:16 2015 +0300 fs: sysfs: don't pass count == 0 to bin file readers If count == 0 bytes are requested by a reader, sysfs_kf_bin_read() deliberately returns 0 without passing a potentially harmful value to some externally defined underlying battr->read() function. However in case of (pos == size && count) the next clause always sets count to 0 and this value is handed over to battr->read(). The change intends to make obsolete (and remove later) a redundant sanity check in battr->read(), if it is present, or add more protection to struct bin_attribute users, who does not care about input arguments. Signed-off-by: Vladimir Zapolskiy Acked-by: Tejun Heo Signed-off-by: Greg Kroah-Hartman :040000 040000 aca6ce463db111e3b3ef3fe4ed799a670618b1c4 2aad70773e76e899561ef4a8851174ae87793fed M fs Complete bisect log: git bisect start # bad: [d6ac4ffc61ace6ed6f183e9fd7f207c0ddafb897] Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm git bisect bad d6ac4ffc61ace6ed6f183e9fd7f207c0ddafb897 # good: [b953c0d234bc72e8489d3bf51a276c5c4ec85345] Linux 4.1 git bisect good b953c0d234bc72e8489d3bf51a276c5c4ec85345 # good: [4570a37169d4b44d316f40b2ccc681dc93fedc7b] Merge tag 'sound-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound git bisect good 4570a37169d4b44d316f40b2ccc681dc93fedc7b # bad: [8d7804a2f03dbd34940fcb426450c730adf29dae] Merge tag 'driver-core-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core git bisect bad 8d7804a2f03dbd34940fcb426450c730adf29dae # good: [3d9f96d850e4bbfae24dc9aee03033dd77c81596] Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc git bisect good 3d9f96d850e4bbfae24dc9aee03033dd77c81596 # good: [692a59e696afe1a4e777d0e4359325336ab0ad89] drm/amdgpu: remove AMDGPU_CTX_OP_STATE_RUNNING git bisect good 692a59e696afe1a4e777d0e4359325336ab0ad89 # good: [099bfbfc7fbbe22356c02f0caf709ac32e1126ea] Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux git bisect good 099bfbfc7fbbe22356c02f0caf709ac32e1126ea # good: [19a4fb21f804dbd5a327eba7a1569b6b8e941a54] i2c-parport: define ports to connect git bisect good 19a4fb21f804dbd5a327eba7a1569b6b8e941a54 # good: [3dc196eae1db548f05e53e5875ff87b8ff79f249] mei: me: wait for power gating exit confirmation git bisect good 3dc196eae1db548f05e53e5875ff87b8ff79f249 # good: [e382608254e06c8109f40044f5e693f2e04f3899] Merge tag 'trace-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace git bisect good e382608254e06c8109f40044f5e693f2e04f3899 # good: [f5727b05d221796baf69667ed5c891d4bd53711e] firmware: fix __getname() missing failure check git bisect good f5727b05d221796baf69667ed5c891d4bd53711e # good: [9ba8af66432cb8e82553f2e273eb11db0cec7d2d] base:dd - Fix for typo in comment to function driver_deferred_probe_trigger(). git bisect good 9ba8af66432cb8e82553f2e273eb11db0cec7d2d # bad: [8b2dcebae330fb6dffc7717b740aa4b2c4d00451] Revert "base/platform: Remove code duplication" git bisect bad 8b2dcebae330fb6dffc7717b740aa4b2c4d00451 # bad: [303cda0ea7c1c33701812ccb80d37083a4093c7c] firmware: add missing kfree for work on async call git bisect bad 303cda0ea7c1c33701812ccb80d37083a4093c7c # bad: [eaa5cd926345f86e9df1eb6b0490da539f5ce7d0] fs: sysfs: don't pass count == 0 to bin file readers git bisect bad eaa5cd926345f86e9df1eb6b0490da539f5ce7d0 # first bad commit: [eaa5cd926345f86e9df1eb6b0490da539f5ce7d0] fs: sysfs: don't pass count == 0 to bin file readers thanks, -- Shuah -- Shuah Khan Sr. Linux Kernel Developer Open Source Innovation Group Samsung Research America (Silicon Valley) shuahkh@osg.samsung.com | (970) 217-8978 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/