* [PATCH net-next v2 0/7] Bug fixes and enhancements
@ 2013-04-17 17:05 Shahed Shaikh
2013-04-17 17:05 ` [PATCH net-next v2 1/7] qlcnic: Fix typo in logs Shahed Shaikh
` (7 more replies)
0 siblings, 8 replies; 11+ messages in thread
From: Shahed Shaikh @ 2013-04-17 17:05 UTC (permalink / raw)
To: davem; +Cc: netdev, Dept_NX_Linux_NIC_Driver, Shahed Shaikh
From: Shahed Shaikh <shahed.shaikh@qlogic.com>
Changes in v2:
* Removed check '(netdev->features & (NETIF_F_TSO | NETIF_F_TSO6))'
from tx fast path in patch "qlcnic: fix TSO race condition"
as per Eric's comment.
* Used a local variable for adapter->netdev in
"qlcnic: Fix typo in logs" and "qlcnic: Enhanced channel configuration logs"
* Reworked "qlcnic: Enable Interrupt Coalescing for 83xx adapter" as per Francois's
comments.
* Dropped "qlcnic: Add identifying string for 83xx adapter" and
"qlcnic: Implement GET_LED_STATUS command for 82xx adapter" for further rework.
* Considered "qlcnic: fix beaconing test for 82xx adapter" for 'net'
* Included new patches: "qlcnic: Stop traffic before performing loopback test" and
"qlcnic: Fix endian data type."
Thanks to Francois and Eric for review comments.
Please apply to net-next.
Thanks,
Shahed
Himanshu Madhani (1):
qlcnic: Enable Interrupt Coalescing for 83xx adapter
Jitendra Kalsaria (1):
qlcnic: Stop traffic before performing loopback test
Manish Chopra (1):
qlcnic: Enhanced channel configuration logs
Rajesh Borundia (1):
qlcnic: Fix endian data type.
Shahed Shaikh (2):
qlcnic: Fix typo in logs
qlcnic: Update version to 5.2.41
Sritej Velaga (1):
qlcnic: fix TSO race condition
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h | 32 ++++++----
.../net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c | 37 +++++++----
.../net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.h | 4 +-
.../net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c | 70 ++++++++++++++++----
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c | 4 +-
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.h | 4 +-
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c | 23 +++----
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 48 +++++++++++---
.../net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c | 4 +-
9 files changed, 156 insertions(+), 70 deletions(-)
^ permalink raw reply [flat|nested] 11+ messages in thread* [PATCH net-next v2 1/7] qlcnic: Fix typo in logs 2013-04-17 17:05 [PATCH net-next v2 0/7] Bug fixes and enhancements Shahed Shaikh @ 2013-04-17 17:05 ` Shahed Shaikh 2013-04-17 17:05 ` [PATCH net-next v2 2/7] qlcnic: Enable Interrupt Coalescing for 83xx adapter Shahed Shaikh ` (6 subsequent siblings) 7 siblings, 0 replies; 11+ messages in thread From: Shahed Shaikh @ 2013-04-17 17:05 UTC (permalink / raw) To: davem; +Cc: netdev, Dept_NX_Linux_NIC_Driver, Shahed Shaikh From: Shahed Shaikh <shahed.shaikh@qlogic.com> o Debug logs were not matching with code functionality. o Changed dev_info to netdev_err Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com> --- .../net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c | 9 ++++----- 1 files changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c index 374fa8a..e741f8c 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c @@ -2883,6 +2883,7 @@ static u64 *qlcnic_83xx_fill_stats(struct qlcnic_adapter *adapter, void qlcnic_83xx_get_stats(struct qlcnic_adapter *adapter, u64 *data) { struct qlcnic_cmd_args cmd; + struct net_device *netdev = adapter->netdev; int ret = 0; qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_GET_STATISTICS); @@ -2892,7 +2893,7 @@ void qlcnic_83xx_get_stats(struct qlcnic_adapter *adapter, u64 *data) data = qlcnic_83xx_fill_stats(adapter, &cmd, data, QLC_83XX_STAT_TX, &ret); if (ret) { - dev_info(&adapter->pdev->dev, "Error getting MAC stats\n"); + netdev_err(netdev, "Error getting Tx stats\n"); goto out; } /* Get MAC stats */ @@ -2902,8 +2903,7 @@ void qlcnic_83xx_get_stats(struct qlcnic_adapter *adapter, u64 *data) data = qlcnic_83xx_fill_stats(adapter, &cmd, data, QLC_83XX_STAT_MAC, &ret); if (ret) { - dev_info(&adapter->pdev->dev, - "Error getting Rx stats\n"); + netdev_err(netdev, "Error getting MAC stats\n"); goto out; } /* Get Rx stats */ @@ -2913,8 +2913,7 @@ void qlcnic_83xx_get_stats(struct qlcnic_adapter *adapter, u64 *data) data = qlcnic_83xx_fill_stats(adapter, &cmd, data, QLC_83XX_STAT_RX, &ret); if (ret) - dev_info(&adapter->pdev->dev, - "Error getting Tx stats\n"); + netdev_err(netdev, "Error getting Rx stats\n"); out: qlcnic_free_mbx_args(&cmd); } -- 1.5.6 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH net-next v2 2/7] qlcnic: Enable Interrupt Coalescing for 83xx adapter 2013-04-17 17:05 [PATCH net-next v2 0/7] Bug fixes and enhancements Shahed Shaikh 2013-04-17 17:05 ` [PATCH net-next v2 1/7] qlcnic: Fix typo in logs Shahed Shaikh @ 2013-04-17 17:05 ` Shahed Shaikh 2013-04-17 17:05 ` [PATCH net-next v2 3/7] qlcnic: Enhanced channel configuration logs Shahed Shaikh ` (5 subsequent siblings) 7 siblings, 0 replies; 11+ messages in thread From: Shahed Shaikh @ 2013-04-17 17:05 UTC (permalink / raw) To: davem; +Cc: netdev, Dept_NX_Linux_NIC_Driver, Himanshu Madhani From: Himanshu Madhani <himanshu.madhani@qlogic.com> Enable Interrupt coalescing through ethtool on 83xx adapter. Signed-off-by: Himanshu Madhani <himanshu.madhani@qlogic.com> Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com> --- drivers/net/ethernet/qlogic/qlcnic/qlcnic.h | 12 +++- .../net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c | 16 ++++- .../net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c | 68 ++++++++++++++++---- drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 13 +++- 4 files changed, 87 insertions(+), 22 deletions(-) diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h b/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h index ef55718..16ed1a6 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h @@ -347,8 +347,14 @@ struct qlcnic_rx_buffer { * Interrupt coalescing defaults. The defaults are for 1500 MTU. It is * adjusted based on configured MTU. */ -#define QLCNIC_DEFAULT_INTR_COALESCE_RX_TIME_US 3 -#define QLCNIC_DEFAULT_INTR_COALESCE_RX_PACKETS 256 +#define QLCNIC_INTR_COAL_TYPE_RX 1 +#define QLCNIC_INTR_COAL_TYPE_TX 2 + +#define QLCNIC_DEF_INTR_COALESCE_RX_TIME_US 3 +#define QLCNIC_DEF_INTR_COALESCE_RX_PACKETS 256 + +#define QLCNIC_DEF_INTR_COALESCE_TX_TIME_US 64 +#define QLCNIC_DEF_INTR_COALESCE_TX_PACKETS 64 #define QLCNIC_INTR_DEFAULT 0x04 #define QLCNIC_CONFIG_INTR_COALESCE 3 @@ -359,6 +365,8 @@ struct qlcnic_nic_intr_coalesce { u8 sts_ring_mask; u16 rx_packets; u16 rx_time_us; + u16 tx_packets; + u16 tx_time_us; u16 flag; u32 timer_out; }; diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c index e741f8c..e07aea8 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c @@ -1870,7 +1870,7 @@ int qlcnic_83xx_get_mac_address(struct qlcnic_adapter *adapter, u8 *mac) void qlcnic_83xx_config_intr_coal(struct qlcnic_adapter *adapter) { int err; - u32 temp; + u16 temp; struct qlcnic_cmd_args cmd; struct qlcnic_nic_intr_coalesce *coal = &adapter->ahw->coal; @@ -1878,10 +1878,18 @@ void qlcnic_83xx_config_intr_coal(struct qlcnic_adapter *adapter) return; qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_CONFIG_INTR_COAL); - cmd.req.arg[1] = 1 | (adapter->recv_ctx->context_id << 16); + if (coal->type == QLCNIC_INTR_COAL_TYPE_RX) { + temp = adapter->recv_ctx->context_id; + cmd.req.arg[1] = (QLCNIC_INTR_COAL_TYPE_RX | (temp << 16)); + temp = coal->rx_time_us; + cmd.req.arg[2] = (coal->rx_packets | (temp << 16)); + } else if (coal->type == QLCNIC_INTR_COAL_TYPE_TX) { + temp = adapter->tx_ring->ctx_id; + cmd.req.arg[1] = (QLCNIC_INTR_COAL_TYPE_TX | (temp << 16)); + temp = coal->tx_time_us; + cmd.req.arg[2] = (coal->tx_packets | (temp << 16)); + } cmd.req.arg[3] = coal->flag; - temp = coal->rx_time_us << 16; - cmd.req.arg[2] = coal->rx_packets | temp; err = qlcnic_issue_cmd(adapter, &cmd); if (err != QLCNIC_RCODE_SUCCESS) dev_info(&adapter->pdev->dev, diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c index f4f279d..7b56a50 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c @@ -1294,6 +1294,9 @@ static int qlcnic_set_intr_coalesce(struct net_device *netdev, struct ethtool_coalesce *ethcoal) { struct qlcnic_adapter *adapter = netdev_priv(netdev); + struct qlcnic_nic_intr_coalesce *coal; + u32 rx_coalesce_usecs, rx_max_frames; + u32 tx_coalesce_usecs, tx_max_frames; if (!test_bit(__QLCNIC_DEV_UP, &adapter->state)) return -EINVAL; @@ -1304,8 +1307,8 @@ static int qlcnic_set_intr_coalesce(struct net_device *netdev, */ if (ethcoal->rx_coalesce_usecs > 0xffff || ethcoal->rx_max_coalesced_frames > 0xffff || - ethcoal->tx_coalesce_usecs || - ethcoal->tx_max_coalesced_frames || + ethcoal->tx_coalesce_usecs > 0xffff || + ethcoal->tx_max_coalesced_frames > 0xffff || ethcoal->rx_coalesce_usecs_irq || ethcoal->rx_max_coalesced_frames_irq || ethcoal->tx_coalesce_usecs_irq || @@ -1325,18 +1328,55 @@ static int qlcnic_set_intr_coalesce(struct net_device *netdev, ethcoal->tx_max_coalesced_frames_high) return -EINVAL; - if (!ethcoal->rx_coalesce_usecs || - !ethcoal->rx_max_coalesced_frames) { - adapter->ahw->coal.flag = QLCNIC_INTR_DEFAULT; - adapter->ahw->coal.rx_time_us = - QLCNIC_DEFAULT_INTR_COALESCE_RX_TIME_US; - adapter->ahw->coal.rx_packets = - QLCNIC_DEFAULT_INTR_COALESCE_RX_PACKETS; + coal = &adapter->ahw->coal; + + if (qlcnic_83xx_check(adapter)) { + if (!ethcoal->tx_coalesce_usecs || + !ethcoal->tx_max_coalesced_frames || + !ethcoal->rx_coalesce_usecs || + !ethcoal->rx_max_coalesced_frames) { + coal->flag = QLCNIC_INTR_DEFAULT; + coal->type = QLCNIC_INTR_COAL_TYPE_RX; + coal->rx_time_us = QLCNIC_DEF_INTR_COALESCE_RX_TIME_US; + coal->rx_packets = QLCNIC_DEF_INTR_COALESCE_RX_PACKETS; + coal->tx_time_us = QLCNIC_DEF_INTR_COALESCE_TX_TIME_US; + coal->tx_packets = QLCNIC_DEF_INTR_COALESCE_TX_PACKETS; + } else { + tx_coalesce_usecs = ethcoal->tx_coalesce_usecs; + tx_max_frames = ethcoal->tx_max_coalesced_frames; + rx_coalesce_usecs = ethcoal->rx_coalesce_usecs; + rx_max_frames = ethcoal->rx_max_coalesced_frames; + coal->flag = 0; + + if ((coal->rx_time_us == rx_coalesce_usecs) && + (coal->rx_packets == rx_max_frames)) { + coal->type = QLCNIC_INTR_COAL_TYPE_TX; + coal->tx_time_us = tx_coalesce_usecs; + coal->tx_packets = tx_max_frames; + } else if ((coal->tx_time_us == tx_coalesce_usecs) && + (coal->tx_packets == tx_max_frames)) { + coal->type = QLCNIC_INTR_COAL_TYPE_RX; + coal->rx_time_us = rx_coalesce_usecs; + coal->rx_packets = rx_max_frames; + } else { + coal->type = QLCNIC_INTR_COAL_TYPE_RX; + coal->rx_time_us = rx_coalesce_usecs; + coal->rx_packets = rx_max_frames; + coal->tx_time_us = tx_coalesce_usecs; + coal->tx_packets = tx_max_frames; + } + } } else { - adapter->ahw->coal.flag = 0; - adapter->ahw->coal.rx_time_us = ethcoal->rx_coalesce_usecs; - adapter->ahw->coal.rx_packets = - ethcoal->rx_max_coalesced_frames; + if (!ethcoal->rx_coalesce_usecs || + !ethcoal->rx_max_coalesced_frames) { + coal->flag = QLCNIC_INTR_DEFAULT; + coal->rx_time_us = QLCNIC_DEF_INTR_COALESCE_RX_TIME_US; + coal->rx_packets = QLCNIC_DEF_INTR_COALESCE_RX_PACKETS; + } else { + coal->flag = 0; + coal->rx_time_us = ethcoal->rx_coalesce_usecs; + coal->rx_packets = ethcoal->rx_max_coalesced_frames; + } } qlcnic_config_intr_coalesce(adapter); @@ -1354,6 +1394,8 @@ static int qlcnic_get_intr_coalesce(struct net_device *netdev, ethcoal->rx_coalesce_usecs = adapter->ahw->coal.rx_time_us; ethcoal->rx_max_coalesced_frames = adapter->ahw->coal.rx_packets; + ethcoal->tx_coalesce_usecs = adapter->ahw->coal.tx_time_us; + ethcoal->tx_max_coalesced_frames = adapter->ahw->coal.tx_packets; return 0; } diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c index 0d00b2b..edbc85f 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c @@ -1554,7 +1554,9 @@ out: static int qlcnic_alloc_adapter_resources(struct qlcnic_adapter *adapter) { + struct qlcnic_hardware_context *ahw = adapter->ahw; int err = 0; + adapter->recv_ctx = kzalloc(sizeof(struct qlcnic_recv_context), GFP_KERNEL); if (!adapter->recv_ctx) { @@ -1562,9 +1564,14 @@ static int qlcnic_alloc_adapter_resources(struct qlcnic_adapter *adapter) goto err_out; } /* Initialize interrupt coalesce parameters */ - adapter->ahw->coal.flag = QLCNIC_INTR_DEFAULT; - adapter->ahw->coal.rx_time_us = QLCNIC_DEFAULT_INTR_COALESCE_RX_TIME_US; - adapter->ahw->coal.rx_packets = QLCNIC_DEFAULT_INTR_COALESCE_RX_PACKETS; + ahw->coal.flag = QLCNIC_INTR_DEFAULT; + ahw->coal.type = QLCNIC_INTR_COAL_TYPE_RX; + ahw->coal.rx_time_us = QLCNIC_DEF_INTR_COALESCE_RX_TIME_US; + ahw->coal.rx_packets = QLCNIC_DEF_INTR_COALESCE_RX_PACKETS; + if (qlcnic_83xx_check(adapter)) { + ahw->coal.tx_time_us = QLCNIC_DEF_INTR_COALESCE_TX_TIME_US; + ahw->coal.tx_packets = QLCNIC_DEF_INTR_COALESCE_TX_PACKETS; + } /* clear stats */ memset(&adapter->stats, 0, sizeof(adapter->stats)); err_out: -- 1.5.6 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH net-next v2 3/7] qlcnic: Enhanced channel configuration logs 2013-04-17 17:05 [PATCH net-next v2 0/7] Bug fixes and enhancements Shahed Shaikh 2013-04-17 17:05 ` [PATCH net-next v2 1/7] qlcnic: Fix typo in logs Shahed Shaikh 2013-04-17 17:05 ` [PATCH net-next v2 2/7] qlcnic: Enable Interrupt Coalescing for 83xx adapter Shahed Shaikh @ 2013-04-17 17:05 ` Shahed Shaikh 2013-04-17 17:48 ` Sergei Shtylyov 2013-04-17 17:05 ` [PATCH net-next v2 4/7] qlcnic: Stop traffic before performing loopback test Shahed Shaikh ` (4 subsequent siblings) 7 siblings, 1 reply; 11+ messages in thread From: Shahed Shaikh @ 2013-04-17 17:05 UTC (permalink / raw) To: davem; +Cc: netdev, Dept_NX_Linux_NIC_Driver, Manish Chopra From: Manish Chopra <manish.chopra@qlogic.com> Signed-off-by: Manish Chopra <manish.chopra@qlogic.com> Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com> --- drivers/net/ethernet/qlogic/qlcnic/qlcnic.h | 3 +- .../net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c | 2 +- drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 35 ++++++++++++++++---- 3 files changed, 31 insertions(+), 9 deletions(-) diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h b/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h index 16ed1a6..696d196 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h @@ -1478,7 +1478,8 @@ void qlcnic_diag_free_res(struct net_device *netdev, int max_sds_rings); int qlcnic_diag_alloc_res(struct net_device *netdev, int test); netdev_tx_t qlcnic_xmit_frame(struct sk_buff *skb, struct net_device *netdev); int qlcnic_set_max_rss(struct qlcnic_adapter *, u8, size_t); -int qlcnic_validate_max_rss(u8, u8); +int qlcnic_validate_max_rss(struct qlcnic_adapter *adapter, + __u32 val); void qlcnic_alloc_lb_filters_mem(struct qlcnic_adapter *adapter); int qlcnic_enable_msix(struct qlcnic_adapter *, u32); diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c index 7b56a50..184f0d2 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c @@ -635,7 +635,7 @@ static int qlcnic_set_channels(struct net_device *dev, channel->tx_count != channel->max_tx) return -EINVAL; - err = qlcnic_validate_max_rss(channel->max_rx, channel->rx_count); + err = qlcnic_validate_max_rss(adapter, channel->rx_count); if (err) return err; diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c index edbc85f..f35c504 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c @@ -3240,20 +3240,41 @@ qlcnicvf_start_firmware(struct qlcnic_adapter *adapter) return err; } -int qlcnic_validate_max_rss(u8 max_hw, u8 val) +int qlcnic_validate_max_rss(struct qlcnic_adapter *adapter, + __u32 val) { + struct net_device *netdev = adapter->netdev; u32 max_allowed; + u8 max_hw = adapter->ahw->max_rx_ques; - if (max_hw > QLC_MAX_SDS_RINGS) { - max_hw = QLC_MAX_SDS_RINGS; - pr_info("max rss reset to %d\n", QLC_MAX_SDS_RINGS); + if (val > QLC_MAX_SDS_RINGS) { + netdev_err(netdev, "RSS value should not be higher than %u\n", + QLC_MAX_SDS_RINGS); + return -EINVAL; } max_allowed = rounddown_pow_of_two(min_t(int, max_hw, num_online_cpus())); - if ((val > max_allowed) || (val < 2) || !is_power_of_2(val)) { - pr_info("rss_ring valid range [2 - %x] in powers of 2\n", - max_allowed); + + if ((val > max_allowed) || (val < 2) || !is_power_of_2(val)) { + if (!is_power_of_2(val)) + netdev_err(netdev, "RSS value should be a power of 2\n"); + + if (val < 2) + netdev_err(netdev, "RSS value should not be lower than 2\n"); + + if (val > max_hw) + netdev_err(netdev, + "RSS value should not be higher than[%u], the max RSS rings supported by the adapter\n", + max_hw); + + if (val > num_online_cpus()) + netdev_err(netdev, + "RSS value should not be higher than[%u], the max number of CPUs in the system\n", + num_online_cpus()); + + netdev_err(netdev, "Unable to configure %u RSS rings\n", val); + return -EINVAL; } return 0; -- 1.5.6 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH net-next v2 3/7] qlcnic: Enhanced channel configuration logs 2013-04-17 17:05 ` [PATCH net-next v2 3/7] qlcnic: Enhanced channel configuration logs Shahed Shaikh @ 2013-04-17 17:48 ` Sergei Shtylyov 0 siblings, 0 replies; 11+ messages in thread From: Sergei Shtylyov @ 2013-04-17 17:48 UTC (permalink / raw) To: Shahed Shaikh; +Cc: davem, netdev, Dept_NX_Linux_NIC_Driver, Manish Chopra Hello. On 04/17/2013 09:05 PM, Shahed Shaikh wrote: > From: Manish Chopra <manish.chopra@qlogic.com> > > Signed-off-by: Manish Chopra <manish.chopra@qlogic.com> > Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com> [...] > diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c > index edbc85f..f35c504 100644 > --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c > +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c > @@ -3240,20 +3240,41 @@ qlcnicvf_start_firmware(struct qlcnic_adapter *adapter) > return err; > } > > -int qlcnic_validate_max_rss(u8 max_hw, u8 val) > +int qlcnic_validate_max_rss(struct qlcnic_adapter *adapter, > + __u32 val) > { [...] > - if ((val > max_allowed) || (val < 2) || !is_power_of_2(val)) { > - pr_info("rss_ring valid range [2 - %x] in powers of 2\n", > - max_allowed); > + > + if ((val > max_allowed) || (val < 2) || !is_power_of_2(val)) { Too many spaces between < and 2. And () not needed around > and <. This line overall looks like random unneeded change. > + if (val > num_online_cpus()) > + netdev_err(netdev, > + "RSS value should not be higher than[%u], the max number of CPUs in the system\n", > + num_online_cpus()); num_online_cpus() doesn't yield the max number of CPUs in the system, it yields what it says, number of online CPUs. WBR, Sergei ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH net-next v2 4/7] qlcnic: Stop traffic before performing loopback test 2013-04-17 17:05 [PATCH net-next v2 0/7] Bug fixes and enhancements Shahed Shaikh ` (2 preceding siblings ...) 2013-04-17 17:05 ` [PATCH net-next v2 3/7] qlcnic: Enhanced channel configuration logs Shahed Shaikh @ 2013-04-17 17:05 ` Shahed Shaikh 2013-04-17 17:05 ` [PATCH net-next v2 5/7] qlcnic: fix TSO race condition Shahed Shaikh ` (3 subsequent siblings) 7 siblings, 0 replies; 11+ messages in thread From: Shahed Shaikh @ 2013-04-17 17:05 UTC (permalink / raw) To: davem; +Cc: netdev, Dept_NX_Linux_NIC_Driver, Jitendra Kalsaria From: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> Before conducting loopback test by sending packets, driver should stop transmit queue and turn off carrier. Signed-off-by: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com> --- .../net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c index e07aea8..7d0ebae 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c @@ -1566,6 +1566,12 @@ int qlcnic_83xx_loopback_test(struct net_device *netdev, u8 mode) } } while ((adapter->ahw->linkup && ahw->has_link_events) != 1); + /* Make sure carrier is off and queue is stopped during loopback */ + if (netif_running(netdev)) { + netif_carrier_off(netdev); + netif_stop_queue(netdev); + } + ret = qlcnic_do_lb_test(adapter, mode); qlcnic_83xx_clear_lb_mode(adapter, mode); -- 1.5.6 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH net-next v2 5/7] qlcnic: fix TSO race condition 2013-04-17 17:05 [PATCH net-next v2 0/7] Bug fixes and enhancements Shahed Shaikh ` (3 preceding siblings ...) 2013-04-17 17:05 ` [PATCH net-next v2 4/7] qlcnic: Stop traffic before performing loopback test Shahed Shaikh @ 2013-04-17 17:05 ` Shahed Shaikh 2013-04-17 18:36 ` Eric Dumazet 2013-04-17 17:05 ` [PATCH net-next v2 6/7] qlcnic: Fix endian data type Shahed Shaikh ` (2 subsequent siblings) 7 siblings, 1 reply; 11+ messages in thread From: Shahed Shaikh @ 2013-04-17 17:05 UTC (permalink / raw) To: davem; +Cc: netdev, Dept_NX_Linux_NIC_Driver, Sritej Velaga From: Sritej Velaga <sritej.velaga@qlogic.com> When driver receives a packet with gso size > 0 and when TSO is disabled, it should be transmitted as a TSO packet to prevent Tx timeout and subsequent firmware reset. Signed-off-by: Sritej Velaga <sritej.velaga@qlogic.com> Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com> --- drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c index a85ca63..910346d 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c @@ -362,8 +362,7 @@ set_flags: memcpy(&first_desc->eth_addr, skb->data, ETH_ALEN); } opcode = TX_ETHER_PKT; - if ((adapter->netdev->features & (NETIF_F_TSO | NETIF_F_TSO6)) && - skb_shinfo(skb)->gso_size > 0) { + if (skb_is_gso(skb)) { hdr_len = skb_transport_offset(skb) + tcp_hdrlen(skb); first_desc->mss = cpu_to_le16(skb_shinfo(skb)->gso_size); first_desc->total_hdr_length = hdr_len; -- 1.5.6 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH net-next v2 5/7] qlcnic: fix TSO race condition 2013-04-17 17:05 ` [PATCH net-next v2 5/7] qlcnic: fix TSO race condition Shahed Shaikh @ 2013-04-17 18:36 ` Eric Dumazet 0 siblings, 0 replies; 11+ messages in thread From: Eric Dumazet @ 2013-04-17 18:36 UTC (permalink / raw) To: Shahed Shaikh; +Cc: davem, netdev, Dept_NX_Linux_NIC_Driver, Sritej Velaga On Wed, 2013-04-17 at 13:05 -0400, Shahed Shaikh wrote: > From: Sritej Velaga <sritej.velaga@qlogic.com> > > When driver receives a packet with gso size > 0 and when TSO is disabled, > it should be transmitted as a TSO packet to prevent Tx timeout and subsequent > firmware reset. > > Signed-off-by: Sritej Velaga <sritej.velaga@qlogic.com> > Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com> > --- > drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c | 3 +-- > 1 files changed, 1 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c > index a85ca63..910346d 100644 > --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c > +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c > @@ -362,8 +362,7 @@ set_flags: > memcpy(&first_desc->eth_addr, skb->data, ETH_ALEN); > } > opcode = TX_ETHER_PKT; > - if ((adapter->netdev->features & (NETIF_F_TSO | NETIF_F_TSO6)) && > - skb_shinfo(skb)->gso_size > 0) { > + if (skb_is_gso(skb)) { > hdr_len = skb_transport_offset(skb) + tcp_hdrlen(skb); > first_desc->mss = cpu_to_le16(skb_shinfo(skb)->gso_size); > first_desc->total_hdr_length = hdr_len; Acked-by: Eric Dumazet <edumazet@google.com> But its a real bug fix, targeted for net tree I presume. ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH net-next v2 6/7] qlcnic: Fix endian data type. 2013-04-17 17:05 [PATCH net-next v2 0/7] Bug fixes and enhancements Shahed Shaikh ` (4 preceding siblings ...) 2013-04-17 17:05 ` [PATCH net-next v2 5/7] qlcnic: fix TSO race condition Shahed Shaikh @ 2013-04-17 17:05 ` Shahed Shaikh 2013-04-17 17:05 ` [PATCH net-next v2 7/7] qlcnic: Update version to 5.2.41 Shahed Shaikh 2013-04-17 17:32 ` [PATCH net-next v2 0/7] Bug fixes and enhancements David Miller 7 siblings, 0 replies; 11+ messages in thread From: Shahed Shaikh @ 2013-04-17 17:05 UTC (permalink / raw) To: davem; +Cc: netdev, Dept_NX_Linux_NIC_Driver, Rajesh Borundia From: Rajesh Borundia <rajesh.borundia@qlogic.com> o 82xx adapter requires VLAN id in little endian. Fix it at correct place, use cpu_to_le16 for 82xx adapter. Signed-off-by: Rajesh Borundia <rajesh.borundia@qlogic.com> Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com> --- drivers/net/ethernet/qlogic/qlcnic/qlcnic.h | 13 ++++++------- .../net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c | 6 +++--- .../net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.h | 4 ++-- drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c | 4 ++-- drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.h | 4 ++-- drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c | 20 ++++++++------------ .../net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c | 4 ++-- 7 files changed, 25 insertions(+), 30 deletions(-) diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h b/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h index 696d196..8bcc543 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h @@ -947,7 +947,7 @@ struct qlcnic_ipaddr { struct qlcnic_filter { struct hlist_node fnode; u8 faddr[ETH_ALEN]; - __le16 vlan_id; + u16 vlan_id; unsigned long ftime; }; @@ -1533,8 +1533,7 @@ int qlcnic_init_pci_info(struct qlcnic_adapter *); int qlcnic_set_default_offload_settings(struct qlcnic_adapter *); int qlcnic_reset_npar_config(struct qlcnic_adapter *); int qlcnic_set_eswitch_port_config(struct qlcnic_adapter *); -void qlcnic_add_lb_filter(struct qlcnic_adapter *, struct sk_buff *, int, - __le16); +void qlcnic_add_lb_filter(struct qlcnic_adapter *, struct sk_buff *, int, u16); int qlcnic_83xx_configure_opmode(struct qlcnic_adapter *adapter); int qlcnic_read_mac_addr(struct qlcnic_adapter *); int qlcnic_setup_netdev(struct qlcnic_adapter *, struct net_device *, int); @@ -1604,7 +1603,7 @@ struct qlcnic_hardware_ops { int (*get_nic_info) (struct qlcnic_adapter *, struct qlcnic_info *, u8); int (*get_pci_info) (struct qlcnic_adapter *, struct qlcnic_pci_info *); int (*set_nic_info) (struct qlcnic_adapter *, struct qlcnic_info *); - int (*change_macvlan) (struct qlcnic_adapter *, u8*, __le16, u8); + int (*change_macvlan) (struct qlcnic_adapter *, u8*, u16, u8); void (*napi_enable) (struct qlcnic_adapter *); void (*napi_disable) (struct qlcnic_adapter *); void (*config_intr_coal) (struct qlcnic_adapter *); @@ -1613,7 +1612,7 @@ struct qlcnic_hardware_ops { int (*config_loopback) (struct qlcnic_adapter *, u8); int (*clear_loopback) (struct qlcnic_adapter *, u8); int (*config_promisc_mode) (struct qlcnic_adapter *, u32); - void (*change_l2_filter) (struct qlcnic_adapter *, u64 *, __le16); + void (*change_l2_filter) (struct qlcnic_adapter *, u64 *, u16); int (*get_board_info) (struct qlcnic_adapter *); }; @@ -1755,7 +1754,7 @@ static inline int qlcnic_set_nic_info(struct qlcnic_adapter *adapter, } static inline int qlcnic_sre_macaddr_change(struct qlcnic_adapter *adapter, - u8 *addr, __le16 id, u8 cmd) + u8 *addr, u16 id, u8 cmd) { return adapter->ahw->hw_ops->change_macvlan(adapter, addr, id, cmd); } @@ -1814,7 +1813,7 @@ static inline int qlcnic_nic_set_promisc(struct qlcnic_adapter *adapter, } static inline void qlcnic_change_filter(struct qlcnic_adapter *adapter, - u64 *addr, __le16 id) + u64 *addr, u16 id) { adapter->ahw->hw_ops->change_l2_filter(adapter, addr, id); } diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c index 7d0ebae..277fea1 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c @@ -1790,7 +1790,7 @@ static void qlcnic_83xx_set_interface_id_macaddr(struct qlcnic_adapter *adapter, } int qlcnic_83xx_sre_macaddr_change(struct qlcnic_adapter *adapter, u8 *addr, - __le16 vlan_id, u8 op) + u16 vlan_id, u8 op) { int err; u32 *buf, temp = 0; @@ -1807,7 +1807,7 @@ int qlcnic_83xx_sre_macaddr_change(struct qlcnic_adapter *adapter, u8 *addr, cmd.req.arg[1] = op | (1 << 8); qlcnic_83xx_set_interface_id_macaddr(adapter, &temp); cmd.req.arg[1] |= temp; - mv.vlan = le16_to_cpu(vlan_id); + mv.vlan = vlan_id; mv.mac_addr0 = addr[0]; mv.mac_addr1 = addr[1]; mv.mac_addr2 = addr[2]; @@ -1826,7 +1826,7 @@ int qlcnic_83xx_sre_macaddr_change(struct qlcnic_adapter *adapter, u8 *addr, } void qlcnic_83xx_change_l2_filter(struct qlcnic_adapter *adapter, u64 *addr, - __le16 vlan_id) + u16 vlan_id) { u8 mac[ETH_ALEN]; memcpy(&mac, addr, ETH_ALEN); diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.h b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.h index 32ed4b4..7e201cd 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.h +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.h @@ -501,7 +501,7 @@ int qlcnic_83xx_clear_lb_mode(struct qlcnic_adapter *, u8); int qlcnic_83xx_config_hw_lro(struct qlcnic_adapter *, int); int qlcnic_83xx_config_rss(struct qlcnic_adapter *, int); int qlcnic_83xx_config_intr_coalesce(struct qlcnic_adapter *); -void qlcnic_83xx_change_l2_filter(struct qlcnic_adapter *, u64 *, __le16); +void qlcnic_83xx_change_l2_filter(struct qlcnic_adapter *, u64 *, u16); int qlcnic_83xx_get_pci_info(struct qlcnic_adapter *, struct qlcnic_pci_info *); int qlcnic_83xx_set_nic_info(struct qlcnic_adapter *, struct qlcnic_info *); void qlcnic_83xx_register_nic_idc_func(struct qlcnic_adapter *, int); @@ -523,7 +523,7 @@ int qlcnic_83xx_get_nic_info(struct qlcnic_adapter *, struct qlcnic_info *, u8); int qlcnic_83xx_setup_link_event(struct qlcnic_adapter *, int); void qlcnic_83xx_process_rcv_ring_diag(struct qlcnic_host_sds_ring *); int qlcnic_83xx_config_intrpt(struct qlcnic_adapter *, bool); -int qlcnic_83xx_sre_macaddr_change(struct qlcnic_adapter *, u8 *, __le16, u8); +int qlcnic_83xx_sre_macaddr_change(struct qlcnic_adapter *, u8 *, u16, u8); int qlcnic_83xx_get_mac_address(struct qlcnic_adapter *, u8 *); void qlcnic_83xx_configure_mac(struct qlcnic_adapter *, u8 *, u8, struct qlcnic_cmd_args *); diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c index 253b3ac..c3cbfae 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c @@ -423,7 +423,7 @@ qlcnic_send_cmd_descs(struct qlcnic_adapter *adapter, } int qlcnic_82xx_sre_macaddr_change(struct qlcnic_adapter *adapter, u8 *addr, - __le16 vlan_id, u8 op) + u16 vlan_id, u8 op) { struct qlcnic_nic_req req; struct qlcnic_mac_req *mac_req; @@ -441,7 +441,7 @@ int qlcnic_82xx_sre_macaddr_change(struct qlcnic_adapter *adapter, u8 *addr, memcpy(mac_req->mac_addr, addr, 6); vlan_req = (struct qlcnic_vlan_req *)&req.words[1]; - vlan_req->vlan_id = vlan_id; + vlan_req->vlan_id = cpu_to_le16(vlan_id); return qlcnic_send_cmd_descs(adapter, (struct cmd_desc_type0 *)&req, 1); } diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.h b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.h index e862a77..95b1b57 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.h +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.h @@ -159,7 +159,7 @@ int qlcnic_82xx_nic_set_promisc(struct qlcnic_adapter *adapter, u32); int qlcnic_82xx_napi_add(struct qlcnic_adapter *adapter, struct net_device *netdev); void qlcnic_82xx_change_filter(struct qlcnic_adapter *adapter, - u64 *uaddr, __le16 vlan_id); + u64 *uaddr, u16 vlan_id); void qlcnic_82xx_config_intr_coalesce(struct qlcnic_adapter *adapter); int qlcnic_82xx_config_rss(struct qlcnic_adapter *adapter, int); void qlcnic_82xx_config_ipaddr(struct qlcnic_adapter *adapter, @@ -181,7 +181,7 @@ int qlcnic_82xx_fw_cmd_create_tx_ctx(struct qlcnic_adapter *, void qlcnic_82xx_fw_cmd_del_rx_ctx(struct qlcnic_adapter *); void qlcnic_82xx_fw_cmd_del_tx_ctx(struct qlcnic_adapter *, struct qlcnic_host_tx_ring *); -int qlcnic_82xx_sre_macaddr_change(struct qlcnic_adapter *, u8 *, __le16, u8); +int qlcnic_82xx_sre_macaddr_change(struct qlcnic_adapter *, u8 *, u16, u8); int qlcnic_82xx_get_mac_address(struct qlcnic_adapter *, u8*); int qlcnic_82xx_get_nic_info(struct qlcnic_adapter *, struct qlcnic_info *, u8); int qlcnic_82xx_set_nic_info(struct qlcnic_adapter *, struct qlcnic_info *); diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c index 910346d..791e1a2 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c @@ -162,7 +162,7 @@ static inline int qlcnic_82xx_is_lb_pkt(u64 sts_data) } void qlcnic_add_lb_filter(struct qlcnic_adapter *adapter, struct sk_buff *skb, - int loopback_pkt, __le16 vlan_id) + int loopback_pkt, u16 vlan_id) { struct ethhdr *phdr = (struct ethhdr *)(skb->data); struct qlcnic_filter *fil, *tmp_fil; @@ -240,7 +240,7 @@ void qlcnic_add_lb_filter(struct qlcnic_adapter *adapter, struct sk_buff *skb, } void qlcnic_82xx_change_filter(struct qlcnic_adapter *adapter, u64 *uaddr, - __le16 vlan_id) + u16 vlan_id) { struct cmd_desc_type0 *hwdesc; struct qlcnic_nic_req *req; @@ -265,7 +265,7 @@ void qlcnic_82xx_change_filter(struct qlcnic_adapter *adapter, u64 *uaddr, memcpy(mac_req->mac_addr, &uaddr, ETH_ALEN); vlan_req = (struct qlcnic_vlan_req *)&req->words[1]; - vlan_req->vlan_id = vlan_id; + vlan_req->vlan_id = cpu_to_le16(vlan_id); tx_ring->producer = get_next_index(producer, tx_ring->num_desc); smp_mb(); @@ -281,7 +281,7 @@ static void qlcnic_send_filter(struct qlcnic_adapter *adapter, struct net_device *netdev = adapter->netdev; struct ethhdr *phdr = (struct ethhdr *)(skb->data); u64 src_addr = 0; - __le16 vlan_id = 0; + u16 vlan_id = 0; u8 hindex; if (ether_addr_equal(phdr->h_source, adapter->mac_addr)) @@ -1028,8 +1028,7 @@ qlcnic_process_rcv(struct qlcnic_adapter *adapter, (adapter->flags & QLCNIC_ESWITCH_ENABLED)) { t_vid = 0; is_lb_pkt = qlcnic_82xx_is_lb_pkt(sts_data0); - qlcnic_add_lb_filter(adapter, skb, is_lb_pkt, - cpu_to_le16(t_vid)); + qlcnic_add_lb_filter(adapter, skb, is_lb_pkt, t_vid); } if (length > rds_ring->skb_size) @@ -1106,8 +1105,7 @@ qlcnic_process_lro(struct qlcnic_adapter *adapter, (adapter->flags & QLCNIC_ESWITCH_ENABLED)) { t_vid = 0; is_lb_pkt = qlcnic_82xx_is_lb_pkt(sts_data0); - qlcnic_add_lb_filter(adapter, skb, is_lb_pkt, - cpu_to_le16(t_vid)); + qlcnic_add_lb_filter(adapter, skb, is_lb_pkt, t_vid); } if (timestamp) @@ -1499,8 +1497,7 @@ qlcnic_83xx_process_rcv(struct qlcnic_adapter *adapter, (adapter->flags & QLCNIC_ESWITCH_ENABLED)) { t_vid = 0; is_lb_pkt = qlcnic_83xx_is_lb_pkt(sts_data[1], 0); - qlcnic_add_lb_filter(adapter, skb, is_lb_pkt, - cpu_to_le16(t_vid)); + qlcnic_add_lb_filter(adapter, skb, is_lb_pkt, t_vid); } if (length > rds_ring->skb_size) @@ -1569,8 +1566,7 @@ qlcnic_83xx_process_lro(struct qlcnic_adapter *adapter, (adapter->flags & QLCNIC_ESWITCH_ENABLED)) { t_vid = 0; is_lb_pkt = qlcnic_83xx_is_lb_pkt(sts_data[1], 1); - qlcnic_add_lb_filter(adapter, skb, is_lb_pkt, - cpu_to_le16(t_vid)); + qlcnic_add_lb_filter(adapter, skb, is_lb_pkt, t_vid); } if (qlcnic_83xx_is_tstamp(sts_data[1])) data_offset = l4_hdr_offset + QLCNIC_TCP_TS_HDR_SIZE; diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c index bed5056..3a86e16 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c @@ -548,7 +548,7 @@ err_out: static int qlcnic_sriov_cfg_vf_def_mac(struct qlcnic_adapter *adapter, struct qlcnic_vport *vp, - u16 func, __le16 vlan, u8 op) + u16 func, u16 vlan, u8 op) { struct qlcnic_cmd_args cmd; struct qlcnic_macvlan_mbx mv; @@ -574,7 +574,7 @@ static int qlcnic_sriov_cfg_vf_def_mac(struct qlcnic_adapter *adapter, cmd.req.arg[1] |= ((vpid & 0xffff) << 16) | BIT_31; addr = vp->mac; - mv.vlan = le16_to_cpu(vlan); + mv.vlan = vlan; mv.mac_addr0 = addr[0]; mv.mac_addr1 = addr[1]; mv.mac_addr2 = addr[2]; -- 1.5.6 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH net-next v2 7/7] qlcnic: Update version to 5.2.41 2013-04-17 17:05 [PATCH net-next v2 0/7] Bug fixes and enhancements Shahed Shaikh ` (5 preceding siblings ...) 2013-04-17 17:05 ` [PATCH net-next v2 6/7] qlcnic: Fix endian data type Shahed Shaikh @ 2013-04-17 17:05 ` Shahed Shaikh 2013-04-17 17:32 ` [PATCH net-next v2 0/7] Bug fixes and enhancements David Miller 7 siblings, 0 replies; 11+ messages in thread From: Shahed Shaikh @ 2013-04-17 17:05 UTC (permalink / raw) To: davem; +Cc: netdev, Dept_NX_Linux_NIC_Driver, Shahed Shaikh From: Shahed Shaikh <shahed.shaikh@qlogic.com> Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com> --- drivers/net/ethernet/qlogic/qlcnic/qlcnic.h | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h b/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h index 8bcc543..22f3418 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h @@ -38,8 +38,8 @@ #define _QLCNIC_LINUX_MAJOR 5 #define _QLCNIC_LINUX_MINOR 2 -#define _QLCNIC_LINUX_SUBVERSION 40 -#define QLCNIC_LINUX_VERSIONID "5.2.40" +#define _QLCNIC_LINUX_SUBVERSION 41 +#define QLCNIC_LINUX_VERSIONID "5.2.41" #define QLCNIC_DRV_IDC_VER 0x01 #define QLCNIC_DRIVER_VERSION ((_QLCNIC_LINUX_MAJOR << 16) |\ (_QLCNIC_LINUX_MINOR << 8) | (_QLCNIC_LINUX_SUBVERSION)) -- 1.5.6 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH net-next v2 0/7] Bug fixes and enhancements 2013-04-17 17:05 [PATCH net-next v2 0/7] Bug fixes and enhancements Shahed Shaikh ` (6 preceding siblings ...) 2013-04-17 17:05 ` [PATCH net-next v2 7/7] qlcnic: Update version to 5.2.41 Shahed Shaikh @ 2013-04-17 17:32 ` David Miller 7 siblings, 0 replies; 11+ messages in thread From: David Miller @ 2013-04-17 17:32 UTC (permalink / raw) To: shahed.shaikh; +Cc: netdev, Dept_NX_Linux_NIC_Driver If they are genuine bug fixes they should be targetted at 'net' not 'net-next'. If there is a reason why that shouldn't be the case you must explain this explicitly. I've tossed this entire series, you guys should know better by now, seriously. ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2013-04-17 18:36 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-04-17 17:05 [PATCH net-next v2 0/7] Bug fixes and enhancements Shahed Shaikh 2013-04-17 17:05 ` [PATCH net-next v2 1/7] qlcnic: Fix typo in logs Shahed Shaikh 2013-04-17 17:05 ` [PATCH net-next v2 2/7] qlcnic: Enable Interrupt Coalescing for 83xx adapter Shahed Shaikh 2013-04-17 17:05 ` [PATCH net-next v2 3/7] qlcnic: Enhanced channel configuration logs Shahed Shaikh 2013-04-17 17:48 ` Sergei Shtylyov 2013-04-17 17:05 ` [PATCH net-next v2 4/7] qlcnic: Stop traffic before performing loopback test Shahed Shaikh 2013-04-17 17:05 ` [PATCH net-next v2 5/7] qlcnic: fix TSO race condition Shahed Shaikh 2013-04-17 18:36 ` Eric Dumazet 2013-04-17 17:05 ` [PATCH net-next v2 6/7] qlcnic: Fix endian data type Shahed Shaikh 2013-04-17 17:05 ` [PATCH net-next v2 7/7] qlcnic: Update version to 5.2.41 Shahed Shaikh 2013-04-17 17:32 ` [PATCH net-next v2 0/7] Bug fixes and enhancements David Miller
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.