linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* linux-next: Tree for Jun 21
@ 2016-06-21  5:46 Stephen Rothwell
  2016-06-21  7:01 ` Sudip Mukherjee
  0 siblings, 1 reply; 25+ messages in thread
From: Stephen Rothwell @ 2016-06-21  5:46 UTC (permalink / raw)
  To: linux-next; +Cc: linux-kernel

Hi all,

Changes since 20160620:

The net-next tree gained conflicts against the arm-doc tree.

The akpm-current tree gained a conflict against the arm-soc tree.

Non-merge commits (relative to Linus' tree): 4462
 4490 files changed, 203456 insertions(+), 78511 deletions(-)

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

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

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

Below is a summary of the state of the merge.

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

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

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

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

-- 
Cheers,
Stephen Rothwell

$ git checkout master
$ git reset --hard stable
Merging origin/master (67016f6cdfd0 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs)
Merging fixes/master (5edb56491d48 Linux 4.7-rc3)
Merging kbuild-current/rc-fixes (b36fad65d61f kbuild: Initialize exported variables)
Merging arc-current/for-curr (5edb56491d48 Linux 4.7-rc3)
Merging arm-current/fixes (56530f5d2ddc ARM: 8579/1: mm: Fix definition of pmd_mknotpresent)
Merging m68k-current/for-linus (9a6462763b17 m68k/mvme16x: Include generic <linux/rtc.h>)
Merging metag-fixes/fixes (0164a711c97b metag: Fix ioremap_wc/ioremap_cached build errors)
Merging powerpc-fixes/fixes (8550e2fa34f0 powerpc/mm/hash: Use the correct PPP mask when updating HPTE)
Merging powerpc-merge-mpe/fixes (bc0195aad0da Linux 4.2-rc2)
Merging sparc/master (6b15d6650c53 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net)
Merging net/master (ab522fd68bc7 Merge branch 'qed-fixes')
Merging ipsec/master (d6af1a31cc72 vti: Add pmtu handling to vti_xmit.)
Merging ipvs/master (50219538ffc0 vmxnet3: segCnt can be 1 for LRO packets)
Merging wireless-drivers/master (034fdd4a17ff Merge ath-current from ath.git)
Merging mac80211/master (3d5fdff46c4b wext: Fix 32 bit iwpriv compatibility issue with 64 bit Kernel)
Merging sound-current/for-linus (8198868f0a28 ALSA: hdac_regmap - fix the register access for runtime PM)
Merging pci-current/for-linus (ef0dab4aae14 PCI: Fix unaligned accesses in VC code)
Merging driver-core.current/driver-core-linus (e80dac114c63 Merge tag 'usb-4.7-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb)
Merging tty.current/tty-linus (33688abb2802 Linux 4.7-rc4)
Merging usb.current/usb-linus (33688abb2802 Linux 4.7-rc4)
Merging usb-gadget-fixes/fixes (50c763f8c1ba usb: dwc3: Set the ClearPendIN bit on Clear Stall EP command)
Merging usb-serial-fixes/usb-linus (33688abb2802 Linux 4.7-rc4)
Merging usb-chipidea-fixes/ci-for-usb-stable (ea1d39a31d3b usb: common: otg-fsm: add license to usb-otg-fsm)
Merging staging.current/staging-linus (33688abb2802 Linux 4.7-rc4)
Merging char-misc.current/char-misc-linus (e80dac114c63 Merge tag 'usb-4.7-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb)
Merging input-current/for-linus (30172936eefb MAINTAINERS: add Pali Rohár as reviewer of ALPS PS/2 touchpad driver)
Merging crypto-current/master (19ced623db2f crypto: ux500 - memmove the right size)
Merging ide/master (1993b176a822 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide)
Merging rr-fixes/fixes (8244062ef1e5 modules: fix longstanding /proc/kallsyms vs module insertion race.)
Merging vfio-fixes/for-linus (ce7585f3c4d7 vfio/pci: Allow VPD short read)
Merging kselftest-fixes/fixes (f80eb4289491 selftests/exec: Makefile is a run-time dependency, add it to the install list)
Merging backlight-fixes/for-backlight-fixes (68feaca0b13e backlight: pwm: Handle EPROBE_DEFER while requesting the PWM)
Merging ftrace-fixes/for-next-urgent (6224beb12e19 tracing: Have branch tracer use recursive field of task struct)
Merging mfd-fixes/for-mfd-fixes (59461c018204 mfd: max77620: Fix FPS switch statements)
Merging drm-intel-fixes/for-linux-next-fixes (33688abb2802 Linux 4.7-rc4)
Merging asm-generic/master (b0da6d44157a asm-generic: Drop renameat syscall from default list)
Merging arc/for-next (5edb56491d48 Linux 4.7-rc3)
Merging arm/for-next (f07617e99523 Merge branches 'component', 'fixes' and 'misc' into for-next)
Merging arm-perf/for-next/perf (4ba2578fa7b5 arm64: perf: don't expose CHAIN event in sysfs)
Merging arm-soc/for-next (301c2be27a25 ARM: SoC: Document merges)
Merging amlogic/for-next (32535cf02be1 Merge branch 'v4.7/deps/external' into tmp/aml-reset)
Merging at91/at91-next (0f59c948faed Merge tag 'at91-ab-4.8-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux into at91-next)
Merging bcm2835/for-next (aa5c0a1e15c2 Merge branch anholt/bcm2835-dt-64-next into for-next)
Merging berlin/berlin/for-next (1a695a905c18 Linux 4.7-rc1)
Merging cortex-m/for-next (f719a0d6a854 ARM: efm32: switch to vendor,device compatible strings)
Merging imx-mxs/for-next (24c3004a3258 Merge branch 'imx/defconfig' into for-next)
Merging keystone/next (a9015e7c9dd2 Merge branch 'for_4.8/keystone_config' into next)
Merging mvebu/for-next (56454a34f5d6 Merge branch 'mvebu/defconfig64' into mvebu/for-next)
Merging omap/for-next (be5f1e3cfa86 Merge branch 'omap-for-v4.7/fixes' into for-next)
Merging omap-pending/for-next (c20c8f750d9f ARM: OMAP2+: hwmod: fix _idle() hwmod state sanity check sequence)
Merging qcom/for-next (275804c07f41 firmware: qcom: scm: Peripheral Authentication Service)
Merging renesas/next (068fb78080df Merge branches 'heads/defconfig-for-v4.8' and 'heads/dt-for-v4.8' into next)
Merging rockchip/for-next (5e46e8d66d01 Merge branch 'v4.7-clk/fixes' into for-next)
Merging rpi/for-rpi-next (bc0195aad0da Linux 4.2-rc2)
Merging samsung/for-next (92e963f50fc7 Linux 4.5-rc1)
Merging samsung-krzk/for-next (28eded213510 Merge branch 'next/drivers' into for-next)
CONFLICT (content): Merge conflict in arch/arm/boot/dts/exynos5420.dtsi
Merging tegra/for-next (7c7a0b23a909 Merge branch for-4.8/arm64 into for-next)
Merging arm64/for-next/core (e6d9a5254333 arm64: do not enforce strict 16 byte alignment to stack pointer)
Merging blackfin/for-linus (391e74a51ea2 eth: bf609 eth clock: add pclk clock for stmmac driver probe)
CONFLICT (content): Merge conflict in arch/blackfin/mach-common/pm.c
Merging c6x/for-linux-next (ca3060d39ae7 c6x: Use generic clkdev.h header)
Merging cris/for-next (f9f3f864b5e8 cris: Fix section mismatches in architecture startup code)
Merging h8300/h8300-next (58c57526711f h8300: Add missing include file to asm/io.h)
Merging hexagon/linux-next (02cc2ccfe771 Revert "Hexagon: fix signal.c compile error")
Merging ia64/next (70f4f9352317 ia64: efi: use timespec64 for persistent clock)
Merging m68k/for-next (9a6462763b17 m68k/mvme16x: Include generic <linux/rtc.h>)
Merging m68knommu/for-next (5edb56491d48 Linux 4.7-rc3)
Merging metag/for-next (592ddeeff8cb metag: Fix typos)
Merging microblaze/next (52e9e6e05617 microblaze: pci: export isa_io_base to fix link errors)
Merging mips/mips-for-linux-next (847e858f3d0e SSB: Change bare unsigned to unsigned int to suit coding style)
Merging nios2/for-next (9fa78f63a892 nios2: Add order-only DTC dependency to %.dtb target)
Merging parisc-hd/for-next (5975b2c0c10a Merge branch 'parisc-4.7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux)
Merging powerpc/next (a43073900938 cxl: Make vPHB device node match adapter's)
Merging powerpc-mpe/next (bc0195aad0da Linux 4.2-rc2)
Merging fsl/next (1eef33bec12d powerpc/86xx: Fix PCI interrupt map definition)
Merging mpc5xxx/next (39e69f55f857 powerpc: Introduce the use of the managed version of kzalloc)
Merging s390/features (63bf903583d7 Revert "s390/kdump: Clear subchannel ID to signal non-CCW/SCSI IPL")
Merging sparc-next/master (9f935675d41a Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input)
Merging tile/master (ca768667d873 tile 32-bit big-endian: fix bugs in syscall argument order)
Merging uml/linux-next (a78ff1112263 um: add extended processor state save/restore support)
Merging unicore32/unicore32 (c83d8b2fc986 unicore32: mm: Add missing parameter to arch_vma_access_permitted)
Merging xtensa/for_next (9da8320bb977 xtensa: add test_kc705_hifi variant)
Merging btrfs/next (c315ef8d9db7 Merge branch 'for-chris-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/fdmanana/linux into for-linus-4.7)
Merging btrfs-kdave/for-next (8f4aa7bf64af Merge branch 'for-next-next-4.7-20160617' into for-next-20160617)
Merging ceph/master (f6973c09490c ceph: use i_version to check validity of fscache)
Merging cifs/for-next (3bdc426e2497 cifs: dynamic allocation of ntlmssp blob)
Merging configfs/for-next (96c22a329351 configfs: fix CONFIGFS_BIN_ATTR_[RW]O definitions)
Merging ecryptfs/next (40f0fd372a62 ecryptfs: fix spelling mistakes)
Merging ext3/for_next (e008bb6134a6 quota: use time64_t internally)
Merging ext4/dev (12735f881952 ext4: pre-zero allocated blocks for DAX IO)
Merging f2fs/dev (a2481adac819 f2fs: avoid latency-critical readahead of node pages)
Merging fscache/fscache (b00c2ae2ed3c FS-Cache: Don't override netfs's primary_index if registering failed)
Merging fuse/for-next (507c552aa58f fuse: improve aio directIO write performance for size extending writes)
Merging gfs2/for-next (1e875f5a95a2 gfs2: Initialize iopen glock holder for new inodes)
Merging jfs/jfs-next (6ed71e9819ac jfs: Coalesce some formats)
Merging nfs/linux-next (30e3c0071a1f Merge branch 'writeback')
Merging nfsd/nfsd-next (ee8f2a36a99c nfsd: allow nfsd to advertise multiple layout types)
Merging orangefs/for-next (2dcd0af568b0 Linux 4.6)
Merging overlayfs/overlayfs-next (f920c41f047a ovl: move some common code in a function)
Merging v9fs/for-next (a333e4bf2556 fs/9p: use fscache mutex rather than spinlock)
Merging ubifs/linux-next (61edc3f3b51d ubi: Don't bypass ->getattr())
Merging xfs/for-next (26f1fe858f27 xfs: reduce lock hold times in buffer writeback)
Merging file-locks/linux-next (5af9c2e19da6 Merge branch 'akpm' (patches from Andrew))
Merging vfs/for-next (1eb82bc8e712 Merge branch 'for-linus' into for-next)
Merging pci/next (970f335ef406 Merge branch 'pci/resource' into next)
Merging pstore/for-next/pstore (35da60941e44 pstore/ram: add Device Tree bindings)
Merging hid/for-next (a4d06823021a Merge branch 'for-4.8/alps' into for-next)
Merging i2c/i2c/for-next (d86a4c24d68e Merge branch 'i2c/for-current' into i2c/for-next)
Merging jdelvare-hwmon/master (18c358ac5e32 Documentation/hwmon: Update links in max34440)
Merging dmi/master (c3db05ecf8ac firmware: dmi_scan: Save SMBIOS Type 9 System Slots)
Merging hwmon-staging/hwmon-next (d4db8217f4b7 hwmon: (dell-smm) In debug mode log duration of SMM calls)
Merging v4l-dvb/master (2ed52999aaf3 Merge branch 'patchwork' into to_next)
Merging pm/linux-next (8fa3e03d9249 Merge branches 'pm-cpufreq-fixes' and 'acpica-fixes' into linux-next)
Merging idle/next (f55532a0c0b8 Linux 4.6-rc1)
Merging thermal/next (2c5ce98e1e83 thermal: sysfs: add comments describing locking strategy)
Merging thermal-soc/next (ddc8fdc6e2f0 Merge branch 'work-fixes' into work-next)
CONFLICT (add/add): Merge conflict in drivers/thermal/tango_thermal.c
CONFLICT (content): Merge conflict in drivers/thermal/rockchip_thermal.c
Merging ieee1394/for-next (384fbb96f926 firewire: nosy: Replace timeval with timespec64)
Merging dlm/next (82c7d823cc31 dlm: config: Fix ENOMEM failures in make_cluster())
Merging swiotlb/linux-next (386744425e35 swiotlb: Make linux/swiotlb.h standalone includible)
Merging slave-dma/next (f1faa4f5b460 Merge branch 'topic/tegra' into next)
Merging net-next/master (697666eac664 net: ethernet: bcmsysport: use phy_ethtool_{get|set}_link_ksettings)
CONFLICT (content): Merge conflict in tools/virtio/ringtest/Makefile
CONFLICT (content): Merge conflict in net/rds/tcp_listen.c
CONFLICT (content): Merge conflict in net/rds/tcp_connect.c
CONFLICT (content): Merge conflict in drivers/net/ethernet/qlogic/qed/qed_hsi.h
CONFLICT (content): Merge conflict in arch/arm64/boot/dts/broadcom/ns2.dtsi
CONFLICT (content): Merge conflict in arch/arm64/boot/dts/broadcom/ns2-svk.dts
Merging ipsec-next/master (cb866e3298cd xfrm: Increment statistic counter on inner mode error)
Merging ipvs-next/master (625b44fc15f8 ipvs: count pre-established TCP states as active)
Merging wireless-drivers-next/master (1bb57c8a5e33 Merge ath-next from ath.git)
Merging bluetooth/master (a78c16e1b9ea mdio: mux: avoid 'maybe-uninitialized' warning)
Merging mac80211-next/master (e69f73bfecb0 Merge branch 'remove-qdisc-throttle')
Merging rdma/for-next (61c78eea9516 IB/IPoIB: Don't update neigh validity for unresolved entries)
Merging rdma-leon/rdma-next (5edb56491d48 Linux 4.7-rc3)
Merging rdma-leon-test/testing/rdma-next (a5792590474b Merge branch 'topic/rxe' into testing/rdma-next)
Merging mtd/master (becc7ae544c6 MAINTAINERS: Add file patterns for mtd device tree bindings)
Merging l2-mtd/master (95193796256c mtd: m25p80: read in spi_max_transfer_size chunks)
Merging nand/nand/next (ba6f6d603b45 mtd: nandbiterrs: Support for NAND biterrors test on platforms without raw write)
Merging crypto/master (01ac94580ac2 crypto: drbg - fix an error code in drbg_init_sym_kernel())
Merging drm/drm-next (a0877f520352 Merge tag 'topic/drm-misc-2016-06-15' of git://anongit.freedesktop.org/drm-intel into drm-next)
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/intel_display.c
Merging drm-panel/drm/panel/for-next (f103b93d90c2 drm/dsi: Add uevent callback)
Merging drm-intel/for-linux-next (aeecc9696aa0 drm/i915: use ORIGIN_CPU for frontbuffer invalidation on WC mmaps)
Merging drm-tegra/drm/tegra/for-next (057eab2013ec MAINTAINERS: Remove Terje Bergström as Tegra DRM maintainer)
Merging drm-misc/topic/drm-misc (ce833ba9693c drm: Mark set/drop master ioctl as unlocked.)
Merging drm-exynos/exynos-drm/for-next (25364a9e54fb Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid)
Merging drm-msm/msm-next (2b669875332f drm/msm: Drop load/unload drm_driver ops)
Merging hdlcd/for-upstream/hdlcd (f6c68b4bd4a9 drm: hdlcd: Add information about the underlying framebuffers in debugfs)
Merging mali-dp/for-upstream/mali-dp (59ba2422b430 MAINTAINERS: Add entry for Mali-DP driver)
Merging sunxi/sunxi/for-next (b7e7559f439c Merge branches 'sunxi/clk-fixes-for-4.7', 'sunxi/dt-for-4.8' and 'sunxi/fixes-for-4.7' into sunxi/for-next)
Merging kbuild/for-next (3f306a53b571 Merge branch 'kbuild/rc-fixes' into kbuild/for-next)
Applying: gcc-plugins: disable under COMPILE_TEST
Merging kspp/for-next/kspp (6b31814f0507 gcc-plugins: disable under COMPILE_TEST)
Merging kconfig/for-next (5bcba792bb30 localmodconfig: Fix whitespace repeat count after "tristate")
Merging regmap/for-next (65a003e5c0c9 Merge remote-tracking branches 'regmap/topic/irq' and 'regmap/topic/maintainers' into regmap-next)
Merging sound/for-next (3915bf294652 ALSA: seq_timer: use monotonic times internally)
Merging sound-asoc/for-next (1a7d46a9dfeb Merge remote-tracking branches 'asoc/topic/wm8731' and 'asoc/topic/wm8985' into asoc-next)
Merging modules/modules-next (e2d1248432c4 module: Disable MODULE_FORCE_LOAD when MODULE_SIG_FORCE is enabled)
Merging input/next (9096a45d99d0 Input: psmouse - use same format for secondary devices as for primary)
Merging block/for-next (3cee5575153a Merge branch 'for-4.8/core' into for-next)
CONFLICT (content): Merge conflict in fs/f2fs/segment.c
CONFLICT (content): Merge conflict in fs/f2fs/data.c
CONFLICT (content): Merge conflict in fs/btrfs/extent_io.c
CONFLICT (content): Merge conflict in block/blk-lib.c
Merging lightnvm/for-next (2a65aee4011b lightnvm: reserved space calculation incorrect)
Merging device-mapper/for-next (68c1c4d5eafc dm raid: don't use 'const' in function return)
Merging pcmcia/master (e8e68fd86d22 pcmcia: do not break rsrc_nonstatic when handling anonymous cards)
Merging mmc-uh/next (b28173343703 mmc: tmio: make a cast explicit)
Merging md/for-next (d787be4092e2 md: reduce the number of synchronize_rcu() calls when multiple devices fail.)
CONFLICT (content): Merge conflict in drivers/md/raid10.c
CONFLICT (content): Merge conflict in drivers/md/raid1.c
Merging mfd/for-mfd-next (1cf9326d4c07 mfd: max14577: Allow driver to be built as a module)
Merging backlight/for-backlight-next (4db8c9572ce1 backlight: lp855x: Add enable regulator)
Merging battery/master (2e05b518c897 power_supply: bq27xxx_battery: Group register mappings into one table)
Merging omap_dss2/for-next (ab366b40b851 fbdev: Use IS_ENABLED() instead of checking for built-in or module)
Merging regulator/for-next (1fc4aeb3d151 Merge remote-tracking branches 'regulator/topic/mt6397', 'regulator/topic/pfuze100', 'regulator/topic/pwm', 'regulator/topic/qcom-smd' and 'regulator/topic/twl' into regulator-next)
Merging security/next (26703c636c1f um/ptrace: run seccomp after ptrace)
Merging integrity/next (848b134bf8e7 ima: extend the measurement entry specific pcr)
Merging keys/keys-next (75aeddd12f20 MAINTAINERS: Update keyrings record and add asymmetric keys record)
Merging selinux/next (309c5fad5de4 selinux: fix type mismatch)
Merging tpmdd/next (3051e8c00764 tpm_crb: fix address space of the return pointer in crb_map_res())
CONFLICT (content): Merge conflict in Documentation/devicetree/bindings/vendor-prefixes.txt
Merging watchdog/master (1a695a905c18 Linux 4.7-rc1)
Merging iommu/next (8d16cf6b773d Merge branches 'iommu/fixes', 'x86/amd', 'x86/vt-d' and 'arm/exynos' into next)
Merging dwmw2-iommu/master (2566278551d3 Merge git://git.infradead.org/intel-iommu)
Merging vfio/next (f70552809419 vfio_pci: Test for extended capabilities if config space > 256 bytes)
Merging jc_docs/docs-next (8569de68e79e docs: kernel-doc: Add "example" and "note" to the magic section types)
Merging trivial/for-next (52bbe141f37f gitignore: fix wording)
Merging audit/next (66b12abc846d audit: fix some horrible switch statement style crimes)
Merging devicetree/for-next (06dfeef88573 drivers: of: add definition of early_init_dt_alloc_reserved_memory_arch)
Merging mailbox/mailbox-for-next (9ef3c5112139 mailbox: mailbox-test: set tdev->signal to NULL after freeing)
Merging spi/for-next (10a340f4245c Merge remote-tracking branches 'spi/topic/rockchip' and 'spi/topic/sunxi' into spi-next)
Merging tip/auto-latest (b5bb8af4e79a Merge branch 'linus')
Merging clockevents/clockevents/next (5a634113ad0e Merge branch 'clockevents/compile-test' into clockevents/next)
CONFLICT (content): Merge conflict in arch/arm/mach-mxs/Kconfig
CONFLICT (content): Merge conflict in arch/arm/Kconfig
Merging edac/linux_next (12f0721c5a70 sb_edac: correctly fetch DIMM width on Ivy Bridge and Haswell)
Merging edac-amd/for-next (bba142957e04 EDAC: Correct channel count limit)
Merging irqchip/irqchip/for-next (ebf63bb87f67 Merge branch 'irqchip/misc' into irqchip/for-next)
Merging ftrace/for-next (97f8827a8c79 ftracetest: Use proper logic to find process PID)
Merging rcu/rcu/next (149f93308f57 rcutorture: Remove outdated config option description)
CONFLICT (content): Merge conflict in kernel/rcu/tree.c
Applying: rcu: merge fix for kernel/rcu/tree_exp.h
Merging kvm/linux-next (64672c95ea4c kvm: vmx: hook preemption timer support)
CONFLICT (content): Merge conflict in arch/s390/hypfs/hypfs_diag.c
Applying: s390: fix merge conflict in arch/s390/kvm/kvm-s390.c
Applying: s390: merge fix up for __diag204 move
Merging kvm-arm/next (35a2d58588f0 KVM: arm/arm64: vgic-new: Synchronize changes to active state)
Merging kvm-ppc/kvm-ppc-next (c63517c2e381 KVM: PPC: Book3S: correct width in XER handling)
Merging kvm-ppc-paulus/kvm-ppc-next (b1a4286b8f33 KVM: PPC: Book3S HV: Re-enable XICS fast path for irqfd-generated interrupts)
Merging kvms390/next (4cb91a396757 KVM: s390: vsie: add module parameter "nested")
Merging xen-tip/linux-next (bdadcaf2a7c1 xen: remove incorrect forward declaration)
Merging percpu/for-next (6710e594f71c percpu: fix synchronization between synchronous map extension and chunk destruction)
Merging workqueues/for-next (d945b5e9f0e3 workqueue: Fix setting affinity of unbound worker threads)
Merging drivers-x86/for-next (b740d2e9233c platform/x86: Add PMC Driver for Intel Core SoC)
Merging chrome-platform/for-next (31b764171cb5 Revert "platform/chrome: chromeos_laptop: Add Leon Touch")
Merging hsi/for-next (ea12c45f1b36 hsi: Only descend into hsi directory when CONFIG_HSI is set)
Merging leds/for-next (94b275f398af unicore32: use the new LED disk activity trigger)
Merging ipmi/for-next (4e80ad011c9c ipmi: Remove smi_msg from waiting_rcv_msgs list before handle_one_recv_msg())
Merging driver-core/driver-core-next (5edb56491d48 Linux 4.7-rc3)
Merging tty/tty-next (33688abb2802 Linux 4.7-rc4)
Merging usb/usb-next (aa5e94a2e133 Revert "usb: ohci-at91: Forcibly suspend ports while USB suspend")
Merging usb-gadget/next (2a58f9c12bb3 usb: dwc3: gadget: disable automatic calculation of ACK TP NUMP)
Merging usb-serial/usb-next (33688abb2802 Linux 4.7-rc4)
Merging usb-chipidea-next/ci-for-usb-next (764763f0a0c8 doc: usb: chipidea: update the doc for OTG FSM)
Merging staging/staging-next (af52739b922f Merge 4.7-rc4 into staging-next)
CONFLICT (modify/delete): drivers/staging/lustre/lustre/llite/lloop.c deleted in staging/staging-next and modified in HEAD. Version HEAD of drivers/staging/lustre/lustre/llite/lloop.c left in tree.
CONFLICT (modify/delete): drivers/staging/android/sync.h deleted in staging/staging-next and modified in HEAD. Version HEAD of drivers/staging/android/sync.h left in tree.
$ git rm -f drivers/staging/lustre/lustre/llite/lloop.c drivers/staging/android/sync.h
Applying: staging/android: merge fix up for sync.h renaming
Merging char-misc/char-misc-next (c0ff9019ee64 mei: drop wr_msg from the mei_dev structure)
Merging extcon/extcon-next (4239b7f76be3 Merge branch 'ib-extcon-powersupply-4.8' of https://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/extcon into extcon-next)
Merging cgroup/for-next (44fa3a451ffe Merge branch 'for-4.8' into for-next)
Merging scsi/for-next (3236f0748964 Merge branch 'misc' into for-next)
Merging target-updates/for-next (8f0dfb3d8b11 iscsi-target: Fix early sk_data_ready LOGIN_FLAGS_READY race)
Merging target-merge/for-next-merge (2994a7518317 cxgb4: update Kconfig and Makefile)
Merging libata/for-next (da780c64d2b6 Merge branch 'for-4.7-fixes' into for-next)
Merging pinctrl/for-next (fe9f516997c6 Merge branch 'devel' into for-next)
Merging vhost/linux-next (139ab4d4e68b tools/virtio: add noring tool)
Merging remoteproc/for-next (7a6271a80cae remoteproc/wkup_m3: Use MODULE_DEVICE_TABLE to export alias)
Merging rpmsg/for-next (ef583d362047 Merge branch 'rproc-next' into for-next)
Merging gpio/for-next (c35285cb1570 Merge branch 'devel' into for-next)
Merging dma-mapping/dma-mapping-next (d770e558e219 Linux 4.2-rc1)
Merging pwm/for-next (318480569156 pwm: lpss: pci: Enable PWM module on Intel Edison)
CONFLICT (content): Merge conflict in Documentation/devicetree/bindings/pwm/pwm-tiehrpwm.txt
Merging dma-buf/for-next (194cad44c4e1 dma-buf/sync_file: improve Kconfig description for Sync Files)
Merging userns/for-next (f2ca379642d7 namei: permit linking with CAP_FOWNER in userns)
Merging ktest/for-next (2dcd0af568b0 Linux 4.6)
Merging clk/clk-next (b6f4f1f2c6da Merge tag 'clk-samsung-4.8' of git://linuxtv.org/snawrocki/samsung into clk-next)
Merging aio/master (b562e44f507e Linux 4.5)
Merging kselftest/next (1a695a905c18 Linux 4.7-rc1)
Merging y2038/y2038 (4b277763c5b3 vfs: Add support to document max and min inode times)
Merging luto-misc/next (6436d4c1a83c x86/vdso: Fail the build if the vdso image has no dynamic section)
Merging borntraeger/linux-next (b562e44f507e Linux 4.5)
Merging livepatching/for-next (6d9122078097 Merge branch 'for-4.7/core' into for-next)
Merging coresight/next (d7005f22a2df coresight: add PM runtime calls to coresight_simple_func())
Merging rtc/rtc-next (c361db5c2c64 x86: include linux/ratelimit.h in nmi.c)
Merging hwspinlock/for-next (bd5717a4632c hwspinlock: qcom: Correct msb in regmap_field)
Merging nvdimm/libnvdimm-for-next (36092ee8ba69 Merge branch 'for-4.7/dax' into libnvdimm-for-next)
Merging dax-misc/dax-misc (4d9a2c874667 dax: Remove i_mmap_lock protection)
Merging akpm-current/current (dc87c36fac15 firmware-support-loading-into-a-pre-allocated-buffer-fix)
CONFLICT (content): Merge conflict in ipc/sem.c
CONFLICT (modify/delete): arch/arm/configs/bcm_defconfig deleted in HEAD and modified in akpm-current/current. Version akpm-current/current of arch/arm/configs/bcm_defconfig left in tree.
$ git rm -f arch/arm/configs/bcm_defconfig
Applying: mm: make optimistic check for swapin readahead fix
$ git checkout -b akpm remotes/origin/akpm/master
Applying: drivers/net/wireless/intel/iwlwifi/dvm/calib.c: simplfy min() expression
Applying: drivers/fpga/Kconfig: fix build failure
Applying: tree-wide: replace config_enabled() with IS_ENABLED()
Applying: include/linux/bitmap.h: cleanup
Merging akpm/master (59ff404f3689 include/linux/bitmap.h: cleanup)

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

* Re: linux-next: Tree for Jun 21
  2016-06-21  5:46 linux-next: Tree for Jun 21 Stephen Rothwell
@ 2016-06-21  7:01 ` Sudip Mukherjee
  2016-06-21  7:58   ` Peter Zijlstra
  2016-06-21 12:08   ` Chris Metcalf
  0 siblings, 2 replies; 25+ messages in thread
