Update to 4.19.87

Drop "net: ena: Fix Kconfig dependency on X86" applied upstream

Drop "scsi: hisi_sas: Feed back linkrate(max/min) when re-attached" applied upstream

Drop "scsi: hisi_sas: Fix the race between IO completion and timeout for SMP/internal IO" applied upstream

Drop "scsi: hisi_sas: Free slot later in slot_complete_vx_hw()" applied upstream

Drop "scsi: hisi_sas: Fix NULL pointer dereference" applied upstream

[rt] Refresh 0057-printk-Add-a-printk-kill-switch.patch (context changes in 4.19.87)

[rt] Refresh 0207-printk-Make-rt-aware.patch (context changes in 4.19.87)

Cleanup debian/changelog file
This commit is contained in:
Aurelien Jarno 2019-12-01 15:28:36 +01:00
parent c5c04abfa4
commit 1a33bc2ef8
9 changed files with 328 additions and 345 deletions

313
debian/changelog vendored
View File

@ -1,4 +1,4 @@
linux (4.19.86-1) UNRELEASED; urgency=medium
linux (4.19.87-1) UNRELEASED; urgency=medium
* New upstream stable update:
https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.68
@ -2165,6 +2165,314 @@ linux (4.19.86-1) UNRELEASED; urgency=medium
PR KVM
- mmc: tmio: fix SCC error handling to avoid false positive CRC error
- [x86] resctrl: Fix rdt_find_domain() return value and checks
https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.87
- mlxsw: spectrum_router: Fix determining underlay for a GRE tunnel
- net/mlx4_en: fix mlx4 ethtool -N insertion
- net/mlx4_en: Fix wrong limitation for number of TX rings
- net: rtnetlink: prevent underflows in do_setvfinfo()
- net/sched: act_pedit: fix WARN() in the traffic path
- net: sched: ensure opts_len <= IP_TUNNEL_OPTS_MAX in act_tunnel_key
- sfc: Only cancel the PPS workqueue if it exists
- net/mlx5e: Fix set vf link state error flow
- net/mlxfw: Verify FSM error code translation doesn't exceed array size
- net/mlx5: Fix auto group size calculation
- vhost/vsock: split packets to send using multiple buffers
- gpio: max77620: Fixup debounce delays
- tools: gpio: Correctly add make dependencies for gpio_utils
- nbd:fix memory leak in nbd_get_socket()
- virtio_console: allocate inbufs in add_port() only if it is needed
- Revert "fs: ocfs2: fix possible null-pointer dereferences in
ocfs2_xa_prepare_entry()"
- mm/ksm.c: don't WARN if page is still mapped in remove_stable_node()
- [x86] drm/amd/powerplay: issue no PPSMC_MSG_GetCurrPkgPwr on unsupported
ASICs
- [x86] drm/i915/pmu: "Frequency" is reported as accumulated cycles
- [x86] drm/i915/userptr: Try to acquire the page lock around
set_page_dirty()
- mwifiex: Fix NL80211_TX_POWER_LIMITED
- ALSA: isight: fix leak of reference to firewire unit in error path of
.probe callback
- crypto: testmgr - fix sizeof() on COMP_BUF_SIZE
- printk: lock/unlock console only for new logbuf entries
- printk: fix integer overflow in setup_log_buf()
- pinctrl: madera: Fix uninitialized variable bug in madera_mux_set_mux
- PCI: cadence: Write MSI data with 32bits
- gfs2: Fix marking bitmaps non-full
- pty: fix compat ioctls
- synclink_gt(): fix compat_ioctl()
- [ppc64] Fix signedness bug in update_flash_db()
- [powerpc] boot: Fix opal console in boot wrapper
- [ppc64*,powerpc] boot: Disable vector instructions
- [ppc64*,powerpc] eeh: Fix null deref for devices removed during EEH
- [ppc64*,powerpc] eeh: Fix use of EEH_PE_KEEP on wrong field
- EDAC, thunderx: Fix memory leak in thunderx_l2c_threaded_isr()
- mt76: do not store aggregation sequence number for null-data frames
- mt76x0: phy: fix restore phase in mt76x0_phy_recalibrate_after_assoc
- brcmsmac: AP mode: update beacon when TIM changes
- ath10k: set probe request oui during driver start
- ath10k: allocate small size dma memory in ath10k_pci_diag_write_mem
- skd: fixup usage of legacy IO API
- cdrom: don't attempt to fiddle with cdo->capability
- spi: sh-msiof: fix deferred probing
- mmc: mediatek: fill the actual clock for mmc debugfs
- mmc: mediatek: fix cannot receive new request when msdc_cmd_is_ready fail
- PCI: mediatek: Fix class type for MT7622 to PCI_CLASS_BRIDGE_PCI
- btrfs: defrag: use btrfs_mod_outstanding_extents in
cluster_pages_for_defrag
- btrfs: handle error of get_old_root
- gsmi: Fix bug in append_to_eventlog sysfs handler
- misc: mic: fix a DMA pool free failure
- w1: IAD Register is yet readable trough iad sys file. Fix snprintf (%u
for unsigned, count for max size).
- [m68k] fix command-line parsing when passed from u-boot
- RDMA/bnxt_re: Avoid NULL check after accessing the pointer
- RDMA/bnxt_re: Fix qp async event reporting
- RDMA/bnxt_re: Avoid resource leak in case the NQ registration fails
- pinctrl: sunxi: Fix a memory leak in 'sunxi_pinctrl_build_state()'
- pwm: lpss: Only set update bit if we are actually changing the settings
- amiflop: clean up on errors during setup
- qed: Align local and global PTT to propagate through the APIs.
- scsi: ips: fix missing break in switch
- nfp: bpf: protect against mis-initializing atomic counters
- [x86] KVM: nVMX: reset cache/shadows when switching loaded VMCS
- [x86] KVM: nVMX: move check_vmentry_postreqs() call to
nested_vmx_enter_non_root_mode()
- [x86] KVM: Fix invvpid and invept register operand size in 64-bit mode
- clk: tegra: Fixes for MBIST work around
- scsi: isci: Use proper enumerated type in atapi_d2h_reg_frame_handler
- scsi: isci: Change sci_controller_start_task's return type to sci_status
- scsi: bfa: Avoid implicit enum conversion in bfad_im_post_vendor_event
- scsi: iscsi_tcp: Explicitly cast param in iscsi_sw_tcp_host_get_param
- nvmet: avoid integer overflow in the discard code
- nvmet-fcloop: suppress a compiler warning
- nvme-pci: fix hot removal during error handling
- PCI: mediatek: Fixup MSI enablement logic by enabling MSI before clocks
- clk: mmp2: fix the clock id for sdh2_clk and sdh3_clk
- ASoC: tegra_sgtl5000: fix device_node refcounting
- scsi: dc395x: fix dma API usage in srb_done
- scsi: dc395x: fix DMA API usage in sg_update_list
- scsi: zorro_esp: Limit DMA transfers to 65535 bytes
- net: dsa: mv88e6xxx: Fix 88E6141/6341 2500mbps SERDES speed
- net: fix warning in af_unix
- xfs: fix use-after-free race in xfs_buf_rele
- xfs: clear ail delwri queued bufs on unmount of shutdown fs
- kprobes, x86/ptrace.h: Make regs_get_kernel_stack_nth() not fault on
bad stack
- ACPI / scan: Create platform device for INT33FE ACPI nodes
- PM / Domains: Deal with multiple states but no governor in genpd
- ALSA: i2c/cs8427: Fix int to char conversion
- macintosh/windfarm_smu_sat: Fix debug output
- PCI: vmd: Detach resources after stopping root bus
- USB: misc: appledisplay: fix backlight update_status return code
- usbip: tools: fix atoi() on non-null terminated string
- sctp: use sk_wmem_queued to check for writable space
- dm raid: avoid bitmap with raid4/5/6 journal device
- selftests/bpf: fix file resource leak in load_kallsyms
- SUNRPC: Fix a compile warning for cmpxchg64()
- sunrpc: safely reallow resvport min/max inversion
- atm: zatm: Fix empty body Clang warnings
- [s390x] perf: Return error when debug_register fails
- swiotlb: do not panic on mapping failures
- spi: omap2-mcspi: Set FIFO DMA trigger level to word length
- [x86] intel_rdt: Prevent pseudo-locking from using stale pointers
- sparc: Fix parport build warnings.
- [ppc64*,powerpc] pseries: Export raw per-CPU VPA data via debugfs
- [ppc64*,powerpc] mm/radix: Fix off-by-one in split mapping logic
- [ppc64*,powerpc] mm/radix: Fix overuse of small pages in splitting logic
- [ppc64*,powerpc] mm/radix: Fix small page at boundary when splitting
- [ppc64*] radix: Fix radix__flush_tlb_collapsed_pmd double flushing pmd
- selftests/bpf: fix return value comparison for tests in test_libbpf.sh
- tools: bpftool: fix completion for "bpftool map update"
- ceph: fix dentry leak in ceph_readdir_prepopulate
- ceph: only allow punch hole mode in fallocate
- thermal: armada: fix a test in probe()
- f2fs: fix to spread clear_cold_data()
- f2fs: spread f2fs_set_inode_flags()
- mISDN: Fix type of switch control variable in ctrl_teimanager
- qlcnic: fix a return in qlcnic_dcb_get_capability()
- net: ethernet: ti: cpsw: unsync mcast entries while switch promisc mode
- mfd: arizona: Correct calling of runtime_put_sync
- mfd: mc13xxx-core: Fix PMIC shutdown when reading ADC values
- [x86] mfd: intel_soc_pmic_bxtwc: Chain power button IRQs as well
- mfd: max8997: Enale irq-wakeup unconditionally
- net: socionext: Stop PHY before resetting netsec
- fs/cifs: fix uninitialised variable warnings
- spi: uniphier: fix incorrect property items
- selftests/ftrace: Fix to test kprobe $comm arg only if available
- selftests: watchdog: fix message when /dev/watchdog open fails
- selftests: watchdog: Fix error message.
- selftests: kvm: Fix -Wformat warnings
- selftests: fix warning: "_GNU_SOURCE" redefined
- net: ethernet: cadence: fix socket buffer corruption problem
- bpf: devmap: fix wrong interface selection in notifier_call
- bpf, btf: fix a missing check bug in btf_parse
- [sparc64] Rework xchg() definition to avoid warnings.
- [arm64] lib: use C string functions with KASAN enabled
- fs/ocfs2/dlm/dlmdebug.c: fix a sleep-in-atomic-context bug in
dlm_print_one_mle()
- mm/page-writeback.c: fix range_cyclic writeback vs writepages deadlock
- tools/testing/selftests/vm/gup_benchmark.c: fix 'write' flag usage
- mm: thp: fix MADV_DONTNEED vs
migrate_misplaced_transhuge_page race condition
- macsec: update operstate when lower device changes
- macsec: let the administrator set UP state even if lowerdev is down
- block: fix the DISCARD request merge
- i2c: uniphier-f: make driver robust against concurrency
- i2c: uniphier-f: fix occasional timeout error
- i2c: uniphier-f: fix race condition when IRQ is cleared
- um: Make line/tty semantics use true write IRQ
- vfs: avoid problematic remapping requests into partial EOF block
- ipv4/igmp: fix v1/v2 switchback timeout based on rfc3376, 8.12
- [ppc64*,powerpc] xmon: Relax frame size for clang
- [ppc64*,powerpc] selftests/ptrace: Fix out-of-tree build
- [ppc64*,powerpc] selftests/signal: Fix out-of-tree build
- [ppc64*,powerpc] selftests/switch_endian: Fix out-of-tree build
- [ppc64*,powerpc] selftests/cache_shape: Fix out-of-tree build
- block: call rq_qos_exit() after queue is frozen
- mm/gup_benchmark.c: prevent integer overflow in ioctl
- linux/bitmap.h: handle constant zero-size bitmaps correctly
- linux/bitmap.h: fix type of nbits in bitmap_shift_right()
- lib/bitmap.c: fix remaining space computation in bitmap_print_to_pagebuf
- hfsplus: fix BUG on bnode parent update
- hfs: fix BUG on bnode parent update
- hfsplus: prevent btree data loss on ENOSPC
- hfs: prevent btree data loss on ENOSPC
- hfsplus: fix return value of hfsplus_get_block()
- hfs: fix return value of hfs_get_block()
- hfsplus: update timestamps on truncate()
- hfs: update timestamp on truncate()
- fs/hfs/extent.c: fix array out of bounds read of array extent
- kernel/panic.c: do not append newline to the stack protector panic string
- mm/memory_hotplug: make add_memory() take the device_hotplug_lock
- mm/memory_hotplug: fix online/offline_pages called w.o. mem_hotplug_lock
- [ppc64*,powerprc] powerpc/powernv: hold device_hotplug_lock when calling
device_online()
- igb: shorten maximum PHC timecounter update interval
- fm10k: ensure completer aborts are marked as non-fatal after a resume
- [arm64] net: hns3: bugfix for buffer not free problem during resetting
- [arm64] net: hns3: bugfix for reporting unknown vector0 interrupt repeatly
problem
- [arm64] net: hns3: bugfix for is_valid_csq_clean_head()
- [arm64] net: hns3: bugfix for hclge_mdio_write and hclge_mdio_read
- ntb_netdev: fix sleep time mismatch
- [x86] ntb: intel: fix return value for ndev_vec_mask()
- irq/matrix: Fix memory overallocation
- nvme-pci: fix conflicting p2p resource adds
- [arm64] makefile fix build of .i file in external module case
- [x86] tools/power turbosat: fix AMD APIC-id output
- mm: handle no memcg case in memcg_kmem_charge() properly
- ocfs2: without quota support, avoid calling quota recovery
- ocfs2: don't use iocb when EIOCBQUEUED returns
- ocfs2: don't put and assigning null to bh allocated outside
- ocfs2: fix clusters leak in ocfs2_defrag_extent()
- net: do not abort bulk send on BQL status
- sched/topology: Fix off by one bug
- sched/fair: Don't increase sd->balance_interval on newidle balance
- openvswitch: fix linking without CONFIG_NF_CONNTRACK_LABELS
- [armhf] dts: imx6sx-sdb: Fix enet phy regulator
- [arm64] sunxi-ng: enable so-said LDOs for A64 SoC's pll-mipi clock
- soc: bcm: brcmstb: Fix re-entry point with a THUMB2_KERNEL
- audit: print empty EXECVE args
- sock_diag: fix autoloading of the raw_diag module
- net: bpfilter: fix iptables failure if bpfilter_umh is disabled
- nds32: Fix bug in bitfield.h
- media: ov13858: Check for possible null pointer
- btrfs: avoid link error with CONFIG_NO_AUTO_INLINE
- wil6210: fix debugfs memory access alignment
- wil6210: fix L2 RX status handling
- wil6210: fix RGF_CAF_ICR address for Talyn-MB
- wil6210: fix locking in wmi_call
- ath10k: snoc: fix unbalanced clock error handling
- wlcore: Fix the return value in case of error in
'wlcore_vendor_cmd_smart_config_start()'
- rtl8xxxu: Fix missing break in switch
- brcmsmac: never log "tid x is not agg'able" by default
- wireless: airo: potential buffer overflow in sprintf()
- rtlwifi: rtl8192de: Fix misleading REG_MCUFWDL information
- net: dsa: bcm_sf2: Turn on PHY to allow successful registration
- scsi: mpt3sas: Fix Sync cache command failure during driver unload
- scsi: mpt3sas: Don't modify EEDPTagMode field setting on SAS3.5 HBA
devices
- scsi: mpt3sas: Fix driver modifying persistent data in Manufacturing
page11
- scsi: megaraid_sas: Fix msleep granularity
- scsi: megaraid_sas: Fix goto labels in error handling
- scsi: lpfc: fcoe: Fix link down issue after 1000+ link bounces
- scsi: lpfc: Fix odd recovery in duplicate FLOGIs in point-to-point
- scsi: lpfc: Correct loss of fc4 type on remote port address change
- usb: typec: tcpm: charge current handling for sink during hard reset
- dlm: fix invalid free
- dlm: don't leak kernel pointer to userspace
- vrf: mark skb for multicast or link-local as enslaved to VRF
- clk: tegra20: Turn EMC clock gate into divider
- ACPICA: Use %d for signed int print formatting instead of %u
- net: bcmgenet: return correct value 'ret' from bcmgenet_power_down
- of: unittest: allow base devicetree to have symbol metadata
- of: unittest: initialize args before calling of_*parse_*()
- tools: bpftool: pass an argument to silence open_obj_pinned()
- cfg80211: Prevent regulatory restore during STA disconnect in concurrent
interfaces
- pinctrl: qcom: spmi-gpio: fix gpio-hog related boot issues
- pinctrl: bcm2835: Use define directive for BCM2835_PINCONF_PARAM_PULL
- pinctrl: lpc18xx: Use define directive for PIN_CONFIG_GPIO_PIN_INT
- pinctrl: zynq: Use define directive for PIN_CONFIG_IO_STANDARD
- PCI: keystone: Use quirk to limit MRRS for K2G
- nvme-pci: fix surprise removal
- spi: omap2-mcspi: Fix DMA and FIFO event trigger size mismatch
- i2c: uniphier-f: fix timeout error after reading 8 bytes
- mm/memory_hotplug: Do not unlock when fails to take the
device_hotplug_lock
- ipv6: Fix handling of LLA with VRF and sockets bound to VRF
- cfg80211: call disconnect_wk when AP stops
- mm/page_io.c: do not free shared swap slots
- Bluetooth: Fix invalid-free in bcsp_close()
- KVM: MMU: Do not treat ZONE_DEVICE pages as being reserved
- ath10k: Fix a NULL-ptr-deref bug in ath10k_usb_alloc_urb_from_pipe
- ath9k_hw: fix uninitialized variable data
- md/raid10: prevent access of uninitialized resync_pages offset
- mm/memory_hotplug: don't access uninitialized memmaps in
shrink_zone_span()
- net: phy: dp83867: fix speed 10 in sgmii mode
- net: phy: dp83867: increase SGMII autoneg timer duration
- ocfs2: remove ocfs2_is_o2cb_active()
- [arm*] 8904/1: skip nomap memblocks while finding the
lowmem/highmem boundary
- ARC: perf: Accommodate big-endian CPU
- [x86] insn: Fix awk regexp warnings
- [x86] speculation: Fix incorrect MDS/TAA mitigation status
- [x86] speculation: Fix redundant MDS mitigation message
- nbd: prevent memory leak
- y2038: futex: Move compat implementation into futex.c
- futex: Prevent robust futex exit race
- ALSA: usb-audio: Fix NULL dereference at parsing BADD
- nfc: port100: handle command failure cleanly
- media: vivid: Set vid_cap_streaming and vid_out_streaming to true
- media: vivid: Fix wrong locking that causes race conditions on streaming
stop
- media: usbvision: Fix races among open, close, and disconnect
- cpufreq: Add NULL checks to show() and store() methods of cpufreq
- media: uvcvideo: Fix error path in control parsing failure
- media: b2c2-flexcop-usb: add sanity checking
- media: cxusb: detect cxusb_ctrl_msg error in query
- media: imon: invalid dereference in imon_touch_event
- virtio_ring: fix return code on DMA mapping fails
- USBIP: add config dependency for SGL_ALLOC
- usbip: tools: fix fd leakage in the function of read_attr_usbip_status
- usbip: Fix uninitialized symbol 'nents' in stub_recv_cmd_submit()
- usb-serial: cp201x: support Mark-10 digital force gauge
- USB: chaoskey: fix error case of a timeout
- appledisplay: fix error handling in the scheduled work
- USB: serial: mos7840: add USB ID to support Moxa UPort 2210
- USB: serial: mos7720: fix remote wakeup
- USB: serial: mos7840: fix remote wakeup
- USB: serial: option: add support for DW5821e with eSIM support
- USB: serial: option: add support for Foxconn T77W968 LTE modules
- staging: comedi: usbduxfast: usbduxfast_ai_cmdtest rounding error
- [ppc64*] support nospectre_v2 cmdline option
- [ppc64*] book3s: Fix link stack flush on context switch
- [ppc64*, powerpc] PPC: Book3S HV: Flush link stack on guest exit to host
kernel
- PM / devfreq: Fix kernel oops on governor module load
[ Romain Perier ]
* [armel/rpi] Enable CONFIG_BRCMFMAC_SDIO (Closes: #940530)
@ -2206,6 +2514,9 @@ linux (4.19.86-1) UNRELEASED; urgency=medium
changes in 4.19.86)
* [rt] Refresh 0202-net-Qdisc-use-a-seqlock-instead-seqcount.patch (context
changes in 4.19.86)
* [rt] Refresh 0057-printk-Add-a-printk-kill-switch.patch (context changes
in 4.19.87)
* [rt] Refresh 0207-printk-Make-rt-aware.patch (context changes in 4.19.87)
-- Romain Perier <romain.perier@gmail.com> Wed, 28 Aug 2019 13:28:09 +0200

