lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 13 Oct 2022 16:14:12 +0900
From:   Damien Le Moal <damien.lemoal@...nsource.wdc.com>
To:     Jason Yan <yanaijie@...wei.com>, Li kunyu <kunyu@...china.com>
Cc:     jejb@...ux.vnet.ibm.com, linux-kernel@...r.kernel.org,
        linux-scsi@...r.kernel.org, martin.petersen@...cle.com
Subject: Re: [PATCH 4.19] scsi: sd: Fix 'sdkp' in sd_first_printk

On 2022/10/13 16:02, Jason Yan wrote:
> 
> On 2022/10/13 14:39, Damien Le Moal wrote:
>> On 2022/10/13 15:26, Jason Yan wrote:
>>>
>>> On 2022/10/13 12:49, Li kunyu wrote:
>>>>
>>>> This is defined in the 4.19 kernel:
>>>>
>>>> #define sd_printk(prefix, sdsk, fmt, a...)                              \
>>>>           (sdsk)->disk ?                                                  \
>>>>                 sdev_prefix_printk(prefix, (sdsk)->device,                \
>>>>                                    (sdsk)->disk->disk_name, fmt, ##a) :   \
>>>>                 sdev_printk(prefix, (sdsk)->device, fmt, ##a)
>>>>
>>>> #define sd_first_printk(prefix, sdsk, fmt, a...)                        \
>>>>           do {                                                            \
>>>>                   if ((sdkp)->first_scan)                                 \
>>>>                           sd_printk(prefix, sdsk, fmt, ##a);              \
>>>>           } while (0)
>>>>
>>>>
>>>>
>>>> Most of the sdsk used in the macro definition has only one sdkp.
>>>>
>>>>
>>>> This is defined in the v6.0-rc7 kernel:
>>>>
>>>> #define sd_printk(prefix, sdsk, fmt, a...)                              \
>>>>           (sdsk)->disk ?                                                  \
>>>>                 sdev_prefix_printk(prefix, (sdsk)->device,                \
>>>>                                    (sdsk)->disk->disk_name, fmt, ##a) :   \
>>>>                 sdev_printk(prefix, (sdsk)->device, fmt, ##a)
>>>>
>>>> #define sd_first_printk(prefix, sdsk, fmt, a...)                        \
>>>>           do {                                                            \
>>>>                   if ((sdsk)->first_scan)                                 \
>>>>                           sd_printk(prefix, sdsk, fmt, ##a);              \
>>>>           } while (0)
>>>>
>>>> Use sdsk in macro definition.
>>>>
>>>>
>>>> I did report an error when compiling sd. o in the 4.19 kernel. It was modified to say that no more errors were reported in sdsk. Can I continue the 6.0-rc7 writing method here.
>>>>
>>>
>>> You should backport the mainline patch to 4.19, not create a new one.
>>
>> Yes, but since the mainline patch has a typo, better fix it and backport the fix
>> too with a "Fixes" tag.
>>
> 
> What typo in the patch? I did not see it.

I meant the weird variable name sdsk in the original patch instead of the more
natural sdkp.

> 
>> My point about the proposed patch was to make the reverse change to fix the
>> macro: use sdkp instead of sdsk since the former is used everywhere and clear.
>> But sure, since this is not causing any issue, no strong need to fix the macro.
>> It is really ugly as-is though :)
>>
> 
> I agree that there is no need to backport it.

Yes. Beside using that strange variable name, no problem.

> 
> Thanks,
> Jason
> 
>>>
>>> commit df46cac3f71c57e0b23f6865651629aaa54f8ca9
>>> Author: Dietmar Hahn <dietmar.hahn@...fujitsu.com>
>>> Date:   Tue Feb 5 11:10:48 2019 +0100
>>>
>>>       scsi: sd: Fix typo in sd_first_printk()
>>>
>>>       Commit b2bff6ceb61a9 ("[SCSI] sd: Quiesce mode sense error messages")
>>>       added the macro sd_first_printk(). The macro takes "sdsk" as argument
>>>       but dereferences "sdkp". This hasn't caused any real issues since all
>>>       callers of sd_first_printk() have an sdkp. But fix the typo.
>>>
>>>       [mkp: Turned this into a real patch and tweaked commit description]
>>>
>>>       Signed-off-by: Dietmar Hahn <dietmar.hahn@...fujitsu.com>
>>>       Signed-off-by: Martin K. Petersen <martin.petersen@...cle.com>
>>>
>>> diff --git a/drivers/scsi/sd.h b/drivers/scsi/sd.h
>>> index 1080c85d97f8..5796ace76225 100644
>>> --- a/drivers/scsi/sd.h
>>> +++ b/drivers/scsi/sd.h
>>> @@ -132,7 +132,7 @@ static inline struct scsi_disk *scsi_disk(struct
>>> gendisk *disk)
>>>
>>>    #define sd_first_printk(prefix, sdsk, fmt, a...)                       \
>>>           do {                                                            \
>>> -               if ((sdkp)->first_scan)                                 \
>>> +               if ((sdsk)->first_scan)                                 \
>>>                           sd_printk(prefix, sdsk, fmt, ##a);              \
>>>           } while (0)
>>>
>>>
>>>
>>>>
>>>> .
>>>>
>>

-- 
Damien Le Moal
Western Digital Research

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