From: Sudip Mukherjee @ 2016-06-21  7:01 UTC (permalink / raw)
  To: Stephen Rothwell, linux-next, Peter Zijlstra (Intel),
	Ingo Molnar, Chris Metcalf
  Cc: linux-kernel, linux-arch

On Tuesday 21 June 2016 06:46 AM, Stephen Rothwell wrote:
> Hi all,
>
> Changes since 20160620:

tilepro defconfig is failing while doing "make prepare" and bisect shows 
the first bad commit as:

1af5de9af138 ("locking/atomic, arch/tile: Implement 
atomic{,64}_fetch_{add,sub,and,or,xor}()")

You can find today's build log at:
https://travis-ci.org/sudipm-mukherjee/parport/jobs/139112570

Please do let me know if i can help in any way to debug/solve this.

regards
sudip

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

* Re: linux-next: Tree for Jun 21
  2016-06-21  7:01 ` Sudip Mukherjee
@ 2016-06-21  7:58   ` Peter Zijlstra
  2016-06-21  8:55     ` Sudip Mukherjee
  2016-06-21 12:08   ` Chris Metcalf
  1 sibling, 1 reply; 25+ messages in thread
From: Peter Zijlstra @ 2016-06-21  7:58 UTC (permalink / raw)
  To: Sudip Mukherjee
  Cc: Stephen Rothwell, linux-next, Ingo Molnar, Chris Metcalf,
	linux-kernel, linux-arch

On Tue, Jun 21, 2016 at 08:01:36AM +0100, Sudip Mukherjee wrote:

> tilepro defconfig is failing while doing "make prepare" and bisect shows the
> first bad commit as:
> 
> 1af5de9af138 ("locking/atomic, arch/tile: Implement
> atomic{,64}_fetch_{add,sub,and,or,xor}()")
> 
> You can find today's build log at:
> https://travis-ci.org/sudipm-mukherjee/parport/jobs/139112570
> 
> Please do let me know if i can help in any way to debug/solve this.

I cannot reproduce, I tried both tip/master (which carries the patch you
fingered) and next/master.

My tilepro build ends in a vmlinux with just a single warning.


root@ivb-ep:/usr/src/linux-2.6# rm -rf tile-defconfig/ tile-tilepro_defconfig/
root@ivb-ep:/usr/src/linux-2.6# ./build-arch-defconfig.sh tilepro
make[1]: Entering directory `/usr/src/linux-2.6/tile-tilepro_defconfig'
  HOSTCC  scripts/basic/fixdep
  GEN     ./Makefile
  HOSTCC  scripts/kconfig/conf.o
  HOSTCC  scripts/kconfig/zconf.tab.o
  HOSTLD  scripts/kconfig/conf
#
# configuration written to .config
#
make[1]: Leaving directory `/usr/src/linux-2.6/tile-tilepro_defconfig'
../arch/tile/lib/cacheflush.c: In function 'finv_buffer_remote':
../arch/tile/lib/cacheflush.c:146:0: warning: ignoring #pragma unroll  [-Wunknown-pragmas]
 #pragma unroll 8
 
root@ivb-ep:/usr/src/linux-2.6# ls -la tile-tilepro_defconfig/vmlinux
vmlinux    vmlinux.o  

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

* Re: linux-next: Tree for Jun 21
  2016-06-21  7:58   ` Peter Zijlstra
@ 2016-06-21  8:55     ` Sudip Mukherjee
  0 siblings, 0 replies; 25+ messages in thread
From: Sudip Mukherjee @ 2016-06-21  8:55 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: Stephen Rothwell, linux-next, Ingo Molnar, Chris Metcalf,
	linux-kernel, linux-arch

On Tue, Jun 21, 2016 at 09:58:28AM +0200, Peter Zijlstra wrote:
> On Tue, Jun 21, 2016 at 08:01:36AM +0100, Sudip Mukherjee wrote:
> 
> > tilepro defconfig is failing while doing "make prepare" and bisect shows the
> > first bad commit as:
> > 
> > 1af5de9af138 ("locking/atomic, arch/tile: Implement
> > atomic{,64}_fetch_{add,sub,and,or,xor}()")
> > 
> > You can find today's build log at:
> > https://travis-ci.org/sudipm-mukherjee/parport/jobs/139112570
> > 
> > Please do let me know if i can help in any way to debug/solve this.
> 
> I cannot reproduce, I tried both tip/master (which carries the patch you
> fingered) and next/master.

Thats strange.
The log I gave is for next-20160621.
BTW, I am using gcc-5.3.0

regards
sudip

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

* Re: linux-next: Tree for Jun 21
  2016-06-21  7:01 ` Sudip Mukherjee
  2016-06-21  7:58   ` Peter Zijlstra
@ 2016-06-21 12:08   ` Chris Metcalf
  2016-06-21 12:42     ` Peter Zijlstra
  1 sibling, 1 reply; 25+ messages in thread
From: Chris Metcalf @ 2016-06-21 12:08 UTC (permalink / raw)
  To: Sudip Mukherjee, Stephen Rothwell, linux-next,
	Peter Zijlstra (Intel),
	Ingo Molnar
  Cc: linux-kernel, linux-arch

On 6/21/2016 3:01 AM, Sudip Mukherjee wrote:
> On Tuesday 21 June 2016 06:46 AM, Stephen Rothwell wrote:
>> Hi all,
>>
>> Changes since 20160620:
>
> tilepro defconfig is failing while doing "make prepare" and bisect shows the first bad commit as:
>
> 1af5de9af138 ("locking/atomic, arch/tile: Implement atomic{,64}_fetch_{add,sub,and,or,xor}()")
>
> You can find today's build log at:
> https://travis-ci.org/sudipm-mukherjee/parport/jobs/139112570

On inspection, I note that the arch/tile/include/atomic_32.h header has

ATOMIC64_OP(and)
ATOMIC64_OP(or)
ATOMIC64_OP(xor)

but these should be ATOMIC64_OPS, plural.

Peter, what toolchain were you using for tilepro build testing?  You need to have a tilepro toolchain (not tilegx) and build with ARCH=tilepro.

-- 
Chris Metcalf, Mellanox Technologies
http://www.mellanox.com

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

* Re: linux-next: Tree for Jun 21
  2016-06-21 12:08   ` Chris Metcalf
@ 2016-06-21 12:42     ` Peter Zijlstra
  2016-06-21 13:47       ` Chris Metcalf
  0 siblings, 1 reply; 25+ messages in thread
From: Peter Zijlstra @ 2016-06-21 12:42 UTC (permalink / raw)
  To: Chris Metcalf
  Cc: Sudip Mukherjee, Stephen Rothwell, linux-next, Ingo Molnar,
	linux-kernel, linux-arch

On Tue, Jun 21, 2016 at 08:08:29AM -0400, Chris Metcalf wrote:
> 
> On inspection, I note that the arch/tile/include/atomic_32.h header has
> 
> ATOMIC64_OP(and)
> ATOMIC64_OP(or)
> ATOMIC64_OP(xor)
> 
> but these should be ATOMIC64_OPS, plural.

Bugger, I'll go fix. Clearly nobody has tilepro toolchains :/

> Peter, what toolchain were you using for tilepro build testing? 

tilegx-linux-

> You need to have a tilepro toolchain (not tilegx) 

Ah, should I go use TARGET=tilepro-linux ?

> and build with ARCH=tilepro.

        tilepro)
                ARCH=tile
                CROSS_COMPILE=tilegx-linux-
                if [ "$CONFIG" == "defconfig" ] ; then
                        CONFIG=tilepro_defconfig
                fi
                ;;

So I suppose that too is wrong.

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

* Re: linux-next: Tree for Jun 21
  2016-06-21 12:42     ` Peter Zijlstra
@ 2016-06-21 13:47       ` Chris Metcalf
  2016-06-21 14:04         ` Peter Zijlstra
  0 siblings, 1 reply; 25+ messages in thread
From: Chris Metcalf @ 2016-06-21 13:47 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: Sudip Mukherjee, Stephen Rothwell, linux-next, Ingo Molnar,
	linux-kernel, linux-arch

On 6/21/2016 8:42 AM, Peter Zijlstra wrote:
> On Tue, Jun 21, 2016 at 08:08:29AM -0400, Chris Metcalf wrote:
>> You need to have a tilepro toolchain (not tilegx)
> Ah, should I go use TARGET=tilepro-linux ?

Yes.

>> and build with ARCH=tilepro.
>          tilepro)
>                  ARCH=tile
>                  CROSS_COMPILE=tilegx-linux-
>                  if [ "$CONFIG" == "defconfig" ] ; then
>                          CONFIG=tilepro_defconfig
>                  fi
>                  ;;
>
> So I suppose that too is wrong.

Yup.  That's actually just building exactly what "tilegx" would build by default.

I'm not sure who builds the toolchains, but tilepro is in upstream gcc/binutils/etc
so should be easy enough to include.  There's also a cross-toolchain for x64 I put
up a while ago [1] that you could grab if you wanted to try it.

[1] http://www.mellanox.com/repository/solutions/tile-scm/tilepro-x86_64.tar.bz2

-- 
Chris Metcalf, Mellanox Technologies
http://www.mellanox.com

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

* Re: linux-next: Tree for Jun 21
  2016-06-21 13:47       ` Chris Metcalf
@ 2016-06-21 14:04         ` Peter Zijlstra
  2016-06-21 14:14           ` Peter Zijlstra
  0 siblings, 1 reply; 25+ messages in thread
From: Peter Zijlstra @ 2016-06-21 14:04 UTC (permalink / raw)
  To: Chris Metcalf
  Cc: Sudip Mukherjee, Stephen Rothwell, linux-next, Ingo Molnar,
	linux-kernel, linux-arch

On Tue, Jun 21, 2016 at 09:47:00AM -0400, Chris Metcalf wrote:
> On 6/21/2016 8:42 AM, Peter Zijlstra wrote:
> >On Tue, Jun 21, 2016 at 08:08:29AM -0400, Chris Metcalf wrote:
> >>You need to have a tilepro toolchain (not tilegx)
> >Ah, should I go use TARGET=tilepro-linux ?
> 
> Yes.

> I'm not sure who builds the toolchains, but tilepro is in upstream gcc/binutils/etc
> so should be easy enough to include.  There's also a cross-toolchain for x64 I put
> up a while ago [1] that you could grab if you wanted to try it.

I usually build my own set -- and just did. But tilepro was not
included. Lemme go do so.

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

* Re: linux-next: Tree for Jun 21
  2016-06-21 14:04         ` Peter Zijlstra
@ 2016-06-21 14:14           ` Peter Zijlstra
  2016-06-21 14:20             ` Chris Metcalf
                               ` (2 more replies)
  0 siblings, 3 replies; 25+ messages in thread
From: Peter Zijlstra @ 2016-06-21 14:14 UTC (permalink / raw)
  To: Chris Metcalf
  Cc: Sudip Mukherjee, Stephen Rothwell, linux-next, Ingo Molnar,
	linux-kernel, linux-arch

On Tue, Jun 21, 2016 at 04:04:08PM +0200, Peter Zijlstra wrote:
> > I'm not sure who builds the toolchains, but tilepro is in upstream gcc/binutils/etc
> > so should be easy enough to include.  There's also a cross-toolchain for x64 I put
> > up a while ago [1] that you could grab if you wanted to try it.
> 
> I usually build my own set -- and just did. But tilepro was not
> included. Lemme go do so.

binutils-2_26-branch builds for tilepro-linux
gcc-6-branch does _not_ build for tilepro-linux


---

/usr/local/src/buildall/tilepro/gcc/./gcc/xgcc -B/usr/local/src/buildall/tilepro/gcc/./gcc/ -B/opt/cross/tilepro-linux/bin/ -B/opt/cross/tilepro-linux/lib/ -isystem /opt/cross/tilepro-linux/include -isystem /opt/cross/tilepro-linux/sys-include    -g -O2 -O2  -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  -isystem ./include   -fPIC -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -Dinhibit_libc  -fPIC -I. -I. -I../.././gcc -I/usr/local/src/gcc/libgcc -I/usr/local/src/gcc/libgcc/. -I/usr/local/src/gcc/libgcc/../gcc -I/usr/local/src/gcc/libgcc/../include  -DHAVE_CC_TLS  -o unwind-sjlj.o -MT unwind-sjlj.o -MD -MP -MF unwind-sjlj.dep -fexceptions -c /usr/local/src/gcc/libgcc/unwind-sjlj.c -fvisibility=hidden -DHIDE_EXPORTS
In file included from /usr/local/src/gcc/libgcc/config/tilepro/atomic.c:26:0:
/usr/local/src/gcc/libgcc/config/tilepro/atomic.h:98:24: fatal error: asm/unistd.h: No such file or directory
 #include <asm/unistd.h>
                        ^
compilation terminated.
mv -f softmpy.visT softmpy.vis
make[2]: *** [atomic.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory `/usr/local/src/buildall/tilepro/gcc/tilepro-linux/libgcc'
make[1]: *** [all-target-libgcc] Error 2
make[1]: Leaving directory `/usr/local/src/buildall/tilepro/gcc'
make: *** [all] Error 2

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

* Re: linux-next: Tree for Jun 21
  2016-06-21 14:14           ` Peter Zijlstra
@ 2016-06-21 14:20             ` Chris Metcalf
  2016-06-21 14:25               ` Peter Zijlstra
  2016-06-21 14:34             ` Sudip Mukherjee
  2016-06-21 15:26             ` Chris Metcalf
  2 siblings, 1 reply; 25+ messages in thread
From: Chris Metcalf @ 2016-06-21 14:20 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: Sudip Mukherjee, Stephen Rothwell, linux-next, Ingo Molnar,
	linux-kernel, linux-arch

On 6/21/2016 10:14 AM, Peter Zijlstra wrote:
> On Tue, Jun 21, 2016 at 04:04:08PM +0200, Peter Zijlstra wrote:
>>> I'm not sure who builds the toolchains, but tilepro is in upstream gcc/binutils/etc
>>> so should be easy enough to include.  There's also a cross-toolchain for x64 I put
>>> up a while ago [1] that you could grab if you wanted to try it.
>> I usually build my own set -- and just did. But tilepro was not
>> included. Lemme go do so.
> binutils-2_26-branch builds for tilepro-linux
> gcc-6-branch does _not_ build for tilepro-linux

That's unexpected.  I'll pass this over to our compiler folks. Thanks!

-- 
Chris Metcalf, Mellanox Technologies
http://www.mellanox.com

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

* Re: linux-next: Tree for Jun 21
  2016-06-21 14:20             ` Chris Metcalf
@ 2016-06-21 14:25               ` Peter Zijlstra
  0 siblings, 0 replies; 25+ messages in thread
From: Peter Zijlstra @ 2016-06-21 14:25 UTC (permalink / raw)
  To: Chris Metcalf
  Cc: Sudip Mukherjee, Stephen Rothwell, linux-next, Ingo Molnar,
	linux-kernel, linux-arch

On Tue, Jun 21, 2016 at 10:20:39AM -0400, Chris Metcalf wrote:
> On 6/21/2016 10:14 AM, Peter Zijlstra wrote:
> >On Tue, Jun 21, 2016 at 04:04:08PM +0200, Peter Zijlstra wrote:
> >>>I'm not sure who builds the toolchains, but tilepro is in upstream gcc/binutils/etc
> >>>so should be easy enough to include.  There's also a cross-toolchain for x64 I put
> >>>up a while ago [1] that you could grab if you wanted to try it.
> >>I usually build my own set -- and just did. But tilepro was not
> >>included. Lemme go do so.
> >binutils-2_26-branch builds for tilepro-linux
> >gcc-6-branch does _not_ build for tilepro-linux
> 
> That's unexpected.  I'll pass this over to our compiler folks. Thanks!

If you need more info like gcc-configure, gcc-build logs or exact
gcc-6-branch commitid, please let me know.

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

* Re: linux-next: Tree for Jun 21
  2016-06-21 14:14           ` Peter Zijlstra
  2016-06-21 14:20             ` Chris Metcalf
@ 2016-06-21 14:34             ` Sudip Mukherjee
  2016-06-21 15:26             ` Chris Metcalf
  2 siblings, 0 replies; 25+ messages in thread
From: Sudip Mukherjee @ 2016-06-21 14:34 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: Chris Metcalf, Stephen Rothwell, linux-next, Ingo Molnar,
	linux-kernel, linux-arch

On Tue, Jun 21, 2016 at 04:14:35PM +0200, Peter Zijlstra wrote:
> On Tue, Jun 21, 2016 at 04:04:08PM +0200, Peter Zijlstra wrote:
> > > I'm not sure who builds the toolchains, but tilepro is in upstream gcc/binutils/etc
> > > so should be easy enough to include.  There's also a cross-toolchain for x64 I put
> > > up a while ago [1] that you could grab if you wanted to try it.
> > 
> > I usually build my own set -- and just did. But tilepro was not
> > included. Lemme go do so.
> 
> binutils-2_26-branch builds for tilepro-linux
> gcc-6-branch does _not_ build for tilepro-linux

I have not tried with binutils-2_26. But if you want my compiler, its at
http://chat.vectorindia.net/crosstool/x86_64/5.3.0/tilepro-linux-gnu.tar.xz

regards
sudip

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

* Re: linux-next: Tree for Jun 21
  2016-06-21 14:14           ` Peter Zijlstra
  2016-06-21 14:20             ` Chris Metcalf
  2016-06-21 14:34             ` Sudip Mukherjee
@ 2016-06-21 15:26             ` Chris Metcalf
  2016-06-21 17:06               ` Peter Zijlstra
  2 siblings, 1 reply; 25+ messages in thread
From: Chris Metcalf @ 2016-06-21 15:26 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: Sudip Mukherjee, Stephen Rothwell, linux-next, Ingo Molnar,
	linux-kernel, linux-arch

On 6/21/2016 10:14 AM, Peter Zijlstra wrote:
> On Tue, Jun 21, 2016 at 04:04:08PM +0200, Peter Zijlstra wrote:
>>> I'm not sure who builds the toolchains, but tilepro is in upstream gcc/binutils/etc
>>> so should be easy enough to include.  There's also a cross-toolchain for x64 I put
>>> up a while ago [1] that you could grab if you wanted to try it.
>> I usually build my own set -- and just did. But tilepro was not
>> included. Lemme go do so.
> binutils-2_26-branch builds for tilepro-linux
> gcc-6-branch does _not_ build for tilepro-linux

I figured I would take a stab at diagnosing this myself, and it looks like the
toolchain build assumes that the kernel headers have already been installed
and therefore we have <asm/unistd.h> available.  This actually seems like
a reasonable prerequisite for building the toolchain.  I'm guessing you
don't?  Should you?  Or perhaps the compiler shouldn't make that assumption?
This has been true since gcc 4.x when tilepro support was first added.

In any case if you replace the #include <asm/unistd.h> with

#define __NR_FAST_cmpxchg    -1
#define __NR_FAST_atomic_update    -2
#define __NR_FAST_cmpxchg64    -3

that should also probably fix it, though I haven't tested it.  It probably
wouldn't be crazy to just put those #defines directly in tilepro's atomic.h,
since it's not like those fast system call numbers will ever change.

-- 
Chris Metcalf, Mellanox Technologies
http://www.mellanox.com

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

* Re: linux-next: Tree for Jun 21
  2016-06-21 15:26             ` Chris Metcalf
@ 2016-06-21 17:06               ` Peter Zijlstra
  2016-06-21 17:29                 ` Peter Zijlstra
  0 siblings, 1 reply; 25+ messages in thread
From: Peter Zijlstra @ 2016-06-21 17:06 UTC (permalink / raw)
  To: Chris Metcalf
  Cc: Sudip Mukherjee, Stephen Rothwell, linux-next, Ingo Molnar,
	linux-kernel, linux-arch

On Tue, Jun 21, 2016 at 11:26:19AM -0400, Chris Metcalf wrote:
> On 6/21/2016 10:14 AM, Peter Zijlstra wrote:
> >On Tue, Jun 21, 2016 at 04:04:08PM +0200, Peter Zijlstra wrote:
> >>>I'm not sure who builds the toolchains, but tilepro is in upstream gcc/binutils/etc
> >>>so should be easy enough to include.  There's also a cross-toolchain for x64 I put
> >>>up a while ago [1] that you could grab if you wanted to try it.
> >>I usually build my own set -- and just did. But tilepro was not
> >>included. Lemme go do so.
> >binutils-2_26-branch builds for tilepro-linux
> >gcc-6-branch does _not_ build for tilepro-linux
> 
> I figured I would take a stab at diagnosing this myself, and it looks like the
> toolchain build assumes that the kernel headers have already been installed
> and therefore we have <asm/unistd.h> available.  This actually seems like
> a reasonable prerequisite for building the toolchain.  I'm guessing you
> don't?  Should you?  Or perhaps the compiler shouldn't make that assumption?

I can build:

ls -la /opt/cross/bin/*-gcc | wc -l
27

compilers without installing kernel headers.

> This has been true since gcc 4.x when tilepro support was first added.
> 
> In any case if you replace the #include <asm/unistd.h> with
> 
> #define __NR_FAST_cmpxchg    -1
> #define __NR_FAST_atomic_update    -2
> #define __NR_FAST_cmpxchg64    -3
> 
> that should also probably fix it, though I haven't tested it.  It probably
> wouldn't be crazy to just put those #defines directly in tilepro's atomic.h,
> since it's not like those fast system call numbers will ever change.

OK, I'll go test that right after I've got the kid in bed .. I'll let
you know.

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

* Re: linux-next: Tree for Jun 21
  2016-06-21 17:06               ` Peter Zijlstra
@ 2016-06-21 17:29                 ` Peter Zijlstra
  2016-06-21 18:28                   ` Peter Zijlstra
  0 siblings, 1 reply; 25+ messages in thread
From: Peter Zijlstra @ 2016-06-21 17:29 UTC (permalink / raw)
  To: Chris Metcalf
  Cc: Sudip Mukherjee, Stephen Rothwell, linux-next, Ingo Molnar,
	linux-kernel, linux-arch

On Tue, Jun 21, 2016 at 07:06:07PM +0200, Peter Zijlstra wrote:
> On Tue, Jun 21, 2016 at 11:26:19AM -0400, Chris Metcalf wrote:
> > This has been true since gcc 4.x when tilepro support was first added.
> > 
> > In any case if you replace the #include <asm/unistd.h> with
> > 
> > #define __NR_FAST_cmpxchg    -1
> > #define __NR_FAST_atomic_update    -2
> > #define __NR_FAST_cmpxchg64    -3
> > 
> > that should also probably fix it, though I haven't tested it.  It probably
> > wouldn't be crazy to just put those #defines directly in tilepro's atomic.h,
> > since it's not like those fast system call numbers will ever change.

OK, I seem to have a tilepro-linux-gcc-6.1.1 build done. Lets see if I
can build me a kernel with it.

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

* Re: linux-next: Tree for Jun 21
  2016-06-21 17:29                 ` Peter Zijlstra
@ 2016-06-21 18:28                   ` Peter Zijlstra
  2016-06-21 18:36                     ` Chris Metcalf
  0 siblings, 1 reply; 25+ messages in thread
From: Peter Zijlstra @ 2016-06-21 18:28 UTC (permalink / raw)
  To: Chris Metcalf
  Cc: Sudip Mukherjee, Stephen Rothwell, linux-next, Ingo Molnar,
	linux-kernel, linux-arch

On Tue, Jun 21, 2016 at 07:29:18PM +0200, Peter Zijlstra wrote:

> OK, I seem to have a tilepro-linux-gcc-6.1.1 build done. Lets see if I
> can build me a kernel with it.

The below, much larger than desired, patch seems to make it go again.

I had to s/__atomic_fetch/__atomic32_fetch/ to avoid a namespace clash
with the builtin C11 atomic primitives.

You want me to rename them all to regain consistent naming?

---
 arch/tile/include/asm/atomic_32.h |   16 ++++++++--------
 arch/tile/include/asm/futex.h     |    6 +++---
 arch/tile/lib/atomic_32.c         |    8 ++++----
 arch/tile/lib/atomic_asm_32.S     |    8 ++++----
 4 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/arch/tile/include/asm/atomic_32.h b/arch/tile/include/asm/atomic_32.h
index da8eb4e..e063825 100644
--- a/arch/tile/include/asm/atomic_32.h
+++ b/arch/tile/include/asm/atomic_32.h
@@ -143,15 +143,15 @@ static inline void atomic64_##op(long long i, atomic64_t *v)	\
 {								\
 	_atomic64_fetch_##op(&v->counter, i);			\
 }								\
-static inline void atomic64_##op(long long i, atomic64_t *v)	\
+static inline long long atomic64_fetch_##op(long long i, atomic64_t *v)	\
 {								\
 	smp_mb();						\
 	return _atomic64_fetch_##op(&v->counter, i);		\
 }
 
-ATOMIC64_OP(and)
-ATOMIC64_OP(or)
-ATOMIC64_OP(xor)
+ATOMIC64_OPS(and)
+ATOMIC64_OPS(or)
+ATOMIC64_OPS(xor)
 
 #undef ATOMIC64_OPS
 
@@ -272,10 +272,10 @@ extern struct __get_user __atomic_xchg(volatile int *p, int *lock, int n);
 extern struct __get_user __atomic_xchg_add(volatile int *p, int *lock, int n);
 extern struct __get_user __atomic_xchg_add_unless(volatile int *p,
 						  int *lock, int o, int n);
-extern struct __get_user __atomic_fetch_or(volatile int *p, int *lock, int n);
-extern struct __get_user __atomic_fetch_and(volatile int *p, int *lock, int n);
-extern struct __get_user __atomic_fetch_andn(volatile int *p, int *lock, int n);
-extern struct __get_user __atomic_fetch_xor(volatile int *p, int *lock, int n);
+extern struct __get_user __atomic32_fetch_or(volatile int *p, int *lock, int n);
+extern struct __get_user __atomic32_fetch_and(volatile int *p, int *lock, int n);
+extern struct __get_user __atomic32_fetch_andn(volatile int *p, int *lock, int n);
+extern struct __get_user __atomic32_fetch_xor(volatile int *p, int *lock, int n);
 extern long long __atomic64_cmpxchg(volatile long long *p, int *lock,
 					long long o, long long n);
 extern long long __atomic64_xchg(volatile long long *p, int *lock, long long n);
diff --git a/arch/tile/include/asm/futex.h b/arch/tile/include/asm/futex.h
index 1a6ef1b..479b28b 100644
--- a/arch/tile/include/asm/futex.h
+++ b/arch/tile/include/asm/futex.h
@@ -82,9 +82,9 @@
 
 #define __futex_set() __futex_call(__atomic_xchg)
 #define __futex_add() __futex_call(__atomic_xchg_add)
-#define __futex_or() __futex_call(__atomic_or)
-#define __futex_andn() __futex_call(__atomic_andn)
-#define __futex_xor() __futex_call(__atomic_xor)
+#define __futex_or() __futex_call(__atomic32_fetch_or)
+#define __futex_andn() __futex_call(__atomic32_fetch_andn)
+#define __futex_xor() __futex_call(__atomic32_fetch_xor)
 
 #define __futex_cmpxchg()						\
 	{								\
diff --git a/arch/tile/lib/atomic_32.c b/arch/tile/lib/atomic_32.c
index 5b6bd93..64d12fa 100644
--- a/arch/tile/lib/atomic_32.c
+++ b/arch/tile/lib/atomic_32.c
@@ -90,25 +90,25 @@ EXPORT_SYMBOL(_atomic_cmpxchg);
 
 unsigned long _atomic_fetch_or(volatile unsigned long *p, unsigned long mask)
 {
-	return __atomic_fetch_or((int *)p, __atomic_setup(p), mask).val;
+	return __atomic32_fetch_or((int *)p, __atomic_setup(p), mask).val;
 }
 EXPORT_SYMBOL(_atomic_fetch_or);
 
 unsigned long _atomic_fetch_and(volatile unsigned long *p, unsigned long mask)
 {
-	return __atomic_fetch_and((int *)p, __atomic_setup(p), mask).val;
+	return __atomic32_fetch_and((int *)p, __atomic_setup(p), mask).val;
 }
 EXPORT_SYMBOL(_atomic_fetch_and);
 
 unsigned long _atomic_fetch_andn(volatile unsigned long *p, unsigned long mask)
 {
-	return __atomic_fetch_andn((int *)p, __atomic_setup(p), mask).val;
+	return __atomic32_fetch_andn((int *)p, __atomic_setup(p), mask).val;
 }
 EXPORT_SYMBOL(_atomic_fetch_andn);
 
 unsigned long _atomic_fetch_xor(volatile unsigned long *p, unsigned long mask)
 {
-	return __atomic_fetch_xor((int *)p, __atomic_setup(p), mask).val;
+	return __atomic32_fetch_xor((int *)p, __atomic_setup(p), mask).val;
 }
 EXPORT_SYMBOL(_atomic_fetch_xor);
 
diff --git a/arch/tile/lib/atomic_asm_32.S b/arch/tile/lib/atomic_asm_32.S
index 507abdd..e78fed0 100644
--- a/arch/tile/lib/atomic_asm_32.S
+++ b/arch/tile/lib/atomic_asm_32.S
@@ -177,10 +177,10 @@ atomic_op _xchg, 32, "move r24, r2"
 atomic_op _xchg_add, 32, "add r24, r22, r2"
 atomic_op _xchg_add_unless, 32, \
 	"sne r26, r22, r2; { bbns r26, 3f; add r24, r22, r3 }"
-atomic_op _fetch_or, 32, "or r24, r22, r2"
-atomic_op _fetch_and, 32, "and r24, r22, r2"
-atomic_op _fetch_andn, 32, "nor r2, r2, zero; and r24, r22, r2"
-atomic_op _fetch_xor, 32, "xor r24, r22, r2"
+atomic_op 32_fetch_or, 32, "or r24, r22, r2"
+atomic_op 32_fetch_and, 32, "and r24, r22, r2"
+atomic_op 32_fetch_andn, 32, "nor r2, r2, zero; and r24, r22, r2"
+atomic_op 32_fetch_xor, 32, "xor r24, r22, r2"
 
 atomic_op 64_cmpxchg, 64, "{ seq r26, r22, r2; seq r27, r23, r3 }; \
 	{ bbns r26, 3f; move r24, r4 }; { bbns r27, 3f; move r25, r5 }"

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

* Re: linux-next: Tree for Jun 21
  2016-06-21 18:28                   ` Peter Zijlstra
@ 2016-06-21 18:36                     ` Chris Metcalf
  2016-06-21 18:50                       ` Peter Zijlstra
  2016-06-22  9:16                       ` Peter Zijlstra
  0 siblings, 2 replies; 25+ messages in thread
From: Chris Metcalf @ 2016-06-21 18:36 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: Sudip Mukherjee, Stephen Rothwell, linux-next, Ingo Molnar,
	linux-kernel, linux-arch

On 6/21/2016 2:28 PM, Peter Zijlstra wrote:
> On Tue, Jun 21, 2016 at 07:29:18PM +0200, Peter Zijlstra wrote:
>
>> >OK, I seem to have a tilepro-linux-gcc-6.1.1 build done. Lets see if I
>> >can build me a kernel with it.
> The below, much larger than desired, patch seems to make it go again.
>
> I had to s/__atomic_fetch/__atomic32_fetch/ to avoid a namespace clash
> with the builtin C11 atomic primitives.
>
> You want me to rename them all to regain consistent naming?

Yes, it's probably the right thing to do.  All the internal routines with "atomic32"
or "atomic64" I assume you mean?

So what's your build process for the cross tools, by the way?  I'm assuming
you're not doing a total bootstrap cross-tool build since you'd need minimal
kernel headers (linux/errno.h or whatever) in that case.  I assume you're using
the host headers to build the cross tool?

So I'm a little confused how the other kernel headers are working out for you,
e.g. <arch/icache.h> is referenced when building the tilegx libgcc.

-- 
Chris Metcalf, Mellanox Technologies
http://www.mellanox.com

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

* Re: linux-next: Tree for Jun 21
  2016-06-21 18:36                     ` Chris Metcalf
@ 2016-06-21 18:50                       ` Peter Zijlstra
  2016-06-21 19:04                         ` Peter Zijlstra
  2016-06-21 21:14                         ` Arnd Bergmann
  2016-06-22  9:16                       ` Peter Zijlstra
  1 sibling, 2 replies; 25+ messages in thread
From: Peter Zijlstra @ 2016-06-21 18:50 UTC (permalink / raw)
  To: Chris Metcalf
  Cc: Sudip Mukherjee, Stephen Rothwell, linux-next, Ingo Molnar,
	linux-kernel, linux-arch

On Tue, Jun 21, 2016 at 02:36:34PM -0400, Chris Metcalf wrote:
> On 6/21/2016 2:28 PM, Peter Zijlstra wrote:

> >I had to s/__atomic_fetch/__atomic32_fetch/ to avoid a namespace clash
> >with the builtin C11 atomic primitives.
> >
> >You want me to rename them all to regain consistent naming?
> 
> Yes, it's probably the right thing to do.  All the internal routines with "atomic32"
> or "atomic64" I assume you mean?

Yep, after this patch we have a few __atomic_ and a few __atomic32_,
which is rather unbecoming. Lemme go convert them all to __atomic32_.

> So what's your build process for the cross tools, by the way?  I'm assuming
> you're not doing a total bootstrap cross-tool build since you'd need minimal
> kernel headers (linux/errno.h or whatever) in that case.  I assume you're using
> the host headers to build the cross tool?
> 
> So I'm a little confused how the other kernel headers are working out for you,
> e.g. <arch/icache.h> is referenced when building the tilegx libgcc.

I've no idea; I use this thing:

  git://git.infradead.org/users/segher/buildall.git

Although I've got some local modifications, none are to the actual
toolchain building part (although I suppose I should send segher a
patch).

I have binutils-gdb.git and gcc.bit checkouts and point the buildall
config to that (both are on latest stable branches binutils-2_26-branch
and gcc-6-branch resp.). And I point the kernel path to my current
hacked up tree.

I don't really rebuild the entire toolchains often, mostly only when I
really need a new GCC or its getting really old (like I used 5.3.0 for a
long while).

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

* Re: linux-next: Tree for Jun 21
  2016-06-21 18:50                       ` Peter Zijlstra
@ 2016-06-21 19:04                         ` Peter Zijlstra
  2016-06-21 21:14                         ` Arnd Bergmann
  1 sibling, 0 replies; 25+ messages in thread
From: Peter Zijlstra @ 2016-06-21 19:04 UTC (permalink / raw)
  To: Chris Metcalf
  Cc: Sudip Mukherjee, Stephen Rothwell, linux-next, Ingo Molnar,
	linux-kernel, linux-arch

On Tue, Jun 21, 2016 at 08:50:48PM +0200, Peter Zijlstra wrote:
> I've no idea; I use this thing:
> 
>   git://git.infradead.org/users/segher/buildall.git
> 
> Although I've got some local modifications, none are to the actual
> toolchain building part (although I suppose I should send segher a
> patch).

Oops, I do have..

sjlj-exceptions is causing aarch64 to fail, so I killed it, its not like
the kernel needs that.


diff --git a/build-gcc b/build-gcc
index a93c624..183f445 100755
--- a/build-gcc
+++ b/build-gcc
@@ -22,7 +22,7 @@ $ECHO -ne "       gcc:" && \
 	$GCC_SRC/configure \
 	--target=$TARGET --enable-targets=all --prefix=$PREFIX \
 	--enable-languages=c --without-headers --disable-bootstrap \
-	--enable-sjlj-exceptions --with-system-libunwind \
+	--disable-sjlj-exceptions --with-system-libunwind \
 	--disable-nls --disable-threads --disable-shared \
 	--disable-libmudflap --disable-libssp --disable-libgomp \
 	--disable-decimal-float --disable-libquadmath \

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

* Re: linux-next: Tree for Jun 21
  2016-06-21 18:50                       ` Peter Zijlstra
  2016-06-21 19:04                         ` Peter Zijlstra
@ 2016-06-21 21:14                         ` Arnd Bergmann
  2016-06-22 20:43                           ` Chris Metcalf
  1 sibling, 1 reply; 25+ messages in thread
From: Arnd Bergmann @ 2016-06-21 21:14 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: Chris Metcalf, Sudip Mukherjee, Stephen Rothwell, linux-next,
	Ingo Molnar, linux-kernel, linux-arch

On Tuesday, June 21, 2016 8:50:48 PM CEST Peter Zijlstra wrote:
> 
> > So what's your build process for the cross tools, by the way?  I'm assuming
> > you're not doing a total bootstrap cross-tool build since you'd need minimal
> > kernel headers (linux/errno.h or whatever) in that case.  I assume you're using
> > the host headers to build the cross tool?
> > 
> > So I'm a little confused how the other kernel headers are working out for you,
> > e.g. <arch/icache.h> is referenced when building the tilegx libgcc.
> 
> I've no idea; I use this thing:
> 
>   git://git.infradead.org/users/segher/buildall.git
> 
> Although I've got some local modifications, none are to the actual
> toolchain building part (although I suppose I should send segher a
> patch).
> 
> I have binutils-gdb.git and gcc.bit checkouts and point the buildall
> config to that (both are on latest stable branches binutils-2_26-branch
> and gcc-6-branch resp.). And I point the kernel path to my current
> hacked up tree.
> 
> I don't really rebuild the entire toolchains often, mostly only when I
> really need a new GCC or its getting really old (like I used 5.3.0 for a
> long while).

I think the kernel headers are only needed for building glibc, which
buildall.git doesn't use: it only does the initial stage of creating
a cross-toolchain.

	Arnd

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

* Re: linux-next: Tree for Jun 21
  2016-06-21 18:36                     ` Chris Metcalf
  2016-06-21 18:50                       ` Peter Zijlstra
@ 2016-06-22  9:16                       ` Peter Zijlstra
  2016-06-22 20:40                         ` Chris Metcalf
  2016-06-24  8:58                         ` [tip:locking/arch-atomic] locking/atomic, arch/tile: Fix tilepro build tip-bot for Peter Zijlstra
  1 sibling, 2 replies; 25+ messages in thread
From: Peter Zijlstra @ 2016-06-22  9:16 UTC (permalink / raw)
  To: Chris Metcalf
  Cc: Sudip Mukherjee, Stephen Rothwell, linux-next, Ingo Molnar,
	linux-kernel, linux-arch

On Tue, Jun 21, 2016 at 02:36:34PM -0400, Chris Metcalf wrote:
> On 6/21/2016 2:28 PM, Peter Zijlstra wrote:
> >On Tue, Jun 21, 2016 at 07:29:18PM +0200, Peter Zijlstra wrote:
> >
> >>>OK, I seem to have a tilepro-linux-gcc-6.1.1 build done. Lets see if I
> >>>can build me a kernel with it.
> >The below, much larger than desired, patch seems to make it go again.
> >
> >I had to s/__atomic_fetch/__atomic32_fetch/ to avoid a namespace clash
> >with the builtin C11 atomic primitives.
> >
> >You want me to rename them all to regain consistent naming?
> 
> Yes, it's probably the right thing to do.  All the internal routines with "atomic32"
> or "atomic64" I assume you mean?

Something like so then?

---
 arch/tile/include/asm/atomic_32.h |   24 ++++++++++++------------
 arch/tile/include/asm/futex.h     |   14 +++++++-------
 arch/tile/lib/atomic_32.c         |   16 ++++++++--------
 arch/tile/lib/atomic_asm_32.S     |   21 +++++++++++++--------
 4 files changed, 40 insertions(+), 35 deletions(-)

diff --git a/arch/tile/include/asm/atomic_32.h b/arch/tile/include/asm/atomic_32.h
index da8eb4e..a937742 100644
--- a/arch/tile/include/asm/atomic_32.h
+++ b/arch/tile/include/asm/atomic_32.h
@@ -143,15 +143,15 @@ static inline void atomic64_##op(long long i, atomic64_t *v)	\
 {								\
 	_atomic64_fetch_##op(&v->counter, i);			\
 }								\
-static inline void atomic64_##op(long long i, atomic64_t *v)	\
+static inline long long atomic64_fetch_##op(long long i, atomic64_t *v)	\
 {								\
 	smp_mb();						\
 	return _atomic64_fetch_##op(&v->counter, i);		\
 }
 
-ATOMIC64_OP(and)
-ATOMIC64_OP(or)
-ATOMIC64_OP(xor)
+ATOMIC64_OPS(and)
+ATOMIC64_OPS(or)
+ATOMIC64_OPS(xor)
 
 #undef ATOMIC64_OPS
 
@@ -266,16 +266,16 @@ struct __get_user {
 	unsigned long val;
 	int err;
 };
-extern struct __get_user __atomic_cmpxchg(volatile int *p,
+extern struct __get_user __atomic32_cmpxchg(volatile int *p,
 					  int *lock, int o, int n);
-extern struct __get_user __atomic_xchg(volatile int *p, int *lock, int n);
-extern struct __get_user __atomic_xchg_add(volatile int *p, int *lock, int n);
-extern struct __get_user __atomic_xchg_add_unless(volatile int *p,
+extern struct __get_user __atomic32_xchg(volatile int *p, int *lock, int n);
+extern struct __get_user __atomic32_xchg_add(volatile int *p, int *lock, int n);
+extern struct __get_user __atomic32_xchg_add_unless(volatile int *p,
 						  int *lock, int o, int n);
-extern struct __get_user __atomic_fetch_or(volatile int *p, int *lock, int n);
-extern struct __get_user __atomic_fetch_and(volatile int *p, int *lock, int n);
-extern struct __get_user __atomic_fetch_andn(volatile int *p, int *lock, int n);
-extern struct __get_user __atomic_fetch_xor(volatile int *p, int *lock, int n);
+extern struct __get_user __atomic32_fetch_or(volatile int *p, int *lock, int n);
+extern struct __get_user __atomic32_fetch_and(volatile int *p, int *lock, int n);
+extern struct __get_user __atomic32_fetch_andn(volatile int *p, int *lock, int n);
+extern struct __get_user __atomic32_fetch_xor(volatile int *p, int *lock, int n);
 extern long long __atomic64_cmpxchg(volatile long long *p, int *lock,
 					long long o, long long n);
 extern long long __atomic64_xchg(volatile long long *p, int *lock, long long n);
diff --git a/arch/tile/include/asm/futex.h b/arch/tile/include/asm/futex.h
index 1a6ef1b..e64a1b7 100644
--- a/arch/tile/include/asm/futex.h
+++ b/arch/tile/include/asm/futex.h
@@ -80,16 +80,16 @@
 		ret = gu.err;						\
 	}
 
-#define __futex_set() __futex_call(__atomic_xchg)
-#define __futex_add() __futex_call(__atomic_xchg_add)
-#define __futex_or() __futex_call(__atomic_or)
-#define __futex_andn() __futex_call(__atomic_andn)
-#define __futex_xor() __futex_call(__atomic_xor)
+#define __futex_set() __futex_call(__atomic32_xchg)
+#define __futex_add() __futex_call(__atomic32_xchg_add)
+#define __futex_or() __futex_call(__atomic32_fetch_or)
+#define __futex_andn() __futex_call(__atomic32_fetch_andn)
+#define __futex_xor() __futex_call(__atomic32_fetch_xor)
 
 #define __futex_cmpxchg()						\
 	{								\
-		struct __get_user gu = __atomic_cmpxchg((u32 __force *)uaddr, \
-							lock, oldval, oparg); \
+		struct __get_user gu = __atomic32_cmpxchg((u32 __force *)uaddr, \
+							  lock, oldval, oparg); \
 		val = gu.val;						\
 		ret = gu.err;						\
 	}
diff --git a/arch/tile/lib/atomic_32.c b/arch/tile/lib/atomic_32.c
index 5b6bd93..f812880 100644
--- a/arch/tile/lib/atomic_32.c
+++ b/arch/tile/lib/atomic_32.c
@@ -61,13 +61,13 @@ static inline int *__atomic_setup(volatile void *v)
 
 int _atomic_xchg(int *v, int n)
 {
-	return __atomic_xchg(v, __atomic_setup(v), n).val;
+	return __atomic32_xchg(v, __atomic_setup(v), n).val;
 }
 EXPORT_SYMBOL(_atomic_xchg);
 
 int _atomic_xchg_add(int *v, int i)
 {
-	return __atomic_xchg_add(v, __atomic_setup(v), i).val;
+	return __atomic32_xchg_add(v, __atomic_setup(v), i).val;
 }
 EXPORT_SYMBOL(_atomic_xchg_add);
 
@@ -78,37 +78,37 @@ int _atomic_xchg_add_unless(int *v, int a, int u)
 	 * to use the first argument consistently as the "old value"
 	 * in the assembly, as is done for _atomic_cmpxchg().
 	 */
-	return __atomic_xchg_add_unless(v, __atomic_setup(v), u, a).val;
+	return __atomic32_xchg_add_unless(v, __atomic_setup(v), u, a).val;
 }
 EXPORT_SYMBOL(_atomic_xchg_add_unless);
 
 int _atomic_cmpxchg(int *v, int o, int n)
 {
-	return __atomic_cmpxchg(v, __atomic_setup(v), o, n).val;
+	return __atomic32_cmpxchg(v, __atomic_setup(v), o, n).val;
 }
 EXPORT_SYMBOL(_atomic_cmpxchg);
 
 unsigned long _atomic_fetch_or(volatile unsigned long *p, unsigned long mask)
 {
-	return __atomic_fetch_or((int *)p, __atomic_setup(p), mask).val;
+	return __atomic32_fetch_or((int *)p, __atomic_setup(p), mask).val;
 }
 EXPORT_SYMBOL(_atomic_fetch_or);
 
 unsigned long _atomic_fetch_and(volatile unsigned long *p, unsigned long mask)
 {
-	return __atomic_fetch_and((int *)p, __atomic_setup(p), mask).val;
+	return __atomic32_fetch_and((int *)p, __atomic_setup(p), mask).val;
 }
 EXPORT_SYMBOL(_atomic_fetch_and);
 
 unsigned long _atomic_fetch_andn(volatile unsigned long *p, unsigned long mask)
 {
-	return __atomic_fetch_andn((int *)p, __atomic_setup(p), mask).val;
+	return __atomic32_fetch_andn((int *)p, __atomic_setup(p), mask).val;
 }
 EXPORT_SYMBOL(_atomic_fetch_andn);
 
 unsigned long _atomic_fetch_xor(volatile unsigned long *p, unsigned long mask)
 {
-	return __atomic_fetch_xor((int *)p, __atomic_setup(p), mask).val;
+	return __atomic32_fetch_xor((int *)p, __atomic_setup(p), mask).val;
 }
 EXPORT_SYMBOL(_atomic_fetch_xor);
 
diff --git a/arch/tile/lib/atomic_asm_32.S b/arch/tile/lib/atomic_asm_32.S
index 507abdd..1a70e6c 100644
--- a/arch/tile/lib/atomic_asm_32.S
+++ b/arch/tile/lib/atomic_asm_32.S
@@ -172,15 +172,20 @@ STD_ENTRY_SECTION(__atomic\name, .text.atomic)
 	.endif
 	.endm
 
-atomic_op _cmpxchg, 32, "seq r26, r22, r2; { bbns r26, 3f; move r24, r3 }"
-atomic_op _xchg, 32, "move r24, r2"
-atomic_op _xchg_add, 32, "add r24, r22, r2"
-atomic_op _xchg_add_unless, 32, \
+
+/*
+ * Use __atomic32 prefix to avoid collisions with GCC builtin __atomic functions.
+ */
+
+atomic_op 32_cmpxchg, 32, "seq r26, r22, r2; { bbns r26, 3f; move r24, r3 }"
+atomic_op 32_xchg, 32, "move r24, r2"
+atomic_op 32_xchg_add, 32, "add r24, r22, r2"
+atomic_op 32_xchg_add_unless, 32, \
 	"sne r26, r22, r2; { bbns r26, 3f; add r24, r22, r3 }"
-atomic_op _fetch_or, 32, "or r24, r22, r2"
-atomic_op _fetch_and, 32, "and r24, r22, r2"
-atomic_op _fetch_andn, 32, "nor r2, r2, zero; and r24, r22, r2"
-atomic_op _fetch_xor, 32, "xor r24, r22, r2"
+atomic_op 32_fetch_or, 32, "or r24, r22, r2"
+atomic_op 32_fetch_and, 32, "and r24, r22, r2"
+atomic_op 32_fetch_andn, 32, "nor r2, r2, zero; and r24, r22, r2"
+atomic_op 32_fetch_xor, 32, "xor r24, r22, r2"
 
 atomic_op 64_cmpxchg, 64, "{ seq r26, r22, r2; seq r27, r23, r3 }; \
 	{ bbns r26, 3f; move r24, r4 }; { bbns r27, 3f; move r25, r5 }"

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

* Re: linux-next: Tree for Jun 21
  2016-06-22  9:16                       ` Peter Zijlstra
@ 2016-06-22 20:40                         ` Chris Metcalf
  2016-06-24  8:58                         ` [tip:locking/arch-atomic] locking/atomic, arch/tile: Fix tilepro build tip-bot for Peter Zijlstra
  1 sibling, 0 replies; 25+ messages in thread
From: Chris Metcalf @ 2016-06-22 20:40 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: Sudip Mukherjee, Stephen Rothwell, linux-next, Ingo Molnar,
	linux-kernel, linux-arch

On 6/22/2016 5:16 AM, Peter Zijlstra wrote:
> On Tue, Jun 21, 2016 at 02:36:34PM -0400, Chris Metcalf wrote:
>> >On 6/21/2016 2:28 PM, Peter Zijlstra wrote:
>>> > >On Tue, Jun 21, 2016 at 07:29:18PM +0200, Peter Zijlstra wrote:
>>> > >
>>>>> > >>>OK, I seem to have a tilepro-linux-gcc-6.1.1 build done. Lets see if I
>>>>> > >>>can build me a kernel with it.
>>> > >The below, much larger than desired, patch seems to make it go again.
>>> > >
>>> > >I had to s/__atomic_fetch/__atomic32_fetch/ to avoid a namespace clash
>>> > >with the builtin C11 atomic primitives.
>>> > >
>>> > >You want me to rename them all to regain consistent naming?
>> >
>> >Yes, it's probably the right thing to do.  All the internal routines with "atomic32"
>> >or "atomic64" I assume you mean?
> Something like so then?
>
> ---
>   arch/tile/include/asm/atomic_32.h |   24 ++++++++++++------------
>   arch/tile/include/asm/futex.h     |   14 +++++++-------
>   arch/tile/lib/atomic_32.c         |   16 ++++++++--------
>   arch/tile/lib/atomic_asm_32.S     |   21 +++++++++++++--------
>   4 files changed, 40 insertions(+), 35 deletions(-)

Yes, that looks good.  Thanks!

Acked-by: Chris Metcalf <cmetcalf@mellanox.com>

-- 
Chris Metcalf, Mellanox Technologies
http://www.mellanox.com

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

* Re: linux-next: Tree for Jun 21
  2016-06-21 21:14                         ` Arnd Bergmann
@ 2016-06-22 20:43                           ` Chris Metcalf
  2016-06-22 21:05                             ` Peter Zijlstra
  0 siblings, 1 reply; 25+ messages in thread
From: Chris Metcalf @ 2016-06-22 20:43 UTC (permalink / raw)
  To: Arnd Bergmann, Peter Zijlstra
  Cc: Sudip Mukherjee, Stephen Rothwell, linux-next, Ingo Molnar,
	linux-kernel, linux-arch

On 6/21/2016 5:14 PM, Arnd Bergmann wrote:
> On Tuesday, June 21, 2016 8:50:48 PM CEST Peter Zijlstra wrote:
>>> So what's your build process for the cross tools, by the way?  I'm assuming
>>> you're not doing a total bootstrap cross-tool build since you'd need minimal
>>> kernel headers (linux/errno.h or whatever) in that case.  I assume you're using
>>> the host headers to build the cross tool?
>>>
>>> So I'm a little confused how the other kernel headers are working out for you,
>>> e.g. <arch/icache.h> is referenced when building the tilegx libgcc.
>> I've no idea; I use this thing:
>>
>>    git://git.infradead.org/users/segher/buildall.git
>>
>> Although I've got some local modifications, none are to the actual
>> toolchain building part (although I suppose I should send segher a
>> patch).
>>
>> I have binutils-gdb.git and gcc.bit checkouts and point the buildall
>> config to that (both are on latest stable branches binutils-2_26-branch
>> and gcc-6-branch resp.). And I point the kernel path to my current
>> hacked up tree.
>>
>> I don't really rebuild the entire toolchains often, mostly only when I
>> really need a new GCC or its getting really old (like I used 5.3.0 for a
>> long while).
> I think the kernel headers are only needed for building glibc, which
> buildall.git doesn't use: it only does the initial stage of creating
> a cross-toolchain.

It turns out there were a few places where we were #include'ing Linux
headers in the gcc build (asm/unistd.h, arch/icache.h, arch/spr_def.h).
I patched gcc to provide inline copies of what was needed (pretty simple
stuff and won't ever change) and asked our lead compiler guy to upstream
it back up to gcc, so using buildall.git should get easier for tilepro/tilegx.

-- 
Chris Metcalf, Mellanox Technologies
http://www.mellanox.com

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

* Re: linux-next: Tree for Jun 21
  2016-06-22 20:43                           ` Chris Metcalf
@ 2016-06-22 21:05                             ` Peter Zijlstra
  0 siblings, 0 replies; 25+ messages in thread
From: Peter Zijlstra @ 2016-06-22 21:05 UTC (permalink / raw)
  To: Chris Metcalf
  Cc: Arnd Bergmann, Sudip Mukherjee, Stephen Rothwell, linux-next,
	Ingo Molnar, linux-kernel, linux-arch

On Wed, Jun 22, 2016 at 04:43:15PM -0400, Chris Metcalf wrote:
> It turns out there were a few places where we were #include'ing Linux
> headers in the gcc build (asm/unistd.h, arch/icache.h, arch/spr_def.h).
> I patched gcc to provide inline copies of what was needed (pretty simple
> stuff and won't ever change) and asked our lead compiler guy to upstream
> it back up to gcc, so using buildall.git should get easier for tilepro/tilegx.

tilegx actually built without issue (although I think it needed
--disable-gdb for binutils).

But thanks! Much appreciated.

I'll try and make a few patches for Segher to update buildall and reduce
the number of hacks/patches I have to carry around on that.

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

* [tip:locking/arch-atomic] locking/atomic, arch/tile: Fix tilepro build
  2016-06-22  9:16                       ` Peter Zijlstra
  2016-06-22 20:40                         ` Chris Metcalf
@ 2016-06-24  8:58                         ` tip-bot for Peter Zijlstra
  1 sibling, 0 replies; 25+ messages in thread
From: tip-bot for Peter Zijlstra @ 2016-06-24  8:58 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: sfr, peterz, linux-kernel, sudipm.mukherjee, torvalds, tglx,
	cmetcalf, hpa, mingo

Commit-ID:  b7271b9f3e18181559b96a610f4e42bdb04b07f5
Gitweb:     http://git.kernel.org/tip/b7271b9f3e18181559b96a610f4e42bdb04b07f5
Author:     Peter Zijlstra <peterz@infradead.org>
AuthorDate: Wed, 22 Jun 2016 11:16:49 +0200
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Fri, 24 Jun 2016 08:17:04 +0200

locking/atomic, arch/tile: Fix tilepro build

The tilepro change wasn't ever compiled it seems (the 0day built bot
also doesn't have a toolchain for it).

Make it work.

The thing that makes the patch bigger than desired is namespace
collision with the C11 __atomic builtin functions. So rename the
tilepro functions to __atomic32.

Reported-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Chris Metcalf <cmetcalf@mellanox.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Thomas Gleixner <tglx@linutronix.de>
Fixes: 1af5de9af138 ("locking/atomic, arch/tile: Implement atomic{,64}_fetch_{add,sub,and,or,xor}()")
Link: http://lkml.kernel.org/r/20160622091649.GB30154@twins.programming.kicks-ass.net
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 arch/tile/include/asm/atomic_32.h | 24 ++++++++++++------------
 arch/tile/include/asm/futex.h     | 14 +++++++-------
 arch/tile/lib/atomic_32.c         | 16 ++++++++--------
 arch/tile/lib/atomic_asm_32.S     | 21 +++++++++++++--------
 4 files changed, 40 insertions(+), 35 deletions(-)

diff --git a/arch/tile/include/asm/atomic_32.h b/arch/tile/include/asm/atomic_32.h
index da8eb4e..a937742 100644
--- a/arch/tile/include/asm/atomic_32.h
+++ b/arch/tile/include/asm/atomic_32.h
@@ -143,15 +143,15 @@ static inline void atomic64_##op(long long i, atomic64_t *v)	\
 {								\
 	_atomic64_fetch_##op(&v->counter, i);			\
 }								\
-static inline void atomic64_##op(long long i, atomic64_t *v)	\
+static inline long long atomic64_fetch_##op(long long i, atomic64_t *v)	\
 {								\
 	smp_mb();						\
 	return _atomic64_fetch_##op(&v->counter, i);		\
 }
 
-ATOMIC64_OP(and)
-ATOMIC64_OP(or)
-ATOMIC64_OP(xor)
+ATOMIC64_OPS(and)
+ATOMIC64_OPS(or)
+ATOMIC64_OPS(xor)
 
 #undef ATOMIC64_OPS
 
@@ -266,16 +266,16 @@ struct __get_user {
 	unsigned long val;
 	int err;
 };
-extern struct __get_user __atomic_cmpxchg(volatile int *p,
+extern struct __get_user __atomic32_cmpxchg(volatile int *p,
 					  int *lock, int o, int n);
-extern struct __get_user __atomic_xchg(volatile int *p, int *lock, int n);
-extern struct __get_user __atomic_xchg_add(volatile int *p, int *lock, int n);
-extern struct __get_user __atomic_xchg_add_unless(volatile int *p,
+extern struct __get_user __atomic32_xchg(volatile int *p, int *lock, int n);
+extern struct __get_user __atomic32_xchg_add(volatile int *p, int *lock, int n);
+extern struct __get_user __atomic32_xchg_add_unless(volatile int *p,
 						  int *lock, int o, int n);
-extern struct __get_user __atomic_fetch_or(volatile int *p, int *lock, int n);
-extern struct __get_user __atomic_fetch_and(volatile int *p, int *lock, int n);
-extern struct __get_user __atomic_fetch_andn(volatile int *p, int *lock, int n);
-extern struct __get_user __atomic_fetch_xor(volatile int *p, int *lock, int n);
+extern struct __get_user __atomic32_fetch_or(volatile int *p, int *lock, int n);
+extern struct __get_user __atomic32_fetch_and(volatile int *p, int *lock, int n);
+extern struct __get_user __atomic32_fetch_andn(volatile int *p, int *lock, int n);
+extern struct __get_user __atomic32_fetch_xor(volatile int *p, int *lock, int n);
 extern long long __atomic64_cmpxchg(volatile long long *p, int *lock,
 					long long o, long long n);
 extern long long __atomic64_xchg(volatile long long *p, int *lock, long long n);
diff --git a/arch/tile/include/asm/futex.h b/arch/tile/include/asm/futex.h
index 1a6ef1b..e64a1b7 100644
--- a/arch/tile/include/asm/futex.h
+++ b/arch/tile/include/asm/futex.h
@@ -80,16 +80,16 @@
 		ret = gu.err;						\
 	}
 
-#define __futex_set() __futex_call(__atomic_xchg)
-#define __futex_add() __futex_call(__atomic_xchg_add)
-#define __futex_or() __futex_call(__atomic_or)
-#define __futex_andn() __futex_call(__atomic_andn)
-#define __futex_xor() __futex_call(__atomic_xor)
+#define __futex_set() __futex_call(__atomic32_xchg)
+#define __futex_add() __futex_call(__atomic32_xchg_add)
+#define __futex_or() __futex_call(__atomic32_fetch_or)
+#define __futex_andn() __futex_call(__atomic32_fetch_andn)
+#define __futex_xor() __futex_call(__atomic32_fetch_xor)
 
 #define __futex_cmpxchg()						\
 	{								\
-		struct __get_user gu = __atomic_cmpxchg((u32 __force *)uaddr, \
-							lock, oldval, oparg); \
+		struct __get_user gu = __atomic32_cmpxchg((u32 __force *)uaddr, \
+							  lock, oldval, oparg); \
 		val = gu.val;						\
 		ret = gu.err;						\
 	}
diff --git a/arch/tile/lib/atomic_32.c b/arch/tile/lib/atomic_32.c
index 5b6bd93..f812880 100644
--- a/arch/tile/lib/atomic_32.c
+++ b/arch/tile/lib/atomic_32.c
@@ -61,13 +61,13 @@ static inline int *__atomic_setup(volatile void *v)
 
 int _atomic_xchg(int *v, int n)
 {
-	return __atomic_xchg(v, __atomic_setup(v), n).val;
+	return __atomic32_xchg(v, __atomic_setup(v), n).val;
 }
 EXPORT_SYMBOL(_atomic_xchg);
 
 int _atomic_xchg_add(int *v, int i)
 {
-	return __atomic_xchg_add(v, __atomic_setup(v), i).val;
+	return __atomic32_xchg_add(v, __atomic_setup(v), i).val;
 }
 EXPORT_SYMBOL(_atomic_xchg_add);
 
@@ -78,37 +78,37 @@ int _atomic_xchg_add_unless(int *v, int a, int u)
 	 * to use the first argument consistently as the "old value"
 	 * in the assembly, as is done for _atomic_cmpxchg().
 	 */
-	return __atomic_xchg_add_unless(v, __atomic_setup(v), u, a).val;
+	return __atomic32_xchg_add_unless(v, __atomic_setup(v), u, a).val;
 }
 EXPORT_SYMBOL(_atomic_xchg_add_unless);
 
 int _atomic_cmpxchg(int *v, int o, int n)
 {
-	return __atomic_cmpxchg(v, __atomic_setup(v), o, n).val;
+	return __atomic32_cmpxchg(v, __atomic_setup(v), o, n).val;
 }
 EXPORT_SYMBOL(_atomic_cmpxchg);
 
 unsigned long _atomic_fetch_or(volatile unsigned long *p, unsigned long mask)
 {
-	return __atomic_fetch_or((int *)p, __atomic_setup(p), mask).val;
+	return __atomic32_fetch_or((int *)p, __atomic_setup(p), mask).val;
 }
 EXPORT_SYMBOL(_atomic_fetch_or);
 
 unsigned long _atomic_fetch_and(volatile unsigned long *p, unsigned long mask)
 {
-	return __atomic_fetch_and((int *)p, __atomic_setup(p), mask).val;
+	return __atomic32_fetch_and((int *)p, __atomic_setup(p), mask).val;
 }
 EXPORT_SYMBOL(_atomic_fetch_and);
 
 unsigned long _atomic_fetch_andn(volatile unsigned long *p, unsigned long mask)
 {
-	return __atomic_fetch_andn((int *)p, __atomic_setup(p), mask).val;
+	return __atomic32_fetch_andn((int *)p, __atomic_setup(p), mask).val;
 }
 EXPORT_SYMBOL(_atomic_fetch_andn);
 
 unsigned long _atomic_fetch_xor(volatile unsigned long *p, unsigned long mask)
 {
-	return __atomic_fetch_xor((int *)p, __atomic_setup(p), mask).val;
+	return __atomic32_fetch_xor((int *)p, __atomic_setup(p), mask).val;
 }
 EXPORT_SYMBOL(_atomic_fetch_xor);
 
diff --git a/arch/tile/lib/atomic_asm_32.S b/arch/tile/lib/atomic_asm_32.S
index 507abdd..1a70e6c 100644
--- a/arch/tile/lib/atomic_asm_32.S
+++ b/arch/tile/lib/atomic_asm_32.S
@@ -172,15 +172,20 @@ STD_ENTRY_SECTION(__atomic\name, .text.atomic)
 	.endif
 	.endm
 
-atomic_op _cmpxchg, 32, "seq r26, r22, r2; { bbns r26, 3f; move r24, r3 }"
-atomic_op _xchg, 32, "move r24, r2"
-atomic_op _xchg_add, 32, "add r24, r22, r2"
-atomic_op _xchg_add_unless, 32, \
+
+/*
+ * Use __atomic32 prefix to avoid collisions with GCC builtin __atomic functions.
+ */
+
+atomic_op 32_cmpxchg, 32, "seq r26, r22, r2; { bbns r26, 3f; move r24, r3 }"
+atomic_op 32_xchg, 32, "move r24, r2"
+atomic_op 32_xchg_add, 32, "add r24, r22, r2"
+atomic_op 32_xchg_add_unless, 32, \
 	"sne r26, r22, r2; { bbns r26, 3f; add r24, r22, r3 }"
-atomic_op _fetch_or, 32, "or r24, r22, r2"
-atomic_op _fetch_and, 32, "and r24, r22, r2"
-atomic_op _fetch_andn, 32, "nor r2, r2, zero; and r24, r22, r2"
-atomic_op _fetch_xor, 32, "xor r24, r22, r2"
+atomic_op 32_fetch_or, 32, "or r24, r22, r2"
+atomic_op 32_fetch_and, 32, "and r24, r22, r2"
+atomic_op 32_fetch_andn, 32, "nor r2, r2, zero; and r24, r22, r2"
+atomic_op 32_fetch_xor, 32, "xor r24, r22, r2"
 
 atomic_op 64_cmpxchg, 64, "{ seq r26, r22, r2; seq r27, r23, r3 }; \
 	{ bbns r26, 3f; move r24, r4 }; { bbns r27, 3f; move r25, r5 }"

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

end of thread, other threads:[~2016-06-24  8:59 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-21  5:46 linux-next: Tree for Jun 21 Stephen Rothwell
2016-06-21  7:01 ` Sudip Mukherjee
2016-06-21  7:58   ` Peter Zijlstra
2016-06-21  8:55     ` Sudip Mukherjee
2016-06-21 12:08   ` Chris Metcalf
2016-06-21 12:42     ` Peter Zijlstra
2016-06-21 13:47       ` Chris Metcalf
2016-06-21 14:04         ` Peter Zijlstra
2016-06-21 14:14           ` Peter Zijlstra
2016-06-21 14:20             ` Chris Metcalf
2016-06-21 14:25               ` Peter Zijlstra
2016-06-21 14:34             ` Sudip Mukherjee
2016-06-21 15:26             ` Chris Metcalf
2016-06-21 17:06               ` Peter Zijlstra
2016-06-21 17:29                 ` Peter Zijlstra
2016-06-21 18:28                   ` Peter Zijlstra
2016-06-21 18:36                     ` Chris Metcalf
2016-06-21 18:50                       ` Peter Zijlstra
2016-06-21 19:04                         ` Peter Zijlstra
2016-06-21 21:14                         ` Arnd Bergmann
2016-06-22 20:43                           ` Chris Metcalf
2016-06-22 21:05                             ` Peter Zijlstra
2016-06-22  9:16                       ` Peter Zijlstra
2016-06-22 20:40                         ` Chris Metcalf
2016-06-24  8:58                         ` [tip:locking/arch-atomic] locking/atomic, arch/tile: Fix tilepro build tip-bot for Peter Zijlstra

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).