On 4/15/22 13:05, Michael Straube wrote:
On 4/15/22 17:44, Larry Finger wrote:
On 4/15/22 07:10, Michael Straube wrote:
The comments in struct rt_firmware_hdr are not needed.
Remove them.
Signed-off-by: Michael Straube <straube.linux@xxxxxxxxx>
---
v3:
- no changes
v2:
- no changes
drivers/staging/r8188eu/core/rtw_fw.c | 37 ++++++++-------------------
1 file changed, 11 insertions(+), 26 deletions(-)
diff --git a/drivers/staging/r8188eu/core/rtw_fw.c
b/drivers/staging/r8188eu/core/rtw_fw.c
index 7cd08268f3b9..323e0c634c4e 100644
--- a/drivers/staging/r8188eu/core/rtw_fw.c
+++ b/drivers/staging/r8188eu/core/rtw_fw.c
@@ -14,37 +14,22 @@
(le16_to_cpu(_fwhdr->Signature) & 0xFFF0) == 0x2300 || \
(le16_to_cpu(_fwhdr->Signature) & 0xFFF0) == 0x88E0)
-/* This structure must be careful with byte-ordering */
-
struct rt_firmware_hdr {
- /* 8-byte alinment required */
- /* LONG WORD 0 ---- */
- __le16 Signature; /* 92C0: test chip; 92C,
- * 88C0: test chip; 88C1: MP A-cut;
- * 92C1: MP A-cut */
- u8 Category; /* AP/NIC and USB/PCI */
- u8 Function; /* Reserved for different FW function
- * indcation, for further use when
- * driver needs to download different
- * FW for different conditions */
- __le16 Version; /* FW Version */
- u8 Subversion; /* FW Subversion, default 0x00 */
+ __le16 Signature;
+ u8 Category;
+ u8 Function;
+ __le16 Version;
+ u8 Subversion;
u8 Rsvd1;
-
- /* LONG WORD 1 ---- */
- u8 Month; /* Release time Month field */
- u8 Date; /* Release time Date field */
- u8 Hour; /* Release time Hour field */
- u8 Minute; /* Release time Minute field */
- __le16 RamCodeSize; /* The size of RAM code */
+ u8 Month;
+ u8 Date;
+ u8 Hour;
+ u8 Minute;
+ __le16 RamCodeSize;
u8 Foundry;
u8 Rsvd2;
-
- /* LONG WORD 2 ---- */
- __le32 SvnIdx; /* The SVN entry index */
+ __le32 SvnIdx;
__le32 Rsvd3;
-
- /* LONG WORD 3 ---- */
__le32 Rsvd4;
__le32 Rsvd5;
};
The comments "LONG WORD" are useless, but the comments describing the fields
are still useful. I do not like this patch.
Hi Larry,
You are right the in-line comments are useful. I'll send v4 keeping
them.
You only mentioned the in-line comments, just to get it right this
time:
What about the "8-byte alignment required" comment? You said in another
thread that the __le16 references need alignment 4. Should I make the
struct __aligned(8) or at least __aligned(4)?
Routines cpu_to_le16() and le16_to_cpu() require two-byte alignment. Similarly,
the 32-bit versions need 4-byte alignment. The layout of the struct will ensure
that as long as the entire struct has 4-byte alignment.
This struct is only used in rtl8188e_firmware_download() where it is created on
the stack. That means it will be 8-byte aligned for x86_64 and 4-byle aligned on
32-bit systems. I'm sure that Dan or GregKH will correct me if I got this wrong,
but that should be sufficient. Making it __aligned(8) could waste 4 bytes on the
stack for 32-bit systems. Using __aligned(4) would have no effect on any system.
I say remove the comment.
And about "/* This structure must be careful with byte-ordering */" ?
I think it's obvious because of the __le16 and __le32 fields and can be
removed. Do you agree on that?
Using the __leNN implies little-endian, thus that comment is useless. Yes, I agree.
Larry