The change to use dma_set_mask_and_coherent() incorrectly made a second
call with the 32 bit DMA mask value when the call with the 64 bit DMA
mask value succeeded. This resulted in FC connections failing due
to corrupted data buffers, and various other SCSI/FCP I/O errors.
Fixes: a69b080025ea ("scsi: bfa: use dma_set_mask_and_coherent")
Cc: <stable(a)vger.kernel.org>
Suggested-by: Ewan D. Milne <emilne(a)redhat.com>
Signed-off-by: Hannes Reinecke <hare(a)suse.com>
---
drivers/scsi/bfa/bfad.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/drivers/scsi/bfa/bfad.c b/drivers/scsi/bfa/bfad.c
index 42a0caf6740d..2ffbe36f5860 100644
--- a/drivers/scsi/bfa/bfad.c
+++ b/drivers/scsi/bfa/bfad.c
@@ -727,7 +727,7 @@ bfad_init_timer(struct bfad_s *bfad)
int
bfad_pci_init(struct pci_dev *pdev, struct bfad_s *bfad)
{
- int rc = -ENODEV;
+ int rc;
if (pci_enable_device(pdev)) {
printk(KERN_ERR "pci_enable_device fail %p\n", pdev);
@@ -739,11 +739,15 @@ bfad_pci_init(struct pci_dev *pdev, struct bfad_s *bfad)
pci_set_master(pdev);
- if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64)) ||
- dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32))) {
+ rc = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
+ if (rc)
+ rc = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
+
+ if (rc) {
printk(KERN_ERR "dma_set_mask_and_coherent fail %p\n", pdev);
goto out_release_region;
}
+ rc = -ENODEV;
/* Enable PCIE Advanced Error Recovery (AER) if kernel supports */
pci_enable_pcie_error_reporting(pdev);
--
2.16.4
It seemed odd to say "since 4.17" in a 4.4 kernel. Consider
rewording the reference to indicate where in the stable series
it was introduced as well as where it originated.
Signed-off-by: Mark Rustad <mrustad(a)gmail.com>
---
Does this brief elaboration add useful information? It seems to
me that someone using a particular series of stable kernels would
find this information to be helpful or at least potentially less
confusing to a non-developer.
---
Documentation/networking/ip-sysctl.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt
index 7c229f59016f..2fb35658d151 100644
--- a/Documentation/networking/ip-sysctl.txt
+++ b/Documentation/networking/ip-sysctl.txt
@@ -116,7 +116,7 @@ ipfrag_high_thresh - LONG INTEGER
Maximum memory used to reassemble IP fragments.
ipfrag_low_thresh - LONG INTEGER
- (Obsolete since linux-4.17)
+ (Obsolete since linux-4.4.174, backported from linux-4.17)
Maximum memory used to reassemble IP fragments before the kernel
begins to remove incomplete fragment queues to free up resources.
The kernel still accepts new fragments for defragmentation.
Hi Greg,
This is clean cherry-pick from upstream 4.16 for CVE 2018-1000026
Other OS vendors have the fixes in their kernels[1][2], but not yet in upstream
stable tree for 4.9 and 4.14.
Compile tested with 4.14.93.
Please consider to include them.
Thanks,
Jack Wang
Linux Kernel Developer @ 1&1 IONOS Cloud GmbH
[1] https://bugs.launchpad.net/bugs/cve/2018-1000026
[2] https://access.redhat.com/security/cve/cve-2018-1000026
Daniel Axtens (2):
net: create skb_gso_validate_mac_len()
bnx2x: disable GSO where gso_size is too big for hardware
.../net/ethernet/broadcom/bnx2x/bnx2x_main.c | 18 ++++++
include/linux/skbuff.h | 16 +++++
net/core/skbuff.c | 63 +++++++++++++++----
net/sched/sch_tbf.c | 10 ---
4 files changed, 84 insertions(+), 23 deletions(-)
--
2.17.1
From: "David A. Long" <dave.long(a)linaro.org>
V4.19 backport of spectre patches from Russell M. King's spectre branch.
Patches have been kvm-unit-test'ed on an arndale, run through kernelci, and
handed off to ARM for functional testing.
Julien Thierry (10):
ARM: 8789/1: signal: copy registers using __copy_to_user()
ARM: 8790/1: signal: always use __copy_to_user to save iwmmxt context
ARM: 8791/1: vfp: use __copy_to_user() when saving VFP state
ARM: 8792/1: oabi-compat: copy oabi events using __copy_to_user()
ARM: 8793/1: signal: replace __put_user_error with __put_user
ARM: 8794/1: uaccess: Prevent speculative use of the current
addr_limit
ARM: 8795/1: spectre-v1.1: use put_user() for __put_user()
ARM: 8796/1: spectre-v1,v1.1: provide helpers for address sanitization
ARM: 8797/1: spectre-v1.1: harden __copy_to_user
ARM: 8810/1: vfp: Fix wrong assignement to ufp_exc
Russell King (7):
ARM: make lookup_processor_type() non-__init
ARM: split out processor lookup
ARM: clean up per-processor check_bugs method call
ARM: add PROC_VTABLE and PROC_TABLE macros
ARM: spectre-v2: per-CPU vtables to work around big.Little systems
ARM: ensure that processor vtables is not lost after boot
ARM: fix the cockup in the previous patch
arch/arm/include/asm/assembler.h | 11 ++++
arch/arm/include/asm/cputype.h | 1 +
arch/arm/include/asm/proc-fns.h | 61 ++++++++++++++++++-----
arch/arm/include/asm/thread_info.h | 4 +-
arch/arm/include/asm/uaccess.h | 49 +++++++++++++++---
arch/arm/kernel/bugs.c | 4 +-
arch/arm/kernel/head-common.S | 6 +--
arch/arm/kernel/setup.c | 40 +++++++++------
arch/arm/kernel/signal.c | 80 ++++++++++++++++--------------
arch/arm/kernel/smp.c | 31 ++++++++++++
arch/arm/kernel/sys_oabi-compat.c | 8 ++-
arch/arm/lib/copy_from_user.S | 6 +--
arch/arm/lib/copy_to_user.S | 6 ++-
arch/arm/lib/uaccess_with_memcpy.c | 3 +-
arch/arm/mm/proc-macros.S | 10 ++++
arch/arm/mm/proc-v7-bugs.c | 17 +------
arch/arm/vfp/vfpmodule.c | 20 +++-----
17 files changed, 245 insertions(+), 112 deletions(-)
--
2.17.1
From: "David A. Long" <dave.long(a)linaro.org>
V4.14 backport of spectre patches from Russell M. King's spectre branch.
Patches have been kvm-unit-test'ed on an arndale, run through kernelci, and
handed off to ARM for functional testing.
Julien Thierry (10):
ARM: 8789/1: signal: copy registers using __copy_to_user()
ARM: 8790/1: signal: always use __copy_to_user to save iwmmxt context
ARM: 8791/1: vfp: use __copy_to_user() when saving VFP state
ARM: 8792/1: oabi-compat: copy oabi events using __copy_to_user()
ARM: 8793/1: signal: replace __put_user_error with __put_user
ARM: 8794/1: uaccess: Prevent speculative use of the current
addr_limit
ARM: 8795/1: spectre-v1.1: use put_user() for __put_user()
ARM: 8796/1: spectre-v1,v1.1: provide helpers for address sanitization
ARM: 8797/1: spectre-v1.1: harden __copy_to_user
ARM: 8810/1: vfp: Fix wrong assignement to ufp_exc
Russell King (7):
ARM: make lookup_processor_type() non-__init
ARM: split out processor lookup
ARM: clean up per-processor check_bugs method call
ARM: add PROC_VTABLE and PROC_TABLE macros
ARM: spectre-v2: per-CPU vtables to work around big.Little systems
ARM: ensure that processor vtables is not lost after boot
ARM: fix the cockup in the previous patch
arch/arm/include/asm/assembler.h | 11 ++++
arch/arm/include/asm/cputype.h | 1 +
arch/arm/include/asm/proc-fns.h | 61 ++++++++++++++++++-----
arch/arm/include/asm/thread_info.h | 4 +-
arch/arm/include/asm/uaccess.h | 49 +++++++++++++++---
arch/arm/kernel/bugs.c | 4 +-
arch/arm/kernel/head-common.S | 6 +--
arch/arm/kernel/setup.c | 40 +++++++++------
arch/arm/kernel/signal.c | 80 ++++++++++++++++--------------
arch/arm/kernel/smp.c | 31 ++++++++++++
arch/arm/kernel/sys_oabi-compat.c | 8 ++-
arch/arm/lib/copy_from_user.S | 6 +--
arch/arm/lib/copy_to_user.S | 6 ++-
arch/arm/lib/uaccess_with_memcpy.c | 3 +-
arch/arm/mm/proc-macros.S | 10 ++++
arch/arm/mm/proc-v7-bugs.c | 17 +------
arch/arm/vfp/vfpmodule.c | 20 +++-----
17 files changed, 245 insertions(+), 112 deletions(-)
--
2.17.1
From: "David A. Long" <dave.long(a)linaro.org>
V4.9 backport of spectre patches from Russell M. King's spectre branch.
Patches have been kvm-unit-test'ed on an arndale, run through kernelci, and
handed off to ARM for functional testing.
Julien Thierry (9):
ARM: 8789/1: signal: copy registers using __copy_to_user()
ARM: 8791/1: vfp: use __copy_to_user() when saving VFP state
ARM: 8792/1: oabi-compat: copy oabi events using __copy_to_user()
ARM: 8793/1: signal: replace __put_user_error with __put_user
ARM: 8794/1: uaccess: Prevent speculative use of the current
addr_limit
ARM: 8795/1: spectre-v1.1: use put_user() for __put_user()
ARM: 8796/1: spectre-v1,v1.1: provide helpers for address sanitization
ARM: 8797/1: spectre-v1.1: harden __copy_to_user
ARM: 8810/1: vfp: Fix wrong assignement to ufp_exc
Russell King (7):
ARM: make lookup_processor_type() non-__init
ARM: split out processor lookup
ARM: clean up per-processor check_bugs method call
ARM: add PROC_VTABLE and PROC_TABLE macros
ARM: spectre-v2: per-CPU vtables to work around big.Little systems
ARM: ensure that processor vtables is not lost after boot
ARM: fix the cockup in the previous patch
arch/arm/include/asm/assembler.h | 11 +++++
arch/arm/include/asm/cputype.h | 1 +
arch/arm/include/asm/proc-fns.h | 61 +++++++++++++++++++++-----
arch/arm/include/asm/thread_info.h | 4 +-
arch/arm/include/asm/uaccess.h | 49 ++++++++++++++++++---
arch/arm/kernel/bugs.c | 4 +-
arch/arm/kernel/head-common.S | 6 +--
arch/arm/kernel/setup.c | 40 ++++++++++-------
arch/arm/kernel/signal.c | 70 ++++++++++++++++--------------
arch/arm/kernel/smp.c | 32 ++++++++++++++
arch/arm/kernel/sys_oabi-compat.c | 8 +++-
arch/arm/lib/copy_from_user.S | 6 +--
arch/arm/lib/copy_to_user.S | 6 ++-
arch/arm/lib/uaccess_with_memcpy.c | 3 +-
arch/arm/mm/proc-macros.S | 10 +++++
arch/arm/mm/proc-v7-bugs.c | 17 +-------
arch/arm/vfp/vfpmodule.c | 20 ++++-----
17 files changed, 240 insertions(+), 108 deletions(-)
--
2.17.1