View File

@ -7,6 +7,8 @@ Add a prinkt-kill-switch. This is used from (NMI) watchdog to ensure that
it does not dead-lock with the early printk code.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
[Aurelien Jarno: Backport to 4.19.87 due to context changes caused by
00988218f8cb2 ("printk: lock/unlock console only for new logbuf entries")]
---
include/linux/printk.h | 2 ++
kernel/printk/printk.c | 79 +++++++++++++++++++++++++++++++-----------
@ -92,9 +94,9 @@ index d0d03223b45b..289605ff56e8 100644
#ifdef CONFIG_PRINTK
DECLARE_WAIT_QUEUE_HEAD(log_wait);
/* the next printk record to read by syslog(READ) or /proc/kmsg */
@@ -1897,6 +1949,13 @@ asmlinkage int vprintk_emit(int facility, int level,
bool in_sched = false;
@@ -1905,6 +1957,13 @@ asmlinkage int vprintk_emit(int facility, int level,
unsigned long flags;
u64 curr_log_seq;
+ /*
+ * Fall back to early_printk if a debugging subsystem has
@ -106,7 +108,7 @@ index d0d03223b45b..289605ff56e8 100644
if (level == LOGLEVEL_SCHED) {
level = LOGLEVEL_DEFAULT;
in_sched = true;
@@ -2037,26 +2096,6 @@ static bool suppress_message_printing(int level) { return false; }
@@ -2049,26 +2108,6 @@ static bool suppress_message_printing(int level) { return false; }
#endif /* CONFIG_PRINTK */

View File

@ -7,6 +7,8 @@ Drop the lock before calling the console driver and do not disable
interrupts while printing to a serial console.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
[Aurelien Jarno: Backport to 4.19.87 due to context changes caused by
00988218f8cb2 ("printk: lock/unlock console only for new logbuf entries")]
---
kernel/printk/printk.c | 33 ++++++++++++++++++++++++++++++---
1 file changed, 30 insertions(+), 3 deletions(-)
@ -15,7 +17,7 @@ diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index 210cdac1458d..c66755a0a046 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -1617,6 +1617,7 @@ SYSCALL_DEFINE3(syslog, int, type, char __user *, buf, int, len)
@@ -1624,6 +1624,7 @@ SYSCALL_DEFINE3(syslog, int, type, char __user *, buf, int, len)
return do_syslog(type, buf, len, SYSLOG_FROM_READER);
}
@ -23,7 +25,7 @@ index 210cdac1458d..c66755a0a046 100644
/*
* Special console_lock variants that help to reduce the risk of soft-lockups.
* They allow to pass console_lock to another printk() call using a busy wait.
@@ -1757,6 +1758,15 @@ static int console_trylock_spinning(void)
@@ -1764,6 +1765,15 @@ static int console_trylock_spinning(void)
return 1;
}
@ -39,7 +41,7 @@ index 210cdac1458d..c66755a0a046 100644
/*
* Call the console drivers, asking them to write out
* log_buf[start] to log_buf[end - 1].
@@ -1772,6 +1782,7 @@ static void call_console_drivers(const char *ext_text, size_t ext_len,
@@ -1779,6 +1789,7 @@ static void call_console_drivers(const char *ext_text, size_t ext_len,
if (!console_drivers)
return;
@ -47,7 +49,7 @@ index 210cdac1458d..c66755a0a046 100644
for_each_console(con) {
if (exclusive_console && con != exclusive_console)
continue;
@@ -1787,6 +1798,7 @@ static void call_console_drivers(const char *ext_text, size_t ext_len,
@@ -1794,6 +1805,7 @@ static void call_console_drivers(const char *ext_text, size_t ext_len,
else
con->write(con, text, len);
}
@ -55,10 +57,10 @@ index 210cdac1458d..c66755a0a046 100644
}
int printk_delay_msec __read_mostly;
@@ -1978,20 +1990,30 @@ asmlinkage int vprintk_emit(int facility, int level,
@@ -1988,20 +2000,30 @@ asmlinkage int vprintk_emit(int facility, int level,
/* If called from the scheduler, we can not call up(). */
if (!in_sched) {
if (!in_sched && pending_output) {
+ int may_trylock = 1;
+
+#ifdef CONFIG_PREEMPT_RT_FULL
@ -88,8 +90,8 @@ index 210cdac1458d..c66755a0a046 100644
+ migrate_enable();
}
wake_up_klogd();
@@ -2444,6 +2466,10 @@ void console_unlock(void)
if (pending_output)
@@ -2463,6 +2485,10 @@ void console_unlock(void)
console_seq++;
raw_spin_unlock(&logbuf_lock);
@ -100,7 +102,7 @@ index 210cdac1458d..c66755a0a046 100644
/*
* While actively printing out messages, if another printk()
* were to occur on another CPU, it may wait for this one to
@@ -2462,6 +2488,7 @@ void console_unlock(void)
@@ -2481,6 +2507,7 @@ void console_unlock(void)
}
printk_safe_exit_irqrestore(flags);

View File

@ -1,37 +0,0 @@
From 97a79982f8b8ddcb129a1be1ecc01cef70ab384d Mon Sep 17 00:00:00 2001
From: Luo Jiaxing <luojiaxing@huawei.com>
Date: Mon, 24 Sep 2018 23:06:28 +0800
Subject: [PATCH 01/31] scsi: hisi_sas: Feed back linkrate(max/min) when
re-attached
Origin: https://git.kernel.org/linus/5a54691f874ab29ec82f08bc6936866a3ccdaa91
At directly attached situation, if the user modifies the sysfs interface
of maximum_linkrate and minimum_linkrate to renegotiate the linkrate
between SAS controller and target, the value of both files mentioned
above should have change to user setting after renegotiate is over, but
it remains unchanged.
To fix this bug, maximum_linkrate and minimum_linkrate will be directly
fed back to relevant sas_phy structure.
Signed-off-by: Luo Jiaxing <luojiaxing@huawei.com>
Signed-off-by: John Garry <john.garry@huawei.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
---
drivers/scsi/hisi_sas/hisi_sas_main.c | 3 +++
1 file changed, 3 insertions(+)
Index: linux/drivers/scsi/hisi_sas/hisi_sas_main.c
===================================================================
--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_main.c
+++ linux/drivers/scsi/hisi_sas/hisi_sas_main.c
@@ -906,6 +906,9 @@ static void hisi_sas_phy_set_linkrate(st
_r.maximum_linkrate = max;
_r.minimum_linkrate = min;
+ sas_phy->phy->maximum_linkrate = max;
+ sas_phy->phy->minimum_linkrate = min;
+
hisi_hba->hw->phy_disable(hisi_hba, phy_no);
msleep(100);
hisi_hba->hw->phy_set_linkrate(hisi_hba, phy_no, &_r);

View File

@ -1,135 +0,0 @@
From d754707455238c59350c70ce51123b586fefac52 Mon Sep 17 00:00:00 2001
From: Xiang Chen <chenxiang66@hisilicon.com>
Date: Mon, 24 Sep 2018 23:06:30 +0800
Subject: [PATCH 03/31] scsi: hisi_sas: Fix the race between IO completion and
timeout for SMP/internal IO
Origin: https://git.kernel.org/linus/584f53fe5f529d877968c711a095923c1ed12307
If SMP/internal IO times out, we will possibly free the task immediately.
However if the IO actually completes at the same time, the IO completion
may refer to task which has been freed.
So to solve the issue, flush the tasklet to finish IO completion before
free'ing slot/task.
Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com>
Signed-off-by: John Garry <john.garry@huawei.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
---
drivers/scsi/hisi_sas/hisi_sas_main.c | 55 ++++++++++++++++++++++-----
1 file changed, 46 insertions(+), 9 deletions(-)
Index: linux/drivers/scsi/hisi_sas/hisi_sas_main.c
===================================================================
--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_main.c
+++ linux/drivers/scsi/hisi_sas/hisi_sas_main.c
@@ -958,8 +958,7 @@ static int hisi_sas_control_phy(struct a
static void hisi_sas_task_done(struct sas_task *task)
{
- if (!del_timer(&task->slow_task->timer))
- return;
+ del_timer(&task->slow_task->timer);
complete(&task->slow_task->completion);
}
@@ -968,13 +967,17 @@ static void hisi_sas_tmf_timedout(struct
struct sas_task_slow *slow = from_timer(slow, t, timer);
struct sas_task *task = slow->task;
unsigned long flags;
+ bool is_completed = true;
spin_lock_irqsave(&task->task_state_lock, flags);
- if (!(task->task_state_flags & SAS_TASK_STATE_DONE))
+ if (!(task->task_state_flags & SAS_TASK_STATE_DONE)) {
task->task_state_flags |= SAS_TASK_STATE_ABORTED;
+ is_completed = false;
+ }
spin_unlock_irqrestore(&task->task_state_lock, flags);
- complete(&task->slow_task->completion);
+ if (!is_completed)
+ complete(&task->slow_task->completion);
}
#define TASK_TIMEOUT 20
@@ -1025,10 +1028,18 @@ static int hisi_sas_exec_internal_tmf_ta
if ((task->task_state_flags & SAS_TASK_STATE_ABORTED)) {
if (!(task->task_state_flags & SAS_TASK_STATE_DONE)) {
struct hisi_sas_slot *slot = task->lldd_task;
+ struct hisi_sas_cq *cq =
+ &hisi_hba->cq[slot->dlvry_queue];
dev_err(dev, "abort tmf: TMF task timeout and not done\n");
- if (slot)
+ if (slot) {
+ /*
+ * flush tasklet to avoid free'ing task
+ * before using task in IO completion
+ */
+ tasklet_kill(&cq->tasklet);
slot->task = NULL;
+ }
goto ex_err;
} else
@@ -1404,6 +1415,17 @@ static int hisi_sas_abort_task(struct sa
spin_lock_irqsave(&task->task_state_lock, flags);
if (task->task_state_flags & SAS_TASK_STATE_DONE) {
+ struct hisi_sas_slot *slot = task->lldd_task;
+ struct hisi_sas_cq *cq;
+
+ if (slot) {
+ /*
+ * flush tasklet to avoid free'ing task
+ * before using task in IO completion
+ */
+ cq = &hisi_hba->cq[slot->dlvry_queue];
+ tasklet_kill(&cq->tasklet);
+ }
spin_unlock_irqrestore(&task->task_state_lock, flags);
rc = TMF_RESP_FUNC_COMPLETE;
goto out;
@@ -1459,12 +1481,19 @@ static int hisi_sas_abort_task(struct sa
/* SMP */
struct hisi_sas_slot *slot = task->lldd_task;
u32 tag = slot->idx;
+ struct hisi_sas_cq *cq = &hisi_hba->cq[slot->dlvry_queue];
rc = hisi_sas_internal_task_abort(hisi_hba, device,
HISI_SAS_INT_ABT_CMD, tag);
if (((rc < 0) || (rc == TMF_RESP_FUNC_FAILED)) &&
- task->lldd_task)
- hisi_sas_do_release_task(hisi_hba, task, slot);
+ task->lldd_task) {
+ /*
+ * flush tasklet to avoid free'ing task
+ * before using task in IO completion
+ */
+ tasklet_kill(&cq->tasklet);
+ slot->task = NULL;
+ }
}
out:
@@ -1830,9 +1859,17 @@ hisi_sas_internal_task_abort(struct hisi
if ((task->task_state_flags & SAS_TASK_STATE_ABORTED)) {
if (!(task->task_state_flags & SAS_TASK_STATE_DONE)) {
struct hisi_sas_slot *slot = task->lldd_task;
+ struct hisi_sas_cq *cq =
+ &hisi_hba->cq[slot->dlvry_queue];
- if (slot)
+ if (slot) {
+ /*
+ * flush tasklet to avoid free'ing task
+ * before using task in IO completion
+ */
+ tasklet_kill(&cq->tasklet);
slot->task = NULL;
+ }
dev_err(dev, "internal task abort: timeout and not done.\n");
res = -EIO;
goto exit;

View File

@ -1,66 +0,0 @@
From 3df1056ee50d09c97e421896a698f74d367282ef Mon Sep 17 00:00:00 2001
From: Xiang Chen <chenxiang66@hisilicon.com>
Date: Mon, 24 Sep 2018 23:06:31 +0800
Subject: [PATCH 04/31] scsi: hisi_sas: Free slot later in
slot_complete_vx_hw()
Origin: https://git.kernel.org/linus/3e178f3ecfcf91a258e832b0f0843a4cfd9059ac
If an SSP/SMP IO times out, it may be actually in reality be
simultaneously processing completion of the slot in
slot_complete_vx_hw().
Then if the slot is freed in slot_complete_vx_hw() (this IPTT is freed
and it may be re-used by other slot), and we may abort the wrong slot in
hisi_sas_abort_task().
So to solve the issue, free the slot after the check of
SAS_TASK_STATE_ABORTED in slot_complete_vx_hw().
Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com>
Signed-off-by: John Garry <john.garry@huawei.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
---
drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 2 +-
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
Index: linux/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
===================================================================
--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
+++ linux/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
@@ -2481,7 +2481,6 @@ slot_complete_v2_hw(struct hisi_hba *his
}
out:
- hisi_sas_slot_task_free(hisi_hba, task, slot);
sts = ts->stat;
spin_lock_irqsave(&task->task_state_lock, flags);
if (task->task_state_flags & SAS_TASK_STATE_ABORTED) {
@@ -2491,6 +2490,7 @@ out:
}
task->task_state_flags |= SAS_TASK_STATE_DONE;
spin_unlock_irqrestore(&task->task_state_lock, flags);
+ hisi_sas_slot_task_free(hisi_hba, task, slot);
if (!is_internal && (task->task_proto != SAS_PROTOCOL_SMP)) {
spin_lock_irqsave(&device->done_lock, flags);
Index: linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
===================================================================
--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
+++ linux/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
@@ -1749,7 +1749,6 @@ slot_complete_v3_hw(struct hisi_hba *his
}
out:
- hisi_sas_slot_task_free(hisi_hba, task, slot);
sts = ts->stat;
spin_lock_irqsave(&task->task_state_lock, flags);
if (task->task_state_flags & SAS_TASK_STATE_ABORTED) {
@@ -1759,6 +1758,7 @@ out:
}
task->task_state_flags |= SAS_TASK_STATE_DONE;
spin_unlock_irqrestore(&task->task_state_lock, flags);
+ hisi_sas_slot_task_free(hisi_hba, task, slot);
if (!is_internal && (task->task_proto != SAS_PROTOCOL_SMP)) {
spin_lock_irqsave(&device->done_lock, flags);

View File

@ -1,60 +0,0 @@
From 19c36e6a73724c2ec33980b9ab88145428b68412 Mon Sep 17 00:00:00 2001
From: "Gustavo A. R. Silva" <gustavo@embeddedor.com>
Date: Thu, 18 Oct 2018 18:59:39 +0200
Subject: [PATCH] scsi: hisi_sas: Fix NULL pointer dereference
Origin: https://git.kernel.org/linus/f4445bb93d82a984657b469e63118c2794a4c3d3
There is a NULL pointer dereference in case *slot* happens to be NULL at
lines 1053 and 1878:
struct hisi_sas_cq *cq =
&hisi_hba->cq[slot->dlvry_queue];
Notice that *slot* is being NULL checked at lines 1057 and 1881:
if (slot), which implies it may be NULL.
Fix this by placing the declaration and definition of variable cq, which
contains the pointer dereference slot->dlvry_queue, after slot has been
properly NULL checked.
Addresses-Coverity-ID: 1474515 ("Dereference before null check")
Addresses-Coverity-ID: 1474520 ("Dereference before null check")
Fixes: 584f53fe5f52 ("scsi: hisi_sas: Fix the race between IO completion and timeout for SMP/internal IO")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Reviewed-by: Xiang Chen <chenxiang66@hisilicon.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
---
drivers/scsi/hisi_sas/hisi_sas_main.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
Index: linux/drivers/scsi/hisi_sas/hisi_sas_main.c
===================================================================
--- linux.orig/drivers/scsi/hisi_sas/hisi_sas_main.c
+++ linux/drivers/scsi/hisi_sas/hisi_sas_main.c
@@ -1088,11 +1088,11 @@ static int hisi_sas_exec_internal_tmf_ta
if ((task->task_state_flags & SAS_TASK_STATE_ABORTED)) {
if (!(task->task_state_flags & SAS_TASK_STATE_DONE)) {
struct hisi_sas_slot *slot = task->lldd_task;
- struct hisi_sas_cq *cq =
- &hisi_hba->cq[slot->dlvry_queue];
dev_err(dev, "abort tmf: TMF task timeout and not done\n");
if (slot) {
+ struct hisi_sas_cq *cq =
+ &hisi_hba->cq[slot->dlvry_queue];
/*
* flush tasklet to avoid free'ing task
* before using task in IO completion
@@ -1913,10 +1913,10 @@ hisi_sas_internal_task_abort(struct hisi
if ((task->task_state_flags & SAS_TASK_STATE_ABORTED)) {
if (!(task->task_state_flags & SAS_TASK_STATE_DONE)) {
struct hisi_sas_slot *slot = task->lldd_task;
- struct hisi_sas_cq *cq =
- &hisi_hba->cq[slot->dlvry_queue];
if (slot) {
+ struct hisi_sas_cq *cq =
+ &hisi_hba->cq[slot->dlvry_queue];
/*
* flush tasklet to avoid free'ing task
* before using task in IO completion

View File

@ -1,29 +0,0 @@
From: Netanel Belgazal <netanel@amazon.com>
Date: Wed, 17 Oct 2018 10:04:21 +0000
Subject: [PATCH 14/19] net: ena: Fix Kconfig dependency on X86
Origin: https://git.kernel.org/linus/8c590f9776386b8f697fd0b7ed6142ae6e3de79e
The Kconfig limitation of X86 is to too wide.
The ENA driver only requires a little endian dependency.
Change the dependency to be on little endian CPU.
Signed-off-by: Netanel Belgazal <netanel@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
drivers/net/ethernet/amazon/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: linux/drivers/net/ethernet/amazon/Kconfig
===================================================================
--- linux.orig/drivers/net/ethernet/amazon/Kconfig
+++ linux/drivers/net/ethernet/amazon/Kconfig
@@ -17,7 +17,7 @@ if NET_VENDOR_AMAZON
config ENA_ETHERNET
tristate "Elastic Network Adapter (ENA) support"
- depends on (PCI_MSI && X86)
+ depends on PCI_MSI && !CPU_BIG_ENDIAN
---help---
This driver supports Elastic Network Adapter (ENA)"

View File

@ -215,7 +215,6 @@ features/all/ena/0010-net-ena-change-rx-copybreak-default-to-reduce-kernel.patch
features/all/ena/0011-net-ena-remove-redundant-parameter-in-ena_com_admin_.patch
features/all/ena/0012-net-ena-update-driver-version-to-2.0.1.patch
features/all/ena/0013-net-ena-fix-indentations-in-ena_defs-for-better-read.patch
features/all/ena/0014-net-ena-Fix-Kconfig-dependency-on-X86.patch
features/all/ena/0015-net-ena-enable-Low-Latency-Queues.patch
features/all/ena/0016-net-ena-fix-compilation-error-in-xtensa-architecture.patch
features/all/ena/0017-net-ena-fix-crash-during-ena_remove.patch
@ -260,10 +259,7 @@ features/all/ena/net-ena-fix-retrieval-of-nonadaptive-interrupt-moder.patch
features/all/ena/net-ena-fix-incorrect-update-of-intr_delay_resolutio.patch
# Backported bugfixes from 4.20/4.21 for the Huawei TaiShan server platform (aka D06)
bugfix/arm64/huawei-taishan/0001-scsi-hisi_sas-Feed-back-linkrate-max-min-when-re-att.patch
bugfix/arm64/huawei-taishan/0002-scsi-hisi_sas-Move-evaluation-of-hisi_hba-in-hisi_sa.patch
bugfix/arm64/huawei-taishan/0003-scsi-hisi_sas-Fix-the-race-between-IO-completion-and.patch
bugfix/arm64/huawei-taishan/0004-scsi-hisi_sas-Free-slot-later-in-slot_complete_vx_hw.patch
bugfix/arm64/huawei-taishan/0005-scsi-hisi_sas-unmask-interrupts-ent72-and-ent74.patch
bugfix/arm64/huawei-taishan/0006-scsi-hisi_sas-Use-block-layer-tag-instead-for-IPTT.patch
bugfix/arm64/huawei-taishan/0007-scsi-hisi_sas-Update-v3-hw-AIP_LIMIT-and-CFG_AGING_T.patch
@ -291,7 +287,6 @@ bugfix/arm64/huawei-taishan/0028-RDMA-hns-Bugfix-for-the-scene-without-receiver-
bugfix/arm64/huawei-taishan/0029-RDMA-hns-Add-constraint-on-the-setting-of-local-ACK-.patch
bugfix/arm64/huawei-taishan/0030-RDMA-hns-Modify-the-pbl-ba-page-size-for-hip08.patch
bugfix/arm64/huawei-taishan/0031-RDMA-hns-RDMA-hns-Assign-rq-head-pointer-when-enable.patch
bugfix/arm64/huawei-taishan/0032-scsi-hisi_sas-Fix-NULL-pointer-dereference.patch
bugfix/arm64/huawei-taishan/0033-scsi-hisi_sas-fix-calls-to-dma_set_mask_and_coherent.patch
# Backported DTB support for Raspberry Pi Compute Module 3 from 4.20-rc1: