* linux-next: Tree for May 14 @ 2013-05-14 4:17 Stephen Rothwell 2013-05-14 19:16 ` linux-next: Tree for May 14 (vhost_scsi) Randy Dunlap 0 siblings, 1 reply; 23+ messages in thread From: Stephen Rothwell @ 2013-05-14 4:17 UTC (permalink / raw) To: linux-next; +Cc: linux-kernel [-- Attachment #1: Type: text/plain, Size: 34846 bytes --] Hi all, Changes since 20130513: <crickets :-)> ---------------------------------------------------------------------------- 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, sparc64 and arm 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 225 trees (counting Linus' and 31 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 sfr@canb.auug.org.au $ git checkout master $ git reset --hard stable Merging origin/master (dbbffe6 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net) Merging fixes/master (0279b3c Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip) Merging kbuild-current/rc-fixes (a54292f kbuild: generate generic headers before recursing into scripts) Merging arc-current/for-curr (85a53d1 ARC: [TB10x] Remove redundant abilis,simple-pinctrl mechanism) Merging arm-current/fixes (6eabb33 ARM: 7720/1: ARM v6/v7 cmpxchg64 shouldn't clear upper 32 bits of the old/new value) Merging m68k-current/for-linus (f722406 Linux 3.10-rc1) Merging powerpc-merge/merge (5737789 powerpc: Make hard_irq_disable() do the right thing vs. irq tracing) Merging sparc/master (de9c9f8 Merge tag 'remoteproc-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/remoteproc) Merging net/master (dbbffe6 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net) Merging ipsec/master (da241ef Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net) Merging sound-current/for-linus (f722406 Linux 3.10-rc1) Merging pci-current/for-linus (e253aaf PCI: Delay final fixups until resources are assigned) Merging wireless/master (ccd384b mwifiex: fix setting of multicast filter) Merging driver-core.current/driver-core-linus (9affd6b arm: fix mismerge of arch/arm/mach-omap2/timer.c) Merging tty.current/tty-linus (f722406 Linux 3.10-rc1) Merging usb.current/usb-linus (f722406 Linux 3.10-rc1) Merging staging.current/staging-linus (705a421 staging: nvec: remove inline marking of EXPORT_SYMBOL functions) Merging char-misc.current/char-misc-linus (f722406 Linux 3.10-rc1) Merging input-current/for-linus (f0aacea Input: wacom - add a few new styli for Cintiq series) Merging md-current/for-linus (32f9f57 MD: ignore discard request for hard disks of hybid raid1/raid10 array) Merging audit-current/for-linus (c158a35 audit: no leading space in audit_log_d_path prefix) Merging crypto-current/master (3862de1 crypto: caam - fix job ring cleanup code) Merging ide/master (bf6b438 ide: gayle: use module_platform_driver_probe()) Merging dwmw2/master (5950f08 pcmcia: remove RPX board stuff) Merging sh-current/sh-fixes-for-linus (4403310 SH: Convert out[bwl] macros to inline functions) Merging irqdomain-current/irqdomain/merge (a0d271c Linux 3.6) Merging devicetree-current/devicetree/merge (ab28698 of: define struct device in of_platform.h if !OF_DEVICE and !OF_ADDRESS) Merging spi-current/spi/merge (0d2d0cc spi/davinci: fix module build error) Merging gpio-current/gpio/merge (e97f9b5 gpio/gpio-ich: fix ichx_gpio_check_available() return what callers expect) Merging rr-fixes/fixes (c1be5a5 Linux 3.9) Merging mfd-fixes/master (51a26ae Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net) Merging vfio-fixes/for-linus (904c680 vfio-pci: Fix possible integer overflow) Merging asm-generic/master (fb9de7e xtensa: Use generic asm/mmu.h for nommu) Merging arc/for-next (f722406 Linux 3.10-rc1) Merging arm/for-next (d3db3f7 Merge branch 'fixes' into for-next) Merging arm-perf/for-next/perf (ab87304 Merge branches 'perf/fixes' and 'hw-breakpoint' into for-next/perf) Merging davinci/davinci-next (fe0d422 Linux 3.0-rc6) Merging xilinx/arm-next (64e3fd3 arm: zynq: Add support for pmu) CONFLICT (content): Merge conflict in drivers/clocksource/tegra20_timer.c CONFLICT (content): Merge conflict in drivers/clocksource/Makefile CONFLICT (add/add): Merge conflict in arch/arm/mach-zynq/platsmp.c CONFLICT (content): Merge conflict in arch/arm/mach-vexpress/v2m.c CONFLICT (content): Merge conflict in arch/arm/mach-spear/spear13xx.c CONFLICT (content): Merge conflict in arch/arm/mach-imx/mach-imx6q.c CONFLICT (content): Merge conflict in arch/arm/mach-highbank/highbank.c Merging arm64/upstream (9c413e2 arm64: debug: clear mdscr_el1 instead of taking the OS lock) Merging blackfin/blackfin-linus (5ae89ee bfin cache: dcplb map: add 16M dcplb map for BF60x) Merging c6x/for-linux-next (f934af0 add memory barrier to arch_local_irq_restore) Merging cris/for-next (32ade6a CRIS: Add kvm_para.h which includes generic file) Merging hexagon/linux-next (de44443 HEXAGON: Remove non existent reference to GENERIC_KERNEL_EXECVE & GENERIC_KERNEL_THREAD) Merging ia64/next (797f6a6 Add size restriction to the kdump documentation) Merging m68k/for-next (f722406 Linux 3.10-rc1) Merging m68knommu/for-next (2842e5b0 m68knommu: enable Timer on coldfire 532x) Merging metag/for-next (164c013 metag: defconfigs: increase log buffer 8KiB => 128KiB) Merging microblaze/next (a047775 microblaze: Enable IRQ in arch_cpu_idle) Merging mips/mips-for-linux-next (b22d1b6 Merge branch 'mti-next' of git://git.linux-mips.org/pub/scm/sjhill/linux-sjhill into mips-for-linux-next) Merging openrisc/for-upstream (6af6095 openrisc: remove HAVE_VIRT_TO_BUS) Merging parisc/for-next (6c700d7 [PARISC] hpux: Remove obsolete regs parameter from do_execve() in hpux_execve()) Merging parisc-hd/for-next (c1be5a5 Linux 3.9) Merging powerpc/next (5737789 powerpc: Make hard_irq_disable() do the right thing vs. irq tracing) Merging 4xx/next (2074b1d powerpc: Fix irq distribution) Merging mpc5xxx/next (fdeaf0e powerpc/512x: add ifm ac14xx board) Merging galak/next (9e2ecdb powerpc/fsl-booke: add the reg prop for pci bridge device node for T4/B4) Merging s390/features (617e164 s390: disable pfmf for clear page instruction) Merging sh/sh-latest (37284bd Merge branches 'sh/hw-breakpoints' and 'sh/serial-of' into sh-latest) CONFLICT (content): Merge conflict in arch/sh/kernel/cpu/sh2a/Makefile Merging sparc-next/master (f8ce1fa Merge tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux) Merging tile/master (9fc1894 arch/tile: Fix syscall return value passed to tracepoint) Merging unicore32/unicore32 (c284464 arch/unicore32: remove CONFIG_EXPERIMENTAL) Merging xtensa/for_next (b341d84 xtensa: Switch to asm-generic/linkage.h) Merging btrfs/next (667e7d9 Btrfs: allow superblock mismatch from older mkfs) Merging ceph/testing (b5b09be rbd: fix image request leak on parent read) Merging cifs/for-next (c2b93e0 cifs: only set ops for inodes in I_NEW state) 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 (f6161aa Linux 3.9-rc2) Merging ext3/for_next (e162b2f jbd: use kmem_cache_zalloc instead of kmem_cache_alloc/memset) Merging ext4/dev (e2555fd jbd,jbd2: fix oops in jbd2_journal_put_journal_head()) Merging f2fs/dev (f722406 Linux 3.10-rc1) Merging fuse/for-next (60b9df7 fuse: add flag to turn on async direct IO) Merging gfs2/master (4d61eb6 GFS2: Sort buffer lists by inplace block number) Merging jfs/jfs-next (73aaa22 jfs: fix a couple races) Merging logfs/master (3394661 Fix the call to BUG() caused by no free segment found) Merging nfs/linux-next (f722406 Linux 3.10-rc1) Merging nfsd/nfsd-next (4bdc33e NFSDv4.2: Add NFS v4.2 support to the NFS server) Merging ocfs2/linux-next (4538df6 ocfs2: Don't spam on -EDQUOT.) 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 (c1be5a5 Linux 3.9) Merging ubifs/linux-next (c1be5a5 Linux 3.9) Merging xfs/for-next (7dfbcbe xfs: fallback to vmalloc for large buffers in xfs_compat_attrlist_by_handle) Merging vfs/for-next (ac3e3c5 don't bother with deferred freeing of fdtables) Merging pci/next (d4f09c5 Merge branch 'pci/gavin-msi-cleanup' into next) Merging hid/for-next (46b1897 Merge branch 'for-3.10/hid-debug' into for-next) Merging i2c/i2c/for-next (f722406 Linux 3.10-rc1) Merging jdelvare-hwmon/master (1aaf6d3 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net) Merging hwmon-staging/hwmon-next (4fd72d8 hwmon: w83627ehf: Remove redundant platform_set_drvdata()) Merging v4l-dvb/master (1d62caa Merge /home/v4l/v4l/patchwork) Merging kbuild/for-next (abc88a2 Merge branch 'kbuild/kbuild' into kbuild/for-next) Merging kconfig/for-next (4eae518 localmodconfig: Fix localyesconfig to set to 'y' not 'm') Merging libata/for-next (3d9b935 libata: change maintainer) Merging infiniband/for-next (f1258ea Merge branches 'misc' and 'mlx4' into for-next) Merging pstore/master (bd08ec3 pstore/ram: Restore ecc information block) Merging pm/linux-next (990422b Merge branch 'pm-fixes-next' into linux-next) Merging idle/next (5c99726b Merge branch 'fspin' into next) Merging apm/for-next (fb9d78a Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/apm) Merging cpuidle/cpuidle-next (817c876 Merge branch 'pm-fixes-next' into fixes-next) CONFLICT (content): Merge conflict in drivers/base/power/qos.c Merging cpupowerutils/master (f166033 cpupower tools: add install target to the debug tools' makefiles) Merging thermal/next (de6558d Merge branch 'MAINTAINERS-update' of .git into next) Merging ieee1394/for-next (6fe9efb firewire: ohci: dump_stack() for PHY regs read/write failures) Merging ubi/linux-next (f6161aa Linux 3.9-rc2) Merging dlm/next (9000831 dlm: avoid unnecessary posix unlock) Merging swiotlb/linux-next (af51a9f swiotlb: Do not export swiotlb_bounce since there are no external consumers) Merging scsi/for-next (222ab59 [SCSI] ipr: Avoid target_destroy accessing memory after it was freed) Merging target-updates/for-next (04b59ba tcm_vhost: Enable VIRTIO_SCSI_F_HOTPLUG) Merging target-merge/for-next-merge (b8d26b3 iser-target: Add iSCSI Extensions for RDMA (iSER) target driver) Merging ibft/linux-next (935a9fe ibft: Fix finding IBFT ACPI table on UEFI) Merging isci/all (6734092 isci: add a couple __iomem annotations) Merging slave-dma/next (f722406 Linux 3.10-rc1) Merging dmaengine/next (41ef2d5 Linux 3.9-rc7) Merging net-next/master (dbbffe6 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net) Merging ipsec-next/master (05600a7 xfrm_user: constify netlink dispatch table) Merging wireless-next/master (de9c9f8 Merge tag 'remoteproc-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/remoteproc) Merging bluetooth/master (26b5afc Bluetooth: Mgmt Device Found Event) Merging mtd/master (a637b0d Merge tag 'for-linus-20130509' of git://git.infradead.org/linux-mtd) Merging l2-mtd/master (7278046 mtd: Convert logging messages) Merging crypto/master (3862de1 crypto: caam - fix job ring cleanup code) Merging drm/drm-next (9f1d036 drm/mgag200: Fix framebuffer base address programming) Merging drm-intel/for-linux-next (1ffc528 drm/i915: clear the stolen fb before resuming) Merging sound/for-next (f722406 Linux 3.10-rc1) Merging sound-asoc/for-next (35168a9 Merge remote-tracking branch 'asoc/topic/x86' into asoc-next) Merging modules/modules-next (a53a11f3 modpost: fix unwanted VMLINUX_SYMBOL_STR expansion) Merging virtio/virtio-next (01d779a caif_virtio: Remove bouncing email addresses) Merging input/next (d520145 Input: w90p910_keypad - remove redundant platform_set_drvdata()) Merging input-mt/for-next (194664e Input: MT - handle semi-mt devices in core) Merging cgroup/for-next (2a0010a cpuset: fix compile warning when CONFIG_SMP=n) Merging block/for-next (410fa26 Merge branch 'for-3.10/drivers' into for-next) Merging device-mapper/master (f722406 Linux 3.10-rc1) 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 (f722406 Linux 3.10-rc1) Merging kgdb/kgdb-next (6bedf31 kdb: Remove unhandled ssb command) Merging slab/for-next (8a965b3 mm, slab_common: Fix bootstrap creation of kmalloc caches) Merging uclinux/for-next (6dbe51c Linux 3.9-rc1) Merging md/for-next (ae59b84 dm-raid: silence compiler warning on rebuilds_per_group.) Merging mfd/master (d7ab730 Merge tag 'mfd-3.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-next) Merging battery/master (237a1b0 lp8788-charger: Fix kconfig dependency) Merging fbdev/fbdev-next (a49f0d1 Linux 3.8-rc1) Merging viafb/viafb-next (838ac78 viafb: avoid refresh and mode lookup in set_par) Merging omap_dss2/for-next (e72b753 fbdev/ps3fb: fix compile warning) Merging regulator/for-next (0eeca66 Merge remote-tracking branch 'regulator/topic/isl6271a' into regulator-next) Merging security/next (4726e8f security: clarify cap_inode_getsecctx description) Merging selinux/master (c2d7b24 Merge tag 'v3.4' into 20120409) Merging lblnet/master (7e27d6e Linux 2.6.35-rc3) Merging watchdog/master (f722406 Linux 3.10-rc1) Merging dwmw2-iommu/master (6491d4d intel-iommu: Free old page tables before creating superpage) Merging iommu/next (0c4513b Merge branches 'iommu/fixes', 'x86/vt-d', 'x86/amd', 'ppc/pamu', 'core' and 'arm/tegra' into next) Merging vfio/next (664e938 vfio: Set container device mode) Merging osd/linux-next (861d666 exofs: don't leak io_state and pages on read error) Merging jc_docs/docs-next (5c050fb docs: update the development process document) Merging trivial/for-next (071361d mm: Convert print_symbol to %pSR) Merging audit/for-next (dcd6c92 Linux 3.3-rc1) Merging fsnotify/for-next (1ca39ab inotify: automatically restart syscalls) Merging edac/linux_next (de4772c edac: sb_edac.c should not require prescence of IMC_DDRIO device) Merging edac-amd/for-next (9713fae EDAC: Merge mci.mem_is_per_rank with mci.csbased) Merging devicetree/devicetree/next (3132f62 Merge branch 'for-next' of git://sources.calxeda.com/kernel/linux into HEAD) Merging dt-rh/for-next (a2b9ea7 Documentation/devicetree: make semantic of initrd-end more explicit) Merging spi/spi/next (00ab539 spi/s3c64xx: let device core setup the default pin configuration) Merging spi-mb/for-next (760a8c4 Merge remote-tracking branch 'spi/topic/sirf' into spi-next) Merging tip/auto-latest (57e87c1 Merge branch 'timers/urgent') Merging ftrace/for-next (4c69e6e tracepoints: Prevent null probe from being added) Merging rcu/rcu/next (a9be854 Merge commit '6d87669357936bffa1e8fea7a4e7743e76905736' into next.2013.10.22a) 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 kvm/linux-next (f722406 Linux 3.10-rc1) Merging kvm-arm/kvm-arm-next (b8022d7 arm: kvm: arch_timer: use symbolic constants) CONFLICT (content): Merge conflict in arch/arm/kvm/arm.c CONFLICT (content): Merge conflict in arch/arm/include/asm/kvm_host.h Merging kvm-ppc/kvm-ppc-next (5975a2e KVM: PPC: Book3S: Add API for in-kernel XICS emulation) Merging oprofile/for-next (f722406 Linux 3.10-rc1) Merging fw-nohz/nohz/next (74876a9 printk: Wake up klogd using irq_work) 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 (f722406 Linux 3.10-rc1) Merging xen-arm/linux-next (3cc8e40 xen/arm: rename xen_secondary_init and run it on every online cpu) Merging percpu/for-next (a1b2a55 percpu: add documentation on this_cpu operations) Merging workqueues/for-next (d325185 workqueue: workqueue_congested() shouldn't translate WORK_CPU_UNBOUND into node number) Merging drivers-x86/linux-next (a1ec56e Add support for fan button on Ideapad Z580) 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 (0c62677 Merge remote-tracking branch 'regmap/topic/debugfs' into regmap-next) Merging hsi/for-next (43139a6 HSI: hsi_char: Update ioctl-number.txt) Merging leds/for-next (5abef69 leds: lp5562: Properly setup of_device_id table) Merging driver-core/driver-core-next (9affd6b arm: fix mismerge of arch/arm/mach-omap2/timer.c) Merging tty/tty-next (f722406 Linux 3.10-rc1) Merging usb/usb-next (f722406 Linux 3.10-rc1) Merging usb-gadget/next (added5f ARM: mxs_defconfig: add CONFIG_USB_PHY) Merging staging/staging-next (2339b79 staging: vt6656: remove unused definitions) Merging char-misc/char-misc-next (f722406 Linux 3.10-rc1) Merging bcon/master (e284f34 netconsole: s/syslogd/cancd/ in documentation) CONFLICT (content): Merge conflict in drivers/block/Kconfig Merging tmem/linux-next (8f0d816 Linux 3.7-rc3) Merging writeback/writeback-for-next (ed84825 Negative (setpoint-dirty) in bdi_position_ratio()) 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 (f722406 Linux 3.10-rc1) Merging vhost/linux-next (0107b9b x86: uaccess s/might_sleep/might_fault/) CONFLICT (content): Merge conflict in drivers/vhost/test.c Merging memblock/memblock-kill-early_node_map (7bd0b0f memblock: Reimplement memblock allocation using reverse free area iterator) Merging remoteproc/for-next (b977785 remoteproc: fix kconfig dependencies for VIRTIO) Merging rpmsg/for-next (397944d rpmsg: fix kconfig dependencies for VIRTIO) Merging irqdomain/irqdomain/next (560aa53 irqdomain: document the simple domain first_irq) Merging gpio/gpio/next (08ffb22 gpio: grgpio: Add irq support) Merging gpio-lw/for-next (352a2d5 gpio/omap: ensure gpio context is initialised) Merging gen-gpio/for_next (f4c5405 gpio: update gpio Chinese documentation) Merging mailbox/dbx500-prcmu-mailbox (c497eba mailbox: fix invalid use of sizeof in mailbox_msg_send()) Merging arm-soc/for-next (a0cdbee Merge branch 'fixes' into for-next) Merging bcm2835/for-next (31880c3 Linux 3.9-rc6) Merging cortex/for-next (4477ca4 ARM: ARMv7-M: Allow the building of new kernel port) Merging ep93xx/ep93xx-for-next (7ec4429 Merge branch 'ep93xx-fixes' into ep93xx-for-next) Merging imx-mxs/for-next (4a09469 Merge branch 'mxs/dt' into for-next) Merging ixp4xx/next (19f949f Linux 3.8) Merging msm/for-next (1df357a Merge branch 'msm-defconfig' into for-next) Merging renesas/next (08c89ad Merge branch 'heads/soc-sh73a0' into next) CONFLICT (content): Merge conflict in drivers/pinctrl/sh-pfc/Kconfig CONFLICT (modify/delete): drivers/leds/leds-renesas-tpu.c deleted in renesas/next and modified in HEAD. Version HEAD of drivers/leds/leds-renesas-tpu.c left in tree. CONFLICT (content): Merge conflict in drivers/leds/Kconfig CONFLICT (content): Merge conflict in arch/arm/mach-shmobile/setup-r8a7740.c CONFLICT (content): Merge conflict in arch/arm/mach-shmobile/board-bockw.c CONFLICT (content): Merge conflict in arch/arm/mach-shmobile/board-armadillo800eva.c $ git rm -f drivers/leds/leds-renesas-tpu.c Merging samsung/for-next (f722406 Linux 3.10-rc1) Merging tegra/for-next (c1be5a5 Linux 3.9) Merging dma-mapping/dma-mapping-next (c1be5a5 Linux 3.9) Merging pwm/for-next (affb923 pwm: lpc32xx: Don't change PWM_ENABLE bit in lpc32xx_pwm_config) Merging dma-buf/for-next (b89e356 dma-buf: Add debugfs support) Merging userns/for-next (78008c4 proc: Restrict mounting the proc filesystem) Merging ktest/for-next (df5f7c6 ktest: Reset grub menu cache with different machines) Merging signal/for-next (20b4fb4 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs) Merging clk/clk-next (1e43525 clk: add clk_ignore_unused option to keep boot clocks on) Merging random/dev (b980955 random: fix locking dependency with the tasklist_lock) Merging lzo-update/lzo-update (42b775a lib/lzo: huge LZO decompression speedup on ARM by using unaligned access) Merging scsi-post-merge/merge-base:master (65112dc Merge git://git.samba.org/sfrench/cifs-2.6) Merging akpm-current/current (e0fd9af Merge tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband) $ git checkout -b akpm remotes/origin/akpm/master Applying: drivers/block/xsysace.c: fix id with missing port-number Applying: rapidio: make enumeration/discovery configurable Applying: rapidio: add enumeration/discovery start from user space Applying: rapidio: documentation update for enumeration changes Applying: fat: fix possible overflow for fat_clusters Applying: wait: fix false timeouts when using wait_event_timeout() Applying: mm: mmu_notifier: re-fix freed page still mapped in secondary MMU Applying: mm-mmu_notifier-re-fix-freed-page-still-mapped-in-secondary-mmu-fix Applying: ocfs2: unlock rw lock if inode lock failed Applying: drivers/video: implement a simple framebuffer driver Applying: mm: memcg: remove incorrect VM_BUG_ON for swap cache pages in uncharge Applying: hfs: avoid crash in hfs_bnode_create Applying: CPU hotplug: provide a generic helper to disable/enable CPU hotplug Applying: cpu-hotplug-provide-a-generic-helper-to-disable-enable-cpu-hotplug-fix Applying: cpu-hotplug-provide-a-generic-helper-to-disable-enable-cpu-hotplug-fix-fix Applying: reboot: rigrate shutdown/reboot to boot cpu Applying: shm-fix-null-pointer-deref-when-userspace-specifies-invalid-hugepage-size-fix Applying: rapidio/tsi721: fix bug in MSI interrupt handling Applying: mm compaction: fix of improper cache flush in migration code Applying: kernel/audit_tree.c:audit_add_tree_rule(): protect `rule' from kill_rules() Applying: ipcsem-fix-semctl-getzcnt-fix Applying: ipcsem-fix-semctl-getncnt-fix Applying: MAINTAINERS: update Hyper-V file list Applying: kmsg: honor dmesg_restrict sysctl on /dev/kmsg Applying: kmsg-honor-dmesg_restrict-sysctl-on-dev-kmsg-fix Applying: drivers/char/random.c: fix priming of last_data Applying: random: fix accounting race condition with lockless irq entropy_count update Applying: x86: mm: add missing comments for initial kernel direct mapping Applying: sound/soc/codecs/si476x.c: don't use 0bNNN Applying: x86: make 'mem=' option to work for efi platform Applying: audit: fix mq_open and mq_unlink to add the MQ root as a hidden parent audit_names record Applying: drm/fb-helper: don't sleep for screen unblank when an oops is in progress Applying: cyber2000fb: avoid palette corruption at higher clocks Applying: posix_cpu_timer: consolidate expiry time type Applying: posix_cpu_timers: consolidate timer list cleanups Applying: posix_cpu_timers: consolidate expired timers check Applying: selftests: add basic posix timers selftests Applying: posix-timers: correctly get dying task time sample in posix_cpu_timer_schedule() Applying: posix_timers: Fix racy timer delta caching on task exit Applying: drivers/infiniband/core/cm.c: convert to using idr_alloc_cyclic() Applying: configfs: use capped length for ->store_attribute() Applying: ipvs: change type of netns_ipvs->sysctl_sync_qlen_max Applying: lockdep: introduce lock_acquire_exclusive/shared helper macros Applying: lglock: update lockdep annotations to report recursive local locks Applying: block: restore /proc/partitions to not display non-partitionable removable devices Applying: watchdog: trigger all-cpu backtrace when locked up and going to panic Applying: clear_refs: sanitize accepted commands declaration Applying: clear_refs: introduce private struct for mm_walk Applying: pagemap: introduce pagemap_entry_t without pmshift bits Applying: pagemap-introduce-pagemap_entry_t-without-pmshift-bits-v4 Applying: mm: soft-dirty bits for user memory changes tracking Applying: pagemap: prepare to reuse constant bits with page-shift Applying: mm/thp: use the correct function when updating access flags Applying: mm, memcg: don't take task_lock in task_in_mem_cgroup Applying: mm: remove free_area_cache Applying: mm: remove compressed copy from zram in-memory Applying: mm-remove-compressed-copy-from-zram-in-memory-fix Applying: mm/page_alloc.c: fix watermark check in __zone_watermark_ok() Applying: include/linux/mmzone.h: cleanups Applying: include-linux-mmzoneh-cleanups-fix Applying: mm: memmap_init_zone() performance improvement Applying: drop_caches: add some documentation and info message Applying: drivers/usb/gadget/amd5536udc.c: avoid calling dma_pool_create() with NULL dev Applying: mm/dmapool.c: fix null dev in dma_pool_create() Applying: memcg: debugging facility to access dangling memcgs Applying: memcg-debugging-facility-to-access-dangling-memcgs-fix Applying: mm: add vm event counters for balloon pages compaction Applying: err.h: IS_ERR() can accept __user pointers Applying: dump_stack: serialize the output from dump_stack() Applying: dump_stack-serialize-the-output-from-dump_stack-fix Applying: panic: add cpu/pid to warn_slowpath_common in WARNING printk()s Applying: panic-add-cpu-pid-to-warn_slowpath_common-in-warning-printks-fix Applying: smp: Give WARN()ing when calling smp_call_function_many()/single() in serving irq Applying: backlight: atmel-pwm-bl: remove unnecessary platform_set_drvdata() Applying: backlight: ep93xx: remove unnecessary platform_set_drvdata() Applying: backlight: lp8788: remove unnecessary platform_set_drvdata() Applying: backlight: pcf50633: remove unnecessary platform_set_drvdata() Applying: drivers/leds/leds-ot200.c: fix error caused by shifted mask Applying: lib/bitmap.c: speed up bitmap_find_free_region Applying: lib-bitmapc-speed-up-bitmap_find_free_region-fix Applying: binfmt_elf.c: use get_random_int() to fix entropy depleting Applying: init: remove permanent string buffer from do_one_initcall() Applying: autofs4: allow autofs to work outside the initial PID namespace Applying: autofs4: translate pids to the right namespace for the daemon Applying: rtc: rtc-88pm80x: remove unnecessary platform_set_drvdata() Applying: drivers/rtc/rtc-v3020.c: remove redundant goto Applying: drivers/rtc/interface.c: fix checkpatch errors Applying: drivers/rtc/rtc-at32ap700x.c: fix checkpatch error Applying: drivers/rtc/rtc-at91rm9200.c: include <linux/uaccess.h> Applying: drivers/rtc/rtc-cmos.c: fix whitespace related errors Applying: drivers/rtc/rtc-davinci.c: fix whitespace warning Applying: drivers/rtc/rtc-ds1305.c: add missing braces around sizeof Applying: drivers/rtc/rtc-ds1374.c: fix spacing related issues Applying: drivers/rtc/rtc-ds1511.c: fix issues related to spaces and braces Applying: drivers/rtc/rtc-ds3234.c: fix whitespace issue Applying: drivers/rtc/rtc-fm3130.c: fix whitespace related issue Applying: drivers/rtc/rtc-m41t80.c: fix spacing related issue Applying: drivers/rtc/rtc-max6902.c: remove unwanted spaces Applying: drivers/rtc/rtc-max77686.c: remove space before semicolon Applying: drivers/rtc/rtc-max8997.c: remove space before semicolon Applying: drivers/rtc/rtc-mpc5121.c: remove space before tab Applying: drivers/rtc/rtc-msm6242.c: use pr_warn Applying: drivers/rtc/rtc-mxc.c: fix checkpatch error Applying: drivers/rtc/rtc-omap.c: include <linux/io.h> instead of <asm/io.h> Applying: drivers/rtc/rtc-pcf2123.c: remove space before tabs Applying: drivers/rtc/rtc-pcf8583.c: move assignment outside if condition Applying: drivers/rtc/rtc-rs5c313.c: include <linux/io.h> instead of <asm/io.h> Applying: drivers/rtc/rtc-rs5c313.c: fix spacing related issues Applying: drivers/rtc/rtc-v3020.c: fix spacing issues Applying: drivers/rtc/rtc-vr41xx.c: fix spacing issues Applying: drivers/rtc/rtc-x1205.c: fix checkpatch issues Applying: rtc: rtc-88pm860x: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-ab3100: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-ab8500: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-at32ap700x: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-at91rm9200: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-at91sam9: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-au1xxx: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-bfin: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-bq4802: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-coh901331: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-da9052: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-da9055: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-davinci: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-dm355evm: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-ds1302: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-ep93xx: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-jz4740: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-lp8788: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-lpc32xx: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-ls1x: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-m48t59: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-max8925: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-max8998: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-mc13xxx: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-msm6242: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-mxc: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-nuc900: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-pcap: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-pm8xxx: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-s3c: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-sa1100: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-sh: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-spear: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-stmp3xxx: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-twl: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-vr41xx: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-vt8500: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-m48t86: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-puv3: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-rp5c01: remove unnecessary platform_set_drvdata() Applying: rtc: rtc-tile: remove unnecessary platform_set_drvdata() Applying: reiserfs: fix deadlock with nfs racing on create/lookup Applying: fat: additions to support fat_fallocate Applying: fat-additions-to-support-fat_fallocate-fix Applying: idr: print a stack dump after ida_remove warning Applying: idr-print-a-stack-dump-after-ida_remove-warning-fix Applying: mwave: fix info leak in mwave_ioctl() Applying: rapidio/switches: remove tsi500 driver Applying: drivers/parport/share.c: use kzalloc Applying: drivers/w1/slaves/w1_ds2408.c: add magic sequence to disable P0 test mode Applying: drivers-w1-slaves-w1_ds2408c-add-magic-sequence-to-disable-p0-test-mode-fix Applying: relay: fix timer madness Applying: aio: reqs_active -> reqs_available Applying: aio: percpu reqs_available Applying: generic dynamic per cpu refcounting Applying: aio: percpu ioctx refcount Applying: aio: use xchg() instead of completion_lock Applying: block: prep work for batch completion Applying: block-prep-work-for-batch-completion-fix-2 Applying: block-prep-work-for-batch-completion-fix-3 Applying: block-prep-work-for-batch-completion-fix-3-fix Applying: block-prep-work-for-batch-completion-fix-99 Applying: block-aio-batch-completion-for-bios-kiocbs-fix Applying: block, aio: batch completion for bios/kiocbs Applying: virtio-blk: convert to batch completion Applying: mtip32xx: convert to batch completion Applying: aio: fix kioctx not being freed after cancellation at exit time Applying: lib: add weak clz/ctz functions Applying: decompressor: add LZ4 decompressor module Applying: lib: add support for LZ4-compressed kernel Applying: kbuild: fix for updated LZ4 tool with the new streaming format Applying: arm: add support for LZ4-compressed kernel Applying: arm: Remove enforced Os flag for LZ4 decompressor Applying: x86: add support for LZ4-compressed kernel Applying: x86, doc: Add LZ4 magic number for the new compression Applying: lib: add lz4 compressor module Applying: lib-add-lz4-compressor-module-fix Applying: crypto: add lz4 Cryptographic API Applying: crypto-add-lz4-cryptographic-api-fix Applying: scripts/sortextable.c: fix building on non-Linux systems Applying: seccomp: add generic code for jitted seccomp filters. Applying: ARM: net: bpf_jit: make code generation less dependent on struct sk_filter. Applying: ARM: bpf_jit: seccomp filtering: fixup merge conflict Applying: ARM: net: bpf_jit: add support for jitted seccomp filters. Applying: bpf: add comments explaining the schedule_work() operation Merging akpm/master (c4918a7 bpf: add comments explaining the schedule_work() operation) [-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: linux-next: Tree for May 14 (vhost_scsi) 2013-05-14 4:17 linux-next: Tree for May 14 Stephen Rothwell @ 2013-05-14 19:16 ` Randy Dunlap 2013-05-14 23:55 ` Stephen Rothwell 0 siblings, 1 reply; 23+ messages in thread From: Randy Dunlap @ 2013-05-14 19:16 UTC (permalink / raw) To: Stephen Rothwell Cc: linux-next, linux-kernel, Nicholas A. Bellinger, virtualization On 05/13/13 21:17, Stephen Rothwell wrote: > Hi all, > > Changes since 20130513: > > <crickets :-)> on x86_64: ERROR: "memcpy_fromiovec" [drivers/vhost/vhost_scsi.ko] undefined! It needs to depend on NET since net/core/ provides that function. -- ~Randy ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: linux-next: Tree for May 14 (vhost_scsi) 2013-05-14 19:16 ` linux-next: Tree for May 14 (vhost_scsi) Randy Dunlap @ 2013-05-14 23:55 ` Stephen Rothwell 2013-05-15 0:59 ` [PATCH] vhost-scsi: Depend on NET for memcpy_fromiovec Asias He 0 siblings, 1 reply; 23+ messages in thread From: Stephen Rothwell @ 2013-05-14 23:55 UTC (permalink / raw) To: Randy Dunlap Cc: linux-next, linux-kernel, Nicholas A. Bellinger, virtualization, Michael S. Tsirkin [-- Attachment #1: Type: text/plain, Size: 369 bytes --] [Adding Michael to cc] On Tue, 14 May 2013 12:16:20 -0700 Randy Dunlap <rdunlap@infradead.org> wrote: > > on x86_64: > > ERROR: "memcpy_fromiovec" [drivers/vhost/vhost_scsi.ko] undefined! > > > It needs to depend on NET since net/core/ provides that function. > > -- > ~Randy -- Cheers, Stephen Rothwell sfr@canb.auug.org.au [-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* [PATCH] vhost-scsi: Depend on NET for memcpy_fromiovec 2013-05-14 23:55 ` Stephen Rothwell @ 2013-05-15 0:59 ` Asias He 2013-05-15 3:10 ` Nicholas A. Bellinger 2013-05-15 5:17 ` Rusty Russell 0 siblings, 2 replies; 23+ messages in thread From: Asias He @ 2013-05-15 0:59 UTC (permalink / raw) To: Michael S. Tsirkin Cc: Stephen Rothwell, Randy Dunlap, kvm, linux-kernel, virtualization, target-devel, linux-next scsi.c includes vhost.c which uses memcpy_fromiovec. This patch fixes this build failure. From Randy Dunlap: ''' on x86_64: ERROR: "memcpy_fromiovec" [drivers/vhost/vhost_scsi.ko] undefined! It needs to depend on NET since net/core/ provides that function. ''' Reported-by: Randy Dunlap <rdunlap@infradead.org> Signed-off-by: Asias He <asias@redhat.com> --- drivers/vhost/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/vhost/Kconfig b/drivers/vhost/Kconfig index 8b9226d..0403323 100644 --- a/drivers/vhost/Kconfig +++ b/drivers/vhost/Kconfig @@ -12,7 +12,7 @@ config VHOST_NET config VHOST_SCSI tristate "VHOST_SCSI TCM fabric driver" - depends on TARGET_CORE && EVENTFD && m + depends on NET && TARGET_CORE && EVENTFD && m select VHOST_RING default n ---help--- -- 1.8.1.4 ^ permalink raw reply related [flat|nested] 23+ messages in thread
* Re: [PATCH] vhost-scsi: Depend on NET for memcpy_fromiovec 2013-05-15 0:59 ` [PATCH] vhost-scsi: Depend on NET for memcpy_fromiovec Asias He @ 2013-05-15 3:10 ` Nicholas A. Bellinger 2013-05-15 3:44 ` Asias He 2013-05-15 5:17 ` Rusty Russell 1 sibling, 1 reply; 23+ messages in thread From: Nicholas A. Bellinger @ 2013-05-15 3:10 UTC (permalink / raw) To: Asias He Cc: Michael S. Tsirkin, Rusty Russell, kvm, virtualization, target-devel, Stephen Rothwell, Randy Dunlap, linux-next, linux-kernel On Wed, 2013-05-15 at 08:59 +0800, Asias He wrote: > scsi.c includes vhost.c which uses memcpy_fromiovec. > > This patch fixes this build failure. > > From Randy Dunlap: > ''' > on x86_64: > > ERROR: "memcpy_fromiovec" [drivers/vhost/vhost_scsi.ko] undefined! > > It needs to depend on NET since net/core/ provides that function. > ''' > > Reported-by: Randy Dunlap <rdunlap@infradead.org> > Signed-off-by: Asias He <asias@redhat.com> Hey Asias & MST, FYI, I'll be sending a PULL request to Linus in the next couple of days for -rc2. Let me know if you'd like this to be picked up. --nab > --- > drivers/vhost/Kconfig | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/vhost/Kconfig b/drivers/vhost/Kconfig > index 8b9226d..0403323 100644 > --- a/drivers/vhost/Kconfig > +++ b/drivers/vhost/Kconfig > @@ -12,7 +12,7 @@ config VHOST_NET > > config VHOST_SCSI > tristate "VHOST_SCSI TCM fabric driver" > - depends on TARGET_CORE && EVENTFD && m > + depends on NET && TARGET_CORE && EVENTFD && m > select VHOST_RING > default n > ---help--- ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] vhost-scsi: Depend on NET for memcpy_fromiovec 2013-05-15 3:10 ` Nicholas A. Bellinger @ 2013-05-15 3:44 ` Asias He 0 siblings, 0 replies; 23+ messages in thread From: Asias He @ 2013-05-15 3:44 UTC (permalink / raw) To: Nicholas A. Bellinger Cc: Stephen Rothwell, Randy Dunlap, kvm, Michael S. Tsirkin, linux-kernel, virtualization, target-devel, linux-next On Tue, May 14, 2013 at 08:10:20PM -0700, Nicholas A. Bellinger wrote: > On Wed, 2013-05-15 at 08:59 +0800, Asias He wrote: > > scsi.c includes vhost.c which uses memcpy_fromiovec. > > > > This patch fixes this build failure. > > > > From Randy Dunlap: > > ''' > > on x86_64: > > > > ERROR: "memcpy_fromiovec" [drivers/vhost/vhost_scsi.ko] undefined! > > > > It needs to depend on NET since net/core/ provides that function. > > ''' > > > > Reported-by: Randy Dunlap <rdunlap@infradead.org> > > Signed-off-by: Asias He <asias@redhat.com> > > Hey Asias & MST, > > FYI, I'll be sending a PULL request to Linus in the next couple of days > for -rc2. > > Let me know if you'd like this to be picked up. Yes, this is 3.10 material. Sounds good to me. > --nab > > > --- > > drivers/vhost/Kconfig | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/vhost/Kconfig b/drivers/vhost/Kconfig > > index 8b9226d..0403323 100644 > > --- a/drivers/vhost/Kconfig > > +++ b/drivers/vhost/Kconfig > > @@ -12,7 +12,7 @@ config VHOST_NET > > > > config VHOST_SCSI > > tristate "VHOST_SCSI TCM fabric driver" > > - depends on TARGET_CORE && EVENTFD && m > > + depends on NET && TARGET_CORE && EVENTFD && m > > select VHOST_RING > > default n > > ---help--- > > -- Asias ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] vhost-scsi: Depend on NET for memcpy_fromiovec 2013-05-15 0:59 ` [PATCH] vhost-scsi: Depend on NET for memcpy_fromiovec Asias He 2013-05-15 3:10 ` Nicholas A. Bellinger @ 2013-05-15 5:17 ` Rusty Russell 2013-05-15 22:37 ` Nicholas A. Bellinger 2013-05-16 2:08 ` Asias He 1 sibling, 2 replies; 23+ messages in thread From: Rusty Russell @ 2013-05-15 5:17 UTC (permalink / raw) To: Michael S. Tsirkin Cc: Nicholas Bellinger, kvm, virtualization, target-devel, Asias He, Stephen Rothwell, Randy Dunlap, linux-next, linux-kernel, netdev Asias He <asias@redhat.com> writes: > scsi.c includes vhost.c which uses memcpy_fromiovec. > > This patch fixes this build failure. > > From Randy Dunlap: > ''' > on x86_64: > > ERROR: "memcpy_fromiovec" [drivers/vhost/vhost_scsi.ko] undefined! > > It needs to depend on NET since net/core/ provides that function. > ''' Proper fix please. Though I can't see why you thought this was a good idea. Nonetheless, I shan't highlight why: I have far too much respect for your intellects and abilities. No, don't thank me! Rusty. ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] vhost-scsi: Depend on NET for memcpy_fromiovec 2013-05-15 5:17 ` Rusty Russell @ 2013-05-15 22:37 ` Nicholas A. Bellinger 2013-05-15 23:35 ` Rusty Russell ` (2 more replies) 2013-05-16 2:08 ` Asias He 1 sibling, 3 replies; 23+ messages in thread From: Nicholas A. Bellinger @ 2013-05-15 22:37 UTC (permalink / raw) To: Rusty Russell Cc: Stephen Rothwell, kvm, Michael S. Tsirkin, netdev, Randy Dunlap, linux-kernel, virtualization, target-devel, linux-next On Wed, 2013-05-15 at 14:47 +0930, Rusty Russell wrote: > Asias He <asias@redhat.com> writes: > > scsi.c includes vhost.c which uses memcpy_fromiovec. > > > > This patch fixes this build failure. > > > > From Randy Dunlap: > > ''' > > on x86_64: > > > > ERROR: "memcpy_fromiovec" [drivers/vhost/vhost_scsi.ko] undefined! > > > > It needs to depend on NET since net/core/ provides that function. > > ''' > > Proper fix please. > > Though I can't see why you thought this was a good idea. Nonetheless, I > shan't highlight why: I have far too much respect for your intellects > and abilities. > > No, don't thank me! Hi Rusty & Asias, I assume you mean something like the following patch to allow kbuild to work when VHOST_NET + VHOST_SCSI are both enabled and sharing vhost.o, yes..? Also included is dropping the now unnecessary vhost.c include, and allowing vhost_work_flush() to be accessed externally as scsi.c currently requires. MST, care to pick this up..? --nab diff --git a/drivers/vhost/Kconfig b/drivers/vhost/Kconfig index 8b9226d..016387f 100644 --- a/drivers/vhost/Kconfig +++ b/drivers/vhost/Kconfig @@ -1,3 +1,6 @@ +config VHOST + tristate + config VHOST_NET tristate "Host kernel accelerator for virtio net" depends on NET && EVENTFD && (TUN || !TUN) && (MACVTAP || !MACVTAP) @@ -12,7 +15,7 @@ config VHOST_NET config VHOST_SCSI tristate "VHOST_SCSI TCM fabric driver" - depends on TARGET_CORE && EVENTFD && m + depends on NET && EVENTFD && TARGET_CORE select VHOST_RING default n ---help--- diff --git a/drivers/vhost/Makefile b/drivers/vhost/Makefile index 654e9afb..e5b5f0b 100644 --- a/drivers/vhost/Makefile +++ b/drivers/vhost/Makefile @@ -1,7 +1,9 @@ +obj-$(CONFIG_VHOST) += vhost.o + obj-$(CONFIG_VHOST_NET) += vhost_net.o -vhost_net-y := vhost.o net.o +vhost_net-objs := net.o obj-$(CONFIG_VHOST_SCSI) += vhost_scsi.o -vhost_scsi-y := scsi.o +vhost_scsi-objs := scsi.o obj-$(CONFIG_VHOST_RING) += vringh.o diff --git a/drivers/vhost/scsi.c b/drivers/vhost/scsi.c index 7014202..b5836a2 100644 --- a/drivers/vhost/scsi.c +++ b/drivers/vhost/scsi.c @@ -49,7 +49,6 @@ #include <linux/llist.h> #include <linux/bitmap.h> -#include "vhost.c" #include "vhost.h" #define TCM_VHOST_VERSION "v0.1" diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c index beee7f5..8cd1562 100644 --- a/drivers/vhost/vhost.c +++ b/drivers/vhost/vhost.c @@ -123,7 +123,7 @@ static bool vhost_work_seq_done(struct vhost_dev *dev, struct vhost_work *work, return left <= 0; } -static void vhost_work_flush(struct vhost_dev *dev, struct vhost_work *work) +void vhost_work_flush(struct vhost_dev *dev, struct vhost_work *work) { unsigned seq; int flushing; diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h index a7ad635..50ee396 100644 --- a/drivers/vhost/vhost.h +++ b/drivers/vhost/vhost.h @@ -44,6 +44,7 @@ void vhost_poll_init(struct vhost_poll *poll, vhost_work_fn_t fn, unsigned long mask, struct vhost_dev *dev); int vhost_poll_start(struct vhost_poll *poll, struct file *file); void vhost_poll_stop(struct vhost_poll *poll); +void vhost_work_flush(struct vhost_dev *dev, struct vhost_work *work); void vhost_poll_flush(struct vhost_poll *poll); void vhost_poll_queue(struct vhost_poll *poll); ^ permalink raw reply related [flat|nested] 23+ messages in thread
* Re: [PATCH] vhost-scsi: Depend on NET for memcpy_fromiovec 2013-05-15 22:37 ` Nicholas A. Bellinger @ 2013-05-15 23:35 ` Rusty Russell 2013-05-16 2:16 ` Asias He 2013-05-16 3:10 ` David Miller 2013-05-16 1:48 ` Asias He 2013-05-16 6:42 ` Michael S. Tsirkin 2 siblings, 2 replies; 23+ messages in thread From: Rusty Russell @ 2013-05-15 23:35 UTC (permalink / raw) To: Nicholas A. Bellinger Cc: Stephen Rothwell, kvm, Michael S. Tsirkin, netdev, Randy Dunlap, linux-kernel, virtualization, target-devel, linux-next "Nicholas A. Bellinger" <nab@linux-iscsi.org> writes: > On Wed, 2013-05-15 at 14:47 +0930, Rusty Russell wrote: >> Asias He <asias@redhat.com> writes: >> > scsi.c includes vhost.c which uses memcpy_fromiovec. >> > >> > This patch fixes this build failure. >> > >> > From Randy Dunlap: >> > ''' >> > on x86_64: >> > >> > ERROR: "memcpy_fromiovec" [drivers/vhost/vhost_scsi.ko] undefined! >> > >> > It needs to depend on NET since net/core/ provides that function. >> > ''' >> >> Proper fix please. >> >> Though I can't see why you thought this was a good idea. Nonetheless, I >> shan't highlight why: I have far too much respect for your intellects >> and abilities. >> >> No, don't thank me! > > Hi Rusty & Asias, > > I assume you mean something like the following patch to allow kbuild to > work when VHOST_NET + VHOST_SCSI are both enabled and sharing vhost.o, > yes..? No, that's a separate issue. memcpy_fromiovec() has nothing to do with networking: that was just the first user. Note that crypto/algif_skcipher.c also uses it. The obvious answer is to move it into lib/. OTOH making vhost_scsi depend on CONFIG_NET is breathtakingly lazy. I expect better from experienced kernel hackers :( Rusty. ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] vhost-scsi: Depend on NET for memcpy_fromiovec 2013-05-15 23:35 ` Rusty Russell @ 2013-05-16 2:16 ` Asias He 2013-05-16 3:10 ` David Miller 1 sibling, 0 replies; 23+ messages in thread From: Asias He @ 2013-05-16 2:16 UTC (permalink / raw) To: Rusty Russell Cc: Stephen Rothwell, kvm, Michael S. Tsirkin, netdev, Randy Dunlap, linux-kernel, virtualization, target-devel, linux-next On Thu, May 16, 2013 at 09:05:38AM +0930, Rusty Russell wrote: > "Nicholas A. Bellinger" <nab@linux-iscsi.org> writes: > > On Wed, 2013-05-15 at 14:47 +0930, Rusty Russell wrote: > >> Asias He <asias@redhat.com> writes: > >> > scsi.c includes vhost.c which uses memcpy_fromiovec. > >> > > >> > This patch fixes this build failure. > >> > > >> > From Randy Dunlap: > >> > ''' > >> > on x86_64: > >> > > >> > ERROR: "memcpy_fromiovec" [drivers/vhost/vhost_scsi.ko] undefined! > >> > > >> > It needs to depend on NET since net/core/ provides that function. > >> > ''' > >> > >> Proper fix please. > >> > >> Though I can't see why you thought this was a good idea. Nonetheless, I > >> shan't highlight why: I have far too much respect for your intellects > >> and abilities. > >> > >> No, don't thank me! > > > > Hi Rusty & Asias, > > > > I assume you mean something like the following patch to allow kbuild to > > work when VHOST_NET + VHOST_SCSI are both enabled and sharing vhost.o, > > yes..? > > No, that's a separate issue. > > memcpy_fromiovec() has nothing to do with networking: that was just the > first user. Note that crypto/algif_skcipher.c also uses it. The > obvious answer is to move it into lib/. That's true. I also want this. > OTOH making vhost_scsi depend on CONFIG_NET is breathtakingly lazy. I > expect better from experienced kernel hackers :( But do you think moving the memcpy_fromiovec stuff is a 3.10 material? > Rusty. -- Asias ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] vhost-scsi: Depend on NET for memcpy_fromiovec 2013-05-15 23:35 ` Rusty Russell 2013-05-16 2:16 ` Asias He @ 2013-05-16 3:10 ` David Miller 2013-05-16 6:46 ` Michael S. Tsirkin 1 sibling, 1 reply; 23+ messages in thread From: David Miller @ 2013-05-16 3:10 UTC (permalink / raw) To: rusty Cc: sfr, kvm, mst, netdev, rdunlap, linux-kernel, virtualization, target-devel, linux-next From: Rusty Russell <rusty@rustcorp.com.au> Date: Thu, 16 May 2013 09:05:38 +0930 > memcpy_fromiovec() has nothing to do with networking: that was just the > first user. Note that crypto/algif_skcipher.c also uses it. The > obvious answer is to move it into lib/. +1 ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] vhost-scsi: Depend on NET for memcpy_fromiovec 2013-05-16 3:10 ` David Miller @ 2013-05-16 6:46 ` Michael S. Tsirkin 2013-05-16 9:10 ` David Miller 0 siblings, 1 reply; 23+ messages in thread From: Michael S. Tsirkin @ 2013-05-16 6:46 UTC (permalink / raw) To: David Miller Cc: sfr, rdunlap, kvm, netdev, linux-kernel, virtualization, target-devel, linux-next On Wed, May 15, 2013 at 08:10:55PM -0700, David Miller wrote: > From: Rusty Russell <rusty@rustcorp.com.au> > Date: Thu, 16 May 2013 09:05:38 +0930 > > > memcpy_fromiovec() has nothing to do with networking: that was just the > > first user. Note that crypto/algif_skcipher.c also uses it. The > > obvious answer is to move it into lib/. > > +1 Rusty sent a patch that does this: http://patchwork.ozlabs.org/patch/244207/ David, looks like you weren't CC'd. If you agree could you please Ack that patch and then I can merge it through the vhost tree? Or if you prefer merge it directly and I'll sort out the dependencies... Thanks, -- MST ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] vhost-scsi: Depend on NET for memcpy_fromiovec 2013-05-16 6:46 ` Michael S. Tsirkin @ 2013-05-16 9:10 ` David Miller 0 siblings, 0 replies; 23+ messages in thread From: David Miller @ 2013-05-16 9:10 UTC (permalink / raw) To: mst Cc: sfr, rdunlap, kvm, netdev, linux-kernel, virtualization, target-devel, linux-next From: "Michael S. Tsirkin" <mst@redhat.com> Date: Thu, 16 May 2013 09:46:21 +0300 > On Wed, May 15, 2013 at 08:10:55PM -0700, David Miller wrote: >> From: Rusty Russell <rusty@rustcorp.com.au> >> Date: Thu, 16 May 2013 09:05:38 +0930 >> >> > memcpy_fromiovec() has nothing to do with networking: that was just the >> > first user. Note that crypto/algif_skcipher.c also uses it. The >> > obvious answer is to move it into lib/. >> >> +1 > > Rusty sent a patch that does this: > http://patchwork.ozlabs.org/patch/244207/ > > David, looks like you weren't CC'd. > If you agree could you please Ack that patch and then I can merge it > through the vhost tree? > Or if you prefer merge it directly and I'll sort out the dependencies... Acked-by: David S. Miller <davem@davemloft.net> ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] vhost-scsi: Depend on NET for memcpy_fromiovec 2013-05-15 22:37 ` Nicholas A. Bellinger 2013-05-15 23:35 ` Rusty Russell @ 2013-05-16 1:48 ` Asias He 2013-05-16 6:42 ` Michael S. Tsirkin 2 siblings, 0 replies; 23+ messages in thread From: Asias He @ 2013-05-16 1:48 UTC (permalink / raw) To: Nicholas A. Bellinger Cc: Stephen Rothwell, Randy Dunlap, kvm, Michael S. Tsirkin, netdev, linux-kernel, virtualization, target-devel, linux-next On Wed, May 15, 2013 at 03:37:30PM -0700, Nicholas A. Bellinger wrote: > On Wed, 2013-05-15 at 14:47 +0930, Rusty Russell wrote: > > Asias He <asias@redhat.com> writes: > > > scsi.c includes vhost.c which uses memcpy_fromiovec. > > > > > > This patch fixes this build failure. > > > > > > From Randy Dunlap: > > > ''' > > > on x86_64: > > > > > > ERROR: "memcpy_fromiovec" [drivers/vhost/vhost_scsi.ko] undefined! > > > > > > It needs to depend on NET since net/core/ provides that function. > > > ''' > > > > Proper fix please. > > > > Though I can't see why you thought this was a good idea. Nonetheless, I > > shan't highlight why: I have far too much respect for your intellects > > and abilities. > > > > No, don't thank me! > > Hi Rusty & Asias, > > I assume you mean something like the following patch to allow kbuild to > work when VHOST_NET + VHOST_SCSI are both enabled and sharing vhost.o, > yes..? > > Also included is dropping the now unnecessary vhost.c include, and > allowing vhost_work_flush() to be accessed externally as scsi.c > currently requires. > > MST, care to pick this up..? > > --nab Couple of days ago, I have separated the vhost.ko. 'vhost: Make vhost a separate module' http://www.spinics.net/lists/kvm/msg90825.html MST wanted to queue it up for 3.11. > > diff --git a/drivers/vhost/Kconfig b/drivers/vhost/Kconfig > index 8b9226d..016387f 100644 > --- a/drivers/vhost/Kconfig > +++ b/drivers/vhost/Kconfig > @@ -1,3 +1,6 @@ > +config VHOST > + tristate > + > config VHOST_NET > tristate "Host kernel accelerator for virtio net" > depends on NET && EVENTFD && (TUN || !TUN) && (MACVTAP || !MACVTAP) > @@ -12,7 +15,7 @@ config VHOST_NET > > config VHOST_SCSI > tristate "VHOST_SCSI TCM fabric driver" > - depends on TARGET_CORE && EVENTFD && m > + depends on NET && EVENTFD && TARGET_CORE > select VHOST_RING > default n > ---help--- > diff --git a/drivers/vhost/Makefile b/drivers/vhost/Makefile > index 654e9afb..e5b5f0b 100644 > --- a/drivers/vhost/Makefile > +++ b/drivers/vhost/Makefile > @@ -1,7 +1,9 @@ > +obj-$(CONFIG_VHOST) += vhost.o > + > obj-$(CONFIG_VHOST_NET) += vhost_net.o > -vhost_net-y := vhost.o net.o > +vhost_net-objs := net.o > > obj-$(CONFIG_VHOST_SCSI) += vhost_scsi.o > -vhost_scsi-y := scsi.o > +vhost_scsi-objs := scsi.o > > obj-$(CONFIG_VHOST_RING) += vringh.o > diff --git a/drivers/vhost/scsi.c b/drivers/vhost/scsi.c > index 7014202..b5836a2 100644 > --- a/drivers/vhost/scsi.c > +++ b/drivers/vhost/scsi.c > @@ -49,7 +49,6 @@ > #include <linux/llist.h> > #include <linux/bitmap.h> > > -#include "vhost.c" > #include "vhost.h" > > #define TCM_VHOST_VERSION "v0.1" > diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c > index beee7f5..8cd1562 100644 > --- a/drivers/vhost/vhost.c > +++ b/drivers/vhost/vhost.c > @@ -123,7 +123,7 @@ static bool vhost_work_seq_done(struct vhost_dev *dev, struct vhost_work *work, > return left <= 0; > } > > -static void vhost_work_flush(struct vhost_dev *dev, struct vhost_work *work) > +void vhost_work_flush(struct vhost_dev *dev, struct vhost_work *work) > { > unsigned seq; > int flushing; > diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h > index a7ad635..50ee396 100644 > --- a/drivers/vhost/vhost.h > +++ b/drivers/vhost/vhost.h > @@ -44,6 +44,7 @@ void vhost_poll_init(struct vhost_poll *poll, vhost_work_fn_t fn, > unsigned long mask, struct vhost_dev *dev); > int vhost_poll_start(struct vhost_poll *poll, struct file *file); > void vhost_poll_stop(struct vhost_poll *poll); > +void vhost_work_flush(struct vhost_dev *dev, struct vhost_work *work); > void vhost_poll_flush(struct vhost_poll *poll); > void vhost_poll_queue(struct vhost_poll *poll); > > -- Asias ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] vhost-scsi: Depend on NET for memcpy_fromiovec 2013-05-15 22:37 ` Nicholas A. Bellinger 2013-05-15 23:35 ` Rusty Russell 2013-05-16 1:48 ` Asias He @ 2013-05-16 6:42 ` Michael S. Tsirkin 2 siblings, 0 replies; 23+ messages in thread From: Michael S. Tsirkin @ 2013-05-16 6:42 UTC (permalink / raw) To: Nicholas A. Bellinger Cc: Stephen Rothwell, Randy Dunlap, kvm, netdev, linux-kernel, virtualization, target-devel, linux-next On Wed, May 15, 2013 at 03:37:30PM -0700, Nicholas A. Bellinger wrote: > On Wed, 2013-05-15 at 14:47 +0930, Rusty Russell wrote: > > Asias He <asias@redhat.com> writes: > > > scsi.c includes vhost.c which uses memcpy_fromiovec. > > > > > > This patch fixes this build failure. > > > > > > From Randy Dunlap: > > > ''' > > > on x86_64: > > > > > > ERROR: "memcpy_fromiovec" [drivers/vhost/vhost_scsi.ko] undefined! > > > > > > It needs to depend on NET since net/core/ provides that function. > > > ''' > > > > Proper fix please. > > > > Though I can't see why you thought this was a good idea. Nonetheless, I > > shan't highlight why: I have far too much respect for your intellects > > and abilities. > > > > No, don't thank me! > > Hi Rusty & Asias, > > I assume you mean something like the following patch to allow kbuild to > work when VHOST_NET + VHOST_SCSI are both enabled and sharing vhost.o, > yes..? > > Also included is dropping the now unnecessary vhost.c include, and > allowing vhost_work_flush() to be accessed externally as scsi.c > currently requires. > > MST, care to pick this up..? > > --nab We'll do this for 3.11, 3.10 is bugfixes only now. > diff --git a/drivers/vhost/Kconfig b/drivers/vhost/Kconfig > index 8b9226d..016387f 100644 > --- a/drivers/vhost/Kconfig > +++ b/drivers/vhost/Kconfig > @@ -1,3 +1,6 @@ > +config VHOST > + tristate > + > config VHOST_NET > tristate "Host kernel accelerator for virtio net" > depends on NET && EVENTFD && (TUN || !TUN) && (MACVTAP || !MACVTAP) > @@ -12,7 +15,7 @@ config VHOST_NET > > config VHOST_SCSI > tristate "VHOST_SCSI TCM fabric driver" > - depends on TARGET_CORE && EVENTFD && m > + depends on NET && EVENTFD && TARGET_CORE > select VHOST_RING > default n > ---help--- > diff --git a/drivers/vhost/Makefile b/drivers/vhost/Makefile > index 654e9afb..e5b5f0b 100644 > --- a/drivers/vhost/Makefile > +++ b/drivers/vhost/Makefile > @@ -1,7 +1,9 @@ > +obj-$(CONFIG_VHOST) += vhost.o > + > obj-$(CONFIG_VHOST_NET) += vhost_net.o > -vhost_net-y := vhost.o net.o > +vhost_net-objs := net.o > > obj-$(CONFIG_VHOST_SCSI) += vhost_scsi.o > -vhost_scsi-y := scsi.o > +vhost_scsi-objs := scsi.o > > obj-$(CONFIG_VHOST_RING) += vringh.o > diff --git a/drivers/vhost/scsi.c b/drivers/vhost/scsi.c > index 7014202..b5836a2 100644 > --- a/drivers/vhost/scsi.c > +++ b/drivers/vhost/scsi.c > @@ -49,7 +49,6 @@ > #include <linux/llist.h> > #include <linux/bitmap.h> > > -#include "vhost.c" > #include "vhost.h" > > #define TCM_VHOST_VERSION "v0.1" > diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c > index beee7f5..8cd1562 100644 > --- a/drivers/vhost/vhost.c > +++ b/drivers/vhost/vhost.c > @@ -123,7 +123,7 @@ static bool vhost_work_seq_done(struct vhost_dev *dev, struct vhost_work *work, > return left <= 0; > } > > -static void vhost_work_flush(struct vhost_dev *dev, struct vhost_work *work) > +void vhost_work_flush(struct vhost_dev *dev, struct vhost_work *work) > { > unsigned seq; > int flushing; > diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h > index a7ad635..50ee396 100644 > --- a/drivers/vhost/vhost.h > +++ b/drivers/vhost/vhost.h > @@ -44,6 +44,7 @@ void vhost_poll_init(struct vhost_poll *poll, vhost_work_fn_t fn, > unsigned long mask, struct vhost_dev *dev); > int vhost_poll_start(struct vhost_poll *poll, struct file *file); > void vhost_poll_stop(struct vhost_poll *poll); > +void vhost_work_flush(struct vhost_dev *dev, struct vhost_work *work); > void vhost_poll_flush(struct vhost_poll *poll); > void vhost_poll_queue(struct vhost_poll *poll); > ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] vhost-scsi: Depend on NET for memcpy_fromiovec 2013-05-15 5:17 ` Rusty Russell 2013-05-15 22:37 ` Nicholas A. Bellinger @ 2013-05-16 2:08 ` Asias He 2013-05-16 3:34 ` Rusty Russell 1 sibling, 1 reply; 23+ messages in thread From: Asias He @ 2013-05-16 2:08 UTC (permalink / raw) To: Rusty Russell Cc: Stephen Rothwell, kvm, Michael S. Tsirkin, netdev, Randy Dunlap, linux-kernel, virtualization, target-devel, linux-next On Wed, May 15, 2013 at 02:47:53PM +0930, Rusty Russell wrote: > Asias He <asias@redhat.com> writes: > > scsi.c includes vhost.c which uses memcpy_fromiovec. > > > > This patch fixes this build failure. > > > > From Randy Dunlap: > > ''' > > on x86_64: > > > > ERROR: "memcpy_fromiovec" [drivers/vhost/vhost_scsi.ko] undefined! > > > > It needs to depend on NET since net/core/ provides that function. > > ''' > > Proper fix please. --verbose please ;-) Making VHOST_SCSI depends on NET looks weird but this is because vhost core depends on it. A bunch of patches are cleaning this up. Since MST wanted do the vhost.ko split up in 3.11, plus your WIP vringh work, so I wanted the fix for 3.10 as minimum as possible. Other users are using memcpy_fromiovec and friends outside net. It seems a good idea to put it in a util library. e.g. crypto/algif_skcipher.c which also depends on NET for it. > Though I can't see why you thought this was a good idea. Nonetheless, I > shan't highlight why: I have far too much respect for your intellects > and abilities. > > No, don't thank me! Interesting. > Rusty. -- Asias ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] vhost-scsi: Depend on NET for memcpy_fromiovec 2013-05-16 2:08 ` Asias He @ 2013-05-16 3:34 ` Rusty Russell 2013-05-16 3:55 ` Joe Perches ` (2 more replies) 0 siblings, 3 replies; 23+ messages in thread From: Rusty Russell @ 2013-05-16 3:34 UTC (permalink / raw) To: Asias He Cc: Michael S. Tsirkin, Nicholas Bellinger, kvm, virtualization, target-devel, Stephen Rothwell, Randy Dunlap, linux-next, linux-kernel, netdev Asias He <asias@redhat.com> writes: > On Wed, May 15, 2013 at 02:47:53PM +0930, Rusty Russell wrote: >> Asias He <asias@redhat.com> writes: >> > scsi.c includes vhost.c which uses memcpy_fromiovec. >> > >> > This patch fixes this build failure. >> > >> > From Randy Dunlap: >> > ''' >> > on x86_64: >> > >> > ERROR: "memcpy_fromiovec" [drivers/vhost/vhost_scsi.ko] undefined! >> > >> > It needs to depend on NET since net/core/ provides that function. >> > ''' >> >> Proper fix please. > > --verbose please ;-) > > Making VHOST_SCSI depends on NET looks weird but this is because vhost > core depends on it. A bunch of patches are cleaning this up. Since MST > wanted do the vhost.ko split up in 3.11, plus your WIP vringh work, so I > wanted the fix for 3.10 as minimum as possible. If this isn't the only symbol causing the problem, then this should be mentioned in the changelog. If it is, it should be fixed: we have plenty of time for that. Either way, your commit message or the commit itself needs to justify it! > Other users are using memcpy_fromiovec and friends outside net. It seems > a good idea to put it in a util library. e.g. crypto/algif_skcipher.c > which also depends on NET for it. > >> Though I can't see why you thought this was a good idea. Nonetheless, I >> shan't highlight why: I have far too much respect for your intellects >> and abilities. >> >> No, don't thank me! > > Interesting. Heh... I originally wrote an explanation, then found it a bit insulting: I knew I didn't need to tell you :) How's this? From: Rusty Russell <rusty@rustcorp.com.au> Subject: Hoist memcpy_fromiovec into lib/ ERROR: "memcpy_fromiovec" [drivers/vhost/vhost_scsi.ko] undefined! That function is only present with CONFIG_NET. Turns out that crypto/algif_skcipher.c also uses that outside net, but it actually needs sockets anyway. socket.h already include uio.h, so no callers need updating. Reported-by: Randy Dunlap <rdunlap@infradead.org> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> diff --git a/include/linux/socket.h b/include/linux/socket.h index 428c37a..7266775 100644 --- a/include/linux/socket.h +++ b/include/linux/socket.h @@ -305,7 +305,6 @@ struct ucred { extern void cred_to_ucred(struct pid *pid, const struct cred *cred, struct ucred *ucred); -extern int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len); extern int memcpy_fromiovecend(unsigned char *kdata, const struct iovec *iov, int offset, int len); extern int csum_partial_copy_fromiovecend(unsigned char *kdata, diff --git a/include/linux/uio.h b/include/linux/uio.h index 629aaf5..21628d3 100644 --- a/include/linux/uio.h +++ b/include/linux/uio.h @@ -35,4 +35,6 @@ static inline size_t iov_length(const struct iovec *iov, unsigned long nr_segs) } unsigned long iov_shorten(struct iovec *iov, unsigned long nr_segs, size_t to); + +int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len); #endif diff --git a/lib/Makefile b/lib/Makefile index e9c52e1..2377211 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -9,7 +9,7 @@ endif lib-y := ctype.o string.o vsprintf.o cmdline.o \ rbtree.o radix-tree.o dump_stack.o timerqueue.o\ - idr.o int_sqrt.o extable.o \ + idr.o int_sqrt.o extable.o iovec.o \ sha1.o md5.o irq_regs.o reciprocal_div.o argv_split.o \ proportions.o flex_proportions.o prio_heap.o ratelimit.o show_mem.o \ is_single_threaded.o plist.o decompress.o kobject_uevent.o \ diff --git a/lib/iovec.c b/lib/iovec.c new file mode 100644 index 0000000..632c5ea --- /dev/null +++ b/lib/iovec.c @@ -0,0 +1,29 @@ +#include <linux/uaccess.h> +#include <linux/export.h> +#include <linux/uio.h> + +/* + * Copy iovec to kernel. Returns -EFAULT on error. + * + * Note: this modifies the original iovec. + */ + +int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len) +{ + while (len > 0) { + if (iov->iov_len) { + int copy = min_t(unsigned int, len, iov->iov_len); + if (copy_from_user(kdata, iov->iov_base, copy)) + return -EFAULT; + len -= copy; + kdata += copy; + iov->iov_base += copy; + iov->iov_len -= copy; + } + iov++; + } + + return 0; +} +EXPORT_SYMBOL(memcpy_fromiovec); + diff --git a/net/core/iovec.c b/net/core/iovec.c index 7e7aeb0..d81257f 100644 --- a/net/core/iovec.c +++ b/net/core/iovec.c @@ -125,31 +125,6 @@ int memcpy_toiovecend(const struct iovec *iov, unsigned char *kdata, EXPORT_SYMBOL(memcpy_toiovecend); /* - * Copy iovec to kernel. Returns -EFAULT on error. - * - * Note: this modifies the original iovec. - */ - -int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len) -{ - while (len > 0) { - if (iov->iov_len) { - int copy = min_t(unsigned int, len, iov->iov_len); - if (copy_from_user(kdata, iov->iov_base, copy)) - return -EFAULT; - len -= copy; - kdata += copy; - iov->iov_base += copy; - iov->iov_len -= copy; - } - iov++; - } - - return 0; -} -EXPORT_SYMBOL(memcpy_fromiovec); - -/* * Copy iovec from kernel. Returns -EFAULT on error. */ ^ permalink raw reply related [flat|nested] 23+ messages in thread
* Re: [PATCH] vhost-scsi: Depend on NET for memcpy_fromiovec 2013-05-16 3:34 ` Rusty Russell @ 2013-05-16 3:55 ` Joe Perches 2013-05-16 23:42 ` Rusty Russell 2013-05-16 4:35 ` Asias He 2013-05-16 6:36 ` Michael S. Tsirkin 2 siblings, 1 reply; 23+ messages in thread From: Joe Perches @ 2013-05-16 3:55 UTC (permalink / raw) To: Rusty Russell Cc: Asias He, Michael S. Tsirkin, Nicholas Bellinger, kvm, virtualization, target-devel, Stephen Rothwell, Randy Dunlap, linux-next, linux-kernel, netdev On Thu, 2013-05-16 at 13:04 +0930, Rusty Russell wrote: > Asias He <asias@redhat.com> writes: > > On Wed, May 15, 2013 at 02:47:53PM +0930, Rusty Russell wrote: [] > > Other users are using memcpy_fromiovec and friends outside net. It seems > > a good idea to put it in a util library. e.g. crypto/algif_skcipher.c > > which also depends on NET for it. [] > Subject: Hoist memcpy_fromiovec into lib/ You'll need the "friends" memcpy_toiovec too. $ git grep -E \bmemcpy\w+iovec\w*" crypto/algif_hash.c: err = memcpy_toiovec(msg->msg_iov, ctx->result, len); crypto/algif_skcipher.c: err = memcpy_fromiovec(page_address(sg_page(sg)) + crypto/algif_skcipher.c: err = memcpy_fromiovec(page_address(sg_page(sg + i)), drivers/dma/iovlock.c:#include <net/tcp.h> /* for memcpy_toiovec */ drivers/dma/iovlock.c: return memcpy_toiovec(iov, kdata, len); drivers/dma/iovlock.c: err = memcpy_toiovec(iov, vaddr + offset, len); drivers/isdn/mISDN/socket.c: if (memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len)) { drivers/misc/vmw_vmci/vmci_queue_pair.c: err = memcpy_fromiovec((u8 *)va + page_o drivers/misc/vmw_vmci/vmci_queue_pair.c: err = memcpy_toiovec(iov, (u8 *)va + pag ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] vhost-scsi: Depend on NET for memcpy_fromiovec 2013-05-16 3:55 ` Joe Perches @ 2013-05-16 23:42 ` Rusty Russell 2013-05-17 4:42 ` Randy Dunlap 2013-05-23 7:30 ` Michael S. Tsirkin 0 siblings, 2 replies; 23+ messages in thread From: Rusty Russell @ 2013-05-16 23:42 UTC (permalink / raw) To: Joe Perches Cc: Stephen Rothwell, kvm, Michael S. Tsirkin, netdev, Randy Dunlap, linux-kernel, virtualization, target-devel, linux-next Joe Perches <joe@perches.com> writes: > On Thu, 2013-05-16 at 13:04 +0930, Rusty Russell wrote: >> Asias He <asias@redhat.com> writes: >> > On Wed, May 15, 2013 at 02:47:53PM +0930, Rusty Russell wrote: > [] >> > Other users are using memcpy_fromiovec and friends outside net. It seems >> > a good idea to put it in a util library. e.g. crypto/algif_skcipher.c >> > which also depends on NET for it. > > [] >> Subject: Hoist memcpy_fromiovec into lib/ > > You'll need the "friends" memcpy_toiovec too. > > $ git grep -E \bmemcpy\w+iovec\w*" > crypto/algif_hash.c: err = memcpy_toiovec(msg->msg_iov, ctx->result, len); > crypto/algif_skcipher.c: err = memcpy_fromiovec(page_address(sg_page(sg)) + > crypto/algif_skcipher.c: err = memcpy_fromiovec(page_address(sg_page(sg + i)), > drivers/dma/iovlock.c:#include <net/tcp.h> /* for memcpy_toiovec */ > drivers/dma/iovlock.c: return memcpy_toiovec(iov, kdata, len); > drivers/dma/iovlock.c: err = memcpy_toiovec(iov, vaddr + offset, len); > drivers/isdn/mISDN/socket.c: if (memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len)) { > drivers/misc/vmw_vmci/vmci_queue_pair.c: err = memcpy_fromiovec((u8 *)va + page_o > drivers/misc/vmw_vmci/vmci_queue_pair.c: err = memcpy_toiovec(iov, (u8 *)va + pag Fascinating. These all indirectly depend on NET, so there's no problem at the moment. But it is a bit weird... crypto/algif_hash.c: depends on CRYPTO_USER_API_HASH -> NET crypto/algif_skcipher.c: depends on CRYPTO_USER_API_SKCIPHER -> NET drivers/dma/iovlock.c: depends on NET_DMA -> NET drivers/isdn/mISDN/socket.c: depends on MISDN -> ISDN -> NET drivers/misc/vmw_vmci/vmci_queue_pair.c: depends on VMCI -> NET Patch welcome. Meanwhile, to avoid more bikeshedding I've put the patch I posted with all acks in my fixes branch. One cycle through linux-next, then straight to Linus. Subject: Hoist memcpy_fromiovec into lib/ ERROR: "memcpy_fromiovec" [drivers/vhost/vhost_scsi.ko] undefined! That function is only present with CONFIG_NET. Turns out that crypto/algif_skcipher.c also uses that outside net, but it actually needs sockets anyway. socket.h already include uio.h, so no callers need updating. Reported-by: Randy Dunlap <rdunlap@infradead.org> Acked-by: David S. Miller <davem@davemloft.net> Acked-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> diff --git a/include/linux/socket.h b/include/linux/socket.h index 428c37a..7266775 100644 --- a/include/linux/socket.h +++ b/include/linux/socket.h @@ -305,7 +305,6 @@ struct ucred { extern void cred_to_ucred(struct pid *pid, const struct cred *cred, struct ucred *ucred); -extern int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len); extern int memcpy_fromiovecend(unsigned char *kdata, const struct iovec *iov, int offset, int len); extern int csum_partial_copy_fromiovecend(unsigned char *kdata, diff --git a/include/linux/uio.h b/include/linux/uio.h index 629aaf5..21628d3 100644 --- a/include/linux/uio.h +++ b/include/linux/uio.h @@ -35,4 +35,6 @@ static inline size_t iov_length(const struct iovec *iov, unsigned long nr_segs) } unsigned long iov_shorten(struct iovec *iov, unsigned long nr_segs, size_t to); + +int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len); #endif diff --git a/lib/Makefile b/lib/Makefile index e9c52e1..2377211 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -9,7 +9,7 @@ endif lib-y := ctype.o string.o vsprintf.o cmdline.o \ rbtree.o radix-tree.o dump_stack.o timerqueue.o\ - idr.o int_sqrt.o extable.o \ + idr.o int_sqrt.o extable.o iovec.o \ sha1.o md5.o irq_regs.o reciprocal_div.o argv_split.o \ proportions.o flex_proportions.o prio_heap.o ratelimit.o show_mem.o \ is_single_threaded.o plist.o decompress.o kobject_uevent.o \ diff --git a/lib/iovec.c b/lib/iovec.c new file mode 100644 index 0000000..632c5ea --- /dev/null +++ b/lib/iovec.c @@ -0,0 +1,29 @@ +#include <linux/uaccess.h> +#include <linux/export.h> +#include <linux/uio.h> + +/* + * Copy iovec to kernel. Returns -EFAULT on error. + * + * Note: this modifies the original iovec. + */ + +int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len) +{ + while (len > 0) { + if (iov->iov_len) { + int copy = min_t(unsigned int, len, iov->iov_len); + if (copy_from_user(kdata, iov->iov_base, copy)) + return -EFAULT; + len -= copy; + kdata += copy; + iov->iov_base += copy; + iov->iov_len -= copy; + } + iov++; + } + + return 0; +} +EXPORT_SYMBOL(memcpy_fromiovec); + diff --git a/net/core/iovec.c b/net/core/iovec.c index 7e7aeb0..d81257f 100644 --- a/net/core/iovec.c +++ b/net/core/iovec.c @@ -125,31 +125,6 @@ int memcpy_toiovecend(const struct iovec *iov, unsigned char *kdata, EXPORT_SYMBOL(memcpy_toiovecend); /* - * Copy iovec to kernel. Returns -EFAULT on error. - * - * Note: this modifies the original iovec. - */ - -int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len) -{ - while (len > 0) { - if (iov->iov_len) { - int copy = min_t(unsigned int, len, iov->iov_len); - if (copy_from_user(kdata, iov->iov_base, copy)) - return -EFAULT; - len -= copy; - kdata += copy; - iov->iov_base += copy; - iov->iov_len -= copy; - } - iov++; - } - - return 0; -} -EXPORT_SYMBOL(memcpy_fromiovec); - -/* * Copy iovec from kernel. Returns -EFAULT on error. */ ^ permalink raw reply related [flat|nested] 23+ messages in thread
* Re: [PATCH] vhost-scsi: Depend on NET for memcpy_fromiovec 2013-05-16 23:42 ` Rusty Russell @ 2013-05-17 4:42 ` Randy Dunlap 2013-05-23 7:30 ` Michael S. Tsirkin 1 sibling, 0 replies; 23+ messages in thread From: Randy Dunlap @ 2013-05-17 4:42 UTC (permalink / raw) To: Rusty Russell Cc: Joe Perches, Asias He, Michael S. Tsirkin, Nicholas Bellinger, kvm, virtualization, target-devel, Stephen Rothwell, linux-next, linux-kernel, netdev On 05/16/13 16:42, Rusty Russell wrote: > Joe Perches <joe@perches.com> writes: >> On Thu, 2013-05-16 at 13:04 +0930, Rusty Russell wrote: >>> Asias He <asias@redhat.com> writes: >>>> On Wed, May 15, 2013 at 02:47:53PM +0930, Rusty Russell wrote: >> [] >>>> Other users are using memcpy_fromiovec and friends outside net. It seems >>>> a good idea to put it in a util library. e.g. crypto/algif_skcipher.c >>>> which also depends on NET for it. >> >> [] >>> Subject: Hoist memcpy_fromiovec into lib/ >> >> You'll need the "friends" memcpy_toiovec too. >> >> $ git grep -E \bmemcpy\w+iovec\w*" >> crypto/algif_hash.c: err = memcpy_toiovec(msg->msg_iov, ctx->result, len); >> crypto/algif_skcipher.c: err = memcpy_fromiovec(page_address(sg_page(sg)) + >> crypto/algif_skcipher.c: err = memcpy_fromiovec(page_address(sg_page(sg + i)), >> drivers/dma/iovlock.c:#include <net/tcp.h> /* for memcpy_toiovec */ >> drivers/dma/iovlock.c: return memcpy_toiovec(iov, kdata, len); >> drivers/dma/iovlock.c: err = memcpy_toiovec(iov, vaddr + offset, len); >> drivers/isdn/mISDN/socket.c: if (memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len)) { >> drivers/misc/vmw_vmci/vmci_queue_pair.c: err = memcpy_fromiovec((u8 *)va + page_o >> drivers/misc/vmw_vmci/vmci_queue_pair.c: err = memcpy_toiovec(iov, (u8 *)va + pag > > Fascinating. These all indirectly depend on NET, so there's no problem > at the moment. But it is a bit weird... > > crypto/algif_hash.c: depends on CRYPTO_USER_API_HASH -> NET > crypto/algif_skcipher.c: depends on CRYPTO_USER_API_SKCIPHER -> NET > drivers/dma/iovlock.c: depends on NET_DMA -> NET > drivers/isdn/mISDN/socket.c: depends on MISDN -> ISDN -> NET > drivers/misc/vmw_vmci/vmci_queue_pair.c: depends on VMCI -> NET > > Patch welcome. > > Meanwhile, to avoid more bikeshedding I've put the patch I posted with > all acks in my fixes branch. One cycle through linux-next, then > straight to Linus. > I agree with whoever suggested that more be moved into /lib. E.g., drivers/misc/vmw_vmci/Kconfig uses "depends on NET" because the code there uses both memcpy_toiovec() and memcpy_fromiovec(). See commit ID 6d4f0139d642c45411a47879325891ce2a7c164a. > Subject: Hoist memcpy_fromiovec into lib/ > > ERROR: "memcpy_fromiovec" [drivers/vhost/vhost_scsi.ko] undefined! > > That function is only present with CONFIG_NET. Turns out that > crypto/algif_skcipher.c also uses that outside net, but it actually > needs sockets anyway. > > socket.h already include uio.h, so no callers need updating. > > Reported-by: Randy Dunlap <rdunlap@infradead.org> > Acked-by: David S. Miller <davem@davemloft.net> > Acked-by: Michael S. Tsirkin <mst@redhat.com> > Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> > > diff --git a/include/linux/socket.h b/include/linux/socket.h > index 428c37a..7266775 100644 > --- a/include/linux/socket.h > +++ b/include/linux/socket.h > @@ -305,7 +305,6 @@ struct ucred { > > extern void cred_to_ucred(struct pid *pid, const struct cred *cred, struct ucred *ucred); > > -extern int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len); > extern int memcpy_fromiovecend(unsigned char *kdata, const struct iovec *iov, > int offset, int len); > extern int csum_partial_copy_fromiovecend(unsigned char *kdata, > diff --git a/include/linux/uio.h b/include/linux/uio.h > index 629aaf5..21628d3 100644 > --- a/include/linux/uio.h > +++ b/include/linux/uio.h > @@ -35,4 +35,6 @@ static inline size_t iov_length(const struct iovec *iov, unsigned long nr_segs) > } > > unsigned long iov_shorten(struct iovec *iov, unsigned long nr_segs, size_t to); > + > +int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len); > #endif > diff --git a/lib/Makefile b/lib/Makefile > index e9c52e1..2377211 100644 > --- a/lib/Makefile > +++ b/lib/Makefile > @@ -9,7 +9,7 @@ endif > > lib-y := ctype.o string.o vsprintf.o cmdline.o \ > rbtree.o radix-tree.o dump_stack.o timerqueue.o\ > - idr.o int_sqrt.o extable.o \ > + idr.o int_sqrt.o extable.o iovec.o \ > sha1.o md5.o irq_regs.o reciprocal_div.o argv_split.o \ > proportions.o flex_proportions.o prio_heap.o ratelimit.o show_mem.o \ > is_single_threaded.o plist.o decompress.o kobject_uevent.o \ > diff --git a/lib/iovec.c b/lib/iovec.c > new file mode 100644 > index 0000000..632c5ea > --- /dev/null > +++ b/lib/iovec.c > @@ -0,0 +1,29 @@ > +#include <linux/uaccess.h> > +#include <linux/export.h> > +#include <linux/uio.h> > + > +/* > + * Copy iovec to kernel. Returns -EFAULT on error. > + * > + * Note: this modifies the original iovec. > + */ > + > +int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len) > +{ > + while (len > 0) { > + if (iov->iov_len) { > + int copy = min_t(unsigned int, len, iov->iov_len); > + if (copy_from_user(kdata, iov->iov_base, copy)) > + return -EFAULT; > + len -= copy; > + kdata += copy; > + iov->iov_base += copy; > + iov->iov_len -= copy; > + } > + iov++; > + } > + > + return 0; > +} > +EXPORT_SYMBOL(memcpy_fromiovec); > + > diff --git a/net/core/iovec.c b/net/core/iovec.c > index 7e7aeb0..d81257f 100644 > --- a/net/core/iovec.c > +++ b/net/core/iovec.c > @@ -125,31 +125,6 @@ int memcpy_toiovecend(const struct iovec *iov, unsigned char *kdata, > EXPORT_SYMBOL(memcpy_toiovecend); > > /* > - * Copy iovec to kernel. Returns -EFAULT on error. > - * > - * Note: this modifies the original iovec. > - */ > - > -int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len) > -{ > - while (len > 0) { > - if (iov->iov_len) { > - int copy = min_t(unsigned int, len, iov->iov_len); > - if (copy_from_user(kdata, iov->iov_base, copy)) > - return -EFAULT; > - len -= copy; > - kdata += copy; > - iov->iov_base += copy; > - iov->iov_len -= copy; > - } > - iov++; > - } > - > - return 0; > -} > -EXPORT_SYMBOL(memcpy_fromiovec); > - > -/* > * Copy iovec from kernel. Returns -EFAULT on error. > */ > > -- ~Randy ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] vhost-scsi: Depend on NET for memcpy_fromiovec 2013-05-16 23:42 ` Rusty Russell 2013-05-17 4:42 ` Randy Dunlap @ 2013-05-23 7:30 ` Michael S. Tsirkin 1 sibling, 0 replies; 23+ messages in thread From: Michael S. Tsirkin @ 2013-05-23 7:30 UTC (permalink / raw) To: Rusty Russell Cc: Stephen Rothwell, kvm, netdev, Randy Dunlap, linux-kernel, virtualization, target-devel, linux-next, Joe Perches On Fri, May 17, 2013 at 09:12:39AM +0930, Rusty Russell wrote: > Joe Perches <joe@perches.com> writes: > > On Thu, 2013-05-16 at 13:04 +0930, Rusty Russell wrote: > >> Asias He <asias@redhat.com> writes: > >> > On Wed, May 15, 2013 at 02:47:53PM +0930, Rusty Russell wrote: > > [] > >> > Other users are using memcpy_fromiovec and friends outside net. It seems > >> > a good idea to put it in a util library. e.g. crypto/algif_skcipher.c > >> > which also depends on NET for it. > > > > [] > >> Subject: Hoist memcpy_fromiovec into lib/ > > > > You'll need the "friends" memcpy_toiovec too. > > > > $ git grep -E \bmemcpy\w+iovec\w*" > > crypto/algif_hash.c: err = memcpy_toiovec(msg->msg_iov, ctx->result, len); > > crypto/algif_skcipher.c: err = memcpy_fromiovec(page_address(sg_page(sg)) + > > crypto/algif_skcipher.c: err = memcpy_fromiovec(page_address(sg_page(sg + i)), > > drivers/dma/iovlock.c:#include <net/tcp.h> /* for memcpy_toiovec */ > > drivers/dma/iovlock.c: return memcpy_toiovec(iov, kdata, len); > > drivers/dma/iovlock.c: err = memcpy_toiovec(iov, vaddr + offset, len); > > drivers/isdn/mISDN/socket.c: if (memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len)) { > > drivers/misc/vmw_vmci/vmci_queue_pair.c: err = memcpy_fromiovec((u8 *)va + page_o > > drivers/misc/vmw_vmci/vmci_queue_pair.c: err = memcpy_toiovec(iov, (u8 *)va + pag > > Fascinating. These all indirectly depend on NET, so there's no problem > at the moment. But it is a bit weird... > > crypto/algif_hash.c: depends on CRYPTO_USER_API_HASH -> NET > crypto/algif_skcipher.c: depends on CRYPTO_USER_API_SKCIPHER -> NET > drivers/dma/iovlock.c: depends on NET_DMA -> NET > drivers/isdn/mISDN/socket.c: depends on MISDN -> ISDN -> NET > drivers/misc/vmw_vmci/vmci_queue_pair.c: depends on VMCI -> NET > > Patch welcome. > > Meanwhile, to avoid more bikeshedding I've put the patch I posted with > all acks in my fixes branch. One cycle through linux-next, then > straight to Linus. Not in 3.10-rc2 yes - still plan to merge for 3.10? > Subject: Hoist memcpy_fromiovec into lib/ > > ERROR: "memcpy_fromiovec" [drivers/vhost/vhost_scsi.ko] undefined! > > That function is only present with CONFIG_NET. Turns out that > crypto/algif_skcipher.c also uses that outside net, but it actually > needs sockets anyway. > > socket.h already include uio.h, so no callers need updating. > > Reported-by: Randy Dunlap <rdunlap@infradead.org> > Acked-by: David S. Miller <davem@davemloft.net> > Acked-by: Michael S. Tsirkin <mst@redhat.com> > Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> > > diff --git a/include/linux/socket.h b/include/linux/socket.h > index 428c37a..7266775 100644 > --- a/include/linux/socket.h > +++ b/include/linux/socket.h > @@ -305,7 +305,6 @@ struct ucred { > > extern void cred_to_ucred(struct pid *pid, const struct cred *cred, struct ucred *ucred); > > -extern int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len); > extern int memcpy_fromiovecend(unsigned char *kdata, const struct iovec *iov, > int offset, int len); > extern int csum_partial_copy_fromiovecend(unsigned char *kdata, > diff --git a/include/linux/uio.h b/include/linux/uio.h > index 629aaf5..21628d3 100644 > --- a/include/linux/uio.h > +++ b/include/linux/uio.h > @@ -35,4 +35,6 @@ static inline size_t iov_length(const struct iovec *iov, unsigned long nr_segs) > } > > unsigned long iov_shorten(struct iovec *iov, unsigned long nr_segs, size_t to); > + > +int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len); > #endif > diff --git a/lib/Makefile b/lib/Makefile > index e9c52e1..2377211 100644 > --- a/lib/Makefile > +++ b/lib/Makefile > @@ -9,7 +9,7 @@ endif > > lib-y := ctype.o string.o vsprintf.o cmdline.o \ > rbtree.o radix-tree.o dump_stack.o timerqueue.o\ > - idr.o int_sqrt.o extable.o \ > + idr.o int_sqrt.o extable.o iovec.o \ > sha1.o md5.o irq_regs.o reciprocal_div.o argv_split.o \ > proportions.o flex_proportions.o prio_heap.o ratelimit.o show_mem.o \ > is_single_threaded.o plist.o decompress.o kobject_uevent.o \ > diff --git a/lib/iovec.c b/lib/iovec.c > new file mode 100644 > index 0000000..632c5ea > --- /dev/null > +++ b/lib/iovec.c > @@ -0,0 +1,29 @@ > +#include <linux/uaccess.h> > +#include <linux/export.h> > +#include <linux/uio.h> > + > +/* > + * Copy iovec to kernel. Returns -EFAULT on error. > + * > + * Note: this modifies the original iovec. > + */ > + > +int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len) > +{ > + while (len > 0) { > + if (iov->iov_len) { > + int copy = min_t(unsigned int, len, iov->iov_len); > + if (copy_from_user(kdata, iov->iov_base, copy)) > + return -EFAULT; > + len -= copy; > + kdata += copy; > + iov->iov_base += copy; > + iov->iov_len -= copy; > + } > + iov++; > + } > + > + return 0; > +} > +EXPORT_SYMBOL(memcpy_fromiovec); > + > diff --git a/net/core/iovec.c b/net/core/iovec.c > index 7e7aeb0..d81257f 100644 > --- a/net/core/iovec.c > +++ b/net/core/iovec.c > @@ -125,31 +125,6 @@ int memcpy_toiovecend(const struct iovec *iov, unsigned char *kdata, > EXPORT_SYMBOL(memcpy_toiovecend); > > /* > - * Copy iovec to kernel. Returns -EFAULT on error. > - * > - * Note: this modifies the original iovec. > - */ > - > -int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len) > -{ > - while (len > 0) { > - if (iov->iov_len) { > - int copy = min_t(unsigned int, len, iov->iov_len); > - if (copy_from_user(kdata, iov->iov_base, copy)) > - return -EFAULT; > - len -= copy; > - kdata += copy; > - iov->iov_base += copy; > - iov->iov_len -= copy; > - } > - iov++; > - } > - > - return 0; > -} > -EXPORT_SYMBOL(memcpy_fromiovec); > - > -/* > * Copy iovec from kernel. Returns -EFAULT on error. > */ > ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] vhost-scsi: Depend on NET for memcpy_fromiovec 2013-05-16 3:34 ` Rusty Russell 2013-05-16 3:55 ` Joe Perches @ 2013-05-16 4:35 ` Asias He 2013-05-16 6:36 ` Michael S. Tsirkin 2 siblings, 0 replies; 23+ messages in thread From: Asias He @ 2013-05-16 4:35 UTC (permalink / raw) To: Rusty Russell Cc: Stephen Rothwell, kvm, Michael S. Tsirkin, netdev, Randy Dunlap, linux-kernel, virtualization, target-devel, linux-next On Thu, May 16, 2013 at 01:04:58PM +0930, Rusty Russell wrote: > Asias He <asias@redhat.com> writes: > > On Wed, May 15, 2013 at 02:47:53PM +0930, Rusty Russell wrote: > >> Asias He <asias@redhat.com> writes: > >> > scsi.c includes vhost.c which uses memcpy_fromiovec. > >> > > >> > This patch fixes this build failure. > >> > > >> > From Randy Dunlap: > >> > ''' > >> > on x86_64: > >> > > >> > ERROR: "memcpy_fromiovec" [drivers/vhost/vhost_scsi.ko] undefined! > >> > > >> > It needs to depend on NET since net/core/ provides that function. > >> > ''' > >> > >> Proper fix please. > > > > --verbose please ;-) > > > > Making VHOST_SCSI depends on NET looks weird but this is because vhost > > core depends on it. A bunch of patches are cleaning this up. Since MST > > wanted do the vhost.ko split up in 3.11, plus your WIP vringh work, so I > > wanted the fix for 3.10 as minimum as possible. > > If this isn't the only symbol causing the problem, then this should be > mentioned in the changelog. If it is, it should be fixed: we have > plenty of time for that. > > Either way, your commit message or the commit itself needs to justify > it! memcpy_fromiovec is the only one causing the problem. > > > Other users are using memcpy_fromiovec and friends outside net. It seems > > a good idea to put it in a util library. e.g. crypto/algif_skcipher.c > > which also depends on NET for it. > > > >> Though I can't see why you thought this was a good idea. Nonetheless, I > >> shan't highlight why: I have far too much respect for your intellects > >> and abilities. > >> > >> No, don't thank me! > > > > Interesting. > > Heh... I originally wrote an explanation, then found it a bit insulting: > I knew I didn't need to tell you :) ;-) > How's this? Looks good and the commit log is more informative. The memcpy_toiovec memcpy_toiovecend memcpy_fromiovec memcpy_fromiovecend are all not net specific. How about move them all to lib/ ? Also need to make sure all the callers have uio.h included. e.g. drivers/dma/iovlock.c > From: Rusty Russell <rusty@rustcorp.com.au> > Subject: Hoist memcpy_fromiovec into lib/ > > ERROR: "memcpy_fromiovec" [drivers/vhost/vhost_scsi.ko] undefined! > > That function is only present with CONFIG_NET. Turns out that > crypto/algif_skcipher.c also uses that outside net, but it actually > needs sockets anyway. > > socket.h already include uio.h, so no callers need updating. > > Reported-by: Randy Dunlap <rdunlap@infradead.org> > Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> > > diff --git a/include/linux/socket.h b/include/linux/socket.h > index 428c37a..7266775 100644 > --- a/include/linux/socket.h > +++ b/include/linux/socket.h > @@ -305,7 +305,6 @@ struct ucred { > > extern void cred_to_ucred(struct pid *pid, const struct cred *cred, struct ucred *ucred); > > -extern int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len); > extern int memcpy_fromiovecend(unsigned char *kdata, const struct iovec *iov, > int offset, int len); > extern int csum_partial_copy_fromiovecend(unsigned char *kdata, > diff --git a/include/linux/uio.h b/include/linux/uio.h > index 629aaf5..21628d3 100644 > --- a/include/linux/uio.h > +++ b/include/linux/uio.h > @@ -35,4 +35,6 @@ static inline size_t iov_length(const struct iovec *iov, unsigned long nr_segs) > } > > unsigned long iov_shorten(struct iovec *iov, unsigned long nr_segs, size_t to); > + > +int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len); > #endif > diff --git a/lib/Makefile b/lib/Makefile > index e9c52e1..2377211 100644 > --- a/lib/Makefile > +++ b/lib/Makefile > @@ -9,7 +9,7 @@ endif > > lib-y := ctype.o string.o vsprintf.o cmdline.o \ > rbtree.o radix-tree.o dump_stack.o timerqueue.o\ > - idr.o int_sqrt.o extable.o \ > + idr.o int_sqrt.o extable.o iovec.o \ > sha1.o md5.o irq_regs.o reciprocal_div.o argv_split.o \ > proportions.o flex_proportions.o prio_heap.o ratelimit.o show_mem.o \ > is_single_threaded.o plist.o decompress.o kobject_uevent.o \ > diff --git a/lib/iovec.c b/lib/iovec.c > new file mode 100644 > index 0000000..632c5ea > --- /dev/null > +++ b/lib/iovec.c > @@ -0,0 +1,29 @@ > +#include <linux/uaccess.h> > +#include <linux/export.h> > +#include <linux/uio.h> > + > +/* > + * Copy iovec to kernel. Returns -EFAULT on error. > + * > + * Note: this modifies the original iovec. > + */ > + > +int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len) > +{ > + while (len > 0) { > + if (iov->iov_len) { > + int copy = min_t(unsigned int, len, iov->iov_len); > + if (copy_from_user(kdata, iov->iov_base, copy)) > + return -EFAULT; > + len -= copy; > + kdata += copy; > + iov->iov_base += copy; > + iov->iov_len -= copy; > + } > + iov++; > + } > + > + return 0; > +} > +EXPORT_SYMBOL(memcpy_fromiovec); > + > diff --git a/net/core/iovec.c b/net/core/iovec.c > index 7e7aeb0..d81257f 100644 > --- a/net/core/iovec.c > +++ b/net/core/iovec.c > @@ -125,31 +125,6 @@ int memcpy_toiovecend(const struct iovec *iov, unsigned char *kdata, > EXPORT_SYMBOL(memcpy_toiovecend); > > /* > - * Copy iovec to kernel. Returns -EFAULT on error. > - * > - * Note: this modifies the original iovec. > - */ > - > -int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len) > -{ > - while (len > 0) { > - if (iov->iov_len) { > - int copy = min_t(unsigned int, len, iov->iov_len); > - if (copy_from_user(kdata, iov->iov_base, copy)) > - return -EFAULT; > - len -= copy; > - kdata += copy; > - iov->iov_base += copy; > - iov->iov_len -= copy; > - } > - iov++; > - } > - > - return 0; > -} > -EXPORT_SYMBOL(memcpy_fromiovec); > - > -/* > * Copy iovec from kernel. Returns -EFAULT on error. > */ > -- Asias ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH] vhost-scsi: Depend on NET for memcpy_fromiovec 2013-05-16 3:34 ` Rusty Russell 2013-05-16 3:55 ` Joe Perches 2013-05-16 4:35 ` Asias He @ 2013-05-16 6:36 ` Michael S. Tsirkin 2 siblings, 0 replies; 23+ messages in thread From: Michael S. Tsirkin @ 2013-05-16 6:36 UTC (permalink / raw) To: Rusty Russell Cc: Stephen Rothwell, kvm, netdev, Randy Dunlap, linux-kernel, virtualization, target-devel, linux-next On Thu, May 16, 2013 at 01:04:58PM +0930, Rusty Russell wrote: > Asias He <asias@redhat.com> writes: > > On Wed, May 15, 2013 at 02:47:53PM +0930, Rusty Russell wrote: > >> Asias He <asias@redhat.com> writes: > >> > scsi.c includes vhost.c which uses memcpy_fromiovec. > >> > > >> > This patch fixes this build failure. > >> > > >> > From Randy Dunlap: > >> > ''' > >> > on x86_64: > >> > > >> > ERROR: "memcpy_fromiovec" [drivers/vhost/vhost_scsi.ko] undefined! > >> > > >> > It needs to depend on NET since net/core/ provides that function. > >> > ''' > >> > >> Proper fix please. > > > > --verbose please ;-) > > > > Making VHOST_SCSI depends on NET looks weird but this is because vhost > > core depends on it. A bunch of patches are cleaning this up. Since MST > > wanted do the vhost.ko split up in 3.11, plus your WIP vringh work, so I > > wanted the fix for 3.10 as minimum as possible. > > If this isn't the only symbol causing the problem, then this should be > mentioned in the changelog. If it is, it should be fixed: we have > plenty of time for that. > > Either way, your commit message or the commit itself needs to justify > it! > > > Other users are using memcpy_fromiovec and friends outside net. It seems > > a good idea to put it in a util library. e.g. crypto/algif_skcipher.c > > which also depends on NET for it. > > > >> Though I can't see why you thought this was a good idea. Nonetheless, I > >> shan't highlight why: I have far too much respect for your intellects > >> and abilities. > >> > >> No, don't thank me! > > > > Interesting. > > Heh... I originally wrote an explanation, then found it a bit insulting: > I knew I didn't need to tell you :) > > How's this? > > From: Rusty Russell <rusty@rustcorp.com.au> > Subject: Hoist memcpy_fromiovec into lib/ > > ERROR: "memcpy_fromiovec" [drivers/vhost/vhost_scsi.ko] undefined! > > That function is only present with CONFIG_NET. Turns out that > crypto/algif_skcipher.c also uses that outside net, but it actually > needs sockets anyway. > > socket.h already include uio.h, so no callers need updating. > > Reported-by: Randy Dunlap <rdunlap@infradead.org> > Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Acked-by: Michael S. Tsirkin <mst@redhat.com> Would you like me to merge this through the vhost tree? If I do I can drop #include "linux/socket.h" from vhost.c right now. > diff --git a/include/linux/socket.h b/include/linux/socket.h > index 428c37a..7266775 100644 > --- a/include/linux/socket.h > +++ b/include/linux/socket.h > @@ -305,7 +305,6 @@ struct ucred { > > extern void cred_to_ucred(struct pid *pid, const struct cred *cred, struct ucred *ucred); > > -extern int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len); > extern int memcpy_fromiovecend(unsigned char *kdata, const struct iovec *iov, > int offset, int len); > extern int csum_partial_copy_fromiovecend(unsigned char *kdata, > diff --git a/include/linux/uio.h b/include/linux/uio.h > index 629aaf5..21628d3 100644 > --- a/include/linux/uio.h > +++ b/include/linux/uio.h > @@ -35,4 +35,6 @@ static inline size_t iov_length(const struct iovec *iov, unsigned long nr_segs) > } > > unsigned long iov_shorten(struct iovec *iov, unsigned long nr_segs, size_t to); > + > +int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len); > #endif > diff --git a/lib/Makefile b/lib/Makefile > index e9c52e1..2377211 100644 > --- a/lib/Makefile > +++ b/lib/Makefile > @@ -9,7 +9,7 @@ endif > > lib-y := ctype.o string.o vsprintf.o cmdline.o \ > rbtree.o radix-tree.o dump_stack.o timerqueue.o\ > - idr.o int_sqrt.o extable.o \ > + idr.o int_sqrt.o extable.o iovec.o \ > sha1.o md5.o irq_regs.o reciprocal_div.o argv_split.o \ > proportions.o flex_proportions.o prio_heap.o ratelimit.o show_mem.o \ > is_single_threaded.o plist.o decompress.o kobject_uevent.o \ > diff --git a/lib/iovec.c b/lib/iovec.c > new file mode 100644 > index 0000000..632c5ea > --- /dev/null > +++ b/lib/iovec.c > @@ -0,0 +1,29 @@ > +#include <linux/uaccess.h> > +#include <linux/export.h> > +#include <linux/uio.h> > + > +/* > + * Copy iovec to kernel. Returns -EFAULT on error. > + * > + * Note: this modifies the original iovec. > + */ > + > +int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len) > +{ > + while (len > 0) { > + if (iov->iov_len) { > + int copy = min_t(unsigned int, len, iov->iov_len); > + if (copy_from_user(kdata, iov->iov_base, copy)) > + return -EFAULT; > + len -= copy; > + kdata += copy; > + iov->iov_base += copy; > + iov->iov_len -= copy; > + } > + iov++; > + } > + > + return 0; > +} > +EXPORT_SYMBOL(memcpy_fromiovec); > + > diff --git a/net/core/iovec.c b/net/core/iovec.c > index 7e7aeb0..d81257f 100644 > --- a/net/core/iovec.c > +++ b/net/core/iovec.c > @@ -125,31 +125,6 @@ int memcpy_toiovecend(const struct iovec *iov, unsigned char *kdata, > EXPORT_SYMBOL(memcpy_toiovecend); > > /* > - * Copy iovec to kernel. Returns -EFAULT on error. > - * > - * Note: this modifies the original iovec. > - */ > - > -int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len) > -{ > - while (len > 0) { > - if (iov->iov_len) { > - int copy = min_t(unsigned int, len, iov->iov_len); > - if (copy_from_user(kdata, iov->iov_base, copy)) > - return -EFAULT; > - len -= copy; > - kdata += copy; > - iov->iov_base += copy; > - iov->iov_len -= copy; > - } > - iov++; > - } > - > - return 0; > -} > -EXPORT_SYMBOL(memcpy_fromiovec); > - > -/* > * Copy iovec from kernel. Returns -EFAULT on error. > */ > > _______________________________________________ > Virtualization mailing list > Virtualization@lists.linux-foundation.org > https://lists.linuxfoundation.org/mailman/listinfo/virtualization ^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2013-05-23 7:30 UTC | newest] Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2013-05-14 4:17 linux-next: Tree for May 14 Stephen Rothwell 2013-05-14 19:16 ` linux-next: Tree for May 14 (vhost_scsi) Randy Dunlap 2013-05-14 23:55 ` Stephen Rothwell 2013-05-15 0:59 ` [PATCH] vhost-scsi: Depend on NET for memcpy_fromiovec Asias He 2013-05-15 3:10 ` Nicholas A. Bellinger 2013-05-15 3:44 ` Asias He 2013-05-15 5:17 ` Rusty Russell 2013-05-15 22:37 ` Nicholas A. Bellinger 2013-05-15 23:35 ` Rusty Russell 2013-05-16 2:16 ` Asias He 2013-05-16 3:10 ` David Miller 2013-05-16 6:46 ` Michael S. Tsirkin 2013-05-16 9:10 ` David Miller 2013-05-16 1:48 ` Asias He 2013-05-16 6:42 ` Michael S. Tsirkin 2013-05-16 2:08 ` Asias He 2013-05-16 3:34 ` Rusty Russell 2013-05-16 3:55 ` Joe Perches 2013-05-16 23:42 ` Rusty Russell 2013-05-17 4:42 ` Randy Dunlap 2013-05-23 7:30 ` Michael S. Tsirkin 2013-05-16 4:35 ` Asias He 2013-05-16 6:36 ` Michael S. Tsirkin
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).