Skip to content

Commit ed77ac9

Browse files
committed
Merge tag 'parisc-for-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux
Pull parisc updates from Helge Deller: - Add missing cacheflush() syscall - Fix STI console on 64-bit-only machines - Move kernel debug options to Kconfig.debug - Lots of warning fixes in arch/parisc/ and drivers/parisc/ when compiled with W=1 - Enable some more graphics drivers in refreshed defconfigs * tag 'parisc-for-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux: (29 commits) parisc: Refresh defconfigs parisc: irq: Add irq-related function declarations parisc: Move init function declarations into header file parisc: dino: Make dino_init() returning void parisc: lba_pci: Mark two variables __maybe_unused parisc: unaligned: Include header file to avoid missing prototype warnings parisc: signal: Mark do_notify_resume() and sys_rt_sigreturn() asmlinkage parisc: unwind: Mark start and stop variables __maybe_unused parisc: init: Drop unused variable end_paddr parisc: traps: Mark functions static parisc: processor: Fix kdoc for init_cpu_profiler() parisc: sys_parisc: parisc_personality() is called from asm code parisc: ccio-dma: Fix kdoc and compiler warnings parisc: pdc_stable: Fix kdoc and compiler warnings parisc: pci-dma: Make pcxl_alloc_range() static parisc: Mark image_size __maybe_unused in perf_write() parisc: module: Mark symindex __maybe_unused parisc: pdc_chassis: Fix kdoc warnings parisc: firmware: Fix kdoc warnings parisc: drivers: Fix kdoc warnings ...
2 parents 995b406 + 4ad1218 commit ed77ac9

37 files changed

+485
-252
lines changed

arch/parisc/Kconfig

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -304,16 +304,6 @@ config IRQSTACKS
304304
for handling hard and soft interrupts. This can help avoid
305305
overflowing the process kernel stacks.
306306

307-
config TLB_PTLOCK
308-
bool "Use page table locks in TLB fault handler"
309-
depends on SMP
310-
default n
311-
help
312-
Select this option to enable page table locking in the TLB
313-
fault handler. This ensures that page table entries are
314-
updated consistently on SMP machines at the expense of some
315-
loss in performance.
316-
317307
config HOTPLUG_CPU
318308
bool
319309
default y if SMP
@@ -346,7 +336,7 @@ config NR_CPUS
346336
int "Maximum number of CPUs (2-32)"
347337
range 2 32
348338
depends on SMP
349-
default "4" if 64BIT
339+
default "8" if 64BIT
350340
default "16"
351341

352342
config KEXEC

arch/parisc/Kconfig.debug

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,14 @@ config LIGHTWEIGHT_SPINLOCK_CHECK
1010
spinlock debugging you should choose the DEBUG_SPINLOCK option
1111
which will detect unitialized spinlocks too.
1212
If unsure say Y here.
13+
14+
config TLB_PTLOCK
15+
bool "Use page table locks in TLB fault handler"
16+
depends on SMP
17+
default n
18+
help
19+
Select this option to enable page table locking in the TLB
20+
fault handler. This ensures that page table entries are
21+
updated consistently on SMP machines at the expense of some
22+
loss in performance.
23+

arch/parisc/configs/generic-32bit_defconfig

