Skip to content
Open
Show file tree
Hide file tree
Changes from 85 commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
e990668
scsi: leapioraid: update leapioraid driver version
Jan 20, 2025
33ba92c
platform/x86: intel-uncore-freq: Add additional client processors
spandruvada Dec 22, 2023
03ba367
fs/file.c: remove sanity_check and add likely/unlikely in alloc_fd()
intelmy Jul 17, 2024
c174854
fs/file.c: conditionally clear full_fds
intelmy Jul 17, 2024
fcdc75e
fs/file.c: add fast path in find_next_fd()
intelmy Jul 17, 2024
bfaf16c
Revert "ovl: support encoding fid from inode with no alias"
gregkh Jan 21, 2025
e96df86
Revert "ovl: pass realinode to ovl_encode_real_fh() instead of realde…
gregkh Jan 21, 2025
aa4380e
Revert "ovl: do not encode lower fh with upper sb_writers held"
gregkh Jan 21, 2025
9ebc1ce
Linux 6.6.73
gregkh Jan 21, 2025
c534a5f
mips: configs: enable SquashFS compression support, OverlayFS
MingcongBai Jan 23, 2025
a8875ed
Bluetooth: btmtk: Fix failed to send func ctrl for MediaTek devices.
ChrisCH-Lu Jan 8, 2025
e4d1dfc
[FROMLIST] net: stmmac: Optimize cache prefetch in RX path
opsiff Jan 22, 2025
00b34ca
net: ethernet: ti: cpsw_ale: Fix cpsw_ale_get_field()
Jan 8, 2025
528eb23
bpf: Fix bpf_sk_select_reuseport() memory leak
mmhal Jan 10, 2025
9cc7d3b
openvswitch: fix lockup on tx to unregistering netdev with carrier
igsilya Jan 9, 2025
ac9d06c
pktgen: Avoid out-of-bounds access in get_imix_entries
dTenebrae Jan 9, 2025
58c14e5
net: add exit_batch_rtnl() method
edumazet Feb 6, 2024
fc0a7dd
gtp: use exit_batch_rtnl() method
edumazet Feb 6, 2024
7206c15
gtp: Use for_each_netdev_rcu() in gtp_genl_dump_pdp().
q2ven Jan 10, 2025
a23cbe8
gtp: Destroy device along with udp socket's netns dismantle.
q2ven Jan 10, 2025
c722a48
nfp: bpf: prevent integer overflow in nfp_bpf_event_output()
Jan 13, 2025
4a4a25b
net: xilinx: axienet: Fix IRQ coalescing packet count overflow
Jan 13, 2025
dd1a385
net: fec: handle page_pool_dev_alloc_pages error
Jan 13, 2025
d0ad0c4
net/mlx5: Fix RDMA TX steering prio
PatrisiousHaddad Jan 15, 2025
ca3e20a
net/mlx5: Clear port select structure when fail to create
MarkZhang81 Jan 15, 2025
c3fbb5c
net/mlx5e: Fix inversion dependency warning while enabling IPsec tunnel
rleon Jan 15, 2025
dd3ddd5
net/mlx5e: Rely on reqid in IPsec tunnel mode
rleon Jan 15, 2025
4449551
net/mlx5e: Always start IPsec sequence number from 1
rleon Jan 15, 2025
bd5b289
drm/vmwgfx: Add new keep_resv BO param
en4bz Jan 10, 2025
4c9399d
drm/v3d: Ensure job pointer is set to NULL after job completion
mairacanal Jan 13, 2025
4ffb5b1
soc: ti: pruss: Fix pruss APIs
danish-ti Dec 20, 2024
3217cb1
hwmon: (tmp513) Fix division of negative numbers
dlech Jan 14, 2025
0d47e5c
Revert "mtd: spi-nor: core: replace dummy buswidth from addr to data"
Jan 15, 2025
6e7b783
i2c: mux: demux-pinctrl: check initial mux selection, too
Jan 15, 2025
e72ffcc
i2c: rcar: fix NACK handling when being a target
Jan 15, 2025
71b18a0
smb: client: fix double free of TCP_Server_Info::hostname
Jan 14, 2025
a6b8dc6
mac802154: check local interfaces before deleting sdata list
Nov 13, 2024
7f69e34
hfs: Sanity check the root record
leocstone Dec 1, 2024
8e75fba
fs: fix missing declaration of init_files
Dec 17, 2024
f625dc2
kheaders: Ignore silly-rename files
dhowells Dec 13, 2024
65e9545
cachefiles: Parse the "secctx" immediately
MaxKellermann Dec 13, 2024
63f3e34
scsi: ufs: core: Honor runtime/system PM levels if set by host contro…
Mani-Sadhasivam Dec 19, 2024
8d640b4
selftests: tc-testing: reduce rshift value
kuba-moo Jan 3, 2025
a0d0e10
ACPI: resource: acpi_dev_irq_override(): Check DMI match last
jwrdegoede Dec 28, 2024
54ebb7d
iomap: avoid avoid truncating 64-bit offset to 32 bits
marcone Jan 9, 2025
8b283c8
poll_wait: add mb() to fix theoretical race between waitqueue_active(…
oleg-nesterov Jan 7, 2025
8c7cdcf
RDMA/bnxt_re: Fix to export port num to ib_query_qp
hgao656 Dec 11, 2024
e3ee4c7
nvmet: propagate npwg topology
mcgrof Dec 18, 2024
7d95230
x86/asm: Make serialize() always_inline
jgross1 Dec 18, 2024
531401d
ALSA: hda/realtek: Add support for Ayaneo System using CS35L41 HDA
Jan 9, 2025
818655f
zram: fix potential UAF of zram table
ryncsn Jan 7, 2025
832d9b8
i2c: atr: Fix client detach
tomba Nov 22, 2024
073dcb8
mptcp: be sure to send ack when mptcp-level window re-opens
Jan 13, 2025
c197a86
mptcp: fix spurious wake-up on under memory pressure
Jan 13, 2025
b64314c
selftests: mptcp: avoid spurious errors on disconnect
Jan 13, 2025
d0b7e61
net: ethernet: xgbe: re-add aneg to supported features in PHY quirks
hkallweit Jan 12, 2025
9e2f359
vsock/bpf: return early if transport is not assigned
stefano-garzarella Jan 10, 2025
18ad0af
vsock/virtio: discard packets if the transport changes
stefano-garzarella Jan 10, 2025
990fa0d
vsock/virtio: cancel close work in the destructor
stefano-garzarella Jan 10, 2025
b3c2d93
vsock: reset socket state when de-assigning the transport
stefano-garzarella Jan 10, 2025
6a157b6
vsock: prevent null-ptr-deref in vsock_*[has_data|has_space]
stefano-garzarella Jan 10, 2025
0bb2b5a
nouveau/fence: handle cross device fences properly
airlied Jan 9, 2025
9945d2a
filemap: avoid truncating 64-bit offset to 32 bits
marcone Jan 2, 2025
44f60da
fs/proc: fix softlockup in __read_vmcore (part 2)
rikvanriel Jan 10, 2025
6ecef20
gpio: xilinx: Convert gpio_lock to raw spinlock
Jan 10, 2025
3a8bcd8
pmdomain: imx8mp-blk-ctrl: add missing loop break condition
xiaoleiwang123456 Jan 15, 2025
ec4c39a
irqchip: Plug a OF node reference leak in platform_irqchip_probe()
joehattori Dec 15, 2024
e7ad025
irqchip/gic-v3: Handle CPU_PM_ENTER_FAILED correctly
quic-ylal Dec 20, 2024
76ea888
irqchip/gic-v3-its: Don't enable interrupts in its_irq_set_vcpu_affin…
Dec 30, 2024
885f908
hrtimers: Handle CPU state correctly on hotplug
lkpdn Dec 20, 2024
e0c9946
drm/i915/fb: Relax clear color alignment to 64 bytes
vsyrjala Nov 29, 2024
58db6d2
drm/amdgpu: always sync the GFX pipe on ctx switch
ChristianKoenigAMD Dec 20, 2024
5fc1a00
Revert "PCI: Use preserve_config in place of pci_flags"
Jan 17, 2025
c42b9a6
iio: imu: inv_icm42600: fix spi burst write not supported
jmaneyrol-invn Nov 12, 2024
3fc342a
drm/amd/display: Fix out-of-bounds access in 'dcn21_link_encoder_create'
srishanm Sep 25, 2024
1d52412
block: fix uaf for flush rq while iterating tags
YuKuai-huawei Nov 4, 2024
b33ec49
ocfs2: fix deadlock in ocfs2_get_system_file_inode
donutAnees Sep 24, 2024
dbcb071
ovl: pass realinode to ovl_encode_real_fh() instead of realdentry
amir73il Jan 5, 2025
748e7dc
ovl: support encoding fid from inode with no alias
amir73il Jan 5, 2025
575ef96
fs: relax assertions on failure to encode file handles
amir73il Dec 19, 2024
10e7ef8
Revert "drm/amdgpu: rework resume handling for display (v2)"
gregkh Jan 21, 2025
f26d642
nfsd: add list_head nf_gc to struct nfsd_file
youzhongyang Jul 10, 2024
ac272d5
x86/xen: fix SLS mitigation in xen_hypercall_iret()
jgross1 Jan 17, 2025
0204645
net: fix data-races around sk->sk_forward_alloc
Nov 7, 2024
2b997c3
Linux 6.6.74-rc1
gregkh Jan 21, 2025
e0ff8e0
Merge branch 'linux-stable-update-6.6.73' into linux-stable-update-6.…
opsiff Jan 23, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# SPDX-License-Identifier: GPL-2.0
VERSION = 6
PATCHLEVEL = 6
SUBLEVEL = 72
EXTRAVERSION =
SUBLEVEL = 74
EXTRAVERSION = -rc1
NAME = Pinguïn Aangedreven

# *DOCUMENTATION*
Expand Down
7 changes: 7 additions & 0 deletions arch/mips/configs/deepin_loongson3_desktop_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -351,6 +351,7 @@ CONFIG_QFMT_V2=m
CONFIG_AUTOFS_FS=y
CONFIG_FUSE_FS=m
CONFIG_VIRTIO_FS=m
CONFIG_OVERLAY_FS=y
CONFIG_FSCACHE=m
CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y
Expand All @@ -364,7 +365,13 @@ CONFIG_TMPFS_POSIX_ACL=y
CONFIG_CONFIGFS_FS=y
CONFIG_CRAMFS=m
CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_FILE_DIRECT=y
CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT=y
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZSTD=y
CONFIG_NFS_FS=m
CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=m
Expand Down
2 changes: 1 addition & 1 deletion arch/x86/include/asm/special_insns.h
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ static inline int write_user_shstk_64(u64 __user *addr, u64 val)

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

static inline void serialize(void)
static __always_inline void serialize(void)
{
/* Instruction opcode for SERIALIZE; supported in binutils >= 2.35. */
asm volatile(".byte 0xf, 0x1, 0xe8" ::: "memory");
Expand Down
2 changes: 1 addition & 1 deletion arch/x86/xen/xen-asm.S
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ SYM_CODE_END(xen_early_idt_handler_array)
push %rax
mov $__HYPERVISOR_iret, %eax
syscall /* Do the IRET. */
#ifdef CONFIG_MITIGATION_SLS
#ifdef CONFIG_SLS
int3
#endif
.endm
Expand Down
6 changes: 2 additions & 4 deletions block/blk-sysfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -842,10 +842,8 @@ int blk_register_queue(struct gendisk *disk)
* faster to shut down and is made fully functional here as
* request_queues for non-existent devices never get registered.
*/
if (!blk_queue_init_done(q)) {
blk_queue_flag_set(QUEUE_FLAG_INIT_DONE, q);
percpu_ref_switch_to_percpu(&q->q_usage_counter);
}
blk_queue_flag_set(QUEUE_FLAG_INIT_DONE, q);
percpu_ref_switch_to_percpu(&q->q_usage_counter);

return ret;

Expand Down
9 changes: 3 additions & 6 deletions block/genhd.c
Original file line number Diff line number Diff line change
Expand Up @@ -710,13 +710,10 @@ void del_gendisk(struct gendisk *disk)
* If the disk does not own the queue, allow using passthrough requests
* again. Else leave the queue frozen to fail all I/O.
*/
if (!test_bit(GD_OWNS_QUEUE, &disk->state)) {
blk_queue_flag_clear(QUEUE_FLAG_INIT_DONE, q);
if (!test_bit(GD_OWNS_QUEUE, &disk->state))
__blk_mq_unfreeze_queue(q, true);
} else {
if (queue_is_mq(q))
blk_mq_exit_queue(q);
}
else if (queue_is_mq(q))
blk_mq_exit_queue(q);
}
EXPORT_SYMBOL(del_gendisk);

Expand Down
6 changes: 3 additions & 3 deletions drivers/acpi/resource.c
Original file line number Diff line number Diff line change
Expand Up @@ -680,11 +680,11 @@ static bool acpi_dev_irq_override(u32 gsi, u8 triggering, u8 polarity,
for (i = 0; i < ARRAY_SIZE(override_table); i++) {
const struct irq_override_cmp *entry = &override_table[i];

if (dmi_check_system(entry->system) &&
entry->irq == gsi &&
if (entry->irq == gsi &&
entry->triggering == triggering &&
entry->polarity == polarity &&
entry->shareable == shareable)
entry->shareable == shareable &&
dmi_check_system(entry->system))
return entry->override;
}

Expand Down
1 change: 1 addition & 0 deletions drivers/block/zram/zram_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -1262,6 +1262,7 @@ static bool zram_meta_alloc(struct zram *zram, u64 disksize)
zram->mem_pool = zs_create_pool(zram->disk->disk_name);
if (!zram->mem_pool) {
vfree(zram->table);
zram->table = NULL;
return false;
}

Expand Down
7 changes: 7 additions & 0 deletions drivers/bluetooth/btmtk.c
Original file line number Diff line number Diff line change
Expand Up @@ -1473,10 +1473,15 @@ EXPORT_SYMBOL_GPL(btmtk_usb_setup);

int btmtk_usb_shutdown(struct hci_dev *hdev)
{
struct btmtk_data *data = hci_get_priv(hdev);
struct btmtk_hci_wmt_params wmt_params;
u8 param = 0;
int err;

err = usb_autopm_get_interface(data->intf);
if (err < 0)
return err;

/* Disable the device */
wmt_params.op = BTMTK_WMT_FUNC_CTRL;
wmt_params.flag = 0;
Expand All @@ -1487,9 +1492,11 @@ int btmtk_usb_shutdown(struct hci_dev *hdev)
err = btmtk_usb_hci_wmt_sync(hdev, &wmt_params);
if (err < 0) {
bt_dev_err(hdev, "Failed to send wmt func ctrl (%d)", err);
usb_autopm_put_interface(data->intf);
return err;
}

usb_autopm_put_interface(data->intf);
return 0;
}
EXPORT_SYMBOL_GPL(btmtk_usb_shutdown);
Expand Down
32 changes: 16 additions & 16 deletions drivers/gpio/gpio-xilinx.c
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ struct xgpio_instance {
DECLARE_BITMAP(state, 64);
DECLARE_BITMAP(last_irq_read, 64);
DECLARE_BITMAP(dir, 64);
spinlock_t gpio_lock; /* For serializing operations */
raw_spinlock_t gpio_lock; /* For serializing operations */
int irq;
DECLARE_BITMAP(enable, 64);
DECLARE_BITMAP(rising_edge, 64);
Expand Down Expand Up @@ -180,14 +180,14 @@ static void xgpio_set(struct gpio_chip *gc, unsigned int gpio, int val)
struct xgpio_instance *chip = gpiochip_get_data(gc);
int bit = xgpio_to_bit(chip, gpio);

spin_lock_irqsave(&chip->gpio_lock, flags);
raw_spin_lock_irqsave(&chip->gpio_lock, flags);

/* Write to GPIO signal and set its direction to output */
__assign_bit(bit, chip->state, val);

xgpio_write_ch(chip, XGPIO_DATA_OFFSET, bit, chip->state);

spin_unlock_irqrestore(&chip->gpio_lock, flags);
raw_spin_unlock_irqrestore(&chip->gpio_lock, flags);
}

/**
Expand All @@ -211,15 +211,15 @@ static void xgpio_set_multiple(struct gpio_chip *gc, unsigned long *mask,
bitmap_remap(hw_mask, mask, chip->sw_map, chip->hw_map, 64);
bitmap_remap(hw_bits, bits, chip->sw_map, chip->hw_map, 64);

spin_lock_irqsave(&chip->gpio_lock, flags);
raw_spin_lock_irqsave(&chip->gpio_lock, flags);

bitmap_replace(state, chip->state, hw_bits, hw_mask, 64);

xgpio_write_ch_all(chip, XGPIO_DATA_OFFSET, state);

bitmap_copy(chip->state, state, 64);

spin_unlock_irqrestore(&chip->gpio_lock, flags);
raw_spin_unlock_irqrestore(&chip->gpio_lock, flags);
}

/**
Expand All @@ -237,13 +237,13 @@ static int xgpio_dir_in(struct gpio_chip *gc, unsigned int gpio)
struct xgpio_instance *chip = gpiochip_get_data(gc);
int bit = xgpio_to_bit(chip, gpio);

spin_lock_irqsave(&chip->gpio_lock, flags);
raw_spin_lock_irqsave(&chip->gpio_lock, flags);

/* Set the GPIO bit in shadow register and set direction as input */
__set_bit(bit, chip->dir);
xgpio_write_ch(chip, XGPIO_TRI_OFFSET, bit, chip->dir);

spin_unlock_irqrestore(&chip->gpio_lock, flags);
raw_spin_unlock_irqrestore(&chip->gpio_lock, flags);

return 0;
}
Expand All @@ -266,7 +266,7 @@ static int xgpio_dir_out(struct gpio_chip *gc, unsigned int gpio, int val)
struct xgpio_instance *chip = gpiochip_get_data(gc);
int bit = xgpio_to_bit(chip, gpio);

spin_lock_irqsave(&chip->gpio_lock, flags);
raw_spin_lock_irqsave(&chip->gpio_lock, flags);

/* Write state of GPIO signal */
__assign_bit(bit, chip->state, val);
Expand All @@ -276,7 +276,7 @@ static int xgpio_dir_out(struct gpio_chip *gc, unsigned int gpio, int val)
__clear_bit(bit, chip->dir);
xgpio_write_ch(chip, XGPIO_TRI_OFFSET, bit, chip->dir);

spin_unlock_irqrestore(&chip->gpio_lock, flags);
raw_spin_unlock_irqrestore(&chip->gpio_lock, flags);

return 0;
}
Expand Down Expand Up @@ -404,7 +404,7 @@ static void xgpio_irq_mask(struct irq_data *irq_data)
int bit = xgpio_to_bit(chip, irq_offset);
u32 mask = BIT(bit / 32), temp;

