On 2/10/26 07:20, Kees Cook wrote:
On Mon, Feb 09, 2026 at 03:23:59PM +0900, Gustavo A. R. Silva wrote:
Ah yes, I can do this. The only thing is that I'd have to change every
place where members in struct il4965_tx_resp are used, e.g.
s/frame_count/hdr.frame_count
Hm? No, that's what transparent struct members avoid: there is no
sub-struct name, the members of the struct are transparently visible in
the surrounding struct:
Ah yes, that's why it's defined like
+struct il4965_tx_resp {
+ struct il4965_tx_resp_hdr;
/*
* For non-agg: frame status TX_STATUS_*
@@ -2664,7 +2668,8 @@ struct il3945_beacon_notif {
} __packed;
and not like
+struct il4965_tx_resp {
+ struct il4965_tx_resp_hdr hdr;
/*
* For non-agg: frame status TX_STATUS_*
@@ -2664,7 +2668,8 @@ struct il3945_beacon_notif {
} __packed;
struct inside {
int a;
int b;
};
struct foo {
struct inside;
int c;
} *p;
"p->a" is valid.
Yes, gotcha!
Another thing to take into account (fortunately, not in this case) is
when the FAM needs to be annotated with __counted_by(). If we use a
separate struct for the header portion of the flexible structure, GCC
currently cannot _see_ the _counter_ if it's included in a non-anonymous
structure. However, this will be possible in the near future, correct?
Right, that's still in progress. I don't expect it soon, though. :(
Okay.
-Gustavo