Lines changed: 45 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@ CONFIG_TUN=m
8282
# CONFIG_NET_VENDOR_AMD is not set
8383
# CONFIG_NET_VENDOR_ATHEROS is not set
8484
# CONFIG_NET_VENDOR_BROADCOM is not set
85-
# CONFIG_NET_VENDOR_BROCADE is not set
8685
# CONFIG_NET_VENDOR_CHELSIO is not set
8786
# CONFIG_NET_VENDOR_CISCO is not set
8887
CONFIG_NET_TULIP=y
@@ -97,6 +96,7 @@ CONFIG_LASI_82596=y
9796
# CONFIG_NET_VENDOR_NVIDIA is not set
9897
# CONFIG_NET_VENDOR_OKI is not set
9998
# CONFIG_NET_VENDOR_QLOGIC is not set
99+
# CONFIG_NET_VENDOR_BROCADE is not set
100100
# CONFIG_NET_VENDOR_RDC is not set
101101
# CONFIG_NET_VENDOR_REALTEK is not set
102102
# CONFIG_NET_VENDOR_SEEQ is not set
@@ -129,17 +129,53 @@ CONFIG_PRINTER=m
129129
CONFIG_PPDEV=m
130130
# CONFIG_HW_RANDOM is not set
131131
CONFIG_I2C=y
132-
# CONFIG_HWMON is not set
132+
CONFIG_HWMON=m
133+
CONFIG_DRM=m
134+
CONFIG_DRM_DP_CEC=y
135+
# CONFIG_DRM_I2C_CH7006 is not set
136+
# CONFIG_DRM_I2C_SIL164 is not set
137+
CONFIG_DRM_RADEON=m
138+
CONFIG_DRM_NOUVEAU=m
139+
# CONFIG_DRM_NOUVEAU_BACKLIGHT is not set
140+
CONFIG_DRM_VGEM=m
141+
CONFIG_DRM_UDL=m
142+
CONFIG_DRM_MGAG200=m
133143
CONFIG_FB=y
134144
CONFIG_FB_FOREIGN_ENDIAN=y
135-
CONFIG_FB_MODE_HELPERS=y
145+
CONFIG_FB_PM2=m
146+
CONFIG_FB_PM2_FIFO_DISCONNECT=y
147+
CONFIG_FB_NVIDIA=m
148+
CONFIG_FB_NVIDIA_I2C=y
149+
# CONFIG_FB_NVIDIA_BACKLIGHT is not set
150+
CONFIG_FB_RIVA=m
151+
CONFIG_FB_RIVA_I2C=y
152+
# CONFIG_FB_RIVA_BACKLIGHT is not set
136153
CONFIG_FB_MATROX=m
154+
CONFIG_FB_MATROX_MILLENIUM=y
155+
CONFIG_FB_MATROX_MYSTIQUE=y
137156
CONFIG_FB_MATROX_G=y
157+
CONFIG_FB_MATROX_I2C=m
158+
CONFIG_FB_MATROX_MAVEN=m
159+
CONFIG_FB_ATY128=m
160+
# CONFIG_FB_ATY128_BACKLIGHT is not set
161+
CONFIG_FB_ATY=m
162+
CONFIG_FB_ATY_CT=y
163+
CONFIG_FB_ATY_GX=y
164+
# CONFIG_FB_ATY_BACKLIGHT is not set
165+
CONFIG_FB_S3=m
166+
CONFIG_FB_SAVAGE=m
167+
CONFIG_FB_SAVAGE_I2C=y
168+
CONFIG_FB_SAVAGE_ACCEL=y
169+
CONFIG_FB_SIS=m
170+
CONFIG_FB_SIS_300=y
171+
CONFIG_FB_SIS_315=y
138172
CONFIG_FB_VOODOO1=m
173+
CONFIG_FB_TRIDENT=m
174+
CONFIG_FB_SMSCUFX=m
175+
CONFIG_FB_UDL=m
139176
CONFIG_DUMMY_CONSOLE_COLUMNS=128
140177
CONFIG_DUMMY_CONSOLE_ROWS=48
141178
CONFIG_FRAMEBUFFER_CONSOLE=y
142-
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
143179
CONFIG_LOGO=y
144180
# CONFIG_LOGO_LINUX_MONO is not set
145181
# CONFIG_LOGO_LINUX_VGA16 is not set
@@ -216,17 +252,17 @@ CONFIG_CIFS_XATTR=y
216252
CONFIG_CIFS_POSIX=y
217253
# CONFIG_CIFS_DEBUG is not set
218254
CONFIG_CRYPTO_TEST=m
219-
CONFIG_CRYPTO_HMAC=y
220-
CONFIG_CRYPTO_MD5=y
221-
CONFIG_CRYPTO_MICHAEL_MIC=m
222-
CONFIG_CRYPTO_SHA1=y
223-
CONFIG_CRYPTO_WP512=m
224255
CONFIG_CRYPTO_BLOWFISH=m
225256
CONFIG_CRYPTO_CAST5=m
226257
CONFIG_CRYPTO_CAST6=m
227258
CONFIG_CRYPTO_DES=y
228259
CONFIG_CRYPTO_SERPENT=m
229260
CONFIG_CRYPTO_TWOFISH=m
261+
CONFIG_CRYPTO_HMAC=y
262+
CONFIG_CRYPTO_MD5=y
263+
CONFIG_CRYPTO_MICHAEL_MIC=m
264+
CONFIG_CRYPTO_SHA1=y
265+
CONFIG_CRYPTO_WP512=m
230266
CONFIG_CRYPTO_DEFLATE=y
231267
CONFIG_CRC_CCITT=m
232268
CONFIG_CRC_T10DIF=y

