Re: [PATCH 5.17 000/772] 5.17.14-rc1 review

Coly Li
2022-06-18T11:05:36Z

> 2022年6月18日 18:49，Pavel Machek <pavel@denx.de> 写道：
>
> Hi!
>>>>
>>>> This is the start of the stable review cycle for the 5.17.14 release.
>>>> There are 772 patches in this series, all will be posted as a response
>>>> to this one. If anyone has any issues with these being applied, please
>>>> let me know.
>>>>
>>>> Responses should be made by Thu, 09 Jun 2022 16:48:02 +0000.
>>>> Anything received after that time might be too late.
>>>>
>>>> The whole patch series can be found in one patch at:
>>>> https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.17.14-rc1.gz
>>>> or in the git tree and branch at:
>>>> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.17.y
>>>> and the diffstat can be found below.
>>>>
> ...
>>> We will bisect and let you know more details about this reported problem.
>>
>> The bisect script pointed me to this commit and reverted and tested and
>> confirmed.
>
> Can you add some printks into that? Because I'm pretty sure this patch
> does not break anything. (It should not fix much, either.)
>
>> commit 1883088ed4a0d5cc9cea500ca4e89a354ab32c11
>> Author: Jia-Ju Bai <baijiaju1990@gmail.com>
>
>> md: bcache: check the return value of kzalloc() in detached_dev_do_request()
>>
>> commit 40f567bbb3b0639d2ec7d1c6ad4b1b018f80cf19 upstream.
>>
>> The function kzalloc() in detached_dev_do_request() can fail, so its
>> return value should be checked.
>>
>> Fixes: bc082a55d25c ("bcache: fix inaccurate io state for detached
> ...
>
>> +++ b/drivers/md/bcache/request.c
>> @@ -1107,6 +1107,12 @@ static void detached_dev_do_request(struct
>> bcache_device *d, struct bio *bio,
>> * which would call closure_get(&dc->disk.cl)
>> */
>> ddip = kzalloc(sizeof(struct detached_dev_io_private), GFP_NOIO);
>> + if (!ddip) {
>> + bio->bi_status = BLK_STS_RESOURCE;
>> + bio->bi_end_io(bio);
>> + return;
>> + }
>> +
>> ddip->d = d;
>> /* Count on the bcache device */
>> ddip->orig_bdev = orig_bdev;
>>
>
> So... for patch to make any difference, memory allocation has to fail
> and ddip has to be NULL.
>
> Before the patch, it would oops in "ddip->d = d;". With the patch, you
> do some kind of error handling. Even if it is buggy, it should not do
> more harm than immediate oops.

I just receive this single email and don’t have any idea for the context and what the problem is. Where can I see the whole conversation?

BTW, maybe commit 7d6b902ea0e0 (“bcache: memset on stack variables in bch_btree_check() and bch_sectors_dirty_init()”) is necessary, how about trying to add it in?

Coly Li