kernel: bump 5.15 to 5.15.77
authorJohn Audia <therealgraysky@proton.me>
Thu, 3 Nov 2022 16:07:30 +0000 (12:07 -0400)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 5 Nov 2022 15:26:38 +0000 (16:26 +0100)
Manually rebased:
   bcm27xx/patches-5.15/950-0600-xhci-quirks-add-link-TRB-quirk-for-VL805.patch
   bcm27xx/patches-5.15/950-0606-usb-xhci-add-VLI_TRB_CACHE_BUG-quirk.patch
   bcm27xx/patches-5.15/950-0717-usb-xhci-add-a-quirk-for-Superspeed-bulk-OUT-transfe.patch
   bcm53xx/patches-5.15/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
   lantiq/patches-5.15/0028-NET-lantiq-various-etop-fixes.patch

All other patches automatically rebased

Build system: x86_64
Build-tested: bcm2711/RPi4B, mt7622/RT3200
Run-tested: bcm2711/RPi4B, mt7622/RT3200

Signed-off-by: John Audia <therealgraysky@proton.me>
16 files changed:
include/kernel-5.15
target/linux/ath79/patches-5.15/910-unaligned_access_hacks.patch
target/linux/bcm27xx/patches-5.15/950-0070-MMC-added-alternative-MMC-driver.patch
target/linux/bcm27xx/patches-5.15/950-0152-xhci-implement-xhci_fixup_endpoint-for-interval-adju.patch
target/linux/bcm27xx/patches-5.15/950-0166-xhci-Use-more-event-ring-segment-table-entries.patch
target/linux/bcm27xx/patches-5.15/950-0464-videodev2.h-add-V4L2_CTRL_FLAG_DYNAMIC_ARRAY.patch
target/linux/bcm27xx/patches-5.15/950-0600-xhci-quirks-add-link-TRB-quirk-for-VL805.patch
target/linux/bcm27xx/patches-5.15/950-0605-xhci-refactor-out-TRBS_PER_SEGMENT-define-in-runtime.patch
target/linux/bcm27xx/patches-5.15/950-0606-usb-xhci-add-VLI_TRB_CACHE_BUG-quirk.patch
target/linux/bcm27xx/patches-5.15/950-0717-usb-xhci-add-a-quirk-for-Superspeed-bulk-OUT-transfe.patch
target/linux/bcm27xx/patches-5.15/950-0914-mmc-block-Don-t-do-single-sector-reads-during-recove.patch
target/linux/bcm53xx/patches-5.15/180-usb-xhci-add-support-for-performing-fake-doorbell.patch
target/linux/generic/pending-5.15/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
target/linux/lantiq/patches-5.15/0028-NET-lantiq-various-etop-fixes.patch
target/linux/mediatek/patches-5.15/410-bt-mtk-serial-fix.patch
target/linux/ramips/patches-5.15/830-mmc-MIPS-ralink-add-sdhci-for-mt7620a-SoC.patch

index dc199a65667afa13dbfb80a06ea361b45aa1d15d..d5dcb11347423f006d5b08a7a87ee8d0e457b603 100644 (file)
@@ -1,2 +1,2 @@
-LINUX_VERSION-5.15 = .76
-LINUX_KERNEL_HASH-5.15.76 = 9007a020c419e3625b980e361be09f70ebd99e156ccb66129a981483d065d57f
+LINUX_VERSION-5.15 = .77
+LINUX_KERNEL_HASH-5.15.77 = 142f841f33796a84c62fae2f2b96d2120bd8bbf9e0aac4ce157692cdb0afe9f9
index 84ee47a115a5409bd8eed80a03659e08c144c853..d284ceeaa7660e845c5dd444055aaacdc19e56bd 100644 (file)
@@ -750,7 +750,7 @@ SVN-Revision: 35130
  EXPORT_SYMBOL(xfrm_parse_spi);
 --- a/net/ipv4/tcp_input.c
 +++ b/net/ipv4/tcp_input.c