arch/parisc/configs/generic-64bit_defconfig

Lines changed: 38 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,6 @@ CONFIG_USER_NS=y
2020
CONFIG_RELAY=y
2121
CONFIG_BLK_DEV_INITRD=y
2222
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
23-
# CONFIG_COMPAT_BRK is not set
24-
CONFIG_PA8X00=y
25-
CONFIG_64BIT=y
2623
CONFIG_SMP=y
2724
CONFIG_HPPB=y
2825
CONFIG_IOMMU_CCIO=y
@@ -37,6 +34,7 @@ CONFIG_MODULE_FORCE_UNLOAD=y
3734
CONFIG_MODVERSIONS=y
3835
CONFIG_BLK_DEV_INTEGRITY=y
3936
CONFIG_BINFMT_MISC=m
37+
# CONFIG_COMPAT_BRK is not set
4038
# CONFIG_COMPACTION is not set
4139
CONFIG_MEMORY_FAILURE=y
4240
CONFIG_NET=y
@@ -103,7 +101,6 @@ CONFIG_TUN=y
103101
# CONFIG_NET_VENDOR_AMD is not set
104102
# CONFIG_NET_VENDOR_ATHEROS is not set
105103
# CONFIG_NET_VENDOR_BROADCOM is not set
106-
# CONFIG_NET_VENDOR_BROCADE is not set
107104
# CONFIG_NET_VENDOR_CHELSIO is not set
108105
# CONFIG_NET_VENDOR_CISCO is not set
109106
CONFIG_NET_TULIP=y
@@ -121,6 +118,7 @@ CONFIG_E1000=y
121118
# CONFIG_NET_VENDOR_OKI is not set
122119
CONFIG_QLA3XXX=m
123120
CONFIG_QLCNIC=m
121+
# CONFIG_NET_VENDOR_BROCADE is not set
124122
# CONFIG_NET_VENDOR_RDC is not set
125123
# CONFIG_NET_VENDOR_REALTEK is not set
126124
# CONFIG_NET_VENDOR_SEEQ is not set
@@ -186,7 +184,6 @@ CONFIG_WATCHDOG=y
186184
CONFIG_SOFT_WATCHDOG=m
187185
CONFIG_SSB=m
188186
CONFIG_SSB_DRIVER_PCICORE=y
189-
CONFIG_HTC_PASIC3=m
190187
CONFIG_LPC_SCH=m
191188
CONFIG_MFD_SM501=m
192189
CONFIG_REGULATOR=y
@@ -196,14 +193,46 @@ CONFIG_MEDIA_SUPPORT=m
196193
CONFIG_AGP=y
197194
CONFIG_AGP_PARISC=y
198195
CONFIG_DRM=y
196+
# CONFIG_DRM_I2C_CH7006 is not set
197+
# CONFIG_DRM_I2C_SIL164 is not set
199198
CONFIG_DRM_RADEON=y
199+
CONFIG_DRM_NOUVEAU=m
200+
# CONFIG_DRM_NOUVEAU_BACKLIGHT is not set
201+
CONFIG_DRM_MGAG200=m
200202
CONFIG_FB=y
201-
CONFIG_FB_MATROX=y
203+
CONFIG_FB_PM2=m
204+
CONFIG_FB_PM2_FIFO_DISCONNECT=y
205+
CONFIG_FB_NVIDIA=m
206+
CONFIG_FB_NVIDIA_I2C=y
207+
# CONFIG_FB_NVIDIA_BACKLIGHT is not set
208+
CONFIG_FB_RIVA=m
209+
CONFIG_FB_RIVA_I2C=y
210+
# CONFIG_FB_RIVA_BACKLIGHT is not set
211+
CONFIG_FB_MATROX=m
212+
CONFIG_FB_MATROX_MILLENIUM=y
202213
CONFIG_FB_MATROX_MYSTIQUE=y
203214
CONFIG_FB_MATROX_G=y
204-
CONFIG_FB_MATROX_I2C=y
205-
CONFIG_FB_MATROX_MAVEN=y
215+
CONFIG_FB_MATROX_I2C=m
216+
CONFIG_FB_MATROX_MAVEN=m
206217
CONFIG_FB_RADEON=y
218+
# CONFIG_FB_RADEON_BACKLIGHT is not set
219+
CONFIG_FB_ATY128=m
220+
# CONFIG_FB_ATY128_BACKLIGHT is not set
221+
CONFIG_FB_ATY=m
222+
CONFIG_FB_ATY_CT=y
223+
CONFIG_FB_ATY_GX=y
224+
# CONFIG_FB_ATY_BACKLIGHT is not set
225+
CONFIG_FB_S3=m
226+
CONFIG_FB_SAVAGE=m
227+
CONFIG_FB_SAVAGE_I2C=y
228+
CONFIG_FB_SAVAGE_ACCEL=y
229+
CONFIG_FB_SIS=m
230+
CONFIG_FB_SIS_300=y
231+
CONFIG_FB_SIS_315=y
232+
CONFIG_FB_VOODOO1=m
233+
CONFIG_FB_TRIDENT=m
234+
CONFIG_FB_SMSCUFX=m
235+
CONFIG_FB_UDL=m
207236
CONFIG_LOGO=y
208237
# CONFIG_LOGO_LINUX_CLUT224 is not set
209238
CONFIG_HIDRAW=y
@@ -257,12 +286,12 @@ CONFIG_NLS_ISO8859_1=m
257286
CONFIG_NLS_ISO8859_2=m
258287
CONFIG_NLS_UTF8=m
259288
CONFIG_CRYPTO_MANAGER=y
289+
CONFIG_CRYPTO_FCRYPT=m
260290
CONFIG_CRYPTO_ECB=m
261291
CONFIG_CRYPTO_PCBC=m
262292
CONFIG_CRYPTO_MD4=m
263293
CONFIG_CRYPTO_MD5=y
264294
CONFIG_CRYPTO_MICHAEL_MIC=m
265-
CONFIG_CRYPTO_FCRYPT=m
266295
CONFIG_CRYPTO_DEFLATE=m
267296
# CONFIG_CRYPTO_HW is not set
268297
CONFIG_CRC_CCITT=m

