next/master bisection: boot on peach-pi

From: kernelci.org bot
Date: Wed Nov 20 2019 - 14:29:13 EST


* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* This automated bisection report was sent to you on the basis *
* that you may be involved with the breaking commit it has *
* found. No manual investigation has been done to verify it, *
* and the root cause of the problem may be somewhere else. *
* *
* If you do send a fix, please include this trailer: *
* Reported-by: "kernelci.org bot" <bot@xxxxxxxxxxxx> *
* *
* Hope this helps! *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

next/master bisection: boot on peach-pi

Summary:
Start: 1fef9976397f Add linux-next specific files for 20191120
Details: https://kernelci.org/boot/id/5dd5175059b514af0dcf54d0
Plain log: https://storage.kernelci.org//next/master/next-20191120/arm/exynos_defconfig/gcc-8/lab-collabora/boot-exynos5800-peach-pi.txt
HTML log: https://storage.kernelci.org//next/master/next-20191120/arm/exynos_defconfig/gcc-8/lab-collabora/boot-exynos5800-peach-pi.html
Result: b037b220e71d dma-direct: unify the dma_capable definitions

Checks:
revert: PASS
verify: PASS

Parameters:
Tree: next
URL: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
Branch: master
Target: peach-pi
CPU arch: arm
Lab: lab-collabora
Compiler: gcc-8
Config: exynos_defconfig
Test suite: boot

Breaking commit found:

-------------------------------------------------------------------------------
commit b037b220e71dcbb34cb710e00ffad2ec025b9163
Author: Christoph Hellwig <hch@xxxxxx>
Date: Tue Nov 12 17:06:04 2019 +0100

dma-direct: unify the dma_capable definitions

Currently each architectures that wants to override dma_to_phys and
phys_to_dma also has to provide dma_capable. But there isn't really
any good reason for that. powerpc and mips just have copies of the
generic one minus the latests fix, and the arm one was the inspiration
for said fix, but misses the bus_dma_mask handling.
Make all architectures use the generic version instead.

Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Acked-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx> (powerpc)
Reviewed-by: Nicolas Saenz Julienne <nsaenzjulienne@xxxxxxx>

diff --git a/arch/arm/include/asm/dma-direct.h b/arch/arm/include/asm/dma-direct.h
index b67e5fc1fe43..7c3001a6a775 100644
--- a/arch/arm/include/asm/dma-direct.h
+++ b/arch/arm/include/asm/dma-direct.h
@@ -14,23 +14,4 @@ static inline phys_addr_t __dma_to_phys(struct device *dev, dma_addr_t dev_addr)
return __pfn_to_phys(dma_to_pfn(dev, dev_addr)) + offset;
}

-static inline bool dma_capable(struct device *dev, dma_addr_t addr, size_t size)
-{
- u64 limit, mask;
-
- if (!dev->dma_mask)
- return 0;
-
- mask = *dev->dma_mask;
-
- limit = (mask + 1) & ~mask;
- if (limit && size > limit)
- return 0;
-
- if ((addr | (addr + size - 1)) & ~mask)
- return 0;
-
- return 1;
-}
-
#endif /* ASM_ARM_DMA_DIRECT_H */
diff --git a/arch/mips/include/asm/dma-direct.h b/arch/mips/include/asm/dma-direct.h
index b5c240806e1b..14e352651ce9 100644
--- a/arch/mips/include/asm/dma-direct.h
+++ b/arch/mips/include/asm/dma-direct.h
@@ -2,14 +2,6 @@
#ifndef _MIPS_DMA_DIRECT_H
#define _MIPS_DMA_DIRECT_H 1

-static inline bool dma_capable(struct device *dev, dma_addr_t addr, size_t size)
-{
- if (!dev->dma_mask)
- return false;
-
- return addr + size - 1 <= *dev->dma_mask;
-}
-
dma_addr_t __phys_to_dma(struct device *dev, phys_addr_t paddr);
phys_addr_t __dma_to_phys(struct device *dev, dma_addr_t daddr);

diff --git a/arch/powerpc/include/asm/dma-direct.h b/arch/powerpc/include/asm/dma-direct.h
index a2912b47102c..e29e8a236b8d 100644
--- a/arch/powerpc/include/asm/dma-direct.h
+++ b/arch/powerpc/include/asm/dma-direct.h
@@ -2,15 +2,6 @@
#ifndef ASM_POWERPC_DMA_DIRECT_H
#define ASM_POWERPC_DMA_DIRECT_H 1

