RE: [PATCH 1/2] include: uapi: scsi: Change utp_upiu_query struct

From: Arthur Simchaev
Date: Mon Feb 27 2023 - 11:03:52 EST


Hi Bart,

>>
>> */
>> struct utp_upiu_query {
>> __u8 opcode;
>> __u8 idn;
>> __u8 index;
>> __u8 selector;
>>- __be16 reserved_osf;
>>- __be16 length;
>>- __be32 value;
>>- __be32 reserved[2];
>>+ __u8 osf3;
>>+ __u8 osf4;
>>+ __be16 osf5;
>>+ __be32 osf6;
>>+ __be32 osf7;
>> };
>All changes in UAPI headers must be backwards compatible. The above doesn't look like a backwards compatible change to me.
>
>Bart.

This API was originally invented to support ufs-bsg.
AFAIK, ufs-utils is the only app that makes use of this API,
and it doesn't dig into struct utp_upiu_query inner fields.

Thanks,
Arthur


Regards
Arthur

> -----Original Message-----
> From: Bart Van Assche <bvanassche@xxxxxxx>
> Sent: Wednesday, February 22, 2023 5:26 PM
> To: Arthur Simchaev <Arthur.Simchaev@xxxxxxx>;
> martin.petersen@xxxxxxxxxx
> Cc: beanhuo@xxxxxxxxxx; linux-scsi@xxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH 1/2] include: uapi: scsi: Change utp_upiu_query struct
>
> CAUTION: This email originated from outside of Western Digital. Do not click
> on links or open attachments unless you recognize the sender and know that
> the content is safe.
>
>
> On 2/22/23 07:12, Arthur Simchaev wrote:
> > diff --git a/include/uapi/scsi/scsi_bsg_ufs.h
> b/include/uapi/scsi/scsi_bsg_ufs.h
> > index 2801b65..cccc07d 100644
> > --- a/include/uapi/scsi/scsi_bsg_ufs.h
> > +++ b/include/uapi/scsi/scsi_bsg_ufs.h
> > @@ -54,20 +54,21 @@ struct utp_upiu_header {
> > * @idn: a value that indicates the particular type of data B-1
> > * @index: Index to further identify data B-2
> > * @selector: Index to further identify data B-3
> > - * @reserved_osf: spec reserved field B-4,5
> > - * @length: number of descriptor bytes to read/write B-6,7
> > - * @value: Attribute value to be written DW-5
> > - * @reserved: spec reserved DW-6,7
> > + * @osf4: spec field B-5
> > + * @osf5: spec field B 6,7
> > + * @osf6: spec field DW 8,9
> > + * @osf7: spec field DW 10,11
> > */
> > struct utp_upiu_query {
> > __u8 opcode;
> > __u8 idn;
> > __u8 index;
> > __u8 selector;
> > - __be16 reserved_osf;
> > - __be16 length;
> > - __be32 value;
> > - __be32 reserved[2];
> > + __u8 osf3;
> > + __u8 osf4;
> > + __be16 osf5;
> > + __be32 osf6;
> > + __be32 osf7;
> > };
>
> All changes in UAPI headers must be backwards compatible. The above
> doesn't look like a backwards compatible change to me.
>
> Bart.