Skip to content

Commit 8376824

Browse files
committed
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull networking fixes from David Miller: 1) Several netfilter fixes including a nfnetlink deadlock fix from Florian Westphal and fix for dropping VRF packets from Miaohe Lin. 2) Flow offload fixes from Pablo Neira Ayuso including a fix to restore proper block sharing. 3) Fix r8169 PHY init from Thomas Voegtle. 4) Fix memory leak in mac80211, from Lorenzo Bianconi. 5) Missing NULL check on object allocation in cxgb4, from Navid Emamdoost. 6) Fix scaling of RX power in sfp phy driver, from Andrew Lunn. 7) Check that there is actually an ip header to access in skb->data in VRF, from Peter Kosyh. 8) Remove spurious rcu unlock in hv_netvsc, from Haiyang Zhang. 9) One more tweak the the TCP fragmentation memory limit changes, to be less harmful to applications setting small SO_SNDBUF values. From Eric Dumazet. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (40 commits) tcp: be more careful in tcp_fragment() hv_netvsc: Fix extra rcu_read_unlock in netvsc_recv_callback() vrf: make sure skb->data contains ip header to make routing connector: remove redundant input callback from cn_dev qed: Prefer pcie_capability_read_word() igc: Prefer pcie_capability_read_word() cxgb4: Prefer pcie_capability_read_word() be2net: Synchronize be_update_queues with dev_watchdog bnx2x: Prevent load reordering in tx completion processing net: phy: sfp: hwmon: Fix scaling of RX power net: sched: verify that q!=NULL before setting q->flags chelsio: Fix a typo in a function name allocate_flower_entry: should check for null deref net: hns3: typo in the name of a constant kbuild: add net/netfilter/nf_tables_offload.h to header-test blacklist. tipc: Fix a typo mac80211: don't warn about CW params when not using them mac80211: fix possible memory leak in ieee80211_assign_beacon nl80211: fix NL80211_HE_MAX_CAPABILITY_LEN nl80211: fix VENDOR_CMD_RAW_DATA ...
2 parents 5f9e832 + b617158 commit 8376824

File tree

91 files changed

+322
-236
lines changed

Some content is hidden

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

91 files changed

+322
-236
lines changed

drivers/connector/connector.c

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -248,16 +248,12 @@ static int __maybe_unused cn_proc_show(struct seq_file *m, void *v)
248248
return 0;
249249
}
250250

