@@ -78,7 +78,7 @@ static struct net_device *qeth_l2_netdev_by_devno(unsigned char *read_dev_no)
78
78
return ndev ;
79
79
}
80
80
81
- static int qeth_setdel_makerc (struct qeth_card * card , int retcode )
81
+ static int qeth_setdelmac_makerc (struct qeth_card * card , int retcode )
82
82
{
83
83
int rc ;
84
84
@@ -128,8 +128,8 @@ static int qeth_l2_send_setdelmac(struct qeth_card *card, __u8 *mac,
128
128
cmd = (struct qeth_ipa_cmd * )(iob -> data + IPA_PDU_HEADER_SIZE );
129
129
cmd -> data .setdelmac .mac_length = OSA_ADDR_LEN ;
130
130
memcpy (& cmd -> data .setdelmac .mac , mac , OSA_ADDR_LEN );
131
- return qeth_setdel_makerc (card , qeth_send_ipa_cmd (card , iob ,
132
- NULL , NULL ));
131
+ return qeth_setdelmac_makerc (card , qeth_send_ipa_cmd (card , iob ,
132
+ NULL , NULL ));
133
133
}
134
134
135
135
static int qeth_l2_send_setmac (struct qeth_card * card , __u8 * mac )
@@ -289,25 +289,48 @@ static void qeth_l2_fill_header(struct qeth_hdr *hdr, struct sk_buff *skb,
289
289
}
290
290
}
291
291
292
+ static int qeth_setdelvlan_makerc (struct qeth_card * card , int retcode )
293
+ {
294
+ if (retcode )
295
+ QETH_CARD_TEXT_ (card , 2 , "err%04x" , retcode );
296
+
297
+ switch (retcode ) {
298
+ case IPA_RC_SUCCESS :
299
+ return 0 ;
300
+ case IPA_RC_L2_INVALID_VLAN_ID :
301
+ return - EINVAL ;
302
+ case IPA_RC_L2_DUP_VLAN_ID :
303
+ return - EEXIST ;
304
+ case IPA_RC_L2_VLAN_ID_NOT_FOUND :
305
+ return - ENOENT ;
306
+ case IPA_RC_L2_VLAN_ID_NOT_ALLOWED :
307
+ return - EPERM ;
308
+ case - ENOMEM :
309
+ return - ENOMEM ;
310
+ default :
311
+ return - EIO ;
312
+ }
313
+ }
314
+
292
315
static int qeth_l2_send_setdelvlan_cb (struct qeth_card * card ,
293
- struct qeth_reply * reply , unsigned long data )
316
+ struct qeth_reply * reply ,
317
+ unsigned long data )
294
318
{
295
- struct qeth_ipa_cmd * cmd ;
319
+ struct qeth_ipa_cmd * cmd = ( struct qeth_ipa_cmd * ) data ;
296
320
297
321
QETH_CARD_TEXT (card , 2 , "L2sdvcb" );
298
- cmd = (struct qeth_ipa_cmd * ) data ;
299
322
if (cmd -> hdr .return_code ) {
300
- QETH_DBF_MESSAGE (2 , "Error in processing VLAN %i on %s: 0x%x. "
301
- "Continuing\n" , cmd -> data .setdelvlan .vlan_id ,
302
- QETH_CARD_IFNAME (card ), cmd -> hdr .return_code );
323
+ QETH_DBF_MESSAGE (2 , "Error in processing VLAN %i on %s: 0x%x.\n" ,
324
+ cmd -> data .setdelvlan .vlan_id ,
325
+ QETH_CARD_IFNAME (card ), cmd -> hdr .return_code );
303
326
QETH_CARD_TEXT_ (card , 2 , "L2VL%4x" , cmd -> hdr .command );
304
327
QETH_CARD_TEXT_ (card , 2 , "err%d" , cmd -> hdr .return_code );
305
328
}
306
329
return 0 ;
307
330
}
308
331
309
332
static int qeth_l2_send_setdelvlan (struct qeth_card * card , __u16 i ,
310
- enum qeth_ipa_cmds ipacmd )
333
+ enum qeth_ipa_cmds ipacmd )
311
334
{
312
335
struct qeth_ipa_cmd * cmd ;
313
336
struct qeth_cmd_buffer * iob ;
@@ -318,8 +341,8 @@ static int qeth_l2_send_setdelvlan(struct qeth_card *card, __u16 i,
318
341
return - ENOMEM ;
319
342
cmd = (struct qeth_ipa_cmd * )(iob -> data + IPA_PDU_HEADER_SIZE );
320
343
cmd -> data .setdelvlan .vlan_id = i ;
321
- return qeth_send_ipa_cmd (card , iob ,
322
- qeth_l2_send_setdelvlan_cb , NULL );
344
+ return qeth_setdelvlan_makerc ( card , qeth_send_ipa_cmd (card , iob ,
345
+ qeth_l2_send_setdelvlan_cb , NULL ) );
323
346
}
324
347
325
348
static void qeth_l2_process_vlans (struct qeth_card * card )
0 commit comments