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

From: Bart Van Assche
Date: Wed Mar 01 2023 - 13:44:14 EST


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.