251-
static struct cn_dev cdev = {
252-
.input = cn_rx_skb,
253-
};
254-
255251
static int cn_init(void)
256252
{
257253
struct cn_dev *dev = &cdev;
258254
struct netlink_kernel_cfg cfg = {
259255
.groups = CN_NETLINK_USERS + 0xf,
260-
.input = dev->input,
256+
.input = cn_rx_skb,
261257
};
262258

263259
dev->nls = netlink_kernel_create(&init_net, NETLINK_CONNECTOR, &cfg);

drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,9 @@ int bnx2x_tx_int(struct bnx2x *bp, struct bnx2x_fp_txdata *txdata)
285285
hw_cons = le16_to_cpu(*txdata->tx_cons_sb);
286286
sw_cons = txdata->tx_pkt_cons;
287287

288+
/* Ensure subsequent loads occur after hw_cons */
289+
smp_rmb();
290+
288291
while (sw_cons != hw_cons) {
289292
u16 pkt_cons;
290293

drivers/net/ethernet/chelsio/cxgb/my3126.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ static int my3126_interrupt_handler(struct cphy *cphy)
9494
return cphy_cause_link_change;
9595
}
9696

97-
static void my3216_poll(struct work_struct *work)
97+
static void my3126_poll(struct work_struct *work)
9898
{
9999
struct cphy *cphy = container_of(work, struct cphy, phy_update.work);
100100

@@ -177,7 +177,7 @@ static struct cphy *my3126_phy_create(struct net_device *dev,
177177
return NULL;
178178

179179
cphy_init(cphy, dev, phy_addr, &my3126_ops, mdio_ops);
180-
INIT_DELAYED_WORK(&cphy->phy_update, my3216_poll);
180+
INIT_DELAYED_WORK(&cphy->phy_update, my3126_poll);
181181
cphy->bmsr = 0;
182182

183183
return cphy;

drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5561,17 +5561,15 @@ static int cxgb4_iov_configure(struct pci_dev *pdev, int num_vfs)
55615561
char name[IFNAMSIZ];
55625562
u32 devcap2;
55635563
u16 flags;
5564-
int pos;
55655564

55665565
/* If we want to instantiate Virtual Functions, then our
55675566
* parent bridge's PCI-E needs to support Alternative Routing
55685567
* ID (ARI) because our VFs will show up at function offset 8
55695568
* and above.
55705569
*/
55715570
pbridge = pdev->bus->self;
5572-
pos = pci_find_capability(pbridge, PCI_CAP_ID_EXP);
5573-
pci_read_config_word(pbridge, pos + PCI_EXP_FLAGS, &flags);
5574-
pci_read_config_dword(pbridge, pos + PCI_EXP_DEVCAP2, &devcap2);
5571+
pcie_capability_read_word(pbridge, PCI_EXP_FLAGS, &flags);
5572+
pcie_capability_read_dword(pbridge, PCI_EXP_DEVCAP2, &devcap2);
55755573

55765574
if ((flags & PCI_EXP_FLAGS_VERS) < 2 ||
55775575
!(devcap2 & PCI_EXP_DEVCAP2_ARI)) {

drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,8 @@ static struct ch_tc_pedit_fields pedits[] = {
6767
static struct ch_tc_flower_entry *allocate_flower_entry(void)
6868
{
6969
struct ch_tc_flower_entry *new = kzalloc(sizeof(*new), GFP_KERNEL);
70-
spin_lock_init(&new->lock);
70+
if (new)
71+
spin_lock_init(&new->lock);
7172
return new;
7273
}
7374

drivers/net/ethernet/chelsio/cxgb4/t4_hw.c

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7309,7 +7309,6 @@ int t4_fixup_host_params(struct adapter *adap, unsigned int page_size,
73097309
} else {
73107310
unsigned int pack_align;
73117311
unsigned int ingpad, ingpack;
7312-
unsigned int pcie_cap;
73137312

73147313
/* T5 introduced the separation of the Free List Padding and
73157314
* Packing Boundaries. Thus, we can select a smaller Padding
@@ -7334,18 +7333,16 @@ int t4_fixup_host_params(struct adapter *adap, unsigned int page_size,
73347333
* multiple of the Maximum Payload Size.
73357334
*/
73367335
pack_align = fl_align;
7337-
pcie_cap = pci_find_capability(adap->pdev, PCI_CAP_ID_EXP);
7338-
if (pcie_cap) {
7336+
if (pci_is_pcie(adap->pdev)) {
73397337
unsigned int mps, mps_log;
73407338
u16 devctl;
73417339

73427340
/* The PCIe Device Control Maximum Payload Size field
73437341
* [bits 7:5] encodes sizes as powers of 2 starting at
73447342
* 128 bytes.
73457343
*/
7346-
pci_read_config_word(adap->pdev,
7347-
pcie_cap + PCI_EXP_DEVCTL,
7348-
&devctl);
7344+
pcie_capability_read_word(adap->pdev, PCI_EXP_DEVCTL,
7345+
&devctl);
73497346
mps_log = ((devctl & PCI_EXP_DEVCTL_PAYLOAD) >> 5) + 7;
73507347
mps = 1 << mps_log;
73517348
if (mps > pack_align)

drivers/net/ethernet/emulex/benet/be_main.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4698,8 +4698,13 @@ int be_update_queues(struct be_adapter *adapter)
46984698
int status;
46994699

47004700
if (netif_running(netdev)) {
4701+
/* be_tx_timeout() must not run concurrently with this
4702+
* function, synchronize with an already-running dev_watchdog
4703+
*/
4704+
netif_tx_lock_bh(netdev);
47014705
/* device cannot transmit now, avoid dev_watchdog timeouts */
47024706
netif_carrier_off(netdev);
4707+
netif_tx_unlock_bh(netdev);
47034708

47044709
be_close(netdev);
47054710
}

drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ enum HCLGE_MBX_OPCODE {
4343
HCLGE_MBX_GET_QID_IN_PF, /* (VF -> PF) get queue id in pf */
4444
HCLGE_MBX_LINK_STAT_MODE, /* (PF -> VF) link mode has changed */
4545
HCLGE_MBX_GET_LINK_MODE, /* (VF -> PF) get the link mode of pf */
46-
HLCGE_MBX_PUSH_VLAN_INFO, /* (PF -> VF) push port base vlan */
46+
HCLGE_MBX_PUSH_VLAN_INFO, /* (PF -> VF) push port base vlan */
4747
HCLGE_MBX_GET_MEDIA_TYPE, /* (VF -> PF) get media type */
4848

4949
HCLGE_MBX_GET_VF_FLR_STATUS = 200, /* (M7 -> PF) get vf reset status */

drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ int hclge_push_vf_port_base_vlan_info(struct hclge_vport *vport, u8 vfid,
304304
memcpy(&msg_data[6], &vlan_tag, sizeof(u16));
305305

306306
return hclge_send_mbx_msg(vport, msg_data, sizeof(msg_data),
307-
HLCGE_MBX_PUSH_VLAN_INFO, vfid);
307+
HCLGE_MBX_PUSH_VLAN_INFO, vfid);
308308
}
309309

310310
static int hclge_set_vf_vlan_cfg(struct hclge_vport *vport,

drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ void hclgevf_mbx_handler(struct hclgevf_dev *hdev)
204204
case HCLGE_MBX_LINK_STAT_CHANGE:
205205
case HCLGE_MBX_ASSERTING_RESET:
206206
case HCLGE_MBX_LINK_STAT_MODE:
207-
case HLCGE_MBX_PUSH_VLAN_INFO:
207+
case HCLGE_MBX_PUSH_VLAN_INFO:
208208
/* set this mbx event as pending. This is required as we
209209
* might loose interrupt event when mbx task is busy
210210
* handling. This shall be cleared when mbx task just
@@ -307,7 +307,7 @@ void hclgevf_mbx_async_handler(struct hclgevf_dev *hdev)
307307
hclgevf_reset_task_schedule(hdev);
308308

309309
break;
310-
case HLCGE_MBX_PUSH_VLAN_INFO:
310+
case HCLGE_MBX_PUSH_VLAN_INFO:
311311
state = le16_to_cpu(msg_q[1]);
312312
vlan_info = &msg_q[1];
313313
hclgevf_update_port_base_vlan_info(hdev, state,

drivers/net/ethernet/intel/igc/igc_main.c

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3912,27 +3912,23 @@ void igc_write_pci_cfg(struct igc_hw *hw, u32 reg, u16 *value)
39123912
s32 igc_read_pcie_cap_reg(struct igc_hw *hw, u32 reg, u16 *value)
39133913
{
39143914
struct igc_adapter *adapter = hw->back;
3915-
u16 cap_offset;
39163915

3917-
cap_offset = pci_find_capability(adapter->pdev, PCI_CAP_ID_EXP);
3918-
if (!cap_offset)
3916+
if (!pci_is_pcie(adapter->pdev))
39193917
return -IGC_ERR_CONFIG;
39203918

3921-
pci_read_config_word(adapter->pdev, cap_offset + reg, value);
3919+
pcie_capability_read_word(adapter->pdev, reg, value);
39223920

39233921
return IGC_SUCCESS;
39243922
}
39253923

39263924
s32 igc_write_pcie_cap_reg(struct igc_hw *hw, u32 reg, u16 *value)
39273925
{
39283926
struct igc_adapter *adapter = hw->back;
3929-
u16 cap_offset;
39303927

3931-
cap_offset = pci_find_capability(adapter->pdev, PCI_CAP_ID_EXP);
3932-
if (!cap_offset)
3928+
if (!pci_is_pcie(adapter->pdev))
39333929
return -IGC_ERR_CONFIG;
39343930

3935-
pci_write_config_word(adapter->pdev, cap_offset + reg, *value);
3931+
pcie_capability_write_word(adapter->pdev, reg, *value);
39363932

39373933
return IGC_SUCCESS;
39383934
}

drivers/net/ethernet/mellanox/mlx5/core/en_rep.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -735,8 +735,7 @@ mlx5e_rep_indr_setup_tc_block(struct net_device *netdev,
735735
list_add(&indr_priv->list,
736736
&rpriv->uplink_priv.tc_indr_block_priv_list);
737737

738-
block_cb = flow_block_cb_alloc(f->net,
739-
mlx5e_rep_indr_setup_block_cb,
738+
block_cb = flow_block_cb_alloc(mlx5e_rep_indr_setup_block_cb,
740739
indr_priv, indr_priv,
741740
mlx5e_rep_indr_tc_block_unbind);
742741
if (IS_ERR(block_cb)) {
@@ -753,7 +752,7 @@ mlx5e_rep_indr_setup_tc_block(struct net_device *netdev,
753752
if (!indr_priv)
754753
return -ENOENT;
755754

756-
block_cb = flow_block_cb_lookup(f,
755+
block_cb = flow_block_cb_lookup(f->block,
757756
mlx5e_rep_indr_setup_block_cb,
758757
indr_priv);
759758
if (!block_cb)

drivers/net/ethernet/mellanox/mlxsw/spectrum.c

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1604,14 +1604,14 @@ mlxsw_sp_setup_tc_block_flower_bind(struct mlxsw_sp_port *mlxsw_sp_port,
16041604
bool register_block = false;
16051605
int err;
16061606

1607-
block_cb = flow_block_cb_lookup(f, mlxsw_sp_setup_tc_block_cb_flower,
1607+
block_cb = flow_block_cb_lookup(f->block,
1608+
mlxsw_sp_setup_tc_block_cb_flower,
16081609
mlxsw_sp);
16091610
if (!block_cb) {
16101611
acl_block = mlxsw_sp_acl_block_create(mlxsw_sp, f->net);
16111612
if (!acl_block)
16121613
return -ENOMEM;
1613-
block_cb = flow_block_cb_alloc(f->net,
1614-
mlxsw_sp_setup_tc_block_cb_flower,
1614+
block_cb = flow_block_cb_alloc(mlxsw_sp_setup_tc_block_cb_flower,
16151615
mlxsw_sp, acl_block,
16161616
mlxsw_sp_tc_block_flower_release);
16171617
if (IS_ERR(block_cb)) {
@@ -1657,7 +1657,8 @@ mlxsw_sp_setup_tc_block_flower_unbind(struct mlxsw_sp_port *mlxsw_sp_port,
16571657
struct flow_block_cb *block_cb;
16581658
int err;
16591659

1660-
block_cb = flow_block_cb_lookup(f, mlxsw_sp_setup_tc_block_cb_flower,
1660+
block_cb = flow_block_cb_lookup(f->block,
1661+
mlxsw_sp_setup_tc_block_cb_flower,
16611662
mlxsw_sp);
16621663
if (!block_cb)
16631664
return;
@@ -1680,7 +1681,7 @@ static int mlxsw_sp_setup_tc_block(struct mlxsw_sp_port *mlxsw_sp_port,
16801681
struct flow_block_offload *f)
16811682
{
16821683
struct flow_block_cb *block_cb;
1683-
tc_setup_cb_t *cb;
1684+
flow_setup_cb_t *cb;
16841685
bool ingress;
16851686
int err;
16861687

@@ -1702,7 +1703,7 @@ static int mlxsw_sp_setup_tc_block(struct mlxsw_sp_port *mlxsw_sp_port,
17021703
&mlxsw_sp_block_cb_list))
17031704
return -EBUSY;
17041705

1705-
block_cb = flow_block_cb_alloc(f->net, cb, mlxsw_sp_port,
1706+
block_cb = flow_block_cb_alloc(cb, mlxsw_sp_port,
17061707
mlxsw_sp_port, NULL);
17071708
if (IS_ERR(block_cb))
17081709
return PTR_ERR(block_cb);
@@ -1718,7 +1719,7 @@ static int mlxsw_sp_setup_tc_block(struct mlxsw_sp_port *mlxsw_sp_port,
17181719
case FLOW_BLOCK_UNBIND:
17191720
mlxsw_sp_setup_tc_block_flower_unbind(mlxsw_sp_port,
17201721
f, ingress);
1721-
block_cb = flow_block_cb_lookup(f, cb, mlxsw_sp_port);
1722+
block_cb = flow_block_cb_lookup(f->block, cb, mlxsw_sp_port);
17221723
if (!block_cb)
17231724
return -ENOENT;
17241725

drivers/net/ethernet/mscc/ocelot_flower.c

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -316,15 +316,14 @@ int ocelot_setup_tc_block_flower_bind(struct ocelot_port *port,
316316
if (f->binder_type == FLOW_BLOCK_BINDER_TYPE_CLSACT_EGRESS)
317317
return -EOPNOTSUPP;
318318

319-
block_cb = flow_block_cb_lookup(f, ocelot_setup_tc_block_cb_flower,
320-
port);
319+
block_cb = flow_block_cb_lookup(f->block,
320+
ocelot_setup_tc_block_cb_flower, port);
321321
if (!block_cb) {
322322
port_block = ocelot_port_block_create(port);
323323
if (!port_block)
324324
return -ENOMEM;
325325

326-
block_cb = flow_block_cb_alloc(f->net,
327-
ocelot_setup_tc_block_cb_flower,
326+
block_cb = flow_block_cb_alloc(ocelot_setup_tc_block_cb_flower,
328327
port, port_block,
329328
ocelot_tc_block_unbind);
330329
if (IS_ERR(block_cb)) {
@@ -351,8 +350,8 @@ void ocelot_setup_tc_block_flower_unbind(struct ocelot_port *port,
351350
{
352351
struct flow_block_cb *block_cb;
353352

354-
block_cb = flow_block_cb_lookup(f, ocelot_setup_tc_block_cb_flower,
355-
port);
353+
block_cb = flow_block_cb_lookup(f->block,
354+
ocelot_setup_tc_block_cb_flower, port);
356355
if (!block_cb)
357356
return;
358357

drivers/net/ethernet/mscc/ocelot_tc.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ static int ocelot_setup_tc_block(struct ocelot_port *port,
134134
struct flow_block_offload *f)
135135
{
136136
struct flow_block_cb *block_cb;
137-
tc_setup_cb_t *cb;
137+
flow_setup_cb_t *cb;
138138
int err;
139139

140140
netdev_dbg(port->dev, "tc_block command %d, binder_type %d\n",
@@ -156,7 +156,7 @@ static int ocelot_setup_tc_block(struct ocelot_port *port,
156156
if (flow_block_cb_is_busy(cb, port, &ocelot_block_cb_list))
157157
return -EBUSY;
158158

159-
block_cb = flow_block_cb_alloc(f->net, cb, port, port, NULL);
159+
block_cb = flow_block_cb_alloc(cb, port, port, NULL);
160160
if (IS_ERR(block_cb))
161161
return PTR_ERR(block_cb);
162162

@@ -169,7 +169,7 @@ static int ocelot_setup_tc_block(struct ocelot_port *port,
169169
list_add_tail(&block_cb->driver_list, f->driver_block_list);
170170
return 0;
171171
case FLOW_BLOCK_UNBIND:
172-
block_cb = flow_block_cb_lookup(f, cb, port);
172+
block_cb = flow_block_cb_lookup(f->block, cb, port);
173173
if (!block_cb)
174174
return -ENOENT;
175175

drivers/net/ethernet/netronome/nfp/flower/offload.c

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1318,8 +1318,7 @@ static int nfp_flower_setup_tc_block(struct net_device *netdev,
13181318
&nfp_block_cb_list))
13191319
return -EBUSY;
13201320

1321-
block_cb = flow_block_cb_alloc(f->net,
1322-
nfp_flower_setup_tc_block_cb,
1321+
block_cb = flow_block_cb_alloc(nfp_flower_setup_tc_block_cb,
13231322
repr, repr, NULL);
13241323
if (IS_ERR(block_cb))
13251324
return PTR_ERR(block_cb);
@@ -1328,7 +1327,8 @@ static int nfp_flower_setup_tc_block(struct net_device *netdev,
13281327
list_add_tail(&block_cb->driver_list, &nfp_block_cb_list);
13291328
return 0;
13301329
case FLOW_BLOCK_UNBIND:
1331-
block_cb = flow_block_cb_lookup(f, nfp_flower_setup_tc_block_cb,
1330+
block_cb = flow_block_cb_lookup(f->block,
1331+
nfp_flower_setup_tc_block_cb,
13321332
repr);
13331333
if (!block_cb)
13341334
return -ENOENT;
@@ -1424,8 +1424,7 @@ nfp_flower_setup_indr_tc_block(struct net_device *netdev, struct nfp_app *app,
14241424
cb_priv->app = app;
14251425
list_add(&cb_priv->list, &priv->indr_block_cb_priv);
14261426

1427-
block_cb = flow_block_cb_alloc(f->net,
1428-
nfp_flower_setup_indr_block_cb,
1427+
block_cb = flow_block_cb_alloc(nfp_flower_setup_indr_block_cb,
14291428
cb_priv, cb_priv,
14301429
nfp_flower_setup_indr_tc_release);
14311430
if (IS_ERR(block_cb)) {
@@ -1442,7 +1441,7 @@ nfp_flower_setup_indr_tc_block(struct net_device *netdev, struct nfp_app *app,
14421441
if (!cb_priv)
14431442
return -ENOENT;
14441443

1445-
block_cb = flow_block_cb_lookup(f,
1444+
block_cb = flow_block_cb_lookup(f->block,
14461445
nfp_flower_setup_indr_block_cb,
14471446
cb_priv);
14481447
if (!block_cb)

drivers/net/ethernet/qlogic/qed/qed_rdma.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -530,9 +530,8 @@ static void qed_rdma_init_devinfo(struct qed_hwfn *p_hwfn,
530530
SET_FIELD(dev->dev_caps, QED_RDMA_DEV_CAP_LOCAL_INV_FENCE, 1);
531531

532532
/* Check atomic operations support in PCI configuration space. */
533-
pci_read_config_dword(cdev->pdev,
534-
cdev->pdev->pcie_cap + PCI_EXP_DEVCTL2,
535-
&pci_status_control);
533+
pcie_capability_read_dword(cdev->pdev, PCI_EXP_DEVCTL2,
534+
&pci_status_control);
536535

537536
if (pci_status_control & PCI_EXP_DEVCTL2_LTR_EN)
538537
SET_FIELD(dev->dev_caps, QED_RDMA_DEV_CAP_ATOMIC_OP, 1);

drivers/net/ethernet/realtek/r8169_main.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3251,9 +3251,9 @@ static void rtl8168g_1_hw_phy_config(struct rtl8169_private *tp)
32513251

32523252
ret = phy_read_paged(tp->phydev, 0x0a46, 0x13);
32533253
if (ret & BIT(8))
3254-
phy_modify_paged(tp->phydev, 0x0c41, 0x12, 0, BIT(1));
3254+
phy_modify_paged(tp->phydev, 0x0c41, 0x15, 0, BIT(1));
32553255
else
3256-
phy_modify_paged(tp->phydev, 0x0c41, 0x12, BIT(1), 0);
3256+
phy_modify_paged(tp->phydev, 0x0c41, 0x15, BIT(1), 0);
32573257

32583258
/* Enable PHY auto speed down */
32593259
phy_modify_paged(tp->phydev, 0x0a44, 0x11, 0, BIT(3) | BIT(2));

drivers/net/hyperv/netvsc_drv.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -836,7 +836,6 @@ int netvsc_recv_callback(struct net_device *net,
836836

837837
if (unlikely(!skb)) {
838838
++net_device_ctx->eth_stats.rx_no_memory;
839-
rcu_read_unlock();
840839
return NVSP_STAT_FAIL;
841840
}
842841

drivers/net/phy/sfp.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -517,7 +517,7 @@ static int sfp_hwmon_read_sensor(struct sfp *sfp, int reg, long *value)
517517

518518
static void sfp_hwmon_to_rx_power(long *value)
519519
{
520-
*value = DIV_ROUND_CLOSEST(*value, 100);
520+
*value = DIV_ROUND_CLOSEST(*value, 10);
521521
}
522522

523523
static void sfp_hwmon_calibrate(struct sfp *sfp, unsigned int slope, int offset,

0 commit comments

Comments
 (0)