arch/parisc/include/asm/irqflags.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@ static inline unsigned long arch_local_irq_save(void)
3131

3232
static inline void arch_local_irq_restore(unsigned long flags)
3333
{
34+
/* warn if IRQs are on although they should be off */
35+
if (IS_ENABLED(CONFIG_LIGHTWEIGHT_SPINLOCK_CHECK))
36+
if (arch_local_save_flags() & PSW_I)
37+
asm volatile("break 6,6\n"); /* SPINLOCK_BREAK_INSN */
38+
3439
asm volatile("mtsm %0" : : "r" (flags) : "memory");
3540
}
3641

arch/parisc/include/asm/pdc.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,8 @@ int pdc_iodc_print(const unsigned char *str, unsigned count);
8888

8989
void pdc_emergency_unlock(void);
9090
int pdc_sti_call(unsigned long func, unsigned long flags,
91-
unsigned long inptr, unsigned long outputr,
92-
unsigned long glob_cfg);
91+
unsigned long inptr, unsigned long outputr,
92+
unsigned long glob_cfg, int do_call64);
9393

9494
int __pdc_cpu_rendezvous(void);
9595
void pdc_cpu_rendezvous_lock(void);

arch/parisc/include/asm/processor.h

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
#ifndef __ASSEMBLY__
1313
#include <linux/threads.h>
14+
#include <linux/irqreturn.h>
1415

