Pull request: scottwood/linux.git next

Jason Yan yanaijie at huawei.com
Thu Nov 14 17:00:39 AEDT 2019



On 2019/11/13 17:23, Michael Ellerman wrote:
> It needs to use PTRRELOC() for the kernstart_virt_addr accesses.
> 
> I've made that change and squashed it into the series. I've pushed that
> as a branch to here:
>    https://github.com/linuxppc/linux/commits/topic/kaslr-book3e32
> 
> 
> That boots for me on qemu mac99.
> 
> Jason can you please test it on your setup with KASLR enabled to make
> sure it still works.
> 

Thanks Michael,

I have confirmed it works with KASLR enabled on my machine.

[    0.000000] Memory CAM mapping: 256/256/256 Mb, residual: 3328Mb
[    0.000000] Linux version 5.4.0-rc2-00012-gc2d1a13520ee 
(yanaijie at 138) (gcc version 7.3.0 (Compiler CPU V200R003C00SPC010B006)) 
#1 SMP Thu Nov 14 14:16:28 CST 2019
[    0.000000] Using QEMU e500 machine description
[    0.000000] printk: bootconsole [udbg0] enabled
[    0.000000] CPU maps initialized for 1 thread per core
[    0.000000] -----------------------------------------------------
[    0.000000] phys_mem_size     = 0x100000000
[    0.000000] dcache_bsize      = 0x40
[    0.000000] icache_bsize      = 0x40
[    0.000000] cpu_features      = 0x00000000000001b4
[    0.000000]   possible        = 0x00000000010103bc
[    0.000000]   always          = 0x0000000000000020
[    0.000000] cpu_user_features = 0x8c008000 0x08000000
[    0.000000] mmu_features      = 0x000a0010
[    0.000000] physical_start    = 0x93a4000
[    0.000000] -----------------------------------------------------
[    0.000000] barrier-nospec: using isync; sync as speculation barrier
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x000000002fffffff]
[    0.000000]   HighMem  [mem 0x0000000030000000-0x00000000ffffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x00000000ffffffff]
[    0.000000] Initmem setup node 0 [mem 
0x0000000000000000-0x00000000ffffffff]
[    0.000000] MMU: Allocated 1088 bytes of context maps for 255 contexts
[    0.000000] percpu: Embedded 19 pages/cpu s47884 r8192 d21748 u77824
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 
1046656
[    0.000000] Kernel command line: console=ttyS0 IP=192.168.25.187 
root=/dev/vda rw
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 
bytes, linear)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 
bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 4066576K/4194304K available (11852K kernel code, 
780K rwdata, 2844K rodata, 3128K init, 265K bss, 127728K reserved, 0K 
cma-reserved, 3407872K highmem)
[    0.000000] Kernel virtual memory layout:
[    0.000000]   * 0xfff5f000..0xfffff000  : fixmap
[    0.000000]   * 0xffc00000..0xffe00000  : highmem PTEs
[    0.000000]   * 0xffbfe000..0xffc00000  : early ioremap
[    0.000000]   * 0xf1000000..0xffbfe000  : vmalloc & ioremap
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=1.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay 
is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.000000] NR_IRQS: 512, nr_irqs: 512, preallocated irqs: 16
[    0.000000] mpic: Setting up MPIC " OpenPIC  " version 1.2 at 
fe0040000, max 1 CPUs
[    0.000000] mpic: ISU size: 256, shift: 8, mask: ff
[    0.000000] mpic: Initializing for 256 sources
[    0.000000] random: get_random_u32 called from 
start_kernel+0x32c/0x4f4 with crng_init=0
[    0.000581] clocksource: timebase: mask: 0xffffffffffffffff 
max_cycles: 0x5c4093a7d1, max_idle_ns: 440795210635 ns
[    0.001136] clocksource: timebase mult[2800000] shift[24] registered
[    0.012660] Console: colour dummy device 80x25
[    0.013981] pid_max: default: 32768 minimum: 301
[    0.015472] Mount-cache hash table entries: 2048 (order: 1, 8192 
bytes, linear)
[    0.015838] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 
bytes, linear)
[    0.018991] *** VALIDATE tmpfs ***
[    0.031847] *** VALIDATE proc ***
[    0.034801] *** VALIDATE cgroup1 ***
[    0.034974] *** VALIDATE cgroup2 ***
[    0.053184] e500 family performance monitor hardware support registered
[    0.054372] rcu: Hierarchical SRCU implementation.
[    0.057294] smp: Bringing up secondary CPUs ...
[    0.057549] smp: Brought up 1 node, 1 CPU
[    0.057855] Using standard scheduler topology
[    0.068552] devtmpfs: initialized
[    0.077040] clocksource: jiffies: mask: 0xffffffff max_cycles: 
0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.077544] futex hash table entries: 256 (order: 2, 16384 bytes, linear)
[    0.086677] NET: Registered protocol family 16
[    0.089312] audit: initializing netlink subsys (disabled)