spin_lock_irqsave(&chip->gpio_lock, flags);
raw_spin_lock_irqsave(&chip->gpio_lock, flags);

__clear_bit(bit, chip->enable);

Expand All @@ -414,7 +414,7 @@ static void xgpio_irq_mask(struct irq_data *irq_data)
temp &= ~mask;
xgpio_writereg(chip->regs + XGPIO_IPIER_OFFSET, temp);
}
spin_unlock_irqrestore(&chip->gpio_lock, flags);
raw_spin_unlock_irqrestore(&chip->gpio_lock, flags);

gpiochip_disable_irq(&chip->gc, irq_offset);
}
Expand All @@ -434,7 +434,7 @@ static void xgpio_irq_unmask(struct irq_data *irq_data)

gpiochip_enable_irq(&chip->gc, irq_offset);

spin_lock_irqsave(&chip->gpio_lock, flags);
raw_spin_lock_irqsave(&chip->gpio_lock, flags);

__set_bit(bit, chip->enable);

Expand All @@ -453,7 +453,7 @@ static void xgpio_irq_unmask(struct irq_data *irq_data)
xgpio_writereg(chip->regs + XGPIO_IPIER_OFFSET, val);
}

spin_unlock_irqrestore(&chip->gpio_lock, flags);
raw_spin_unlock_irqrestore(&chip->gpio_lock, flags);
}

