Refreshed all patches.
Altered patches:
- 306-v4.16-netfilter-remove-saveroute-indirection-in-struct-nf_.patch
Remove upstreamed:
- 100-powerpc-4xx-uic-clear-pending-interrupt-after-irq-ty.patch
- 088-0002-i2c-qup-fixed-releasing-dma-without-flush-operation.patch
- 500-arm64-dts-marvell-Fix-A37xx-UART0-register-size.patch
Fixes:
- CVE-2019-13648
- CVE-2019-10207
Compile-tested on: cns3xxx
Runtime-tested on: cns3xxx
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
endif
LINUX_VERSION-4.9 = .187
-LINUX_VERSION-4.14 = .134
+LINUX_VERSION-4.14 = .136
LINUX_VERSION-4.19 = .62
LINUX_KERNEL_HASH-4.9.187 = 014bcd042cd25e073539c17bd34c616a936b19787a9c6a4c35d36a4f28afd1c7
-LINUX_KERNEL_HASH-4.14.134 = 0b21e7b5effd92303a551b5be2380c9703d6fb87cfe5189fe0d795cc73903d2d
+LINUX_KERNEL_HASH-4.14.136 = 268dff959216e59437a8f9db7c2cea3a1ada8a4c72232dc5b7f83ecca12bdf70
LINUX_KERNEL_HASH-4.19.62 = 07be647189ced7eb8ba5ee769906e67919975772184842cc517f609df50cdadc
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
+++ /dev/null
-From 9b84ad676e248a3e3c81db7f5d39e1739b3780aa Mon Sep 17 00:00:00 2001
-From: Christian Lamparter <chunkeey@gmail.com>
-Date: Sat, 15 Jun 2019 16:35:26 +0200
-Subject: [PATCH] powerpc/4xx/uic: clear pending interrupt after irq type/pol
- change
-
-When testing out gpio-keys with a button, a spurious
-interrupt (and therefore a key press or release event)
-gets triggered as soon as the driver enables the irq
-line for the first time.
-
-This patch clears any potential bogus generated interrupt
-that was caused by the switching of the associated irq's
-type and polarity.
-
-Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
----
- arch/powerpc/platforms/4xx/uic.c | 1 +
- 1 file changed, 1 insertion(+)
-
---- a/arch/powerpc/platforms/4xx/uic.c
-+++ b/arch/powerpc/platforms/4xx/uic.c
-@@ -158,6 +158,7 @@ static int uic_set_irq_type(struct irq_d
-
- mtdcr(uic->dcrbase + UIC_PR, pr);
- mtdcr(uic->dcrbase + UIC_TR, tr);
-+ mtdcr(uic->dcrbase + UIC_SR, ~mask);
-
- raw_spin_unlock_irqrestore(&uic->lock, flags);
-
#define INADDR_ANY ((unsigned long int) 0x00000000)
--- a/net/ipv4/devinet.c
+++ b/net/ipv4/devinet.c
-@@ -921,7 +921,7 @@ static int inet_abc_len(__be32 addr)
+@@ -929,7 +929,7 @@ static int inet_abc_len(__be32 addr)
{
int rc = -1; /* Something else, probably a multicast. */
rc = 0;
else {
__u32 haddr = ntohl(addr);
-@@ -932,6 +932,8 @@ static int inet_abc_len(__be32 addr)
+@@ -940,6 +940,8 @@ static int inet_abc_len(__be32 addr)
rc = 16;
else if (IN_CLASSC(haddr))
rc = 24;
net->nf.proc_netfilter = proc_net_mkdir(net, "netfilter",
--- a/net/netfilter/nf_queue.c
+++ b/net/netfilter/nf_queue.c
-@@ -202,6 +202,23 @@ repeat:
+@@ -206,6 +206,23 @@ repeat:
return NF_ACCEPT;
}
/* Caller must hold rcu read-side lock */
void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict)
{
-@@ -217,12 +234,12 @@ void nf_reinject(struct nf_queue_entry *
+@@ -221,12 +238,12 @@ void nf_reinject(struct nf_queue_entry *
net = entry->state.net;
pf = entry->state.pf;
#endif
--- a/net/netfilter/nf_queue.c
+++ b/net/netfilter/nf_queue.c
-@@ -205,8 +205,10 @@ repeat:
+@@ -209,8 +209,10 @@ repeat:
static struct nf_hook_entries *nf_hook_entries_head(const struct net *net, u8 pf, u8 hooknum)
{
switch (pf) {
static int __nf_queue(struct sk_buff *skb, const struct nf_hook_state *state,
const struct nf_hook_entries *entries,
unsigned int index, unsigned int queuenum)
-@@ -144,7 +175,16 @@ static int __nf_queue(struct sk_buff *sk
+@@ -148,7 +179,16 @@ static int __nf_queue(struct sk_buff *sk
+ };
nf_queue_entry_get_refs(entry);
- skb_dst_force(skb);
- afinfo->saveroute(skb, entry);
+
+ switch (entry->state.pf) {
--- a/net/netfilter/nf_queue.c
+++ b/net/netfilter/nf_queue.c
-@@ -267,7 +267,6 @@ void nf_reinject(struct nf_queue_entry *
+@@ -271,7 +271,6 @@ void nf_reinject(struct nf_queue_entry *
const struct nf_hook_entry *hook_entry;
const struct nf_hook_entries *hooks;
struct sk_buff *skb = entry->skb;
const struct net *net;
unsigned int i;
int err;
-@@ -294,8 +293,7 @@ void nf_reinject(struct nf_queue_entry *
+@@ -298,8 +297,7 @@ void nf_reinject(struct nf_queue_entry *
verdict = nf_hook_entry_hookfn(hook_entry, skb, &entry->state);
if (verdict == NF_ACCEPT) {
if (!entry) {
status = -ENOMEM;
goto err;
-@@ -170,7 +180,7 @@ static int __nf_queue(struct sk_buff *sk
+@@ -175,7 +185,7 @@ static int __nf_queue(struct sk_buff *sk
.skb = skb,
.state = *state,
.hook_index = index,
--- a/Makefile
+++ b/Makefile
-@@ -1239,7 +1239,6 @@ all: modules
+@@ -1240,7 +1240,6 @@ all: modules
PHONY += modules
modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
@$(kecho) ' Building modules, stage 2.';
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
-@@ -1268,7 +1267,6 @@ _modinst_:
+@@ -1269,7 +1268,6 @@ _modinst_:
rm -f $(MODLIB)/build ; \
ln -s $(CURDIR) $(MODLIB)/build ; \
fi
# 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
+@@ -788,11 +793,6 @@ ifdef CONFIG_DEBUG_SECTION_MISMATCH
KBUILD_CFLAGS += $(call cc-option, -fno-inline-functions-called-once)
endif
#include <linux/mutex.h>
#include <linux/err.h>
#include <linux/of.h>
-@@ -2926,3 +2927,5 @@ static int __init regmap_initcall(void)
+@@ -2928,3 +2929,5 @@ static int __init regmap_initcall(void)
return 0;
}
postcore_initcall(regmap_initcall);
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
-@@ -1455,6 +1455,9 @@ int genphy_update_link(struct phy_device
+@@ -1461,6 +1461,9 @@ int genphy_update_link(struct phy_device
{
int status;
if (!root_irq_dir)
--- a/kernel/time/timer_list.c
+++ b/kernel/time/timer_list.c
-@@ -389,6 +389,8 @@ static int __init init_timer_list_procfs
+@@ -390,6 +390,8 @@ static int __init init_timer_list_procfs
{
struct proc_dir_entry *pe;
#include <uapi/linux/dma-buf.h>
-@@ -1205,4 +1206,5 @@ static void __exit dma_buf_deinit(void)
+@@ -1206,4 +1207,5 @@ static void __exit dma_buf_deinit(void)
{
dma_buf_uninit_debugfs();
}
--- a/Makefile
+++ b/Makefile
-@@ -654,12 +654,12 @@ KBUILD_CFLAGS += $(call cc-disable-warni
+@@ -655,12 +655,12 @@ KBUILD_CFLAGS += $(call cc-disable-warni
KBUILD_CFLAGS += $(call cc-disable-warning, attribute-alias)
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
static int absolute_percpu = 0;
static char symbol_prefix_char = '\0';
static int base_relative = 0;
-@@ -458,6 +459,9 @@ static void write_src(void)
+@@ -461,6 +462,9 @@ static void write_src(void)
free(markers);
output_label("kallsyms_token_table");
off = 0;
for (i = 0; i < 256; i++) {
-@@ -516,6 +520,9 @@ static void *find_token(unsigned char *s
+@@ -519,6 +523,9 @@ static void *find_token(unsigned char *s
{
int i;
for (i = 0; i < len - 1; i++) {
if (str[i] == token[0] && str[i+1] == token[1])
return &str[i];
-@@ -588,6 +595,9 @@ static void optimize_result(void)
+@@ -591,6 +598,9 @@ static void optimize_result(void)
{
int i, best;
/* using the '\0' symbol last allows compress_symbols to use standard
* fast string functions */
for (i = 255; i >= 0; i--) {
-@@ -776,6 +786,8 @@ int main(int argc, char **argv)
+@@ -779,6 +789,8 @@ int main(int argc, char **argv)
symbol_prefix_char = *p;
} else if (strcmp(argv[i], "--base-relative") == 0)
base_relative = 1;
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
-@@ -1099,6 +1099,9 @@ void phy_detach(struct phy_device *phyde
+@@ -1105,6 +1105,9 @@ void phy_detach(struct phy_device *phyde
struct module *ndev_owner = dev->dev.parent->driver->owner;
struct mii_bus *bus;
static struct amd_chipset_info {
struct pci_dev *nb_dev;
struct pci_dev *smbus_dev;
-@@ -620,6 +622,10 @@ bool usb_amd_pt_check_port(struct device
+@@ -627,6 +629,10 @@ bool usb_amd_pt_check_port(struct device
}
EXPORT_SYMBOL_GPL(usb_amd_pt_check_port);
/*
* Make sure the controller is completely inactive, unable to
* generate interrupts or do DMA.
-@@ -699,8 +705,17 @@ reset_needed:
+@@ -706,8 +712,17 @@ reset_needed:
uhci_reset_hc(pdev, base);
return 1;
}
static inline int io_type_enabled(struct pci_dev *pdev, unsigned int mask)
{
u16 cmd;
-@@ -1287,3 +1302,4 @@ bool usb_xhci_needs_pci_reset(struct pci
+@@ -1294,3 +1309,4 @@ bool usb_xhci_needs_pci_reset(struct pci
return false;
}
EXPORT_SYMBOL_GPL(usb_xhci_needs_pci_reset);
+++ /dev/null
-From 7239872fb3400b21a8f5547257f9f86455867bd6 Mon Sep 17 00:00:00 2001
-From: Abhishek Sahu <absahu@codeaurora.org>
-Date: Mon, 12 Mar 2018 18:44:51 +0530
-Subject: [PATCH 02/13] i2c: qup: fixed releasing dma without flush operation
- completion
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The QUP BSLP BAM generates the following error sometimes if the
-current I2C DMA transfer fails and the flush operation has been
-scheduled
-
- “bam-dma-engine 7884000.dma: Cannot free busy channel”
-
-If any I2C error comes during BAM DMA transfer, then the QUP I2C
-interrupt will be generated and the flush operation will be
-carried out to make I2C consume all scheduled DMA transfer.
-Currently, the same completion structure is being used for BAM
-transfer which has already completed without reinit. It will make
-flush operation wait_for_completion_timeout completed immediately
-and will proceed for freeing the DMA resources where the
-descriptors are still in process.
-
-Signed-off-by: Abhishek Sahu <absahu@codeaurora.org>
-Acked-by: Sricharan R <sricharan@codeaurora.org>
-Reviewed-by: Austin Christ <austinwc@codeaurora.org>
-Reviewed-by: Andy Gross <andy.gross@linaro.org>
-Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
----
- drivers/i2c/busses/i2c-qup.c | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/drivers/i2c/busses/i2c-qup.c
-+++ b/drivers/i2c/busses/i2c-qup.c
-@@ -835,6 +835,8 @@ static int qup_i2c_bam_do_xfer(struct qu
- }
-
- if (ret || qup->bus_err || qup->qup_err) {
-+ reinit_completion(&qup->xfer);
-+
- if (qup_i2c_change_state(qup, QUP_RUN_STATE)) {
- dev_err(qup->dev, "change to run state timed out");
- goto desc_err;
obj-$(CONFIG_PCIE_ARTPEC6) += pcie-artpec6.o
--- a/drivers/pci/dwc/pci-dra7xx.c
+++ b/drivers/pci/dwc/pci-dra7xx.c
-@@ -337,15 +337,6 @@ static irqreturn_t dra7xx_pcie_irq_handl
+@@ -338,15 +338,6 @@ static irqreturn_t dra7xx_pcie_irq_handl
return IRQ_HANDLED;
}
/* Parse and map our Configuration Space windows */
--- a/drivers/pci/host/pcie-xilinx-nwl.c
+++ b/drivers/pci/host/pcie-xilinx-nwl.c
-@@ -779,16 +779,7 @@ static int nwl_pcie_parse_dt(struct nwl_
+@@ -778,16 +778,7 @@ static int nwl_pcie_parse_dt(struct nwl_
struct platform_device *pdev)
{
struct device *dev = pcie->dev;
return 0;
}
-@@ -987,9 +1080,6 @@ static void init_aead_job(struct aead_re
+@@ -989,9 +1082,6 @@ static void init_aead_job(struct aead_re
append_seq_out_ptr(desc, dst_dma,
req->assoclen + req->cryptlen - authsize,
out_options);
}
static void init_gcm_job(struct aead_request *req,
-@@ -1004,6 +1094,7 @@ static void init_gcm_job(struct aead_req
+@@ -1006,6 +1096,7 @@ static void init_gcm_job(struct aead_req
unsigned int last;
init_aead_job(req, edesc, all_contig, encrypt);
/* BUG This should not be specific to generic GCM. */
last = 0;
-@@ -1021,6 +1112,40 @@ static void init_gcm_job(struct aead_req
+@@ -1023,6 +1114,40 @@ static void init_gcm_job(struct aead_req
/* End of blank commands */
}
static void init_authenc_job(struct aead_request *req,
struct aead_edesc *edesc,
bool all_contig, bool encrypt)
-@@ -1030,6 +1155,7 @@ static void init_authenc_job(struct aead
+@@ -1032,6 +1157,7 @@ static void init_authenc_job(struct aead
struct caam_aead_alg, aead);
unsigned int ivsize = crypto_aead_ivsize(aead);
struct caam_ctx *ctx = crypto_aead_ctx(aead);
const bool ctr_mode = ((ctx->cdata.algtype & OP_ALG_AAI_MASK) ==
OP_ALG_AAI_CTR_MOD128);
const bool is_rfc3686 = alg->caam.rfc3686;
-@@ -1053,6 +1179,15 @@ static void init_authenc_job(struct aead
+@@ -1055,6 +1181,15 @@ static void init_authenc_job(struct aead
init_aead_job(req, edesc, all_contig, encrypt);
if (ivsize && ((is_rfc3686 && encrypt) || !alg->caam.geniv))
append_load_as_imm(desc, req->iv, ivsize,
LDST_CLASS_1_CCB |
-@@ -1225,8 +1360,16 @@ static struct aead_edesc *aead_edesc_all
+@@ -1227,8 +1362,16 @@ static struct aead_edesc *aead_edesc_all
}
}
sec4_sg_bytes = sec4_sg_len * sizeof(struct sec4_sg_entry);
/* allocate space for base edesc and hw desc commands, link tables */
-@@ -1307,6 +1450,72 @@ static int gcm_encrypt(struct aead_reque
+@@ -1309,6 +1452,72 @@ static int gcm_encrypt(struct aead_reque
return ret;
}
static int ipsec_gcm_encrypt(struct aead_request *req)
{
if (req->assoclen < 8)
-@@ -1494,7 +1703,25 @@ static struct ablkcipher_edesc *ablkciph
+@@ -1496,7 +1705,25 @@ static struct ablkcipher_edesc *ablkciph
sec4_sg_ents = 1 + mapped_src_nents;
dst_sg_idx = sec4_sg_ents;
sec4_sg_bytes = sec4_sg_ents * sizeof(struct sec4_sg_entry);
/*
-@@ -3196,6 +3423,50 @@ static struct caam_aead_alg driver_aeads
+@@ -3199,6 +3426,50 @@ static struct caam_aead_alg driver_aeads
.geniv = true,
},
},
};
struct caam_crypto_alg {
-@@ -3204,9 +3475,11 @@ struct caam_crypto_alg {
+@@ -3207,9 +3478,11 @@ struct caam_crypto_alg {
struct caam_alg_entry caam;
};
ctx->jrdev = caam_jr_alloc();
if (IS_ERR(ctx->jrdev)) {
-@@ -3214,10 +3487,16 @@ static int caam_init_common(struct caam_
+@@ -3217,10 +3490,16 @@ static int caam_init_common(struct caam_
return PTR_ERR(ctx->jrdev);
}
if (dma_mapping_error(ctx->jrdev, dma_addr)) {
dev_err(ctx->jrdev, "unable to map key, shared descriptors\n");
caam_jr_free(ctx->jrdev);
-@@ -3245,7 +3524,7 @@ static int caam_cra_init(struct crypto_t
+@@ -3248,7 +3527,7 @@ static int caam_cra_init(struct crypto_t
container_of(alg, struct caam_crypto_alg, crypto_alg);
struct caam_ctx *ctx = crypto_tfm_ctx(tfm);
}
static int caam_aead_init(struct crypto_aead *tfm)
-@@ -3255,14 +3534,15 @@ static int caam_aead_init(struct crypto_
+@@ -3258,14 +3537,15 @@ static int caam_aead_init(struct crypto_
container_of(alg, struct caam_aead_alg, aead);
struct caam_ctx *ctx = crypto_aead_ctx(tfm);
caam_jr_free(ctx->jrdev);
}
-@@ -3276,7 +3556,7 @@ static void caam_aead_exit(struct crypto
+@@ -3279,7 +3559,7 @@ static void caam_aead_exit(struct crypto
caam_exit_common(crypto_aead_ctx(tfm));
}
{
struct caam_crypto_alg *t_alg, *n;
-@@ -3355,56 +3635,52 @@ static void caam_aead_alg_init(struct ca
+@@ -3358,56 +3638,52 @@ static void caam_aead_alg_init(struct ca
alg->exit = caam_aead_exit;
}
md_limit = SHA256_DIGEST_SIZE;
for (i = 0; i < ARRAY_SIZE(driver_algs); i++) {
-@@ -3426,10 +3702,10 @@ static int __init caam_algapi_init(void)
+@@ -3429,10 +3705,10 @@ static int __init caam_algapi_init(void)
* Check support for AES modes not available
* on LP devices.
*/
t_alg = caam_alg_alloc(alg);
if (IS_ERR(t_alg)) {
-@@ -3468,21 +3744,28 @@ static int __init caam_algapi_init(void)
+@@ -3471,21 +3747,28 @@ static int __init caam_algapi_init(void)
if (!aes_inst && (c1_alg_sel == OP_ALG_ALGSEL_AES))
continue;
caam_aead_alg_init(t_alg);
-@@ -3502,10 +3785,3 @@ static int __init caam_algapi_init(void)
+@@ -3505,10 +3788,3 @@ static int __init caam_algapi_init(void)
return err;
}
#endif /* __SG_SW_QM_H */
--- a/drivers/crypto/talitos.c
+++ b/drivers/crypto/talitos.c
-@@ -1241,6 +1241,14 @@ static int ipsec_esp(struct talitos_edes
+@@ -1247,6 +1247,14 @@ static int ipsec_esp(struct talitos_edes
ret = talitos_sg_map_ext(dev, areq->src, cryptlen, edesc, &desc->ptr[4],
sg_count, areq->assoclen, tbl_off, elen);
static struct kset *iommu_group_kset;
static DEFINE_IDA(iommu_group_ida);
-@@ -987,6 +988,26 @@ struct iommu_group *pci_device_group(str
+@@ -989,6 +990,26 @@ struct iommu_group *pci_device_group(str
return iommu_group_alloc();
}
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
-@@ -1937,7 +1937,7 @@ static struct phy_driver genphy_driver =
+@@ -1943,7 +1943,7 @@ static struct phy_driver genphy_driver =
.config_init = genphy_config_init,
.features = PHY_GBIT_FEATURES | SUPPORTED_MII |
SUPPORTED_AUI | SUPPORTED_FIBRE |
--- a/drivers/net/phy/sfp.c
+++ b/drivers/net/phy/sfp.c
-@@ -264,6 +264,184 @@ static unsigned int sfp_check(void *buf,
+@@ -265,6 +265,184 @@ static unsigned int sfp_check(void *buf,
return check;
}
/* Helpers */
static void sfp_module_tx_disable(struct sfp *sfp)
{
-@@ -432,6 +610,7 @@ static int sfp_sm_mod_probe(struct sfp *
+@@ -433,6 +611,7 @@ static int sfp_sm_mod_probe(struct sfp *
char sn[17];
char date[9];
char rev[5];
u8 check;
int err;
-@@ -475,10 +654,83 @@ static int sfp_sm_mod_probe(struct sfp *
+@@ -476,10 +655,83 @@ static int sfp_sm_mod_probe(struct sfp *
rev[4] = '\0';
memcpy(sn, sfp->id.ext.vendor_sn, 16);
sn[16] = '\0';
--- a/drivers/net/phy/sfp.c
+++ b/drivers/net/phy/sfp.c
-@@ -1164,6 +1164,7 @@ static int sfp_remove(struct platform_de
+@@ -1168,6 +1168,7 @@ static int sfp_remove(struct platform_de
static const struct of_device_id sfp_of_match[] = {
{ .compatible = "sff,sfp", },
--- a/drivers/net/phy/sfp.c
+++ b/drivers/net/phy/sfp.c
-@@ -505,7 +505,7 @@ static void sfp_sm_phy_detach(struct sfp
+@@ -506,7 +506,7 @@ static void sfp_sm_phy_detach(struct sfp
sfp->mod_phy = NULL;
}
{
struct phy_device *phy;
int err;
-@@ -515,11 +515,11 @@ static void sfp_sm_probe_phy(struct sfp
+@@ -516,11 +516,11 @@ static void sfp_sm_probe_phy(struct sfp
phy = mdiobus_scan(sfp->i2c_mii, SFP_PHY_ADDR);
if (phy == ERR_PTR(-ENODEV)) {
dev_info(sfp->dev, "no PHY detected\n");
}
err = sfp_add_phy(sfp->sfp_bus, phy);
-@@ -527,11 +527,13 @@ static void sfp_sm_probe_phy(struct sfp
+@@ -528,11 +528,13 @@ static void sfp_sm_probe_phy(struct sfp
phy_device_remove(phy);
phy_device_free(phy);
dev_err(sfp->dev, "sfp_add_phy failed: %d\n", err);
}
static void sfp_sm_link_up(struct sfp *sfp)
-@@ -577,14 +579,9 @@ static void sfp_sm_fault(struct sfp *sfp
+@@ -578,14 +580,9 @@ static void sfp_sm_fault(struct sfp *sfp
static void sfp_sm_mod_init(struct sfp *sfp)
{
/* Setting the serdes link mode is guesswork: there's no
* field in the EEPROM which indicates what mode should
-@@ -598,7 +595,22 @@ static void sfp_sm_mod_init(struct sfp *
+@@ -599,7 +596,22 @@ static void sfp_sm_mod_init(struct sfp *
if (sfp->id.base.e1000_base_t ||
sfp->id.base.e100_base_lx ||
sfp->id.base.e100_base_fx)
+++ /dev/null
-From c737abc193d16e62e23e2fb585b8b7398ab380d8 Mon Sep 17 00:00:00 2001
-From: allen yan <yanwei@marvell.com>
-Date: Thu, 7 Sep 2017 15:04:53 +0200
-Subject: arm64: dts: marvell: Fix A37xx UART0 register size
-
-Armada-37xx UART0 registers are 0x200 bytes wide. Right next to them are
-the UART1 registers that should not be declared in this node.
-
-Update the example in DT bindings document accordingly.
-
-Signed-off-by: allen yan <yanwei@marvell.com>
-Signed-off-by: Miquel Raynal <miquel.raynal@free-electrons.com>
-Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
----
- Documentation/devicetree/bindings/serial/mvebu-uart.txt | 2 +-
- arch/arm64/boot/dts/marvell/armada-37xx.dtsi | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
---- a/Documentation/devicetree/bindings/serial/mvebu-uart.txt
-+++ b/Documentation/devicetree/bindings/serial/mvebu-uart.txt
-@@ -8,6 +8,6 @@ Required properties:
- Example:
- serial@12000 {
- compatible = "marvell,armada-3700-uart";
-- reg = <0x12000 0x400>;
-+ reg = <0x12000 0x200>;
- interrupts = <43>;
- };
---- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
-+++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
-@@ -134,7 +134,7 @@
-
- uart0: serial@12000 {
- compatible = "marvell,armada-3700-uart";
-- reg = <0x12000 0x400>;
-+ reg = <0x12000 0x200>;
- interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
- status = "disabled";
- };