[    0.115531] Found FSL PCI host bridge at 0x0000000fe0008000. Firmware 
bus number: 0->255
[    0.115920] PCI host bridge /pci at fe0008000 (primary) ranges:
[    0.116586]  MEM 0x0000000c00000000..0x0000000c1fffffff -> 
0x00000000e0000000
[    0.116993]   IO 0x0000000fe1000000..0x0000000fe100ffff -> 
0x0000000000000000
[    0.118622] /pci at fe0008000: PCICSRBAR @ 0xdff00000
[    0.118852] setup_pci_atmu: end of DRAM 100000000
[    0.119635] /pci at fe0008000: DMA window size is 0xc0000000
[    0.131070] audit: type=2000 audit(0.092:1): state=initialized 
audit_enabled=0 res=1
[    0.140518] software IO TLB: mapped [mem 0x2971b000-0x2d71b000] (64MB)
[    0.140921] PCI: Probing PCI hardware
[    0.142830] fsl-pci fe0008000.pci: PCI host bridge to bus 8000:00
[    0.143463] pci_bus 8000:00: root bus resource [io  0x0000-0xffff]
[    0.143790] pci_bus 8000:00: root bus resource [mem 
0xc00000000-0xc1fffffff] (bus address [0xe0000000-0xffffffff])
[    0.144371] pci_bus 8000:00: root bus resource [bus 00-ff]
[    0.145016] pci_bus 8000:00: busn_res: [bus 00-ff] end is updated to ff
[    0.145976] pci 8000:00:00.0: [1957:0030] type 00 class 0x0b2000
[    0.147585] pci 8000:00:00.0: reg 0x10: [mem 0xdff00000-0xdfffffff]
[    0.152425] pci 8000:00:01.0: [1af4:1000] type 00 class 0x020000
[    0.152913] pci 8000:00:01.0: reg 0x10: [io  0x0000-0x001f]
[    0.153252] pci 8000:00:01.0: reg 0x14: [mem 0x00000000-0x00000fff]
[    0.153650] pci 8000:00:01.0: reg 0x20: [mem 0x00000000-0x00003fff 
64bit pref]
[    0.153948] pci 8000:00:01.0: reg 0x30: [mem 0x00000000-0x0003ffff pref]
[    0.154627] pci 8000:00:02.0: [1af4:1001] type 00 class 0x010000
[    0.154931] pci 8000:00:02.0: reg 0x10: [io  0x0000-0x007f]
[    0.155170] pci 8000:00:02.0: reg 0x14: [mem 0x00000000-0x00000fff]
[    0.155440] pci 8000:00:02.0: reg 0x20: [mem 0x00000000-0x00003fff 
64bit pref]
[    0.156038] pci 8000:00:03.0: [1af4:1009] type 00 class 0x000200
[    0.156331] pci 8000:00:03.0: reg 0x10: [io  0x0000-0x003f]
[    0.156570] pci 8000:00:03.0: reg 0x14: [mem 0x00000000-0x00000fff]
[    0.156840] pci 8000:00:03.0: reg 0x20: [mem 0x00000000-0x00003fff 
64bit pref]
[    0.159396] pci_bus 8000:00: busn_res: [bus 00-ff] end is updated to 00
[    0.162849] pci 8000:00:01.0: BAR 6: assigned [mem 
0xc00000000-0xc0003ffff pref]
[    0.163989] pci 8000:00:01.0: BAR 4: assigned [mem 
0xc00040000-0xc00043fff 64bit pref]
[    0.164583] pci 8000:00:02.0: BAR 4: assigned [mem 
0xc00044000-0xc00047fff 64bit pref]
[    0.164934] pci 8000:00:03.0: BAR 4: assigned [mem 
0xc00048000-0xc0004bfff 64bit pref]
[    0.165268] pci 8000:00:01.0: BAR 1: assigned [mem 
0xc0004c000-0xc0004cfff]
[    0.165654] pci 8000:00:02.0: BAR 1: assigned [mem 
0xc0004d000-0xc0004dfff]
[    0.165956] pci 8000:00:03.0: BAR 1: assigned [mem 
0xc0004e000-0xc0004efff]
[    0.166301] pci 8000:00:02.0: BAR 0: assigned [io  0x1000-0x107f]
[    0.166587] pci 8000:00:03.0: BAR 0: assigned [io  0x1080-0x10bf]
[    0.166849] pci 8000:00:01.0: BAR 0: assigned [io  0x10c0-0x10df]
[    0.167395] pci_bus 8000:00: resource 4 [io  0x0000-0xffff]
[    0.167643] pci_bus 8000:00: resource 5 [mem 0xc00000000-0xc1fffffff]
[    0.238672] HugeTLB registered 4.00 MiB page size, pre-allocated 0 pages
[    0.238981] HugeTLB registered 16.0 MiB page size, pre-allocated 0 pages
[    0.239232] HugeTLB registered 64.0 MiB page size, pre-allocated 0 pages
[    0.239505] HugeTLB registered 256 MiB page size, pre-allocated 0 pages
[    0.239757] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[    0.266909] vgaarb: loaded
[    0.268488] SCSI subsystem initialized
[    0.272248] usbcore: registered new interface driver usbfs
[    0.272785] usbcore: registered new interface driver hub
[    0.273192] usbcore: registered new device driver usb
[    0.273917] pps_core: LinuxPPS API ver. 1 registered
[    0.274132] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 
Rodolfo Giometti <giometti at linux.it>
[    0.274571] PTP clock support registered
[    0.278401] EDAC MC: Ver: 3.0.0
[    0.291537] clocksource: Switched to clocksource timebase
[    0.947371] VFS: Disk quotas dquot_6.6.0
[    0.947750] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 
bytes)
[    0.950139] *** VALIDATE ramfs ***
[    0.950358] *** VALIDATE hugetlbfs ***
[    0.990556] NET: Registered protocol family 2
[    0.996848] tcp_listen_portaddr_hash hash table entries: 512 (order: 
0, 6144 bytes, linear)
[    0.997344] TCP established hash table entries: 8192 (order: 3, 32768 
bytes, linear)
[    0.997865] TCP bind hash table entries: 8192 (order: 4, 65536 bytes, 
linear)
[    0.998367] TCP: Hash tables configured (established 8192 bind 8192)
[    0.999935] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[    1.000411] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, 
linear)
[    1.002684] NET: Registered protocol family 1
[    1.006928] RPC: Registered named UNIX socket transport module.
[    1.007220] RPC: Registered udp transport module.
[    1.007418] RPC: Registered tcp transport module.
[    1.007608] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    1.008045] PCI: CLS 0 bytes, default 64
[    1.018906] workingset: timestamp_bits=30 max_order=20 bucket_order=0
[    1.023954] NFS: Registering the id_resolver key type
[    1.025160] Key type id_resolver registered
[    1.025528] Key type id_legacy registered
[    1.025840] Installing knfsd (copyright (C) 1996 okir at monad.swb.de).
[    1.027580] ntfs: driver 2.1.32 [Flags: R/O].
[    1.028017] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red 
Hat, Inc.
[    1.029343] *** VALIDATE jffs2 ***
[    1.029923] fuse: init (API version 7.31)
[    1.030145] *** VALIDATE fuse ***
[    1.030308] *** VALIDATE fuse ***
[    1.031647] SGI XFS with ACLs, security attributes, realtime, debug 
enabled
[    1.034534] 9p: Installing v9fs 9p2000 file system support
[    1.086523] bounce: pool size: 64 pages
[    1.086909] io scheduler mq-deadline registered
[    1.087198] io scheduler kyber registered
[    1.090181] virtio-pci 8000:00:01.0: enabling device (0000 -> 0003)
[    1.094216] virtio-pci 8000:00:02.0: enabling device (0000 -> 0003)
[    1.096218] virtio-pci 8000:00:03.0: enabling device (0000 -> 0003)
[    1.102286] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    1.110556] printk: console [ttyS0] disabled
[    1.134829] serial8250.0: ttyS0 at MMIO 0xfe0004500 (irq = 42, 
base_baud = 115200) is a 16550A
[    1.136397] printk: console [ttyS0] enabled
[    1.136397] printk: console [ttyS0] enabled
[    1.137037] printk: bootconsole [udbg0] disabled
[    1.137037] printk: bootconsole [udbg0] disabled
[    1.139341] ePAPR hypervisor byte channel driver
[    1.162871] loop: module loaded
[    1.171471] virtio_blk virtio1: [vda] 6291456 512-byte logical blocks 
(3.22 GB/3.00 GiB)
[    1.208027] st: Version 20160209, fixed bufsize 32768, s/g segs 256
[    1.213030] libphy: Fixed MDIO Bus: probed
[    1.219498] e1000: Intel(R) PRO/1000 Network Driver - version 
7.3.21-k8-NAPI
[    1.219771] e1000: Copyright (c) 1999-2006 Intel Corporation.
[    1.220139] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
[    1.220378] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    1.231399] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.231864] ehci-pci: EHCI PCI platform driver
[    1.232288] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.232765] ohci-pci: OHCI PCI platform driver
[    1.233346] ehci-fsl: Freescale EHCI Host controller driver
[    1.233889] usbcore: registered new interface driver usb-storage
[    1.234643] i2c /dev entries driver
[    1.235923] mpc-i2c fe0003000.i2c: timeout 1000000 us
[    1.246731] rtc-ds1307 0-0068: registered as rtc0
[    1.248770] device-mapper: uevent: version 1.0.3
[    1.251552] device-mapper: ioctl: 4.41.0-ioctl (2019-09-16) 
initialised: dm-devel at redhat.com
[    1.253535] Freescale(R) MPC85xx EDAC driver, (C) 2006 Montavista 
Software
[    1.255483] EDAC PCI0: Giving out device to module MPC85xx_edac 
controller mpc85xx_pci_err: DEV mpc85xx-pci-edac.0.auto (INTERRUPT)
[    1.256144] MPC85xx_edac acquired irq 24 for PCI Err
[    1.256466] MPC85xx_edac PCI err registered
[    1.257176] sdhci: Secure Digital Host Controller Interface driver
[    1.257537] sdhci: Copyright(c) Pierre Ossman
[    1.258524] usbcore: registered new interface driver usbhid
[    1.258766] usbhid: USB HID core driver
[    1.258949] Freescale hypervisor management driver
[    1.259160] fsl-hv: no hypervisor found
[    1.260074] ipip: IPv4 and MPLS over IPv4 tunneling driver
[    1.263269] Initializing XFRM netlink socket
[    1.263970] NET: Registered protocol family 10
[    1.274568] Segment Routing with IPv6
[    1.275693] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    1.278112] NET: Registered protocol family 17
[    1.278623] NET: Registered protocol family 15
[    1.279811] 9pnet: Installing 9P2000 support
[    1.281362] Key type dns_resolver registered
[    1.281791] drmem: No dynamic reconfiguration memory found
[    1.304162] Key type encrypted registered
[    1.307598] rtc-ds1307 0-0068: setting system clock to 
2019-11-14T06:18:22 UTC (1573712302)
[    1.319557] md: Waiting for all devices to be available before autodetect
[    1.319857] md: If you don't use raid, use raid=noautodetect
[    1.323318] md: Autodetecting RAID arrays.
[    1.323513] md: autorun ...
[    1.323649] md: ... autorun DONE.
[    1.447439] EXT4-fs (vda): recovery complete
[    1.449701] EXT4-fs (vda): mounted filesystem with ordered data mode. 
Opts: (null)
[    1.450272] VFS: Mounted root (ext4 filesystem) on device 253:0.
[    1.455491] devtmpfs: mounted
[    1.577786] Freeing unused kernel memory: 3128K
[    1.578011] This architecture does not have kernel memory protection.
[    1.578340] Run /sbin/init as init process
[    1.923836] random: fast init done
[    1.970814] random: systemd: uninitialized urandom read (16 bytes read)
[    1.992564] systemd[1]: systemd 215 running in system mode. (+PAM 
+AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ -SECCOMP 
-APPARMOR)
[    1.996140] systemd[1]: Detected architecture 'ppc'.



More information about the Linuxppc-dev mailing list