aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/ti
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2017-05-02 19:40:27 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2017-05-02 19:40:27 -0400
commit8d65b08debc7e62b2c6032d7fe7389d895b92cbc (patch)
tree0c3141b60c3a03cc32742b5750c5e763b9dae489 /drivers/net/ethernet/ti
parent5a0387a8a8efb90ae7fea1e2e5c62de3efa74691 (diff)
parent5d15af6778b8e4ed1fd41b040283af278e7a9a72 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
Pull networking updates from David Millar: "Here are some highlights from the 2065 networking commits that happened this development cycle: 1) XDP support for IXGBE (John Fastabend) and thunderx (Sunil Kowuri) 2) Add a generic XDP driver, so that anyone can test XDP even if they lack a networking device whose driver has explicit XDP support (me). 3) Sparc64 now has an eBPF JIT too (me) 4) Add a BPF program testing framework via BPF_PROG_TEST_RUN (Alexei Starovoitov) 5) Make netfitler network namespace teardown less expensive (Florian Westphal) 6) Add symmetric hashing support to nft_hash (Laura Garcia Liebana) 7) Implement NAPI and GRO in netvsc driver (Stephen Hemminger) 8) Support TC flower offload statistics in mlxsw (Arkadi Sharshevsky) 9) Multiqueue support in stmmac driver (Joao Pinto) 10) Remove TCP timewait recycling, it never really could possibly work well in the real world and timestamp randomization really zaps any hint of usability this feature had (Soheil Hassas Yeganeh) 11) Support level3 vs level4 ECMP route hashing in ipv4 (Nikolay Aleksandrov) 12) Add socket busy poll support to epoll (Sridhar Samudrala) 13) Netlink extended ACK support (Johannes Berg, Pablo Neira Ayuso, and several others) 14) IPSEC hw offload infrastructure (Steffen Klassert)" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (2065 commits) tipc: refactor function tipc_sk_recv_stream() tipc: refactor function tipc_sk_recvmsg() net: thunderx: Optimize page recycling for XDP net: thunderx: Support for XDP header adjustment net: thunderx: Add support for XDP_TX net: thunderx: Add support for XDP_DROP net: thunderx: Add basic XDP support net: thunderx: Cleanup receive buffer allocation net: thunderx: Optimize CQE_TX handling net: thunderx: Optimize RBDR descriptor handling net: thunderx: Support for page recycling ipx: call ipxitf_put() in ioctl error path net: sched: add helpers to handle extended actions qed*: Fix issues in the ptp filter config implementation. qede: Fix concurrency issue in PTP Tx path processing. stmmac: Add support for SIMATIC IOT2000 platform net: hns: fix ethtool_get_strings overflow in hns driver tcp: fix wraparound issue in tcp_lp bpf, arm64: fix jit branch offset related to ldimm64 bpf, arm64: implement jiting of BPF_XADD ...
Diffstat (limited to 'drivers/net/ethernet/ti')
-rw-r--r--drivers/net/ethernet/ti/netcp_core.c16
-rw-r--r--drivers/net/ethernet/ti/netcp_ethss.c3
2 files changed, 9 insertions, 10 deletions
diff --git a/drivers/net/ethernet/ti/netcp_core.c b/drivers/net/ethernet/ti/netcp_core.c
index 7c7ae0890e90..729a7da90b5b 100644
--- a/drivers/net/ethernet/ti/netcp_core.c
+++ b/drivers/net/ethernet/ti/netcp_core.c
@@ -1134,7 +1134,6 @@ netcp_tx_map_skb(struct sk_buff *skb, struct netcp_intf *netcp)
1134 u32 buf_len = skb_frag_size(frag); 1134 u32 buf_len = skb_frag_size(frag);
1135 dma_addr_t desc_dma; 1135 dma_addr_t desc_dma;
1136 u32 desc_dma_32; 1136 u32 desc_dma_32;
1137 u32 pkt_info;
1138 1137
1139 dma_addr = dma_map_page(dev, page, page_offset, buf_len, 1138 dma_addr = dma_map_page(dev, page, page_offset, buf_len,
1140 DMA_TO_DEVICE); 1139 DMA_TO_DEVICE);
@@ -1151,9 +1150,6 @@ netcp_tx_map_skb(struct sk_buff *skb, struct netcp_intf *netcp)
1151 } 1150 }
1152 1151
1153 desc_dma = knav_pool_desc_virt_to_dma(netcp->tx_pool, ndesc); 1152 desc_dma = knav_pool_desc_virt_to_dma(netcp->tx_pool, ndesc);
1154 pkt_info =
1155 (netcp->tx_compl_qid & KNAV_DMA_DESC_RETQ_MASK) <<
1156 KNAV_DMA_DESC_RETQ_SHIFT;
1157 set_pkt_info(dma_addr, buf_len, 0, ndesc); 1153 set_pkt_info(dma_addr, buf_len, 0, ndesc);
1158 desc_dma_32 = (u32)desc_dma; 1154 desc_dma_32 = (u32)desc_dma;
1159 set_words(&desc_dma_32, 1, &pdesc->next_desc); 1155 set_words(&desc_dma_32, 1, &pdesc->next_desc);
@@ -1882,6 +1878,7 @@ static u16 netcp_select_queue(struct net_device *dev, struct sk_buff *skb,
1882static int netcp_setup_tc(struct net_device *dev, u32 handle, __be16 proto, 1878static int netcp_setup_tc(struct net_device *dev, u32 handle, __be16 proto,
1883 struct tc_to_netdev *tc) 1879 struct tc_to_netdev *tc)
1884{ 1880{
1881 u8 num_tc;
1885 int i; 1882 int i;
1886 1883
1887 /* setup tc must be called under rtnl lock */ 1884 /* setup tc must be called under rtnl lock */
@@ -1890,15 +1887,18 @@ static int netcp_setup_tc(struct net_device *dev, u32 handle, __be16 proto,
1890 if (tc->type != TC_SETUP_MQPRIO) 1887 if (tc->type != TC_SETUP_MQPRIO)
1891 return -EINVAL; 1888 return -EINVAL;
1892 1889
1890 tc->mqprio->hw = TC_MQPRIO_HW_OFFLOAD_TCS;
1891 num_tc = tc->mqprio->num_tc;
1892
1893 /* Sanity-check the number of traffic classes requested */ 1893 /* Sanity-check the number of traffic classes requested */
1894 if ((dev->real_num_tx_queues <= 1) || 1894 if ((dev->real_num_tx_queues <= 1) ||
1895 (dev->real_num_tx_queues < tc->tc)) 1895 (dev->real_num_tx_queues < num_tc))
1896 return -EINVAL; 1896 return -EINVAL;
1897 1897
1898 /* Configure traffic class to queue mappings */ 1898 /* Configure traffic class to queue mappings */
1899 if (tc->tc) { 1899 if (num_tc) {
1900 netdev_set_num_tc(dev, tc->tc); 1900 netdev_set_num_tc(dev, num_tc);
1901 for (i = 0; i < tc->tc; i++) 1901 for (i = 0; i < num_tc; i++)
1902 netdev_set_tc_queue(dev, i, 1, i); 1902 netdev_set_tc_queue(dev, i, 1, i);
1903 } else { 1903 } else {
1904 netdev_reset_tc(dev); 1904 netdev_reset_tc(dev);
diff --git a/drivers/net/ethernet/ti/netcp_ethss.c b/drivers/net/ethernet/ti/netcp_ethss.c
index eece3e2eec14..897176fc5043 100644
--- a/drivers/net/ethernet/ti/netcp_ethss.c
+++ b/drivers/net/ethernet/ti/netcp_ethss.c
@@ -3048,8 +3048,7 @@ static void init_secondary_ports(struct gbe_priv *gbe_dev,
3048 for_each_child_of_node(node, port) { 3048 for_each_child_of_node(node, port) {
3049 slave = devm_kzalloc(dev, sizeof(*slave), GFP_KERNEL); 3049 slave = devm_kzalloc(dev, sizeof(*slave), GFP_KERNEL);
3050 if (!slave) { 3050 if (!slave) {
3051 dev_err(dev, 3051 dev_err(dev, "memory alloc failed for secondary port(%s), skipping...\n",
3052 "memomry alloc failed for secondary port(%s), skipping...\n",
3053 port->name); 3052 port->name);
3054 continue; 3053 continue;
3055 } 3054 }