Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Fun set of conflict resolutions here... For the mac80211 stuff, these were fortunately just parallel adds. Trivially resolved. In drivers/net/phy/phy.c we had a bug fix in 'net' that moved the function phy_disable_interrupts() earlier in the file, whilst in 'net-next' the phy_error() call from this function was removed. In net/ipv4/xfrm4_policy.c, David Ahern's changes to remove the 'rt_table_id' member of rtable collided with a bug fix in 'net' that added a new struct member "rt_mtu_locked" which needs to be copied over here. The mlxsw driver conflict consisted of net-next separating the span code and definitions into separate files, whilst a 'net' bug fix made some changes to that moved code. The mlx5 infiniband conflict resolution was quite non-trivial, the RDMA tree's merge commit was used as a guide here, and here are their notes: ==================== Due to bug fixes found by the syzkaller bot and taken into the for-rc branch after development for the 4.17 merge window had already started being taken into the for-next branch, there were fairly non-trivial merge issues that would need to be resolved between the for-rc branch and the for-next branch. This merge resolves those conflicts and provides a unified base upon which ongoing development for 4.17 can be based. Conflicts: drivers/infiniband/hw/mlx5/main.c - Commit42cea83f95
(IB/mlx5: Fix cleanup order on unload) added to for-rc and commitb5ca15ad7e
(IB/mlx5: Add proper representors support) add as part of the devel cycle both needed to modify the init/de-init functions used by mlx5. To support the new representors, the new functions added by the cleanup patch needed to be made non-static, and the init/de-init list added by the representors patch needed to be modified to match the init/de-init list changes made by the cleanup patch. Updates: drivers/infiniband/hw/mlx5/mlx5_ib.h - Update function prototypes added by representors patch to reflect new function names as changed by cleanup patch drivers/infiniband/hw/mlx5/ib_rep.c - Update init/de-init stage list to match new order from cleanup patch ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -257,7 +257,7 @@ struct ppp_net {
|
||||
/* Prototypes. */
|
||||
static int ppp_unattached_ioctl(struct net *net, struct ppp_file *pf,
|
||||
struct file *file, unsigned int cmd, unsigned long arg);
|
||||
static void ppp_xmit_process(struct ppp *ppp);
|
||||
static void ppp_xmit_process(struct ppp *ppp, struct sk_buff *skb);
|
||||
static void ppp_send_frame(struct ppp *ppp, struct sk_buff *skb);
|
||||
static void ppp_push(struct ppp *ppp);
|
||||
static void ppp_channel_push(struct channel *pch);
|
||||
@@ -513,13 +513,12 @@ static ssize_t ppp_write(struct file *file, const char __user *buf,
|
||||
goto out;
|
||||
}
|
||||
|
||||
skb_queue_tail(&pf->xq, skb);
|
||||
|
||||
switch (pf->kind) {
|
||||
case INTERFACE:
|
||||
ppp_xmit_process(PF_TO_PPP(pf));
|
||||
ppp_xmit_process(PF_TO_PPP(pf), skb);
|
||||
break;
|
||||
case CHANNEL:
|
||||
skb_queue_tail(&pf->xq, skb);
|
||||
ppp_channel_push(PF_TO_CHANNEL(pf));
|
||||
break;
|
||||
}
|
||||
@@ -1268,8 +1267,8 @@ ppp_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
put_unaligned_be16(proto, pp);
|
||||
|
||||
skb_scrub_packet(skb, !net_eq(ppp->ppp_net, dev_net(dev)));
|
||||
skb_queue_tail(&ppp->file.xq, skb);
|
||||
ppp_xmit_process(ppp);
|
||||
ppp_xmit_process(ppp, skb);
|
||||
|
||||
return NETDEV_TX_OK;
|
||||
|
||||
outf:
|
||||
@@ -1421,13 +1420,14 @@ static void ppp_setup(struct net_device *dev)
|
||||
*/
|
||||
|
||||
/* Called to do any work queued up on the transmit side that can now be done */
|
||||
static void __ppp_xmit_process(struct ppp *ppp)
|
||||
static void __ppp_xmit_process(struct ppp *ppp, struct sk_buff *skb)
|
||||
{
|
||||
struct sk_buff *skb;
|
||||
|
||||
ppp_xmit_lock(ppp);
|
||||
if (!ppp->closing) {
|
||||
ppp_push(ppp);
|
||||
|
||||
if (skb)
|
||||
skb_queue_tail(&ppp->file.xq, skb);
|
||||
while (!ppp->xmit_pending &&
|
||||
(skb = skb_dequeue(&ppp->file.xq)))
|
||||
ppp_send_frame(ppp, skb);
|
||||
@@ -1441,7 +1441,7 @@ static void __ppp_xmit_process(struct ppp *ppp)
|
||||
ppp_xmit_unlock(ppp);
|
||||
}
|
||||
|
||||
static void ppp_xmit_process(struct ppp *ppp)
|
||||
static void ppp_xmit_process(struct ppp *ppp, struct sk_buff *skb)
|
||||
{
|
||||
local_bh_disable();
|
||||
|
||||
@@ -1449,7 +1449,7 @@ static void ppp_xmit_process(struct ppp *ppp)
|
||||
goto err;
|
||||
|
||||
(*this_cpu_ptr(ppp->xmit_recursion))++;
|
||||
__ppp_xmit_process(ppp);
|
||||
__ppp_xmit_process(ppp, skb);
|
||||
(*this_cpu_ptr(ppp->xmit_recursion))--;
|
||||
|
||||
local_bh_enable();
|
||||
@@ -1459,6 +1459,8 @@ static void ppp_xmit_process(struct ppp *ppp)
|
||||
err:
|
||||
local_bh_enable();
|
||||
|
||||
kfree_skb(skb);
|
||||
|
||||
if (net_ratelimit())
|
||||
netdev_err(ppp->dev, "recursion detected\n");
|
||||
}
|
||||
@@ -1943,7 +1945,7 @@ static void __ppp_channel_push(struct channel *pch)
|
||||
if (skb_queue_empty(&pch->file.xq)) {
|
||||
ppp = pch->ppp;
|
||||
if (ppp)
|
||||
__ppp_xmit_process(ppp);
|
||||
__ppp_xmit_process(ppp, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user