kernel: Update to version 4.4.182

Fixes:
- CVE-2019-11479
- CVE-2019-11478
- CVE-2019-11477
- CVE-2019-11833
- CVE-2019-11091
- CVE-2018-12126
- CVE-2018-12130
- CVE-2018-12127
- CVE-2019-3882
- CVE-2019-6974
- CVE-2019-3819
- CVE-2019-7221
- CVE-2019-7222
- CVE-2019-3701
- CVE-2018-19985
- CVE-2018-1120
And probably more

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
Hauke Mehrtens 2019-05-30 22:49:32 +02:00
parent af50ce32c5
commit 6c5c3a2edc
80 changed files with 264 additions and 441 deletions

View File

@ -3,10 +3,10 @@
LINUX_RELEASE?=1
LINUX_VERSION-3.18 = .43
LINUX_VERSION-4.4 = .167
LINUX_VERSION-4.4 = .182
LINUX_KERNEL_HASH-3.18.43 = 1236e8123a6ce537d5029232560966feed054ae31776fe8481dd7d18cdd5492c
LINUX_KERNEL_HASH-4.4.167 = 33ca4c28a565404fc7b07f9d6b734c291035f7e7e46c280131494b04e3953edf
LINUX_KERNEL_HASH-4.4.182 = c409d88f61cd9a37cbba36d5d9c8162263eb1e5c9380efaf880a3ec10cd88527
ifdef KERNEL_PATCHVER
LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))

View File

@ -0,0 +1,65 @@
--- a/backport-include/linux/mm.h
+++ b/backport-include/linux/mm.h
@@ -39,8 +39,20 @@ static inline
long backport_get_user_pages_locked(unsigned long start, unsigned long nr_pages,
int write, int force, struct page **pages, int *locked)
{
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,4,168))
return get_user_pages_locked(current, current->mm, start, nr_pages,
write, force, pages, locked);
+#else
+ int flags = 0;
+
+ if (write)
+ flags |= FOLL_WRITE;
+ if (force)
+ flags |= FOLL_FORCE;
+
+ return get_user_pages_locked(current, current->mm, start, nr_pages,
+ flags, pages, locked);
+#endif
}
#define get_user_pages_locked LINUX_BACKPORT(get_user_pages_locked)
@@ -48,8 +60,20 @@ static inline
long backport_get_user_pages_unlocked(unsigned long start, unsigned long nr_pages,
int write, int force, struct page **pages)
{
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,4,168))
return get_user_pages_unlocked(current, current->mm, start, nr_pages,
write, force, pages);
+#else
+ int flags = 0;
+
+ if (write)
+ flags |= FOLL_WRITE;
+ if (force)
+ flags |= FOLL_FORCE;
+
+ return get_user_pages_unlocked(current, current->mm, start, nr_pages,
+ pages, flags);
+#endif
}
#define get_user_pages_unlocked LINUX_BACKPORT(get_user_pages_unlocked)
#endif
@@ -60,8 +84,20 @@ long backport_get_user_pages(unsigned lo
int write, int force, struct page **pages,
struct vm_area_struct **vmas)
{
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,4,168))
return get_user_pages(current, current->mm, start, nr_pages,
write, force, pages, vmas);
+#else
+ int flags = 0;
+
+ if (write)
+ flags |= FOLL_WRITE;
+ if (force)
+ flags |= FOLL_FORCE;
+
+ return get_user_pages(current, current->mm, start, nr_pages,
+ flags, pages, vmas);
+#endif
}
#define get_user_pages LINUX_BACKPORT(get_user_pages)
#endif

View File

@ -240,7 +240,7 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
#define PPC4XX_SEC_VERSION_STR "0.5"
@@ -1221,6 +1222,7 @@ static int crypto4xx_probe(struct platfo
@@ -1230,6 +1231,7 @@ static int crypto4xx_probe(struct platfo
if (rc)
goto err_start_dev;
@ -248,7 +248,7 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
return 0;
err_start_dev:
@@ -1247,6 +1249,8 @@ static int crypto4xx_remove(struct platf
@@ -1256,6 +1258,8 @@ static int crypto4xx_remove(struct platf
struct device *dev = &ofdev->dev;
struct crypto4xx_core_device *core_dev = dev_get_drvdata(dev);
@ -257,7 +257,7 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
free_irq(core_dev->irq, dev);
irq_dispose_mapping(core_dev->irq);
@@ -1267,7 +1271,7 @@ MODULE_DEVICE_TABLE(of, crypto4xx_match)
@@ -1276,7 +1280,7 @@ MODULE_DEVICE_TABLE(of, crypto4xx_match)
static struct platform_driver crypto4xx_driver = {
.driver = {
@ -266,7 +266,7 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
.of_match_table = crypto4xx_match,
},
.probe = crypto4xx_probe,
@@ -1279,4 +1283,3 @@ module_platform_driver(crypto4xx_driver)
@@ -1288,4 +1292,3 @@ module_platform_driver(crypto4xx_driver)
MODULE_LICENSE("GPL");
MODULE_AUTHOR("James Hsiao <jhsiao@amcc.com>");
MODULE_DESCRIPTION("Driver for AMCC PPC4xx crypto accelerator");

View File

@ -47,7 +47,7 @@ Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
#include <linux/pm_runtime.h>
#include <linux/platform_device.h>
@@ -4945,6 +4946,9 @@ void ata_qc_complete(struct ata_queued_c
@@ -4946,6 +4947,9 @@ void ata_qc_complete(struct ata_queued_c
{
struct ata_port *ap = qc->ap;

View File

@ -24,7 +24,7 @@ produce a noisy warning.
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -388,10 +388,14 @@ static int xhci_try_enable_msi(struct us
@@ -386,10 +386,14 @@ static int xhci_try_enable_msi(struct us
free_irq(hcd->irq, hcd);
hcd->irq = 0;
@ -44,7 +44,7 @@ produce a noisy warning.
/* hcd->irq is 0, we have MSI */
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -1656,6 +1656,7 @@ struct xhci_hcd {
@@ -1657,6 +1657,7 @@ struct xhci_hcd {
/* support xHCI 0.96 spec USB2 software LPM */
unsigned sw_lpm_support:1;
/* support xHCI 1.0 spec USB2 hardware LPM */

View File

@ -10,7 +10,7 @@
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -1118,6 +1118,9 @@ config MIPS_MSC
@@ -1121,6 +1121,9 @@ config MIPS_MSC
config MIPS_NILE4
bool

View File

@ -241,7 +241,7 @@
*/
--- a/net/ipv6/datagram.c
+++ b/net/ipv6/datagram.c
@@ -433,7 +433,7 @@ int ipv6_recv_error(struct sock *sk, str
@@ -434,7 +434,7 @@ int ipv6_recv_error(struct sock *sk, str
ipv6_iface_scope_id(&sin->sin6_addr,
IP6CB(skb)->iif);
} else {
@ -250,7 +250,7 @@
&sin->sin6_addr);
sin->sin6_scope_id = 0;
}
@@ -773,12 +773,12 @@ int ip6_datagram_send_ctl(struct net *ne
@@ -772,12 +772,12 @@ int ip6_datagram_send_ctl(struct net *ne
}
if (fl6->flowlabel&IPV6_FLOWINFO_MASK) {
@ -664,7 +664,7 @@
#define IP6_MF 0x0001
#define IP6_OFFSET 0xFFF8
@@ -418,8 +418,8 @@ static inline void __ipv6_addr_set_half(
@@ -411,8 +411,8 @@ static inline void __ipv6_addr_set_half(
}
#endif
#endif
@ -675,7 +675,7 @@
}
static inline void ipv6_addr_set(struct in6_addr *addr,
@@ -478,6 +478,8 @@ static inline bool ipv6_prefix_equal(con
@@ -471,6 +471,8 @@ static inline bool ipv6_prefix_equal(con
const __be32 *a1 = addr1->s6_addr32;
const __be32 *a2 = addr2->s6_addr32;
unsigned int pdw, pbi;
@ -684,7 +684,7 @@
/* check complete u32 in prefix */
pdw = prefixlen >> 5;
@@ -486,7 +488,9 @@ static inline bool ipv6_prefix_equal(con
@@ -479,7 +481,9 @@ static inline bool ipv6_prefix_equal(con
/* check incomplete u32 in prefix */
pbi = prefixlen & 0x1f;
@ -695,7 +695,7 @@
return false;
return true;
@@ -630,13 +634,13 @@ static inline void ipv6_addr_set_v4mappe
@@ -608,13 +612,13 @@ static inline void ipv6_addr_set_v4mappe
*/
static inline int __ipv6_addr_diff32(const void *token1, const void *token2, int addrlen)
{
@ -711,7 +711,7 @@
if (xb)
return i * 32 + 31 - __fls(ntohl(xb));
}
@@ -805,17 +809,18 @@ static inline int ip6_default_np_autolab
@@ -783,17 +787,18 @@ static inline int ip6_default_np_autolab
static inline void ip6_flow_hdr(struct ipv6hdr *hdr, unsigned int tclass,
__be32 flowlabel)
{
@ -814,7 +814,7 @@
static struct fib6_node *node_alloc(void)
--- a/net/netfilter/nf_conntrack_proto_tcp.c
+++ b/net/netfilter/nf_conntrack_proto_tcp.c
@@ -456,7 +456,7 @@ static void tcp_sack(const struct sk_buf
@@ -458,7 +458,7 @@ static void tcp_sack(const struct sk_buf
/* Fast path for timestamp-only option */
if (length == TCPOLEN_TSTAMP_ALIGNED
@ -838,7 +838,7 @@
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -3836,14 +3836,16 @@ static bool tcp_parse_aligned_timestamp(
@@ -3852,14 +3852,16 @@ static bool tcp_parse_aligned_timestamp(
{
const __be32 *ptr = (const __be32 *)(th + 1);

View File

@ -40,7 +40,7 @@ it on BCM4708 family.
/* called during probe() after chip reset completes */
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -152,6 +152,49 @@ static int xhci_start(struct xhci_hcd *x
@@ -150,6 +150,49 @@ static int xhci_start(struct xhci_hcd *x
return ret;
}
@ -90,7 +90,7 @@ it on BCM4708 family.
/*
* Reset a halted HC.
*
@@ -568,10 +611,20 @@ int xhci_init(struct usb_hcd *hcd)
@@ -566,10 +609,20 @@ int xhci_init(struct usb_hcd *hcd)
static int xhci_run_finished(struct xhci_hcd *xhci)
{
@ -114,7 +114,7 @@ it on BCM4708 family.
xhci->shared_hcd->state = HC_STATE_RUNNING;
xhci->cmd_ring_state = CMD_RING_STATE_RUNNING;
@@ -581,6 +634,10 @@ static int xhci_run_finished(struct xhci
@@ -579,6 +632,10 @@ static int xhci_run_finished(struct xhci
xhci_dbg_trace(xhci, trace_xhci_dbg_init,
"Finished xhci_run for USB3 roothub");
return 0;
@ -127,7 +127,7 @@ it on BCM4708 family.
/*
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -1639,6 +1639,7 @@ struct xhci_hcd {
@@ -1640,6 +1640,7 @@ struct xhci_hcd {
#define XHCI_BROKEN_STREAMS (1 << 19)
#define XHCI_PME_STUCK_QUIRK (1 << 20)
#define XHCI_MISSING_CAS (1 << 24)

View File

@ -13,7 +13,7 @@ http://www.spinics.net/lists/linux-mm/msg72236.html
--- a/include/linux/vmstat.h
+++ b/include/linux/vmstat.h
@@ -219,7 +219,11 @@ static inline void __inc_zone_state(stru
@@ -220,7 +220,11 @@ static inline void __inc_zone_state(stru
static inline void __dec_zone_state(struct zone *zone, enum zone_stat_item item)
{
atomic_long_dec(&zone->vm_stat[item]);

View File

@ -19,7 +19,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/drivers/spi/spi-bcm2835.c
+++ b/drivers/spi/spi-bcm2835.c
@@ -688,6 +688,8 @@ static int bcm2835_spi_setup(struct spi_
@@ -686,6 +686,8 @@ static int bcm2835_spi_setup(struct spi_
{
int err;
struct gpio_chip *chip;
@ -28,7 +28,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
/*
* sanity checking the native-chipselects
*/
@@ -704,15 +706,42 @@ static int bcm2835_spi_setup(struct spi_
@@ -702,15 +704,42 @@ static int bcm2835_spi_setup(struct spi_
"setup: only two native chip-selects are supported\n");
return -EINVAL;
}

View File

@ -659,7 +659,7 @@ dwc_otg: Remove duplicate gadget probe/unregister function
}
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -5007,7 +5007,7 @@ static void port_event(struct usb_hub *h
@@ -5014,7 +5014,7 @@ static void port_event(struct usb_hub *h
if (portchange & USB_PORT_STAT_C_OVERCURRENT) {
u16 status = 0, unused;
@ -670,7 +670,7 @@ dwc_otg: Remove duplicate gadget probe/unregister function
msleep(100); /* Cool down */
--- a/drivers/usb/core/message.c
+++ b/drivers/usb/core/message.c
@@ -1924,6 +1924,85 @@ free_interfaces:
@@ -1925,6 +1925,85 @@ free_interfaces:
if (cp->string == NULL &&
!(dev->quirks & USB_QUIRK_CONFIG_INTF_STRINGS))
cp->string = usb_cache_string(dev, cp->desc.iConfiguration);

View File

@ -17,7 +17,7 @@ Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
--- a/drivers/video/fbdev/core/fbmem.c
+++ b/drivers/video/fbdev/core/fbmem.c
@@ -1084,6 +1084,25 @@ fb_blank(struct fb_info *info, int blank
@@ -1091,6 +1091,25 @@ fb_blank(struct fb_info *info, int blank
}
EXPORT_SYMBOL(fb_blank);
@ -43,7 +43,7 @@ Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
unsigned long arg)
{
@@ -1094,6 +1113,7 @@ static long do_fb_ioctl(struct fb_info *
@@ -1101,6 +1120,7 @@ static long do_fb_ioctl(struct fb_info *
struct fb_cmap cmap_from;
struct fb_cmap_user cmap;
struct fb_event event;
@ -51,7 +51,7 @@ Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
void __user *argp = (void __user *)arg;
long ret = 0;
@@ -1211,6 +1231,15 @@ static long do_fb_ioctl(struct fb_info *
@@ -1218,6 +1238,15 @@ static long do_fb_ioctl(struct fb_info *
unlock_fb_info(info);
console_unlock();
break;
@ -67,7 +67,7 @@ Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
default:
if (!lock_fb_info(info))
return -ENODEV;
@@ -1365,6 +1394,7 @@ static long fb_compat_ioctl(struct file
@@ -1372,6 +1401,7 @@ static long fb_compat_ioctl(struct file
case FBIOPAN_DISPLAY:
case FBIOGET_CON2FBMAP:
case FBIOPUT_CON2FBMAP:

View File

@ -16,7 +16,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/drivers/mmc/card/block.c
+++ b/drivers/mmc/card/block.c
@@ -2553,6 +2553,13 @@ static const struct mmc_fixup blk_fixups
@@ -2547,6 +2547,13 @@ static const struct mmc_fixup blk_fixups
MMC_FIXUP("V10016", CID_MANFID_KINGSTON, CID_OEMID_ANY, add_quirk_mmc,
MMC_QUIRK_TRIM_BROKEN),
@ -32,7 +32,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -2253,7 +2253,8 @@ EXPORT_SYMBOL(mmc_erase);
@@ -2257,7 +2257,8 @@ EXPORT_SYMBOL(mmc_erase);
int mmc_can_erase(struct mmc_card *card)
{
if ((card->host->caps & MMC_CAP_ERASE) &&

View File

@ -10,7 +10,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/drivers/mmc/card/block.c
+++ b/drivers/mmc/card/block.c
@@ -2559,6 +2559,10 @@ static const struct mmc_fixup blk_fixups
@@ -2553,6 +2553,10 @@ static const struct mmc_fixup blk_fixups
*/
MMC_FIXUP("SD16G", 0x41, 0x3432, add_quirk_mmc,
MMC_QUIRK_ERASE_BROKEN),

View File

@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/drivers/mmc/card/block.c
+++ b/drivers/mmc/card/block.c
@@ -137,6 +137,13 @@ enum {
@@ -134,6 +134,13 @@ enum {
module_param(perdev_minors, int, 0444);
MODULE_PARM_DESC(perdev_minors, "Minors numbers to allocate per device");
@ -31,7 +31,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
static inline int mmc_blk_part_switch(struct mmc_card *card,
struct mmc_blk_data *md);
static int get_card_status(struct mmc_card *card, u32 *status, int retries);
@@ -2571,6 +2578,7 @@ static int mmc_blk_probe(struct mmc_card
@@ -2565,6 +2572,7 @@ static int mmc_blk_probe(struct mmc_card
{
struct mmc_blk_data *md, *part_md;
char cap_str[10];
@ -39,7 +39,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
/*
* Check that the card supports the command class(es) we need.
@@ -2578,7 +2586,16 @@ static int mmc_blk_probe(struct mmc_card
@@ -2572,7 +2580,16 @@ static int mmc_blk_probe(struct mmc_card
if (!(card->csd.cmdclass & CCC_BLOCK_READ))
return -ENODEV;
@ -57,7 +57,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
md = mmc_blk_alloc(card);
if (IS_ERR(md))
@@ -2586,9 +2603,14 @@ static int mmc_blk_probe(struct mmc_card
@@ -2580,9 +2597,14 @@ static int mmc_blk_probe(struct mmc_card
string_get_size((u64)get_capacity(md->disk), 512, STRING_UNITS_2,
cap_str, sizeof(cap_str));

View File

@ -10,7 +10,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/drivers/mmc/card/block.c
+++ b/drivers/mmc/card/block.c
@@ -2564,12 +2564,9 @@ static const struct mmc_fixup blk_fixups
@@ -2558,12 +2558,9 @@ static const struct mmc_fixup blk_fixups
* On some Kingston SD cards, multiple erases of less than 64
* sectors can cause corruption.
*/

View File

@ -28,7 +28,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
i2c0: i2c@7e205000 {
--- a/drivers/spi/spi-bcm2835.c
+++ b/drivers/spi/spi-bcm2835.c
@@ -707,6 +707,7 @@ static int bcm2835_spi_setup(struct spi_
@@ -705,6 +705,7 @@ static int bcm2835_spi_setup(struct spi_
return -EINVAL;
}
@ -36,7 +36,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
/* now translate native cs to GPIO */
/* first look for chip select pins in the devices pin groups */
for (pingroup_index = 0;
@@ -761,6 +762,7 @@ static int bcm2835_spi_setup(struct spi_
@@ -759,6 +760,7 @@ static int bcm2835_spi_setup(struct spi_
* so we are setting it here explicitly
*/
gpio_set_value(spi->cs_gpio, (spi->mode & SPI_CS_HIGH) ? 0 : 1);

View File

@ -10,7 +10,7 @@ Subject: [PATCH] fbmem: Ensure that parameters are properly checked within
--- a/drivers/video/fbdev/core/fbmem.c
+++ b/drivers/video/fbdev/core/fbmem.c
@@ -1090,7 +1090,13 @@ static int fb_copyarea_user(struct fb_in
@@ -1097,7 +1097,13 @@ static int fb_copyarea_user(struct fb_in
int ret = 0;
if (!lock_fb_info(info))
return -ENODEV;

View File

@ -9,7 +9,7 @@ Subject: [PATCH] spi-bcm2835: Remove unused code
--- a/drivers/spi/spi-bcm2835.c
+++ b/drivers/spi/spi-bcm2835.c
@@ -679,17 +679,8 @@ static void bcm2835_spi_set_cs(struct sp
@@ -677,17 +677,8 @@ static void bcm2835_spi_set_cs(struct sp
bcm2835_wr(bs, BCM2835_SPI_CS, cs);
}
@ -27,7 +27,7 @@ Subject: [PATCH] spi-bcm2835: Remove unused code
/*
* sanity checking the native-chipselects
*/
@@ -707,63 +698,6 @@ static int bcm2835_spi_setup(struct spi_
@@ -705,63 +696,6 @@ static int bcm2835_spi_setup(struct spi_
return -EINVAL;
}

View File

@ -1,7 +1,7 @@
--- a/arch/arm/mach-cns3xxx/pcie.c
+++ b/arch/arm/mach-cns3xxx/pcie.c
@@ -86,6 +86,79 @@ static void __iomem *cns3xxx_pci_map_bus
return base + (where & 0xffc) + (devfn << 12);
return base + where + (devfn << 12);
}
+static inline int check_master_abort(struct pci_bus *bus, unsigned int devfn, int where)
@ -82,7 +82,7 @@
{
@@ -95,6 +168,11 @@ static int cns3xxx_pci_read_config(struc
ret = pci_generic_config_read32(bus, devfn, where, size, val);
ret = pci_generic_config_read(bus, devfn, where, size, val);
+ if (check_master_abort(bus, devfn, where)) {
+ printk(KERN_ERR "pci error: %04d:%02x:%02x.%02x %02x(%d)= master_abort on read\n", pci_domain_nr(bus), bus->number, PCI_SLOT(devfn), PCI_FUNC(devfn), where, size);

View File

@ -39,7 +39,7 @@
/**
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -939,6 +939,9 @@ static int spi_transfer_one_message(stru
@@ -941,6 +941,9 @@ static int spi_transfer_one_message(stru
list_for_each_entry(xfer, &msg->transfers, transfer_list) {
trace_spi_transfer_start(msg, xfer);

View File

@ -1891,6 +1891,7 @@ CONFIG_LBDAF=y
# CONFIG_LCD_S6E63M0 is not set
# CONFIG_LCD_TDO24M is not set
# CONFIG_LCD_VGG2432A4 is not set
CONFIG_LDISC_AUTOLOAD=y
# CONFIG_LDM_PARTITION is not set
# CONFIG_LEDS_BCM6328 is not set
# CONFIG_LEDS_BCM6358 is not set

View File

@ -1,40 +0,0 @@
From e9156cd26a495a18706e796f02a81fee41ec14f4 Mon Sep 17 00:00:00 2001
From: James Hughes <james.hughes@raspberrypi.org>
Date: Wed, 19 Apr 2017 11:13:40 +0100
Subject: [PATCH] smsc95xx: Use skb_cow_head to deal with cloned skbs
The driver was failing to check that the SKB wasn't cloned
before adding checksum data.
Replace existing handling to extend/copy the header buffer
with skb_cow_head.
Signed-off-by: James Hughes <james.hughes@raspberrypi.org>
Acked-by: Eric Dumazet <edumazet@google.com>
Acked-by: Woojung Huh <Woojung.Huh@microchip.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
drivers/net/usb/smsc95xx.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
--- a/drivers/net/usb/smsc95xx.c
+++ b/drivers/net/usb/smsc95xx.c
@@ -1838,13 +1838,13 @@ static struct sk_buff *smsc95xx_tx_fixup
/* We do not advertise SG, so skbs should be already linearized */
BUG_ON(skb_shinfo(skb)->nr_frags);
- if (skb_headroom(skb) < overhead) {
- struct sk_buff *skb2 = skb_copy_expand(skb,
- overhead, 0, flags);
+ /* Make writable and expand header space by overhead if required */
+ if (skb_cow_head(skb, overhead)) {
+ /* Must deallocate here as returning NULL to indicate error
+ * means the skb won't be deallocated in the caller.
+ */
dev_kfree_skb_any(skb);
- skb = skb2;
- if (!skb)
- return NULL;
+ return NULL;
}
if (csum) {

View File

@ -1,38 +0,0 @@
From 6bc6895bdd6744e0136eaa4a11fbdb20a7db4e40 Mon Sep 17 00:00:00 2001
From: Eric Dumazet <edumazet@google.com>
Date: Wed, 19 Apr 2017 09:59:25 -0700
Subject: [PATCH] ch9200: use skb_cow_head() to deal with cloned skbs
We need to ensure there is enough headroom to push extra header,
but we also need to check if we are allowed to change headers.
skb_cow_head() is the proper helper to deal with this.
Fixes: 4a476bd6d1d9 ("usbnet: New driver for QinHeng CH9200 devices")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: James Hughes <james.hughes@raspberrypi.org>
Cc: Matthew Garrett <mjg59@srcf.ucam.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
drivers/net/usb/ch9200.c | 9 ++-------
1 file changed, 2 insertions(+), 7 deletions(-)
--- a/drivers/net/usb/ch9200.c
+++ b/drivers/net/usb/ch9200.c
@@ -255,14 +255,9 @@ static struct sk_buff *ch9200_tx_fixup(s
tx_overhead = 0x40;
len = skb->len;
- if (skb_headroom(skb) < tx_overhead) {
- struct sk_buff *skb2;
-
- skb2 = skb_copy_expand(skb, tx_overhead, 0, flags);
+ if (skb_cow_head(skb, tx_overhead)) {
dev_kfree_skb_any(skb);
- skb = skb2;
- if (!skb)
- return NULL;
+ return NULL;
}
__skb_push(skb, tx_overhead);

View File

@ -1,43 +0,0 @@
From 39fba7835aacda65284a86e611774cbba71dac20 Mon Sep 17 00:00:00 2001
From: Eric Dumazet <edumazet@google.com>
Date: Wed, 19 Apr 2017 09:59:26 -0700
Subject: [PATCH] kaweth: use skb_cow_head() to deal with cloned skbs
We can use skb_cow_head() to properly deal with clones,
especially the ones coming from TCP stack that allow their head being
modified. This avoids a copy.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: James Hughes <james.hughes@raspberrypi.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
drivers/net/usb/kaweth.c | 18 ++++++------------
1 file changed, 6 insertions(+), 12 deletions(-)
--- a/drivers/net/usb/kaweth.c
+++ b/drivers/net/usb/kaweth.c
@@ -812,18 +812,12 @@ static netdev_tx_t kaweth_start_xmit(str
}
/* We now decide whether we can put our special header into the sk_buff */
- if (skb_cloned(skb) || skb_headroom(skb) < 2) {
- /* no such luck - we make our own */
- struct sk_buff *copied_skb;
- copied_skb = skb_copy_expand(skb, 2, 0, GFP_ATOMIC);
- dev_kfree_skb_irq(skb);
- skb = copied_skb;
- if (!copied_skb) {
- kaweth->stats.tx_errors++;
- netif_start_queue(net);
- spin_unlock_irq(&kaweth->device_lock);
- return NETDEV_TX_OK;
- }
+ if (skb_cow_head(skb, 2)) {
+ kaweth->stats.tx_errors++;
+ netif_start_queue(net);
+ spin_unlock_irq(&kaweth->device_lock);
+ dev_kfree_skb_any(skb);
+ return NETDEV_TX_OK;
}
private_header = (__le16 *)__skb_push(skb, 2);

View File

@ -24,7 +24,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -1141,6 +1141,7 @@ static void __spi_pump_messages(struct s
@@ -1143,6 +1143,7 @@ static void __spi_pump_messages(struct s
}
}
@ -32,7 +32,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
trace_spi_message_start(master->cur_msg);
if (master->prepare_message) {
@@ -1150,6 +1151,7 @@ static void __spi_pump_messages(struct s
@@ -1152,6 +1153,7 @@ static void __spi_pump_messages(struct s
"failed to prepare message: %d\n", ret);
master->cur_msg->status = ret;
spi_finalize_current_message(master);
@ -40,7 +40,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
return;
}
master->cur_msg_prepared = true;
@@ -1159,6 +1161,7 @@ static void __spi_pump_messages(struct s
@@ -1161,6 +1163,7 @@ static void __spi_pump_messages(struct s
if (ret) {
master->cur_msg->status = ret;
spi_finalize_current_message(master);
@ -48,7 +48,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
return;
}
@@ -1166,8 +1169,10 @@ static void __spi_pump_messages(struct s
@@ -1168,8 +1171,10 @@ static void __spi_pump_messages(struct s
if (ret) {
dev_err(&master->dev,
"failed to transfer one message from queue\n");
@ -59,7 +59,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
}
/**
@@ -2335,6 +2340,46 @@ int spi_async_locked(struct spi_device *
@@ -2337,6 +2342,46 @@ int spi_async_locked(struct spi_device *
EXPORT_SYMBOL_GPL(spi_async_locked);

View File

@ -27,7 +27,7 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -2753,10 +2753,10 @@ choice
@@ -2756,10 +2756,10 @@ choice
the documented boot protocol using a device tree.
config MIPS_RAW_APPENDED_DTB
@ -40,7 +40,7 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
(e.g. cat vmlinux.bin <filename>.dtb > vmlinux_w_dtb).
This is meant as a backward compatibility convenience for those
@@ -2768,24 +2768,6 @@ choice
@@ -2771,24 +2771,6 @@ choice
look like a DTB header after a reboot if no actual DTB is appended
to vmlinux.bin. Do not leave this option active in a production kernel
if you don't intend to always append a DTB.

View File

@ -1,24 +0,0 @@
From cd4b1e34655d46950c065d9284b596cd8d7b28cd Mon Sep 17 00:00:00 2001
From: John Youn <johnyoun@synopsys.com>
Date: Thu, 3 Nov 2016 17:55:45 -0700
Subject: [PATCH] usb: dwc2: Remove unnecessary kfree
This shouldn't be freed by the HCD as it is owned by the core and
allocated with devm_kzalloc.
Signed-off-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
---
drivers/usb/dwc2/hcd.c | 1 -
1 file changed, 1 deletion(-)
--- a/drivers/usb/dwc2/hcd.c
+++ b/drivers/usb/dwc2/hcd.c
@@ -3164,7 +3164,6 @@ error3:
error2:
usb_put_hcd(hcd);
error1:
- kfree(hsotg->core_params);
#ifdef CONFIG_USB_DWC2_TRACK_MISSED_SOFS
kfree(hsotg->last_frame_num_array);

View File

@ -82,7 +82,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
/* Gobi 1000 QMI/wwan interface number is 3 according to qcserial */
#define QMI_GOBI1K_DEVICE(vend, prod) \
QMI_FIXED_INTF(vend, prod, 3)
@@ -915,6 +939,8 @@ static const struct usb_device_id produc
@@ -916,6 +940,8 @@ static const struct usb_device_id produc
{QMI_FIXED_INTF(0x03f0, 0x9d1d, 1)}, /* HP lt4120 Snapdragon X5 LTE */
{QMI_FIXED_INTF(0x22de, 0x9061, 3)}, /* WeTelecom WPD-600N */
{QMI_FIXED_INTF(0x1e0e, 0x9001, 5)}, /* SIMCom 7230E */

View File

@ -1,79 +0,0 @@
From 03556dab1cb02d85b50d7be3ee3a3bac001f5991 Mon Sep 17 00:00:00 2001
From: Koen Vandeputte <koen.vandeputte@ncentric.com>
Date: Tue, 18 Dec 2018 12:14:06 +0100
Subject: [PATCH] arm: cns3xxx: fix writing to wrong PCI registers after
alignment
Originally, cns3xxx used it's own functions for mapping, reading and writing registers.
Commit 802b7c06adc7 ("ARM: cns3xxx: Convert PCI to use generic config accessors")
removed the internal PCI config write function in favor of the generic one:
cns3xxx_pci_write_config() --> pci_generic_config_write()
cns3xxx_pci_write_config() expected aligned addresses, being produced by cns3xxx_pci_map_bus()
while the generic one pci_generic_config_write() actually expects the real address
as both the function and hardware are capable of byte-aligned writes.
This currently leads to pci_generic_config_write() writing
to the wrong registers on some ocasions.
First issue seen due to this:
- driver ath9k gets loaded
- The driver wants to write value 0xA8 to register PCI_LATENCY_TIMER, located at 0x0D
- cns3xxx_pci_map_bus() aligns the address to 0x0C
- pci_generic_config_write() effectively writes 0xA8 into register 0x0C (CACHE_LINE_SIZE)
This seems to cause some slight instability when certain PCI devices are used.
Another issue example caused by this this is the PCI bus numbering,
where the primary bus is higher than the secondary, which is impossible.
Before:
00:00.0 PCI bridge: Cavium, Inc. Device 3400 (rev 01) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 255
Bus: primary=02, secondary=01, subordinate=ff, sec-latency=0
After fix:
00:00.0 PCI bridge: Cavium, Inc. Device 3400 (rev 01) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 255
Bus: primary=00, secondary=01, subordinate=02, sec-latency=0
And very likely some more ..
Fix all by omitting the alignment being done in the mapping function.
Fixes: 802b7c06adc7 ("ARM: cns3xxx: Convert PCI to use generic config accessors")
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
CC: Arnd Bergmann <arnd@arndb.de>
CC: Bjorn Helgaas <bhelgaas@google.com>
CC: Krzysztof Halasa <khalasa@piap.pl>
CC: Olof Johansson <olof@lixom.net>
CC: Robin Leblon <robin.leblon@ncentric.com>
CC: Rob Herring <robh@kernel.org>
CC: Russell King <linux@armlinux.org.uk>
CC: Tim Harvey <tharvey@gateworks.com>
CC: stable@vger.kernel.org # v4.0+
---
arch/arm/mach-cns3xxx/pcie.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/mach-cns3xxx/pcie.c b/arch/arm/mach-cns3xxx/pcie.c
index 318394ed5c7a..5e11ad3164e0 100644
--- a/arch/arm/mach-cns3xxx/pcie.c
+++ b/arch/arm/mach-cns3xxx/pcie.c
@@ -83,7 +83,7 @@ static void __iomem *cns3xxx_pci_map_bus(struct pci_bus *bus,
} else /* remote PCI bus */
base = cnspci->cfg1_regs + ((busno & 0xf) << 20);
- return base + (where & 0xffc) + (devfn << 12);
+ return base + where + (devfn << 12);
}
static int cns3xxx_pci_read_config(struct pci_bus *bus, unsigned int devfn,
--
2.17.1

View File

@ -33,11 +33,9 @@ CC: stable@vger.kernel.org # v4.0+
arch/arm/mach-cns3xxx/pcie.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/mach-cns3xxx/pcie.c b/arch/arm/mach-cns3xxx/pcie.c
index 5e11ad3164e0..95a11d5b3587 100644
--- a/arch/arm/mach-cns3xxx/pcie.c
+++ b/arch/arm/mach-cns3xxx/pcie.c
@@ -93,7 +93,7 @@ static int cns3xxx_pci_read_config(struct pci_bus *bus, unsigned int devfn,
@@ -93,7 +93,7 @@ static int cns3xxx_pci_read_config(struc
u32 mask = (0x1ull << (size * 8)) - 1;
int shift = (where % 4) * 8;
@ -46,6 +44,3 @@ index 5e11ad3164e0..95a11d5b3587 100644
if (ret == PCIBIOS_SUCCESSFUL && !bus->number && !devfn &&
(where & 0xffc) == PCI_CLASS_REVISION)
--
2.17.1

View File

@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -1619,6 +1619,7 @@ config CPU_CAVIUM_OCTEON
@@ -1622,6 +1622,7 @@ config CPU_CAVIUM_OCTEON
select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
select MIPS_L1_CACHE_SHIFT_7
@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
help
The Cavium Octeon processor is a highly integrated chip containing
many ethernet hardware widgets for networking tasks. The processor
@@ -1914,6 +1915,9 @@ config MIPS_MALTA_PM
@@ -1917,6 +1918,9 @@ config MIPS_MALTA_PM
bool
default y

View File

@ -85,7 +85,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
dmactl |= BIT(DMA_REQUEST_OUTSTANDING);
writel(dmactl, &dma->dmactl);
@@ -1046,7 +1046,7 @@ net2280_queue(struct usb_ep *_ep, struct
@@ -1044,7 +1044,7 @@ net2280_queue(struct usb_ep *_ep, struct
/* kickstart this i/o queue? */
if (list_empty(&ep->queue) && !ep->stopped &&
@ -94,7 +94,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
(readl(&ep->regs->ep_rsp) & BIT(CLEAR_ENDPOINT_HALT)))) {
/* use DMA if the endpoint supports it, else pio */
@@ -1169,7 +1169,7 @@ static void scan_dma_completions(struct
@@ -1167,7 +1167,7 @@ static void scan_dma_completions(struct
break;
} else if (!ep->is_in &&
(req->req.length % ep->ep.maxpacket) &&
@ -103,7 +103,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
tmp = readl(&ep->regs->ep_stat);
/* AVOID TROUBLE HERE by not issuing short reads from
@@ -1367,7 +1367,7 @@ net2280_set_halt_and_wedge(struct usb_ep
@@ -1365,7 +1365,7 @@ net2280_set_halt_and_wedge(struct usb_ep
ep->wedged = 1;
} else {
clear_halt(ep);
@ -112,7 +112,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
!list_empty(&ep->queue) && ep->td_dma)
restart_dma(ep);
ep->wedged = 0;
@@ -2397,7 +2397,7 @@ static int net2280_start(struct usb_gadg
@@ -2395,7 +2395,7 @@ static int net2280_start(struct usb_gadg
*/
net2280_led_active(dev, 1);
@ -121,7 +121,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
defect7374_enable_data_eps_zero(dev);
ep0_start(dev);
@@ -3066,7 +3066,7 @@ static void handle_stat0_irqs(struct net
@@ -3064,7 +3064,7 @@ static void handle_stat0_irqs(struct net
}
ep->stopped = 0;
dev->protocol_stall = 0;
@ -130,7 +130,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
if (ep->dev->quirks & PLX_2280)
tmp = BIT(FIFO_OVERFLOW) |
BIT(FIFO_UNDERFLOW);
@@ -3093,7 +3093,7 @@ static void handle_stat0_irqs(struct net
@@ -3091,7 +3091,7 @@ static void handle_stat0_irqs(struct net
cpu_to_le32s(&u.raw[0]);
cpu_to_le32s(&u.raw[1]);
@ -139,7 +139,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
defect7374_workaround(dev, u.r);
tmp = 0;
@@ -3176,7 +3176,7 @@ static void handle_stat0_irqs(struct net
@@ -3174,7 +3174,7 @@ static void handle_stat0_irqs(struct net
} else {
ep_vdbg(dev, "%s clear halt\n", e->ep.name);
clear_halt(e);
@ -148,7 +148,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
!list_empty(&e->queue) && e->td_dma)
restart_dma(e);
}
@@ -3198,7 +3198,7 @@ static void handle_stat0_irqs(struct net
@@ -3196,7 +3196,7 @@ static void handle_stat0_irqs(struct net
if (e->ep.name == ep0name)
goto do_stall;
set_halt(e);
@ -157,7 +157,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
abort_dma(e);
allow_status(ep);
ep_vdbg(dev, "%s set halt\n", ep->ep.name);
@@ -3237,7 +3237,7 @@ do_stall:
@@ -3235,7 +3235,7 @@ do_stall:
#undef w_length
next_endpoints:
@ -166,7 +166,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
u32 mask = (BIT(ENDPOINT_0_INTERRUPT) |
USB3380_IRQSTAT0_EP_INTR_MASK_IN |
USB3380_IRQSTAT0_EP_INTR_MASK_OUT);
@@ -3404,7 +3404,7 @@ __acquires(dev->lock)
@@ -3402,7 +3402,7 @@ __acquires(dev->lock)
writel(tmp, &dma->dmastat);
/* dma sync*/
@ -175,7 +175,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
u32 r_dmacount = readl(&dma->dmacount);
if (!ep->is_in && (r_dmacount & 0x00FFFFFF) &&
(tmp & BIT(DMA_TRANSACTION_DONE_INTERRUPT)))
@@ -3473,7 +3473,7 @@ static irqreturn_t net2280_irq(int irq,
@@ -3471,7 +3471,7 @@ static irqreturn_t net2280_irq(int irq,
/* control requests and PIO */
handle_stat0_irqs(dev, readl(&dev->regs->irqstat0));
@ -184,7 +184,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
/* re-enable interrupt to trigger any possible new interrupt */
u32 pciirqenb1 = readl(&dev->regs->pciirqenb1);
writel(pciirqenb1 & 0x7FFFFFFF, &dev->regs->pciirqenb1);
@@ -3518,7 +3518,7 @@ static void net2280_remove(struct pci_de
@@ -3516,7 +3516,7 @@ static void net2280_remove(struct pci_de
}
if (dev->got_irq)
free_irq(pdev->irq, dev);
@ -193,7 +193,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
pci_disable_msi(pdev);
if (dev->regs)
iounmap(dev->regs);
@@ -3598,7 +3598,7 @@ static int net2280_probe(struct pci_dev
@@ -3596,7 +3596,7 @@ static int net2280_probe(struct pci_dev
dev->dep = (struct net2280_dep_regs __iomem *) (base + 0x0200);
dev->epregs = (struct net2280_ep_regs __iomem *) (base + 0x0300);
@ -202,7 +202,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
u32 fsmvalue;
u32 usbstat;
dev->usb_ext = (struct usb338x_usb_ext_regs __iomem *)
@@ -3642,7 +3642,7 @@ static int net2280_probe(struct pci_dev
@@ -3640,7 +3640,7 @@ static int net2280_probe(struct pci_dev
goto done;
}
@ -211,7 +211,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
if (pci_enable_msi(pdev))
ep_err(dev, "Failed to enable MSI mode\n");
@@ -3760,10 +3760,19 @@ static const struct pci_device_id pci_id
@@ -3758,10 +3758,19 @@ static const struct pci_device_id pci_id
.class = ((PCI_CLASS_SERIAL_USB << 8) | 0xfe),
.class_mask = ~0,
.vendor = PCI_VENDOR_ID_PLX,
@ -232,7 +232,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
},
{
.class = ((PCI_CLASS_SERIAL_USB << 8) | 0xfe),
@@ -3772,7 +3781,7 @@ static const struct pci_device_id pci_id
@@ -3770,7 +3779,7 @@ static const struct pci_device_id pci_id
.device = 0x3382,
.subvendor = PCI_ANY_ID,
.subdevice = PCI_ANY_ID,

View File

@ -4,8 +4,8 @@
KBUILD_CFLAGS += $(call cc-disable-warning, attribute-alias)
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
-KBUILD_CFLAGS += $(call cc-option,-Oz,-Os)
+KBUILD_CFLAGS += $(call cc-option,-Oz,-Os) $(EXTRA_OPTIMIZATION)
-KBUILD_CFLAGS += -Os
+KBUILD_CFLAGS += -Os $(EXTRA_OPTIMIZATION)
else
ifdef CONFIG_PROFILE_ALL_BRANCHES
-KBUILD_CFLAGS += -O2

View File

@ -123,7 +123,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
set_license(mod, get_modinfo(info, "license"));
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -1964,7 +1964,9 @@ static void read_symbols(char *modname)
@@ -1966,7 +1966,9 @@ static void read_symbols(char *modname)
symname = remove_dot(info.strtab + sym->st_name);
handle_modversions(mod, &info, sym, symname);
@ -133,7 +133,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
}
if (!is_vmlinux(modname) ||
(is_vmlinux(modname) && vmlinux_section_warnings))
@@ -2108,7 +2110,9 @@ static void add_header(struct buffer *b,
@@ -2110,7 +2112,9 @@ static void add_header(struct buffer *b,
buf_printf(b, "#include <linux/vermagic.h>\n");
buf_printf(b, "#include <linux/compiler.h>\n");
buf_printf(b, "\n");
@ -143,7 +143,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
buf_printf(b, "\n");
buf_printf(b, "__visible struct module __this_module\n");
buf_printf(b, "__attribute__((section(\".gnu.linkonce.this_module\"))) = {\n");
@@ -2125,8 +2129,10 @@ static void add_header(struct buffer *b,
@@ -2127,8 +2131,10 @@ static void add_header(struct buffer *b,
static void add_intree_flag(struct buffer *b, int is_intree)
{
@ -154,7 +154,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
}
/* Cannot check for assembler */
@@ -2139,10 +2145,12 @@ static void add_retpoline(struct buffer
@@ -2141,10 +2147,12 @@ static void add_retpoline(struct buffer
static void add_staging_flag(struct buffer *b, const char *name)
{
@ -167,7 +167,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
}
/* In kernel, this size is defined in linux/module.h;
@@ -2246,11 +2254,13 @@ static void add_depends(struct buffer *b
@@ -2248,11 +2256,13 @@ static void add_depends(struct buffer *b
static void add_srcversion(struct buffer *b, struct module *mod)
{
@ -181,7 +181,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
}
static void write_if_changed(struct buffer *b, const char *fname)
@@ -2485,7 +2495,9 @@ int main(int argc, char **argv)
@@ -2487,7 +2497,9 @@ int main(int argc, char **argv)
add_staging_flag(&buf, mod->name);
err |= add_versions(&buf, mod);
add_depends(&buf, mod, modules);

View File

@ -24,20 +24,6 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
/*
* IEEE 802.3 Ethernet magic constants. The frame sizes omit the preamble
@@ -136,11 +137,13 @@
* This is an Ethernet frame header.
*/
+#if __UAPI_DEF_ETHHDR
struct ethhdr {
unsigned char h_dest[ETH_ALEN]; /* destination eth addr */
unsigned char h_source[ETH_ALEN]; /* source ether addr */
__be16 h_proto; /* packet type ID field */
} __attribute__((packed));
+#endif
#endif /* _UAPI_LINUX_IF_ETHER_H */
--- a/include/uapi/linux/libc-compat.h
+++ b/include/uapi/linux/libc-compat.h
@@ -85,6 +85,14 @@

View File

@ -8,7 +8,7 @@ Acked-by: Rob Landley <rob@landley.net>
---
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -1033,9 +1033,6 @@ config FW_ARC
@@ -1036,9 +1036,6 @@ config FW_ARC
config ARCH_MAY_HAVE_PC_FDC
bool
@ -18,7 +18,7 @@ Acked-by: Rob Landley <rob@landley.net>
config CEVT_BCM1480
bool
@@ -2793,6 +2790,18 @@ choice
@@ -2796,6 +2793,18 @@ choice
bool "Bootloader kernel arguments if available"
endchoice

View File

@ -1,6 +1,6 @@
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -1124,6 +1124,10 @@ config SYNC_R4K
@@ -1127,6 +1127,10 @@ config SYNC_R4K
config MIPS_MACHINE
def_bool n

View File

@ -26,7 +26,7 @@ v2: incorporated changes suggested by Jonas Gorski
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -2725,6 +2725,20 @@ config MIPS_O32_FP64_SUPPORT
@@ -2728,6 +2728,20 @@ config MIPS_O32_FP64_SUPPORT
If unsure, say N.

View File

@ -21,8 +21,8 @@ Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
--- a/arch/arc/kernel/head.S
+++ b/arch/arc/kernel/head.S
@@ -49,6 +49,16 @@
1:
@@ -59,6 +59,16 @@
#endif
.endm
+; Here "patch-dtb" will embed external .dtb

View File

@ -206,7 +206,7 @@
+}
--- a/fs/jffs2/super.c
+++ b/fs/jffs2/super.c
@@ -373,14 +373,41 @@ static int __init init_jffs2_fs(void)
@@ -377,14 +377,41 @@ static int __init init_jffs2_fs(void)
BUILD_BUG_ON(sizeof(struct jffs2_raw_inode) != 68);
BUILD_BUG_ON(sizeof(struct jffs2_raw_summary) != 32);

View File

@ -10,7 +10,7 @@
/* "Be conservative in what you do,
be liberal in what you accept from others."
If it's non-zero, we mark only out of window RST segments as INVALID. */
@@ -515,6 +518,9 @@ static bool tcp_in_window(const struct n
@@ -519,6 +522,9 @@ static bool tcp_in_window(const struct n
s32 receiver_offset;
bool res, in_recv_win;
@ -20,7 +20,7 @@
/*
* Get the required data from the packet.
*/
@@ -1481,6 +1487,13 @@ static struct ctl_table tcp_sysctl_table
@@ -1485,6 +1491,13 @@ static struct ctl_table tcp_sysctl_table
.mode = 0644,
.proc_handler = proc_dointvec,
},

View File

@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
@@ -3139,6 +3141,7 @@ static int packet_create(struct net *net
@@ -3148,6 +3150,7 @@ static int packet_create(struct net *net
mutex_init(&po->pg_vec_lock);
po->rollover = NULL;
po->prot_hook.func = packet_rcv;
@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (sock->type == SOCK_PACKET)
po->prot_hook.func = packet_rcv_spkt;
@@ -3797,6 +3800,16 @@ packet_setsockopt(struct socket *sock, i
@@ -3806,6 +3809,16 @@ packet_setsockopt(struct socket *sock, i
po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
return 0;
}
@ -108,7 +108,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
default:
return -ENOPROTOOPT;
}
@@ -3849,6 +3862,13 @@ static int packet_getsockopt(struct sock
@@ -3858,6 +3871,13 @@ static int packet_getsockopt(struct sock
case PACKET_VNET_HDR:
val = po->has_vnet_hdr;
break;

View File

@ -61,7 +61,7 @@ Isolating individual bridge ports
skb = NULL;
--- a/net/bridge/br_forward.c
+++ b/net/bridge/br_forward.c
@@ -141,7 +141,7 @@ EXPORT_SYMBOL_GPL(br_deliver);
@@ -140,7 +140,7 @@ EXPORT_SYMBOL_GPL(br_deliver);
/* called with rcu_read_lock */
void br_forward(const struct net_bridge_port *to, struct sk_buff *skb, struct sk_buff *skb0)
{
@ -70,7 +70,7 @@ Isolating individual bridge ports
if (skb0)
deliver_clone(to, skb, __br_forward);
else
@@ -197,7 +197,7 @@ static void br_flood(struct net_bridge *
@@ -196,7 +196,7 @@ static void br_flood(struct net_bridge *
struct sk_buff *skb0,
void (*__packet_hook)(const struct net_bridge_port *p,
struct sk_buff *skb),
@ -79,7 +79,7 @@ Isolating individual bridge ports
{
struct net_bridge_port *p;
struct net_bridge_port *prev;
@@ -205,6 +205,8 @@ static void br_flood(struct net_bridge *
@@ -204,6 +204,8 @@ static void br_flood(struct net_bridge *
prev = NULL;
list_for_each_entry_rcu(p, &br->port_list, list) {
@ -88,7 +88,7 @@ Isolating individual bridge ports
/* Do not flood unicast traffic to ports that turn it off */
if (unicast && !(p->flags & BR_FLOOD))
continue;
@@ -239,14 +241,14 @@ out:
@@ -238,14 +240,14 @@ out:
/* called with rcu_read_lock */
void br_flood_deliver(struct net_bridge *br, struct sk_buff *skb, bool unicast)
{

View File

@ -172,7 +172,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
if (err)
break;
}
@@ -1439,7 +1465,8 @@ br_multicast_leave_group(struct net_brid
@@ -1432,7 +1458,8 @@ br_multicast_leave_group(struct net_brid
struct net_bridge_port *port,
struct br_ip *group,
struct bridge_mcast_other_query *other_query,
@ -182,7 +182,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
{
struct net_bridge_mdb_htable *mdb;
struct net_bridge_mdb_entry *mp;
@@ -1463,7 +1490,7 @@ br_multicast_leave_group(struct net_brid
@@ -1456,7 +1483,7 @@ br_multicast_leave_group(struct net_brid
for (pp = &mp->ports;
(p = mlock_dereference(*pp, br)) != NULL;
pp = &p->next) {
@ -191,7 +191,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
continue;
rcu_assign_pointer(*pp, p->next);
@@ -1526,7 +1553,7 @@ br_multicast_leave_group(struct net_brid
@@ -1519,7 +1546,7 @@ br_multicast_leave_group(struct net_brid
for (p = mlock_dereference(mp->ports, br);
p != NULL;
p = mlock_dereference(p->next, br)) {
@ -200,7 +200,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
continue;
if (!hlist_unhashed(&p->mglist) &&
@@ -1544,8 +1571,8 @@ out:
@@ -1537,8 +1564,8 @@ out:
static void br_ip4_multicast_leave_group(struct net_bridge *br,
struct net_bridge_port *port,
@ -211,7 +211,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
{
struct br_ip br_group;
struct bridge_mcast_own_query *own_query;
@@ -1560,14 +1587,14 @@ static void br_ip4_multicast_leave_group
@@ -1553,14 +1580,14 @@ static void br_ip4_multicast_leave_group
br_group.vid = vid;
br_multicast_leave_group(br, port, &br_group, &br->ip4_other_query,
@ -228,7 +228,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
{
struct br_ip br_group;
struct bridge_mcast_own_query *own_query;
@@ -1582,7 +1609,7 @@ static void br_ip6_multicast_leave_group
@@ -1575,7 +1602,7 @@ static void br_ip6_multicast_leave_group
br_group.vid = vid;
br_multicast_leave_group(br, port, &br_group, &br->ip6_other_query,
@ -237,7 +237,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
}
#endif
@@ -1591,6 +1618,7 @@ static int br_multicast_ipv4_rcv(struct
@@ -1584,6 +1611,7 @@ static int br_multicast_ipv4_rcv(struct
struct sk_buff *skb,
u16 vid)
{
@ -245,7 +245,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
struct sk_buff *skb_trimmed = NULL;
struct igmphdr *ih;
int err;
@@ -1607,12 +1635,13 @@ static int br_multicast_ipv4_rcv(struct
@@ -1600,12 +1628,13 @@ static int br_multicast_ipv4_rcv(struct
BR_INPUT_SKB_CB(skb)->igmp = 1;
ih = igmp_hdr(skb);
@ -260,7 +260,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
break;
case IGMPV3_HOST_MEMBERSHIP_REPORT:
err = br_ip4_multicast_igmp3_report(br, port, skb_trimmed, vid);
@@ -1621,7 +1650,7 @@ static int br_multicast_ipv4_rcv(struct
@@ -1614,7 +1643,7 @@ static int br_multicast_ipv4_rcv(struct
err = br_ip4_multicast_query(br, port, skb_trimmed, vid);
break;
case IGMP_HOST_LEAVE_MESSAGE:
@ -269,7 +269,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
break;
}
@@ -1637,6 +1666,7 @@ static int br_multicast_ipv6_rcv(struct
@@ -1630,6 +1659,7 @@ static int br_multicast_ipv6_rcv(struct
struct sk_buff *skb,
u16 vid)
{
@ -277,7 +277,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
struct sk_buff *skb_trimmed = NULL;
struct mld_msg *mld;
int err;
@@ -1656,8 +1686,9 @@ static int br_multicast_ipv6_rcv(struct
@@ -1649,8 +1679,9 @@ static int br_multicast_ipv6_rcv(struct
switch (mld->mld_type) {
case ICMPV6_MGM_REPORT:
@ -288,7 +288,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
break;
case ICMPV6_MLD2_REPORT:
err = br_ip6_multicast_mld2_report(br, port, skb_trimmed, vid);
@@ -1666,7 +1697,8 @@ static int br_multicast_ipv6_rcv(struct
@@ -1659,7 +1690,8 @@ static int br_multicast_ipv6_rcv(struct
err = br_ip6_multicast_query(br, port, skb_trimmed, vid);
break;
case ICMPV6_MGM_REDUCTION:
@ -333,7 +333,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
rcu_assign_pointer(*pp, p);
--- a/net/bridge/br_forward.c
+++ b/net/bridge/br_forward.c
@@ -192,6 +192,34 @@ out:
@@ -191,6 +191,34 @@ out:
return p;
}
@ -368,7 +368,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
/* called under bridge lock */
static void br_flood(struct net_bridge *br, struct sk_buff *skb,
struct sk_buff *skb0,
@@ -264,6 +292,7 @@ static void br_multicast_flood(struct ne
@@ -263,6 +291,7 @@ static void br_multicast_flood(struct ne
struct net_bridge_port *prev = NULL;
struct net_bridge_port_group *p;
struct hlist_node *rp;
@ -376,7 +376,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
rp = rcu_dereference(hlist_first_rcu(&br->router_list));
p = mdst ? rcu_dereference(mdst->ports) : NULL;
@@ -274,10 +303,19 @@ static void br_multicast_flood(struct ne
@@ -273,10 +302,19 @@ static void br_multicast_flood(struct ne
rport = rp ? hlist_entry(rp, struct net_bridge_port, rlist) :
NULL;

View File

@ -1,6 +1,6 @@
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -2177,7 +2177,7 @@ static inline int pskb_network_may_pull(
@@ -2182,7 +2182,7 @@ static inline int pskb_network_may_pull(
* NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
*/
#ifndef NET_SKB_PAD

View File

@ -84,7 +84,7 @@
if (!qdisc)
--- a/net/sched/sch_api.c
+++ b/net/sched/sch_api.c
@@ -1951,7 +1951,7 @@ static int __init pktsched_init(void)
@@ -1950,7 +1950,7 @@ static int __init pktsched_init(void)
return err;
}

View File

@ -68,7 +68,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
static void rt_fibinfo_free(struct rtable __rcu **rtp)
--- a/net/ipv4/fib_trie.c
+++ b/net/ipv4/fib_trie.c
@@ -2370,6 +2370,7 @@ static const char *const rtn_type_names[
@@ -2380,6 +2380,7 @@ static const char *const rtn_type_names[
[RTN_THROW] = "THROW",
[RTN_NAT] = "NAT",
[RTN_XRESOLVE] = "XRESOLVE",
@ -78,7 +78,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
static inline const char *rtn_type(char *buf, size_t len, unsigned int t)
--- a/net/ipv4/ipmr.c
+++ b/net/ipv4/ipmr.c
@@ -182,6 +182,7 @@ static int ipmr_rule_action(struct fib_r
@@ -183,6 +183,7 @@ static int ipmr_rule_action(struct fib_r
case FR_ACT_UNREACHABLE:
return -ENETUNREACH;
case FR_ACT_PROHIBIT:
@ -101,7 +101,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
table = fib6_get_table(net, rule->table);
--- a/net/ipv6/ip6mr.c
+++ b/net/ipv6/ip6mr.c
@@ -167,6 +167,8 @@ static int ip6mr_rule_action(struct fib_
@@ -169,6 +169,8 @@ static int ip6mr_rule_action(struct fib_
return -ENETUNREACH;
case FR_ACT_PROHIBIT:
return -EACCES;

View File

@ -113,7 +113,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#endif
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -642,7 +642,8 @@ struct sk_buff {
@@ -647,7 +647,8 @@ struct sk_buff {
__u8 inner_protocol_type:1;
__u8 remcsum_offload:1;

View File

@ -9,7 +9,7 @@
/**
* mdiobus_alloc_size - allocate a mii_bus structure
* @size: extra amount of memory to allocate for private storage.
@@ -346,9 +348,21 @@ void mdiobus_free(struct mii_bus *bus)
@@ -345,9 +347,21 @@ void mdiobus_free(struct mii_bus *bus)
}
EXPORT_SYMBOL(mdiobus_free);
@ -31,7 +31,7 @@
int err;
phydev = get_phy_device(bus, addr, false);
@@ -361,6 +375,12 @@ struct phy_device *mdiobus_scan(struct m
@@ -360,6 +374,12 @@ struct phy_device *mdiobus_scan(struct m
*/
of_mdiobus_link_phydev(bus, phydev);

View File

@ -41,7 +41,7 @@
*/
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -2208,6 +2208,10 @@ static inline int pskb_trim(struct sk_bu
@@ -2213,6 +2213,10 @@ static inline int pskb_trim(struct sk_bu
return (len < skb->len) ? __pskb_trim(skb, len) : 0;
}
@ -52,7 +52,7 @@
/**
* pskb_trim_unique - remove end from a paged unique (not cloned) buffer
* @skb: buffer to alter
@@ -2314,16 +2318,6 @@ static inline struct sk_buff *dev_alloc_
@@ -2319,16 +2323,6 @@ static inline struct sk_buff *dev_alloc_
}
@ -121,7 +121,7 @@
#include <net/protocol.h>
#include <net/dst.h>
@@ -520,6 +521,22 @@ skb_fail:
@@ -524,6 +525,22 @@ skb_fail:
}
EXPORT_SYMBOL(__napi_alloc_skb);

View File

@ -69,7 +69,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
/**
* ata_build_rw_tf - Build ATA taskfile for given read/write request
* @tf: Target ATA taskfile
@@ -4811,6 +4824,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
@@ -4812,6 +4825,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
if (tag < 0)
return NULL;
}
@ -79,7 +79,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
qc = __ata_qc_from_tag(ap, tag);
qc->tag = tag;
@@ -5707,6 +5723,9 @@ struct ata_port *ata_port_alloc(struct a
@@ -5708,6 +5724,9 @@ struct ata_port *ata_port_alloc(struct a
ap->stats.unhandled_irq = 1;
ap->stats.idle_irq = 1;
#endif
@ -89,7 +89,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
ata_sff_port_init(ap);
return ap;
@@ -5728,6 +5747,12 @@ static void ata_host_release(struct devi
@@ -5729,6 +5748,12 @@ static void ata_host_release(struct devi
kfree(ap->pmp_link);
kfree(ap->slave_link);
@ -102,7 +102,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
kfree(ap);
host->ports[i] = NULL;
}
@@ -6174,7 +6199,23 @@ int ata_host_register(struct ata_host *h
@@ -6175,7 +6200,23 @@ int ata_host_register(struct ata_host *h
host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
host->ports[i]->local_port_no = i + 1;
}

View File

@ -25,7 +25,7 @@
obj-$(CONFIG_PROC_FS) += net-procfs.o
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -1474,9 +1474,11 @@ void sk_destruct(struct sock *sk)
@@ -1475,9 +1475,11 @@ void sk_destruct(struct sock *sk)
static void __sk_free(struct sock *sk)
{

View File

@ -117,12 +117,12 @@
+ if (IS_ENABLED(CONFIG_PROC_STRIPPED))
+ return 0;
pe = proc_create("timer_list", 0444, NULL, &timer_list_fops);
pe = proc_create("timer_list", 0400, NULL, &timer_list_fops);
if (!pe)
return -ENOMEM;
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -2685,6 +2685,8 @@ static const struct file_operations proc
@@ -2689,6 +2689,8 @@ static const struct file_operations proc
static int __init proc_vmalloc_init(void)
{
@ -133,7 +133,7 @@
}
--- a/mm/vmstat.c
+++ b/mm/vmstat.c
@@ -1560,10 +1560,12 @@ static int __init setup_vmstat(void)
@@ -1574,10 +1574,12 @@ static int __init setup_vmstat(void)
cpu_notifier_register_done();
#endif
#ifdef CONFIG_PROC_FS
@ -173,7 +173,7 @@
goto err;
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -3044,6 +3044,8 @@ static __net_initdata struct pernet_oper
@@ -3048,6 +3048,8 @@ static __net_initdata struct pernet_oper
static int __init proto_init(void)
{
@ -184,7 +184,7 @@
--- a/net/ipv4/fib_trie.c
+++ b/net/ipv4/fib_trie.c
@@ -2641,10 +2641,12 @@ static const struct file_operations fib_
@@ -2651,10 +2651,12 @@ static const struct file_operations fib_
int __net_init fib_proc_init(struct net *net)
{
@ -199,7 +199,7 @@
&fib_triestat_fops))
goto out2;
@@ -2654,17 +2656,21 @@ int __net_init fib_proc_init(struct net
@@ -2664,17 +2666,21 @@ int __net_init fib_proc_init(struct net
return 0;
out3:
@ -227,7 +227,7 @@
--- a/net/ipv4/proc.c
+++ b/net/ipv4/proc.c
@@ -539,6 +539,9 @@ static __net_initdata struct pernet_oper
@@ -541,6 +541,9 @@ static __net_initdata struct pernet_oper
int __init ip_misc_proc_init(void)
{

View File

@ -9,7 +9,7 @@
#ifdef CONFIG_UEVENT_HELPER
/* path to the userspace helper executed on an event */
extern char uevent_helper[];
@@ -222,4 +224,7 @@ int add_uevent_var(struct kobj_uevent_en
@@ -239,4 +241,7 @@ int add_uevent_var(struct kobj_uevent_en
int kobject_action_type(const char *buf, size_t count,
enum kobject_action *type);

View File

@ -1,6 +1,6 @@
--- a/drivers/net/ethernet/marvell/sky2.c
+++ b/drivers/net/ethernet/marvell/sky2.c
@@ -4812,7 +4812,24 @@ static struct net_device *sky2_init_netd
@@ -4813,7 +4813,24 @@ static struct net_device *sky2_init_netd
* 1) from device tree data
* 2) from internal registers set by bootloader
*/

View File

@ -76,7 +76,7 @@ Signed-off-by: Lee Jones <lee.jones@linaro.org>
irq_ack = platform_get_irq_byname(pdev, "ack");
if (irq_ack < 0) {
dev_err(&pdev->dev, "required ack interrupt missing\n");
@@ -621,7 +637,11 @@ static int qcom_rpm_probe(struct platfor
@@ -625,7 +641,11 @@ static int qcom_rpm_probe(struct platfor
static int qcom_rpm_remove(struct platform_device *pdev)
{

View File

@ -161,7 +161,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -2571,14 +2571,14 @@ static void dwc3_process_event_entry(str
@@ -2572,14 +2572,14 @@ static void dwc3_process_event_entry(str
}
}
@ -178,7 +178,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
left = evt->count;
if (!(evt->flags & DWC3_EVENT_PENDING))
@@ -2603,7 +2603,7 @@ static irqreturn_t dwc3_process_event_bu
@@ -2604,7 +2604,7 @@ static irqreturn_t dwc3_process_event_bu
evt->lpos = (evt->lpos + 4) % DWC3_EVENT_BUFFERS_SIZE;
left -= 4;
@ -187,7 +187,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
}
evt->count = 0;
@@ -2611,9 +2611,9 @@ static irqreturn_t dwc3_process_event_bu
@@ -2612,9 +2612,9 @@ static irqreturn_t dwc3_process_event_bu
ret = IRQ_HANDLED;
/* Unmask interrupt */
@ -199,7 +199,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
return ret;
}
@@ -2623,27 +2623,23 @@ static irqreturn_t dwc3_thread_interrupt
@@ -2624,27 +2624,23 @@ static irqreturn_t dwc3_thread_interrupt
struct dwc3 *dwc = _dwc;
unsigned long flags;
irqreturn_t ret = IRQ_NONE;
@ -231,7 +231,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
count &= DWC3_GEVNTCOUNT_MASK;
if (!count)
return IRQ_NONE;
@@ -2652,9 +2648,9 @@ static irqreturn_t dwc3_check_event_buf(
@@ -2653,9 +2649,9 @@ static irqreturn_t dwc3_check_event_buf(
evt->flags |= DWC3_EVENT_PENDING;
/* Mask interrupt */
@ -243,7 +243,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
return IRQ_WAKE_THREAD;
}
@@ -2662,18 +2658,8 @@ static irqreturn_t dwc3_check_event_buf(
@@ -2663,18 +2659,8 @@ static irqreturn_t dwc3_check_event_buf(
static irqreturn_t dwc3_interrupt(int irq, void *_dwc)
{
struct dwc3 *dwc = _dwc;

View File

@ -76,7 +76,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
struct usb_gadget gadget;
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -2578,7 +2578,7 @@ static irqreturn_t dwc3_process_event_bu
@@ -2579,7 +2579,7 @@ static irqreturn_t dwc3_process_event_bu
int left;
u32 reg;
@ -85,7 +85,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
left = evt->count;
if (!(evt->flags & DWC3_EVENT_PENDING))
@@ -2637,7 +2637,7 @@ static irqreturn_t dwc3_check_event_buf(
@@ -2638,7 +2638,7 @@ static irqreturn_t dwc3_check_event_buf(
u32 count;
u32 reg;

View File

@ -820,7 +820,7 @@ Signed-off-by: Mathieu Olivari <mathieu@codeaurora.org>
#endif
--- a/net/dsa/slave.c
+++ b/net/dsa/slave.c
@@ -1186,6 +1186,11 @@ int dsa_slave_create(struct dsa_switch *
@@ -1190,6 +1190,11 @@ int dsa_slave_create(struct dsa_switch *
p->xmit = brcm_netdev_ops.xmit;
break;
#endif

View File

@ -180,6 +180,6 @@ Signed-off-by: Adrian Panella <ianchi74@outlook.com>
+ }
+#endif
+
/* parameters may set static keys */
jump_label_init();
parse_early_param();
after_dashes = parse_args("Booting kernel",
static_command_line, __start___param,

View File

@ -10,7 +10,7 @@
/* Get the HEAD */
skb = kmem_cache_alloc_node(cache, gfp_mask & ~__GFP_DMA, node);
@@ -1148,6 +1151,10 @@ int pskb_expand_head(struct sk_buff *skb
@@ -1152,6 +1155,10 @@ int pskb_expand_head(struct sk_buff *skb
if (skb_shared(skb))
BUG();

View File

@ -19,7 +19,7 @@ Signed-off-by: Ezequiel Garcia <ezequiel.garcia <at> free-electrons.com>
---
--- a/drivers/net/ethernet/marvell/mv643xx_eth.c
+++ b/drivers/net/ethernet/marvell/mv643xx_eth.c
@@ -3178,11 +3178,11 @@ static int mv643xx_eth_probe(struct plat
@@ -3183,11 +3183,11 @@ static int mv643xx_eth_probe(struct plat
dev->watchdog_timeo = 2 * HZ;
dev->base_addr = 0;

View File

@ -1,6 +1,6 @@
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -2221,6 +2221,12 @@ config MIPS_VPE_LOADER
@@ -2224,6 +2224,12 @@ config MIPS_VPE_LOADER
Includes a loader for loading an elf relocatable object
onto another VPE and running it.

View File

@ -109,7 +109,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
help
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -787,6 +787,11 @@ config FSL_GTM
@@ -792,6 +792,11 @@ config FSL_GTM
help
Freescale General-purpose Timers support
@ -121,7 +121,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
# Yes MCA RS/6000s exist but Linux-PPC does not currently support any
config MCA
bool
@@ -919,14 +924,14 @@ config DYNAMIC_MEMSTART
@@ -924,14 +929,14 @@ config DYNAMIC_MEMSTART
select NONSTATIC_KERNEL
help
This option enables the kernel to be loaded at any page aligned

View File

@ -14,7 +14,7 @@ Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com>
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -799,6 +799,7 @@ void kfree_skb(struct sk_buff *skb);
@@ -804,6 +804,7 @@ void kfree_skb(struct sk_buff *skb);
void kfree_skb_list(struct sk_buff *segs);
void skb_tx_error(struct sk_buff *skb);
void consume_skb(struct sk_buff *skb);
@ -24,7 +24,7 @@ Signed-off-by: Madalin Bucur <madalin.bucur@freescale.com>
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -766,6 +766,32 @@ void consume_skb(struct sk_buff *skb)
@@ -770,6 +770,32 @@ void consume_skb(struct sk_buff *skb)
}
EXPORT_SYMBOL(consume_skb);

View File

@ -18,7 +18,7 @@ Integrated-by: Zhao Qiang <qiang.zhao@nxp.com>
--- a/include/linux/netdev_features.h
+++ b/include/linux/netdev_features.h
@@ -66,6 +66,9 @@ enum {
@@ -68,6 +68,9 @@ enum {
NETIF_F_HW_VLAN_STAG_FILTER_BIT,/* Receive filtering on VLAN STAGs */
NETIF_F_HW_L2FW_DOFFLOAD_BIT, /* Allow L2 Forwarding in Hardware */
NETIF_F_BUSY_POLL_BIT, /* Busy poll */
@ -28,7 +28,7 @@ Integrated-by: Zhao Qiang <qiang.zhao@nxp.com>
/*
* Add your fresh new feature above and remember to update
@@ -124,6 +127,9 @@ enum {
@@ -126,6 +129,9 @@ enum {
#define NETIF_F_HW_VLAN_STAG_TX __NETIF_F(HW_VLAN_STAG_TX)
#define NETIF_F_HW_L2FW_DOFFLOAD __NETIF_F(HW_L2FW_DOFFLOAD)
#define NETIF_F_BUSY_POLL __NETIF_F(BUSY_POLL)
@ -36,5 +36,5 @@ Integrated-by: Zhao Qiang <qiang.zhao@nxp.com>
+#define NETIF_F_HW_QDISC __NETIF_F(HW_QDISC)
+#define NETIF_F_HW_ACCEL_MQ __NETIF_F(HW_ACCEL_MQ)
#define for_each_netdev_feature(mask_addr, bit) \
for_each_set_bit(bit, (unsigned long *)mask_addr, NETDEV_FEATURE_COUNT)
/* Finds the next feature with the highest number of the range of start till 0.
*/

View File

@ -17,7 +17,7 @@ Integrated-by: Zhao Qiang <qiang.zhao@nxp.com>
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -188,6 +188,11 @@ source "arch/arm64/Kconfig.platforms"
@@ -187,6 +187,11 @@ source "arch/arm64/Kconfig.platforms"
menu "Bus support"

View File

@ -15054,7 +15054,7 @@ Integrated-by: Yutang Jiang <yutang.jiang@nxp.com>
+#endif /* _PLATFORM_H_ */
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -858,6 +858,17 @@ static inline struct sk_buff *alloc_skb_
@@ -863,6 +863,17 @@ static inline struct sk_buff *alloc_skb_
return __alloc_skb(size, priority, SKB_ALLOC_FCLONE, NUMA_NO_NODE);
}

View File

@ -77,9 +77,9 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
}
--- a/scripts/mod/file2alias.c
+++ b/scripts/mod/file2alias.c
@@ -1271,6 +1271,18 @@ static int do_hda_entry(const char *file
@@ -1186,6 +1186,18 @@ static int do_hda_entry(const char *file
return 1;
}
ADD_TO_DEVTABLE("hdaudio", hda_device_id, do_hda_entry);
+/* Looks like: fsl-mc:vNdN */
+static int do_fsl_mc_entry(const char *filename, void *symval,

View File

@ -34,7 +34,7 @@ Integrated-by: Zhao Qiang <qiang.zhao@nxp.com>
--- a/drivers/mmc/host/sdhci-of-esdhc.c
+++ b/drivers/mmc/host/sdhci-of-esdhc.c
@@ -635,6 +635,14 @@ static int sdhci_esdhc_probe(struct plat
@@ -640,6 +640,14 @@ static int sdhci_esdhc_probe(struct plat
if (of_device_is_compatible(np, "fsl,ls1021a-esdhc"))
host->quirks |= SDHCI_QUIRK_BROKEN_TIMEOUT_VAL;

View File

@ -180,7 +180,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
+#endif /* _PCI_LAYERSCAPE_H */
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -3593,8 +3593,9 @@ int pci_dev_specific_reset(struct pci_de
@@ -3594,8 +3594,9 @@ int pci_dev_specific_reset(struct pci_de
static void quirk_dma_func0_alias(struct pci_dev *dev)
{
if (PCI_FUNC(dev->devfn) != 0) {
@ -192,7 +192,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
}
}
@@ -3609,8 +3610,9 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_R
@@ -3610,8 +3611,9 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_R
static void quirk_dma_func1_alias(struct pci_dev *dev)
{
if (PCI_FUNC(dev->devfn) != 1) {
@ -204,7 +204,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
}
}
@@ -3681,11 +3683,12 @@ static void quirk_fixed_dma_alias(struct
@@ -3684,11 +3686,12 @@ static void quirk_fixed_dma_alias(struct
id = pci_match_id(fixed_dma_alias_tbl, dev);
if (id) {

View File

@ -10,7 +10,7 @@ Signed-off-by: Yutang Jiang <yutang.jiang@nxp.com>
--- a/drivers/mmc/host/sdhci-of-esdhc.c
+++ b/drivers/mmc/host/sdhci-of-esdhc.c
@@ -629,6 +629,7 @@ static int sdhci_esdhc_probe(struct plat
@@ -634,6 +634,7 @@ static int sdhci_esdhc_probe(struct plat
of_device_is_compatible(np, "fsl,p4080-esdhc") ||
of_device_is_compatible(np, "fsl,p1020-esdhc") ||
of_device_is_compatible(np, "fsl,t1040-esdhc") ||

View File

@ -96,7 +96,7 @@ Signed-off-by: Yutang Jiang <yutang.jiang@nxp.com>
#endif
--- a/arch/arm64/kernel/head.S
+++ b/arch/arm64/kernel/head.S
@@ -212,6 +212,8 @@ ENTRY(stext)
@@ -213,6 +213,8 @@ ENTRY(stext)
bl el2_setup // Drop to EL1, w20=cpu_boot_mode
adrp x24, __PHYS_OFFSET
bl set_cpu_boot_mode_flag
@ -105,7 +105,7 @@ Signed-off-by: Yutang Jiang <yutang.jiang@nxp.com>
bl __create_page_tables // x25=TTBR0, x26=TTBR1
/*
* The following calls CPU setup code, see arch/arm64/mm/proc.S for
@@ -243,6 +245,24 @@ preserve_boot_args:
@@ -244,6 +246,24 @@ preserve_boot_args:
ENDPROC(preserve_boot_args)
/*
@ -130,7 +130,7 @@ Signed-off-by: Yutang Jiang <yutang.jiang@nxp.com>
* Macro to create a table entry to the next page.
*
* tbl: page table address
@@ -306,7 +326,8 @@ ENDPROC(preserve_boot_args)
@@ -307,7 +327,8 @@ ENDPROC(preserve_boot_args)
* required to get the kernel running. The following sections are required:
* - identity mapping to enable the MMU (low address, TTBR0)
* - first few MB of the kernel linear mapping to jump to once the MMU has
@ -140,7 +140,7 @@ Signed-off-by: Yutang Jiang <yutang.jiang@nxp.com>
*/
__create_page_tables:
adrp x25, idmap_pg_dir
@@ -396,6 +417,22 @@ __create_page_tables:
@@ -397,6 +418,22 @@ __create_page_tables:
create_block_map x0, x7, x3, x5, x6
/*

View File

@ -1428,7 +1428,7 @@ Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
/*
* Returns zero if the TRB isn't in this segment, otherwise it returns the DMA
@@ -3113,17 +3114,22 @@ static u32 xhci_td_remainder(struct xhci
@@ -3116,17 +3117,22 @@ static u32 xhci_td_remainder(struct xhci
{
u32 maxp, total_packet_count;
@ -1455,7 +1455,7 @@ Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
/* Queueing functions don't count the current TRB into transferred */
return (total_packet_count - ((transferred + trb_buff_len) / maxp));
}
@@ -3511,7 +3517,7 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
@@ -3514,7 +3520,7 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
field |= 0x1;
/* xHCI 1.0/1.1 6.4.1.2.1: Transfer Type field */
@ -1466,7 +1466,7 @@ Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
field |= TRB_TX_TYPE(TRB_DATA_IN);
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -31,6 +31,7 @@
@@ -32,6 +32,7 @@
#include "xhci.h"
#include "xhci-trace.h"
@ -1474,7 +1474,7 @@ Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
#define DRIVER_AUTHOR "Sarah Sharp"
#define DRIVER_DESC "'eXtensible' Host Controller (xHC) Driver"
@@ -635,7 +636,11 @@ int xhci_run(struct usb_hcd *hcd)
@@ -633,7 +634,11 @@ int xhci_run(struct usb_hcd *hcd)
"// Set the interrupt modulation register");
temp = readl(&xhci->ir_set->irq_control);
temp &= ~ER_IRQ_INTERVAL_MASK;
@ -1487,7 +1487,7 @@ Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
writel(temp, &xhci->ir_set->irq_control);
/* Set the HCD state before we enable the irqs */
@@ -1730,6 +1735,9 @@ int xhci_drop_endpoint(struct usb_hcd *h
@@ -1728,6 +1733,9 @@ int xhci_drop_endpoint(struct usb_hcd *h
xhci_endpoint_zero(xhci, xhci->devs[udev->slot_id], ep);
@ -1497,7 +1497,7 @@ Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
xhci_dbg(xhci, "drop ep 0x%x, slot id %d, new drop flags = %#x, new add flags = %#x\n",
(unsigned int) ep->desc.bEndpointAddress,
udev->slot_id,
@@ -1825,6 +1833,15 @@ int xhci_add_endpoint(struct usb_hcd *hc
@@ -1823,6 +1831,15 @@ int xhci_add_endpoint(struct usb_hcd *hc
return -ENOMEM;
}
@ -1515,7 +1515,7 @@ Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -1638,6 +1638,7 @@ struct xhci_hcd {
@@ -1639,6 +1639,7 @@ struct xhci_hcd {
/* For controllers with a broken beyond repair streams implementation */
#define XHCI_BROKEN_STREAMS (1 << 19)
#define XHCI_PME_STUCK_QUIRK (1 << 20)

View File

@ -17,7 +17,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -114,6 +114,7 @@ src-plat-$(CONFIG_PPC_PSERIES) += pserie
@@ -115,6 +115,7 @@ src-plat-$(CONFIG_PPC_PSERIES) += pserie
src-plat-$(CONFIG_PPC_POWERNV) += pseries-head.S
src-plat-$(CONFIG_PPC_IBM_CELL_BLADE) += pseries-head.S
src-plat-$(CONFIG_PPC_CELL_QPACE) += pseries-head.S
@ -25,7 +25,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
src-wlib := $(sort $(src-wlib-y))
src-plat := $(sort $(src-plat-y))
@@ -297,6 +298,7 @@ image-$(CONFIG_TQM8555) += cuImage.tqm
@@ -298,6 +299,7 @@ image-$(CONFIG_TQM8555) += cuImage.tqm
image-$(CONFIG_TQM8560) += cuImage.tqm8560
image-$(CONFIG_SBC8548) += cuImage.sbc8548
image-$(CONFIG_KSI8560) += cuImage.ksi8560

View File

@ -180,6 +180,6 @@ Signed-off-by: Adrian Panella <ianchi74@outlook.com>
+ }
+#endif
+
/* parameters may set static keys */
jump_label_init();
parse_early_param();
after_dashes = parse_args("Booting kernel",
static_command_line, __start___param,

View File

@ -15,7 +15,7 @@
/* initialize internal qc */
/* XXX: Tag 0 is used for drivers with legacy EH as some
@@ -4818,6 +4826,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
@@ -4819,6 +4827,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
if (unlikely(ap->pflags & ATA_PFLAG_FROZEN))
return NULL;
@ -25,7 +25,7 @@
/* libsas case */
if (ap->flags & ATA_FLAG_SAS_HOST) {
tag = ata_sas_allocate_tag(ap);
@@ -4863,6 +4874,8 @@ void ata_qc_free(struct ata_queued_cmd *
@@ -4864,6 +4875,8 @@ void ata_qc_free(struct ata_queued_cmd *
qc->tag = ATA_TAG_POISON;
if (ap->flags & ATA_FLAG_SAS_HOST)
ata_sas_free_tag(tag, ap);

View File

@ -13,7 +13,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
--- a/drivers/media/usb/uvc/uvc_driver.c
+++ b/drivers/media/usb/uvc/uvc_driver.c
@@ -2665,6 +2665,18 @@ static struct usb_device_id uvc_ids[] =
@@ -2673,6 +2673,18 @@ static struct usb_device_id uvc_ids[] =
.bInterfaceSubClass = 1,
.bInterfaceProtocol = 0,
.driver_info = UVC_QUIRK_FORCE_Y8 },
@ -64,7 +64,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
#include <media/v4l2-common.h>
@@ -1104,9 +1109,149 @@ static void uvc_video_decode_data(struct
@@ -1112,9 +1117,149 @@ static void uvc_video_decode_data(struct
}
}
@ -214,7 +214,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
/* Mark the buffer as done if the EOF marker is set. */
if (data[1] & UVC_STREAM_EOF && buf->bytesused != 0) {
uvc_trace(UVC_TRACE_FRAME, "Frame complete (EOF found).\n");
@@ -1519,6 +1664,8 @@ static int uvc_init_video_isoc(struct uv
@@ -1527,6 +1672,8 @@ static int uvc_init_video_isoc(struct uv
if (npackets == 0)
return -ENOMEM;

View File

@ -1420,7 +1420,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
/*
* Returns zero if the TRB isn't in this segment, otherwise it returns the DMA
@@ -3113,17 +3114,22 @@ static u32 xhci_td_remainder(struct xhci
@@ -3116,17 +3117,22 @@ static u32 xhci_td_remainder(struct xhci
{
u32 maxp, total_packet_count;
@ -1447,7 +1447,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
/* Queueing functions don't count the current TRB into transferred */
return (total_packet_count - ((transferred + trb_buff_len) / maxp));
}
@@ -3511,7 +3517,7 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
@@ -3514,7 +3520,7 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
field |= 0x1;
/* xHCI 1.0/1.1 6.4.1.2.1: Transfer Type field */
@ -1458,7 +1458,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
field |= TRB_TX_TYPE(TRB_DATA_IN);
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -31,6 +31,7 @@
@@ -32,6 +32,7 @@
#include "xhci.h"
#include "xhci-trace.h"
@ -1466,7 +1466,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
#define DRIVER_AUTHOR "Sarah Sharp"
#define DRIVER_DESC "'eXtensible' Host Controller (xHC) Driver"
@@ -635,7 +636,11 @@ int xhci_run(struct usb_hcd *hcd)
@@ -633,7 +634,11 @@ int xhci_run(struct usb_hcd *hcd)
"// Set the interrupt modulation register");
temp = readl(&xhci->ir_set->irq_control);
temp &= ~ER_IRQ_INTERVAL_MASK;
@ -1479,7 +1479,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
writel(temp, &xhci->ir_set->irq_control);
/* Set the HCD state before we enable the irqs */
@@ -1730,6 +1735,9 @@ int xhci_drop_endpoint(struct usb_hcd *h
@@ -1728,6 +1733,9 @@ int xhci_drop_endpoint(struct usb_hcd *h
xhci_endpoint_zero(xhci, xhci->devs[udev->slot_id], ep);
@ -1489,7 +1489,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
xhci_dbg(xhci, "drop ep 0x%x, slot id %d, new drop flags = %#x, new add flags = %#x\n",
(unsigned int) ep->desc.bEndpointAddress,
udev->slot_id,
@@ -1825,6 +1833,15 @@ int xhci_add_endpoint(struct usb_hcd *hc
@@ -1823,6 +1831,15 @@ int xhci_add_endpoint(struct usb_hcd *hc
return -ENOMEM;
}
@ -1507,7 +1507,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -1638,6 +1638,7 @@ struct xhci_hcd {
@@ -1639,6 +1639,7 @@ struct xhci_hcd {
/* For controllers with a broken beyond repair streams implementation */
#define XHCI_BROKEN_STREAMS (1 << 19)
#define XHCI_PME_STUCK_QUIRK (1 << 20)