-static inline bool dma_capable(struct device *dev, dma_addr_t addr, size_t size)
-{
- if (!dev->dma_mask)
- return false;
-
- return addr + size - 1 <=
- min_not_zero(*dev->dma_mask, dev->bus_dma_mask);
-}
-
static inline dma_addr_t __phys_to_dma(struct device *dev, phys_addr_t paddr)
{
if (!dev)
diff --git a/include/linux/dma-direct.h b/include/linux/dma-direct.h
index 6db863c3eb93..991f8aa2676e 100644
--- a/include/linux/dma-direct.h
+++ b/include/linux/dma-direct.h
@@ -24,6 +24,7 @@ static inline phys_addr_t __dma_to_phys(struct device *dev, dma_addr_t dev_addr)

return paddr + ((phys_addr_t)dev->dma_pfn_offset << PAGE_SHIFT);
}
+#endif /* !CONFIG_ARCH_HAS_PHYS_TO_DMA */

static inline bool dma_capable(struct device *dev, dma_addr_t addr, size_t size)
{
@@ -38,7 +39,6 @@ static inline bool dma_capable(struct device *dev, dma_addr_t addr, size_t size)

return end <= min_not_zero(*dev->dma_mask, dev->bus_dma_mask);
}
-#endif /* !CONFIG_ARCH_HAS_PHYS_TO_DMA */

#ifdef CONFIG_ARCH_HAS_FORCE_DMA_UNENCRYPTED
bool force_dma_unencrypted(struct device *dev);
-------------------------------------------------------------------------------


Git bisection log:

-------------------------------------------------------------------------------
git bisect start
# good: [fd8f64df95204951c3edd4c4a7817c909d55a100] mdio_bus: Fix init if CONFIG_RESET_CONTROLLER=n
git bisect good fd8f64df95204951c3edd4c4a7817c909d55a100
# bad: [1fef9976397fc9b951ee54467eccd65e0c508785] Add linux-next specific files for 20191120
git bisect bad 1fef9976397fc9b951ee54467eccd65e0c508785
# bad: [cf8226f5c44196785f624a89d4ecc0d37a497ea5] Merge remote-tracking branch 'crypto/master'
git bisect bad cf8226f5c44196785f624a89d4ecc0d37a497ea5
# bad: [74f00449ecd89d1239b6d0c0e7b0f2b6f8df7eca] Merge remote-tracking branch 'pstore/for-next/pstore'
git bisect bad 74f00449ecd89d1239b6d0c0e7b0f2b6f8df7eca
# bad: [56caf45711a6ab3efee14944a25b619241d8a8f1] Merge remote-tracking branch 'rockchip/for-next'
git bisect bad 56caf45711a6ab3efee14944a25b619241d8a8f1
# good: [ef9980578a06d184b95661a5de904d0d3d5d0c39] Merge branch 'arm/dt' into for-next
git bisect good ef9980578a06d184b95661a5de904d0d3d5d0c39
# good: [e1351090dd4a172fb26317ae6fa846ab13c50199] ARM: Document merges
git bisect good e1351090dd4a172fb26317ae6fa846ab13c50199
# bad: [0ab68e0575be44525a043d048863a6078ab6ed0d] Merge remote-tracking branch 'arm/for-next'
git bisect bad 0ab68e0575be44525a043d048863a6078ab6ed0d
# good: [08504765f773b151ff96f75b36e6a7f1c3308ccf] Merge remote-tracking branch 'spdx/spdx-linus'
git bisect good 08504765f773b151ff96f75b36e6a7f1c3308ccf
# bad: [ce154ead79b9a97e4376785dc7b3fe20b6d9a3ea] Merge remote-tracking branch 'dma-mapping/for-next'
git bisect bad ce154ead79b9a97e4376785dc7b3fe20b6d9a3ea
# good: [0241ea8cae19b49fc1b1459f7bbe9a77f4f9cc89] modpost: free ns_deps_buf.p after writing ns_deps files
git bisect good 0241ea8cae19b49fc1b1459f7bbe9a77f4f9cc89
# good: [e380a0394c36a3a878c858418d5dd7f5f195b6fc] x86/PCI: sta2x11: use default DMA address translation
git bisect good e380a0394c36a3a878c858418d5dd7f5f195b6fc
# good: [fcbb8461fd2376ba3782b5b8bd440c929b8e4980] kbuild: remove header compile test
git bisect good fcbb8461fd2376ba3782b5b8bd440c929b8e4980
# bad: [e4d2bda544c7df90abed8aaa099b5daf1870bcf8] dma-direct: avoid a forward declaration for phys_to_dma
git bisect bad e4d2bda544c7df90abed8aaa099b5daf1870bcf8
# bad: [b037b220e71dcbb34cb710e00ffad2ec025b9163] dma-direct: unify the dma_capable definitions
git bisect bad b037b220e71dcbb34cb710e00ffad2ec025b9163
# good: [9f0e56e96c7b2039edb4bda64410216c6e9fe93f] dma-mapping: drop the dev argument to arch_sync_dma_for_*
git bisect good 9f0e56e96c7b2039edb4bda64410216c6e9fe93f
# first bad commit: [b037b220e71dcbb34cb710e00ffad2ec025b9163] dma-direct: unify the dma_capable definitions
-------------------------------------------------------------------------------