-@@ -4151,14 +4151,16 @@ static bool tcp_parse_aligned_timestamp(
+@@ -4152,14 +4152,16 @@ static bool tcp_parse_aligned_timestamp(
  {
        const __be32 *ptr = (const __be32 *)(th + 1);
  
index 754b63396731f647e78bcdd1b71847b8ea75b2f5..4548083000f89dec4dd4d6c627707eb5f66cde1f 100644 (file)
@@ -230,7 +230,7 @@ bcm2835-mmc: uninitialized_var is no more
 
 --- a/drivers/mmc/core/block.c
 +++ b/drivers/mmc/core/block.c
-@@ -171,6 +171,13 @@ static DEFINE_MUTEX(open_lock);
+@@ -172,6 +172,13 @@ static DEFINE_MUTEX(open_lock);
  module_param(perdev_minors, int, 0444);
  MODULE_PARM_DESC(perdev_minors, "Minors numbers to allocate per device");
  
@@ -244,7 +244,7 @@ bcm2835-mmc: uninitialized_var is no more
  static inline int mmc_blk_part_switch(struct mmc_card *card,
                                      unsigned int part_type);
  static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq,
-@@ -2928,6 +2935,8 @@ static int mmc_blk_probe(struct mmc_card
+@@ -2936,6 +2943,8 @@ static int mmc_blk_probe(struct mmc_card
  {
        struct mmc_blk_data *md;
        int ret = 0;
@@ -253,7 +253,7 @@ bcm2835-mmc: uninitialized_var is no more
  
        /*
         * Check that the card supports the command class(es) we need.
-@@ -2935,7 +2944,16 @@ static int mmc_blk_probe(struct mmc_card
+@@ -2943,7 +2952,16 @@ static int mmc_blk_probe(struct mmc_card
        if (!(card->csd.cmdclass & CCC_BLOCK_READ))
                return -ENODEV;
  
@@ -271,7 +271,7 @@ bcm2835-mmc: uninitialized_var is no more
  
        card->complete_wq = alloc_workqueue("mmc_complete",
                                        WQ_MEM_RECLAIM | WQ_HIGHPRI, 0);
-@@ -2950,6 +2968,17 @@ static int mmc_blk_probe(struct mmc_card
+@@ -2958,6 +2976,17 @@ static int mmc_blk_probe(struct mmc_card
                goto out_free;
        }
  
index 85f3e610adee2f46d48920d2c227ad5d0b151a67..aa12dae1fcf08dd66c22f2fc5b25d05363c782e2 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
 
 --- a/drivers/usb/host/xhci.c
 +++ b/drivers/usb/host/xhci.c
-@@ -1612,6 +1612,109 @@ command_cleanup:
+@@ -1618,6 +1618,109 @@ command_cleanup:
  }
  
  /*
@@ -125,7 +125,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
   * non-error returns are a promise to giveback() the urb later
   * we drop ownership so next owner (or urb unlink) can get it
   */
-@@ -5437,6 +5540,7 @@ static const struct hc_driver xhci_hc_dr
+@@ -5443,6 +5546,7 @@ static const struct hc_driver xhci_hc_dr
        .endpoint_reset =       xhci_endpoint_reset,
        .check_bandwidth =      xhci_check_bandwidth,
        .reset_bandwidth =      xhci_reset_bandwidth,
index b3f8240db238c3041cdd57fc1898515caf5d7d41..b3ad56722621461c046ddc1e76a38854465491c6 100644 (file)
@@ -22,7 +22,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
 
 --- a/drivers/usb/host/xhci-mem.c
 +++ b/drivers/usb/host/xhci-mem.c
-@@ -2516,9 +2516,11 @@ int xhci_mem_init(struct xhci_hcd *xhci,
+@@ -2520,9 +2520,11 @@ int xhci_mem_init(struct xhci_hcd *xhci,
         * Event ring setup: Allocate a normal ring, but also setup
         * the event ring segment table (ERST).  Section 4.9.3.
         */
@@ -36,7 +36,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
        if (!xhci->event_ring)
                goto fail;
        if (xhci_check_trb_in_td_math(xhci) < 0)
-@@ -2531,7 +2533,7 @@ int xhci_mem_init(struct xhci_hcd *xhci,
+@@ -2535,7 +2537,7 @@ int xhci_mem_init(struct xhci_hcd *xhci,
        /* set ERST count with the number of entries in the segment table */
        val = readl(&xhci->ir_set->erst_size);
        val &= ERST_SIZE_MASK;
index 58e32d9930662052ec3cd841d0c7cd7f24c5784b..67137dd695092f6a9ae5867122ab067c9c9aaee6 100644 (file)
@@ -42,7 +42,7 @@ Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
  ============
 --- a/include/uapi/linux/videodev2.h
 +++ b/include/uapi/linux/videodev2.h
-@@ -1882,6 +1882,7 @@ struct v4l2_querymenu {
+@@ -1883,6 +1883,7 @@ struct v4l2_querymenu {
  #define V4L2_CTRL_FLAG_HAS_PAYLOAD    0x0100
  #define V4L2_CTRL_FLAG_EXECUTE_ON_WRITE       0x0200
  #define V4L2_CTRL_FLAG_MODIFY_LAYOUT  0x0400
index 6c2840d6338438c4619bae3f4539f4a0bc5bd07b..dc946b1c634944bd8234db755575adedb51c2776 100644 (file)
@@ -22,7 +22,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
 
 --- a/drivers/usb/host/xhci-pci.c
 +++ b/drivers/usb/host/xhci-pci.c
-@@ -304,6 +304,7 @@ static void xhci_pci_quirks(struct devic
+@@ -291,6 +291,7 @@ static void xhci_pci_quirks(struct devic
        if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483) {
                xhci->quirks |= XHCI_LPM_SUPPORT;
                xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
@@ -50,11 +50,11 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        addr = xhci_trb_virt_to_dma(new_seg, new_deq);
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1904,6 +1904,7 @@ struct xhci_hcd {
- #define XHCI_BROKEN_D3COLD    BIT_ULL(41)
+@@ -1905,6 +1905,7 @@ struct xhci_hcd {
  #define XHCI_EP_CTX_BROKEN_DCS        BIT_ULL(42)
  #define XHCI_SUSPEND_RESUME_CLKS      BIT_ULL(43)
-+#define XHCI_AVOID_DQ_ON_LINK BIT_ULL(44)
+ #define XHCI_RESET_TO_DEFAULT BIT_ULL(44)
++#define XHCI_AVOID_DQ_ON_LINK BIT_ULL(45)
  
        unsigned int            num_active_eps;
        unsigned int            limit_active_eps;
index 2b7435368ae1891d193e2102c69126c85935cdc5..f9907cc82a51e770c33440e84825125d23575d2a 100644 (file)
@@ -145,7 +145,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        if (ret)
                return -ENOMEM;
  
-@@ -1816,7 +1820,7 @@ int xhci_alloc_erst(struct xhci_hcd *xhc
+@@ -1820,7 +1824,7 @@ int xhci_alloc_erst(struct xhci_hcd *xhc
        for (val = 0; val < evt_ring->num_segs; val++) {
                entry = &erst->entries[val];
                entry->seg_addr = cpu_to_le64(seg->dma);
@@ -226,7 +226,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        }
 --- a/drivers/usb/host/xhci.c
 +++ b/drivers/usb/host/xhci.c
-@@ -870,8 +870,8 @@ static void xhci_clear_command_ring(stru
+@@ -876,8 +876,8 @@ static void xhci_clear_command_ring(stru
        seg = ring->deq_seg;
        do {
                memset(seg->trbs, 0,
@@ -237,7 +237,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
                        cpu_to_le32(~TRB_CYCLE);
                seg = seg->next;
        } while (seg != ring->deq_seg);
-@@ -882,7 +882,7 @@ static void xhci_clear_command_ring(stru
+@@ -888,7 +888,7 @@ static void xhci_clear_command_ring(stru
        ring->enq_seg = ring->deq_seg;
        ring->enqueue = ring->dequeue;
  
index 39ddab76e8563f7c8e8c493094e60975508bc7d4..4d477eb4e1e6fbfff26f59909bb1ed41c2f8cad6 100644 (file)
@@ -53,7 +53,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
                        cycle_state, type, max_packet, flags);
 --- a/drivers/usb/host/xhci-pci.c
 +++ b/drivers/usb/host/xhci-pci.c
-@@ -305,6 +305,7 @@ static void xhci_pci_quirks(struct devic
+@@ -292,6 +292,7 @@ static void xhci_pci_quirks(struct devic
                xhci->quirks |= XHCI_LPM_SUPPORT;
                xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
                xhci->quirks |= XHCI_AVOID_DQ_ON_LINK;
@@ -63,11 +63,11 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
        if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1906,6 +1906,7 @@ struct xhci_hcd {
- #define XHCI_EP_CTX_BROKEN_DCS        BIT_ULL(42)
+@@ -1907,6 +1907,7 @@ struct xhci_hcd {
  #define XHCI_SUSPEND_RESUME_CLKS      BIT_ULL(43)
- #define XHCI_AVOID_DQ_ON_LINK BIT_ULL(44)
-+#define XHCI_VLI_TRB_CACHE_BUG        BIT_ULL(45)
+ #define XHCI_RESET_TO_DEFAULT BIT_ULL(44)
+ #define XHCI_AVOID_DQ_ON_LINK BIT_ULL(45)
++#define XHCI_VLI_TRB_CACHE_BUG        BIT_ULL(46)
  
        unsigned int            num_active_eps;
        unsigned int            limit_active_eps;
index ab68debd2f35302b49e68d469a3bd5b6a459b98b..372ec6f8e7c769616a3a40835a84a85da9e4845c 100644 (file)
@@ -26,7 +26,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
 
 --- a/drivers/usb/host/xhci-pci.c
 +++ b/drivers/usb/host/xhci-pci.c
-@@ -306,6 +306,7 @@ static void xhci_pci_quirks(struct devic
+@@ -293,6 +293,7 @@ static void xhci_pci_quirks(struct devic
                xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
                xhci->quirks |= XHCI_AVOID_DQ_ON_LINK;
                xhci->quirks |= XHCI_VLI_TRB_CACHE_BUG;
@@ -86,11 +86,11 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
                        first_trb = false;
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1907,6 +1907,7 @@ struct xhci_hcd {
- #define XHCI_SUSPEND_RESUME_CLKS      BIT_ULL(43)
- #define XHCI_AVOID_DQ_ON_LINK BIT_ULL(44)
- #define XHCI_VLI_TRB_CACHE_BUG        BIT_ULL(45)
-+#define XHCI_VLI_SS_BULK_OUT_BUG      BIT_ULL(46)
+@@ -1908,6 +1908,7 @@ struct xhci_hcd {
+ #define XHCI_RESET_TO_DEFAULT BIT_ULL(44)
+ #define XHCI_AVOID_DQ_ON_LINK BIT_ULL(45)
+ #define XHCI_VLI_TRB_CACHE_BUG        BIT_ULL(46)
++#define XHCI_VLI_SS_BULK_OUT_BUG      BIT_ULL(47)
  
        unsigned int            num_active_eps;
        unsigned int            limit_active_eps;
index 7390813f30425a6ce89a7ae16fc223da582d5b45..5e491a6f5a928a739c3746b91394e156637cf311 100644 (file)
@@ -23,7 +23,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
 
 --- a/drivers/mmc/core/block.c
 +++ b/drivers/mmc/core/block.c
-@@ -1875,7 +1875,11 @@ static void mmc_blk_mq_rw_recovery(struc
+@@ -1883,7 +1883,11 @@ static void mmc_blk_mq_rw_recovery(struc
                return;
        }
  
index 239c140c9bec1a4e895160048d5216eaf8106f7b..69d70aefaf044715be0996e822b1fbe45e7d79eb 100644 (file)
@@ -127,11 +127,11 @@ it on BCM4708 family.
  /*
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1904,6 +1904,7 @@ struct xhci_hcd {
- #define XHCI_BROKEN_D3COLD    BIT_ULL(41)
+@@ -1905,6 +1905,7 @@ struct xhci_hcd {
  #define XHCI_EP_CTX_BROKEN_DCS        BIT_ULL(42)
  #define XHCI_SUSPEND_RESUME_CLKS      BIT_ULL(43)
-+#define XHCI_FAKE_DOORBELL    BIT_ULL(44)
+ #define XHCI_RESET_TO_DEFAULT BIT_ULL(44)
++#define XHCI_FAKE_DOORBELL    BIT_ULL(45)
  
        unsigned int            num_active_eps;
        unsigned int            limit_active_eps;
index 09efa1e72fe24fbbba1b3675aa0612e323938c39..2f6fbd59e4365eb87269b3062bb7d5f6d02bf79b 100644 (file)
@@ -338,7 +338,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6))
                return -1;
  
-@@ -1525,6 +1686,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
+@@ -1526,6 +1687,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
        t->parms.link = p->link;
        t->parms.proto = p->proto;
        t->parms.fwmark = p->fwmark;
@@ -353,7 +353,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        dst_cache_reset(&t->dst_cache);
        ip6_tnl_link_config(t);
        return 0;
-@@ -1563,6 +1732,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
+@@ -1564,6 +1733,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
        p->flowinfo = u->flowinfo;
        p->link = u->link;
        p->proto = u->proto;
@@ -361,7 +361,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        memcpy(p->name, u->name, sizeof(u->name));
  }
  
-@@ -1949,6 +2119,15 @@ static int ip6_tnl_validate(struct nlatt
+@@ -1950,6 +2120,15 @@ static int ip6_tnl_validate(struct nlatt
        return 0;
  }
  
@@ -377,7 +377,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  static void ip6_tnl_netlink_parms(struct nlattr *data[],
                                  struct __ip6_tnl_parm *parms)
  {
-@@ -1986,6 +2165,46 @@ static void ip6_tnl_netlink_parms(struct
+@@ -1987,6 +2166,46 @@ static void ip6_tnl_netlink_parms(struct
  
        if (data[IFLA_IPTUN_FWMARK])
                parms->fwmark = nla_get_u32(data[IFLA_IPTUN_FWMARK]);
@@ -424,7 +424,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  }
  
  static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[],
-@@ -2101,6 +2320,12 @@ static void ip6_tnl_dellink(struct net_d
+@@ -2102,6 +2321,12 @@ static void ip6_tnl_dellink(struct net_d
  
  static size_t ip6_tnl_get_size(const struct net_device *dev)
  {
@@ -437,7 +437,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        return
                /* IFLA_IPTUN_LINK */
                nla_total_size(4) +
-@@ -2130,6 +2355,24 @@ static size_t ip6_tnl_get_size(const str
+@@ -2131,6 +2356,24 @@ static size_t ip6_tnl_get_size(const str
                nla_total_size(0) +
                /* IFLA_IPTUN_FWMARK */
                nla_total_size(4) +
@@ -462,7 +462,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
                0;
  }
  
-@@ -2137,6 +2380,9 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2138,6 +2381,9 @@ static int ip6_tnl_fill_info(struct sk_b
  {
        struct ip6_tnl *tunnel = netdev_priv(dev);
        struct __ip6_tnl_parm *parm = &tunnel->parms;
@@ -472,7 +472,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  
        if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
            nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
-@@ -2146,9 +2392,27 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2147,9 +2393,27 @@ static int ip6_tnl_fill_info(struct sk_b
            nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||
            nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
            nla_put_u8(skb, IFLA_IPTUN_PROTO, parm->proto) ||
@@ -501,7 +501,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        if (nla_put_u16(skb, IFLA_IPTUN_ENCAP_TYPE, tunnel->encap.type) ||
            nla_put_be16(skb, IFLA_IPTUN_ENCAP_SPORT, tunnel->encap.sport) ||
            nla_put_be16(skb, IFLA_IPTUN_ENCAP_DPORT, tunnel->encap.dport) ||
-@@ -2188,6 +2452,7 @@ static const struct nla_policy ip6_tnl_p
+@@ -2189,6 +2453,7 @@ static const struct nla_policy ip6_tnl_p
        [IFLA_IPTUN_ENCAP_DPORT]        = { .type = NLA_U16 },
        [IFLA_IPTUN_COLLECT_METADATA]   = { .type = NLA_FLAG },
        [IFLA_IPTUN_FWMARK]             = { .type = NLA_U32 },
index eb47010fa06280bdd0630d6a8e3d1bf46ee78a34..e9f3ee473b494ef8be192679c92ed7b097f582ca 100644 (file)
@@ -625,7 +625,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
        return 0;
  }
  
-@@ -457,16 +651,16 @@ ltq_etop_tx(struct sk_buff *skb, struct
+@@ -457,15 +651,16 @@ ltq_etop_tx(struct sk_buff *skb, struct
        int queue = skb_get_queue_mapping(skb);
        struct netdev_queue *txq = netdev_get_tx_queue(dev, queue);
        struct ltq_etop_priv *priv = netdev_priv(dev);
@@ -641,13 +641,12 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
        len = skb->len < ETH_ZLEN ? ETH_ZLEN : skb->len;
  
 -      if ((desc->ctl & (LTQ_DMA_OWN | LTQ_DMA_C)) || ch->skb[ch->dma.desc]) {
--              dev_kfree_skb_any(skb);
 +      if ((desc->ctl & (LTQ_DMA_OWN | LTQ_DMA_C)) ||
 +                      priv->txch.skb[priv->txch.dma.desc]) {
                netdev_err(dev, "tx ring full\n");
                netif_tx_stop_queue(txq);
                return NETDEV_TX_BUSY;
-@@ -474,7 +668,7 @@ ltq_etop_tx(struct sk_buff *skb, struct
+@@ -473,7 +668,7 @@ ltq_etop_tx(struct sk_buff *skb, struct
  
        /* dma needs to start on a 16 byte aligned address */
        byte_offset = CPHYSADDR(skb->data) % 16;
@@ -656,7 +655,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  
        netif_trans_update(dev);
  
-@@ -484,11 +678,11 @@ ltq_etop_tx(struct sk_buff *skb, struct
+@@ -483,11 +678,11 @@ ltq_etop_tx(struct sk_buff *skb, struct
        wmb();
        desc->ctl = LTQ_DMA_OWN | LTQ_DMA_SOP | LTQ_DMA_EOP |
                LTQ_DMA_TX_OFFSET(byte_offset) | (len & LTQ_DMA_SIZE_MASK);
@@ -671,7 +670,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
                netif_tx_stop_queue(txq);
  
        return NETDEV_TX_OK;
-@@ -499,11 +693,14 @@ ltq_etop_change_mtu(struct net_device *d
+@@ -498,11 +693,14 @@ ltq_etop_change_mtu(struct net_device *d
  {
        struct ltq_etop_priv *priv = netdev_priv(dev);
        unsigned long flags;
@@ -687,7 +686,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
        spin_unlock_irqrestore(&priv->lock, flags);
  
        return 0;
-@@ -556,6 +753,9 @@ ltq_etop_init(struct net_device *dev)
+@@ -555,6 +753,9 @@ ltq_etop_init(struct net_device *dev)
        if (err)
                goto err_hw;
        ltq_etop_change_mtu(dev, 1500);
@@ -697,7 +696,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  
        memcpy(&mac, &priv->pldata->mac, sizeof(struct sockaddr));
        if (!is_valid_ether_addr(mac.sa_data)) {
-@@ -573,9 +773,10 @@ ltq_etop_init(struct net_device *dev)
+@@ -572,9 +773,10 @@ ltq_etop_init(struct net_device *dev)
                dev->addr_assign_type = NET_ADDR_RANDOM;
  
        ltq_etop_set_multicast_list(dev);
@@ -711,7 +710,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
        return 0;
  
  err_netdev:
-@@ -595,6 +796,9 @@ ltq_etop_tx_timeout(struct net_device *d
+@@ -594,6 +796,9 @@ ltq_etop_tx_timeout(struct net_device *d
        err = ltq_etop_hw_init(dev);
        if (err)
                goto err_hw;
@@ -721,7 +720,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
        netif_trans_update(dev);
        netif_wake_queue(dev);
        return;
-@@ -618,14 +822,18 @@ static const struct net_device_ops ltq_e
+@@ -617,14 +822,18 @@ static const struct net_device_ops ltq_e
        .ndo_tx_timeout = ltq_etop_tx_timeout,
  };
  
@@ -744,7 +743,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        if (!res) {
-@@ -651,31 +859,62 @@ ltq_etop_probe(struct platform_device *p
+@@ -650,31 +859,62 @@ ltq_etop_probe(struct platform_device *p
                goto err_out;
        }
  
@@ -822,7 +821,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  
        err = register_netdev(dev);
        if (err)
-@@ -704,31 +943,22 @@ ltq_etop_remove(struct platform_device *
+@@ -703,31 +943,22 @@ ltq_etop_remove(struct platform_device *
        return 0;
  }
  
index e61b3dd94cb9922a61d88425138bb0d9736c4686..69647e075ae9b3f8f97ee5aed36c1545f2af97ee 100644 (file)
@@ -19,7 +19,7 @@
        },
        [PORT_NPCM] = {
                .name           = "Nuvoton 16550",
-@@ -2748,6 +2748,11 @@ serial8250_do_set_termios(struct uart_po
+@@ -2753,6 +2753,11 @@ serial8250_do_set_termios(struct uart_po
        unsigned long flags;
        unsigned int baud, quot, frac = 0;
  
index 1992850d814ff7208f08b30367df4c3bf9fa4d98..21538859a557137a76524f6d2825ac9beb2b62b4 100644 (file)
@@ -25,7 +25,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
 
 --- a/drivers/mmc/host/Kconfig
 +++ b/drivers/mmc/host/Kconfig
-@@ -1091,3 +1091,5 @@ config MMC_OWL
+@@ -1092,3 +1092,5 @@ config MMC_OWL
  
  config MMC_SDHCI_EXTERNAL_DMA
        bool