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

From: Arthur Simchaev
Date: Wed Mar 01 2023 - 04:47:09 EST


> >>> 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?

Regards
Arthur

> -----Original Message-----
> From: Bart Van Assche <bvanassche@xxxxxxx>
> Sent: Monday, February 27, 2023 7:00 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/27/23 08:03, 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.