2014-10-08 06:49:39

by Stephen Rothwell

[permalink] [raw]
Subject: linux-next: Tree for Oct 8

Hi all,

Please do not add any material intended for v3.19 to you linux-next
included trees until after v3.18-rc1 has been released.

Changes since 20141007:

Non-merge commits (relative to Linus' tree): 9651
8214 files changed, 378909 insertions(+), 275679 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 227 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 [email protected]

$ git checkout master
$ git reset --hard stable
Merging origin/master (bfe01a5ba249 Linux 3.17)
Merging fixes/master (b94d525e58dc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net)
Merging kbuild-current/rc-fixes (7d1311b93e58 Linux 3.17-rc1)
Merging arc-current/for-curr (2ce7598c9a45 Linux 3.17-rc4)
Merging arm-current/fixes (ad684dce87fa ARM: 8179/1: kprobes-test: Fix compile error "bad immediate value for offset")
Merging m68k-current/for-linus (24cae7934cf1 m68k: Reformat arch/m68k/mm/hwtest.c)
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 (396a34340cdf powerpc: Fix endianness of flash_block_list in rtas_flash)
Merging powerpc-merge-mpe/for-linus (7d59deb50aaf powerpc: Wire up sys_seccomp(), sys_getrandom() and sys_memfd_create())
Merging sparc/master (1cef94c36bd4 sparc64: Increase size of boot string to 1024 bytes)
Merging net/master (c3a803e81713 Update Intel Ethernet Driver maintainers list)
Merging ipsec/master (b8c203b2d2fc xfrm: Generate queueing routes only from route lookup functions)
Merging sound-current/for-linus (897c329bcb22 ALSA: usb: caiaq: check for cdev->n_streams > 1)
Merging pci-current/for-linus (7cbeb9f90db8 PCI: pciehp: Fix pcie_wait_cmd() timeout)
Merging wireless/master (f8adaf0ae978 brcmfmac: Fix off by one bug in brcmf_count_20mhz_channels())
Merging driver-core.current/driver-core-linus (9e82bf014195 Linux 3.17-rc5)
Merging tty.current/tty-linus (9e82bf014195 Linux 3.17-rc5)
Merging usb.current/usb-linus (0f33be009b89 Linux 3.17-rc6)
Merging usb-gadget-fixes/fixes (0b93a4c838fa usb: dwc3: fix TRB completion when multiple TRBs are started)
Merging usb-serial-fixes/usb-linus (dee80ad12d2b USB: cp210x: add support for Seluxit USB dongle)
Merging staging.current/staging-linus (0f33be009b89 Linux 3.17-rc6)
Merging char-misc.current/char-misc-linus (9e82bf014195 Linux 3.17-rc5)
Merging input-current/for-linus (447a8b858e4b Merge branch 'next' into for-linus)
Merging md-current/for-linus (d47648fcf061 raid5: avoid finding "discard" stripe)
Merging crypto-current/master (be34c4ef693f crypto: sha - Handle unaligned input data in generic sha256 and sha512.)
Merging ide/master (a53dae49b2fe ide: use module_platform_driver())
Merging dwmw2/master (5950f0803ca9 pcmcia: remove RPX board stuff)
Merging devicetree-current/devicetree/merge (e66c98c7a0ea of: Fix NULL dereference in selftest removal code)
Merging rr-fixes/fixes (f49819560f53 virtio-rng: skip reading when we start to remove the device)
Merging vfio-fixes/for-linus (239a87020b26 Merge branch 'for-joerg/arm-smmu/fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into for-linus)
Merging kselftest-fixes/fixes (ce6a144a0d01 selftests/memfd: Run test on all architectures)
Merging drm-intel-fixes/for-linux-next-fixes (bfe01a5ba249 Linux 3.17)
Merging asm-generic/master (f3670394c29f Revert "x86/efi: Fixup GOT in all boot code paths")
Merging arc/for-next (a3556087153d ARC: boot: cpu feature print enhancements)
Merging arm/for-next (d5d16892243e Merge branches 'fiq' (early part), 'fixes', 'l2c' (early part) and 'misc' into for-next)
Merging arm-perf/for-next/perf (7d1311b93e58 Linux 3.17-rc1)
Merging arm-soc/for-next (cdb98444ab65 bus: arm-ccn: Fix spurious warning message)
Merging bcm2835/for-next (fa389e220254 Linux 3.14-rc6)
Merging berlin/berlin/for-next (8d4f3361e05c Merge branch 'berlin/dt' into berlin/for-next)
Merging cortex-m/for-next (f0d7515372ff ARM: v7m: add trivial suspend support)
Merging ep93xx/ep93xx-for-next (bfb0709fd17b Merge branch 'ep93xx-fixes' into ep93xx-for-next)
Merging imx-mxs/for-next (2b2244a3e7c3 ARM: dts: imx6: make gpt per clock can be from OSC)
Merging ixp4xx/next (19f949f52599 Linux 3.8)
Merging keystone/next (c9eaa447e77e Linux 3.15-rc1)
Merging msm/for-next (81cf1e061d00 ARM: msm: Rename msm devicetrees to have standard 'qcom' prefix)
Merging mvebu/for-next (65a3bb88bb33 Merge branch 'mvebu/dt' into mvebu/for-next)
Merging renesas/next (cc38f02b87ef Merge branches 'heads/dt-for-v3.18' and 'heads/soc-for-v3.18' into next)
Merging samsung/for-next (a84aaa7556a5 ARM: cacheflush: Fix v7_exit_coherency_flush exynos build breakage on ARMv6)
CONFLICT (content): Merge conflict in Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt
Merging sunxi/sunxi/for-next (429823087fec Merge branches 'sunxi/dt-for-3.18' and 'sunxi/drivers-for-3.18' into sunxi/for-next)
Merging tegra/for-next (5599b9197647 Merge branch for-3.18/defconfig into for-next)
Merging arm64/for-next/core (0a6479b0ffad arm64: Remove unneeded extern keyword)
CONFLICT (content): Merge conflict in Documentation/networking/filter.txt
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 (cd065a010a97 CRISv10: Readd missing header)
Merging hexagon/linux-next (a9a44fdf3296 Hexagon: update CR year for elf.h)
Merging ia64/next (0f33be009b89 Linux 3.17-rc6)
Merging m68k/for-next (24cae7934cf1 m68k: Reformat arch/m68k/mm/hwtest.c)
Merging m68knommu/for-next (e803d4bd3118 m68k: Fix typo 'COFNIG_MBAR')
Merging metag/for-next (f93125ae17d1 metag: cachepart: Fix failure check)
Merging microblaze/next (554336c714f4 microblaze: Use empty asm-generic/linkage.h)
Merging mips/mips-for-linux-next (31d6f57d3c65 MIPS: ralink: remove deprecated IRQF_DISABLED)
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 (7575e4d56f6f Merge tag 'sound-3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound)
Merging powerpc/next (9e813308a5c1 powerpc/thp: Add tracepoints to track hugepage invalidate)
Merging powernv-cpuidle/powernv-cpuidle (0888839c5b62 cpuidle/powernv: Parse device tree to setup idle states)
Merging powerpc-mpe/next (75d43b2d0a32 Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux.git)
Merging fsl/next (cb0446c1b625 Revert "powerpc/fsl_msi: spread msi ints across different MSIRs")
Merging mpc5xxx/next (9e813308a5c1 powerpc/thp: Add tracepoints to track hugepage invalidate)
Merging s390/features (68c97ccd51c3 s390/kdump: add support for vector extension)
Merging sparc-next/master (619df5d2870b Merge tag 'microblaze-3.17-rc5' of git://git.monstr.eu/linux-2.6-microblaze)
Merging tile/master (78410af51146 tile: add clock_gettime support to vDSO)
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 (f2589bff1ce8 xtensa/uapi: Add definition of TIOC[SG]RS485)
Merging btrfs/next (1d52c78afbbf Btrfs: try not to ENOSPC on log replay)
Merging ceph/master (c27a3e4d667f libceph: do not hard code max auth ticket len)
Merging cifs/for-next (4f927ed143fc Remap reserved posix characters by default (part 3/3))
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 (35425ea24921 ecryptfs: avoid to access NULL pointer when write metadata in xattr)
Merging ext3/for_next (c53f755d339b ocfs2: Back out change to use OCFS2_MAXQUOTAS in ocfs2_setattr())
Merging ext4/dev (1c8944cbe1b7 ext4: add ext4_iget_normal() which is to be used for dir tree lookups)
Merging f2fs/dev (02a1335f25a3 f2fs: support volatile operations for transient data)
Merging fscache/fscache (1a8ed18fb7db cachefiles: remove two unused pagevecs.)
CONFLICT (content): Merge conflict in fs/fscache/object.c
Merging fuse/for-next (d7afaec0b564 fuse: add FUSE_NO_OPEN_SUPPORT flag to INIT)
Merging gfs2/master (d24e0569e046 GFS2: Use gfs2_rbm_incr in rgblk_free)
Merging jfs/jfs-next (bb5e50aaa805 fs/jfs/super.c: convert simple_str to kstr)
Merging logfs/master (339466142b3f Fix the call to BUG() caused by no free segment found)
Merging nfs/linux-next (b4b56796fe63 Merge branch 'client-4.2' into linux-next)
Merging nfsd/nfsd-next (34549ab09e62 nfsd: eliminate "to_delegation" define)
Merging omfs/for-next (976d167615b6 Linux 3.1-rc9)
Merging squashfs/master (6d565409503f Squashfs: fix failure to unlock pages on decompress error)
Merging v9fs/for-next (f15844e0777f 9P: fix return value in v9fs_fid_xattr_set)
Merging ubifs/linux-next (91401a34038e UBI: Fastmap: Calc fastmap size correctly)
Merging xfs/for-next (bdb119bb6e9d Merge branch 'xfs-misc-fixes-for-3.18-3' into for-next)
Merging file-locks/linux-next (1b2b32dcdb3d locks: fix fcntl_setlease/getlease return when !CONFIG_FILE_LOCKING)
CONFLICT (content): Merge conflict in fs/locks.c
Merging vfs/for-next (bb4623448d40 vfs: move getname() from callers to do_mount())
Merging pci/next (f92d9ee3ab39 Merge branch 'pci/host-xgene' into next)
CONFLICT (content): Merge conflict in arch/arm64/boot/dts/apm-storm.dtsi
Merging hid/for-next (3fd9127d236c Merge branch 'for-3.18/uhid' into for-next)
Merging i2c/i2c/for-next (a4ce47f108a6 i2c-imx: Disable the clock on probe failure)
Merging jdelvare-hwmon/master (c7208164e66f Linux 3.15-rc7)
Merging hwmon-staging/hwmon-next (3afb57fa721f hwmon: (ab8500) Call kernel_power_off instead of pm_power_off)
Merging v4l-dvb/master (8f2f28bac3d1 Merge branch 'topic/si2165' into to_next)
Merging kbuild/for-next (e9f717fb534c Merge branch 'kbuild/misc' into kbuild/for-next)
CONFLICT (content): Merge conflict in scripts/tags.sh
CONFLICT (content): Merge conflict in arch/arm/mach-at91/Makefile
Merging kconfig/for-next (95edca5c523c localmodconfig: Add config depends by default settings)
Merging libata/for-next (39fccb6924bd Merge branch 'for-3.18' into for-next)
Merging pm/linux-next (9f1a05329695 Merge branch 'pm-clk')
CONFLICT (content): Merge conflict in arch/arm/mach-shmobile/setup-sh73a0.c
CONFLICT (content): Merge conflict in arch/arm/mach-shmobile/board-ape6evm-reference.c
CONFLICT (content): Merge conflict in arch/arm/configs/mvebu_v7_defconfig
Merging idle/next (e7c95ff32d00 tools/power turbostat: tweak whitespace in output format)
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 (dd634666793e Merge branches 'eduardo-soc' and 'bang-bang-governor' of .git into next)
Merging ieee1394/for-next (d584a6627994 firewire: ohci: disable MSI for VIA VT6315 again)
Merging dlm/next (883854c5457a dlm: keep listening connection alive with sctp mode)
Merging swiotlb/linux-next (8e0629c1d4ce swiotlb: don't assume PA 0 is invalid)
Merging slave-dma/next (ade4a2a8e6e4 Merge branch 'for-linus' into next)
Merging dmaengine/next (fbeec99ad5c0 dma: mv_xor: Rename __mv_xor_slot_cleanup() to mv_xor_slot_cleanup())
Merging net-next/master (505e907db388 af_unix: remove 0 assignment on static)
CONFLICT (content): Merge conflict in arch/arm/boot/dts/rk3xxx.dtsi
CONFLICT (content): Merge conflict in arch/arm/boot/dts/rk3188.dtsi
CONFLICT (content): Merge conflict in arch/arm/boot/dts/rk3188-radxarock.dts
CONFLICT (content): Merge conflict in arch/arm/boot/dts/berlin2q-marvell-dmp.dts
Merging ipsec-next/master (689f1c9de2ab ipsec: Remove obsolete MAX_AH_AUTH_LEN)
Merging wireless-next/master (c393d1799246 ath9k_htc: avoid kernel panic in ath9k_hw_reset)
Merging bluetooth/master (2d6d9249c235 Bluetooth: Remove redundant check on hci_conn's device class)
Merging infiniband/for-next (3bdad2d13fa6 Merge branches 'core', 'ipoib', 'iser', 'mlx4', 'ocrdma' and 'qib' into for-next)
Merging mtd/master (b25046b1e5e3 mtd: nand: fix DocBook warnings on nand_sdr_timings doc)
Merging l2-mtd/master (8b3d58e55445 mtd: nand: omap: Correct CONFIG_MTD_NAND_OMAP_BCH help message)
Merging crypto/master (be34c4ef693f crypto: sha - Handle unaligned input data in generic sha256 and sha512.)
Merging drm/drm-next (46d987af7649 Merge tag 'ipu-fixes-3.18' of git://git.pengutronix.de/git/pza/linux into drm-next)
Merging drm-panel/drm/panel/for-next (7d1311b93e58 Linux 3.17-rc1)
Merging drm-intel/for-linux-next (ebb69c951756 drm/i915: Enable pixel replicated modes on BDW and HSW.)
Merging drm-tegra/drm/tegra/for-next (7d1311b93e58 Linux 3.17-rc1)
Merging sound/for-next (897c329bcb22 ALSA: usb: caiaq: check for cdev->n_streams > 1)
Merging sound-asoc/for-next (56ae0c056f5f Merge remote-tracking branch 'asoc/fix/simple' into asoc-linus)
Merging modules/modules-next (184c3fc3f52f moduleparam: Resolve missing-field-initializer warning)
Merging virtio/virtio-next (7ec62d421bdf Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs)
Merging input/next (b3f9db49c1d3 Input: adp5588-keys - cancel workqueue in failure path)
Merging input-mt/for-next (5e01dc7b26d9 Linux 3.12)
Merging block/for-next (d2ddb196235f Merge branch 'for-3.18/core' into for-next)
Merging device-mapper/for-next (010b788c73c9 dm crypt: sort writes)
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 (8024379e0ae4 mmc: sdhci-acpi: Fix Braswell eMMC timeout clock frequency)
Merging kgdb/kgdb-next (662bfa325be1 kernel/debug/debug_core.c: Logging clean-up)
Merging uclinux/for-next (6dbe51c251a3 Linux 3.9-rc1)
Merging md/for-next (86143256d202 md/bitmap: remove bev_logical_block_size rounding where not needed.)
Merging mfd/for-mfd-next (d86c21fd3111 mfd: cros_ec: wait for completion of commands that return IN_PROGRESS)
Merging backlight/for-backlight-next (b6af73b42219 backlight: omap1: add blank line after declarations)
Merging battery/master (7881c64716f3 power: ab8500_fg: Fix build warning)
CONFLICT (content): Merge conflict in drivers/power/reset/Makefile
CONFLICT (content): Merge conflict in drivers/power/reset/Kconfig
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 (2d6054564313 video/atmel_lcdfb: Introduce regulator support)
Merging regulator/for-next (2ca781ca6135 Merge remote-tracking branch 'regulator/fix/rk808' into regulator-linus)
Merging security/next (594081ee7145 integrity: do zero padding of the key id)
CONFLICT (content): Merge conflict in security/smack/smack_lsm.c
CONFLICT (content): Merge conflict in fs/nfsd/vfs.c
Merging integrity/next (1b68bdf9cded ima: detect violations for mmaped files)
Merging selinux/next (4093a8443941 selinux: normalize audit log formatting)
Merging lblnet/next (d8ec26d7f828 Linux 3.13)
Merging watchdog/master (199287dd27ef watchdog: Let XILINX_WATCHDOG and TEGRA_WATCHDOG depend on HAS_IOMEM)
Merging iommu/next (09b5269a1b3d Merge branches 'arm/exynos', 'arm/omap', 'arm/smmu', 'x86/vt-d', 'x86/amd' and 'core' into next)
Merging dwmw2-iommu/master (1860e379875d Linux 3.15)
Merging vfio/next (93899a679fd6 vfio-pci: Fix remove path locking)
Merging osd/linux-next (ce5d36aac26c ore: Support for raid 6)
Merging jc_docs/docs-next (5c050fb96380 docs: update the development process document)
Merging trivial/for-next (7bb38d57fd75 Remove MN10300_PROC_MN2WS0038)
CONFLICT (content): Merge conflict in block/blk-core.c
Merging audit/master (29075feaf1f5 next: openrisc: Fix build)
CONFLICT (content): Merge conflict in arch/arm64/kernel/ptrace.c
Merging fsnotify/for-next (1ca39ab9d21a inotify: automatically restart syscalls)
Merging devicetree/devicetree/next (669a36302641 To remove non-ascii characters in of_selftest.txt)
Merging dt-rh/for-next (d22e9131187d of: add vendor prefix for Chipidea)
Merging mailbox/mailbox-for-next (168e92ba5ec7 dt: mailbox: add generic bindings)
Merging spi/for-next (a2285b8c75bf Merge remote-tracking branch 'spi/topic/xilinx' into spi-next)
Merging tip/auto-latest (6dcc548541d3 Merge branch 'x86/vdso')
CONFLICT (modify/delete): fs/nfs/blocklayout/blocklayoutdm.c deleted in HEAD and modified in tip/auto-latest. Version tip/auto-latest of fs/nfs/blocklayout/blocklayoutdm.c left in tree.
CONFLICT (modify/delete): fs/nfs/blocklayout/blocklayoutdev.c deleted in HEAD and modified in tip/auto-latest. Version tip/auto-latest of fs/nfs/blocklayout/blocklayoutdev.c left in tree.
CONFLICT (content): Merge conflict in arch/x86/kernel/ptrace.c
CONFLICT (content): Merge conflict in arch/x86/kernel/entry_64.S
CONFLICT (modify/delete): arch/arm/mach-omap2/irq.c deleted in HEAD and modified in tip/auto-latest. Version tip/auto-latest of arch/arm/mach-omap2/irq.c left in tree.
$ git rm -f fs/nfs/blocklayout/blocklayoutdev.c fs/nfs/blocklayout/blocklayoutdm.c arch/arm/mach-omap2/irq.c
Applying: pnfs: merge fixup for sched cleanup of set_current_state(TASK_RUNNING)
Applying: arm: omap: irq: fixup for new handle_domain_irq method
Merging clockevents/clockevents/next (3252a646aa2c clocksource: exynos_mct: Only use 32-bits where possible)
Merging edac/linux_next (50d1bb93672f sb_edac: add support for Haswell based systems)
Merging edac-amd/for-next (a18c3f16a907 mpc85xx_edac: Make L2 interrupt shared too)
Merging irqchip/irqchip/for-next (3bbccffba8d5 Merge branch 'irqchip/core' into irqchip/for-next)
Merging tiny/tiny/next (d45461ff03ad Merge branches 'tiny/bloat-o-meter-no-SyS', 'tiny/more-procless', 'tiny/no-advice', 'tiny/tinyconfig' and 'tiny/x86-boot-compressed-use-yn' into tiny/next)
CONFLICT (content): Merge conflict in arch/x86/boot/compressed/Makefile
Merging ftrace/for-next (382f43516812 Merge branch 'trace/ftrace/testing' into trace/for-next)
Merging rcu/rcu/next (3e28e377204b workqueue: Use cond_resched_rcu_qs macro)
Merging uprobes/for-next (0326f5a94dde uprobes/core: Handle breakpoint and singlestep exceptions)
Merging kvm/linux-next (f439ed27f8b8 kvm: do not handle APIC access page if in-kernel irqchip is not in use)
CONFLICT (content): Merge conflict in arch/s390/mm/pgtable.c
Merging kvm-arm/next (0496daa5cf99 arm/arm64: KVM: Report correct FSC for unsupported fault types)
Merging kvm-ppc/kvm-ppc-next (8d0eff638564 KVM: PPC: Pass enum to kvmppc_get_last_inst)
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 (95afae481414 xen: remove DEFINE_XENBUS_DRIVER() macro)
Merging percpu/for-next (92f4f5286667 Merge branch 'for-3.18' into for-next)
CONFLICT (content): Merge conflict in fs/ext4/super.c
CONFLICT (content): Merge conflict in arch/s390/kernel/vtime.c
CONFLICT (content): Merge conflict in arch/s390/kernel/processor.c
CONFLICT (content): Merge conflict in arch/s390/kernel/irq.c
CONFLICT (content): Merge conflict in arch/s390/include/asm/cputime.h
Applying: percpu_counter: fix for ext4 updates
Applying: s390: fixup for Replace __get_cpu_var uses
Merging workqueues/for-next (e09c2c295468 workqueue: apply __WQ_ORDERED to create_singlethread_workqueue())
Merging drivers-x86/for-next (eabde0fa9670 toshiba_acpi: Adapt kbd_bl_timeout_store to the new kbd type)
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 (f5b313a2bcd4 Merge remote-tracking branch 'regmap/topic/cache' into regmap-next)
Merging hsi/for-next (a26a42508157 HSI: remove deprecated IRQF_DISABLED)
Merging leds/for-next (a4c84e6aafda leds: gpio: cleanup the leds-gpio driver)
Merging ipmi/for-next (bfe01a5ba249 Linux 3.17)
Merging driver-core/driver-core-next (906d201530f2 dynamic_debug: change __dynamic_<foo>_dbg return types to void)
Merging tty/tty-next (69784fa539ef Revert "serial/core: Initialize the console pm state")
CONFLICT (content): Merge conflict in drivers/tty/serial/8250/8250_pci.c
Merging usb/usb-next (4ed9a3d45555 USB: host: st: fix typo 'CONFIG_USB_EHCI_HCD_ST')
CONFLICT (content): Merge conflict in drivers/usb/gadget/function/f_fs.c
Merging usb-gadget/next (72a65a0d19c1 Revert "usb: gadget: composite: dequeue cdev->req before free its buffer")
Merging usb-serial/usb-next (f8c0e057b489 USB: serial: remove zte_ev driver)
Merging staging/staging-next (e603984823a9 staging: et131x: Remove et131x driver from drivers/staging)
Merging char-misc/char-misc-next (480bd3c4ad30 mei: mei_txe_fw_sts can be static)
Merging cgroup/for-next (55e8955e6eba Merge branch 'for-3.18' into for-next)
Merging scsi/for-next (20c5ec4e6d71 Merge branch 'fixes' into for-next)
Merging target-updates/for-next (0d0f660d882c iser-target: Disable TX completion interrupt coalescing)
CONFLICT (content): Merge conflict in drivers/scsi/qla2xxx/qla_target.c
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 (2cdef8f4e1ac pinctrl: specify bindings for pins and groups)
Merging vhost/linux-next (970379f59d81 vhost: move memory pointer to VQs)
CONFLICT (content): Merge conflict in drivers/vhost/net.c
Merging remoteproc/for-next (9a3c4145af32 Linux 3.16-rc6)
Merging rpmsg/for-next (397944df3290 rpmsg: fix kconfig dependencies for VIRTIO)
Merging gpio/for-next (a092e19b688b gpio: pch: Build context save/restore only for PM)
CONFLICT (content): Merge conflict in drivers/pinctrl/qcom/pinctrl-msm.c
CONFLICT (content): Merge conflict in drivers/gpio/gpiolib.c
Merging dma-mapping/dma-mapping-next (b4bbb107d73b dma-mapping: Provide write-combine allocations)
Merging pwm/for-next (e2e08970100d pwm: atmel: Fix calculation of prescale value)
Merging dma-buf/for-next (101e31050bf1 dma-buf/fence: Fix one more kerneldoc warning)
Merging userns/for-next (a1998908ba46 nfs: fix kernel warning when removing proc entry)
CONFLICT (content): Merge conflict in fs/nfs/client.c
Merging ktest/for-next (d832d743385d ktest: Don't bother with bisect good or bad on replay)
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 (98d147f50eb0 clk: pxa clocks build system fix)
Merging random/dev (13aa93c70e71 random: add and use memzero_explicit() for clearing data)
Merging lzo-update/lzo-update (42b775abafaf lib/lzo: huge LZO decompression speedup on ARM by using unaligned access)
Merging aio/master (668044a5d632 aio: Make it possible to remap aio ring)
Merging llvmlinux/for-next (977104ece156 arm: LLVMLinux: Use global stack register variable for percpu)
Merging documentation/for-next (0415447aa3b4 Documentation: fix broken v4l-utils URL)
CONFLICT (content): Merge conflict in Documentation/networking/timestamping/Makefile
Merging kselftest/next (49296470830a selftests/timers: change test to use ksft framework)
Merging signal-cleanup/signal_v4 (b9f0fb2d4a7a powerpc: Use sigsp())
CONFLICT (content): Merge conflict in arch/unicore32/kernel/signal.c
CONFLICT (content): Merge conflict in arch/s390/kernel/signal.c
CONFLICT (content): Merge conflict in arch/s390/kernel/compat_signal.c
Merging akpm-current/current (833628771769 scripts/sortextable: suppress warning: `relocs_size' may be used uninitialized)
CONFLICT (content): Merge conflict in mm/page_alloc.c
CONFLICT (content): Merge conflict in drivers/clk/Kconfig
$ git checkout -b akpm remotes/origin/akpm/master
Applying: drivers/gpio/gpio-zevio.c: fix build
Applying: arch/x86/kernel/cpu/common.c: fix unused symbol warning
Applying: lib/string.c: remove duplicated function
Applying: lib: string: Make all calls to strnicmp into calls to strncasecmp
Applying: ARM: replace strnicmp with strncasecmp
Applying: netfilter: replace strnicmp with strncasecmp
Applying: video: fbdev: replace strnicmp with strncasecmp
Applying: cifs: replace strnicmp with strncasecmp
Applying: ocfs2: replace strnicmp with strncasecmp
Applying: isofs: replace strnicmp with strncasecmp
Applying: batman-adv: replace strnicmp with strncasecmp
Applying: scsi: replace strnicmp with strncasecmp
Applying: ib_srpt: replace strnicmp with strncasecmp
Applying: input: edt-ft5x06: replace strnicmp with strncasecmp
Applying: altera-stapl: replace strnicmp with strncasecmp
Applying: thinkpad_acpi: replace strnicmp with strncasecmp
Applying: PNP: replace strnicmp with strncasecmp
Applying: s390/cio: replace strnicmp with strncasecmp
Applying: staging: r8188eu: replace strnicmp with strncasecmp
Applying: thermal: replace strnicmp with strncasecmp
Applying: kdb: replace strnicmp with strncasecmp
Applying: fs: check bh blocknr earlier when searching lru
Applying: arch/x86/mm/numa.c: fix boot failure when all nodes are hotpluggable
Applying: mem-hotplug-fix-boot-failed-in-case-all-the-nodes-are-hotpluggable-checkpatch-fixes
Applying: include/linux: remove strict_strto* definitions
Applying: lib / string_helpers: move documentation to c-file
Applying: lib / string_helpers: refactoring the test suite
Applying: lib / string_helpers: introduce string_escape_mem()
Applying: lib-string_helpers-introduce-string_escape_mem-fix
Applying: lib/vsprintf: add %*pE[achnops] format specifier
Applying: lib-vsprintf-add-%pe-format-specifier-fix
Applying: wireless: libertas: print esaped string via %*pE
Applying: wireless: ipw2x00: print SSID via %*pE
Applying: wireless: hostap: proc: print properly escaped SSID
Applying: wireless-hostap-proc-print-properly-escaped-ssid-fix
Applying: wireless-hostap-proc-print-properly-escaped-ssid-fix-2
Applying: lib80211: remove unused print_ssid()
Applying: staging: wlan-ng: use %*pEhp to print SN
Applying: staging: rtl8192e: use %*pEn to escape buffer
Applying: staging: rtl8192u: use %*pEn to escape buffer
Applying: kernel/watchdog.c: control hard lockup detection default
Applying: watchdog-control-hard-lockup-detection-default-fix
Applying: watchdog, nmi: Fix compile issues on sparc
Applying: kvm: ensure hard lockup detection is disabled by default
Applying: frv: remove unused declarations of __start___ex_table and __stop___ex_table
Applying: ia64: remove duplicate declarations of __per_cpu_start[] and __per_cpu_end[]
Applying: kernel/param: consolidate __{start,stop}___param[] in <linux/moduleparam.h>
Applying: mm: softdirty: enable write notifications on VMAs after VM_SOFTDIRTY cleared
Applying: mm-softdirty-enable-write-notifications-on-vmas-after-vm_softdirty-cleared-fix
Applying: fat: add i_disksize to represent uninitialized size
Applying: fat: add fat_fallocate operation
Applying: fat: skip cluster allocation on fallocated region
Applying: fat: permit to return phy block number by fibmap in fallocated region
Applying: Documentation/filesystems/vfat.txt: update the limitation for fat fallocate
Applying: mm: replace remap_file_pages() syscall with emulation
Applying: drivers/w1/w1_int.c: call put_device if device_register fails
Applying: mm: add strictlimit knob
Merging akpm/master (02a72e448722 mm: add strictlimit knob)


Attachments:
signature.asc (819.00 B)

2014-10-08 17:13:42

by Randy Dunlap

[permalink] [raw]
Subject: Re: linux-next: Tree for Oct 8 (media/usb/gspca)

On 10/07/14 23:49, Stephen Rothwell wrote:
> Hi all,
>
> Please do not add any material intended for v3.19 to you linux-next
> included trees until after v3.18-rc1 has been released.
>
> Changes since 20141007:
>

I saw these build errors in gspca when CONFIG_INPUT=m but the gspca
sub-drivers are builtin:

drivers/built-in.o: In function `gspca_dev_probe2':
(.text+0x10ef43): undefined reference to `input_allocate_device'
drivers/built-in.o: In function `gspca_dev_probe2':
(.text+0x10efdd): undefined reference to `input_register_device'
drivers/built-in.o: In function `gspca_dev_probe2':
(.text+0x10f002): undefined reference to `input_free_device'
drivers/built-in.o: In function `gspca_dev_probe2':
(.text+0x10f0ac): undefined reference to `input_unregister_device'
drivers/built-in.o: In function `gspca_disconnect':
(.text+0x10f186): undefined reference to `input_unregister_device'
drivers/built-in.o: In function `sd_int_pkt_scan':
se401.c:(.text+0x11373d): undefined reference to `input_event'
se401.c:(.text+0x11374e): undefined reference to `input_event'
drivers/built-in.o: In function `sd_pkt_scan':
t613.c:(.text+0x119f0e): undefined reference to `input_event'
t613.c:(.text+0x119f1f): undefined reference to `input_event'
drivers/built-in.o: In function `sd_stopN':
t613.c:(.text+0x11a047): undefined reference to `input_event'
drivers/built-in.o:t613.c:(.text+0x11a058): more undefined references to `input_event' follow

These could be fixed in Kconfig by something like (for each sub-driver that tests
CONFIG_INPUT):

depends on INPUT || INPUT=n

Do you have another preference for fixing this?

thanks,
--
~Randy

2014-10-08 18:31:13

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: Re: linux-next: Tree for Oct 8 (media/usb/gspca)

Em Wed, 08 Oct 2014 10:13:39 -0700
Randy Dunlap <[email protected]> escreveu:

> On 10/07/14 23:49, Stephen Rothwell wrote:
> > Hi all,
> >
> > Please do not add any material intended for v3.19 to you linux-next
> > included trees until after v3.18-rc1 has been released.
> >
> > Changes since 20141007:
> >
>
> I saw these build errors in gspca when CONFIG_INPUT=m but the gspca
> sub-drivers are builtin:
>
> drivers/built-in.o: In function `gspca_dev_probe2':
> (.text+0x10ef43): undefined reference to `input_allocate_device'
> drivers/built-in.o: In function `gspca_dev_probe2':
> (.text+0x10efdd): undefined reference to `input_register_device'
> drivers/built-in.o: In function `gspca_dev_probe2':
> (.text+0x10f002): undefined reference to `input_free_device'
> drivers/built-in.o: In function `gspca_dev_probe2':
> (.text+0x10f0ac): undefined reference to `input_unregister_device'
> drivers/built-in.o: In function `gspca_disconnect':
> (.text+0x10f186): undefined reference to `input_unregister_device'
> drivers/built-in.o: In function `sd_int_pkt_scan':
> se401.c:(.text+0x11373d): undefined reference to `input_event'
> se401.c:(.text+0x11374e): undefined reference to `input_event'
> drivers/built-in.o: In function `sd_pkt_scan':
> t613.c:(.text+0x119f0e): undefined reference to `input_event'
> t613.c:(.text+0x119f1f): undefined reference to `input_event'
> drivers/built-in.o: In function `sd_stopN':
> t613.c:(.text+0x11a047): undefined reference to `input_event'
> drivers/built-in.o:t613.c:(.text+0x11a058): more undefined references to `input_event' follow
>
> These could be fixed in Kconfig by something like (for each sub-driver that tests
> CONFIG_INPUT):
>
> depends on INPUT || INPUT=n
>
> Do you have another preference for fixing this?

Hmm... The code at the gspca subdrivers looks like:

#if IS_ENABLED(CONFIG_INPUT)
if (data[0] & 0x20) {
input_report_key(gspca_dev->input_dev, KEY_CAMERA, 1);
input_sync(gspca_dev->input_dev);
input_report_key(gspca_dev->input_dev, KEY_CAMERA, 0);
input_sync(gspca_dev->input_dev);
}
#endif

As we never got any report about such bug, and this is there for a long
time, I suspect that maybe the IS_ENABLED() macro had some changes on
its behavior. So, IMHO, we should first check if something changed there.

>From gpsca's PoV, IMHO, it should be fine to disable the webcam buttons if
the webcam was compiled as builtin and the input subsystem is compiled as
module. The core feature expected on a camera is to capture streams.
Buttons are just a plus.

Also, most cams don't even have buttons. The gspca subdriver has support
for buttons for the few models that have it.

So, IMHO, it should be ok to have GSPCA=y and INPUT=m, provided that
the buttons will be disabled.

Regards,
Mauro

2014-10-08 20:53:36

by Randy Dunlap

[permalink] [raw]
Subject: Re: linux-next: Tree for Oct 8 (media/usb/gspca)

On 10/08/14 11:31, Mauro Carvalho Chehab wrote:
> Em Wed, 08 Oct 2014 10:13:39 -0700
> Randy Dunlap <[email protected]> escreveu:
>
>> On 10/07/14 23:49, Stephen Rothwell wrote:
>>> Hi all,
>>>
>>> Please do not add any material intended for v3.19 to you linux-next
>>> included trees until after v3.18-rc1 has been released.
>>>
>>> Changes since 20141007:
>>>
>>
>> I saw these build errors in gspca when CONFIG_INPUT=m but the gspca
>> sub-drivers are builtin:
>>
>> drivers/built-in.o: In function `gspca_dev_probe2':
>> (.text+0x10ef43): undefined reference to `input_allocate_device'
>> drivers/built-in.o: In function `gspca_dev_probe2':
>> (.text+0x10efdd): undefined reference to `input_register_device'
>> drivers/built-in.o: In function `gspca_dev_probe2':
>> (.text+0x10f002): undefined reference to `input_free_device'
>> drivers/built-in.o: In function `gspca_dev_probe2':
>> (.text+0x10f0ac): undefined reference to `input_unregister_device'
>> drivers/built-in.o: In function `gspca_disconnect':
>> (.text+0x10f186): undefined reference to `input_unregister_device'
>> drivers/built-in.o: In function `sd_int_pkt_scan':
>> se401.c:(.text+0x11373d): undefined reference to `input_event'
>> se401.c:(.text+0x11374e): undefined reference to `input_event'
>> drivers/built-in.o: In function `sd_pkt_scan':
>> t613.c:(.text+0x119f0e): undefined reference to `input_event'
>> t613.c:(.text+0x119f1f): undefined reference to `input_event'
>> drivers/built-in.o: In function `sd_stopN':
>> t613.c:(.text+0x11a047): undefined reference to `input_event'
>> drivers/built-in.o:t613.c:(.text+0x11a058): more undefined references to `input_event' follow
>>
>> These could be fixed in Kconfig by something like (for each sub-driver that tests
>> CONFIG_INPUT):
>>
>> depends on INPUT || INPUT=n
>>
>> Do you have another preference for fixing this?
>
> Hmm... The code at the gspca subdrivers looks like:
>
> #if IS_ENABLED(CONFIG_INPUT)

For builtin only, that should be

#if IS_BUILTIN(CONFIG_INPUT)

> if (data[0] & 0x20) {
> input_report_key(gspca_dev->input_dev, KEY_CAMERA, 1);
> input_sync(gspca_dev->input_dev);
> input_report_key(gspca_dev->input_dev, KEY_CAMERA, 0);
> input_sync(gspca_dev->input_dev);
> }
> #endif
>
> As we never got any report about such bug, and this is there for a long
> time, I suspect that maybe the IS_ENABLED() macro had some changes on
> its behavior. So, IMHO, we should first check if something changed there.

I don't see any changes in <linux/kconfig.h>.

> From gpsca's PoV, IMHO, it should be fine to disable the webcam buttons if
> the webcam was compiled as builtin and the input subsystem is compiled as
> module. The core feature expected on a camera is to capture streams.
> Buttons are just a plus.
>
> Also, most cams don't even have buttons. The gspca subdriver has support
> for buttons for the few models that have it.
>
> So, IMHO, it should be ok to have GSPCA=y and INPUT=m, provided that
> the buttons will be disabled.

Then all of the sub-drivers that use IS_ENABLED(CONFIG_INPUT) should be
changed to use IS_BUILTIN(CONFIG_INPUT).

But that is too restrictive IMO. The input subsystem will work fine when
CONFIG_INPUT=m and the GSPCA drivers are also loadable modules.
That's simple to express in Kconfig language but probly more messy in CPP.


Thanks.


--
~Randy

2014-10-09 01:50:22

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: Re: linux-next: Tree for Oct 8 (media/usb/gspca)

Em Wed, 08 Oct 2014 13:53:33 -0700
Randy Dunlap <[email protected]> escreveu:

> On 10/08/14 11:31, Mauro Carvalho Chehab wrote:
> > Em Wed, 08 Oct 2014 10:13:39 -0700
> > Randy Dunlap <[email protected]> escreveu:
> >
> >> On 10/07/14 23:49, Stephen Rothwell wrote:
> >>> Hi all,
> >>>
> >>> Please do not add any material intended for v3.19 to you linux-next
> >>> included trees until after v3.18-rc1 has been released.
> >>>
> >>> Changes since 20141007:
> >>>
> >>
> >> I saw these build errors in gspca when CONFIG_INPUT=m but the gspca
> >> sub-drivers are builtin:
> >>
> >> drivers/built-in.o: In function `gspca_dev_probe2':
> >> (.text+0x10ef43): undefined reference to `input_allocate_device'
> >> drivers/built-in.o: In function `gspca_dev_probe2':
> >> (.text+0x10efdd): undefined reference to `input_register_device'
> >> drivers/built-in.o: In function `gspca_dev_probe2':
> >> (.text+0x10f002): undefined reference to `input_free_device'
> >> drivers/built-in.o: In function `gspca_dev_probe2':
> >> (.text+0x10f0ac): undefined reference to `input_unregister_device'
> >> drivers/built-in.o: In function `gspca_disconnect':
> >> (.text+0x10f186): undefined reference to `input_unregister_device'
> >> drivers/built-in.o: In function `sd_int_pkt_scan':
> >> se401.c:(.text+0x11373d): undefined reference to `input_event'
> >> se401.c:(.text+0x11374e): undefined reference to `input_event'
> >> drivers/built-in.o: In function `sd_pkt_scan':
> >> t613.c:(.text+0x119f0e): undefined reference to `input_event'
> >> t613.c:(.text+0x119f1f): undefined reference to `input_event'
> >> drivers/built-in.o: In function `sd_stopN':
> >> t613.c:(.text+0x11a047): undefined reference to `input_event'
> >> drivers/built-in.o:t613.c:(.text+0x11a058): more undefined references to `input_event' follow
> >>
> >> These could be fixed in Kconfig by something like (for each sub-driver that tests
> >> CONFIG_INPUT):
> >>
> >> depends on INPUT || INPUT=n
> >>
> >> Do you have another preference for fixing this?
> >
> > Hmm... The code at the gspca subdrivers looks like:
> >
> > #if IS_ENABLED(CONFIG_INPUT)
>
> For builtin only, that should be
>
> #if IS_BUILTIN(CONFIG_INPUT)
>
> > if (data[0] & 0x20) {
> > input_report_key(gspca_dev->input_dev, KEY_CAMERA, 1);
> > input_sync(gspca_dev->input_dev);
> > input_report_key(gspca_dev->input_dev, KEY_CAMERA, 0);
> > input_sync(gspca_dev->input_dev);
> > }
> > #endif
> >
> > As we never got any report about such bug, and this is there for a long
> > time, I suspect that maybe the IS_ENABLED() macro had some changes on
> > its behavior. So, IMHO, we should first check if something changed there.
>
> I don't see any changes in <linux/kconfig.h>.

Perhaps some changes at the Kbuild source code or scripts badly affected it.

>
> > From gpsca's PoV, IMHO, it should be fine to disable the webcam buttons if
> > the webcam was compiled as builtin and the input subsystem is compiled as
> > module. The core feature expected on a camera is to capture streams.
> > Buttons are just a plus.
> >
> > Also, most cams don't even have buttons. The gspca subdriver has support
> > for buttons for the few models that have it.
> >
> > So, IMHO, it should be ok to have GSPCA=y and INPUT=m, provided that
> > the buttons will be disabled.
>
> Then all of the sub-drivers that use IS_ENABLED(CONFIG_INPUT) should be
> changed to use IS_BUILTIN(CONFIG_INPUT).
>
> But that is too restrictive IMO. The input subsystem will work fine when
> CONFIG_INPUT=m and the GSPCA drivers are also loadable modules.

Agreed.

Maybe the solution would be something more complex like
(for drivers/media/usb/gspca/zc3xx.c):

#if (IS_BUILTIN(CONFIG_INPUT)) || (IS_ENABLED(CONFIG_INPUT) && !IS_BUILTIN(CONFIG_USB_GSPCA_ZC3XX))

Probably the best would be to write another macro that would evaluate
like the above.

> That's simple to express in Kconfig language but probly more messy in CPP.
>
>
> Thanks.
>
>

2014-10-09 06:45:38

by Paul Bolle

[permalink] [raw]
Subject: Re: linux-next: Tree for Oct 8 (media/usb/gspca)

On Wed, 2014-10-08 at 22:50 -0300, Mauro Carvalho Chehab wrote:
> Em Wed, 08 Oct 2014 13:53:33 -0700
> Randy Dunlap <[email protected]> escreveu:
> > On 10/08/14 11:31, Mauro Carvalho Chehab wrote:
> > > From gpsca's PoV, IMHO, it should be fine to disable the webcam buttons if
> > > the webcam was compiled as builtin and the input subsystem is compiled as
> > > module. The core feature expected on a camera is to capture streams.
> > > Buttons are just a plus.
> > >
> > > Also, most cams don't even have buttons. The gspca subdriver has support
> > > for buttons for the few models that have it.
> > >
> > > So, IMHO, it should be ok to have GSPCA=y and INPUT=m, provided that
> > > the buttons will be disabled.
> >
> > Then all of the sub-drivers that use IS_ENABLED(CONFIG_INPUT) should be
> > changed to use IS_BUILTIN(CONFIG_INPUT).
> >
> > But that is too restrictive IMO. The input subsystem will work fine when
> > CONFIG_INPUT=m and the GSPCA drivers are also loadable modules.
>
> Agreed.
>
> Maybe the solution would be something more complex like
> (for drivers/media/usb/gspca/zc3xx.c):
>
> #if (IS_BUILTIN(CONFIG_INPUT)) || (IS_ENABLED(CONFIG_INPUT) && !IS_BUILTIN(CONFIG_USB_GSPCA_ZC3XX))

The above discussion meanders a bit, and I just stumbled onto it, but
would
#if IS_BUILTIN(CONFIG_INPUT) || (IS_MODULE(CONFIG_INPUT) && defined(MODULE))

cover your requirements when using macros?

> Probably the best would be to write another macro that would evaluate
> like the above.


Paul Bolle

2014-10-09 10:31:11

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: Re: linux-next: Tree for Oct 8 (media/usb/gspca)

Em Thu, 09 Oct 2014 08:45:28 +0200
Paul Bolle <[email protected]> escreveu:

> On Wed, 2014-10-08 at 22:50 -0300, Mauro Carvalho Chehab wrote:
> > Em Wed, 08 Oct 2014 13:53:33 -0700
> > Randy Dunlap <[email protected]> escreveu:
> > > On 10/08/14 11:31, Mauro Carvalho Chehab wrote:
> > > > From gpsca's PoV, IMHO, it should be fine to disable the webcam buttons if
> > > > the webcam was compiled as builtin and the input subsystem is compiled as
> > > > module. The core feature expected on a camera is to capture streams.
> > > > Buttons are just a plus.
> > > >
> > > > Also, most cams don't even have buttons. The gspca subdriver has support
> > > > for buttons for the few models that have it.
> > > >
> > > > So, IMHO, it should be ok to have GSPCA=y and INPUT=m, provided that
> > > > the buttons will be disabled.
> > >
> > > Then all of the sub-drivers that use IS_ENABLED(CONFIG_INPUT) should be
> > > changed to use IS_BUILTIN(CONFIG_INPUT).
> > >
> > > But that is too restrictive IMO. The input subsystem will work fine when
> > > CONFIG_INPUT=m and the GSPCA drivers are also loadable modules.
> >
> > Agreed.
> >
> > Maybe the solution would be something more complex like
> > (for drivers/media/usb/gspca/zc3xx.c):
> >
> > #if (IS_BUILTIN(CONFIG_INPUT)) || (IS_ENABLED(CONFIG_INPUT) && !IS_BUILTIN(CONFIG_USB_GSPCA_ZC3XX))
>
> The above discussion meanders a bit, and I just stumbled onto it, but
> would
> #if IS_BUILTIN(CONFIG_INPUT) || (IS_MODULE(CONFIG_INPUT) && defined(MODULE))
>
> cover your requirements when using macros?

No. What we need to do, for all gspca sub-drivers that have optional
support for buttons is to only enable the buttons support if:

CONFIG_INPUT=y
or
CONFIG_INPUT=m and CONFIG_USB_GSPCA_submodule=m

If we use a reverse logic, we need to disable the code if:
# CONFIG_INPUT is not set
or
CONFIG_INPUT=m and CONFIG_USB_GSPCA_submodule=y

The rationale for disabling the code on the last expression is that a
builtin code cannot call a function inside a module.

Also, as the submodule is already being compiled, we know that
CONFIG_USB_GSPCA_submodule is either module or builtin.

So, either one of those expressions should work:
#if (IS_BUILTIN(CONFIG_INPUT)) || (IS_ENABLED(CONFIG_INPUT) && !IS_BUILTIN(CONFIG_USB_GSPCA_submodule))
or
#if (IS_BUILTIN(CONFIG_INPUT)) || (IS_MODULE(CONFIG_INPUT) && IS_MODULE(CONFIG_USB_GSPCA_submodule) && defined(MODULE))
or
#if (IS_BUILTIN(CONFIG_INPUT)) || (IS_ENABLED(CONFIG_INPUT) && IS_MODULE(CONFIG_USB_GSPCA_submodule))

>
> > Probably the best would be to write another macro that would evaluate
> > like the above.
>
>
> Paul Bolle
>

2014-10-09 11:26:22

by Paul Bolle

[permalink] [raw]
Subject: Re: linux-next: Tree for Oct 8 (media/usb/gspca)

On Thu, 2014-10-09 at 07:30 -0300, Mauro Carvalho Chehab wrote:
> Em Thu, 09 Oct 2014 08:45:28 +0200
> Paul Bolle <[email protected]> escreveu:
> > The above discussion meanders a bit, and I just stumbled onto it, but
> > would
> > #if IS_BUILTIN(CONFIG_INPUT) || (IS_MODULE(CONFIG_INPUT) && defined(MODULE))
> >
> > cover your requirements when using macros?
>
> No. What we need to do, for all gspca sub-drivers that have optional
> support for buttons is to only enable the buttons support if:
>
> CONFIG_INPUT=y
> or
> CONFIG_INPUT=m and CONFIG_USB_GSPCA_submodule=m
>
> If we use a reverse logic, we need to disable the code if:
> # CONFIG_INPUT is not set
> or
> CONFIG_INPUT=m and CONFIG_USB_GSPCA_submodule=y
>
> The rationale for disabling the code on the last expression is that a
> builtin code cannot call a function inside a module.
>
> Also, as the submodule is already being compiled, we know that
> CONFIG_USB_GSPCA_submodule is either module or builtin.
>
> So, either one of those expressions should work:
> #if (IS_BUILTIN(CONFIG_INPUT)) || (IS_ENABLED(CONFIG_INPUT) && !IS_BUILTIN(CONFIG_USB_GSPCA_submodule))
> or
> #if (IS_BUILTIN(CONFIG_INPUT)) || (IS_MODULE(CONFIG_INPUT) && IS_MODULE(CONFIG_USB_GSPCA_submodule) && defined(MODULE))

I thought MODULE was only defined for code that will be part of a
module. So "IS_MODULE(CONFIG_USB_GSPCA_submodule)" and "defined(MODULE)"
should be equal when used _inside_ [...]/usb/gspca/that_submodule.c,
shouldn't they? That would make this option basically identical to my
suggestion. Or are you thinking about using these tests outside of these
submodules themselves?

> or
> #if (IS_BUILTIN(CONFIG_INPUT)) || (IS_ENABLED(CONFIG_INPUT) && IS_MODULE(CONFIG_USB_GSPCA_submodule))

I think it's clearer to use
IS_BUILTIN(CONFIG_FOO) || (IS_MODULE(CONFIG_FOO) && [...])

Ditto above. Perhaps just a matter of taste.

(Depending on INPUT is apparently not possible for these submodules. So
obviously any solution needs to check whether input is available, say
like
if (IS_MODULE(CONFIG_INPUT))
if (!is_input_loaded())
goto no_input;

Doesn't it?)

Thanks,


Paul Bolle

2014-10-09 11:52:21

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: Re: linux-next: Tree for Oct 8 (media/usb/gspca)

Em Thu, 09 Oct 2014 13:26:10 +0200
Paul Bolle <[email protected]> escreveu:

> On Thu, 2014-10-09 at 07:30 -0300, Mauro Carvalho Chehab wrote:
> > Em Thu, 09 Oct 2014 08:45:28 +0200
> > Paul Bolle <[email protected]> escreveu:
> > > The above discussion meanders a bit, and I just stumbled onto it, but
> > > would
> > > #if IS_BUILTIN(CONFIG_INPUT) || (IS_MODULE(CONFIG_INPUT) && defined(MODULE))
> > >
> > > cover your requirements when using macros?
> >
> > No. What we need to do, for all gspca sub-drivers that have optional
> > support for buttons is to only enable the buttons support if:
> >
> > CONFIG_INPUT=y
> > or
> > CONFIG_INPUT=m and CONFIG_USB_GSPCA_submodule=m
> >
> > If we use a reverse logic, we need to disable the code if:
> > # CONFIG_INPUT is not set
> > or
> > CONFIG_INPUT=m and CONFIG_USB_GSPCA_submodule=y
> >
> > The rationale for disabling the code on the last expression is that a
> > builtin code cannot call a function inside a module.
> >
> > Also, as the submodule is already being compiled, we know that
> > CONFIG_USB_GSPCA_submodule is either module or builtin.
> >
> > So, either one of those expressions should work:
> > #if (IS_BUILTIN(CONFIG_INPUT)) || (IS_ENABLED(CONFIG_INPUT) && !IS_BUILTIN(CONFIG_USB_GSPCA_submodule))
> > or
> > #if (IS_BUILTIN(CONFIG_INPUT)) || (IS_MODULE(CONFIG_INPUT) && IS_MODULE(CONFIG_USB_GSPCA_submodule) && defined(MODULE))
>
> I thought MODULE was only defined for code that will be part of a
> module. So "IS_MODULE(CONFIG_USB_GSPCA_submodule)" and "defined(MODULE)"
> should be equal when used _inside_ [...]/usb/gspca/that_submodule.c,

Ah, I didn't know that. In such case, your suggestion is indeed better,
as it is easier to write the patch.

> shouldn't they? That would make this option basically identical to my
> suggestion. Or are you thinking about using these tests outside of these
> submodules themselves?

>
> > or
> > #if (IS_BUILTIN(CONFIG_INPUT)) || (IS_ENABLED(CONFIG_INPUT) && IS_MODULE(CONFIG_USB_GSPCA_submodule))
>
> I think it's clearer to use
> IS_BUILTIN(CONFIG_FOO) || (IS_MODULE(CONFIG_FOO) && [...])
>
> Ditto above. Perhaps just a matter of taste.
>
> (Depending on INPUT is apparently not possible for these submodules.

No, because the main functionality (webcam support) doesn't depend on
INPUT.

> So
> obviously any solution needs to check whether input is available, say
> like
> if (IS_MODULE(CONFIG_INPUT))
> if (!is_input_loaded())
> goto no_input;
>
> Doesn't it?)

Yeah, but the thing is that it breaks at compilation time, because
the builtin module would try to use some symbols that are defined only
at runtime.

So, the above won't solve the issue.

One possibility for future Kernels would be to add some logic that would
automatically load the module if a call to one of those symbols defined
inside a module happens inside a builtin module.

The DVB subsystem actually does that for I2C frontend drivers,
using those macros:

#define dvb_attach(FUNCTION, ARGS...) ({ \
void *__r = NULL; \
typeof(&FUNCTION) __a = symbol_request(FUNCTION); \
if (__a) { \
__r = (void *) __a(ARGS); \
if (__r == NULL) \
symbol_put(FUNCTION); \
} else { \
printk(KERN_ERR "DVB: Unable to find symbol "#FUNCTION"()\n"); \
} \
__r; \
})

#define dvb_detach(FUNC) symbol_put_addr(FUNC)

The above works reasonably fine when there's just one symbol needed
from the module driver.

There are, however, some issues with such approach:

1) as symbol_request increments refcount, this works very badly when
there's more than one symbol needed, as symbol_put() would need
to be called as many times as symbol_request() is called;

2) lsmod doesn't list what module is actually requesting such symbol
(if the caller is also a module). It just increments refcounting.
There were some patches meant to fix that, send a long time ago,
but were never merged. Can't remember why:
http://linuxtv.org/pipermail/linux-dvb/2006-August/012322.html

Due to the above issues, and because we want to better use the I2C
binding model, we're currently trying to get rid of such approach for
the DVB subsystem, but there are too many changes to get rid of it.
So, the migration is slow.

Anyway, IMHO, having such sort of logic would help to solve the issues
with some weird configs like INPUT=m.

Regards,
Mauro