Skip to content

Commit 4a11453

Browse files
committed
Merge tag 'v6.1.127' into orange-pi-6.1-rk35xx
This is the 6.1.127 stable release * tag 'v6.1.127' of https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux: Linux 6.1.127 net: fix data-races around sk->sk_forward_alloc x86/xen: fix SLS mitigation in xen_hypercall_iret() nfsd: add list_head nf_gc to struct nfsd_file erofs: handle NONHEAD !delta[1] lclusters gracefully erofs: tidy up EROFS on-disk naming wifi: ath10k: avoid NULL pointer error during sdio remove Revert "regmap: detach regmap from dev on regmap_exit" scsi: sg: Fix slab-use-after-free read in sg_release() RDMA/rxe: Fix the qp flush warnings in req Revert "drm/amdgpu: rework resume handling for display (v2)" block: fix uaf for flush rq while iterating tags drm/amdgpu: fix usage slab after free drm/amd/display: Fix out-of-bounds access in 'dcn21_link_encoder_create' iio: adc: rockchip_saradc: fix information leak in triggered buffer iio: imu: inv_icm42600: fix timestamps after suspend if sensor is on iio: imu: inv_icm42600: fix spi burst write not supported Revert "PCI: Use preserve_config in place of pci_flags" drm/i915/fb: Relax clear color alignment to 64 bytes hrtimers: Handle CPU state correctly on hotplug irqchip/gic-v3-its: Don't enable interrupts in its_irq_set_vcpu_affinity() irqchip/gic-v3: Handle CPU_PM_ENTER_FAILED correctly irqchip: Plug a OF node reference leak in platform_irqchip_probe() pmdomain: imx8mp-blk-ctrl: add missing loop break condition gpiolib: cdev: Fix use after free in lineinfo_changed_notify fs/proc: fix softlockup in __read_vmcore (part 2) filemap: avoid truncating 64-bit offset to 32 bits vsock: prevent null-ptr-deref in vsock_*[has_data|has_space] vsock: reset socket state when de-assigning the transport vsock/virtio: cancel close work in the destructor vsock/virtio: discard packets if the transport changes net: ethernet: xgbe: re-add aneg to supported features in PHY quirks selftests: mptcp: avoid spurious errors on disconnect mptcp: be sure to send ack when mptcp-level window re-opens zram: fix potential UAF of zram table ALSA: hda/realtek: Add support for Ayaneo System using CS35L41 HDA x86/asm: Make serialize() always_inline poll_wait: add mb() to fix theoretical race between waitqueue_active() and .poll() iomap: avoid avoid truncating 64-bit offset to 32 bits ACPI: resource: acpi_dev_irq_override(): Check DMI match last selftests: tc-testing: reduce rshift value scsi: ufs: core: Honor runtime/system PM levels if set by host controller drivers cachefiles: Parse the "secctx" immediately kheaders: Ignore silly-rename files fs: fix missing declaration of init_files hfs: Sanity check the root record mac802154: check local interfaces before deleting sdata list nvmet: propagate npwg topology i2c: rcar: fix NACK handling when being a target i2c: mux: demux-pinctrl: check initial mux selection, too Revert "mtd: spi-nor: core: replace dummy buswidth from addr to data" hwmon: (tmp513) Fix division of negative numbers drm/v3d: Ensure job pointer is set to NULL after job completion net/mlx5: Clear port select structure when fail to create net/mlx5: Fix RDMA TX steering prio net: xilinx: axienet: Fix IRQ coalescing packet count overflow nfp: bpf: prevent integer overflow in nfp_bpf_event_output() gtp: Destroy device along with udp socket's netns dismantle. gtp: Use for_each_netdev_rcu() in gtp_genl_dump_pdp(). gtp: use exit_batch_rtnl() method net: add exit_batch_rtnl() method pktgen: Avoid out-of-bounds access in get_imix_entries openvswitch: fix lockup on tx to unregistering netdev with carrier bpf: Fix bpf_sk_select_reuseport() memory leak net: ethernet: ti: cpsw_ale: Fix cpsw_ale_get_field() Signed-off-by: Khusika Dhamar Gusti <[email protected]> Conflicts: drivers/iio/adc/rockchip_saradc.c
2 parents fba7669 + 75cefdf commit 4a11453

File tree

71 files changed

+476
-378
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+476
-378
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# SPDX-License-Identifier: GPL-2.0
22
VERSION = 6
33
PATCHLEVEL = 1
4-
SUBLEVEL = 126
4+
SUBLEVEL = 127
55
EXTRAVERSION =
66
NAME = Curry Ramen
77

arch/x86/include/asm/special_insns.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ static inline void clwb(volatile void *__p)
225225

