Skip to content

[pull] master from torvalds:master #1857

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 19 commits into from
Apr 30, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
06eaa82
mm/memblock: pass size instead of end to memblock_set_node()
RichardWeiYang Mar 18, 2025
eac8ea8
mm/memblock: repeat setting reserved region nid if array is doubled
RichardWeiYang Mar 18, 2025
3b394df
memblock tests: add test for memblock_set_node
RichardWeiYang Mar 18, 2025
649b50a
mmc: renesas_sdhi: Fix error handling in renesas_sdhi_probe
rpiasetskyi Mar 26, 2025
9078f01
mmc: renesas_sdhi: add regulator dependency
arndb Mar 29, 2025
77183db
mmc: renesas_sdhi: disable clocks if registering regulator failed
Mar 30, 2025
9f5595d
platform/x86/amd: pmc: Require at least 2.5 seconds between HW sleep …
superm1 Apr 14, 2025
8d6955e
platform/x86/intel-uncore-freq: Fix missing uncore sysfs during CPU h…
lan0017 Apr 17, 2025
4a8e04e
platform/x86: alienware-wmi-wmax: Fix uninitialized variable due to b…
kuu-rt Apr 16, 2025
12df9ec
platform/x86/intel: hid: Add Pantherlake support
saranyagopal1 Apr 21, 2025
246f9bb
platform/x86: alienware-wmi-wmax: Add support for Alienware m15 R7
kuu-rt Apr 19, 2025
77bdac7
platform/x86: asus-wmi: Disable OOBE state after resume from hibernation
Apr 18, 2025
02c6e43
platform/x86: ideapad-laptop: add support for some new buttons
gapemir Apr 18, 2025
c73c670
fanotify: fix flush of mntns marks
amir73il Apr 18, 2025
cd188e9
selftests/fs/mount-notify: test also remove/flush of mntns marks
amir73il Apr 18, 2025
4b5256f
Merge tag 'fixes-2025-04-29' of git://git.kernel.org/pub/scm/linux/ke…
torvalds Apr 29, 2025
02d4004
Merge tag 'platform-drivers-x86-v6.15-4' of git://git.kernel.org/pub/…
torvalds Apr 29, 2025
fba784c
Merge tag 'fsnotify_for_v6.15-rc5' of git://git.kernel.org/pub/scm/li…
torvalds Apr 29, 2025
8bac889
Merge tag 'mmc-v6.15-rc1' of git://git.kernel.org/pub/scm/linux/kerne…
torvalds Apr 29, 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
2 changes: 1 addition & 1 deletion drivers/mmc/host/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -691,8 +691,8 @@ config MMC_TMIO_CORE
config MMC_SDHI
tristate "Renesas SDHI SD/SDIO controller support"
depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
depends on (RESET_CONTROLLER && REGULATOR) || !OF
select MMC_TMIO_CORE
select RESET_CONTROLLER if ARCH_RENESAS
help
This provides support for the SDHI SD/SDIO controller found in
Renesas SuperH, ARM and ARM64 based SoCs
Expand Down
12 changes: 5 additions & 7 deletions drivers/mmc/host/renesas_sdhi_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -1179,7 +1179,7 @@ int renesas_sdhi_probe(struct platform_device *pdev,
if (IS_ERR(rdev)) {
dev_err(dev, "regulator register failed err=%ld", PTR_ERR(rdev));
ret = PTR_ERR(rdev);
goto efree;
goto edisclk;
}
priv->rdev = rdev;
}
Expand Down Expand Up @@ -1243,26 +1243,26 @@ int renesas_sdhi_probe(struct platform_device *pdev,
num_irqs = platform_irq_count(pdev);
if (num_irqs < 0) {
ret = num_irqs;
goto eirq;
goto edisclk;
}

/* There must be at least one IRQ source */
if (!num_irqs) {
ret = -ENXIO;
goto eirq;
goto edisclk;
}

for (i = 0; i < num_irqs; i++) {
irq = platform_get_irq(pdev, i);
if (irq < 0) {
ret = irq;
goto eirq;
goto edisclk;
}

ret = devm_request_irq(&pdev->dev, irq, tmio_mmc_irq, 0,
dev_name(&pdev->dev), host);
if (ret)
goto eirq;
goto edisclk;
}

ret = tmio_mmc_host_probe(host);
Expand All @@ -1274,8 +1274,6 @@ int renesas_sdhi_probe(struct platform_device *pdev,

return ret;

eirq:
tmio_mmc_host_remove(host);
edisclk:
renesas_sdhi_clk_disable(host);
efree:
Expand Down
7 changes: 3 additions & 4 deletions drivers/platform/x86/amd/pmc/pmc.c
Original file line number Diff line number Diff line change
Expand Up @@ -644,10 +644,9 @@ static void amd_pmc_s2idle_check(void)
struct smu_metrics table;
int rc;

/* CZN: Ensure that future s0i3 entry attempts at least 10ms passed */
if (pdev->cpu_id == AMD_CPU_ID_CZN && !get_metrics_table(pdev, &table) &&
table.s0i3_last_entry_status)
usleep_range(10000, 20000);
/* Avoid triggering OVP */
if (!get_metrics_table(pdev, &table) && table.s0i3_last_entry_status)
msleep(2500);

/* Dump the IdleMask before we add to the STB */
amd_pmc_idlemask_read(pdev, pdev->dev, NULL);
Expand Down
11 changes: 10 additions & 1 deletion drivers/platform/x86/asus-wmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -304,6 +304,7 @@ struct asus_wmi {

u32 kbd_rgb_dev;
bool kbd_rgb_state_available;
bool oobe_state_available;

u8 throttle_thermal_policy_mode;
u32 throttle_thermal_policy_dev;
Expand Down Expand Up @@ -1826,7 +1827,7 @@ static int asus_wmi_led_init(struct asus_wmi *asus)
goto error;
}

if (asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_OOBE)) {
if (asus->oobe_state_available) {
/*
* Disable OOBE state, so that e.g. the keyboard backlight
* works.
Expand Down Expand Up @@ -4723,6 +4724,7 @@ static int asus_wmi_add(struct platform_device *pdev)
asus->egpu_enable_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_EGPU);
asus->dgpu_disable_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_DGPU);
asus->kbd_rgb_state_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_TUF_RGB_STATE);
asus->oobe_state_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_OOBE);
asus->ally_mcu_usb_switch = acpi_has_method(NULL, ASUS_USB0_PWR_EC0_CSEE)
&& dmi_check_system(asus_ally_mcu_quirk);

Expand Down Expand Up @@ -4970,6 +4972,13 @@ static int asus_hotk_restore(struct device *device)
}
if (!IS_ERR_OR_NULL(asus->kbd_led.dev))
kbd_led_update(asus);
if (asus->oobe_state_available) {
/*
* Disable OOBE state, so that e.g. the keyboard backlight
* works.
*/
asus_wmi_set_devstate(ASUS_WMI_DEVID_OOBE, 1, NULL);
}

if (asus_wmi_has_fnlock_key(asus))
asus_wmi_fnlock_update(asus);
Expand Down
14 changes: 10 additions & 4 deletions drivers/platform/x86/dell/alienware-wmi-wmax.c
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,14 @@ static const struct dmi_system_id awcc_dmi_table[] __initconst = {
},
.driver_data = &generic_quirks,
},
{
.ident = "Alienware m15 R7",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "Alienware"),
DMI_MATCH(DMI_PRODUCT_NAME, "Alienware m15 R7"),
},
.driver_data = &generic_quirks,
},
{
.ident = "Alienware m16 R1",
.matches = {
Expand Down Expand Up @@ -655,12 +663,10 @@ static int thermal_profile_probe(void *drvdata, unsigned long *choices)
for (u32 i = 0; i < sys_desc[3]; i++) {
ret = wmax_thermal_information(priv->wdev, WMAX_OPERATION_LIST_IDS,
i + first_mode, &out_data);

if (ret == -EIO)
return ret;

if (ret == -EBADRQC)
break;
if (ret)
return ret;

if (!is_wmax_thermal_code(out_data))
continue;
Expand Down
16 changes: 16 additions & 0 deletions drivers/platform/x86/ideapad-laptop.c
Original file line number Diff line number Diff line change
Expand Up @@ -1294,6 +1294,16 @@ static const struct key_entry ideapad_keymap[] = {
/* Specific to some newer models */
{ KE_KEY, 0x3e | IDEAPAD_WMI_KEY, { KEY_MICMUTE } },
{ KE_KEY, 0x3f | IDEAPAD_WMI_KEY, { KEY_RFKILL } },
/* Star- (User Assignable Key) */
{ KE_KEY, 0x44 | IDEAPAD_WMI_KEY, { KEY_PROG1 } },
/* Eye */
{ KE_KEY, 0x45 | IDEAPAD_WMI_KEY, { KEY_PROG3 } },
/* Performance toggle also Fn+Q, handled inside ideapad_wmi_notify() */
{ KE_KEY, 0x3d | IDEAPAD_WMI_KEY, { KEY_PROG4 } },
/* shift + prtsc */
{ KE_KEY, 0x2d | IDEAPAD_WMI_KEY, { KEY_CUT } },
{ KE_KEY, 0x29 | IDEAPAD_WMI_KEY, { KEY_TOUCHPAD_TOGGLE } },
{ KE_KEY, 0x2a | IDEAPAD_WMI_KEY, { KEY_ROOT_MENU } },

{ KE_END },
};
Expand Down Expand Up @@ -2080,6 +2090,12 @@ static void ideapad_wmi_notify(struct wmi_device *wdev, union acpi_object *data)
dev_dbg(&wdev->dev, "WMI fn-key event: 0x%llx\n",
data->integer.value);

/* performance button triggered by 0x3d */
if (data->integer.value == 0x3d && priv->dytc) {
platform_profile_cycle();
break;
}

/* 0x02 FnLock, 0x03 Esc */
if (data->integer.value == 0x02 || data->integer.value == 0x03)
ideapad_fn_lock_led_notify(priv, data->integer.value == 0x02);
Expand Down
21 changes: 11 additions & 10 deletions drivers/platform/x86/intel/hid.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,16 +44,17 @@ MODULE_LICENSE("GPL");
MODULE_AUTHOR("Alex Hung");

static const struct acpi_device_id intel_hid_ids[] = {
{"INT33D5", 0},
{"INTC1051", 0},
{"INTC1054", 0},
{"INTC1070", 0},
{"INTC1076", 0},
{"INTC1077", 0},
{"INTC1078", 0},
{"INTC107B", 0},
{"INTC10CB", 0},
{"", 0},
{ "INT33D5" },
{ "INTC1051" },
{ "INTC1054" },
{ "INTC1070" },
{ "INTC1076" },
{ "INTC1077" },
{ "INTC1078" },
{ "INTC107B" },
{ "INTC10CB" },
{ "INTC10CC" },
{ }
};
MODULE_DEVICE_TABLE(acpi, intel_hid_ids);

Expand Down
13 changes: 9 additions & 4 deletions drivers/platform/x86/intel/uncore-frequency/uncore-frequency.c
Original file line number Diff line number Diff line change
Expand Up @@ -146,15 +146,13 @@ static int uncore_event_cpu_online(unsigned int cpu)
{
struct uncore_data *data;
int target;
int ret;

/* Check if there is an online cpu in the package for uncore MSR */
target = cpumask_any_and(&uncore_cpu_mask, topology_die_cpumask(cpu));
if (target < nr_cpu_ids)
return 0;

/* Use this CPU on this die as a control CPU */
cpumask_set_cpu(cpu, &uncore_cpu_mask);

data = uncore_get_instance(cpu);
if (!data)
return 0;
Expand All @@ -163,7 +161,14 @@ static int uncore_event_cpu_online(unsigned int cpu)
data->die_id = topology_die_id(cpu);
data->domain_id = UNCORE_DOMAIN_ID_INVALID;

return uncore_freq_add_entry(data, cpu);
ret = uncore_freq_add_entry(data, cpu);
if (ret)
return ret;

/* Use this CPU on this die as a control CPU */
cpumask_set_cpu(cpu, &uncore_cpu_mask);

return 0;
}

static int uncore_event_cpu_offline(unsigned int cpu)
Expand Down
7 changes: 1 addition & 6 deletions fs/notify/fanotify/fanotify_user.c
Original file line number Diff line number Diff line change
Expand Up @@ -1961,12 +1961,7 @@ static int do_fanotify_mark(int fanotify_fd, unsigned int flags, __u64 mask,
return -EINVAL;

if (mark_cmd == FAN_MARK_FLUSH) {
if (mark_type == FAN_MARK_MOUNT)
fsnotify_clear_vfsmount_marks_by_group(group);
else if (mark_type == FAN_MARK_FILESYSTEM)
fsnotify_clear_sb_marks_by_group(group);
else
fsnotify_clear_inode_marks_by_group(group);
fsnotify_clear_marks_by_group(group, obj_type);
return 0;
}

Expand Down
15 changes: 0 additions & 15 deletions include/linux/fsnotify_backend.h
Original file line number Diff line number Diff line change
Expand Up @@ -907,21 +907,6 @@ extern void fsnotify_wait_marks_destroyed(void);
/* Clear all of the marks of a group attached to a given object type */
extern void fsnotify_clear_marks_by_group(struct fsnotify_group *group,
unsigned int obj_type);
/* run all the marks in a group, and clear all of the vfsmount marks */
static inline void fsnotify_clear_vfsmount_marks_by_group(struct fsnotify_group *group)
{
fsnotify_clear_marks_by_group(group, FSNOTIFY_OBJ_TYPE_VFSMOUNT);
}
/* run all the marks in a group, and clear all of the inode marks */
static inline void fsnotify_clear_inode_marks_by_group(struct fsnotify_group *group)
{
fsnotify_clear_marks_by_group(group, FSNOTIFY_OBJ_TYPE_INODE);
}
/* run all the marks in a group, and clear all of the sn marks */
static inline void fsnotify_clear_sb_marks_by_group(struct fsnotify_group *group)
{
fsnotify_clear_marks_by_group(group, FSNOTIFY_OBJ_TYPE_SB);
}
extern void fsnotify_get_mark(struct fsnotify_mark *mark);
extern void fsnotify_put_mark(struct fsnotify_mark *mark);
extern void fsnotify_finish_user_wait(struct fsnotify_iter_info *iter_info);
Expand Down
12 changes: 11 additions & 1 deletion mm/memblock.c
Original file line number Diff line number Diff line change
Expand Up @@ -2183,11 +2183,14 @@ static void __init memmap_init_reserved_pages(void)
struct memblock_region *region;
phys_addr_t start, end;
int nid;
unsigned long max_reserved;

/*
* set nid on all reserved pages and also treat struct
* pages for the NOMAP regions as PageReserved
*/
repeat:
max_reserved = memblock.reserved.max;
for_each_mem_region(region) {
nid = memblock_get_region_node(region);
start = region->base;
Expand All @@ -2196,8 +2199,15 @@ static void __init memmap_init_reserved_pages(void)
if (memblock_is_nomap(region))
reserve_bootmem_region(start, end, nid);

memblock_set_node(start, end, &memblock.reserved, nid);
memblock_set_node(start, region->size, &memblock.reserved, nid);
}
/*
* 'max' is changed means memblock.reserved has been doubled its
* array, which may result a new reserved region before current
* 'start'. Now we should repeat the procedure to set its node id.
*/
if (max_reserved != memblock.reserved.max)
goto repeat;

/*
* initialize struct pages for reserved regions that don't have
Expand Down
Loading