# git rev-parse -q --verify 1a3deac14bb374ca124a4bb3a14422893b2e7029^{commit} 1a3deac14bb374ca124a4bb3a14422893b2e7029 already have revision, skipping fetch # git checkout -q -f -B kisskb 1a3deac14bb374ca124a4bb3a14422893b2e7029 # git clean -qxdf # git log -1 commit 1a3deac14bb374ca124a4bb3a14422893b2e7029 Author: Gavin Shan Date: Fri May 20 16:41:42 2016 +1000 PCI/hotplug: PowerPC PowerNV PCI hotplug driver This adds standalone driver to support PCI hotplug for PowerPC PowerNV platform that runs on top of skiboot firmware. The firmware identifies hotpluggable slots and marked their device tree node with proper "ibm,slot-pluggable" and "ibm,reset-by-firmware". The driver scans device tree nodes to create/register PCI hotplug slot accordingly. The PCI slots are organized in fashion of tree, which means one PCI slot might have parent PCI slot and parent PCI slot possibly contains multiple child PCI slots. At the plugging time, the parent PCI slot is populated before its children. The child PCI slots are removed before their parent PCI slot can be removed from the system. If the skiboot firmware doesn't support slot status retrieval, the PCI slot device node shouldn't have property "ibm,reset-by-firmware". In that case, none of valid PCI slots will be detected from device tree. The skiboot firmware doesn't export the capability to access attention LEDs yet and it's something for TBD. Signed-off-by: Gavin Shan Acked-by: Bjorn Helgaas Signed-off-by: Michael Ellerman # < /opt/cross/kisskb/gcc-4.6.3-nolibc/powerpc-linux/bin/powerpc-linux-gcc --version # < git log --format=%s --max-count=1 1a3deac14bb374ca124a4bb3a14422893b2e7029 # < make -j 48 ARCH=powerpc O=/home/kisskb/slave/build/powerpc-next_powerpc-allnoconfig_powerpc CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/powerpc-linux/bin/powerpc-linux- allnoconfig # make -j 48 ARCH=powerpc O=/home/kisskb/slave/build/powerpc-next_powerpc-allnoconfig_powerpc CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/powerpc-linux/bin/powerpc-linux- make[1]: Entering directory '/home/kisskb/slave/build/powerpc-next_powerpc-allnoconfig_powerpc' GEN ./Makefile scripts/kconfig/conf --silentoldconfig Kconfig CHK include/config/kernel.release UPD include/config/kernel.release GEN ./Makefile CHK include/generated/uapi/linux/version.h WRAP arch/powerpc/include/generated/asm/local64.h WRAP arch/powerpc/include/generated/asm/mcs_spinlock.h WRAP arch/powerpc/include/generated/asm/preempt.h WRAP arch/powerpc/include/generated/asm/rwsem.h WRAP arch/powerpc/include/generated/asm/vtime.h WRAP arch/powerpc/include/generated/asm/irq_work.h WRAP arch/powerpc/include/generated/asm/irq_regs.h WRAP arch/powerpc/include/generated/asm/div64.h WRAP arch/powerpc/include/generated/asm/clkdev.h UPD include/generated/uapi/linux/version.h CHK include/generated/utsrelease.h UPD include/generated/utsrelease.h Using /home/kisskb/slave/src as source for kernel CC scripts/mod/devicetable-offsets.s HOSTCC scripts/mod/mk_elfconfig CC scripts/mod/empty.o HOSTCC scripts/dtc/srcpos.o HOSTCC scripts/dtc/checks.o HOSTCC scripts/dtc/fstree.o HOSTCC scripts/dtc/data.o HOSTCC scripts/dtc/livetree.o SHIPPED scripts/dtc/dtc-parser.tab.c HOSTCC scripts/dtc/treesource.o SHIPPED scripts/dtc/dtc-parser.tab.h HOSTCC scripts/dtc/flattree.o SHIPPED scripts/dtc/dtc-lexer.lex.c HOSTCC scripts/dtc/dtc.o HOSTCC scripts/dtc/util.o HOSTCC scripts/dtc/dtc-lexer.lex.o HOSTCC scripts/dtc/dtc-parser.tab.o CHK include/generated/timeconst.h CC kernel/bounds.s UPD include/generated/timeconst.h GEN scripts/mod/devicetable-offsets.h CHK include/generated/bounds.h UPD include/generated/bounds.h CC arch/powerpc/kernel/asm-offsets.s MKELF scripts/mod/elfconfig.h HOSTCC scripts/mod/sumversion.o HOSTCC scripts/mod/file2alias.o HOSTCC scripts/mod/modpost.o CHK include/generated/asm-offsets.h UPD include/generated/asm-offsets.h CALL /home/kisskb/slave/src/scripts/checksyscalls.sh HOSTLD scripts/dtc/dtc HOSTLD scripts/mod/modpost CC init/do_mounts.o CHK include/generated/compile.h CC init/main.o CC init/init_task.o CC init/noinitramfs.o LD usr/built-in.o UPD include/generated/compile.h CC init/version.o CC arch/powerpc/mm/mem.o CC arch/powerpc/mm/fault.o CC arch/powerpc/mm/mmap.o CC arch/powerpc/mm/init_32.o AS arch/powerpc/mm/hash_low_32.o CC arch/powerpc/mm/mmu_context_hash32.o CC arch/powerpc/mm/ppc_mmu_32.o CC arch/powerpc/mm/tlb_hash32.o LD arch/powerpc/sysdev/built-in.o CC arch/powerpc/mm/pgtable_32.o CC arch/powerpc/mm/hugetlbpage.o CC arch/powerpc/mm/pgtable.o LD arch/powerpc/platforms/built-in.o AS arch/powerpc/lib/string.o CC arch/powerpc/lib/alloc.o AS arch/powerpc/lib/crtsavres.o CC arch/powerpc/lib/feature-fixups.o AS arch/powerpc/lib/div64.o AS arch/powerpc/lib/copy_32.o CC arch/powerpc/lib/ppc_ksyms.o CC arch/powerpc/lib/code-patching.o AS arch/powerpc/lib/checksum_32.o CC arch/powerpc/lib/checksum_wrappers.o LD arch/powerpc/math-emu/built-in.o LD arch/powerpc/crypto/built-in.o CC arch/powerpc/kernel/ptrace.o CC arch/powerpc/kernel/syscalls.o CC arch/powerpc/kernel/cputable.o CC arch/powerpc/kernel/irq.o CC arch/powerpc/kernel/align.o CC arch/powerpc/kernel/vdso.o CC arch/powerpc/kernel/pmc.o CC arch/powerpc/kernel/signal_32.o CC arch/powerpc/kernel/process.o CPP arch/powerpc/kernel/systbl_chk.i CC arch/powerpc/kernel/cacheinfo.o CC arch/powerpc/kernel/sysfs.o CC arch/powerpc/kernel/signal.o CC arch/powerpc/kernel/idle.o CC arch/powerpc/kernel/traps.o CC arch/powerpc/kernel/prom.o CC arch/powerpc/kernel/time.o CC arch/powerpc/kernel/udbg.o AS arch/powerpc/kernel/misc.o CC arch/powerpc/kernel/setup-common.o CC arch/powerpc/kernel/io.o LD arch/powerpc/net/built-in.o CC arch/powerpc/kernel/prom_parse.o CC arch/powerpc/kernel/of_platform.o AS arch/powerpc/kernel/misc_32.o CC arch/powerpc/kernel/dma.o AS arch/powerpc/kernel/idle_6xx.o AS arch/powerpc/kernel/l2cr_6xx.o LD certs/built-in.o AS arch/powerpc/kernel/entry_32.o AS arch/powerpc/kernel/cpu_setup_6xx.o CC arch/powerpc/kernel/setup_32.o LDS arch/powerpc/kernel/vdso32/vdso32.lds VDSO32A arch/powerpc/kernel/vdso32/sigtramp.o CC arch/powerpc/kernel/pci_32.o CC arch/powerpc/kernel/pci-common.o CC arch/powerpc/kernel/pci_of_scan.o VDSO32A arch/powerpc/kernel/vdso32/gettimeofday.o CC arch/powerpc/kernel/iomap.o VDSO32A arch/powerpc/kernel/vdso32/datapage.o VDSO32A arch/powerpc/kernel/vdso32/cacheflush.o VDSO32A arch/powerpc/kernel/vdso32/note.o LD ipc/built-in.o CC kernel/fork.o VDSO32L arch/powerpc/kernel/vdso32/vdso32.so.dbg AS arch/powerpc/kernel/head_32.o LDS arch/powerpc/kernel/vmlinux.lds CC kernel/panic.o CC kernel/exec_domain.o OBJCOPY arch/powerpc/kernel/vdso32/vdso32.so AS arch/powerpc/kernel/vdso32/vdso32_wrapper.o AS arch/powerpc/kernel/fpu.o CALL /home/kisskb/slave/src/arch/powerpc/kernel/systbl_chk.sh CC security/commoncap.o LD arch/powerpc/kernel/vdso32/built-in.o LD arch/powerpc/lib/built-in.o AS arch/powerpc/kernel/systbl.o CC security/min_addr.o LD crypto/built-in.o CC kernel/cpu.o CC mm/filemap.o CC mm/mempool.o CC kernel/softirq.o CC kernel/exit.o CC mm/oom_kill.o CC mm/maccess.o CC kernel/resource.o CC mm/page_alloc.o LD block/built-in.o CC fs/open.o CC fs/read_write.o CC mm/page-writeback.o CC mm/readahead.o CC fs/file_table.o CC mm/swap.o CC fs/super.o CC mm/truncate.o CC mm/vmscan.o LD arch/powerpc/mm/built-in.o CC fs/char_dev.o CC mm/shmem.o LD sound/built-in.o LD firmware/built-in.o CC fs/stat.o CC mm/util.o CC fs/exec.o CC mm/mmzone.o CC fs/pipe.o LD net/built-in.o CC mm/vmstat.o CC fs/namei.o CC fs/fcntl.o CC mm/backing-dev.o CC mm/mm_init.o CC kernel/sysctl.o CC kernel/sysctl_binary.o CC kernel/capability.o CC mm/mmu_context.o CC mm/percpu.o LD virt/lib/built-in.o CC kernel/ptrace.o CC mm/slab_common.o LD virt/built-in.o CC kernel/user.o CC fs/ioctl.o CC fs/readdir.o CC kernel/signal.o LD init/mounts.o LD init/built-in.o LD drivers/amba/built-in.o LD drivers/auxdisplay/built-in.o CC lib/lockref.o CC mm/compaction.o CC kernel/sys.o LD drivers/block/built-in.o LD drivers/bus/built-in.o CC mm/vmacache.o LD drivers/cdrom/built-in.o CC mm/interval_tree.o CC drivers/char/mem.o CC lib/bcd.o CC kernel/kmod.o CC mm/list_lru.o CC drivers/base/component.o LD drivers/clk/bcm/built-in.o CC fs/select.o CC mm/workingset.o CC fs/dcache.o CC fs/inode.o CC mm/debug.o LD drivers/clk/mvebu/built-in.o CC lib/div64.o CC mm/gup.o LD security/built-in.o CC fs/attr.o CC kernel/workqueue.o CC kernel/pid.o LD drivers/clk/ti/built-in.o CC mm/highmem.o CC kernel/task_work.o LD arch/powerpc/kernel/built-in.o LD drivers/clk/built-in.o CC mm/memory.o CC kernel/extable.o CC mm/mincore.o CC fs/bad_inode.o LD drivers/clocksource/built-in.o CC fs/file.o CC mm/mlock.o CC mm/mmap.o LD drivers/firewire/built-in.o CC mm/mprotect.o CC fs/filesystems.o CC kernel/params.o LD drivers/firmware/broadcom/built-in.o LD drivers/firmware/built-in.o CC fs/namespace.o CC fs/seq_file.o CC fs/xattr.o CC mm/mremap.o LD drivers/gpio/built-in.o CC kernel/kthread.o CC fs/libfs.o CC mm/msync.o CC lib/sort.o CC mm/rmap.o CC drivers/char/random.o CC mm/vmalloc.o CC kernel/sys_ni.o CC mm/pagewalk.o CC mm/pgtable-generic.o CC drivers/base/core.o CC mm/init-mm.o CC kernel/nsproxy.o CC fs/pnode.o CC fs/fs-writeback.o LD drivers/gpu/drm/bridge/built-in.o CC lib/parser.o CC fs/splice.o CC kernel/notifier.o CC kernel/ksysfs.o CC kernel/cred.o LD drivers/gpu/drm/hisilicon/built-in.o CC kernel/reboot.o CC kernel/async.o LD drivers/gpu/drm/i2c/built-in.o CC fs/sync.o CC mm/nobootmem.o LD drivers/gpu/drm/omapdrm/displays/built-in.o CC mm/memblock.o LD drivers/gpu/drm/omapdrm/dss/built-in.o CC kernel/range.o CC mm/dmapool.o LD drivers/gpu/drm/omapdrm/built-in.o CC fs/utimes.o CC kernel/smpboot.o LD drivers/gpu/drm/panel/built-in.o LD drivers/gpu/drm/tilcdc/built-in.o LD drivers/gpu/drm/built-in.o CC mm/slub.o CC fs/stack.o CC lib/halfmd4.o LD drivers/gpu/vga/built-in.o CC fs/fs_struct.o LD kernel/livepatch/built-in.o CC fs/statfs.o CC kernel/irq/irqdesc.o LD drivers/gpu/built-in.o CC kernel/power/qos.o CC kernel/locking/mutex.o CC kernel/rcu/update.o CC kernel/printk/printk.o CC lib/debug_locks.o CC lib/random32.o CC kernel/dma.o CC kernel/sched/core.o CC kernel/up.o CC fs/fs_pin.o CC kernel/elfcore.o LD drivers/hsi/clients/built-in.o CC fs/nsfs.o LD drivers/hsi/controllers/built-in.o CC lib/bust_spinlocks.o CC fs/no-block.o CC kernel/time/time.o LD drivers/hsi/built-in.o CC kernel/memremap.o CC kernel/sched/loadavg.o LD fs/devpts/built-in.o LD fs/exofs/built-in.o LD drivers/hwtracing/intel_th/built-in.o LD fs/quota/built-in.o LD fs/notify/dnotify/built-in.o CC fs/ramfs/inode.o CC fs/binfmt_elf.o CC kernel/time/timer.o LD drivers/idle/built-in.o LD fs/notify/fanotify/built-in.o LD drivers/i2c/busses/built-in.o LD drivers/i2c/algos/built-in.o CC kernel/time/hrtimer.o CC kernel/time/posix-timers.o CC kernel/time/itimer.o CC kernel/irq/handle.o CC kernel/locking/semaphore.o LD fs/notify/inotify/built-in.o LD drivers/i2c/muxes/built-in.o CC kernel/locking/rwsem.o CC kernel/sched/clock.o CC drivers/irqchip/irqchip.o CC kernel/rcu/sync.o CC lib/kasprintf.o CC kernel/rcu/tiny.o LD fs/notify/built-in.o LD drivers/i2c/built-in.o CC lib/bitmap.o LD drivers/leds/built-in.o CC kernel/irq/manage.o CC lib/scatterlist.o LD drivers/lguest/built-in.o CC kernel/irq/spurious.o LD drivers/macintosh/built-in.o LD drivers/mfd/built-in.o CC drivers/char/misc.o LD drivers/char/agp/built-in.o CC lib/gcd.o LD drivers/net/built-in.o LD drivers/mmc/built-in.o LD drivers/misc/cb710/built-in.o CC kernel/locking/percpu-rwsem.o LD drivers/nfc/built-in.o CC kernel/sched/cputime.o LD drivers/nvme/host/built-in.o CC drivers/base/bus.o LD drivers/misc/eeprom/built-in.o LD drivers/nvme/built-in.o CC lib/lcm.o LD drivers/platform/built-in.o CC lib/list_sort.o LD drivers/power/built-in.o CC lib/uuid.o LD drivers/pwm/built-in.o /home/kisskb/slave/src/mm/page_alloc.c: In function 'free_area_init_node': /home/kisskb/slave/src/mm/page_alloc.c:5798:17: warning: 'zone_start_pfn' may be used uninitialized in this function [-Wuninitialized] CC drivers/of/base.o LD drivers/media/common/b2c2/built-in.o CC lib/flex_array.o LD drivers/misc/lis3lv02d/built-in.o LD drivers/soc/bcm/built-in.o LD drivers/media/common/saa7146/built-in.o LD drivers/misc/mic/bus/built-in.o LD drivers/misc/ti-st/built-in.o LD drivers/usb/host/built-in.o LD drivers/misc/mic/built-in.o CC kernel/locking/rwsem-xadd.o LD kernel/power/built-in.o CC drivers/pci/bus.o LD drivers/tty/ipwireless/built-in.o LD drivers/media/common/siano/built-in.o CC drivers/pci/access.o LD drivers/soc/fsl/built-in.o CC drivers/pci/probe.o LD drivers/usb/built-in.o LD drivers/irqchip/built-in.o LD drivers/media/common/v4l2-tpg/built-in.o LD drivers/tty/serial/built-in.o LD drivers/misc/built-in.o CC kernel/irq/resend.o LD drivers/soc/built-in.o LD drivers/tty/vt/built-in.o CC fs/ramfs/file-mmu.o CC drivers/of/device.o CC kernel/sched/idle_task.o CC drivers/base/dd.o LD drivers/media/common/built-in.o CC drivers/of/platform.o CC kernel/sched/fair.o CC drivers/of/fdt.o LD drivers/tty/built-in.o CC drivers/of/fdt_address.o CC kernel/time/posix-cpu-timers.o CC kernel/sched/rt.o CC lib/iov_iter.o LD drivers/video/backlight/built-in.o LD drivers/media/firewire/built-in.o CC lib/clz_ctz.o LD drivers/video/fbdev/core/built-in.o CC lib/bsearch.o LD drivers/media/i2c/soc_camera/built-in.o CC lib/find_bit.o LD kernel/rcu/built-in.o LD drivers/media/i2c/built-in.o LD drivers/media/mmc/siano/built-in.o LD kernel/printk/built-in.o CC lib/llist.o CC lib/memweight.o CC kernel/irq/chip.o CC drivers/pci/host-bridge.o CC kernel/time/timekeeping.o LD drivers/media/mmc/built-in.o CC kernel/time/ntp.o LD drivers/media/rc/keymaps/built-in.o CC drivers/pci/remove.o LD drivers/media/platform/omap/built-in.o CC drivers/of/address.o CC lib/kfifo.o LD kernel/locking/built-in.o LD drivers/char/built-in.o LD drivers/video/fbdev/omap2/omapfb/displays/built-in.o CC lib/percpu_ida.o CC lib/percpu-refcount.o LD drivers/media/tuners/built-in.o LD drivers/media/platform/built-in.o CC kernel/sched/deadline.o LD drivers/media/rc/built-in.o CC kernel/time/jiffies.o CC kernel/time/clocksource.o CC kernel/sched/stop_task.o CC kernel/sched/wait.o LD drivers/video/fbdev/omap2/omapfb/dss/built-in.o CC kernel/irq/dummychip.o CC kernel/sched/swait.o CC lib/rhashtable.o CC kernel/sched/completion.o CC kernel/sched/idle.o LD drivers/video/fbdev/omap2/omapfb/built-in.o LD drivers/media/pci/b2c2/built-in.o LD fs/ramfs/ramfs.o CC kernel/time/timer_list.o LD fs/ramfs/built-in.o LD drivers/media/pci/ddbridge/built-in.o LD drivers/video/fbdev/omap2/built-in.o CC drivers/of/irq.o CC kernel/time/timeconv.o LD drivers/media/pci/dm1105/built-in.o CC lib/reciprocal_div.o CC lib/once.o LD drivers/media/usb/b2c2/built-in.o LD drivers/media/pci/mantis/built-in.o LD drivers/media/usb/dvb-usb/built-in.o LD drivers/video/fbdev/built-in.o CC kernel/time/timecounter.o LD drivers/media/pci/netup_unidvb/built-in.o LD drivers/media/usb/dvb-usb-v2/built-in.o CC drivers/base/syscore.o LD drivers/media/pci/ngene/built-in.o LD drivers/video/built-in.o LD drivers/media/usb/s2255/built-in.o LD drivers/media/usb/siano/built-in.o CC drivers/base/driver.o LD drivers/media/pci/pluto2/built-in.o LD drivers/media/pci/pt1/built-in.o LD drivers/media/pci/pt3/built-in.o LD drivers/media/usb/stkwebcam/built-in.o LD fs/built-in.o LD drivers/media/pci/smipcie/built-in.o LD drivers/media/pci/saa7146/built-in.o CC kernel/time/posix-clock.o CC drivers/pci/pci.o LD drivers/media/pci/ttpci/built-in.o LD drivers/media/usb/ttusb-budget/built-in.o LD drivers/media/usb/ttusb-dec/built-in.o CC kernel/time/alarmtimer.o LD drivers/media/usb/zr364xx/built-in.o CC drivers/of/of_pci.o CC kernel/time/clockevents.o CC kernel/time/tick-common.o CC drivers/of/of_pci_irq.o LD drivers/media/pci/built-in.o LD drivers/media/usb/built-in.o LD mm/built-in.o CC kernel/irq/devres.o CC lib/string_helpers.o CC kernel/irq/irqdomain.o CC drivers/base/class.o CC lib/hexdump.o CC drivers/base/platform.o CC lib/kstrtox.o CC drivers/base/cpu.o LD drivers/media/built-in.o CC lib/pci_iomap.o CC drivers/base/firmware.o CC drivers/of/of_reserved_mem.o CC drivers/pci/pci-driver.o CC drivers/pci/search.o CC lib/iomap_copy.o CC lib/devres.o CC drivers/base/init.o CC drivers/base/map.o CC lib/hweight.o CC drivers/base/devres.o CC lib/bitrev.o CC drivers/pci/pci-sysfs.o HOSTCC lib/gen_crc32table CC drivers/base/attribute_container.o CC lib/atomic64.o CC lib/syscall.o CC drivers/base/transport_class.o CC lib/strncpy_from_user.o CC lib/argv_split.o CC lib/strnlen_user.o CC drivers/base/topology.o CC drivers/base/container.o CC lib/cmdline.o CC drivers/base/property.o CC drivers/base/cacheinfo.o CC lib/ctype.o CC lib/dec_and_lock.o CC drivers/base/dma-mapping.o LD drivers/base/power/built-in.o CC lib/decompress.o CC lib/dma-noop.o CC drivers/pci/rom.o CC lib/dump_stack.o CC drivers/pci/setup-res.o CC drivers/pci/irq.o CC lib/earlycpio.o CC drivers/pci/vpd.o CC lib/extable.o CC lib/fdt.o CC drivers/pci/setup-bus.o CC lib/fdt_empty_tree.o CC lib/fdt_ro.o CC drivers/pci/vc.o CC lib/fdt_rw.o CC lib/fdt_strerror.o CC drivers/pci/syscall.o CC lib/fdt_sw.o CC drivers/pci/of.o CC lib/fdt_wip.o CC lib/flex_proportions.o LD drivers/of/built-in.o LD drivers/pci/host/built-in.o CC lib/ioremap.o CC lib/int_sqrt.o CC lib/idr.o CC lib/irq_regs.o CC lib/is_single_threaded.o CC lib/kobject_uevent.o CC lib/kobject.o CC lib/klist.o CC lib/nmi_backtrace.o LD kernel/sched/built-in.o CC lib/md5.o CC lib/nodemask.o CC lib/plist.o LD kernel/irq/built-in.o CC lib/ratelimit.o CC lib/radix-tree.o CC lib/seq_buf.o CC lib/rbtree.o CC lib/sha1.o CC lib/show_mem.o CC lib/timerqueue.o CC lib/string.o CC lib/vsprintf.o GEN lib/crc32table.h CC lib/crc32.o LD lib/built-in.o LD kernel/time/built-in.o LD drivers/base/built-in.o LD kernel/built-in.o LD drivers/pci/built-in.o LD drivers/built-in.o AR lib/lib.a LINK vmlinux LD vmlinux.o MODPOST vmlinux.o GEN .version CHK include/generated/compile.h UPD include/generated/compile.h CC init/version.o LD init/built-in.o LD vmlinux SYSMAP System.map /opt/cross/kisskb/gcc-4.6.3-nolibc/powerpc-linux/bin/powerpc-linux-strip -s -R .comment vmlinux -o arch/powerpc/boot/vmlinux.strip make[1]: Leaving directory '/home/kisskb/slave/build/powerpc-next_powerpc-allnoconfig_powerpc' Completed OK # rm -rf /home/kisskb/slave/build/powerpc-next_powerpc-allnoconfig_powerpc # Build took: 0:00:38.015034