226226
#define nop() asm volatile ("nop")
227227

228-
static inline void serialize(void)
228+
static __always_inline void serialize(void)
229229
{
230230
/* Instruction opcode for SERIALIZE; supported in binutils >= 2.35. */
231231
asm volatile(".byte 0xf, 0x1, 0xe8" ::: "memory");

arch/x86/xen/xen-asm.S

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ SYM_CODE_END(xen_early_idt_handler_array)
221221
push %rax
222222
mov $__HYPERVISOR_iret, %eax
223223
syscall /* Do the IRET. */
224-
#ifdef CONFIG_MITIGATION_SLS
224+
#ifdef CONFIG_SLS
225225
int3
226226
#endif
227227
.endm

block/blk-sysfs.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -858,10 +858,8 @@ int blk_register_queue(struct gendisk *disk)
858858
* faster to shut down and is made fully functional here as
859859
* request_queues for non-existent devices never get registered.
860860
*/
861-
if (!blk_queue_init_done(q)) {
862-
blk_queue_flag_set(QUEUE_FLAG_INIT_DONE, q);
863-
percpu_ref_switch_to_percpu(&q->q_usage_counter);
864-
}
861+
blk_queue_flag_set(QUEUE_FLAG_INIT_DONE, q);
862+
percpu_ref_switch_to_percpu(&q->q_usage_counter);
865863

866864
return ret;
867865

block/genhd.c

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -685,13 +685,10 @@ void del_gendisk(struct gendisk *disk)
685685
* If the disk does not own the queue, allow using passthrough requests
686686
* again. Else leave the queue frozen to fail all I/O.
687687
*/
688-
if (!test_bit(GD_OWNS_QUEUE, &disk->state)) {
689-
blk_queue_flag_clear(QUEUE_FLAG_INIT_DONE, q);
688+
if (!test_bit(GD_OWNS_QUEUE, &disk->state))
690689
__blk_mq_unfreeze_queue(q, true);
691-
} else {
692-
if (queue_is_mq(q))
693-
blk_mq_exit_queue(q);
694-
}
690+
else if (queue_is_mq(q))
691+
blk_mq_exit_queue(q);
695692
}
696693
EXPORT_SYMBOL(del_gendisk);
697694

