kernel: bump 4.14 to 4.14.48
Remove upstreamed patches: generic/pending/101-clocksource-mips-gic-timer-fix-clocksource-counter-w.patch generic/pending/103-MIPS-c-r4k-fix-data-corruption-related-to-cache-coherence.patch generic/pending/182-net-qmi_wwan-add-BroadMobi-BM806U-2020-2033.patch lantiq/0025-MIPS-lantiq-gphy-Remove-reboot-remove-reset-asserts.patch Update patches that no longer apply: generic/pending/811-pci_disable_usb_common_quirks.patch ath79/0009-MIPS-ath79-add-lots-of-missing-registers.patch Fixes CVE-2018-6412. Compile-tested: octeon, x86/64. Runtime-tested: octeon, x86/64. Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
This commit is contained in:
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -433,8 +433,8 @@ KBUILD_CFLAGS_MODULE := -DMODULE
|
||||
@@ -428,8 +428,8 @@ KBUILD_CFLAGS_MODULE := -DMODULE
|
||||
KBUILD_LDFLAGS_MODULE := -T $(srctree)/scripts/module-common.lds
|
||||
GCC_PLUGINS_CFLAGS :=
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
|
||||
|
||||
/*
|
||||
* IEEE 802.3 Ethernet magic constants. The frame sizes omit the preamble
|
||||
@@ -149,11 +150,13 @@
|
||||
@@ -150,11 +151,13 @@
|
||||
* This is an Ethernet frame header.
|
||||
*/
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
|
||||
--- a/net/ipv4/netfilter/ipt_CLUSTERIP.c
|
||||
+++ b/net/ipv4/netfilter/ipt_CLUSTERIP.c
|
||||
@@ -829,6 +829,7 @@ static void clusterip_net_exit(struct ne
|
||||
@@ -834,6 +834,7 @@ static void clusterip_net_exit(struct ne
|
||||
cn->procdir = NULL;
|
||||
#endif
|
||||
nf_unregister_net_hook(net, &cip_arp_ops);
|
||||
|
||||
@@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -430,7 +430,7 @@ KBUILD_AFLAGS_KERNEL :=
|
||||
@@ -425,7 +425,7 @@ KBUILD_AFLAGS_KERNEL :=
|
||||
KBUILD_CFLAGS_KERNEL :=
|
||||
KBUILD_AFLAGS_MODULE := -DMODULE
|
||||
KBUILD_CFLAGS_MODULE := -DMODULE
|
||||
|
||||
@@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1233,7 +1233,6 @@ all: modules
|
||||
@@ -1227,7 +1227,6 @@ all: modules
|
||||
|
||||
PHONY += modules
|
||||
modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
|
||||
@@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
@$(kecho) ' Building modules, stage 2.';
|
||||
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
|
||||
|
||||
@@ -1262,7 +1261,6 @@ _modinst_:
|
||||
@@ -1256,7 +1255,6 @@ _modinst_:
|
||||
rm -f $(MODLIB)/build ; \
|
||||
ln -s $(CURDIR) $(MODLIB)/build ; \
|
||||
fi
|
||||
|
||||
@@ -33,7 +33,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
# Read KERNELRELEASE from include/config/kernel.release (if it exists)
|
||||
KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null)
|
||||
KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)
|
||||
@@ -787,11 +792,6 @@ ifdef CONFIG_DEBUG_SECTION_MISMATCH
|
||||
@@ -781,11 +786,6 @@ ifdef CONFIG_DEBUG_SECTION_MISMATCH
|
||||
KBUILD_CFLAGS += $(call cc-option, -fno-inline-functions-called-once)
|
||||
endif
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
|
||||
#include <linux/bcm47xx_nvram.h>
|
||||
#include <linux/phy.h>
|
||||
#include <linux/phy_fixed.h>
|
||||
@@ -1409,6 +1410,17 @@ static const struct ethtool_ops bgmac_et
|
||||
@@ -1410,6 +1411,17 @@ static const struct ethtool_ops bgmac_et
|
||||
.set_link_ksettings = phy_ethtool_set_link_ksettings,
|
||||
};
|
||||
|
||||
@@ -50,7 +50,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
|
||||
/**************************************************
|
||||
* MII
|
||||
**************************************************/
|
||||
@@ -1538,6 +1550,14 @@ int bgmac_enet_probe(struct bgmac *bgmac
|
||||
@@ -1539,6 +1551,14 @@ int bgmac_enet_probe(struct bgmac *bgmac
|
||||
net_dev->hw_features = net_dev->features;
|
||||
net_dev->vlan_features = net_dev->features;
|
||||
|
||||
@@ -65,7 +65,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
|
||||
err = register_netdev(bgmac->net_dev);
|
||||
if (err) {
|
||||
dev_err(bgmac->dev, "Cannot register net device\n");
|
||||
@@ -1560,6 +1580,10 @@ EXPORT_SYMBOL_GPL(bgmac_enet_probe);
|
||||
@@ -1561,6 +1581,10 @@ EXPORT_SYMBOL_GPL(bgmac_enet_probe);
|
||||
|
||||
void bgmac_enet_remove(struct bgmac *bgmac)
|
||||
{
|
||||
|
||||
@@ -243,7 +243,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
}
|
||||
--- a/mm/vmstat.c
|
||||
+++ b/mm/vmstat.c
|
||||
@@ -1944,10 +1944,12 @@ void __init init_mm_internals(void)
|
||||
@@ -1946,10 +1946,12 @@ void __init init_mm_internals(void)
|
||||
start_shepherd_timer();
|
||||
#endif
|
||||
#ifdef CONFIG_PROC_FS
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Wed, 21 Feb 2018 13:40:12 +0100
|
||||
Subject: [PATCH] clocksource: mips-gic-timer: fix clocksource counter width
|
||||
|
||||
This code needs to use ffs instead of fls on the mask to determine the
|
||||
shift for reading the GIC_CONFIG_COUNTBITS field.
|
||||
|
||||
Fixes: e07127a077c7 ("clocksource: mips-gic-timer: Use new GIC accessor functions")
|
||||
Cc: Paul Burton <paul.burton@imgtec.com>
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
|
||||
--- a/drivers/clocksource/mips-gic-timer.c
|
||||
+++ b/drivers/clocksource/mips-gic-timer.c
|
||||
@@ -164,7 +164,7 @@ static int __init __gic_clocksource_init
|
||||
|
||||
/* Set clocksource mask. */
|
||||
count_width = read_gic_config() & GIC_CONFIG_COUNTBITS;
|
||||
- count_width >>= __fls(GIC_CONFIG_COUNTBITS);
|
||||
+ count_width >>= __ffs(GIC_CONFIG_COUNTBITS);
|
||||
count_width *= 4;
|
||||
count_width += 32;
|
||||
gic_clocksource.mask = CLOCKSOURCE_MASK(count_width);
|
||||
@@ -1,90 +0,0 @@
|
||||
From patchwork Thu Apr 26 23:28:34 2018
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Subject: [v2] MIPS: c-r4k: fix data corruption related to cache coherence.
|
||||
X-Patchwork-Submitter: NeilBrown <neil@brown.name>
|
||||
X-Patchwork-Id: 19259
|
||||
Message-Id: <87vacdlf8d.fsf@notabene.neil.brown.name>
|
||||
To: James Hogan <jhogan@kernel.org>
|
||||
Cc: Ralf Baechle <ralf@linux-mips.org>,
|
||||
Paul Burton <paul.burton@mips.com>, linux-mips@linux-mips.org,
|
||||
linux-kernel@vger.kernel.org
|
||||
Date: Fri, 27 Apr 2018 09:28:34 +1000
|
||||
From: NeilBrown <neil@brown.name>
|
||||
List-Id: linux-mips <linux-mips.eddie.linux-mips.org>
|
||||
|
||||
When DMA will be performed to a MIPS32 1004K CPS, the
|
||||
L1-cache for the range needs to be flushed and invalidated
|
||||
first.
|
||||
The code currently takes one of two approaches.
|
||||
1/ If the range is less than the size of the dcache, then
|
||||
HIT type requests flush/invalidate cache lines for the
|
||||
particular addresses. HIT-type requests a globalised
|
||||
by the CPS so this is safe on SMP.
|
||||
|
||||
2/ If the range is larger than the size of dcache, then
|
||||
INDEX type requests flush/invalidate the whole cache.
|
||||
INDEX type requests affect the local cache only. CPS
|
||||
does not propagate them in any way. So this invalidation
|
||||
is not safe on SMP CPS systems.
|
||||
|
||||
Data corruption due to '2' can quite easily be demonstrated by
|
||||
repeatedly "echo 3 > /proc/sys/vm/drop_caches" and then sha1sum
|
||||
a file that is several times the size of available memory.
|
||||
Dropping caches means that large contiguous extents (large than
|
||||
dcache) are more likely.
|
||||
|
||||
This was not a problem before Linux-4.8 because option 2 was
|
||||
never used if CONFIG_MIPS_CPS was defined. The commit
|
||||
which removed that apparently didn't appreciate the full
|
||||
consequence of the change.
|
||||
|
||||
We could, in theory, globalize the INDEX based flush by sending an IPI
|
||||
to other cores. These cache invalidation routines can be called with
|
||||
interrupts disabled and synchronous IPI require interrupts to be
|
||||
enabled. Asynchronous IPI may not trigger writeback soon enough.
|
||||
So we cannot use IPI in practice.
|
||||
|
||||
We can already test is IPI would be needed for an INDEX operation
|
||||
with r4k_op_needs_ipi(R4K_INDEX). If this is True then we mustn't try
|
||||
the INDEX approach as we cannot use IPI. If this is False (e.g. when
|
||||
there is only one core and hence one L1 cache) then it is safe to
|
||||
use the INDEX approach without IPI.
|
||||
|
||||
This patch avoids options 2 if r4k_op_needs_ipi(R4K_INDEX), and so
|
||||
eliminates the corruption.
|
||||
|
||||
Fixes: c00ab4896ed5 ("MIPS: Remove cpu_has_safe_index_cacheops")
|
||||
Cc: stable@vger.kernel.org # v4.8+
|
||||
Signed-off-by: NeilBrown <neil@brown.name>
|
||||
---
|
||||
arch/mips/mm/c-r4k.c | 9 ++++++---
|
||||
1 file changed, 6 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/arch/mips/mm/c-r4k.c
|
||||
+++ b/arch/mips/mm/c-r4k.c
|
||||
@@ -851,9 +851,12 @@ static void r4k_dma_cache_wback_inv(unsi
|
||||
/*
|
||||
* Either no secondary cache or the available caches don't have the
|
||||
* subset property so we have to flush the primary caches
|
||||
- * explicitly
|
||||
+ * explicitly.
|
||||
+ * If we would need IPI to perform an INDEX-type operation, then
|
||||
+ * we have to use the HIT-type alternative as IPI cannot be used
|
||||
+ * here due to interrupts possibly being disabled.
|
||||
*/
|
||||
- if (size >= dcache_size) {
|
||||
+ if (!r4k_op_needs_ipi(R4K_INDEX) && size >= dcache_size) {
|
||||
r4k_blast_dcache();
|
||||
} else {
|
||||
R4600_HIT_CACHEOP_WAR_IMPL;
|
||||
@@ -890,7 +893,7 @@ static void r4k_dma_cache_inv(unsigned l
|
||||
return;
|
||||
}
|
||||
|
||||
- if (size >= dcache_size) {
|
||||
+ if (!r4k_op_needs_ipi(R4K_INDEX) && size >= dcache_size) {
|
||||
r4k_blast_dcache();
|
||||
} else {
|
||||
R4600_HIT_CACHEOP_WAR_IMPL;
|
||||
@@ -8,7 +8,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/fs/jffs2/dir.c
|
||||
+++ b/fs/jffs2/dir.c
|
||||
@@ -756,6 +756,24 @@ static int jffs2_mknod (struct inode *di
|
||||
@@ -752,6 +752,24 @@ static int jffs2_mknod (struct inode *di
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
static int jffs2_rename (struct inode *old_dir_i, struct dentry *old_dentry,
|
||||
struct inode *new_dir_i, struct dentry *new_dentry,
|
||||
unsigned int flags)
|
||||
@@ -766,7 +784,7 @@ static int jffs2_rename (struct inode *o
|
||||
@@ -762,7 +780,7 @@ static int jffs2_rename (struct inode *o
|
||||
uint8_t type;
|
||||
uint32_t now;
|
||||
|
||||
@@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
return -EINVAL;
|
||||
|
||||
/* The VFS will check for us and prevent trying to rename a
|
||||
@@ -832,9 +850,14 @@ static int jffs2_rename (struct inode *o
|
||||
@@ -828,9 +846,14 @@ static int jffs2_rename (struct inode *o
|
||||
if (d_is_dir(old_dentry) && !victim_f)
|
||||
inc_nlink(new_dir_i);
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/fs/jffs2/dir.c
|
||||
+++ b/fs/jffs2/dir.c
|
||||
@@ -781,18 +781,31 @@ static int jffs2_rename (struct inode *o
|
||||
@@ -777,18 +777,31 @@ static int jffs2_rename (struct inode *o
|
||||
int ret;
|
||||
struct jffs2_sb_info *c = JFFS2_SB_INFO(old_dir_i->i_sb);
|
||||
struct jffs2_inode_info *victim_f = NULL;
|
||||
@@ -40,7 +40,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
victim_f = JFFS2_INODE_INFO(d_inode(new_dentry));
|
||||
if (d_is_dir(new_dentry)) {
|
||||
struct jffs2_full_dirent *fd;
|
||||
@@ -827,7 +840,7 @@ static int jffs2_rename (struct inode *o
|
||||
@@ -823,7 +836,7 @@ static int jffs2_rename (struct inode *o
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@@ -49,7 +49,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
/* There was a victim. Kill it off nicely */
|
||||
if (d_is_dir(new_dentry))
|
||||
clear_nlink(d_inode(new_dentry));
|
||||
@@ -853,6 +866,12 @@ static int jffs2_rename (struct inode *o
|
||||
@@ -849,6 +862,12 @@ static int jffs2_rename (struct inode *o
|
||||
if (flags & RENAME_WHITEOUT)
|
||||
/* Replace with whiteout */
|
||||
ret = jffs2_whiteout(old_dir_i, old_dentry);
|
||||
@@ -62,7 +62,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
else
|
||||
/* Unlink the original */
|
||||
ret = jffs2_do_unlink(c, JFFS2_INODE_INFO(old_dir_i),
|
||||
@@ -884,7 +903,7 @@ static int jffs2_rename (struct inode *o
|
||||
@@ -880,7 +899,7 @@ static int jffs2_rename (struct inode *o
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
From 743989254ea9f132517806d8893ca9b6cf9dc86b Mon Sep 17 00:00:00 2001
|
||||
From: Pawel Dembicki <paweldembicki@gmail.com>
|
||||
Date: Sat, 24 Mar 2018 22:08:14 +0100
|
||||
Subject: [PATCH] net: qmi_wwan: add BroadMobi BM806U 2020:2033
|
||||
|
||||
BroadMobi BM806U is an Qualcomm MDM9225 based 3G/4G modem.
|
||||
Tested hardware BM806U is mounted on D-Link DWR-921-C3 router.
|
||||
The USB id is added to qmi_wwan.c to allow QMI communication with
|
||||
the BM806U.
|
||||
|
||||
Tested on 4.14 kernel and OpenWRT.
|
||||
|
||||
Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
drivers/net/usb/qmi_wwan.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/drivers/net/usb/qmi_wwan.c
|
||||
+++ b/drivers/net/usb/qmi_wwan.c
|
||||
@@ -1184,6 +1184,7 @@ static const struct usb_device_id produc
|
||||
{QMI_FIXED_INTF(0x19d2, 0x2002, 4)}, /* ZTE (Vodafone) K3765-Z */
|
||||
{QMI_FIXED_INTF(0x2001, 0x7e19, 4)}, /* D-Link DWM-221 B1 */
|
||||
{QMI_FIXED_INTF(0x2001, 0x7e35, 4)}, /* D-Link DWM-222 */
|
||||
+ {QMI_FIXED_INTF(0x2020, 0x2033, 4)}, /* BroadMobi BM806U */
|
||||
{QMI_FIXED_INTF(0x0f3d, 0x68a2, 8)}, /* Sierra Wireless MC7700 */
|
||||
{QMI_FIXED_INTF(0x114f, 0x68a2, 8)}, /* Sierra Wireless MC7750 */
|
||||
{QMI_FIXED_INTF(0x1199, 0x68a2, 8)}, /* Sierra Wireless MC7710 in QMI mode */
|
||||
@@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -650,12 +650,12 @@ KBUILD_CFLAGS += $(call cc-disable-warni
|
||||
@@ -645,12 +645,12 @@ KBUILD_CFLAGS += $(call cc-disable-warni
|
||||
|
||||
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
|
||||
KBUILD_CFLAGS += $(call cc-option,-Oz,-Os)
|
||||
|
||||
@@ -413,7 +413,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
}
|
||||
|
||||
static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[],
|
||||
@@ -2060,6 +2271,12 @@ static void ip6_tnl_dellink(struct net_d
|
||||
@@ -2064,6 +2275,12 @@ static void ip6_tnl_dellink(struct net_d
|
||||
|
||||
static size_t ip6_tnl_get_size(const struct net_device *dev)
|
||||
{
|
||||
@@ -426,7 +426,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
return
|
||||
/* IFLA_IPTUN_LINK */
|
||||
nla_total_size(4) +
|
||||
@@ -2089,6 +2306,24 @@ static size_t ip6_tnl_get_size(const str
|
||||
@@ -2093,6 +2310,24 @@ static size_t ip6_tnl_get_size(const str
|
||||
nla_total_size(0) +
|
||||
/* IFLA_IPTUN_FWMARK */
|
||||
nla_total_size(4) +
|
||||
@@ -451,7 +451,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
0;
|
||||
}
|
||||
|
||||
@@ -2096,6 +2331,9 @@ static int ip6_tnl_fill_info(struct sk_b
|
||||
@@ -2100,6 +2335,9 @@ static int ip6_tnl_fill_info(struct sk_b
|
||||
{
|
||||
struct ip6_tnl *tunnel = netdev_priv(dev);
|
||||
struct __ip6_tnl_parm *parm = &tunnel->parms;
|
||||
@@ -461,7 +461,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) ||
|
||||
@@ -2105,9 +2343,27 @@ static int ip6_tnl_fill_info(struct sk_b
|
||||
@@ -2109,9 +2347,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) ||
|
||||
@@ -490,7 +490,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) ||
|
||||
@@ -2147,6 +2403,7 @@ static const struct nla_policy ip6_tnl_p
|
||||
@@ -2151,6 +2407,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 },
|
||||
|
||||
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/drivers/usb/host/pci-quirks.c
|
||||
+++ b/drivers/usb/host/pci-quirks.c
|
||||
@@ -107,6 +107,8 @@ struct amd_chipset_type {
|
||||
@@ -124,6 +124,8 @@ struct amd_chipset_type {
|
||||
u8 rev;
|
||||
};
|
||||
|
||||
@@ -19,9 +19,9 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
static struct amd_chipset_info {
|
||||
struct pci_dev *nb_dev;
|
||||
struct pci_dev *smbus_dev;
|
||||
@@ -511,6 +513,10 @@ void usb_amd_dev_put(void)
|
||||
@@ -620,6 +622,10 @@ bool usb_amd_pt_check_port(struct device
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(usb_amd_dev_put);
|
||||
EXPORT_SYMBOL_GPL(usb_amd_pt_check_port);
|
||||
|
||||
+#endif /* CONFIG_PCI_DISABLE_COMMON_QUIRKS */
|
||||
+
|
||||
@@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
/*
|
||||
* Make sure the controller is completely inactive, unable to
|
||||
* generate interrupts or do DMA.
|
||||
@@ -590,8 +596,17 @@ reset_needed:
|
||||
@@ -699,8 +705,17 @@ reset_needed:
|
||||
uhci_reset_hc(pdev, base);
|
||||
return 1;
|
||||
}
|
||||
@@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
static inline int io_type_enabled(struct pci_dev *pdev, unsigned int mask)
|
||||
{
|
||||
u16 cmd;
|
||||
@@ -1178,3 +1193,4 @@ bool usb_xhci_needs_pci_reset(struct pci
|
||||
@@ -1287,3 +1302,4 @@ bool usb_xhci_needs_pci_reset(struct pci
|
||||
return false;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(usb_xhci_needs_pci_reset);
|
||||
@@ -65,8 +65,8 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
int usb_amd_find_chipset_info(void);
|
||||
int usb_hcd_amd_remote_wakeup_quirk(struct pci_dev *pdev);
|
||||
bool usb_amd_hang_symptom_quirk(void);
|
||||
@@ -19,12 +22,29 @@ void sb800_prefetch(struct device *dev,
|
||||
bool usb_xhci_needs_pci_reset(struct pci_dev *pdev);
|
||||
@@ -20,6 +23,18 @@ bool usb_xhci_needs_pci_reset(struct pci
|
||||
bool usb_amd_pt_check_port(struct device *device, int port);
|
||||
#else
|
||||
struct pci_dev;
|
||||
+static inline int usb_amd_find_chipset_info(void)
|
||||
@@ -84,9 +84,10 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
static inline void usb_amd_quirk_pll_disable(void) {}
|
||||
static inline void usb_amd_quirk_pll_enable(void) {}
|
||||
static inline void usb_asmedia_modifyflowcontrol(struct pci_dev *pdev) {}
|
||||
static inline void usb_amd_dev_put(void) {}
|
||||
static inline void usb_disable_xhci_ports(struct pci_dev *xhci_pdev) {}
|
||||
static inline void sb800_prefetch(struct device *dev, int on) {}
|
||||
@@ -30,6 +45,11 @@ static inline bool usb_amd_pt_check_port
|
||||
{
|
||||
return false;
|
||||
}
|
||||
+static inline void usb_enable_intel_xhci_ports(struct pci_dev *xhci_pdev) {}
|
||||
+static inline bool usb_xhci_needs_pci_reset(struct pci_dev *pdev)
|
||||
+{
|
||||
|
||||
@@ -65,7 +65,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
|
||||
@@ -5114,6 +5127,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
|
||||
@@ -5120,6 +5133,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
|
||||
if (tag < 0)
|
||||
return NULL;
|
||||
}
|
||||
@@ -75,7 +75,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
|
||||
qc = __ata_qc_from_tag(ap, tag);
|
||||
qc->tag = tag;
|
||||
@@ -6015,6 +6031,9 @@ struct ata_port *ata_port_alloc(struct a
|
||||
@@ -6021,6 +6037,9 @@ struct ata_port *ata_port_alloc(struct a
|
||||
ap->stats.unhandled_irq = 1;
|
||||
ap->stats.idle_irq = 1;
|
||||
#endif
|
||||
@@ -85,7 +85,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
ata_sff_port_init(ap);
|
||||
|
||||
return ap;
|
||||
@@ -6036,6 +6055,12 @@ static void ata_host_release(struct devi
|
||||
@@ -6042,6 +6061,12 @@ static void ata_host_release(struct devi
|
||||
|
||||
kfree(ap->pmp_link);
|
||||
kfree(ap->slave_link);
|
||||
@@ -98,7 +98,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
kfree(ap);
|
||||
host->ports[i] = NULL;
|
||||
}
|
||||
@@ -6482,7 +6507,23 @@ int ata_host_register(struct ata_host *h
|
||||
@@ -6488,7 +6513,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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user