From e6b91feae6c98b06982a11a073d9c80ef13aa883 Mon Sep 17 00:00:00 2001 From: Vladimir Sokolovsky Date: Mon, 3 Feb 2014 17:20:54 +0200 Subject: [PATCH] Refreshed linux-next-cherry-picks to be applied cleanly by git am Signed-off-by: Vladimir Sokolovsky --- ...leaner-implementation-of-is_t4-is_t5.patch | 77 +++++++++---------- ...-new-scheme-to-update-T4-T5-firmware.patch | 47 +++++------ ...b4-Reserve-stid-0-for-T4-T5-adapters.patch | 11 +-- ...P-as-protocol-when-creating-server-f.patch | 11 +-- ...-Assign-filter-server-TIDs-properly.patch} | 13 +++- ...-to-correctly-calculate-tuple-fields.patch | 35 ++++----- ...ulate-the-filter-server-TID-properly.patch | 9 +-- ...r-filters-are-supported-only-for-IPv.patch | 9 +-- ...xgb4_select_ntuple-to-correctly-calc.patch | 21 ++--- ...ib_user_sdma_pin_pages-to-use-get_us.patch | 7 +- .../0011-IB-qib-Fix-txselect-regression.patch | 7 +- 11 files changed, 103 insertions(+), 144 deletions(-) rename linux-next-cherry-picks/{0005-cxgb4-Assign-filter-server-TIDS-Account-for-stid.patch => 0005-cxgb4-Assign-filter-server-TIDs-properly.patch} (87%) diff --git a/linux-next-cherry-picks/0001-cxgb4-Much-cleaner-implementation-of-is_t4-is_t5.patch b/linux-next-cherry-picks/0001-cxgb4-Much-cleaner-implementation-of-is_t4-is_t5.patch index 89938d1..586cb4f 100644 --- a/linux-next-cherry-picks/0001-cxgb4-Much-cleaner-implementation-of-is_t4-is_t5.patch +++ b/linux-next-cherry-picks/0001-cxgb4-Much-cleaner-implementation-of-is_t4-is_t5.patch @@ -1,6 +1,4 @@ -From d14807dd8e7eaa41a8fee5fc3acbdaf2a0258b76 Mon Sep 17 00:00:00 2001 From: Hariprasad Shenai -Date: Tue, 3 Dec 2013 17:05:56 +0530 Subject: [PATCH] cxgb4: Much cleaner implementation of is_t4()/is_t5() Signed-off-by: Hariprasad Shenai @@ -14,10 +12,10 @@ Signed-off-by: David S. Miller 5 files changed, 73 insertions(+), 70 deletions(-) diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h b/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h -index ecd2fb3..9710a16 100644 +index xxxxxxx..xxxxxxx xxxxxx --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h -@@ -240,6 +240,26 @@ struct pci_params { +@@ -241,6 +241,26 @@ struct pci_params { unsigned char width; }; @@ -44,7 +42,7 @@ index ecd2fb3..9710a16 100644 struct adapter_params { struct tp_params tp; struct vpd_params vpd; -@@ -259,7 +279,7 @@ struct adapter_params { +@@ -260,7 +280,7 @@ struct adapter_params { unsigned char nports; /* # of ethernet ports */ unsigned char portvec; @@ -53,7 +51,7 @@ index ecd2fb3..9710a16 100644 unsigned char offload; unsigned char bypass; -@@ -512,25 +532,6 @@ struct sge { +@@ -530,25 +550,6 @@ struct sge { struct l2t_data; @@ -79,7 +77,7 @@ index ecd2fb3..9710a16 100644 #ifdef CONFIG_PCI_IOV /* T4 supports SRIOV on PF0-3 and T5 on PF0-7. However, the Serial -@@ -715,12 +716,12 @@ enum { +@@ -733,12 +734,12 @@ enum { static inline int is_t5(enum chip_type chip) { @@ -95,10 +93,10 @@ index ecd2fb3..9710a16 100644 static inline u32 t4_read_reg(struct adapter *adap, u32 reg_addr) diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c -index 8b929ee..35933cd 100644 +index xxxxxxx..xxxxxxx xxxxxx --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c -@@ -1083,7 +1083,7 @@ static int upgrade_fw(struct adapter *adap) +@@ -1099,7 +1099,7 @@ static int upgrade_fw(struct adapter *adap) struct device *dev = adap->pdev_dev; char *fw_file_name; @@ -107,7 +105,7 @@ index 8b929ee..35933cd 100644 case CHELSIO_T4: fw_file_name = FW_FNAME; exp_major = FW_VERSION_MAJOR; -@@ -1093,7 +1093,7 @@ static int upgrade_fw(struct adapter *adap) +@@ -1109,7 +1109,7 @@ static int upgrade_fw(struct adapter *adap) exp_major = FW_VERSION_MAJOR_T5; break; default: @@ -116,7 +114,7 @@ index 8b929ee..35933cd 100644 return -EINVAL; } -@@ -1415,7 +1415,7 @@ static int get_sset_count(struct net_device *dev, int sset) +@@ -1431,7 +1431,7 @@ static int get_sset_count(struct net_device *dev, int sset) static int get_regs_len(struct net_device *dev) { struct adapter *adap = netdev2adap(dev); @@ -125,7 +123,7 @@ index 8b929ee..35933cd 100644 return T4_REGMAP_SIZE; else return T5_REGMAP_SIZE; -@@ -1499,7 +1499,7 @@ static void get_stats(struct net_device *dev, struct ethtool_stats *stats, +@@ -1515,7 +1515,7 @@ static void get_stats(struct net_device *dev, struct ethtool_stats *stats, data += sizeof(struct port_stats) / sizeof(u64); collect_sge_port_stats(adapter, pi, (struct queue_port_stats *)data); data += sizeof(struct queue_port_stats) / sizeof(u64); @@ -134,7 +132,7 @@ index 8b929ee..35933cd 100644 t4_write_reg(adapter, SGE_STAT_CFG, STATSOURCE_T5(7)); val1 = t4_read_reg(adapter, SGE_STAT_TOTAL); val2 = t4_read_reg(adapter, SGE_STAT_MATCH); -@@ -1521,8 +1521,8 @@ static void get_stats(struct net_device *dev, struct ethtool_stats *stats, +@@ -1537,8 +1537,8 @@ static void get_stats(struct net_device *dev, struct ethtool_stats *stats, */ static inline unsigned int mk_adap_vers(const struct adapter *ap) { @@ -145,7 +143,7 @@ index 8b929ee..35933cd 100644 } static void reg_block_dump(struct adapter *ap, void *buf, unsigned int start, -@@ -2189,7 +2189,7 @@ static void get_regs(struct net_device *dev, struct ethtool_regs *regs, +@@ -2205,7 +2205,7 @@ static void get_regs(struct net_device *dev, struct ethtool_regs *regs, static const unsigned int *reg_ranges; int arr_size = 0, buf_size = 0; @@ -154,7 +152,7 @@ index 8b929ee..35933cd 100644 reg_ranges = &t4_reg_ranges[0]; arr_size = ARRAY_SIZE(t4_reg_ranges); buf_size = T4_REGMAP_SIZE; -@@ -2967,7 +2967,7 @@ static int setup_debugfs(struct adapter *adap) +@@ -3054,7 +3054,7 @@ static int setup_debugfs(struct adapter *adap) size = t4_read_reg(adap, MA_EDRAM1_BAR); add_debugfs_mem(adap, "edc1", MEM_EDC1, EDRAM_SIZE_GET(size)); } @@ -163,7 +161,7 @@ index 8b929ee..35933cd 100644 size = t4_read_reg(adap, MA_EXT_MEMORY_BAR); if (i & EXT_MEM_ENABLE) add_debugfs_mem(adap, "mc", MEM_MC, -@@ -3419,7 +3419,7 @@ unsigned int cxgb4_dbfifo_count(const struct net_device *dev, int lpfifo) +@@ -3506,7 +3506,7 @@ unsigned int cxgb4_dbfifo_count(const struct net_device *dev, int lpfifo) v1 = t4_read_reg(adap, A_SGE_DBFIFO_STATUS); v2 = t4_read_reg(adap, SGE_DBFIFO_STATUS2); @@ -172,7 +170,7 @@ index 8b929ee..35933cd 100644 lp_count = G_LP_COUNT(v1); hp_count = G_HP_COUNT(v1); } else { -@@ -3588,7 +3588,7 @@ static void drain_db_fifo(struct adapter *adap, int usecs) +@@ -3675,7 +3675,7 @@ static void drain_db_fifo(struct adapter *adap, int usecs) do { v1 = t4_read_reg(adap, A_SGE_DBFIFO_STATUS); v2 = t4_read_reg(adap, SGE_DBFIFO_STATUS2); @@ -181,7 +179,7 @@ index 8b929ee..35933cd 100644 lp_count = G_LP_COUNT(v1); hp_count = G_HP_COUNT(v1); } else { -@@ -3708,7 +3708,7 @@ static void process_db_drop(struct work_struct *work) +@@ -3795,7 +3795,7 @@ static void process_db_drop(struct work_struct *work) adap = container_of(work, struct adapter, db_drop_task); @@ -190,7 +188,7 @@ index 8b929ee..35933cd 100644 disable_dbs(adap); notify_rdma_uld(adap, CXGB4_CONTROL_DB_DROP); drain_db_fifo(adap, 1); -@@ -3753,7 +3753,7 @@ static void process_db_drop(struct work_struct *work) +@@ -3840,7 +3840,7 @@ static void process_db_drop(struct work_struct *work) void t4_db_full(struct adapter *adap) { @@ -199,7 +197,7 @@ index 8b929ee..35933cd 100644 t4_set_reg_field(adap, SGE_INT_ENABLE3, DBFIFO_HP_INT | DBFIFO_LP_INT, 0); queue_work(workq, &adap->db_full_task); -@@ -3762,7 +3762,7 @@ void t4_db_full(struct adapter *adap) +@@ -3849,7 +3849,7 @@ void t4_db_full(struct adapter *adap) void t4_db_dropped(struct adapter *adap) { @@ -208,7 +206,7 @@ index 8b929ee..35933cd 100644 queue_work(workq, &adap->db_drop_task); } -@@ -3789,7 +3789,7 @@ static void uld_attach(struct adapter *adap, unsigned int uld) +@@ -3876,7 +3876,7 @@ static void uld_attach(struct adapter *adap, unsigned int uld) lli.nchan = adap->params.nports; lli.nports = adap->params.nports; lli.wr_cred = adap->params.ofldq_wr_cred; @@ -217,7 +215,7 @@ index 8b929ee..35933cd 100644 lli.iscsi_iolen = MAXRXDATA_GET(t4_read_reg(adap, TP_PARA_REG2)); lli.udb_density = 1 << QUEUESPERPAGEPF0_GET( t4_read_reg(adap, SGE_EGRESS_QUEUES_PER_PAGE_PF) >> -@@ -4483,7 +4483,7 @@ static void setup_memwin(struct adapter *adap) +@@ -4611,7 +4611,7 @@ static void setup_memwin(struct adapter *adap) u32 bar0, mem_win0_base, mem_win1_base, mem_win2_base; bar0 = pci_resource_start(adap->pdev, 0); /* truncation intentional */ @@ -226,7 +224,7 @@ index 8b929ee..35933cd 100644 mem_win0_base = bar0 + MEMWIN0_BASE; mem_win1_base = bar0 + MEMWIN1_BASE; mem_win2_base = bar0 + MEMWIN2_BASE; -@@ -4686,7 +4686,7 @@ static int adap_init0_config(struct adapter *adapter, int reset) +@@ -4814,7 +4814,7 @@ static int adap_init0_config(struct adapter *adapter, int reset) * then use that. Otherwise, use the configuration file stored * in the adapter flash ... */ @@ -235,7 +233,7 @@ index 8b929ee..35933cd 100644 case CHELSIO_T4: fw_config_file = FW_CFNAME; break; -@@ -5787,7 +5787,7 @@ static void print_port_info(const struct net_device *dev) +@@ -5927,7 +5927,7 @@ static void print_port_info(const struct net_device *dev) netdev_info(dev, "Chelsio %s rev %d %s %sNIC PCIe x%d%s%s\n", adap->params.vpd.id, @@ -244,7 +242,7 @@ index 8b929ee..35933cd 100644 is_offload(adap) ? "R" : "", adap->params.pci.width, spd, (adap->flags & USING_MSIX) ? " MSI-X" : (adap->flags & USING_MSI) ? " MSI" : ""); -@@ -5910,7 +5910,7 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent) +@@ -6052,7 +6052,7 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent) if (err) goto out_unmap_bar0; @@ -253,7 +251,7 @@ index 8b929ee..35933cd 100644 s_qpp = QUEUESPERPAGEPF1 * adapter->fn; qpp = 1 << QUEUESPERPAGEPF0_GET(t4_read_reg(adapter, SGE_EGRESS_QUEUES_PER_PAGE_PF) >> s_qpp); -@@ -6064,7 +6064,7 @@ sriov: +@@ -6222,7 +6222,7 @@ sriov: out_free_dev: free_some_resources(adapter); out_unmap_bar: @@ -262,7 +260,7 @@ index 8b929ee..35933cd 100644 iounmap(adapter->bar2); out_unmap_bar0: iounmap(adapter->regs); -@@ -6116,7 +6116,7 @@ static void remove_one(struct pci_dev *pdev) +@@ -6275,7 +6275,7 @@ static void remove_one(struct pci_dev *pdev) free_some_resources(adapter); iounmap(adapter->regs); @@ -272,10 +270,10 @@ index 8b929ee..35933cd 100644 kfree(adapter); pci_disable_pcie_error_reporting(pdev); diff --git a/drivers/net/ethernet/chelsio/cxgb4/sge.c b/drivers/net/ethernet/chelsio/cxgb4/sge.c -index ac311f5..cc380c3 100644 +index xxxxxxx..xxxxxxx xxxxxx --- a/drivers/net/ethernet/chelsio/cxgb4/sge.c +++ b/drivers/net/ethernet/chelsio/cxgb4/sge.c -@@ -509,7 +509,7 @@ static inline void ring_fl_db(struct adapter *adap, struct sge_fl *q) +@@ -528,7 +528,7 @@ static inline void ring_fl_db(struct adapter *adap, struct sge_fl *q) u32 val; if (q->pend_cred >= 8) { val = PIDX(q->pend_cred / 8); @@ -284,7 +282,7 @@ index ac311f5..cc380c3 100644 val |= DBTYPE(1); wmb(); t4_write_reg(adap, MYPF_REG(SGE_PF_KDOORBELL), DBPRIO(1) | -@@ -847,7 +847,7 @@ static inline void ring_tx_db(struct adapter *adap, struct sge_txq *q, int n) +@@ -870,7 +870,7 @@ static inline void ring_tx_db(struct adapter *adap, struct sge_txq *q, int n) wmb(); /* write descriptors before telling HW */ spin_lock(&q->db_lock); if (!q->db_disabled) { @@ -293,7 +291,7 @@ index ac311f5..cc380c3 100644 t4_write_reg(adap, MYPF_REG(SGE_PF_KDOORBELL), QID(q->cntxt_id) | PIDX(n)); } else { -@@ -1596,7 +1596,7 @@ static noinline int handle_trace_pkt(struct adapter *adap, +@@ -1648,7 +1648,7 @@ static noinline int handle_trace_pkt(struct adapter *adap, return 0; } @@ -302,16 +300,16 @@ index ac311f5..cc380c3 100644 __skb_pull(skb, sizeof(struct cpl_trace_pkt)); else __skb_pull(skb, sizeof(struct cpl_t5_trace_pkt)); -@@ -1661,7 +1661,7 @@ int t4_ethrx_handler(struct sge_rspq *q, const __be64 *rsp, +@@ -1726,7 +1726,7 @@ int t4_ethrx_handler(struct sge_rspq *q, const __be64 *rsp, const struct cpl_rx_pkt *pkt; struct sge_eth_rxq *rxq = container_of(q, struct sge_eth_rxq, rspq); struct sge *s = &q->adap->sge; - int cpl_trace_pkt = is_t4(q->adap->chip) ? + int cpl_trace_pkt = is_t4(q->adap->params.chip) ? CPL_TRACE_PKT : CPL_TRACE_PKT_T5; - - if (unlikely(*(u8 *)rsp == cpl_trace_pkt)) -@@ -2182,7 +2182,7 @@ err: + #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 1, 0) + struct port_info *pi; +@@ -2290,7 +2290,7 @@ err: static void init_txq(struct adapter *adap, struct sge_txq *q, unsigned int id) { q->cntxt_id = id; @@ -320,7 +318,7 @@ index ac311f5..cc380c3 100644 unsigned int s_qpp; unsigned short udb_density; unsigned long qpshift; -@@ -2641,7 +2641,7 @@ static int t4_sge_init_hard(struct adapter *adap) +@@ -2749,7 +2749,7 @@ static int t4_sge_init_hard(struct adapter *adap) * Set up to drop DOORBELL writes when the DOORBELL FIFO overflows * and generate an interrupt when this occurs so we can recover. */ @@ -330,7 +328,7 @@ index ac311f5..cc380c3 100644 V_HP_INT_THRESH(M_HP_INT_THRESH) | V_LP_INT_THRESH(M_LP_INT_THRESH), diff --git a/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c b/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c -index 4cbb2f9..83b5e42 100644 +index xxxxxxx..xxxxxxx xxxxxx --- a/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c +++ b/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c @@ -296,7 +296,7 @@ int t4_mc_read(struct adapter *adap, int idx, u32 addr, __be32 *data, u64 *ecc) @@ -504,7 +502,7 @@ index 4cbb2f9..83b5e42 100644 /* diff --git a/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h b/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h -index ef146c0..a7d8189 100644 +index xxxxxxx..xxxxxxx xxxxxx --- a/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h +++ b/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h @@ -1092,6 +1092,11 @@ @@ -519,6 +517,3 @@ index ef146c0..a7d8189 100644 #define LE_DB_CONFIG 0x19c04 #define HASHEN 0x00100000U --- -1.7.1 - diff --git a/linux-next-cherry-picks/0002-cxgb4-Add-new-scheme-to-update-T4-T5-firmware.patch b/linux-next-cherry-picks/0002-cxgb4-Add-new-scheme-to-update-T4-T5-firmware.patch index c2214ab..46e78a3 100644 --- a/linux-next-cherry-picks/0002-cxgb4-Add-new-scheme-to-update-T4-T5-firmware.patch +++ b/linux-next-cherry-picks/0002-cxgb4-Add-new-scheme-to-update-T4-T5-firmware.patch @@ -1,6 +1,4 @@ -From 16e47624e76b43dbef5671af7b9e26589d7018b9 Mon Sep 17 00:00:00 2001 From: Hariprasad Shenai -Date: Tue, 3 Dec 2013 17:05:58 +0530 Subject: [PATCH] cxgb4: Add new scheme to update T4/T5 firmware Signed-off-by: Hariprasad Shenai @@ -13,12 +11,12 @@ Signed-off-by: David S. Miller 4 files changed, 290 insertions(+), 191 deletions(-) diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h b/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h -index 9710a16..6c93088 100644 +index xxxxxxx..xxxxxxx xxxxxx --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h -@@ -49,13 +49,15 @@ - #include +@@ -50,13 +50,15 @@ #include "cxgb4_uld.h" + #include "t4_hw.h" -#define FW_VERSION_MAJOR 1 -#define FW_VERSION_MINOR 4 @@ -38,7 +36,7 @@ index 9710a16..6c93088 100644 #define CH_WARN(adap, fmt, ...) dev_warn(adap->pdev_dev, fmt, ## __VA_ARGS__) -@@ -287,6 +289,23 @@ struct adapter_params { +@@ -288,6 +290,23 @@ struct adapter_params { unsigned int ofldq_wr_cred; }; @@ -62,7 +60,7 @@ index 9710a16..6c93088 100644 struct trace_params { u32 data[TRACE_LEN / 4]; u32 mask[TRACE_LEN / 4]; -@@ -901,7 +920,11 @@ int get_vpd_params(struct adapter *adapter, struct vpd_params *p); +@@ -919,7 +938,11 @@ int get_vpd_params(struct adapter *adapter, struct vpd_params *p); int t4_load_fw(struct adapter *adapter, const u8 *fw_data, unsigned int size); unsigned int t4_flash_cfg_addr(struct adapter *adapter); int t4_load_cfg(struct adapter *adapter, const u8 *cfg_data, unsigned int size); @@ -76,10 +74,10 @@ index 9710a16..6c93088 100644 int t4_port_init(struct adapter *adap, int mbox, int pf, int vf); void t4_fatal_err(struct adapter *adapter); diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c -index 35933cd..d6b12e0 100644 +index xxxxxxx..xxxxxxx xxxxxx --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c -@@ -276,9 +276,9 @@ static DEFINE_PCI_DEVICE_TABLE(cxgb4_pci_tbl) = { +@@ -275,9 +275,9 @@ static DEFINE_PCI_DEVICE_TABLE(cxgb4_pci_tbl) = { { 0, } }; @@ -91,7 +89,7 @@ index 35933cd..d6b12e0 100644 #define FW5_CFNAME "cxgb4/t5-config.txt" MODULE_DESCRIPTION(DRV_DESC); -@@ -286,7 +286,7 @@ MODULE_AUTHOR("Chelsio Communications"); +@@ -285,7 +285,7 @@ MODULE_AUTHOR("Chelsio Communications"); MODULE_LICENSE("Dual BSD/GPL"); MODULE_VERSION(DRV_VERSION); MODULE_DEVICE_TABLE(pci, cxgb4_pci_tbl); @@ -100,7 +98,7 @@ index 35933cd..d6b12e0 100644 MODULE_FIRMWARE(FW5_FNAME); /* -@@ -1071,72 +1071,6 @@ freeout: t4_free_sge_resources(adap); +@@ -1087,72 +1087,6 @@ freeout: t4_free_sge_resources(adap); } /* @@ -173,7 +171,7 @@ index 35933cd..d6b12e0 100644 * Allocate a chunk of memory using kmalloc or, if that fails, vmalloc. * The allocated memory is cleared. */ -@@ -4668,8 +4602,10 @@ static int adap_init0_config(struct adapter *adapter, int reset) +@@ -4796,8 +4730,10 @@ static int adap_init0_config(struct adapter *adapter, int reset) const struct firmware *cf; unsigned long mtype = 0, maddr = 0; u32 finiver, finicsum, cfcsum; @@ -185,7 +183,7 @@ index 35933cd..d6b12e0 100644 /* * Reset device if necessary. -@@ -4688,7 +4624,7 @@ static int adap_init0_config(struct adapter *adapter, int reset) +@@ -4816,7 +4752,7 @@ static int adap_init0_config(struct adapter *adapter, int reset) */ switch (CHELSIO_CHIP_VERSION(adapter->params.chip)) { case CHELSIO_T4: @@ -194,7 +192,7 @@ index 35933cd..d6b12e0 100644 break; case CHELSIO_T5: fw_config_file = FW5_CFNAME; -@@ -4702,13 +4638,16 @@ static int adap_init0_config(struct adapter *adapter, int reset) +@@ -4830,13 +4766,16 @@ static int adap_init0_config(struct adapter *adapter, int reset) ret = request_firmware(&cf, fw_config_file, adapter->pdev_dev); if (ret < 0) { @@ -213,7 +211,7 @@ index 35933cd..d6b12e0 100644 if (cf->size >= FLASH_CFG_MAX_SIZE) ret = -ENOMEM; else { -@@ -4776,6 +4715,26 @@ static int adap_init0_config(struct adapter *adapter, int reset) +@@ -4904,6 +4843,26 @@ static int adap_init0_config(struct adapter *adapter, int reset) FW_LEN16(caps_cmd)); ret = t4_wr_mbox(adapter, adapter->mbox, &caps_cmd, sizeof(caps_cmd), &caps_cmd); @@ -240,7 +238,7 @@ index 35933cd..d6b12e0 100644 if (ret < 0) goto bye; -@@ -4816,7 +4775,6 @@ static int adap_init0_config(struct adapter *adapter, int reset) +@@ -4944,7 +4903,6 @@ static int adap_init0_config(struct adapter *adapter, int reset) if (ret < 0) goto bye; @@ -248,7 +246,7 @@ index 35933cd..d6b12e0 100644 /* * Return successfully and note that we're operating with parameters * not supplied by the driver, rather than from hard-wired -@@ -4824,11 +4782,8 @@ static int adap_init0_config(struct adapter *adapter, int reset) +@@ -4952,11 +4910,8 @@ static int adap_init0_config(struct adapter *adapter, int reset) */ adapter->flags |= USING_SOFT_PARAMS; dev_info(adapter->pdev_dev, "Successfully configured using Firmware "\ @@ -262,7 +260,7 @@ index 35933cd..d6b12e0 100644 return 0; /* -@@ -4837,9 +4792,9 @@ static int adap_init0_config(struct adapter *adapter, int reset) +@@ -4965,9 +4920,9 @@ static int adap_init0_config(struct adapter *adapter, int reset) * want to issue a warning since this is fairly common.) */ bye: @@ -275,7 +273,7 @@ index 35933cd..d6b12e0 100644 return ret; } -@@ -5086,6 +5041,47 @@ bye: +@@ -5214,6 +5169,47 @@ bye: return ret; } @@ -323,7 +321,7 @@ index 35933cd..d6b12e0 100644 /* * Phase 0 of initialization: contact FW, obtain config, perform basic init. */ -@@ -5123,44 +5119,54 @@ static int adap_init0(struct adapter *adap) +@@ -5251,44 +5247,54 @@ static int adap_init0(struct adapter *adap) * later reporting and B. to warn if the currently loaded firmware * is excessively mismatched relative to the driver.) */ @@ -413,7 +411,7 @@ index 35933cd..d6b12e0 100644 } /* -@@ -5245,7 +5251,7 @@ static int adap_init0(struct adapter *adap) +@@ -5373,7 +5379,7 @@ static int adap_init0(struct adapter *adap) if (ret == -ENOENT) { dev_info(adap->pdev_dev, "No Configuration File present " @@ -423,7 +421,7 @@ index 35933cd..d6b12e0 100644 ret = adap_init0_no_config(adap, reset); } diff --git a/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c b/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c -index 83b5e42..74a6fce 100644 +index xxxxxxx..xxxxxxx xxxxxx --- a/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c +++ b/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c @@ -863,104 +863,169 @@ unlock: @@ -661,7 +659,7 @@ index 83b5e42..74a6fce 100644 * t4_flash_erase_sectors - erase a range of flash sectors * @adapter: the adapter diff --git a/drivers/net/ethernet/chelsio/cxgb4/t4fw_api.h b/drivers/net/ethernet/chelsio/cxgb4/t4fw_api.h -index 6f77ac4..74fea74 100644 +index xxxxxxx..xxxxxxx xxxxxx --- a/drivers/net/ethernet/chelsio/cxgb4/t4fw_api.h +++ b/drivers/net/ethernet/chelsio/cxgb4/t4fw_api.h @@ -2157,7 +2157,7 @@ struct fw_debug_cmd { @@ -685,6 +683,3 @@ index 6f77ac4..74fea74 100644 #define FW_HDR_FW_VER_MAJOR_GET(x) (((x) >> 24) & 0xff) #define FW_HDR_FW_VER_MINOR_GET(x) (((x) >> 16) & 0xff) #define FW_HDR_FW_VER_MICRO_GET(x) (((x) >> 8) & 0xff) --- -1.7.1 - diff --git a/linux-next-cherry-picks/0003-cxgb4-Reserve-stid-0-for-T4-T5-adapters.patch b/linux-next-cherry-picks/0003-cxgb4-Reserve-stid-0-for-T4-T5-adapters.patch index 7899828..a5f64e9 100644 --- a/linux-next-cherry-picks/0003-cxgb4-Reserve-stid-0-for-T4-T5-adapters.patch +++ b/linux-next-cherry-picks/0003-cxgb4-Reserve-stid-0-for-T4-T5-adapters.patch @@ -1,6 +1,4 @@ -From b6f8eaece6d5f0247931b6dac140e6cf876f48de Mon Sep 17 00:00:00 2001 From: Kumar Sanghvi -Date: Wed, 18 Dec 2013 16:38:19 +0530 Subject: [PATCH] cxgb4: Reserve stid 0 for T4/T5 adapters When creating offload server entries, an IPv6 passive connection request @@ -21,10 +19,10 @@ Signed-off-by: David S. Miller 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c -index d6b12e0..f36f8e1 100644 +index xxxxxxx..xxxxxxx xxxxxx --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c -@@ -3134,6 +3134,7 @@ static int tid_init(struct tid_info *t) +@@ -3221,6 +3221,7 @@ static int tid_init(struct tid_info *t) size_t size; unsigned int stid_bmap_size; unsigned int natids = t->natids; @@ -32,7 +30,7 @@ index d6b12e0..f36f8e1 100644 stid_bmap_size = BITS_TO_LONGS(t->nstids + t->nsftids); size = t->ntids * sizeof(*t->tid_tab) + -@@ -3167,6 +3168,11 @@ static int tid_init(struct tid_info *t) +@@ -3254,6 +3255,11 @@ static int tid_init(struct tid_info *t) t->afree = t->atid_tab; } bitmap_zero(t->stid_bmap, t->nstids + t->nsftids); @@ -44,6 +42,3 @@ index d6b12e0..f36f8e1 100644 return 0; } --- -1.7.1 - diff --git a/linux-next-cherry-picks/0004-cxgb4-Include-TCP-as-protocol-when-creating-server-f.patch b/linux-next-cherry-picks/0004-cxgb4-Include-TCP-as-protocol-when-creating-server-f.patch index 157f06f..9a06d88 100644 --- a/linux-next-cherry-picks/0004-cxgb4-Include-TCP-as-protocol-when-creating-server-f.patch +++ b/linux-next-cherry-picks/0004-cxgb4-Include-TCP-as-protocol-when-creating-server-f.patch @@ -1,6 +1,4 @@ -From 7c89e5550ccb2a3118854639d9525847e896c686 Mon Sep 17 00:00:00 2001 From: Kumar Sanghvi -Date: Wed, 18 Dec 2013 16:38:20 +0530 Subject: [PATCH] cxgb4: Include TCP as protocol when creating server filters We were creating LE Workaround Server Filters without specifying @@ -20,10 +18,10 @@ Signed-off-by: David S. Miller 2 files changed, 9 insertions(+), 0 deletions(-) diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c -index f36f8e1..df1d6b8 100644 +index xxxxxxx..xxxxxxx xxxxxx --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c -@@ -4217,6 +4217,11 @@ int cxgb4_create_server_filter(const struct net_device *dev, unsigned int stid, +@@ -4294,6 +4294,11 @@ int cxgb4_create_server_filter(const struct net_device *dev, unsigned int stid, } } @@ -36,7 +34,7 @@ index f36f8e1..df1d6b8 100644 f->fs.iq = queue; /* Mark filter as locked */ diff --git a/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h b/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h -index 0a8205d..d3dd218 100644 +index xxxxxxx..xxxxxxx xxxxxx --- a/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h +++ b/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h @@ -1171,6 +1171,10 @@ @@ -50,6 +48,3 @@ index 0a8205d..d3dd218 100644 #define S_PORT 1 #define V_PORT(x) ((x) << S_PORT) #define F_PORT V_PORT(1U) --- -1.7.1 - diff --git a/linux-next-cherry-picks/0005-cxgb4-Assign-filter-server-TIDS-Account-for-stid.patch b/linux-next-cherry-picks/0005-cxgb4-Assign-filter-server-TIDs-properly.patch similarity index 87% rename from linux-next-cherry-picks/0005-cxgb4-Assign-filter-server-TIDS-Account-for-stid.patch rename to linux-next-cherry-picks/0005-cxgb4-Assign-filter-server-TIDs-properly.patch index 0878418..97f931c 100644 --- a/linux-next-cherry-picks/0005-cxgb4-Assign-filter-server-TIDS-Account-for-stid.patch +++ b/linux-next-cherry-picks/0005-cxgb4-Assign-filter-server-TIDs-properly.patch @@ -1,5 +1,14 @@ +From: Kumar Sanghvi +Subject: [PATCH] cxgb4: Assign filter server TIDs properly + +Signed-off-by: Kumar Sanghvi +--- + drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 30 ++++++++++++++++++---- + drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.h | 9 ++++++- + 2 files changed, 32 insertions(+), 7 deletions(-) + diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c -index 951787f..94a6e62 100644 +index xxxxxxx..xxxxxxx xxxxxx --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c @@ -3073,7 +3073,14 @@ int cxgb4_alloc_stid(struct tid_info *t, int family, void *data) @@ -74,7 +83,7 @@ index 951787f..94a6e62 100644 f = &adap->tids.ftid_tab[stid]; diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.h b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.h -index 6f21f24..4dd0a82 100644 +index xxxxxxx..xxxxxxx xxxxxx --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.h +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.h @@ -131,7 +131,14 @@ static inline void *lookup_atid(const struct tid_info *t, unsigned int atid) diff --git a/linux-next-cherry-picks/0006-cxgb4-Add-API-to-correctly-calculate-tuple-fields.patch b/linux-next-cherry-picks/0006-cxgb4-Add-API-to-correctly-calculate-tuple-fields.patch index cb647d0..888ef3c 100644 --- a/linux-next-cherry-picks/0006-cxgb4-Add-API-to-correctly-calculate-tuple-fields.patch +++ b/linux-next-cherry-picks/0006-cxgb4-Add-API-to-correctly-calculate-tuple-fields.patch @@ -1,6 +1,4 @@ -From dcf7b6f5bdeaa13d5e465d8795d2e7d6d1e27b65 Mon Sep 17 00:00:00 2001 From: Kumar Sanghvi -Date: Wed, 18 Dec 2013 16:38:23 +0530 Subject: [PATCH] cxgb4: Add API to correctly calculate tuple fields Adds API cxgb4_select_ntuple so as to enable Upper Level Drivers to correctly @@ -27,10 +25,10 @@ Signed-off-by: David S. Miller 6 files changed, 235 insertions(+), 16 deletions(-) diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h b/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h -index 6c93088..56e0415 100644 +index xxxxxxx..xxxxxxx xxxxxx --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h -@@ -228,6 +228,25 @@ struct tp_params { +@@ -229,6 +229,25 @@ struct tp_params { uint32_t dack_re; /* DACK timer resolution */ unsigned short tx_modq[NCHAN]; /* channel to modulation queue map */ @@ -56,7 +54,7 @@ index 6c93088..56e0415 100644 }; struct vpd_params { -@@ -926,6 +945,8 @@ int t4_prep_fw(struct adapter *adap, struct fw_info *fw_info, +@@ -944,6 +963,8 @@ int t4_prep_fw(struct adapter *adap, struct fw_info *fw_info, const u8 *fw_data, unsigned int fw_size, struct fw_hdr *card_fw, enum dev_state state, int *reset); int t4_prep_adapter(struct adapter *adapter); @@ -66,10 +64,10 @@ index 6c93088..56e0415 100644 void t4_fatal_err(struct adapter *adapter); int t4_config_rss_range(struct adapter *adapter, int mbox, unsigned int viid, diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c -index f9ca36c..fff02ed 100644 +index xxxxxxx..xxxxxxx xxxxxx --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c -@@ -3755,7 +3755,7 @@ static void uld_attach(struct adapter *adap, unsigned int uld) +@@ -3842,7 +3842,7 @@ static void uld_attach(struct adapter *adap, unsigned int uld) lli.ucq_density = 1 << QUEUESPERPAGEPF0_GET( t4_read_reg(adap, SGE_INGRESS_QUEUES_PER_PAGE_PF) >> (adap->fn * 4)); @@ -78,7 +76,7 @@ index f9ca36c..fff02ed 100644 /* MODQ_REQ_MAP sets queues 0-3 to chan 0-3 */ for (i = 0; i < NCHAN; i++) lli.tx_modq[i] = i; -@@ -4229,13 +4229,13 @@ int cxgb4_create_server_filter(const struct net_device *dev, unsigned int stid, +@@ -4306,13 +4306,13 @@ int cxgb4_create_server_filter(const struct net_device *dev, unsigned int stid, f->fs.val.lip[i] = val[i]; f->fs.mask.lip[i] = ~0; } @@ -94,7 +92,7 @@ index f9ca36c..fff02ed 100644 f->fs.val.proto = IPPROTO_TCP; f->fs.mask.proto = ~0; } -@@ -5121,7 +5121,7 @@ static int adap_init0(struct adapter *adap) +@@ -5249,7 +5249,7 @@ static int adap_init0(struct adapter *adap) enum dev_state state; u32 params[7], val[7]; struct fw_caps_config_cmd caps_cmd; @@ -103,7 +101,7 @@ index f9ca36c..fff02ed 100644 /* * Contact FW, advertising Master capability (and potentially forcing -@@ -5463,21 +5463,11 @@ static int adap_init0(struct adapter *adap) +@@ -5591,21 +5591,11 @@ static int adap_init0(struct adapter *adap) /* * These are finalized by FW initialization, load their values now. */ @@ -127,7 +125,7 @@ index f9ca36c..fff02ed 100644 return 0; diff --git a/drivers/net/ethernet/chelsio/cxgb4/l2t.c b/drivers/net/ethernet/chelsio/cxgb4/l2t.c -index 2987809..cb05be9 100644 +index xxxxxxx..xxxxxxx xxxxxx --- a/drivers/net/ethernet/chelsio/cxgb4/l2t.c +++ b/drivers/net/ethernet/chelsio/cxgb4/l2t.c @@ -45,6 +45,7 @@ @@ -180,7 +178,7 @@ index 2987809..cb05be9 100644 * Called when address resolution fails for an L2T entry to handle packets * on the arpq head. If a packet specifies a failure handler it is invoked, diff --git a/drivers/net/ethernet/chelsio/cxgb4/l2t.h b/drivers/net/ethernet/chelsio/cxgb4/l2t.h -index 108c0f1..85eb5c7 100644 +index xxxxxxx..xxxxxxx xxxxxx --- a/drivers/net/ethernet/chelsio/cxgb4/l2t.h +++ b/drivers/net/ethernet/chelsio/cxgb4/l2t.h @@ -98,7 +98,8 @@ int cxgb4_l2t_send(struct net_device *dev, struct sk_buff *skb, @@ -194,7 +192,7 @@ index 108c0f1..85eb5c7 100644 struct l2t_entry *t4_l2t_alloc_switching(struct l2t_data *d); int t4_l2t_set_switching(struct adapter *adap, struct l2t_entry *e, u16 vlan, diff --git a/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c b/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c -index 74a6fce..e1413ea 100644 +index xxxxxxx..xxxxxxx xxxxxx --- a/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c +++ b/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c @@ -3808,6 +3808,109 @@ int t4_prep_adapter(struct adapter *adapter) @@ -308,7 +306,7 @@ index 74a6fce..e1413ea 100644 { u8 addr[6]; diff --git a/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h b/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h -index d3dd218..4082522 100644 +index xxxxxxx..xxxxxxx xxxxxx --- a/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h +++ b/drivers/net/ethernet/chelsio/cxgb4/t4_regs.h @@ -1171,14 +1171,50 @@ @@ -362,9 +360,9 @@ index d3dd218..4082522 100644 #define NUM_MPS_CLS_SRAM_L_INSTANCES 336 #define NUM_MPS_T5_CLS_SRAM_L_INSTANCES 512 -@@ -1217,4 +1253,37 @@ - #define V_CHIPID(x) ((x) << S_CHIPID) - #define G_CHIPID(x) (((x) >> S_CHIPID) & M_CHIPID) +@@ -1208,4 +1244,37 @@ + #define EDC_STRIDE_T5 (EDC_T51_BASE_ADDR - EDC_T50_BASE_ADDR) + #define EDC_REG_T5(reg, idx) (reg + EDC_STRIDE_T5 * idx) +/* TP_VLAN_PRI_MAP controls which subset of fields will be present in the + * Compressed Filter Tuple for LE filters. Each bit set in TP_VLAN_PRI_MAP @@ -400,6 +398,3 @@ index d3dd218..4082522 100644 +#define V_FT_VNID_ID_VLD(x) ((x) << S_FT_VNID_ID_VLD) + #endif /* __T4_REGS_H */ --- -1.7.1 - diff --git a/linux-next-cherry-picks/0007-RDMA-cxgb4-Calculate-the-filter-server-TID-properly.patch b/linux-next-cherry-picks/0007-RDMA-cxgb4-Calculate-the-filter-server-TID-properly.patch index a6ef058..ea99e7e 100644 --- a/linux-next-cherry-picks/0007-RDMA-cxgb4-Calculate-the-filter-server-TID-properly.patch +++ b/linux-next-cherry-picks/0007-RDMA-cxgb4-Calculate-the-filter-server-TID-properly.patch @@ -1,6 +1,4 @@ -From a4ea025fc24532bae8a038d038f8e0f15b8a7d98 Mon Sep 17 00:00:00 2001 From: Kumar Sanghvi -Date: Wed, 18 Dec 2013 16:38:24 +0530 Subject: [PATCH] RDMA/cxgb4: Calculate the filter server TID properly Based on original work by Santosh Rastapur @@ -13,10 +11,10 @@ Signed-off-by: David S. Miller 1 files changed, 1 insertions(+), 3 deletions(-) diff --git a/drivers/infiniband/hw/cxgb4/cm.c b/drivers/infiniband/hw/cxgb4/cm.c -index 12fef76..02c7515 100644 +index xxxxxxx..xxxxxxx xxxxxx --- a/drivers/infiniband/hw/cxgb4/cm.c +++ b/drivers/infiniband/hw/cxgb4/cm.c -@@ -3323,9 +3323,7 @@ static int rx_pkt(struct c4iw_dev *dev, struct sk_buff *skb) +@@ -3394,9 +3394,7 @@ static int rx_pkt(struct c4iw_dev *dev, struct sk_buff *skb) /* * Calculate the server tid from filter hit index from cpl_rx_pkt. */ @@ -27,6 +25,3 @@ index 12fef76..02c7515 100644 lep = (struct c4iw_ep *)lookup_stid(dev->rdev.lldi.tids, stid); if (!lep) { --- -1.7.1 - diff --git a/linux-next-cherry-picks/0008-RDMA-cxgb4-Server-filters-are-supported-only-for-IPv.patch b/linux-next-cherry-picks/0008-RDMA-cxgb4-Server-filters-are-supported-only-for-IPv.patch index 2591671..5044c68 100644 --- a/linux-next-cherry-picks/0008-RDMA-cxgb4-Server-filters-are-supported-only-for-IPv.patch +++ b/linux-next-cherry-picks/0008-RDMA-cxgb4-Server-filters-are-supported-only-for-IPv.patch @@ -1,6 +1,4 @@ -From 8c04469057c3307d92d2c7076edcf9eb8f752bca Mon Sep 17 00:00:00 2001 From: Kumar Sanghvi -Date: Wed, 18 Dec 2013 16:38:25 +0530 Subject: [PATCH] RDMA/cxgb4: Server filters are supported only for IPv4 Signed-off-by: Kumar Sanghvi @@ -11,10 +9,10 @@ Signed-off-by: David S. Miller 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/drivers/infiniband/hw/cxgb4/cm.c b/drivers/infiniband/hw/cxgb4/cm.c -index 02c7515..bfd4ed7 100644 +index xxxxxxx..xxxxxxx xxxxxx --- a/drivers/infiniband/hw/cxgb4/cm.c +++ b/drivers/infiniband/hw/cxgb4/cm.c -@@ -2938,7 +2938,8 @@ int c4iw_create_listen(struct iw_cm_id *cm_id, int backlog) +@@ -3001,7 +3001,8 @@ int c4iw_create_listen(struct iw_cm_id *cm_id, int backlog) /* * Allocate a server TID. */ @@ -24,6 +22,3 @@ index 02c7515..bfd4ed7 100644 ep->stid = cxgb4_alloc_sftid(dev->rdev.lldi.tids, cm_id->local_addr.ss_family, ep); else --- -1.7.1 - diff --git a/linux-next-cherry-picks/0009-RDMA-cxgb4-Use-cxgb4_select_ntuple-to-correctly-calc.patch b/linux-next-cherry-picks/0009-RDMA-cxgb4-Use-cxgb4_select_ntuple-to-correctly-calc.patch index ba1a27b..bf8896e 100644 --- a/linux-next-cherry-picks/0009-RDMA-cxgb4-Use-cxgb4_select_ntuple-to-correctly-calc.patch +++ b/linux-next-cherry-picks/0009-RDMA-cxgb4-Use-cxgb4_select_ntuple-to-correctly-calc.patch @@ -1,6 +1,4 @@ -From 41b4f86c1368758a02129e0629a9cc7c2811fa32 Mon Sep 17 00:00:00 2001 From: Kumar Sanghvi -Date: Wed, 18 Dec 2013 16:38:26 +0530 Subject: [PATCH] RDMA/cxgb4: Use cxgb4_select_ntuple to correctly calculate ntuple fields Signed-off-by: Kumar Sanghvi @@ -11,10 +9,10 @@ Signed-off-by: David S. Miller 1 files changed, 17 insertions(+), 54 deletions(-) diff --git a/drivers/infiniband/hw/cxgb4/cm.c b/drivers/infiniband/hw/cxgb4/cm.c -index bfd4ed7..4512687 100644 +index xxxxxxx..xxxxxxx xxxxxx --- a/drivers/infiniband/hw/cxgb4/cm.c +++ b/drivers/infiniband/hw/cxgb4/cm.c -@@ -524,50 +524,6 @@ static int send_abort(struct c4iw_ep *ep, struct sk_buff *skb, gfp_t gfp) +@@ -570,50 +570,6 @@ static int send_abort(struct c4iw_ep *ep, struct sk_buff *skb, gfp_t gfp) return c4iw_l2t_send(&ep->com.dev->rdev, skb, ep->l2t); } @@ -65,7 +63,7 @@ index bfd4ed7..4512687 100644 static int send_connect(struct c4iw_ep *ep) { struct cpl_act_open_req *req; -@@ -641,8 +597,9 @@ static int send_connect(struct c4iw_ep *ep) +@@ -687,8 +643,9 @@ static int send_connect(struct c4iw_ep *ep) req->local_ip = la->sin_addr.s_addr; req->peer_ip = ra->sin_addr.s_addr; req->opt0 = cpu_to_be64(opt0); @@ -77,7 +75,7 @@ index bfd4ed7..4512687 100644 req->opt2 = cpu_to_be32(opt2); } else { req6 = (struct cpl_act_open_req6 *)skb_put(skb, wrlen); -@@ -662,9 +619,9 @@ static int send_connect(struct c4iw_ep *ep) +@@ -708,9 +665,9 @@ static int send_connect(struct c4iw_ep *ep) req6->peer_ip_lo = *((__be64 *) (ra6->sin6_addr.s6_addr + 8)); req6->opt0 = cpu_to_be64(opt0); @@ -90,7 +88,7 @@ index bfd4ed7..4512687 100644 req6->opt2 = cpu_to_be32(opt2); } } else { -@@ -681,8 +638,9 @@ static int send_connect(struct c4iw_ep *ep) +@@ -727,8 +684,9 @@ static int send_connect(struct c4iw_ep *ep) t5_req->peer_ip = ra->sin_addr.s_addr; t5_req->opt0 = cpu_to_be64(opt0); t5_req->params = cpu_to_be64(V_FILTER_TUPLE( @@ -102,7 +100,7 @@ index bfd4ed7..4512687 100644 t5_req->opt2 = cpu_to_be32(opt2); } else { t5_req6 = (struct cpl_t5_act_open_req6 *) -@@ -703,7 +661,9 @@ static int send_connect(struct c4iw_ep *ep) +@@ -749,7 +707,9 @@ static int send_connect(struct c4iw_ep *ep) (ra6->sin6_addr.s6_addr + 8)); t5_req6->opt0 = cpu_to_be64(opt0); t5_req6->params = (__force __be64)cpu_to_be32( @@ -113,7 +111,7 @@ index bfd4ed7..4512687 100644 t5_req6->opt2 = cpu_to_be32(opt2); } } -@@ -1630,7 +1590,8 @@ static void send_fw_act_open_req(struct c4iw_ep *ep, unsigned int atid) +@@ -1676,7 +1636,8 @@ static void send_fw_act_open_req(struct c4iw_ep *ep, unsigned int atid) memset(req, 0, sizeof(*req)); req->op_compl = htonl(V_WR_OP(FW_OFLD_CONNECTION_WR)); req->len16_pkd = htonl(FW_WR_LEN16(DIV_ROUND_UP(sizeof(*req), 16))); @@ -123,7 +121,7 @@ index bfd4ed7..4512687 100644 ep->l2t)); sin = (struct sockaddr_in *)&ep->com.local_addr; req->le.lport = sin->sin_port; -@@ -3396,7 +3357,9 @@ static int rx_pkt(struct c4iw_dev *dev, struct sk_buff *skb) +@@ -3475,7 +3436,9 @@ static int rx_pkt(struct c4iw_dev *dev, struct sk_buff *skb) window = (__force u16) htons((__force u16)tcph->window); /* Calcuate filter portion for LE region. */ @@ -134,6 +132,3 @@ index bfd4ed7..4512687 100644 /* * Synthesize the cpl_pass_accept_req. We have everything except the --- -1.7.1 - diff --git a/linux-next-cherry-picks/0010-IB-qib-Convert-qib_user_sdma_pin_pages-to-use-get_us.patch b/linux-next-cherry-picks/0010-IB-qib-Convert-qib_user_sdma_pin_pages-to-use-get_us.patch index 9623cb7..64c3730 100644 --- a/linux-next-cherry-picks/0010-IB-qib-Convert-qib_user_sdma_pin_pages-to-use-get_us.patch +++ b/linux-next-cherry-picks/0010-IB-qib-Convert-qib_user_sdma_pin_pages-to-use-get_us.patch @@ -1,6 +1,4 @@ -From 603e7729920e42b3c2f4dbfab9eef4878cb6e8fa Mon Sep 17 00:00:00 2001 From: Jan Kara -Date: Fri, 4 Oct 2013 09:29:12 -0400 Subject: [PATCH] IB/qib: Convert qib_user_sdma_pin_pages() to use get_user_pages_fast() qib_user_sdma_queue_pkts() gets called with mmap_sem held for @@ -26,7 +24,7 @@ Signed-off-by: Roland Dreier 1 files changed, 1 insertions(+), 5 deletions(-) diff --git a/drivers/infiniband/hw/qib/qib_user_sdma.c b/drivers/infiniband/hw/qib/qib_user_sdma.c -index d0a0ea0..165aee2 100644 +index xxxxxxx..xxxxxxx xxxxxx --- a/drivers/infiniband/hw/qib/qib_user_sdma.c +++ b/drivers/infiniband/hw/qib/qib_user_sdma.c @@ -594,8 +594,7 @@ static int qib_user_sdma_pin_pages(const struct qib_devdata *dd, @@ -51,6 +49,3 @@ index d0a0ea0..165aee2 100644 if (ret < 0) goto done_unlock; else { --- -1.7.0.7 - diff --git a/linux-next-cherry-picks/0011-IB-qib-Fix-txselect-regression.patch b/linux-next-cherry-picks/0011-IB-qib-Fix-txselect-regression.patch index 513aaa4..9c47262 100644 --- a/linux-next-cherry-picks/0011-IB-qib-Fix-txselect-regression.patch +++ b/linux-next-cherry-picks/0011-IB-qib-Fix-txselect-regression.patch @@ -1,6 +1,4 @@ -From 2fadd83184d58701f1116ca578465b5a75f9417c Mon Sep 17 00:00:00 2001 From: Mike Marciniszyn -Date: Fri, 25 Oct 2013 11:17:59 -0400 Subject: [PATCH] IB/qib: Fix txselect regression Commit 7fac33014f54("IB/qib: checkpatch fixes") was overzealous in @@ -17,7 +15,7 @@ Signed-off-by: Roland Dreier 1 files changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/infiniband/hw/qib/qib_iba7322.c b/drivers/infiniband/hw/qib/qib_iba7322.c -index 016e742..5bfc02f 100644 +index xxxxxxx..xxxxxxx xxxxxx --- a/drivers/infiniband/hw/qib/qib_iba7322.c +++ b/drivers/infiniband/hw/qib/qib_iba7322.c @@ -6190,21 +6190,20 @@ static int setup_txselect(const char *str, struct kernel_param *kp) @@ -47,6 +45,3 @@ index 016e742..5bfc02f 100644 list_for_each_entry(dd, &qib_dev_list, list) if (dd->deviceid == PCI_DEVICE_ID_QLOGIC_IB_7322) set_no_qsfp_atten(dd, 1); --- -1.7.0.7 - -- 2.46.0