* [PATCH net-next v2 0/4] ibmvnic: Fix VLAN and other device errata @ 2018-03-12 16:51 Thomas Falcon 2018-03-12 16:51 ` [PATCH net-next v2 1/4] ibmvnic: Account for VLAN tag in L2 Header descriptor Thomas Falcon ` (4 more replies) 0 siblings, 5 replies; 10+ messages in thread From: Thomas Falcon @ 2018-03-12 16:51 UTC (permalink / raw) To: netdev; +Cc: davem, jallen, nfont, Thomas Falcon This patch series contains fixes for VLAN and other backing hardware errata. The VLAN fixes are mostly to account for the additional four bytes VLAN header in TX descriptors and buffers, when applicable. The other fixes for device errata are to pad small packets to avoid a possible connection error that can occur when some devices attempt to transmit small packets. The other fixes are GSO related. Some devices cannot handle a smaller MSS or a packet with a single segment, so disable GSO in those cases. v2: Fix style mistake (unneeded brackets) in patch 3/4 Thomas Falcon (4): ibmvnic: Account for VLAN tag in L2 Header descriptor ibmvnic: Account for VLAN header length in TX buffers ibmvnic: Pad small packets to minimum MTU size ibmvnic: Handle TSO backing device errata drivers/net/ethernet/ibm/ibmvnic.c | 50 +++++++++++++++++++++++++++++++++++--- 1 file changed, 46 insertions(+), 4 deletions(-) -- 2.12.3 ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH net-next v2 1/4] ibmvnic: Account for VLAN tag in L2 Header descriptor 2018-03-12 16:51 [PATCH net-next v2 0/4] ibmvnic: Fix VLAN and other device errata Thomas Falcon @ 2018-03-12 16:51 ` Thomas Falcon 2018-03-12 16:51 ` [PATCH net-next v2 2/4] ibmvnic: Account for VLAN header length in TX buffers Thomas Falcon ` (3 subsequent siblings) 4 siblings, 0 replies; 10+ messages in thread From: Thomas Falcon @ 2018-03-12 16:51 UTC (permalink / raw) To: netdev; +Cc: davem, jallen, nfont, Thomas Falcon If a VLAN tag is present in the Ethernet header, account for that when providing the L2 header to firmware. Signed-off-by: Thomas Falcon <tlfalcon@linux.vnet.ibm.com> --- drivers/net/ethernet/ibm/ibmvnic.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c index 7be4b06..ea9f351 100644 --- a/drivers/net/ethernet/ibm/ibmvnic.c +++ b/drivers/net/ethernet/ibm/ibmvnic.c @@ -1221,7 +1221,10 @@ static int build_hdr_data(u8 hdr_field, struct sk_buff *skb, int len = 0; u8 *hdr; - hdr_len[0] = sizeof(struct ethhdr); + if (skb_vlan_tagged(skb) && !skb_vlan_tag_present(skb)) + hdr_len[0] = sizeof(struct vlan_ethhdr); + else + hdr_len[0] = sizeof(struct ethhdr); if (skb->protocol == htons(ETH_P_IP)) { hdr_len[1] = ip_hdr(skb)->ihl * 4; -- 2.7.5 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH net-next v2 2/4] ibmvnic: Account for VLAN header length in TX buffers 2018-03-12 16:51 [PATCH net-next v2 0/4] ibmvnic: Fix VLAN and other device errata Thomas Falcon 2018-03-12 16:51 ` [PATCH net-next v2 1/4] ibmvnic: Account for VLAN tag in L2 Header descriptor Thomas Falcon @ 2018-03-12 16:51 ` Thomas Falcon 2018-03-12 16:51 ` [PATCH net-next v2 3/4] ibmvnic: Pad small packets to minimum MTU size Thomas Falcon ` (2 subsequent siblings) 4 siblings, 0 replies; 10+ messages in thread From: Thomas Falcon @ 2018-03-12 16:51 UTC (permalink / raw) To: netdev; +Cc: davem, jallen, nfont, Thomas Falcon The extra four bytes of a VLAN packet was throwing off TX buffer entry values used by the driver. Account for those bytes when in buffer size and buffer entry calculations Signed-off-by: Thomas Falcon <tlfalcon@linux.vnet.ibm.com> --- drivers/net/ethernet/ibm/ibmvnic.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c index ea9f351..14f0081 100644 --- a/drivers/net/ethernet/ibm/ibmvnic.c +++ b/drivers/net/ethernet/ibm/ibmvnic.c @@ -659,7 +659,7 @@ static int init_tx_pools(struct net_device *netdev) if (alloc_long_term_buff(adapter, &tx_pool->long_term_buff, adapter->req_tx_entries_per_subcrq * - adapter->req_mtu)) { + (adapter->req_mtu + VLAN_HLEN))) { release_tx_pools(adapter); return -1; } @@ -1394,9 +1394,9 @@ static int ibmvnic_xmit(struct sk_buff *skb, struct net_device *netdev) if (tx_pool->tso_index == IBMVNIC_TSO_BUFS) tx_pool->tso_index = 0; } else { - offset = index * adapter->req_mtu; + offset = index * (adapter->req_mtu + VLAN_HLEN); dst = tx_pool->long_term_buff.buff + offset; - memset(dst, 0, adapter->req_mtu); + memset(dst, 0, adapter->req_mtu + VLAN_HLEN); data_dma_addr = tx_pool->long_term_buff.addr + offset; } -- 2.7.5 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH net-next v2 3/4] ibmvnic: Pad small packets to minimum MTU size 2018-03-12 16:51 [PATCH net-next v2 0/4] ibmvnic: Fix VLAN and other device errata Thomas Falcon 2018-03-12 16:51 ` [PATCH net-next v2 1/4] ibmvnic: Account for VLAN tag in L2 Header descriptor Thomas Falcon 2018-03-12 16:51 ` [PATCH net-next v2 2/4] ibmvnic: Account for VLAN header length in TX buffers Thomas Falcon @ 2018-03-12 16:51 ` Thomas Falcon 2018-03-13 7:15 ` kbuild test robot 2018-03-12 16:51 ` [PATCH net-next v2 4/4] ibmvnic: Handle TSO backing device errata Thomas Falcon 2018-03-12 16:56 ` [PATCH net-next v2 0/4] ibmvnic: Fix VLAN and other " David Miller 4 siblings, 1 reply; 10+ messages in thread From: Thomas Falcon @ 2018-03-12 16:51 UTC (permalink / raw) To: netdev; +Cc: davem, jallen, nfont, Thomas Falcon Some backing devices cannot handle small packets well, so pad any small packets to avoid that. It was recommended that the VNIC driver should not send packets smaller than the minimum MTU value provided by firmware, so pad small packets to be at least that long. Signed-off-by: Thomas Falcon <tlfalcon@linux.vnet.ibm.com> --- v2: Fix up unneeded brackets drivers/net/ethernet/ibm/ibmvnic.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c index 14f0081..7ed87fb 100644 --- a/drivers/net/ethernet/ibm/ibmvnic.c +++ b/drivers/net/ethernet/ibm/ibmvnic.c @@ -1340,6 +1340,19 @@ static void build_hdr_descs_arr(struct ibmvnic_tx_buff *txbuff, txbuff->indir_arr + 1); } +static int ibmvnic_xmit_workarounds(struct sk_buff *skb, + struct net_device *netdev) +{ + /* For some backing devices, mishandling of small packets + * can result in a loss of connection or TX stall. Device + * architects recommend that no packet should be smaller + * than the minimum MTU value provided to the driver, so + * pad any packets to that length + */ + if (skb->len < netdev->min_mtu) + return skb_put_padto(skb, netdev->min_mtu); +} + static int ibmvnic_xmit(struct sk_buff *skb, struct net_device *netdev) { struct ibmvnic_adapter *adapter = netdev_priv(netdev); @@ -1377,6 +1390,13 @@ static int ibmvnic_xmit(struct sk_buff *skb, struct net_device *netdev) goto out; } + if (ibmvnic_xmit_workarounds(skb, adapter)) { + tx_dropped++; + tx_send_failed++; + ret = NETDEV_TX_OK; + goto out; + } + tx_pool = &adapter->tx_pool[queue_num]; tx_scrq = adapter->tx_scrq[queue_num]; txq = netdev_get_tx_queue(netdev, skb_get_queue_mapping(skb)); -- 2.7.5 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH net-next v2 3/4] ibmvnic: Pad small packets to minimum MTU size 2018-03-12 16:51 ` [PATCH net-next v2 3/4] ibmvnic: Pad small packets to minimum MTU size Thomas Falcon @ 2018-03-13 7:15 ` kbuild test robot 0 siblings, 0 replies; 10+ messages in thread From: kbuild test robot @ 2018-03-13 7:15 UTC (permalink / raw) To: Thomas Falcon; +Cc: kbuild-all, netdev, davem, jallen, nfont, Thomas Falcon [-- Attachment #1: Type: text/plain, Size: 10072 bytes --] Hi Thomas, I love your patch! Yet something to improve: [auto build test ERROR on v4.16-rc4] [also build test ERROR on next-20180309] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Thomas-Falcon/ibmvnic-Fix-VLAN-and-other-device-errata/20180313-125518 config: powerpc-allmodconfig (attached as .config) compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0 reproduce: 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 make.cross ARCH=powerpc All error/warnings (new ones prefixed by >>): drivers/net/ethernet/ibm/ibmvnic.c: In function 'ibmvnic_xmit': >> drivers/net/ethernet/ibm/ibmvnic.c:1386:36: error: passing argument 2 of 'ibmvnic_xmit_workarounds' from incompatible pointer type [-Werror=incompatible-pointer-types] if (ibmvnic_xmit_workarounds(skb, adapter)) { ^~~~~~~ drivers/net/ethernet/ibm/ibmvnic.c:1336:12: note: expected 'struct net_device *' but argument is of type 'struct ibmvnic_adapter *' static int ibmvnic_xmit_workarounds(struct sk_buff *skb, ^~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/ibm/ibmvnic.c: In function 'ibmvnic_xmit_workarounds': >> drivers/net/ethernet/ibm/ibmvnic.c:1347:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ cc1: some warnings being treated as errors vim +/ibmvnic_xmit_workarounds +1386 drivers/net/ethernet/ibm/ibmvnic.c 1335 1336 static int ibmvnic_xmit_workarounds(struct sk_buff *skb, 1337 struct net_device *netdev) 1338 { 1339 /* For some backing devices, mishandling of small packets 1340 * can result in a loss of connection or TX stall. Device 1341 * architects recommend that no packet should be smaller 1342 * than the minimum MTU value provided to the driver, so 1343 * pad any packets to that length 1344 */ 1345 if (skb->len < netdev->min_mtu) 1346 return skb_put_padto(skb, netdev->min_mtu); > 1347 } 1348 1349 static int ibmvnic_xmit(struct sk_buff *skb, struct net_device *netdev) 1350 { 1351 struct ibmvnic_adapter *adapter = netdev_priv(netdev); 1352 int queue_num = skb_get_queue_mapping(skb); 1353 u8 *hdrs = (u8 *)&adapter->tx_rx_desc_req; 1354 struct device *dev = &adapter->vdev->dev; 1355 struct ibmvnic_tx_buff *tx_buff = NULL; 1356 struct ibmvnic_sub_crq_queue *tx_scrq; 1357 struct ibmvnic_tx_pool *tx_pool; 1358 unsigned int tx_send_failed = 0; 1359 unsigned int tx_map_failed = 0; 1360 unsigned int tx_dropped = 0; 1361 unsigned int tx_packets = 0; 1362 unsigned int tx_bytes = 0; 1363 dma_addr_t data_dma_addr; 1364 struct netdev_queue *txq; 1365 unsigned long lpar_rc; 1366 union sub_crq tx_crq; 1367 unsigned int offset; 1368 int num_entries = 1; 1369 unsigned char *dst; 1370 u64 *handle_array; 1371 int index = 0; 1372 u8 proto = 0; 1373 int ret = 0; 1374 1375 if (adapter->resetting) { 1376 if (!netif_subqueue_stopped(netdev, skb)) 1377 netif_stop_subqueue(netdev, queue_num); 1378 dev_kfree_skb_any(skb); 1379 1380 tx_send_failed++; 1381 tx_dropped++; 1382 ret = NETDEV_TX_OK; 1383 goto out; 1384 } 1385 > 1386 if (ibmvnic_xmit_workarounds(skb, adapter)) { 1387 tx_dropped++; 1388 tx_send_failed++; 1389 ret = NETDEV_TX_OK; 1390 goto out; 1391 } 1392 1393 tx_pool = &adapter->tx_pool[queue_num]; 1394 tx_scrq = adapter->tx_scrq[queue_num]; 1395 txq = netdev_get_tx_queue(netdev, skb_get_queue_mapping(skb)); 1396 handle_array = (u64 *)((u8 *)(adapter->login_rsp_buf) + 1397 be32_to_cpu(adapter->login_rsp_buf->off_txsubm_subcrqs)); 1398 1399 index = tx_pool->free_map[tx_pool->consumer_index]; 1400 1401 if (skb_is_gso(skb)) { 1402 offset = tx_pool->tso_index * IBMVNIC_TSO_BUF_SZ; 1403 dst = tx_pool->tso_ltb.buff + offset; 1404 memset(dst, 0, IBMVNIC_TSO_BUF_SZ); 1405 data_dma_addr = tx_pool->tso_ltb.addr + offset; 1406 tx_pool->tso_index++; 1407 if (tx_pool->tso_index == IBMVNIC_TSO_BUFS) 1408 tx_pool->tso_index = 0; 1409 } else { 1410 offset = index * (adapter->req_mtu + VLAN_HLEN); 1411 dst = tx_pool->long_term_buff.buff + offset; 1412 memset(dst, 0, adapter->req_mtu + VLAN_HLEN); 1413 data_dma_addr = tx_pool->long_term_buff.addr + offset; 1414 } 1415 1416 if (skb_shinfo(skb)->nr_frags) { 1417 int cur, i; 1418 1419 /* Copy the head */ 1420 skb_copy_from_linear_data(skb, dst, skb_headlen(skb)); 1421 cur = skb_headlen(skb); 1422 1423 /* Copy the frags */ 1424 for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { 1425 const skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; 1426 1427 memcpy(dst + cur, 1428 page_address(skb_frag_page(frag)) + 1429 frag->page_offset, skb_frag_size(frag)); 1430 cur += skb_frag_size(frag); 1431 } 1432 } else { 1433 skb_copy_from_linear_data(skb, dst, skb->len); 1434 } 1435 1436 tx_pool->consumer_index = 1437 (tx_pool->consumer_index + 1) % 1438 adapter->req_tx_entries_per_subcrq; 1439 1440 tx_buff = &tx_pool->tx_buff[index]; 1441 tx_buff->skb = skb; 1442 tx_buff->data_dma[0] = data_dma_addr; 1443 tx_buff->data_len[0] = skb->len; 1444 tx_buff->index = index; 1445 tx_buff->pool_index = queue_num; 1446 tx_buff->last_frag = true; 1447 1448 memset(&tx_crq, 0, sizeof(tx_crq)); 1449 tx_crq.v1.first = IBMVNIC_CRQ_CMD; 1450 tx_crq.v1.type = IBMVNIC_TX_DESC; 1451 tx_crq.v1.n_crq_elem = 1; 1452 tx_crq.v1.n_sge = 1; 1453 tx_crq.v1.flags1 = IBMVNIC_TX_COMP_NEEDED; 1454 tx_crq.v1.correlator = cpu_to_be32(index); 1455 if (skb_is_gso(skb)) 1456 tx_crq.v1.dma_reg = cpu_to_be16(tx_pool->tso_ltb.map_id); 1457 else 1458 tx_crq.v1.dma_reg = cpu_to_be16(tx_pool->long_term_buff.map_id); 1459 tx_crq.v1.sge_len = cpu_to_be32(skb->len); 1460 tx_crq.v1.ioba = cpu_to_be64(data_dma_addr); 1461 1462 if (adapter->vlan_header_insertion) { 1463 tx_crq.v1.flags2 |= IBMVNIC_TX_VLAN_INSERT; 1464 tx_crq.v1.vlan_id = cpu_to_be16(skb->vlan_tci); 1465 } 1466 1467 if (skb->protocol == htons(ETH_P_IP)) { 1468 tx_crq.v1.flags1 |= IBMVNIC_TX_PROT_IPV4; 1469 proto = ip_hdr(skb)->protocol; 1470 } else if (skb->protocol == htons(ETH_P_IPV6)) { 1471 tx_crq.v1.flags1 |= IBMVNIC_TX_PROT_IPV6; 1472 proto = ipv6_hdr(skb)->nexthdr; 1473 } 1474 1475 if (proto == IPPROTO_TCP) 1476 tx_crq.v1.flags1 |= IBMVNIC_TX_PROT_TCP; 1477 else if (proto == IPPROTO_UDP) 1478 tx_crq.v1.flags1 |= IBMVNIC_TX_PROT_UDP; 1479 1480 if (skb->ip_summed == CHECKSUM_PARTIAL) { 1481 tx_crq.v1.flags1 |= IBMVNIC_TX_CHKSUM_OFFLOAD; 1482 hdrs += 2; 1483 } 1484 if (skb_is_gso(skb)) { 1485 tx_crq.v1.flags1 |= IBMVNIC_TX_LSO; 1486 tx_crq.v1.mss = cpu_to_be16(skb_shinfo(skb)->gso_size); 1487 hdrs += 2; 1488 } 1489 /* determine if l2/3/4 headers are sent to firmware */ 1490 if ((*hdrs >> 7) & 1) { 1491 build_hdr_descs_arr(tx_buff, &num_entries, *hdrs); 1492 tx_crq.v1.n_crq_elem = num_entries; 1493 tx_buff->indir_arr[0] = tx_crq; 1494 tx_buff->indir_dma = dma_map_single(dev, tx_buff->indir_arr, 1495 sizeof(tx_buff->indir_arr), 1496 DMA_TO_DEVICE); 1497 if (dma_mapping_error(dev, tx_buff->indir_dma)) { 1498 dev_kfree_skb_any(skb); 1499 tx_buff->skb = NULL; 1500 if (!firmware_has_feature(FW_FEATURE_CMO)) 1501 dev_err(dev, "tx: unable to map descriptor array\n"); 1502 tx_map_failed++; 1503 tx_dropped++; 1504 ret = NETDEV_TX_OK; 1505 goto out; 1506 } 1507 lpar_rc = send_subcrq_indirect(adapter, handle_array[queue_num], 1508 (u64)tx_buff->indir_dma, 1509 (u64)num_entries); 1510 } else { 1511 lpar_rc = send_subcrq(adapter, handle_array[queue_num], 1512 &tx_crq); 1513 } 1514 if (lpar_rc != H_SUCCESS) { 1515 dev_err(dev, "tx failed with code %ld\n", lpar_rc); 1516 1517 if (tx_pool->consumer_index == 0) 1518 tx_pool->consumer_index = 1519 adapter->req_tx_entries_per_subcrq - 1; 1520 else 1521 tx_pool->consumer_index--; 1522 1523 dev_kfree_skb_any(skb); 1524 tx_buff->skb = NULL; 1525 1526 if (lpar_rc == H_CLOSED) { 1527 /* Disable TX and report carrier off if queue is closed. 1528 * Firmware guarantees that a signal will be sent to the 1529 * driver, triggering a reset or some other action. 1530 */ 1531 netif_tx_stop_all_queues(netdev); 1532 netif_carrier_off(netdev); 1533 } 1534 1535 tx_send_failed++; 1536 tx_dropped++; 1537 ret = NETDEV_TX_OK; 1538 goto out; 1539 } 1540 1541 if (atomic_inc_return(&tx_scrq->used) 1542 >= adapter->req_tx_entries_per_subcrq) { 1543 netdev_info(netdev, "Stopping queue %d\n", queue_num); 1544 netif_stop_subqueue(netdev, queue_num); 1545 } 1546 1547 tx_packets++; 1548 tx_bytes += skb->len; 1549 txq->trans_start = jiffies; 1550 ret = NETDEV_TX_OK; 1551 1552 out: 1553 netdev->stats.tx_dropped += tx_dropped; 1554 netdev->stats.tx_bytes += tx_bytes; 1555 netdev->stats.tx_packets += tx_packets; 1556 adapter->tx_send_failed += tx_send_failed; 1557 adapter->tx_map_failed += tx_map_failed; 1558 adapter->tx_stats_buffers[queue_num].packets += tx_packets; 1559 adapter->tx_stats_buffers[queue_num].bytes += tx_bytes; 1560 adapter->tx_stats_buffers[queue_num].dropped_packets += tx_dropped; 1561 1562 return ret; 1563 } 1564 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation [-- Attachment #2: .config.gz --] [-- Type: application/gzip, Size: 56598 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH net-next v2 4/4] ibmvnic: Handle TSO backing device errata 2018-03-12 16:51 [PATCH net-next v2 0/4] ibmvnic: Fix VLAN and other device errata Thomas Falcon ` (2 preceding siblings ...) 2018-03-12 16:51 ` [PATCH net-next v2 3/4] ibmvnic: Pad small packets to minimum MTU size Thomas Falcon @ 2018-03-12 16:51 ` Thomas Falcon 2018-03-12 16:56 ` [PATCH net-next v2 0/4] ibmvnic: Fix VLAN and other " David Miller 4 siblings, 0 replies; 10+ messages in thread From: Thomas Falcon @ 2018-03-12 16:51 UTC (permalink / raw) To: netdev; +Cc: davem, jallen, nfont, Thomas Falcon TSO packets with one segment or with an MSS less than 224 can cause errors on some backing devices, so disable GSO in those cases. Signed-off-by: Thomas Falcon <tlfalcon@linux.vnet.ibm.com> --- drivers/net/ethernet/ibm/ibmvnic.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c index 7ed87fb..e02d3b9 100644 --- a/drivers/net/ethernet/ibm/ibmvnic.c +++ b/drivers/net/ethernet/ibm/ibmvnic.c @@ -2049,6 +2049,23 @@ static int ibmvnic_change_mtu(struct net_device *netdev, int new_mtu) return wait_for_reset(adapter); } +static netdev_features_t ibmvnic_features_check(struct sk_buff *skb, + struct net_device *dev, + netdev_features_t features) +{ + /* Some backing hardware adapters can not + * handle packets with a MSS less than 224 + * or with only one segment. + */ + if (skb_is_gso(skb)) { + if (skb_shinfo(skb)->gso_size < 224 || + skb_shinfo(skb)->gso_segs == 1) + features &= ~NETIF_F_GSO_MASK; + } + + return features; +} + static const struct net_device_ops ibmvnic_netdev_ops = { .ndo_open = ibmvnic_open, .ndo_stop = ibmvnic_close, @@ -2061,6 +2078,7 @@ static const struct net_device_ops ibmvnic_netdev_ops = { .ndo_poll_controller = ibmvnic_netpoll_controller, #endif .ndo_change_mtu = ibmvnic_change_mtu, + .ndo_features_check = ibmvnic_features_check, }; /* ethtool functions */ -- 2.7.5 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH net-next v2 0/4] ibmvnic: Fix VLAN and other device errata 2018-03-12 16:51 [PATCH net-next v2 0/4] ibmvnic: Fix VLAN and other device errata Thomas Falcon ` (3 preceding siblings ...) 2018-03-12 16:51 ` [PATCH net-next v2 4/4] ibmvnic: Handle TSO backing device errata Thomas Falcon @ 2018-03-12 16:56 ` David Miller 2018-03-12 22:07 ` Thomas Falcon 4 siblings, 1 reply; 10+ messages in thread From: David Miller @ 2018-03-12 16:56 UTC (permalink / raw) To: tlfalcon; +Cc: netdev, jallen, nfont From: Thomas Falcon <tlfalcon@linux.vnet.ibm.com> Date: Mon, 12 Mar 2018 11:51:01 -0500 > This patch series contains fixes for VLAN and other backing hardware > errata. The VLAN fixes are mostly to account for the additional four > bytes VLAN header in TX descriptors and buffers, when applicable. > > The other fixes for device errata are to pad small packets to avoid a > possible connection error that can occur when some devices attempt to > transmit small packets. The other fixes are GSO related. Some devices > cannot handle a smaller MSS or a packet with a single segment, so > disable GSO in those cases. > > v2: Fix style mistake (unneeded brackets) in patch 3/4 Series applied, thanks Thomas. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH net-next v2 0/4] ibmvnic: Fix VLAN and other device errata 2018-03-12 16:56 ` [PATCH net-next v2 0/4] ibmvnic: Fix VLAN and other " David Miller @ 2018-03-12 22:07 ` Thomas Falcon 2018-03-13 0:59 ` David Miller 0 siblings, 1 reply; 10+ messages in thread From: Thomas Falcon @ 2018-03-12 22:07 UTC (permalink / raw) To: David Miller; +Cc: netdev, jallen, nfont On 03/12/2018 11:56 AM, David Miller wrote: > From: Thomas Falcon <tlfalcon@linux.vnet.ibm.com> > Date: Mon, 12 Mar 2018 11:51:01 -0500 > >> This patch series contains fixes for VLAN and other backing hardware >> errata. The VLAN fixes are mostly to account for the additional four >> bytes VLAN header in TX descriptors and buffers, when applicable. >> >> The other fixes for device errata are to pad small packets to avoid a >> possible connection error that can occur when some devices attempt to >> transmit small packets. The other fixes are GSO related. Some devices >> cannot handle a smaller MSS or a packet with a single segment, so >> disable GSO in those cases. >> >> v2: Fix style mistake (unneeded brackets) in patch 3/4 > Series applied, thanks Thomas. > Really sorry about this, but 3/4 is still wrong. There is actually a compiler warning caused by it, which I'm surprised wasn't caught by the test robot. Is there still time to send a v3? ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH net-next v2 0/4] ibmvnic: Fix VLAN and other device errata 2018-03-12 22:07 ` Thomas Falcon @ 2018-03-13 0:59 ` David Miller 2018-03-13 1:00 ` Thomas Falcon 0 siblings, 1 reply; 10+ messages in thread From: David Miller @ 2018-03-13 0:59 UTC (permalink / raw) To: tlfalcon; +Cc: netdev, jallen, nfont From: Thomas Falcon <tlfalcon@linux.vnet.ibm.com> Date: Mon, 12 Mar 2018 17:07:38 -0500 > On 03/12/2018 11:56 AM, David Miller wrote: >> From: Thomas Falcon <tlfalcon@linux.vnet.ibm.com> >> Date: Mon, 12 Mar 2018 11:51:01 -0500 >> >>> This patch series contains fixes for VLAN and other backing hardware >>> errata. The VLAN fixes are mostly to account for the additional four >>> bytes VLAN header in TX descriptors and buffers, when applicable. >>> >>> The other fixes for device errata are to pad small packets to avoid a >>> possible connection error that can occur when some devices attempt to >>> transmit small packets. The other fixes are GSO related. Some devices >>> cannot handle a smaller MSS or a packet with a single segment, so >>> disable GSO in those cases. >>> >>> v2: Fix style mistake (unneeded brackets) in patch 3/4 >> Series applied, thanks Thomas. >> > Really sorry about this, but 3/4 is still wrong. There is actually a compiler warning caused by it, which I'm surprised wasn't caught by the test robot. Is there still time to send a v3? If it's in my tree you must send a fixup patch. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH net-next v2 0/4] ibmvnic: Fix VLAN and other device errata 2018-03-13 0:59 ` David Miller @ 2018-03-13 1:00 ` Thomas Falcon 0 siblings, 0 replies; 10+ messages in thread From: Thomas Falcon @ 2018-03-13 1:00 UTC (permalink / raw) To: David Miller; +Cc: netdev, jallen, nfont On 03/12/2018 07:59 PM, David Miller wrote: > From: Thomas Falcon <tlfalcon@linux.vnet.ibm.com> > Date: Mon, 12 Mar 2018 17:07:38 -0500 > >> On 03/12/2018 11:56 AM, David Miller wrote: >>> From: Thomas Falcon <tlfalcon@linux.vnet.ibm.com> >>> Date: Mon, 12 Mar 2018 11:51:01 -0500 >>> >>>> This patch series contains fixes for VLAN and other backing hardware >>>> errata. The VLAN fixes are mostly to account for the additional four >>>> bytes VLAN header in TX descriptors and buffers, when applicable. >>>> >>>> The other fixes for device errata are to pad small packets to avoid a >>>> possible connection error that can occur when some devices attempt to >>>> transmit small packets. The other fixes are GSO related. Some devices >>>> cannot handle a smaller MSS or a packet with a single segment, so >>>> disable GSO in those cases. >>>> >>>> v2: Fix style mistake (unneeded brackets) in patch 3/4 >>> Series applied, thanks Thomas. >>> >> Really sorry about this, but 3/4 is still wrong. There is actually a compiler warning caused by it, which I'm surprised wasn't caught by the test robot. Is there still time to send a v3? > If it's in my tree you must send a fixup patch. > Thanks, I will do that shortly. ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2018-03-13 7:15 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-03-12 16:51 [PATCH net-next v2 0/4] ibmvnic: Fix VLAN and other device errata Thomas Falcon 2018-03-12 16:51 ` [PATCH net-next v2 1/4] ibmvnic: Account for VLAN tag in L2 Header descriptor Thomas Falcon 2018-03-12 16:51 ` [PATCH net-next v2 2/4] ibmvnic: Account for VLAN header length in TX buffers Thomas Falcon 2018-03-12 16:51 ` [PATCH net-next v2 3/4] ibmvnic: Pad small packets to minimum MTU size Thomas Falcon 2018-03-13 7:15 ` kbuild test robot 2018-03-12 16:51 ` [PATCH net-next v2 4/4] ibmvnic: Handle TSO backing device errata Thomas Falcon 2018-03-12 16:56 ` [PATCH net-next v2 0/4] ibmvnic: Fix VLAN and other " David Miller 2018-03-12 22:07 ` Thomas Falcon 2018-03-13 0:59 ` David Miller 2018-03-13 1:00 ` Thomas Falcon
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).