summaryrefslogtreecommitdiffstats
path: root/recipes-extended/ipxe/files/ipxe-intel-Avoid-spurious-compiler-warning-on-GCC-10.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-extended/ipxe/files/ipxe-intel-Avoid-spurious-compiler-warning-on-GCC-10.patch')
-rw-r--r--recipes-extended/ipxe/files/ipxe-intel-Avoid-spurious-compiler-warning-on-GCC-10.patch91
1 files changed, 0 insertions, 91 deletions
diff --git a/recipes-extended/ipxe/files/ipxe-intel-Avoid-spurious-compiler-warning-on-GCC-10.patch b/recipes-extended/ipxe/files/ipxe-intel-Avoid-spurious-compiler-warning-on-GCC-10.patch
deleted file mode 100644
index c76fe1ce..00000000
--- a/recipes-extended/ipxe/files/ipxe-intel-Avoid-spurious-compiler-warning-on-GCC-10.patch
+++ /dev/null
@@ -1,91 +0,0 @@
1From 28cf9806d1632d378485005babec295da0c77fcf Mon Sep 17 00:00:00 2001
2From: Michael Brown <mcb30@ipxe.org>
3Date: Sat, 27 Jun 2020 20:21:11 +0100
4Subject: [PATCH] [intel] Avoid spurious compiler warning on GCC 10
5
6GCC 10 produces a spurious warning about an out-of-bounds array access
7for the unsized raw dword array in union intelvf_msg.
8
9Avoid the warning by embedding the zero-length array within a struct.
10
11Upstream-Status: Inappropriate [embedded specific]
12
13Signed-off-by: Michael Brown <mcb30@ipxe.org>
14---
15 src/drivers/net/intelvf.c | 18 ++++++++++--------
16 src/drivers/net/intelvf.h | 8 +++++++-
17 2 files changed, 17 insertions(+), 9 deletions(-)
18
19diff --git a/src/drivers/net/intelvf.c b/src/drivers/net/intelvf.c
20index ac6fea74..0d48b417 100644
21--- a/drivers/net/intelvf.c
22+++ b/drivers/net/intelvf.c
23@@ -52,14 +52,15 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
24 */
25 static void intelvf_mbox_write ( struct intel_nic *intel,
26 const union intelvf_msg *msg ) {
27+ const struct intelvf_msg_raw *raw = &msg->raw;
28 unsigned int i;
29
30 /* Write message */
31 DBGC2 ( intel, "INTEL %p sending message", intel );
32- for ( i = 0 ; i < ( sizeof ( *msg ) / sizeof ( msg->dword[0] ) ) ; i++){
33- DBGC2 ( intel, "%c%08x", ( i ? ':' : ' ' ), msg->dword[i] );
34- writel ( msg->dword[i], ( intel->regs + intel->mbox.mem +
35- ( i * sizeof ( msg->dword[0] ) ) ) );
36+ for ( i = 0 ; i < ( sizeof ( *msg ) / sizeof ( raw->dword[0] ) ) ; i++){
37+ DBGC2 ( intel, "%c%08x", ( i ? ':' : ' ' ), raw->dword[i] );
38+ writel ( raw->dword[i], ( intel->regs + intel->mbox.mem +
39+ ( i * sizeof ( raw->dword[0] ) ) ) );
40 }
41 DBGC2 ( intel, "\n" );
42 }
43@@ -72,14 +73,15 @@ static void intelvf_mbox_write ( struct intel_nic *intel,
44 */
45 static void intelvf_mbox_read ( struct intel_nic *intel,
46 union intelvf_msg *msg ) {
47+ struct intelvf_msg_raw *raw = &msg->raw;
48 unsigned int i;
49
50 /* Read message */
51 DBGC2 ( intel, "INTEL %p received message", intel );
52- for ( i = 0 ; i < ( sizeof ( *msg ) / sizeof ( msg->dword[0] ) ) ; i++){
53- msg->dword[i] = readl ( intel->regs + intel->mbox.mem +
54- ( i * sizeof ( msg->dword[0] ) ) );
55- DBGC2 ( intel, "%c%08x", ( i ? ':' : ' ' ), msg->dword[i] );
56+ for ( i = 0 ; i < ( sizeof ( *msg ) / sizeof ( raw->dword[0] ) ) ; i++){
57+ raw->dword[i] = readl ( intel->regs + intel->mbox.mem +
58+ ( i * sizeof ( raw->dword[0] ) ) );
59+ DBGC2 ( intel, "%c%08x", ( i ? ':' : ' ' ), raw->dword[i] );
60 }
61 DBGC2 ( intel, "\n" );
62 }
63diff --git a/src/drivers/net/intelvf.h b/src/drivers/net/intelvf.h
64index ab404698..ffb18e04 100644
65--- a/drivers/net/intelvf.h
66+++ b/drivers/net/intelvf.h
67@@ -119,6 +119,12 @@ struct intelvf_msg_queues {
68 uint32_t dflt;
69 } __attribute__ (( packed ));
70
71+/** Raw mailbox message */
72+struct intelvf_msg_raw {
73+ /** Raw dwords */
74+ uint32_t dword[0];
75+} __attribute__ (( packed ));
76+
77 /** Mailbox message */
78 union intelvf_msg {
79 /** Message header */
80@@ -132,7 +138,7 @@ union intelvf_msg {
81 /** Queue configuration message */
82 struct intelvf_msg_queues queues;
83 /** Raw dwords */
84- uint32_t dword[0];
85+ struct intelvf_msg_raw raw;
86 };
87
88 /** Maximum time to wait for mailbox message
89--
902.17.1
91