Re: [PATCH v5] net: ip, diag -- Add diag interface for raw sockets
flat view
From: Eric Dumazet <hidden>
Date: 2016-09-28 12:57:25
Also in:
lkml
On Wed, 2016-09-28 at 14:27 +0300, Cyrill Gorcunov wrote:
On Wed, Sep 28, 2016 at 07:06:26AM -0400, Jamal Hadi Salim wrote:quoted
quoted
This structure is uapi, so anyone has complete rights to reference @pad in the userspace programs. Sure it would be more clear to remove the @pad completely, but if we choose so I think it's better to do on top instead and then if someone complain we can easily revert the single trivial commit instead of this big patch.I am conflicted. A field labelled "pad" does not appear to be valid as "UAPI". It is a cosmetic indicator. If you did sizeof() with or without it being present the value doesnt change.I think you miss the point what I'm trying to say: currently end-user may have reference to this member (for any reason) and his program will compile and run. If we change the name the compilation procedure fails and this will break API. Yes, referrning @pad is bad idea for userspace code, and yes (!) better to simply rename it but lets do that later, on top, so that if we break something in userspace we could easily revert the oneline change.
Note that some programs could fail to compile with the added union
anyway.
Some gcc versions are unable to compile a static init with an union
struct inet_diag_req_v2 foo = { .pad = 0, sdiag_family = AF_INET, };
When I cooked my recent fq commit I simply removed a pad and replaced
it :
git show fefa569a9d4bc4 -- include