1516
#include <asm/assembly.h>
1617
#include <asm/prefetch.h>
@@ -291,6 +292,40 @@ extern void __noreturn toc_intr(struct pt_regs *regs);
291292
extern void toc_handler(void);
292293
extern unsigned int toc_handler_size;
293294
extern unsigned int toc_handler_csum;
295+
extern void do_cpu_irq_mask(struct pt_regs *);
296+
extern irqreturn_t timer_interrupt(int, void *);
297+
extern irqreturn_t ipi_interrupt(int, void *);
298+
299+
/* called from assembly code: */
300+
extern void start_parisc(void);
301+
extern void smp_callin(unsigned long);
302+
extern void sys_rt_sigreturn(struct pt_regs *, int);
303+
extern void do_notify_resume(struct pt_regs *, long);
304+
extern long do_syscall_trace_enter(struct pt_regs *);
305+
extern void do_syscall_trace_exit(struct pt_regs *);
306+
307+
/* CPU startup and info */
308+
struct seq_file;
309+
extern void early_trap_init(void);
310+
extern void collect_boot_cpu_data(void);
311+
extern int show_cpuinfo (struct seq_file *m, void *v);
312+
313+
/* driver code in driver/parisc */
314+
extern void gsc_init(void);
315+
extern void processor_init(void);
316+
extern void ccio_init(void);
317+
extern void hppb_init(void);
318+
extern void dino_init(void);
319+
extern void iosapic_init(void);
320+
extern void lba_init(void);
321+
extern void sba_init(void);
322+
extern void parisc_eisa_init(void);
323+
struct parisc_device;
324+
struct resource;
325+
extern void sba_distributed_lmmio(struct parisc_device *, struct resource *);
326+
extern void sba_directed_lmmio(struct parisc_device *, struct resource *);
327+
extern void lba_set_iregs(struct parisc_device *lba, u32 ibase, u32 imask);
328+
extern void ccio_cujo20_fixup(struct parisc_device *dev, u32 iovp);
294329

295330
#endif /* __ASSEMBLY__ */
296331

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2+
#ifndef _ASM_CACHECTL
3+
#define _ASM_CACHECTL
4+
5+
/*
6+
* Options for cacheflush system call
7+
*/
8+
#define ICACHE (1<<0) /* flush instruction cache */
9+
#define DCACHE (1<<1) /* writeback and flush data cache */
10+
#define BCACHE (ICACHE|DCACHE) /* flush both caches */
11+
12+
#endif /* _ASM_CACHECTL */

arch/parisc/kernel/audit.c

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,6 @@ int audit_classify_arch(int arch)
4040

4141
int audit_classify_syscall(int abi, unsigned syscall)
4242
{
43-
#ifdef CONFIG_COMPAT
44-
extern int parisc32_classify_syscall(unsigned);
45-
if (abi == AUDIT_ARCH_PARISC)
46-
return parisc32_classify_syscall(syscall);
47-
#endif
4843
switch (syscall) {
4944
case __NR_open:
5045
return AUDITSC_OPEN;
@@ -55,6 +50,10 @@ int audit_classify_syscall(int abi, unsigned syscall)
5550
case __NR_openat2:
5651
return AUDITSC_OPENAT2;
5752
default:
53+
#ifdef CONFIG_COMPAT
54+
if (abi == AUDIT_ARCH_PARISC)
55+
return AUDITSC_COMPAT;
56+
#endif
5857
return AUDITSC_NATIVE;
5958
}
6059
}

0 commit comments

Comments
 (0)