Merge tag 'parisc-for-6.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller...
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 20 Dec 2022 14:43:53 +0000 (08:43 -0600)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 20 Dec 2022 14:43:53 +0000 (08:43 -0600)
Pull parisc updates from Helge Deller:
 "There is one noteable patch, which allows the parisc kernel to use the
  same MADV_xxx constants as the other architectures going forward. With
  that change only alpha has one entry left (MADV_DONTNEED is 6 vs 4 on
  others) which is different. To prevent an ABI breakage, a wrapper is
  included which translates old MADV values to the new ones, so existing
  userspace isn't affected. Reason for that patch is, that some
  applications wrongly used the standard MADV_xxx values even on some
  non-x86 platforms and as such those programs failed to run correctly
  on parisc (examples are qemu-user, tor browser and boringssl).

  Then the kgdb console and the LED code received some fixes, and some
  0-day warnings are now gone. Finally, the very last compile warning
  which was visible during a kernel build is now fixed too (in the vDSO
  code).

  The majority of the patches are tagged for stable series and in
  summary this patchset is quite small and drops more code than it adds:

Fixes:
   - Fix potential null-ptr-deref in start_task()
   - Fix kgdb console on serial port
   - Add missing FORCE prerequisites in Makefile
   - Drop PMD_SHIFT from calculation in pgtable.h

  Enhancements:
   - Implement a wrapper to align madvise() MADV_* constants with other
     architectures
   - If machine supports running MPE/XL, show the MPE model string

  Cleanups:
   - Drop duplicate kgdb console code
   - Indenting fixes in setup_cmdline()"

* tag 'parisc-for-6.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
  parisc: Show MPE/iX model string at bootup
  parisc: Add missing FORCE prerequisites in Makefile
  parisc: Move pdc_result struct to firmware.c
  parisc: Drop locking in pdc console code
  parisc: Drop duplicate kgdb_pdc console
  parisc: Fix locking in pdc_iodc_print() firmware call
  parisc: Drop PMD_SHIFT from calculation in pgtable.h
  parisc: Align parisc MADV_XXX constants with all other architectures
  parisc: led: Fix potential null-ptr-deref in start_task()
  parisc: Fix inconsistent indenting in setup_cmdline()

16 files changed:
arch/parisc/include/asm/pdc.h
arch/parisc/include/asm/pgtable.h
arch/parisc/include/uapi/asm/mman.h
arch/parisc/kernel/firmware.c
arch/parisc/kernel/kgdb.c
arch/parisc/kernel/pdc_cons.c
arch/parisc/kernel/processor.c
arch/parisc/kernel/real2.S
arch/parisc/kernel/setup.c
arch/parisc/kernel/sys_parisc.c
arch/parisc/kernel/syscalls/syscall.tbl
arch/parisc/kernel/vdso32/Makefile
arch/parisc/kernel/vdso64/Makefile
drivers/parisc/led.c
tools/arch/parisc/include/uapi/asm/mman.h
tools/perf/bench/bench.h

