diff --git a/root/target/linux/brcm2708/patches-4.14/0149-lan78xx-Read-MAC-address-from-DT-if-present.patch b/root/target/linux/brcm2708/patches-4.14/0149-lan78xx-Read-MAC-address-from-DT-if-present.patch deleted file mode 100644 index 072395b3..00000000 --- a/root/target/linux/brcm2708/patches-4.14/0149-lan78xx-Read-MAC-address-from-DT-if-present.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 2056147441c525a2fbe68ed52668b3be51d7c988 Mon Sep 17 00:00:00 2001 -From: Phil Elwell -Date: Fri, 21 Jul 2017 11:30:18 +0100 -Subject: [PATCH 149/277] lan78xx: Read MAC address from DT if present - -There is a standard mechanism for locating and using a MAC address from -the Device Tree. Use this facility in the lan78xx driver to support -applications without programmed EEPROM or OTP. - -Signed-off-by: Phil Elwell ---- - drivers/net/usb/lan78xx.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c -index a8dd1c7a08cb..2727ce1f9b53 100644 ---- a/drivers/net/usb/lan78xx.c -+++ b/drivers/net/usb/lan78xx.c -@@ -37,6 +37,7 @@ - #include - #include - #include -+#include - #include "lan78xx.h" - - #define DRIVER_AUTHOR "WOOJUNG HUH " -@@ -1639,6 +1640,14 @@ static void lan78xx_init_mac_address(struct lan78xx_net *dev) - u32 addr_lo, addr_hi; - int ret; - u8 addr[6]; -+ const u8 *mac_addr; -+ -+ /* maybe the boot loader passed the MAC address in devicetree */ -+ mac_addr = of_get_mac_address(dev->udev->dev.of_node); -+ if (mac_addr) { -+ ether_addr_copy(addr, mac_addr); -+ goto set_mac_addr; -+ } - - ret = lan78xx_read_reg(dev, RX_ADDRL, &addr_lo); - ret = lan78xx_read_reg(dev, RX_ADDRH, &addr_hi); -@@ -1667,6 +1676,7 @@ static void lan78xx_init_mac_address(struct lan78xx_net *dev) - "MAC address set to random addr"); - } - -+set_mac_addr: - addr_lo = addr[0] | (addr[1] << 8) | - (addr[2] << 16) | (addr[3] << 24); - addr_hi = addr[4] | (addr[5] << 8); --- -2.16.1 - diff --git a/root/target/linux/brcm2708/patches-4.14/0284-lan78xx-Ignore-DT-MAC-address-if-already-valid.patch b/root/target/linux/brcm2708/patches-4.14/0284-lan78xx-Ignore-DT-MAC-address-if-already-valid.patch deleted file mode 100644 index b7f4656d..00000000 --- a/root/target/linux/brcm2708/patches-4.14/0284-lan78xx-Ignore-DT-MAC-address-if-already-valid.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 9696aab22bb8163fb3a2a262dd6c67f6d05b70a1 Mon Sep 17 00:00:00 2001 -From: Phil Elwell -Date: Wed, 28 Mar 2018 12:18:13 +0100 -Subject: [PATCH 284/297] lan78xx: Ignore DT MAC address if already valid - -The patch to set the lan78xx MAC address from DT does so regardless of -whether or not the interface already has a valid address. As the -initialisation function is called from the reset handler when the -interface is brought up, it is impossible to change the MAC address -in a way that persists across the interface being brought up. - -Fix the problem by moving the DT reading code after the check for a -valid address. - -See: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=209309 - -Signed-off-by: Phil Elwell ---- - drivers/net/usb/lan78xx.c | 17 +++++++++-------- - 1 file changed, 9 insertions(+), 8 deletions(-) - -diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c -index 52593368a48d..981cc5bf2df4 100644 ---- a/drivers/net/usb/lan78xx.c -+++ b/drivers/net/usb/lan78xx.c -@@ -1641,14 +1641,6 @@ static void lan78xx_init_mac_address(struct lan78xx_net *dev) - u32 addr_lo, addr_hi; - int ret; - u8 addr[6]; -- const u8 *mac_addr; -- -- /* maybe the boot loader passed the MAC address in devicetree */ -- mac_addr = of_get_mac_address(dev->udev->dev.of_node); -- if (mac_addr) { -- ether_addr_copy(addr, mac_addr); -- goto set_mac_addr; -- } - - ret = lan78xx_read_reg(dev, RX_ADDRL, &addr_lo); - ret = lan78xx_read_reg(dev, RX_ADDRH, &addr_hi); -@@ -1661,6 +1653,15 @@ static void lan78xx_init_mac_address(struct lan78xx_net *dev) - addr[5] = (addr_hi >> 8) & 0xFF; - - if (!is_valid_ether_addr(addr)) { -+ const u8 *mac_addr; -+ -+ /* maybe the boot loader passed the MAC address in devicetree */ -+ mac_addr = of_get_mac_address(dev->udev->dev.of_node); -+ if (mac_addr) { -+ ether_addr_copy(addr, mac_addr); -+ goto set_mac_addr; -+ } -+ - /* reading mac address from EEPROM or OTP */ - if ((lan78xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN, - addr) == 0) || --- -2.16.1 - diff --git a/root/target/linux/brcm2708/patches-4.14/0485-staging-vchiq_arm-fix-compat-VCHIQ_IOC_AWAIT_COMPLET.patch b/root/target/linux/brcm2708/patches-4.14/0485-staging-vchiq_arm-fix-compat-VCHIQ_IOC_AWAIT_COMPLET.patch deleted file mode 100644 index 7e0d2f93..00000000 --- a/root/target/linux/brcm2708/patches-4.14/0485-staging-vchiq_arm-fix-compat-VCHIQ_IOC_AWAIT_COMPLET.patch +++ /dev/null @@ -1,63 +0,0 @@ -From d1394b5739ff97a6e504be4755ce023e422a6d39 Mon Sep 17 00:00:00 2001 -From: Ben Wolsieffer -Date: Tue, 13 Nov 2018 08:30:17 -0500 -Subject: [PATCH 485/496] staging: vchiq_arm: fix compat - VCHIQ_IOC_AWAIT_COMPLETION (#2703) - -The compatibility ioctl wrapper for VCHIQ_IOC_AWAIT_COMPLETION assumes that -the native ioctl always uses a message buffer and decrements msgbufcount. -Certain message types do not use a message buffer and in this case -msgbufcount is not decremented, and completion->header for the message is -NULL. Because the wrapper unconditionally decrements msgbufcount, the -calling process may assume that a message buffer has been used even when -it has not. - -This results in a memory leak in the userspace code that interfaces with -this driver. When msgbufcount is decremented, the userspace code assumes -that the buffer can be freed though the reference in completion->header, -which cannot happen when the reference is NULL. - -This patch causes the wrapper to only decrement msgbufcount when the -native ioctl decrements it. Note that we cannot simply copy the native -ioctl's value of msgbufcount, because the wrapper only retrieves messages -from the native ioctl one at a time, while userspace may request multiple -messages. - -See https://github.com/raspberrypi/linux/pull/2703 for more discussion of -this patch. - -Fixes: 5569a12 ("staging: vchiq_arm: Add compatibility wrappers for ioctls") - -Signed-off-by: Ben Wolsieffer ---- - .../staging/vc04_services/interface/vchiq_arm/vchiq_arm.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c -index d67987fbf25e..8ff0e7e860f3 100644 ---- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c -+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c -@@ -1461,6 +1461,7 @@ vchiq_compat_ioctl_await_completion(struct file *file, - struct vchiq_await_completion32 args32; - struct vchiq_completion_data32 completion32; - unsigned int *msgbufcount32; -+ unsigned int msgbufcount_native; - compat_uptr_t msgbuf32; - void *msgbuf; - void **msgbufptr; -@@ -1572,7 +1573,11 @@ vchiq_compat_ioctl_await_completion(struct file *file, - sizeof(completion32))) - return -EFAULT; - -- args32.msgbufcount--; -+ if (get_user(msgbufcount_native, &args->msgbufcount)) -+ return -EFAULT; -+ -+ if (!msgbufcount_native) -+ args32.msgbufcount--; - - msgbufcount32 = - &((struct vchiq_await_completion32 __user *)arg)->msgbufcount; --- -2.19.1 -