* Re: [PATCH v3 31/41] powerpc/32: Dismantle EXC_XFER_STD/LITE/TEMPLATE
From: Finn Thain @ 2021-07-31 10:12 UTC (permalink / raw)
To: Christophe Leroy, Stan Johnson
Cc: linux-kernel, Nick Piggin, Paul Mackerras, linuxppc-dev
In-Reply-To: <ca5795d04a220586b7037dbbbe6951dfa9e768eb.1615552867.git.christophe.leroy@csgroup.eu>
Hi Christophe,
On Fri, 12 Mar 2021, Christophe Leroy wrote:
> In order to get more control in exception prolog, dismantle all non
> standard exception macros, finishing with EXC_XFER_STD and EXC_XFER_LITE
> and EXC_XFER_TEMPLATE.
>
> Also remove transfer_to_handler_full and ret_from_except and
> ret_from_except_full as they are not used anymore.
>
> Last parameter of EXCEPTION() is now ignored, will be removed in a later
> patch to avoid too much churn.
>
> Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
> ---
> arch/powerpc/kernel/entry_32.S | 42 +-----------------------
> arch/powerpc/kernel/head_32.h | 21 ++++--------
> arch/powerpc/kernel/head_40x.S | 33 ++++++++++++-------
> arch/powerpc/kernel/head_8xx.S | 12 +++++--
> arch/powerpc/kernel/head_book3s_32.S | 27 ++++++++++-----
> arch/powerpc/kernel/head_booke.h | 49 +++++++++++++++-------------
> arch/powerpc/kernel/head_fsl_booke.S | 14 +++++---
> 7 files changed, 92 insertions(+), 106 deletions(-)
>
Stan Johnson contacted me about a regression in mainline that he observed
on his G3 Powerbooks. Using 'git bisect' we determined that this patch was
the cause of the regression, i.e. commit 4c0104a83fc3 ("powerpc/32:
Dismantle EXC_XFER_STD/LITE/TEMPLATE").
When testing 4c0104a83fc and all subsequent builds, various user processes
were liable to segfault. Here is the console log that Stan provided:
[ 0.000000] printk: debug: ignoring loglevel setting.
[ 0.000000] Total memory = 512MB; using 1024kB for hash table
[ 0.000000] Activating Kernel Userspace Execution Prevention
[ 0.000000] Activating Kernel Userspace Access Protection
[ 0.000000] Linux version 5.12.0-rc3-pmac-00067-g4c0104a83fc (johnson@ThinkPad) (powerpc-linux-gnu-gcc (Debian 8.3.0-2) 8.3.0, GNU ld (GNU Binutils for Debian) 2.31.1) #22 SMP Fri Jul 30 12:15:00 MDT 2021
[ 0.000000] ioremap() called early from probe_one_macio+0x130/0x268. Use early_ioremap() instead
[ 0.000000] Found a Gatwick mac-io controller, rev: 0, mapped at 0x(ptrval)
[ 0.000000] ioremap() called early from probe_one_macio+0x130/0x268. Use early_ioremap() instead
[ 0.000000] Found a Heathrow mac-io controller, rev: 0, mapped at 0x(ptrval)
[ 0.000000] PowerMac motherboard: PowerBook Wallstreet
[ 0.000000] ioremap() called early from find_via_pmu+0x244/0x56c. Use early_ioremap() instead
[ 0.000000] PMU driver v2 initialized for PowerBook G3 Series, firmware: 0a
[ 0.000000] Using PowerMac machine description
[ 0.000000] printk: bootconsole [udbg0] enabled
[ 0.000000] CPU maps initialized for 1 thread per core
[ 0.000000] (thread shift is 0)
[ 0.000000] -----------------------------------------------------
[ 0.000000] phys_mem_size = 0x20000000
[ 0.000000] dcache_bsize = 0x20
[ 0.000000] icache_bsize = 0x20
[ 0.000000] cpu_features = 0x000000000501a008
[ 0.000000] possible = 0x00000000277de14a
[ 0.000000] always = 0x0000000001000000
[ 0.000000] cpu_user_features = 0x8c000001 0x00000000
[ 0.000000] mmu_features = 0x00000001
[ 0.000000] Hash_size = 0x100000
[ 0.000000] Hash_mask = 0x3fff
[ 0.000000] -----------------------------------------------------
[ 0.000000] ioremap() called early from pmac_setup_arch+0x10c/0x294. Use early_ioremap() instead
[ 0.000000] nvram: OF partition at 0x1800
[ 0.000000] nvram: XP partition at 0x1300
[ 0.000000] nvram: NR partition at 0x1400
[ 0.000000] Top of RAM: 0x20000000, Total RAM: 0x20000000
[ 0.000000] Memory hole size: 0MB
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x0000000000000000-0x000000001fffffff]
[ 0.000000] Normal empty
[ 0.000000] HighMem empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000000000000-0x000000001fffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000001fffffff]
[ 0.000000] On node 0 totalpages: 131072
[ 0.000000] DMA zone: 1024 pages used for memmap
[ 0.000000] DMA zone: 0 pages reserved
[ 0.000000] DMA zone: 131072 pages, LIFO batch:31
[ 0.000000] percpu: Embedded 13 pages/cpu s21644 r8192 d23412 u53248
[ 0.000000] pcpu-alloc: s21644 r8192 d23412 u53248 alloc=13*4096
[ 0.000000] pcpu-alloc: [0] 0 [0] 1
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 130048
[ 0.000000] Kernel command line: root=/dev/sda12 console=ttyS0 console=tty printk.time earlyprintk ignore_loglevel video=ofonly
[ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes, linear)
[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0.000000] Memory: 498908K/524288K available (6756K kernel code, 352K rwdata, 1276K rodata, 1232K init, 176K bss, 25380K reserved, 0K cma-reserved, 0K highmem)
[ 0.000000] Kernel virtual memory layout:
[ 0.000000] * 0xffbbf000..0xfffff000 : fixmap
[ 0.000000] * 0xff400000..0xff800000 : highmem PTEs
[ 0.000000] * 0xff2fd000..0xff400000 : early ioremap
[ 0.000000] * 0xe1000000..0xff2fd000 : vmalloc & ioremap
[ 0.000000] rcu: Hierarchical RCU implementation.
[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[ 0.000000] NR_IRQS: 512, nr_irqs: 512, preallocated irqs: 16
[ 0.000000] irq: Found primary Apple PIC /pci/mac-io for 64 irqs
[ 0.000000] irq: Found slave Apple PIC /pci/mac-io for 64 irqs cascade: 27
[ 0.000000] irq: System has 128 possible interrupts
[ 0.000000] GMT Delta read from XPRAM: -360 minutes, DST: on
[ 0.000000] random: get_random_u32 called from start_kernel+0x36c/0x4d8 with crng_init=0
[ 0.000000] time_init: decrementer frequency = 16.671650 MHz
[ 0.000000] time_init: processor frequency = 264.000000 MHz
[ 0.000038] clocksource: timebase: mask: 0xffffffffffffffff max_cycles: 0x3d85178a6, max_idle_ns: 440795202430 ns
[ 0.000097] clocksource: timebase mult[3bfb68a3] shift[24] registered
[ 0.000201] clockevent: decrementer mult[44497e0] shift[32] cpu[0]
[ 0.001368] Console: colour dummy device 80x25
[ 0.001436] printk: console [tty0] enabled
[ 0.001487] printk: bootconsole [udbg0] disabled
[ 0.001882] pmac_zilog: serial modem detected
[ 1.345729] printk: console [ttyS0] enabled
[ 1.358329] pid_max: default: 32768 minimum: 301
[ 1.372599] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 1.394156] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 1.422118] rcu: Hierarchical SRCU implementation.
[ 1.437119] smp: Bringing up secondary CPUs ...
[ 1.450268] smp: Brought up 1 node, 1 CPU
[ 1.463448] devtmpfs: initialized
[ 1.473485] Duplicate name in PowerPC,750, renamed to "l2-cache#1"
[ 1.494492] Duplicate name in pci, renamed to "mac-io#1"
[ 1.511648] Duplicate name in pci, renamed to "pccard#1"
[ 1.530211] Found Grackle (MPC106) PCI host bridge at 0x0000000080000000. Firmware bus number: 0->0
[ 1.556990] PCI host bridge /pci (primary) ranges:
[ 1.571383] IO 0x00000000fe000000..0x00000000fe7fffff -> 0x0000000000000000
[ 1.593309] MEM 0x00000000fd000000..0x00000000fdffffff -> 0x0000000000000000
[ 1.614579] MEM 0x0000000080000000..0x00000000fcffffff -> 0x0000000080000000
[ 1.637120] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 1.667441] futex hash table entries: 512 (order: 2, 16384 bytes, linear)
[ 1.688431] NET: Registered protocol family 16
[ 1.707910] PMU i2c /pci/mac-io/via-pmu
[ 1.722983] channel 1 bus <multibus>
[ 1.733605] channel 2 bus <multibus>
[ 1.746841] PCI: Probing PCI hardware
[ 1.761155] PCI host bridge to bus 0000:00
[ 1.773432] pci_bus 0000:00: root bus resource [io 0x0000-0x7fffff]
[ 1.792247] pci_bus 0000:00: root bus resource [mem 0xfd000000-0xfdffffff] (bus address [0x00000000-0x00ffffff])
[ 1.822825] pci_bus 0000:00: root bus resource [mem 0x80000000-0xfcffffff]
[ 1.843419] pci_bus 0000:00: root bus resource [bus 00-ff]
[ 1.859881] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to ff
[ 1.879871] pci 0000:00:00.0: [1057:0002] type 00 class 0x060000
[ 1.899189] pci 0000:00:0d.0: [106b:0017] type 00 class 0xff0000
[ 1.916838] pci 0000:00:0d.0: reg 0x10: [mem 0xf4000000-0xf407ffff]
[ 1.936859] pci 0000:00:10.0: [106b:0017] type 00 class 0xff0000
[ 1.954533] pci 0000:00:10.0: reg 0x10: [mem 0xf3000000-0xf307ffff]
[ 1.974637] pci 0000:00:11.0: [1002:4c50] type 00 class 0x038000
[ 1.992312] pci 0000:00:11.0: reg 0x10: [mem 0x82000000-0x82ffffff]
[ 2.011110] pci 0000:00:11.0: reg 0x14: [io 0x0400-0x04ff]
[ 2.027818] pci 0000:00:11.0: reg 0x18: [mem 0x82fff000-0x82ffffff]
[ 2.046665] pci 0000:00:11.0: reg 0x30: [mem 0xfd000000-0xfd01ffff pref]
[ 2.066830] pci 0000:00:11.0: supports D1 D2
[ 2.080778] pci 0000:00:13.0: [104c:ac15] type 02 class 0x060700
[ 2.098478] pci 0000:00:13.0: reg 0x10: [mem 0x81803000-0x81803fff]
[ 2.118276] pci 0000:00:13.1: [104c:ac15] type 02 class 0x060700
[ 2.135978] pci 0000:00:13.1: reg 0x10: [mem 0x81802000-0x81802fff]
[ 2.156532] pci_bus 0000:01: extended config space not accessible
[ 2.175227] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 04
[ 2.195189] pci_bus 0000:05: extended config space not accessible
[ 2.213538] pci_bus 0000:05: busn_res: [bus 05-ff] end is updated to 08
[ 2.233067] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 08
[ 2.253708] PCI: Cannot allocate resource region 2 of device 0000:00:11.0, will remap
[ 2.277131] PCI 0000:00 Cannot reserve Legacy IO [io 0x0000-0x0fff]
[ 2.296121] pci 0000:00:13.0: BAR 9: assigned [mem 0x84000000-0x87ffffff pref]
[ 2.317651] pci 0000:00:13.0: BAR 10: assigned [mem 0x88000000-0x8bffffff]
[ 2.338269] pci 0000:00:13.1: BAR 9: assigned [mem 0x8c000000-0x8fffffff pref]
[ 2.359955] pci 0000:00:13.1: BAR 10: assigned [mem 0x90000000-0x93ffffff]
[ 2.380606] pci 0000:00:11.0: BAR 6: assigned [mem 0xfd000000-0xfd01ffff pref]
[ 2.402311] pci 0000:00:11.0: BAR 2: assigned [mem 0xfd020000-0xfd020fff]
[ 2.422704] pci 0000:00:13.0: BAR 7: assigned [io 0x1000-0x10ff]
[ 2.441000] pci 0000:00:13.0: BAR 8: assigned [io 0x1100-0x11ff]
[ 2.459300] pci 0000:00:13.1: BAR 7: assigned [io 0x1200-0x12ff]
[ 2.477600] pci 0000:00:13.1: BAR 8: assigned [io 0x1300-0x13ff]
[ 2.495919] pci 0000:00:13.0: CardBus bridge to [bus 01-04]
[ 2.512627] pci 0000:00:13.0: bridge window [io 0x1000-0x10ff]
[ 2.530925] pci 0000:00:13.0: bridge window [io 0x1100-0x11ff]
[ 2.549229] pci 0000:00:13.0: bridge window [mem 0x84000000-0x87ffffff pref]
[ 2.570928] pci 0000:00:13.0: bridge window [mem 0x88000000-0x8bffffff]
[ 2.591320] pci 0000:00:13.1: CardBus bridge to [bus 05-08]
[ 2.608046] pci 0000:00:13.1: bridge window [io 0x1200-0x12ff]
[ 2.626349] pci 0000:00:13.1: bridge window [io 0x1300-0x13ff]
[ 2.644651] pci 0000:00:13.1: bridge window [mem 0x8c000000-0x8fffffff pref]
[ 2.666350] pci 0000:00:13.1: bridge window [mem 0x90000000-0x93ffffff]
[ 2.686748] pci_bus 0000:00: resource 4 [io 0x0000-0x7fffff]
[ 2.703993] pci_bus 0000:00: resource 5 [mem 0xfd000000-0xfdffffff]
[ 2.722816] pci_bus 0000:00: resource 6 [mem 0x80000000-0xfcffffff]
[ 2.741641] pci_bus 0000:01: resource 0 [io 0x1000-0x10ff]
[ 2.758373] pci_bus 0000:01: resource 1 [io 0x1100-0x11ff]
[ 2.775105] pci_bus 0000:01: resource 2 [mem 0x84000000-0x87ffffff pref]
[ 2.795235] pci_bus 0000:01: resource 3 [mem 0x88000000-0x8bffffff]
[ 2.814059] pci_bus 0000:05: resource 0 [io 0x1200-0x12ff]
[ 2.830791] pci_bus 0000:05: resource 1 [io 0x1300-0x13ff]
[ 2.847523] pci_bus 0000:05: resource 2 [mem 0x8c000000-0x8fffffff pref]
[ 2.867653] pci_bus 0000:05: resource 3 [mem 0x90000000-0x93ffffff]
[ 3.004865] vgaarb: loaded
[ 3.015684] SCSI subsystem initialized
[ 3.028576] libata version 3.00 loaded.
[ 3.041525] usbcore: registered new interface driver usbfs
[ 3.058590] usbcore: registered new interface driver hub
[ 3.074722] usbcore: registered new device driver usb
[ 3.097574] clocksource: Switched to clocksource timebase
[ 3.176945] NET: Registered protocol family 2
[ 3.196269] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[ 3.221544] TCP established hash table entries: 4096 (order: 2, 16384 bytes, linear)
[ 3.244755] TCP bind hash table entries: 4096 (order: 3, 32768 bytes, linear)
[ 3.266467] TCP: Hash tables configured (established 4096 bind 4096)
[ 3.285534] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[ 3.305032] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[ 3.326164] NET: Registered protocol family 1
[ 3.339985] RPC: Registered named UNIX socket transport module.
[ 3.357356] RPC: Registered udp transport module.
[ 3.371459] RPC: Registered tcp transport module.
[ 3.385564] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 3.405111] PCI: CLS 32 bytes, default 32
[ 3.418590] Thermal assist unit using workqueue, shrink_timer: 2000 ms
[ 3.444637] workingset: timestamp_bits=30 max_order=17 bucket_order=0
[ 3.465435] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 3.484342] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
[ 3.506233] io scheduler mq-deadline registered
[ 3.521141] pci 0000:00:11.0: enabling device (0086 -> 0087)
[ 3.537885] Using unsupported 1024x768 (null) at 82801000, depth=32, pitch=4096
[ 3.682913] Console: switching to colour frame buffer device 128x48
[ 3.823127] fb0: Open Firmware frame buffer device on /pci/ATY,RageLTPro
[ 3.845192] pmac_zilog: 0.6 (Benjamin Herrenschmidt <benh@kernel.crashing.org>)
[ 3.869499] Non-volatile memory driver v1.3
[ 3.893598] brd: module loaded
[ 3.931206] loop: module loaded
[ 3.942363] MacIO PCI driver attached to Gatwick chipset
[ 3.959805] MacIO PCI driver attached to Heathrow chipset
[ 3.986647] swim3 0.00015000:floppy: [fd0] SWIM3 floppy controller in media bay
[ 4.015851] 0.00013020:ch-a: ttyS0 at MMIO 0xf3013020 (irq = 16, base_baud = 230400) is a Z85c30 ESCC - Serial port
[ 4.052300] 0.00013000:ch-b: ttyS1 at MMIO 0xf3013000 (irq = 17, base_baud = 230400) is a Z85c30 ESCC - Infrared port
[ 4.090256] macio: fixed media-bay irq on gatwick
[ 4.107695] macio: fixed left floppy irqs
[ 4.121515] swim3 1.00015000:floppy: [fd1] Couldn't request interrupt
[ 4.142797] swim3: probe of 1.00015000:floppy failed with error -16
[ 4.163133] macio: fixed left ide irqs
[ 4.175485] macio: fixed SCC irqs on gatwick
[ 4.189655] 1.00013020:ch-a: ttyS2 at MMIO 0xf4013020 (irq = 79, base_baud = 230400) is a Z85c30 ESCC - Internal modem
[ 4.226442] mediabay0: Registered Heathrow media-bay
[ 4.455126] mediabay1: Registered Heathrow media-bay
[ 4.686271] PMU Backlight initialized (pmubl)
[ 4.703522] mesh: configured for synchronous 5 MB/s
[ 4.719262] mediabay1: Bay contains a floppy drive
[ 4.954580] mesh: performing initial bus reset...
[ 6.861383] random: fast init done
[ 6.976730] adb device [2]: 2 0xC3
[ 7.044008] adb device [3]: 3 0x1
[ 7.107927] adb device [7]: 7 0x1F
[ 7.181591] ADB keyboard at 2 has handler 0xC3
[ 7.244084] Detected ADB keyboard, type ANSI.
[ 7.306604] input: ADB keyboard as /devices/virtual/input/input0
[ 7.374680] input: ADB Powerbook buttons as /devices/virtual/input/input1
[ 7.509364] ADB mouse (trackpad) at 3 has handler 0x4
[ 7.573745] input: ADB mouse as /devices/virtual/input/input2
[ 9.034624] scsi host0: MESH
[ 12.394536] pata-macio 0.00020000:ata0: Activating pata-macio chipset Heathrow ATA, Apple bus ID 0
[ 12.477627] scsi host1: pata_macio
[ 12.540331] ata1: PATA max MWDMA2 irq 30
[ 12.795027] ata1.00: ATA-7: SAMSUNG HM100JC, YN100-08, max UDMA/100
[ 12.865009] ata1.00: 195371568 sectors, multi 8: LBA48
[ 12.935050] scsi 1:0:0:0: Direct-Access ATA SAMSUNG HM100JC 0-08 PQ: 0 ANSI: 5
[ 13.013610] sd 1:0:0:0: [sda] 195371568 512-byte logical blocks: (100 GB/93.2 GiB)
[ 13.088556] sd 1:0:0:0: Attached scsi generic sg0 type 0
[ 13.158582] sd 1:0:0:0: [sda] Write Protect is off
[ 13.223470] sd 1:0:0:0: [sda] Mode Sense: 00 3a 00 00
[ 13.289075] sd 1:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 13.674503] pata-macio 0.00021000:ata1: Activating pata-macio chipset Heathrow ATA, Apple bus ID 1
[ 13.757042] scsi host2: pata_macio
[ 13.819249] ata2: PATA max MWDMA2 irq 36
[ 13.904489] pata-macio 1.00021000:ata4: Activating pata-macio chipset Heathrow ATA, Apple bus ID 4
[ 13.983164] genirq: Flags mismatch irq 36. 00000000 (pata-macio[1.00021000:ata4]) vs. 00000000 (pata-macio[0.00021000:ata1])
[ 14.070207] pata-macio: probe of 1.00021000:ata4 failed with error -16
[ 14.479032] eth0: BMAC at 00:05:02:07:5a:a6
[ 14.479077]
[ 14.615187] aoe: AoE v85 initialised.
[ 14.679798] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 14.753685] ehci-pci: EHCI PCI platform driver
[ 14.820303] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 14.893038] ohci-pci: OHCI PCI platform driver
[ 14.959871] usbcore: registered new interface driver uas
[ 15.029671] usbcore: registered new interface driver usb-storage
[ 15.104150] mousedev: PS/2 mouse device common for all mice
[ 15.178852] rtc-generic rtc-generic: registered as rtc0
[ 15.248707] i2c /dev entries driver
[ 15.313358] PowerMac i2c bus pmu 2 registered
[ 15.379651] PowerMac i2c bus pmu 1 registered
[ 15.450539] usbcore: registered new interface driver usbhid
[ 15.517786] usbhid: USB HID core driver
[ 15.581161] sda: [mac] sda1 sda2 sda3 sda4 sda5 sda6 sda7 sda8 sda9 sda10 sda11 sda12 sda13 sda14 sda15
[ 15.682021] sd 1:0:0:0: [sda] Attached SCSI disk
[ 15.748688] NET: Registered protocol family 17
[ 15.815278] drmem: No dynamic reconfiguration memory found
[ 15.905030] EXT4-fs (sda12): mounting ext3 file system using the ext4 subsystem
[ 16.093352] EXT4-fs (sda12): mounted filesystem with ordered data mode. Opts: (null). Quota mode: disabled.
[ 16.177770] VFS: Mounted root (ext3 filesystem) readonly on device 8:12.
[ 16.267681] Freeing unused kernel memory: 1232K
[ 16.337890] Kernel memory protection not selected by kernel config.
[ 16.413504] Run /sbin/init as init process
[ 16.481986] with arguments:
[ 16.546360] /sbin/init
[ 16.609020] earlyprintk
[ 16.671224] with environment:
[ 16.733922] HOME=/
[ 16.792877] TERM=linux
[ 17.149488] BUG: Unable to handle kernel data access on read at 0x5071b5f4
[ 17.222336] Faulting instruction address: 0xc0004194
[ 17.289513] Oops: Kernel access of bad area, sig: 11 [#1]
[ 17.357646] BE PAGE_SIZE=4K MMU=Hash SMP NR_CPUS=2 PowerMac
[ 17.426007] Modules linked in:
[ 17.485807] CPU: 0 PID: 1 Comm: init Not tainted 5.12.0-rc3-pmac-00067-g4c0104a83fc #22
[ 17.561902] NIP: c0004194 LR: c0004194 CTR: 00000000
[ 17.629263] REGS: e1025e70 TRAP: 0300 Not tainted (5.12.0-rc3-pmac-00067-g4c0104a83fc)
[ 17.707694] MSR: 00001032 <ME,IR,DR,RI> CR: 40025f30 XER: 00000000
[ 17.780835] DAR: 5071b5f4 DSISR: 40000000
[ 17.780835] GPR00: 00000000 e1025f30 c14432e0 e1025f40 00000000 00000000 00000000 00000000
[ 17.780835] GPR08: 00000000 0000d032 00000300 5071b53c c0000000 00000000 00000000 00000000
[ 17.780835] GPR16: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 17.780835] GPR24: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 18.155821] NIP [c0004194] DataAccess_virt+0x8c/0xac
[ 18.218757] LR [c0004194] DataAccess_virt+0x8c/0xac
[ 18.281072] Call Trace:
[ 18.335751] [e1025f30] [c0004240] InstructionAccess_virt+0x8c/0x90 (unreliable)
[ 18.407057] --- interrupt: 300 at 0xb780d500
[ 18.468711] NIP: b780d500 LR: b7828554 CTR: 00000000
[ 18.532657] REGS: e1025f40 TRAP: 0300 Not tainted (5.12.0-rc3-pmac-00067-g4c0104a83fc)
[ 18.607221] MSR: 0000d032 <EE,PR,ME,IR,DR,RI> CR: 00000000 XER: 00000000
[ 18.678419] DAR: bfcbfd50 DSISR: 42000000
[ 18.678419] GPR00: 00000000 bfcc0010 00000000 bfcc0020 00000000 00000000 00000000 00000000
[ 18.678419] GPR08: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 18.678419] GPR16: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 18.678419] GPR24: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 19.044798] NIP [b780d500] 0xb780d500
[ 19.104645] LR [b7828554] 0xb7828554
[ 19.164652] --- interrupt: 300
[ 19.222524] Instruction dump:
[ 19.279658] 3d407265 394a6773 914b0008 39400300 914b00b0 906b001c 908b0020 90ab0024
[ 19.352049] 90cb0028 90eb002c 910b0030 4800fe71 <80ab00b8> 74a00040 4082000c 48014f65
[ 19.424682] ---[ end trace 88a2dc920b595dd1 ]---
[ 19.487214]
[ 20.499171] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[ 20.571365] Rebooting in 180 seconds..
When testing a recent mainline build, 5.14.0-rc2-pmac-00323-gd8079fac1681,
PID 1 did not crash. Other processes crash instead and the kernel produces
messages like these:
[ 91.150956] xfce4-session[1792]: segfault (11) at 404cd4fc nip a6aed794 lr a6aed930 code 1 in libc-2.31.so[a6aa9000+1ce000]
[ 91.151194] xfce4-session[1792]: code: 2c170000 41820050 83f70004 3bb70008 57ff2036 3bfffff8 7ff7fa14 7c1df840
[ 91.151233] xfce4-session[1792]: code: 41810028 60000000 60000000 41920150 <813f000c> 7c09d800 41820144 3bfffff0
[ 115.700631] xfwm4[1978]: segfault (11) at 766d3243 nip a6c4af84 lr a6e07724 code 1 in libc-2.31.so[a6c0b000+1ce000]
[ 115.700948] xfwm4[1978]: code: 60420000 8121000c 5069063e 9121000c 60420000 c8010008 fdfe058e 38210010
[ 115.700995] xfwm4[1978]: code: 4e800020 7c250b78 80c28ff4 7cc52a78 <90a30000> 7c0802a6 91c3000c d9c30058
We found that reducing memory with the kernel parameter 'mem=464M' would
prevent the crash.
Below are Stan's notes from the 'git bisect' run. They include an
additional failure mode that might be of interest. We've also observed
"Kernel attempted to write user page (c6207c) - exploit attempt?" and
"kernel BUG at arch/powerpc/kernel/interrupt.c:49!".
On Thu, 29 Jul 2021, Stanley J. Johnson wrote:
> Here are the git bisect results (I saved the kernels and dmesg outputs
> in case they're needed later, though it's easy enough to re-create the
> results).
>
> We'll have up to two boots (only one if the first boot fails) for each
> kernel on WS-1 with the default memory setting of 512M.
>
> 1) 5.12.0-pmac-08447-g85f3f17b5db (good)
> -> works: no dmesg errs, X works
> -> works: no dmesg errs, X works
>
> 2) 5.12.0-pmac-12750-g23243c1ace9 (bad)
> (Crash and burn. I was tempted to mark this one "skip", since the errors
> are different, though we've seen them in earlier tests. So there could
> be multiple regressions. But let's keep chasing this one. I can re-run
> the bisect later and skip some failures if necessary.)
> -> fails: "Unable to contact settings server" after wdm login; dmesg errors:
> ...
> [ 127.169294] BUG: Unable to handle kernel instruction fetch (NULL pointer?)
> [ 127.169397] Faulting instruction address: 0x00000000
> [ 127.169635] Oops: Kernel access of bad area, sig: 11 [#2]
> [ 127.169661] BE PAGE_SIZE=4K MMU=Hash SMP NR_CPUS=2 PowerMac
> [ 127.169696] Modules linked in:
> [ 127.169736] CPU: 0 PID: 1877 Comm: gdbus Tainted: G D 5.12.0-pmac-12750-g23243c1ace9 #9
> [ 127.169776] NIP: 00000000 LR: 00000000 CTR: 00000000
> ...
>
> 3) 5.12.0-rc7-pmac-02335-gaeacb52a8de (good)
> -> works: no dmesg errs, X works
> -> works: no dmesg errs, X works
>
> 4) 5.12.0-pmac-11585-g95275402f66 (bad)
> -> fails: dmesg errs, wdm login fails with "Unable to contact settings
> server..."
> ...
> [ 58.290883] BUG: Unable to handle kernel instruction fetch
> [ 58.291009] Faulting instruction address: 0x7cc903a4
> [ 58.291240] Oops: Kernel access of bad area, sig: 11 [#1]
> [ 58.291268] BE PAGE_SIZE=4K MMU=Hash SMP NR_CPUS=2 PowerMac
> [ 58.291305] Modules linked in:
> [ 58.291349] CPU: 0 PID: 1750 Comm: Xorg Not tainted 5.12.0-pmac-11585-g95275402f66 #11
> [ 58.291391] NIP: 7cc903a4 LR: 7cc903a6 CTR: c0127eb8
> [ 58.291417] REGS: e2da1e70 TRAP: 0400 Not tainted (5.12.0-pmac-11585-g95275402f66)
> [ 58.291450] MSR: 40001030 <ME,IR,DR> CR: 28008228 XER: 20000000
> ...
>
> 5) 5.12.0-pmac-11068-g9d31d233895 (good)
> -> works: no dmesg errs, X works
> -> works: no dmesg errs, X works
>
> 6) 5.12.0-rc3-pmac-00258-ga9d2f9bb225 (bad)
> -> fails: wdm dies at login, screen hangs, dmesg errs that I haven't
> seen before:
> ...
> [ 59.988732] InputThread[1751]: bad frame in sys_rt_sigreturn: 51a79ab6 nip 001023c8 lr 001023c0
> [ 62.079043] InputThread[1760]: bad frame in sys_rt_sigreturn: a98be235 nip 001023c8 lr 001023c0
> [ 64.348063] InputThread[1776]: bad frame in sys_rt_sigreturn: a46b945e nip 001023c8 lr 001023c0
> [ 66.413980] InputThread[1785]: bad frame in sys_rt_sigreturn: a98be235 nip 001023c8 lr 001023c0
> [ 68.486768] InputThread[1794]: bad frame in sys_rt_sigreturn: 677e693b nip 001023c8 lr 001023c0
>
> 7) 5.12.0-rc3-pmac-00129-g036fc2cb1dc (bad)
> -> fails: dmesg errs, wdm hangs (wdm did not crash, screen seems hung)
> ...
> [ 101.136941] BUG: Unable to handle kernel instruction fetch
> [ 101.137059] Faulting instruction address: 0xfea31f74
> [ 101.137296] Oops: Kernel access of bad area, sig: 11 [#1]
> [ 101.137323] BE PAGE_SIZE=4K MMU=Hash SMP NR_CPUS=2 PowerMac
> [ 101.137358] Modules linked in:
> [ 101.137401] CPU: 0 PID: 1882 Comm: xfce4-session Not tainted 5.12.0-rc3-pmac-00129-g036fc2cb1dc #14
> [ 101.137443] NIP: fea31f74 LR: fea31f74 CTR: c00cfef4
> [ 101.137470] REGS: e2e21e70 TRAP: 0400 Not tainted (5.12.0-rc3-pmac-00129-g036fc2cb1dc)
> [ 101.137502] MSR: 40001030 <ME,IR,DR> CR: 220084e8 XER: 00000000
> ...
>
> 8) 5.12.0-rc3-pmac-00064-g719e7e212c7 (good)
> -> works: no dmesg errs, X works
> -> works: no dmesg errs, X works
>
> 9) 5.12.0-rc3-pmac-00096-ga2308836880 (bad)
> -> fails: dmesg errs, wdm hangs while validating login
> ...
> [ 104.559951] BUG: Unable to handle kernel instruction fetch
> [ 104.560086] Faulting instruction address: 0xfe988ba4
> [ 104.560307] Oops: Kernel access of bad area, sig: 11 [#1]
> [ 104.560337] BE PAGE_SIZE=4K MMU=Hash SMP NR_CPUS=2 PowerMac
> [ 104.560371] Modules linked in:
> [ 104.560415] CPU: 0 PID: 1834 Comm: xfce4-session Not tainted 5.12.0-rc3-pmac-00096-ga2308836880 #16
> [ 104.560457] NIP: fe988ba4 LR: fe988ba4 CTR: c00cfee8
> [ 104.560484] REGS: e2d9de70 TRAP: 0400 Not tainted (5.12.0-rc3-pmac-00096-ga2308836880)
> [ 104.560517] MSR: 40001030 <ME,IR,DR> CR: 220484e8 XER: 00000000
> ...
> [ 114.371853] BUG: Unable to handle kernel instruction fetch
> [ 114.371998] Faulting instruction address: 0x3e62a270
> [ 114.372270] Oops: Kernel access of bad area, sig: 11 [#2]
> [ 114.372298] BE PAGE_SIZE=4K MMU=Hash SMP NR_CPUS=2 PowerMac
> [ 114.372334] Modules linked in:
> [ 114.372382] CPU: 0 PID: 1858 Comm: xfwm4 Tainted: G D 5.12.0-rc3-pmac-00096-ga2308836880 #16
> [ 114.372425] NIP: 3e62a270 LR: 3e62a271 CTR: c065eebc
> [ 114.372452] REGS: e2dede70 TRAP: 0400 Tainted: G D (5.12.0-rc3-pmac-00096-ga2308836880)
> [ 114.372486] MSR: 40001030 <ME,IR,DR> CR: 22002284 XER: 00000000
> ...
>
> 10) 5.12.0-rc3-pmac-00080-g7a7d744ffe8 (bad)
> -> fails: dmesg errs, "Unable to contact settings server..."
> ...
> [ 170.622408] BUG: Unable to handle kernel instruction fetch
> [ 170.622546] Faulting instruction address: 0xfe9255d4
> [ 170.622777] Oops: Kernel access of bad area, sig: 11 [#1]
> [ 170.622806] BE PAGE_SIZE=4K MMU=Hash SMP NR_CPUS=2 PowerMac
> [ 170.622841] Modules linked in:
> [ 170.622885] CPU: 0 PID: 1863 Comm: xfce4-session Not tainted 5.12.0-rc3-pmac-00080-g7a7d744ffe8 #17
> [ 170.622927] NIP: fe9255d4 LR: fe9255d4 CTR: c00cfee8
> [ 170.622954] REGS: e2da1e70 TRAP: 0400 Not tainted (5.12.0-rc3-pmac-00080-g7a7d744ffe8)
> [ 170.622987] MSR: 40001030 <ME,IR,DR> CR: 220484e8 XER: 00000000
> ...
> [ 172.611235] BUG: Unable to handle kernel instruction fetch (NULL pointer?)
> [ 172.611364] Faulting instruction address: 0x00000000
> [ 172.611662] Oops: Kernel access of bad area, sig: 11 [#2]
> [ 172.611690] BE PAGE_SIZE=4K MMU=Hash SMP NR_CPUS=2 PowerMac
> [ 172.611725] Modules linked in:
> [ 172.611773] CPU: 0 PID: 1871 Comm: gmain Tainted: G D 5.12.0-rc3-pmac-00080-g7a7d744ffe8 #17
> [ 172.611814] NIP: 00000000 LR: 00000000 CTR: 00000000
> [ 172.611840] REGS: e2db9e70 TRAP: 0400 Tainted: G D (5.12.0-rc3-pmac-00080-g7a7d744ffe8)
> [ 172.611874] MSR: 40001030 <ME,IR,DR> CR: 28008468 XER: 00000000
> ...
>
> 11) 5.12.0-rc3-pmac-00072-ga2b3e09ae41 (bad)
> -> fails: kernel panic, I'd have to capture the output via a serial console
>
> 12) 5.12.0-rc3-pmac-00068-gacc142b6230 (bad)
> -> fails: kernel panic
>
> 13) 5.12.0-rc3-pmac-00066-g8f6ff5bd9b7 (good)
> -> works: no dmesg errs, X works
> -> works: no dmesg errs, X works
>
> 14) 5.12.0-rc3-pmac-00067-g4c0104a83fc (bad)
> -> fails: kernel panic
>
> The git bisect thinks this is the bad commit, but I'm not sure it means
> anything at all:
>
> -----
>
> 4c0104a83fc3990a76a01a2f4e504251fa9814c4 is the first bad commit
^ permalink raw reply
* [PATCH v2] arch: vdso: remove if-conditionals of $(c-gettimeofday-y)
From: Masahiro Yamada @ 2021-07-31 6:00 UTC (permalink / raw)
To: Andy Lutomirski, Thomas Gleixner, Vincenzo Frascino, linux-kernel
Cc: Thomas Bogendoerfer, Catalin Marinas, Masahiro Yamada,
linuxppc-dev, linux-mips, linux-csky, Russell King, Albert Ou,
Palmer Dabbelt, linux-arm-kernel, Paul Walmsley, Guo Ren,
linux-riscv, Will Deacon, Paul Mackerras
arm, arm64, csky, mips, powerpc always select GENERIC_GETTIMEOFDAY,
hence $(gettimeofday-y) never becomes empty.
riscv conditionally selects GENERIC_GETTIMEOFDAY when MMU=y && 64BIT=y,
but arch/riscv/kernel/vdso/vgettimeofday.o is built only under that
condition. So, you can always define CFLAGS_vgettimeofday.o
Remove all the meaningless conditionals.
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
---
Changes in v2:
- Fix csky as well
arch/arm/vdso/Makefile | 4 ----
arch/arm64/kernel/vdso/Makefile | 5 +----
arch/arm64/kernel/vdso32/Makefile | 3 ---
arch/csky/kernel/vdso/Makefile | 4 +---
arch/mips/vdso/Makefile | 2 --
arch/powerpc/kernel/vdso32/Makefile | 14 ++++++--------
arch/powerpc/kernel/vdso64/Makefile | 14 ++++++--------
arch/riscv/kernel/vdso/Makefile | 5 +----
8 files changed, 15 insertions(+), 36 deletions(-)
diff --git a/arch/arm/vdso/Makefile b/arch/arm/vdso/Makefile
index 7c9e395b77f7..d996b57ca19d 100644
--- a/arch/arm/vdso/Makefile
+++ b/arch/arm/vdso/Makefile
@@ -29,11 +29,7 @@ CFLAGS_REMOVE_vdso.o = -pg
# Force -O2 to avoid libgcc dependencies
CFLAGS_REMOVE_vgettimeofday.o = -pg -Os $(GCC_PLUGINS_CFLAGS)
-ifeq ($(c-gettimeofday-y),)
-CFLAGS_vgettimeofday.o = -O2
-else
CFLAGS_vgettimeofday.o = -O2 -include $(c-gettimeofday-y)
-endif
# Disable gcov profiling for VDSO code
GCOV_PROFILE := n
diff --git a/arch/arm64/kernel/vdso/Makefile b/arch/arm64/kernel/vdso/Makefile
index 945e6bb326e3..5545c28e0e6e 100644
--- a/arch/arm64/kernel/vdso/Makefile
+++ b/arch/arm64/kernel/vdso/Makefile
@@ -37,10 +37,7 @@ OBJECT_FILES_NON_STANDARD := y
KCOV_INSTRUMENT := n
CFLAGS_vgettimeofday.o = -O2 -mcmodel=tiny -fasynchronous-unwind-tables
-
-ifneq ($(c-gettimeofday-y),)
- CFLAGS_vgettimeofday.o += -include $(c-gettimeofday-y)
-endif
+CFLAGS_vgettimeofday.o += -include $(c-gettimeofday-y)
# Disable gcov profiling for VDSO code
GCOV_PROFILE := n
diff --git a/arch/arm64/kernel/vdso32/Makefile b/arch/arm64/kernel/vdso32/Makefile
index 3dba0c4f8f42..330111046afc 100644
--- a/arch/arm64/kernel/vdso32/Makefile
+++ b/arch/arm64/kernel/vdso32/Makefile
@@ -133,10 +133,7 @@ hostprogs := $(munge)
c-obj-vdso := note.o
c-obj-vdso-gettimeofday := vgettimeofday.o
-
-ifneq ($(c-gettimeofday-y),)
VDSO_CFLAGS_gettimeofday_o += -include $(c-gettimeofday-y)
-endif
VDSO_CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE) -Os
diff --git a/arch/csky/kernel/vdso/Makefile b/arch/csky/kernel/vdso/Makefile
index 0b6909f10667..432adf2c78c2 100644
--- a/arch/csky/kernel/vdso/Makefile
+++ b/arch/csky/kernel/vdso/Makefile
@@ -12,9 +12,7 @@ vdso-syms += vgettimeofday
# Files to link into the vdso
obj-vdso = $(patsubst %, %.o, $(vdso-syms)) note.o
-ifneq ($(c-gettimeofday-y),)
- CFLAGS_vgettimeofday.o += -include $(c-gettimeofday-y)
-endif
+CFLAGS_vgettimeofday.o += -include $(c-gettimeofday-y)
ccflags-y := -fno-stack-protector -DBUILD_VDSO32
diff --git a/arch/mips/vdso/Makefile b/arch/mips/vdso/Makefile
index 1b2ea34c3d3b..c409d551972a 100644
--- a/arch/mips/vdso/Makefile
+++ b/arch/mips/vdso/Makefile
@@ -36,7 +36,6 @@ cflags-vdso := $(ccflags-vdso) \
aflags-vdso := $(ccflags-vdso) \
-D__ASSEMBLY__ -Wa,-gdwarf-2
-ifneq ($(c-gettimeofday-y),)
CFLAGS_vgettimeofday.o = -include $(c-gettimeofday-y)
# config-n32-o32-env.c prepares the environment to build a 32bit vDSO
@@ -44,7 +43,6 @@ CFLAGS_vgettimeofday.o = -include $(c-gettimeofday-y)
# Note: Needs to be included before than the generic library.
CFLAGS_vgettimeofday-o32.o = -include $(srctree)/$(src)/config-n32-o32-env.c -include $(c-gettimeofday-y)
CFLAGS_vgettimeofday-n32.o = -include $(srctree)/$(src)/config-n32-o32-env.c -include $(c-gettimeofday-y)
-endif
CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE)
diff --git a/arch/powerpc/kernel/vdso32/Makefile b/arch/powerpc/kernel/vdso32/Makefile
index 7d9a6fee0e3d..2386abc6fa58 100644
--- a/arch/powerpc/kernel/vdso32/Makefile
+++ b/arch/powerpc/kernel/vdso32/Makefile
@@ -7,14 +7,12 @@ include $(srctree)/lib/vdso/Makefile
obj-vdso32 = sigtramp.o gettimeofday.o datapage.o cacheflush.o note.o getcpu.o
-ifneq ($(c-gettimeofday-y),)
- CFLAGS_vgettimeofday.o += -include $(c-gettimeofday-y)
- CFLAGS_vgettimeofday.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
- CFLAGS_vgettimeofday.o += $(call cc-option, -fno-stack-protector)
- CFLAGS_vgettimeofday.o += -DDISABLE_BRANCH_PROFILING
- CFLAGS_vgettimeofday.o += -ffreestanding -fasynchronous-unwind-tables
- CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE)
-endif
+CFLAGS_vgettimeofday.o += -include $(c-gettimeofday-y)
+CFLAGS_vgettimeofday.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
+CFLAGS_vgettimeofday.o += $(call cc-option, -fno-stack-protector)
+CFLAGS_vgettimeofday.o += -DDISABLE_BRANCH_PROFILING
+CFLAGS_vgettimeofday.o += -ffreestanding -fasynchronous-unwind-tables
+CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE)
# Build rules
diff --git a/arch/powerpc/kernel/vdso64/Makefile b/arch/powerpc/kernel/vdso64/Makefile
index 2813e3f98db6..cdf748ebdcde 100644
--- a/arch/powerpc/kernel/vdso64/Makefile
+++ b/arch/powerpc/kernel/vdso64/Makefile
@@ -6,14 +6,12 @@ include $(srctree)/lib/vdso/Makefile
obj-vdso64 = sigtramp.o gettimeofday.o datapage.o cacheflush.o note.o getcpu.o
-ifneq ($(c-gettimeofday-y),)
- CFLAGS_vgettimeofday.o += -include $(c-gettimeofday-y)
- CFLAGS_vgettimeofday.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
- CFLAGS_vgettimeofday.o += $(call cc-option, -fno-stack-protector)
- CFLAGS_vgettimeofday.o += -DDISABLE_BRANCH_PROFILING
- CFLAGS_vgettimeofday.o += -ffreestanding -fasynchronous-unwind-tables
- CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE)
-endif
+CFLAGS_vgettimeofday.o += -include $(c-gettimeofday-y)
+CFLAGS_vgettimeofday.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
+CFLAGS_vgettimeofday.o += $(call cc-option, -fno-stack-protector)
+CFLAGS_vgettimeofday.o += -DDISABLE_BRANCH_PROFILING
+CFLAGS_vgettimeofday.o += -ffreestanding -fasynchronous-unwind-tables
+CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE)
# Build rules
diff --git a/arch/riscv/kernel/vdso/Makefile b/arch/riscv/kernel/vdso/Makefile
index 24d936c147cd..7653767a6100 100644
--- a/arch/riscv/kernel/vdso/Makefile
+++ b/arch/riscv/kernel/vdso/Makefile
@@ -17,10 +17,7 @@ vdso-syms += flush_icache
obj-vdso = $(patsubst %, %.o, $(vdso-syms)) note.o
ccflags-y := -fno-stack-protector
-
-ifneq ($(c-gettimeofday-y),)
- CFLAGS_vgettimeofday.o += -fPIC -include $(c-gettimeofday-y)
-endif
+CFLAGS_vgettimeofday.o += -fPIC -include $(c-gettimeofday-y)
# Build rules
targets := $(obj-vdso) vdso.so vdso.so.dbg vdso.lds vdso-syms.S
--
2.27.0
^ permalink raw reply related
* [PATCH] arch: vdso: remove if-conditionals of $(c-gettimeofday-y)
From: Masahiro Yamada @ 2021-07-31 5:57 UTC (permalink / raw)
To: Andy Lutomirski, Thomas Gleixner, Vincenzo Frascino, linux-kernel
Cc: Thomas Bogendoerfer, Catalin Marinas, Masahiro Yamada,
linuxppc-dev, linux-mips, Russell King, Albert Ou, Palmer Dabbelt,
Paul Walmsley, Paul Mackerras, linux-riscv, Will Deacon,
linux-arm-kernel
arm, arm64, mips, powerpc always select GENERIC_GETTIMEOFDAY, hence
$(gettimeofday-y) never becomes empty.
riscv conditionally selects GENERIC_GETTIMEOFDAY when MMU=y && 64BIT=y,
but arch/riscv/kernel/vdso/vgettimeofday.o is built only under that
condition. So, you can always define CFLAGS_vgettimeofday.o
Remove all the meaningless conditionals.
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
---
arch/arm/vdso/Makefile | 4 ----
arch/arm64/kernel/vdso/Makefile | 5 +----
arch/arm64/kernel/vdso32/Makefile | 3 ---
arch/mips/vdso/Makefile | 2 --
arch/powerpc/kernel/vdso32/Makefile | 14 ++++++--------
arch/powerpc/kernel/vdso64/Makefile | 14 ++++++--------
arch/riscv/kernel/vdso/Makefile | 5 +----
7 files changed, 14 insertions(+), 33 deletions(-)
diff --git a/arch/arm/vdso/Makefile b/arch/arm/vdso/Makefile
index 7c9e395b77f7..d996b57ca19d 100644
--- a/arch/arm/vdso/Makefile
+++ b/arch/arm/vdso/Makefile
@@ -29,11 +29,7 @@ CFLAGS_REMOVE_vdso.o = -pg
# Force -O2 to avoid libgcc dependencies
CFLAGS_REMOVE_vgettimeofday.o = -pg -Os $(GCC_PLUGINS_CFLAGS)
-ifeq ($(c-gettimeofday-y),)
-CFLAGS_vgettimeofday.o = -O2
-else
CFLAGS_vgettimeofday.o = -O2 -include $(c-gettimeofday-y)
-endif
# Disable gcov profiling for VDSO code
GCOV_PROFILE := n
diff --git a/arch/arm64/kernel/vdso/Makefile b/arch/arm64/kernel/vdso/Makefile
index 945e6bb326e3..5545c28e0e6e 100644
--- a/arch/arm64/kernel/vdso/Makefile
+++ b/arch/arm64/kernel/vdso/Makefile
@@ -37,10 +37,7 @@ OBJECT_FILES_NON_STANDARD := y
KCOV_INSTRUMENT := n
CFLAGS_vgettimeofday.o = -O2 -mcmodel=tiny -fasynchronous-unwind-tables
-
-ifneq ($(c-gettimeofday-y),)
- CFLAGS_vgettimeofday.o += -include $(c-gettimeofday-y)
-endif
+CFLAGS_vgettimeofday.o += -include $(c-gettimeofday-y)
# Disable gcov profiling for VDSO code
GCOV_PROFILE := n
diff --git a/arch/arm64/kernel/vdso32/Makefile b/arch/arm64/kernel/vdso32/Makefile
index 3dba0c4f8f42..330111046afc 100644
--- a/arch/arm64/kernel/vdso32/Makefile
+++ b/arch/arm64/kernel/vdso32/Makefile
@@ -133,10 +133,7 @@ hostprogs := $(munge)
c-obj-vdso := note.o
c-obj-vdso-gettimeofday := vgettimeofday.o
-
-ifneq ($(c-gettimeofday-y),)
VDSO_CFLAGS_gettimeofday_o += -include $(c-gettimeofday-y)
-endif
VDSO_CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE) -Os
diff --git a/arch/mips/vdso/Makefile b/arch/mips/vdso/Makefile
index 1b2ea34c3d3b..c409d551972a 100644
--- a/arch/mips/vdso/Makefile
+++ b/arch/mips/vdso/Makefile
@@ -36,7 +36,6 @@ cflags-vdso := $(ccflags-vdso) \
aflags-vdso := $(ccflags-vdso) \
-D__ASSEMBLY__ -Wa,-gdwarf-2
-ifneq ($(c-gettimeofday-y),)
CFLAGS_vgettimeofday.o = -include $(c-gettimeofday-y)
# config-n32-o32-env.c prepares the environment to build a 32bit vDSO
@@ -44,7 +43,6 @@ CFLAGS_vgettimeofday.o = -include $(c-gettimeofday-y)
# Note: Needs to be included before than the generic library.
CFLAGS_vgettimeofday-o32.o = -include $(srctree)/$(src)/config-n32-o32-env.c -include $(c-gettimeofday-y)
CFLAGS_vgettimeofday-n32.o = -include $(srctree)/$(src)/config-n32-o32-env.c -include $(c-gettimeofday-y)
-endif
CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE)
diff --git a/arch/powerpc/kernel/vdso32/Makefile b/arch/powerpc/kernel/vdso32/Makefile
index 7d9a6fee0e3d..2386abc6fa58 100644
--- a/arch/powerpc/kernel/vdso32/Makefile
+++ b/arch/powerpc/kernel/vdso32/Makefile
@@ -7,14 +7,12 @@ include $(srctree)/lib/vdso/Makefile
obj-vdso32 = sigtramp.o gettimeofday.o datapage.o cacheflush.o note.o getcpu.o
-ifneq ($(c-gettimeofday-y),)
- CFLAGS_vgettimeofday.o += -include $(c-gettimeofday-y)
- CFLAGS_vgettimeofday.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
- CFLAGS_vgettimeofday.o += $(call cc-option, -fno-stack-protector)
- CFLAGS_vgettimeofday.o += -DDISABLE_BRANCH_PROFILING
- CFLAGS_vgettimeofday.o += -ffreestanding -fasynchronous-unwind-tables
- CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE)
-endif
+CFLAGS_vgettimeofday.o += -include $(c-gettimeofday-y)
+CFLAGS_vgettimeofday.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
+CFLAGS_vgettimeofday.o += $(call cc-option, -fno-stack-protector)
+CFLAGS_vgettimeofday.o += -DDISABLE_BRANCH_PROFILING
+CFLAGS_vgettimeofday.o += -ffreestanding -fasynchronous-unwind-tables
+CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE)
# Build rules
diff --git a/arch/powerpc/kernel/vdso64/Makefile b/arch/powerpc/kernel/vdso64/Makefile
index 2813e3f98db6..cdf748ebdcde 100644
--- a/arch/powerpc/kernel/vdso64/Makefile
+++ b/arch/powerpc/kernel/vdso64/Makefile
@@ -6,14 +6,12 @@ include $(srctree)/lib/vdso/Makefile
obj-vdso64 = sigtramp.o gettimeofday.o datapage.o cacheflush.o note.o getcpu.o
-ifneq ($(c-gettimeofday-y),)
- CFLAGS_vgettimeofday.o += -include $(c-gettimeofday-y)
- CFLAGS_vgettimeofday.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
- CFLAGS_vgettimeofday.o += $(call cc-option, -fno-stack-protector)
- CFLAGS_vgettimeofday.o += -DDISABLE_BRANCH_PROFILING
- CFLAGS_vgettimeofday.o += -ffreestanding -fasynchronous-unwind-tables
- CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE)
-endif
+CFLAGS_vgettimeofday.o += -include $(c-gettimeofday-y)
+CFLAGS_vgettimeofday.o += $(DISABLE_LATENT_ENTROPY_PLUGIN)
+CFLAGS_vgettimeofday.o += $(call cc-option, -fno-stack-protector)
+CFLAGS_vgettimeofday.o += -DDISABLE_BRANCH_PROFILING
+CFLAGS_vgettimeofday.o += -ffreestanding -fasynchronous-unwind-tables
+CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE)
# Build rules
diff --git a/arch/riscv/kernel/vdso/Makefile b/arch/riscv/kernel/vdso/Makefile
index 24d936c147cd..7653767a6100 100644
--- a/arch/riscv/kernel/vdso/Makefile
+++ b/arch/riscv/kernel/vdso/Makefile
@@ -17,10 +17,7 @@ vdso-syms += flush_icache
obj-vdso = $(patsubst %, %.o, $(vdso-syms)) note.o
ccflags-y := -fno-stack-protector
-
-ifneq ($(c-gettimeofday-y),)
- CFLAGS_vgettimeofday.o += -fPIC -include $(c-gettimeofday-y)
-endif
+CFLAGS_vgettimeofday.o += -fPIC -include $(c-gettimeofday-y)
# Build rules
targets := $(obj-vdso) vdso.so vdso.so.dbg vdso.lds vdso-syms.S
--
2.27.0
^ permalink raw reply related
* Re: [PATCH v1 4/5] PCI: Adapt all code locations to not use struct pci_dev::driver directly
From: Boris Ostrovsky @ 2021-07-30 20:37 UTC (permalink / raw)
To: Uwe Kleine-König, Bjorn Helgaas
Cc: Mark Rutland, Giovanni Cabiddu, Rafał Miłecki,
Peter Zijlstra, linux-pci, Alexander Duyck, Sathya Prakash,
oss-drivers, Oliver O'Halloran, H. Peter Anvin, Jiri Olsa,
linux-perf-users, Stefano Stabellini, Herbert Xu, linux-scsi,
Ido Schimmel, x86, qat-linux, Alexander Shishkin, Ingo Molnar,
Geert Uytterhoeven, linux-wireless, Jakub Kicinski, Mathias Nyman,
Yisen Zhuang, Fiona Trahe, Andrew Donnellan, Arnd Bergmann,
Konrad Rzeszutek Wilk, Suganath Prabu Subramani, Simon Horman,
Arnaldo Carvalho de Melo, Borislav Petkov, Michael Buesch,
Jiri Pirko, Namhyung Kim, Thomas Gleixner, Andy Shevchenko,
Juergen Gross, Salil Mehta, Sreekanth Reddy, xen-devel,
Vadym Kochan, MPT-FusionLinux.pdl, Greg Kroah-Hartman, linux-usb,
Wojciech Ziemba, linux-kernel, Taras Chornyi, Zhou Wang,
linux-crypto, kernel, netdev, Frederic Barrat, Paul Mackerras,
linuxppc-dev, David S. Miller
In-Reply-To: <20210729203740.1377045-5-u.kleine-koenig@pengutronix.de>
On 7/29/21 4:37 PM, Uwe Kleine-König wrote:
> --- a/drivers/pci/xen-pcifront.c
> +++ b/drivers/pci/xen-pcifront.c
> @@ -599,12 +599,12 @@ static pci_ers_result_t pcifront_common_process(int cmd,
> result = PCI_ERS_RESULT_NONE;
>
> pcidev = pci_get_domain_bus_and_slot(domain, bus, devfn);
> - if (!pcidev || !pcidev->driver) {
> + pdrv = pci_driver_of_dev(pcidev);
> + if (!pcidev || !pdrv) {
If pcidev is NULL we are dead by the time we reach 'if' statement.
-boris
> dev_err(&pdev->xdev->dev, "device or AER driver is NULL\n");
> pci_dev_put(pcidev);
> return result;
> }
> - pdrv = pcidev->driver;
>
^ permalink raw reply
* Re: [PATCH v1 0/5] PCI: Drop duplicated tracking of a pci_dev's bound driver
From: Uwe Kleine-König @ 2021-07-30 17:48 UTC (permalink / raw)
To: Andy Shevchenko
Cc: Mark Rutland, Giovanni Cabiddu, Rafał Miłecki,
Peter Zijlstra, Alexander Duyck, x86, oss-drivers, netdev,
Oliver O'Halloran, H. Peter Anvin, Jiri Olsa, Thomas Gleixner,
Paul Mackerras, Taras Chornyi, Stefano Stabellini, Herbert Xu,
linux-scsi, Sathya Prakash, qat-linux, Alexander Shishkin,
Ingo Molnar, Geert Uytterhoeven, linux-pci, Jakub Kicinski,
Yisen Zhuang, Suganath Prabu Subramani, Fiona Trahe,
Andrew Donnellan, Mathias Nyman, Konrad Rzeszutek Wilk,
Ido Schimmel, Arnaldo Carvalho de Melo, Frederic Barrat,
Borislav Petkov, Michael Buesch, Jiri Pirko, Bjorn Helgaas,
Namhyung Kim, Boris Ostrovsky, Juergen Gross, Salil Mehta,
Sreekanth Reddy, xen-devel, Vadym Kochan, MPT-FusionLinux.pdl,
linux-usb, linux-wireless, linux-kernel, linux-perf-users,
Zhou Wang, Arnd Bergmann, linux-crypto, kernel,
Greg Kroah-Hartman, Simon Horman, Wojciech Ziemba, linuxppc-dev,
David S. Miller
In-Reply-To: <YQOy/OTvY66igEoe@smile.fi.intel.com>
[-- Attachment #1: Type: text/plain, Size: 1952 bytes --]
Hi Andy,
On Fri, Jul 30, 2021 at 11:06:20AM +0300, Andy Shevchenko wrote:
> On Thu, Jul 29, 2021 at 10:37:35PM +0200, Uwe Kleine-König wrote:
> > struct pci_dev tracks the bound pci driver twice. This series is about
> > removing this duplication.
> >
> > The first two patches are just cleanups. The third patch introduces a
> > wrapper that abstracts access to struct pci_dev->driver. In the next
> > patch (hopefully) all users are converted to use the new wrapper and
> > finally the fifth patch removes the duplication.
> >
> > Note this series is only build tested (allmodconfig on several
> > architectures).
> >
> > I'm open to restructure this series if this simplifies things. E.g. the
> > use of the new wrapper in drivers/pci could be squashed into the patch
> > introducing the wrapper. Patch 4 could be split by maintainer tree or
> > squashed into patch 3 completely.
>
> I see only patch 4 and this cover letter...
The full series is available at
https://lore.kernel.org/linux-pci/20210729203740.1377045-1-u.kleine-koenig@pengutronix.de/
All patches but #4 only touch drivers/pci/ (and include/linux/pci.h) and
it seemed excessive to me to send all patches to all people. It seems at
least for you I balanced this wrongly. The short version is that patch
#3 introduces
+#define pci_driver_of_dev(pdev) ((pdev)->driver)
which allows to do the stuff done in patch #4 and then patch #5 does
-#define pci_driver_of_dev(pdev) ((pdev)->driver)
+#define pci_driver_of_dev(pdev) ((pdev)->dev.driver ? to_pci_driver((pdev)->dev.driver) : NULL)
plus some cleanups.
If you want I can send you a bounce (or you try
b4 am 20210729203740.1377045-1-u.kleine-koenig@pengutronix.de
).
Best regards and thanks for caring,
Uwe
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | https://www.pengutronix.de/ |
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply
* Re: [PATCH] powerpc/vdso: Don't use r30 to avoid breaking Go lang
From: Segher Boessenkool @ 2021-07-30 23:55 UTC (permalink / raw)
To: Nick Desaulniers
Cc: Nathan Chancellor, Paul Menzel, linuxppc-dev, clang-built-linux
In-Reply-To: <CAKwvOdmR9nB3T-PLNSGea3=9qbZuOoLs5D22UPRBbvw_+aOO7A@mail.gmail.com>
On Thu, Jul 29, 2021 at 09:25:43AM -0700, Nick Desaulniers wrote:
> On Thu, Jul 29, 2021 at 6:42 AM Paul Menzel <pmenzel@molgen.mpg.de> wrote:
> > Am 29.07.21 um 15:12 schrieb Michael Ellerman:
> > > Note this only works with GCC, clang does not support -ffixed-rN.
> >
> > Maybe the clang/LLVM build support folks (in CC) have an idea.
>
> Right, we've had issues with these in the past. Generally, we need to
> teach clang about which registers are valid for `N` so that it can
> diagnose invalid values ASAP. This has to be done on a per arch basis
> in LLVM to steal the register from the register allocator. For
> example, this was used previously for aarch64 (but removed from use in
> the kernel) and IIRC is used for m68k (which we're working to get
> builds online for).
In GCC, it is -ffixed-* (note: no "r"). The string is stripped of the
standard prefix for the target (for Power, none), and possibly of one
"%" or "#". If the string is a recognised register name (or alternative
register name) for the target, that is used. If not, and it is a
decimal number, then the internal GCC register of that number is used
(these numbers can differ from one GCC release to another, and in fact
we have changed the numbering for Power before -- but 0..31 have always
been the GPRs, and 32..63 have always been the FPRs).
The names for the Power registers are:
GPRs:
0..31, or alternatively
r0..r31
FPRs:
0..31, or alternatively
fr0..fr31, or alternatively
vs0..vs31
VRs:
0..31, or alternatively
v0..v31, or alternatively
vs32..vs63
CR fields:
0..7, or alternatively
cr0..cr7
(There are more, but changing the default calling convention for those
will not work anyway. Also, some non-Linux configurations use different
names.)
Segher
^ permalink raw reply
* Re: [PATCH 07/11] treewide: Replace the use of mem_encrypt_active() with prot_guest_has()
From: Sean Christopherson @ 2021-07-30 22:34 UTC (permalink / raw)
To: Tom Lendacky
Cc: Sathyanarayanan Kuppuswamy, linux-efi, Brijesh Singh, kvm,
Peter Zijlstra, Dave Hansen, dri-devel, platform-driver-x86,
Will Deacon, linux-s390, Andi Kleen, Baoquan He, Joerg Roedel,
x86, amd-gfx, David Airlie, Ingo Molnar,
linux-graphics-maintainer, Dave Young, Tianyu Lan,
Thomas Zimmermann, Maarten Lankhorst, Maxime Ripard,
Borislav Petkov, Andy Lutomirski, Thomas Gleixner, kexec,
linux-kernel, iommu, Daniel Vetter, linux-fsdevel, linuxppc-dev
In-Reply-To: <029791b24c6412f9427cfe6ec598156c64395964.1627424774.git.thomas.lendacky@amd.com>
On Tue, Jul 27, 2021, Tom Lendacky wrote:
> @@ -451,7 +450,7 @@ void __init mem_encrypt_free_decrypted_mem(void)
> * The unused memory range was mapped decrypted, change the encryption
> * attribute from decrypted to encrypted before freeing it.
> */
> - if (mem_encrypt_active()) {
> + if (sme_me_mask) {
Any reason this uses sme_me_mask? The helper it calls, __set_memory_enc_dec(),
uses prot_guest_has(PATTR_MEM_ENCRYPT) so I assume it's available?
> r = set_memory_encrypted(vaddr, npages);
> if (r) {
> pr_warn("failed to free unused decrypted pages\n");
^ permalink raw reply
* Re: [PATCH 3/3] powerpc: move the install rule to arch/powerpc/Makefile
From: Nick Desaulniers @ 2021-07-30 20:29 UTC (permalink / raw)
To: Masahiro Yamada
Cc: linux-kernel, Nicholas Piggin, Gustavo A. R. Silva, Jordan Niethe,
Paul Mackerras, Bill Wendling, Miguel Ojeda, linuxppc-dev,
Joel Stanley
In-Reply-To: <20210729141937.445051-3-masahiroy@kernel.org>
On Thu, Jul 29, 2021 at 7:22 AM Masahiro Yamada <masahiroy@kernel.org> wrote:
>
> Currently, the install target in arch/powerpc/Makefile descends into
> arch/powerpc/boot/Makefile to invoke the shell script, but there is no
> good reason to do so.
Sure, but there are more arch/ subdirs that DO invoke install.sh from
arch/<arch>/boot/Makefile than, not:
arch/<arch>/boot/Makefile:
- parisc
- nios2
- arm
- nds32
- sparc
- riscv
- 390
- ppc (this patch)
- x86
- arm64
arch/<arch>/Makefile:
- ia64
- m68k
Patch is fine, but right now the tree is a bit inconsistent.
>
> arch/powerpc/Makefile can run the shell script directly.
>
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> ---
>
> arch/powerpc/Makefile | 3 ++-
> arch/powerpc/boot/Makefile | 6 ------
> 2 files changed, 2 insertions(+), 7 deletions(-)
>
> diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
> index 6505d66f1193..9aaf1abbc641 100644
> --- a/arch/powerpc/Makefile
> +++ b/arch/powerpc/Makefile
> @@ -407,7 +407,8 @@ endef
>
> PHONY += install
> install:
> - $(Q)$(MAKE) $(build)=$(boot) install
> + sh -x $(srctree)/$(boot)/install.sh "$(KERNELRELEASE)" vmlinux \
> + System.map "$(INSTALL_PATH)"
>
> archclean:
> $(Q)$(MAKE) $(clean)=$(boot)
> diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
> index 0d165bd98b61..10c0fb306f15 100644
> --- a/arch/powerpc/boot/Makefile
> +++ b/arch/powerpc/boot/Makefile
> @@ -444,12 +444,6 @@ $(obj)/zImage: $(addprefix $(obj)/, $(image-y))
> $(obj)/zImage.initrd: $(addprefix $(obj)/, $(initrd-y))
> $(Q)rm -f $@; ln $< $@
>
> -# Only install the vmlinux
> -install:
> - sh -x $(srctree)/$(src)/install.sh "$(KERNELRELEASE)" vmlinux System.map "$(INSTALL_PATH)"
> -
> -PHONY += install
> -
> # anything not in $(targets)
> clean-files += $(image-) $(initrd-) cuImage.* dtbImage.* treeImage.* \
> zImage zImage.initrd zImage.chrp zImage.coff zImage.holly \
> --
> 2.27.0
>
--
Thanks,
~Nick Desaulniers
^ permalink raw reply
* Re: [PATCH 2/3] powerpc: make the install target not depend on any build artifact
From: Nick Desaulniers @ 2021-07-30 20:24 UTC (permalink / raw)
To: Masahiro Yamada
Cc: linux-kernel, Nicholas Piggin, Gustavo A. R. Silva, Jordan Niethe,
Paul Mackerras, Bill Wendling, linuxppc-dev, Joel Stanley
In-Reply-To: <20210729141937.445051-2-masahiroy@kernel.org>
On Thu, Jul 29, 2021 at 7:22 AM Masahiro Yamada <masahiroy@kernel.org> wrote:
>
> The install target should not depend on any build artifact.
>
> The reason is explained in commit 19514fc665ff ("arm, kbuild: make
> "make install" not depend on vmlinux").
>
> Change the PowerPC installation code in a similar way.
>
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
> ---
>
> arch/powerpc/boot/Makefile | 2 +-
> arch/powerpc/boot/install.sh | 14 ++++++++++++++
> 2 files changed, 15 insertions(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
> index a702f9d1ec0d..0d165bd98b61 100644
> --- a/arch/powerpc/boot/Makefile
> +++ b/arch/powerpc/boot/Makefile
> @@ -445,7 +445,7 @@ $(obj)/zImage.initrd: $(addprefix $(obj)/, $(initrd-y))
> $(Q)rm -f $@; ln $< $@
>
> # Only install the vmlinux
> -install: $(CONFIGURE) $(addprefix $(obj)/, $(image-y))
> +install:
> sh -x $(srctree)/$(src)/install.sh "$(KERNELRELEASE)" vmlinux System.map "$(INSTALL_PATH)"
>
> PHONY += install
> diff --git a/arch/powerpc/boot/install.sh b/arch/powerpc/boot/install.sh
> index 658c93ca7437..14473150ddb4 100644
> --- a/arch/powerpc/boot/install.sh
> +++ b/arch/powerpc/boot/install.sh
> @@ -20,6 +20,20 @@
> # Bail with error code if anything goes wrong
> set -e
>
> +verify () {
> + if [ ! -f "$1" ]; then
> + echo "" 1>&2
> + echo " *** Missing file: $1" 1>&2
> + echo ' *** You need to run "make" before "make install".' 1>&2
> + echo "" 1>&2
> + exit 1
> + fi
> +}
> +
> +# Make sure the files actually exist
> +verify "$2"
> +verify "$3"
> +
> # User may have a custom install script
>
> if [ -x ~/bin/${INSTALLKERNEL} ]; then exec ~/bin/${INSTALLKERNEL} "$@"; fi
> --
> 2.27.0
>
--
Thanks,
~Nick Desaulniers
^ permalink raw reply
* Re: [PATCH 1/3] powerpc: remove unused zInstall target from arch/powerpc/boot/Makefile
From: Nick Desaulniers @ 2021-07-30 20:20 UTC (permalink / raw)
To: Masahiro Yamada
Cc: linux-kernel, Nicholas Piggin, Gustavo A. R. Silva, Jordan Niethe,
Paul Mackerras, Joel Stanley, linuxppc-dev, Bill Wendling
In-Reply-To: <20210729141937.445051-1-masahiroy@kernel.org>
On Thu, Jul 29, 2021 at 7:22 AM Masahiro Yamada <masahiroy@kernel.org> wrote:
>
> Commit c913e5f95e54 ("powerpc/boot: Don't install zImage.* from make
> install") added the zInstall target to arch/powerpc/boot/Makefile,
> but you cannot use it since the corresponding hook is missing in
> arch/powerpc/Makefile.
>
> It has never worked since its addition. Nobody has complained about
> it for 7 years, which means this code was unneeded.
>
> With this removal, the install.sh will be passed in with 4 parameters.
> Simplify the shell script.
>
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
> ---
>
> arch/powerpc/boot/Makefile | 6 +-----
> arch/powerpc/boot/install.sh | 13 -------------
> 2 files changed, 1 insertion(+), 18 deletions(-)
>
> diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
> index e312ea802aa6..a702f9d1ec0d 100644
> --- a/arch/powerpc/boot/Makefile
> +++ b/arch/powerpc/boot/Makefile
> @@ -448,11 +448,7 @@ $(obj)/zImage.initrd: $(addprefix $(obj)/, $(initrd-y))
> install: $(CONFIGURE) $(addprefix $(obj)/, $(image-y))
> sh -x $(srctree)/$(src)/install.sh "$(KERNELRELEASE)" vmlinux System.map "$(INSTALL_PATH)"
>
> -# Install the vmlinux and other built boot targets.
> -zInstall: $(CONFIGURE) $(addprefix $(obj)/, $(image-y))
> - sh -x $(srctree)/$(src)/install.sh "$(KERNELRELEASE)" vmlinux System.map "$(INSTALL_PATH)" $^
> -
> -PHONY += install zInstall
> +PHONY += install
>
> # anything not in $(targets)
> clean-files += $(image-) $(initrd-) cuImage.* dtbImage.* treeImage.* \
> diff --git a/arch/powerpc/boot/install.sh b/arch/powerpc/boot/install.sh
> index b6a256bc96ee..658c93ca7437 100644
> --- a/arch/powerpc/boot/install.sh
> +++ b/arch/powerpc/boot/install.sh
> @@ -15,7 +15,6 @@
> # $2 - kernel image file
> # $3 - kernel map file
> # $4 - default install path (blank if root directory)
> -# $5 and more - kernel boot files; zImage*, uImage, cuImage.*, etc.
> #
>
> # Bail with error code if anything goes wrong
> @@ -41,15 +40,3 @@ fi
>
> cat $2 > $4/$image_name
> cp $3 $4/System.map
> -
> -# Copy all the bootable image files
> -path=$4
> -shift 4
> -while [ $# -ne 0 ]; do
> - image_name=`basename $1`
> - if [ -f $path/$image_name ]; then
> - mv $path/$image_name $path/$image_name.old
> - fi
> - cat $1 > $path/$image_name
> - shift
> -done;
> --
> 2.27.0
>
--
Thanks,
~Nick Desaulniers
^ permalink raw reply
* [PATCH 1/3] powerpc/pseries: Parse control memory access error
From: Ganesh Goudar @ 2021-07-30 18:23 UTC (permalink / raw)
To: linuxppc-dev, mpe; +Cc: mikey, Ganesh Goudar, mahesh, npiggin
Add support to parse and log control memory access
error for pseries.
Signed-off-by: Ganesh Goudar <ganeshgr@linux.ibm.com>
---
arch/powerpc/platforms/pseries/ras.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/arch/powerpc/platforms/pseries/ras.c b/arch/powerpc/platforms/pseries/ras.c
index 167f2e1b8d39..608c35cad0c3 100644
--- a/arch/powerpc/platforms/pseries/ras.c
+++ b/arch/powerpc/platforms/pseries/ras.c
@@ -80,6 +80,7 @@ struct pseries_mc_errorlog {
#define MC_ERROR_TYPE_TLB 0x04
#define MC_ERROR_TYPE_D_CACHE 0x05
#define MC_ERROR_TYPE_I_CACHE 0x07
+#define MC_ERROR_TYPE_CTRL_MEM_ACCESS 0x08
/* RTAS pseries MCE error sub types */
#define MC_ERROR_UE_INDETERMINATE 0
@@ -103,6 +104,9 @@ struct pseries_mc_errorlog {
#define MC_ERROR_TLB_MULTIHIT 2
#define MC_ERROR_TLB_INDETERMINATE 3
+#define MC_ERROR_CTRL_MEM_ACCESS_PTABLE_WALK 0
+#define MC_ERROR_CTRL_MEM_ACCESS_OP_ACCESS 1
+
static inline u8 rtas_mc_error_sub_type(const struct pseries_mc_errorlog *mlog)
{
switch (mlog->error_type) {
@@ -112,6 +116,8 @@ static inline u8 rtas_mc_error_sub_type(const struct pseries_mc_errorlog *mlog)
case MC_ERROR_TYPE_ERAT:
case MC_ERROR_TYPE_TLB:
return (mlog->sub_err_type & 0x03);
+ case MC_ERROR_TYPE_CTRL_MEM_ACCESS:
+ return (mlog->sub_err_type & 0x70) >> 4;
default:
return 0;
}
@@ -699,6 +705,21 @@ static int mce_handle_err_virtmode(struct pt_regs *regs,
case MC_ERROR_TYPE_I_CACHE:
mce_err.error_type = MCE_ERROR_TYPE_ICACHE;
break;
+ case MC_ERROR_TYPE_CTRL_MEM_ACCESS:
+ mce_err.error_type = MCE_ERROR_TYPE_RA;
+ if (mce_log->sub_err_type & 0x80)
+ eaddr = be64_to_cpu(mce_log->effective_address);
+ switch (err_sub_type) {
+ case MC_ERROR_CTRL_MEM_ACCESS_PTABLE_WALK:
+ mce_err.u.ra_error_type =
+ MCE_RA_ERROR_PAGE_TABLE_WALK_LOAD_STORE_FOREIGN;
+ break;
+ case MC_ERROR_CTRL_MEM_ACCESS_OP_ACCESS:
+ mce_err.u.ra_error_type =
+ MCE_RA_ERROR_LOAD_STORE_FOREIGN;
+ break;
+ }
+ break;
case MC_ERROR_TYPE_UNKNOWN:
default:
mce_err.error_type = MCE_ERROR_TYPE_UNKNOWN;
--
2.31.1
^ permalink raw reply related
* [PATCH 2/3] selftests/powerpc: Add test for real address error handling
From: Ganesh Goudar @ 2021-07-30 18:23 UTC (permalink / raw)
To: linuxppc-dev, mpe; +Cc: mikey, Ganesh Goudar, mahesh, npiggin
In-Reply-To: <20210730182349.625819-1-ganeshgr@linux.ibm.com>
Add test for real address or control memory address access
error handling, using NX-GZIP engine.
The error is injected by accessing the control memory address
using illegal instruction, on successful handling the process
attempting to access control memory address using illegal
instruction receives SIGBUS.
Signed-off-by: Ganesh Goudar <ganeshgr@linux.ibm.com>
---
tools/testing/selftests/powerpc/Makefile | 3 +-
tools/testing/selftests/powerpc/mce/Makefile | 6 +++
.../selftests/powerpc/mce/inject-ra-err.c | 42 +++++++++++++++++++
.../selftests/powerpc/mce/inject-ra-err.sh | 19 +++++++++
4 files changed, 69 insertions(+), 1 deletion(-)
create mode 100644 tools/testing/selftests/powerpc/mce/Makefile
create mode 100644 tools/testing/selftests/powerpc/mce/inject-ra-err.c
create mode 100755 tools/testing/selftests/powerpc/mce/inject-ra-err.sh
diff --git a/tools/testing/selftests/powerpc/Makefile b/tools/testing/selftests/powerpc/Makefile
index 0830e63818c1..4830372d7416 100644
--- a/tools/testing/selftests/powerpc/Makefile
+++ b/tools/testing/selftests/powerpc/Makefile
@@ -31,7 +31,8 @@ SUB_DIRS = alignment \
vphn \
math \
ptrace \
- security
+ security \
+ mce
endif
diff --git a/tools/testing/selftests/powerpc/mce/Makefile b/tools/testing/selftests/powerpc/mce/Makefile
new file mode 100644
index 000000000000..0f537ce86370
--- /dev/null
+++ b/tools/testing/selftests/powerpc/mce/Makefile
@@ -0,0 +1,6 @@
+#SPDX-License-Identifier: GPL-2.0-or-later
+
+TEST_PROGS := inject-ra-err.sh
+TEST_GEN_FILES := inject-ra-err
+
+include ../../lib.mk
diff --git a/tools/testing/selftests/powerpc/mce/inject-ra-err.c b/tools/testing/selftests/powerpc/mce/inject-ra-err.c
new file mode 100644
index 000000000000..58374bc92e90
--- /dev/null
+++ b/tools/testing/selftests/powerpc/mce/inject-ra-err.c
@@ -0,0 +1,42 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+#include <stdio.h>
+#include <unistd.h>
+#include <string.h>
+#include <errno.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <fcntl.h>
+#include <sys/ioctl.h>
+#include <sys/mman.h>
+#include <asm/vas-api.h>
+
+int main(void)
+{
+ int fd, ret;
+ int *paste_addr;
+ struct vas_tx_win_open_attr attr;
+ char *devname = "/dev/crypto/nx-gzip";
+
+ memset(&attr, 0, sizeof(attr));
+ attr.version = 1;
+ attr.vas_id = 0;
+
+ fd = open(devname, O_RDWR);
+ if (fd < 0) {
+ fprintf(stderr, "Failed to open device %s\n", devname);
+ return -errno;
+ }
+ ret = ioctl(fd, VAS_TX_WIN_OPEN, &attr);
+ if (ret < 0) {
+ fprintf(stderr, "ioctl() n %d, error %d\n", ret, errno);
+ ret = -errno;
+ goto out;
+ }
+ paste_addr = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0ULL);
+ /* The following assignment triggers exception */
+ *paste_addr = 1;
+ ret = 0;
+out:
+ close(fd);
+ return ret;
+}
diff --git a/tools/testing/selftests/powerpc/mce/inject-ra-err.sh b/tools/testing/selftests/powerpc/mce/inject-ra-err.sh
new file mode 100755
index 000000000000..0e9c8ae6ad78
--- /dev/null
+++ b/tools/testing/selftests/powerpc/mce/inject-ra-err.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+if [[ ! -w /dev/crypto/nx-gzip ]]; then
+ echo "WARN: Can't access /dev/crypto/nx-gzip, skipping"
+ exit 0
+fi
+
+# Timeout in 5 seconds, If not handled it may run indefinitely.
+timeout 5 ./inject-ra-err
+
+# 128 + 7 (SIGBUS) = 135, 128 is a exit Code With Special Meaning.
+if [ $? -ne 135 ]; then
+ echo "FAILED: Control memory access error not handled"
+ exit $?
+fi
+
+echo "OK: Control memory access error is handled"
+exit 0
--
2.31.1
^ permalink raw reply related
* [PATCH 3/3] powerpc/mce: Modify the real address error logging messages
From: Ganesh Goudar @ 2021-07-30 18:23 UTC (permalink / raw)
To: linuxppc-dev, mpe; +Cc: mikey, Ganesh Goudar, mahesh, npiggin
In-Reply-To: <20210730182349.625819-1-ganeshgr@linux.ibm.com>
To avoid ambiguity, modify the strings in real address error
logging messages to "foreign/control memory" from "foreign",
Since the error discriptions in P9 user manual and P10 user
manual are different for same type of errors.
P9 User Manual for MCE:
DSISR:59 Host real address to foreign space during translation.
DSISR:60 Host real address to foreign space on a load or store
access.
P10 User Manual for MCE:
DSISR:59 D-side tablewalk used a host real address in the
control memory address range.
DSISR:60 D-side operand access to control memory address space.
Signed-off-by: Ganesh Goudar <ganeshgr@linux.ibm.com>
---
arch/powerpc/kernel/mce.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/powerpc/kernel/mce.c b/arch/powerpc/kernel/mce.c
index 47a683cd00d2..f3ef480bb739 100644
--- a/arch/powerpc/kernel/mce.c
+++ b/arch/powerpc/kernel/mce.c
@@ -388,14 +388,14 @@ void machine_check_print_event_info(struct machine_check_event *evt,
static const char *mc_ra_types[] = {
"Indeterminate",
"Instruction fetch (bad)",
- "Instruction fetch (foreign)",
+ "Instruction fetch (foreign/control memory)",
"Page table walk ifetch (bad)",
- "Page table walk ifetch (foreign)",
+ "Page table walk ifetch (foreign/control memory)",
"Load (bad)",
"Store (bad)",
"Page table walk Load/Store (bad)",
- "Page table walk Load/Store (foreign)",
- "Load/Store (foreign)",
+ "Page table walk Load/Store (foreign/control memory)",
+ "Load/Store (foreign/control memory)",
};
static const char *mc_link_types[] = {
"Indeterminate",
--
2.31.1
^ permalink raw reply related
* Re: [PATCH v5 0/6] compat: remove compat_alloc_user_space
From: Arnd Bergmann @ 2021-07-30 13:35 UTC (permalink / raw)
To: Heiko Carstens
Cc: Feng Tang, open list:BROADCOM NVRAM DRIVER, James E.J. Bottomley,
Linux-MM, Paul Mackerras, H. Peter Anvin, sparclinux, Will Deacon,
linux-arch, linux-s390, Arnd Bergmann, Helge Deller,
the arch/x86 maintainers, Christoph Hellwig,
Christian Borntraeger, Ingo Molnar, Catalin Marinas,
Vasily Gorbik, Borislav Petkov, Al Viro, Thomas Gleixner,
Linux ARM, Thomas Bogendoerfer, Parisc List, Linux API,
Linux Kernel Mailing List, Eric W. Biederman, Andrew Morton,
linuxppc-dev, David S. Miller
In-Reply-To: <YQPLG20V3dmOfq3a@osiris>
On Fri, Jul 30, 2021 at 11:49 AM Heiko Carstens <hca@linux.ibm.com> wrote:
> On Tue, Jul 27, 2021 at 04:48:53PM +0200, Arnd Bergmann wrote:
>
> Our CI reports this with linux-next and running strace selftest in
> compat mode:
Thanks a lot for the report! I managed track it down based on your
output, it turns out that I end up copying data from the stack according
to how much the user asked for, and in this case that was much more
than the 8 byte nodemask_t, copying all of the kernel stack all the
way into the guard page with CONFIG_VMAP_STACK, where it
crashed. Without CONFIG_VMAP_STACK, or with user space that
asks for less data, it would just be an information leak, so others
probably haven't noticed the problem.
The change below should fix that, I'll double-check the other callers
as well before sending a proper fixup patch to Andrew.
Arnd
diff --git a/mm/mempolicy.c b/mm/mempolicy.c
index 4fabf2dddbc0..0d1f3be32723 100644
--- a/mm/mempolicy.c
+++ b/mm/mempolicy.c
@@ -1438,6 +1438,7 @@ static int copy_nodes_to_user(unsigned long
__user *mask, unsigned long maxnode,
if (clear_user((char __user *)mask + nbytes, copy - nbytes))
return -EFAULT;
copy = nbytes;
+ maxnode = nr_node_ids;
}
if (compat)
^ permalink raw reply related
* Re: [PATCH] arch: Kconfig: clean up obsolete use of HAVE_IDE
From: Geert Uytterhoeven @ 2021-07-30 11:53 UTC (permalink / raw)
To: Lukas Bulwahn
Cc: Jens Axboe, moderated list:H8/300 ARCHITECTURE, Randy Dunlap,
linux-ia64@vger.kernel.org, Parisc List, Linux-sh list,
open list:TENSILICA XTENSA PORT (xtensa),
the arch/x86 maintainers, kernel-janitors,
open list:BROADCOM NVRAM DRIVER, Linux Kernel Mailing List,
linux-m68k, alpha, sparclinux, linuxppc-dev, Christoph Hellwig,
Linux ARM
In-Reply-To: <20210728182115.4401-1-lukas.bulwahn@gmail.com>
On Wed, Jul 28, 2021 at 8:21 PM Lukas Bulwahn <lukas.bulwahn@gmail.com> wrote:
> The arch-specific Kconfig files use HAVE_IDE to indicate if IDE is
> supported.
>
> As IDE support and the HAVE_IDE config vanishes with commit b7fb14d3ac63
> ("ide: remove the legacy ide driver"), there is no need to mention
> HAVE_IDE in all those arch-specific Kconfig files.
>
> The issue was identified with ./scripts/checkkconfigsymbols.py.
>
> Fixes: b7fb14d3ac63 ("ide: remove the legacy ide driver")
> Suggested-by: Randy Dunlap <rdunlap@infradead.org>
> Signed-off-by: Lukas Bulwahn <lukas.bulwahn@gmail.com>
> arch/m68k/Kconfig | 1 -
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply
* [PATCH] powerpc/svm: Don't issue ultracalls if !mem_encrypt_active()
From: Will Deacon @ 2021-07-30 11:42 UTC (permalink / raw)
To: linux-kernel
Cc: Sachin Sant, Konrad Rzeszutek Wilk, linuxppc-dev, Robin Murphy,
Nicholas Piggin, Nathan Chancellor, iommu, Claire Chang,
Will Deacon, Christoph Hellwig
Commit ad6c00283163 ("swiotlb: Free tbl memory in swiotlb_exit()")
introduced a set_memory_encrypted() call to swiotlb_exit() so that the
buffer pages are returned to an encrypted state prior to being freed.
Sachin reports that this leads to the following crash on a Power server:
[ 0.010799] software IO TLB: tearing down default memory pool
[ 0.010805] ------------[ cut here ]------------
[ 0.010808] kernel BUG at arch/powerpc/kernel/interrupt.c:98!
Nick spotted that this is because set_memory_encrypted() is issuing an
ultracall which doesn't exist for the processor, and should therefore
be gated by mem_encrypt_active() to mirror the x86 implementation.
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Claire Chang <tientzu@chromium.org>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Robin Murphy <robin.murphy@arm.com>
Fixes: ad6c00283163 ("swiotlb: Free tbl memory in swiotlb_exit()")
Suggested-by: Nicholas Piggin <npiggin@gmail.com>
Reported-by: Sachin Sant <sachinp@linux.vnet.ibm.com>
Tested-by: Sachin Sant <sachinp@linux.vnet.ibm.com>
Tested-by: Nathan Chancellor <nathan@kernel.org>
Link: https://lore.kernel.org/r/1905CD70-7656-42AE-99E2-A31FC3812EAC@linux.vnet.ibm.com/
Signed-off-by: Will Deacon <will@kernel.org>
---
arch/powerpc/platforms/pseries/svm.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/arch/powerpc/platforms/pseries/svm.c b/arch/powerpc/platforms/pseries/svm.c
index 1d829e257996..87f001b4c4e4 100644
--- a/arch/powerpc/platforms/pseries/svm.c
+++ b/arch/powerpc/platforms/pseries/svm.c
@@ -63,6 +63,9 @@ void __init svm_swiotlb_init(void)
int set_memory_encrypted(unsigned long addr, int numpages)
{
+ if (!mem_encrypt_active())
+ return 0;
+
if (!PAGE_ALIGNED(addr))
return -EINVAL;
@@ -73,6 +76,9 @@ int set_memory_encrypted(unsigned long addr, int numpages)
int set_memory_decrypted(unsigned long addr, int numpages)
{
+ if (!mem_encrypt_active())
+ return 0;
+
if (!PAGE_ALIGNED(addr))
return -EINVAL;
--
2.32.0.554.ge1b32706d8-goog
^ permalink raw reply related
* Re: [PATCHv2 3/3] powerpc/smp: Use existing L2 cache_map cpumask to find L3 cache siblings
From: Gautham R Shenoy @ 2021-07-30 10:08 UTC (permalink / raw)
To: Parth Shah; +Cc: ego, mikey, srikar, parths1229, svaidy, linuxppc-dev
In-Reply-To: <20210728175607.591679-4-parth@linux.ibm.com>
On Wed, Jul 28, 2021 at 11:26:07PM +0530, Parth Shah wrote:
> On POWER10 systems, the "ibm,thread-groups" property "2" indicates the cpus
> in thread-group share both L2 and L3 caches. Hence, use cache_property = 2
> itself to find both the L2 and L3 cache siblings.
> Hence, create a new thread_group_l3_cache_map to keep list of L3 siblings,
> but fill the mask using same property "2" array.
This version looks good to me.
Reviewed-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com>
>
> Signed-off-by: Parth Shah <parth@linux.ibm.com>
> ---
> arch/powerpc/include/asm/smp.h | 3 ++
> arch/powerpc/kernel/cacheinfo.c | 3 ++
> arch/powerpc/kernel/smp.c | 66 ++++++++++++++++++++++-----------
> 3 files changed, 51 insertions(+), 21 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/smp.h b/arch/powerpc/include/asm/smp.h
> index 1259040cc3a4..7ef1cd8168a0 100644
> --- a/arch/powerpc/include/asm/smp.h
> +++ b/arch/powerpc/include/asm/smp.h
> @@ -35,6 +35,7 @@ extern int *chip_id_lookup_table;
>
> DECLARE_PER_CPU(cpumask_var_t, thread_group_l1_cache_map);
> DECLARE_PER_CPU(cpumask_var_t, thread_group_l2_cache_map);
> +DECLARE_PER_CPU(cpumask_var_t, thread_group_l3_cache_map);
>
> #ifdef CONFIG_SMP
>
> @@ -144,6 +145,7 @@ extern int cpu_to_core_id(int cpu);
>
> extern bool has_big_cores;
> extern bool thread_group_shares_l2;
> +extern bool thread_group_shares_l3;
>
> #define cpu_smt_mask cpu_smt_mask
> #ifdef CONFIG_SCHED_SMT
> @@ -198,6 +200,7 @@ extern void __cpu_die(unsigned int cpu);
> #define hard_smp_processor_id() get_hard_smp_processor_id(0)
> #define smp_setup_cpu_maps()
> #define thread_group_shares_l2 0
> +#define thread_group_shares_l3 0
> static inline void inhibit_secondary_onlining(void) {}
> static inline void uninhibit_secondary_onlining(void) {}
> static inline const struct cpumask *cpu_sibling_mask(int cpu)
> diff --git a/arch/powerpc/kernel/cacheinfo.c b/arch/powerpc/kernel/cacheinfo.c
> index 20d91693eac1..cf1be75b7833 100644
> --- a/arch/powerpc/kernel/cacheinfo.c
> +++ b/arch/powerpc/kernel/cacheinfo.c
> @@ -469,6 +469,9 @@ static int get_group_id(unsigned int cpu_id, int level)
> else if (thread_group_shares_l2 && level == 2)
> return cpumask_first(per_cpu(thread_group_l2_cache_map,
> cpu_id));
> + else if (thread_group_shares_l3 && level == 3)
> + return cpumask_first(per_cpu(thread_group_l3_cache_map,
> + cpu_id));
> return -1;
> }
>
> diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
> index a7fcac44a8e2..f2abd88e0c25 100644
> --- a/arch/powerpc/kernel/smp.c
> +++ b/arch/powerpc/kernel/smp.c
> @@ -78,6 +78,7 @@ struct task_struct *secondary_current;
> bool has_big_cores;
> bool coregroup_enabled;
> bool thread_group_shares_l2;
> +bool thread_group_shares_l3;
>
> DEFINE_PER_CPU(cpumask_var_t, cpu_sibling_map);
> DEFINE_PER_CPU(cpumask_var_t, cpu_smallcore_map);
> @@ -101,7 +102,7 @@ enum {
>
> #define MAX_THREAD_LIST_SIZE 8
> #define THREAD_GROUP_SHARE_L1 1
> -#define THREAD_GROUP_SHARE_L2 2
> +#define THREAD_GROUP_SHARE_L2_L3 2
> struct thread_groups {
> unsigned int property;
> unsigned int nr_groups;
> @@ -131,6 +132,12 @@ DEFINE_PER_CPU(cpumask_var_t, thread_group_l1_cache_map);
> */
> DEFINE_PER_CPU(cpumask_var_t, thread_group_l2_cache_map);
>
> +/*
> + * On P10, thread_group_l3_cache_map for each CPU is equal to the
> + * thread_group_l2_cache_map
> + */
> +DEFINE_PER_CPU(cpumask_var_t, thread_group_l3_cache_map);
> +
> /* SMP operations for this machine */
> struct smp_ops_t *smp_ops;
>
> @@ -889,19 +896,41 @@ static struct thread_groups *__init get_thread_groups(int cpu,
> return tg;
> }
>
> +static int update_mask_from_threadgroup(cpumask_var_t *mask, struct thread_groups *tg, int cpu, int cpu_group_start)
> +{
> + int first_thread = cpu_first_thread_sibling(cpu);
> + int i;
> +
> + zalloc_cpumask_var_node(mask, GFP_KERNEL, cpu_to_node(cpu));
> +
> + for (i = first_thread; i < first_thread + threads_per_core; i++) {
> + int i_group_start = get_cpu_thread_group_start(i, tg);
> +
> + if (unlikely(i_group_start == -1)) {
> + WARN_ON_ONCE(1);
> + return -ENODATA;
> + }
> +
> + if (i_group_start == cpu_group_start)
> + cpumask_set_cpu(i, *mask);
> + }
> +
> + return 0;
> +}
> +
> static int __init init_thread_group_cache_map(int cpu, int cache_property)
>
> {
> - int first_thread = cpu_first_thread_sibling(cpu);
> - int i, cpu_group_start = -1, err = 0;
> + int cpu_group_start = -1, err = 0;
> struct thread_groups *tg = NULL;
> cpumask_var_t *mask = NULL;
>
> if (cache_property != THREAD_GROUP_SHARE_L1 &&
> - cache_property != THREAD_GROUP_SHARE_L2)
> + cache_property != THREAD_GROUP_SHARE_L2_L3)
> return -EINVAL;
>
> tg = get_thread_groups(cpu, cache_property, &err);
> +
> if (!tg)
> return err;
>
> @@ -912,25 +941,18 @@ static int __init init_thread_group_cache_map(int cpu, int cache_property)
> return -ENODATA;
> }
>
> - if (cache_property == THREAD_GROUP_SHARE_L1)
> + if (cache_property == THREAD_GROUP_SHARE_L1) {
> mask = &per_cpu(thread_group_l1_cache_map, cpu);
> - else if (cache_property == THREAD_GROUP_SHARE_L2)
> + update_mask_from_threadgroup(mask, tg, cpu, cpu_group_start);
> + }
> + else if (cache_property == THREAD_GROUP_SHARE_L2_L3) {
> mask = &per_cpu(thread_group_l2_cache_map, cpu);
> -
> - zalloc_cpumask_var_node(mask, GFP_KERNEL, cpu_to_node(cpu));
> -
> - for (i = first_thread; i < first_thread + threads_per_core; i++) {
> - int i_group_start = get_cpu_thread_group_start(i, tg);
> -
> - if (unlikely(i_group_start == -1)) {
> - WARN_ON_ONCE(1);
> - return -ENODATA;
> - }
> -
> - if (i_group_start == cpu_group_start)
> - cpumask_set_cpu(i, *mask);
> + update_mask_from_threadgroup(mask, tg, cpu, cpu_group_start);
> + mask = &per_cpu(thread_group_l3_cache_map, cpu);
> + update_mask_from_threadgroup(mask, tg, cpu, cpu_group_start);
> }
>
> +
> return 0;
> }
>
> @@ -1020,14 +1042,16 @@ static int __init init_big_cores(void)
> has_big_cores = true;
>
> for_each_possible_cpu(cpu) {
> - int err = init_thread_group_cache_map(cpu, THREAD_GROUP_SHARE_L2);
> + int err = init_thread_group_cache_map(cpu, THREAD_GROUP_SHARE_L2_L3);
>
> if (err)
> return err;
> }
>
> thread_group_shares_l2 = true;
> - pr_debug("L2 cache only shared by the threads in the small core\n");
> + thread_group_shares_l3 = true;
> + pr_debug("L2/L3 cache only shared by the threads in the small core\n");
> +
> return 0;
> }
>
> --
> 2.26.3
>
^ permalink raw reply
* Re: [PATCH v1 0/5] PCI: Drop duplicated tracking of a pci_dev's bound driver
From: Andy Shevchenko @ 2021-07-30 8:06 UTC (permalink / raw)
To: Uwe Kleine-König
Cc: Mark Rutland, Giovanni Cabiddu, Rafał Miłecki,
Peter Zijlstra, Alexander Duyck, H. Peter Anvin, Sathya Prakash,
oss-drivers, Oliver O'Halloran, Jiri Olsa, Boris Ostrovsky,
linux-perf-users, Stefano Stabellini, Herbert Xu, linux-scsi,
Ido Schimmel, x86, qat-linux, Alexander Shishkin, Ingo Molnar,
Geert Uytterhoeven, linux-pci, linux-wireless, Jakub Kicinski,
Mathias Nyman, Yisen Zhuang, Fiona Trahe, Andrew Donnellan,
Arnd Bergmann, Konrad Rzeszutek Wilk, Suganath Prabu Subramani,
Simon Horman, Arnaldo Carvalho de Melo, Borislav Petkov,
Michael Buesch, Jiri Pirko, Bjorn Helgaas, Namhyung Kim,
Thomas Gleixner, Juergen Gross, Salil Mehta, Sreekanth Reddy,
xen-devel, Vadym Kochan, MPT-FusionLinux.pdl, Greg Kroah-Hartman,
linux-usb, Wojciech Ziemba, linux-kernel, Taras Chornyi,
Zhou Wang, linux-crypto, kernel, netdev, Frederic Barrat,
Paul Mackerras, linuxppc-dev, David S. Miller
In-Reply-To: <20210729203740.1377045-1-u.kleine-koenig@pengutronix.de>
On Thu, Jul 29, 2021 at 10:37:35PM +0200, Uwe Kleine-König wrote:
> Hello,
>
> struct pci_dev tracks the bound pci driver twice. This series is about
> removing this duplication.
>
> The first two patches are just cleanups. The third patch introduces a
> wrapper that abstracts access to struct pci_dev->driver. In the next
> patch (hopefully) all users are converted to use the new wrapper and
> finally the fifth patch removes the duplication.
>
> Note this series is only build tested (allmodconfig on several
> architectures).
>
> I'm open to restructure this series if this simplifies things. E.g. the
> use of the new wrapper in drivers/pci could be squashed into the patch
> introducing the wrapper. Patch 4 could be split by maintainer tree or
> squashed into patch 3 completely.
I see only patch 4 and this cover letter...
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply
* Re: [PATCH v5 0/6] compat: remove compat_alloc_user_space
From: Heiko Carstens @ 2021-07-30 9:49 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Feng Tang, linux-mips, James E.J. Bottomley, linux-mm,
Paul Mackerras, H. Peter Anvin, sparclinux, Will Deacon,
linux-arch, linux-s390, Arnd Bergmann, Helge Deller, x86,
Christoph Hellwig, Christian Borntraeger, Ingo Molnar,
Catalin Marinas, Vasily Gorbik, Borislav Petkov, Al Viro,
Thomas Gleixner, linux-arm-kernel, Thomas Bogendoerfer,
linux-parisc, linux-api, linux-kernel, Eric W. Biederman,
Andrew Morton, linuxppc-dev, David S. Miller
In-Reply-To: <20210727144859.4150043-1-arnd@kernel.org>
On Tue, Jul 27, 2021 at 04:48:53PM +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
>
> Going through compat_alloc_user_space() to convert indirect system call
> arguments tends to add complexity compared to handling the native and
> compat logic in the same code.
>
> Out of the other remaining callers, the linux-media series went into
> v5.14, and the network ioctl handling is now fixed in net-next, so
> these are the last remaining users, and I now include the final
> patch to remove the definitions as well.
>
> Since these patches are now all that remains, it would be nice to
> merge it all through Andrew's Linux-mm tree, which is already based
> on top of linux-next.
...
>
> Arnd Bergmann (6):
> kexec: move locking into do_kexec_load
> kexec: avoid compat_alloc_user_space
> mm: simplify compat_sys_move_pages
> mm: simplify compat numa syscalls
> compat: remove some compat entry points
> arch: remove compat_alloc_user_space
Our CI reports this with linux-next and running strace selftest in
compat mode:
Unable to handle kernel pointer dereference in virtual kernel address space
Failing address: 0000038003e7c000 TEID: 0000038003e7c803
Fault in home space mode while using kernel ASCE.
AS:00000001fb388007 R3:000000008021c007 S:0000000082142000 P:0000000000000400
Oops: 0011 ilc:3 [#1] SMP
CPU: 0 PID: 1017495 Comm: get_mempolicy Tainted: G OE 5.14.0-20210730.rc3.git0.4ccc9e2db7ac.300.fc34.s390x+next #1
Hardware name: IBM 2827 H66 708 (LPAR)
Krnl PSW : 0704e00180000000 00000001f9f11000 (compat_put_bitmap+0x48/0xd0)
R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:3 CC:2 PM:0 RI:0 EA:3
Krnl GPRS: 0000000000810000 0000000000000000 000000007d9df1c0 0000038003e7c008
0000000000000004 000000007d9df1c4 0000038003e7be40 0000000000010000
0000000000008000 0000000000000000 0000000000000390 00000000000001c8
000000020d6ea000 000002aa00401a48 00000001fa0a85fa 0000038003e7bd50
Krnl Code: 00000001f9f10ff4: a7bb0001 aghi %r11,1
00000001f9f10ff8: 41303008 la %r3,8(%r3)
#00000001f9f10ffc: 41502004 la %r5,4(%r2)
>00000001f9f11000: e3103ff8ff04 lg %r1,-8(%r3)
00000001f9f11006: 5010f0a4 st %r1,164(%r15)
00000001f9f1100a: a50e0081 llilh %r0,129
00000001f9f1100e: c8402000f0a4 mvcos 0(%r2),164(%r15),%r4
00000001f9f11014: 1799 xr %r9,%r9
Call Trace:
[<00000001f9f11000>] compat_put_bitmap+0x48/0xd0
[<00000001fa0a85fa>] kernel_get_mempolicy+0x102/0x178
[<00000001fa0a86b0>] __s390_sys_get_mempolicy+0x40/0x50
[<00000001fa92be30>] __do_syscall+0x1c0/0x1e8
[<00000001fa939148>] system_call+0x78/0xa0
Last Breaking-Event-Address:
[<0000038003e7bc00>] 0x38003e7bc00
Kernel panic - not syncing: Fatal exception: panic_on_oops
Note: I did not try to bisect this, since it looks to me like this
patch series causes the problem. Also, please don't get confused with
the kernel version name. The date encoded is the build date, not the
linux-next version.
linux-next commit 4ccc9e2db7ac ("Add linux-next specific files for
20210729") was used to build the kernel (s390 defconfig).
^ permalink raw reply
* Re: [PATCH v1 0/5] PCI: Drop duplicated tracking of a pci_dev's bound driver
From: Greg Kroah-Hartman @ 2021-07-30 5:14 UTC (permalink / raw)
To: Uwe Kleine-König
Cc: Mark Rutland, Giovanni Cabiddu, Rafał Miłecki,
Peter Zijlstra, linux-pci, Alexander Duyck, Sathya Prakash,
oss-drivers, Oliver O'Halloran, H. Peter Anvin, Jiri Olsa,
Boris Ostrovsky, linux-perf-users, Stefano Stabellini, Herbert Xu,
linux-scsi, Ido Schimmel, x86, qat-linux, Alexander Shishkin,
Ingo Molnar, Geert Uytterhoeven, linux-wireless, Jakub Kicinski,
Mathias Nyman, Yisen Zhuang, Fiona Trahe, Andrew Donnellan,
Arnd Bergmann, Konrad Rzeszutek Wilk, Suganath Prabu Subramani,
Simon Horman, Arnaldo Carvalho de Melo, Borislav Petkov,
Michael Buesch, Jiri Pirko, Bjorn Helgaas, Namhyung Kim,
Thomas Gleixner, Andy Shevchenko, Juergen Gross, Salil Mehta,
Sreekanth Reddy, xen-devel, Vadym Kochan, MPT-FusionLinux.pdl,
linux-usb, Wojciech Ziemba, linux-kernel, Taras Chornyi,
Zhou Wang, linux-crypto, kernel, netdev, Frederic Barrat,
Paul Mackerras, linuxppc-dev, David S. Miller
In-Reply-To: <20210729203740.1377045-1-u.kleine-koenig@pengutronix.de>
On Thu, Jul 29, 2021 at 10:37:35PM +0200, Uwe Kleine-König wrote:
> Hello,
>
> struct pci_dev tracks the bound pci driver twice. This series is about
> removing this duplication.
>
> The first two patches are just cleanups. The third patch introduces a
> wrapper that abstracts access to struct pci_dev->driver. In the next
> patch (hopefully) all users are converted to use the new wrapper and
> finally the fifth patch removes the duplication.
>
> Note this series is only build tested (allmodconfig on several
> architectures).
>
> I'm open to restructure this series if this simplifies things. E.g. the
> use of the new wrapper in drivers/pci could be squashed into the patch
> introducing the wrapper. Patch 4 could be split by maintainer tree or
> squashed into patch 3 completely.
>
> Best regards
> Uwe
>
> Uwe Kleine-König (5):
> PCI: Simplify pci_device_remove()
> PCI: Drop useless check from pci_device_probe()
> PCI: Provide wrapper to access a pci_dev's bound driver
> PCI: Adapt all code locations to not use struct pci_dev::driver
> directly
> PCI: Drop duplicated tracking of a pci_dev's bound driver
Other than my objection to patch 5/5 lack of changelog, looks sane to
me:
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
^ permalink raw reply
* Re: [powerpc][next-20210727] Boot failure - kernel BUG at arch/powerpc/kernel/interrupt.c:98!
From: Sachin Sant @ 2021-07-30 5:17 UTC (permalink / raw)
To: Will Deacon
Cc: Konrad Rzeszutek Wilk, Robin Murphy, Nathan Chancellor, iommu,
linux-next, Claire Chang, linuxppc-dev, Christoph Hellwig
In-Reply-To: <20210729161335.GA22016@willie-the-truck>
> On 29-Jul-2021, at 9:43 PM, Will Deacon <will@kernel.org> wrote:
>
> On Wed, Jul 28, 2021 at 10:35:34AM -0700, Nathan Chancellor wrote:
>> On Wed, Jul 28, 2021 at 01:31:06PM +0530, Sachin Sant wrote:
>>> next-20210723 was good. The boot failure seems to have been introduced with next-20210726.
>>>
>>> I have attached the boot log.
>>
>> I noticed this with OpenSUSE's ppc64le config [1] and my bisect landed on
>> commit ad6c00283163 ("swiotlb: Free tbl memory in swiotlb_exit()"). That
>> series just keeps on giving...
>
> Yes, but look how handy our new print is!
>
> [ 0.010799] software IO TLB: tearing down default memory pool
> [ 0.010805] ------------[ cut here ]------------
> [ 0.010808] kernel BUG at arch/powerpc/kernel/interrupt.c:98!
>
> Following Nick's suggestion, the diff below should help? I don't have a
> relevant box on which I can test it though.
>
Thanks for the fix. This fixes the reported problem for me.
Tested successfully on both PowerVM LPAR as well as bare metal environment.
Reported-by: Sachin Sant <sachinp@linux.vnet.ibm.com>
Tested-by: Sachin Sant <sachinp@linux.vnet.ibm.com>
> Will
>
> --->8
>
> diff --git a/arch/powerpc/platforms/pseries/svm.c b/arch/powerpc/platforms/pseries/svm.c
> index 1d829e257996..87f001b4c4e4 100644
> --- a/arch/powerpc/platforms/pseries/svm.c
> +++ b/arch/powerpc/platforms/pseries/svm.c
> @@ -63,6 +63,9 @@ void __init svm_swiotlb_init(void)
>
> int set_memory_encrypted(unsigned long addr, int numpages)
> {
> + if (!mem_encrypt_active())
> + return 0;
> +
> if (!PAGE_ALIGNED(addr))
> return -EINVAL;
>
> @@ -73,6 +76,9 @@ int set_memory_encrypted(unsigned long addr, int numpages)
>
> int set_memory_decrypted(unsigned long addr, int numpages)
> {
> + if (!mem_encrypt_active())
> + return 0;
> +
> if (!PAGE_ALIGNED(addr))
> return -EINVAL;
>
^ permalink raw reply
* [PATCH kernel] powerpc/powernv: Check if powernv_rng is initialized
From: Alexey Kardashevskiy @ 2021-07-30 4:43 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Alexey Kardashevskiy, Paul Mackerras, linux-kernel, kvm-ppc
The powernv-rng driver has 2 users - the bare metal powernv platform and
the KVM's H_RANDOM hcall. The hcall handler works fine when it is L0 KVM
but fails in L1 KVM as there is no support for the HW registers in L1 VMs
and such support is not advertised either (== no "ibm,power-rng" in
the FDT). So when a nested VM tries H_RANDOM, the L1 KVM crashes on
in_be64(rng->regs).
This checks the pointers and returns an error if the feature is not
set up.
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
---
Randomly randomized H_RANDOM:
00:00:45 executing program 10:
r0 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000000), 0x0, 0x0)
r1 = ioctl$KVM_CREATE_VM(r0, 0x2000ae01, 0x0)
r2 = ioctl$KVM_CREATE_VCPU(r1, 0x2000ae41, 0x0)
ioctl$KVM_SET_REGS(r2, 0x8188ae82, &(0x7f00000001c0)={[0x0, 0x0, 0xffffffffffffffe1, 0x0, 0x0, 0x200000953, 0x0, 0xfffffffffffffffe, 0x0, 0x0, 0x2], 0x2000})
syz_kvm_setup_cpu$ppc64(0xffffffffffffffff, r2, &(0x7f0000e80000/0x180000)=nil, 0x0, 0x0, 0x0, 0x0, 0x0)
r3 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000100), 0x0, 0x0)
syz_kvm_setup_cpu$ppc64(r1, r2, &(0x7f0000e70000/0x180000)=nil, &(0x7f0000000080)=[{0x0, &(0x7f0000000280)="0000e03d0080ef61e403ef790000ef650900ef61647b007c0000e03f0000ff63e403ff7b0000ff679952ff6370e63f7e0000603c00006360e4036378000063640003636018a8803c28bf8460e4038478ef97846436888460b6f6a03c88d6a560e403a5781beda564d879a5602665c03cb08dc660e403c67806b3c664966fc660d53fe03cddf1e760e403e7785c41e7646623e76022000044463fb1f20000803e00809462e403947a0000946604009462a6a6607f4abb4c130000603f00007b63e4037b7b00007b679a367b6332d9c17c201c994f7201004cbb7a603f72047b63e4037b7b955f7b6799947b636401607f", 0xf0}], 0x1, 0x0, &(0x7f00000000c0)=[@featur2={0x1, 0x1000}], 0x1)
cpu 0xd: Vector: 300 (Data Access) at [c00000001599f590]
pc: c00000000011d2bc: powernv_get_random_long+0x4c/0xc0
lr: c00000000011d298: powernv_get_random_long+0x28/0xc0
sp: c00000001599f830
msr: 800000000280b033
dar: 0
dsisr: 40000000
current = 0xc0000000614c7f80
paca = 0xc0000000fff81700 irqmask: 0x03 irq_happened: 0x01
pid = 31576, comm = syz-executor.10
Linux version 5.14.0-rc2-le_f29cf1ff9a23_a+fstn1 (aik@fstn1-p1) (gcc (Ubuntu 10.3.0-1ubuntu1) 10.3.0, GNU ld (GNU Binutils for Ubuntu) 2.36.1) #263 SMP Thu Jul 29 17:56:12 AEST 2021
enter ? for help
[c00000001599f860] c0000000001e45f8 kvmppc_pseries_do_hcall+0x5d8/0x2190
[c00000001599f8f0] c0000000001ea2dc kvmppc_vcpu_run_hv+0x31c/0x14d0
[c00000001599f9c0] c0000000001bd518 kvmppc_vcpu_run+0x48/0x60
[c00000001599f9f0] c0000000001b74b0 kvm_arch_vcpu_ioctl_run+0x580/0x7d0
[c00000001599fa90] c00000000019e6f8 kvm_vcpu_ioctl+0x418/0xd00
[c00000001599fc70] c00000000079d8c4 sys_ioctl+0xb44/0x2100
[c00000001599fd90] c00000000003b704 system_call_exception+0x224/0x410
[c00000001599fe10] c00000000000c0e8 system_call_vectored_common+0xe8/0x278
---
arch/powerpc/platforms/powernv/rng.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/powerpc/platforms/powernv/rng.c b/arch/powerpc/platforms/powernv/rng.c
index 72c25295c1c2..070d0963995d 100644
--- a/arch/powerpc/platforms/powernv/rng.c
+++ b/arch/powerpc/platforms/powernv/rng.c
@@ -105,6 +105,8 @@ int powernv_get_random_long(unsigned long *v)
struct powernv_rng *rng;
rng = get_cpu_var(powernv_rng);
+ if (!rng || !rng->regs)
+ return 0;
*v = rng_whiten(rng, in_be64(rng->regs));
--
2.30.2
^ permalink raw reply related
* [powerpc:merge] BUILD SUCCESS 3c639d9f60fff1b0d8b73d888ba27295318ae05f
From: kernel test robot @ 2021-07-30 4:28 UTC (permalink / raw)
To: Michael Ellerman; +Cc: linuxppc-dev
tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git merge
branch HEAD: 3c639d9f60fff1b0d8b73d888ba27295318ae05f Automatic merge of 'next' into merge (2021-07-26 20:44)
elapsed time: 793m
configs tested: 89
configs skipped: 3
The following configs have been built successfully.
More configs may be tested in the coming days.
gcc tested configs:
arm defconfig
arm64 allyesconfig
arm64 defconfig
arm allyesconfig
arm allmodconfig
i386 randconfig-c001-20210728
mips ip32_defconfig
mips e55_defconfig
microblaze defconfig
arc nsimosci_hs_defconfig
powerpc mpc8315_rdb_defconfig
ia64 allmodconfig
ia64 defconfig
ia64 allyesconfig
x86_64 allnoconfig
m68k allmodconfig
m68k defconfig
m68k allyesconfig
nios2 defconfig
arc allyesconfig
nds32 allnoconfig
nds32 defconfig
nios2 allyesconfig
csky defconfig
alpha defconfig
alpha allyesconfig
xtensa allyesconfig
h8300 allyesconfig
arc defconfig
sh allmodconfig
parisc defconfig
s390 allyesconfig
s390 allmodconfig
parisc allyesconfig
s390 defconfig
i386 allyesconfig
sparc allyesconfig
sparc defconfig
i386 defconfig
mips allyesconfig
mips allmodconfig
powerpc allyesconfig
powerpc allmodconfig
powerpc allnoconfig
x86_64 randconfig-a006-20210728
x86_64 randconfig-a003-20210728
x86_64 randconfig-a001-20210728
x86_64 randconfig-a004-20210728
x86_64 randconfig-a005-20210728
x86_64 randconfig-a002-20210728
i386 randconfig-a005-20210728
i386 randconfig-a003-20210728
i386 randconfig-a004-20210728
i386 randconfig-a002-20210728
i386 randconfig-a001-20210728
i386 randconfig-a006-20210728
x86_64 randconfig-a016-20210729
x86_64 randconfig-a011-20210729
x86_64 randconfig-a014-20210729
x86_64 randconfig-a013-20210729
x86_64 randconfig-a012-20210729
x86_64 randconfig-a015-20210729
i386 randconfig-a016-20210728
i386 randconfig-a012-20210728
i386 randconfig-a013-20210728
i386 randconfig-a014-20210728
i386 randconfig-a011-20210728
i386 randconfig-a015-20210728
riscv nommu_k210_defconfig
riscv allyesconfig
riscv nommu_virt_defconfig
riscv allnoconfig
riscv defconfig
riscv rv32_defconfig
riscv allmodconfig
um x86_64_defconfig
um i386_defconfig
x86_64 allyesconfig
x86_64 rhel-8.3-kselftests
x86_64 defconfig
x86_64 rhel-8.3
x86_64 kexec
clang tested configs:
x86_64 randconfig-c001-20210730
x86_64 randconfig-a016-20210728
x86_64 randconfig-a011-20210728
x86_64 randconfig-a014-20210728
x86_64 randconfig-a013-20210728
x86_64 randconfig-a012-20210728
x86_64 randconfig-a015-20210728
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
^ permalink raw reply
* [powerpc:next] BUILD SUCCESS e1ab9a730b426fadc018f91b7c98412473e542fb
From: kernel test robot @ 2021-07-30 3:22 UTC (permalink / raw)
To: Michael Ellerman; +Cc: linuxppc-dev
tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
branch HEAD: e1ab9a730b426fadc018f91b7c98412473e542fb Merge branch 'fixes' into next
elapsed time: 727m
configs tested: 134
configs skipped: 90
The following configs have been built successfully.
More configs may be tested in the coming days.
gcc tested configs:
arm defconfig
arm64 allyesconfig
arm64 defconfig
arm allyesconfig
arm allmodconfig
i386 randconfig-c001-20210728
sh microdev_defconfig
arm s5pv210_defconfig
arm spitz_defconfig
mips bcm47xx_defconfig
mips pistachio_defconfig
powerpc pcm030_defconfig
arc nsimosci_hs_smp_defconfig
m68k amiga_defconfig
arm cerfcube_defconfig
arc axs103_defconfig
powerpc ep88xc_defconfig
arm lart_defconfig
powerpc mpc832x_mds_defconfig
powerpc fsp2_defconfig
arm h5000_defconfig
mips ci20_defconfig
powerpc sam440ep_defconfig
arm imx_v4_v5_defconfig
mips nlm_xlr_defconfig
powerpc mpc85xx_cds_defconfig
powerpc motionpro_defconfig
sh se7722_defconfig
mips maltasmvp_eva_defconfig
powerpc klondike_defconfig
mips ar7_defconfig
xtensa cadence_csp_defconfig
arc haps_hs_smp_defconfig
sh se7724_defconfig
sh titan_defconfig
sh se7343_defconfig
powerpc mpc7448_hpc2_defconfig
mips sb1250_swarm_defconfig
sh se7206_defconfig
arm omap1_defconfig
arm lubbock_defconfig
powerpc skiroot_defconfig
sh rts7751r2dplus_defconfig
mips maltasmvp_defconfig
powerpc powernv_defconfig
powerpc storcenter_defconfig
xtensa common_defconfig
arm sunxi_defconfig
m68k m5249evb_defconfig
powerpc holly_defconfig
sh se7780_defconfig
arm shannon_defconfig
sh rts7751r2d1_defconfig
powerpc amigaone_defconfig
sh se7751_defconfig
m68k amcore_defconfig
arm tegra_defconfig
x86_64 allnoconfig
ia64 allmodconfig
ia64 defconfig
ia64 allyesconfig
m68k allmodconfig
m68k defconfig
m68k allyesconfig
nios2 defconfig
arc allyesconfig
nds32 allnoconfig
nds32 defconfig
nios2 allyesconfig
csky defconfig
alpha defconfig
alpha allyesconfig
xtensa allyesconfig
h8300 allyesconfig
arc defconfig
sh allmodconfig
parisc defconfig
s390 allyesconfig
s390 allmodconfig
parisc allyesconfig
s390 defconfig
i386 allyesconfig
sparc allyesconfig
sparc defconfig
i386 defconfig
mips allyesconfig
mips allmodconfig
powerpc allyesconfig
powerpc allmodconfig
powerpc allnoconfig
x86_64 randconfig-a006-20210728
x86_64 randconfig-a003-20210728
x86_64 randconfig-a001-20210728
x86_64 randconfig-a004-20210728
x86_64 randconfig-a005-20210728
x86_64 randconfig-a002-20210728
i386 randconfig-a005-20210728
i386 randconfig-a003-20210728
i386 randconfig-a004-20210728
i386 randconfig-a002-20210728
i386 randconfig-a001-20210728
i386 randconfig-a006-20210728
x86_64 randconfig-a016-20210729
x86_64 randconfig-a011-20210729
x86_64 randconfig-a014-20210729
x86_64 randconfig-a013-20210729
x86_64 randconfig-a012-20210729
x86_64 randconfig-a015-20210729
i386 randconfig-a016-20210728
i386 randconfig-a012-20210728
i386 randconfig-a013-20210728
i386 randconfig-a014-20210728
i386 randconfig-a011-20210728
i386 randconfig-a015-20210728
riscv nommu_k210_defconfig
riscv allyesconfig
riscv nommu_virt_defconfig
riscv allnoconfig
riscv defconfig
riscv rv32_defconfig
riscv allmodconfig
x86_64 rhel-8.3-kselftests
um x86_64_defconfig
um i386_defconfig
x86_64 allyesconfig
x86_64 defconfig
x86_64 rhel-8.3
x86_64 kexec
clang tested configs:
x86_64 randconfig-a016-20210728
x86_64 randconfig-a011-20210728
x86_64 randconfig-a014-20210728
x86_64 randconfig-a013-20210728
x86_64 randconfig-a012-20210728
x86_64 randconfig-a015-20210728
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
^ permalink raw reply
* [powerpc:next-test] BUILD SUCCESS 2861326d8d5ec28ddb72f127ce5f2d1ec0726911
From: kernel test robot @ 2021-07-30 3:22 UTC (permalink / raw)
To: Michael Ellerman; +Cc: linuxppc-dev
tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next-test
branch HEAD: 2861326d8d5ec28ddb72f127ce5f2d1ec0726911 powerpc/stacktrace: Include linux/delay.h
elapsed time: 727m
configs tested: 121
configs skipped: 3
The following configs have been built successfully.
More configs may be tested in the coming days.
gcc tested configs:
arm defconfig
arm64 allyesconfig
arm64 defconfig
arm allyesconfig
arm allmodconfig
i386 randconfig-c001-20210728
sh microdev_defconfig
arm s5pv210_defconfig
arm spitz_defconfig
mips bcm47xx_defconfig
mips pistachio_defconfig
powerpc ep88xc_defconfig
arm lart_defconfig
powerpc mpc832x_mds_defconfig
powerpc fsp2_defconfig
arm h5000_defconfig
mips ci20_defconfig
powerpc motionpro_defconfig
sh se7722_defconfig
mips maltasmvp_eva_defconfig
powerpc klondike_defconfig
mips ar7_defconfig
xtensa cadence_csp_defconfig
arc haps_hs_smp_defconfig
sh se7724_defconfig
sh titan_defconfig
sh se7343_defconfig
powerpc mpc7448_hpc2_defconfig
mips sb1250_swarm_defconfig
sh se7206_defconfig
arm omap1_defconfig
arm lubbock_defconfig
powerpc skiroot_defconfig
sh rts7751r2dplus_defconfig
mips maltasmvp_defconfig
powerpc powernv_defconfig
powerpc storcenter_defconfig
xtensa common_defconfig
arm sunxi_defconfig
powerpc sam440ep_defconfig
m68k m5249evb_defconfig
powerpc holly_defconfig
sh se7780_defconfig
x86_64 allnoconfig
ia64 allmodconfig
ia64 defconfig
ia64 allyesconfig
m68k allmodconfig
m68k defconfig
m68k allyesconfig
nios2 defconfig
arc allyesconfig
nds32 allnoconfig
nds32 defconfig
nios2 allyesconfig
csky defconfig
alpha defconfig
alpha allyesconfig
xtensa allyesconfig
h8300 allyesconfig
arc defconfig
sh allmodconfig
parisc defconfig
s390 allyesconfig
s390 allmodconfig
parisc allyesconfig
s390 defconfig
i386 allyesconfig
sparc allyesconfig
sparc defconfig
i386 defconfig
mips allyesconfig
mips allmodconfig
powerpc allyesconfig
powerpc allmodconfig
powerpc allnoconfig
x86_64 randconfig-a006-20210728
x86_64 randconfig-a003-20210728
x86_64 randconfig-a001-20210728
x86_64 randconfig-a004-20210728
x86_64 randconfig-a005-20210728
x86_64 randconfig-a002-20210728
i386 randconfig-a005-20210728
i386 randconfig-a003-20210728
i386 randconfig-a004-20210728
i386 randconfig-a002-20210728
i386 randconfig-a001-20210728
i386 randconfig-a006-20210728
x86_64 randconfig-a016-20210729
x86_64 randconfig-a011-20210729
x86_64 randconfig-a014-20210729
x86_64 randconfig-a013-20210729
x86_64 randconfig-a012-20210729
x86_64 randconfig-a015-20210729
i386 randconfig-a016-20210728
i386 randconfig-a012-20210728
i386 randconfig-a013-20210728
i386 randconfig-a014-20210728
i386 randconfig-a011-20210728
i386 randconfig-a015-20210728
riscv nommu_k210_defconfig
riscv allyesconfig
riscv nommu_virt_defconfig
riscv allnoconfig
riscv defconfig
riscv rv32_defconfig
riscv allmodconfig
x86_64 rhel-8.3-kselftests
um x86_64_defconfig
um i386_defconfig
x86_64 allyesconfig
x86_64 defconfig
x86_64 rhel-8.3
x86_64 kexec
clang tested configs:
x86_64 randconfig-c001-20210729
x86_64 randconfig-a016-20210728
x86_64 randconfig-a011-20210728
x86_64 randconfig-a014-20210728
x86_64 randconfig-a013-20210728
x86_64 randconfig-a012-20210728
x86_64 randconfig-a015-20210728
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox