Runtime-tested on ar71xx.
Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
LINUX_RELEASE?=1
-LINUX_VERSION-3.18 = .71
+LINUX_VERSION-3.18 = .75
-LINUX_KERNEL_MD5SUM-3.18.71 = 98875fe779041e89c37e51b0208011ea
+LINUX_KERNEL_MD5SUM-3.18.75 = 7e49dc4c2e7abc4398172c04c431dbce
ifdef KERNEL_PATCHVER
LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -4006,6 +4006,9 @@ static enum gro_result dev_gro_receive(s
+@@ -4009,6 +4009,9 @@ static enum gro_result dev_gro_receive(s
enum gro_result ret;
int grow;
if (!(skb->dev->features & NETIF_F_GRO))
goto normal;
-@@ -5077,6 +5080,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -5080,6 +5083,48 @@ static void __netdev_adjacent_dev_unlink
&upper_dev->adj_list.lower);
}
static int __netdev_upper_dev_link(struct net_device *dev,
struct net_device *upper_dev, bool master,
void *private)
-@@ -5137,6 +5182,7 @@ static int __netdev_upper_dev_link(struc
+@@ -5140,6 +5185,7 @@ static int __netdev_upper_dev_link(struc
goto rollback_lower_mesh;
}
call_netdevice_notifiers(NETDEV_CHANGEUPPER, dev);
return 0;
-@@ -5254,6 +5300,7 @@ void netdev_upper_dev_unlink(struct net_
+@@ -5257,6 +5303,7 @@ void netdev_upper_dev_unlink(struct net_
list_for_each_entry(i, &upper_dev->all_adj_list.upper, list)
__netdev_adjacent_dev_unlink(dev, i->dev, i->ref_nr);
call_netdevice_notifiers(NETDEV_CHANGEUPPER, dev);
}
EXPORT_SYMBOL(netdev_upper_dev_unlink);
-@@ -5773,6 +5820,7 @@ int dev_set_mac_address(struct net_devic
+@@ -5776,6 +5823,7 @@ int dev_set_mac_address(struct net_devic
if (err)
return err;
dev->addr_assign_type = NET_ADDR_SET;
help
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -2626,10 +2626,20 @@ static int xmit_one(struct sk_buff *skb,
+@@ -2629,10 +2629,20 @@ static int xmit_one(struct sk_buff *skb,
if (!list_empty(&ptype_all))
dev_queue_xmit_nit(skb, dev);
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
-@@ -841,7 +841,8 @@ void phy_state_machine(struct work_struc
+@@ -838,7 +838,8 @@ void phy_state_machine(struct work_struc
/* If the link is down, give up on negotiation for now */
if (!phydev->link) {
phydev->state = PHY_NOLINK;
phydev->adjust_link(phydev->attached_dev);
break;
}
-@@ -914,7 +915,8 @@ void phy_state_machine(struct work_struc
+@@ -911,7 +912,8 @@ void phy_state_machine(struct work_struc
netif_carrier_on(phydev->attached_dev);
} else {
phydev->state = PHY_NOLINK;
}
phydev->adjust_link(phydev->attached_dev);
-@@ -926,7 +928,8 @@ void phy_state_machine(struct work_struc
+@@ -923,7 +925,8 @@ void phy_state_machine(struct work_struc
case PHY_HALTED:
if (phydev->link) {
phydev->link = 0;
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
-@@ -841,7 +841,8 @@ void phy_state_machine(struct work_struc
+@@ -838,7 +838,8 @@ void phy_state_machine(struct work_struc
/* If the link is down, give up on negotiation for now */
if (!phydev->link) {
phydev->state = PHY_NOLINK;
phydev->adjust_link(phydev->attached_dev);
break;
}
-@@ -914,7 +915,8 @@ void phy_state_machine(struct work_struc
+@@ -911,7 +912,8 @@ void phy_state_machine(struct work_struc
netif_carrier_on(phydev->attached_dev);
} else {
phydev->state = PHY_NOLINK;
}
phydev->adjust_link(phydev->attached_dev);
-@@ -926,7 +928,8 @@ void phy_state_machine(struct work_struc
+@@ -923,7 +925,8 @@ void phy_state_machine(struct work_struc
case PHY_HALTED:
if (phydev->link) {
phydev->link = 0;
#include "sdio_cis.h"
#include "sdio_bus.h"
-@@ -303,6 +305,13 @@ static void sdio_acpi_set_handle(struct
+@@ -313,6 +315,13 @@ static void sdio_acpi_set_handle(struct
static inline void sdio_acpi_set_handle(struct sdio_func *func) {}
#endif
/*
* Register a new SDIO function with the driver model.
*/
-@@ -312,6 +321,7 @@ int sdio_add_func(struct sdio_func *func
+@@ -322,6 +331,7 @@ int sdio_add_func(struct sdio_func *func
dev_set_name(&func->dev, "%s:%d", mmc_card_id(func->card), func->num);
sdio_acpi_set_handle(func);
ret = device_add(&func->dev);
if (ret == 0) {
-@@ -335,6 +345,7 @@ void sdio_remove_func(struct sdio_func *
+@@ -345,6 +355,7 @@ void sdio_remove_func(struct sdio_func *
dev_pm_domain_detach(&func->dev, false);
device_del(&func->dev);