index fcbcf9a96c1112d39de10868cab3ac544a5b161e..40793bef8429fc74b680ae54da3f4174f074f706 100644 (file)
@@ -37,7 +37,7 @@ int pdc_system_map_find_mods(struct pdc_system_map_mod_info *pdc_mod_info,
 int pdc_system_map_find_addrs(struct pdc_system_map_addr_info *pdc_addr_info,
                              long mod_index, long addr_index);
 int pdc_model_info(struct pdc_model *model);
-int pdc_model_sysmodel(char *name);
+int pdc_model_sysmodel(unsigned int os_id, char *name);
 int pdc_model_cpuid(unsigned long *cpu_id);
 int pdc_model_versions(unsigned long *versions, int id);
 int pdc_model_capabilities(unsigned long *capabilities);
index bd09a44cfb2d4b81350a5c81db7492401e14e9ff..ea357430aafeb42733fe3b01bfa158328eb16e51 100644 (file)
@@ -151,8 +151,8 @@ extern void __update_cache(pte_t pte);
 
 /* This calculates the number of initial pages we need for the initial
  * page tables */
-#if (KERNEL_INITIAL_ORDER) >= (PMD_SHIFT)
-# define PT_INITIAL    (1 << (KERNEL_INITIAL_ORDER - PMD_SHIFT))
+#if (KERNEL_INITIAL_ORDER) >= (PLD_SHIFT + BITS_PER_PTE)
+# define PT_INITIAL    (1 << (KERNEL_INITIAL_ORDER - PLD_SHIFT - BITS_PER_PTE))
 #else
 # define PT_INITIAL    (1)  /* all initial PTEs fit into one page */
 #endif
index 22133a6a506efba842e7286deed19c4fe9c1e6ce..68c44f99bc931bf73f3d6937cf7be082e71a0d7f 100644 (file)
 #define MADV_DONTFORK  10              /* don't inherit across fork */
 #define MADV_DOFORK    11              /* do inherit across fork */
 
+#define MADV_MERGEABLE   12            /* KSM may merge identical pages */
+#define MADV_UNMERGEABLE 13            /* KSM may not merge identical pages */
+
+#define MADV_HUGEPAGE  14              /* Worth backing with hugepages */
+#define MADV_NOHUGEPAGE 15             /* Not worth backing with hugepages */
+
+#define MADV_DONTDUMP   16             /* Explicity exclude from the core dump,
+                                          overrides the coredump filter bits */
+#define MADV_DODUMP    17              /* Clear the MADV_NODUMP flag */
+
+#define MADV_WIPEONFORK 18             /* Zero memory on fork, child only */
+#define MADV_KEEPONFORK 19             /* Undo MADV_WIPEONFORK */
+
 #define MADV_COLD      20              /* deactivate these pages */
 #define MADV_PAGEOUT   21              /* reclaim these pages */
 
 
 #define MADV_DONTNEED_LOCKED   24      /* like DONTNEED, but drop locked pages too */
 
-#define MADV_MERGEABLE   65            /* KSM may merge identical pages */
-#define MADV_UNMERGEABLE 66            /* KSM may not merge identical pages */
-
-#define MADV_HUGEPAGE  67              /* Worth backing with hugepages */
-#define MADV_NOHUGEPAGE        68              /* Not worth backing with hugepages */
-
-#define MADV_DONTDUMP   69             /* Explicity exclude from the core dump,
-                                          overrides the coredump filter bits */
-#define MADV_DODUMP    70              /* Clear the MADV_NODUMP flag */
-
-#define MADV_WIPEONFORK 71             /* Zero memory on fork, child only */
-#define MADV_KEEPONFORK 72             /* Undo MADV_WIPEONFORK */
-
-#define MADV_COLLAPSE  73              /* Synchronous hugepage collapse */
+#define MADV_COLLAPSE  25              /* Synchronous hugepage collapse */
 
 #define MADV_HWPOISON     100          /* poison a page for testing */
 #define MADV_SOFT_OFFLINE 101          /* soft offline page for testing */
 
 /* compatibility flags */
 #define MAP_FILE       0
-#define MAP_VARIABLE   0
 
 #define PKEY_DISABLE_ACCESS    0x1
 #define PKEY_DISABLE_WRITE     0x2
index 6a7e315bcc2e5b8215dd3d8769a5aa736d03c099..4dfe1f49c5c8b2ffd884b0b806afb7b7b77bb89f 100644 (file)
@@ -74,8 +74,8 @@
 static DEFINE_SPINLOCK(pdc_lock);
 #endif
 
-extern unsigned long pdc_result[NUM_PDC_RESULT];
-extern unsigned long pdc_result2[NUM_PDC_RESULT];
+unsigned long pdc_result[NUM_PDC_RESULT]  __aligned(8);
+unsigned long pdc_result2[NUM_PDC_RESULT] __aligned(8);
 
 #ifdef CONFIG_64BIT
 #define WIDE_FIRMWARE 0x1
@@ -527,14 +527,14 @@ int pdc_model_info(struct pdc_model *model)
  * Using OS_ID_HPUX will return the equivalent of the 'modelname' command
  * on HP/UX.
  */
-int pdc_model_sysmodel(char *name)
+int pdc_model_sysmodel(unsigned int os_id, char *name)
 {
         int retval;
        unsigned long flags;
 
         spin_lock_irqsave(&pdc_lock, flags);
         retval = mem_pdc_call(PDC_MODEL, PDC_MODEL_SYSMODEL, __pa(pdc_result),
-                              OS_ID_HPUX, __pa(name));
+                              os_id, __pa(name));
         convert_to_wide(pdc_result);
 
         if (retval == PDC_OK) {
@@ -1288,9 +1288,8 @@ void pdc_io_reset_devices(void)
 
 #endif /* defined(BOOTLOADER) */
 
-/* locked by pdc_console_lock */
-static int __attribute__((aligned(8)))   iodc_retbuf[32];
-static char __attribute__((aligned(64))) iodc_dbuf[4096];
+/* locked by pdc_lock */
+static char iodc_dbuf[4096] __page_aligned_bss;
 
 /**
  * pdc_iodc_print - Console print using IODC.
@@ -1307,6 +1306,9 @@ int pdc_iodc_print(const unsigned char *str, unsigned count)
        unsigned int i;
        unsigned long flags;
 
+       count = min_t(unsigned int, count, sizeof(iodc_dbuf));
+
+       spin_lock_irqsave(&pdc_lock, flags);
        for (i = 0; i < count;) {
                switch(str[i]) {
                case '\n':
@@ -1322,12 +1324,11 @@ int pdc_iodc_print(const unsigned char *str, unsigned count)
        }
 
 print:
-        spin_lock_irqsave(&pdc_lock, flags);
-        real32_call(PAGE0->mem_cons.iodc_io,
-                    (unsigned long)PAGE0->mem_cons.hpa, ENTRY_IO_COUT,
-                    PAGE0->mem_cons.spa, __pa(PAGE0->mem_cons.dp.layers),
-                    __pa(iodc_retbuf), 0, __pa(iodc_dbuf), i, 0);
-        spin_unlock_irqrestore(&pdc_lock, flags);
+       real32_call(PAGE0->mem_cons.iodc_io,
+               (unsigned long)PAGE0->mem_cons.hpa, ENTRY_IO_COUT,
+               PAGE0->mem_cons.spa, __pa(PAGE0->mem_cons.dp.layers),
+               __pa(pdc_result), 0, __pa(iodc_dbuf), i, 0);
+       spin_unlock_irqrestore(&pdc_lock, flags);
 
        return i;
 }
@@ -1354,10 +1355,11 @@ int pdc_iodc_getc(void)
        real32_call(PAGE0->mem_kbd.iodc_io,
                    (unsigned long)PAGE0->mem_kbd.hpa, ENTRY_IO_CIN,
                    PAGE0->mem_kbd.spa, __pa(PAGE0->mem_kbd.dp.layers), 
-                   __pa(iodc_retbuf), 0, __pa(iodc_dbuf), 1, 0);
+                   __pa(pdc_result), 0, __pa(iodc_dbuf), 1, 0);
 
        ch = *iodc_dbuf;
-       status = *iodc_retbuf;
+       /* like convert_to_wide() but for first return value only: */
+       status = *(int *)&pdc_result;
        spin_unlock_irqrestore(&pdc_lock, flags);
 
        if (status == 0)
index ab7620f695be1143ff27b3111922ae974581f71c..b16fa9bac5f44ccc27d2ba7d0bef2aa4090e98fb 100644 (file)
@@ -208,23 +208,3 @@ int kgdb_arch_handle_exception(int trap, int signo,
        }
        return -1;
 }
-
-/* KGDB console driver which uses PDC to read chars from keyboard */
-
-static void kgdb_pdc_write_char(u8 chr)
-{
-       /* no need to print char. kgdb will do it. */
-}
-
-static struct kgdb_io kgdb_pdc_io_ops = {
-       .name           = "kgdb_pdc",
-       .read_char      = pdc_iodc_getc,
-       .write_char     = kgdb_pdc_write_char,
-};
-
-static int __init kgdb_pdc_init(void)
-{
-       kgdb_register_io_module(&kgdb_pdc_io_ops);
-       return 0;
-}
-early_initcall(kgdb_pdc_init);
index 7d0989f523d031bf74888e4ab96ed22b291ea457..cf3bf82323746864e5d76b87051bf804b1f7e08f 100644 (file)
 #include <asm/page.h>          /* for PAGE0 */
 #include <asm/pdc.h>           /* for iodc_call() proto and friends */
 
-static DEFINE_SPINLOCK(pdc_console_lock);
-
 static void pdc_console_write(struct console *co, const char *s, unsigned count)
 {
        int i = 0;
-       unsigned long flags;
 
-       spin_lock_irqsave(&pdc_console_lock, flags);
        do {
                i += pdc_iodc_print(s + i, count - i);
        } while (i < count);
-       spin_unlock_irqrestore(&pdc_console_lock, flags);
 }
 
 #ifdef CONFIG_KGDB
 static int kgdb_pdc_read_char(void)
 {
-       int c;
-       unsigned long flags;
-
-       spin_lock_irqsave(&pdc_console_lock, flags);
-       c = pdc_iodc_getc();
-       spin_unlock_irqrestore(&pdc_console_lock, flags);
+       int c = pdc_iodc_getc();
 
        return (c <= 0) ? NO_POLL_CHAR : c;
 }
 
 static void kgdb_pdc_write_char(u8 chr)
 {
-       if (PAGE0->mem_cons.cl_class != CL_DUPLEX)
-               pdc_console_write(NULL, &chr, 1);
+       /* no need to print char as it's shown on standard console */
+       /* pdc_iodc_print(&chr, 1); */
 }
 
 static struct kgdb_io kgdb_pdc_io_ops = {
index dddaaa6e7a825d445735b0b63fafe9cce5f6f20f..ba07e760d3c762f1251c3d23b865ef9875723ea1 100644 (file)
@@ -272,10 +272,15 @@ void __init collect_boot_cpu_data(void)
                printk(KERN_INFO "capabilities 0x%lx\n",
                        boot_cpu_data.pdc.capabilities);
 
-       if (pdc_model_sysmodel(boot_cpu_data.pdc.sys_model_name) == PDC_OK)
-               printk(KERN_INFO "model %s\n",
+       if (pdc_model_sysmodel(OS_ID_HPUX, boot_cpu_data.pdc.sys_model_name) == PDC_OK)
+               pr_info("HP-UX model name: %s\n",
                        boot_cpu_data.pdc.sys_model_name);
 
+       serial_no[0] = 0;
+       if (pdc_model_sysmodel(OS_ID_MPEXL, serial_no) == PDC_OK &&
+               serial_no[0])
+               pr_info("MPE/iX model name: %s\n", serial_no);
+
        dump_stack_set_arch_desc("%s", boot_cpu_data.pdc.sys_model_name);
 
        boot_cpu_data.hversion =  boot_cpu_data.pdc.model.hversion;
index 2b16d8d6598f1d6015795a4455a24a4c039d0108..4dc12c4c098096a5bbff866f81eb6d08c0b6276f 100644 (file)
 
 #include <linux/linkage.h>
 
-
-       .section        .bss
-
-       .export pdc_result
-       .export pdc_result2
-       .align 8
-pdc_result:
-       .block  ASM_PDC_RESULT_SIZE
-pdc_result2:
-       .block  ASM_PDC_RESULT_SIZE
-
        .export real_stack
-       .export real32_stack
        .export real64_stack
-       .align  64
+       __PAGE_ALIGNED_BSS
 real_stack:
-real32_stack:
 real64_stack:
        .block  8192
 
 #define N_SAVED_REGS 9
-
+       .section        .bss
 save_cr_space:
        .block  REG_SZ * N_SAVED_REGS
 save_cr_end:
index 375f38d6e1a4de1b3d73d330facb9c484ba84427..0797db617962b629eb5a5cff00bfccfc1d68c727 100644 (file)
@@ -50,15 +50,15 @@ void __init setup_cmdline(char **cmdline_p)
        extern unsigned int boot_args[];
        char *p;
 
-       /* Collect stuff passed in from the boot loader */
+       *cmdline_p = command_line;
 
        /* boot_args[0] is free-mem start, boot_args[1] is ptr to command line */
-       if (boot_args[0] < 64) {
-               /* called from hpux boot loader */
-               boot_command_line[0] = '\0';
-       } else {
-               strscpy(boot_command_line, (char *)__va(boot_args[1]),
-                       COMMAND_LINE_SIZE);
+       if (boot_args[0] < 64)
+               return; /* return if called from hpux boot loader */
+
+       /* Collect stuff passed in from the boot loader */
+       strscpy(boot_command_line, (char *)__va(boot_args[1]),
+               COMMAND_LINE_SIZE);
 
        /* autodetect console type (if not done by palo yet) */
        p = boot_command_line;
@@ -75,16 +75,14 @@ void __init setup_cmdline(char **cmdline_p)
                strlcat(p, " earlycon=pdc", COMMAND_LINE_SIZE);
 
 #ifdef CONFIG_BLK_DEV_INITRD
-               if (boot_args[2] != 0) /* did palo pass us a ramdisk? */
-               {
-                   initrd_start = (unsigned long)__va(boot_args[2]);
-                   initrd_end = (unsigned long)__va(boot_args[3]);
-               }
-#endif
+       /* did palo pass us a ramdisk? */
+       if (boot_args[2] != 0) {
+               initrd_start = (unsigned long)__va(boot_args[2]);
+               initrd_end = (unsigned long)__va(boot_args[3]);
        }
+#endif
 
        strscpy(command_line, boot_command_line, COMMAND_LINE_SIZE);
-       *cmdline_p = command_line;
 }
 
 #ifdef CONFIG_PA11
index 848b0702005d6178bceeed876a5ee3ce24b8d295..09a34b07f02e646db4e836eb8bb8cddbacbec099 100644 (file)
@@ -465,3 +465,31 @@ asmlinkage long parisc_inotify_init1(int flags)
        flags = FIX_O_NONBLOCK(flags);
        return sys_inotify_init1(flags);
 }
+
+/*
+ * madvise() wrapper
+ *
+ * Up to kernel v6.1 parisc has different values than all other
+ * platforms for the MADV_xxx flags listed below.
+ * To keep binary compatibility with existing userspace programs
+ * translate the former values to the new values.
+ *
+ * XXX: Remove this wrapper in year 2025 (or later)
+ */
+
+asmlinkage notrace long parisc_madvise(unsigned long start, size_t len_in, int behavior)
+{
+       switch (behavior) {
+       case 65: behavior = MADV_MERGEABLE;     break;
+       case 66: behavior = MADV_UNMERGEABLE;   break;
+       case 67: behavior = MADV_HUGEPAGE;      break;
+       case 68: behavior = MADV_NOHUGEPAGE;    break;
+       case 69: behavior = MADV_DONTDUMP;      break;
+       case 70: behavior = MADV_DODUMP;        break;
+       case 71: behavior = MADV_WIPEONFORK;    break;
+       case 72: behavior = MADV_KEEPONFORK;    break;
+       case 73: behavior = MADV_COLLAPSE;      break;
+       }
+
+       return sys_madvise(start, len_in, behavior);
+}
index 8a99c998da9bb7dc2fcb03c0845155242a172bae..0e42fceb2d5e2d574b6ab4e69f69bf891ab035c0 100644 (file)
 116    common  sysinfo                 sys_sysinfo                     compat_sys_sysinfo
 117    common  shutdown                sys_shutdown
 118    common  fsync                   sys_fsync
-119    common  madvise                 sys_madvise
+119    common  madvise                 parisc_madvise
 120    common  clone                   sys_clone_wrapper
 121    common  setdomainname           sys_setdomainname
 122    common  sendfile                sys_sendfile                    compat_sys_sendfile
index 85b1c6d261d128586796db698cd8ab73ab4a40a0..4459a48d2303350b7ca8ec12e315c7a201193863 100644 (file)
@@ -26,7 +26,7 @@ $(obj)/vdso32_wrapper.o : $(obj)/vdso32.so FORCE
 
 # Force dependency (incbin is bad)
 # link rule for the .so file, .lds has to be first
-$(obj)/vdso32.so: $(src)/vdso32.lds $(obj-vdso32) $(obj-cvdso32) $(VDSO_LIBGCC)
+$(obj)/vdso32.so: $(src)/vdso32.lds $(obj-vdso32) $(obj-cvdso32) $(VDSO_LIBGCC) FORCE
        $(call if_changed,vdso32ld)
 
 # assembly rules for the .S files
@@ -38,7 +38,7 @@ $(obj-cvdso32): %.o: %.c FORCE
 
 # actual build commands
 quiet_cmd_vdso32ld = VDSO32L $@
-      cmd_vdso32ld = $(CROSS32CC) $(c_flags) -Wl,-T $^ -o $@
+      cmd_vdso32ld = $(CROSS32CC) $(c_flags) -Wl,-T $(filter-out FORCE, $^) -o $@
 quiet_cmd_vdso32as = VDSO32A $@
       cmd_vdso32as = $(CROSS32CC) $(a_flags) -c -o $@ $<
 quiet_cmd_vdso32cc = VDSO32C $@
index a30f5ec5eb4bfab62e192779784548305b9146b6..f3d6045793f4c88c1ab395f494d6334f4edb6b7b 100644 (file)
@@ -26,7 +26,7 @@ $(obj)/vdso64_wrapper.o : $(obj)/vdso64.so FORCE
 
 # Force dependency (incbin is bad)
 # link rule for the .so file, .lds has to be first
-$(obj)/vdso64.so: $(src)/vdso64.lds $(obj-vdso64) $(VDSO_LIBGCC)
+$(obj)/vdso64.so: $(src)/vdso64.lds $(obj-vdso64) $(VDSO_LIBGCC) FORCE
        $(call if_changed,vdso64ld)
 
 # assembly rules for the .S files
@@ -35,7 +35,7 @@ $(obj-vdso64): %.o: %.S FORCE
 
 # actual build commands
 quiet_cmd_vdso64ld = VDSO64L $@
-      cmd_vdso64ld = $(CC) $(c_flags) -Wl,-T $^ -o $@
+      cmd_vdso64ld = $(CC) $(c_flags) -Wl,-T $(filter-out FORCE, $^) -o $@
 quiet_cmd_vdso64as = VDSO64A $@
       cmd_vdso64as = $(CC) $(a_flags) -c -o $@ $<
 
index d4be9d2ee74d9254b7d9a57797d2460c646060ad..8bdc5e043831cdbab4117a999d6127ca7f356dcb 100644 (file)
@@ -137,6 +137,9 @@ static int start_task(void)
 
        /* Create the work queue and queue the LED task */
        led_wq = create_singlethread_workqueue("led_wq");       
+       if (!led_wq)
+               return -ENOMEM;
+
        queue_delayed_work(led_wq, &led_task, 0);
 
        return 0;
index 506c06a6536fb248afbbabfdaaaf8c51668c133b..4cc88a642e1065366c4d6c8fb4b4bdec5555780c 100644 (file)
@@ -1,20 +1,20 @@
 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
 #ifndef TOOLS_ARCH_PARISC_UAPI_ASM_MMAN_FIX_H
 #define TOOLS_ARCH_PARISC_UAPI_ASM_MMAN_FIX_H
-#define MADV_DODUMP    70
+#define MADV_DODUMP    17
 #define MADV_DOFORK    11
-#define MADV_DONTDUMP   69
+#define MADV_DONTDUMP   16
 #define MADV_DONTFORK  10
 #define MADV_DONTNEED   4
 #define MADV_FREE      8
-#define MADV_HUGEPAGE  67
-#define MADV_MERGEABLE   65
-#define MADV_NOHUGEPAGE        68
+#define MADV_HUGEPAGE  14
+#define MADV_MERGEABLE  12
+#define MADV_NOHUGEPAGE 15
 #define MADV_NORMAL     0
 #define MADV_RANDOM     1
 #define MADV_REMOVE    9
 #define MADV_SEQUENTIAL 2
-#define MADV_UNMERGEABLE 66
+#define MADV_UNMERGEABLE 13
 #define MADV_WILLNEED   3
 #define MAP_ANONYMOUS  0x10
 #define MAP_DENYWRITE  0x0800
index 6cefb4315d75eae3bbf65a1c3f98b7be5a6efb54..a5d49b3b6a0987a0a0b945883ae30319e397fd87 100644 (file)
@@ -10,25 +10,13 @@ extern struct timeval bench__start, bench__end, bench__runtime;
  * The madvise transparent hugepage constants were added in glibc
  * 2.13. For compatibility with older versions of glibc, define these
  * tokens if they are not already defined.
- *
- * PA-RISC uses different madvise values from other architectures and
- * needs to be special-cased.
  */
-#ifdef __hppa__
-# ifndef MADV_HUGEPAGE
-#  define MADV_HUGEPAGE                67
-# endif
-# ifndef MADV_NOHUGEPAGE
-#  define MADV_NOHUGEPAGE      68
-# endif
-#else
 # ifndef MADV_HUGEPAGE
 #  define MADV_HUGEPAGE                14
 # endif
 # ifndef MADV_NOHUGEPAGE
 #  define MADV_NOHUGEPAGE      15
 # endif
-#endif
 
 int bench_numa(int argc, const char **argv);
 int bench_sched_messaging(int argc, const char **argv);