Hi all,
Changes since 20120607:
I reverted one commit from Linus' tree that was causing run time
warnings.
The block tree lost its conflict.
The leds tree gained a build failure so I used the version from
next-20120607.
The akpm tree gained a conflict against the net-next tree and lost
several patches that turned up elsewhere.
----------------------------------------------------------------------------
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" as mentioned in the FAQ on the wiki
(see below).
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. After the
final fixups (if any), it is also built with powerpc allnoconfig (32 and
64 bit), ppc44x_defconfig and allyesconfig (minus
CONFIG_PROFILE_ALL_BRANCHES - this fails its final link) and i386, sparc
and sparc64 defconfig. These builds also have
CONFIG_ENABLE_WARN_DEPRECATED, CONFIG_ENABLE_MUST_CHECK and
CONFIG_DEBUG_INFO disabled when necessary.
Below is a summary of the state of the merge.
We are up to 189 trees (counting Linus' and 26 trees of patches pending
for Linus' tree), more are welcome (even if they are currently empty).
Thanks to those who have contributed, and to those who haven't, please do.
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.
There is a wiki covering stuff to do with linux-next at
http://linux.f-seidel.de/linux-next/pmwiki/ . Thanks to Frank Seidel.
--
Cheers,
Stephen Rothwell [email protected]
$ git checkout master
$ git reset --hard stable
Merging origin/master (46edaed Merge branch 'akpm' (Andrew's fixups))
Merging fixes/master (b1a808f Merge branch 'for-next' of git://gitorious.org/kernel-hsi/kernel-hsi)
Merging kbuild-current/rc-fixes (e88aa7b Fix modpost failures in fedora 17)
Merging arm-current/fixes (f8f5701 Linux 3.5-rc1)
Merging m68k-current/for-linus (d8ce726 m68k: Use generic strncpy_from_user(), strlen_user(), and strnlen_user())
Merging powerpc-merge/merge (7c0482e powerpc/irq: Fix another case of lazy IRQ state getting out of sync)
Merging sparc/master (e49e6ff sparc: fix sparc64 build due to leon.h inclusion)
Merging net/master (2d8dbb0 snmp: fix OutOctets counter to include forwarded datagrams)
Merging sound-current/for-linus (fbf2045 Merge tag 'asoc-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus)
Merging pci-current/for-linus (314489b Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc)
Merging wireless/master (2d4524a Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth)
Merging driver-core.current/driver-core-linus (f8f5701 Linux 3.5-rc1)
Merging tty.current/tty-linus (f8f5701 Linux 3.5-rc1)
Merging usb.current/usb-linus (f2d0ed7 Merge tag 'fixes-for-v3.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus)
Merging staging.current/staging-linus (279bf2e staging:iio:ad7606: Re-add missing scale attribute)
Merging char-misc.current/char-misc-linus (f8f5701 Linux 3.5-rc1)
Merging input-current/for-linus (e644dae Merge branch 'next' into for-linus)
Merging md-current/for-linus (aba336b md: raid1/raid10: fix problem with merge_bvec_fn)
Merging audit-current/for-linus (c158a35 audit: no leading space in audit_log_d_path prefix)
Merging crypto-current/master (7c8d518 crypto: aesni-intel - fix unaligned cbc decrypt for x86-32)
Merging ide/master (027253c ide: icside.c: fix printk format string compile warning)
Merging dwmw2/master (244dc4e Merge git://git.infradead.org/users/dwmw2/random-2.6)
Merging sh-current/sh-fixes-for-linus (3c3c801 Merge branch 'sh/urgent' into sh-fixes-for-linus)
Merging irqdomain-current/irqdomain/merge (15e06bf irqdomain: Fix debugfs formatting)
Merging devicetree-current/devicetree/merge (4e8383b of: release node fix for of_parse_phandle_with_args)
Merging spi-current/spi/merge (d1c185b of/spi: Fix SPI module loading by using proper "spi:" modalias prefixes.)
Merging gpio-current/gpio/merge (96b7064 gpio/tca6424: merge I2C transactions, remove cast)
Merging arm/for-next (bcccc50 ARM: 7420/1: Improve build environment isolation)
Merging arm-perf/for-next/perf (dee8c1b ARM: perf: remove arm_perf_pmu_ids global enumeration)
Merging davinci/davinci-next (fe0d422 Linux 3.0-rc6)
Merging samsung/next-samsung (9edb240 ARM: H1940/RX1950: Change default LED triggers)
Merging xilinx/arm-next (b85a3ef ARM: Xilinx: Adding Xilinx board support)
Merging blackfin/for-linus (672552a blackfin: fix build after add bf60x mach/pm.h)
Merging c6x/for-linux-next (8ff98b9 C6X: remove unused config items)
Merging cris/for-next (7b91747 cris: Remove old legacy "-traditional" flag from arch-v10/lib/Makefile)
Merging hexagon/linux-next (5042ab9 various Kconfig cleanup and old platform build code removal)
Merging ia64/next (4035c6d [IA64] Liberate the signal layer from IA64 assembler)
Merging m68k/for-next (f25e918 m68k: Setup CROSS_COMPILE at the top)
Merging m68knommu/for-next (510b5d0 m68knommu: use MCF_IRQ_PIT1 instead of MCFINT_VECBASE + MCFINT_PIT1)
Merging microblaze/next (a01ee16 Merge branch 'for-linus' of git://git.open-osd.org/linux-open-osd)
Merging mips/mips-for-linux-next (3b67aae Merge branches 'next/cavium', 'next/jz4740', 'next/lantiq' and 'next/netlogic' into mips-for-linux-next)
Merging openrisc/for-upstream (207e715 openrisc: use scratch regs in atomic syscall)
Merging parisc/for-next (4c01acc [PARISC] fix code to find libgcc)
Merging powerpc/next (2074b1d powerpc: Fix irq distribution)
Merging 4xx/next (2074b1d powerpc: Fix irq distribution)
Merging mpc5xxx/next (f8d5842 powerpc: Option FB_FSL_DIU is not really optional for mpc512x)
Merging galak/next (fa1b42b powerpc/qe: Update the SNUM table for MPC8569 Rev2.0)
Merging s390/features (72f6e3a s390/vmlogrdr: cleanup driver attribute usage)
Merging sh/sh-latest (1c406e4 sh: use the new generic strnlen_user() function)
Merging sparc-next/master (31a6710 Fix blocking allocations called very early during bootup)
Merging tile/master (2ded5c2 tile: add #include to unbreak build after generic init_task conversion)
Merging unicore32/unicore32 (0994695 Merge branch 'akpm' (aka "Andrew's patch-bomb, take two"))
[master 2270a0e] Revert "mm: correctly synchronize rss-counters at exit/exec"
Merging ceph/master (a5988c4 libceph: set CLOSED state bit in con_init)
Merging cifs/for-next (71fae7e Merge tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging)
Merging configfs/linux-next (b930c26 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs)
Merging ecryptfs/next (86c47b7 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal)
Merging ext3/for_next (0324876 ext2: trivial fix to comment for ext2_free_blocks)
Merging ext4/dev (b22b1f1 ext4: don't set i_flags in EXT4_IOC_SETFLAGS)
Merging fuse/for-next (203627b fuse: fix blksize calculation)
Merging gfs2/master (1b8ba31 GFS2: Fix error handling when reading an invalid block from the journal)
Merging logfs/master (cd8bfa9 logfs: initialize the number of iovecs in bio)
Merging nfs/linux-next (57cb1dd Merge branch 'devel' (early part) into linux-next)
Merging nfsd/nfsd-next (6eccece nfsd4: fix, consolidate client_has_state)
Merging ocfs2/linux-next (9392557 ocfs2: avoid unaligned access to dqc_bitmap)
Merging omfs/for-next (976d167 Linux 3.1-rc9)
Merging squashfs/master (4b0180a Squashfs: add mount time sanity check for block_size and block_log match)
Merging v9fs/for-next (01627d9 Merge branch 'drm-fixes-intel' of git://people.freedesktop.org/~airlied/linux)
Merging ubifs/linux-next (12027f1 UBI: correct ubi_wl_flush locking)
Merging xfs/for-next (f8f5701 Linux 3.5-rc1)
Merging vfs/for-next (f37a02b unexport do_munmap())
CONFLICT (content): Merge conflict in security/security.c
CONFLICT (content): Merge conflict in mm/nommu.c
Merging pci/next (5420e46 microblaze/PCI: fix "io_offset undeclared" error)
Merging hid/for-next (dd766d9 Merge branch 'multitouch' into for-next)
Merging quilt/i2c (af56e0a Merge git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client)
Merging bjdooks-i2c/next-i2c (fc84fe1 Merge branch 'for_3.3/i2c/misc' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap-pm into for-33/i2c/omap)
CONFLICT (content): Merge conflict in drivers/i2c/busses/i2c-omap.c
Merging i2c-embedded/i2c-embedded/for-next (ae58d1e i2c: Add generic I2C multiplexer using pinctrl API)
Merging quilt/jdelvare-hwmon (7ae8d78 hwmon: (coretemp) Improve support of recent Atom CPU models)
Merging hwmon-staging/hwmon-next (b64a6b1 hwmon: (emc2103) Fix use of an uninitilized variable in error case)
Merging v4l-dvb/master (20a2218 Merge /home/v4l/v4l/patchwork)
Merging kbuild/for-next (e499c75 Merge branch 'kbuild/misc' into kbuild/for-next)
Merging kconfig/for-next (eae1c36 Merge branch 'kconfig/for-linus-2' into kconfig/for-next)
Merging libata/NEXT (2fff275 PATA host controller driver for ep93xx)
Merging infiniband/for-next (ae501be Merge tag 'rdma-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband)
Merging acpi/next (8fefc5d Merge branch 'thermal-spear' into next)
Merging cpupowerutils/master (f166033 cpupower tools: add install target to the debug tools' makefiles)
Merging ieee1394/for-next (7baab9a firewire: ohci: sanity-check MMIO resource)
Merging ubi/linux-next (f8f5701 Linux 3.5-rc1)
Merging dlm/next (1662984 dlm: use wait_event_timeout)
Merging scsi/for-next (24b1b79 Merge branch 'fixes' into for-next)
Merging target-updates/for-next (f80e8ed iscsi-target: Fix iov_count calculation bug in iscsit_allocate_iovecs)
Merging target-merge/for-next-merge (54131ef Merge branch 'sbp-target-merge' into for-next-merge)
Merging ibft/linux-next (935a9fe ibft: Fix finding IBFT ACPI table on UEFI)
Merging isci/all (6df8ea3 merge: devel rnc-devel fixes)
Merging slave-dma/next (f5c5584 dma: enable mxs-dma for imx6q)
Merging dmaengine/next (a2bd114 netdma: adding alignment check for NETDMA ops)
Merging net-next/master (1578e77 be2net: Fix driver load for VFs for Lancer)
Merging wireless-next/master (2eb278e mac80211: unify SW/offload remain-on-channel)
Merging bluetooth/master (7490c6c Bluetooth: Remove magic disconnect reason)
Merging mtd/master (f5e7e84 Merge tag 'for-linus-3.5-20120601' of git://git.infradead.org/linux-mtd)
Merging l2-mtd/master (6d94d6a ARM: i.MX5: Add nand oftree support)
Merging crypto/master (ef45b83 crypto: aesni-intel - move more common code to ablk_init_common)
Merging drm/drm-next (8c91402 Merge branch 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-core-next)
Merging sound/for-next (6333d7d Merge branch 'topic/hda' into for-next)
Merging sound-asoc/for-next (aa87730 Merge branches 'for-3.5' and 'for-3.6' into asoc-next)
Merging quilt/rr (ba528af init: Drop initcall level output)
Merging input/next (8680917 Input: matrix-keymap - fix building keymaps)
Merging input-mt/for-next (27c347d Input: MT - fix null pointer warning)
Merging cgroup/for-next (6be96a5 cgroup: remove hierarchy_mutex)
Merging block/for-next (2ebf6e1 Merge branch 'for-linus' into for-next)
Merging quilt/device-mapper (6bc816b Remove the restriction that limits a target's specified maximum incoming I/O size to be a power of 2.)
Merging embedded/master (4744b43 embedded: fix vc_translate operator precedence)
Merging firmware/master (6e03a20 firmware: speed up request_firmware(), v3)
Merging pcmcia/master (80af9e6 pcmcia at91_cf: fix raw gpio number usage)
Merging mmc/mmc-next (a3e545e mmc: mxs-mmc: Move of_match_table out of CONFIG_PM)
Merging kgdb/kgdb-next (3751d3e x86,kgdb: Fix DEBUG_RODATA limitation using text_poke())
Merging slab/for-next (23910c5 Merge branch 'slub/cleanups' into slab/next)
Merging uclinux/for-next (5e442a4 Revert "proc: fix races against execve() of /proc/PID/fd**")
Merging md/for-next (aba336b md: raid1/raid10: fix problem with merge_bvec_fn)
Merging mfd/for-next (29f772d mfd: Fix build break of max77693 by adding REGMAP_I2C option)
Merging battery/master (96facd2 smb347-charger: Include missing <linux/err.h>)
Merging fbdev/fbdev-next (5c888aa video: bfin_adv7393fb: Convert to kstrtouint_from_user)
Merging viafb/viafb-next (838ac78 viafb: avoid refresh and mode lookup in set_par)
Merging omap_dss2/for-next (05dd0f5 OMAPDSS: DISPC: Update Accumulator configuration for chroma plane)
Merging regulator/for-next (1524a3a Merge branches 'regulator-linus' and 'regulator-drivers' into regulator-next)
Merging security/next (ff2bb04 Merge branch 'master' of git://git.infradead.org/users/eparis/selinux into next)
Merging selinux/master (c737f82 SELinux: remove unused common_audit_data in flush_unauthorized_files)
Merging lblnet/master (7e27d6e Linux 2.6.35-rc3)
Merging watchdog/master (f8f5701 Linux 3.5-rc1)
Merging dwmw2-iommu/master (c3b92c8 Linux 3.1)
Merging iommu/next (eee5353 iommu/amd: Fix deadlock in ppr-handling error path)
Merging osd/linux-next (8b56a30 exofs: Add SYSFS info for autologin/pNFS export)
Merging jc_docs/docs-next (5c050fb docs: update the development process document)
Merging trivial/for-next (c224071 parisc: cleanup quoted include)
Merging audit/for-next (dcd6c92 Linux 3.3-rc1)
Merging pm/linux-next (6da5e30e Merge branch 'pm-acpi' into linux-next)
Merging apm/for-next (f283d22 APM: fix deadlock in APM_IOC_SUSPEND ioctl)
Merging fsnotify/for-next (1aec9c0 inotify: automatically restart syscalls)
Merging edac/linux_next (7a16049 amd64_edac: Avoid compilation breakage)
Merging edac-amd/for-next (305f1c3 Merge branch '3.3-pci_device_id' into edac-for-next)
CONFLICT (content): Merge conflict in drivers/edac/amd64_edac.c
CONFLICT (content): Merge conflict in Documentation/edac.txt
Merging devicetree/devicetree/next (8d6c1ef Merge branch 'devicetree/merge' into devicetree/next)
Merging spi/spi/next (d8e328b spi: Add "spi:" prefix to modalias attribute of spi devices)
Merging tip/auto-latest (b2f5ce5 Merge branch 'x86/urgent')
Merging rcu/rcu/next (8dea456 Merge branches 'fixes.2012.06.04a', 'barrier.2012.06.04a' and 'fnh.2012.05.21a' into dev.3.6.2012.06.04a)
Merging cputime/cputime (c3e0ef9 [S390] fix cputime overflow in uptime_proc_show)
Merging uprobes/for-next (0326f5a uprobes/core: Handle breakpoint and singlestep exceptions)
Merging kmemleak/kmemleak (4878677 kmemleak: do not leak object after tree insertion error)
Merging kvm/linux-next (25e531a Merge branch 'for-upstream' of git://github.com/agraf/linux-2.6 into next)
Merging kvm-ppc/kvm-ppc-next (555b092 KVM: PPC: Not optimizing MSR_CE and MSR_ME with paravirt.)
Merging oprofile/for-next (c16fa4f Linux 3.3)
Merging xen/upstream/xen (af3a3ab Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-fixes)
Merging xen-two/linux-next (3e3e4db Merge branch 'stable/for-linus-3.5' into linux-next)
Merging xen-pvhvm/linux-next (b056b6a xen: suspend: remove xen_hvm_suspend)
Merging percpu/for-next (61011677 Merge tag 'dlm-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm)
Merging workqueues/for-next (61011677 Merge tag 'dlm-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm)
Merging drivers-x86/linux-next (d0e0a477 dell-laptop: Add touchpad led support for Dell V3450)
Merging hwpoison/hwpoison (46e387b Merge branch 'hwpoison-hugepages' into hwpoison)
Merging sysctl/master (4e474a0 sysctl: protect poll() in entries that may go away)
Merging regmap/for-next (f2d60fd Merge tag 'regmap-3.5' into regmap-next)
Merging hsi/for-next (43139a6 HSI: hsi_char: Update ioctl-number.txt)
Merging leds/for-next (fdc5135 led: add oneshot trigger)
$ git reset --hard HEAD^
Merging refs/next/20120607/leds
Merging driver-core/driver-core-next (f8f5701 Linux 3.5-rc1)
Merging tty/tty-next (f8f5701 Linux 3.5-rc1)
Merging usb/usb-next (f8f5701 Linux 3.5-rc1)
Merging staging/staging-next (4bf8523 staging:iio:magnetometer:ak8975: remove 'mode' attribute)
Merging char-misc/char-misc-next (f8f5701 Linux 3.5-rc1)
Merging tmem/linux-next (0f1ea93 Merge branch 'stable/frontswap.v14' into linux-next)
CONFLICT (content): Merge conflict in mm/page_io.c
CONFLICT (add/add): Merge conflict in mm/frontswap.c
CONFLICT (content): Merge conflict in mm/Makefile
CONFLICT (add/add): Merge conflict in include/linux/frontswap.h
CONFLICT (add/add): Merge conflict in Documentation/vm/frontswap.txt
Merging writeback/writeback-for-next (027310a block: Convert BDI proportion calculations to flexible proportions)
Merging arm-dt/devicetree/arm-next (ede338f dt: add documentation of ARM dt boot interface)
Merging hwspinlock/linux-next (8b37fcf hwspinlock: add MAINTAINERS entries)
Merging pinctrl/for-next (d3b77c1 pinctrl: add pinctrl_add_gpio_ranges function)
Merging moduleh/for-sfr (f9e1b2b tile: fix compile failure on start_kernel in setup.c)
Merging vhost/linux-next (e0953c8 tun: experimental zero copy tx support)
Merging kmap_atomic/kmap_atomic (317b6e1 feature-removal-schedule.txt: schedule the deprecated form of kmap_atomic() for removal)
Merging memblock/memblock-kill-early_node_map (7bd0b0f memblock: Reimplement memblock allocation using reverse free area iterator)
Merging remoteproc/for-next (d48b97b Linux 3.4-rc6)
Merging irqdomain/irqdomain/next (a87487e irqdomain: Document size parameter of irq_domain_add_linear())
Merging gpio/gpio/next (3e11f7b gpio/generic: initialize basic_mmio_gpio shadow variables properly)
Merging arm-soc/for-next (3569a9e ARM: linux-next: add arm-soc-for-next-contents.txt)
Merging ep93xx/ep93xx-for-next (762be29 ep93xx: Add IDE support to edb93xx boards)
Merging renesas/next (76ab1e9 Merge branch 'renesas-emev2' into renesas-next)
CONFLICT (content): Merge conflict in arch/arm/mach-shmobile/Makefile
CONFLICT (content): Merge conflict in arch/arm/mach-shmobile/Kconfig
Merging s5p/for-next (3bd5eba Merge branch 'next/board-samsung-2' into for-next)
Merging tegra/for-next (aa2ec5e Merge branch 'for-3.6/defconfig' into for-next)
Merging kvmtool/master (41584b1 kvm tools: Use safe string handling functions)
Merging dma-mapping/dma-mapping-next (3093da6 ARM: mm: fix type of the arm_dma_limit global variable)
Merging dma-buf/for-next (b48b2c3 openrisc: use generic strnlen_user() function)
Merging userns/for-next (491fa9e userns: Allow the usernamespace support to build after the removal of usbfs)
Merging ktest/for-next (648a182 ktest: Allow a test to override REBOOT_ON_SUCCESS)
Merging signal/for-next (c0a9b61 Uninclude linux/freezer.h)
Merging scsi-post-merge/merge-base:master ()
$ git checkout akpm
Applying: selinux: fix something
Applying: CMA: mo no enable it by default
Applying: tmpfs: implement NUMA node interleaving
Applying: tmpfs-implement-numa-node-interleaving-fix
Applying: cciss: fix incorrect scsi status reporting
Applying: arch/x86/platform/iris/iris.c: register a platform device and a platform driver
Applying: arch/x86/include/asm/spinlock.h: fix comment
Applying: timeconst.pl: remove deprecated defined(@array)
Applying: time: don't inline EXPORT_SYMBOL functions
Applying: ocfs2: use find_last_bit()
Applying: ocfs2: use bitmap_weight()
Applying: drivers/scsi/ufs: use module_pci_driver
Applying: drivers/scsi/ufs: reverse the ufshcd_is_device_present logic
Applying: drivers/scsi/ufs: fix incorrect return value about SUCCESS and FAILED
Applying: drivers/scsi/atp870u.c: fix bad use of udelay
Applying: vfs: increment iversion when a file is truncated
Applying: fs: symlink restrictions on sticky directories
Applying: fs: hardlink creation restrictions
Applying: mm/slab: remove duplicate check
Applying: slab: move FULL state transition to an initcall
Applying: vmalloc: walk vmap_areas by sorted list instead of rb_next()
Applying: mm: make vb_alloc() more foolproof
Applying: mm-make-vb_alloc-more-foolproof-fix
Applying: memcg: rename MEM_CGROUP_STAT_SWAPOUT as MEM_CGROUP_STAT_SWAP
Applying: memcg: rename MEM_CGROUP_CHARGE_TYPE_MAPPED as MEM_CGROUP_CHARGE_TYPE_ANON
Applying: memcg: remove MEM_CGROUP_CHARGE_TYPE_FORCE
Applying: swap: allow swap readahead to be merged
Applying: documentation: update how page-cluster affects swap I/O
Applying: hugetlb: rename max_hstate to hugetlb_max_hstate
Applying: hugetlbfs: don't use ERR_PTR with VM_FAULT* values
Applying: hugetlbfs: add an inline helper for finding hstate index
Applying: hugetlbfs-add-an-inline-helper-for-finding-hstate-index-fix
Applying: hugetlb: use mmu_gather instead of a temporary linked list for accumulating pages
Applying: hugetlb-use-mmu_gather-instead-of-a-temporary-linked-list-for-accumulating-pages-fix
Applying: hugetlb-use-mmu_gather-instead-of-a-temporary-linked-list-for-accumulating-pages-fix-fix
Applying: hugetlb-use-mmu_gather-instead-of-a-temporary-linked-list-for-accumulating-pages-fix-2
Applying: hugetlb: avoid taking i_mmap_mutex in unmap_single_vma() for hugetlb
Applying: hugetlb: simplify migrate_huge_page()
Applying: hugetlb-simplify-migrate_huge_page-fix
Applying: memcg: add HugeTLB extension
Applying: memcg-add-hugetlb-extension-fix
Applying: memcg-add-hugetlb-extension-fix-fix
Applying: hugetlb: add charge/uncharge calls for HugeTLB alloc/free
Applying: memcg: track resource index in cftype private
Applying: hugetlbfs: add memcg control files for hugetlbfs
Applying: memcg: use scnprintf instead of sprintf
Applying: hugetlbfs-add-memcg-control-files-for-hugetlbfs-use-scnprintf-instead-of-sprintf-fix
Applying: memcg/hugetlb: Add failcnt support for hugetlb extension
Applying: hugetlbfs: add a list for tracking in-use HugeTLB pages
Applying: memcg: move HugeTLB resource count to parent cgroup on memcg removal
Applying: memcg-move-hugetlb-resource-count-to-parent-cgroup-on-memcg-removal-fix
Applying: memcg-move-hugetlb-resource-count-to-parent-cgroup-on-memcg-removal-fix-fix
Applying: hugetlb: migrate memcg info from oldpage to new page during migration
Applying: hugetlb-migrate-memcg-info-from-oldpage-to-new-page-during-migration-fix
Applying: hugetlb-use-mmu_gather-instead-of-a-temporary-linked-list-for-accumulating-pages-fix-2
Applying: memcg: add memory controller documentation for hugetlb management
Applying: memcg: fix error code in hugetlb_force_memcg_empty()
Applying: memcg-fix-error-code-in-hugetlb_force_memcg_empty-v2
Applying: memcg-fix-error-code-in-hugetlb_force_memcg_empty-v2-checkpatch-fixes
Applying: memcg: use res_counter_uncharge_until() in mem_cgroup_move_hugetlb_parent()
Applying: memcg: move charges to root cgroup if use_hierarchy=0 in mem_cgroup_move_hugetlb_parent()
Applying: clk: add non CONFIG_HAVE_CLK routines
Applying: clk: remove redundant depends on from drivers/Kconfig
Applying: i2c/i2c-pxa: remove conditional compilation of clk code
Applying: usb/marvell: remove conditional compilation of clk code
Applying: usb/musb: remove conditional compilation of clk code
Applying: ata/pata_arasan: remove conditional compilation of clk code
Applying: net/c_can: remove conditional compilation of clk code
CONFLICT (content): Merge conflict in drivers/net/can/c_can/c_can_platform.c
Applying: net/stmmac: remove conditional compilation of clk code
Applying: gadget/m66592: remove conditional compilation of clk code
Applying: gadget/r8a66597: remove conditional compilation of clk code
Applying: usb/host/r8a66597: remove conditional compilation of clk code
Applying: NMI watchdog: fix for lockup detector breakage on resume
Applying: nmi-watchdog-fix-for-lockup-detector-breakage-on-resume-fix
Applying: nmi-watchdog-fix-for-lockup-detector-breakage-on-resume-fix-fix-fix
Applying: nmi-watchdog-fix-for-lockup-detector-breakage-on-resume-fix-fix
Applying: watchdog: fix for lockup detector breakage on resume
Applying: nmi-watchdog-fix-for-lockup-detector-breakage-on-resume-v2-fix
Applying: kmsg: /dev/kmsg - properly return possible copy_from_user() failure
Applying: ipc/sem.c: alternatives to preempt_disable()
Applying: c/r: fcntl: add F_GETOWNER_UIDS option
Applying: notify_change(): check that i_mutex is held
Merging quilt/akpm (b41d810 notify_change(): check that i_mutex is held)
On 06/07/2012 09:43 PM, Stephen Rothwell wrote:
> Hi all,
>
> Changes since 20120607:
on i386, when CONFIG_PCI is not enabled:
drivers/staging/comedi/drivers/das08.c: In function 'das08_attach':
drivers/staging/comedi/drivers/das08.c:1084:3: error: implicit declaration of function 'das08_find_pci'
drivers/staging/comedi/drivers/das08.c:1084:8: warning: assignment makes pointer from integer without a cast
drivers/staging/comedi/drivers/das08.c:1087:3: error: implicit declaration of function 'das08_pci_attach_common'
--
~Randy
On 06/07/2012 09:43 PM, Stephen Rothwell wrote:
> Hi all,
>
> Changes since 20120607:
on i386:
drivers/built-in.o: In function `ad7298_register_ring_funcs_and_init':
(.text+0x245cf2): undefined reference to `iio_kfifo_allocate'
drivers/built-in.o: In function `ad7298_register_ring_funcs_and_init':
(.text+0x245d7d): undefined reference to `iio_kfifo_free'
drivers/built-in.o: In function `ad7298_ring_cleanup':
(.text+0x245dcd): undefined reference to `iio_kfifo_free'
Full randconfig file is attached.
--
~Randy
On 2012-06-08 18:05, Randy Dunlap wrote:
> On 06/07/2012 09:43 PM, Stephen Rothwell wrote:
>
>> Hi all,
>>
>> Changes since 20120607:
>
>
>
> on i386, when CONFIG_PCI is not enabled:
>
> drivers/staging/comedi/drivers/das08.c: In function 'das08_attach':
> drivers/staging/comedi/drivers/das08.c:1084:3: error: implicit declaration of function 'das08_find_pci'
> drivers/staging/comedi/drivers/das08.c:1084:8: warning: assignment makes pointer from integer without a cast
> drivers/staging/comedi/drivers/das08.c:1087:3: error: implicit declaration of function 'das08_pci_attach_common'
Sorry about that. I think I've accidentally fixed it already in a patch
posted to <[email protected]>, but I'll attach it to this
thread as well.
--
-=( Ian Abbott @ MEV Ltd. E-mail: <[email protected]> )=-
-=( Tel: +44 (0)161 477 1898 FAX: +44 (0)161 718 3587 )=-
This code is used by some combination of the CONFIG_COMEDI_DAS08_CS,
CONFIG_COMEDI_DAS08_ISA, and CONFIG_COMEDI_DAS08_PCI and contains a lot
of conditional compilation.
Remove most of the conditional compilation, relying on the compiler to
optimize out unused static functions and data. Use the '__maybe_unused'
tag for those functions that cause compiler warnings as a result of
this.
Also change the DO_COMEDI_DRIVER_REGISTER macro from a conditionally
defined macro to a manifest constant macro to allow it to be tested
outside the preprocessor (although this is not currently needed).
Signed-off-by: Ian Abbott <[email protected]>
---
v2: Add test to top of das08_attach_pci() to allow compiler to optimize
most of it out if CONFIG_COMEDI_DAS08_PCI is not enabled.
---
drivers/staging/comedi/drivers/das08.c | 74 +++++++++++++-------------------
1 files changed, 30 insertions(+), 44 deletions(-)
diff --git a/drivers/staging/comedi/drivers/das08.c b/drivers/staging/comedi/drivers/das08.c
index fa2784d..f99f72b 100644
--- a/drivers/staging/comedi/drivers/das08.c
+++ b/drivers/staging/comedi/drivers/das08.c
@@ -60,9 +60,9 @@
#define DRV_NAME "das08"
-#if IS_ENABLED(CONFIG_COMEDI_DAS08_ISA) || IS_ENABLED(CONFIG_COMEDI_DAS08_PCI)
-#define DO_COMEDI_DRIVER_REGISTER
-#endif
+#define DO_COMEDI_DRIVER_REGISTER \
+ (IS_ENABLED(CONFIG_COMEDI_DAS08_ISA) || \
+ IS_ENABLED(CONFIG_COMEDI_DAS08_PCI))
#define PCI_VENDOR_ID_COMPUTERBOARDS 0x1307
#define PCI_DEVICE_ID_PCIDAS08 0x29
@@ -341,22 +341,19 @@ static int das08_do_wbits(struct comedi_device *dev, struct comedi_subdevice *s,
return 2;
}
-#if IS_ENABLED(CONFIG_COMEDI_DAS08_ISA)
-static int das08jr_di_rbits(struct comedi_device *dev,
- struct comedi_subdevice *s,
- struct comedi_insn *insn, unsigned int *data)
+static int __maybe_unused
+das08jr_di_rbits(struct comedi_device *dev, struct comedi_subdevice *s,
+ struct comedi_insn *insn, unsigned int *data)
{
data[0] = 0;
data[1] = inb(dev->iobase + DAS08JR_DIO);
return 2;
}
-#endif
-#if IS_ENABLED(CONFIG_COMEDI_DAS08_ISA)
-static int das08jr_do_wbits(struct comedi_device *dev,
- struct comedi_subdevice *s,
- struct comedi_insn *insn, unsigned int *data)
+static int __maybe_unused
+das08jr_do_wbits(struct comedi_device *dev, struct comedi_subdevice *s,
+ struct comedi_insn *insn, unsigned int *data)
{
struct das08_private_struct *devpriv = dev->private;
@@ -370,12 +367,10 @@ static int das08jr_do_wbits(struct comedi_device *dev,
return 2;
}
-#endif
-#if IS_ENABLED(CONFIG_COMEDI_DAS08_ISA)
-static int das08jr_ao_winsn(struct comedi_device *dev,
- struct comedi_subdevice *s,
- struct comedi_insn *insn, unsigned int *data)
+static int __maybe_unused
+das08jr_ao_winsn(struct comedi_device *dev, struct comedi_subdevice *s,
+ struct comedi_insn *insn, unsigned int *data)
{
int n;
int lsb, msb;
@@ -401,7 +396,6 @@ static int das08jr_ao_winsn(struct comedi_device *dev,
return n;
}
-#endif
/*
*
@@ -409,10 +403,9 @@ static int das08jr_ao_winsn(struct comedi_device *dev,
* a different method to force an update.
*
*/
-#if IS_ENABLED(CONFIG_COMEDI_DAS08_ISA)
-static int das08ao_ao_winsn(struct comedi_device *dev,
- struct comedi_subdevice *s,
- struct comedi_insn *insn, unsigned int *data)
+static int __maybe_unused
+das08ao_ao_winsn(struct comedi_device *dev, struct comedi_subdevice *s,
+ struct comedi_insn *insn, unsigned int *data)
{
int n;
int lsb, msb;
@@ -438,7 +431,6 @@ static int das08ao_ao_winsn(struct comedi_device *dev,
return n;
}
-#endif
static unsigned int i8254_read_channel_low(unsigned int base, int chan)
{
@@ -570,7 +562,7 @@ static int das08_counter_config(struct comedi_device *dev,
return 2;
}
-#ifdef DO_COMEDI_DRIVER_REGISTER
+#if DO_COMEDI_DRIVER_REGISTER
static const struct das08_board_struct das08_boards[] = {
#if IS_ENABLED(CONFIG_COMEDI_DAS08_ISA)
{
@@ -943,7 +935,6 @@ int das08_common_attach(struct comedi_device *dev, unsigned long iobase)
}
EXPORT_SYMBOL_GPL(das08_common_attach);
-#if IS_ENABLED(CONFIG_COMEDI_DAS08_PCI)
static int das08_pci_attach_common(struct comedi_device *dev,
struct pci_dev *pdev)
{
@@ -951,6 +942,9 @@ static int das08_pci_attach_common(struct comedi_device *dev,
unsigned long pci_iobase;
struct das08_private_struct *devpriv = dev->private;
+ if (!IS_ENABLED(CONFIG_COMEDI_DAS08_PCI))
+ return -EINVAL;
+
devpriv->pdev = pdev;
/* enable PCI device and reserve I/O spaces */
if (comedi_pci_enable(pdev, dev->driver->driver_name)) {
@@ -977,28 +971,28 @@ static int das08_pci_attach_common(struct comedi_device *dev,
#endif
return das08_common_attach(dev, iobase);
}
-#endif
-#if IS_ENABLED(CONFIG_COMEDI_DAS08_PCI)
static const struct das08_board_struct *
das08_find_pci_board(struct pci_dev *pdev)
{
+#if DO_COMEDI_DRIVER_REGISTER
unsigned int i;
for (i = 0; i < ARRAY_SIZE(das08_boards); i++)
if (das08_boards[i].bustype == pci &&
pdev->device == das08_boards[i].id)
return &das08_boards[i];
+#endif
return NULL;
}
-#endif
-#if IS_ENABLED(CONFIG_COMEDI_DAS08_PCI)
/* only called in the PCI probe path, via comedi_pci_auto_config() */
-static int __devinit das08_attach_pci(struct comedi_device *dev,
- struct pci_dev *pdev)
+static int __devinit __maybe_unused
+das08_attach_pci(struct comedi_device *dev, struct pci_dev *pdev)
{
int ret;
+ if (!IS_ENABLED(CONFIG_COMEDI_DAS08_PCI))
+ return -EINVAL;
ret = alloc_private(dev, sizeof(struct das08_private_struct));
if (ret < 0)
return ret;
@@ -1010,9 +1004,7 @@ static int __devinit das08_attach_pci(struct comedi_device *dev,
}
return das08_pci_attach_common(dev, pdev);
}
-#endif
-#if IS_ENABLED(CONFIG_COMEDI_DAS08_PCI)
static struct pci_dev *das08_find_pci(struct comedi_device *dev,
int bus, int slot)
{
@@ -1063,10 +1055,9 @@ static struct pci_dev *das08_find_pci(struct comedi_device *dev,
thisboard->name);
return NULL;
}
-#endif
-#ifdef DO_COMEDI_DRIVER_REGISTER
-static int das08_attach(struct comedi_device *dev, struct comedi_devconfig *it)
+static int __maybe_unused
+das08_attach(struct comedi_device *dev, struct comedi_devconfig *it)
{
const struct das08_board_struct *thisboard = comedi_board(dev);
struct das08_private_struct *devpriv;
@@ -1097,7 +1088,6 @@ static int das08_attach(struct comedi_device *dev, struct comedi_devconfig *it)
} else
return -EIO;
}
-#endif /* DO_COMEDI_DRIVER_REGISTER */
void das08_common_detach(struct comedi_device *dev)
{
@@ -1106,8 +1096,7 @@ void das08_common_detach(struct comedi_device *dev)
}
EXPORT_SYMBOL_GPL(das08_common_detach);
-#ifdef DO_COMEDI_DRIVER_REGISTER
-static void das08_detach(struct comedi_device *dev)
+static void __maybe_unused das08_detach(struct comedi_device *dev)
{
const struct das08_board_struct *thisboard = comedi_board(dev);
struct das08_private_struct *devpriv = dev->private;
@@ -1126,16 +1115,13 @@ static void das08_detach(struct comedi_device *dev)
}
}
}
-#endif /* DO_COMEDI_DRIVER_REGISTER */
-#ifdef DO_COMEDI_DRIVER_REGISTER
+#if DO_COMEDI_DRIVER_REGISTER
static struct comedi_driver das08_driver = {
.driver_name = DRV_NAME,
.module = THIS_MODULE,
.attach = das08_attach,
-#if IS_ENABLED(CONFIG_COMEDI_DAS08_PCI)
.attach_pci = das08_attach_pci,
-#endif
.detach = das08_detach,
.board_name = &das08_boards[0].name,
.num_names = sizeof(das08_boards) / sizeof(struct das08_board_struct),
@@ -1170,7 +1156,7 @@ static struct pci_driver das08_pci_driver = {
};
#endif /* CONFIG_COMEDI_DAS08_PCI */
-#ifdef DO_COMEDI_DRIVER_REGISTER
+#if DO_COMEDI_DRIVER_REGISTER
#if IS_ENABLED(CONFIG_COMEDI_DAS08_PCI)
module_comedi_pci_driver(das08_driver, das08_pci_driver);
#else
--
1.7.8.6
On 06/08/2012 11:38 AM, Ian Abbott wrote:
> This code is used by some combination of the CONFIG_COMEDI_DAS08_CS,
> CONFIG_COMEDI_DAS08_ISA, and CONFIG_COMEDI_DAS08_PCI and contains a lot
> of conditional compilation.
>
> Remove most of the conditional compilation, relying on the compiler to
> optimize out unused static functions and data. Use the '__maybe_unused'
> tag for those functions that cause compiler warnings as a result of
> this.
>
> Also change the DO_COMEDI_DRIVER_REGISTER macro from a conditionally
> defined macro to a manifest constant macro to allow it to be tested
> outside the preprocessor (although this is not currently needed).
>
> Signed-off-by: Ian Abbott <[email protected]>
Acked-by: Randy Dunlap <[email protected]>
Thanks.
> ---
> v2: Add test to top of das08_attach_pci() to allow compiler to optimize
> most of it out if CONFIG_COMEDI_DAS08_PCI is not enabled.
> ---
> drivers/staging/comedi/drivers/das08.c | 74 +++++++++++++-------------------
> 1 files changed, 30 insertions(+), 44 deletions(-)
>
> diff --git a/drivers/staging/comedi/drivers/das08.c b/drivers/staging/comedi/drivers/das08.c
> index fa2784d..f99f72b 100644
> --- a/drivers/staging/comedi/drivers/das08.c
> +++ b/drivers/staging/comedi/drivers/das08.c
> @@ -60,9 +60,9 @@
>
> #define DRV_NAME "das08"
>
> -#if IS_ENABLED(CONFIG_COMEDI_DAS08_ISA) || IS_ENABLED(CONFIG_COMEDI_DAS08_PCI)
> -#define DO_COMEDI_DRIVER_REGISTER
> -#endif
> +#define DO_COMEDI_DRIVER_REGISTER \
> + (IS_ENABLED(CONFIG_COMEDI_DAS08_ISA) || \
> + IS_ENABLED(CONFIG_COMEDI_DAS08_PCI))
>
> #define PCI_VENDOR_ID_COMPUTERBOARDS 0x1307
> #define PCI_DEVICE_ID_PCIDAS08 0x29
> @@ -341,22 +341,19 @@ static int das08_do_wbits(struct comedi_device *dev, struct comedi_subdevice *s,
> return 2;
> }
>
> -#if IS_ENABLED(CONFIG_COMEDI_DAS08_ISA)
> -static int das08jr_di_rbits(struct comedi_device *dev,
> - struct comedi_subdevice *s,
> - struct comedi_insn *insn, unsigned int *data)
> +static int __maybe_unused
> +das08jr_di_rbits(struct comedi_device *dev, struct comedi_subdevice *s,
> + struct comedi_insn *insn, unsigned int *data)
> {
> data[0] = 0;
> data[1] = inb(dev->iobase + DAS08JR_DIO);
>
> return 2;
> }
> -#endif
>
> -#if IS_ENABLED(CONFIG_COMEDI_DAS08_ISA)
> -static int das08jr_do_wbits(struct comedi_device *dev,
> - struct comedi_subdevice *s,
> - struct comedi_insn *insn, unsigned int *data)
> +static int __maybe_unused
> +das08jr_do_wbits(struct comedi_device *dev, struct comedi_subdevice *s,
> + struct comedi_insn *insn, unsigned int *data)
> {
> struct das08_private_struct *devpriv = dev->private;
>
> @@ -370,12 +367,10 @@ static int das08jr_do_wbits(struct comedi_device *dev,
>
> return 2;
> }
> -#endif
>
> -#if IS_ENABLED(CONFIG_COMEDI_DAS08_ISA)
> -static int das08jr_ao_winsn(struct comedi_device *dev,
> - struct comedi_subdevice *s,
> - struct comedi_insn *insn, unsigned int *data)
> +static int __maybe_unused
> +das08jr_ao_winsn(struct comedi_device *dev, struct comedi_subdevice *s,
> + struct comedi_insn *insn, unsigned int *data)
> {
> int n;
> int lsb, msb;
> @@ -401,7 +396,6 @@ static int das08jr_ao_winsn(struct comedi_device *dev,
>
> return n;
> }
> -#endif
>
> /*
> *
> @@ -409,10 +403,9 @@ static int das08jr_ao_winsn(struct comedi_device *dev,
> * a different method to force an update.
> *
> */
> -#if IS_ENABLED(CONFIG_COMEDI_DAS08_ISA)
> -static int das08ao_ao_winsn(struct comedi_device *dev,
> - struct comedi_subdevice *s,
> - struct comedi_insn *insn, unsigned int *data)
> +static int __maybe_unused
> +das08ao_ao_winsn(struct comedi_device *dev, struct comedi_subdevice *s,
> + struct comedi_insn *insn, unsigned int *data)
> {
> int n;
> int lsb, msb;
> @@ -438,7 +431,6 @@ static int das08ao_ao_winsn(struct comedi_device *dev,
>
> return n;
> }
> -#endif
>
> static unsigned int i8254_read_channel_low(unsigned int base, int chan)
> {
> @@ -570,7 +562,7 @@ static int das08_counter_config(struct comedi_device *dev,
> return 2;
> }
>
> -#ifdef DO_COMEDI_DRIVER_REGISTER
> +#if DO_COMEDI_DRIVER_REGISTER
> static const struct das08_board_struct das08_boards[] = {
> #if IS_ENABLED(CONFIG_COMEDI_DAS08_ISA)
> {
> @@ -943,7 +935,6 @@ int das08_common_attach(struct comedi_device *dev, unsigned long iobase)
> }
> EXPORT_SYMBOL_GPL(das08_common_attach);
>
> -#if IS_ENABLED(CONFIG_COMEDI_DAS08_PCI)
> static int das08_pci_attach_common(struct comedi_device *dev,
> struct pci_dev *pdev)
> {
> @@ -951,6 +942,9 @@ static int das08_pci_attach_common(struct comedi_device *dev,
> unsigned long pci_iobase;
> struct das08_private_struct *devpriv = dev->private;
>
> + if (!IS_ENABLED(CONFIG_COMEDI_DAS08_PCI))
> + return -EINVAL;
> +
> devpriv->pdev = pdev;
> /* enable PCI device and reserve I/O spaces */
> if (comedi_pci_enable(pdev, dev->driver->driver_name)) {
> @@ -977,28 +971,28 @@ static int das08_pci_attach_common(struct comedi_device *dev,
> #endif
> return das08_common_attach(dev, iobase);
> }
> -#endif
>
> -#if IS_ENABLED(CONFIG_COMEDI_DAS08_PCI)
> static const struct das08_board_struct *
> das08_find_pci_board(struct pci_dev *pdev)
> {
> +#if DO_COMEDI_DRIVER_REGISTER
> unsigned int i;
> for (i = 0; i < ARRAY_SIZE(das08_boards); i++)
> if (das08_boards[i].bustype == pci &&
> pdev->device == das08_boards[i].id)
> return &das08_boards[i];
> +#endif
> return NULL;
> }
> -#endif
>
> -#if IS_ENABLED(CONFIG_COMEDI_DAS08_PCI)
> /* only called in the PCI probe path, via comedi_pci_auto_config() */
> -static int __devinit das08_attach_pci(struct comedi_device *dev,
> - struct pci_dev *pdev)
> +static int __devinit __maybe_unused
> +das08_attach_pci(struct comedi_device *dev, struct pci_dev *pdev)
> {
> int ret;
>
> + if (!IS_ENABLED(CONFIG_COMEDI_DAS08_PCI))
> + return -EINVAL;
> ret = alloc_private(dev, sizeof(struct das08_private_struct));
> if (ret < 0)
> return ret;
> @@ -1010,9 +1004,7 @@ static int __devinit das08_attach_pci(struct comedi_device *dev,
> }
> return das08_pci_attach_common(dev, pdev);
> }
> -#endif
>
> -#if IS_ENABLED(CONFIG_COMEDI_DAS08_PCI)
> static struct pci_dev *das08_find_pci(struct comedi_device *dev,
> int bus, int slot)
> {
> @@ -1063,10 +1055,9 @@ static struct pci_dev *das08_find_pci(struct comedi_device *dev,
> thisboard->name);
> return NULL;
> }
> -#endif
>
> -#ifdef DO_COMEDI_DRIVER_REGISTER
> -static int das08_attach(struct comedi_device *dev, struct comedi_devconfig *it)
> +static int __maybe_unused
> +das08_attach(struct comedi_device *dev, struct comedi_devconfig *it)
> {
> const struct das08_board_struct *thisboard = comedi_board(dev);
> struct das08_private_struct *devpriv;
> @@ -1097,7 +1088,6 @@ static int das08_attach(struct comedi_device *dev, struct comedi_devconfig *it)
> } else
> return -EIO;
> }
> -#endif /* DO_COMEDI_DRIVER_REGISTER */
>
> void das08_common_detach(struct comedi_device *dev)
> {
> @@ -1106,8 +1096,7 @@ void das08_common_detach(struct comedi_device *dev)
> }
> EXPORT_SYMBOL_GPL(das08_common_detach);
>
> -#ifdef DO_COMEDI_DRIVER_REGISTER
> -static void das08_detach(struct comedi_device *dev)
> +static void __maybe_unused das08_detach(struct comedi_device *dev)
> {
> const struct das08_board_struct *thisboard = comedi_board(dev);
> struct das08_private_struct *devpriv = dev->private;
> @@ -1126,16 +1115,13 @@ static void das08_detach(struct comedi_device *dev)
> }
> }
> }
> -#endif /* DO_COMEDI_DRIVER_REGISTER */
>
> -#ifdef DO_COMEDI_DRIVER_REGISTER
> +#if DO_COMEDI_DRIVER_REGISTER
> static struct comedi_driver das08_driver = {
> .driver_name = DRV_NAME,
> .module = THIS_MODULE,
> .attach = das08_attach,
> -#if IS_ENABLED(CONFIG_COMEDI_DAS08_PCI)
> .attach_pci = das08_attach_pci,
> -#endif
> .detach = das08_detach,
> .board_name = &das08_boards[0].name,
> .num_names = sizeof(das08_boards) / sizeof(struct das08_board_struct),
> @@ -1170,7 +1156,7 @@ static struct pci_driver das08_pci_driver = {
> };
> #endif /* CONFIG_COMEDI_DAS08_PCI */
>
> -#ifdef DO_COMEDI_DRIVER_REGISTER
> +#if DO_COMEDI_DRIVER_REGISTER
> #if IS_ENABLED(CONFIG_COMEDI_DAS08_PCI)
> module_comedi_pci_driver(das08_driver, das08_pci_driver);
> #else
--
~Randy
The ad7298 drivers buffer implementation uses the IIO kfifo buffer, so it needs
to select IIO_KFIFO_BUF. Otherwise (if no other driver selects the symbol) the
following linker error will occur:
drivers/built-in.o: In function `ad7298_register_ring_funcs_and_init':
(.text+0x245cf2): undefined reference to `iio_kfifo_allocate'
drivers/built-in.o: In function `ad7298_register_ring_funcs_and_init':
(.text+0x245d7d): undefined reference to `iio_kfifo_free'
drivers/built-in.o: In function `ad7298_ring_cleanup':
(.text+0x245dcd): undefined reference to `iio_kfifo_free'
Signed-off-by: Lars-Peter Clausen <[email protected]>
Reported-by: Randy Dunlap <[email protected]>
---
The patch is only required for 3.5-rc1+. Versions prior to 3.5-rc1 require a
different patch (IIO_SW_RING instead of IIO_KFIFO_BUF) which I'll send to stable
once this patch is in Linus' tree.
---
drivers/staging/iio/adc/Kconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/staging/iio/adc/Kconfig b/drivers/staging/iio/adc/Kconfig
index 2490dd2..8f1b3af 100644
--- a/drivers/staging/iio/adc/Kconfig
+++ b/drivers/staging/iio/adc/Kconfig
@@ -13,6 +13,7 @@ config AD7291
config AD7298
tristate "Analog Devices AD7298 ADC driver"
depends on SPI
+ select IIO_KFIFO_BUF if IIO_BUFFER
help
Say yes here to build support for Analog Devices AD7298
8 Channel ADC with temperature sensor.
--
1.7.10