On Mon, Oct 14, 2024 at 06:06:35PM +0200, Julius Lehmann wrote:

> SCSI READ CAPACITY reports the address of the last
> block and the block size. The total number of blocks
> is thus last block address plus one.
> 
> ---
> This patch fixes the disk size reported by scsi. Up until now, the reported 
> disk size is too small by one sector. Read/Write operations on other sectors 
> have not been affected. Trying to partition scsi backed storage via ums has 
> resulted in "storage too small" errors.
> 
> doc: https://linux.die.net/man/8/sg_readcap
> 
> Signed-off-by: Julius Lehmann <lehma...@devpi.de>
> ---
>  drivers/scsi/scsi.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
> index 
> 51cacf3479236be6c6ea3e7d15b87e03f10e7f3a..bcdeda95ed1514119057cc67974fec465cf5672c
>  100644
> --- a/drivers/scsi/scsi.c
> +++ b/drivers/scsi/scsi.c
> @@ -309,6 +309,7 @@ static int scsi_read_capacity(struct udevice *dev, struct 
> scsi_cmd *pccb,
>                        ((unsigned long)pccb->pdata[5] << 16) |
>                        ((unsigned long)pccb->pdata[6] << 8)  |
>                        ((unsigned long)pccb->pdata[7]);
> +             *capacity += 1;
>               return 0;
>       }
>  
> @@ -332,6 +333,7 @@ static int scsi_read_capacity(struct udevice *dev, struct 
> scsi_cmd *pccb,
>                   ((uint64_t)pccb->pdata[5] << 16) |
>                   ((uint64_t)pccb->pdata[6] << 8)  |
>                   ((uint64_t)pccb->pdata[7]);
> +     *capacity += 1;
>  
>       *blksz = ((uint64_t)pccb->pdata[8]  << 56) |
>                ((uint64_t)pccb->pdata[9]  << 48) |
> 

This leads to this failure in CI:
https://source.denx.de/u-boot/u-boot/-/jobs/926468#L288

-- 
Tom

Attachment: signature.asc
Description: PGP signature

Reply via email to