drivers/acpi/resource.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -663,11 +663,11 @@ static bool acpi_dev_irq_override(u32 gsi, u8 triggering, u8 polarity,
663663
for (i = 0; i < ARRAY_SIZE(override_table); i++) {
664664
const struct irq_override_cmp *entry = &override_table[i];
665665

666-
if (dmi_check_system(entry->system) &&
667-
entry->irq == gsi &&
666+
if (entry->irq == gsi &&
668667
entry->triggering == triggering &&
669668
entry->polarity == polarity &&
670-
entry->shareable == shareable)
669+
entry->shareable == shareable &&
670+
dmi_check_system(entry->system))
671671
return entry->override;
672672
}
673673

drivers/base/regmap/regmap.c

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -652,17 +652,6 @@ int regmap_attach_dev(struct device *dev, struct regmap *map,
652652
}
653653
EXPORT_SYMBOL_GPL(regmap_attach_dev);
654654

655-
static int dev_get_regmap_match(struct device *dev, void *res, void *data);
656-
657-
static int regmap_detach_dev(struct device *dev, struct regmap *map)
658-
{
659-
if (!dev)
660-
return 0;
661-
662-
return devres_release(dev, dev_get_regmap_release,
663-
dev_get_regmap_match, (void *)map->name);
664-
}
665-
666655
static enum regmap_endian regmap_get_reg_endian(const struct regmap_bus *bus,
667656
const struct regmap_config *config)
668657
{
@@ -1513,7 +1502,6 @@ int regmap_reinit_cache(struct regmap *map, const struct regmap_config *config)
15131502
{
15141503
int ret;
15151504

1516-
regmap_detach_dev(map->dev, map);
15171505
regcache_exit(map);
15181506
regmap_debugfs_exit(map);
15191507

drivers/block/zram/zram_drv.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1192,6 +1192,7 @@ static bool zram_meta_alloc(struct zram *zram, u64 disksize)
11921192
zram->mem_pool = zs_create_pool(zram->disk->disk_name);
11931193
if (!zram->mem_pool) {
11941194
vfree(zram->table);
1195+
zram->table = NULL;
11951196
return false;
11961197
}
11971198

drivers/gpio/gpiolib-cdev.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2860,9 +2860,9 @@ static int gpio_chrdev_release(struct inode *inode, struct file *file)
28602860
struct gpio_chardev_data *cdev = file->private_data;
28612861
struct gpio_device *gdev = cdev->gdev;
28622862

2863-
bitmap_free(cdev->watched_lines);
28642863
blocking_notifier_chain_unregister(&gdev->notifier,
28652864
&cdev->lineinfo_changed_nb);
2865+
bitmap_free(cdev->watched_lines);
28662866
put_device(&gdev->dev);
28672867
kfree(cdev);
28682868

drivers/gpu/drm/amd/amdgpu/amdgpu_device.c

Lines changed: 3 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -3242,7 +3242,7 @@ static int amdgpu_device_ip_resume_phase1(struct amdgpu_device *adev)
32423242
*
32433243
* @adev: amdgpu_device pointer
32443244
*
3245-
* Second resume function for hardware IPs. The list of all the hardware
3245+
* First resume function for hardware IPs. The list of all the hardware
32463246
* IPs that make up the asic is walked and the resume callbacks are run for
32473247
* all blocks except COMMON, GMC, and IH. resume puts the hardware into a
32483248
* functional state after a suspend and updates the software state as
@@ -3260,7 +3260,6 @@ static int amdgpu_device_ip_resume_phase2(struct amdgpu_device *adev)
32603260
if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_COMMON ||
32613261
adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_GMC ||
32623262
adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_IH ||
3263-
adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_DCE ||
32643263
adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_PSP)
32653264
continue;
32663265
r = adev->ip_blocks[i].version->funcs->resume(adev);
@@ -3284,36 +3283,6 @@ static int amdgpu_device_ip_resume_phase2(struct amdgpu_device *adev)
32843283
return 0;
32853284
}
32863285

3287-
/**
3288-
* amdgpu_device_ip_resume_phase3 - run resume for hardware IPs
3289-
*
3290-
* @adev: amdgpu_device pointer
3291-
*
3292-
* Third resume function for hardware IPs. The list of all the hardware
3293-
* IPs that make up the asic is walked and the resume callbacks are run for
3294-
* all DCE. resume puts the hardware into a functional state after a suspend
3295-
* and updates the software state as necessary. This function is also used
3296-
* for restoring the GPU after a GPU reset.
3297-
*
3298-
* Returns 0 on success, negative error code on failure.
3299-
*/
3300-
static int amdgpu_device_ip_resume_phase3(struct amdgpu_device *adev)
3301-
{
3302-
int i, r;
3303-
3304-
for (i = 0; i < adev->num_ip_blocks; i++) {
3305-
if (!adev->ip_blocks[i].status.valid || adev->ip_blocks[i].status.hw)
3306-
continue;
3307-
if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_DCE) {
3308-
r = adev->ip_blocks[i].version->funcs->resume(adev);
3309-
if (r)
3310-
return r;
3311-
}
3312-
}
3313-
3314-
return 0;
3315-
}
3316-
33173286
/**
33183287
* amdgpu_device_ip_resume - run resume for hardware IPs
33193288
*
@@ -3344,13 +3313,6 @@ static int amdgpu_device_ip_resume(struct amdgpu_device *adev)
33443313

33453314
r = amdgpu_device_ip_resume_phase2(adev);
33463315

3347-
if (r)
3348-
return r;
3349-
3350-
amdgpu_fence_driver_hw_init(adev);
3351-
3352-
r = amdgpu_device_ip_resume_phase3(adev);
3353-
33543316
return r;
33553317
}
33563318

@@ -4131,8 +4093,8 @@ void amdgpu_device_fini_sw(struct amdgpu_device *adev)
41314093
int idx;
41324094
bool px;
41334095

4134-
amdgpu_fence_driver_sw_fini(adev);
41354096
amdgpu_device_ip_fini(adev);
4097+
amdgpu_fence_driver_sw_fini(adev);
41364098
release_firmware(adev->firmware.gpu_info_fw);
41374099
adev->firmware.gpu_info_fw = NULL;
41384100
adev->accel_working = false;
@@ -4349,6 +4311,7 @@ int amdgpu_device_resume(struct drm_device *dev, bool fbcon)
43494311
dev_err(adev->dev, "amdgpu_device_ip_resume failed (%d).\n", r);
43504312
return r;
43514313
}
4314+
amdgpu_fence_driver_hw_init(adev);
43524315

43534316
r = amdgpu_device_ip_late_init(adev);
43544317
if (r)
@@ -5102,10 +5065,6 @@ int amdgpu_do_asic_reset(struct list_head *device_list_handle,
51025065
if (r)
51035066
goto out;
51045067

5105-
r = amdgpu_device_ip_resume_phase3(tmp_adev);
5106-
if (r)
5107-
goto out;
5108-
51095068
if (vram_lost)
51105069
amdgpu_device_fill_reset_magic(tmp_adev);
51115070

0 commit comments

Comments
 (0)