All of lore.kernel.org
 help / color / mirror / Atom feed
* linux-next: Tree for Jan 20
@ 2015-01-20  7:53 Stephen Rothwell
  2015-01-20 14:16 ` Guenter Roeck
                   ` (2 more replies)
  0 siblings, 3 replies; 62+ messages in thread
From: Stephen Rothwell @ 2015-01-20  7:53 UTC (permalink / raw)
  To: linux-next; +Cc: linux-kernel

[-- Attachment #1: Type: text/plain, Size: 26673 bytes --]

Hi all,

Changes since 20150119:

The omap tree gained a conflict against the arm-soc tree.

The net-next tree lost its build failure.

The mmc-uh tree gained a conflict against the sunxi tree.

The audit tree gained conflicts against Linus' tree.

Non-merge commits (relative to Linus' tree): 3975
 3828 files changed, 141642 insertions(+), 68217 deletions(-)

----------------------------------------------------------------------------

I have created today's linux-next tree at
git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
(patches at http://www.kernel.org/pub/linux/kernel/next/ ).  If you
are tracking the linux-next tree using git, you should not use "git pull"
to do so as that will try to merge the new linux-next release with the
old one.  You should use "git fetch" and checkout or reset to the new
master.

You can see which trees have been included by looking in the Next/Trees
file in the source.  There are also quilt-import.log and merge.log files
in the Next directory.  Between each merge, the tree was built with
a ppc64_defconfig for powerpc and an allmodconfig for x86_64 and a
multi_v7_defconfig for arm. After the final fixups (if any), it is also
built with powerpc allnoconfig (32 and 64 bit), ppc44x_defconfig and
allyesconfig (this fails its final link) and i386, sparc, sparc64 and arm
defconfig.

Below is a summary of the state of the merge.

I am currently merging 234 trees (counting Linus' and 32 trees of patches
pending for Linus' tree).

Stats about the size of the tree over time can be seen at
http://neuling.org/linux-next-size.html .

Status of my local build tests will be at
http://kisskb.ellerman.id.au/linux-next .  If maintainers want to give
advice about cross compilers/configs that work, we are always open to add
more builds.

Thanks to Randy Dunlap for doing many randconfig builds.  And to Paul
Gortmaker for triage and bug fixes.

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

$ git checkout master
$ git reset --hard stable
Merging origin/master (ec6f34e5b552 Linux 3.19-rc5)
Merging fixes/master (b94d525e58dc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net)
Merging kbuild-current/rc-fixes (a16c5f99a28c kbuild: Fix removal of the debian/ directory)
Merging arc-current/for-curr (2ce7598c9a45 Linux 3.17-rc4)
Merging arm-current/fixes (2d9ed7406fd2 ARM: 8255/1: perf: Prevent wraparound during overflow)
Merging m68k-current/for-linus (f27bd5bfeda5 m68k: Wire up execveat)
Merging metag-fixes/fixes (ffe6902b66aa asm-generic: remove _STK_LIM_MAX)
Merging mips-fixes/mips-fixes (1795cd9b3a91 Linux 3.16-rc5)
Merging powerpc-merge/merge (31345e1a071e powerpc/pci: Remove unused force_32bit_msi quirk)
Merging powerpc-merge-mpe/fixes (a87e810f61b4 powerpc: Work around gcc bug in current_thread_info())
Merging sparc/master (66d0f7ec9f10 sparc32: destroy_context() and switch_mm() needs to disable interrupts.)
Merging net/master (ef5a1ba145b9 Merge branch 'r8152')
Merging ipsec/master (f855691975bb xfrm6: Fix the nexthdr offset in _decode_session6.)
Merging sound-current/for-linus (6455931186bf ALSA: usb-audio: Add mic volume fix quirk for Logitech Webcam C210)
Merging pci-current/for-linus (d63e2e1f3df9 sparc/PCI: Clip bridge windows to fit in upstream windows)
Merging wireless-drivers/master (e3f31175a3ee ath9k: fix race condition in irq processing during hardware reset)
Merging driver-core.current/driver-core-linus (ec6f34e5b552 Linux 3.19-rc5)
Merging tty.current/tty-linus (ec6f34e5b552 Linux 3.19-rc5)
Merging usb.current/usb-linus (ec6f34e5b552 Linux 3.19-rc5)
Merging usb-gadget-fixes/fixes (cf54772b913b usb: dwc2: call dwc2_is_controller_alive() under spinlock)
Merging usb-serial-fixes/usb-linus (ec6f34e5b552 Linux 3.19-rc5)
Merging staging.current/staging-linus (ec6f34e5b552 Linux 3.19-rc5)
Merging char-misc.current/char-misc-linus (ec6f34e5b552 Linux 3.19-rc5)
Merging input-current/for-linus (029b18361921 Input: uinput - fix ioctl nr overflow for UI_GET_SYSNAME/VERSION)
Merging md-current/for-linus (d47648fcf061 raid5: avoid finding "discard" stripe)
Merging crypto-current/master (3e14dcf7cb80 crypto: add missing crypto module aliases)
Merging ide/master (f96fe225677b Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net)
Merging dwmw2/master (5950f0803ca9 pcmcia: remove RPX board stuff)
Merging devicetree-current/devicetree/merge (094cb98179f1 of/fdt: memblock_reserve /memreserve/ regions in the case of partial overlap)
Merging rr-fixes/fixes (574732c73d15 param: initialize store function to NULL if not available.)
Merging vfio-fixes/for-linus (7c2e211f3c95 vfio-pci: Fix the check on pci device type in vfio_pci_probe())
Merging kselftest-fixes/fixes (f5db310d77ef selftests/vm: fix link error for transhuge-stress test)
Merging drm-intel-fixes/for-linux-next-fixes (226e5ae9e5f9 drm/i915: Fix mutex->owner inspection race under DEBUG_MUTEXES)
Merging asm-generic/master (643165c8bbc8 Merge tag 'uaccess_for_upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost into asm-generic)
Merging arc/for-next (5840adceb962 arc: Remove unused prepare_to_copy())
Merging arm/for-next (6aa99fe6afee Merge branches 'fixes', 'l2c' (early part), 'misc' and 'sa1100' into for-next)
Merging arm-perf/for-next/perf (97bf6af1f928 Linux 3.19-rc1)
Merging arm-soc/for-next (a0c4660c8d3f arm-soc: document merges)
Merging bcm2835/for-next (b2776bf7149b Linux 3.18)
Merging berlin/berlin/for-next (8553bf8fd181 Merge branch 'berlin/dt' into berlin/for-next)
Merging cortex-m/for-next (e799b6f37e6c ARM: zImage: add support for ARMv7-M)
Merging ep93xx/ep93xx-for-next (bfb0709fd17b Merge branch 'ep93xx-fixes' into ep93xx-for-next)
Merging imx-mxs/for-next (bc8127e027df Merge branch 'imx/defconfig' into for-next)
CONFLICT (content): Merge conflict in arch/arm/boot/dts/Makefile
Merging ixp4xx/next (19f949f52599 Linux 3.8)
Merging keystone/next (b17275a4a6cc Merge branch 'for_3.19/soc' into next)
Merging msm/for-next (81cf1e061d00 ARM: msm: Rename msm devicetrees to have standard 'qcom' prefix)
Merging mvebu/for-next (411e0175c248 Merge branch 'mvebu/defconfig' into mvebu/for-next)
Merging omap/for-next (3ae3dc45ee7d Merge branch 'omap-for-v3.20/defconfig' into for-next)
CONFLICT (content): Merge conflict in arch/arm/boot/dts/Makefile
Merging omap-pending/for-next (99d076b74745 MAINTAINERS: add maintainer for OMAP hwmod data)
Merging renesas/next (c20c776cff55 Merge branch 'heads/sh73a0-multiplatform-for-v3.20' into next)
CONFLICT (content): Merge conflict in arch/arm/boot/dts/Makefile
Merging samsung/for-next (9663ad71912b Merge branch 'v3.20-next/update-samsung' into for-next)
Merging sunxi/sunxi/for-next (7dfd651a6a78 Merge branches 'sunxi/dt-for-3.20' and 'sunxi/clocks-for-3.20' into sunxi/for-next)
Merging tegra/for-next (4fd40ac71480 Merge branch for-3.20/soc into for-next)
Merging arm64/for-next/core (6083fe74b7bf arm64: respect mem= for EFI)
Merging blackfin/for-linus (275f5a8573e7 blackfin: defconfigs: cleanup unused CONFIG_MTD_CHAR, add MTD_SPI_NOR for BF537-STAMP)
Merging c6x/for-linux-next (ae72758f1dd9 c6x: fix build failure caused by cache.h)
Merging cris/for-next (79a8480adf0e CRIS: Fix missing NR_CPUS in menuconfig)
Merging hexagon/linux-next (8914d7e85780 Hexagon: fix signal delivery for debug traps)
Merging ia64/next (a6b8978c54b7 pstore: Fix sprintf format specifier in pstore_dump())
Merging m68k/for-next (87511d09206d m68k/atari: Remove obsolete IRQ_TYPE_*)
Merging m68knommu/for-next (8d84d4aaf311 arch: m68k: 68360: config: Remove unused function)
Merging metag/for-next (f93125ae17d1 metag: cachepart: Fix failure check)
Merging microblaze/next (51cae8bfe7dd microblaze: Remove generated *.dtb files from dts)
Merging mips/mips-for-linux-next (86f9f1e287be Merge branch '3.19-fixes' into mips-for-linux-next)
Merging nios2/nios2-next (1b0f44923e18 nios2: Use preempt_schedule_irq)
Merging openrisc/for-upstream (548dafe880ad openrisc: Use get_signal() signal_setup_done())
Merging parisc/for-next (6c700d71f7fa [PARISC] hpux: Remove obsolete regs parameter from do_execve() in hpux_execve())
Merging parisc-hd/for-next (b2776bf7149b Linux 3.18)
Merging powerpc/next (d557b09800da powerpc/mm/thp: Use tlbiel if possible)
Merging powerpc-mpe/next (9a4fc4eaf111 powerpc/kvm: Create proper names for the kvm_host_state PMU fields)
Merging fsl/next (76f3e2929bb6 powerpc/config: Enable memory driver)
Merging mpc5xxx/next (9e813308a5c1 powerpc/thp: Add tracepoints to track hugepage invalidate)
Merging s390/features (725908110a1f s390: add SMT support)
Merging sparc-next/master (9f935675d41a Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input)
Merging tile/master (b9f705758a4f tile: enable sparse checks for get/put_user)
Merging uml/next (989e59fa41c5 um: Include generic barrier.h)
CONFLICT (content): Merge conflict in arch/um/include/asm/Kbuild
Merging unicore32/unicore32 (d670878e2c9a unicore32: Remove ARCH_HAS_CPUFREQ config option)
Merging xtensa/for_next (1f2fdbd0078c xtensa: disable link optimization)
Merging btrfs/next (1edb647bb954 Btrfs: remove non-sense btrfs_error_discard_extent() function)
Merging ceph/master (388cfdc9bc19 libceph: require cephx message signature by default)
CONFLICT (content): Merge conflict in net/ceph/auth_x.c
CONFLICT (content): Merge conflict in fs/ceph/super.h
CONFLICT (content): Merge conflict in fs/ceph/super.c
CONFLICT (content): Merge conflict in fs/ceph/snap.c
Merging cifs/for-next (f2cbcd8f66cc Complete oplock break jobs before closing file handle)
Merging configfs/linux-next (b930c26416c4 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs)
Merging ecryptfs/next (e7a823be2adc Merge tag 'linux-kselftest-3.19-rc-5' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest)
Merging ext3/for_next (c38fda3fe816 jbd: drop jbd_ENOSYS debug)
Merging ext4/dev (4033d19d28ab ext4: add optimization for the lazytime mount option)
Merging f2fs/dev (3857cef8022d f2fs: update memory footprint information)
Merging fscache/fscache (1a8ed18fb7db cachefiles: remove two unused pagevecs.)
CONFLICT (content): Merge conflict in fs/fscache/object.c
Merging fuse/for-next (9759bd518994 fuse: add memory barrier to INIT)
Merging gfs2/master (3566c9647678 GFS2: fix sprintf format specifier)
Merging jfs/jfs-next (e1f1fe798d2f jfs: get rid of homegrown endianness helpers)
Merging logfs/master (339466142b3f Fix the call to BUG() caused by no free segment found)
Merging nfs/linux-next (ec6f34e5b552 Linux 3.19-rc5)
Merging nfsd/nfsd-next (0ec016e3e02f nfsd4: tweak rd_dircount accounting)
Merging omfs/for-next (976d167615b6 Linux 3.1-rc9)
Merging overlayfs/overlayfs-next (4330397e4e8a ovl: discard independent cursor in readdir())
Merging squashfs/master (62421645bb70 Squashfs: Add LZ4 compression configuration option)
Merging v9fs/for-next (f15844e0777f 9P: fix return value in v9fs_fid_xattr_set)
Merging ubifs/linux-next (f38aed975c0c UBI: Fix invalid vfree())
Merging xfs/for-next (ad7df6e858ef Merge branch 'xfs-sb-logging-rework' into for-next)
Merging file-locks/linux-next (3d8e560de4a0 locks: consolidate NULL i_flctx checks in locks_remove_file)
Merging vfs/for-next (4b2cff029eb2 fix deadlock in cifs_ioctl_clone())
Merging pci/next (75f30c3d9949 Merge branches 'pci/host-keystone', 'pci/host-layerscape', 'pci/host-rcar' and 'pci/host-tegra' into next)
Merging hid/for-next (dd2566230295 Merge branch 'for-3.20/logitech' into for-next)
Merging i2c/i2c/for-next (789d10deed25 Merge branch 'i2c/for-current' into i2c/for-next)
Merging jdelvare-hwmon/master (ae530d4403e9 hwmon: (i5500_temp) Convert to use ATTRIBUTE_GROUPS macro)
Merging hwmon-staging/hwmon-next (9dc9845ac3f8 hwmon: (ina2xx) Add ina231 compatible string)
Merging v4l-dvb/master (2ea3258b238c Merge branch 'patchwork' into to_next)
Merging kbuild/for-next (5ea04a1a0860 Merge branch 'kbuild/kbuild' into kbuild/for-next)
Merging kconfig/for-next (95edca5c523c localmodconfig: Add config depends by default settings)
Merging libata/for-next (3c58572c3a82 Merge branch 'for-3.19-fixes' into for-next)
Merging pm/linux-next (ec6f34e5b552 Linux 3.19-rc5)
Merging idle/next (f7c0e22f2d14 Merge branch 'turbostat' into release)
CONFLICT (content): Merge conflict in arch/x86/include/uapi/asm/msr-index.h
Merging apm/for-next (53675abbd1e5 x86, apm: Remove unused variable)
Merging cpupowerutils/master (f16603386b38 cpupower tools: add install target to the debug tools' makefiles)
Merging thermal/next (f67744c4d91e Merge branch 'thermal-soc' of .git into next)
Merging thermal-soc/next (1813d8087469 thermal: rcar: Spelling/grammar: s/drier use .../driver uses ...s/)
Merging ieee1394/for-next (d737d7da8e7e firewire: sbp2: replace card lock by target lock)
Merging dlm/next (2ab4bd8ea3a6 dlm: adopt orphan locks)
Merging swiotlb/linux-next (8e0629c1d4ce swiotlb: don't assume PA 0 is invalid)
Merging slave-dma/next (8686abe3553b Merge branch 'topic/rcar' into next)
Merging net-next/master (0c49087462e8 Merge tag 'mac80211-next-for-davem-2015-01-19' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next)
Merging ipsec-next/master (78890ed75494 csiostor:fix sparse warnings)
Merging wireless-drivers-next/master (d0c102f70aec b43legacy: Remove unused b43legacy_radio_set_tx_iq())
CONFLICT (content): Merge conflict in drivers/net/wireless/iwlwifi/mvm/scan.c
CONFLICT (content): Merge conflict in drivers/net/wireless/ath/wil6210/cfg80211.c
Merging bluetooth/master (80cf71deb2e1 Bluetooth: btusb: Add Broadcom patchram support for ASUSTek devices)
Merging infiniband/for-next (a7cfef21e3d0 Merge branches 'core', 'cxgb4', 'ipoib', 'iser', 'mlx4', 'ocrdma', 'odp' and 'srp' into for-next)
Merging mtd/master (97bf6af1f928 Linux 3.19-rc1)
Merging l2-mtd/master (69a559e75512 nandsim: remove unused STATE_DATAOUT_STATUS_M and OPT_SMARTMEDIA)
Merging crypto/master (b2c3f7cdad76 crypto: qat - don't need qat_auth_state struct)
Merging drm/drm-next (426959c94553 drm: fix mismerge in drm_crtc.c)
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/intel_runtime_pm.c
Merging drm-panel/drm/panel/for-next (2d0853a33fda drm/panel: sharp: lq101r1sx01: Remove unneeded include)
Merging drm-intel/for-linux-next (441406c2a74c drm/i915: New offset for reading frequencies on CHV.)
Merging drm-tegra/drm/tegra/for-next (7e0180e3570c drm/tegra: gem: Check before freeing CMA memory)
Merging drm-misc/topic/core-stuff (2535ef6ae303 next: drm/atomic: Use copy_from_user to copy 64 bit data from user space)
Merging sound/for-next (2a52b6eef738 ALSA: dummy: use setup_timer and mod_timer)
Merging sound-asoc/for-next (f3ec1b8506f9 Merge remote-tracking branches 'asoc/topic/wm8804', 'asoc/topic/wm8960', 'asoc/topic/wm8988' and 'asoc/topic/xtfpga' into asoc-next)
Merging modules/modules-next (97bf6af1f928 Linux 3.19-rc1)
Merging virtio/virtio-next (97bf6af1f928 Linux 3.19-rc1)
Merging input/next (7b2171d7c43e Input: cyapa - add acpi device id support)
Merging input-mt/for-next (5e01dc7b26d9 Linux 3.12)
Merging block/for-next (d7b582d95118 Merge branch 'for-3.20/drivers' into for-next)
Merging device-mapper/for-next (6a55c9861326 block: keep established cmd_flags when cloning into a blk-mq request)
Merging embedded/master (4744b43431e8 embedded: fix vc_translate operator precedence)
Merging firmware/master (6e03a201bbe8 firmware: speed up request_firmware(), v3)
Merging pcmcia/master (80af9e6d7ae6 pcmcia at91_cf: fix raw gpio number usage)
Merging mmc/mmc-next (11bc9381b277 mmc: sdhci-s3c: use mmc_of_parse and remove the card_tasklet)
Merging mmc-uh/next (09062c888b89 mmc: dw_mmc: Power on vqmmc in MMC_POWER_ON, not MMC_POWER_UP)
CONFLICT (content): Merge conflict in drivers/mmc/host/sunxi-mmc.c
Merging kgdb/kgdb-next (c7d9ebf81c45 kdb: Fix off by one error in kdb_cpu())
Merging uclinux/for-next (6dbe51c251a3 Linux 3.9-rc1)
Merging md/for-next (f851b60db0fd md: Check MD_RECOVERY_RUNNING as well as ->sync_thread.)
Merging mfd/for-mfd-next (a3b63979f8a3 mfd: rtsx: Add func to split u32 into register)
Merging backlight/for-backlight-next (3d6969a641d0 MAINTAINERS: Remove my name from Backlight subsystem)
Merging battery/master (b3040ccbad76 power: max17042: Constify struct regmap_config)
Merging fbdev/for-next (718b90ac4c21 video: xilinxfb: Simplify error path)
Merging viafb/viafb-next (838ac785d521 viafb: avoid refresh and mode lookup in set_par)
Merging omap_dss2/for-next (7efc436cd45c Merge branches '3.20/fbdev' and '3.20/omapdss' into for-next)
Merging regulator/for-next (4311c370311a Merge remote-tracking branches 'regulator/topic/pfuze100', 'regulator/topic/rk808', 'regulator/topic/rt5033' and 'regulator/topic/tps65023' into regulator-next)
Merging security/next (bb31f607a090 Merge tag 'keys-next-fixes-20150114' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs into next)
Merging integrity/next (63a0eb7891bd ima: Fix build failure on powerpc when TCG_IBMVTPM dependencies are not met)
Merging selinux/next (0307dadc924d selinux: add security in-core xattr support for pstore and debugfs)
Merging lblnet/next (d8ec26d7f828 Linux 3.13)
Merging watchdog/master (e0c3e00f4045 watchdog: drop owner assignment from platform_drivers)
Merging iommu/next (9bbb0ea981e9 Merge branches 'arm/renesas' and 'core' into next)
Merging dwmw2-iommu/master (1860e379875d Linux 3.15)
Merging vfio/next (5e9f36c59a48 drivers/vfio: allow type-1 IOMMU instantiation on top of an ARM SMMU)
Merging osd/linux-next (1fa3a002b254 Boaz Harrosh - fix email in Documentation)
Merging jc_docs/docs-next (174236285cf8 Merge branch 'doc/sp-update' into docs-next)
Merging trivial/for-next (231821d4c3fa dynamic_debug: fix comment)
Merging audit/next (49463ee9d929 audit: replace getname()/putname() hacks with reference counters)
CONFLICT (content): Merge conflict in kernel/auditsc.c
CONFLICT (content): Merge conflict in include/linux/audit.h
CONFLICT (content): Merge conflict in fs/exec.c
Merging fsnotify/for-next (1ca39ab9d21a inotify: automatically restart syscalls)
Merging devicetree/devicetree/next (c46ca3c8310b of: Delete unnecessary check before calling "of_node_put()")
Merging dt-rh/for-next (e94fbe607f8c dt-bindings: use isil prefix for Intersil in vendor-prefixes.txt)
Merging mailbox/mailbox-for-next (9f3e3cacb2ff dt: mailbox: add generic bindings)
Merging spi/for-next (2cdb41c84a4e Merge remote-tracking branches 'spi/topic/sirf' and 'spi/topic/st-ssc' into spi-next)
Merging tip/auto-latest (4692b98fe5dc Merge branch 'x86/ras')
Merging clockevents/clockevents/next (81428bbe1d8a clocksource: marco: Rename marco to atlas7)
Merging edac/linux_next (fec53af531dd sb_edac: Fix typo computing number of banks)
Merging edac-amd/for-next (a4972b1b9a04 edac: i5100_edac: Remove unused i5100_recmema_dm_buf_id)
Merging irqchip/irqchip/for-next (91d117921216 irqchip: atmel-aic-common: Prevent clobbering of priority when changing IRQ type)
Merging tiny/tiny/next (f114040e3ea6 Linux 3.18-rc1)
Merging ftrace/for-next (d716ff71dd12 tracing: Remove taking of trace_types_lock in pipe files)
Merging rcu/rcu/next (0cf8c85d7791 rcu_tree: Avoid touching rnp->completed when a new GP is started)
Merging uprobes/for-next (0326f5a94dde uprobes/core: Handle breakpoint and singlestep exceptions)
Merging kvm/linux-next (bab5bb398273 kvm: x86: Remove kvm_make_request from lapic.c)
Merging kvm-arm/next (bab5bb398273 kvm: x86: Remove kvm_make_request from lapic.c)
Merging kvm-ppc/kvm-ppc-next (2c4aa55a6af0 Merge tag 'signed-kvm-ppc-next' of git://github.com/agraf/linux-2.6 into HEAD)
Merging oprofile/for-next (6ce4eac1f600 Linux 3.13-rc1)
Merging fw-nohz/nohz/next (74876a98a87a printk: Wake up klogd using irq_work)
Merging xen-tip/linux-next (2e917175e1ef xen: Speed up set_phys_to_machine() by using read-only mappings)
Merging percpu/for-next (4c907baf36d8 percpu_ref: implement percpu_ref_is_dying())
Merging workqueues/for-next (b5b3ab523e31 Merge branch 'for-3.19-fixes' into for-next)
Merging drivers-x86/for-next (200db647112d platform/x86/acerhdf: Still depends on THERMAL)
Merging chrome-platform/for-next (5502486a2077 platform/chrome: chromeos_laptop - Add a limit for deferred retries)
Merging sysctl/master (4e474a00d7ff sysctl: protect poll() in entries that may go away)
Merging regmap/for-next (270ded427d7b Merge remote-tracking branch 'regmap/topic/core' into regmap-next)
Merging hsi/for-next (67e9a2ce6e07 hsi: nokia-modem: fix uninitialized device pointer)
Merging leds/for-next (452bc149947b leds: leds-mc13783: Use of_get_child_by_name() instead of refcount hack)
Merging ipmi/for-next (1421c935df15 ipmi: Fix compile warning with tv_usec)
Merging driver-core/driver-core-next (ec6f34e5b552 Linux 3.19-rc5)
Merging tty/tty-next (61b6b7fbda1b Merge 3.19-rc5 into tty-next)
Merging usb/usb-next (0e08365f0b48 Merge 3.19-rc5 into usb-next)
Merging usb-gadget/next (d1fc4440d761 Merge tag 'v3.19-rc5' into next)
Merging usb-serial/usb-next (3e264ffc831e USB: mos7840: remove unused code)
Merging staging/staging-next (484c60e206b0 Merge 3.19-rc5 into staging-next)
Merging char-misc/char-misc-next (3542f6b1836d Merge 3.19-rc5 into char-misc-next)
Merging cgroup/for-next (f3ba53802eff cgroup: add dummy css_put() for !CONFIG_CGROUPS)
Merging scsi/for-next (cbd5bdf0a2fd Merge branch 'misc' into for-next)
Merging target-updates/for-next (97bf6af1f928 Linux 3.19-rc1)
Merging target-merge/for-next-merge (b28a960c42fc Linux 3.14-rc2)
Merging writeback/writeback-for-next (f9b0e058cbd0 writeback: Fix data corruption on NFS)
Merging hwspinlock/linux-next (8b37fcfc9b34 hwspinlock: add MAINTAINERS entries)
Merging pinctrl/for-next (5b46452f5ba2 Merge branch 'devel' into for-next)
Merging vhost/linux-next (ecc043c31dbd virtio_pci: add module param to force legacy mode)
Merging remoteproc/for-next (9a3c4145af32 Linux 3.16-rc6)
Merging rpmsg/for-next (b1b9891441fa rpmsg: use less buffers when vrings are small)
Merging gpio/for-next (b991e9abb39f Merge branch 'devel' into for-next)
Merging dma-mapping/dma-mapping-next (dda02fd6278d mm, cma: make parameters order consistent in func declaration and definition)
Merging pwm/for-next (6a6bdf52a3c4 pwm: sunxi: document OF bindings)
Merging dma-buf/for-next (101e31050bf1 dma-buf/fence: Fix one more kerneldoc warning)
Merging userns/for-next (db86da7cb76f userns: Unbreak the unprivileged remount tests)
Merging ktest/for-next (17150fef4ab1 ktest: Add back "tail -1" to kernelrelease make)
Merging signal/for-next (20b4fb485227 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs)
Merging clk/clk-next (d6643da05e39 clk: Skip fetching index for single parent clocks)
Merging random/dev (7185ad2672a7 crypto: memzero_explicit - make sure to clear out sensitive data)
Merging lzo-update/lzo-update (42b775abafaf lib/lzo: huge LZO decompression speedup on ARM by using unaligned access)
Merging aio/master (5f785de58873 aio: Skip timer for io_getevents if timeout=0)
Merging llvmlinux/for-next (25d4aee23af2 arm: LLVMLinux: Use global stack register variable for percpu)
Merging documentation/for-next (0415447aa3b4 Documentation: fix broken v4l-utils URL)
Merging kselftest/next (97bf6af1f928 Linux 3.19-rc1)
Merging y2038/y2038 (45446a99cef6 staging: media: lirc: Replace timeval with ktime_t in lirc_parallel.c)
CONFLICT (content): Merge conflict in drivers/staging/media/lirc/lirc_sasem.c
CONFLICT (content): Merge conflict in drivers/staging/ft1000/ft1000-usb/ft1000_debug.c
CONFLICT (content): Merge conflict in drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c
Merging luto-misc/next (d4812e169de4 x86, mce: Get rid of TIF_MCE_NOTIFY and associated mce tricks)
CONFLICT (content): Merge conflict in arch/x86/kernel/cpu/mcheck/mce.c
Merging access_once/linux-next (c5b19946eb76 kernel: Fix sparse warning for ACCESS_ONCE)
Merging livepatching/for-next (99590ba565a2 livepatch: fix deferred module patching order)
Merging akpm-current/current (16cfffc93532 ipc,sem: use current->state helpers)
Applying: mm: drop vm_ops->remap_pages and generic_file_remap_pages() stub fix
Applying: mm: account pmd page tables to the process fix
$ git checkout -b akpm remotes/origin/akpm/master
Applying: drivers/gpio/gpio-zevio.c: fix build
Applying: rtc: isl12022: deprecate use of isl in compatible string for isil
Applying: rtc: isl12057: deprecate use of isl in compatible string for isil
Applying: staging: iio: isl29028: deprecate use of isl in compatible string for isil
Applying: arm: dts: zynq: update isl9305 compatible string to use isil vendor prefix
Applying: MAINTAINERS: add git url entry for UIO
Applying: mm: fix XIP fault vs truncate race
Applying: mm-fix-xip-fault-vs-truncate-race-fix
Applying: mm-fix-xip-fault-vs-truncate-race-fix-fix
Applying: mm: allow page fault handlers to perform the COW
Applying: mm-allow-page-fault-handlers-to-perform-the-cow-fix
Applying: mm-allow-page-fault-handlers-to-perform-the-cow-fix-fix-3
Applying: mm-allow-page-fault-handlers-to-perform-the-cow-fix-fix
Applying: vfs,ext2: introduce IS_DAX(inode)
Applying: dax,ext2: replace XIP read and write with DAX I/O
Applying: dax,ext2: replace ext2_clear_xip_target with dax_clear_blocks
Applying: dax,ext2: replace the XIP page fault handler with the DAX page fault handler
Applying: daxext2-replace-the-xip-page-fault-handler-with-the-dax-page-fault-handler-fix
Applying: daxext2-replace-the-xip-page-fault-handler-with-the-dax-page-fault-handler-fix-2
Applying: daxext2-replace-the-xip-page-fault-handler-with-the-dax-page-fault-handler-fix-3
Applying: dax,ext2: replace xip_truncate_page with dax_truncate_page
Applying: dax: replace XIP documentation with DAX documentation
Applying: vfs: remove get_xip_mem
Applying: ext2: remove ext2_xip_verify_sb()
Applying: ext2: remove ext2_use_xip
Applying: ext2: remove xip.c and xip.h
Applying: vfs,ext2: remove CONFIG_EXT2_FS_XIP and rename CONFIG_FS_XIP to CONFIG_FS_DAX
Applying: ext2: remove ext2_aops_xip
Applying: ext2: get rid of most mentions of XIP in ext2
Applying: dax: add dax_zero_page_range
Applying: dax-add-dax_zero_page_range-fix
Applying: ext4: add DAX functionality
Applying: ext4-add-dax-functionality-fix
Applying: brd: rename XIP to DAX
Applying: drivers/w1/w1_int.c: call put_device if device_register fails
Applying: mm: add strictlimit knob
Merging akpm/master (abac60c65688 mm: add strictlimit knob)

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20
  2015-01-20  7:53 linux-next: Tree for Jan 20 Stephen Rothwell
@ 2015-01-20 14:16 ` Guenter Roeck
  2015-01-20 16:56 ` linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs Sabrina Dubroca
  2015-01-20 20:26 ` linux-next: Tree for Jan 20 Guenter Roeck
  2 siblings, 0 replies; 62+ messages in thread
From: Guenter Roeck @ 2015-01-20 14:16 UTC (permalink / raw)
  To: Stephen Rothwell; +Cc: linux-next, linux-kernel

On Tue, Jan 20, 2015 at 06:53:08PM +1100, Stephen Rothwell wrote:
> Hi all,
> 
> Changes since 20150119:
> 
> The omap tree gained a conflict against the arm-soc tree.
> 
> The net-next tree lost its build failure.
> 
> The mmc-uh tree gained a conflict against the sunxi tree.
> 
> The audit tree gained conflicts against Linus' tree.
> 
> Non-merge commits (relative to Linus' tree): 3975
>  3828 files changed, 141642 insertions(+), 68217 deletions(-)
> 
What difference a few days can make ... from zero failures to:

Build results:
	total: 133 pass: 123 fail: 10
Failed builds:
	i386:allyesconfig
	mips:allmodconfig
	powerpc:cell_defconfig (binutils 2.23)
	powerpc:mpc85xx_defconfig
	powerpc:mpc85xx_smp_defconfig
	powerpc:cell_defconfig (binutils 2.24)
	powerpc:mpc85xx_defconfig
	powerpc:mpc85xx_smp_defconfig
	sparc64:allmodconfig
	x86_64:allyesconfig

Qemu tests:
	total: 30 pass: 19 fail: 11
Failed tests:
	microblaze:microblaze_defconfig
	microblaze:microblazeel_defconfig
	mips:mips_malta_smp_defconfig
	mips64:mips_malta64_smp_defconfig
	powerpc:ppc_book3s_smp_defconfig
	powerpc:ppc64_book3s_smp_defconfig
	sh:sh_defconfig
	sparc32:sparc_defconfig
	sparc32:sparc_smp_defconfig
	x86:x86_pc_defconfig
	x86_64:x86_64_pc_defconfig

Most of it mm related problems inherited from mmotm, but there are
a few others (sparc64, x86_64, and i386 don't fail to build on mmotm,
and the microblaze qemu test fails differently, for example).

Guenter

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-20  7:53 linux-next: Tree for Jan 20 Stephen Rothwell
  2015-01-20 14:16 ` Guenter Roeck
@ 2015-01-20 16:56 ` Sabrina Dubroca
  2015-01-20 17:39   ` Paul Moore
  2015-01-20 20:26 ` linux-next: Tree for Jan 20 Guenter Roeck
  2 siblings, 1 reply; 62+ messages in thread
From: Sabrina Dubroca @ 2015-01-20 16:56 UTC (permalink / raw)
  To: Paul Moore, Stephen Rothwell
  Cc: linux-next, linux-kernel, linux-fsdevel, linux-audit, viro,
	Richard Guy Briggs

Hello,

Today's linux-next doesn't boot on my qemu VM:

[    1.248357] scsi 0:0:0:0: Direct-Access     ATA      QEMU HARDDISK    0    PQ: 0 ANSI: 5
[    1.255899] sd 0:0:0:0: [sda] 8388608 512-byte logical blocks: (4.29 GB/4.00 GiB)
[    1.258333] sd 0:0:0:0: [sda] Write Protect is off
[    1.259475] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    1.268417] scsi 1:0:0:0: CD-ROM            QEMU     QEMU DVD-ROM     2.2. PQ: 0 ANSI: 5
[    1.271673]  sda: sda1
[    1.281061] sd 0:0:0:0: [sda] Attached SCSI disk
[    1.282320] VFS: Cannot open root device "sda1" or unknown-block(8,1): error -2
[    1.283484] Please append a correct "root=" boot option; here are the available partitions:
[    1.284748] 0100            4096 ram0  (driver?)
[    1.285479] 0101            4096 ram1  (driver?)
[    1.286218] 0102            4096 ram2  (driver?)
[    1.286992] 0103            4096 ram3  (driver?)
[    1.287741] 0104            4096 ram4  (driver?)
[    1.288640] 0105            4096 ram5  (driver?)
[    1.289394] 0106            4096 ram6  (driver?)
[    1.290195] 0107            4096 ram7  (driver?)
[    1.290962] 0108            4096 ram8  (driver?)
[    1.291695] 0109            4096 ram9  (driver?)
[    1.292404] 010a            4096 ram10  (driver?)
[    1.293114] 010b            4096 ram11  (driver?)
[    1.293922] 010c            4096 ram12  (driver?)
[    1.294643] 010d            4096 ram13  (driver?)
[    1.295401] 010e            4096 ram14  (driver?)
[    1.296167] 010f            4096 ram15  (driver?)
[    1.296975] 0800         4194304 sda  driver: sd
[    1.297697]   0801         4194272 sda1 00000000-01
[    1.298418] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(8,1)
[    1.300034] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.19.0-rc5-next-20150120-dirty #410
[    1.300039] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.7.5-20140617_173321-var-lib-archbuild-testing-x86_64-tobias 04/01/2014
[    1.300039]  ffffea0000001340 ffff88001f673dd8 ffffffff817e1197 000000000000004e
[    1.300039]  ffffffff81a6f2c8 ffff88001f673e58 ffffffff817dfd43 ffffffff81c9a860
[    1.300039]  ffff880000000010 ffff88001f673e68 ffff88001f673e08 ffff000031616473
[    1.300039] Call Trace:
[    1.300039]  [<ffffffff817e1197>] dump_stack+0x4f/0x7b
[    1.300039]  [<ffffffff817dfd43>] panic+0xd2/0x217
[    1.300039]  [<ffffffff81efd58b>] mount_block_root+0x200/0x28d
[    1.300039]  [<ffffffff81efd78b>] mount_root+0x54/0x58
[    1.300039]  [<ffffffff81efd8f7>] prepare_namespace+0x168/0x1a1
[    1.300039]  [<ffffffff81efd2b1>] kernel_init_freeable+0x29d/0x2ad
[    1.300039]  [<ffffffff817d7440>] ? rest_init+0x140/0x140
[    1.300039]  [<ffffffff817d744e>] kernel_init+0xe/0xf0
[    1.300039]  [<ffffffff817eb87c>] ret_from_fork+0x7c/0xb0
[    1.300039]  [<ffffffff817d7440>] ? rest_init+0x140/0x140
[    1.300039] Kernel Offset: 0x0 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffff9fffffff)
[    1.300039] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(8,1)


I bisected it down to:

5dc5218840e1  fs: create proper filename objects using getname_kernel()

I reverted then reapplied each part of that patch.  It works if I
leave out the hunk for do_path_lookup:

diff --git a/fs/namei.c b/fs/namei.c
index eeb3b83661f8..c3d21b79090e 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -2001,9 +2001,15 @@ static int filename_lookup(int dfd, struct filename *name,
 static int do_path_lookup(int dfd, const char *name,
 				unsigned int flags, struct nameidata *nd)
 {
-	struct filename filename = { .name = name };
+	int retval;
+	struct filename *filename;
 
-	return filename_lookup(dfd, &filename, flags, nd);
+	filename = getname_kernel(name);
+	if (unlikely(IS_ERR(filename)))
+		return PTR_ERR(filename);
+	retval = filename_lookup(dfd, filename, flags, nd);
+	putname(filename);
+	return retval;
 }
 
 /* does lookup, returns the object with parent locked */



I don't know what other info you may need.
Full dmesg for the failed boot included below.

Thanks.


[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.19.0-rc5-next-20150120-dirty (zappy@kria) (gcc version 4.9.2 20141224 (prerelease) (GCC) ) #410 SMP PREEMPT Tue Jan 20 17:27:49 CET 2015
[    0.000000] Command line: root=/dev/sda1 console=ttyS0
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000001ffdffff] usable
[    0.000000] BIOS-e820: [mem 0x000000001ffe0000-0x000000001fffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000feffc000-0x00000000feffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fffc0000-0x00000000ffffffff] reserved
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] SMBIOS 2.8 present.
[    0.000000] Hypervisor detected: KVM
[    0.000000] AGP: No AGP bridge found
[    0.000000] e820: last_pfn = 0x1ffe0 max_arch_pfn = 0x400000000
[    0.000000] PAT configuration [0-7]: WB  WC  UC- UC  WB  WC  UC- UC  
[    0.000000] found SMP MP-table at [mem 0x000f1010-0x000f101f] mapped at [ffff8800000f1010]
[    0.000000] Scanning 1 areas for low memory corruption
[    0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff]
[    0.000000] init_memory_mapping: [mem 0x1fc00000-0x1fdfffff]
[    0.000000] init_memory_mapping: [mem 0x00100000-0x1fbfffff]
[    0.000000] init_memory_mapping: [mem 0x1fe00000-0x1ffdffff]
[    0.000000] ACPI: Early table checksum verification disabled
[    0.000000] ACPI: RSDP 0x00000000000F0DD0 000014 (v00 BOCHS )
[    0.000000] ACPI: RSDT 0x000000001FFE18BC 000034 (v01 BOCHS  BXPCRSDT 00000001 BXPC 00000001)
[    0.000000] ACPI: FACP 0x000000001FFE0E48 000074 (v01 BOCHS  BXPCFACP 00000001 BXPC 00000001)
[    0.000000] ACPI: DSDT 0x000000001FFE0040 000E08 (v01 BOCHS  BXPCDSDT 00000001 BXPC 00000001)
[    0.000000] ACPI: FACS 0x000000001FFE0000 000040
[    0.000000] ACPI: SSDT 0x000000001FFE0EBC 000948 (v01 BOCHS  BXPCSSDT 00000001 BXPC 00000001)
[    0.000000] ACPI: APIC 0x000000001FFE1804 000080 (v01 BOCHS  BXPCAPIC 00000001 BXPC 00000001)
[    0.000000] ACPI: HPET 0x000000001FFE1884 000038 (v01 BOCHS  BXPCHPET 00000001 BXPC 00000001)
[    0.000000] kvm-clock: Using msrs 4b564d01 and 4b564d00
[    0.000000] kvm-clock: cpu 0, msr 0:1ffdf001, primary cpu clock
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000001000-0x0000000000ffffff]
[    0.000000]   DMA32    [mem 0x0000000001000000-0x000000001ffdffff]
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000001000-0x000000000009efff]
[    0.000000]   node   0: [mem 0x0000000000100000-0x000000001ffdffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000001000-0x000000001ffdffff]
[    0.000000] ACPI: PM-Timer IO Port: 0x608
[    0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0xff] dfl dfl lint[0x1])
[    0.000000] ACPI: IOAPIC (id[0x00] address[0xfec00000] gsi_base[0])
[    0.000000] IOAPIC[0]: apic_id 0, version 17, address 0xfec00000, GSI 0-23
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 5 global_irq 5 high level)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 10 global_irq 10 high level)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 11 global_irq 11 high level)
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.000000] ACPI: HPET id: 0x8086a201 base: 0xfed00000
[    0.000000] smpboot: Allowing 2 CPUs, 0 hotplug CPUs
[    0.000000] PM: Registered nosave memory: [mem 0x00000000-0x00000fff]
[    0.000000] PM: Registered nosave memory: [mem 0x0009f000-0x0009ffff]
[    0.000000] PM: Registered nosave memory: [mem 0x000a0000-0x000effff]
[    0.000000] PM: Registered nosave memory: [mem 0x000f0000-0x000fffff]
[    0.000000] e820: [mem 0x20000000-0xfeffbfff] available for PCI devices
[    0.000000] Booting paravirtualized kernel on KVM
[    0.000000] setup_percpu: NR_CPUS:16 nr_cpumask_bits:16 nr_cpu_ids:2 nr_node_ids:1
[    0.000000] PERCPU: Embedded 480 pages/cpu @ffff88001f800000 s1927448 r8192 d30440 u2097152
[    0.000000] KVM setup async PF for cpu 0
[    0.000000] kvm-stealtime: cpu 0, msr 1f80d480
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 128873
[    0.000000] Kernel command line: root=/dev/sda1 console=ttyS0
[    0.000000] PID hash table entries: 2048 (order: 2, 16384 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 7, 524288 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 6, 262144 bytes)
[    0.000000] xsave: enabled xstate_bv 0x7, cntxt size 0x340 using standard form
[    0.000000] AGP: Checking aperture...
[    0.000000] AGP: No AGP bridge found
[    0.000000] Memory: 474712K/523768K available (8132K kernel code, 1165K rwdata, 3512K rodata, 3448K init, 17440K bss, 49056K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000] 	RCU dyntick-idle grace-period acceleration is enabled.
[    0.000000] 	RCU lockdep checking is enabled.
[    0.000000] 	RCU restricting CPUs from NR_CPUS=16 to nr_cpu_ids=2.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[    0.000000] Running RCU self tests
[    0.000000] NR_IRQS:4352 nr_irqs:440 16
[    0.000000] Console: colour VGA+ 80x25
[    0.000000] console [ttyS0] enabled
[    0.000000] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
[    0.000000] ... MAX_LOCKDEP_SUBCLASSES:  8
[    0.000000] ... MAX_LOCK_DEPTH:          48
[    0.000000] ... MAX_LOCKDEP_KEYS:        8191
[    0.000000] ... CLASSHASH_SIZE:          4096
[    0.000000] ... MAX_LOCKDEP_ENTRIES:     32768
[    0.000000] ... MAX_LOCKDEP_CHAINS:      65536
[    0.000000] ... CHAINHASH_SIZE:          32768
[    0.000000]  memory used by lock dependency info: 8671 kB
[    0.000000]  per task-struct memory footprint: 2688 bytes
[    0.000000] ------------------------
[    0.000000] | Locking API testsuite:
[    0.000000] ----------------------------------------------------------------------------
[    0.000000]                                  | spin |wlock |rlock |mutex | wsem | rsem |
[    0.000000]   --------------------------------------------------------------------------
[    0.000000]                      A-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
[    0.000000]                  A-B-B-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
[    0.000000]              A-B-B-C-C-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
[    0.000000]              A-B-C-A-B-C deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
[    0.000000]          A-B-B-C-C-D-D-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
[    0.000000]          A-B-C-D-B-D-D-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
[    0.000000]          A-B-C-D-B-C-D-A deadlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
[    0.000000]                     double unlock:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
[    0.000000]                   initialize held:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
[    0.000000]                  bad unlock order:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
[    0.000000]   --------------------------------------------------------------------------
[    0.000000]               recursive read-lock:             |  ok  |             |  ok  |
[    0.000000]            recursive read-lock #2:             |  ok  |             |  ok  |
[    0.000000]             mixed read-write-lock:             |  ok  |             |  ok  |
[    0.000000]             mixed write-read-lock:             |  ok  |             |  ok  |
[    0.000000]   --------------------------------------------------------------------------
[    0.000000]      hard-irqs-on + irq-safe-A/12:  ok  |  ok  |  ok  |
[    0.000000]      soft-irqs-on + irq-safe-A/12:  ok  |  ok  |  ok  |
[    0.000000]      hard-irqs-on + irq-safe-A/21:  ok  |  ok  |  ok  |
[    0.000000]      soft-irqs-on + irq-safe-A/21:  ok  |  ok  |  ok  |
[    0.000000]        sirq-safe-A => hirqs-on/12:  ok  |  ok  |  ok  |
[    0.000000]        sirq-safe-A => hirqs-on/21:  ok  |  ok  |  ok  |
[    0.000000]          hard-safe-A + irqs-on/12:  ok  |  ok  |  ok  |
[    0.000000]          soft-safe-A + irqs-on/12:  ok  |  ok  |  ok  |
[    0.000000]          hard-safe-A + irqs-on/21:  ok  |  ok  |  ok  |
[    0.000000]          soft-safe-A + irqs-on/21:  ok  |  ok  |  ok  |
[    0.000000]     hard-safe-A + unsafe-B #1/123:  ok  |  ok  |  ok  |
[    0.000000]     soft-safe-A + unsafe-B #1/123:  ok  |  ok  |  ok  |
[    0.000000]     hard-safe-A + unsafe-B #1/132:  ok  |  ok  |  ok  |
[    0.000000]     soft-safe-A + unsafe-B #1/132:  ok  |  ok  |  ok  |
[    0.000000]     hard-safe-A + unsafe-B #1/213:  ok  |  ok  |  ok  |
[    0.000000]     soft-safe-A + unsafe-B #1/213:  ok  |  ok  |  ok  |
[    0.000000]     hard-safe-A + unsafe-B #1/231:  ok  |  ok  |  ok  |
[    0.000000]     soft-safe-A + unsafe-B #1/231:  ok  |  ok  |  ok  |
[    0.000000]     hard-safe-A + unsafe-B #1/312:  ok  |  ok  |  ok  |
[    0.000000]     soft-safe-A + unsafe-B #1/312:  ok  |  ok  |  ok  |
[    0.000000]     hard-safe-A + unsafe-B #1/321:  ok  |  ok  |  ok  |
[    0.000000]     soft-safe-A + unsafe-B #1/321:  ok  |  ok  |  ok  |
[    0.000000]     hard-safe-A + unsafe-B #2/123:  ok  |  ok  |  ok  |
[    0.000000]     soft-safe-A + unsafe-B #2/123:  ok  |  ok  |  ok  |
[    0.000000]     hard-safe-A + unsafe-B #2/132:  ok  |  ok  |  ok  |
[    0.000000]     soft-safe-A + unsafe-B #2/132:  ok  |  ok  |  ok  |
[    0.000000]     hard-safe-A + unsafe-B #2/213:  ok  |  ok  |  ok  |
[    0.000000]     soft-safe-A + unsafe-B #2/213:  ok  |  ok  |  ok  |
[    0.000000]     hard-safe-A + unsafe-B #2/231:  ok  |  ok  |  ok  |
[    0.000000]     soft-safe-A + unsafe-B #2/231:  ok  |  ok  |  ok  |
[    0.000000]     hard-safe-A + unsafe-B #2/312:  ok  |  ok  |  ok  |
[    0.000000]     soft-safe-A + unsafe-B #2/312:  ok  |  ok  |  ok  |
[    0.000000]     hard-safe-A + unsafe-B #2/321:  ok  |  ok  |  ok  |
[    0.000000]     soft-safe-A + unsafe-B #2/321:  ok  |  ok  |  ok  |
[    0.000000]       hard-irq lock-inversion/123:  ok  |  ok  |  ok  |
[    0.000000]       soft-irq lock-inversion/123:  ok  |  ok  |  ok  |
[    0.000000]       hard-irq lock-inversion/132:  ok  |  ok  |  ok  |
[    0.000000]       soft-irq lock-inversion/132:  ok  |  ok  |  ok  |
[    0.000000]       hard-irq lock-inversion/213:  ok  |  ok  |  ok  |
[    0.000000]       soft-irq lock-inversion/213:  ok  |  ok  |  ok  |
[    0.000000]       hard-irq lock-inversion/231:  ok  |  ok  |  ok  |
[    0.000000]       soft-irq lock-inversion/231:  ok  |  ok  |  ok  |
[    0.000000]       hard-irq lock-inversion/312:  ok  |  ok  |  ok  |
[    0.000000]       soft-irq lock-inversion/312:  ok  |  ok  |  ok  |
[    0.000000]       hard-irq lock-inversion/321:  ok  |  ok  |  ok  |
[    0.000000]       soft-irq lock-inversion/321:  ok  |  ok  |  ok  |
[    0.000000]       hard-irq read-recursion/123:  ok  |
[    0.000000]       soft-irq read-recursion/123:  ok  |
[    0.000000]       hard-irq read-recursion/132:  ok  |
[    0.000000]       soft-irq read-recursion/132:  ok  |
[    0.000000]       hard-irq read-recursion/213:  ok  |
[    0.000000]       soft-irq read-recursion/213:  ok  |
[    0.000000]       hard-irq read-recursion/231:  ok  |
[    0.000000]       soft-irq read-recursion/231:  ok  |
[    0.000000]       hard-irq read-recursion/312:  ok  |
[    0.000000]       soft-irq read-recursion/312:  ok  |
[    0.000000]       hard-irq read-recursion/321:  ok  |
[    0.000000]       soft-irq read-recursion/321:  ok  |
[    0.000000]   --------------------------------------------------------------------------
[    0.000000]   | Wound/wait tests |
[    0.000000]   ---------------------
[    0.000000]                   ww api failures:  ok  |  ok  |  ok  |
[    0.000000]                ww contexts mixing:  ok  |  ok  |
[    0.000000]              finishing ww context:  ok  |  ok  |  ok  |  ok  |
[    0.000000]                locking mismatches:  ok  |  ok  |  ok  |
[    0.000000]                  EDEADLK handling:  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |  ok  |
[    0.000000]            spinlock nest unlocked:  ok  |
[    0.000000]   -----------------------------------------------------
[    0.000000]                                  |block | try  |context|
[    0.000000]   -----------------------------------------------------
[    0.000000]                           context:  ok  |  ok  |  ok  |
[    0.000000]                               try:  ok  |  ok  |  ok  |
[    0.000000]                             block:  ok  |  ok  |  ok  |
[    0.000000]                          spinlock:  ok  |  ok  |  ok  |
[    0.000000] -------------------------------------------------------
[    0.000000] Good, all 253 testcases passed! |
[    0.000000] ---------------------------------
[    0.000000] kmemleak: Kernel memory leak detector disabled
[    0.000000] kmemleak: Early log buffer exceeded (2228), please increase DEBUG_KMEMLEAK_EARLY_LOG_SIZE
[    0.000000] tsc: Detected 3303.292 MHz processor
[    0.006666] Calibrating delay loop (skipped) preset value.. 6609.85 BogoMIPS (lpj=11010973)
[    0.006666] pid_max: default: 32768 minimum: 301
[    0.006666] ACPI: Core revision 20141107
[    0.076988] ACPI: All ACPI Tables successfully acquired
[    0.077988] Mount-cache hash table entries: 1024 (order: 1, 8192 bytes)
[    0.078786] Mountpoint-cache hash table entries: 1024 (order: 1, 8192 bytes)
[    0.081753] Initializing cgroup subsys blkio
[    0.082252] Initializing cgroup subsys memory
[    0.082840] Initializing cgroup subsys devices
[    0.083373] Initializing cgroup subsys freezer
[    0.083955] Initializing cgroup subsys net_cls
[    0.084524] Initializing cgroup subsys net_prio
[    0.085254] mce: CPU supports 10 MCE banks
[    0.085914] Last level iTLB entries: 4KB 512, 2MB 8, 4MB 8
[    0.086671] Last level dTLB entries: 4KB 512, 2MB 32, 4MB 32, 1GB 0
[    0.087727] debug: unmapping init [mem 0xffffffff82083000-0xffffffff82089fff]
[    0.092658] ftrace: allocating 27092 entries in 106 pages
[    0.100719] Enabling x2apic
[    0.101162] Enabled x2apic
[    0.103341] Switched APIC routing to physical x2apic.
[    0.105119] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[    0.105825] smpboot: CPU0: Intel(R) Core(TM) i3-3225 CPU @ 3.30GHz (fam: 06, model: 3a, stepping: 09)
[    0.107730] Performance Events: 16-deep LBR, IvyBridge events, Intel PMU driver.
[    0.108868] ... version:                2
[    0.109434] ... bit width:              48
[    0.109999] ... generic registers:      4
[    0.109999] ... value mask:             0000ffffffffffff
[    0.110006] ... max period:             000000007fffffff
[    0.110758] ... fixed-purpose events:   3
[    0.111331] ... event mask:             000000070000000f
[    0.112681] KVM setup paravirtual spinlock
[    0.126895] NMI watchdog: disabled (cpu0): hardware events not enabled
[    0.134087] x86: Booting SMP configuration:
[    0.135065] .... node  #0, CPUs:      #1
[    0.006666] kvm-clock: cpu 1, msr 0:1ffdf041, secondary cpu clock
[    0.150115] x86: Booted up 1 node, 2 CPUs
[    0.150112] KVM setup async PF for cpu 1
[    0.150112] kvm-stealtime: cpu 1, msr 1fa0d480
[    0.152395] smpboot: Total of 2 processors activated (13218.71 BogoMIPS)
[    0.154047] devtmpfs: initialized
[    0.167282] RTC time: 16:27:59, date: 01/20/15
[    0.169276] NET: Registered protocol family 16
[    0.183543] cpuidle: using governor ladder
[    0.196768] cpuidle: using governor menu
[    0.197725] ACPI: bus type PCI registered
[    0.198468] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
[    0.200852] PCI: Using configuration type 1 for base access
[    0.247130] ACPI: Added _OSI(Module Device)
[    0.247906] ACPI: Added _OSI(Processor Device)
[    0.248731] ACPI: Added _OSI(3.0 _SCP Extensions)
[    0.249602] ACPI: Added _OSI(Processor Aggregator Device)
[    0.275585] ACPI: Interpreter enabled
[    0.276227] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S1_] (20141107/hwxface-580)
[    0.277693] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S2_] (20141107/hwxface-580)
[    0.279576] ACPI: (supports S0 S3 S4 S5)
[    0.280005] ACPI: Using IOAPIC for interrupt routing
[    0.281178] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[    0.386427] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
[    0.386704] acpi PNP0A03:00: _OSC: OS supports [ASPM ClockPM Segments MSI]
[    0.388165] acpi PNP0A03:00: _OSC failed (AE_NOT_FOUND); disabling ASPM
[    0.393142] acpi PNP0A03:00: fail to add MMCONFIG information, can't access extended PCI configuration space under this bridge.
[    0.405309] acpiphp: Slot [3] registered
[    0.406583] acpiphp: Slot [4] registered
[    0.407098] acpiphp: Slot [5] registered
[    0.408249] acpiphp: Slot [6] registered
[    0.409410] acpiphp: Slot [7] registered
[    0.410417] acpiphp: Slot [8] registered
[    0.411558] acpiphp: Slot [9] registered
[    0.412698] acpiphp: Slot [10] registered
[    0.413745] acpiphp: Slot [11] registered
[    0.415141] acpiphp: Slot [12] registered
[    0.416305] acpiphp: Slot [13] registered
[    0.417085] acpiphp: Slot [14] registered
[    0.418259] acpiphp: Slot [15] registered
[    0.419418] acpiphp: Slot [16] registered
[    0.420418] acpiphp: Slot [17] registered
[    0.421468] acpiphp: Slot [18] registered
[    0.422624] acpiphp: Slot [19] registered
[    0.423748] acpiphp: Slot [20] registered
[    0.424912] acpiphp: Slot [21] registered
[    0.426073] acpiphp: Slot [22] registered
[    0.427086] acpiphp: Slot [23] registered
[    0.428245] acpiphp: Slot [24] registered
[    0.429403] acpiphp: Slot [25] registered
[    0.430415] acpiphp: Slot [26] registered
[    0.431719] acpiphp: Slot [27] registered
[    0.432882] acpiphp: Slot [28] registered
[    0.433747] acpiphp: Slot [29] registered
[    0.434955] acpiphp: Slot [30] registered
[    0.436114] acpiphp: Slot [31] registered
[    0.436693] PCI host bridge to bus 0000:00
[    0.437478] pci_bus 0000:00: root bus resource [bus 00-ff]
[    0.438499] pci_bus 0000:00: root bus resource [io  0x0000-0x0cf7]
[    0.439658] pci_bus 0000:00: root bus resource [io  0x0d00-0xadff]
[    0.440014] pci_bus 0000:00: root bus resource [io  0xae0f-0xaeff]
[    0.441158] pci_bus 0000:00: root bus resource [io  0xaf20-0xafdf]
[    0.442301] pci_bus 0000:00: root bus resource [io  0xafe4-0xffff]
[    0.443348] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff]
[    0.444606] pci_bus 0000:00: root bus resource [mem 0x20000000-0xfebfffff]
[    0.455053] pci 0000:00:01.1: legacy IDE quirk: reg 0x10: [io  0x01f0-0x01f7]
[    0.455944] pci 0000:00:01.1: legacy IDE quirk: reg 0x14: [io  0x03f6]
[    0.456673] pci 0000:00:01.1: legacy IDE quirk: reg 0x18: [io  0x0170-0x0177]
[    0.457478] pci 0000:00:01.1: legacy IDE quirk: reg 0x1c: [io  0x0376]
[    0.461459] pci 0000:00:01.3: quirk: [io  0x0600-0x063f] claimed by PIIX4 ACPI
[    0.462321] pci 0000:00:01.3: quirk: [io  0x0700-0x070f] claimed by PIIX4 SMB
[    0.490885] ACPI: PCI Interrupt Link [LNKA] (IRQs 5 *10 11)
[    0.493666] ACPI: PCI Interrupt Link [LNKB] (IRQs 5 *10 11)
[    0.496381] ACPI: PCI Interrupt Link [LNKC] (IRQs 5 10 *11)
[    0.498853] ACPI: PCI Interrupt Link [LNKD] (IRQs 5 10 *11)
[    0.500340] ACPI: PCI Interrupt Link [LNKS] (IRQs *9)
[    0.508149] ACPI: Enabled 16 GPEs in block 00 to 0F
[    0.509804] vgaarb: setting as boot device: PCI:0000:00:02.0
[    0.509804] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
[    0.510019] vgaarb: loaded
[    0.510540] vgaarb: bridge control possible 0000:00:02.0
[    0.514298] SCSI subsystem initialized
[    0.517646] PCI: Using ACPI for IRQ routing
[    0.522170] HPET: 3 timers in total, 0 timers will be used for per-cpu timer
[    0.523421] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0
[    0.524428] hpet0: 3 comparators, 64-bit 100.000000 MHz counter
[    0.528794] Switched to clocksource kvm-clock
[    0.669271] pnp: PnP ACPI init
[    0.682044] pnp: PnP ACPI: found 6 devices
[    0.727112] NET: Registered protocol family 2
[    0.729045] TCP established hash table entries: 4096 (order: 3, 32768 bytes)
[    0.730449] TCP bind hash table entries: 4096 (order: 6, 327680 bytes)
[    0.731884] TCP: Hash tables configured (established 4096 bind 4096)
[    0.733098] TCP: reno registered
[    0.733505] UDP hash table entries: 256 (order: 3, 49152 bytes)
[    0.734248] UDP-Lite hash table entries: 256 (order: 3, 49152 bytes)
[    0.735538] NET: Registered protocol family 1
[    0.737119] RPC: Registered named UNIX socket transport module.
[    0.737885] RPC: Registered udp transport module.
[    0.738466] RPC: Registered tcp transport module.
[    0.739041] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.739833] pci 0000:00:00.0: Limiting direct PCI/PCI transfers
[    0.740752] pci 0000:00:01.0: PIIX3: Enabling Passive Release
[    0.741476] pci 0000:00:01.0: Activating ISA DMA hang workarounds
[    0.745661] microcode: CPU0 sig=0x306a9, pf=0x1, revision=0x1
[    0.746966] microcode: CPU1 sig=0x306a9, pf=0x1, revision=0x1
[    0.748421] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
[    0.749946] Scanning for low memory corruption every 60 seconds
[    0.755101] futex hash table entries: 512 (order: 4, 65536 bytes)
[    0.755925] Initialise system trusted keyring
[    0.756742] audit: initializing netlink subsys (disabled)
[    0.757523] audit: type=2000 audit(1421771279.698:1): initialized
[    0.762111] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[    0.846035] zpool: loaded
[    0.846398] zbud: loaded
[    0.854624] VFS: Disk quotas dquot_6.5.2
[    0.855956] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.875173] NFS: Registering the id_resolver key type
[    0.875857] Key type id_resolver registered
[    0.876384] Key type id_legacy registered
[    0.876923] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.877781] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
[    0.884616] 9p: Installing v9fs 9p2000 file system support
[    0.888951] Key type asymmetric registered
[    0.889483] Asymmetric key parser 'x509' registered
[    0.891038] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[    0.892203] io scheduler noop registered
[    0.892684] io scheduler deadline registered
[    0.894913] io scheduler cfq registered (default)
[    0.897956] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[    0.899039] pciehp: PCI Express Hot Plug Controller Driver version: 0.4
[    0.901991] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input0
[    0.902956] ACPI: Power Button [PWRF]
[    0.905511] GHES: HEST is not enabled!
[    0.907089] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    0.932140] 00:05: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[    0.940679] Linux agpgart interface v0.103
[    0.942041] [drm] Initialized drm 1.1.0 20060810
[    0.946934]  ram0: unknown partition table
[    0.949760]  ram1: unknown partition table
[    0.952405]  ram2: unknown partition table
[    0.954952]  ram3: unknown partition table
[    0.957594]  ram4: unknown partition table
[    0.960184]  ram5: unknown partition table
[    0.962753]  ram6: unknown partition table
[    0.965365]  ram7: unknown partition table
[    0.967949]  ram8: unknown partition table
[    0.970591]  ram9: unknown partition table
[    0.973145]  ram10: unknown partition table
[    0.975696]  ram11: unknown partition table
[    0.978270]  ram12: unknown partition table
[    0.980850]  ram13: unknown partition table
[    0.983490]  ram14: unknown partition table
[    0.986062]  ram15: unknown partition table
[    0.987299] brd: module loaded
[    1.012002] loop: module loaded
[    1.015014] nbd: registered device at major 43
[    1.053267]  nullb0: unknown partition table
[    1.056658]  nullb1: unknown partition table
[    1.059039] null: module loaded
[    1.073543] scsi host0: ata_piix
[    1.078934] scsi host1: ata_piix
[    1.081142] ata1: PATA max MWDMA2 cmd 0x1f0 ctl 0x3f6 bmdma 0xc040 irq 14
[    1.082450] ata2: PATA max MWDMA2 cmd 0x170 ctl 0x376 bmdma 0xc048 irq 15
[    1.085557] i8042: PNP: PS/2 Controller [PNP0303:KBD,PNP0f13:MOU] at 0x60,0x64 irq 1,12
[    1.088762] serio: i8042 KBD port at 0x60,0x64 irq 1
[    1.090892] serio: i8042 AUX port at 0x60,0x64 irq 12
[    1.095813] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input1
[    1.100173] rtc_cmos 00:00: RTC can wake from S4
[    1.104933] rtc_cmos 00:00: rtc core: registered rtc_cmos as rtc0
[    1.106306] rtc_cmos 00:00: alarms up to one day, 114 bytes nvram, hpet irqs
[    1.108350] piix4_smbus 0000:00:01.3: SMBus Host Controller at 0x700, revision 0
[    1.110844] drop_monitor: Initializing network drop monitor service
[    1.112385] TCP: cubic registered
[    1.118817] NET: Registered protocol family 10
[    1.124642] NET: Registered protocol family 17
[    1.126381] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this.
[    1.128949] 8021q: 802.1Q VLAN Support v1.8
[    1.129825] 9pnet: Installing 9P2000 support
[    1.130815] Key type dns_resolver registered
[    1.136875] Loading compiled-in X.509 certificates
[    1.137907] registered taskstats version 1
[    1.140583]   Magic number: 15:95:490
[    1.141050] acpi PNP0F13:00: hash matches
[    1.141650] rtc_cmos 00:00: setting system clock to 2015-01-20 16:28:00 UTC (1421771280)
[    1.143381] Warning: unable to open an initial console.
[    1.237994] ata2.00: ATAPI: QEMU DVD-ROM, 2.2.0, max UDMA/100
[    1.239917] ata1.00: ATA-7: QEMU HARDDISK, 2.2.0, max UDMA/100
[    1.241219] ata1.00: 8388608 sectors, multi 16: LBA48 
[    1.243389] ata1.00: configured for MWDMA2
[    1.245792] ata2.00: configured for MWDMA2
[    1.248357] scsi 0:0:0:0: Direct-Access     ATA      QEMU HARDDISK    0    PQ: 0 ANSI: 5
[    1.255899] sd 0:0:0:0: [sda] 8388608 512-byte logical blocks: (4.29 GB/4.00 GiB)
[    1.258333] sd 0:0:0:0: [sda] Write Protect is off
[    1.259475] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    1.268417] scsi 1:0:0:0: CD-ROM            QEMU     QEMU DVD-ROM     2.2. PQ: 0 ANSI: 5
[    1.271673]  sda: sda1
[    1.281061] sd 0:0:0:0: [sda] Attached SCSI disk
[    1.282320] VFS: Cannot open root device "sda1" or unknown-block(8,1): error -2
[    1.283484] Please append a correct "root=" boot option; here are the available partitions:
[    1.284748] 0100            4096 ram0  (driver?)
[    1.285479] 0101            4096 ram1  (driver?)
[    1.286218] 0102            4096 ram2  (driver?)
[    1.286992] 0103            4096 ram3  (driver?)
[    1.287741] 0104            4096 ram4  (driver?)
[    1.288640] 0105            4096 ram5  (driver?)
[    1.289394] 0106            4096 ram6  (driver?)
[    1.290195] 0107            4096 ram7  (driver?)
[    1.290962] 0108            4096 ram8  (driver?)
[    1.291695] 0109            4096 ram9  (driver?)
[    1.292404] 010a            4096 ram10  (driver?)
[    1.293114] 010b            4096 ram11  (driver?)
[    1.293922] 010c            4096 ram12  (driver?)
[    1.294643] 010d            4096 ram13  (driver?)
[    1.295401] 010e            4096 ram14  (driver?)
[    1.296167] 010f            4096 ram15  (driver?)
[    1.296975] 0800         4194304 sda  driver: sd
[    1.297697]   0801         4194272 sda1 00000000-01
[    1.298418] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(8,1)
[    1.300034] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.19.0-rc5-next-20150120-dirty #410
[    1.300039] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.7.5-20140617_173321-var-lib-archbuild-testing-x86_64-tobias 04/01/2014
[    1.300039]  ffffea0000001340 ffff88001f673dd8 ffffffff817e1197 000000000000004e
[    1.300039]  ffffffff81a6f2c8 ffff88001f673e58 ffffffff817dfd43 ffffffff81c9a860
[    1.300039]  ffff880000000010 ffff88001f673e68 ffff88001f673e08 ffff000031616473
[    1.300039] Call Trace:
[    1.300039]  [<ffffffff817e1197>] dump_stack+0x4f/0x7b
[    1.300039]  [<ffffffff817dfd43>] panic+0xd2/0x217
[    1.300039]  [<ffffffff81efd58b>] mount_block_root+0x200/0x28d
[    1.300039]  [<ffffffff81efd78b>] mount_root+0x54/0x58
[    1.300039]  [<ffffffff81efd8f7>] prepare_namespace+0x168/0x1a1
[    1.300039]  [<ffffffff81efd2b1>] kernel_init_freeable+0x29d/0x2ad
[    1.300039]  [<ffffffff817d7440>] ? rest_init+0x140/0x140
[    1.300039]  [<ffffffff817d744e>] kernel_init+0xe/0xf0
[    1.300039]  [<ffffffff817eb87c>] ret_from_fork+0x7c/0xb0
[    1.300039]  [<ffffffff817d7440>] ? rest_init+0x140/0x140
[    1.300039] Kernel Offset: 0x0 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffff9fffffff)
[    1.300039] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(8,1)


-- 
Sabrina

^ permalink raw reply related	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-20 16:56 ` linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs Sabrina Dubroca
@ 2015-01-20 17:39   ` Paul Moore
  2015-01-20 17:51     ` Sabrina Dubroca
  2015-01-20 17:54     ` Fabio Estevam
  0 siblings, 2 replies; 62+ messages in thread
From: Paul Moore @ 2015-01-20 17:39 UTC (permalink / raw)
  To: Sabrina Dubroca
  Cc: Stephen Rothwell, linux-next, linux-kernel, linux-fsdevel,
	linux-audit, viro, Richard Guy Briggs

On Tuesday, January 20, 2015 05:56:55 PM Sabrina Dubroca wrote:
> Hello,
> 
> Today's linux-next doesn't boot on my qemu VM:

...
 
> I bisected it down to:
> 
> 5dc5218840e1  fs: create proper filename objects using getname_kernel()
> 
> I reverted then reapplied each part of that patch.  It works if I
> leave out the hunk for do_path_lookup:
> 
> diff --git a/fs/namei.c b/fs/namei.c
> index eeb3b83661f8..c3d21b79090e 100644
> --- a/fs/namei.c
> +++ b/fs/namei.c
> @@ -2001,9 +2001,15 @@ static int filename_lookup(int dfd, struct filename
> *name, static int do_path_lookup(int dfd, const char *name,
>  				unsigned int flags, struct nameidata *nd)
>  {
> -	struct filename filename = { .name = name };
> +	int retval;
> +	struct filename *filename;
> 
> -	return filename_lookup(dfd, &filename, flags, nd);
> +	filename = getname_kernel(name);
> +	if (unlikely(IS_ERR(filename)))
> +		return PTR_ERR(filename);
> +	retval = filename_lookup(dfd, filename, flags, nd);
> +	putname(filename);
> +	return retval;
>  }
> 
> I don't know what other info you may need.
> Full dmesg for the failed boot included below.

Thanks for testing this and reporting the problem, especially such a small 
bisection.  Unfortunately nothing is immediately obvious to me, would you mind 
sharing your kernel config so I can try to reproduce and debug the problem?

-Paul

-- 
paul moore
security @ redhat


^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-20 17:39   ` Paul Moore
@ 2015-01-20 17:51     ` Sabrina Dubroca
  2015-01-20 19:54       ` Al Viro
  2015-01-20 17:54     ` Fabio Estevam
  1 sibling, 1 reply; 62+ messages in thread
From: Sabrina Dubroca @ 2015-01-20 17:51 UTC (permalink / raw)
  To: Paul Moore
  Cc: Stephen Rothwell, linux-next, linux-kernel, linux-fsdevel,
	linux-audit, viro, Richard Guy Briggs

2015-01-20, 12:39:08 -0500, Paul Moore wrote:
> On Tuesday, January 20, 2015 05:56:55 PM Sabrina Dubroca wrote:
> > Hello,
> > 
> > Today's linux-next doesn't boot on my qemu VM:
> 
> ...
>  
> > I bisected it down to:
> > 
> > 5dc5218840e1  fs: create proper filename objects using getname_kernel()
> > 
> > I reverted then reapplied each part of that patch.  It works if I
> > leave out the hunk for do_path_lookup:
> > 
> > diff --git a/fs/namei.c b/fs/namei.c
> > index eeb3b83661f8..c3d21b79090e 100644
> > --- a/fs/namei.c
> > +++ b/fs/namei.c
> > @@ -2001,9 +2001,15 @@ static int filename_lookup(int dfd, struct filename
> > *name, static int do_path_lookup(int dfd, const char *name,
> >  				unsigned int flags, struct nameidata *nd)
> >  {
> > -	struct filename filename = { .name = name };
> > +	int retval;
> > +	struct filename *filename;
> > 
> > -	return filename_lookup(dfd, &filename, flags, nd);
> > +	filename = getname_kernel(name);
> > +	if (unlikely(IS_ERR(filename)))
> > +		return PTR_ERR(filename);
> > +	retval = filename_lookup(dfd, filename, flags, nd);
> > +	putname(filename);
> > +	return retval;
> >  }
> > 
> > I don't know what other info you may need.
> > Full dmesg for the failed boot included below.
> 
> Thanks for testing this and reporting the problem, especially such a small 
> bisection.  Unfortunately nothing is immediately obvious to me, would you mind 
> sharing your kernel config so I can try to reproduce and debug the problem?

Sure.

I run qemu with:

qemu-system-x86_64 -enable-kvm -cpu host  -m 512 -kernel bzImage -append 'root=/dev/sda1' $IMG

and the image contains a single ext4 partition with a basic ArchLinux install.

#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 3.19.0-rc5 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
CONFIG_X86=y
CONFIG_INSTRUCTION_DECODER=y
CONFIG_PERF_EVENTS_INTEL_UNCORE=y
CONFIG_OUTPUT_FORMAT="elf64-x86-64"
CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_MMU=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_HAS_CPU_RELAX=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
CONFIG_ZONE_DMA32=y
CONFIG_AUDIT_ARCH=y
CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_HAVE_INTEL_TXT=y
CONFIG_X86_64_SMP=y
CONFIG_X86_HT=y
CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11"
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_FIX_EARLYCON_MEM=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_EXTABLE_SORT=y

#
# General setup
#
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_CROSS_COMPILE=""
# CONFIG_COMPILE_TEST is not set
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_BZIP2=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_XZ=y
CONFIG_HAVE_KERNEL_LZO=y
CONFIG_HAVE_KERNEL_LZ4=y
CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_LZO is not set
# CONFIG_KERNEL_LZ4 is not set
CONFIG_DEFAULT_HOSTNAME="earth"
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_POSIX_MQUEUE_SYSCTL=y
CONFIG_CROSS_MEMORY_ATTACH=y
CONFIG_FHANDLE=y
CONFIG_USELIB=y
CONFIG_AUDIT=y
CONFIG_HAVE_ARCH_AUDITSYSCALL=y
CONFIG_AUDITSYSCALL=y
CONFIG_AUDIT_WATCH=y
CONFIG_AUDIT_TREE=y

#
# IRQ subsystem
#
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_IRQ_LEGACY_ALLOC_HWIRQ=y
CONFIG_GENERIC_PENDING_IRQ=y
CONFIG_IRQ_DOMAIN=y
CONFIG_GENERIC_MSI_IRQ=y
# CONFIG_IRQ_DOMAIN_DEBUG is not set
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_ARCH_CLOCKSOURCE_DATA=y
CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
CONFIG_GENERIC_CMOS_UPDATE=y

#
# Timers subsystem
#
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ_COMMON=y
# CONFIG_HZ_PERIODIC is not set
CONFIG_NO_HZ_IDLE=y
# CONFIG_NO_HZ_FULL is not set
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y

#
# CPU/Task time and stats accounting
#
CONFIG_TICK_CPU_ACCOUNTING=y
# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
# CONFIG_IRQ_TIME_ACCOUNTING is not set
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
CONFIG_TASK_XACCT=y
CONFIG_TASK_IO_ACCOUNTING=y

#
# RCU Subsystem
#
CONFIG_PREEMPT_RCU=y
CONFIG_SRCU=y
CONFIG_TASKS_RCU=y
CONFIG_RCU_STALL_COMMON=y
# CONFIG_RCU_USER_QS is not set
CONFIG_RCU_FANOUT=64
CONFIG_RCU_FANOUT_LEAF=16
# CONFIG_RCU_FANOUT_EXACT is not set
CONFIG_RCU_FAST_NO_HZ=y
# CONFIG_TREE_RCU_TRACE is not set
# CONFIG_RCU_BOOST is not set
CONFIG_RCU_KTHREAD_PRIO=1
CONFIG_RCU_NOCB_CPU=y
CONFIG_RCU_NOCB_CPU_NONE=y
# CONFIG_RCU_NOCB_CPU_ZERO is not set
# CONFIG_RCU_NOCB_CPU_ALL is not set
CONFIG_BUILD_BIN2C=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=21
CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
CONFIG_ARCH_SUPPORTS_INT128=y
CONFIG_CGROUPS=y
# CONFIG_CGROUP_DEBUG is not set
CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CPUSETS=y
CONFIG_PROC_PID_CPUSET=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_PAGE_COUNTER=y
CONFIG_MEMCG=y
CONFIG_MEMCG_SWAP=y
# CONFIG_MEMCG_SWAP_ENABLED is not set
CONFIG_MEMCG_KMEM=y
# CONFIG_CGROUP_HUGETLB is not set
# CONFIG_CGROUP_PERF is not set
CONFIG_CGROUP_SCHED=y
CONFIG_FAIR_GROUP_SCHED=y
CONFIG_CFS_BANDWIDTH=y
CONFIG_RT_GROUP_SCHED=y
CONFIG_BLK_CGROUP=y
# CONFIG_DEBUG_BLK_CGROUP is not set
# CONFIG_CHECKPOINT_RESTORE is not set
CONFIG_NAMESPACES=y
CONFIG_UTS_NS=y
CONFIG_IPC_NS=y
CONFIG_USER_NS=y
CONFIG_PID_NS=y
CONFIG_NET_NS=y
CONFIG_SCHED_AUTOGROUP=y
# CONFIG_SYSFS_DEPRECATED is not set
CONFIG_RELAY=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_RD_GZIP=y
CONFIG_RD_BZIP2=y
CONFIG_RD_LZMA=y
CONFIG_RD_XZ=y
CONFIG_RD_LZO=y
CONFIG_RD_LZ4=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
CONFIG_HAVE_UID16=y
CONFIG_SYSCTL_EXCEPTION_TRACE=y
CONFIG_HAVE_PCSPKR_PLATFORM=y
CONFIG_BPF=y
# CONFIG_EXPERT is not set
CONFIG_UID16=y
CONFIG_SGETMASK_SYSCALL=y
CONFIG_SYSFS_SYSCALL=y
# CONFIG_SYSCTL_SYSCALL is not set
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_PCSPKR_PLATFORM=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
# CONFIG_BPF_SYSCALL is not set
CONFIG_SHMEM=y
CONFIG_AIO=y
CONFIG_ADVISE_SYSCALLS=y
CONFIG_PCI_QUIRKS=y
# CONFIG_EMBEDDED is not set
CONFIG_HAVE_PERF_EVENTS=y

#
# Kernel Performance Events And Counters
#
CONFIG_PERF_EVENTS=y
# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLUB_DEBUG=y
# CONFIG_COMPAT_BRK is not set
# CONFIG_SLAB is not set
CONFIG_SLUB=y
CONFIG_SLUB_CPU_PARTIAL=y
CONFIG_SYSTEM_TRUSTED_KEYRING=y
CONFIG_PROFILING=y
CONFIG_TRACEPOINTS=y
# CONFIG_OPROFILE is not set
CONFIG_HAVE_OPROFILE=y
CONFIG_OPROFILE_NMI_TIMER=y
CONFIG_KPROBES=y
CONFIG_JUMP_LABEL=y
CONFIG_KPROBES_ON_FTRACE=y
CONFIG_UPROBES=y
# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
CONFIG_ARCH_USE_BUILTIN_BSWAP=y
CONFIG_KRETPROBES=y
CONFIG_HAVE_IOREMAP_PROT=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_OPTPROBES=y
CONFIG_HAVE_KPROBES_ON_FTRACE=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
CONFIG_HAVE_DMA_ATTRS=y
CONFIG_HAVE_DMA_CONTIGUOUS=y
CONFIG_GENERIC_SMP_IDLE_THREAD=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_DMA_API_DEBUG=y
CONFIG_HAVE_HW_BREAKPOINT=y
CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
CONFIG_HAVE_USER_RETURN_NOTIFIER=y
CONFIG_HAVE_PERF_EVENTS_NMI=y
CONFIG_HAVE_PERF_REGS=y
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
CONFIG_HAVE_ARCH_JUMP_LABEL=y
CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
CONFIG_HAVE_CMPXCHG_LOCAL=y
CONFIG_HAVE_CMPXCHG_DOUBLE=y
CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_SECCOMP_FILTER=y
CONFIG_HAVE_CC_STACKPROTECTOR=y
# CONFIG_CC_STACKPROTECTOR is not set
CONFIG_CC_STACKPROTECTOR_NONE=y
# CONFIG_CC_STACKPROTECTOR_REGULAR is not set
# CONFIG_CC_STACKPROTECTOR_STRONG is not set
CONFIG_HAVE_CONTEXT_TRACKING=y
CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
CONFIG_HAVE_ARCH_SOFT_DIRTY=y
CONFIG_MODULES_USE_ELF_RELA=y
CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
CONFIG_OLD_SIGSUSPEND3=y
CONFIG_COMPAT_OLD_SIGACTION=y

#
# GCOV-based kernel profiling
#
# CONFIG_GCOV_KERNEL is not set
CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_MODULE_SIG is not set
# CONFIG_MODULE_COMPRESS is not set
CONFIG_STOP_MACHINE=y
CONFIG_BLOCK=y
CONFIG_BLK_DEV_BSG=y
CONFIG_BLK_DEV_BSGLIB=y
# CONFIG_BLK_DEV_INTEGRITY is not set
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_CMDLINE_PARSER is not set

#
# Partition Types
#
CONFIG_PARTITION_ADVANCED=y
# CONFIG_ACORN_PARTITION is not set
CONFIG_AIX_PARTITION=y
# CONFIG_OSF_PARTITION is not set
# CONFIG_AMIGA_PARTITION is not set
# CONFIG_ATARI_PARTITION is not set
CONFIG_MAC_PARTITION=y
CONFIG_MSDOS_PARTITION=y
CONFIG_BSD_DISKLABEL=y
CONFIG_MINIX_SUBPARTITION=y
CONFIG_SOLARIS_X86_PARTITION=y
# CONFIG_UNIXWARE_DISKLABEL is not set
CONFIG_LDM_PARTITION=y
# CONFIG_LDM_DEBUG is not set
# CONFIG_SGI_PARTITION is not set
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
CONFIG_KARMA_PARTITION=y
CONFIG_EFI_PARTITION=y
# CONFIG_SYSV68_PARTITION is not set
# CONFIG_CMDLINE_PARTITION is not set
CONFIG_BLOCK_COMPAT=y

#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
CONFIG_CFQ_GROUP_IOSCHED=y
# CONFIG_DEFAULT_DEADLINE is not set
CONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="cfq"
CONFIG_ASN1=y
CONFIG_UNINLINE_SPIN_UNLOCK=y
CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
CONFIG_RWSEM_SPIN_ON_OWNER=y
CONFIG_LOCK_SPIN_ON_OWNER=y
CONFIG_ARCH_USE_QUEUE_RWLOCK=y
CONFIG_QUEUE_RWLOCK=y
CONFIG_FREEZER=y

#
# Processor type and features
#
CONFIG_ZONE_DMA=y
CONFIG_SMP=y
CONFIG_X86_FEATURE_NAMES=y
CONFIG_X86_X2APIC=y
CONFIG_X86_MPPARSE=y
# CONFIG_X86_EXTENDED_PLATFORM is not set
# CONFIG_X86_INTEL_LPSS is not set
CONFIG_IOSF_MBI=m
# CONFIG_IOSF_MBI_DEBUG is not set
CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
CONFIG_SCHED_OMIT_FRAME_POINTER=y
CONFIG_HYPERVISOR_GUEST=y
CONFIG_PARAVIRT=y
CONFIG_PARAVIRT_DEBUG=y
CONFIG_PARAVIRT_SPINLOCKS=y
# CONFIG_XEN is not set
CONFIG_KVM_GUEST=y
CONFIG_KVM_DEBUG_FS=y
CONFIG_PARAVIRT_TIME_ACCOUNTING=y
CONFIG_PARAVIRT_CLOCK=y
CONFIG_NO_BOOTMEM=y
# CONFIG_MEMTEST is not set
# CONFIG_MK8 is not set
# CONFIG_MPSC is not set
# CONFIG_MCORE2 is not set
# CONFIG_MATOM is not set
CONFIG_GENERIC_CPU=y
CONFIG_X86_INTERNODE_CACHE_SHIFT=6
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_TSC=y
CONFIG_X86_CMPXCHG64=y
CONFIG_X86_CMOV=y
CONFIG_X86_MINIMUM_CPU_FAMILY=64
CONFIG_X86_DEBUGCTLMSR=y
CONFIG_CPU_SUP_INTEL=y
CONFIG_CPU_SUP_AMD=y
CONFIG_CPU_SUP_CENTAUR=y
CONFIG_HPET_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
CONFIG_DMI=y
CONFIG_GART_IOMMU=y
CONFIG_CALGARY_IOMMU=y
CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
CONFIG_SWIOTLB=y
CONFIG_IOMMU_HELPER=y
# CONFIG_MAXSMP is not set
CONFIG_NR_CPUS=16
CONFIG_SCHED_SMT=y
CONFIG_SCHED_MC=y
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_PREEMPT_COUNT=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
CONFIG_X86_MCE=y
CONFIG_X86_MCE_INTEL=y
CONFIG_X86_MCE_AMD=y
CONFIG_X86_MCE_THRESHOLD=y
# CONFIG_X86_MCE_INJECT is not set
CONFIG_X86_THERMAL_VECTOR=y
CONFIG_X86_16BIT=y
CONFIG_X86_ESPFIX64=y
CONFIG_X86_VSYSCALL_EMULATION=y
# CONFIG_I8K is not set
CONFIG_MICROCODE=y
CONFIG_MICROCODE_INTEL=y
CONFIG_MICROCODE_AMD=y
CONFIG_MICROCODE_OLD_INTERFACE=y
CONFIG_MICROCODE_INTEL_EARLY=y
CONFIG_MICROCODE_AMD_EARLY=y
CONFIG_MICROCODE_EARLY=y
# CONFIG_X86_MSR is not set
# CONFIG_X86_CPUID is not set
CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
CONFIG_ARCH_DMA_ADDR_T_64BIT=y
CONFIG_DIRECT_GBPAGES=y
# CONFIG_NUMA is not set
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_DEFAULT=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ARCH_MEMORY_PROBE=y
CONFIG_ARCH_PROC_KCORE_TEXT=y
CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_SPARSEMEM_MANUAL=y
CONFIG_SPARSEMEM=y
CONFIG_HAVE_MEMORY_PRESENT=y
CONFIG_SPARSEMEM_EXTREME=y
CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER=y
CONFIG_SPARSEMEM_VMEMMAP=y
CONFIG_HAVE_MEMBLOCK=y
CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
CONFIG_ARCH_DISCARD_MEMBLOCK=y
CONFIG_MEMORY_ISOLATION=y
CONFIG_HAVE_BOOTMEM_INFO_NODE=y
CONFIG_MEMORY_HOTPLUG=y
CONFIG_MEMORY_HOTPLUG_SPARSE=y
CONFIG_MEMORY_HOTREMOVE=y
CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
CONFIG_MEMORY_BALLOON=y
CONFIG_BALLOON_COMPACTION=y
CONFIG_COMPACTION=y
CONFIG_MIGRATION=y
CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
CONFIG_PHYS_ADDR_T_64BIT=y
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
CONFIG_KSM=y
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
CONFIG_MEMORY_FAILURE=y
# CONFIG_HWPOISON_INJECT is not set
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
CONFIG_CLEANCACHE=y
CONFIG_FRONTSWAP=y
# CONFIG_CMA is not set
CONFIG_ZSWAP=y
CONFIG_ZPOOL=y
CONFIG_ZBUD=y
# CONFIG_ZSMALLOC is not set
CONFIG_GENERIC_EARLY_IOREMAP=y
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
CONFIG_X86_RESERVE_LOW=64
CONFIG_MTRR=y
CONFIG_MTRR_SANITIZER=y
CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
CONFIG_X86_PAT=y
CONFIG_ARCH_USES_PG_UNCACHED=y
CONFIG_ARCH_RANDOM=y
CONFIG_X86_SMAP=y
CONFIG_X86_INTEL_MPX=y
CONFIG_EFI=y
CONFIG_EFI_STUB=y
# CONFIG_EFI_MIXED is not set
CONFIG_SECCOMP=y
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
CONFIG_HZ_300=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=300
CONFIG_SCHED_HRTICK=y
CONFIG_KEXEC=y
# CONFIG_KEXEC_FILE is not set
# CONFIG_CRASH_DUMP is not set
CONFIG_KEXEC_JUMP=y
CONFIG_PHYSICAL_START=0x1000000
CONFIG_RELOCATABLE=y
# CONFIG_RANDOMIZE_BASE is not set
CONFIG_PHYSICAL_ALIGN=0x1000000
CONFIG_HOTPLUG_CPU=y
# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set
# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
# CONFIG_COMPAT_VDSO is not set
# CONFIG_CMDLINE_BOOL is not set
CONFIG_ARCH_HAVE_LIVE_PATCHING=y
# CONFIG_LIVE_PATCHING is not set
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y

#
# Power management and ACPI options
#
CONFIG_ARCH_HIBERNATION_HEADER=y
CONFIG_SUSPEND=y
CONFIG_SUSPEND_FREEZER=y
CONFIG_HIBERNATE_CALLBACKS=y
CONFIG_HIBERNATION=y
CONFIG_PM_STD_PARTITION=""
CONFIG_PM_SLEEP=y
CONFIG_PM_SLEEP_SMP=y
CONFIG_PM_AUTOSLEEP=y
CONFIG_PM_WAKELOCKS=y
CONFIG_PM_WAKELOCKS_LIMIT=100
CONFIG_PM_WAKELOCKS_GC=y
CONFIG_PM=y
CONFIG_PM_DEBUG=y
CONFIG_PM_ADVANCED_DEBUG=y
# CONFIG_PM_TEST_SUSPEND is not set
CONFIG_PM_SLEEP_DEBUG=y
# CONFIG_DPM_WATCHDOG is not set
CONFIG_PM_TRACE=y
CONFIG_PM_TRACE_RTC=y
# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
CONFIG_ACPI=y
CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y
CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y
CONFIG_ACPI_SLEEP=y
# CONFIG_ACPI_PROCFS_POWER is not set
# CONFIG_ACPI_EC_DEBUGFS is not set
# CONFIG_ACPI_AC is not set
# CONFIG_ACPI_BATTERY is not set
CONFIG_ACPI_BUTTON=y
# CONFIG_ACPI_VIDEO is not set
# CONFIG_ACPI_FAN is not set
CONFIG_ACPI_DOCK=y
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_HOTPLUG_CPU=y
# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set
# CONFIG_ACPI_THERMAL is not set
# CONFIG_ACPI_CUSTOM_DSDT is not set
CONFIG_ACPI_INITRD_TABLE_OVERRIDE=y
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_PCI_SLOT=y
CONFIG_X86_PM_TIMER=y
CONFIG_ACPI_CONTAINER=y
CONFIG_ACPI_HOTPLUG_MEMORY=y
# CONFIG_ACPI_SBS is not set
CONFIG_ACPI_HED=y
# CONFIG_ACPI_CUSTOM_METHOD is not set
CONFIG_ACPI_BGRT=y
# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set
CONFIG_HAVE_ACPI_APEI=y
CONFIG_HAVE_ACPI_APEI_NMI=y
CONFIG_ACPI_APEI=y
CONFIG_ACPI_APEI_GHES=y
CONFIG_ACPI_APEI_PCIEAER=y
CONFIG_ACPI_APEI_MEMORY_FAILURE=y
# CONFIG_ACPI_APEI_EINJ is not set
# CONFIG_ACPI_APEI_ERST_DEBUG is not set
CONFIG_ACPI_EXTLOG=y
# CONFIG_PMIC_OPREGION is not set
CONFIG_SFI=y

#
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_GOV_COMMON=y
# CONFIG_CPU_FREQ_STAT is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
# CONFIG_CPU_FREQ_GOV_USERSPACE is not set
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set

#
# CPU frequency scaling drivers
#
CONFIG_X86_INTEL_PSTATE=y
# CONFIG_X86_PCC_CPUFREQ is not set
# CONFIG_X86_ACPI_CPUFREQ is not set
# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
# CONFIG_X86_P4_CLOCKMOD is not set

#
# shared options
#
# CONFIG_X86_SPEEDSTEP_LIB is not set

#
# CPU Idle
#
CONFIG_CPU_IDLE=y
CONFIG_CPU_IDLE_GOV_LADDER=y
CONFIG_CPU_IDLE_GOV_MENU=y
# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
CONFIG_INTEL_IDLE=y

#
# Memory power savings
#
# CONFIG_I7300_IDLE is not set

#
# Bus options (PCI etc.)
#
CONFIG_PCI=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
CONFIG_PCI_DOMAINS=y
CONFIG_PCIEPORTBUS=y
CONFIG_HOTPLUG_PCI_PCIE=y
CONFIG_PCIEAER=y
# CONFIG_PCIE_ECRC is not set
# CONFIG_PCIEAER_INJECT is not set
CONFIG_PCIEASPM=y
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM_DEFAULT=y
# CONFIG_PCIEASPM_POWERSAVE is not set
# CONFIG_PCIEASPM_PERFORMANCE is not set
CONFIG_PCIE_PME=y
CONFIG_PCI_MSI=y
# CONFIG_PCI_DEBUG is not set
CONFIG_PCI_REALLOC_ENABLE_AUTO=y
# CONFIG_PCI_STUB is not set
CONFIG_HT_IRQ=y
CONFIG_PCI_ATS=y
CONFIG_PCI_IOV=y
CONFIG_PCI_PRI=y
CONFIG_PCI_PASID=y
CONFIG_PCI_LABEL=y

#
# PCI host controller drivers
#
CONFIG_ISA_DMA_API=y
CONFIG_AMD_NB=y
# CONFIG_PCCARD is not set
CONFIG_HOTPLUG_PCI=y
CONFIG_HOTPLUG_PCI_ACPI=y
# CONFIG_HOTPLUG_PCI_ACPI_IBM is not set
CONFIG_HOTPLUG_PCI_CPCI=y
# CONFIG_HOTPLUG_PCI_CPCI_ZT5550 is not set
# CONFIG_HOTPLUG_PCI_CPCI_GENERIC is not set
# CONFIG_HOTPLUG_PCI_SHPC is not set
CONFIG_RAPIDIO=y
CONFIG_RAPIDIO_TSI721=y
CONFIG_RAPIDIO_DISC_TIMEOUT=30
# CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS is not set
CONFIG_RAPIDIO_DMA_ENGINE=y
CONFIG_RAPIDIO_DEBUG=y
# CONFIG_RAPIDIO_ENUM_BASIC is not set

#
# RapidIO Switch drivers
#
CONFIG_RAPIDIO_TSI57X=y
CONFIG_RAPIDIO_CPS_XX=y
CONFIG_RAPIDIO_TSI568=y
CONFIG_RAPIDIO_CPS_GEN2=y
# CONFIG_X86_SYSFB is not set

#
# Executable file formats / Emulations
#
CONFIG_BINFMT_ELF=y
CONFIG_COMPAT_BINFMT_ELF=y
CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_BINFMT_SCRIPT=y
# CONFIG_HAVE_AOUT is not set
CONFIG_BINFMT_MISC=y
CONFIG_COREDUMP=y
CONFIG_IA32_EMULATION=y
# CONFIG_IA32_AOUT is not set
CONFIG_X86_X32=y
CONFIG_COMPAT=y
CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
CONFIG_SYSVIPC_COMPAT=y
CONFIG_KEYS_COMPAT=y
CONFIG_X86_DEV_DMA_OPS=y
CONFIG_PMC_ATOM=y
CONFIG_NET=y

#
# Networking options
#
CONFIG_PACKET=y
CONFIG_PACKET_DIAG=y
CONFIG_UNIX=y
CONFIG_UNIX_DIAG=m
CONFIG_XFRM=y
# CONFIG_XFRM_USER is not set
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
# CONFIG_XFRM_STATISTICS is not set
# CONFIG_NET_KEY is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_FIB_TRIE_STATS=y
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_ROUTE_MULTIPATH=y
CONFIG_IP_ROUTE_VERBOSE=y
CONFIG_IP_ROUTE_CLASSID=y
# CONFIG_IP_PNP is not set
CONFIG_NET_IPIP=m
# CONFIG_NET_IPGRE_DEMUX is not set
CONFIG_NET_IP_TUNNEL=m
CONFIG_IP_MROUTE=y
CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
CONFIG_SYN_COOKIES=y
CONFIG_NET_UDP_TUNNEL=m
# CONFIG_NET_FOU is not set
# CONFIG_NET_FOU_IP_TUNNELS is not set
CONFIG_GENEVE=m
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_XFRM_TUNNEL is not set
CONFIG_INET_TUNNEL=m
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
CONFIG_INET_LRO=y
CONFIG_INET_DIAG=m
CONFIG_INET_TCP_DIAG=m
CONFIG_INET_UDP_DIAG=m
CONFIG_TCP_CONG_ADVANCED=y
# CONFIG_TCP_CONG_BIC is not set
CONFIG_TCP_CONG_CUBIC=y
# CONFIG_TCP_CONG_WESTWOOD is not set
# CONFIG_TCP_CONG_HTCP is not set
# CONFIG_TCP_CONG_HSTCP is not set
# CONFIG_TCP_CONG_HYBLA is not set
# CONFIG_TCP_CONG_VEGAS is not set
# CONFIG_TCP_CONG_SCALABLE is not set
# CONFIG_TCP_CONG_LP is not set
# CONFIG_TCP_CONG_VENO is not set
# CONFIG_TCP_CONG_YEAH is not set
# CONFIG_TCP_CONG_ILLINOIS is not set
CONFIG_TCP_CONG_DCTCP=m
CONFIG_DEFAULT_CUBIC=y
# CONFIG_DEFAULT_RENO is not set
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
CONFIG_IPV6=y
CONFIG_IPV6_ROUTER_PREF=y
CONFIG_IPV6_ROUTE_INFO=y
CONFIG_IPV6_OPTIMISTIC_DAD=y
# CONFIG_INET6_AH is not set
# CONFIG_INET6_ESP is not set
# CONFIG_INET6_IPCOMP is not set
# CONFIG_IPV6_MIP6 is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
CONFIG_INET6_TUNNEL=m
# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set
CONFIG_INET6_XFRM_MODE_TUNNEL=m
# CONFIG_INET6_XFRM_MODE_BEET is not set
# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
CONFIG_IPV6_VTI=m
CONFIG_IPV6_SIT=m
CONFIG_IPV6_SIT_6RD=y
CONFIG_IPV6_NDISC_NODETYPE=y
CONFIG_IPV6_TUNNEL=m
CONFIG_IPV6_GRE=m
CONFIG_IPV6_MULTIPLE_TABLES=y
CONFIG_IPV6_SUBTREES=y
CONFIG_IPV6_MROUTE=y
CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
CONFIG_IPV6_PIMSM_V2=y
# CONFIG_NETWORK_SECMARK is not set
CONFIG_NET_PTP_CLASSIFY=y
# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
# CONFIG_NETFILTER_ADVANCED is not set

#
# Core Netfilter Configuration
#
CONFIG_NETFILTER_NETLINK=m
CONFIG_NETFILTER_NETLINK_LOG=m
# CONFIG_NF_CONNTRACK is not set
CONFIG_NF_TABLES=m
CONFIG_NF_TABLES_INET=m
CONFIG_NFT_EXTHDR=m
CONFIG_NFT_META=m
CONFIG_NFT_RBTREE=m
CONFIG_NFT_HASH=m
CONFIG_NFT_COUNTER=m
CONFIG_NFT_LOG=m
CONFIG_NFT_LIMIT=m
CONFIG_NFT_REJECT=m
CONFIG_NFT_REJECT_INET=m
# CONFIG_NETFILTER_XTABLES is not set
# CONFIG_IP_SET is not set
# CONFIG_IP_VS is not set

#
# IP: Netfilter Configuration
#
# CONFIG_NF_DEFRAG_IPV4 is not set
# CONFIG_NF_LOG_ARP is not set
# CONFIG_NF_LOG_IPV4 is not set
CONFIG_NF_TABLES_IPV4=m
# CONFIG_NFT_CHAIN_ROUTE_IPV4 is not set
CONFIG_NF_REJECT_IPV4=m
CONFIG_NFT_REJECT_IPV4=m
# CONFIG_NF_TABLES_ARP is not set
# CONFIG_IP_NF_IPTABLES is not set

#
# IPv6: Netfilter Configuration
#
# CONFIG_NF_DEFRAG_IPV6 is not set
CONFIG_NF_TABLES_IPV6=m
# CONFIG_NFT_CHAIN_ROUTE_IPV6 is not set
CONFIG_NF_REJECT_IPV6=m
CONFIG_NFT_REJECT_IPV6=m
# CONFIG_NF_LOG_IPV6 is not set
# CONFIG_IP6_NF_IPTABLES is not set
# CONFIG_NF_TABLES_BRIDGE is not set
# CONFIG_IP_DCCP is not set
CONFIG_IP_SCTP=m
CONFIG_NET_SCTPPROBE=m
CONFIG_SCTP_DBG_OBJCNT=y
CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 is not set
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
CONFIG_SCTP_COOKIE_HMAC_MD5=y
CONFIG_SCTP_COOKIE_HMAC_SHA1=y
# CONFIG_RDS is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
CONFIG_STP=y
CONFIG_GARP=y
CONFIG_MRP=y
CONFIG_BRIDGE=y
CONFIG_BRIDGE_IGMP_SNOOPING=y
CONFIG_BRIDGE_VLAN_FILTERING=y
CONFIG_HAVE_NET_DSA=y
CONFIG_VLAN_8021Q=y
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q_MVRP=y
# CONFIG_DECNET is not set
CONFIG_LLC=y
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_PHONET is not set
# CONFIG_6LOWPAN is not set
# CONFIG_IEEE802154 is not set
CONFIG_NET_SCHED=y

#
# Queueing/Scheduling
#
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_HFSC=m
CONFIG_NET_SCH_PRIO=m
CONFIG_NET_SCH_MULTIQ=m
CONFIG_NET_SCH_RED=m
CONFIG_NET_SCH_SFB=m
CONFIG_NET_SCH_SFQ=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_GRED=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCH_NETEM=m
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_MQPRIO=m
CONFIG_NET_SCH_CHOKE=m
CONFIG_NET_SCH_QFQ=m
CONFIG_NET_SCH_CODEL=m
CONFIG_NET_SCH_FQ_CODEL=m
CONFIG_NET_SCH_FQ=m
CONFIG_NET_SCH_HHF=m
CONFIG_NET_SCH_PIE=m
CONFIG_NET_SCH_INGRESS=m
CONFIG_NET_SCH_PLUG=m

#
# Classification
#
CONFIG_NET_CLS=y
CONFIG_NET_CLS_BASIC=m
CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
CONFIG_CLS_U32_PERF=y
CONFIG_CLS_U32_MARK=y
CONFIG_NET_CLS_RSVP=m
CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_CLS_FLOW=m
CONFIG_NET_CLS_CGROUP=y
CONFIG_NET_CLS_BPF=y
CONFIG_NET_EMATCH=y
CONFIG_NET_EMATCH_STACK=32
CONFIG_NET_EMATCH_CMP=m
CONFIG_NET_EMATCH_NBYTE=m
CONFIG_NET_EMATCH_U32=m
CONFIG_NET_EMATCH_META=m
CONFIG_NET_EMATCH_TEXT=m
CONFIG_NET_CLS_ACT=y
CONFIG_NET_ACT_POLICE=m
CONFIG_NET_ACT_GACT=m
CONFIG_GACT_PROB=y
CONFIG_NET_ACT_MIRRED=m
CONFIG_NET_ACT_NAT=m
CONFIG_NET_ACT_PEDIT=m
CONFIG_NET_ACT_SIMP=m
CONFIG_NET_ACT_SKBEDIT=m
CONFIG_NET_ACT_CSUM=m
# CONFIG_NET_ACT_VLAN is not set
# CONFIG_NET_ACT_BPF is not set
CONFIG_NET_CLS_IND=y
CONFIG_NET_SCH_FIFO=y
# CONFIG_DCB is not set
CONFIG_DNS_RESOLVER=y
# CONFIG_BATMAN_ADV is not set
# CONFIG_OPENVSWITCH is not set
CONFIG_VSOCKETS=m
CONFIG_NETLINK_MMAP=y
# CONFIG_NETLINK_DIAG is not set
# CONFIG_NET_MPLS_GSO is not set
CONFIG_HSR=y
# CONFIG_NET_SWITCHDEV is not set
CONFIG_RPS=y
CONFIG_RFS_ACCEL=y
CONFIG_XPS=y
CONFIG_CGROUP_NET_PRIO=y
CONFIG_CGROUP_NET_CLASSID=y
CONFIG_NET_RX_BUSY_POLL=y
CONFIG_BQL=y
CONFIG_BPF_JIT=y
CONFIG_NET_FLOW_LIMIT=y

#
# Network testing
#
CONFIG_NET_PKTGEN=m
CONFIG_NET_TCPPROBE=m
CONFIG_NET_DROP_MONITOR=y
# CONFIG_HAMRADIO is not set
# CONFIG_CAN is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
CONFIG_FIB_RULES=y
# CONFIG_WIRELESS is not set
# CONFIG_WIMAX is not set
# CONFIG_RFKILL is not set
# CONFIG_RFKILL_REGULATOR is not set
CONFIG_NET_9P=y
CONFIG_NET_9P_VIRTIO=y
CONFIG_NET_9P_DEBUG=y
# CONFIG_CAIF is not set
# CONFIG_CEPH_LIB is not set
# CONFIG_NFC is not set
CONFIG_HAVE_BPF_JIT=y

#
# Device Drivers
#

#
# Generic Driver Options
#
CONFIG_UEVENT_HELPER=y
CONFIG_UEVENT_HELPER_PATH=""
CONFIG_DEVTMPFS=y
# CONFIG_DEVTMPFS_MOUNT is not set
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_EXTRA_FIRMWARE=""
# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
CONFIG_ALLOW_DEV_COREDUMP=y
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_GENERIC_CPU_DEVICES is not set
CONFIG_GENERIC_CPU_AUTOPROBE=y
CONFIG_REGMAP=y
CONFIG_REGMAP_I2C=y
CONFIG_REGMAP_IRQ=y
CONFIG_DMA_SHARED_BUFFER=y
# CONFIG_FENCE_TRACE is not set

#
# Bus devices
#
CONFIG_CONNECTOR=y
CONFIG_PROC_EVENTS=y
# CONFIG_MTD is not set
CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
# CONFIG_PARPORT is not set
CONFIG_PNP=y
# CONFIG_PNP_DEBUG_MESSAGES is not set

#
# Protocols
#
CONFIG_PNPACPI=y
CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_NULL_BLK=y
# CONFIG_BLK_DEV_FD is not set
# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_DRBD is not set
CONFIG_BLK_DEV_NBD=y
# CONFIG_BLK_DEV_NVME is not set
# CONFIG_BLK_DEV_SKD is not set
# CONFIG_BLK_DEV_SX8 is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=4096
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
CONFIG_VIRTIO_BLK=y
# CONFIG_BLK_DEV_HD is not set
# CONFIG_BLK_DEV_RBD is not set
# CONFIG_BLK_DEV_RSXX is not set

#
# Misc devices
#
# CONFIG_SENSORS_LIS3LV02D is not set
# CONFIG_AD525X_DPOT is not set
# CONFIG_DUMMY_IRQ is not set
# CONFIG_IBM_ASM is not set
# CONFIG_PHANTOM is not set
# CONFIG_SGI_IOC4 is not set
# CONFIG_TIFM_CORE is not set
# CONFIG_ICS932S401 is not set
# CONFIG_ENCLOSURE_SERVICES is not set
# CONFIG_HP_ILO is not set
# CONFIG_APDS9802ALS is not set
# CONFIG_ISL29003 is not set
# CONFIG_ISL29020 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_SENSORS_BH1780 is not set
# CONFIG_SENSORS_BH1770 is not set
# CONFIG_SENSORS_APDS990X is not set
# CONFIG_HMC6352 is not set
# CONFIG_DS1682 is not set
# CONFIG_TI_DAC7512 is not set
# CONFIG_VMWARE_BALLOON is not set
# CONFIG_BMP085_I2C is not set
# CONFIG_BMP085_SPI is not set
# CONFIG_USB_SWITCH_FSA9480 is not set
# CONFIG_LATTICE_ECP3_CONFIG is not set
# CONFIG_SRAM is not set
# CONFIG_C2PORT is not set

#
# EEPROM support
#
# CONFIG_EEPROM_AT24 is not set
# CONFIG_EEPROM_AT25 is not set
# CONFIG_EEPROM_LEGACY is not set
# CONFIG_EEPROM_MAX6875 is not set
# CONFIG_EEPROM_93CX6 is not set
# CONFIG_EEPROM_93XX46 is not set
# CONFIG_CB710_CORE is not set

#
# Texas Instruments shared transport line discipline
#
# CONFIG_TI_ST is not set
# CONFIG_SENSORS_LIS3_I2C is not set

#
# Altera FPGA firmware download module
#
# CONFIG_ALTERA_STAPL is not set
# CONFIG_INTEL_MEI is not set
# CONFIG_INTEL_MEI_ME is not set
# CONFIG_INTEL_MEI_TXE is not set
# CONFIG_VMWARE_VMCI is not set

#
# Intel MIC Bus Driver
#
# CONFIG_INTEL_MIC_BUS is not set

#
# Intel MIC Host Driver
#

#
# Intel MIC Card Driver
#
# CONFIG_GENWQE is not set
# CONFIG_ECHO is not set
# CONFIG_CXL_BASE is not set
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set

#
# SCSI device support
#
CONFIG_SCSI_MOD=y
# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
# CONFIG_SCSI_NETLINK is not set
# CONFIG_SCSI_MQ_DEFAULT is not set
CONFIG_SCSI_PROC_FS=y

#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=y
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
# CONFIG_BLK_DEV_SR is not set
# CONFIG_CHR_DEV_SG is not set
# CONFIG_CHR_DEV_SCH is not set
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
CONFIG_SCSI_SCAN_ASYNC=y

#
# SCSI Transports
#
# CONFIG_SCSI_SPI_ATTRS is not set
# CONFIG_SCSI_FC_ATTRS is not set
# CONFIG_SCSI_ISCSI_ATTRS is not set
# CONFIG_SCSI_SAS_ATTRS is not set
# CONFIG_SCSI_SAS_LIBSAS is not set
# CONFIG_SCSI_SRP_ATTRS is not set
CONFIG_SCSI_LOWLEVEL=y
# CONFIG_ISCSI_TCP is not set
# CONFIG_ISCSI_BOOT_SYSFS is not set
# CONFIG_SCSI_CXGB3_ISCSI is not set
# CONFIG_SCSI_CXGB4_ISCSI is not set
# CONFIG_SCSI_BNX2_ISCSI is not set
# CONFIG_BE2ISCSI is not set
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_HPSA is not set
# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_3W_SAS is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AACRAID is not set
# CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_AIC94XX is not set
# CONFIG_SCSI_MVSAS is not set
# CONFIG_SCSI_MVUMI is not set
# CONFIG_SCSI_DPT_I2O is not set
# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_ARCMSR is not set
# CONFIG_SCSI_ESAS2R is not set
CONFIG_MEGARAID_NEWGEN=y
# CONFIG_MEGARAID_MM is not set
# CONFIG_MEGARAID_LEGACY is not set
# CONFIG_MEGARAID_SAS is not set
# CONFIG_SCSI_MPT2SAS is not set
# CONFIG_SCSI_MPT3SAS is not set
# CONFIG_SCSI_UFSHCD is not set
# CONFIG_SCSI_HPTIOP is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_VMWARE_PVSCSI is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_ISCI is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_STEX is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_IPR is not set
# CONFIG_SCSI_QLOGIC_1280 is not set
# CONFIG_SCSI_QLA_ISCSI is not set
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_AM53C974 is not set
# CONFIG_SCSI_WD719X is not set
# CONFIG_SCSI_DEBUG is not set
# CONFIG_SCSI_PMCRAID is not set
# CONFIG_SCSI_PM8001 is not set
# CONFIG_SCSI_VIRTIO is not set
# CONFIG_SCSI_DH is not set
# CONFIG_SCSI_OSD_INITIATOR is not set
CONFIG_ATA=y
# CONFIG_ATA_NONSTANDARD is not set
CONFIG_ATA_VERBOSE_ERROR=y
CONFIG_ATA_ACPI=y
CONFIG_SATA_ZPODD=y
CONFIG_SATA_PMP=y

#
# Controllers with non-SFF native interface
#
# CONFIG_SATA_AHCI is not set
# CONFIG_SATA_AHCI_PLATFORM is not set
# CONFIG_SATA_INIC162X is not set
# CONFIG_SATA_ACARD_AHCI is not set
# CONFIG_SATA_SIL24 is not set
CONFIG_ATA_SFF=y

#
# SFF controllers with custom DMA interface
#
# CONFIG_PDC_ADMA is not set
# CONFIG_SATA_QSTOR is not set
# CONFIG_SATA_SX4 is not set
CONFIG_ATA_BMDMA=y

#
# SATA SFF controllers with BMDMA
#
CONFIG_ATA_PIIX=y
# CONFIG_SATA_MV is not set
# CONFIG_SATA_NV is not set
# CONFIG_SATA_PROMISE is not set
# CONFIG_SATA_SIL is not set
# CONFIG_SATA_SIS is not set
# CONFIG_SATA_SVW is not set
# CONFIG_SATA_ULI is not set
# CONFIG_SATA_VIA is not set
# CONFIG_SATA_VITESSE is not set

#
# PATA SFF controllers with BMDMA
#
# CONFIG_PATA_ALI is not set
# CONFIG_PATA_AMD is not set
# CONFIG_PATA_ARTOP is not set
# CONFIG_PATA_ATIIXP is not set
# CONFIG_PATA_ATP867X is not set
# CONFIG_PATA_CMD64X is not set
# CONFIG_PATA_CYPRESS is not set
# CONFIG_PATA_EFAR is not set
# CONFIG_PATA_HPT366 is not set
# CONFIG_PATA_HPT37X is not set
# CONFIG_PATA_HPT3X2N is not set
# CONFIG_PATA_HPT3X3 is not set
# CONFIG_PATA_IT8213 is not set
# CONFIG_PATA_IT821X is not set
# CONFIG_PATA_JMICRON is not set
# CONFIG_PATA_MARVELL is not set
# CONFIG_PATA_NETCELL is not set
# CONFIG_PATA_NINJA32 is not set
# CONFIG_PATA_NS87415 is not set
# CONFIG_PATA_OLDPIIX is not set
# CONFIG_PATA_OPTIDMA is not set
# CONFIG_PATA_PDC2027X is not set
# CONFIG_PATA_PDC_OLD is not set
# CONFIG_PATA_RADISYS is not set
# CONFIG_PATA_RDC is not set
# CONFIG_PATA_SCH is not set
# CONFIG_PATA_SERVERWORKS is not set
# CONFIG_PATA_SIL680 is not set
# CONFIG_PATA_SIS is not set
# CONFIG_PATA_TOSHIBA is not set
# CONFIG_PATA_TRIFLEX is not set
# CONFIG_PATA_VIA is not set
# CONFIG_PATA_WINBOND is not set

#
# PIO-only SFF controllers
#
# CONFIG_PATA_CMD640_PCI is not set
# CONFIG_PATA_MPIIX is not set
# CONFIG_PATA_NS87410 is not set
# CONFIG_PATA_OPTI is not set
# CONFIG_PATA_RZ1000 is not set

#
# Generic fallback / legacy drivers
#
CONFIG_PATA_ACPI=y
CONFIG_ATA_GENERIC=y
# CONFIG_PATA_LEGACY is not set
CONFIG_MD=y
# CONFIG_BLK_DEV_MD is not set
# CONFIG_BCACHE is not set
# CONFIG_BLK_DEV_DM is not set
# CONFIG_TARGET_CORE is not set
CONFIG_FUSION=y
# CONFIG_FUSION_SPI is not set
# CONFIG_FUSION_SAS is not set
CONFIG_FUSION_MAX_SGE=128
# CONFIG_FUSION_LOGGING is not set

#
# IEEE 1394 (FireWire) support
#
# CONFIG_FIREWIRE is not set
# CONFIG_FIREWIRE_NOSY is not set
# CONFIG_I2O is not set
# CONFIG_MACINTOSH_DRIVERS is not set
CONFIG_NETDEVICES=y
CONFIG_MII=m
CONFIG_NET_CORE=y
CONFIG_BONDING=m
CONFIG_DUMMY=m
CONFIG_EQUALIZER=m
# CONFIG_NET_FC is not set
CONFIG_IFB=m
CONFIG_NET_TEAM=m
CONFIG_NET_TEAM_MODE_BROADCAST=m
CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
CONFIG_NET_TEAM_MODE_RANDOM=m
CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
CONFIG_NET_TEAM_MODE_LOADBALANCE=m
CONFIG_MACVLAN=m
CONFIG_MACVTAP=m
# CONFIG_IPVLAN is not set
CONFIG_VXLAN=m
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
CONFIG_RIONET=m
CONFIG_RIONET_TX_SIZE=128
CONFIG_RIONET_RX_SIZE=128
CONFIG_TUN=m
CONFIG_VETH=m
CONFIG_VIRTIO_NET=y
CONFIG_NLMON=m
# CONFIG_ARCNET is not set

#
# CAIF transport drivers
#
CONFIG_VHOST_NET=m
CONFIG_VHOST_RING=m
CONFIG_VHOST=m

#
# Distributed Switch Architecture drivers
#
# CONFIG_NET_DSA_MV88E6XXX is not set
# CONFIG_NET_DSA_MV88E6060 is not set
# CONFIG_NET_DSA_MV88E6XXX_NEED_PPU is not set
# CONFIG_NET_DSA_MV88E6131 is not set
# CONFIG_NET_DSA_MV88E6123_61_65 is not set
# CONFIG_NET_DSA_MV88E6171 is not set
# CONFIG_NET_DSA_MV88E6352 is not set
# CONFIG_NET_DSA_BCM_SF2 is not set
CONFIG_ETHERNET=y
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_NET_VENDOR_ADAPTEC is not set
# CONFIG_NET_VENDOR_AGERE is not set
# CONFIG_NET_VENDOR_ALTEON is not set
# CONFIG_ALTERA_TSE is not set
# CONFIG_NET_VENDOR_AMD is not set
# CONFIG_NET_XGENE is not set
# CONFIG_NET_VENDOR_ARC is not set
# CONFIG_NET_VENDOR_ATHEROS is not set
# CONFIG_NET_VENDOR_BROADCOM is not set
# CONFIG_NET_VENDOR_BROCADE is not set
# CONFIG_NET_VENDOR_CHELSIO is not set
# CONFIG_NET_VENDOR_CISCO is not set
# CONFIG_CX_ECAT is not set
# CONFIG_DNET is not set
# CONFIG_NET_VENDOR_DEC is not set
# CONFIG_NET_VENDOR_DLINK is not set
# CONFIG_NET_VENDOR_EMULEX is not set
# CONFIG_NET_VENDOR_EXAR is not set
# CONFIG_NET_VENDOR_HP is not set
CONFIG_NET_VENDOR_INTEL=y
# CONFIG_E100 is not set
CONFIG_E1000=m
# CONFIG_E1000E is not set
# CONFIG_IGB is not set
# CONFIG_IGBVF is not set
# CONFIG_IXGB is not set
# CONFIG_IXGBE is not set
# CONFIG_IXGBEVF is not set
# CONFIG_I40E is not set
# CONFIG_I40EVF is not set
# CONFIG_FM10K is not set
CONFIG_NET_VENDOR_I825XX=y
# CONFIG_IP1000 is not set
# CONFIG_JME is not set
CONFIG_NET_VENDOR_MARVELL=y
# CONFIG_MVMDIO is not set
# CONFIG_SKGE is not set
CONFIG_SKY2=m
# CONFIG_SKY2_DEBUG is not set
# CONFIG_NET_VENDOR_MELLANOX is not set
# CONFIG_NET_VENDOR_MICREL is not set
# CONFIG_NET_VENDOR_MICROCHIP is not set
# CONFIG_NET_VENDOR_MYRI is not set
# CONFIG_FEALNX is not set
# CONFIG_NET_VENDOR_NATSEMI is not set
# CONFIG_NET_VENDOR_NVIDIA is not set
# CONFIG_NET_VENDOR_OKI is not set
# CONFIG_ETHOC is not set
# CONFIG_NET_PACKET_ENGINE is not set
# CONFIG_NET_VENDOR_QLOGIC is not set
# CONFIG_NET_VENDOR_QUALCOMM is not set
CONFIG_NET_VENDOR_REALTEK=y
CONFIG_8139CP=m
CONFIG_8139TOO=m
CONFIG_8139TOO_PIO=y
# CONFIG_8139TOO_TUNE_TWISTER is not set
# CONFIG_8139TOO_8129 is not set
# CONFIG_8139_OLD_RX_RESET is not set
CONFIG_R8169=m
# CONFIG_NET_VENDOR_RDC is not set
# CONFIG_NET_VENDOR_ROCKER is not set
# CONFIG_NET_VENDOR_SAMSUNG is not set
# CONFIG_NET_VENDOR_SEEQ is not set
# CONFIG_NET_VENDOR_SILAN is not set
# CONFIG_NET_VENDOR_SIS is not set
# CONFIG_SFC is not set
# CONFIG_NET_VENDOR_SMSC is not set
# CONFIG_NET_VENDOR_STMICRO is not set
# CONFIG_NET_VENDOR_SUN is not set
# CONFIG_NET_VENDOR_TEHUTI is not set
# CONFIG_NET_VENDOR_TI is not set
CONFIG_NET_VENDOR_VIA=y
CONFIG_VIA_RHINE=m
# CONFIG_VIA_RHINE_MMIO is not set
# CONFIG_VIA_VELOCITY is not set
# CONFIG_NET_VENDOR_WIZNET is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_NET_SB1000 is not set
# CONFIG_PHYLIB is not set
# CONFIG_MICREL_KS8995MA is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set

#
# Host-side USB support is needed for USB Network Adapter support
#
# CONFIG_WLAN is not set

#
# Enable WiMAX (Networking options) to see the WiMAX drivers
#
# CONFIG_WAN is not set
# CONFIG_VMXNET3 is not set
# CONFIG_ISDN is not set

#
# Input device support
#
CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set
# CONFIG_INPUT_POLLDEV is not set
# CONFIG_INPUT_SPARSEKMAP is not set
# CONFIG_INPUT_MATRIXKMAP is not set

#
# Userland interfaces
#
# CONFIG_INPUT_MOUSEDEV is not set
# CONFIG_INPUT_JOYDEV is not set
CONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_EVBUG is not set

#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_ADP5588 is not set
# CONFIG_KEYBOARD_ADP5589 is not set
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_QT1070 is not set
# CONFIG_KEYBOARD_QT2160 is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_GPIO is not set
# CONFIG_KEYBOARD_GPIO_POLLED is not set
# CONFIG_KEYBOARD_TCA6416 is not set
# CONFIG_KEYBOARD_TCA8418 is not set
# CONFIG_KEYBOARD_MATRIX is not set
# CONFIG_KEYBOARD_LM8323 is not set
# CONFIG_KEYBOARD_LM8333 is not set
# CONFIG_KEYBOARD_MAX7359 is not set
# CONFIG_KEYBOARD_MCS is not set
# CONFIG_KEYBOARD_MPR121 is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_OPENCORES is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
CONFIG_INPUT_LEDS=y
# CONFIG_INPUT_MOUSE is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set

#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
CONFIG_SERIO_I8042=y
# CONFIG_SERIO_SERPORT is not set
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=y
CONFIG_SERIO_RAW=y
# CONFIG_SERIO_ALTERA_PS2 is not set
# CONFIG_SERIO_PS2MULT is not set
# CONFIG_SERIO_ARC_PS2 is not set
# CONFIG_GAMEPORT is not set

#
# Character devices
#
CONFIG_TTY=y
CONFIG_VT=y
CONFIG_CONSOLE_TRANSLATIONS=y
CONFIG_VT_CONSOLE=y
CONFIG_VT_CONSOLE_SLEEP=y
CONFIG_HW_CONSOLE=y
CONFIG_VT_HW_CONSOLE_BINDING=y
CONFIG_UNIX98_PTYS=y
CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
# CONFIG_LEGACY_PTYS is not set
CONFIG_SERIAL_NONSTANDARD=y
# CONFIG_ROCKETPORT is not set
# CONFIG_CYCLADES is not set
# CONFIG_MOXA_INTELLIO is not set
# CONFIG_MOXA_SMARTIO is not set
# CONFIG_SYNCLINK is not set
# CONFIG_SYNCLINKMP is not set
# CONFIG_SYNCLINK_GT is not set
# CONFIG_NOZOMI is not set
# CONFIG_ISI is not set
# CONFIG_N_HDLC is not set
# CONFIG_N_GSM is not set
# CONFIG_TRACE_SINK is not set
CONFIG_DEVMEM=y
# CONFIG_DEVKMEM is not set

#
# Serial drivers
#
CONFIG_SERIAL_EARLYCON=y
CONFIG_SERIAL_8250=y
# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
CONFIG_SERIAL_8250_PNP=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_DMA=y
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_NR_UARTS=32
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
# CONFIG_SERIAL_8250_EXTENDED is not set
# CONFIG_SERIAL_8250_DW is not set
# CONFIG_SERIAL_8250_FINTEK is not set

#
# Non-8250 serial port support
#
# CONFIG_SERIAL_MAX3100 is not set
# CONFIG_SERIAL_MAX310X is not set
# CONFIG_SERIAL_MFD_HSU is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_JSM is not set
# CONFIG_SERIAL_SCCNXP is not set
# CONFIG_SERIAL_SC16IS7XX is not set
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
# CONFIG_SERIAL_ALTERA_UART is not set
# CONFIG_SERIAL_IFX6X60 is not set
# CONFIG_SERIAL_ARC is not set
# CONFIG_SERIAL_RP2 is not set
# CONFIG_SERIAL_FSL_LPUART is not set
CONFIG_HVC_DRIVER=y
CONFIG_VIRTIO_CONSOLE=m
# CONFIG_IPMI_HANDLER is not set
CONFIG_HW_RANDOM=y
# CONFIG_HW_RANDOM_TIMERIOMEM is not set
# CONFIG_HW_RANDOM_INTEL is not set
# CONFIG_HW_RANDOM_AMD is not set
# CONFIG_HW_RANDOM_VIA is not set
# CONFIG_HW_RANDOM_VIRTIO is not set
# CONFIG_NVRAM is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_MWAVE is not set
# CONFIG_RAW_DRIVER is not set
CONFIG_HPET=y
CONFIG_HPET_MMAP=y
CONFIG_HPET_MMAP_DEFAULT=y
# CONFIG_HANGCHECK_TIMER is not set
# CONFIG_TCG_TPM is not set
# CONFIG_TELCLOCK is not set
CONFIG_DEVPORT=y
# CONFIG_XILLYBUS is not set

#
# I2C support
#
CONFIG_I2C=y
CONFIG_ACPI_I2C_OPREGION=y
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_COMPAT=y
# CONFIG_I2C_CHARDEV is not set
# CONFIG_I2C_MUX is not set
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_ALGOBIT=y

#
# I2C Hardware Bus support
#

#
# PC SMBus host controller drivers
#
# CONFIG_I2C_ALI1535 is not set
# CONFIG_I2C_ALI1563 is not set
# CONFIG_I2C_ALI15X3 is not set
# CONFIG_I2C_AMD756 is not set
# CONFIG_I2C_AMD8111 is not set
# CONFIG_I2C_I801 is not set
# CONFIG_I2C_ISCH is not set
# CONFIG_I2C_ISMT is not set
CONFIG_I2C_PIIX4=y
# CONFIG_I2C_NFORCE2 is not set
# CONFIG_I2C_SIS5595 is not set
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
# CONFIG_I2C_VIA is not set
# CONFIG_I2C_VIAPRO is not set

#
# ACPI drivers
#
# CONFIG_I2C_SCMI is not set

#
# I2C system bus drivers (mostly embedded / system-on-chip)
#
# CONFIG_I2C_CBUS_GPIO is not set
# CONFIG_I2C_DESIGNWARE_PCI is not set
# CONFIG_I2C_GPIO is not set
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PCA_PLATFORM is not set
# CONFIG_I2C_PXA_PCI is not set
# CONFIG_I2C_SIMTEC is not set
# CONFIG_I2C_XILINX is not set

#
# External I2C/SMBus adapter drivers
#
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_TAOS_EVM is not set

#
# Other I2C/SMBus bus drivers
#
# CONFIG_I2C_STUB is not set
# CONFIG_I2C_SLAVE is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
CONFIG_SPI=y
# CONFIG_SPI_DEBUG is not set
CONFIG_SPI_MASTER=y

#
# SPI Master Controller Drivers
#
# CONFIG_SPI_ALTERA is not set
# CONFIG_SPI_BITBANG is not set
# CONFIG_SPI_GPIO is not set
# CONFIG_SPI_OC_TINY is not set
# CONFIG_SPI_PXA2XX is not set
# CONFIG_SPI_PXA2XX_PCI is not set
# CONFIG_SPI_SC18IS602 is not set
# CONFIG_SPI_XCOMM is not set
# CONFIG_SPI_XILINX is not set
# CONFIG_SPI_DESIGNWARE is not set

#
# SPI Protocol Masters
#
# CONFIG_SPI_SPIDEV is not set
# CONFIG_SPI_TLE62X0 is not set
# CONFIG_SPMI is not set
# CONFIG_HSI is not set

#
# PPS support
#
CONFIG_PPS=m
# CONFIG_PPS_DEBUG is not set

#
# PPS clients support
#
# CONFIG_PPS_CLIENT_KTIMER is not set
# CONFIG_PPS_CLIENT_LDISC is not set
# CONFIG_PPS_CLIENT_GPIO is not set

#
# PPS generators support
#

#
# PTP clock support
#
CONFIG_PTP_1588_CLOCK=m

#
# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
#
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
CONFIG_GPIOLIB=y
CONFIG_GPIO_DEVRES=y
CONFIG_GPIO_ACPI=y
# CONFIG_DEBUG_GPIO is not set
CONFIG_GPIO_SYSFS=y

#
# Memory mapped GPIO drivers:
#
# CONFIG_GPIO_GENERIC_PLATFORM is not set
# CONFIG_GPIO_IT8761E is not set
# CONFIG_GPIO_F7188X is not set
# CONFIG_GPIO_SCH311X is not set
# CONFIG_GPIO_SCH is not set
# CONFIG_GPIO_ICH is not set
# CONFIG_GPIO_VX855 is not set
# CONFIG_GPIO_LYNXPOINT is not set

#
# I2C GPIO expanders:
#
# CONFIG_GPIO_MAX7300 is not set
# CONFIG_GPIO_MAX732X is not set
# CONFIG_GPIO_PCA953X is not set
# CONFIG_GPIO_PCF857X is not set
# CONFIG_GPIO_SX150X is not set
# CONFIG_GPIO_ADP5588 is not set

#
# PCI GPIO expanders:
#
# CONFIG_GPIO_BT8XX is not set
# CONFIG_GPIO_AMD8111 is not set
# CONFIG_GPIO_INTEL_MID is not set
# CONFIG_GPIO_ML_IOH is not set
# CONFIG_GPIO_RDC321X is not set

#
# SPI GPIO expanders:
#
# CONFIG_GPIO_MAX7301 is not set
# CONFIG_GPIO_MCP23S08 is not set
# CONFIG_GPIO_MC33880 is not set

#
# AC97 GPIO expanders:
#

#
# LPC GPIO expanders:
#

#
# MODULbus GPIO expanders:
#

#
# USB GPIO expanders:
#
# CONFIG_W1 is not set
CONFIG_POWER_SUPPLY=y
# CONFIG_POWER_SUPPLY_DEBUG is not set
# CONFIG_PDA_POWER is not set
# CONFIG_TEST_POWER is not set
# CONFIG_BATTERY_DS2780 is not set
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
# CONFIG_BATTERY_SBS is not set
# CONFIG_BATTERY_BQ27x00 is not set
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
# CONFIG_CHARGER_MAX8903 is not set
# CONFIG_CHARGER_LP8727 is not set
# CONFIG_CHARGER_GPIO is not set
# CONFIG_CHARGER_MANAGER is not set
# CONFIG_CHARGER_BQ2415X is not set
# CONFIG_CHARGER_BQ24190 is not set
# CONFIG_CHARGER_BQ24735 is not set
# CONFIG_CHARGER_SMB347 is not set
CONFIG_POWER_RESET=y
CONFIG_POWER_AVS=y
CONFIG_HWMON=y
# CONFIG_HWMON_VID is not set
# CONFIG_HWMON_DEBUG_CHIP is not set

#
# Native drivers
#
# CONFIG_SENSORS_ABITUGURU is not set
# CONFIG_SENSORS_ABITUGURU3 is not set
# CONFIG_SENSORS_AD7314 is not set
# CONFIG_SENSORS_AD7414 is not set
# CONFIG_SENSORS_AD7418 is not set
# CONFIG_SENSORS_ADM1021 is not set
# CONFIG_SENSORS_ADM1025 is not set
# CONFIG_SENSORS_ADM1026 is not set
# CONFIG_SENSORS_ADM1029 is not set
# CONFIG_SENSORS_ADM1031 is not set
# CONFIG_SENSORS_ADM9240 is not set
# CONFIG_SENSORS_ADT7310 is not set
# CONFIG_SENSORS_ADT7410 is not set
# CONFIG_SENSORS_ADT7411 is not set
# CONFIG_SENSORS_ADT7462 is not set
# CONFIG_SENSORS_ADT7470 is not set
# CONFIG_SENSORS_ADT7475 is not set
# CONFIG_SENSORS_ASC7621 is not set
# CONFIG_SENSORS_K8TEMP is not set
# CONFIG_SENSORS_K10TEMP is not set
# CONFIG_SENSORS_FAM15H_POWER is not set
# CONFIG_SENSORS_APPLESMC is not set
# CONFIG_SENSORS_ASB100 is not set
# CONFIG_SENSORS_ATXP1 is not set
# CONFIG_SENSORS_DS620 is not set
# CONFIG_SENSORS_DS1621 is not set
# CONFIG_SENSORS_I5K_AMB is not set
# CONFIG_SENSORS_F71805F is not set
# CONFIG_SENSORS_F71882FG is not set
# CONFIG_SENSORS_F75375S is not set
# CONFIG_SENSORS_FSCHMD is not set
# CONFIG_SENSORS_GL518SM is not set
# CONFIG_SENSORS_GL520SM is not set
# CONFIG_SENSORS_G760A is not set
# CONFIG_SENSORS_G762 is not set
# CONFIG_SENSORS_GPIO_FAN is not set
# CONFIG_SENSORS_HIH6130 is not set
# CONFIG_SENSORS_I5500 is not set
# CONFIG_SENSORS_CORETEMP is not set
# CONFIG_SENSORS_IT87 is not set
# CONFIG_SENSORS_JC42 is not set
# CONFIG_SENSORS_POWR1220 is not set
# CONFIG_SENSORS_LINEAGE is not set
# CONFIG_SENSORS_LTC2945 is not set
# CONFIG_SENSORS_LTC4151 is not set
# CONFIG_SENSORS_LTC4215 is not set
# CONFIG_SENSORS_LTC4222 is not set
# CONFIG_SENSORS_LTC4245 is not set
# CONFIG_SENSORS_LTC4260 is not set
# CONFIG_SENSORS_LTC4261 is not set
# CONFIG_SENSORS_MAX1111 is not set
# CONFIG_SENSORS_MAX16065 is not set
# CONFIG_SENSORS_MAX1619 is not set
# CONFIG_SENSORS_MAX1668 is not set
# CONFIG_SENSORS_MAX197 is not set
# CONFIG_SENSORS_MAX6639 is not set
# CONFIG_SENSORS_MAX6642 is not set
# CONFIG_SENSORS_MAX6650 is not set
# CONFIG_SENSORS_MAX6697 is not set
# CONFIG_SENSORS_HTU21 is not set
# CONFIG_SENSORS_MCP3021 is not set
# CONFIG_SENSORS_ADCXX is not set
# CONFIG_SENSORS_LM63 is not set
# CONFIG_SENSORS_LM70 is not set
# CONFIG_SENSORS_LM73 is not set
# CONFIG_SENSORS_LM75 is not set
# CONFIG_SENSORS_LM77 is not set
# CONFIG_SENSORS_LM78 is not set
# CONFIG_SENSORS_LM80 is not set
# CONFIG_SENSORS_LM83 is not set
# CONFIG_SENSORS_LM85 is not set
# CONFIG_SENSORS_LM87 is not set
# CONFIG_SENSORS_LM90 is not set
# CONFIG_SENSORS_LM92 is not set
# CONFIG_SENSORS_LM93 is not set
# CONFIG_SENSORS_LM95234 is not set
# CONFIG_SENSORS_LM95241 is not set
# CONFIG_SENSORS_LM95245 is not set
# CONFIG_SENSORS_PC87360 is not set
# CONFIG_SENSORS_PC87427 is not set
# CONFIG_SENSORS_NTC_THERMISTOR is not set
# CONFIG_SENSORS_NCT6683 is not set
# CONFIG_SENSORS_NCT6775 is not set
# CONFIG_SENSORS_NCT7802 is not set
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_PMBUS is not set
# CONFIG_SENSORS_SHT15 is not set
# CONFIG_SENSORS_SHT21 is not set
# CONFIG_SENSORS_SHTC1 is not set
# CONFIG_SENSORS_SIS5595 is not set
# CONFIG_SENSORS_DME1737 is not set
# CONFIG_SENSORS_EMC1403 is not set
# CONFIG_SENSORS_EMC2103 is not set
# CONFIG_SENSORS_EMC6W201 is not set
# CONFIG_SENSORS_SMSC47M1 is not set
# CONFIG_SENSORS_SMSC47M192 is not set
# CONFIG_SENSORS_SMSC47B397 is not set
# CONFIG_SENSORS_SCH56XX_COMMON is not set
# CONFIG_SENSORS_SCH5627 is not set
# CONFIG_SENSORS_SCH5636 is not set
# CONFIG_SENSORS_SMM665 is not set
# CONFIG_SENSORS_ADC128D818 is not set
# CONFIG_SENSORS_ADS1015 is not set
# CONFIG_SENSORS_ADS7828 is not set
# CONFIG_SENSORS_ADS7871 is not set
# CONFIG_SENSORS_AMC6821 is not set
# CONFIG_SENSORS_INA209 is not set
# CONFIG_SENSORS_INA2XX is not set
# CONFIG_SENSORS_THMC50 is not set
# CONFIG_SENSORS_TMP102 is not set
# CONFIG_SENSORS_TMP103 is not set
# CONFIG_SENSORS_TMP401 is not set
# CONFIG_SENSORS_TMP421 is not set
# CONFIG_SENSORS_VIA_CPUTEMP is not set
# CONFIG_SENSORS_VIA686A is not set
# CONFIG_SENSORS_VT1211 is not set
# CONFIG_SENSORS_VT8231 is not set
# CONFIG_SENSORS_W83781D is not set
# CONFIG_SENSORS_W83791D is not set
# CONFIG_SENSORS_W83792D is not set
# CONFIG_SENSORS_W83793 is not set
# CONFIG_SENSORS_W83795 is not set
# CONFIG_SENSORS_W83L785TS is not set
# CONFIG_SENSORS_W83L786NG is not set
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set

#
# ACPI drivers
#
# CONFIG_SENSORS_ACPI_POWER is not set
# CONFIG_SENSORS_ATK0110 is not set
CONFIG_THERMAL=y
CONFIG_THERMAL_HWMON=y
CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
CONFIG_THERMAL_GOV_FAIR_SHARE=y
CONFIG_THERMAL_GOV_STEP_WISE=y
# CONFIG_THERMAL_GOV_BANG_BANG is not set
CONFIG_THERMAL_GOV_USER_SPACE=y
# CONFIG_THERMAL_EMULATION is not set
# CONFIG_INTEL_POWERCLAMP is not set
# CONFIG_X86_PKG_TEMP_THERMAL is not set
# CONFIG_INTEL_SOC_DTS_THERMAL is not set

#
# ACPI INT340X thermal drivers
#
# CONFIG_INT340X_THERMAL is not set

#
# Texas Instruments thermal drivers
#
CONFIG_WATCHDOG=y
CONFIG_WATCHDOG_CORE=y
# CONFIG_WATCHDOG_NOWAYOUT is not set

#
# Watchdog Device Drivers
#
# CONFIG_SOFT_WATCHDOG is not set
# CONFIG_XILINX_WATCHDOG is not set
# CONFIG_DW_WATCHDOG is not set
# CONFIG_ACQUIRE_WDT is not set
# CONFIG_ADVANTECH_WDT is not set
# CONFIG_ALIM1535_WDT is not set
# CONFIG_ALIM7101_WDT is not set
# CONFIG_F71808E_WDT is not set
# CONFIG_SP5100_TCO is not set
# CONFIG_SBC_FITPC2_WATCHDOG is not set
# CONFIG_EUROTECH_WDT is not set
# CONFIG_IB700_WDT is not set
# CONFIG_IBMASR is not set
# CONFIG_WAFER_WDT is not set
# CONFIG_I6300ESB_WDT is not set
# CONFIG_IE6XX_WDT is not set
# CONFIG_ITCO_WDT is not set
# CONFIG_IT8712F_WDT is not set
# CONFIG_IT87_WDT is not set
# CONFIG_HP_WATCHDOG is not set
# CONFIG_SC1200_WDT is not set
# CONFIG_PC87413_WDT is not set
# CONFIG_NV_TCO is not set
# CONFIG_60XX_WDT is not set
# CONFIG_CPU5_WDT is not set
# CONFIG_SMSC_SCH311X_WDT is not set
# CONFIG_SMSC37B787_WDT is not set
# CONFIG_VIA_WDT is not set
# CONFIG_W83627HF_WDT is not set
# CONFIG_W83877F_WDT is not set
# CONFIG_W83977F_WDT is not set
# CONFIG_MACHZ_WDT is not set
# CONFIG_SBC_EPX_C3_WATCHDOG is not set
# CONFIG_MEN_A21_WDT is not set

#
# PCI-based Watchdog Cards
#
# CONFIG_PCIPCWATCHDOG is not set
# CONFIG_WDTPCI is not set
CONFIG_SSB_POSSIBLE=y

#
# Sonics Silicon Backplane
#
# CONFIG_SSB is not set
CONFIG_BCMA_POSSIBLE=y

#
# Broadcom specific AMBA
#
# CONFIG_BCMA is not set

#
# Multifunction device drivers
#
CONFIG_MFD_CORE=y
# CONFIG_MFD_AS3711 is not set
# CONFIG_PMIC_ADP5520 is not set
# CONFIG_MFD_AAT2870_CORE is not set
# CONFIG_MFD_BCM590XX is not set
# CONFIG_MFD_AXP20X is not set
# CONFIG_MFD_CROS_EC is not set
# CONFIG_PMIC_DA903X is not set
# CONFIG_MFD_DA9052_SPI is not set
# CONFIG_MFD_DA9052_I2C is not set
# CONFIG_MFD_DA9055 is not set
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_MC13XXX_SPI is not set
# CONFIG_MFD_MC13XXX_I2C is not set
# CONFIG_HTC_PASIC3 is not set
# CONFIG_HTC_I2CPLD is not set
# CONFIG_LPC_ICH is not set
# CONFIG_LPC_SCH is not set
# CONFIG_INTEL_SOC_PMIC is not set
# CONFIG_MFD_JANZ_CMODIO is not set
# CONFIG_MFD_KEMPLD is not set
# CONFIG_MFD_88PM800 is not set
# CONFIG_MFD_88PM805 is not set
# CONFIG_MFD_88PM860X is not set
# CONFIG_MFD_MAX14577 is not set
# CONFIG_MFD_MAX77686 is not set
# CONFIG_MFD_MAX77693 is not set
# CONFIG_MFD_MAX8907 is not set
# CONFIG_MFD_MAX8925 is not set
# CONFIG_MFD_MAX8997 is not set
# CONFIG_MFD_MAX8998 is not set
# CONFIG_MFD_MENF21BMC is not set
# CONFIG_EZX_PCAP is not set
# CONFIG_MFD_RETU is not set
# CONFIG_MFD_PCF50633 is not set
# CONFIG_MFD_RDC321X is not set
# CONFIG_MFD_RTSX_PCI is not set
# CONFIG_MFD_RC5T583 is not set
# CONFIG_MFD_RN5T618 is not set
CONFIG_MFD_SEC_CORE=y
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SM501 is not set
# CONFIG_MFD_SMSC is not set
CONFIG_ABX500_CORE=y
# CONFIG_AB3100_CORE is not set
# CONFIG_MFD_SYSCON is not set
# CONFIG_MFD_TI_AM335X_TSCADC is not set
# CONFIG_MFD_LP3943 is not set
# CONFIG_MFD_LP8788 is not set
# CONFIG_MFD_PALMAS is not set
# CONFIG_TPS6105X is not set
# CONFIG_TPS65010 is not set
# CONFIG_TPS6507X is not set
# CONFIG_MFD_TPS65090 is not set
# CONFIG_MFD_TPS65217 is not set
# CONFIG_MFD_TPS65218 is not set
# CONFIG_MFD_TPS6586X is not set
# CONFIG_MFD_TPS65910 is not set
# CONFIG_MFD_TPS65912 is not set
# CONFIG_MFD_TPS65912_I2C is not set
# CONFIG_MFD_TPS65912_SPI is not set
# CONFIG_MFD_TPS80031 is not set
# CONFIG_TWL4030_CORE is not set
# CONFIG_TWL6040_CORE is not set
# CONFIG_MFD_WL1273_CORE is not set
# CONFIG_MFD_LM3533 is not set
# CONFIG_MFD_TC3589X is not set
# CONFIG_MFD_TMIO is not set
# CONFIG_MFD_VX855 is not set
# CONFIG_MFD_ARIZONA_I2C is not set
# CONFIG_MFD_ARIZONA_SPI is not set
# CONFIG_MFD_WM8400 is not set
# CONFIG_MFD_WM831X_I2C is not set
# CONFIG_MFD_WM831X_SPI is not set
# CONFIG_MFD_WM8350_I2C is not set
# CONFIG_MFD_WM8994 is not set
CONFIG_REGULATOR=y
# CONFIG_REGULATOR_DEBUG is not set
# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
# CONFIG_REGULATOR_ACT8865 is not set
# CONFIG_REGULATOR_AD5398 is not set
# CONFIG_REGULATOR_DA9210 is not set
# CONFIG_REGULATOR_DA9211 is not set
# CONFIG_REGULATOR_FAN53555 is not set
# CONFIG_REGULATOR_GPIO is not set
# CONFIG_REGULATOR_ISL9305 is not set
# CONFIG_REGULATOR_ISL6271A is not set
# CONFIG_REGULATOR_LP3971 is not set
# CONFIG_REGULATOR_LP3972 is not set
# CONFIG_REGULATOR_LP872X is not set
# CONFIG_REGULATOR_LP8755 is not set
# CONFIG_REGULATOR_LTC3589 is not set
# CONFIG_REGULATOR_MAX1586 is not set
# CONFIG_REGULATOR_MAX8649 is not set
# CONFIG_REGULATOR_MAX8660 is not set
# CONFIG_REGULATOR_MAX8952 is not set
# CONFIG_REGULATOR_MAX8973 is not set
# CONFIG_REGULATOR_PFUZE100 is not set
# CONFIG_REGULATOR_S2MPA01 is not set
# CONFIG_REGULATOR_S2MPS11 is not set
# CONFIG_REGULATOR_S5M8767 is not set
# CONFIG_REGULATOR_TPS51632 is not set
# CONFIG_REGULATOR_TPS62360 is not set
# CONFIG_REGULATOR_TPS65023 is not set
# CONFIG_REGULATOR_TPS6507X is not set
# CONFIG_REGULATOR_TPS6524X is not set
# CONFIG_MEDIA_SUPPORT is not set

#
# Graphics support
#
CONFIG_AGP=y
CONFIG_AGP_AMD64=y
CONFIG_AGP_INTEL=y
# CONFIG_AGP_SIS is not set
# CONFIG_AGP_VIA is not set
CONFIG_INTEL_GTT=y
CONFIG_VGA_ARB=y
CONFIG_VGA_ARB_MAX_GPUS=16
CONFIG_VGA_SWITCHEROO=y

#
# Direct Rendering Manager
#
CONFIG_DRM=y
CONFIG_DRM_KMS_HELPER=y
CONFIG_DRM_KMS_FB_HELPER=y
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
CONFIG_DRM_TTM=y

#
# I2C encoder or helper chips
#
# CONFIG_DRM_I2C_ADV7511 is not set
# CONFIG_DRM_I2C_CH7006 is not set
# CONFIG_DRM_I2C_SIL164 is not set
# CONFIG_DRM_I2C_NXP_TDA998X is not set
# CONFIG_DRM_PTN3460 is not set
# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_R128 is not set
# CONFIG_DRM_RADEON is not set
# CONFIG_DRM_NOUVEAU is not set
# CONFIG_DRM_I915 is not set
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_SIS is not set
# CONFIG_DRM_VIA is not set
# CONFIG_DRM_SAVAGE is not set
# CONFIG_DRM_VMWGFX is not set
# CONFIG_DRM_GMA500 is not set
# CONFIG_DRM_UDL is not set
# CONFIG_DRM_AST is not set
# CONFIG_DRM_MGAG200 is not set
CONFIG_DRM_CIRRUS_QEMU=y
# CONFIG_DRM_QXL is not set
# CONFIG_DRM_BOCHS is not set

#
# Frame buffer Devices
#
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
CONFIG_FB_CMDLINE=y
# CONFIG_FB_DDC is not set
CONFIG_FB_BOOT_VESA_SUPPORT=y
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
CONFIG_FB_SYS_FILLRECT=y
CONFIG_FB_SYS_COPYAREA=y
CONFIG_FB_SYS_IMAGEBLIT=y
# CONFIG_FB_FOREIGN_ENDIAN is not set
# CONFIG_FB_SYS_FOPS is not set
# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
# CONFIG_FB_BACKLIGHT is not set
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_TILEBLITTING=y

#
# Frame buffer hardware drivers
#
# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_ARC is not set
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
# CONFIG_FB_VGA16 is not set
# CONFIG_FB_UVESA is not set
CONFIG_FB_VESA=y
CONFIG_FB_EFI=y
# CONFIG_FB_N411 is not set
# CONFIG_FB_HGA is not set
# CONFIG_FB_OPENCORES is not set
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_NVIDIA is not set
# CONFIG_FB_RIVA is not set
# CONFIG_FB_I740 is not set
# CONFIG_FB_LE80578 is not set
# CONFIG_FB_MATROX is not set
# CONFIG_FB_RADEON is not set
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_S3 is not set
# CONFIG_FB_SAVAGE is not set
# CONFIG_FB_SIS is not set
# CONFIG_FB_VIA is not set
# CONFIG_FB_NEOMAGIC is not set
# CONFIG_FB_KYRO is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_VT8623 is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_ARK is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_CARMINE is not set
# CONFIG_FB_VIRTUAL is not set
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_MB862XX is not set
# CONFIG_FB_BROADSHEET is not set
# CONFIG_FB_AUO_K190X is not set
# CONFIG_FB_SIMPLE is not set
CONFIG_BACKLIGHT_LCD_SUPPORT=y
# CONFIG_LCD_CLASS_DEVICE is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_GENERIC is not set
# CONFIG_BACKLIGHT_APPLE is not set
# CONFIG_BACKLIGHT_SAHARA is not set
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
# CONFIG_BACKLIGHT_LM3639 is not set
# CONFIG_BACKLIGHT_GPIO is not set
# CONFIG_BACKLIGHT_LV5207LP is not set
# CONFIG_BACKLIGHT_BD6107 is not set
# CONFIG_VGASTATE is not set
CONFIG_HDMI=y

#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
# CONFIG_VGACON_SOFT_SCROLLBACK is not set
CONFIG_DUMMY_CONSOLE=y
CONFIG_DUMMY_CONSOLE_COLUMNS=80
CONFIG_DUMMY_CONSOLE_ROWS=25
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
# CONFIG_LOGO is not set
# CONFIG_SOUND is not set

#
# HID support
#
# CONFIG_HID is not set

#
# I2C HID support
#
# CONFIG_I2C_HID is not set
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y
# CONFIG_USB is not set

#
# USB port drivers
#

#
# USB Physical Layer drivers
#
# CONFIG_USB_PHY is not set
# CONFIG_NOP_USB_XCEIV is not set
# CONFIG_USB_GPIO_VBUS is not set
# CONFIG_USB_GADGET is not set
# CONFIG_UWB is not set
# CONFIG_MMC is not set
# CONFIG_MEMSTICK is not set
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y

#
# LED drivers
#
# CONFIG_LEDS_LM3530 is not set
# CONFIG_LEDS_LM3642 is not set
# CONFIG_LEDS_PCA9532 is not set
# CONFIG_LEDS_GPIO is not set
# CONFIG_LEDS_LP3944 is not set
# CONFIG_LEDS_LP5521 is not set
# CONFIG_LEDS_LP5523 is not set
# CONFIG_LEDS_LP5562 is not set
# CONFIG_LEDS_LP8501 is not set
# CONFIG_LEDS_LP8860 is not set
# CONFIG_LEDS_CLEVO_MAIL is not set
# CONFIG_LEDS_PCA955X is not set
# CONFIG_LEDS_PCA963X is not set
# CONFIG_LEDS_DAC124S085 is not set
# CONFIG_LEDS_REGULATOR is not set
# CONFIG_LEDS_BD2802 is not set
# CONFIG_LEDS_INTEL_SS4200 is not set
# CONFIG_LEDS_LT3593 is not set
# CONFIG_LEDS_TCA6507 is not set
# CONFIG_LEDS_LM355x is not set

#
# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
#
# CONFIG_LEDS_BLINKM is not set

#
# LED Triggers
#
CONFIG_LEDS_TRIGGERS=y
# CONFIG_LEDS_TRIGGER_TIMER is not set
# CONFIG_LEDS_TRIGGER_ONESHOT is not set
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_CPU is not set
# CONFIG_LEDS_TRIGGER_GPIO is not set
# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set

#
# iptables trigger is under Netfilter config (LED target)
#
# CONFIG_LEDS_TRIGGER_TRANSIENT is not set
# CONFIG_LEDS_TRIGGER_CAMERA is not set
# CONFIG_ACCESSIBILITY is not set
# CONFIG_INFINIBAND is not set
CONFIG_EDAC=y
CONFIG_EDAC_LEGACY_SYSFS=y
# CONFIG_EDAC_DEBUG is not set
# CONFIG_EDAC_DECODE_MCE is not set
# CONFIG_EDAC_MM_EDAC is not set
CONFIG_RTC_LIB=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_SYSTOHC=y
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
# CONFIG_RTC_DEBUG is not set

#
# RTC interfaces
#
CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_DEV=y
CONFIG_RTC_INTF_DEV_UIE_EMUL=y
# CONFIG_RTC_DRV_TEST is not set

#
# I2C RTC drivers
#
# CONFIG_RTC_DRV_ABB5ZES3 is not set
# CONFIG_RTC_DRV_DS1307 is not set
# CONFIG_RTC_DRV_DS1374 is not set
# CONFIG_RTC_DRV_DS1672 is not set
# CONFIG_RTC_DRV_DS3232 is not set
# CONFIG_RTC_DRV_MAX6900 is not set
# CONFIG_RTC_DRV_RS5C372 is not set
# CONFIG_RTC_DRV_ISL1208 is not set
# CONFIG_RTC_DRV_ISL12022 is not set
# CONFIG_RTC_DRV_ISL12057 is not set
# CONFIG_RTC_DRV_X1205 is not set
# CONFIG_RTC_DRV_PCF2127 is not set
# CONFIG_RTC_DRV_PCF8523 is not set
# CONFIG_RTC_DRV_PCF8563 is not set
# CONFIG_RTC_DRV_PCF85063 is not set
# CONFIG_RTC_DRV_PCF8583 is not set
# CONFIG_RTC_DRV_M41T80 is not set
# CONFIG_RTC_DRV_BQ32K is not set
# CONFIG_RTC_DRV_S35390A is not set
# CONFIG_RTC_DRV_FM3130 is not set
# CONFIG_RTC_DRV_RX8581 is not set
# CONFIG_RTC_DRV_RX8025 is not set
# CONFIG_RTC_DRV_EM3027 is not set
# CONFIG_RTC_DRV_RV3029C2 is not set
# CONFIG_RTC_DRV_S5M is not set

#
# SPI RTC drivers
#
# CONFIG_RTC_DRV_M41T93 is not set
# CONFIG_RTC_DRV_M41T94 is not set
# CONFIG_RTC_DRV_DS1305 is not set
# CONFIG_RTC_DRV_DS1343 is not set
# CONFIG_RTC_DRV_DS1347 is not set
# CONFIG_RTC_DRV_DS1390 is not set
# CONFIG_RTC_DRV_MAX6902 is not set
# CONFIG_RTC_DRV_R9701 is not set
# CONFIG_RTC_DRV_RS5C348 is not set
# CONFIG_RTC_DRV_DS3234 is not set
# CONFIG_RTC_DRV_PCF2123 is not set
# CONFIG_RTC_DRV_RX4581 is not set
# CONFIG_RTC_DRV_MCP795 is not set

#
# Platform RTC drivers
#
CONFIG_RTC_DRV_CMOS=y
# CONFIG_RTC_DRV_DS1286 is not set
# CONFIG_RTC_DRV_DS1511 is not set
# CONFIG_RTC_DRV_DS1553 is not set
# CONFIG_RTC_DRV_DS1742 is not set
# CONFIG_RTC_DRV_DS2404 is not set
# CONFIG_RTC_DRV_STK17TA8 is not set
# CONFIG_RTC_DRV_M48T86 is not set
# CONFIG_RTC_DRV_M48T35 is not set
# CONFIG_RTC_DRV_M48T59 is not set
# CONFIG_RTC_DRV_MSM6242 is not set
# CONFIG_RTC_DRV_BQ4802 is not set
# CONFIG_RTC_DRV_RP5C01 is not set
# CONFIG_RTC_DRV_V3020 is not set

#
# on-CPU RTC drivers
#
# CONFIG_RTC_DRV_XGENE is not set

#
# HID Sensor RTC drivers
#
CONFIG_DMADEVICES=y
# CONFIG_DMADEVICES_DEBUG is not set

#
# DMA Devices
#
# CONFIG_INTEL_MID_DMAC is not set
# CONFIG_INTEL_IOATDMA is not set
# CONFIG_DW_DMAC_CORE is not set
# CONFIG_DW_DMAC is not set
# CONFIG_DW_DMAC_PCI is not set
CONFIG_DMA_ENGINE=y
CONFIG_DMA_ACPI=y

#
# DMA Clients
#
CONFIG_ASYNC_TX_DMA=y
# CONFIG_DMATEST is not set
CONFIG_AUXDISPLAY=y
# CONFIG_UIO is not set
# CONFIG_VFIO is not set
CONFIG_VIRT_DRIVERS=y
CONFIG_VIRTIO=y

#
# Virtio drivers
#
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_PCI_LEGACY=y
CONFIG_VIRTIO_BALLOON=y
CONFIG_VIRTIO_MMIO=y
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y

#
# Microsoft Hyper-V guest support
#
# CONFIG_HYPERV is not set
# CONFIG_STAGING is not set
CONFIG_X86_PLATFORM_DEVICES=y
# CONFIG_ACERHDF is not set
# CONFIG_ASUS_LAPTOP is not set
# CONFIG_DELL_SMO8800 is not set
# CONFIG_FUJITSU_LAPTOP is not set
# CONFIG_FUJITSU_TABLET is not set
# CONFIG_HP_ACCEL is not set
# CONFIG_HP_WIRELESS is not set
# CONFIG_PANASONIC_LAPTOP is not set
# CONFIG_THINKPAD_ACPI is not set
# CONFIG_SENSORS_HDAPS is not set
# CONFIG_EEEPC_LAPTOP is not set
# CONFIG_ACPI_WMI is not set
# CONFIG_TOPSTAR_LAPTOP is not set
# CONFIG_TOSHIBA_BT_RFKILL is not set
# CONFIG_TOSHIBA_HAPS is not set
# CONFIG_ACPI_CMPC is not set
# CONFIG_INTEL_IPS is not set
# CONFIG_IBM_RTL is not set
# CONFIG_SAMSUNG_LAPTOP is not set
# CONFIG_SAMSUNG_Q10 is not set
# CONFIG_APPLE_GMUX is not set
# CONFIG_INTEL_RST is not set
CONFIG_INTEL_SMARTCONNECT=y
# CONFIG_PVPANIC is not set
# CONFIG_CHROME_PLATFORMS is not set

#
# SOC (System On Chip) specific Drivers
#
# CONFIG_SOC_TI is not set

#
# Hardware Spinlock drivers
#

#
# Clock Source drivers
#
CONFIG_CLKEVT_I8253=y
CONFIG_I8253_LOCK=y
CONFIG_CLKBLD_I8253=y
# CONFIG_ATMEL_PIT is not set
# CONFIG_SH_TIMER_CMT is not set
# CONFIG_SH_TIMER_MTU2 is not set
# CONFIG_SH_TIMER_TMU is not set
# CONFIG_EM_TIMER_STI is not set
# CONFIG_MAILBOX is not set
CONFIG_IOMMU_API=y
CONFIG_IOMMU_SUPPORT=y
CONFIG_IOMMU_IOVA=y
CONFIG_AMD_IOMMU=y
# CONFIG_AMD_IOMMU_STATS is not set
# CONFIG_AMD_IOMMU_V2 is not set
CONFIG_DMAR_TABLE=y
CONFIG_INTEL_IOMMU=y
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
CONFIG_INTEL_IOMMU_FLOPPY_WA=y
CONFIG_IRQ_REMAP=y

#
# Remoteproc drivers
#
# CONFIG_STE_MODEM_RPROC is not set

#
# Rpmsg drivers
#

#
# SOC (System On Chip) specific Drivers
#
# CONFIG_PM_DEVFREQ is not set
# CONFIG_EXTCON is not set
CONFIG_MEMORY=y
# CONFIG_IIO is not set
# CONFIG_NTB is not set
# CONFIG_VME_BUS is not set
# CONFIG_PWM is not set
# CONFIG_IPACK_BUS is not set
# CONFIG_RESET_CONTROLLER is not set
# CONFIG_FMC is not set

#
# PHY Subsystem
#
CONFIG_GENERIC_PHY=y
# CONFIG_BCM_KONA_USB2_PHY is not set
# CONFIG_POWERCAP is not set
# CONFIG_MCB is not set
CONFIG_RAS=y
# CONFIG_THUNDERBOLT is not set

#
# Android
#
# CONFIG_ANDROID is not set

#
# Firmware Drivers
#
# CONFIG_EDD is not set
CONFIG_FIRMWARE_MEMMAP=y
# CONFIG_DELL_RBU is not set
# CONFIG_DCDBAS is not set
CONFIG_DMIID=y
# CONFIG_DMI_SYSFS is not set
CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
# CONFIG_ISCSI_IBFT_FIND is not set
# CONFIG_GOOGLE_FIRMWARE is not set

#
# EFI (Extensible Firmware Interface) Support
#
# CONFIG_EFI_VARS is not set
CONFIG_EFI_RUNTIME_MAP=y
CONFIG_EFI_RUNTIME_WRAPPERS=y
CONFIG_UEFI_CPER=y

#
# File systems
#
CONFIG_DCACHE_WORD_ACCESS=y
# CONFIG_EXT2_FS is not set
# CONFIG_EXT3_FS is not set
CONFIG_EXT4_FS=y
CONFIG_EXT4_USE_FOR_EXT23=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
# CONFIG_EXT4_DEBUG is not set
CONFIG_JBD2=y
# CONFIG_JBD2_DEBUG is not set
CONFIG_FS_MBCACHE=y
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
# CONFIG_XFS_FS is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_BTRFS_FS is not set
# CONFIG_NILFS2_FS is not set
# CONFIG_FS_DAX is not set
CONFIG_FS_POSIX_ACL=y
CONFIG_EXPORTFS=y
CONFIG_FILE_LOCKING=y
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
CONFIG_INOTIFY_USER=y
CONFIG_FANOTIFY=y
CONFIG_QUOTA=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
# CONFIG_PRINT_QUOTA_WARNING is not set
# CONFIG_QUOTA_DEBUG is not set
# CONFIG_QFMT_V1 is not set
# CONFIG_QFMT_V2 is not set
CONFIG_QUOTACTL=y
CONFIG_QUOTACTL_COMPAT=y
CONFIG_AUTOFS4_FS=y
# CONFIG_FUSE_FS is not set
# CONFIG_OVERLAY_FS is not set

#
# Caches
#
# CONFIG_FSCACHE is not set

#
# CD-ROM/DVD Filesystems
#
# CONFIG_ISO9660_FS is not set
# CONFIG_UDF_FS is not set

#
# DOS/FAT/NT Filesystems
#
# CONFIG_MSDOS_FS is not set
# CONFIG_VFAT_FS is not set
# CONFIG_NTFS_FS is not set

#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_PROC_SYSCTL=y
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_KERNFS=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_TMPFS_XATTR=y
CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y
CONFIG_CONFIGFS_FS=y
CONFIG_MISC_FILESYSTEMS=y
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_ECRYPT_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_LOGFS is not set
# CONFIG_CRAMFS is not set
# CONFIG_SQUASHFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_OMFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_QNX6FS_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_PSTORE=y
# CONFIG_PSTORE_CONSOLE is not set
# CONFIG_PSTORE_PMSG is not set
# CONFIG_PSTORE_FTRACE is not set
# CONFIG_PSTORE_RAM is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
# CONFIG_F2FS_FS is not set
CONFIG_EFIVAR_FS=y
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V2=y
CONFIG_NFS_V3=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y
CONFIG_NFS_SWAP=y
CONFIG_NFS_V4_1=y
CONFIG_NFS_V4_2=y
CONFIG_PNFS_FILE_LAYOUT=y
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
CONFIG_NFS_V4_1_MIGRATION=y
CONFIG_NFS_USE_LEGACY_DNS=y
CONFIG_NFSD=y
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_NFSD_FAULT_INJECTION=y
CONFIG_GRACE_PERIOD=y
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_NFS_ACL_SUPPORT=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
CONFIG_SUNRPC_GSS=y
CONFIG_SUNRPC_BACKCHANNEL=y
CONFIG_SUNRPC_SWAP=y
# CONFIG_SUNRPC_DEBUG is not set
# CONFIG_CEPH_FS is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
CONFIG_9P_FS=y
CONFIG_9P_FS_POSIX_ACL=y
CONFIG_9P_FS_SECURITY=y
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="utf8"
# CONFIG_NLS_CODEPAGE_437 is not set
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
# CONFIG_NLS_MAC_ROMAN is not set
# CONFIG_NLS_MAC_CELTIC is not set
# CONFIG_NLS_MAC_CENTEURO is not set
# CONFIG_NLS_MAC_CROATIAN is not set
# CONFIG_NLS_MAC_CYRILLIC is not set
# CONFIG_NLS_MAC_GAELIC is not set
# CONFIG_NLS_MAC_GREEK is not set
# CONFIG_NLS_MAC_ICELAND is not set
# CONFIG_NLS_MAC_INUIT is not set
# CONFIG_NLS_MAC_ROMANIAN is not set
# CONFIG_NLS_MAC_TURKISH is not set
# CONFIG_NLS_UTF8 is not set
# CONFIG_DLM is not set

#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y

#
# printk and dmesg options
#
CONFIG_PRINTK_TIME=y
CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
# CONFIG_BOOT_PRINTK_DELAY is not set
CONFIG_DYNAMIC_DEBUG=y

#
# Compile-time checks and compiler options
#
# CONFIG_DEBUG_INFO is not set
CONFIG_ENABLE_WARN_DEPRECATED=y
# CONFIG_ENABLE_MUST_CHECK is not set
CONFIG_FRAME_WARN=2048
CONFIG_STRIP_ASM_SYMS=y
# CONFIG_READABLE_ASM is not set
CONFIG_UNUSED_SYMBOLS=y
# CONFIG_PAGE_OWNER is not set
CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
# CONFIG_DEBUG_SECTION_MISMATCH is not set
CONFIG_ARCH_WANT_FRAME_POINTERS=y
CONFIG_FRAME_POINTER=y
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
CONFIG_MAGIC_SYSRQ=y
CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
CONFIG_DEBUG_KERNEL=y

#
# Memory Debugging
#
CONFIG_PAGE_EXTENSION=y
CONFIG_DEBUG_PAGEALLOC=y
CONFIG_DEBUG_OBJECTS=y
# CONFIG_DEBUG_OBJECTS_SELFTEST is not set
# CONFIG_DEBUG_OBJECTS_FREE is not set
# CONFIG_DEBUG_OBJECTS_TIMERS is not set
# CONFIG_DEBUG_OBJECTS_WORK is not set
# CONFIG_DEBUG_OBJECTS_RCU_HEAD is not set
# CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER is not set
CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
CONFIG_SLUB_DEBUG_ON=y
# CONFIG_SLUB_STATS is not set
CONFIG_HAVE_DEBUG_KMEMLEAK=y
CONFIG_DEBUG_KMEMLEAK=y
CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=2000
# CONFIG_DEBUG_KMEMLEAK_TEST is not set
# CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_VIRTUAL is not set
CONFIG_DEBUG_MEMORY_INIT=y
# CONFIG_DEBUG_PER_CPU_MAPS is not set
CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
CONFIG_DEBUG_STACKOVERFLOW=y
CONFIG_HAVE_ARCH_KMEMCHECK=y
# CONFIG_DEBUG_SHIRQ is not set

#
# Debug Lockups and Hangs
#
CONFIG_LOCKUP_DETECTOR=y
CONFIG_HARDLOCKUP_DETECTOR=y
# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set
CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0
# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
CONFIG_DETECT_HUNG_TASK=y
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
# CONFIG_PANIC_ON_OOPS is not set
CONFIG_PANIC_ON_OOPS_VALUE=0
CONFIG_PANIC_TIMEOUT=0
# CONFIG_SCHED_DEBUG is not set
# CONFIG_SCHEDSTATS is not set
# CONFIG_SCHED_STACK_END_CHECK is not set
# CONFIG_TIMER_STATS is not set
CONFIG_DEBUG_PREEMPT=y

#
# Lock Debugging (spinlocks, mutexes, etc...)
#
CONFIG_DEBUG_RT_MUTEXES=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_MUTEXES=y
# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
CONFIG_DEBUG_LOCK_ALLOC=y
CONFIG_PROVE_LOCKING=y
CONFIG_LOCKDEP=y
CONFIG_LOCK_STAT=y
CONFIG_DEBUG_LOCKDEP=y
CONFIG_DEBUG_ATOMIC_SLEEP=y
CONFIG_DEBUG_LOCKING_API_SELFTESTS=y
# CONFIG_LOCK_TORTURE_TEST is not set
CONFIG_TRACE_IRQFLAGS=y
CONFIG_STACKTRACE=y
# CONFIG_DEBUG_KOBJECT is not set
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_DEBUG_LIST=y
CONFIG_DEBUG_PI_LIST=y
# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_NOTIFIERS is not set
# CONFIG_DEBUG_CREDENTIALS is not set

#
# RCU Debugging
#
CONFIG_PROVE_RCU=y
# CONFIG_PROVE_RCU_REPEATEDLY is not set
CONFIG_SPARSE_RCU_POINTER=y
# CONFIG_TORTURE_TEST is not set
# CONFIG_RCU_TORTURE_TEST is not set
CONFIG_RCU_CPU_STALL_TIMEOUT=60
# CONFIG_RCU_CPU_STALL_INFO is not set
# CONFIG_RCU_TRACE is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
# CONFIG_NOTIFIER_ERROR_INJECTION is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set
CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS=y
# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
CONFIG_USER_STACKTRACE_SUPPORT=y
CONFIG_NOP_TRACER=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_FENTRY=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_TRACER_MAX_TRACE=y
CONFIG_TRACE_CLOCK=y
CONFIG_RING_BUFFER=y
CONFIG_EVENT_TRACING=y
CONFIG_CONTEXT_SWITCH_TRACER=y
CONFIG_TRACING=y
CONFIG_GENERIC_TRACER=y
CONFIG_TRACING_SUPPORT=y
CONFIG_FTRACE=y
CONFIG_FUNCTION_TRACER=y
CONFIG_FUNCTION_GRAPH_TRACER=y
# CONFIG_IRQSOFF_TRACER is not set
# CONFIG_PREEMPT_TRACER is not set
CONFIG_SCHED_TRACER=y
CONFIG_FTRACE_SYSCALLS=y
CONFIG_TRACER_SNAPSHOT=y
# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set
CONFIG_BRANCH_PROFILE_NONE=y
# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
# CONFIG_PROFILE_ALL_BRANCHES is not set
CONFIG_STACK_TRACER=y
CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_KPROBE_EVENT=y
CONFIG_UPROBE_EVENT=y
CONFIG_PROBE_EVENTS=y
CONFIG_DYNAMIC_FTRACE=y
CONFIG_DYNAMIC_FTRACE_WITH_REGS=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_FTRACE_MCOUNT_RECORD=y
# CONFIG_FTRACE_STARTUP_TEST is not set
CONFIG_MMIOTRACE=y
# CONFIG_MMIOTRACE_TEST is not set
# CONFIG_TRACEPOINT_BENCHMARK is not set
# CONFIG_RING_BUFFER_BENCHMARK is not set
# CONFIG_RING_BUFFER_STARTUP_TEST is not set

#
# Runtime Testing
#
# CONFIG_LKDTM is not set
# CONFIG_TEST_LIST_SORT is not set
# CONFIG_KPROBES_SANITY_TEST is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_RBTREE_TEST is not set
# CONFIG_INTERVAL_TREE_TEST is not set
# CONFIG_PERCPU_TEST is not set
# CONFIG_ATOMIC64_SELFTEST is not set
# CONFIG_TEST_HEXDUMP is not set
# CONFIG_TEST_STRING_HELPERS is not set
# CONFIG_TEST_KSTRTOX is not set
# CONFIG_TEST_RHASHTABLE is not set
# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
# CONFIG_DMA_API_DEBUG is not set
# CONFIG_TEST_LKM is not set
# CONFIG_TEST_USER_COPY is not set
# CONFIG_TEST_BPF is not set
# CONFIG_TEST_FIRMWARE is not set
# CONFIG_TEST_UDELAY is not set
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_KGDB is not set
CONFIG_STRICT_DEVMEM=y
CONFIG_X86_VERBOSE_BOOTUP=y
CONFIG_EARLY_PRINTK=y
# CONFIG_EARLY_PRINTK_DBGP is not set
CONFIG_EARLY_PRINTK_EFI=y
# CONFIG_X86_PTDUMP is not set
CONFIG_DEBUG_RODATA=y
# CONFIG_DEBUG_RODATA_TEST is not set
# CONFIG_DEBUG_SET_MODULE_RONX is not set
# CONFIG_DEBUG_NX_TEST is not set
CONFIG_DOUBLEFAULT=y
# CONFIG_DEBUG_TLBFLUSH is not set
# CONFIG_IOMMU_DEBUG is not set
# CONFIG_IOMMU_STRESS is not set
CONFIG_HAVE_MMIOTRACE_SUPPORT=y
# CONFIG_X86_DECODER_SELFTEST is not set
CONFIG_IO_DELAY_TYPE_0X80=0
CONFIG_IO_DELAY_TYPE_0XED=1
CONFIG_IO_DELAY_TYPE_UDELAY=2
CONFIG_IO_DELAY_TYPE_NONE=3
CONFIG_IO_DELAY_0X80=y
# CONFIG_IO_DELAY_0XED is not set
# CONFIG_IO_DELAY_UDELAY is not set
# CONFIG_IO_DELAY_NONE is not set
CONFIG_DEFAULT_IO_DELAY_TYPE=0
# CONFIG_DEBUG_BOOT_PARAMS is not set
# CONFIG_CPA_DEBUG is not set
# CONFIG_OPTIMIZE_INLINING is not set
# CONFIG_DEBUG_NMI_SELFTEST is not set
# CONFIG_X86_DEBUG_STATIC_CPU_HAS is not set

#
# Security options
#
CONFIG_KEYS=y
# CONFIG_PERSISTENT_KEYRINGS is not set
# CONFIG_BIG_KEYS is not set
# CONFIG_ENCRYPTED_KEYS is not set
# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
# CONFIG_SECURITY_DMESG_RESTRICT is not set
# CONFIG_SECURITY is not set
# CONFIG_SECURITYFS is not set
# CONFIG_INTEL_TXT is not set
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_DEFAULT_SECURITY=""
CONFIG_CRYPTO=y

#
# Crypto core or helper
#
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
CONFIG_CRYPTO_AEAD=m
CONFIG_CRYPTO_AEAD2=y
CONFIG_CRYPTO_BLKCIPHER=y
CONFIG_CRYPTO_BLKCIPHER2=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_HASH2=y
CONFIG_CRYPTO_RNG2=y
CONFIG_CRYPTO_PCOMP2=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
# CONFIG_CRYPTO_USER is not set
CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
# CONFIG_CRYPTO_GF128MUL is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_PCRYPT is not set
CONFIG_CRYPTO_WORKQUEUE=y
# CONFIG_CRYPTO_CRYPTD is not set
# CONFIG_CRYPTO_MCRYPTD is not set
CONFIG_CRYPTO_AUTHENC=m
# CONFIG_CRYPTO_TEST is not set

#
# Authenticated Encryption with Associated Data
#
# CONFIG_CRYPTO_CCM is not set
# CONFIG_CRYPTO_GCM is not set
# CONFIG_CRYPTO_SEQIV is not set

#
# Block modes
#
CONFIG_CRYPTO_CBC=y
# CONFIG_CRYPTO_CTR is not set
# CONFIG_CRYPTO_CTS is not set
# CONFIG_CRYPTO_ECB is not set
# CONFIG_CRYPTO_LRW is not set
# CONFIG_CRYPTO_PCBC is not set
# CONFIG_CRYPTO_XTS is not set

#
# Hash modes
#
# CONFIG_CRYPTO_CMAC is not set
CONFIG_CRYPTO_HMAC=y
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_VMAC is not set

#
# Digest
#
CONFIG_CRYPTO_CRC32C=y
# CONFIG_CRYPTO_CRC32C_INTEL is not set
# CONFIG_CRYPTO_CRC32 is not set
# CONFIG_CRYPTO_CRC32_PCLMUL is not set
# CONFIG_CRYPTO_CRCT10DIF is not set
# CONFIG_CRYPTO_GHASH is not set
# CONFIG_CRYPTO_MD4 is not set
CONFIG_CRYPTO_MD5=y
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_RMD128 is not set
# CONFIG_CRYPTO_RMD160 is not set
# CONFIG_CRYPTO_RMD256 is not set
# CONFIG_CRYPTO_RMD320 is not set
CONFIG_CRYPTO_SHA1=y
# CONFIG_CRYPTO_SHA1_SSSE3 is not set
# CONFIG_CRYPTO_SHA256_SSSE3 is not set
# CONFIG_CRYPTO_SHA512_SSSE3 is not set
# CONFIG_CRYPTO_SHA1_MB is not set
CONFIG_CRYPTO_SHA256=y
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_TGR192 is not set
# CONFIG_CRYPTO_WP512 is not set
# CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL is not set

#
# Ciphers
#
CONFIG_CRYPTO_AES=y
# CONFIG_CRYPTO_AES_X86_64 is not set
# CONFIG_CRYPTO_AES_NI_INTEL is not set
# CONFIG_CRYPTO_ANUBIS is not set
# CONFIG_CRYPTO_ARC4 is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_BLOWFISH_X86_64 is not set
# CONFIG_CRYPTO_CAMELLIA is not set
# CONFIG_CRYPTO_CAMELLIA_X86_64 is not set
# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64 is not set
# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 is not set
# CONFIG_CRYPTO_CAST5 is not set
# CONFIG_CRYPTO_CAST5_AVX_X86_64 is not set
# CONFIG_CRYPTO_CAST6 is not set
# CONFIG_CRYPTO_CAST6_AVX_X86_64 is not set
CONFIG_CRYPTO_DES=m
# CONFIG_CRYPTO_DES3_EDE_X86_64 is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_SALSA20 is not set
# CONFIG_CRYPTO_SALSA20_X86_64 is not set
# CONFIG_CRYPTO_SEED is not set
# CONFIG_CRYPTO_SERPENT is not set
# CONFIG_CRYPTO_SERPENT_SSE2_X86_64 is not set
# CONFIG_CRYPTO_SERPENT_AVX_X86_64 is not set
# CONFIG_CRYPTO_SERPENT_AVX2_X86_64 is not set
# CONFIG_CRYPTO_TEA is not set
# CONFIG_CRYPTO_TWOFISH is not set
# CONFIG_CRYPTO_TWOFISH_X86_64 is not set
# CONFIG_CRYPTO_TWOFISH_X86_64_3WAY is not set
# CONFIG_CRYPTO_TWOFISH_AVX_X86_64 is not set

#
# Compression
#
CONFIG_CRYPTO_DEFLATE=m
# CONFIG_CRYPTO_ZLIB is not set
CONFIG_CRYPTO_LZO=y
# CONFIG_CRYPTO_LZ4 is not set
# CONFIG_CRYPTO_LZ4HC is not set

#
# Random Number Generation
#
# CONFIG_CRYPTO_ANSI_CPRNG is not set
# CONFIG_CRYPTO_DRBG_MENU is not set
# CONFIG_CRYPTO_USER_API_HASH is not set
# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
# CONFIG_CRYPTO_USER_API_RNG is not set
CONFIG_CRYPTO_HASH_INFO=y
CONFIG_CRYPTO_HW=y
# CONFIG_CRYPTO_DEV_PADLOCK is not set
# CONFIG_CRYPTO_DEV_CCP is not set
# CONFIG_CRYPTO_DEV_QAT_DH895xCC is not set
CONFIG_ASYMMETRIC_KEY_TYPE=y
CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
CONFIG_PUBLIC_KEY_ALGO_RSA=y
CONFIG_X509_CERTIFICATE_PARSER=y
# CONFIG_PKCS7_MESSAGE_PARSER is not set
CONFIG_HAVE_KVM=y
CONFIG_VIRTUALIZATION=y
# CONFIG_KVM is not set
CONFIG_BINARY_PRINTF=y

#
# Library routines
#
CONFIG_BITREVERSE=y
# CONFIG_HAVE_ARCH_BITREVERSE is not set
CONFIG_GENERIC_STRNCPY_FROM_USER=y
CONFIG_GENERIC_STRNLEN_USER=y
CONFIG_GENERIC_NET_UTILS=y
CONFIG_GENERIC_FIND_FIRST_BIT=y
CONFIG_GENERIC_PCI_IOMAP=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_IO=y
CONFIG_PERCPU_RWSEM=y
CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
# CONFIG_CRC_CCITT is not set
CONFIG_CRC16=y
# CONFIG_CRC_T10DIF is not set
# CONFIG_CRC_ITU_T is not set
CONFIG_CRC32=y
# CONFIG_CRC32_SELFTEST is not set
CONFIG_CRC32_SLICEBY8=y
# CONFIG_CRC32_SLICEBY4 is not set
# CONFIG_CRC32_SARWATE is not set
# CONFIG_CRC32_BIT is not set
# CONFIG_CRC7 is not set
CONFIG_LIBCRC32C=m
# CONFIG_CRC8 is not set
# CONFIG_CRC64_ECMA is not set
# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set
# CONFIG_RANDOM32_SELFTEST is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_LZO_COMPRESS=y
CONFIG_LZO_DECOMPRESS=y
CONFIG_LZ4_DECOMPRESS=y
CONFIG_XZ_DEC=y
CONFIG_XZ_DEC_X86=y
CONFIG_XZ_DEC_POWERPC=y
CONFIG_XZ_DEC_IA64=y
CONFIG_XZ_DEC_ARM=y
CONFIG_XZ_DEC_ARMTHUMB=y
CONFIG_XZ_DEC_SPARC=y
CONFIG_XZ_DEC_BCJ=y
# CONFIG_XZ_DEC_TEST is not set
CONFIG_DECOMPRESS_GZIP=y
CONFIG_DECOMPRESS_BZIP2=y
CONFIG_DECOMPRESS_LZMA=y
CONFIG_DECOMPRESS_XZ=y
CONFIG_DECOMPRESS_LZO=y
CONFIG_DECOMPRESS_LZ4=y
CONFIG_GENERIC_ALLOCATOR=y
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
CONFIG_ASSOCIATIVE_ARRAY=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT_MAP=y
CONFIG_HAS_DMA=y
CONFIG_CPU_RMAP=y
CONFIG_DQL=y
CONFIG_GLOB=y
# CONFIG_GLOB_SELFTEST is not set
CONFIG_NLATTR=y
CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
CONFIG_AVERAGE=y
CONFIG_CLZ_TAB=y
# CONFIG_CORDIC is not set
CONFIG_DDR=y
CONFIG_MPILIB=y
CONFIG_OID_REGISTRY=y
CONFIG_UCS2_STRING=y
CONFIG_FONT_SUPPORT=y
CONFIG_FONTS=y
# CONFIG_FONT_8x8 is not set
CONFIG_FONT_8x16=y
# CONFIG_FONT_6x11 is not set
# CONFIG_FONT_7x14 is not set
# CONFIG_FONT_PEARL_8x8 is not set
# CONFIG_FONT_ACORN_8x8 is not set
# CONFIG_FONT_MINI_4x6 is not set
# CONFIG_FONT_6x10 is not set
# CONFIG_FONT_SUN8x16 is not set
# CONFIG_FONT_SUN12x22 is not set
# CONFIG_FONT_10x18 is not set
CONFIG_FONT_AUTOSELECT=y
CONFIG_ARCH_HAS_SG_CHAIN=y


-- 
Sabrina

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-20 17:39   ` Paul Moore
  2015-01-20 17:51     ` Sabrina Dubroca
@ 2015-01-20 17:54     ` Fabio Estevam
  2015-01-20 19:00       ` Ross Zwisler
  1 sibling, 1 reply; 62+ messages in thread
From: Fabio Estevam @ 2015-01-20 17:54 UTC (permalink / raw)
  To: Paul Moore
  Cc: Sabrina Dubroca, Stephen Rothwell, linux-next, linux-kernel,
	linux-fsdevel, linux-audit, viro, Richard Guy Briggs

On Tue, Jan 20, 2015 at 3:39 PM, Paul Moore <pmoore@redhat.com> wrote:

> Thanks for testing this and reporting the problem, especially such a small
> bisection.  Unfortunately nothing is immediately obvious to me, would you mind
> sharing your kernel config so I can try to reproduce and debug the problem?

In case it helps, I also get the similar errors on a mx6 which is
built with arch/arm/configs/imx_v6_v7_defconfig:

[    1.594196] imx-ipuv3 2800000.ipu: IPUv3H probed
[    1.601836]  ram0: unknown partition table
[    1.607247]  ram1: unknown partition table
[    1.612617]  ram2: unknown partition table
[    1.618010]  ram3: unknown partition table
[    1.623359]  ram4: unknown partition table
[    1.628761]  ram5: unknown partition table
[    1.634065]  ram6: unknown partition table
[    1.639436]  ram7: unknown partition table
[    1.644749]  ram8: unknown partition table
[    1.650132]  ram9: unknown partition table
[    1.655447]  ram10: unknown partition table
[    1.660911]  ram11: unknown partition table
[    1.666268]  ram12: unknown partition table
[    1.671778]  ram13: unknown partition table
[    1.677154]  ram14: unknown partition table
[    1.682593]  ram15: unknown partition table
[    1.687165] brd: module loaded
[    1.705148] loop: module loaded

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-20 17:54     ` Fabio Estevam
@ 2015-01-20 19:00       ` Ross Zwisler
  2015-01-20 19:16         ` Fabio Estevam
  0 siblings, 1 reply; 62+ messages in thread
From: Ross Zwisler @ 2015-01-20 19:00 UTC (permalink / raw)
  To: Fabio Estevam, Boaz Harrosh, Jens Axboe
  Cc: Paul Moore, Sabrina Dubroca, Stephen Rothwell, linux-next,
	linux-kernel, linux-fsdevel, linux-audit, viro,
	Richard Guy Briggs

On Tue, 2015-01-20 at 15:54 -0200, Fabio Estevam wrote:
> On Tue, Jan 20, 2015 at 3:39 PM, Paul Moore <pmoore@redhat.com> wrote:
> 
> > Thanks for testing this and reporting the problem, especially such a small
> > bisection.  Unfortunately nothing is immediately obvious to me, would you mind
> > sharing your kernel config so I can try to reproduce and debug the problem?
> 
> In case it helps, I also get the similar errors on a mx6 which is
> built with arch/arm/configs/imx_v6_v7_defconfig:
> 
> [    1.594196] imx-ipuv3 2800000.ipu: IPUv3H probed
> [    1.601836]  ram0: unknown partition table
> [    1.607247]  ram1: unknown partition table
> [    1.612617]  ram2: unknown partition table
> [    1.618010]  ram3: unknown partition table
> [    1.623359]  ram4: unknown partition table
> [    1.628761]  ram5: unknown partition table
> [    1.634065]  ram6: unknown partition table
> [    1.639436]  ram7: unknown partition table
> [    1.644749]  ram8: unknown partition table
> [    1.650132]  ram9: unknown partition table
> [    1.655447]  ram10: unknown partition table
> [    1.660911]  ram11: unknown partition table
> [    1.666268]  ram12: unknown partition table
> [    1.671778]  ram13: unknown partition table
> [    1.677154]  ram14: unknown partition table
> [    1.682593]  ram15: unknown partition table
> [    1.687165] brd: module loaded
> [    1.705148] loop: module loaded

This is probably related to the issue reported in this thread:

https://lkml.org/lkml/2015/1/16/563


These were just nuisance warnings, I believe, so my guess is that this
isn't related to your kernel panic.   Reverting Boaz's patches to make
these warnings go away would let you know for sure.

- Ross


^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-20 19:00       ` Ross Zwisler
@ 2015-01-20 19:16         ` Fabio Estevam
  2015-01-20 19:24           ` Paul Moore
  0 siblings, 1 reply; 62+ messages in thread
From: Fabio Estevam @ 2015-01-20 19:16 UTC (permalink / raw)
  To: Ross Zwisler
  Cc: Boaz Harrosh, Jens Axboe, Paul Moore, Sabrina Dubroca,
	Stephen Rothwell, linux-next, linux-kernel, linux-fsdevel,
	linux-audit, viro, Richard Guy Briggs

On Tue, Jan 20, 2015 at 5:00 PM, Ross Zwisler
<ross.zwisler@linux.intel.com> wrote:

> These were just nuisance warnings, I believe, so my guess is that this
> isn't related to your kernel panic.   Reverting Boaz's patches to make
> these warnings go away would let you know for sure.

You are right. Reverting 937af5ecd0591e makes such warnings disappear.

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-20 19:16         ` Fabio Estevam
@ 2015-01-20 19:24           ` Paul Moore
  2015-01-20 19:43             ` Fabio Estevam
  0 siblings, 1 reply; 62+ messages in thread
From: Paul Moore @ 2015-01-20 19:24 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: Ross Zwisler, Boaz Harrosh, Jens Axboe, Sabrina Dubroca,
	Stephen Rothwell, linux-next, linux-kernel, linux-fsdevel,
	linux-audit, viro, Richard Guy Briggs

On Tuesday, January 20, 2015 05:16:45 PM Fabio Estevam wrote:
> On Tue, Jan 20, 2015 at 5:00 PM, Ross Zwisler
> 
> <ross.zwisler@linux.intel.com> wrote:
> > These were just nuisance warnings, I believe, so my guess is that this
> > isn't related to your kernel panic.   Reverting Boaz's patches to make
> > these warnings go away would let you know for sure.
> 
> You are right. Reverting 937af5ecd0591e makes such warnings disappear.

You guys are much quicker compiling kernels than I am :)

Fabio, are you still seeing the same panic, just without the warnings?  Or has 
the panic resolved itself as well?

-- 
paul moore
security @ redhat


^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-20 19:24           ` Paul Moore
@ 2015-01-20 19:43             ` Fabio Estevam
  2015-01-20 20:10               ` Paul Moore
  0 siblings, 1 reply; 62+ messages in thread
From: Fabio Estevam @ 2015-01-20 19:43 UTC (permalink / raw)
  To: Paul Moore
  Cc: Ross Zwisler, Boaz Harrosh, Jens Axboe, Sabrina Dubroca,
	Stephen Rothwell, linux-next, linux-kernel, linux-fsdevel,
	linux-audit, viro, Richard Guy Briggs

On Tue, Jan 20, 2015 at 5:24 PM, Paul Moore <pmoore@redhat.com> wrote:
> On Tuesday, January 20, 2015 05:16:45 PM Fabio Estevam wrote:
>> On Tue, Jan 20, 2015 at 5:00 PM, Ross Zwisler
>>
>> <ross.zwisler@linux.intel.com> wrote:
>> > These were just nuisance warnings, I believe, so my guess is that this
>> > isn't related to your kernel panic.   Reverting Boaz's patches to make
>> > these warnings go away would let you know for sure.
>>
>> You are right. Reverting 937af5ecd0591e makes such warnings disappear.
>
> You guys are much quicker compiling kernels than I am :)
>
> Fabio, are you still seeing the same panic, just without the warnings?  Or has
> the panic resolved itself as well?

Just to clarify: I was not getting the same panic Sabrina originally reported.

Reverting 937af5ecd0591e made the ram warnings go away.

On my case I am running linux-next 20150120 plus this fix:
http://www.spinics.net/lists/arm-kernel/msg393205.html

and things seem to boot fine here on my ARM platform.

Thanks

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-20 17:51     ` Sabrina Dubroca
@ 2015-01-20 19:54       ` Al Viro
  2015-01-20 20:45         ` Sabrina Dubroca
  0 siblings, 1 reply; 62+ messages in thread
From: Al Viro @ 2015-01-20 19:54 UTC (permalink / raw)
  To: Sabrina Dubroca
  Cc: Paul Moore, Stephen Rothwell, linux-next, linux-kernel,
	linux-fsdevel, linux-audit, Richard Guy Briggs

On Tue, Jan 20, 2015 at 06:51:35PM +0100, Sabrina Dubroca wrote:
> 2015-01-20, 12:39:08 -0500, Paul Moore wrote:
> > On Tuesday, January 20, 2015 05:56:55 PM Sabrina Dubroca wrote:
> > > Hello,
> > > 
> > > Today's linux-next doesn't boot on my qemu VM:
> > 
> > ...
> >  
> > > I bisected it down to:
> > > 
> > > 5dc5218840e1  fs: create proper filename objects using getname_kernel()
> > > 
> > > I reverted then reapplied each part of that patch.  It works if I
> > > leave out the hunk for do_path_lookup:
> > > 
> > > diff --git a/fs/namei.c b/fs/namei.c
> > > index eeb3b83661f8..c3d21b79090e 100644
> > > --- a/fs/namei.c
> > > +++ b/fs/namei.c
> > > @@ -2001,9 +2001,15 @@ static int filename_lookup(int dfd, struct filename
> > > *name, static int do_path_lookup(int dfd, const char *name,
> > >  				unsigned int flags, struct nameidata *nd)
> > >  {
> > > -	struct filename filename = { .name = name };
> > > +	int retval;
> > > +	struct filename *filename;
> > > 
> > > -	return filename_lookup(dfd, &filename, flags, nd);
> > > +	filename = getname_kernel(name);
> > > +	if (unlikely(IS_ERR(filename)))
> > > +		return PTR_ERR(filename);
> > > +	retval = filename_lookup(dfd, filename, flags, nd);
> > > +	putname(filename);
> > > +	return retval;
> > >  }
> > > 
> > > I don't know what other info you may need.
> > > Full dmesg for the failed boot included below.
> > 
> > Thanks for testing this and reporting the problem, especially such a small 
> > bisection.  Unfortunately nothing is immediately obvious to me, would you mind 
> > sharing your kernel config so I can try to reproduce and debug the problem?
> 
> Sure.
> 
> I run qemu with:
> 
> qemu-system-x86_64 -enable-kvm -cpu host  -m 512 -kernel bzImage -append 'root=/dev/sda1' $IMG
> 
> and the image contains a single ext4 partition with a basic ArchLinux install.

Could you turn that return PTR_ERR(filename); into 
{
	printk(KERN_ERR "failed(%p -> %d)", name, PTR_ERR(filename));
	return PTR_ERR(filename);
}
reproduce the panic and see what has it produced?

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-20 19:43             ` Fabio Estevam
@ 2015-01-20 20:10               ` Paul Moore
  0 siblings, 0 replies; 62+ messages in thread
From: Paul Moore @ 2015-01-20 20:10 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: Ross Zwisler, Boaz Harrosh, Jens Axboe, Sabrina Dubroca,
	Stephen Rothwell, linux-next, linux-kernel, linux-fsdevel,
	linux-audit, viro, Richard Guy Briggs

On Tuesday, January 20, 2015 05:43:01 PM Fabio Estevam wrote:
> On Tue, Jan 20, 2015 at 5:24 PM, Paul Moore <pmoore@redhat.com> wrote:
> > On Tuesday, January 20, 2015 05:16:45 PM Fabio Estevam wrote:
> >> On Tue, Jan 20, 2015 at 5:00 PM, Ross Zwisler
> >> 
> >> <ross.zwisler@linux.intel.com> wrote:
> >> > These were just nuisance warnings, I believe, so my guess is that this
> >> > isn't related to your kernel panic.   Reverting Boaz's patches to make
> >> > these warnings go away would let you know for sure.
> >> 
> >> You are right. Reverting 937af5ecd0591e makes such warnings disappear.
> > 
> > You guys are much quicker compiling kernels than I am :)
> > 
> > Fabio, are you still seeing the same panic, just without the warnings?  Or
> > has the panic resolved itself as well?
> 
> Just to clarify: I was not getting the same panic Sabrina originally
> reported.
> 
> Reverting 937af5ecd0591e made the ram warnings go away.
> 
> On my case I am running linux-next 20150120 plus this fix:
> http://www.spinics.net/lists/arm-kernel/msg393205.html
> 
> and things seem to boot fine here on my ARM platform.

Okay, thanks for the clarification; glad you got it working.

-- 
paul moore
security @ redhat


^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20
  2015-01-20  7:53 linux-next: Tree for Jan 20 Stephen Rothwell
  2015-01-20 14:16 ` Guenter Roeck
  2015-01-20 16:56 ` linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs Sabrina Dubroca
@ 2015-01-20 20:26 ` Guenter Roeck
  2015-01-20 22:54   ` Kirill A. Shutemov
  2 siblings, 1 reply; 62+ messages in thread
From: Guenter Roeck @ 2015-01-20 20:26 UTC (permalink / raw)
  To: Stephen Rothwell
  Cc: linux-next, linux-kernel, Paul Moore, Mel Gorman, Joonsoo Kim

On Tue, Jan 20, 2015 at 06:53:08PM +1100, Stephen Rothwell wrote:
> Hi all,
> 
> Changes since 20150119:
> 
> The omap tree gained a conflict against the arm-soc tree.
> 
> The net-next tree lost its build failure.
> 
> The mmc-uh tree gained a conflict against the sunxi tree.
> 
> The audit tree gained conflicts against Linus' tree.
> 
> Non-merge commits (relative to Linus' tree): 3975
>  3828 files changed, 141642 insertions(+), 68217 deletions(-)
> 
> ----------------------------------------------------------------------------
> 
I ran bisect with some of the qemu failures. Here are the results.

If you are copied on this e-mail and you are not Stephen, your patch is
one of the culprits.

Guenter

---
microblaze:

# bad: [5d0eebbbb6f76de160f7d7f9dc0b64a98ad9b8e9] Add linux-next specific files for 20150120
# good: [ec6f34e5b552fb0a52e6aae1a5afbbb1605cc6cc] Linux 3.19-rc5
git bisect start 'HEAD' 'v3.19-rc5'
# good: [f933e94e8f597c709068e58daa92570d5aa13b8c] Merge remote-tracking branch 'drm/drm-next'
git bisect good f933e94e8f597c709068e58daa92570d5aa13b8c
# bad: [88cf70c4dd4a3851bf5531c0a51dec298d9690b5] Merge remote-tracking branch 'usb/usb-next'
git bisect bad 88cf70c4dd4a3851bf5531c0a51dec298d9690b5
# good: [2d750b9c3a68dc83b364d08f06a983bbb2c57a9a] Merge remote-tracking branch 'device-mapper/for-next'
git bisect good 2d750b9c3a68dc83b364d08f06a983bbb2c57a9a
# bad: [750fa2b454770b2f3444ef4b266772f5d047be29] Merge remote-tracking branch 'spi/for-next'
git bisect bad 750fa2b454770b2f3444ef4b266772f5d047be29
# good: [4df61d072e10a5c1c15979b689148f21f33f44fb] Merge remote-tracking branch 'regulator/for-next'
git bisect good 4df61d072e10a5c1c15979b689148f21f33f44fb
# bad: [2a0a8e653fd1232f5505d007d66ec8605270d610] Merge remote-tracking branch 'audit/next'
git bisect bad 2a0a8e653fd1232f5505d007d66ec8605270d610
# good: [c03155e83fbf2b64e960c0bc93c2958aaf9b048b] Merge remote-tracking branch 'iommu/next'
git bisect good c03155e83fbf2b64e960c0bc93c2958aaf9b048b
# good: [174236285cf849f85a31b3da875c2e939d7cdb15] Merge branch 'doc/sp-update' into docs-next
git bisect good 174236285cf849f85a31b3da875c2e939d7cdb15
# bad: [49463ee9d92926079992f4a34de9ea7ef8cc182c] audit: replace getname()/putname() hacks with reference counters
git bisect bad 49463ee9d92926079992f4a34de9ea7ef8cc182c
# bad: [5dc5218840e1268de639150a851978bb19c341df] fs: create proper filename objects using getname_kernel()
git bisect bad 5dc5218840e1268de639150a851978bb19c341df
# good: [33498e62156b59be4dce6a260743ad9d1660037f] fs: rework getname_kernel to handle up to PATH_MAX sized filenames
git bisect good 33498e62156b59be4dce6a260743ad9d1660037f
# first bad commit: [5dc5218840e1268de639150a851978bb19c341df] fs: create proper filename objects using getname_kernel()

---
mips:

# bad: [5d0eebbbb6f76de160f7d7f9dc0b64a98ad9b8e9] Add linux-next specific files for 20150120
# good: [ec6f34e5b552fb0a52e6aae1a5afbbb1605cc6cc] Linux 3.19-rc5
git bisect start 'HEAD' 'v3.19-rc5'
# good: [f933e94e8f597c709068e58daa92570d5aa13b8c] Merge remote-tracking branch 'drm/drm-next'
git bisect good f933e94e8f597c709068e58daa92570d5aa13b8c
# good: [88cf70c4dd4a3851bf5531c0a51dec298d9690b5] Merge remote-tracking branch 'usb/usb-next'
git bisect good 88cf70c4dd4a3851bf5531c0a51dec298d9690b5
# good: [3ee33b3893f72e5a504ba873ee4a308896d97645] Merge remote-tracking branch 'cgroup/for-next'
git bisect good 3ee33b3893f72e5a504ba873ee4a308896d97645
# bad: [5925961a2889ec2b3734be9f3a6375822010f7a7] fs-befs-linuxvfsc-remove-unnecessary-casting-fix
git bisect bad 5925961a2889ec2b3734be9f3a6375822010f7a7
# bad: [fff9d1d082bb48a0d0e89aaaf746718fcef3a47f] mm: memcontrol: default hierarchy interface for memory fix
git bisect bad fff9d1d082bb48a0d0e89aaaf746718fcef3a47f
# bad: [ab090dcbdd276e9ddcd0ecb666389aa85c30c76f] powerpc: drop _PAGE_FILE and pte_file()-related helpers
git bisect bad ab090dcbdd276e9ddcd0ecb666389aa85c30c76f
# good: [b44330a2df410b2e1e46a0bef1b7d2e8952757a2] block: restore /proc/partitions to not display non-partitionable removable devices
git bisect good b44330a2df410b2e1e46a0bef1b7d2e8952757a2
# bad: [d22cd75c416aa577561454a4d36ff842bb30d26a] arm64: drop PTE_FILE and pte_file()-related helpers
git bisect bad d22cd75c416aa577561454a4d36ff842bb30d26a
# bad: [76f0255272b623728e6f7810f43bfc2c2e70c0ea] mm: drop vm_ops->remap_pages and generic_file_remap_pages() stub
git bisect bad 76f0255272b623728e6f7810f43bfc2c2e70c0ea
# bad: [0bf4c1caa14e3fa95d83da14846f2bfc421dc53f] mm: don't use compound_head() in virt_to_head_page()
git bisect bad 0bf4c1caa14e3fa95d83da14846f2bfc421dc53f
# good: [8e32336269fb0dee55c839611a97356750cc6f05] fs-make-generic_block_fiemap-sig-tolerant-fix
git bisect good 8e32336269fb0dee55c839611a97356750cc6f05
# bad: [d2dc80750ee05ceb03c9b13b0531a782116d1ade] mm/slub: optimize alloc/free fastpath by removing preemption on/off
git bisect bad d2dc80750ee05ceb03c9b13b0531a782116d1ade
# first bad commit: [d2dc80750ee05ceb03c9b13b0531a782116d1ade] mm/slub: optimize alloc/free fastpath by removing preemption on/off

---
sparc:

# bad: [5d0eebbbb6f76de160f7d7f9dc0b64a98ad9b8e9] Add linux-next specific files for 20150120
# good: [ec6f34e5b552fb0a52e6aae1a5afbbb1605cc6cc] Linux 3.19-rc5
git bisect start 'HEAD' 'v3.19-rc5'
# good: [f933e94e8f597c709068e58daa92570d5aa13b8c] Merge remote-tracking branch 'drm/drm-next'
git bisect good f933e94e8f597c709068e58daa92570d5aa13b8c
# good: [88cf70c4dd4a3851bf5531c0a51dec298d9690b5] Merge remote-tracking branch 'usb/usb-next'
git bisect good 88cf70c4dd4a3851bf5531c0a51dec298d9690b5
# good: [3ee33b3893f72e5a504ba873ee4a308896d97645] Merge remote-tracking branch 'cgroup/for-next'
git bisect good 3ee33b3893f72e5a504ba873ee4a308896d97645
# bad: [5925961a2889ec2b3734be9f3a6375822010f7a7] fs-befs-linuxvfsc-remove-unnecessary-casting-fix
git bisect bad 5925961a2889ec2b3734be9f3a6375822010f7a7
# bad: [fff9d1d082bb48a0d0e89aaaf746718fcef3a47f] mm: memcontrol: default hierarchy interface for memory fix
git bisect bad fff9d1d082bb48a0d0e89aaaf746718fcef3a47f
# good: [ab090dcbdd276e9ddcd0ecb666389aa85c30c76f] powerpc: drop _PAGE_FILE and pte_file()-related helpers
git bisect good ab090dcbdd276e9ddcd0ecb666389aa85c30c76f
# good: [91408e6db5842ed4bb66e2a3919b67a5f06ac34a] mm/hugetlb: fix suboptimal migration/hwpoisoned entry check
git bisect good 91408e6db5842ed4bb66e2a3919b67a5f06ac34a
# bad: [8e94896c7510e69bbd2acf418ad3a8afb9978c97] fs: consolidate {nr,free}_cached_objects args in shrink_control
git bisect bad 8e94896c7510e69bbd2acf418ad3a8afb9978c97
# bad: [5995b76d501a8f4d315f811698db98ac997d706f] x86: mm: restore original pte_special check
git bisect bad 5995b76d501a8f4d315f811698db98ac997d706f
# good: [b75c721aa3e2df5c52d4b6bce3dd687018c1f40c] mm: convert p[te|md]_numa users to p[te|md]_protnone_numa
git bisect good b75c721aa3e2df5c52d4b6bce3dd687018c1f40c
# good: [ce4188d335ac91a004087fb0ea86b85091ad570b] mm: convert p[te|md]_mknonnuma and remaining page table manipulations
git bisect good ce4188d335ac91a004087fb0ea86b85091ad570b
# bad: [625fa33ba695d73baa58afa44ab063f67e5f4b64] mm: numa: do not trap faults on the huge zero page
git bisect bad 625fa33ba695d73baa58afa44ab063f67e5f4b64
# good: [c2a7c97cc4bc3d46e98908d7dee07ab3e00a5257] mm: remove remaining references to NUMA hinting bits and helpers
git bisect good c2a7c97cc4bc3d46e98908d7dee07ab3e00a5257
# first bad commit: [625fa33ba695d73baa58afa44ab063f67e5f4b64] mm: numa: do not trap faults on the huge zero page

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-20 19:54       ` Al Viro
@ 2015-01-20 20:45         ` Sabrina Dubroca
  2015-01-20 21:02           ` Al Viro
  0 siblings, 1 reply; 62+ messages in thread
From: Sabrina Dubroca @ 2015-01-20 20:45 UTC (permalink / raw)
  To: Al Viro
  Cc: Paul Moore, Stephen Rothwell, linux-next, linux-kernel,
	linux-fsdevel, linux-audit, Richard Guy Briggs

2015-01-20, 19:54:32 +0000, Al Viro wrote:
> On Tue, Jan 20, 2015 at 06:51:35PM +0100, Sabrina Dubroca wrote:
> > 2015-01-20, 12:39:08 -0500, Paul Moore wrote:
> > > On Tuesday, January 20, 2015 05:56:55 PM Sabrina Dubroca wrote:
> > > > Hello,
> > > > 
> > > > Today's linux-next doesn't boot on my qemu VM:
> > > 
> > > ...
> > >  
> > > > I bisected it down to:
> > > > 
> > > > 5dc5218840e1  fs: create proper filename objects using getname_kernel()
> > > > 
> > > > I reverted then reapplied each part of that patch.  It works if I
> > > > leave out the hunk for do_path_lookup:
> > > > 
> > > > diff --git a/fs/namei.c b/fs/namei.c
> > > > index eeb3b83661f8..c3d21b79090e 100644
> > > > --- a/fs/namei.c
> > > > +++ b/fs/namei.c
> > > > @@ -2001,9 +2001,15 @@ static int filename_lookup(int dfd, struct filename
> > > > *name, static int do_path_lookup(int dfd, const char *name,
> > > >  				unsigned int flags, struct nameidata *nd)
> > > >  {
> > > > -	struct filename filename = { .name = name };
> > > > +	int retval;
> > > > +	struct filename *filename;
> > > > 
> > > > -	return filename_lookup(dfd, &filename, flags, nd);
> > > > +	filename = getname_kernel(name);
> > > > +	if (unlikely(IS_ERR(filename)))
> > > > +		return PTR_ERR(filename);
> > > > +	retval = filename_lookup(dfd, filename, flags, nd);
> > > > +	putname(filename);
> > > > +	return retval;
> > > >  }
> > > > 
> > > > I don't know what other info you may need.
> > > > Full dmesg for the failed boot included below.
> > > 
> > > Thanks for testing this and reporting the problem, especially such a small 
> > > bisection.  Unfortunately nothing is immediately obvious to me, would you mind 
> > > sharing your kernel config so I can try to reproduce and debug the problem?
> > 
> > Sure.
> > 
> > I run qemu with:
> > 
> > qemu-system-x86_64 -enable-kvm -cpu host  -m 512 -kernel bzImage -append 'root=/dev/sda1' $IMG
> > 
> > and the image contains a single ext4 partition with a basic ArchLinux install.
> 
> Could you turn that return PTR_ERR(filename); into 
> {
> 	printk(KERN_ERR "failed(%p -> %d)", name, PTR_ERR(filename));
> 	return PTR_ERR(filename);
> }
> reproduce the panic and see what has it produced?

Nothing.

Not sure if it helps, but I added after filename_lookup:

printk(KERN_ERR "fn_lookup %s %d\n", name, retval);

and I get:

[    1.618558] fn_lookup bsg/0:0:0:0 -2
[    1.619437] fn_lookup bsg 0
[    1.620236] fn_lookup bsg/0:0:0:0 -2
[    1.625996] fn_lookup sda 0
[    1.626609] fn_lookup sda 0
[    1.639007] fn_lookup sda1 0
[    1.639691] fn_lookup sda1 0
[    1.643656] fn_lookup bsg/1:0:0:0 -2
[    1.644974] fn_lookup bsg 0
[    1.645928] fn_lookup bsg/1:0:0:0 -2
[    1.649483] fn_lookup /dev/ram -2
[    1.650424] fn_lookup /dev/root -2
[    1.651234] VFS: Cannot open root device "sda1" or unknown-block(8,1): error -2


-- 
Sabrina

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-20 20:45         ` Sabrina Dubroca
@ 2015-01-20 21:02           ` Al Viro
  2015-01-20 21:38             ` Sabrina Dubroca
  2015-01-20 21:43             ` Guenter Roeck
  0 siblings, 2 replies; 62+ messages in thread
From: Al Viro @ 2015-01-20 21:02 UTC (permalink / raw)
  To: Sabrina Dubroca
  Cc: Paul Moore, Stephen Rothwell, linux-next, linux-kernel,
	linux-fsdevel, linux-audit, Richard Guy Briggs

On Tue, Jan 20, 2015 at 09:45:04PM +0100, Sabrina Dubroca wrote:

> printk(KERN_ERR "fn_lookup %s %d\n", name, retval);
> 
> and I get:
> 
> [    1.618558] fn_lookup bsg/0:0:0:0 -2
> [    1.619437] fn_lookup bsg 0
> [    1.620236] fn_lookup bsg/0:0:0:0 -2
> [    1.625996] fn_lookup sda 0
> [    1.626609] fn_lookup sda 0
> [    1.639007] fn_lookup sda1 0
> [    1.639691] fn_lookup sda1 0
> [    1.643656] fn_lookup bsg/1:0:0:0 -2
> [    1.644974] fn_lookup bsg 0
> [    1.645928] fn_lookup bsg/1:0:0:0 -2
> [    1.649483] fn_lookup /dev/ram -2
> [    1.650424] fn_lookup /dev/root -2
> [    1.651234] VFS: Cannot open root device "sda1" or unknown-block(8,1): error -2

That -2 is -ENOENT...  Wait a sec, what's in filename, filename->name and
what do you get from your printk on kernel with that commit reverted?

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-20 21:02           ` Al Viro
@ 2015-01-20 21:38             ` Sabrina Dubroca
  2015-01-20 21:58               ` Al Viro
  2015-01-20 21:43             ` Guenter Roeck
  1 sibling, 1 reply; 62+ messages in thread
From: Sabrina Dubroca @ 2015-01-20 21:38 UTC (permalink / raw)
  To: Al Viro
  Cc: Paul Moore, Stephen Rothwell, linux-next, linux-kernel,
	linux-fsdevel, linux-audit, Richard Guy Briggs

2015-01-20, 21:02:03 +0000, Al Viro wrote:
> On Tue, Jan 20, 2015 at 09:45:04PM +0100, Sabrina Dubroca wrote:
> 
> > printk(KERN_ERR "fn_lookup %s %d\n", name, retval);
> > 
> > and I get:
> > 
> > [    1.618558] fn_lookup bsg/0:0:0:0 -2
> > [    1.619437] fn_lookup bsg 0
> > [    1.620236] fn_lookup bsg/0:0:0:0 -2
> > [    1.625996] fn_lookup sda 0
> > [    1.626609] fn_lookup sda 0
> > [    1.639007] fn_lookup sda1 0
> > [    1.639691] fn_lookup sda1 0
> > [    1.643656] fn_lookup bsg/1:0:0:0 -2
> > [    1.644974] fn_lookup bsg 0
> > [    1.645928] fn_lookup bsg/1:0:0:0 -2
> > [    1.649483] fn_lookup /dev/ram -2
> > [    1.650424] fn_lookup /dev/root -2
> > [    1.651234] VFS: Cannot open root device "sda1" or unknown-block(8,1): error -2
> 
> That -2 is -ENOENT...  Wait a sec, what's in filename, filename->name and
> what do you get from your printk on kernel with that commit reverted?

filename->name matches name. with
printk(KERN_ERR "fn_lookup %s %d, %p %s\n", name, retval, filename, filename->name);

[    1.538646] fn_lookup bsg/0:0:0:0 -2, ffff88001f718000 bsg/0:0:0:0
[    1.539704] fn_lookup bsg 0, ffff88001f718000 bsg
[    1.540559] fn_lookup bsg/0:0:0:0 -2, ffff88001f718000 bsg/0:0:0:0
[    1.552611] fn_lookup bsg/1:0:0:0 -2, ffff88001f718000 bsg/1:0:0:0
[    1.553689] fn_lookup bsg 0, ffff88001f718000 bsg
[    1.554505] fn_lookup bsg/1:0:0:0 -2, ffff88001f718000 bsg/1:0:0:0
[    1.557554] fn_lookup sda 0, ffff88001f718000 sda
[    1.558368] fn_lookup sda 0, ffff88001f718000 sda
[    1.564190] fn_lookup sda1 0, ffff88001f718000 sda1
[    1.565008] fn_lookup sda1 0, ffff88001f718000 sda1
[    1.570751] fn_lookup /dev/ram -2, ffff88001f71a300 /dev/ram
[    1.571786] fn_lookup /dev/root -2, ffff88001f71b480 /dev/root


and with
printk(KERN_ERR "fn_lookup %s %d, %s\n", name, retval, filename.name);
in the original do_path_lookup:

[    1.426101] fn_lookup bsg/0:0:0:0 -2, bsg/0:0:0:0
[    1.426893] fn_lookup bsg 0, bsg
[    1.427406] fn_lookup bsg/0:0:0:0 0, bsg/0:0:0:0
[    1.431530] fn_lookup sda 0, sda
[    1.438346] fn_lookup bsg/1:0:0:0 0, bsg/1:0:0:0
[    1.443658] fn_lookup sda1 0, sda1
[    1.448344] fn_lookup /dev/ram 0, /dev/ram
[    1.449148] fn_lookup /dev/root 0, /dev/root
[    1.449835] fn_lookup /dev/root 0, /dev/root
[    1.451586] EXT4-fs (sda1): couldn't mount as ext3 due to feature incompatibilities
[    1.452954] fn_lookup /dev/root 0, /dev/root
[    1.454292] EXT4-fs (sda1): couldn't mount as ext2 due to feature incompatibilities
[    1.456331] fn_lookup /dev/root 0, /dev/root
[    1.480208] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
[    1.481323] VFS: Mounted root (ext4 filesystem) readonly on device 8:1.


-- 
Sabrina

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-20 21:02           ` Al Viro
  2015-01-20 21:38             ` Sabrina Dubroca
@ 2015-01-20 21:43             ` Guenter Roeck
  1 sibling, 0 replies; 62+ messages in thread
From: Guenter Roeck @ 2015-01-20 21:43 UTC (permalink / raw)
  To: Al Viro
  Cc: Sabrina Dubroca, Paul Moore, Stephen Rothwell, linux-next,
	linux-kernel, linux-fsdevel, linux-audit, Richard Guy Briggs

On Tue, Jan 20, 2015 at 09:02:03PM +0000, Al Viro wrote:
> On Tue, Jan 20, 2015 at 09:45:04PM +0100, Sabrina Dubroca wrote:
> 
> > printk(KERN_ERR "fn_lookup %s %d\n", name, retval);
> > 
> > and I get:
> > 
> > [    1.618558] fn_lookup bsg/0:0:0:0 -2
> > [    1.619437] fn_lookup bsg 0
> > [    1.620236] fn_lookup bsg/0:0:0:0 -2
> > [    1.625996] fn_lookup sda 0
> > [    1.626609] fn_lookup sda 0
> > [    1.639007] fn_lookup sda1 0
> > [    1.639691] fn_lookup sda1 0
> > [    1.643656] fn_lookup bsg/1:0:0:0 -2
> > [    1.644974] fn_lookup bsg 0
> > [    1.645928] fn_lookup bsg/1:0:0:0 -2
> > [    1.649483] fn_lookup /dev/ram -2
> > [    1.650424] fn_lookup /dev/root -2
> > [    1.651234] VFS: Cannot open root device "sda1" or unknown-block(8,1): error -2
> 
> That -2 is -ENOENT...  Wait a sec, what's in filename, filename->name and
> what do you get from your printk on kernel with that commit reverted?

On microblaze target:

patch reverted:

name . rv 0
name usr rv 0
name usr/lib rv 0
name usr/share rv 0
name usr/share/udhcpc rv 0
name usr/bin rv 0
name usr/bin/logger rv 0
...

broken:

filename c78a4000 filename->name c78a4014:. name . rv 0
filename c78a4000 filename->name c78a4014:usr name usr rv 0
filename c78a4000 filename->name c78a4014:usr/lib name usr/lib rv -2
filename c78a4000 filename->name c78a4014:usr/share name usr/share rv -2
filename c78a4000 filename->name c78a4014:usr/share/udhcpc name usr/share/udhcpc rv -2
filename c78a4000 filename->name c78a4014:usr/bin name usr/bin rv -2
filename c78ae000 filename->name c78ae014:usr/bin/logger name usr/bin/logger rv -2
...

Guenter

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-20 21:38             ` Sabrina Dubroca
@ 2015-01-20 21:58               ` Al Viro
  2015-01-20 22:08                 ` Sabrina Dubroca
  0 siblings, 1 reply; 62+ messages in thread
From: Al Viro @ 2015-01-20 21:58 UTC (permalink / raw)
  To: Sabrina Dubroca
  Cc: Paul Moore, Stephen Rothwell, linux-next, linux-kernel,
	linux-fsdevel, linux-audit, Richard Guy Briggs

On Tue, Jan 20, 2015 at 10:38:58PM +0100, Sabrina Dubroca wrote:

> [    1.538646] fn_lookup bsg/0:0:0:0 -2, ffff88001f718000 bsg/0:0:0:0
> [    1.539704] fn_lookup bsg 0, ffff88001f718000 bsg
> [    1.540559] fn_lookup bsg/0:0:0:0 -2, ffff88001f718000 bsg/0:0:0:0
> [    1.552611] fn_lookup bsg/1:0:0:0 -2, ffff88001f718000 bsg/1:0:0:0
> [    1.553689] fn_lookup bsg 0, ffff88001f718000 bsg
> [    1.554505] fn_lookup bsg/1:0:0:0 -2, ffff88001f718000 bsg/1:0:0:0
> [    1.557554] fn_lookup sda 0, ffff88001f718000 sda
> [    1.558368] fn_lookup sda 0, ffff88001f718000 sda
> [    1.564190] fn_lookup sda1 0, ffff88001f718000 sda1
> [    1.565008] fn_lookup sda1 0, ffff88001f718000 sda1
> [    1.570751] fn_lookup /dev/ram -2, ffff88001f71a300 /dev/ram
> [    1.571786] fn_lookup /dev/root -2, ffff88001f71b480 /dev/root

Nuts...  Is reverting just this (do_path_lookup()) part of commit sufficient
to recover the normal behaviour?

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-20 21:58               ` Al Viro
@ 2015-01-20 22:08                 ` Sabrina Dubroca
  2015-01-20 22:13                   ` Guenter Roeck
  0 siblings, 1 reply; 62+ messages in thread
From: Sabrina Dubroca @ 2015-01-20 22:08 UTC (permalink / raw)
  To: Al Viro
  Cc: Paul Moore, Stephen Rothwell, linux-next, linux-kernel,
	linux-fsdevel, linux-audit, Richard Guy Briggs

2015-01-20, 21:58:31 +0000, Al Viro wrote:
> On Tue, Jan 20, 2015 at 10:38:58PM +0100, Sabrina Dubroca wrote:
> 
> > [    1.538646] fn_lookup bsg/0:0:0:0 -2, ffff88001f718000 bsg/0:0:0:0
> > [    1.539704] fn_lookup bsg 0, ffff88001f718000 bsg
> > [    1.540559] fn_lookup bsg/0:0:0:0 -2, ffff88001f718000 bsg/0:0:0:0
> > [    1.552611] fn_lookup bsg/1:0:0:0 -2, ffff88001f718000 bsg/1:0:0:0
> > [    1.553689] fn_lookup bsg 0, ffff88001f718000 bsg
> > [    1.554505] fn_lookup bsg/1:0:0:0 -2, ffff88001f718000 bsg/1:0:0:0
> > [    1.557554] fn_lookup sda 0, ffff88001f718000 sda
> > [    1.558368] fn_lookup sda 0, ffff88001f718000 sda
> > [    1.564190] fn_lookup sda1 0, ffff88001f718000 sda1
> > [    1.565008] fn_lookup sda1 0, ffff88001f718000 sda1
> > [    1.570751] fn_lookup /dev/ram -2, ffff88001f71a300 /dev/ram
> > [    1.571786] fn_lookup /dev/root -2, ffff88001f71b480 /dev/root
> 
> Nuts...  Is reverting just this (do_path_lookup()) part of commit sufficient
> to recover the normal behaviour?

Yes.

-- 
Sabrina

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-20 22:08                 ` Sabrina Dubroca
@ 2015-01-20 22:13                   ` Guenter Roeck
  2015-01-20 22:50                     ` Al Viro
  0 siblings, 1 reply; 62+ messages in thread
From: Guenter Roeck @ 2015-01-20 22:13 UTC (permalink / raw)
  To: Sabrina Dubroca
  Cc: Al Viro, Paul Moore, Stephen Rothwell, linux-next, linux-kernel,
	linux-fsdevel, linux-audit, Richard Guy Briggs

On Tue, Jan 20, 2015 at 11:08:23PM +0100, Sabrina Dubroca wrote:
> 2015-01-20, 21:58:31 +0000, Al Viro wrote:
> > On Tue, Jan 20, 2015 at 10:38:58PM +0100, Sabrina Dubroca wrote:
> > 
> > > [    1.538646] fn_lookup bsg/0:0:0:0 -2, ffff88001f718000 bsg/0:0:0:0
> > > [    1.539704] fn_lookup bsg 0, ffff88001f718000 bsg
> > > [    1.540559] fn_lookup bsg/0:0:0:0 -2, ffff88001f718000 bsg/0:0:0:0
> > > [    1.552611] fn_lookup bsg/1:0:0:0 -2, ffff88001f718000 bsg/1:0:0:0
> > > [    1.553689] fn_lookup bsg 0, ffff88001f718000 bsg
> > > [    1.554505] fn_lookup bsg/1:0:0:0 -2, ffff88001f718000 bsg/1:0:0:0
> > > [    1.557554] fn_lookup sda 0, ffff88001f718000 sda
> > > [    1.558368] fn_lookup sda 0, ffff88001f718000 sda
> > > [    1.564190] fn_lookup sda1 0, ffff88001f718000 sda1
> > > [    1.565008] fn_lookup sda1 0, ffff88001f718000 sda1
> > > [    1.570751] fn_lookup /dev/ram -2, ffff88001f71a300 /dev/ram
> > > [    1.571786] fn_lookup /dev/root -2, ffff88001f71b480 /dev/root
> > 
> > Nuts...  Is reverting just this (do_path_lookup()) part of commit sufficient
> > to recover the normal behaviour?
> 
> Yes.
> 
Same on microblaze.

Guenter

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-20 22:13                   ` Guenter Roeck
@ 2015-01-20 22:50                     ` Al Viro
  2015-01-20 23:17                       ` Al Viro
  0 siblings, 1 reply; 62+ messages in thread
From: Al Viro @ 2015-01-20 22:50 UTC (permalink / raw)
  To: Guenter Roeck
  Cc: Sabrina Dubroca, Paul Moore, Stephen Rothwell, linux-next,
	linux-kernel, linux-fsdevel, linux-audit, Richard Guy Briggs

On Tue, Jan 20, 2015 at 02:13:09PM -0800, Guenter Roeck wrote:

> > > Nuts...  Is reverting just this (do_path_lookup()) part of commit sufficient
> > > to recover the normal behaviour?
> > 
> > Yes.
> > 
> Same on microblaze.

This is completely insane.
static int filename_lookup(int dfd, struct filename *name,
                                unsigned int flags, struct nameidata *nd)
{
        int retval = path_lookupat(dfd, name->name, flags | LOOKUP_RCU, nd);
        if (unlikely(retval == -ECHILD))
                retval = path_lookupat(dfd, name->name, flags, nd);
        if (unlikely(retval == -ESTALE))
                retval = path_lookupat(dfd, name->name,
                                                flags | LOOKUP_REVAL, nd);

        if (likely(!retval))
                audit_inode(name, nd->path.dentry, flags & LOOKUP_PARENT);
        return retval;
}
doesn't look at _anything_ other than name->name other than for audit_inode().
And name->name is apparently the same.

It looks like something ends up buggering name->name in process, but then
the damn thing appears to be normal after return from filename_lookup()...

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20
  2015-01-20 20:26 ` linux-next: Tree for Jan 20 Guenter Roeck
@ 2015-01-20 22:54   ` Kirill A. Shutemov
  2015-01-21  3:05     ` Guenter Roeck
  0 siblings, 1 reply; 62+ messages in thread
From: Kirill A. Shutemov @ 2015-01-20 22:54 UTC (permalink / raw)
  To: Guenter Roeck
  Cc: Stephen Rothwell, linux-next, linux-kernel, Paul Moore,
	Mel Gorman, Joonsoo Kim

On Tue, Jan 20, 2015 at 12:26:42PM -0800, Guenter Roeck wrote:
> ---
> sparc:
> 
> # bad: [5d0eebbbb6f76de160f7d7f9dc0b64a98ad9b8e9] Add linux-next specific files for 20150120
> # good: [ec6f34e5b552fb0a52e6aae1a5afbbb1605cc6cc] Linux 3.19-rc5
> git bisect start 'HEAD' 'v3.19-rc5'
> # good: [f933e94e8f597c709068e58daa92570d5aa13b8c] Merge remote-tracking branch 'drm/drm-next'
> git bisect good f933e94e8f597c709068e58daa92570d5aa13b8c
> # good: [88cf70c4dd4a3851bf5531c0a51dec298d9690b5] Merge remote-tracking branch 'usb/usb-next'
> git bisect good 88cf70c4dd4a3851bf5531c0a51dec298d9690b5
> # good: [3ee33b3893f72e5a504ba873ee4a308896d97645] Merge remote-tracking branch 'cgroup/for-next'
> git bisect good 3ee33b3893f72e5a504ba873ee4a308896d97645
> # bad: [5925961a2889ec2b3734be9f3a6375822010f7a7] fs-befs-linuxvfsc-remove-unnecessary-casting-fix
> git bisect bad 5925961a2889ec2b3734be9f3a6375822010f7a7
> # bad: [fff9d1d082bb48a0d0e89aaaf746718fcef3a47f] mm: memcontrol: default hierarchy interface for memory fix
> git bisect bad fff9d1d082bb48a0d0e89aaaf746718fcef3a47f
> # good: [ab090dcbdd276e9ddcd0ecb666389aa85c30c76f] powerpc: drop _PAGE_FILE and pte_file()-related helpers
> git bisect good ab090dcbdd276e9ddcd0ecb666389aa85c30c76f
> # good: [91408e6db5842ed4bb66e2a3919b67a5f06ac34a] mm/hugetlb: fix suboptimal migration/hwpoisoned entry check
> git bisect good 91408e6db5842ed4bb66e2a3919b67a5f06ac34a
> # bad: [8e94896c7510e69bbd2acf418ad3a8afb9978c97] fs: consolidate {nr,free}_cached_objects args in shrink_control
> git bisect bad 8e94896c7510e69bbd2acf418ad3a8afb9978c97
> # bad: [5995b76d501a8f4d315f811698db98ac997d706f] x86: mm: restore original pte_special check
> git bisect bad 5995b76d501a8f4d315f811698db98ac997d706f
> # good: [b75c721aa3e2df5c52d4b6bce3dd687018c1f40c] mm: convert p[te|md]_numa users to p[te|md]_protnone_numa
> git bisect good b75c721aa3e2df5c52d4b6bce3dd687018c1f40c
> # good: [ce4188d335ac91a004087fb0ea86b85091ad570b] mm: convert p[te|md]_mknonnuma and remaining page table manipulations
> git bisect good ce4188d335ac91a004087fb0ea86b85091ad570b
> # bad: [625fa33ba695d73baa58afa44ab063f67e5f4b64] mm: numa: do not trap faults on the huge zero page
> git bisect bad 625fa33ba695d73baa58afa44ab063f67e5f4b64
> # good: [c2a7c97cc4bc3d46e98908d7dee07ab3e00a5257] mm: remove remaining references to NUMA hinting bits and helpers
> git bisect good c2a7c97cc4bc3d46e98908d7dee07ab3e00a5257
> # first bad commit: [625fa33ba695d73baa58afa44ab063f67e5f4b64] mm: numa: do not trap faults on the huge zero page

Could you provide more info about the fail in qemu?

-- 
 Kirill A. Shutemov

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-20 22:50                     ` Al Viro
@ 2015-01-20 23:17                       ` Al Viro
  2015-01-20 23:27                         ` Sabrina Dubroca
  0 siblings, 1 reply; 62+ messages in thread
From: Al Viro @ 2015-01-20 23:17 UTC (permalink / raw)
  To: Guenter Roeck
  Cc: Sabrina Dubroca, Paul Moore, Stephen Rothwell, linux-next,
	linux-kernel, linux-fsdevel, linux-audit, Richard Guy Briggs

On Tue, Jan 20, 2015 at 10:50:41PM +0000, Al Viro wrote:
> doesn't look at _anything_ other than name->name other than for audit_inode().
> And name->name is apparently the same.
> 
> It looks like something ends up buggering name->name in process, but then
> the damn thing appears to be normal after return from filename_lookup()...

If my reconstruction of what's going on is correct, the call chain here
is do_path_lookup() <- kern_path() <- lookup_bdev() <- blkdev_get_by_path()
<- mount_bdev() <- some_type.mount() <- mount_fs()
<- vfs_kern_mount() <- do_new_mount() <- do_mount() <- sys_mount()
<- do_mount_root() <- mount_block_root() <- mount_root().  Which is
obscenely long, BTW, but that's a separate story...

Could you slap
	struct stat buf;
	int n = sys_newstat(name, &buf);
	printk(KERN_ERR "stat(\"%s\") -> %d\n", name, n);
	n = sys_newstat("/dev", &buf);
	printk(KERN_ERR "stat(\"dev\") -> %d\n", n);

in the beginning of mount_block_root() (init/do_mounts.c) and see what it
prints?

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-20 23:17                       ` Al Viro
@ 2015-01-20 23:27                         ` Sabrina Dubroca
  2015-01-21  0:04                           ` Paul Moore
  0 siblings, 1 reply; 62+ messages in thread
From: Sabrina Dubroca @ 2015-01-20 23:27 UTC (permalink / raw)
  To: Al Viro
  Cc: Guenter Roeck, Paul Moore, Stephen Rothwell, linux-next,
	linux-kernel, linux-fsdevel, linux-audit, Richard Guy Briggs

2015-01-20, 23:17:25 +0000, Al Viro wrote:
> On Tue, Jan 20, 2015 at 10:50:41PM +0000, Al Viro wrote:
> > doesn't look at _anything_ other than name->name other than for audit_inode().
> > And name->name is apparently the same.
> > 
> > It looks like something ends up buggering name->name in process, but then
> > the damn thing appears to be normal after return from filename_lookup()...
> 
> If my reconstruction of what's going on is correct, the call chain here
> is do_path_lookup() <- kern_path() <- lookup_bdev() <- blkdev_get_by_path()
> <- mount_bdev() <- some_type.mount() <- mount_fs()
> <- vfs_kern_mount() <- do_new_mount() <- do_mount() <- sys_mount()
> <- do_mount_root() <- mount_block_root() <- mount_root().  Which is
> obscenely long, BTW, but that's a separate story...
> 
> Could you slap
> 	struct stat buf;
> 	int n = sys_newstat(name, &buf);
> 	printk(KERN_ERR "stat(\"%s\") -> %d\n", name, n);
> 	n = sys_newstat("/dev", &buf);
> 	printk(KERN_ERR "stat(\"dev\") -> %d\n", n);
> 
> in the beginning of mount_block_root() (init/do_mounts.c) and see what it
> prints?

I get

stat("/dev/root") -> -2
stat("dev") -> -2
with the patch applied (+panic)


and:

stat("/dev/root") -> 0
stat("dev") -> 0
with the old version of do_path_lookup.

-- 
Sabrina

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-20 23:27                         ` Sabrina Dubroca
@ 2015-01-21  0:04                           ` Paul Moore
  2015-01-21  0:14                             ` Paul Moore
  0 siblings, 1 reply; 62+ messages in thread
From: Paul Moore @ 2015-01-21  0:04 UTC (permalink / raw)
  To: Sabrina Dubroca
  Cc: Al Viro, Guenter Roeck, Stephen Rothwell, linux-next,
	linux-kernel, linux-fsdevel, linux-audit, Richard Guy Briggs

On Wednesday, January 21, 2015 12:27:26 AM Sabrina Dubroca wrote:
> 2015-01-20, 23:17:25 +0000, Al Viro wrote:
> > On Tue, Jan 20, 2015 at 10:50:41PM +0000, Al Viro wrote:
> > > doesn't look at _anything_ other than name->name other than for
> > > audit_inode(). And name->name is apparently the same.
> > > 
> > > It looks like something ends up buggering name->name in process, but
> > > then
> > > the damn thing appears to be normal after return from
> > > filename_lookup()...
> > 
> > If my reconstruction of what's going on is correct, the call chain here
> > is do_path_lookup() <- kern_path() <- lookup_bdev() <-
> > blkdev_get_by_path()
> > <- mount_bdev() <- some_type.mount() <- mount_fs()
> > <- vfs_kern_mount() <- do_new_mount() <- do_mount() <- sys_mount()
> > <- do_mount_root() <- mount_block_root() <- mount_root().  Which is
> > obscenely long, BTW, but that's a separate story...
> > 
> > Could you slap
> > 
> > 	struct stat buf;
> > 	int n = sys_newstat(name, &buf);
> > 	printk(KERN_ERR "stat(\"%s\") -> %d\n", name, n);
> > 	n = sys_newstat("/dev", &buf);
> > 	printk(KERN_ERR "stat(\"dev\") -> %d\n", n);
> > 
> > in the beginning of mount_block_root() (init/do_mounts.c) and see what it
> > prints?
> 
> I get
> 
> stat("/dev/root") -> -2
> stat("dev") -> -2
> with the patch applied (+panic)
> 
> 
> and:
> 
> stat("/dev/root") -> 0
> stat("dev") -> 0
> with the old version of do_path_lookup.

Wait a minute ... at this early stage of boot, I'm pretty sure we don't have a 
valid current->audit_context since we haven't fork'd anything.  If the audit 
context was non-NULL garbage that might explain the panic ...

-- 
paul moore
security @ redhat


^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-21  0:04                           ` Paul Moore
@ 2015-01-21  0:14                             ` Paul Moore
  2015-01-21  0:41                               ` Al Viro
  0 siblings, 1 reply; 62+ messages in thread
From: Paul Moore @ 2015-01-21  0:14 UTC (permalink / raw)
  To: Sabrina Dubroca
  Cc: Al Viro, Guenter Roeck, Stephen Rothwell, linux-next,
	linux-kernel, linux-fsdevel, linux-audit, Richard Guy Briggs

On Tuesday, January 20, 2015 07:04:54 PM Paul Moore wrote:
> On Wednesday, January 21, 2015 12:27:26 AM Sabrina Dubroca wrote:
> > 2015-01-20, 23:17:25 +0000, Al Viro wrote:
> > > On Tue, Jan 20, 2015 at 10:50:41PM +0000, Al Viro wrote:
> > > > doesn't look at _anything_ other than name->name other than for
> > > > audit_inode(). And name->name is apparently the same.
> > > > 
> > > > It looks like something ends up buggering name->name in process, but
> > > > then
> > > > the damn thing appears to be normal after return from
> > > > filename_lookup()...
> > > 
> > > If my reconstruction of what's going on is correct, the call chain here
> > > is do_path_lookup() <- kern_path() <- lookup_bdev() <-
> > > blkdev_get_by_path()
> > > <- mount_bdev() <- some_type.mount() <- mount_fs()
> > > <- vfs_kern_mount() <- do_new_mount() <- do_mount() <- sys_mount()
> > > <- do_mount_root() <- mount_block_root() <- mount_root().  Which is
> > > obscenely long, BTW, but that's a separate story...
> > > 
> > > Could you slap
> > > 
> > > 	struct stat buf;
> > > 	int n = sys_newstat(name, &buf);
> > > 	printk(KERN_ERR "stat(\"%s\") -> %d\n", name, n);
> > > 	n = sys_newstat("/dev", &buf);
> > > 	printk(KERN_ERR "stat(\"dev\") -> %d\n", n);
> > > 
> > > in the beginning of mount_block_root() (init/do_mounts.c) and see what
> > > it
> > > prints?
> > 
> > I get
> > 
> > stat("/dev/root") -> -2
> > stat("dev") -> -2
> > with the patch applied (+panic)
> > 
> > 
> > and:
> > 
> > stat("/dev/root") -> 0
> > stat("dev") -> 0
> > with the old version of do_path_lookup.
> 
> Wait a minute ... at this early stage of boot, I'm pretty sure we don't have
> a valid current->audit_context since we haven't fork'd anything.  If the
> audit context was non-NULL garbage that might explain the panic ...

Could you try initializing the init_task's audit_context to NULL in the 
INIT_TASK macro in include/linux/init_task.h?

Example:

 #define INIT_TASK(tsk)
 {
   .state          = 0,
   .stack          = &init_thread_info,
 ...
   .audit_context  = NULL,
 ...
 }

-- 
paul moore
security @ redhat


^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-21  0:14                             ` Paul Moore
@ 2015-01-21  0:41                               ` Al Viro
  2015-01-21  2:44                                 ` Guenter Roeck
  0 siblings, 1 reply; 62+ messages in thread
From: Al Viro @ 2015-01-21  0:41 UTC (permalink / raw)
  To: Paul Moore
  Cc: Sabrina Dubroca, Guenter Roeck, Stephen Rothwell, linux-next,
	linux-kernel, linux-fsdevel, linux-audit, Richard Guy Briggs

On Tue, Jan 20, 2015 at 07:14:46PM -0500, Paul Moore wrote:
> > > with the patch applied (+panic)
> > > 
> > > 
> > > and:
> > > 
> > > stat("/dev/root") -> 0
> > > stat("dev") -> 0
> > > with the old version of do_path_lookup.
> > 
> > Wait a minute ... at this early stage of boot, I'm pretty sure we don't have
> > a valid current->audit_context since we haven't fork'd anything.  If the
> > audit context was non-NULL garbage that might explain the panic ...

Not really - the panic is predicatable result of not finding /dev/root (hell,
not even /dev there!) in mount_block_root().
 
> Could you try initializing the init_task's audit_context to NULL in the 
> INIT_TASK macro in include/linux/init_task.h?

Missing fields in struct initializer are treated as zeroes.

The shit hits the fan earlier - when we end up missing /dev.  There are
two places where it could've been created (depending on CONFIG_BLK_DEV_INITRD);
	sys_mkdir(collected, mode);
in init/initramfs.c (line 353 in linux-next) and
        err = sys_mkdir((const char __user __force *) "/dev", 0755);
in init/noinitramfs.c (line 32).  The latter would've screamed on failure;
could you printk of collected (%s), mode (%o) and return value (%d) in the
former and see what happens?

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-21  0:41                               ` Al Viro
@ 2015-01-21  2:44                                 ` Guenter Roeck
  2015-01-21  3:36                                   ` Al Viro
  0 siblings, 1 reply; 62+ messages in thread
From: Guenter Roeck @ 2015-01-21  2:44 UTC (permalink / raw)
  To: Al Viro, Paul Moore
  Cc: Sabrina Dubroca, Stephen Rothwell, linux-next, linux-kernel,
	linux-fsdevel, linux-audit, Richard Guy Briggs

On 01/20/2015 04:41 PM, Al Viro wrote:

> The shit hits the fan earlier - when we end up missing /dev.  There are
> two places where it could've been created (depending on CONFIG_BLK_DEV_INITRD);
> 	sys_mkdir(collected, mode);
> in init/initramfs.c (line 353 in linux-next) and
>          err = sys_mkdir((const char __user __force *) "/dev", 0755);
> in init/noinitramfs.c (line 32).  The latter would've screamed on failure;
> could you printk of collected (%s), mode (%o) and return value (%d) in the
> former and see what happens?
>

sys_mkdir .:40775 returned -17
sys_mkdir usr:40775 returned 0
sys_mkdir usr/lib:40775 returned -2
sys_mkdir usr/share:40755 returned -2
sys_mkdir usr/share/udhcpc:40755 returned -2
sys_mkdir usr/bin:40775 returned -2
sys_mkdir usr/sbin:40775 returned -2
sys_mkdir mnt:40775 returned 0
sys_mkdir proc:40775 returned 0
sys_mkdir root:40775 returned 0
sys_mkdir lib:40775 returned 0
sys_mkdir lib/modules:40775 returned -2
sys_mkdir lib/modules/3.9.2:40775 returned -2
sys_mkdir lib/modules/3.9.2/kernel:40775 returned -2

with
	int err = sys_mkdir(collected, mode);
	pr_info("sys_mkdir %s:%o returned %d\n", collected, mode, err);
added in init/initramfs.c.

Guenter


^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20
  2015-01-20 22:54   ` Kirill A. Shutemov
@ 2015-01-21  3:05     ` Guenter Roeck
  2015-01-21 10:43       ` Kirill A. Shutemov
  0 siblings, 1 reply; 62+ messages in thread
From: Guenter Roeck @ 2015-01-21  3:05 UTC (permalink / raw)
  To: Kirill A. Shutemov
  Cc: Stephen Rothwell, linux-next, linux-kernel, Paul Moore,
	Mel Gorman, Joonsoo Kim

On 01/20/2015 02:54 PM, Kirill A. Shutemov wrote:
> On Tue, Jan 20, 2015 at 12:26:42PM -0800, Guenter Roeck wrote:
>> ---
>> sparc:
>>
>> # bad: [5d0eebbbb6f76de160f7d7f9dc0b64a98ad9b8e9] Add linux-next specific files for 20150120
>> # good: [ec6f34e5b552fb0a52e6aae1a5afbbb1605cc6cc] Linux 3.19-rc5
>> git bisect start 'HEAD' 'v3.19-rc5'
>> # good: [f933e94e8f597c709068e58daa92570d5aa13b8c] Merge remote-tracking branch 'drm/drm-next'
>> git bisect good f933e94e8f597c709068e58daa92570d5aa13b8c
>> # good: [88cf70c4dd4a3851bf5531c0a51dec298d9690b5] Merge remote-tracking branch 'usb/usb-next'
>> git bisect good 88cf70c4dd4a3851bf5531c0a51dec298d9690b5
>> # good: [3ee33b3893f72e5a504ba873ee4a308896d97645] Merge remote-tracking branch 'cgroup/for-next'
>> git bisect good 3ee33b3893f72e5a504ba873ee4a308896d97645
>> # bad: [5925961a2889ec2b3734be9f3a6375822010f7a7] fs-befs-linuxvfsc-remove-unnecessary-casting-fix
>> git bisect bad 5925961a2889ec2b3734be9f3a6375822010f7a7
>> # bad: [fff9d1d082bb48a0d0e89aaaf746718fcef3a47f] mm: memcontrol: default hierarchy interface for memory fix
>> git bisect bad fff9d1d082bb48a0d0e89aaaf746718fcef3a47f
>> # good: [ab090dcbdd276e9ddcd0ecb666389aa85c30c76f] powerpc: drop _PAGE_FILE and pte_file()-related helpers
>> git bisect good ab090dcbdd276e9ddcd0ecb666389aa85c30c76f
>> # good: [91408e6db5842ed4bb66e2a3919b67a5f06ac34a] mm/hugetlb: fix suboptimal migration/hwpoisoned entry check
>> git bisect good 91408e6db5842ed4bb66e2a3919b67a5f06ac34a
>> # bad: [8e94896c7510e69bbd2acf418ad3a8afb9978c97] fs: consolidate {nr,free}_cached_objects args in shrink_control
>> git bisect bad 8e94896c7510e69bbd2acf418ad3a8afb9978c97
>> # bad: [5995b76d501a8f4d315f811698db98ac997d706f] x86: mm: restore original pte_special check
>> git bisect bad 5995b76d501a8f4d315f811698db98ac997d706f
>> # good: [b75c721aa3e2df5c52d4b6bce3dd687018c1f40c] mm: convert p[te|md]_numa users to p[te|md]_protnone_numa
>> git bisect good b75c721aa3e2df5c52d4b6bce3dd687018c1f40c
>> # good: [ce4188d335ac91a004087fb0ea86b85091ad570b] mm: convert p[te|md]_mknonnuma and remaining page table manipulations
>> git bisect good ce4188d335ac91a004087fb0ea86b85091ad570b
>> # bad: [625fa33ba695d73baa58afa44ab063f67e5f4b64] mm: numa: do not trap faults on the huge zero page
>> git bisect bad 625fa33ba695d73baa58afa44ab063f67e5f4b64
>> # good: [c2a7c97cc4bc3d46e98908d7dee07ab3e00a5257] mm: remove remaining references to NUMA hinting bits and helpers
>> git bisect good c2a7c97cc4bc3d46e98908d7dee07ab3e00a5257
>> # first bad commit: [625fa33ba695d73baa58afa44ab063f67e5f4b64] mm: numa: do not trap faults on the huge zero page
>
> Could you provide more info about the fail in qemu?
>

Error message:

BUG: Bad page state in process init.sh  pfn:00000
page:f05e7460 count:0 mapcount:-1 mapping:  (null) index:0x0
flags: 0x400(reserved)
page dumped because: PAGE_FLAGS_CHECK_AT_FREE flag(s) set
bad because of flags:
flags: 0x400(reserved)
CPU: 0 PID: 1 Comm: init.sh Not tainted 3.19.0-rc5-next-20150120 #1
[f0076010 : bad_page+0xdc/0xfc ] [f00760c0 : free_pages_prepare+0x90/0x1f8 ] [f00775cc : free_hot_cold_page+0x20/0x160 ] [f00919e8 : do_wp_page+0x680/0x6ac ] [f00939f4 : handle_mm_fault+0xc94/0xd08 ] [f0015900 : do_sparc_fault+0xfc/0x3ec ] [f000af90 : srmmu_fault+0x58/0x68 ] [f00e74f4 : load_elf_binary+0x9a8/0xe94 ] [f00b0cac : search_binary_handler+0x68/0x12c ] [f00e67d0 : load_script+0x214/0x224 ] [f00b0cac : search_binary_handler+0x68/0x12c ] [f00b11a4 : do_execveat_common+0x434/0x584 ] [f00b1310 : do_execve+0x1c/0x2c ] [f02b50b0 : kernel_init+0x70/0xf0 ] [f000b200 : ret_from_kernel_thread+0xc/0x38 ] [00000000 :   (null) ]
Disabling lock debugging due to kernel taint
: applet not found
Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100

Complete console log:

http://server.roeck-us.net:8010/builders/qemu-sparc-next/builds/82/steps/qemubuildcommand/logs/stdio

defconfig:

http://server.roeck-us.net/qemu/sparc32/qemu_sparc_defconfig

qemu command line:

/opt/buildbot/bin/qemu-system-sparc -cpu "Fujitsu MB86907" \
	-kernel arch/sparc/boot/image -hda hda.sqf -no-reboot \
	-append "root=/dev/sda rw init=/sbin/init.sh panic=1 console=ttyS0" \
	-nographic

The root file system (hda.sqf) is at http://server.roeck-us.net/qemu/sparc32/hda.sqf.

qemu version:

/opt/buildbot/bin/qemu-system-sparc --version
QEMU emulator version 2.1.2, Copyright (c) 2003-2008 Fabrice Bellard

Hope this helps,

Guenter


^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-21  2:44                                 ` Guenter Roeck
@ 2015-01-21  3:36                                   ` Al Viro
  2015-01-21  4:01                                     ` Guenter Roeck
  0 siblings, 1 reply; 62+ messages in thread
From: Al Viro @ 2015-01-21  3:36 UTC (permalink / raw)
  To: Guenter Roeck
  Cc: Paul Moore, Sabrina Dubroca, Stephen Rothwell, linux-next,
	linux-kernel, linux-fsdevel, linux-audit, Richard Guy Briggs

On Tue, Jan 20, 2015 at 06:44:34PM -0800, Guenter Roeck wrote:
> >The shit hits the fan earlier - when we end up missing /dev.  There are
> >two places where it could've been created (depending on CONFIG_BLK_DEV_INITRD);
> >	sys_mkdir(collected, mode);
> >in init/initramfs.c (line 353 in linux-next) and
> >         err = sys_mkdir((const char __user __force *) "/dev", 0755);
> >in init/noinitramfs.c (line 32).  The latter would've screamed on failure;
> >could you printk of collected (%s), mode (%o) and return value (%d) in the
> >former and see what happens?
> >
> 
> sys_mkdir .:40775 returned -17
> sys_mkdir usr:40775 returned 0
> sys_mkdir usr/lib:40775 returned -2
> sys_mkdir usr/share:40755 returned -2
> sys_mkdir usr/share/udhcpc:40755 returned -2
> sys_mkdir usr/bin:40775 returned -2
> sys_mkdir usr/sbin:40775 returned -2
> sys_mkdir mnt:40775 returned 0
> sys_mkdir proc:40775 returned 0
> sys_mkdir root:40775 returned 0
> sys_mkdir lib:40775 returned 0
> sys_mkdir lib/modules:40775 returned -2
> sys_mkdir lib/modules/3.9.2:40775 returned -2
> sys_mkdir lib/modules/3.9.2/kernel:40775 returned -2
> 
> with
> 	int err = sys_mkdir(collected, mode);
> 	pr_info("sys_mkdir %s:%o returned %d\n", collected, mode, err);
> added in init/initramfs.c.

Just what is lib/modules/3.9.2 doing there?  In any case, I think I have at
least a plausible direction for digging.  Look:

struct dentry *user_path_create(int dfd, const char __user *pathname,
                                struct path *path, unsigned int lookup_flags)
{
        struct filename *tmp = getname(pathname);
        struct dentry *res;
        if (IS_ERR(tmp))
                return ERR_CAST(tmp);
        res = kern_path_create(dfd, tmp->name, path, lookup_flags);

struct dentry *kern_path_create(int dfd, const char *pathname,
                                struct path *path, unsigned int lookup_flags)
{
        struct dentry *dentry = ERR_PTR(-EEXIST);
        struct nameidata nd;
        int err2;
        int error;
        bool is_dir = (lookup_flags & LOOKUP_DIRECTORY);

        /*
         * Note that only LOOKUP_REVAL and LOOKUP_DIRECTORY matter here. Any
         * other flags passed in are ignored!
         */
        lookup_flags &= LOOKUP_REVAL;

        error = do_path_lookup(dfd, pathname, LOOKUP_PARENT|lookup_flags, &nd);

static int do_path_lookup(int dfd, const char *name,
                                unsigned int flags, struct nameidata *nd)
{
        int retval;
        struct filename *filename;

        filename = getname_kernel(name);
        if (unlikely(IS_ERR(filename)))
                return PTR_ERR(filename);
        retval = filename_lookup(dfd, filename, flags, nd);

and we have done getname_kernel() on the name->name of result of getname().
At the very least, it's pointless - we already *have* struct filename for
that sucker.  Now, it shouldn't have screwed the things up - it would better
not, anyway, since we might legitimately have two identical pathname
among the syscall arguments.  However, let's see if this (on top of
linux-next, in addition to the same printks) changes behaviour:

diff --git a/fs/namei.c b/fs/namei.c
index 323957f..c7d107c 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -3314,7 +3314,7 @@ struct file *do_file_open_root(struct dentry *dentry, struct vfsmount *mnt,
 	return file;
 }
 
-struct dentry *kern_path_create(int dfd, const char *pathname,
+static struct dentry *__kern_path_create(int dfd, struct filename *name,
 				struct path *path, unsigned int lookup_flags)
 {
 	struct dentry *dentry = ERR_PTR(-EEXIST);
@@ -3329,7 +3329,7 @@ struct dentry *kern_path_create(int dfd, const char *pathname,
 	 */
 	lookup_flags &= LOOKUP_REVAL;
 
-	error = do_path_lookup(dfd, pathname, LOOKUP_PARENT|lookup_flags, &nd);
+	error = filename_lookup(dfd, name, LOOKUP_PARENT|lookup_flags, &nd);
 	if (error)
 		return ERR_PTR(error);
 
@@ -3383,6 +3383,19 @@ out:
 	path_put(&nd.path);
 	return dentry;
 }
+
+struct dentry *kern_path_create(int dfd, const char *pathname,
+				struct path *path, unsigned int lookup_flags)
+{
+	struct filename *filename = getname_kernel(pathname);
+	struct dentry *res = ERR_CAST(filename);
+
+	if (!IS_ERR(filename)) {
+		res = __kern_path_create(dfd, filename, path, lookup_flags);
+		putname(filename);
+	}
+	return res;
+}
 EXPORT_SYMBOL(kern_path_create);
 
 void done_path_create(struct path *path, struct dentry *dentry)
@@ -3401,7 +3414,7 @@ struct dentry *user_path_create(int dfd, const char __user *pathname,
 	struct dentry *res;
 	if (IS_ERR(tmp))
 		return ERR_CAST(tmp);
-	res = kern_path_create(dfd, tmp->name, path, lookup_flags);
+	res = __kern_path_create(dfd, tmp, path, lookup_flags);
 	putname(tmp);
 	return res;
 }

^ permalink raw reply related	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-21  3:36                                   ` Al Viro
@ 2015-01-21  4:01                                     ` Guenter Roeck
  2015-01-21  4:36                                       ` Al Viro
  0 siblings, 1 reply; 62+ messages in thread
From: Guenter Roeck @ 2015-01-21  4:01 UTC (permalink / raw)
  To: Al Viro
  Cc: Paul Moore, Sabrina Dubroca, Stephen Rothwell, linux-next,
	linux-kernel, linux-fsdevel, linux-audit, Richard Guy Briggs

On 01/20/2015 07:36 PM, Al Viro wrote:
> On Tue, Jan 20, 2015 at 06:44:34PM -0800, Guenter Roeck wrote:
>>> The shit hits the fan earlier - when we end up missing /dev.  There are
>>> two places where it could've been created (depending on CONFIG_BLK_DEV_INITRD);
>>> 	sys_mkdir(collected, mode);
>>> in init/initramfs.c (line 353 in linux-next) and
>>>          err = sys_mkdir((const char __user __force *) "/dev", 0755);
>>> in init/noinitramfs.c (line 32).  The latter would've screamed on failure;
>>> could you printk of collected (%s), mode (%o) and return value (%d) in the
>>> former and see what happens?
>>>
>>
>> sys_mkdir .:40775 returned -17
>> sys_mkdir usr:40775 returned 0
>> sys_mkdir usr/lib:40775 returned -2
>> sys_mkdir usr/share:40755 returned -2
>> sys_mkdir usr/share/udhcpc:40755 returned -2
>> sys_mkdir usr/bin:40775 returned -2
>> sys_mkdir usr/sbin:40775 returned -2
>> sys_mkdir mnt:40775 returned 0
>> sys_mkdir proc:40775 returned 0
>> sys_mkdir root:40775 returned 0
>> sys_mkdir lib:40775 returned 0
>> sys_mkdir lib/modules:40775 returned -2
>> sys_mkdir lib/modules/3.9.2:40775 returned -2
>> sys_mkdir lib/modules/3.9.2/kernel:40775 returned -2
>>
>> with
>> 	int err = sys_mkdir(collected, mode);
>> 	pr_info("sys_mkdir %s:%o returned %d\n", collected, mode, err);
>> added in init/initramfs.c.
>
> Just what is lib/modules/3.9.2 doing there?  In any case, I think I have at

Artifact from when I created the root file system (which apparently was with
3.9.2). It is irrelevant for my testing, at least so far, so I never
bothered fixing it.

> least a plausible direction for digging.  Look:
>

> diff --git a/fs/namei.c b/fs/namei.c
> index 323957f..c7d107c 100644
> --- a/fs/namei.c
> +++ b/fs/namei.c

With this patch:

sys_mkdir .:40775 returned -17
sys_mkdir usr:40775 returned 0
sys_mkdir usr/lib:40775 returned 0
sys_mkdir usr/share:40755 returned 0
sys_mkdir usr/share/udhcpc:40755 returned 0
sys_mkdir usr/bin:40775 returned 0
sys_mkdir usr/sbin:40775 returned 0
sys_mkdir mnt:40775 returned 0
sys_mkdir proc:40775 returned 0
sys_mkdir root:40775 returned 0
sys_mkdir lib:40775 returned 0
sys_mkdir lib/modules:40775 returned 0
...

and the problem is fixed.

Guenter


^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-21  4:01                                     ` Guenter Roeck
@ 2015-01-21  4:36                                       ` Al Viro
  2015-01-21 11:05                                         ` Sabrina Dubroca
  2015-01-21 15:06                                         ` Paul Moore
  0 siblings, 2 replies; 62+ messages in thread
From: Al Viro @ 2015-01-21  4:36 UTC (permalink / raw)
  To: Guenter Roeck
  Cc: Paul Moore, Sabrina Dubroca, Stephen Rothwell, linux-next,
	linux-kernel, linux-fsdevel, linux-audit, Richard Guy Briggs

On Tue, Jan 20, 2015 at 08:01:26PM -0800, Guenter Roeck wrote:
> With this patch:
> 
> sys_mkdir .:40775 returned -17
> sys_mkdir usr:40775 returned 0
> sys_mkdir usr/lib:40775 returned 0
> sys_mkdir usr/share:40755 returned 0
> sys_mkdir usr/share/udhcpc:40755 returned 0
> sys_mkdir usr/bin:40775 returned 0
> sys_mkdir usr/sbin:40775 returned 0
> sys_mkdir mnt:40775 returned 0
> sys_mkdir proc:40775 returned 0
> sys_mkdir root:40775 returned 0
> sys_mkdir lib:40775 returned 0
> sys_mkdir lib/modules:40775 returned 0
> ...
> 
> and the problem is fixed.

... except that it simply confirms that something's fishy with getname_kernel()
of ->name of struct filename returned by getname().  IOW, I still do not
understand the mechanism of breakage there.

Another thing I really do not understand is
+               if (inode->i_ino) {
+                       /* valid inode number, use that for the comparison */
+                       if (n->ino != inode->i_ino ||
+                           n->dev != inode->i_sb->s_dev)
+                               continue;
in __audit_inode().  We don't *have* dentries with dentry->d_inode->i_ino == 0.
Ever.  WTF is that about?  Paul?

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20
  2015-01-21  3:05     ` Guenter Roeck
@ 2015-01-21 10:43       ` Kirill A. Shutemov
  2015-01-21 23:34         ` Guenter Roeck
  2015-01-22  3:14         ` Guenter Roeck
  0 siblings, 2 replies; 62+ messages in thread
From: Kirill A. Shutemov @ 2015-01-21 10:43 UTC (permalink / raw)
  To: Mel Gorman, Guenter Roeck
  Cc: Stephen Rothwell, linux-next, linux-kernel, Paul Moore,
	Joonsoo Kim, davem

On Tue, Jan 20, 2015 at 07:05:41PM -0800, Guenter Roeck wrote:
> On 01/20/2015 02:54 PM, Kirill A. Shutemov wrote:
> >On Tue, Jan 20, 2015 at 12:26:42PM -0800, Guenter Roeck wrote:
> >>---
> >>sparc:
> >>
> >># bad: [5d0eebbbb6f76de160f7d7f9dc0b64a98ad9b8e9] Add linux-next specific files for 20150120
> >># good: [ec6f34e5b552fb0a52e6aae1a5afbbb1605cc6cc] Linux 3.19-rc5
> >>git bisect start 'HEAD' 'v3.19-rc5'
> >># good: [f933e94e8f597c709068e58daa92570d5aa13b8c] Merge remote-tracking branch 'drm/drm-next'
> >>git bisect good f933e94e8f597c709068e58daa92570d5aa13b8c
> >># good: [88cf70c4dd4a3851bf5531c0a51dec298d9690b5] Merge remote-tracking branch 'usb/usb-next'
> >>git bisect good 88cf70c4dd4a3851bf5531c0a51dec298d9690b5
> >># good: [3ee33b3893f72e5a504ba873ee4a308896d97645] Merge remote-tracking branch 'cgroup/for-next'
> >>git bisect good 3ee33b3893f72e5a504ba873ee4a308896d97645
> >># bad: [5925961a2889ec2b3734be9f3a6375822010f7a7] fs-befs-linuxvfsc-remove-unnecessary-casting-fix
> >>git bisect bad 5925961a2889ec2b3734be9f3a6375822010f7a7
> >># bad: [fff9d1d082bb48a0d0e89aaaf746718fcef3a47f] mm: memcontrol: default hierarchy interface for memory fix
> >>git bisect bad fff9d1d082bb48a0d0e89aaaf746718fcef3a47f
> >># good: [ab090dcbdd276e9ddcd0ecb666389aa85c30c76f] powerpc: drop _PAGE_FILE and pte_file()-related helpers
> >>git bisect good ab090dcbdd276e9ddcd0ecb666389aa85c30c76f
> >># good: [91408e6db5842ed4bb66e2a3919b67a5f06ac34a] mm/hugetlb: fix suboptimal migration/hwpoisoned entry check
> >>git bisect good 91408e6db5842ed4bb66e2a3919b67a5f06ac34a
> >># bad: [8e94896c7510e69bbd2acf418ad3a8afb9978c97] fs: consolidate {nr,free}_cached_objects args in shrink_control
> >>git bisect bad 8e94896c7510e69bbd2acf418ad3a8afb9978c97
> >># bad: [5995b76d501a8f4d315f811698db98ac997d706f] x86: mm: restore original pte_special check
> >>git bisect bad 5995b76d501a8f4d315f811698db98ac997d706f
> >># good: [b75c721aa3e2df5c52d4b6bce3dd687018c1f40c] mm: convert p[te|md]_numa users to p[te|md]_protnone_numa
> >>git bisect good b75c721aa3e2df5c52d4b6bce3dd687018c1f40c
> >># good: [ce4188d335ac91a004087fb0ea86b85091ad570b] mm: convert p[te|md]_mknonnuma and remaining page table manipulations
> >>git bisect good ce4188d335ac91a004087fb0ea86b85091ad570b
> >># bad: [625fa33ba695d73baa58afa44ab063f67e5f4b64] mm: numa: do not trap faults on the huge zero page
> >>git bisect bad 625fa33ba695d73baa58afa44ab063f67e5f4b64
> >># good: [c2a7c97cc4bc3d46e98908d7dee07ab3e00a5257] mm: remove remaining references to NUMA hinting bits and helpers
> >>git bisect good c2a7c97cc4bc3d46e98908d7dee07ab3e00a5257
> >># first bad commit: [625fa33ba695d73baa58afa44ab063f67e5f4b64] mm: numa: do not trap faults on the huge zero page
> >
> >Could you provide more info about the fail in qemu?
> >
> 
> Error message:
> 
> BUG: Bad page state in process init.sh  pfn:00000
> page:f05e7460 count:0 mapcount:-1 mapping:  (null) index:0x0
> flags: 0x400(reserved)
> page dumped because: PAGE_FLAGS_CHECK_AT_FREE flag(s) set
> bad because of flags:
> flags: 0x400(reserved)
> CPU: 0 PID: 1 Comm: init.sh Not tainted 3.19.0-rc5-next-20150120 #1
> [f0076010 : bad_page+0xdc/0xfc ] [f00760c0 : free_pages_prepare+0x90/0x1f8 ] [f00775cc : free_hot_cold_page+0x20/0x160 ] [f00919e8 : do_wp_page+0x680/0x6ac ] [f00939f4 : handle_mm_fault+0xc94/0xd08 ] [f0015900 : do_sparc_fault+0xfc/0x3ec ] [f000af90 : srmmu_fault+0x58/0x68 ] [f00e74f4 : load_elf_binary+0x9a8/0xe94 ] [f00b0cac : search_binary_handler+0x68/0x12c ] [f00e67d0 : load_script+0x214/0x224 ] [f00b0cac : search_binary_handler+0x68/0x12c ] [f00b11a4 : do_execveat_common+0x434/0x584 ] [f00b1310 : do_execve+0x1c/0x2c ] [f02b50b0 : kernel_init+0x70/0xf0 ] [f000b200 : ret_from_kernel_thread+0xc/0x38 ] [00000000 :   (null) ]
> Disabling lock debugging due to kernel taint
> : applet not found
> Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100

It doesn't make much sense to me. It tries to free page with pfn==0 on
handling wp-fault. How it got mapped in the first place?

Mel, any ideas?

> 
> Complete console log:
> 
> http://server.roeck-us.net:8010/builders/qemu-sparc-next/builds/82/steps/qemubuildcommand/logs/stdio
> 
> defconfig:
> 
> http://server.roeck-us.net/qemu/sparc32/qemu_sparc_defconfig
> 
> qemu command line:
> 
> /opt/buildbot/bin/qemu-system-sparc -cpu "Fujitsu MB86907" \
> 	-kernel arch/sparc/boot/image -hda hda.sqf -no-reboot \
> 	-append "root=/dev/sda rw init=/sbin/init.sh panic=1 console=ttyS0" \
> 	-nographic
> 
> The root file system (hda.sqf) is at http://server.roeck-us.net/qemu/sparc32/hda.sqf.
> 
> qemu version:
> 
> /opt/buildbot/bin/qemu-system-sparc --version
> QEMU emulator version 2.1.2, Copyright (c) 2003-2008 Fabrice Bellard
> 
> Hope this helps,
> 
> Guenter
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

-- 
 Kirill A. Shutemov

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-21  4:36                                       ` Al Viro
@ 2015-01-21 11:05                                         ` Sabrina Dubroca
  2015-01-21 13:32                                           ` Guenter Roeck
  2015-01-21 14:42                                           ` Thierry Reding
  2015-01-21 15:06                                         ` Paul Moore
  1 sibling, 2 replies; 62+ messages in thread
From: Sabrina Dubroca @ 2015-01-21 11:05 UTC (permalink / raw)
  To: Al Viro
  Cc: Guenter Roeck, Paul Moore, Stephen Rothwell, linux-next,
	linux-kernel, linux-fsdevel, linux-audit, Richard Guy Briggs

2015-01-21, 04:36:38 +0000, Al Viro wrote:
> On Tue, Jan 20, 2015 at 08:01:26PM -0800, Guenter Roeck wrote:
> > With this patch:
> > 
> > sys_mkdir .:40775 returned -17
> > sys_mkdir usr:40775 returned 0
> > sys_mkdir usr/lib:40775 returned 0
> > sys_mkdir usr/share:40755 returned 0
> > sys_mkdir usr/share/udhcpc:40755 returned 0
> > sys_mkdir usr/bin:40775 returned 0
> > sys_mkdir usr/sbin:40775 returned 0
> > sys_mkdir mnt:40775 returned 0
> > sys_mkdir proc:40775 returned 0
> > sys_mkdir root:40775 returned 0
> > sys_mkdir lib:40775 returned 0
> > sys_mkdir lib/modules:40775 returned 0
> > ...
> > 
> > and the problem is fixed.

This patch also works for me.


> ... except that it simply confirms that something's fishy with getname_kernel()
> of ->name of struct filename returned by getname().  IOW, I still do not
> understand the mechanism of breakage there.

I'm not so sure about that.  I tried to copy name to a new string in
do_path_lookup and that didn't help.

Now, I've removed the

        putname(filename);

line from do_path_lookup and I don't get the panic.


And BTW, I added Guenter's debugging to init/initramfs.c and got:
sys_mkdir dev:40755 returned 0
sys_mkdir root:40700 returned 0

even if it ends up panic'ing.

-- 
Sabrina

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-21 11:05                                         ` Sabrina Dubroca
@ 2015-01-21 13:32                                           ` Guenter Roeck
  2015-01-21 18:29                                             ` Al Viro
  2015-01-21 14:42                                           ` Thierry Reding
  1 sibling, 1 reply; 62+ messages in thread
From: Guenter Roeck @ 2015-01-21 13:32 UTC (permalink / raw)
  To: Sabrina Dubroca, Al Viro
  Cc: Paul Moore, Stephen Rothwell, linux-next, linux-kernel,
	linux-fsdevel, linux-audit, Richard Guy Briggs

On 01/21/2015 03:05 AM, Sabrina Dubroca wrote:
> 2015-01-21, 04:36:38 +0000, Al Viro wrote:
>> On Tue, Jan 20, 2015 at 08:01:26PM -0800, Guenter Roeck wrote:
>>> With this patch:
>>>
>>> sys_mkdir .:40775 returned -17
>>> sys_mkdir usr:40775 returned 0
>>> sys_mkdir usr/lib:40775 returned 0
>>> sys_mkdir usr/share:40755 returned 0
>>> sys_mkdir usr/share/udhcpc:40755 returned 0
>>> sys_mkdir usr/bin:40775 returned 0
>>> sys_mkdir usr/sbin:40775 returned 0
>>> sys_mkdir mnt:40775 returned 0
>>> sys_mkdir proc:40775 returned 0
>>> sys_mkdir root:40775 returned 0
>>> sys_mkdir lib:40775 returned 0
>>> sys_mkdir lib/modules:40775 returned 0
>>> ...
>>>
>>> and the problem is fixed.
>
> This patch also works for me.
>
>
>> ... except that it simply confirms that something's fishy with getname_kernel()
>> of ->name of struct filename returned by getname().  IOW, I still do not
>> understand the mechanism of breakage there.
>
> I'm not so sure about that.  I tried to copy name to a new string in
> do_path_lookup and that didn't help.
>
> Now, I've removed the
>
>          putname(filename);
>
> line from do_path_lookup and I don't get the panic.
>
>
> And BTW, I added Guenter's debugging to init/initramfs.c and got:
> sys_mkdir dev:40755 returned 0
> sys_mkdir root:40700 returned 0
>
> even if it ends up panic'ing.
>
Another data point (though I have no idea if it is useful or what it means):

In the working case, path_init sets nd->flags to 0x50 or 0x51.
In the non-working case (ie for all files with a '/' in the name),
it sets nd->flags to 0x10 or 0x11, even though it is always called
with the LOOKUP_RCU bit set in flags.

Guenter


^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-21 11:05                                         ` Sabrina Dubroca
  2015-01-21 13:32                                           ` Guenter Roeck
@ 2015-01-21 14:42                                           ` Thierry Reding
  2015-01-21 15:24                                             ` Paul Moore
  1 sibling, 1 reply; 62+ messages in thread
From: Thierry Reding @ 2015-01-21 14:42 UTC (permalink / raw)
  To: Al Viro
  Cc: Sabrina Dubroca, Guenter Roeck, Paul Moore, Stephen Rothwell,
	linux-next, linux-kernel, linux-fsdevel, linux-audit,
	Richard Guy Briggs

[-- Attachment #1: Type: text/plain, Size: 2876 bytes --]

On Wed, Jan 21, 2015 at 12:05:39PM +0100, Sabrina Dubroca wrote:
> 2015-01-21, 04:36:38 +0000, Al Viro wrote:
> > On Tue, Jan 20, 2015 at 08:01:26PM -0800, Guenter Roeck wrote:
> > > With this patch:
> > > 
> > > sys_mkdir .:40775 returned -17
> > > sys_mkdir usr:40775 returned 0
> > > sys_mkdir usr/lib:40775 returned 0
> > > sys_mkdir usr/share:40755 returned 0
> > > sys_mkdir usr/share/udhcpc:40755 returned 0
> > > sys_mkdir usr/bin:40775 returned 0
> > > sys_mkdir usr/sbin:40775 returned 0
> > > sys_mkdir mnt:40775 returned 0
> > > sys_mkdir proc:40775 returned 0
> > > sys_mkdir root:40775 returned 0
> > > sys_mkdir lib:40775 returned 0
> > > sys_mkdir lib/modules:40775 returned 0
> > > ...
> > > 
> > > and the problem is fixed.
> 
> This patch also works for me.
> 
> 
> > ... except that it simply confirms that something's fishy with getname_kernel()
> > of ->name of struct filename returned by getname().  IOW, I still do not
> > understand the mechanism of breakage there.
> 
> I'm not so sure about that.  I tried to copy name to a new string in
> do_path_lookup and that didn't help.
> 
> Now, I've removed the
> 
>         putname(filename);
> 
> line from do_path_lookup and I don't get the panic.

That would indicate that somehow the refcount got unbalanced. Looking
more closely it seems like the various audit_*() function do take a
reference, but maybe that's not enough.

But debugging this further I see no indication that the memory is ever
freed, or otherwise corrupted.

I did collect a bit more data, perhaps that's useful. I started seeing
this issue as well on devices that boot over NFS. After reading this
thread I also realized that another warning that I was seeing might be
related:

	[   28.261930] Warning: unable to open an initial console.

I've added a couple of printks and see that the reason for this is that
/dev/console doesn't get created. /dev however does get created.

	[   11.786627] sys_mkdir dev:40755 returned 0
	...
	[   11.978748] sys_mknod dev/console:20600 returned -2

The chain that fails turns out to be this:

	sys_mknod()
	  sys_mknodat()
	    user_path_create()
	      kern_path_create()
	        do_path_lookup()
	          filename_lookup()
	            path_lookupat()
	              path_init()
	                link_path_walk()
	                  walk_component()

walk_components() ends up calling lookup_slow() and the result is that
inode == NULL and d_is_negative(path->dentry) returns true, therefore
causing -ENOENT to be returned.

I tried to figure out why inode would be NULL at that point or why
d_is_negative() returned true, but I ended up getting completely lost,
so I thought it best to report my findings before I confuse everything.

Is there anything else I can investigate to track this down?

Thierry

[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-21  4:36                                       ` Al Viro
  2015-01-21 11:05                                         ` Sabrina Dubroca
@ 2015-01-21 15:06                                         ` Paul Moore
  1 sibling, 0 replies; 62+ messages in thread
From: Paul Moore @ 2015-01-21 15:06 UTC (permalink / raw)
  To: Al Viro
  Cc: Guenter Roeck, Sabrina Dubroca, Stephen Rothwell, linux-next,
	linux-kernel, linux-fsdevel, linux-audit, Richard Guy Briggs

On Wednesday, January 21, 2015 04:36:38 AM Al Viro wrote:
> Another thing I really do not understand is
> +               if (inode->i_ino) {
> +                       /* valid inode number, use that for the ...
> +                       if (n->ino != inode->i_ino ||
> +                           n->dev != inode->i_sb->s_dev)
> +                               continue;
> in __audit_inode().  We don't *have* dentries with dentry->d_inode->i_ino ==
> 0. Ever.  WTF is that about?  Paul?

Likely stupidity on my part.  It looks like a typo, that first if conditional 
should check "n->ino" instead of "inode->i_ino"; in __audit_getname() we 
record names without any inode numbers, so we need to see if this is one of 
those records.  Interesting that it passed my testing; either my testing is 
crap (always a strong possibility) or something else came to the rescue.  I'm 
still coming up to speed on the audit/VFS code ...

I'll fix that up and include in the next patchset once we resolve this issue.

-- 
paul moore
security @ redhat


^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-21 14:42                                           ` Thierry Reding
@ 2015-01-21 15:24                                             ` Paul Moore
  2015-01-21 15:39                                               ` Thierry Reding
  0 siblings, 1 reply; 62+ messages in thread
From: Paul Moore @ 2015-01-21 15:24 UTC (permalink / raw)
  To: Thierry Reding
  Cc: Al Viro, Sabrina Dubroca, Guenter Roeck, Stephen Rothwell,
	linux-next, linux-kernel, linux-fsdevel, linux-audit,
	Richard Guy Briggs

On Wednesday, January 21, 2015 03:42:16 PM Thierry Reding wrote:
> On Wed, Jan 21, 2015 at 12:05:39PM +0100, Sabrina Dubroca wrote:
> > 2015-01-21, 04:36:38 +0000, Al Viro wrote:
> > > On Tue, Jan 20, 2015 at 08:01:26PM -0800, Guenter Roeck wrote:
> > > > With this patch:
> > > > 
> > > > sys_mkdir .:40775 returned -17
> > > > sys_mkdir usr:40775 returned 0
> > > > sys_mkdir usr/lib:40775 returned 0
> > > > sys_mkdir usr/share:40755 returned 0
> > > > sys_mkdir usr/share/udhcpc:40755 returned 0
> > > > sys_mkdir usr/bin:40775 returned 0
> > > > sys_mkdir usr/sbin:40775 returned 0
> > > > sys_mkdir mnt:40775 returned 0
> > > > sys_mkdir proc:40775 returned 0
> > > > sys_mkdir root:40775 returned 0
> > > > sys_mkdir lib:40775 returned 0
> > > > sys_mkdir lib/modules:40775 returned 0
> > > > ...
> > > > 
> > > > and the problem is fixed.
> > 
> > This patch also works for me.
> > 
> > > ... except that it simply confirms that something's fishy with
> > > getname_kernel() of ->name of struct filename returned by getname(). 
> > > IOW, I still do not understand the mechanism of breakage there.
> > 
> > I'm not so sure about that.  I tried to copy name to a new string in
> > do_path_lookup and that didn't help.
> > 
> > Now, I've removed the
> > 
> >         putname(filename);
> > 
> > line from do_path_lookup and I don't get the panic.
> 
> That would indicate that somehow the refcount got unbalanced. Looking
> more closely it seems like the various audit_*() function do take a
> reference, but maybe that's not enough.

I'm thinking the same thing and I think the problem may be that 
__audit_reusename() is not bumping the filename->refcnt.  Can someone who is 
seeing this problem bump the refcnt in __audit_reusename()?

  struct filename *
  __audit_reusename(const __user char *uptr)
  {
        struct audit_context *context = current->audit_context;
        struct audit_names *n;

        list_for_each_entry(n, &context->names_list, list) {
                if (!n->name)
                        continue;
                if (n->name->uptr == uptr) {
+                       n->name->refcnt++;
                        return n->name;
                }
        }
        return NULL;
  }

-- 
paul moore
security @ redhat


^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-21 15:24                                             ` Paul Moore
@ 2015-01-21 15:39                                               ` Thierry Reding
  2015-01-21 15:54                                                 ` Sabrina Dubroca
  0 siblings, 1 reply; 62+ messages in thread
From: Thierry Reding @ 2015-01-21 15:39 UTC (permalink / raw)
  To: Paul Moore
  Cc: Al Viro, Sabrina Dubroca, Guenter Roeck, Stephen Rothwell,
	linux-next, linux-kernel, linux-fsdevel, linux-audit,
	Richard Guy Briggs

[-- Attachment #1: Type: text/plain, Size: 2522 bytes --]

On Wed, Jan 21, 2015 at 10:24:11AM -0500, Paul Moore wrote:
> On Wednesday, January 21, 2015 03:42:16 PM Thierry Reding wrote:
> > On Wed, Jan 21, 2015 at 12:05:39PM +0100, Sabrina Dubroca wrote:
> > > 2015-01-21, 04:36:38 +0000, Al Viro wrote:
> > > > On Tue, Jan 20, 2015 at 08:01:26PM -0800, Guenter Roeck wrote:
> > > > > With this patch:
> > > > > 
> > > > > sys_mkdir .:40775 returned -17
> > > > > sys_mkdir usr:40775 returned 0
> > > > > sys_mkdir usr/lib:40775 returned 0
> > > > > sys_mkdir usr/share:40755 returned 0
> > > > > sys_mkdir usr/share/udhcpc:40755 returned 0
> > > > > sys_mkdir usr/bin:40775 returned 0
> > > > > sys_mkdir usr/sbin:40775 returned 0
> > > > > sys_mkdir mnt:40775 returned 0
> > > > > sys_mkdir proc:40775 returned 0
> > > > > sys_mkdir root:40775 returned 0
> > > > > sys_mkdir lib:40775 returned 0
> > > > > sys_mkdir lib/modules:40775 returned 0
> > > > > ...
> > > > > 
> > > > > and the problem is fixed.
> > > 
> > > This patch also works for me.
> > > 
> > > > ... except that it simply confirms that something's fishy with
> > > > getname_kernel() of ->name of struct filename returned by getname(). 
> > > > IOW, I still do not understand the mechanism of breakage there.
> > > 
> > > I'm not so sure about that.  I tried to copy name to a new string in
> > > do_path_lookup and that didn't help.
> > > 
> > > Now, I've removed the
> > > 
> > >         putname(filename);
> > > 
> > > line from do_path_lookup and I don't get the panic.
> > 
> > That would indicate that somehow the refcount got unbalanced. Looking
> > more closely it seems like the various audit_*() function do take a
> > reference, but maybe that's not enough.
> 
> I'm thinking the same thing and I think the problem may be that 
> __audit_reusename() is not bumping the filename->refcnt.  Can someone who is 
> seeing this problem bump the refcnt in __audit_reusename()?
> 
>   struct filename *
>   __audit_reusename(const __user char *uptr)
>   {
>         struct audit_context *context = current->audit_context;
>         struct audit_names *n;
> 
>         list_for_each_entry(n, &context->names_list, list) {
>                 if (!n->name)
>                         continue;
>                 if (n->name->uptr == uptr) {
> +                       n->name->refcnt++;
>                         return n->name;
>                 }
>         }
>         return NULL;
>   }

That doesn't seem to help, at least in my case.

Thierry

[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-21 15:39                                               ` Thierry Reding
@ 2015-01-21 15:54                                                 ` Sabrina Dubroca
  2015-01-21 16:16                                                   ` Paul Moore
  2015-01-21 16:21                                                   ` Guenter Roeck
  0 siblings, 2 replies; 62+ messages in thread
From: Sabrina Dubroca @ 2015-01-21 15:54 UTC (permalink / raw)
  To: Paul Moore
  Cc: Thierry Reding, Al Viro, Guenter Roeck, Stephen Rothwell,
	linux-next, linux-kernel, linux-fsdevel, linux-audit,
	Richard Guy Briggs

2015-01-21, 16:39:12 +0100, Thierry Reding wrote:
> On Wed, Jan 21, 2015 at 10:24:11AM -0500, Paul Moore wrote:
> > On Wednesday, January 21, 2015 03:42:16 PM Thierry Reding wrote:
> > > On Wed, Jan 21, 2015 at 12:05:39PM +0100, Sabrina Dubroca wrote:
> > > > 2015-01-21, 04:36:38 +0000, Al Viro wrote:
> > > > > On Tue, Jan 20, 2015 at 08:01:26PM -0800, Guenter Roeck wrote:
> > > > > > With this patch:
> > > > > > 
> > > > > > sys_mkdir .:40775 returned -17
> > > > > > sys_mkdir usr:40775 returned 0
> > > > > > sys_mkdir usr/lib:40775 returned 0
> > > > > > sys_mkdir usr/share:40755 returned 0
> > > > > > sys_mkdir usr/share/udhcpc:40755 returned 0
> > > > > > sys_mkdir usr/bin:40775 returned 0
> > > > > > sys_mkdir usr/sbin:40775 returned 0
> > > > > > sys_mkdir mnt:40775 returned 0
> > > > > > sys_mkdir proc:40775 returned 0
> > > > > > sys_mkdir root:40775 returned 0
> > > > > > sys_mkdir lib:40775 returned 0
> > > > > > sys_mkdir lib/modules:40775 returned 0
> > > > > > ...
> > > > > > 
> > > > > > and the problem is fixed.
> > > > 
> > > > This patch also works for me.
> > > > 
> > > > > ... except that it simply confirms that something's fishy with
> > > > > getname_kernel() of ->name of struct filename returned by getname(). 
> > > > > IOW, I still do not understand the mechanism of breakage there.
> > > > 
> > > > I'm not so sure about that.  I tried to copy name to a new string in
> > > > do_path_lookup and that didn't help.
> > > > 
> > > > Now, I've removed the
> > > > 
> > > >         putname(filename);
> > > > 
> > > > line from do_path_lookup and I don't get the panic.
> > > 
> > > That would indicate that somehow the refcount got unbalanced. Looking
> > > more closely it seems like the various audit_*() function do take a
> > > reference, but maybe that's not enough.
> > 
> > I'm thinking the same thing and I think the problem may be that 
> > __audit_reusename() is not bumping the filename->refcnt.  Can someone who is 
> > seeing this problem bump the refcnt in __audit_reusename()?
> > 
> >   struct filename *
> >   __audit_reusename(const __user char *uptr)
> >   {
> >         struct audit_context *context = current->audit_context;
> >         struct audit_names *n;
> > 
> >         list_for_each_entry(n, &context->names_list, list) {
> >                 if (!n->name)
> >                         continue;
> >                 if (n->name->uptr == uptr) {
> > +                       n->name->refcnt++;
> >                         return n->name;
> >                 }
> >         }
> >         return NULL;
> >   }
> 
> That doesn't seem to help, at least in my case.

Same here.

Well, it's probably not an audit issue.  I tried audit=0 on the
commandline, and I just rebuilt a kernel with CONFIG_AUDIT=n, and it's
still panicing.  This should have fixed any audit-related issue,
right?

-- 
Sabrina

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-21 15:54                                                 ` Sabrina Dubroca
@ 2015-01-21 16:16                                                   ` Paul Moore
  2015-01-21 17:38                                                     ` Al Viro
  2015-01-21 16:21                                                   ` Guenter Roeck
  1 sibling, 1 reply; 62+ messages in thread
From: Paul Moore @ 2015-01-21 16:16 UTC (permalink / raw)
  To: Sabrina Dubroca
  Cc: Thierry Reding, Al Viro, Guenter Roeck, Stephen Rothwell,
	linux-next, linux-kernel, linux-fsdevel, linux-audit,
	Richard Guy Briggs

On Wednesday, January 21, 2015 04:54:07 PM Sabrina Dubroca wrote:
> 2015-01-21, 16:39:12 +0100, Thierry Reding wrote:
> > That doesn't seem to help, at least in my case.
> 
> Same here.

Okay, thanks for trying.  Sorry that didn't resolve things.

> Well, it's probably not an audit issue.  I tried audit=0 on the
> commandline, and I just rebuilt a kernel with CONFIG_AUDIT=n, and it's
> still panicing.  This should have fixed any audit-related issue,
> right?

Most likely.  Back to the code I go ...

-- 
paul moore
security @ redhat


^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-21 15:54                                                 ` Sabrina Dubroca
  2015-01-21 16:16                                                   ` Paul Moore
@ 2015-01-21 16:21                                                   ` Guenter Roeck
  1 sibling, 0 replies; 62+ messages in thread
From: Guenter Roeck @ 2015-01-21 16:21 UTC (permalink / raw)
  To: Sabrina Dubroca, Paul Moore
  Cc: Thierry Reding, Al Viro, Stephen Rothwell, linux-next,
	linux-kernel, linux-fsdevel, linux-audit, Richard Guy Briggs

On 01/21/2015 07:54 AM, Sabrina Dubroca wrote:
> 2015-01-21, 16:39:12 +0100, Thierry Reding wrote:
>> On Wed, Jan 21, 2015 at 10:24:11AM -0500, Paul Moore wrote:
>>> On Wednesday, January 21, 2015 03:42:16 PM Thierry Reding wrote:
>>>> On Wed, Jan 21, 2015 at 12:05:39PM +0100, Sabrina Dubroca wrote:
>>>>> 2015-01-21, 04:36:38 +0000, Al Viro wrote:
>>>>>> On Tue, Jan 20, 2015 at 08:01:26PM -0800, Guenter Roeck wrote:
>>>>>>> With this patch:
>>>>>>>
>>>>>>> sys_mkdir .:40775 returned -17
>>>>>>> sys_mkdir usr:40775 returned 0
>>>>>>> sys_mkdir usr/lib:40775 returned 0
>>>>>>> sys_mkdir usr/share:40755 returned 0
>>>>>>> sys_mkdir usr/share/udhcpc:40755 returned 0
>>>>>>> sys_mkdir usr/bin:40775 returned 0
>>>>>>> sys_mkdir usr/sbin:40775 returned 0
>>>>>>> sys_mkdir mnt:40775 returned 0
>>>>>>> sys_mkdir proc:40775 returned 0
>>>>>>> sys_mkdir root:40775 returned 0
>>>>>>> sys_mkdir lib:40775 returned 0
>>>>>>> sys_mkdir lib/modules:40775 returned 0
>>>>>>> ...
>>>>>>>
>>>>>>> and the problem is fixed.
>>>>>
>>>>> This patch also works for me.
>>>>>
>>>>>> ... except that it simply confirms that something's fishy with
>>>>>> getname_kernel() of ->name of struct filename returned by getname().
>>>>>> IOW, I still do not understand the mechanism of breakage there.
>>>>>
>>>>> I'm not so sure about that.  I tried to copy name to a new string in
>>>>> do_path_lookup and that didn't help.
>>>>>
>>>>> Now, I've removed the
>>>>>
>>>>>          putname(filename);
>>>>>
>>>>> line from do_path_lookup and I don't get the panic.
>>>>
>>>> That would indicate that somehow the refcount got unbalanced. Looking
>>>> more closely it seems like the various audit_*() function do take a
>>>> reference, but maybe that's not enough.
>>>
>>> I'm thinking the same thing and I think the problem may be that
>>> __audit_reusename() is not bumping the filename->refcnt.  Can someone who is
>>> seeing this problem bump the refcnt in __audit_reusename()?
>>>
>>>    struct filename *
>>>    __audit_reusename(const __user char *uptr)
>>>    {
>>>          struct audit_context *context = current->audit_context;
>>>          struct audit_names *n;
>>>
>>>          list_for_each_entry(n, &context->names_list, list) {
>>>                  if (!n->name)
>>>                          continue;
>>>                  if (n->name->uptr == uptr) {
>>> +                       n->name->refcnt++;
>>>                          return n->name;
>>>                  }
>>>          }
>>>          return NULL;
>>>    }
>>
>> That doesn't seem to help, at least in my case.
>
> Same here.
>
> Well, it's probably not an audit issue.  I tried audit=0 on the
> commandline, and I just rebuilt a kernel with CONFIG_AUDIT=n, and it's
> still panicing.  This should have fixed any audit-related issue,
> right?
>
I don't have audit enabled, so I don't think that is the problem either
(the refcount increase didn't help, and a WARN(1) added to the code
at the same location did not trigger).

Wonder if we have a use-after-free case and just have been lucky all along.

Guenter


^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-21 16:16                                                   ` Paul Moore
@ 2015-01-21 17:38                                                     ` Al Viro
  2015-01-21 17:51                                                       ` Guenter Roeck
  0 siblings, 1 reply; 62+ messages in thread
From: Al Viro @ 2015-01-21 17:38 UTC (permalink / raw)
  To: Paul Moore
  Cc: Sabrina Dubroca, Thierry Reding, Guenter Roeck, Stephen Rothwell,
	linux-next, linux-kernel, linux-fsdevel, linux-audit,
	Richard Guy Briggs

On Wed, Jan 21, 2015 at 11:16:23AM -0500, Paul Moore wrote:
> On Wednesday, January 21, 2015 04:54:07 PM Sabrina Dubroca wrote:
> > 2015-01-21, 16:39:12 +0100, Thierry Reding wrote:
> > > That doesn't seem to help, at least in my case.
> > 
> > Same here.
> 
> Okay, thanks for trying.  Sorry that didn't resolve things.
> 
> > Well, it's probably not an audit issue.  I tried audit=0 on the
> > commandline, and I just rebuilt a kernel with CONFIG_AUDIT=n, and it's
> > still panicing.  This should have fixed any audit-related issue,
> > right?
> 
> Most likely.  Back to the code I go ...

FWIW, I really wonder if populate_rootfs() (run ultimately from
kernel_init(), by way of kernel_init_freeable(), do_basic_setup() and
do_initcalls()) ends up with some side effects as far as struct filename
are concerned...

Note that if we _ever_ hit reuse logics there, we are going to get bogus
matches asoddingplenty - *all* those sys_mkdir(), etc. are going to be
with filenames in the same reused buffer.  So if anything in there leaks
from one call to another, we are going to have a mess on hands.

Another place where that can be a problem is devtmpfs - there's a kernel
thread doing actual mkdir, mknod, etc. in that abomination and if _that_
ends up accumulating aushit entries, we'll end up with interesting problems.

Folks, could you print the value of audit_dummy_context() in populate_rootfs()
and in drivers/base/devtmpfs.c:devtmpfsd()?

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-21 17:38                                                     ` Al Viro
@ 2015-01-21 17:51                                                       ` Guenter Roeck
  0 siblings, 0 replies; 62+ messages in thread
From: Guenter Roeck @ 2015-01-21 17:51 UTC (permalink / raw)
  To: Al Viro, Paul Moore
  Cc: Sabrina Dubroca, Thierry Reding, Stephen Rothwell, linux-next,
	linux-kernel, linux-fsdevel, linux-audit, Richard Guy Briggs

On 01/21/2015 09:38 AM, Al Viro wrote:
> On Wed, Jan 21, 2015 at 11:16:23AM -0500, Paul Moore wrote:
>> On Wednesday, January 21, 2015 04:54:07 PM Sabrina Dubroca wrote:
>>> 2015-01-21, 16:39:12 +0100, Thierry Reding wrote:
>>>> That doesn't seem to help, at least in my case.
>>>
>>> Same here.
>>
>> Okay, thanks for trying.  Sorry that didn't resolve things.
>>
>>> Well, it's probably not an audit issue.  I tried audit=0 on the
>>> commandline, and I just rebuilt a kernel with CONFIG_AUDIT=n, and it's
>>> still panicing.  This should have fixed any audit-related issue,
>>> right?
>>
>> Most likely.  Back to the code I go ...
>
> FWIW, I really wonder if populate_rootfs() (run ultimately from
> kernel_init(), by way of kernel_init_freeable(), do_basic_setup() and
> do_initcalls()) ends up with some side effects as far as struct filename
> are concerned...
>
> Note that if we _ever_ hit reuse logics there, we are going to get bogus
> matches asoddingplenty - *all* those sys_mkdir(), etc. are going to be
> with filenames in the same reused buffer.  So if anything in there leaks
> from one call to another, we are going to have a mess on hands.
>
> Another place where that can be a problem is devtmpfs - there's a kernel
> thread doing actual mkdir, mknod, etc. in that abomination and if _that_
> ends up accumulating aushit entries, we'll end up with interesting problems.
>
> Folks, could you print the value of audit_dummy_context() in populate_rootfs()
> and in drivers/base/devtmpfs.c:devtmpfsd()?
>
populate_rootfs: audit_dummy_context() returns 1

Guenter


^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-21 13:32                                           ` Guenter Roeck
@ 2015-01-21 18:29                                             ` Al Viro
  2015-01-21 19:06                                               ` Guenter Roeck
  0 siblings, 1 reply; 62+ messages in thread
From: Al Viro @ 2015-01-21 18:29 UTC (permalink / raw)
  To: Guenter Roeck
  Cc: Sabrina Dubroca, Paul Moore, Stephen Rothwell, linux-next,
	linux-kernel, linux-fsdevel, linux-audit, Richard Guy Briggs

On Wed, Jan 21, 2015 at 05:32:13AM -0800, Guenter Roeck wrote:
> Another data point (though I have no idea if it is useful or what it means):
> 
> In the working case, path_init sets nd->flags to 0x50 or 0x51.
> In the non-working case (ie for all files with a '/' in the name),
> it sets nd->flags to 0x10 or 0x11, even though it is always called
> with the LOOKUP_RCU bit set in flags.

Umm...  Are those path_init() succeeding or failing?  Note that path_init()
includes "walk everything except for the last component", so your non-working
case is "have it walk anything at all".  What's failing there?  path_init()
or handling the remaining component?

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-21 18:29                                             ` Al Viro
@ 2015-01-21 19:06                                               ` Guenter Roeck
  2015-01-21 20:06                                                 ` Al Viro
  0 siblings, 1 reply; 62+ messages in thread
From: Guenter Roeck @ 2015-01-21 19:06 UTC (permalink / raw)
  To: Al Viro
  Cc: Sabrina Dubroca, Paul Moore, Stephen Rothwell, linux-next,
	linux-kernel, linux-fsdevel, linux-audit, Richard Guy Briggs

On 01/21/2015 10:29 AM, Al Viro wrote:
> On Wed, Jan 21, 2015 at 05:32:13AM -0800, Guenter Roeck wrote:
>> Another data point (though I have no idea if it is useful or what it means):
>>
>> In the working case, path_init sets nd->flags to 0x50 or 0x51.
>> In the non-working case (ie for all files with a '/' in the name),
>> it sets nd->flags to 0x10 or 0x11, even though it is always called
>> with the LOOKUP_RCU bit set in flags.
>
> Umm...  Are those path_init() succeeding or failing?  Note that path_init()
> includes "walk everything except for the last component", so your non-working
> case is "have it walk anything at all".  What's failing there?  path_init()
> or handling the remaining component?
>
path_init() returns -2. Guess that explains the unexpected flags ;-).
The failuere is from
	link_path_walk()
		walk_component()

Guenter


^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-21 19:06                                               ` Guenter Roeck
@ 2015-01-21 20:06                                                 ` Al Viro
  2015-01-21 21:03                                                   ` Guenter Roeck
  0 siblings, 1 reply; 62+ messages in thread
From: Al Viro @ 2015-01-21 20:06 UTC (permalink / raw)
  To: Guenter Roeck
  Cc: Sabrina Dubroca, Paul Moore, Stephen Rothwell, linux-next,
	linux-kernel, linux-fsdevel, linux-audit, Richard Guy Briggs

On Wed, Jan 21, 2015 at 11:06:27AM -0800, Guenter Roeck wrote:
> On 01/21/2015 10:29 AM, Al Viro wrote:
> >On Wed, Jan 21, 2015 at 05:32:13AM -0800, Guenter Roeck wrote:
> >>Another data point (though I have no idea if it is useful or what it means):
> >>
> >>In the working case, path_init sets nd->flags to 0x50 or 0x51.
> >>In the non-working case (ie for all files with a '/' in the name),
> >>it sets nd->flags to 0x10 or 0x11, even though it is always called
> >>with the LOOKUP_RCU bit set in flags.
> >
> >Umm...  Are those path_init() succeeding or failing?  Note that path_init()
> >includes "walk everything except for the last component", so your non-working
> >case is "have it walk anything at all".  What's failing there?  path_init()
> >or handling the remaining component?
> >
> path_init() returns -2. Guess that explains the unexpected flags ;-).
> The failuere is from
> 	link_path_walk()
> 		walk_component()

Which is to say, lookup gave it a negative dentry.  OK, let's just make
vfs_mkdir() and walk_component() print what they are doing; on top of
linux-next

diff --git a/fs/namei.c b/fs/namei.c
index 323957f..8a4e22f 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -1586,8 +1586,11 @@ static inline int walk_component(struct nameidata *nd, struct path *path,
 		inode = path->dentry->d_inode;
 	}
 	err = -ENOENT;
-	if (!inode || d_is_negative(path->dentry))
+	if (!inode || d_is_negative(path->dentry)) {
+		printk(KERN_ERR "walk_component[%p,%pd4] -> negative\n",
+			path->dentry, path->dentry);
 		goto out_path_put;
+	}
 
 	if (should_follow_link(path->dentry, follow)) {
 		if (nd->flags & LOOKUP_RCU) {
@@ -3521,6 +3524,7 @@ int vfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
 	error = dir->i_op->mkdir(dir, dentry, mode);
 	if (!error)
 		fsnotify_mkdir(dir, dentry);
+	printk(KERN_ERR "mkdir[%p,%pd4] => %d\n", dentry, dentry, error);
 	return error;
 }
 EXPORT_SYMBOL(vfs_mkdir);

^ permalink raw reply related	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-21 20:06                                                 ` Al Viro
@ 2015-01-21 21:03                                                   ` Guenter Roeck
  2015-01-21 21:28                                                     ` Al Viro
  2015-01-21 21:30                                                     ` Sabrina Dubroca
  0 siblings, 2 replies; 62+ messages in thread
From: Guenter Roeck @ 2015-01-21 21:03 UTC (permalink / raw)
  To: Al Viro
  Cc: Sabrina Dubroca, Paul Moore, Stephen Rothwell, linux-next,
	linux-kernel, linux-fsdevel, linux-audit, Richard Guy Briggs

On 01/21/2015 12:06 PM, Al Viro wrote:
> On Wed, Jan 21, 2015 at 11:06:27AM -0800, Guenter Roeck wrote:
>> On 01/21/2015 10:29 AM, Al Viro wrote:
>>> On Wed, Jan 21, 2015 at 05:32:13AM -0800, Guenter Roeck wrote:
>>>> Another data point (though I have no idea if it is useful or what it means):
>>>>
>>>> In the working case, path_init sets nd->flags to 0x50 or 0x51.
>>>> In the non-working case (ie for all files with a '/' in the name),
>>>> it sets nd->flags to 0x10 or 0x11, even though it is always called
>>>> with the LOOKUP_RCU bit set in flags.
>>>
>>> Umm...  Are those path_init() succeeding or failing?  Note that path_init()
>>> includes "walk everything except for the last component", so your non-working
>>> case is "have it walk anything at all".  What's failing there?  path_init()
>>> or handling the remaining component?
>>>
>> path_init() returns -2. Guess that explains the unexpected flags ;-).
>> The failuere is from
>> 	link_path_walk()
>> 		walk_component()
>
> Which is to say, lookup gave it a negative dentry.  OK, let's just make
> vfs_mkdir() and walk_component() print what they are doing; on top of
> linux-next
>
> diff --git a/fs/namei.c b/fs/namei.c
> index 323957f..8a4e22f 100644
> --- a/fs/namei.c
> +++ b/fs/namei.c
> @@ -1586,8 +1586,11 @@ static inline int walk_component(struct nameidata *nd, struct path *path,
>   		inode = path->dentry->d_inode;
>   	}
>   	err = -ENOENT;
> -	if (!inode || d_is_negative(path->dentry))
> +	if (!inode || d_is_negative(path->dentry)) {
> +		printk(KERN_ERR "walk_component[%p,%pd4] -> negative\n",
> +			path->dentry, path->dentry);
>   		goto out_path_put;
> +	}
>
>   	if (should_follow_link(path->dentry, follow)) {
>   		if (nd->flags & LOOKUP_RCU) {
> @@ -3521,6 +3524,7 @@ int vfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
>   	error = dir->i_op->mkdir(dir, dentry, mode);
>   	if (!error)
>   		fsnotify_mkdir(dir, dentry);
> +	printk(KERN_ERR "mkdir[%p,%pd4] => %d\n", dentry, dentry, error);
>   	return error;
>   }
>   EXPORT_SYMBOL(vfs_mkdir);
>

ok case (putname commented out):

user_path_at_empty lookup usr flags 0x0
path_lookupat: calling path_init 'usr' flags=40
path_init: link_path_walk() returned 0
path_lookupat: path_init 'usr' flags=40[50] returned 0
walk_component: lookup_fast() returned 1
walk_component: lookup_slow() returned 0
walk_component: inode=  (null), negative=1
do_path_lookup(usr, 0x10)
path_lookupat: calling path_init 'usr' flags=50
path_init: link_path_walk() returned 0
path_lookupat: path_init 'usr' flags=50[50] returned 0
mkdir[c74012a0,/usr] => 0
user_path_at_empty lookup usr flags 0x1
path_lookupat: calling path_init 'usr' flags=41
path_init: link_path_walk() returned 0
path_lookupat: path_init 'usr' flags=41[51] returned 0
walk_component: inode=c74004a0, negative=0
user_path_at_empty lookup usr flags 0x1
path_lookupat: calling path_init 'usr' flags=41
path_init: link_path_walk() returned 0
path_lookupat: path_init 'usr' flags=41[51] returned 0

failing case:

path_lookupat: calling path_init 'usr' flags=40
path_init: link_path_walk() returned 0
path_lookupat: path_init 'usr' flags=40[50] returned 0
walk_component: lookup_fast() returned 1
walk_component: lookup_slow() returned 0
walk_component: inode=  (null), negative=1
do_path_lookup(usr, 0x10)
path_lookupat: calling path_init 'usr' flags=50
path_init: link_path_walk() returned 0
path_lookupat: path_init 'usr' flags=50[50] returned 0
mkdir[c74012a0,/kkk] => 0						<==== SIC!
user_path_at_empty lookup usr flags 0x1
path_lookupat: calling path_init 'usr' flags=41
path_init: link_path_walk() returned 0
path_lookupat: path_init 'usr' flags=41[51] returned 0
walk_component: lookup_fast() returned 1
walk_component: lookup_slow() returned 0
walk_component: inode=  (null), negative=1
user_path_at_empty lookup usr flags 0x1
path_lookupat: calling path_init 'usr' flags=41
path_init: link_path_walk() returned 0
path_lookupat: path_init 'usr' flags=41[51] returned 0
walk_component: lookup_fast() returned 1
walk_component: lookup_slow() returned 0
walk_component: inode=  (null), negative=1

Guenter




^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-21 21:03                                                   ` Guenter Roeck
@ 2015-01-21 21:28                                                     ` Al Viro
  2015-01-21 21:38                                                       ` Guenter Roeck
                                                                         ` (3 more replies)
  2015-01-21 21:30                                                     ` Sabrina Dubroca
  1 sibling, 4 replies; 62+ messages in thread
From: Al Viro @ 2015-01-21 21:28 UTC (permalink / raw)
  To: Guenter Roeck
  Cc: Sabrina Dubroca, Paul Moore, Stephen Rothwell, linux-next,
	linux-kernel, linux-fsdevel, linux-audit, Richard Guy Briggs

On Wed, Jan 21, 2015 at 01:03:20PM -0800, Guenter Roeck wrote:
> ok case (putname commented out):
> 
> user_path_at_empty lookup usr flags 0x0
> path_lookupat: calling path_init 'usr' flags=40
> path_init: link_path_walk() returned 0
> path_lookupat: path_init 'usr' flags=40[50] returned 0
> walk_component: lookup_fast() returned 1
> walk_component: lookup_slow() returned 0
> walk_component: inode=  (null), negative=1
> do_path_lookup(usr, 0x10)
> path_lookupat: calling path_init 'usr' flags=50
> path_init: link_path_walk() returned 0
> path_lookupat: path_init 'usr' flags=50[50] returned 0
> mkdir[c74012a0,/usr] => 0
> user_path_at_empty lookup usr flags 0x1
> path_lookupat: calling path_init 'usr' flags=41
> path_init: link_path_walk() returned 0
> path_lookupat: path_init 'usr' flags=41[51] returned 0
> walk_component: inode=c74004a0, negative=0
> user_path_at_empty lookup usr flags 0x1
> path_lookupat: calling path_init 'usr' flags=41
> path_init: link_path_walk() returned 0
> path_lookupat: path_init 'usr' flags=41[51] returned 0
> 
> failing case:
> 
> path_lookupat: calling path_init 'usr' flags=40
> path_init: link_path_walk() returned 0
> path_lookupat: path_init 'usr' flags=40[50] returned 0
> walk_component: lookup_fast() returned 1
> walk_component: lookup_slow() returned 0
> walk_component: inode=  (null), negative=1
> do_path_lookup(usr, 0x10)
> path_lookupat: calling path_init 'usr' flags=50
> path_init: link_path_walk() returned 0
> path_lookupat: path_init 'usr' flags=50[50] returned 0
> mkdir[c74012a0,/kkk] => 0						<==== SIC!

Cute. 'k' being 0x6b, aka POISON_FREE...  OK, the next question is what's
been freed under us - I don't believe that it's dentry itself...
Oh, fuck.  OK, I see what happens.  Look at kern_path_create(); it does
LOOKUP_PARENT walk, leaving nd->last pointing to the last component of
the *COPY* of the name it's just created, walked and freed.

OK...  Fortunately, struct nameidata is completely opaque outside of fs/namei.c,
so we only need to care about a couple of codepaths.

Folks, could you check if the following on top of linux-next fixes the problem?

diff --git a/fs/namei.c b/fs/namei.c
index 323957f..cda89c3 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -2056,13 +2056,22 @@ static int do_path_lookup(int dfd, const char *name,
 /* does lookup, returns the object with parent locked */
 struct dentry *kern_path_locked(const char *name, struct path *path)
 {
+	struct filename *filename = getname_kernel(name);
 	struct nameidata nd;
 	struct dentry *d;
-	int err = do_path_lookup(AT_FDCWD, name, LOOKUP_PARENT, &nd);
-	if (err)
+	int err;
+
+	if (IS_ERR(filename))
+		return ERR_CAST(filename);
+
+	err = filename_lookup(AT_FDCWD, filename, LOOKUP_PARENT, &nd);
+	if (err) {
+		putname(filename);
 		return ERR_PTR(err);
+	}
 	if (nd.last_type != LAST_NORM) {
 		path_put(&nd.path);
+		putname(filename);
 		return ERR_PTR(-EINVAL);
 	}
 	mutex_lock_nested(&nd.path.dentry->d_inode->i_mutex, I_MUTEX_PARENT);
@@ -2070,9 +2079,11 @@ struct dentry *kern_path_locked(const char *name, struct path *path)
 	if (IS_ERR(d)) {
 		mutex_unlock(&nd.path.dentry->d_inode->i_mutex);
 		path_put(&nd.path);
+		putname(filename);
 		return d;
 	}
 	*path = nd.path;
+	putname(filename);
 	return d;
 }
 
@@ -3314,7 +3325,7 @@ struct file *do_file_open_root(struct dentry *dentry, struct vfsmount *mnt,
 	return file;
 }
 
-struct dentry *kern_path_create(int dfd, const char *pathname,
+static struct dentry *filename_create(int dfd, struct filename *name,
 				struct path *path, unsigned int lookup_flags)
 {
 	struct dentry *dentry = ERR_PTR(-EEXIST);
@@ -3329,7 +3340,7 @@ struct dentry *kern_path_create(int dfd, const char *pathname,
 	 */
 	lookup_flags &= LOOKUP_REVAL;
 
-	error = do_path_lookup(dfd, pathname, LOOKUP_PARENT|lookup_flags, &nd);
+	error = filename_lookup(dfd, name, LOOKUP_PARENT|lookup_flags, &nd);
 	if (error)
 		return ERR_PTR(error);
 
@@ -3383,6 +3394,19 @@ out:
 	path_put(&nd.path);
 	return dentry;
 }
+
+struct dentry *kern_path_create(int dfd, const char *pathname,
+				struct path *path, unsigned int lookup_flags)
+{
+	struct filename *filename = getname_kernel(pathname);
+	struct dentry *res = ERR_CAST(filename);
+
+	if (!IS_ERR(filename)) {
+		res = filename_create(dfd, filename, path, lookup_flags);
+		putname(filename);
+	}
+	return res;
+}
 EXPORT_SYMBOL(kern_path_create);
 
 void done_path_create(struct path *path, struct dentry *dentry)
@@ -3401,7 +3425,7 @@ struct dentry *user_path_create(int dfd, const char __user *pathname,
 	struct dentry *res;
 	if (IS_ERR(tmp))
 		return ERR_CAST(tmp);
-	res = kern_path_create(dfd, tmp->name, path, lookup_flags);
+	res = filename_create(dfd, tmp, path, lookup_flags);
 	putname(tmp);
 	return res;
 }

^ permalink raw reply related	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-21 21:03                                                   ` Guenter Roeck
  2015-01-21 21:28                                                     ` Al Viro
@ 2015-01-21 21:30                                                     ` Sabrina Dubroca
  1 sibling, 0 replies; 62+ messages in thread
From: Sabrina Dubroca @ 2015-01-21 21:30 UTC (permalink / raw)
  To: Al Viro
  Cc: Guenter Roeck, Paul Moore, Stephen Rothwell, linux-next,
	linux-kernel, linux-fsdevel, linux-audit, Richard Guy Briggs

2015-01-21, 13:03:20 -0800, Guenter Roeck wrote:
> On 01/21/2015 12:06 PM, Al Viro wrote:
> >On Wed, Jan 21, 2015 at 11:06:27AM -0800, Guenter Roeck wrote:
> >>On 01/21/2015 10:29 AM, Al Viro wrote:
> >>>On Wed, Jan 21, 2015 at 05:32:13AM -0800, Guenter Roeck wrote:
> >>>>Another data point (though I have no idea if it is useful or what it means):
> >>>>
> >>>>In the working case, path_init sets nd->flags to 0x50 or 0x51.
> >>>>In the non-working case (ie for all files with a '/' in the name),
> >>>>it sets nd->flags to 0x10 or 0x11, even though it is always called
> >>>>with the LOOKUP_RCU bit set in flags.
> >>>
> >>>Umm...  Are those path_init() succeeding or failing?  Note that path_init()
> >>>includes "walk everything except for the last component", so your non-working
> >>>case is "have it walk anything at all".  What's failing there?  path_init()
> >>>or handling the remaining component?
> >>>
> >>path_init() returns -2. Guess that explains the unexpected flags ;-).
> >>The failuere is from
> >>	link_path_walk()
> >>		walk_component()
> >
> >Which is to say, lookup gave it a negative dentry.  OK, let's just make
> >vfs_mkdir() and walk_component() print what they are doing; on top of
> >linux-next
> >
> >diff --git a/fs/namei.c b/fs/namei.c
> >index 323957f..8a4e22f 100644
> >--- a/fs/namei.c
> >+++ b/fs/namei.c
> >@@ -1586,8 +1586,11 @@ static inline int walk_component(struct nameidata *nd, struct path *path,
> >  		inode = path->dentry->d_inode;
> >  	}
> >  	err = -ENOENT;
> >-	if (!inode || d_is_negative(path->dentry))
> >+	if (!inode || d_is_negative(path->dentry)) {
> >+		printk(KERN_ERR "walk_component[%p,%pd4] -> negative\n",
> >+			path->dentry, path->dentry);
> >  		goto out_path_put;
> >+	}
> >
> >  	if (should_follow_link(path->dentry, follow)) {
> >  		if (nd->flags & LOOKUP_RCU) {
> >@@ -3521,6 +3524,7 @@ int vfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
> >  	error = dir->i_op->mkdir(dir, dentry, mode);
> >  	if (!error)
> >  		fsnotify_mkdir(dir, dentry);
> >+	printk(KERN_ERR "mkdir[%p,%pd4] => %d\n", dentry, dentry, error);
> >  	return error;
> >  }
> >  EXPORT_SYMBOL(vfs_mkdir);
> >
> 
> ok case (putname commented out):
> 
> user_path_at_empty lookup usr flags 0x0
> path_lookupat: calling path_init 'usr' flags=40
> path_init: link_path_walk() returned 0
> path_lookupat: path_init 'usr' flags=40[50] returned 0
> walk_component: lookup_fast() returned 1
> walk_component: lookup_slow() returned 0
> walk_component: inode=  (null), negative=1
> do_path_lookup(usr, 0x10)
> path_lookupat: calling path_init 'usr' flags=50
> path_init: link_path_walk() returned 0
> path_lookupat: path_init 'usr' flags=50[50] returned 0
> mkdir[c74012a0,/usr] => 0
> user_path_at_empty lookup usr flags 0x1
> path_lookupat: calling path_init 'usr' flags=41
> path_init: link_path_walk() returned 0
> path_lookupat: path_init 'usr' flags=41[51] returned 0
> walk_component: inode=c74004a0, negative=0
> user_path_at_empty lookup usr flags 0x1
> path_lookupat: calling path_init 'usr' flags=41
> path_init: link_path_walk() returned 0
> path_lookupat: path_init 'usr' flags=41[51] returned 0
> 
> failing case:
> 
> path_lookupat: calling path_init 'usr' flags=40
> path_init: link_path_walk() returned 0
> path_lookupat: path_init 'usr' flags=40[50] returned 0
> walk_component: lookup_fast() returned 1
> walk_component: lookup_slow() returned 0
> walk_component: inode=  (null), negative=1
> do_path_lookup(usr, 0x10)
> path_lookupat: calling path_init 'usr' flags=50
> path_init: link_path_walk() returned 0
> path_lookupat: path_init 'usr' flags=50[50] returned 0
> mkdir[c74012a0,/kkk] => 0						<==== SIC!
> user_path_at_empty lookup usr flags 0x1
> path_lookupat: calling path_init 'usr' flags=41
> path_init: link_path_walk() returned 0
> path_lookupat: path_init 'usr' flags=41[51] returned 0
> walk_component: lookup_fast() returned 1
> walk_component: lookup_slow() returned 0
> walk_component: inode=  (null), negative=1
> user_path_at_empty lookup usr flags 0x1
> path_lookupat: calling path_init 'usr' flags=41
> path_init: link_path_walk() returned 0
> path_lookupat: path_init 'usr' flags=41[51] returned 0
> walk_component: lookup_fast() returned 1
> walk_component: lookup_slow() returned 0
> walk_component: inode=  (null), negative=1

Yep, I get some "kkk" too.

With that patch:

## panic

[    0.544839] walk_component[ffff88001d6edbd8,/dev] -> negative
[    0.545507] mkdir[ffff88001d6ed1b8,/kkk] => 0
[    0.545886] sys_mkdir dev:40755 returned 0
[    0.546275] walk_component[ffff88001d6ec288,/dev] -> negative
[    0.546835] walk_component[ffff88001d6eca20,/dev] -> negative
[    0.547403] walk_component[ffff88001d6ed950,/dev] -> negative
[    0.547954] walk_component[ffff88001d6ed440,/dev] -> negative
[    0.549260] walk_component[ffff88001d6ec510,/dev] -> negative
[    0.551161] walk_component[ffff88001d6ec798,/dev] -> negative
[    0.551719] walk_component[ffff88001d6ed6c8,/dev] -> negative
[    0.552281] walk_component[ffff88001d6eef30,/root] -> negative
[    0.552866] mkdir[ffff88001d6ee000,/kkkk] => 0
[    0.553254] sys_mkdir root:40700 returned 0
[    0.553682] walk_component[ffff88001d6eeca8,/root] -> negative
[    0.554225] walk_component[ffff88001d6efbd8,/root] -> negative
[    0.554826] walk_component[ffff88001d6ef1b8,/root] -> negative
[    0.555390] walk_component[ffff88001d6ee288,/dev] -> negative
[    0.561523] walk_component[ffff88001d6eea20,/cpu] -> negative
[    0.562203] mkdir[ffff88001d6ef950,/kkk] => 0
[    0.562627] walk_component[ffff88001d6ef440,/cpu] -> negative
[    0.819060] walk_component[ffff88001d6df1b8,/input] -> negative
[    0.819672] mkdir[ffff88001d6def30,/kkkkk] => 0
[    0.820496] walk_component[ffff88001d6de510,/input] -> negative
[    0.840538] walk_component[ffff88001d6e6288,/dev] -> negative
[    0.841626] walk_component[ffff88001d6e6f30,/init] -> negative
[    0.992725] walk_component[ffff88001d6e6f30,/bsg] -> negative
[    0.993671] mkdir[ffff88001d6e6798,/kkk] => 0
[    0.994307] walk_component[ffff88001d6e6288,/bsg] -> negative
[    1.007701] walk_component[ffff88001d6e6ca8,/bsg] -> negative
[    1.008561] walk_component[ffff88001d6e7950,/bsg] -> negative
[    1.024292] walk_component[ffff88001d6e7950,/dev] -> negative
[    1.025017] walk_component[ffff88001d6e7440,/dev] -> negative
[    1.025781] walk_component[ffff88001d6e6f30,/dev] -> negative
[    1.026495] walk_component[ffff88001d6e6510,/dev] -> negative
[    1.027243] walk_component[ffff88001d6e6288,/dev] -> negative
[    1.027910] stat("/dev/root") -> -2
[    1.028358] walk_component[ffff88001d6df6c8,/dev] -> negative
[    1.029019] stat("dev") -> -2
[    1.029431] walk_component[ffff88001d6df1b8,/root] -> negative

## good

[    0.350197] walk_component[ffff88001e348c80,/dev] -> negative
[    0.350821] mkdir[ffff88001e348dc0,/dev] => 0
[    0.351467] sys_mkdir dev:40755 returned 0
[    0.351919] walk_component[ffff88001e349000,/dev/console] -> negative
[    0.353000] walk_component[ffff88001e349280,/root] -> negative
[    0.353959] mkdir[ffff88001e3493c0,/root] => 0
[    0.354354] sys_mkdir root:40700 returned 0
[    0.357927] walk_component[ffff88001e349500,/cpu] -> negative
[    0.358470] mkdir[ffff88001e349640,/cpu] => 0
[    0.472772] walk_component[ffff88001e34ba00,/input] -> negative
[    0.473392] mkdir[ffff88001e34bb40,/input] => 0
[    0.478682] walk_component[ffff88001e34cdc0,/init] -> negative
[    0.647559] walk_component[ffff88001e34cdc0,/bsg] -> negative
[    0.648671] mkdir[ffff88001e34ba00,/bsg] => 0
[    0.665831] stat("/dev/root") -> 0
[    0.666360] stat("dev") -> 0


Another thing, not sure if it's relevant: I can boot with the
do_lookup_path patch applied, and without commenting out putname(), if
I disable SLUB debugging with slub_debug=- (with CONFIG_SLUB_DEBUG=y
CONFIG_SLUB_DEBUG_ON=y)



-- 
Sabrina

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-21 21:28                                                     ` Al Viro
@ 2015-01-21 21:38                                                       ` Guenter Roeck
  2015-01-21 21:40                                                       ` Sabrina Dubroca
                                                                         ` (2 subsequent siblings)
  3 siblings, 0 replies; 62+ messages in thread
From: Guenter Roeck @ 2015-01-21 21:38 UTC (permalink / raw)
  To: Al Viro
  Cc: Sabrina Dubroca, Paul Moore, Stephen Rothwell, linux-next,
	linux-kernel, linux-fsdevel, linux-audit, Richard Guy Briggs

On Wed, Jan 21, 2015 at 09:28:33PM +0000, Al Viro wrote:
> On Wed, Jan 21, 2015 at 01:03:20PM -0800, Guenter Roeck wrote:
> > 
> > failing case:
> > 
> > path_lookupat: calling path_init 'usr' flags=40
> > path_init: link_path_walk() returned 0
> > path_lookupat: path_init 'usr' flags=40[50] returned 0
> > walk_component: lookup_fast() returned 1
> > walk_component: lookup_slow() returned 0
> > walk_component: inode=  (null), negative=1
> > do_path_lookup(usr, 0x10)
> > path_lookupat: calling path_init 'usr' flags=50
> > path_init: link_path_walk() returned 0
> > path_lookupat: path_init 'usr' flags=50[50] returned 0
> > mkdir[c74012a0,/kkk] => 0						<==== SIC!
> 
> Cute. 'k' being 0x6b, aka POISON_FREE...  OK, the next question is what's
> been freed under us - I don't believe that it's dentry itself...
> Oh, fuck.  OK, I see what happens.  Look at kern_path_create(); it does
> LOOKUP_PARENT walk, leaving nd->last pointing to the last component of
> the *COPY* of the name it's just created, walked and freed.
> 
Cool.

> OK...  Fortunately, struct nameidata is completely opaque outside of fs/namei.c,
> so we only need to care about a couple of codepaths.
> 
> Folks, could you check if the following on top of linux-next fixes the problem?
> 
> diff --git a/fs/namei.c b/fs/namei.c
> index 323957f..cda89c3 100644

Yes, this patch fixes the problem for me.

Guenter

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-21 21:28                                                     ` Al Viro
  2015-01-21 21:38                                                       ` Guenter Roeck
@ 2015-01-21 21:40                                                       ` Sabrina Dubroca
  2015-01-21 21:54                                                       ` Paul Walmsley
  2015-01-22  2:28                                                       ` Paul Moore
  3 siblings, 0 replies; 62+ messages in thread
From: Sabrina Dubroca @ 2015-01-21 21:40 UTC (permalink / raw)
  To: Al Viro
  Cc: Guenter Roeck, Paul Moore, Stephen Rothwell, linux-next,
	linux-kernel, linux-fsdevel, linux-audit, Richard Guy Briggs

2015-01-21, 21:28:33 +0000, Al Viro wrote:
> On Wed, Jan 21, 2015 at 01:03:20PM -0800, Guenter Roeck wrote:
> > ok case (putname commented out):
> > 
> > user_path_at_empty lookup usr flags 0x0
> > path_lookupat: calling path_init 'usr' flags=40
> > path_init: link_path_walk() returned 0
> > path_lookupat: path_init 'usr' flags=40[50] returned 0
> > walk_component: lookup_fast() returned 1
> > walk_component: lookup_slow() returned 0
> > walk_component: inode=  (null), negative=1
> > do_path_lookup(usr, 0x10)
> > path_lookupat: calling path_init 'usr' flags=50
> > path_init: link_path_walk() returned 0
> > path_lookupat: path_init 'usr' flags=50[50] returned 0
> > mkdir[c74012a0,/usr] => 0
> > user_path_at_empty lookup usr flags 0x1
> > path_lookupat: calling path_init 'usr' flags=41
> > path_init: link_path_walk() returned 0
> > path_lookupat: path_init 'usr' flags=41[51] returned 0
> > walk_component: inode=c74004a0, negative=0
> > user_path_at_empty lookup usr flags 0x1
> > path_lookupat: calling path_init 'usr' flags=41
> > path_init: link_path_walk() returned 0
> > path_lookupat: path_init 'usr' flags=41[51] returned 0
> > 
> > failing case:
> > 
> > path_lookupat: calling path_init 'usr' flags=40
> > path_init: link_path_walk() returned 0
> > path_lookupat: path_init 'usr' flags=40[50] returned 0
> > walk_component: lookup_fast() returned 1
> > walk_component: lookup_slow() returned 0
> > walk_component: inode=  (null), negative=1
> > do_path_lookup(usr, 0x10)
> > path_lookupat: calling path_init 'usr' flags=50
> > path_init: link_path_walk() returned 0
> > path_lookupat: path_init 'usr' flags=50[50] returned 0
> > mkdir[c74012a0,/kkk] => 0						<==== SIC!
> 
> Cute. 'k' being 0x6b, aka POISON_FREE...  OK, the next question is what's
> been freed under us - I don't believe that it's dentry itself...
> Oh, fuck.  OK, I see what happens.  Look at kern_path_create(); it does
> LOOKUP_PARENT walk, leaving nd->last pointing to the last component of
> the *COPY* of the name it's just created, walked and freed.
> 
> OK...  Fortunately, struct nameidata is completely opaque outside of fs/namei.c,
> so we only need to care about a couple of codepaths.
> 
> Folks, could you check if the following on top of linux-next fixes the problem?

Yes, it works.


-- 
Sabrina

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-21 21:28                                                     ` Al Viro
  2015-01-21 21:38                                                       ` Guenter Roeck
  2015-01-21 21:40                                                       ` Sabrina Dubroca
@ 2015-01-21 21:54                                                       ` Paul Walmsley
  2015-01-22  2:28                                                       ` Paul Moore
  3 siblings, 0 replies; 62+ messages in thread
From: Paul Walmsley @ 2015-01-21 21:54 UTC (permalink / raw)
  To: Al Viro
  Cc: Guenter Roeck, Sabrina Dubroca, Paul Moore, Stephen Rothwell,
	linux-next, linux-kernel, linux-fsdevel, linux-audit,
	Richard Guy Briggs

On Wed, 21 Jan 2015, Al Viro wrote:

> Folks, could you check if the following on top of linux-next fixes the problem?

Tested-by: Paul Walmsley <paul@pwsan.com> # Tegra124 Jetson TK1

> 
> diff --git a/fs/namei.c b/fs/namei.c
> index 323957f..cda89c3 100644
> --- a/fs/namei.c
> +++ b/fs/namei.c
> @@ -2056,13 +2056,22 @@ static int do_path_lookup(int dfd, const char *name,
>  /* does lookup, returns the object with parent locked */
>  struct dentry *kern_path_locked(const char *name, struct path *path)
>  {
> +	struct filename *filename = getname_kernel(name);
>  	struct nameidata nd;
>  	struct dentry *d;
> -	int err = do_path_lookup(AT_FDCWD, name, LOOKUP_PARENT, &nd);
> -	if (err)
> +	int err;
> +
> +	if (IS_ERR(filename))
> +		return ERR_CAST(filename);
> +
> +	err = filename_lookup(AT_FDCWD, filename, LOOKUP_PARENT, &nd);
> +	if (err) {
> +		putname(filename);
>  		return ERR_PTR(err);
> +	}
>  	if (nd.last_type != LAST_NORM) {
>  		path_put(&nd.path);
> +		putname(filename);
>  		return ERR_PTR(-EINVAL);
>  	}
>  	mutex_lock_nested(&nd.path.dentry->d_inode->i_mutex, I_MUTEX_PARENT);
> @@ -2070,9 +2079,11 @@ struct dentry *kern_path_locked(const char *name, struct path *path)
>  	if (IS_ERR(d)) {
>  		mutex_unlock(&nd.path.dentry->d_inode->i_mutex);
>  		path_put(&nd.path);
> +		putname(filename);
>  		return d;
>  	}
>  	*path = nd.path;
> +	putname(filename);
>  	return d;
>  }
>  
> @@ -3314,7 +3325,7 @@ struct file *do_file_open_root(struct dentry *dentry, struct vfsmount *mnt,
>  	return file;
>  }
>  
> -struct dentry *kern_path_create(int dfd, const char *pathname,
> +static struct dentry *filename_create(int dfd, struct filename *name,
>  				struct path *path, unsigned int lookup_flags)
>  {
>  	struct dentry *dentry = ERR_PTR(-EEXIST);
> @@ -3329,7 +3340,7 @@ struct dentry *kern_path_create(int dfd, const char *pathname,
>  	 */
>  	lookup_flags &= LOOKUP_REVAL;
>  
> -	error = do_path_lookup(dfd, pathname, LOOKUP_PARENT|lookup_flags, &nd);
> +	error = filename_lookup(dfd, name, LOOKUP_PARENT|lookup_flags, &nd);
>  	if (error)
>  		return ERR_PTR(error);
>  
> @@ -3383,6 +3394,19 @@ out:
>  	path_put(&nd.path);
>  	return dentry;
>  }
> +
> +struct dentry *kern_path_create(int dfd, const char *pathname,
> +				struct path *path, unsigned int lookup_flags)
> +{
> +	struct filename *filename = getname_kernel(pathname);
> +	struct dentry *res = ERR_CAST(filename);
> +
> +	if (!IS_ERR(filename)) {
> +		res = filename_create(dfd, filename, path, lookup_flags);
> +		putname(filename);
> +	}
> +	return res;
> +}
>  EXPORT_SYMBOL(kern_path_create);
>  
>  void done_path_create(struct path *path, struct dentry *dentry)
> @@ -3401,7 +3425,7 @@ struct dentry *user_path_create(int dfd, const char __user *pathname,
>  	struct dentry *res;
>  	if (IS_ERR(tmp))
>  		return ERR_CAST(tmp);
> -	res = kern_path_create(dfd, tmp->name, path, lookup_flags);
> +	res = filename_create(dfd, tmp, path, lookup_flags);
>  	putname(tmp);
>  	return res;
>  }
> --
> To unsubscribe from this list: send the line "unsubscribe linux-next" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


- Paul

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20
  2015-01-21 10:43       ` Kirill A. Shutemov
@ 2015-01-21 23:34         ` Guenter Roeck
  2015-01-22  3:14         ` Guenter Roeck
  1 sibling, 0 replies; 62+ messages in thread
From: Guenter Roeck @ 2015-01-21 23:34 UTC (permalink / raw)
  To: Kirill A. Shutemov
  Cc: Mel Gorman, Stephen Rothwell, linux-next, linux-kernel,
	Paul Moore, Joonsoo Kim, davem

On Wed, Jan 21, 2015 at 12:43:25PM +0200, Kirill A. Shutemov wrote:
> On Tue, Jan 20, 2015 at 07:05:41PM -0800, Guenter Roeck wrote:
> > On 01/20/2015 02:54 PM, Kirill A. Shutemov wrote:
> > >On Tue, Jan 20, 2015 at 12:26:42PM -0800, Guenter Roeck wrote:
> > >>---
> > >>sparc:
> > >>
> > >># bad: [5d0eebbbb6f76de160f7d7f9dc0b64a98ad9b8e9] Add linux-next specific files for 20150120
> > >># good: [ec6f34e5b552fb0a52e6aae1a5afbbb1605cc6cc] Linux 3.19-rc5
> > >>git bisect start 'HEAD' 'v3.19-rc5'
> > >># good: [f933e94e8f597c709068e58daa92570d5aa13b8c] Merge remote-tracking branch 'drm/drm-next'
> > >>git bisect good f933e94e8f597c709068e58daa92570d5aa13b8c
> > >># good: [88cf70c4dd4a3851bf5531c0a51dec298d9690b5] Merge remote-tracking branch 'usb/usb-next'
> > >>git bisect good 88cf70c4dd4a3851bf5531c0a51dec298d9690b5
> > >># good: [3ee33b3893f72e5a504ba873ee4a308896d97645] Merge remote-tracking branch 'cgroup/for-next'
> > >>git bisect good 3ee33b3893f72e5a504ba873ee4a308896d97645
> > >># bad: [5925961a2889ec2b3734be9f3a6375822010f7a7] fs-befs-linuxvfsc-remove-unnecessary-casting-fix
> > >>git bisect bad 5925961a2889ec2b3734be9f3a6375822010f7a7
> > >># bad: [fff9d1d082bb48a0d0e89aaaf746718fcef3a47f] mm: memcontrol: default hierarchy interface for memory fix
> > >>git bisect bad fff9d1d082bb48a0d0e89aaaf746718fcef3a47f
> > >># good: [ab090dcbdd276e9ddcd0ecb666389aa85c30c76f] powerpc: drop _PAGE_FILE and pte_file()-related helpers
> > >>git bisect good ab090dcbdd276e9ddcd0ecb666389aa85c30c76f
> > >># good: [91408e6db5842ed4bb66e2a3919b67a5f06ac34a] mm/hugetlb: fix suboptimal migration/hwpoisoned entry check
> > >>git bisect good 91408e6db5842ed4bb66e2a3919b67a5f06ac34a
> > >># bad: [8e94896c7510e69bbd2acf418ad3a8afb9978c97] fs: consolidate {nr,free}_cached_objects args in shrink_control
> > >>git bisect bad 8e94896c7510e69bbd2acf418ad3a8afb9978c97
> > >># bad: [5995b76d501a8f4d315f811698db98ac997d706f] x86: mm: restore original pte_special check
> > >>git bisect bad 5995b76d501a8f4d315f811698db98ac997d706f
> > >># good: [b75c721aa3e2df5c52d4b6bce3dd687018c1f40c] mm: convert p[te|md]_numa users to p[te|md]_protnone_numa
> > >>git bisect good b75c721aa3e2df5c52d4b6bce3dd687018c1f40c
> > >># good: [ce4188d335ac91a004087fb0ea86b85091ad570b] mm: convert p[te|md]_mknonnuma and remaining page table manipulations
> > >>git bisect good ce4188d335ac91a004087fb0ea86b85091ad570b
> > >># bad: [625fa33ba695d73baa58afa44ab063f67e5f4b64] mm: numa: do not trap faults on the huge zero page
> > >>git bisect bad 625fa33ba695d73baa58afa44ab063f67e5f4b64
> > >># good: [c2a7c97cc4bc3d46e98908d7dee07ab3e00a5257] mm: remove remaining references to NUMA hinting bits and helpers
> > >>git bisect good c2a7c97cc4bc3d46e98908d7dee07ab3e00a5257
> > >># first bad commit: [625fa33ba695d73baa58afa44ab063f67e5f4b64] mm: numa: do not trap faults on the huge zero page
> > >
> > >Could you provide more info about the fail in qemu?
> > >
> > 
> > Error message:
> > 
> > BUG: Bad page state in process init.sh  pfn:00000
> > page:f05e7460 count:0 mapcount:-1 mapping:  (null) index:0x0
> > flags: 0x400(reserved)
> > page dumped because: PAGE_FLAGS_CHECK_AT_FREE flag(s) set
> > bad because of flags:
> > flags: 0x400(reserved)
> > CPU: 0 PID: 1 Comm: init.sh Not tainted 3.19.0-rc5-next-20150120 #1
> > [f0076010 : bad_page+0xdc/0xfc ] [f00760c0 : free_pages_prepare+0x90/0x1f8 ] [f00775cc : free_hot_cold_page+0x20/0x160 ] [f00919e8 : do_wp_page+0x680/0x6ac ] [f00939f4 : handle_mm_fault+0xc94/0xd08 ] [f0015900 : do_sparc_fault+0xfc/0x3ec ] [f000af90 : srmmu_fault+0x58/0x68 ] [f00e74f4 : load_elf_binary+0x9a8/0xe94 ] [f00b0cac : search_binary_handler+0x68/0x12c ] [f00e67d0 : load_script+0x214/0x224 ] [f00b0cac : search_binary_handler+0x68/0x12c ] [f00b11a4 : do_execveat_common+0x434/0x584 ] [f00b1310 : do_execve+0x1c/0x2c ] [f02b50b0 : kernel_init+0x70/0xf0 ] [f000b200 : ret_from_kernel_thread+0xc/0x38 ] [00000000 :   (null) ]
> > Disabling lock debugging due to kernel taint
> > : applet not found
> > Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100
> 
> It doesn't make much sense to me. It tries to free page with pfn==0 on
> handling wp-fault. How it got mapped in the first place?
> 
Let me know if I can help with any debugging.

Guenter

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-21 21:28                                                     ` Al Viro
                                                                         ` (2 preceding siblings ...)
  2015-01-21 21:54                                                       ` Paul Walmsley
@ 2015-01-22  2:28                                                       ` Paul Moore
  2015-01-22  4:12                                                         ` Al Viro
  3 siblings, 1 reply; 62+ messages in thread
From: Paul Moore @ 2015-01-22  2:28 UTC (permalink / raw)
  To: Al Viro
  Cc: Guenter Roeck, Sabrina Dubroca, Stephen Rothwell, linux-next,
	linux-kernel, linux-fsdevel, linux-audit, Richard Guy Briggs

On Wednesday, January 21, 2015 09:28:33 PM Al Viro wrote:
> On Wed, Jan 21, 2015 at 01:03:20PM -0800, Guenter Roeck wrote:
> > failing case:
> > 
> > path_lookupat: calling path_init 'usr' flags=40
> > path_init: link_path_walk() returned 0
> > path_lookupat: path_init 'usr' flags=40[50] returned 0
> > walk_component: lookup_fast() returned 1
> > walk_component: lookup_slow() returned 0
> > walk_component: inode=  (null), negative=1
> > do_path_lookup(usr, 0x10)
> > path_lookupat: calling path_init 'usr' flags=50
> > path_init: link_path_walk() returned 0
> > path_lookupat: path_init 'usr' flags=50[50] returned 0
> > mkdir[c74012a0,/kkk] => 0						<==== SIC!
> 
> Cute. 'k' being 0x6b, aka POISON_FREE...  OK, the next question is what's
> been freed under us - I don't believe that it's dentry itself...
> Oh, fuck.  OK, I see what happens.  Look at kern_path_create(); it does
> LOOKUP_PARENT walk, leaving nd->last pointing to the last component of
> the *COPY* of the name it's just created, walked and freed.
> 
> OK...  Fortunately, struct nameidata is completely opaque outside of
> fs/namei.c, so we only need to care about a couple of codepaths.
> 
> Folks, could you check if the following on top of linux-next fixes the
> problem?

Thanks Al, and Guenter, and Sabrina for helping resolve this; it surely would 
have taken me much longer alone.

Al, do you mind if I fold your patch below into the existing patches?
 
> diff --git a/fs/namei.c b/fs/namei.c
> index 323957f..cda89c3 100644
> --- a/fs/namei.c
> +++ b/fs/namei.c
> @@ -2056,13 +2056,22 @@ static int do_path_lookup(int dfd, const char *name,
> /* does lookup, returns the object with parent locked */
>  struct dentry *kern_path_locked(const char *name, struct path *path)
>  {
> +	struct filename *filename = getname_kernel(name);
>  	struct nameidata nd;
>  	struct dentry *d;
> -	int err = do_path_lookup(AT_FDCWD, name, LOOKUP_PARENT, &nd);
> -	if (err)
> +	int err;
> +
> +	if (IS_ERR(filename))
> +		return ERR_CAST(filename);
> +
> +	err = filename_lookup(AT_FDCWD, filename, LOOKUP_PARENT, &nd);
> +	if (err) {
> +		putname(filename);
>  		return ERR_PTR(err);
> +	}
>  	if (nd.last_type != LAST_NORM) {
>  		path_put(&nd.path);
> +		putname(filename);
>  		return ERR_PTR(-EINVAL);
>  	}
>  	mutex_lock_nested(&nd.path.dentry->d_inode->i_mutex, I_MUTEX_PARENT);
> @@ -2070,9 +2079,11 @@ struct dentry *kern_path_locked(const char *name,
> struct path *path) if (IS_ERR(d)) {
>  		mutex_unlock(&nd.path.dentry->d_inode->i_mutex);
>  		path_put(&nd.path);
> +		putname(filename);
>  		return d;
>  	}
>  	*path = nd.path;
> +	putname(filename);
>  	return d;
>  }
> 
> @@ -3314,7 +3325,7 @@ struct file *do_file_open_root(struct dentry *dentry,
> struct vfsmount *mnt, return file;
>  }
> 
> -struct dentry *kern_path_create(int dfd, const char *pathname,
> +static struct dentry *filename_create(int dfd, struct filename *name,
>  				struct path *path, unsigned int lookup_flags)
>  {
>  	struct dentry *dentry = ERR_PTR(-EEXIST);
> @@ -3329,7 +3340,7 @@ struct dentry *kern_path_create(int dfd, const char
> *pathname, */
>  	lookup_flags &= LOOKUP_REVAL;
> 
> -	error = do_path_lookup(dfd, pathname, LOOKUP_PARENT|lookup_flags, &nd);
> +	error = filename_lookup(dfd, name, LOOKUP_PARENT|lookup_flags, &nd);
>  	if (error)
>  		return ERR_PTR(error);
> 
> @@ -3383,6 +3394,19 @@ out:
>  	path_put(&nd.path);
>  	return dentry;
>  }
> +
> +struct dentry *kern_path_create(int dfd, const char *pathname,
> +				struct path *path, unsigned int lookup_flags)
> +{
> +	struct filename *filename = getname_kernel(pathname);
> +	struct dentry *res = ERR_CAST(filename);
> +
> +	if (!IS_ERR(filename)) {
> +		res = filename_create(dfd, filename, path, lookup_flags);
> +		putname(filename);
> +	}
> +	return res;
> +}
>  EXPORT_SYMBOL(kern_path_create);
> 
>  void done_path_create(struct path *path, struct dentry *dentry)
> @@ -3401,7 +3425,7 @@ struct dentry *user_path_create(int dfd, const char
> __user *pathname, struct dentry *res;
>  	if (IS_ERR(tmp))
>  		return ERR_CAST(tmp);
> -	res = kern_path_create(dfd, tmp->name, path, lookup_flags);
> +	res = filename_create(dfd, tmp, path, lookup_flags);
>  	putname(tmp);
>  	return res;
>  }

-- 
paul moore
security @ redhat


^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20
  2015-01-21 10:43       ` Kirill A. Shutemov
  2015-01-21 23:34         ` Guenter Roeck
@ 2015-01-22  3:14         ` Guenter Roeck
  2015-01-22 17:13           ` linux-next: Tree for Jan 20 -- sparc32: fix broken set_pte() Kirill A. Shutemov
  1 sibling, 1 reply; 62+ messages in thread
From: Guenter Roeck @ 2015-01-22  3:14 UTC (permalink / raw)
  To: Kirill A. Shutemov, Mel Gorman
  Cc: Stephen Rothwell, linux-next, linux-kernel, Paul Moore,
	Joonsoo Kim, davem

On 01/21/2015 02:43 AM, Kirill A. Shutemov wrote:

>> BUG: Bad page state in process init.sh  pfn:00000
>> page:f05e7460 count:0 mapcount:-1 mapping:  (null) index:0x0
>> flags: 0x400(reserved)
>> page dumped because: PAGE_FLAGS_CHECK_AT_FREE flag(s) set
>> bad because of flags:
>> flags: 0x400(reserved)
>> CPU: 0 PID: 1 Comm: init.sh Not tainted 3.19.0-rc5-next-20150120 #1
>> [f0076010 : bad_page+0xdc/0xfc ] [f00760c0 : free_pages_prepare+0x90/0x1f8 ] [f00775cc : free_hot_cold_page+0x20/0x160 ] [f00919e8 : do_wp_page+0x680/0x6ac ] [f00939f4 : handle_mm_fault+0xc94/0xd08 ] [f0015900 : do_sparc_fault+0xfc/0x3ec ] [f000af90 : srmmu_fault+0x58/0x68 ] [f00e74f4 : load_elf_binary+0x9a8/0xe94 ] [f00b0cac : search_binary_handler+0x68/0x12c ] [f00e67d0 : load_script+0x214/0x224 ] [f00b0cac : search_binary_handler+0x68/0x12c ] [f00b11a4 : do_execveat_common+0x434/0x584 ] [f00b1310 : do_execve+0x1c/0x2c ] [f02b50b0 : kernel_init+0x70/0xf0 ] [f000b200 : ret_from_kernel_thread+0xc/0x38 ] [00000000 :   (null) ]
>> Disabling lock debugging due to kernel taint
>> : applet not found
>> Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100
>
> It doesn't make much sense to me. It tries to free page with pfn==0 on
> handling wp-fault. How it got mapped in the first place?
>
If I comment out the added call to vm_normal_page(), the code works fine.
If the call to vm_local_page() is there but everything else from your patch
is commented out, the crash occurs. Also, any log message added to the new
code patch (inside the if statements) is not getting printed, meaning the
new code (besides the call to vm_local_page) is not reached.

I guess that means that something in the call to vm_normal_page() appears
to go wrong. No idea what that might be, though.

Guenter


^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-22  2:28                                                       ` Paul Moore
@ 2015-01-22  4:12                                                         ` Al Viro
  2015-01-22  4:49                                                           ` Paul Moore
  0 siblings, 1 reply; 62+ messages in thread
From: Al Viro @ 2015-01-22  4:12 UTC (permalink / raw)
  To: Paul Moore
  Cc: Guenter Roeck, Sabrina Dubroca, Stephen Rothwell, linux-next,
	linux-kernel, linux-fsdevel, linux-audit, Richard Guy Briggs

On Wed, Jan 21, 2015 at 09:28:51PM -0500, Paul Moore wrote:

> Al, do you mind if I fold your patch below into the existing patches?

No problem, but I'd probably prefer to put this series through vfs.git.
With the following as the first step:

Cut down on do_path_lookup() callers

Use filename_lookup() instead.  And don't bother with creating new
struct filename when caller already has one.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
---
diff --git a/fs/namei.c b/fs/namei.c
index bc35b02..73fcf42 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -2046,7 +2046,8 @@ struct dentry *kern_path_locked(const char *name, struct path *path)
 {
 	struct nameidata nd;
 	struct dentry *d;
-	int err = do_path_lookup(AT_FDCWD, name, LOOKUP_PARENT, &nd);
+	struct filename filename = {.name = name};
+	int err = filename_lookup(AT_FDCWD, &filename, LOOKUP_PARENT, &nd);
 	if (err)
 		return ERR_PTR(err);
 	if (nd.last_type != LAST_NORM) {
@@ -3290,7 +3291,7 @@ struct file *do_file_open_root(struct dentry *dentry, struct vfsmount *mnt,
 	return file;
 }
 
-struct dentry *kern_path_create(int dfd, const char *pathname,
+static struct dentry *filename_create(int dfd, struct filename *name,
 				struct path *path, unsigned int lookup_flags)
 {
 	struct dentry *dentry = ERR_PTR(-EEXIST);
@@ -3305,7 +3306,7 @@ struct dentry *kern_path_create(int dfd, const char *pathname,
 	 */
 	lookup_flags &= LOOKUP_REVAL;
 
-	error = do_path_lookup(dfd, pathname, LOOKUP_PARENT|lookup_flags, &nd);
+	error = filename_lookup(dfd, name, LOOKUP_PARENT|lookup_flags, &nd);
 	if (error)
 		return ERR_PTR(error);
 
@@ -3359,6 +3360,13 @@ out:
 	path_put(&nd.path);
 	return dentry;
 }
+
+struct dentry *kern_path_create(int dfd, const char *pathname,
+				struct path *path, unsigned int lookup_flags)
+{
+	struct filename filename = {.name = pathname};
+	return filename_create(dfd, &filename, path, lookup_flags);
+}
 EXPORT_SYMBOL(kern_path_create);
 
 void done_path_create(struct path *path, struct dentry *dentry)
@@ -3377,7 +3385,7 @@ struct dentry *user_path_create(int dfd, const char __user *pathname,
 	struct dentry *res;
 	if (IS_ERR(tmp))
 		return ERR_CAST(tmp);
-	res = kern_path_create(dfd, tmp->name, path, lookup_flags);
+	res = filename_create(dfd, tmp, path, lookup_flags);
 	putname(tmp);
 	return res;
 }

^ permalink raw reply related	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs
  2015-01-22  4:12                                                         ` Al Viro
@ 2015-01-22  4:49                                                           ` Paul Moore
  0 siblings, 0 replies; 62+ messages in thread
From: Paul Moore @ 2015-01-22  4:49 UTC (permalink / raw)
  To: Al Viro
  Cc: Guenter Roeck, Sabrina Dubroca, Stephen Rothwell, linux-next,
	linux-kernel, linux-fsdevel, linux-audit, Richard Guy Briggs

On Thursday, January 22, 2015 04:12:41 AM Al Viro wrote:
> On Wed, Jan 21, 2015 at 09:28:51PM -0500, Paul Moore wrote:
> > Al, do you mind if I fold your patch below into the existing patches?
> 
> No problem, but I'd probably prefer to put this series through vfs.git.
> With the following as the first step:

I just finished fixing up the patchset and giving it a quick sanity test on my 
system, some additional testing is still needed to verify that all the audit 
stuff is still okay (I did change the __audit_inode() as discussed and bumped 
the refcount in __audit_reusename()) but I think as things stand the boot 
panic problems should be resolved - thanks again for your help.

I'm going to (re)post what I've currently got for a patchset and call it a 
day.  Tomorrow I'll add your below patch and finish up my testing, if all goes 
well I'll repost the whole set.  If you would prefer it to go via the VFS 
tree, that's fine with me, as long as it hits Linus' tree at some point I'm 
happy.

> Cut down on do_path_lookup() callers
> 
> Use filename_lookup() instead.  And don't bother with creating new
> struct filename when caller already has one.
> 
> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
> ---
> diff --git a/fs/namei.c b/fs/namei.c
> index bc35b02..73fcf42 100644
> --- a/fs/namei.c
> +++ b/fs/namei.c
> @@ -2046,7 +2046,8 @@ struct dentry *kern_path_locked(const char *name,
> struct path *path) {
>  	struct nameidata nd;
>  	struct dentry *d;
> -	int err = do_path_lookup(AT_FDCWD, name, LOOKUP_PARENT, &nd);
> +	struct filename filename = {.name = name};
> +	int err = filename_lookup(AT_FDCWD, &filename, LOOKUP_PARENT, &nd);
>  	if (err)
>  		return ERR_PTR(err);
>  	if (nd.last_type != LAST_NORM) {
> @@ -3290,7 +3291,7 @@ struct file *do_file_open_root(struct dentry *dentry,
> struct vfsmount *mnt, return file;
>  }
> 
> -struct dentry *kern_path_create(int dfd, const char *pathname,
> +static struct dentry *filename_create(int dfd, struct filename *name,
>  				struct path *path, unsigned int lookup_flags)
>  {
>  	struct dentry *dentry = ERR_PTR(-EEXIST);
> @@ -3305,7 +3306,7 @@ struct dentry *kern_path_create(int dfd, const char
> *pathname, */
>  	lookup_flags &= LOOKUP_REVAL;
> 
> -	error = do_path_lookup(dfd, pathname, LOOKUP_PARENT|lookup_flags, &nd);
> +	error = filename_lookup(dfd, name, LOOKUP_PARENT|lookup_flags, &nd);
>  	if (error)
>  		return ERR_PTR(error);
> 
> @@ -3359,6 +3360,13 @@ out:
>  	path_put(&nd.path);
>  	return dentry;
>  }
> +
> +struct dentry *kern_path_create(int dfd, const char *pathname,
> +				struct path *path, unsigned int lookup_flags)
> +{
> +	struct filename filename = {.name = pathname};
> +	return filename_create(dfd, &filename, path, lookup_flags);
> +}
>  EXPORT_SYMBOL(kern_path_create);
> 
>  void done_path_create(struct path *path, struct dentry *dentry)
> @@ -3377,7 +3385,7 @@ struct dentry *user_path_create(int dfd, const char
> __user *pathname, struct dentry *res;
>  	if (IS_ERR(tmp))
>  		return ERR_CAST(tmp);
> -	res = kern_path_create(dfd, tmp->name, path, lookup_flags);
> +	res = filename_create(dfd, tmp, path, lookup_flags);
>  	putname(tmp);
>  	return res;
>  }

-- 
paul moore
security @ redhat


^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- sparc32: fix broken set_pte()
  2015-01-22  3:14         ` Guenter Roeck
@ 2015-01-22 17:13           ` Kirill A. Shutemov
  2015-01-22 17:27               ` Kirill A. Shutemov
  2015-01-22 19:34             ` Guenter Roeck
  0 siblings, 2 replies; 62+ messages in thread
From: Kirill A. Shutemov @ 2015-01-22 17:13 UTC (permalink / raw)
  To: Guenter Roeck, davem
  Cc: Mel Gorman, Stephen Rothwell, linux-next, linux-kernel,
	Paul Moore, Joonsoo Kim

On Wed, Jan 21, 2015 at 07:14:33PM -0800, Guenter Roeck wrote:
> On 01/21/2015 02:43 AM, Kirill A. Shutemov wrote:
> 
> >>BUG: Bad page state in process init.sh  pfn:00000
> >>page:f05e7460 count:0 mapcount:-1 mapping:  (null) index:0x0
> >>flags: 0x400(reserved)
> >>page dumped because: PAGE_FLAGS_CHECK_AT_FREE flag(s) set
> >>bad because of flags:
> >>flags: 0x400(reserved)
> >>CPU: 0 PID: 1 Comm: init.sh Not tainted 3.19.0-rc5-next-20150120 #1
> >>[f0076010 : bad_page+0xdc/0xfc ] [f00760c0 : free_pages_prepare+0x90/0x1f8 ] [f00775cc : free_hot_cold_page+0x20/0x160 ] [f00919e8 : do_wp_page+0x680/0x6ac ] [f00939f4 : handle_mm_fault+0xc94/0xd08 ] [f0015900 : do_sparc_fault+0xfc/0x3ec ] [f000af90 : srmmu_fault+0x58/0x68 ] [f00e74f4 : load_elf_binary+0x9a8/0xe94 ] [f00b0cac : search_binary_handler+0x68/0x12c ] [f00e67d0 : load_script+0x214/0x224 ] [f00b0cac : search_binary_handler+0x68/0x12c ] [f00b11a4 : do_execveat_common+0x434/0x584 ] [f00b1310 : do_execve+0x1c/0x2c ] [f02b50b0 : kernel_init+0x70/0xf0 ] [f000b200 : ret_from_kernel_thread+0xc/0x38 ] [00000000 :   (null) ]
> >>Disabling lock debugging due to kernel taint
> >>: applet not found
> >>Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100
> >
> >It doesn't make much sense to me. It tries to free page with pfn==0 on
> >handling wp-fault. How it got mapped in the first place?
> >
> If I comment out the added call to vm_normal_page(), the code works fine.
> If the call to vm_local_page() is there but everything else from your patch
> is commented out, the crash occurs. Also, any log message added to the new
> code patch (inside the if statements) is not getting printed, meaning the
> new code (besides the call to vm_local_page) is not reached.
> 
> I guess that means that something in the call to vm_normal_page() appears
> to go wrong. No idea what that might be, though.

vm_normal_page() is never called in this case, since prot_numa is always
zero.

I tracked the bug down. It's a sparc bug. The commit only triggers it,
because affect how GCC optimize the code around faulty point.

Please, test.

>From 5b9232753217412116a4cdc2897be0db818371ca Mon Sep 17 00:00:00 2001
From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Date: Thu, 22 Jan 2015 18:42:13 +0200
Subject: [PATCH] sparc32: fix broken set_pte()

32-bit sparc uses swap instruction to implement set_pte(). It called
using GCC inline assembler. But it misses the "memory" clobber to
indicate that pte value will be updated in memory.

As result GCC doesn't know that it cannot postpone pte pointer
dereference which occurs before set_pte() to post-set_pte() time.

It leads to real-world bugs -- [1]. In this situation we have code:

	ptent = ptep_modify_prot_start(mm, addr, pte);
	ptent = pte_modify(ptent, newprot);
	...
	ptep_modify_prot_commit(mm, addr, pte, ptent);

ptep_modify_prot_start() in sparc case is just 'pte' dereference plus
pte_clear(). pte_clear() calls broken set_pte(). GCC thinks it's valid
to dereference 'pte' again on pte_modify() and gets cleared pte.
ptep_modify_prot_commit() puts 'pteent' with pfn==0 back to page table,
which eventually leads to the crash.

[1] http://lkml.kernel.org/r/54C06B19.8060305@roeck-us.net

Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Reported-by: Guenter Roeck <linux@roeck-us.net>
---
 arch/sparc/include/asm/pgtable_32.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/sparc/include/asm/pgtable_32.h b/arch/sparc/include/asm/pgtable_32.h
index b2f7dc46a7d1..9912eb0b499a 100644
--- a/arch/sparc/include/asm/pgtable_32.h
+++ b/arch/sparc/include/asm/pgtable_32.h
@@ -102,7 +102,8 @@ extern unsigned long empty_zero_page;
  */
 static inline unsigned long srmmu_swap(unsigned long *addr, unsigned long value)
 {
-	__asm__ __volatile__("swap [%2], %0" : "=&r" (value) : "0" (value), "r" (addr));
+	__asm__ __volatile__("swap [%2], %0" :
+			"=&r" (value) : "0" (value), "r" (addr) : "memory");
 	return value;
 }
 
-- 
 Kirill A. Shutemov

^ permalink raw reply related	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- sparc32: fix broken set_pte()
  2015-01-22 17:13           ` linux-next: Tree for Jan 20 -- sparc32: fix broken set_pte() Kirill A. Shutemov
@ 2015-01-22 17:27               ` Kirill A. Shutemov
  2015-01-22 19:34             ` Guenter Roeck
  1 sibling, 0 replies; 62+ messages in thread
From: Kirill A. Shutemov @ 2015-01-22 17:27 UTC (permalink / raw)
  To: Guenter Roeck, davem
  Cc: Mel Gorman, Stephen Rothwell, linux-next, linux-kernel,
	Paul Moore, Joonsoo Kim, Sam Ravnborg, Andrew Morton, sparclinux

On Thu, Jan 22, 2015 at 07:13:38PM +0200, Kirill A. Shutemov wrote:
> On Wed, Jan 21, 2015 at 07:14:33PM -0800, Guenter Roeck wrote:
> > On 01/21/2015 02:43 AM, Kirill A. Shutemov wrote:
> > 
> > >>BUG: Bad page state in process init.sh  pfn:00000
> > >>page:f05e7460 count:0 mapcount:-1 mapping:  (null) index:0x0
> > >>flags: 0x400(reserved)
> > >>page dumped because: PAGE_FLAGS_CHECK_AT_FREE flag(s) set
> > >>bad because of flags:
> > >>flags: 0x400(reserved)
> > >>CPU: 0 PID: 1 Comm: init.sh Not tainted 3.19.0-rc5-next-20150120 #1
> > >>[f0076010 : bad_page+0xdc/0xfc ] [f00760c0 : free_pages_prepare+0x90/0x1f8 ] [f00775cc : free_hot_cold_page+0x20/0x160 ] [f00919e8 : do_wp_page+0x680/0x6ac ] [f00939f4 : handle_mm_fault+0xc94/0xd08 ] [f0015900 : do_sparc_fault+0xfc/0x3ec ] [f000af90 : srmmu_fault+0x58/0x68 ] [f00e74f4 : load_elf_binary+0x9a8/0xe94 ] [f00b0cac : search_binary_handler+0x68/0x12c ] [f00e67d0 : load_script+0x214/0x224 ] [f00b0cac : search_binary_handler+0x68/0x12c ] [f00b11a4 : do_execveat_common+0x434/0x584 ] [f00b1310 : do_execve+0x1c/0x2c ] [f02b50b0 : kernel_init+0x70/0xf0 ] [f000b200 : ret_from_kernel_thread+0xc/0x38 ] [00000000 :   (null) ]
> > >>Disabling lock debugging due to kernel taint
> > >>: applet not found
> > >>Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100
> > >
> > >It doesn't make much sense to me. It tries to free page with pfn==0 on
> > >handling wp-fault. How it got mapped in the first place?
> > >
> > If I comment out the added call to vm_normal_page(), the code works fine.
> > If the call to vm_local_page() is there but everything else from your patch
> > is commented out, the crash occurs. Also, any log message added to the new
> > code patch (inside the if statements) is not getting printed, meaning the
> > new code (besides the call to vm_local_page) is not reached.
> > 
> > I guess that means that something in the call to vm_normal_page() appears
> > to go wrong. No idea what that might be, though.
> 
> vm_normal_page() is never called in this case, since prot_numa is always
> zero.
> 
> I tracked the bug down. It's a sparc bug. The commit only triggers it,
> because affect how GCC optimize the code around faulty point.
> 
> Please, test.

+CC: Andrew, Sam, sparclinux@

> 
> From 5b9232753217412116a4cdc2897be0db818371ca Mon Sep 17 00:00:00 2001
> From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
> Date: Thu, 22 Jan 2015 18:42:13 +0200
> Subject: [PATCH] sparc32: fix broken set_pte()
> 
> 32-bit sparc uses swap instruction to implement set_pte(). It called
> using GCC inline assembler. But it misses the "memory" clobber to
> indicate that pte value will be updated in memory.
> 
> As result GCC doesn't know that it cannot postpone pte pointer
> dereference which occurs before set_pte() to post-set_pte() time.
> 
> It leads to real-world bugs -- [1]. In this situation we have code:
> 
> 	ptent = ptep_modify_prot_start(mm, addr, pte);
> 	ptent = pte_modify(ptent, newprot);
> 	...
> 	ptep_modify_prot_commit(mm, addr, pte, ptent);
> 
> ptep_modify_prot_start() in sparc case is just 'pte' dereference plus
> pte_clear(). pte_clear() calls broken set_pte(). GCC thinks it's valid
> to dereference 'pte' again on pte_modify() and gets cleared pte.
> ptep_modify_prot_commit() puts 'pteent' with pfn==0 back to page table,
> which eventually leads to the crash.
> 
> [1] http://lkml.kernel.org/r/54C06B19.8060305@roeck-us.net
> 
> Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
> Reported-by: Guenter Roeck <linux@roeck-us.net>
> ---
>  arch/sparc/include/asm/pgtable_32.h | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/sparc/include/asm/pgtable_32.h b/arch/sparc/include/asm/pgtable_32.h
> index b2f7dc46a7d1..9912eb0b499a 100644
> --- a/arch/sparc/include/asm/pgtable_32.h
> +++ b/arch/sparc/include/asm/pgtable_32.h
> @@ -102,7 +102,8 @@ extern unsigned long empty_zero_page;
>   */
>  static inline unsigned long srmmu_swap(unsigned long *addr, unsigned long value)
>  {
> -	__asm__ __volatile__("swap [%2], %0" : "=&r" (value) : "0" (value), "r" (addr));
> +	__asm__ __volatile__("swap [%2], %0" :
> +			"=&r" (value) : "0" (value), "r" (addr) : "memory");
>  	return value;
>  }
>  
> -- 
>  Kirill A. Shutemov
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

-- 
 Kirill A. Shutemov

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- sparc32: fix broken set_pte()
@ 2015-01-22 17:27               ` Kirill A. Shutemov
  0 siblings, 0 replies; 62+ messages in thread
From: Kirill A. Shutemov @ 2015-01-22 17:27 UTC (permalink / raw)
  To: Guenter Roeck, davem
  Cc: Mel Gorman, Stephen Rothwell, linux-next, linux-kernel,
	Paul Moore, Joonsoo Kim, Sam Ravnborg, Andrew Morton, sparclinux

On Thu, Jan 22, 2015 at 07:13:38PM +0200, Kirill A. Shutemov wrote:
> On Wed, Jan 21, 2015 at 07:14:33PM -0800, Guenter Roeck wrote:
> > On 01/21/2015 02:43 AM, Kirill A. Shutemov wrote:
> > 
> > >>BUG: Bad page state in process init.sh  pfn:00000
> > >>page:f05e7460 count:0 mapcount:-1 mapping:  (null) index:0x0
> > >>flags: 0x400(reserved)
> > >>page dumped because: PAGE_FLAGS_CHECK_AT_FREE flag(s) set
> > >>bad because of flags:
> > >>flags: 0x400(reserved)
> > >>CPU: 0 PID: 1 Comm: init.sh Not tainted 3.19.0-rc5-next-20150120 #1
> > >>[f0076010 : bad_page+0xdc/0xfc ] [f00760c0 : free_pages_prepare+0x90/0x1f8 ] [f00775cc : free_hot_cold_page+0x20/0x160 ] [f00919e8 : do_wp_page+0x680/0x6ac ] [f00939f4 : handle_mm_fault+0xc94/0xd08 ] [f0015900 : do_sparc_fault+0xfc/0x3ec ] [f000af90 : srmmu_fault+0x58/0x68 ] [f00e74f4 : load_elf_binary+0x9a8/0xe94 ] [f00b0cac : search_binary_handler+0x68/0x12c ] [f00e67d0 : load_script+0x214/0x224 ] [f00b0cac : search_binary_handler+0x68/0x12c ] [f00b11a4 : do_execveat_common+0x434/0x584 ] [f00b1310 : do_execve+0x1c/0x2c ] [f02b50b0 : kernel_init+0x70/0xf0 ] [f000b200 : ret_from_kernel_thread+0xc/0x38 ] [00000000 :   (null) ]
> > >>Disabling lock debugging due to kernel taint
> > >>: applet not found
> > >>Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100
> > >
> > >It doesn't make much sense to me. It tries to free page with pfn=0 on
> > >handling wp-fault. How it got mapped in the first place?
> > >
> > If I comment out the added call to vm_normal_page(), the code works fine.
> > If the call to vm_local_page() is there but everything else from your patch
> > is commented out, the crash occurs. Also, any log message added to the new
> > code patch (inside the if statements) is not getting printed, meaning the
> > new code (besides the call to vm_local_page) is not reached.
> > 
> > I guess that means that something in the call to vm_normal_page() appears
> > to go wrong. No idea what that might be, though.
> 
> vm_normal_page() is never called in this case, since prot_numa is always
> zero.
> 
> I tracked the bug down. It's a sparc bug. The commit only triggers it,
> because affect how GCC optimize the code around faulty point.
> 
> Please, test.

+CC: Andrew, Sam, sparclinux@

> 
> From 5b9232753217412116a4cdc2897be0db818371ca Mon Sep 17 00:00:00 2001
> From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
> Date: Thu, 22 Jan 2015 18:42:13 +0200
> Subject: [PATCH] sparc32: fix broken set_pte()
> 
> 32-bit sparc uses swap instruction to implement set_pte(). It called
> using GCC inline assembler. But it misses the "memory" clobber to
> indicate that pte value will be updated in memory.
> 
> As result GCC doesn't know that it cannot postpone pte pointer
> dereference which occurs before set_pte() to post-set_pte() time.
> 
> It leads to real-world bugs -- [1]. In this situation we have code:
> 
> 	ptent = ptep_modify_prot_start(mm, addr, pte);
> 	ptent = pte_modify(ptent, newprot);
> 	...
> 	ptep_modify_prot_commit(mm, addr, pte, ptent);
> 
> ptep_modify_prot_start() in sparc case is just 'pte' dereference plus
> pte_clear(). pte_clear() calls broken set_pte(). GCC thinks it's valid
> to dereference 'pte' again on pte_modify() and gets cleared pte.
> ptep_modify_prot_commit() puts 'pteent' with pfn=0 back to page table,
> which eventually leads to the crash.
> 
> [1] http://lkml.kernel.org/r/54C06B19.8060305@roeck-us.net
> 
> Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
> Reported-by: Guenter Roeck <linux@roeck-us.net>
> ---
>  arch/sparc/include/asm/pgtable_32.h | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/sparc/include/asm/pgtable_32.h b/arch/sparc/include/asm/pgtable_32.h
> index b2f7dc46a7d1..9912eb0b499a 100644
> --- a/arch/sparc/include/asm/pgtable_32.h
> +++ b/arch/sparc/include/asm/pgtable_32.h
> @@ -102,7 +102,8 @@ extern unsigned long empty_zero_page;
>   */
>  static inline unsigned long srmmu_swap(unsigned long *addr, unsigned long value)
>  {
> -	__asm__ __volatile__("swap [%2], %0" : "=&r" (value) : "0" (value), "r" (addr));
> +	__asm__ __volatile__("swap [%2], %0" :
> +			"=&r" (value) : "0" (value), "r" (addr) : "memory");
>  	return value;
>  }
>  
> -- 
>  Kirill A. Shutemov
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

-- 
 Kirill A. Shutemov

^ permalink raw reply	[flat|nested] 62+ messages in thread

* Re: linux-next: Tree for Jan 20 -- sparc32: fix broken set_pte()
  2015-01-22 17:13           ` linux-next: Tree for Jan 20 -- sparc32: fix broken set_pte() Kirill A. Shutemov
  2015-01-22 17:27               ` Kirill A. Shutemov
@ 2015-01-22 19:34             ` Guenter Roeck
  1 sibling, 0 replies; 62+ messages in thread
From: Guenter Roeck @ 2015-01-22 19:34 UTC (permalink / raw)
  To: Kirill A. Shutemov, davem
  Cc: Mel Gorman, Stephen Rothwell, linux-next, linux-kernel,
	Paul Moore, Joonsoo Kim

On 01/22/2015 09:13 AM, Kirill A. Shutemov wrote:
...
> vm_normal_page() is never called in this case, since prot_numa is always
> zero.
>
> I tracked the bug down. It's a sparc bug. The commit only triggers it,
> because affect how GCC optimize the code around faulty point.
>
> Please, test.
>
>>From 5b9232753217412116a4cdc2897be0db818371ca Mon Sep 17 00:00:00 2001
> From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
> Date: Thu, 22 Jan 2015 18:42:13 +0200
> Subject: [PATCH] sparc32: fix broken set_pte()
>
> 32-bit sparc uses swap instruction to implement set_pte(). It called
> using GCC inline assembler. But it misses the "memory" clobber to
> indicate that pte value will be updated in memory.
>
> As result GCC doesn't know that it cannot postpone pte pointer
> dereference which occurs before set_pte() to post-set_pte() time.
>
> It leads to real-world bugs -- [1]. In this situation we have code:
>
> 	ptent = ptep_modify_prot_start(mm, addr, pte);
> 	ptent = pte_modify(ptent, newprot);
> 	...
> 	ptep_modify_prot_commit(mm, addr, pte, ptent);
>
> ptep_modify_prot_start() in sparc case is just 'pte' dereference plus
> pte_clear(). pte_clear() calls broken set_pte(). GCC thinks it's valid
> to dereference 'pte' again on pte_modify() and gets cleared pte.
> ptep_modify_prot_commit() puts 'pteent' with pfn==0 back to page table,
> which eventually leads to the crash.
>
> [1] http://lkml.kernel.org/r/54C06B19.8060305@roeck-us.net
>
> Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
> Reported-by: Guenter Roeck <linux@roeck-us.net>

Excellent catch. Yes, the fix works.

Tested-by: Guenter Roeck <linux@roeck-us.net>

Thanks,
Guenter


^ permalink raw reply	[flat|nested] 62+ messages in thread

end of thread, other threads:[~2015-01-22 19:34 UTC | newest]

Thread overview: 62+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-20  7:53 linux-next: Tree for Jan 20 Stephen Rothwell
2015-01-20 14:16 ` Guenter Roeck
2015-01-20 16:56 ` linux-next: Tree for Jan 20 -- Kernel panic - Unable to mount root fs Sabrina Dubroca
2015-01-20 17:39   ` Paul Moore
2015-01-20 17:51     ` Sabrina Dubroca
2015-01-20 19:54       ` Al Viro
2015-01-20 20:45         ` Sabrina Dubroca
2015-01-20 21:02           ` Al Viro
2015-01-20 21:38             ` Sabrina Dubroca
2015-01-20 21:58               ` Al Viro
2015-01-20 22:08                 ` Sabrina Dubroca
2015-01-20 22:13                   ` Guenter Roeck
2015-01-20 22:50                     ` Al Viro
2015-01-20 23:17                       ` Al Viro
2015-01-20 23:27                         ` Sabrina Dubroca
2015-01-21  0:04                           ` Paul Moore
2015-01-21  0:14                             ` Paul Moore
2015-01-21  0:41                               ` Al Viro
2015-01-21  2:44                                 ` Guenter Roeck
2015-01-21  3:36                                   ` Al Viro
2015-01-21  4:01                                     ` Guenter Roeck
2015-01-21  4:36                                       ` Al Viro
2015-01-21 11:05                                         ` Sabrina Dubroca
2015-01-21 13:32                                           ` Guenter Roeck
2015-01-21 18:29                                             ` Al Viro
2015-01-21 19:06                                               ` Guenter Roeck
2015-01-21 20:06                                                 ` Al Viro
2015-01-21 21:03                                                   ` Guenter Roeck
2015-01-21 21:28                                                     ` Al Viro
2015-01-21 21:38                                                       ` Guenter Roeck
2015-01-21 21:40                                                       ` Sabrina Dubroca
2015-01-21 21:54                                                       ` Paul Walmsley
2015-01-22  2:28                                                       ` Paul Moore
2015-01-22  4:12                                                         ` Al Viro
2015-01-22  4:49                                                           ` Paul Moore
2015-01-21 21:30                                                     ` Sabrina Dubroca
2015-01-21 14:42                                           ` Thierry Reding
2015-01-21 15:24                                             ` Paul Moore
2015-01-21 15:39                                               ` Thierry Reding
2015-01-21 15:54                                                 ` Sabrina Dubroca
2015-01-21 16:16                                                   ` Paul Moore
2015-01-21 17:38                                                     ` Al Viro
2015-01-21 17:51                                                       ` Guenter Roeck
2015-01-21 16:21                                                   ` Guenter Roeck
2015-01-21 15:06                                         ` Paul Moore
2015-01-20 21:43             ` Guenter Roeck
2015-01-20 17:54     ` Fabio Estevam
2015-01-20 19:00       ` Ross Zwisler
2015-01-20 19:16         ` Fabio Estevam
2015-01-20 19:24           ` Paul Moore
2015-01-20 19:43             ` Fabio Estevam
2015-01-20 20:10               ` Paul Moore
2015-01-20 20:26 ` linux-next: Tree for Jan 20 Guenter Roeck
2015-01-20 22:54   ` Kirill A. Shutemov
2015-01-21  3:05     ` Guenter Roeck
2015-01-21 10:43       ` Kirill A. Shutemov
2015-01-21 23:34         ` Guenter Roeck
2015-01-22  3:14         ` Guenter Roeck
2015-01-22 17:13           ` linux-next: Tree for Jan 20 -- sparc32: fix broken set_pte() Kirill A. Shutemov
2015-01-22 17:27             ` Kirill A. Shutemov
2015-01-22 17:27               ` Kirill A. Shutemov
2015-01-22 19:34             ` Guenter Roeck

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.