/**
Expand Down Expand Up @@ -518,7 +518,7 @@ static void xgpio_irqhandler(struct irq_desc *desc)

chained_irq_enter(irqchip, desc);

spin_lock(&chip->gpio_lock);
raw_spin_lock(&chip->gpio_lock);

xgpio_read_ch_all(chip, XGPIO_DATA_OFFSET, all);

Expand All @@ -535,7 +535,7 @@ static void xgpio_irqhandler(struct irq_desc *desc)
bitmap_copy(chip->last_irq_read, all, 64);
bitmap_or(all, rising, falling, 64);

spin_unlock(&chip->gpio_lock);
raw_spin_unlock(&chip->gpio_lock);

dev_dbg(gc->parent, "IRQ rising %*pb falling %*pb\n", 64, rising, 64, falling);

Expand Down Expand Up @@ -626,7 +626,7 @@ static int xgpio_probe(struct platform_device *pdev)
bitmap_set(chip->hw_map, 0, width[0]);
bitmap_set(chip->hw_map, 32, width[1]);

spin_lock_init(&chip->gpio_lock);
raw_spin_lock_init(&chip->gpio_lock);

chip->gc.base = -1;
chip->gc.ngpio = bitmap_weight(chip->hw_map, 64);
Expand Down
45 changes: 2 additions & 43 deletions drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
Original file line number Diff line number Diff line change
Expand Up @@ -3172,7 +3172,7 @@ static int amdgpu_device_ip_resume_phase1(struct amdgpu_device *adev)
*
* @adev: amdgpu_device pointer
*
* Second resume function for hardware IPs. The list of all the hardware
* First resume function for hardware IPs. The list of all the hardware
* IPs that make up the asic is walked and the resume callbacks are run for
* all blocks except COMMON, GMC, and IH. resume puts the hardware into a
* functional state after a suspend and updates the software state as
Expand All @@ -3190,7 +3190,6 @@ static int amdgpu_device_ip_resume_phase2(struct amdgpu_device *adev)
if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_COMMON ||
adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_GMC ||
adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_IH ||
adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_DCE ||
adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_PSP)
continue;
r = adev->ip_blocks[i].version->funcs->resume(adev);
Expand All @@ -3205,36 +3204,6 @@ static int amdgpu_device_ip_resume_phase2(struct amdgpu_device *adev)
return 0;
}

/**
* amdgpu_device_ip_resume_phase3 - run resume for hardware IPs
*
* @adev: amdgpu_device pointer
*
* Third resume function for hardware IPs. The list of all the hardware
* IPs that make up the asic is walked and the resume callbacks are run for
* all DCE. resume puts the hardware into a functional state after a suspend
* and updates the software state as necessary. This function is also used
* for restoring the GPU after a GPU reset.
*
* Returns 0 on success, negative error code on failure.
*/
static int amdgpu_device_ip_resume_phase3(struct amdgpu_device *adev)
{
int i, r;

for (i = 0; i < adev->num_ip_blocks; i++) {
if (!adev->ip_blocks[i].status.valid || adev->ip_blocks[i].status.hw)
continue;
if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_DCE) {
r = adev->ip_blocks[i].version->funcs->resume(adev);
if (r)
return r;
}
}

