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]
Message-ID: <bdb69723-269d-3c1f-2501-7db0e6246890@suse.com>
Date:   Sun, 2 Oct 2022 15:21:34 -0700
From:   Lee Duncan <lduncan@...e.com>
To:     Bart Van Assche <bvanassche@....org>,
        Lee Duncan <leeman.duncan@...il.com>,
        "James E.J. Bottomley" <jejb@...ux.ibm.com>,
        "Martin K. Petersen" <martin.petersen@...cle.com>,
        linux-scsi@...r.kernel.org, linux-kernel@...r.kernel.org
Cc:     Martin Wilck <mwilck@...e.com>, Hannes Reinecke <hare@...e.de>
Subject: Re: [PATCH] scsi: core: Add BLIST_NO_ASK_VPD_SIZE for some VDASD

On 10/2/22 14:16, Bart Van Assche wrote:
> On 9/28/22 11:13, Lee Duncan wrote:
>> From: Lee Duncan <lduncan@...e.com>
>>
>> Some storage, such as AIX VDASD (virtual storage) and IBM 2076
>> (front end) do not like the recent commit:
>>
>> commit c92a6b5d6335 ("scsi: core: Query VPD size before getting full 
>> page")
>>
>> That commit changed getting SCSI VPD pages so that we now read
>> just enough of the page to get the actual page size, then read
>> the whole page in a second read. The problem is that the above
>> mentioned hardware returns zero for the page size, because of
>> a firmware error. In such cases, until the firmware is fixed,
>> this new black flag says to revert to the original method of
>> reading the VPD pages, i.e. try to read as a whole buffer's
>> worth on the first try.
>>
>> Fixes: c92a6b5d6335 ("scsi: core: Query VPD size before getting full 
>> page")
> 
> Hi Lee,
> 
> If we introduce a blacklist flag to skip querying the VPD page size then 
> we will have to find all SCSI devices that do not handle querying the 
> VPD page size correctly. Has it been considered instead of introducing a 
> blacklist flag to not use the reported VPD page size if the device 
> reports that the VPD page size is zero? I am not aware of any VPD pages 
> for which zero is a valid size.
> 
> Thanks,
> 
> Bart.

Hi Bart:

The problem with the broken firmware in my case is that it reports a 
size of zero, but it actually has the data! So the "size" returned for 
this one VPD page is just wrong. And I haven't researched it yet, but I 
assume that this hardware returned the failing page in question as a 
page it supported. In other words, you can't count on this hardware to 
report correctly. [I will check and update this email thread if this is 
wrong.]

This broken firmware was never an issue before commit c92a6b5d6335, 
since we used to just try to read 255 bytes, expecting that we would get 
back 255 or less. This worked almost all the time -- except for buggy 
hardware!

I suspect there isn't many pieces of hardware that return zero length 
incorrectly, and that if such hardware shoes up then they'll be able to 
use this flag to work around it.

So, for my hardware use case, if I add my commit, the VPD page shows up 
in sysfs, and before my commit no VPD page showed up. [Also, reverting 
commit c92a6b5d6335 made the VPD page show up, as a side note.]

Lastly, as for pages that might validly return size zero, Hannes seems 
to think some of the older hardware (under the older standards) returned 
zero as a valid page size for some VPD pages. For this reason I decided 
to not use a simpler approach of just trying to read the VPD page with a 
size of 255 if the "read length" returned zero (as in this case), i.e. 
since Hannes thinks some hardware might legitimately do this.

-- 
Lee

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