This is the start of the stable review cycle for the 5.8.8 release.
There are 186 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Thu, 10 Sep 2020 15:21:57 +0000.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.8.8-rc1.gz
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.8.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <[email protected]>
Linux 5.8.8-rc1
Himadri Pandya <[email protected]>
net: usb: Fix uninit-was-stored issue in asix_read_phy_addr()
Johannes Berg <[email protected]>
cfg80211: regulatory: reject invalid hints
David Howells <[email protected]>
mm/khugepaged.c: fix khugepaged's request size in collapse_file
Muchun Song <[email protected]>
mm/hugetlb: fix a race between hugetlb sysctl handlers
Li Xinhai <[email protected]>
mm/hugetlb: try preferred node first when alloc gigantic page from cma
Alistair Popple <[email protected]>
mm/migrate: fixup setting UFFD_WP flag
Mrinal Pandey <[email protected]>
checkpatch: fix the usage of capture group ( ... )
Sowjanya Komatineni <[email protected]>
sdhci: tegra: Add missing TMCLK for data timeout
Randy Dunlap <[email protected]>
kconfig: streamline_config.pl: check defined(ENV variable) before using it
Wei Li <[email protected]>
perf record: Correct the help info of option "--no-bpf-event"
Jens Axboe <[email protected]>
io_uring: no read/write-retry on -EAGAIN error and O_NONBLOCK marked file
Alistair Popple <[email protected]>
mm/rmap: fixup copying of soft dirty and uffd ptes
Yang Shi <[email protected]>
mm: madvise: fix vma user-after-free
Joerg Roedel <[email protected]>
mm: track page table modifications in __apply_to_page_range()
Eugeniu Rosca <[email protected]>
mm: slub: fix conversion of freelist_corrupted()
Ye Bin <[email protected]>
dm thin metadata: Fix use-after-free in dm_bm_set_read_only
Ye Bin <[email protected]>
dm thin metadata: Avoid returning cmd->bm wild pointer on error
Ye Bin <[email protected]>
dm cache metadata: Avoid returning cmd->bm wild pointer on error
Damien Le Moal <[email protected]>
dm crypt: Initialize crypto wait structures
Mikulas Patocka <[email protected]>
dm integrity: fix error reporting in bitmap mode after creation
Mike Snitzer <[email protected]>
dm mpath: fix racey management of PG initialization
Mikulas Patocka <[email protected]>
dm writecache: handle DAX to partitions on persistent memory correctly
Sandeep Raghuraman <[email protected]>
drm/amdgpu: Specify get_argument function for ci_smu_funcs
Evan Quan <[email protected]>
drm/amd/pm: avoid false alarm due to confusing softwareshutdowntemp setting
Sean Paul <[email protected]>
drm/i915: Fix sha_text population code
Gustavo Pimentel <[email protected]>
dmaengine: dw-edma: Fix scatter-gather address calculation
Tejun Heo <[email protected]>
blk-stat: make q->stats->lock irqsafe
Tejun Heo <[email protected]>
blk-iocost: ioc_pd_free() shouldn't assume irq disabled
He Zhe <[email protected]>
mips/oprofile: Fix fallthrough placement
Tejun Heo <[email protected]>
libata: implement ATA_HORKAGE_MAX_TRIM_128M and apply to Sandisks
Eric Farman <[email protected]>
s390: fix GENERIC_LOCKBREAK dependency typo in Kconfig
Jiufei Xue <[email protected]>
io_uring: fix removing the wrong file in __io_sqe_files_update()
Jiufei Xue <[email protected]>
io_uring: set table->files[i] to NULL when io_sqe_file_register failed
Jens Axboe <[email protected]>
block: ensure bdi->io_pages is always initialized
Ming Lei <[email protected]>
block: allow for_each_bvec to support zero len bvec
Max Staudt <[email protected]>
affs: fix basic permission bits to actually work
Sean Young <[email protected]>
media: rc: uevent sysfs file races with rc_unregister_device()
Sean Young <[email protected]>
media: rc: do not access device via sysfs after rc_unregister_device()
Adrian Hunter <[email protected]>
mmc: sdhci-pci: Fix SDHCI_RESET_ALL for CQHCI for Intel GLK-based controllers
Wenbin Mei <[email protected]>
mmc: dt-bindings: Add resets/reset-names for Mediatek MMC bindings
Wenbin Mei <[email protected]>
mmc: mediatek: add optional module reset property
Wenbin Mei <[email protected]>
arm64: dts: mt7622: add reset node for mmc device
Takashi Iwai <[email protected]>
ALSA: hda/realtek - Improved routing for Thinkpad X1 7th/8th Gen
Adrien Crivelli <[email protected]>
ALSA: hda/realtek: Add quirk for Samsung Galaxy Book Ion NT950XCJ-X716A
Takashi Sakamoto <[email protected]>
ALSA; firewire-tascam: exclude Tascam FE-8 from detection
Dan Crawford <[email protected]>
ALSA: hda - Fix silent audio output and corrupted input on MSI X570-A PRO
Takashi Sakamoto <[email protected]>
ALSA: firewire-digi00x: exclude Avid Adrenaline from detection
Kai Vehmanen <[email protected]>
ALSA: hda/hdmi: always check pin power status in i915 pin fixup
Takashi Iwai <[email protected]>
ALSA: pcm: oss: Remove superfluous WARN_ON() for mulaw sanity check
Joshua Sivec <[email protected]>
ALSA: usb-audio: Add implicit feedback quirk for UR22C
František Kučera <[email protected]>
ALSA: usb-audio: Add basic capture support for Pioneer DJ DJM-250MK2
Tong Zhang <[email protected]>
ALSA: ca0106: fix error code handling
Tiezhu Yang <[email protected]>
Revert "ALSA: hda: Add support for Loongson 7A1000 controller"
Sasha Levin <[email protected]>
x86/mm/32: Bring back vmalloc faulting on x86_32
Max Chou <[email protected]>
Bluetooth: Return NOTIFY_DONE for hci_suspend_notifier
Qu Wenruo <[email protected]>
btrfs: tree-checker: fix the error message for transid error
Marcos Paulo de Souza <[email protected]>
btrfs: block-group: fix free-space bitmap threshold
Josef Bacik <[email protected]>
btrfs: set the lockdep class for log tree extent buffers
Josef Bacik <[email protected]>
btrfs: set the correct lockdep class for new nodes
Josef Bacik <[email protected]>
btrfs: allocate scrub workqueues outside of locks
Josef Bacik <[email protected]>
btrfs: fix potential deadlock in the search ioctl
Josef Bacik <[email protected]>
btrfs: drop path before adding new uuid tree entry
Mike Rapoport <[email protected]>
arc: fix memory initialization for systems with two memory banks
Vineet Gupta <[email protected]>
ARC: perf: don't bail setup if pct irq missing in device-tree
Mikulas Patocka <[email protected]>
xfs: don't update mtime on COW faults
Mikulas Patocka <[email protected]>
ext2: don't update mtime on COW faults
Andy Lutomirski <[email protected]>
x86/debug: Allow a single level of #DB recursion
Peter Zijlstra <[email protected]>
x86/entry: Fix AC assertion
Vamshi K Sthambamkadi <[email protected]>
tracing/kprobes, x86/ptrace: Fix regs argument order for i386
Chris Wilson <[email protected]>
iommu/vt-d: Handle 36bit addressing for x86-32
Jason Gunthorpe <[email protected]>
include/linux/log2.h: add missing () around n in roundup_pow_of_two()
Or Cohen <[email protected]>
net/packet: fix overflow in tpacket_rcv
Suravee Suthikulpanit <[email protected]>
iommu/amd: Use cmpxchg_double() when updating 128-bit IRTE
Suravee Suthikulpanit <[email protected]>
iommu/amd: Restore IRTE.RemapEn bit after programming IRTE
Veera Vegivada <[email protected]>
thermal: qcom-spmi-temp-alarm: Don't suppress negative temp
Tony Lindgren <[email protected]>
thermal: ti-soc-thermal: Fix bogus thermal shutdowns for omap4430
Lu Baolu <[email protected]>
iommu/vt-d: Serialize IOMMU GCMD register modifications
Huang Ying <[email protected]>
x86, fakenuma: Fix invalid starting node ID
Michael Chan <[email protected]>
tg3: Fix soft lockup when tg3_reset_task() fails.
YueHaibing <[email protected]>
perf bench: The do_run_multi_threaded() function must use IS_ERR(perf_session__new())
Jin Yao <[email protected]>
perf stat: Turn off summary for interval mode by default
Namhyung Kim <[email protected]>
perf jevents: Fix suspicious code in fixregex()
Darrick J. Wong <[email protected]>
xfs: fix xfs_bmap_validate_extent_raw when checking attr fork of rt files
Thomas Bogendoerfer <[email protected]>
MIPS: SNI: Fix SCSI interrupt
Huang Pei <[email protected]>
MIPS: add missing MSACSR and upper MSA initialization
Kai-Heng Feng <[email protected]>
drm/radeon: Prefer lower feedback dividers
Dan Murphy <[email protected]>
net: dp83867: Fix WoL SecureOn password
Louis Peens <[email protected]>
nfp: flower: fix ABI mismatch between driver and firmware
Dan Carpenter <[email protected]>
net: gemini: Fix another missing clk_disable_unprepare() in probe
Denis Efremov <[email protected]>
net: bcmgenet: fix mask check in bcmgenet_validate_flow()
Al Viro <[email protected]>
fix regression in "epoll: Keep a reference on files added to the check list"
Shung-Hsi Yu <[email protected]>
net: ethernet: mlx4: Fix memory allocation in mlx4_buddy_init()
Al Grant <[email protected]>
perf tools: Correct SNOOPX field offset
Al Grant <[email protected]>
perf intel-pt: Fix corrupt data after perf inject from
Al Grant <[email protected]>
perf cs-etm: Fix corrupt data after perf inject from
Arnaldo Carvalho de Melo <[email protected]>
perf top/report: Fix infinite loop in the TUI for grouped events
Christoph Hellwig <[email protected]>
block: fix locking in bdev_del_partition
Tiezhu Yang <[email protected]>
MIPS: perf: Fix wrong check condition of Loongson event IDs
Grygorii Strashko <[email protected]>
net: ethernet: ti: am65-cpsw: fix rmii 100Mbit link mode
Potnuri Bharat Teja <[email protected]>
cxgb4: fix thermal zone device registration
Viresh Kumar <[email protected]>
opp: Don't drop reference for an OPP table that was never parsed
Florian Westphal <[email protected]>
netfilter: conntrack: do not auto-delete clash entries on reply
Keith Busch <[email protected]>
nvme: fix controller instance leak
Christophe JAILLET <[email protected]>
nvmet-fc: Fix a missed _irqsave version of spin_lock in 'nvmet_fc_fod_op_done()'
Pablo Neira Ayuso <[email protected]>
netfilter: nfnetlink: nfnetlink_unicast() reports EAGAIN instead of ENOBUFS
Landen Chao <[email protected]>
net: dsa: mt7530: fix advertising unsupported 1000baseT_Half
Jesper Dangaard Brouer <[email protected]>
selftests/bpf: Fix massive output from test_maps
Jacopo Mondi <[email protected]>
media: i2c: imx214: select V4L2_FWNODE
Murali Karicheri <[email protected]>
net: ethernet: ti: cpsw_new: fix error handling in cpsw_ndo_vlan_rx_kill_vid()
Ezequiel Garcia <[email protected]>
media: cedrus: Add missing v4l2_ctrl_request_hdl_put()
Hans Verkuil <[email protected]>
media: vicodec: add missing v4l2_ctrl_request_hdl_put()
Jakub Kicinski <[email protected]>
bnxt: don't enable NAPI until rings are ready
Eric Sandeen <[email protected]>
xfs: fix boundary test in xfs_attr_shortform_verify
Brian Foster <[email protected]>
xfs: finish dfops on every insert range shift iteration
Edwin Peer <[email protected]>
bnxt_en: fix HWRM error when querying VF temperature
Michael Chan <[email protected]>
bnxt_en: Fix possible crash in bnxt_fw_reset_task().
Vasundhara Volam <[email protected]>
bnxt_en: Fix PCI AER error recovery flow
Michael Chan <[email protected]>
bnxt_en: Fix ethtool -S statitics with XDP or TCs enabled.
Vasundhara Volam <[email protected]>
bnxt_en: Check for zero dir entries in NVRAM.
Pavan Chebbi <[email protected]>
bnxt_en: Don't query FW when netif_running() is false.
Murali Karicheri <[email protected]>
net: ethernet: ti: cpsw_new: fix clean up of vlan mc entries for host port
Murali Karicheri <[email protected]>
net: ethernet: ti: cpsw: fix clean up of vlan mc entries for host port
Nicolas Dichtel <[email protected]>
gtp: add GTPA_LINK info to msg sent to userspace
Peter Ujfalusi <[email protected]>
dmaengine: ti: k3-udma: Fix the TR initialization for prep_slave_sg
Marek Szyprowski <[email protected]>
dmaengine: pl330: Fix burst length if burst size is smaller than bus width
Yonghong Song <[email protected]>
bpf: Fix a buffer out-of-bound access when filling raw_tp link_info
Dinghao Liu <[email protected]>
net: arc_emac: Fix memleak in arc_mdio_probe
Yuusuke Ashizuka <[email protected]>
ravb: Fixed to be able to unload modules
Dinghao Liu <[email protected]>
net: systemport: Fix memleak in bcm_sysport_probe
Dinghao Liu <[email protected]>
net: hns: Fix memleak in hns_nic_dev_probe
Florian Westphal <[email protected]>
netfilter: nf_tables: fix destination register zeroing
Pablo Neira Ayuso <[email protected]>
netfilter: nf_tables: incorrect enum nft_list_attributes definition
Pablo Neira Ayuso <[email protected]>
netfilter: nf_tables: add NFTA_SET_USERDATA if not null
Tiezhu Yang <[email protected]>
perf top: Skip side-band event setup if HAVE_LIBBPF_SUPPORT is not set
David Ahern <[email protected]>
perf sched timehist: Fix use of CPU list with summary option
Raul E Rangel <[email protected]>
mmc: sdhci-acpi: Fix HS400 tuning for AMDI0040
Florian Fainelli <[email protected]>
MIPS: BMIPS: Also call bmips_cpu_setup() for secondary cores
Florian Fainelli <[email protected]>
MIPS: mm: BMIPS5000 has inclusive physical caches
David Howells <[email protected]>
rxrpc: Make rxrpc_kernel_get_srtt() indicate validity
David Howells <[email protected]>
rxrpc: Fix loss of RTT samples due to interposed ACK
David Howells <[email protected]>
rxrpc: Keep the ACK serial in a var in rxrpc_input_ack()
Yu Kuai <[email protected]>
dmaengine: at_hdmac: add missing kfree() call in at_dma_xlate()
Yu Kuai <[email protected]>
dmaengine: at_hdmac: add missing put_device() call in at_dma_xlate()
Yu Kuai <[email protected]>
dmaengine: at_hdmac: check return value of of_find_device_by_node() in at_dma_xlate()
Jussi Kivilinna <[email protected]>
batman-adv: bla: use netif_rx_ni when not in interrupt context
Linus Lüssing <[email protected]>
batman-adv: Fix own OGM check in aggregated OGMs
Sven Eckelmann <[email protected]>
batman-adv: Avoid uninitialized chaddr when handling DHCP
Peter Ujfalusi <[email protected]>
dmaengine: of-dma: Fix of_dma_router_xlate's of_dma_xlate handling
Linus Torvalds <[email protected]>
fsldma: fix very broken 32-bit ppc ioread64 functionality
Simon Leiner <[email protected]>
xen/xenbus: Fix granting of vmalloc'd memory
Dinghao Liu <[email protected]>
drm/amd/display: Fix memleak in amdgpu_dm_mode_config_init
Wayne Lin <[email protected]>
drm/amd/display: Retry AUX write when fail occurs
Brandon Syu <[email protected]>
drm/amd/display: Keep current gain when ABM disable immediately
Samson Tam <[email protected]>
drm/amd/display: Fix passive dongle mistaken as active dongle in EDID emulation
Jaehyun Chung <[email protected]>
drm/amd/display: Revert HDCP disable sequence change
Furquan Shaikh <[email protected]>
drivers: gpu: amd: Initialize amdgpu_dm_backlight_caps object to 0 in amdgpu_dm_update_backlight_caps
Nicholas Kazlauskas <[email protected]>
drm/amd/display: Reject overlay plane configurations in multi-display scenarios
Tong Zhang <[email protected]>
drm/amd/display: should check error using DC_OK
Sven Schnelle <[email protected]>
s390: don't trace preemption in percpu macros
Hou Pu <[email protected]>
nbd: restore default timeout when setting it to zero
Peter Zijlstra <[email protected]>
cpuidle: Fixup IRQ state
Paul Cercueil <[email protected]>
irqchip/ingenic: Leave parent IRQ unmasked on suspend
Tomi Valkeinen <[email protected]>
drm/omap: fix incorrect lock state
Ray Jui <[email protected]>
i2c: iproc: Fix shifting 31 bits
Jeff Layton <[email protected]>
ceph: don't allow setlease on cephfs
Vineeth Pillai <[email protected]>
hv_utils: drain the timesync packets on onchannelcallback
Vineeth Pillai <[email protected]>
hv_utils: return error if host timesysnc update is stale
Bob Peterson <[email protected]>
gfs2: add some much needed cleanup for log flushes that fail
Dmitry Baryshkov <[email protected]>
drm/msm/a6xx: fix gmu start on newer firmware
Ofir Bitton <[email protected]>
habanalabs: check correct vmalloc return code
Ofir Bitton <[email protected]>
habanalabs: validate FW file size
Oded Gabbay <[email protected]>
habanalabs: set max power according to card type
Ofir Bitton <[email protected]>
habanalabs: proper handling of alloc size in coresight
Ofir Bitton <[email protected]>
habanalabs: set clock gating according to mask
Ofir Bitton <[email protected]>
habanalabs: validate packet id during CB parse
Ofir Bitton <[email protected]>
habanalabs: unmap PCI bars upon iATU failure
Rob Clark <[email protected]>
drm/msm: enable vblank during atomic commits
Amit Engel <[email protected]>
nvmet: Disable keep-alive timer when kato is cleared to 0h
Tom Rix <[email protected]>
hwmon: (applesmc) check status earlier.
Krishna Manikandan <[email protected]>
drm/msm: add shutdown support for display platform_driver
John Stultz <[email protected]>
tty: serial: qcom_geni_serial: Drop __init from qcom_geni_console_setup
Rob Clark <[email protected]>
drm/msm/dpu: fix unitialized variable error
Kalyan Thota <[email protected]>
drm/msm/dpu: Fix scale params in plane validation
Kalyan Thota <[email protected]>
drm/msm/dpu: Fix reservation failures in modeset
Sebastian Parschauer <[email protected]>
HID: quirks: Always poll three more Lenovo PixArt mice
Grant Peltier <[email protected]>
hwmon: (pmbus/isl68137) remove READ_TEMPERATURE_1 telemetry for RAA228228
-------------
Diffstat:
Documentation/devicetree/bindings/mmc/mtk-sd.txt | 2 +
Documentation/filesystems/affs.rst | 16 ++-
Makefile | 4 +-
arch/arc/kernel/perf_event.c | 14 +--
arch/arc/mm/init.c | 27 +++--
arch/arm64/boot/dts/mediatek/mt7622.dtsi | 2 +
arch/mips/kernel/perf_event_mipsxx.c | 4 +-
arch/mips/kernel/smp-bmips.c | 2 +
arch/mips/kernel/traps.c | 12 ++
arch/mips/mm/c-r4k.c | 4 +
arch/mips/oprofile/op_model_mipsxx.c | 4 +-
arch/mips/sni/a20r.c | 4 +-
arch/s390/Kconfig | 2 +-
arch/s390/include/asm/percpu.h | 28 ++---
arch/x86/entry/common.c | 12 +-
arch/x86/include/asm/ptrace.h | 2 +-
arch/x86/include/asm/switch_to.h | 23 ++++
arch/x86/kernel/setup_percpu.c | 6 +-
arch/x86/kernel/traps.c | 66 +++++-----
arch/x86/mm/fault.c | 134 +++++++++++++++++++++
arch/x86/mm/numa_emulation.c | 2 +-
arch/x86/mm/pti.c | 8 +-
arch/x86/mm/tlb.c | 37 ++++++
block/blk-core.c | 1 +
block/blk-iocost.c | 5 +-
block/blk-stat.c | 17 ++-
block/partitions/core.c | 27 ++---
drivers/ata/libata-core.c | 5 +-
drivers/ata/libata-scsi.c | 8 +-
drivers/block/nbd.c | 2 +
drivers/cpuidle/cpuidle.c | 3 +-
drivers/dma/at_hdmac.c | 11 +-
drivers/dma/dw-edma/dw-edma-core.c | 11 +-
drivers/dma/fsldma.h | 12 +-
drivers/dma/of-dma.c | 8 +-
drivers/dma/pl330.c | 2 +-
drivers/dma/ti/k3-udma.c | 6 +-
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 12 +-
.../amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 2 +-
drivers/gpu/drm/amd/display/dc/core/dc_link.c | 3 +-
drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 8 +-
drivers/gpu/drm/amd/display/dc/dc_stream.h | 2 +-
.../gpu/drm/amd/display/dc/dcn10/dcn10_resource.c | 8 ++
.../gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c | 14 ++-
drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c | 2 +
drivers/gpu/drm/i915/display/intel_hdcp.c | 26 +++-
drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 12 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 2 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 20 +--
drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 4 +-
drivers/gpu/drm/msm/msm_atomic.c | 36 ++++++
drivers/gpu/drm/msm/msm_drv.c | 8 ++
drivers/gpu/drm/omapdrm/omap_crtc.c | 3 +-
drivers/gpu/drm/radeon/radeon_display.c | 2 +-
drivers/hid/hid-ids.h | 3 +
drivers/hid/hid-quirks.c | 3 +
drivers/hv/hv_util.c | 65 +++++++---
drivers/hwmon/applesmc.c | 31 ++---
drivers/hwmon/pmbus/isl68137.c | 7 +-
drivers/i2c/busses/i2c-bcm-iproc.c | 4 +-
drivers/iommu/Kconfig | 2 +-
drivers/iommu/amd/init.c | 21 +++-
drivers/iommu/amd/iommu.c | 19 ++-
drivers/iommu/intel/iommu.c | 14 +--
drivers/iommu/intel/irq_remapping.c | 10 +-
drivers/irqchip/irq-ingenic.c | 2 +-
drivers/md/dm-cache-metadata.c | 8 +-
drivers/md/dm-crypt.c | 4 +-
drivers/md/dm-integrity.c | 12 ++
drivers/md/dm-mpath.c | 22 ++--
drivers/md/dm-thin-metadata.c | 10 +-
drivers/md/dm-writecache.c | 12 +-
drivers/md/persistent-data/dm-block-manager.c | 14 ++-
drivers/media/i2c/Kconfig | 2 +-
drivers/media/rc/rc-main.c | 44 ++++---
drivers/media/test-drivers/vicodec/vicodec-core.c | 1 +
drivers/misc/habanalabs/device.c | 7 +-
drivers/misc/habanalabs/firmware_if.c | 9 ++
drivers/misc/habanalabs/gaudi/gaudi.c | 90 ++++++++++----
drivers/misc/habanalabs/gaudi/gaudiP.h | 3 +-
drivers/misc/habanalabs/gaudi/gaudi_coresight.c | 8 +-
drivers/misc/habanalabs/goya/goya.c | 31 +++++
drivers/misc/habanalabs/goya/goya_coresight.c | 8 +-
drivers/misc/habanalabs/habanalabs.h | 7 +-
drivers/misc/habanalabs/memory.c | 9 +-
drivers/misc/habanalabs/mmu.c | 2 +-
drivers/misc/habanalabs/pci.c | 6 +-
drivers/misc/habanalabs/sysfs.c | 7 +-
drivers/mmc/host/mtk-sd.c | 13 ++
drivers/mmc/host/sdhci-acpi.c | 67 +++++++++--
drivers/mmc/host/sdhci-pci-core.c | 10 +-
drivers/mmc/host/sdhci-tegra.c | 53 +++++++-
drivers/net/dsa/mt7530.c | 2 +-
drivers/net/ethernet/arc/emac_mdio.c | 1 +
drivers/net/ethernet/broadcom/bcmsysport.c | 6 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 36 +++---
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 16 +--
drivers/net/ethernet/broadcom/genet/bcmgenet.c | 2 +-
drivers/net/ethernet/broadcom/tg3.c | 17 ++-
drivers/net/ethernet/chelsio/cxgb4/cxgb4_thermal.c | 8 +-
drivers/net/ethernet/cortina/gemini.c | 34 +++---
drivers/net/ethernet/hisilicon/hns/hns_enet.c | 9 +-
drivers/net/ethernet/mellanox/mlx4/mr.c | 2 +-
.../ethernet/netronome/nfp/flower/tunnel_conf.c | 2 +
drivers/net/ethernet/renesas/ravb_main.c | 110 ++++++++---------
drivers/net/ethernet/ti/am65-cpsw-nuss.c | 2 +
drivers/net/ethernet/ti/cpsw.c | 2 +-
drivers/net/ethernet/ti/cpsw_new.c | 29 +++--
drivers/net/gtp.c | 1 +
drivers/net/phy/dp83867.c | 4 +-
drivers/net/usb/asix_common.c | 2 +-
drivers/nvme/host/core.c | 2 +-
drivers/nvme/target/core.c | 6 +
drivers/nvme/target/fc.c | 4 +-
drivers/opp/core.c | 22 +++-
drivers/opp/opp.h | 2 +-
drivers/staging/media/sunxi/cedrus/cedrus.c | 7 +-
drivers/thermal/qcom/qcom-spmi-temp-alarm.c | 4 +-
.../thermal/ti-soc-thermal/omap4-thermal-data.c | 23 ++--
drivers/thermal/ti-soc-thermal/omap4xxx-bandgap.h | 10 +-
drivers/tty/serial/qcom_geni_serial.c | 2 +-
drivers/xen/xenbus/xenbus_client.c | 10 +-
fs/affs/amigaffs.c | 27 +++++
fs/affs/file.c | 26 +++-
fs/afs/fs_probe.c | 4 +-
fs/afs/vl_probe.c | 4 +-
fs/btrfs/block-group.c | 4 +-
fs/btrfs/ctree.c | 6 +-
fs/btrfs/extent-tree.c | 2 +-
fs/btrfs/extent_io.c | 8 +-
fs/btrfs/extent_io.h | 6 +-
fs/btrfs/free-space-tree.c | 4 +
fs/btrfs/ioctl.c | 27 +++--
fs/btrfs/scrub.c | 122 +++++++++++--------
fs/btrfs/tree-checker.c | 2 +-
fs/btrfs/volumes.c | 3 +-
fs/ceph/file.c | 1 +
fs/eventpoll.c | 6 +-
fs/ext2/file.c | 6 +-
fs/gfs2/log.c | 31 +++++
fs/gfs2/trans.c | 1 +
fs/io_uring.c | 16 ++-
fs/xfs/libxfs/xfs_attr_leaf.c | 4 +-
fs/xfs/libxfs/xfs_bmap.c | 2 +-
fs/xfs/xfs_bmap_util.c | 2 +-
fs/xfs/xfs_file.c | 12 +-
include/drm/drm_hdcp.h | 3 +
include/linux/bvec.h | 9 +-
include/linux/libata.h | 1 +
include/linux/log2.h | 2 +-
include/linux/netfilter/nfnetlink.h | 3 +-
include/net/af_rxrpc.h | 2 +-
include/net/netfilter/nf_tables.h | 2 +
include/trace/events/rxrpc.h | 27 ++++-
include/uapi/linux/netfilter/nf_tables.h | 2 +-
kernel/bpf/syscall.c | 2 +-
mm/hugetlb.c | 49 ++++++--
mm/khugepaged.c | 2 +-
mm/madvise.c | 2 +-
mm/memory.c | 36 ++++--
mm/migrate.c | 17 ++-
mm/rmap.c | 9 +-
mm/slub.c | 12 +-
net/batman-adv/bat_v_ogm.c | 11 +-
net/batman-adv/bridge_loop_avoidance.c | 5 +-
net/batman-adv/gateway_client.c | 6 +-
net/bluetooth/hci_core.c | 2 +-
net/netfilter/nf_conntrack_proto_udp.c | 26 ++--
net/netfilter/nf_tables_api.c | 64 +++++-----
net/netfilter/nfnetlink.c | 11 +-
net/netfilter/nfnetlink_log.c | 3 +-
net/netfilter/nfnetlink_queue.c | 2 +-
net/netfilter/nft_flow_offload.c | 2 +-
net/netfilter/nft_payload.c | 4 +-
net/packet/af_packet.c | 7 +-
net/rxrpc/ar-internal.h | 13 +-
net/rxrpc/call_object.c | 1 +
net/rxrpc/input.c | 123 +++++++++++--------
net/rxrpc/output.c | 82 +++++++++----
net/rxrpc/peer_object.c | 16 ++-
net/rxrpc/rtt.c | 3 +-
net/wireless/reg.c | 3 +
scripts/checkpatch.pl | 4 +-
scripts/kconfig/streamline_config.pl | 5 +-
sound/core/oss/mulaw.c | 4 +-
sound/firewire/digi00x/digi00x.c | 5 +
sound/firewire/tascam/tascam.c | 33 ++++-
sound/pci/ca0106/ca0106_main.c | 3 +-
sound/pci/hda/hda_intel.c | 2 -
sound/pci/hda/patch_hdmi.c | 1 +
sound/pci/hda/patch_realtek.c | 46 ++++++-
sound/usb/pcm.c | 2 +
sound/usb/quirks-table.h | 60 +++++++--
sound/usb/quirks.c | 1 +
tools/include/uapi/linux/perf_event.h | 2 +-
tools/perf/Documentation/perf-stat.txt | 3 +
tools/perf/bench/synthesize.c | 4 +-
tools/perf/builtin-record.c | 2 +-
tools/perf/builtin-sched.c | 6 +-
tools/perf/builtin-stat.c | 8 +-
tools/perf/builtin-top.c | 2 +
tools/perf/pmu-events/jevents.c | 2 +-
tools/perf/ui/browsers/hists.c | 3 +-
tools/perf/util/cs-etm.c | 9 +-
tools/perf/util/intel-pt.c | 9 +-
tools/perf/util/stat.h | 1 +
tools/testing/selftests/bpf/test_maps.c | 2 +
207 files changed, 2040 insertions(+), 783 deletions(-)
From: Tomi Valkeinen <[email protected]>
[ Upstream commit 7fd5b25499bcec157dd4de9a713425efcf4571cd ]
After commit 92cc68e35863c1c61c449efa2b2daef6e9926048 ("drm/vblank: Use
spin_(un)lock_irq() in drm_crtc_vblank_on()") omapdrm locking is broken:
WARNING: inconsistent lock state
5.8.0-rc2-00483-g92cc68e35863 #13 Tainted: G W
--------------------------------
inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage.
swapper/0/0 [HC1[1]:SC0[0]:HE0:SE1] takes:
ea98222c (&dev->event_lock#2){?.+.}-{2:2}, at: drm_handle_vblank+0x4c/0x520 [drm]
{HARDIRQ-ON-W} state was registered at:
trace_hardirqs_on+0x9c/0x1ec
_raw_spin_unlock_irq+0x20/0x58
omap_crtc_atomic_enable+0x54/0xa0 [omapdrm]
drm_atomic_helper_commit_modeset_enables+0x218/0x270 [drm_kms_helper]
omap_atomic_commit_tail+0x48/0xc4 [omapdrm]
commit_tail+0x9c/0x190 [drm_kms_helper]
drm_atomic_helper_commit+0x154/0x188 [drm_kms_helper]
drm_client_modeset_commit_atomic+0x228/0x268 [drm]
drm_client_modeset_commit_locked+0x60/0x1d0 [drm]
drm_client_modeset_commit+0x24/0x40 [drm]
drm_fb_helper_restore_fbdev_mode_unlocked+0x54/0xa8 [drm_kms_helper]
drm_fb_helper_set_par+0x2c/0x5c [drm_kms_helper]
drm_fb_helper_hotplug_event.part.0+0xa0/0xbc [drm_kms_helper]
drm_kms_helper_hotplug_event+0x24/0x30 [drm_kms_helper]
output_poll_execute+0x1a8/0x1c0 [drm_kms_helper]
process_one_work+0x268/0x800
worker_thread+0x30/0x4e0
kthread+0x164/0x190
ret_from_fork+0x14/0x20
The reason for this is that omapdrm calls drm_crtc_vblank_on() while
holding event_lock taken with spin_lock_irq().
It is not clear why drm_crtc_vblank_on() and drm_crtc_vblank_get() are
called while holding event_lock. I don't see any problem with moving
those calls outside the lock, which is what this patch does.
Signed-off-by: Tomi Valkeinen <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
Reviewed-by: Laurent Pinchart <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/gpu/drm/omapdrm/omap_crtc.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c b/drivers/gpu/drm/omapdrm/omap_crtc.c
index 6d40914675dad..328a4a74f534e 100644
--- a/drivers/gpu/drm/omapdrm/omap_crtc.c
+++ b/drivers/gpu/drm/omapdrm/omap_crtc.c
@@ -451,11 +451,12 @@ static void omap_crtc_atomic_enable(struct drm_crtc *crtc,
if (omap_state->manually_updated)
return;
- spin_lock_irq(&crtc->dev->event_lock);
drm_crtc_vblank_on(crtc);
+
ret = drm_crtc_vblank_get(crtc);
WARN_ON(ret != 0);
+ spin_lock_irq(&crtc->dev->event_lock);
omap_crtc_arm_event(crtc);
spin_unlock_irq(&crtc->dev->event_lock);
}
--
2.25.1
From: Ray Jui <[email protected]>
[ Upstream commit 0204081128d582965e9e39ca83ee6e4f7d27142b ]
Fix undefined behaviour in the iProc I2C driver by using 'BIT' marcro.
Reported-by: Wolfram Sang <[email protected]>
Signed-off-by: Ray Jui <[email protected]>
Acked-by: Florian Fainelli <[email protected]>
[wsa: in commit msg, don't say 'checkpatch' but name the issue]
Signed-off-by: Wolfram Sang <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/i2c/busses/i2c-bcm-iproc.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/i2c/busses/i2c-bcm-iproc.c b/drivers/i2c/busses/i2c-bcm-iproc.c
index 688e928188214..d8295b1c379d1 100644
--- a/drivers/i2c/busses/i2c-bcm-iproc.c
+++ b/drivers/i2c/busses/i2c-bcm-iproc.c
@@ -720,7 +720,7 @@ static int bcm_iproc_i2c_xfer_internal(struct bcm_iproc_i2c_dev *iproc_i2c,
/* mark the last byte */
if (!process_call && (i == msg->len - 1))
- val |= 1 << M_TX_WR_STATUS_SHIFT;
+ val |= BIT(M_TX_WR_STATUS_SHIFT);
iproc_i2c_wr_reg(iproc_i2c, M_TX_OFFSET, val);
}
@@ -738,7 +738,7 @@ static int bcm_iproc_i2c_xfer_internal(struct bcm_iproc_i2c_dev *iproc_i2c,
*/
addr = i2c_8bit_addr_from_msg(msg);
/* mark it the last byte out */
- val = addr | (1 << M_TX_WR_STATUS_SHIFT);
+ val = addr | BIT(M_TX_WR_STATUS_SHIFT);
iproc_i2c_wr_reg(iproc_i2c, M_TX_OFFSET, val);
}
--
2.25.1
From: Paul Cercueil <[email protected]>
[ Upstream commit 821fc9e261f3af235752f46e59084467cfd440c4 ]
All the wakeup sources we possibly want will go through the interrupt
controller, so the parent IRQ must not be masked during suspend, or
there won't be any way to wake up the system.
Signed-off-by: Paul Cercueil <[email protected]>
Signed-off-by: Marc Zyngier <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/irqchip/irq-ingenic.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/irqchip/irq-ingenic.c b/drivers/irqchip/irq-ingenic.c
index 9f3da4260ca65..b61a8901ef722 100644
--- a/drivers/irqchip/irq-ingenic.c
+++ b/drivers/irqchip/irq-ingenic.c
@@ -125,7 +125,7 @@ static int __init ingenic_intc_of_init(struct device_node *node,
irq_reg_writel(gc, IRQ_MSK(32), JZ_REG_INTC_SET_MASK);
}
- if (request_irq(parent_irq, intc_cascade, 0,
+ if (request_irq(parent_irq, intc_cascade, IRQF_NO_SUSPEND,
"SoC intc cascade interrupt", NULL))
pr_err("Failed to register SoC intc cascade interrupt\n");
return 0;
--
2.25.1
From: Kalyan Thota <[email protected]>
[ Upstream commit 4c978caf08aa155bdeadd9e2d4b026d4ce97ebd0 ]
Plane validation uses an API drm_calc_scale which will
return src/dst value as a scale ratio.
when viewing the range on a scale the values should fall in as
Upscale ratio < Unity scale < Downscale ratio for src/dst formula
Fix the min and max scale ratios to suit the API accordingly.
Signed-off-by: Kalyan Thota <[email protected]>
Tested-by: Kristian H. Kristensen <[email protected]>
Reviewed-by: Kristian H. Kristensen <[email protected]>
Signed-off-by: Rob Clark <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
index 3b9c33e694bf4..994d23bad3870 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
@@ -866,9 +866,9 @@ static int dpu_plane_atomic_check(struct drm_plane *plane,
crtc_state = drm_atomic_get_new_crtc_state(state->state,
state->crtc);
- min_scale = FRAC_16_16(1, pdpu->pipe_sblk->maxdwnscale);
+ min_scale = FRAC_16_16(1, pdpu->pipe_sblk->maxupscale);
ret = drm_atomic_helper_check_plane_state(state, crtc_state, min_scale,
- pdpu->pipe_sblk->maxupscale << 16,
+ pdpu->pipe_sblk->maxdwnscale << 16,
true, true);
if (ret) {
DPU_DEBUG_PLANE(pdpu, "Check plane state failed (%d)\n", ret);
--
2.25.1
From: Hou Pu <[email protected]>
[ Upstream commit acb19e17c5134dd78668c429ecba5b481f038e6a ]
If we configured io timeout of nbd0 to 100s. Later after we
finished using it, we configured nbd0 again and set the io
timeout to 0. We expect it would timeout after 30 seconds
and keep retry. But in fact we could not change the timeout
when we set it to 0. the timeout is still the original 100s.
So change the timeout to default 30s when we set it to zero.
It also behaves same as commit 2da22da57348 ("nbd: fix zero
cmd timeout handling v2").
It becomes more important if we were reconfigure a nbd device
and the io timeout it set to zero. Because it could take 30s
to detect the new socket and thus io could be completed more
quickly compared to 100s.
Signed-off-by: Hou Pu <[email protected]>
Reviewed-by: Josef Bacik <[email protected]>
Signed-off-by: Jens Axboe <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/block/nbd.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
index ce7e9f223b20b..bc9dc1f847e19 100644
--- a/drivers/block/nbd.c
+++ b/drivers/block/nbd.c
@@ -1360,6 +1360,8 @@ static void nbd_set_cmd_timeout(struct nbd_device *nbd, u64 timeout)
nbd->tag_set.timeout = timeout * HZ;
if (timeout)
blk_queue_rq_timeout(nbd->disk->queue, timeout * HZ);
+ else
+ blk_queue_rq_timeout(nbd->disk->queue, 30 * HZ);
}
/* Must be called with config_lock held */
--
2.25.1
From: Rob Clark <[email protected]>
[ Upstream commit 35c719da95c0d28560bff7bafeaf07ebb212665e ]
drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c:817 dpu_crtc_enable() error: uninitialized symbol 'request_bandwidth'.
Reported-by: kernel test robot <[email protected]>
Signed-off-by: Rob Clark <[email protected]>
Reviewed-by: Sean Paul <[email protected]>
Signed-off-by: Rob Clark <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
index 969d95aa873c4..1026e1e5bec10 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
@@ -827,7 +827,7 @@ static void dpu_crtc_enable(struct drm_crtc *crtc,
{
struct dpu_crtc *dpu_crtc;
struct drm_encoder *encoder;
- bool request_bandwidth;
+ bool request_bandwidth = false;
if (!crtc) {
DPU_ERROR("invalid crtc\n");
--
2.25.1
From: Jeff Layton <[email protected]>
[ Upstream commit 496ceaf12432b3d136dcdec48424312e71359ea7 ]
Leases don't currently work correctly on kcephfs, as they are not broken
when caps are revoked. They could eventually be implemented similarly to
how we did them in libcephfs, but for now don't allow them.
[ idryomov: no need for simple_nosetlease() in ceph_dir_fops and
ceph_snapdir_fops ]
Signed-off-by: Jeff Layton <[email protected]>
Reviewed-by: Ilya Dryomov <[email protected]>
Signed-off-by: Ilya Dryomov <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
fs/ceph/file.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/fs/ceph/file.c b/fs/ceph/file.c
index d51c3f2fdca02..327649883ec7c 100644
--- a/fs/ceph/file.c
+++ b/fs/ceph/file.c
@@ -2507,6 +2507,7 @@ const struct file_operations ceph_file_fops = {
.mmap = ceph_mmap,
.fsync = ceph_fsync,
.lock = ceph_lock,
+ .setlease = simple_nosetlease,
.flock = ceph_flock,
.splice_read = generic_file_splice_read,
.splice_write = iter_file_splice_write,
--
2.25.1
From: Kalyan Thota <[email protected]>
[ Upstream commit ccc862b957c6413b008fbe458034372847992d7f ]
In TEST_ONLY commit, rm global_state will duplicate the
object and request for new reservations, once they pass
then the new state will be swapped with the old and will
be available for the Atomic Commit.
This patch fixes some of missing links in the resource
reservation sequence mentioned above.
1) Creation of duplicate state in test_only commit (Rob)
2) Allocate and release the resources on every modeset.
3) Avoid allocation only when active is false.
In a modeset operation, swap state happens well before
disable. Hence clearing reservations in disable will
cause failures in modeset enable.
Allow reservations to be cleared/allocated before swap,
such that only newly committed resources are pushed to HW.
Changes in v1:
- Move the rm release to atomic_check.
- Ensure resource allocation and free happens when active
is not changed i.e only when mode is changed.(Rob)
Changes in v2:
- Handle dpu_kms_get_global_state API failure as it may
return EDEADLK (swboyd).
Signed-off-by: Kalyan Thota <[email protected]>
Signed-off-by: Rob Clark <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
index 0946a86b37b28..c0cd936314e66 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
@@ -586,7 +586,10 @@ static int dpu_encoder_virt_atomic_check(
dpu_kms = to_dpu_kms(priv->kms);
mode = &crtc_state->mode;
adj_mode = &crtc_state->adjusted_mode;
- global_state = dpu_kms_get_existing_global_state(dpu_kms);
+ global_state = dpu_kms_get_global_state(crtc_state->state);
+ if (IS_ERR(global_state))
+ return PTR_ERR(global_state);
+
trace_dpu_enc_atomic_check(DRMID(drm_enc));
/*
@@ -621,12 +624,15 @@ static int dpu_encoder_virt_atomic_check(
/* Reserve dynamic resources now. */
if (!ret) {
/*
- * Avoid reserving resources when mode set is pending. Topology
- * info may not be available to complete reservation.
+ * Release and Allocate resources on every modeset
+ * Dont allocate when active is false.
*/
if (drm_atomic_crtc_needs_modeset(crtc_state)) {
- ret = dpu_rm_reserve(&dpu_kms->rm, global_state,
- drm_enc, crtc_state, topology);
+ dpu_rm_release(global_state, drm_enc);
+
+ if (!crtc_state->active_changed || crtc_state->active)
+ ret = dpu_rm_reserve(&dpu_kms->rm, global_state,
+ drm_enc, crtc_state, topology);
}
}
@@ -1175,7 +1181,6 @@ static void dpu_encoder_virt_disable(struct drm_encoder *drm_enc)
struct dpu_encoder_virt *dpu_enc = NULL;
struct msm_drm_private *priv;
struct dpu_kms *dpu_kms;
- struct dpu_global_state *global_state;
int i = 0;
if (!drm_enc) {
@@ -1194,7 +1199,6 @@ static void dpu_encoder_virt_disable(struct drm_encoder *drm_enc)
priv = drm_enc->dev->dev_private;
dpu_kms = to_dpu_kms(priv->kms);
- global_state = dpu_kms_get_existing_global_state(dpu_kms);
trace_dpu_enc_disable(DRMID(drm_enc));
@@ -1224,8 +1228,6 @@ static void dpu_encoder_virt_disable(struct drm_encoder *drm_enc)
DPU_DEBUG_ENC(dpu_enc, "encoder disabled\n");
- dpu_rm_release(global_state, drm_enc);
-
mutex_unlock(&dpu_enc->enc_lock);
}
--
2.25.1
From: Vineeth Pillai <[email protected]>
[ Upstream commit b46b4a8a57c377b72a98c7930a9f6969d2d4784e ]
There could be instances where a system stall prevents the timesync
packets to be consumed. And this might lead to more than one packet
pending in the ring buffer. Current code empties one packet per callback
and it might be a stale one. So drain all the packets from ring buffer
on each callback.
Signed-off-by: Vineeth Pillai <[email protected]>
Reviewed-by: Michael Kelley <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Wei Liu <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/hv/hv_util.c | 19 ++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)
diff --git a/drivers/hv/hv_util.c b/drivers/hv/hv_util.c
index 1f86e8d9b018d..a4e8d96513c22 100644
--- a/drivers/hv/hv_util.c
+++ b/drivers/hv/hv_util.c
@@ -387,10 +387,23 @@ static void timesync_onchannelcallback(void *context)
struct ictimesync_ref_data *refdata;
u8 *time_txf_buf = util_timesynch.recv_buffer;
- vmbus_recvpacket(channel, time_txf_buf,
- HV_HYP_PAGE_SIZE, &recvlen, &requestid);
+ /*
+ * Drain the ring buffer and use the last packet to update
+ * host_ts
+ */
+ while (1) {
+ int ret = vmbus_recvpacket(channel, time_txf_buf,
+ HV_HYP_PAGE_SIZE, &recvlen,
+ &requestid);
+ if (ret) {
+ pr_warn_once("TimeSync IC pkt recv failed (Err: %d)\n",
+ ret);
+ break;
+ }
+
+ if (!recvlen)
+ break;
- if (recvlen > 0) {
icmsghdrp = (struct icmsg_hdr *)&time_txf_buf[
sizeof(struct vmbuspipe_hdr)];
--
2.25.1
From: Marcos Paulo de Souza <[email protected]>
commit e3e39c72b99f93bbd0420d38c858e7c4a061bb63 upstream.
[BUG]
After commit 9afc66498a0b ("btrfs: block-group: refactor how we read one
block group item"), cache->length is being assigned after calling
btrfs_create_block_group_cache. This causes a problem since
set_free_space_tree_thresholds calculates the free-space threshold to
decide if the free-space tree should convert from extents to bitmaps.
The current code calls set_free_space_tree_thresholds with cache->length
being 0, which then makes cache->bitmap_high_thresh zero. This implies
the system will always use bitmap instead of extents, which is not
desired if the block group is not fragmented.
This behavior can be seen by a test that expects to repair systems
with FREE_SPACE_EXTENT and FREE_SPACE_BITMAP, but the current code only
created FREE_SPACE_BITMAP.
[FIX]
Call set_free_space_tree_thresholds after setting cache->length. There
is now a WARN_ON in set_free_space_tree_thresholds to help preventing
the same mistake to happen again in the future.
Link: https://github.com/kdave/btrfs-progs/issues/251
Fixes: 9afc66498a0b ("btrfs: block-group: refactor how we read one block group item")
CC: [email protected] # 5.8+
Reviewed-by: Qu Wenruo <[email protected]>
Reviewed-by: Filipe Manana <[email protected]>
Signed-off-by: Marcos Paulo de Souza <[email protected]>
Signed-off-by: David Sterba <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
fs/btrfs/block-group.c | 4 +++-
fs/btrfs/free-space-tree.c | 4 ++++
2 files changed, 7 insertions(+), 1 deletion(-)
--- a/fs/btrfs/block-group.c
+++ b/fs/btrfs/block-group.c
@@ -1814,7 +1814,6 @@ static struct btrfs_block_group *btrfs_c
cache->fs_info = fs_info;
cache->full_stripe_len = btrfs_full_stripe_len(fs_info, start);
- set_free_space_tree_thresholds(cache);
cache->discard_index = BTRFS_DISCARD_INDEX_UNUSED;
@@ -1928,6 +1927,8 @@ static int read_one_block_group(struct b
if (ret < 0)
goto error;
+ set_free_space_tree_thresholds(cache);
+
if (need_clear) {
/*
* When we mount with old space cache, we need to
@@ -2148,6 +2149,7 @@ int btrfs_make_block_group(struct btrfs_
return -ENOMEM;
cache->length = size;
+ set_free_space_tree_thresholds(cache);
cache->used = bytes_used;
cache->flags = type;
cache->last_byte_to_unpin = (u64)-1;
--- a/fs/btrfs/free-space-tree.c
+++ b/fs/btrfs/free-space-tree.c
@@ -22,6 +22,10 @@ void set_free_space_tree_thresholds(stru
size_t bitmap_size;
u64 num_bitmaps, total_bitmap_size;
+ if (WARN_ON(cache->length == 0))
+ btrfs_warn(cache->fs_info, "block group %llu length is zero",
+ cache->start);
+
/*
* We convert to bitmaps when the disk space required for using extents
* exceeds that required for using bitmaps.
From: Eric Sandeen <[email protected]>
[ Upstream commit f4020438fab05364018c91f7e02ebdd192085933 ]
The boundary test for the fixed-offset parts of xfs_attr_sf_entry in
xfs_attr_shortform_verify is off by one, because the variable array
at the end is defined as nameval[1] not nameval[].
Hence we need to subtract 1 from the calculation.
This can be shown by:
# touch file
# setfattr -n root.a file
and verifications will fail when it's written to disk.
This only matters for a last attribute which has a single-byte name
and no value, otherwise the combination of namelen & valuelen will
push endp further out and this test won't fail.
Fixes: 1e1bbd8e7ee06 ("xfs: create structure verifier function for shortform xattrs")
Signed-off-by: Eric Sandeen <[email protected]>
Reviewed-by: Darrick J. Wong <[email protected]>
Signed-off-by: Darrick J. Wong <[email protected]>
Reviewed-by: Christoph Hellwig <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
fs/xfs/libxfs/xfs_attr_leaf.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/fs/xfs/libxfs/xfs_attr_leaf.c b/fs/xfs/libxfs/xfs_attr_leaf.c
index 2f7e89e4be3e3..4eb2ecd31b0d2 100644
--- a/fs/xfs/libxfs/xfs_attr_leaf.c
+++ b/fs/xfs/libxfs/xfs_attr_leaf.c
@@ -996,8 +996,10 @@ xfs_attr_shortform_verify(
* struct xfs_attr_sf_entry has a variable length.
* Check the fixed-offset parts of the structure are
* within the data buffer.
+ * xfs_attr_sf_entry is defined with a 1-byte variable
+ * array at the end, so we must subtract that off.
*/
- if (((char *)sfep + sizeof(*sfep)) >= endp)
+ if (((char *)sfep + sizeof(*sfep) - 1) >= endp)
return __this_address;
/* Don't allow names with known bad length. */
--
2.25.1
From: Max Staudt <[email protected]>
commit d3a84a8d0dde4e26bc084b36ffcbdc5932ac85e2 upstream.
The basic permission bits (protection bits in AmigaOS) have been broken
in Linux' AFFS - it would only set bits, but never delete them.
Also, contrary to the documentation, the Archived bit was not handled.
Let's fix this for good, and set the bits such that Linux and classic
AmigaOS can coexist in the most peaceful manner.
Also, update the documentation to represent the current state of things.
Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Cc: [email protected]
Signed-off-by: Max Staudt <[email protected]>
Signed-off-by: David Sterba <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
Documentation/filesystems/affs.rst | 16 ++++++++++------
fs/affs/amigaffs.c | 27 +++++++++++++++++++++++++++
fs/affs/file.c | 26 +++++++++++++++++++++++++-
3 files changed, 62 insertions(+), 7 deletions(-)
--- a/Documentation/filesystems/affs.rst
+++ b/Documentation/filesystems/affs.rst
@@ -110,13 +110,15 @@ The Amiga protection flags RWEDRWEDHSPAR
- R maps to r for user, group and others. On directories, R implies x.
- - If both W and D are allowed, w will be set.
+ - W maps to w.
- E maps to x.
- - H and P are always retained and ignored under Linux.
+ - D is ignored.
- - A is always reset when a file is written to.
+ - H, S and P are always retained and ignored under Linux.
+
+ - A is cleared when a file is written to.
User id and group id will be used unless set[gu]id are given as mount
options. Since most of the Amiga file systems are single user systems
@@ -128,11 +130,13 @@ Linux -> Amiga:
The Linux rwxrwxrwx file mode is handled as follows:
- - r permission will set R for user, group and others.
+ - r permission will allow R for user, group and others.
+
+ - w permission will allow W for user, group and others.
- - w permission will set W and D for user, group and others.
+ - x permission of the user will allow E for plain files.
- - x permission of the user will set E for plain files.
+ - D will be allowed for user, group and others.
- All other flags (suid, sgid, ...) are ignored and will
not be retained.
--- a/fs/affs/amigaffs.c
+++ b/fs/affs/amigaffs.c
@@ -420,24 +420,51 @@ affs_mode_to_prot(struct inode *inode)
u32 prot = AFFS_I(inode)->i_protect;
umode_t mode = inode->i_mode;
+ /*
+ * First, clear all RWED bits for owner, group, other.
+ * Then, recalculate them afresh.
+ *
+ * We'll always clear the delete-inhibit bit for the owner, as that is
+ * the classic single-user mode AmigaOS protection bit and we need to
+ * stay compatible with all scenarios.
+ *
+ * Since multi-user AmigaOS is an extension, we'll only set the
+ * delete-allow bit if any of the other bits in the same user class
+ * (group/other) are used.
+ */
+ prot &= ~(FIBF_NOEXECUTE | FIBF_NOREAD
+ | FIBF_NOWRITE | FIBF_NODELETE
+ | FIBF_GRP_EXECUTE | FIBF_GRP_READ
+ | FIBF_GRP_WRITE | FIBF_GRP_DELETE
+ | FIBF_OTR_EXECUTE | FIBF_OTR_READ
+ | FIBF_OTR_WRITE | FIBF_OTR_DELETE);
+
+ /* Classic single-user AmigaOS flags. These are inverted. */
if (!(mode & 0100))
prot |= FIBF_NOEXECUTE;
if (!(mode & 0400))
prot |= FIBF_NOREAD;
if (!(mode & 0200))
prot |= FIBF_NOWRITE;
+
+ /* Multi-user extended flags. Not inverted. */
if (mode & 0010)
prot |= FIBF_GRP_EXECUTE;
if (mode & 0040)
prot |= FIBF_GRP_READ;
if (mode & 0020)
prot |= FIBF_GRP_WRITE;
+ if (mode & 0070)
+ prot |= FIBF_GRP_DELETE;
+
if (mode & 0001)
prot |= FIBF_OTR_EXECUTE;
if (mode & 0004)
prot |= FIBF_OTR_READ;
if (mode & 0002)
prot |= FIBF_OTR_WRITE;
+ if (mode & 0007)
+ prot |= FIBF_OTR_DELETE;
AFFS_I(inode)->i_protect = prot;
}
--- a/fs/affs/file.c
+++ b/fs/affs/file.c
@@ -428,6 +428,24 @@ static int affs_write_begin(struct file
return ret;
}
+static int affs_write_end(struct file *file, struct address_space *mapping,
+ loff_t pos, unsigned int len, unsigned int copied,
+ struct page *page, void *fsdata)
+{
+ struct inode *inode = mapping->host;
+ int ret;
+
+ ret = generic_write_end(file, mapping, pos, len, copied, page, fsdata);
+
+ /* Clear Archived bit on file writes, as AmigaOS would do */
+ if (AFFS_I(inode)->i_protect & FIBF_ARCHIVED) {
+ AFFS_I(inode)->i_protect &= ~FIBF_ARCHIVED;
+ mark_inode_dirty(inode);
+ }
+
+ return ret;
+}
+
static sector_t _affs_bmap(struct address_space *mapping, sector_t block)
{
return generic_block_bmap(mapping,block,affs_get_block);
@@ -437,7 +455,7 @@ const struct address_space_operations af
.readpage = affs_readpage,
.writepage = affs_writepage,
.write_begin = affs_write_begin,
- .write_end = generic_write_end,
+ .write_end = affs_write_end,
.direct_IO = affs_direct_IO,
.bmap = _affs_bmap
};
@@ -794,6 +812,12 @@ done:
if (tmp > inode->i_size)
inode->i_size = AFFS_I(inode)->mmu_private = tmp;
+ /* Clear Archived bit on file writes, as AmigaOS would do */
+ if (AFFS_I(inode)->i_protect & FIBF_ARCHIVED) {
+ AFFS_I(inode)->i_protect &= ~FIBF_ARCHIVED;
+ mark_inode_dirty(inode);
+ }
+
err_first_bh:
unlock_page(page);
put_page(page);
From: Yu Kuai <[email protected]>
[ Upstream commit 0cef8e2c5a07d482ec907249dbd6687e8697677f ]
The reurn value of of_find_device_by_node() is not checked, thus null
pointer dereference will be triggered if of_find_device_by_node()
failed.
Fixes: bbe89c8e3d59 ("at_hdmac: move to generic DMA binding")
Signed-off-by: Yu Kuai <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Vinod Koul <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/dma/at_hdmac.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
index 73a20780744bf..22c1c507055a3 100644
--- a/drivers/dma/at_hdmac.c
+++ b/drivers/dma/at_hdmac.c
@@ -1650,6 +1650,8 @@ static struct dma_chan *at_dma_xlate(struct of_phandle_args *dma_spec,
return NULL;
dmac_pdev = of_find_device_by_node(dma_spec->np);
+ if (!dmac_pdev)
+ return NULL;
dma_cap_zero(mask);
dma_cap_set(DMA_SLAVE, mask);
--
2.25.1
On 9/8/20 9:22 AM, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 5.8.8 release.
> There are 186 patches in this series, all will be posted as a response
> to this one. If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Thu, 10 Sep 2020 15:21:57 +0000.
> Anything received after that time might be too late.
>
> The whole patch series can be found in one patch at:
> https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.8.8-rc1.gz
> or in the git tree and branch at:
> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.8.y
> and the diffstat can be found below.
>
> thanks,
>
> greg k-h
>
Compiled and booted on my test system. No dmesg regressions.
Tested-by: Shuah Khan <[email protected]>
thanks,
-- Shuah
On Tue, 8 Sep 2020 at 21:05, Greg Kroah-Hartman
<[email protected]> wrote:
>
> This is the start of the stable review cycle for the 5.8.8 release.
> There are 186 patches in this series, all will be posted as a response
> to this one. If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Thu, 10 Sep 2020 15:21:57 +0000.
> Anything received after that time might be too late.
>
> The whole patch series can be found in one patch at:
> https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.8.8-rc1.gz
> or in the git tree and branch at:
> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.8.y
> and the diffstat can be found below.
>
> thanks,
>
> greg k-h
Results from Linaro’s test farm.
No regressions on arm64, arm, x86_64, and i386.
Tested-by: Linux Kernel Functional Testing <[email protected]>
Summary
------------------------------------------------------------------------
kernel: 5.8.8-rc1
git repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
git branch: linux-5.8.y
git commit: 456fe9607f8f8a55179d2527598b8e90a2591e4d
git describe: v5.8.7-187-g456fe9607f8f
Test details: https://qa-reports.linaro.org/lkft/linux-stable-rc-5.8-oe/build/v5.8.7-187-g456fe9607f8f
No regressions (compared to build v5.8.7)
No fixes (compared to build v5.8.7)
Ran 36239 total tests in the following environments and test suites.
Environments
--------------
- dragonboard-410c
- hi6220-hikey
- i386
- juno-r2
- juno-r2-compat
- juno-r2-kasan
- nxp-ls2088
- qemu_arm
- qemu_arm64
- qemu_i386
- qemu_x86_64
- x15
- x86
- x86-kasan
Test Suites
-----------
* build
* igt-gpu-tools
* install-android-platform-tools-r2600
* kselftest
* kselftest/drivers
* kselftest/filesystems
* kselftest/net
* libhugetlbfs
* linux-log-parser
* ltp-cap_bounds-tests
* ltp-commands-tests
* ltp-controllers-tests
* ltp-cpuhotplug-tests
* ltp-crypto-tests
* ltp-cve-tests
* ltp-fcntl-locktests-tests
* ltp-filecaps-tests
* ltp-fs-tests
* ltp-fs_bind-tests
* ltp-fs_perms_simple-tests
* ltp-fsx-tests
* ltp-hugetlb-tests
* ltp-math-tests
* ltp-mm-tests
* ltp-nptl-tests
* ltp-pty-tests
* ltp-sched-tests
* ltp-securebits-tests
* ltp-syscalls-tests
* perf
* v4l2-compliance
* ltp-containers-tests
* ltp-ipc-tests
* ltp-tracing-tests
* network-basic-tests
* ltp-dio-tests
* ltp-io-tests
* ltp-open-posix-tests
* kselftest-vsyscall-mode-native
* kselftest-vsyscall-mode-native/drivers
* kselftest-vsyscall-mode-native/filesystems
* kselftest-vsyscall-mode-native/net
* kselftest-vsyscall-mode-none
* kselftest-vsyscall-mode-none/drivers
* kselftest-vsyscall-mode-none/filesystems
* kselftest-vsyscall-mode-none/net
* ssuite
--
Linaro LKFT
https://lkft.linaro.org
On Tue, Sep 08, 2020 at 05:22:22PM +0200, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 5.8.8 release.
> There are 186 patches in this series, all will be posted as a response
> to this one. If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Thu, 10 Sep 2020 15:21:57 +0000.
> Anything received after that time might be too late.
>
Build results:
total: 154 pass: 153 fail: 1
Failed builds:
powerpc:allmodconfig
Qemu test results:
total: 430 pass: 430 fail: 0
The powerpc problem is the same as before:
Inconsistent kallsyms data
Try make KALLSYMS_EXTRA_PASS=1 as a workaround
KALLSYMS_EXTRA_PASS=1 doesn't help. The problem is sporadic, elusive, and all
but impossible to bisect. The same build passes on another system, for example,
with a different load pattern. It may pass with -j30 and fail with -j40.
The problem started at some point after v5.8, and got worse over time; by now
it almost always happens. I'd be happy to debug if there is a means to do it,
but I don't have an idea where to even start. I'd disable KALLSYMS in my
test configurations, but the symbol is selected from various places and thus
difficult to disable. So unless I stop building ppc:allmodconfig entirely
we'll just have to live with the failure.
Tested-by: Guenter Roeck <[email protected]>
Guenter
On Tue, Sep 08, 2020 at 07:39:08PM -0600, Shuah Khan wrote:
> On 9/8/20 9:22 AM, Greg Kroah-Hartman wrote:
> > This is the start of the stable review cycle for the 5.8.8 release.
> > There are 186 patches in this series, all will be posted as a response
> > to this one. If anyone has any issues with these being applied, please
> > let me know.
> >
> > Responses should be made by Thu, 10 Sep 2020 15:21:57 +0000.
> > Anything received after that time might be too late.
> >
> > The whole patch series can be found in one patch at:
> > https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.8.8-rc1.gz
> > or in the git tree and branch at:
> > git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.8.y
> > and the diffstat can be found below.
> >
> > thanks,
> >
> > greg k-h
> >
>
> Compiled and booted on my test system. No dmesg regressions.
>
> Tested-by: Shuah Khan <[email protected]>
Thanks for testing all of them and letting me know.
greg k-h
On Wed, Sep 09, 2020 at 11:18:57AM +0530, Naresh Kamboju wrote:
> On Tue, 8 Sep 2020 at 21:05, Greg Kroah-Hartman
> <[email protected]> wrote:
> >
> > This is the start of the stable review cycle for the 5.8.8 release.
> > There are 186 patches in this series, all will be posted as a response
> > to this one. If anyone has any issues with these being applied, please
> > let me know.
> >
> > Responses should be made by Thu, 10 Sep 2020 15:21:57 +0000.
> > Anything received after that time might be too late.
> >
> > The whole patch series can be found in one patch at:
> > https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.8.8-rc1.gz
> > or in the git tree and branch at:
> > git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.8.y
> > and the diffstat can be found below.
> >
> > thanks,
> >
> > greg k-h
>
> Results from Linaro’s test farm.
> No regressions on arm64, arm, x86_64, and i386.
>
> Tested-by: Linux Kernel Functional Testing <[email protected]>
Thanks for testing them all and letting me konw.
greg k-h
On Wed, Sep 09, 2020 at 09:47:05AM -0700, Guenter Roeck wrote:
> On Tue, Sep 08, 2020 at 05:22:22PM +0200, Greg Kroah-Hartman wrote:
> > This is the start of the stable review cycle for the 5.8.8 release.
> > There are 186 patches in this series, all will be posted as a response
> > to this one. If anyone has any issues with these being applied, please
> > let me know.
> >
> > Responses should be made by Thu, 10 Sep 2020 15:21:57 +0000.
> > Anything received after that time might be too late.
> >
>
> Build results:
> total: 154 pass: 153 fail: 1
> Failed builds:
> powerpc:allmodconfig
> Qemu test results:
> total: 430 pass: 430 fail: 0
>
> The powerpc problem is the same as before:
>
> Inconsistent kallsyms data
> Try make KALLSYMS_EXTRA_PASS=1 as a workaround
>
> KALLSYMS_EXTRA_PASS=1 doesn't help. The problem is sporadic, elusive, and all
> but impossible to bisect. The same build passes on another system, for example,
> with a different load pattern. It may pass with -j30 and fail with -j40.
> The problem started at some point after v5.8, and got worse over time; by now
> it almost always happens. I'd be happy to debug if there is a means to do it,
> but I don't have an idea where to even start. I'd disable KALLSYMS in my
> test configurations, but the symbol is selected from various places and thus
> difficult to disable. So unless I stop building ppc:allmodconfig entirely
> we'll just have to live with the failure.
Ah, I was worried when I saw your dashboard orange for this kernel.
I guess the powerpc maintainers don't care? Sad :(
Anyway, thanks for testing them all and letting me know.
greg k-h
On 9/9/20 11:01 AM, Greg Kroah-Hartman wrote:
> On Wed, Sep 09, 2020 at 09:47:05AM -0700, Guenter Roeck wrote:
>> On Tue, Sep 08, 2020 at 05:22:22PM +0200, Greg Kroah-Hartman wrote:
>>> This is the start of the stable review cycle for the 5.8.8 release.
>>> There are 186 patches in this series, all will be posted as a response
>>> to this one. If anyone has any issues with these being applied, please
>>> let me know.
>>>
>>> Responses should be made by Thu, 10 Sep 2020 15:21:57 +0000.
>>> Anything received after that time might be too late.
>>>
>>
>> Build results:
>> total: 154 pass: 153 fail: 1
>> Failed builds:
>> powerpc:allmodconfig
>> Qemu test results:
>> total: 430 pass: 430 fail: 0
>>
>> The powerpc problem is the same as before:
>>
>> Inconsistent kallsyms data
>> Try make KALLSYMS_EXTRA_PASS=1 as a workaround
>>
>> KALLSYMS_EXTRA_PASS=1 doesn't help. The problem is sporadic, elusive, and all
>> but impossible to bisect. The same build passes on another system, for example,
>> with a different load pattern. It may pass with -j30 and fail with -j40.
>> The problem started at some point after v5.8, and got worse over time; by now
>> it almost always happens. I'd be happy to debug if there is a means to do it,
>> but I don't have an idea where to even start. I'd disable KALLSYMS in my
>> test configurations, but the symbol is selected from various places and thus
>> difficult to disable. So unless I stop building ppc:allmodconfig entirely
>> we'll just have to live with the failure.
>
> Ah, I was worried when I saw your dashboard orange for this kernel.
>
> I guess the powerpc maintainers don't care? Sad :(
>
Not sure if the powerpc architecture is to blame. Bisect attempts end up
all over the place, and don't typically include any powerpc changes.
I have no idea how kallsyms is created, but my suspicion is that it is
a generic problem and that powerpc just happens to hit it right now.
I have added KALLSYMS_EXTRA_PASS=1 to several architecture builds over
time, when they reported similar problems. Right now I set it for
alpha, arm, and m68k. powerpc just happens to be the first architecture
where it doesn't help.
Guenter
Hi Günter,
On Wed, Sep 9, 2020 at 8:24 PM Guenter Roeck <[email protected]> wrote:
> On 9/9/20 11:01 AM, Greg Kroah-Hartman wrote:
> > On Wed, Sep 09, 2020 at 09:47:05AM -0700, Guenter Roeck wrote:
> >> On Tue, Sep 08, 2020 at 05:22:22PM +0200, Greg Kroah-Hartman wrote:
> >>> This is the start of the stable review cycle for the 5.8.8 release.
> >>> There are 186 patches in this series, all will be posted as a response
> >>> to this one. If anyone has any issues with these being applied, please
> >>> let me know.
> >>>
> >>> Responses should be made by Thu, 10 Sep 2020 15:21:57 +0000.
> >>> Anything received after that time might be too late.
> >>>
> >>
> >> Build results:
> >> total: 154 pass: 153 fail: 1
> >> Failed builds:
> >> powerpc:allmodconfig
> >> Qemu test results:
> >> total: 430 pass: 430 fail: 0
> >>
> >> The powerpc problem is the same as before:
> >>
> >> Inconsistent kallsyms data
> >> Try make KALLSYMS_EXTRA_PASS=1 as a workaround
> >>
> >> KALLSYMS_EXTRA_PASS=1 doesn't help. The problem is sporadic, elusive, and all
> >> but impossible to bisect. The same build passes on another system, for example,
> >> with a different load pattern. It may pass with -j30 and fail with -j40.
> >> The problem started at some point after v5.8, and got worse over time; by now
> >> it almost always happens. I'd be happy to debug if there is a means to do it,
> >> but I don't have an idea where to even start. I'd disable KALLSYMS in my
> >> test configurations, but the symbol is selected from various places and thus
> >> difficult to disable. So unless I stop building ppc:allmodconfig entirely
> >> we'll just have to live with the failure.
> >
> > Ah, I was worried when I saw your dashboard orange for this kernel.
> >
> > I guess the powerpc maintainers don't care? Sad :(
> >
>
> Not sure if the powerpc architecture is to blame. Bisect attempts end up
> all over the place, and don't typically include any powerpc changes.
> I have no idea how kallsyms is created, but my suspicion is that it is
> a generic problem and that powerpc just happens to hit it right now.
> I have added KALLSYMS_EXTRA_PASS=1 to several architecture builds over
> time, when they reported similar problems. Right now I set it for
> alpha, arm, and m68k. powerpc just happens to be the first architecture
> where it doesn't help.
This is a generic problem, cfr. scripts/link-vmlinux.sh:
# kallsyms support
# Generate section listing all symbols and add it into vmlinux
# It's a three step process:
# 1) Link .tmp_vmlinux1 so it has all symbols and sections,
# but __kallsyms is empty.
# Running kallsyms on that gives us .tmp_kallsyms1.o with
# the right size
# 2) Link .tmp_vmlinux2 so it now has a __kallsyms section of
# the right size, but due to the added section, some
# addresses have shifted.
# From here, we generate a correct .tmp_kallsyms2.o
# 3) That link may have expanded the kernel image enough that
# more linker branch stubs / trampolines had to be added, which
# introduces new names, which further expands kallsyms. Do another
# pass if that is the case. In theory it's possible this results
# in even more stubs, but unlikely.
# KALLSYMS_EXTRA_PASS=1 may also used to debug or work around
# other bugs.
Adding even more kallsyms_steps may help (or not, if you're really
unlucky). Perhaps the number of passes should be handled automatically
(i.e. run until it succeeds, with a sane (16?) upper limit to avoid
endless builds, so it can still fail, in theory).
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
On 9/9/20 11:36 PM, Geert Uytterhoeven wrote:
> Hi Günter,
>
> On Wed, Sep 9, 2020 at 8:24 PM Guenter Roeck <[email protected]> wrote:
>> On 9/9/20 11:01 AM, Greg Kroah-Hartman wrote:
>>> On Wed, Sep 09, 2020 at 09:47:05AM -0700, Guenter Roeck wrote:
>>>> On Tue, Sep 08, 2020 at 05:22:22PM +0200, Greg Kroah-Hartman wrote:
>>>>> This is the start of the stable review cycle for the 5.8.8 release.
>>>>> There are 186 patches in this series, all will be posted as a response
>>>>> to this one. If anyone has any issues with these being applied, please
>>>>> let me know.
>>>>>
>>>>> Responses should be made by Thu, 10 Sep 2020 15:21:57 +0000.
>>>>> Anything received after that time might be too late.
>>>>>
>>>>
>>>> Build results:
>>>> total: 154 pass: 153 fail: 1
>>>> Failed builds:
>>>> powerpc:allmodconfig
>>>> Qemu test results:
>>>> total: 430 pass: 430 fail: 0
>>>>
>>>> The powerpc problem is the same as before:
>>>>
>>>> Inconsistent kallsyms data
>>>> Try make KALLSYMS_EXTRA_PASS=1 as a workaround
>>>>
>>>> KALLSYMS_EXTRA_PASS=1 doesn't help. The problem is sporadic, elusive, and all
>>>> but impossible to bisect. The same build passes on another system, for example,
>>>> with a different load pattern. It may pass with -j30 and fail with -j40.
>>>> The problem started at some point after v5.8, and got worse over time; by now
>>>> it almost always happens. I'd be happy to debug if there is a means to do it,
>>>> but I don't have an idea where to even start. I'd disable KALLSYMS in my
>>>> test configurations, but the symbol is selected from various places and thus
>>>> difficult to disable. So unless I stop building ppc:allmodconfig entirely
>>>> we'll just have to live with the failure.
>>>
>>> Ah, I was worried when I saw your dashboard orange for this kernel.
>>>
>>> I guess the powerpc maintainers don't care? Sad :(
>>>
>>
>> Not sure if the powerpc architecture is to blame. Bisect attempts end up
>> all over the place, and don't typically include any powerpc changes.
>> I have no idea how kallsyms is created, but my suspicion is that it is
>> a generic problem and that powerpc just happens to hit it right now.
>> I have added KALLSYMS_EXTRA_PASS=1 to several architecture builds over
>> time, when they reported similar problems. Right now I set it for
>> alpha, arm, and m68k. powerpc just happens to be the first architecture
>> where it doesn't help.
>
> This is a generic problem, cfr. scripts/link-vmlinux.sh:
>
> # kallsyms support
> # Generate section listing all symbols and add it into vmlinux
> # It's a three step process:
> # 1) Link .tmp_vmlinux1 so it has all symbols and sections,
> # but __kallsyms is empty.
> # Running kallsyms on that gives us .tmp_kallsyms1.o with
> # the right size
> # 2) Link .tmp_vmlinux2 so it now has a __kallsyms section of
> # the right size, but due to the added section, some
> # addresses have shifted.
> # From here, we generate a correct .tmp_kallsyms2.o
> # 3) That link may have expanded the kernel image enough that
> # more linker branch stubs / trampolines had to be added, which
> # introduces new names, which further expands kallsyms. Do another
> # pass if that is the case. In theory it's possible this results
> # in even more stubs, but unlikely.
> # KALLSYMS_EXTRA_PASS=1 may also used to debug or work around
> # other bugs.
>
Ah, that explains a lot.
> Adding even more kallsyms_steps may help (or not, if you're really
> unlucky). Perhaps the number of passes should be handled automatically
> (i.e. run until it succeeds, with a sane (16?) upper limit to avoid
> endless builds, so it can still fail, in theory).
>
Turns out it needs four steps. I prepared a patch to try up to 8 steps.
We'll see if it gets accepted.
Thanks,
Guenter