return 0;
}

/**
* amdgpu_device_ip_resume - run resume for hardware IPs
*
Expand All @@ -3261,13 +3230,6 @@ static int amdgpu_device_ip_resume(struct amdgpu_device *adev)

r = amdgpu_device_ip_resume_phase2(adev);

if (r)
return r;

amdgpu_fence_driver_hw_init(adev);

r = amdgpu_device_ip_resume_phase3(adev);

return r;
}

Expand Down Expand Up @@ -4267,6 +4229,7 @@ int amdgpu_device_resume(struct drm_device *dev, bool fbcon)
dev_err(adev->dev, "amdgpu_device_ip_resume failed (%d).\n", r);
goto exit;
}
amdgpu_fence_driver_hw_init(adev);

r = amdgpu_device_ip_late_init(adev);
if (r)
Expand Down Expand Up @@ -5036,10 +4999,6 @@ int amdgpu_do_asic_reset(struct list_head *device_list_handle,
if (r)
goto out;

r = amdgpu_device_ip_resume_phase3(tmp_adev);
if (r)
goto out;

if (vram_lost)
amdgpu_device_fill_reset_magic(tmp_adev);

Expand Down
4 changes: 2 additions & 2 deletions drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
Original file line number Diff line number Diff line change
Expand Up @@ -193,8 +193,8 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned int num_ibs,
need_ctx_switch = ring->current_ctx != fence_ctx;
if (ring->funcs->emit_pipeline_sync && job &&
((tmp = amdgpu_sync_get_fence(&job->explicit_sync)) ||
(amdgpu_sriov_vf(adev) && need_ctx_switch) ||
amdgpu_vm_need_pipeline_sync(ring, job))) {
need_ctx_switch || amdgpu_vm_need_pipeline_sync(ring, job))) {

need_pipe_sync = true;

if (tmp)
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c
Original file line number Diff line number Diff line change
Expand Up @@ -1315,7 +1315,7 @@ static struct link_encoder *dcn21_link_encoder_create(
kzalloc(sizeof(struct dcn21_link_encoder), GFP_KERNEL);
int link_regs_id;

if (!enc21)
if (!enc21 || enc_init_data->hpd_source >= ARRAY_SIZE(link_enc_hpd_regs))
return NULL;

link_regs_id =
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/i915/display/intel_fb.c
Original file line number Diff line number Diff line change
Expand Up @@ -1626,7 +1626,7 @@ int intel_fill_fb_info(struct drm_i915_private *i915, struct intel_framebuffer *
* arithmetic related to alignment and offset calculation.
*/
if (is_gen12_ccs_cc_plane(&fb->base, i)) {
if (IS_ALIGNED(fb->base.offsets[i], PAGE_SIZE))
if (IS_ALIGNED(fb->base.offsets[i], 64))
continue;
else
return -EINVAL;
Expand Down
Loading
Loading