Commit f4979b41 authored by David S. Miller's avatar David S. Miller

Merge branch 'hinic-BugFixes'

Luo bin says:

====================
hinic: BugFixes

the bug fixed in patch #2 has been present since the first commit.
the bugs fixed in patch #1 and patch #3 have been present since the
following commits:
patch #1: 352f58b0 ("net-next/hinic: Set Rxq irq to specific cpu for NUMA")
patch #3: 421e9526 ("hinic: add rss support")
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents a2f2ef4a 386d4716
...@@ -297,6 +297,7 @@ static int set_hw_ioctxt(struct hinic_hwdev *hwdev, unsigned int rq_depth, ...@@ -297,6 +297,7 @@ static int set_hw_ioctxt(struct hinic_hwdev *hwdev, unsigned int rq_depth,
} }
hw_ioctxt.func_idx = HINIC_HWIF_FUNC_IDX(hwif); hw_ioctxt.func_idx = HINIC_HWIF_FUNC_IDX(hwif);
hw_ioctxt.ppf_idx = HINIC_HWIF_PPF_IDX(hwif);
hw_ioctxt.set_cmdq_depth = HW_IOCTXT_SET_CMDQ_DEPTH_DEFAULT; hw_ioctxt.set_cmdq_depth = HW_IOCTXT_SET_CMDQ_DEPTH_DEFAULT;
hw_ioctxt.cmdq_depth = 0; hw_ioctxt.cmdq_depth = 0;
......
...@@ -151,8 +151,8 @@ struct hinic_cmd_hw_ioctxt { ...@@ -151,8 +151,8 @@ struct hinic_cmd_hw_ioctxt {
u8 lro_en; u8 lro_en;
u8 rsvd3; u8 rsvd3;
u8 ppf_idx;
u8 rsvd4; u8 rsvd4;
u8 rsvd5;
u16 rq_depth; u16 rq_depth;
u16 rx_buf_sz_idx; u16 rx_buf_sz_idx;
......
...@@ -137,6 +137,7 @@ ...@@ -137,6 +137,7 @@
#define HINIC_HWIF_FUNC_IDX(hwif) ((hwif)->attr.func_idx) #define HINIC_HWIF_FUNC_IDX(hwif) ((hwif)->attr.func_idx)
#define HINIC_HWIF_PCI_INTF(hwif) ((hwif)->attr.pci_intf_idx) #define HINIC_HWIF_PCI_INTF(hwif) ((hwif)->attr.pci_intf_idx)
#define HINIC_HWIF_PF_IDX(hwif) ((hwif)->attr.pf_idx) #define HINIC_HWIF_PF_IDX(hwif) ((hwif)->attr.pf_idx)
#define HINIC_HWIF_PPF_IDX(hwif) ((hwif)->attr.ppf_idx)
#define HINIC_FUNC_TYPE(hwif) ((hwif)->attr.func_type) #define HINIC_FUNC_TYPE(hwif) ((hwif)->attr.func_type)
#define HINIC_IS_PF(hwif) (HINIC_FUNC_TYPE(hwif) == HINIC_PF) #define HINIC_IS_PF(hwif) (HINIC_FUNC_TYPE(hwif) == HINIC_PF)
......
...@@ -94,6 +94,7 @@ struct hinic_rq { ...@@ -94,6 +94,7 @@ struct hinic_rq {
struct hinic_wq *wq; struct hinic_wq *wq;
struct cpumask affinity_mask;
u32 irq; u32 irq;
u16 msix_entry; u16 msix_entry;
......
...@@ -356,7 +356,8 @@ static void hinic_enable_rss(struct hinic_dev *nic_dev) ...@@ -356,7 +356,8 @@ static void hinic_enable_rss(struct hinic_dev *nic_dev)
if (!num_cpus) if (!num_cpus)
num_cpus = num_online_cpus(); num_cpus = num_online_cpus();
nic_dev->num_qps = min_t(u16, nic_dev->max_qps, num_cpus); nic_dev->num_qps = hinic_hwdev_num_qps(hwdev);
nic_dev->num_qps = min_t(u16, nic_dev->num_qps, num_cpus);
nic_dev->rss_limit = nic_dev->num_qps; nic_dev->rss_limit = nic_dev->num_qps;
nic_dev->num_rss = nic_dev->num_qps; nic_dev->num_rss = nic_dev->num_qps;
......
...@@ -475,7 +475,6 @@ static int rx_request_irq(struct hinic_rxq *rxq) ...@@ -475,7 +475,6 @@ static int rx_request_irq(struct hinic_rxq *rxq)
struct hinic_hwdev *hwdev = nic_dev->hwdev; struct hinic_hwdev *hwdev = nic_dev->hwdev;
struct hinic_rq *rq = rxq->rq; struct hinic_rq *rq = rxq->rq;
struct hinic_qp *qp; struct hinic_qp *qp;
struct cpumask mask;
int err; int err;
rx_add_napi(rxq); rx_add_napi(rxq);
...@@ -492,8 +491,8 @@ static int rx_request_irq(struct hinic_rxq *rxq) ...@@ -492,8 +491,8 @@ static int rx_request_irq(struct hinic_rxq *rxq)
} }
qp = container_of(rq, struct hinic_qp, rq); qp = container_of(rq, struct hinic_qp, rq);
cpumask_set_cpu(qp->q_id % num_online_cpus(), &mask); cpumask_set_cpu(qp->q_id % num_online_cpus(), &rq->affinity_mask);
return irq_set_affinity_hint(rq->irq, &mask); return irq_set_affinity_hint(rq->irq, &rq->affinity_mask);
} }
static void rx_free_irq(struct hinic_rxq *rxq) static void rx_free_irq(struct hinic_rxq *rxq)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment