Skip to content

Commit 1b1bc42

Browse files
committed
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull networking fixes from David Miller: 1) GTP fixes from Andreas Schultz (missing genl module alias, clear IP DF on transmit). 2) Netfilter needs to reflect the fwmark when sending resets, from Pau Espin Pedrol. 3) nftable dump OOPS fix from Liping Zhang. 4) Fix erroneous setting of VIRTIO_NET_HDR_F_DATA_VALID on transmit, from Rolf Neugebauer. 5) Fix build error of ipt_CLUSTERIP when procfs is disabled, from Arnd Bergmann. 6) Fix regression in handling of NETIF_F_SG in harmonize_features(), from Eric Dumazet. 7) Fix RTNL deadlock wrt. lwtunnel module loading, from David Ahern. 8) tcp_fastopen_create_child() needs to setup tp->max_window, from Alexey Kodanev. 9) Missing kmemdup() failure check in ipv6 segment routing code, from Eric Dumazet. 10) Don't execute unix_bind() under the bindlock, otherwise we deadlock with splice. From WANG Cong. 11) ip6_tnl_parse_tlv_enc_lim() potentially reallocates the skb buffer, therefore callers must reload cached header pointers into that skb. Fix from Eric Dumazet. 12) Fix various bugs in legacy IRQ fallback handling in alx driver, from Tobias Regnery. 13) Do not allow lwtunnel drivers to be unloaded while they are referenced by active instances, from Robert Shearman. 14) Fix truncated PHY LED trigger names, from Geert Uytterhoeven. 15) Fix a few regressions from virtio_net XDP support, from John Fastabend and Jakub Kicinski. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (102 commits) ISDN: eicon: silence misleading array-bounds warning net: phy: micrel: add support for KSZ8795 gtp: fix cross netns recv on gtp socket gtp: clear DF bit on GTP packet tx gtp: add genl family modules alias tcp: don't annotate mark on control socket from tcp_v6_send_response() ravb: unmap descriptors when freeing rings virtio_net: reject XDP programs using header adjustment virtio_net: use dev_kfree_skb for small buffer XDP receive r8152: check rx after napi is enabled r8152: re-schedule napi for tx r8152: avoid start_xmit to schedule napi when napi is disabled r8152: avoid start_xmit to call napi_schedule during autosuspend net: dsa: Bring back device detaching in dsa_slave_suspend() net: phy: leds: Fix truncated LED trigger names net: phy: leds: Break dependency of phy.h on phy_led_triggers.h net: phy: leds: Clear phy_num_led_triggers on failure to avoid crash net-next: ethernet: mediatek: change the compatible string Documentation: devicetree: change the mediatek ethernet compatible string bnxt_en: Fix RTNL lock usage on bnxt_get_port_module_status(). ...
2 parents 3365135 + 950eabb commit 1b1bc42

File tree

113 files changed

+916
-562
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

113 files changed

+916
-562
lines changed

Documentation/devicetree/bindings/net/mediatek-net.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ have dual GMAC each represented by a child node..
77
* Ethernet controller node
88

99
Required properties:
10-
- compatible: Should be "mediatek,mt7623-eth"
10+
- compatible: Should be "mediatek,mt2701-eth"
1111
- reg: Address and length of the register set for the device
1212
- interrupts: Should contain the three frame engines interrupts in numeric
1313
order. These are fe_int0, fe_int1 and fe_int2.

Documentation/devicetree/bindings/net/phy.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,9 @@ Optional Properties:
1919
specifications. If neither of these are specified, the default is to
2020
assume clause 22.
2121

22-
If the phy's identifier is known then the list may contain an entry
23-
of the form: "ethernet-phy-idAAAA.BBBB" where
22+
If the PHY reports an incorrect ID (or none at all) then the
23+
"compatible" list may contain an entry with the correct PHY ID in the
24+
form: "ethernet-phy-idAAAA.BBBB" where
2425
AAAA - The value of the 16 bit Phy Identifier 1 register as
2526
4 hex digits. This is the chip vendor OUI bits 3:18
2627
BBBB - The value of the 16 bit Phy Identifier 2 register as

MAINTAINERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3567,7 +3567,7 @@ F: drivers/infiniband/hw/cxgb3/
35673567
F: include/uapi/rdma/cxgb3-abi.h
35683568

35693569
CXGB4 ETHERNET DRIVER (CXGB4)
3570-
M: Hariprasad S <hariprasad@chelsio.com>
3570+
M: Ganesh Goudar <ganeshgr@chelsio.com>
35713571
35723572
W: http://www.chelsio.com
35733573
S: Supported

drivers/isdn/hardware/eicon/message.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11297,7 +11297,8 @@ static void mixer_notify_update(PLCI *plci, byte others)
1129711297
((CAPI_MSG *) msg)->header.ncci = 0;
1129811298
((CAPI_MSG *) msg)->info.facility_req.Selector = SELECTOR_LINE_INTERCONNECT;
1129911299
((CAPI_MSG *) msg)->info.facility_req.structs[0] = 3;
11300-
PUT_WORD(&(((CAPI_MSG *) msg)->info.facility_req.structs[1]), LI_REQ_SILENT_UPDATE);
11300+
((CAPI_MSG *) msg)->info.facility_req.structs[1] = LI_REQ_SILENT_UPDATE & 0xff;
11301+
((CAPI_MSG *) msg)->info.facility_req.structs[2] = LI_REQ_SILENT_UPDATE >> 8;
1130111302
((CAPI_MSG *) msg)->info.facility_req.structs[3] = 0;
1130211303
w = api_put(notify_plci->appl, (CAPI_MSG *) msg);
1130311304
if (w != _QUEUE_FULL)

drivers/net/can/c_can/c_can_pci.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,7 @@ static int c_can_pci_probe(struct pci_dev *pdev,
161161

162162
dev->irq = pdev->irq;
163163
priv->base = addr;
164+
priv->device = &pdev->dev;
164165

165166
if (!c_can_pci_data->freq) {
166167
dev_err(&pdev->dev, "no clock frequency defined\n");

drivers/net/can/ti_hecc.c

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -948,7 +948,12 @@ static int ti_hecc_probe(struct platform_device *pdev)
948948
netif_napi_add(ndev, &priv->napi, ti_hecc_rx_poll,
949949
HECC_DEF_NAPI_WEIGHT);
950950

951-
clk_enable(priv->clk);
951+
err = clk_prepare_enable(priv->clk);
952+
if (err) {
953+
dev_err(&pdev->dev, "clk_prepare_enable() failed\n");
954+
goto probe_exit_clk;
955+
}
956+
952957
err = register_candev(ndev);
953958
if (err) {
954959
dev_err(&pdev->dev, "register_candev() failed\n");
@@ -981,7 +986,7 @@ static int ti_hecc_remove(struct platform_device *pdev)
981986
struct ti_hecc_priv *priv = netdev_priv(ndev);
982987

983988
unregister_candev(ndev);
984-
clk_disable(priv->clk);
989+
clk_disable_unprepare(priv->clk);
985990
clk_put(priv->clk);
986991
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
987992
iounmap(priv->base);
@@ -1006,7 +1011,7 @@ static int ti_hecc_suspend(struct platform_device *pdev, pm_message_t state)
10061011
hecc_set_bit(priv, HECC_CANMC, HECC_CANMC_PDR);
10071012
priv->can.state = CAN_STATE_SLEEPING;
10081013

1009-
clk_disable(priv->clk);
1014+
clk_disable_unprepare(priv->clk);
10101015

10111016
return 0;
10121017
}
@@ -1015,8 +1020,11 @@ static int ti_hecc_resume(struct platform_device *pdev)
10151020
{
10161021
struct net_device *dev = platform_get_drvdata(pdev);
10171022
struct ti_hecc_priv *priv = netdev_priv(dev);
1023+
int err;
10181024

1019-
clk_enable(priv->clk);
1025+
err = clk_prepare_enable(priv->clk);
1026+
if (err)
1027+
return err;
10201028

10211029
hecc_clear_bit(priv, HECC_CANMC, HECC_CANMC_PDR);
10221030
priv->can.state = CAN_STATE_ERROR_ACTIVE;

drivers/net/ethernet/amd/xgbe/xgbe-common.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -891,6 +891,8 @@
891891
#define PCS_V1_WINDOW_SELECT 0x03fc
892892
#define PCS_V2_WINDOW_DEF 0x9060
893893
#define PCS_V2_WINDOW_SELECT 0x9064
894+
#define PCS_V2_RV_WINDOW_DEF 0x1060
895+
#define PCS_V2_RV_WINDOW_SELECT 0x1064
894896

895897
/* PCS register entry bit positions and sizes */
896898
#define PCS_V2_WINDOW_DEF_OFFSET_INDEX 6

drivers/net/ethernet/amd/xgbe/xgbe-dev.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1151,7 +1151,7 @@ static int xgbe_read_mmd_regs_v2(struct xgbe_prv_data *pdata, int prtad,
11511151
offset = pdata->xpcs_window + (mmd_address & pdata->xpcs_window_mask);
11521152

11531153
spin_lock_irqsave(&pdata->xpcs_lock, flags);
1154-
XPCS32_IOWRITE(pdata, PCS_V2_WINDOW_SELECT, index);
1154+
XPCS32_IOWRITE(pdata, pdata->xpcs_window_sel_reg, index);
11551155
mmd_data = XPCS16_IOREAD(pdata, offset);
11561156
spin_unlock_irqrestore(&pdata->xpcs_lock, flags);
11571157

@@ -1183,7 +1183,7 @@ static void xgbe_write_mmd_regs_v2(struct xgbe_prv_data *pdata, int prtad,
11831183
offset = pdata->xpcs_window + (mmd_address & pdata->xpcs_window_mask);
11841184

11851185
spin_lock_irqsave(&pdata->xpcs_lock, flags);
1186-
XPCS32_IOWRITE(pdata, PCS_V2_WINDOW_SELECT, index);
1186+
XPCS32_IOWRITE(pdata, pdata->xpcs_window_sel_reg, index);
11871187
XPCS16_IOWRITE(pdata, offset, mmd_data);
11881188
spin_unlock_irqrestore(&pdata->xpcs_lock, flags);
11891189
}
@@ -3407,8 +3407,10 @@ static int xgbe_init(struct xgbe_prv_data *pdata)
34073407

34083408
/* Flush Tx queues */
34093409
ret = xgbe_flush_tx_queues(pdata);
3410-
if (ret)
3410+
if (ret) {
3411+
netdev_err(pdata->netdev, "error flushing TX queues\n");
34113412
return ret;
3413+
}
34123414

34133415
/*
34143416
* Initialize DMA related features

drivers/net/ethernet/amd/xgbe/xgbe-drv.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1070,7 +1070,9 @@ static int xgbe_start(struct xgbe_prv_data *pdata)
10701070

10711071
DBGPR("-->xgbe_start\n");
10721072

1073-
hw_if->init(pdata);
1073+
ret = hw_if->init(pdata);
1074+
if (ret)
1075+
return ret;
10741076

10751077
xgbe_napi_enable(pdata, 1);
10761078

drivers/net/ethernet/amd/xgbe/xgbe-pci.c

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,7 @@ static int xgbe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
265265
struct xgbe_prv_data *pdata;
266266
struct device *dev = &pdev->dev;
267267
void __iomem * const *iomap_table;
268+
struct pci_dev *rdev;
268269
unsigned int ma_lo, ma_hi;
269270
unsigned int reg;
270271
int bar_mask;
@@ -326,8 +327,20 @@ static int xgbe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
326327
if (netif_msg_probe(pdata))
327328
dev_dbg(dev, "xpcs_regs = %p\n", pdata->xpcs_regs);
328329

330+
/* Set the PCS indirect addressing definition registers */
331+
rdev = pci_get_domain_bus_and_slot(0, 0, PCI_DEVFN(0, 0));
332+
if (rdev &&
333+
(rdev->vendor == PCI_VENDOR_ID_AMD) && (rdev->device == 0x15d0)) {
334+
pdata->xpcs_window_def_reg = PCS_V2_RV_WINDOW_DEF;
335+
pdata->xpcs_window_sel_reg = PCS_V2_RV_WINDOW_SELECT;
336+
} else {
337+
pdata->xpcs_window_def_reg = PCS_V2_WINDOW_DEF;
338+
pdata->xpcs_window_sel_reg = PCS_V2_WINDOW_SELECT;
339+
}
340+
pci_dev_put(rdev);
341+
329342
/* Configure the PCS indirect addressing support */
330-
reg = XPCS32_IOREAD(pdata, PCS_V2_WINDOW_DEF);
343+
reg = XPCS32_IOREAD(pdata, pdata->xpcs_window_def_reg);
331344
pdata->xpcs_window = XPCS_GET_BITS(reg, PCS_V2_WINDOW_DEF, OFFSET);
332345
pdata->xpcs_window <<= 6;
333346
pdata->xpcs_window_size = XPCS_GET_BITS(reg, PCS_V2_WINDOW_DEF, SIZE);

0 commit comments

Comments
 (0)