* [PATCH net] net: dsa: sja1105: fix port mirroring for P/Q/R/S
@ 2020-05-27 16:40 Vladimir Oltean
2020-05-29 2:56 ` kbuild test robot
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Vladimir Oltean @ 2020-05-27 16:40 UTC (permalink / raw)
To: davem; +Cc: andrew, f.fainelli, vivien.didelot, netdev
From: Vladimir Oltean <vladimir.oltean@nxp.com>
The dynamic configuration interface for the General Params and the L2
Lookup Params tables was copy-pasted between E/T devices and P/Q/R/S
devices. Nonetheless, these interfaces are bitwise different (and not to
mention, located at different SPI addresses).
The driver is using dynamic reconfiguration of the General Parameters
table for the port mirroring feature, which was therefore broken on
P/Q/R/S.
Note that I don't think this patch can be backported very far to stable
trees (since it conflicts with some other development done since the
introduction of the driver).
Fixes: 8aa9ebccae87 ("net: dsa: Introduce driver for NXP SJA1105 5-port L2 switch")
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
---
drivers/net/dsa/sja1105/sja1105.h | 4 ++
.../net/dsa/sja1105/sja1105_dynamic_config.c | 50 +++++++++++++++----
.../net/dsa/sja1105/sja1105_static_config.c | 10 ++--
3 files changed, 48 insertions(+), 16 deletions(-)
diff --git a/drivers/net/dsa/sja1105/sja1105.h b/drivers/net/dsa/sja1105/sja1105.h
index 198d2a7d7f95..303b21470d77 100644
--- a/drivers/net/dsa/sja1105/sja1105.h
+++ b/drivers/net/dsa/sja1105/sja1105.h
@@ -322,6 +322,10 @@ int sja1105pqrs_fdb_del(struct dsa_switch *ds, int port,
const unsigned char *addr, u16 vid);
/* Common implementations for the static and dynamic configs */
+size_t sja1105pqrs_general_params_entry_packing(void *buf, void *entry_ptr,
+ enum packing_op op);
+size_t sja1105pqrs_l2_lookup_params_entry_packing(void *buf, void *entry_ptr,
+ enum packing_op op);
size_t sja1105_l2_forwarding_entry_packing(void *buf, void *entry_ptr,
enum packing_op op);
size_t sja1105pqrs_l2_lookup_entry_packing(void *buf, void *entry_ptr,
diff --git a/drivers/net/dsa/sja1105/sja1105_dynamic_config.c b/drivers/net/dsa/sja1105/sja1105_dynamic_config.c
index 2a8fbd7fdedc..f98c98a063e7 100644
--- a/drivers/net/dsa/sja1105/sja1105_dynamic_config.c
+++ b/drivers/net/dsa/sja1105/sja1105_dynamic_config.c
@@ -127,9 +127,15 @@
#define SJA1105ET_SIZE_L2_LOOKUP_PARAMS_DYN_CMD \
SJA1105_SIZE_DYN_CMD
+#define SJA1105PQRS_SIZE_L2_LOOKUP_PARAMS_DYN_CMD \
+ (SJA1105_SIZE_DYN_CMD + SJA1105PQRS_SIZE_L2_LOOKUP_PARAMS_ENTRY)
+
#define SJA1105ET_SIZE_GENERAL_PARAMS_DYN_CMD \
SJA1105_SIZE_DYN_CMD
+#define SJA1105PQRS_SIZE_GENERAL_PARAMS_DYN_CMD \
+ (SJA1105_SIZE_DYN_CMD + SJA1105PQRS_SIZE_GENERAL_PARAMS_ENTRY)
+
#define SJA1105PQRS_SIZE_AVB_PARAMS_DYN_CMD \
(SJA1105_SIZE_DYN_CMD + SJA1105PQRS_SIZE_AVB_PARAMS_ENTRY)
@@ -137,7 +143,7 @@
(SJA1105_SIZE_DYN_CMD + SJA1105_SIZE_RETAGGING_ENTRY)
#define SJA1105_MAX_DYN_CMD_SIZE \
- SJA1105PQRS_SIZE_MAC_CONFIG_DYN_CMD
+ SJA1105PQRS_SIZE_GENERAL_PARAMS_DYN_CMD
struct sja1105_dyn_cmd {
bool search;
@@ -494,6 +500,18 @@ sja1105et_l2_lookup_params_entry_packing(void *buf, void *entry_ptr,
return 0;
}
+static void
+sja1105pqrs_l2_lookup_params_cmd_packing(void *buf,
+ struct sja1105_dyn_cmd *cmd,
+ enum packing_op op)
+{
+ u8 *p = buf + SJA1105PQRS_SIZE_L2_LOOKUP_PARAMS_ENTRY;
+ const int size = SJA1105_SIZE_DYN_CMD;
+
+ sja1105_packing(p, &cmd->valid, 31, 31, size, op);
+ sja1105_packing(p, &cmd->rdwrset, 30, 30, size, op);
+}
+
static void
sja1105et_general_params_cmd_packing(void *buf, struct sja1105_dyn_cmd *cmd,
enum packing_op op)
@@ -516,6 +534,18 @@ sja1105et_general_params_entry_packing(void *buf, void *entry_ptr,
return 0;
}
+static void
+sja1105pqrs_general_params_cmd_packing(void *buf, struct sja1105_dyn_cmd *cmd,
+ enum packing_op op)
+{
+ u8 *p = buf + SJA1105PQRS_SIZE_GENERAL_PARAMS_ENTRY;
+ const int size = SJA1105_SIZE_DYN_CMD;
+
+ sja1105_packing(p, &cmd->valid, 31, 31, size, op);
+ sja1105_packing(p, &cmd->errors, 30, 30, size, op);
+ sja1105_packing(p, &cmd->rdwrset, 28, 28, size, op);
+}
+
static void
sja1105pqrs_avb_params_cmd_packing(void *buf, struct sja1105_dyn_cmd *cmd,
enum packing_op op)
@@ -693,12 +723,12 @@ struct sja1105_dynamic_table_ops sja1105pqrs_dyn_ops[BLK_IDX_MAX_DYN] = {
[BLK_IDX_SCHEDULE_ENTRY_POINTS_PARAMS] = {0},
[BLK_IDX_VL_FORWARDING_PARAMS] = {0},
[BLK_IDX_L2_LOOKUP_PARAMS] = {
- .entry_packing = sja1105et_l2_lookup_params_entry_packing,
- .cmd_packing = sja1105et_l2_lookup_params_cmd_packing,
+ .entry_packing = sja1105pqrs_l2_lookup_params_entry_packing,
+ .cmd_packing = sja1105pqrs_l2_lookup_params_cmd_packing,
.max_entry_count = SJA1105_MAX_L2_LOOKUP_PARAMS_COUNT,
.access = (OP_READ | OP_WRITE),
- .packed_size = SJA1105ET_SIZE_L2_LOOKUP_PARAMS_DYN_CMD,
- .addr = 0x38,
+ .packed_size = SJA1105PQRS_SIZE_L2_LOOKUP_PARAMS_DYN_CMD,
+ .addr = 0x54,
},
[BLK_IDX_L2_FORWARDING_PARAMS] = {0},
[BLK_IDX_AVB_PARAMS] = {
@@ -710,12 +740,12 @@ struct sja1105_dynamic_table_ops sja1105pqrs_dyn_ops[BLK_IDX_MAX_DYN] = {
.addr = 0x8003,
},
[BLK_IDX_GENERAL_PARAMS] = {
- .entry_packing = sja1105et_general_params_entry_packing,
- .cmd_packing = sja1105et_general_params_cmd_packing,
+ .entry_packing = sja1105pqrs_general_params_entry_packing,
+ .cmd_packing = sja1105pqrs_general_params_cmd_packing,
.max_entry_count = SJA1105_MAX_GENERAL_PARAMS_COUNT,
- .access = OP_WRITE,
- .packed_size = SJA1105ET_SIZE_GENERAL_PARAMS_DYN_CMD,
- .addr = 0x34,
+ .access = (OP_READ | OP_WRITE),
+ .packed_size = SJA1105PQRS_SIZE_GENERAL_PARAMS_DYN_CMD,
+ .addr = 0x3B,
},
[BLK_IDX_RETAGGING] = {
.entry_packing = sja1105_retagging_entry_packing,
diff --git a/drivers/net/dsa/sja1105/sja1105_static_config.c b/drivers/net/dsa/sja1105/sja1105_static_config.c
index 780aca034cdc..ff3fe471efc2 100644
--- a/drivers/net/dsa/sja1105/sja1105_static_config.c
+++ b/drivers/net/dsa/sja1105/sja1105_static_config.c
@@ -146,9 +146,8 @@ static size_t sja1105et_general_params_entry_packing(void *buf, void *entry_ptr,
/* TPID and TPID2 are intentionally reversed so that semantic
* compatibility with E/T is kept.
*/
-static size_t
-sja1105pqrs_general_params_entry_packing(void *buf, void *entry_ptr,
- enum packing_op op)
+size_t sja1105pqrs_general_params_entry_packing(void *buf, void *entry_ptr,
+ enum packing_op op)
{
const size_t size = SJA1105PQRS_SIZE_GENERAL_PARAMS_ENTRY;
struct sja1105_general_params_entry *entry = entry_ptr;
@@ -228,9 +227,8 @@ sja1105et_l2_lookup_params_entry_packing(void *buf, void *entry_ptr,
return size;
}
-static size_t
-sja1105pqrs_l2_lookup_params_entry_packing(void *buf, void *entry_ptr,
- enum packing_op op)
+size_t sja1105pqrs_l2_lookup_params_entry_packing(void *buf, void *entry_ptr,
+ enum packing_op op)
{
const size_t size = SJA1105PQRS_SIZE_L2_LOOKUP_PARAMS_ENTRY;
struct sja1105_l2_lookup_params_entry *entry = entry_ptr;
--
2.25.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH net] net: dsa: sja1105: fix port mirroring for P/Q/R/S
2020-05-27 16:40 [PATCH net] net: dsa: sja1105: fix port mirroring for P/Q/R/S Vladimir Oltean
@ 2020-05-29 2:56 ` kbuild test robot
2020-05-29 19:33 ` kbuild test robot
2020-05-29 23:45 ` David Miller
2 siblings, 0 replies; 5+ messages in thread
From: kbuild test robot @ 2020-05-29 2:56 UTC (permalink / raw)
To: Vladimir Oltean, davem
Cc: kbuild-all, andrew, f.fainelli, vivien.didelot, netdev
[-- Attachment #1: Type: text/plain, Size: 11820 bytes --]
Hi Vladimir,
I love your patch! Perhaps something to improve:
[auto build test WARNING on net-next/master]
[also build test WARNING on sparc-next/master linus/master v5.7-rc7 next-20200528]
[cannot apply to net/master]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Vladimir-Oltean/net-dsa-sja1105-fix-port-mirroring-for-P-Q-R-S/20200528-004418
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git dc0f3ed1973f101508957b59e529e03da1349e09
config: m68k-allmodconfig (attached as .config)
compiler: m68k-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@intel.com>
All warnings (new ones prefixed by >>, old ones prefixed by <<):
drivers/net/dsa/sja1105/sja1105_static_config.c:105:8: warning: no previous prototype for 'sja1105pqrs_avb_params_entry_packing' [-Wmissing-prototypes]
105 | size_t sja1105pqrs_avb_params_entry_packing(void *buf, void *entry_ptr,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/sja1105/sja1105_static_config.c:149:8: warning: no previous prototype for 'sja1105pqrs_general_params_entry_packing' [-Wmissing-prototypes]
149 | size_t sja1105pqrs_general_params_entry_packing(void *buf, void *entry_ptr,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/sja1105/sja1105_static_config.c:198:8: warning: no previous prototype for 'sja1105_l2_forwarding_entry_packing' [-Wmissing-prototypes]
198 | size_t sja1105_l2_forwarding_entry_packing(void *buf, void *entry_ptr,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/net/dsa/sja1105/sja1105_static_config.c:230:8: warning: no previous prototype for 'sja1105pqrs_l2_lookup_params_entry_packing' [-Wmissing-prototypes]
230 | size_t sja1105pqrs_l2_lookup_params_entry_packing(void *buf, void *entry_ptr,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/sja1105/sja1105_static_config.c:252:8: warning: no previous prototype for 'sja1105et_l2_lookup_entry_packing' [-Wmissing-prototypes]
252 | size_t sja1105et_l2_lookup_entry_packing(void *buf, void *entry_ptr,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/sja1105/sja1105_static_config.c:266:8: warning: no previous prototype for 'sja1105pqrs_l2_lookup_entry_packing' [-Wmissing-prototypes]
266 | size_t sja1105pqrs_l2_lookup_entry_packing(void *buf, void *entry_ptr,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/sja1105/sja1105_static_config.c:342:8: warning: no previous prototype for 'sja1105pqrs_mac_config_entry_packing' [-Wmissing-prototypes]
342 | size_t sja1105pqrs_mac_config_entry_packing(void *buf, void *entry_ptr,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/sja1105/sja1105_static_config.c:461:8: warning: no previous prototype for 'sja1105_vl_lookup_entry_packing' [-Wmissing-prototypes]
461 | size_t sja1105_vl_lookup_entry_packing(void *buf, void *entry_ptr,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/sja1105/sja1105_static_config.c:511:8: warning: no previous prototype for 'sja1105_vlan_lookup_entry_packing' [-Wmissing-prototypes]
511 | size_t sja1105_vlan_lookup_entry_packing(void *buf, void *entry_ptr,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/sja1105/sja1105_static_config.c:542:8: warning: no previous prototype for 'sja1105_retagging_entry_packing' [-Wmissing-prototypes]
542 | size_t sja1105_retagging_entry_packing(void *buf, void *entry_ptr,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/sja1105pqrs_l2_lookup_params_entry_packing +230 drivers/net/dsa/sja1105/sja1105_static_config.c
104
> 105 size_t sja1105pqrs_avb_params_entry_packing(void *buf, void *entry_ptr,
106 enum packing_op op)
107 {
108 const size_t size = SJA1105PQRS_SIZE_AVB_PARAMS_ENTRY;
109 struct sja1105_avb_params_entry *entry = entry_ptr;
110
111 sja1105_packing(buf, &entry->cas_master, 126, 126, size, op);
112 sja1105_packing(buf, &entry->destmeta, 125, 78, size, op);
113 sja1105_packing(buf, &entry->srcmeta, 77, 30, size, op);
114 return size;
115 }
116
117 static size_t sja1105et_general_params_entry_packing(void *buf, void *entry_ptr,
118 enum packing_op op)
119 {
120 const size_t size = SJA1105ET_SIZE_GENERAL_PARAMS_ENTRY;
121 struct sja1105_general_params_entry *entry = entry_ptr;
122
123 sja1105_packing(buf, &entry->vllupformat, 319, 319, size, op);
124 sja1105_packing(buf, &entry->mirr_ptacu, 318, 318, size, op);
125 sja1105_packing(buf, &entry->switchid, 317, 315, size, op);
126 sja1105_packing(buf, &entry->hostprio, 314, 312, size, op);
127 sja1105_packing(buf, &entry->mac_fltres1, 311, 264, size, op);
128 sja1105_packing(buf, &entry->mac_fltres0, 263, 216, size, op);
129 sja1105_packing(buf, &entry->mac_flt1, 215, 168, size, op);
130 sja1105_packing(buf, &entry->mac_flt0, 167, 120, size, op);
131 sja1105_packing(buf, &entry->incl_srcpt1, 119, 119, size, op);
132 sja1105_packing(buf, &entry->incl_srcpt0, 118, 118, size, op);
133 sja1105_packing(buf, &entry->send_meta1, 117, 117, size, op);
134 sja1105_packing(buf, &entry->send_meta0, 116, 116, size, op);
135 sja1105_packing(buf, &entry->casc_port, 115, 113, size, op);
136 sja1105_packing(buf, &entry->host_port, 112, 110, size, op);
137 sja1105_packing(buf, &entry->mirr_port, 109, 107, size, op);
138 sja1105_packing(buf, &entry->vlmarker, 106, 75, size, op);
139 sja1105_packing(buf, &entry->vlmask, 74, 43, size, op);
140 sja1105_packing(buf, &entry->tpid, 42, 27, size, op);
141 sja1105_packing(buf, &entry->ignore2stf, 26, 26, size, op);
142 sja1105_packing(buf, &entry->tpid2, 25, 10, size, op);
143 return size;
144 }
145
146 /* TPID and TPID2 are intentionally reversed so that semantic
147 * compatibility with E/T is kept.
148 */
149 size_t sja1105pqrs_general_params_entry_packing(void *buf, void *entry_ptr,
150 enum packing_op op)
151 {
152 const size_t size = SJA1105PQRS_SIZE_GENERAL_PARAMS_ENTRY;
153 struct sja1105_general_params_entry *entry = entry_ptr;
154
155 sja1105_packing(buf, &entry->vllupformat, 351, 351, size, op);
156 sja1105_packing(buf, &entry->mirr_ptacu, 350, 350, size, op);
157 sja1105_packing(buf, &entry->switchid, 349, 347, size, op);
158 sja1105_packing(buf, &entry->hostprio, 346, 344, size, op);
159 sja1105_packing(buf, &entry->mac_fltres1, 343, 296, size, op);
160 sja1105_packing(buf, &entry->mac_fltres0, 295, 248, size, op);
161 sja1105_packing(buf, &entry->mac_flt1, 247, 200, size, op);
162 sja1105_packing(buf, &entry->mac_flt0, 199, 152, size, op);
163 sja1105_packing(buf, &entry->incl_srcpt1, 151, 151, size, op);
164 sja1105_packing(buf, &entry->incl_srcpt0, 150, 150, size, op);
165 sja1105_packing(buf, &entry->send_meta1, 149, 149, size, op);
166 sja1105_packing(buf, &entry->send_meta0, 148, 148, size, op);
167 sja1105_packing(buf, &entry->casc_port, 147, 145, size, op);
168 sja1105_packing(buf, &entry->host_port, 144, 142, size, op);
169 sja1105_packing(buf, &entry->mirr_port, 141, 139, size, op);
170 sja1105_packing(buf, &entry->vlmarker, 138, 107, size, op);
171 sja1105_packing(buf, &entry->vlmask, 106, 75, size, op);
172 sja1105_packing(buf, &entry->tpid2, 74, 59, size, op);
173 sja1105_packing(buf, &entry->ignore2stf, 58, 58, size, op);
174 sja1105_packing(buf, &entry->tpid, 57, 42, size, op);
175 sja1105_packing(buf, &entry->queue_ts, 41, 41, size, op);
176 sja1105_packing(buf, &entry->egrmirrvid, 40, 29, size, op);
177 sja1105_packing(buf, &entry->egrmirrpcp, 28, 26, size, op);
178 sja1105_packing(buf, &entry->egrmirrdei, 25, 25, size, op);
179 sja1105_packing(buf, &entry->replay_port, 24, 22, size, op);
180 return size;
181 }
182
183 static size_t
184 sja1105_l2_forwarding_params_entry_packing(void *buf, void *entry_ptr,
185 enum packing_op op)
186 {
187 const size_t size = SJA1105_SIZE_L2_FORWARDING_PARAMS_ENTRY;
188 struct sja1105_l2_forwarding_params_entry *entry = entry_ptr;
189 int offset, i;
190
191 sja1105_packing(buf, &entry->max_dynp, 95, 93, size, op);
192 for (i = 0, offset = 13; i < 8; i++, offset += 10)
193 sja1105_packing(buf, &entry->part_spc[i],
194 offset + 9, offset + 0, size, op);
195 return size;
196 }
197
198 size_t sja1105_l2_forwarding_entry_packing(void *buf, void *entry_ptr,
199 enum packing_op op)
200 {
201 const size_t size = SJA1105_SIZE_L2_FORWARDING_ENTRY;
202 struct sja1105_l2_forwarding_entry *entry = entry_ptr;
203 int offset, i;
204
205 sja1105_packing(buf, &entry->bc_domain, 63, 59, size, op);
206 sja1105_packing(buf, &entry->reach_port, 58, 54, size, op);
207 sja1105_packing(buf, &entry->fl_domain, 53, 49, size, op);
208 for (i = 0, offset = 25; i < 8; i++, offset += 3)
209 sja1105_packing(buf, &entry->vlan_pmap[i],
210 offset + 2, offset + 0, size, op);
211 return size;
212 }
213
214 static size_t
215 sja1105et_l2_lookup_params_entry_packing(void *buf, void *entry_ptr,
216 enum packing_op op)
217 {
218 const size_t size = SJA1105ET_SIZE_L2_LOOKUP_PARAMS_ENTRY;
219 struct sja1105_l2_lookup_params_entry *entry = entry_ptr;
220
221 sja1105_packing(buf, &entry->maxage, 31, 17, size, op);
222 sja1105_packing(buf, &entry->dyn_tbsz, 16, 14, size, op);
223 sja1105_packing(buf, &entry->poly, 13, 6, size, op);
224 sja1105_packing(buf, &entry->shared_learn, 5, 5, size, op);
225 sja1105_packing(buf, &entry->no_enf_hostprt, 4, 4, size, op);
226 sja1105_packing(buf, &entry->no_mgmt_learn, 3, 3, size, op);
227 return size;
228 }
229
> 230 size_t sja1105pqrs_l2_lookup_params_entry_packing(void *buf, void *entry_ptr,
231 enum packing_op op)
232 {
233 const size_t size = SJA1105PQRS_SIZE_L2_LOOKUP_PARAMS_ENTRY;
234 struct sja1105_l2_lookup_params_entry *entry = entry_ptr;
235 int offset, i;
236
237 for (i = 0, offset = 58; i < 5; i++, offset += 11)
238 sja1105_packing(buf, &entry->maxaddrp[i],
239 offset + 10, offset + 0, size, op);
240 sja1105_packing(buf, &entry->maxage, 57, 43, size, op);
241 sja1105_packing(buf, &entry->start_dynspc, 42, 33, size, op);
242 sja1105_packing(buf, &entry->drpnolearn, 32, 28, size, op);
243 sja1105_packing(buf, &entry->shared_learn, 27, 27, size, op);
244 sja1105_packing(buf, &entry->no_enf_hostprt, 26, 26, size, op);
245 sja1105_packing(buf, &entry->no_mgmt_learn, 25, 25, size, op);
246 sja1105_packing(buf, &entry->use_static, 24, 24, size, op);
247 sja1105_packing(buf, &entry->owr_dyn, 23, 23, size, op);
248 sja1105_packing(buf, &entry->learn_once, 22, 22, size, op);
249 return size;
250 }
251
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 54014 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH net] net: dsa: sja1105: fix port mirroring for P/Q/R/S
2020-05-27 16:40 [PATCH net] net: dsa: sja1105: fix port mirroring for P/Q/R/S Vladimir Oltean
2020-05-29 2:56 ` kbuild test robot
@ 2020-05-29 19:33 ` kbuild test robot
2020-05-29 23:45 ` David Miller
2 siblings, 0 replies; 5+ messages in thread
From: kbuild test robot @ 2020-05-29 19:33 UTC (permalink / raw)
To: Vladimir Oltean, davem
Cc: kbuild-all, andrew, f.fainelli, vivien.didelot, netdev
[-- Attachment #1: Type: text/plain, Size: 6443 bytes --]
Hi Vladimir,
I love your patch! Perhaps something to improve:
[auto build test WARNING on net-next/master]
[also build test WARNING on sparc-next/master linus/master v5.7-rc7 next-20200529]
[cannot apply to net/master]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Vladimir-Oltean/net-dsa-sja1105-fix-port-mirroring-for-P-Q-R-S/20200528-004418
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git dc0f3ed1973f101508957b59e529e03da1349e09
config: parisc-allyesconfig (attached as .config)
compiler: hppa-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=parisc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@intel.com>
All warnings (new ones prefixed by >>, old ones prefixed by <<):
drivers/net/dsa/sja1105/sja1105_static_config.c:105:8: warning: no previous prototype for 'sja1105pqrs_avb_params_entry_packing' [-Wmissing-prototypes]
105 | size_t sja1105pqrs_avb_params_entry_packing(void *buf, void *entry_ptr,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/net/dsa/sja1105/sja1105_static_config.c:149:8: warning: no previous prototype for 'sja1105pqrs_general_params_entry_packing' [-Wmissing-prototypes]
149 | size_t sja1105pqrs_general_params_entry_packing(void *buf, void *entry_ptr,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/sja1105/sja1105_static_config.c:198:8: warning: no previous prototype for 'sja1105_l2_forwarding_entry_packing' [-Wmissing-prototypes]
198 | size_t sja1105_l2_forwarding_entry_packing(void *buf, void *entry_ptr,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/sja1105/sja1105_static_config.c:230:8: warning: no previous prototype for 'sja1105pqrs_l2_lookup_params_entry_packing' [-Wmissing-prototypes]
230 | size_t sja1105pqrs_l2_lookup_params_entry_packing(void *buf, void *entry_ptr,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/sja1105/sja1105_static_config.c:252:8: warning: no previous prototype for 'sja1105et_l2_lookup_entry_packing' [-Wmissing-prototypes]
252 | size_t sja1105et_l2_lookup_entry_packing(void *buf, void *entry_ptr,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/sja1105/sja1105_static_config.c:266:8: warning: no previous prototype for 'sja1105pqrs_l2_lookup_entry_packing' [-Wmissing-prototypes]
266 | size_t sja1105pqrs_l2_lookup_entry_packing(void *buf, void *entry_ptr,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/sja1105/sja1105_static_config.c:342:8: warning: no previous prototype for 'sja1105pqrs_mac_config_entry_packing' [-Wmissing-prototypes]
342 | size_t sja1105pqrs_mac_config_entry_packing(void *buf, void *entry_ptr,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/sja1105/sja1105_static_config.c:461:8: warning: no previous prototype for 'sja1105_vl_lookup_entry_packing' [-Wmissing-prototypes]
461 | size_t sja1105_vl_lookup_entry_packing(void *buf, void *entry_ptr,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/sja1105/sja1105_static_config.c:511:8: warning: no previous prototype for 'sja1105_vlan_lookup_entry_packing' [-Wmissing-prototypes]
511 | size_t sja1105_vlan_lookup_entry_packing(void *buf, void *entry_ptr,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/dsa/sja1105/sja1105_static_config.c:542:8: warning: no previous prototype for 'sja1105_retagging_entry_packing' [-Wmissing-prototypes]
542 | size_t sja1105_retagging_entry_packing(void *buf, void *entry_ptr,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/sja1105pqrs_general_params_entry_packing +149 drivers/net/dsa/sja1105/sja1105_static_config.c
145
146 /* TPID and TPID2 are intentionally reversed so that semantic
147 * compatibility with E/T is kept.
148 */
> 149 size_t sja1105pqrs_general_params_entry_packing(void *buf, void *entry_ptr,
150 enum packing_op op)
151 {
152 const size_t size = SJA1105PQRS_SIZE_GENERAL_PARAMS_ENTRY;
153 struct sja1105_general_params_entry *entry = entry_ptr;
154
155 sja1105_packing(buf, &entry->vllupformat, 351, 351, size, op);
156 sja1105_packing(buf, &entry->mirr_ptacu, 350, 350, size, op);
157 sja1105_packing(buf, &entry->switchid, 349, 347, size, op);
158 sja1105_packing(buf, &entry->hostprio, 346, 344, size, op);
159 sja1105_packing(buf, &entry->mac_fltres1, 343, 296, size, op);
160 sja1105_packing(buf, &entry->mac_fltres0, 295, 248, size, op);
161 sja1105_packing(buf, &entry->mac_flt1, 247, 200, size, op);
162 sja1105_packing(buf, &entry->mac_flt0, 199, 152, size, op);
163 sja1105_packing(buf, &entry->incl_srcpt1, 151, 151, size, op);
164 sja1105_packing(buf, &entry->incl_srcpt0, 150, 150, size, op);
165 sja1105_packing(buf, &entry->send_meta1, 149, 149, size, op);
166 sja1105_packing(buf, &entry->send_meta0, 148, 148, size, op);
167 sja1105_packing(buf, &entry->casc_port, 147, 145, size, op);
168 sja1105_packing(buf, &entry->host_port, 144, 142, size, op);
169 sja1105_packing(buf, &entry->mirr_port, 141, 139, size, op);
170 sja1105_packing(buf, &entry->vlmarker, 138, 107, size, op);
171 sja1105_packing(buf, &entry->vlmask, 106, 75, size, op);
172 sja1105_packing(buf, &entry->tpid2, 74, 59, size, op);
173 sja1105_packing(buf, &entry->ignore2stf, 58, 58, size, op);
174 sja1105_packing(buf, &entry->tpid, 57, 42, size, op);
175 sja1105_packing(buf, &entry->queue_ts, 41, 41, size, op);
176 sja1105_packing(buf, &entry->egrmirrvid, 40, 29, size, op);
177 sja1105_packing(buf, &entry->egrmirrpcp, 28, 26, size, op);
178 sja1105_packing(buf, &entry->egrmirrdei, 25, 25, size, op);
179 sja1105_packing(buf, &entry->replay_port, 24, 22, size, op);
180 return size;
181 }
182
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 61666 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH net] net: dsa: sja1105: fix port mirroring for P/Q/R/S
2020-05-27 16:40 [PATCH net] net: dsa: sja1105: fix port mirroring for P/Q/R/S Vladimir Oltean
2020-05-29 2:56 ` kbuild test robot
2020-05-29 19:33 ` kbuild test robot
@ 2020-05-29 23:45 ` David Miller
2020-05-30 10:33 ` Vladimir Oltean
2 siblings, 1 reply; 5+ messages in thread
From: David Miller @ 2020-05-29 23:45 UTC (permalink / raw)
To: olteanv; +Cc: andrew, f.fainelli, vivien.didelot, netdev
From: Vladimir Oltean <olteanv@gmail.com>
Date: Wed, 27 May 2020 19:40:06 +0300
> From: Vladimir Oltean <vladimir.oltean@nxp.com>
>
> The dynamic configuration interface for the General Params and the L2
> Lookup Params tables was copy-pasted between E/T devices and P/Q/R/S
> devices. Nonetheless, these interfaces are bitwise different (and not to
> mention, located at different SPI addresses).
>
> The driver is using dynamic reconfiguration of the General Parameters
> table for the port mirroring feature, which was therefore broken on
> P/Q/R/S.
>
> Note that I don't think this patch can be backported very far to stable
> trees (since it conflicts with some other development done since the
> introduction of the driver).
>
> Fixes: 8aa9ebccae87 ("net: dsa: Introduce driver for NXP SJA1105 5-port L2 switch")
> Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Please fix the build errors reported by the kbuild robot.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH net] net: dsa: sja1105: fix port mirroring for P/Q/R/S
2020-05-29 23:45 ` David Miller
@ 2020-05-30 10:33 ` Vladimir Oltean
0 siblings, 0 replies; 5+ messages in thread
From: Vladimir Oltean @ 2020-05-30 10:33 UTC (permalink / raw)
To: David Miller; +Cc: Andrew Lunn, Florian Fainelli, Vivien Didelot, netdev
On Sat, 30 May 2020 at 02:45, David Miller <davem@davemloft.net> wrote:
>
> From: Vladimir Oltean <olteanv@gmail.com>
> Date: Wed, 27 May 2020 19:40:06 +0300
>
> > From: Vladimir Oltean <vladimir.oltean@nxp.com>
> >
> > The dynamic configuration interface for the General Params and the L2
> > Lookup Params tables was copy-pasted between E/T devices and P/Q/R/S
> > devices. Nonetheless, these interfaces are bitwise different (and not to
> > mention, located at different SPI addresses).
> >
> > The driver is using dynamic reconfiguration of the General Parameters
> > table for the port mirroring feature, which was therefore broken on
> > P/Q/R/S.
> >
> > Note that I don't think this patch can be backported very far to stable
> > trees (since it conflicts with some other development done since the
> > introduction of the driver).
> >
> > Fixes: 8aa9ebccae87 ("net: dsa: Introduce driver for NXP SJA1105 5-port L2 switch")
> > Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
>
> Please fix the build errors reported by the kbuild robot.
So the kbuild robot said that it couldn't apply the patch on net, so
it tried on net-next and hit some further W=1 warnings.
So I've fixed the warnings and targeted the patch against net-next:
https://patchwork.ozlabs.org/project/netdev/cover/20200530102953.692780-1-olteanv@gmail.com/
(I don't think anybody should care enough that they should deal with
the resulting conflicts from targeting against net).
Thanks,
-Vladimir
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2020-05-30 10:33 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-05-27 16:40 [PATCH net] net: dsa: sja1105: fix port mirroring for P/Q/R/S Vladimir Oltean
2020-05-29 2:56 ` kbuild test robot
2020-05-29 19:33 ` kbuild test robot
2020-05-29 23:45 ` David Miller
2020-05-30 10:33 ` Vladimir Oltean
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).