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

From: Arthur Simchaev
Date: Thu Mar 02 2023 - 02:53:09 EST


> Hi Arthur,
>
> I doubt that renaming structure members is acceptable for UAPI headers.
> How about introducing a second struct next to the utp_upiu_query struct?
>
> Thanks,
>
> Bart.

Done

Regards
Arthur

> -----Original Message-----
> From: Bart Van Assche <bvanassche@xxxxxxx>
> Sent: Wednesday, March 1, 2023 8:44 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 3/1/23 01:46, Arthur Simchaev wrote:
> >>>>> 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.
> >>>
> >>> 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.
> >>
> >> That does not match what I see. I see that code in ufs-utils accesses
> >> the 'length' and 'value' members of the above data structure.
> >>
> >> Please follow the rules for UAPI header files.
> >>
> >> Thanks,
> >>
> >> Bart.
> >
> > You are right , my fault.
> > Anyway, It just return reserved field to the struct.
> > Also I can update the tool accordingly. Instead length and value fields,
> > using osf5 and osf6.
> > In this case we will keep it backward compatible.
> > Is it OK?
>
> Hi Arthur,
>
> I doubt that renaming structure members is acceptable for UAPI headers.
> How about introducing a second struct next to the utp_upiu_query struct?
>
> Thanks,
>
> Bart.