Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'parisc-for-6.7-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux

Pull parisc fixes from Helge Deller:
"On parisc we still sometimes need writeable stacks, e.g. if programs
aren't compiled with gcc-14. To avoid issues with the upcoming
systemd-254 we therefore have to disable prctl(PR_SET_MDWE) for now
(for parisc only).

The other two patches are minor: a bugfix for the soft power-off on
qemu with 64-bit kernel and prefer strscpy() over strlcpy():

- Fix power soft-off on qemu

- Disable prctl(PR_SET_MDWE) since parisc sometimes still needs
writeable stacks

- Use strscpy instead of strlcpy in show_cpuinfo()"

* tag 'parisc-for-6.7-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
prctl: Disable prctl(PR_SET_MDWE) on parisc
parisc/power: Fix power soft-off when running on qemu
parisc: Replace strlcpy() with strscpy()

+6 -2
+1 -1
arch/parisc/kernel/processor.c
··· 383 383 char cpu_name[60], *p; 384 384 385 385 /* strip PA path from CPU name to not confuse lscpu */ 386 - strlcpy(cpu_name, per_cpu(cpu_data, 0).dev->name, sizeof(cpu_name)); 386 + strscpy(cpu_name, per_cpu(cpu_data, 0).dev->name, sizeof(cpu_name)); 387 387 p = strrchr(cpu_name, '['); 388 388 if (p) 389 389 *(--p) = 0;
+1 -1
drivers/parisc/power.c
··· 176 176 static int qemu_power_off(struct sys_off_data *data) 177 177 { 178 178 /* this turns the system off via SeaBIOS */ 179 - *(int *)data->cb_data = 0; 179 + gsc_writel(0, (unsigned long) data->cb_data); 180 180 pdc_soft_power_button(1); 181 181 return NOTIFY_DONE; 182 182 }
+4
kernel/sys.c
··· 2394 2394 if (bits & PR_MDWE_NO_INHERIT && !(bits & PR_MDWE_REFUSE_EXEC_GAIN)) 2395 2395 return -EINVAL; 2396 2396 2397 + /* PARISC cannot allow mdwe as it needs writable stacks */ 2398 + if (IS_ENABLED(CONFIG_PARISC)) 2399 + return -EINVAL; 2400 + 2397 2401 current_bits = get_current_mdwe(); 2398 2402 if (current_bits && current_bits != bits) 2399 2403 return -EPERM; /* Cannot unset the flags */