linux-next: build failure after merge of the mm tree

Stephen Rothwell posted 1 patch 1 year, 5 months ago
There is a newer version of this series
drivers/iommu/iommufd/selftest.c | 1 +
drivers/nvme/host/fault_inject.c | 1 +
kernel/futex/core.c              | 1 +
lib/fault-inject.c               | 1 +
mm/fail_page_alloc.c             | 1 +
mm/failslab.c                    | 1 +
6 files changed, 6 insertions(+)
linux-next: build failure after merge of the mm tree
Posted by Stephen Rothwell 1 year, 5 months ago
Hi all,

After merging the mm tree, today's linux-next build (x86_64 allmodconfig)
failed like this:

drivers/nvme/host/fault_inject.c: In function 'nvme_fault_inject_init':
drivers/nvme/host/fault_inject.c:29:18: error: implicit declaration of function 'debugfs_create_dir'; did you mean 'kernfs_create_dir'? [-Werror=implicit-function-declaration]
   29 |         parent = debugfs_create_dir(dev_name, NULL);
      |                  ^~~~~~~~~~~~~~~~~~
      |                  kernfs_create_dir
drivers/nvme/host/fault_inject.c:29:16: error: assignment to 'struct dentry *' from 'int' makes pointer from integer without a cast [-Werror=int-conversion]
   29 |         parent = debugfs_create_dir(dev_name, NULL);
      |                ^
drivers/nvme/host/fault_inject.c:39:17: error: implicit declaration of function 'debugfs_remove_recursive' [-Werror=implicit-function-declaration]
   39 |                 debugfs_remove_recursive(parent);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/nvme/host/fault_inject.c:47:9: error: implicit declaration of function 'debugfs_create_x16' [-Werror=implicit-function-declaration]
   47 |         debugfs_create_x16("status", 0600, dir, &fault_inj->status);
      |         ^~~~~~~~~~~~~~~~~~
drivers/nvme/host/fault_inject.c:48:9: error: implicit declaration of function 'debugfs_create_bool'; did you mean 'kernfs_create_root'? [-Werror=implicit-function-declaration]
   48 |         debugfs_create_bool("dont_retry", 0600, dir, &fault_inj->dont_retry);
      |         ^~~~~~~~~~~~~~~~~~~
      |         kernfs_create_root
cc1: all warnings being treated as errors
drivers/iommu/iommufd/selftest.c: In function 'iommufd_test_init':
drivers/iommu/iommufd/selftest.c:1562:9: error: implicit declaration of function 'debugfs_remove_recursive' [-Werror=implicit-function-declaration]
 1562 |         debugfs_remove_recursive(dbgfs_root);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
kernel/futex/core.c: In function 'fail_futex_debugfs':
kernel/futex/core.c:98:9: error: implicit declaration of function 'debugfs_create_bool'; did you mean 'kernfs_create_root'? [-Werror=implicit-function-declaration]
   98 |         debugfs_create_bool("ignore-private", mode, dir,
      |         ^~~~~~~~~~~~~~~~~~~
      |         kernfs_create_root
cc1: all warnings being treated as errors
mm/fail_page_alloc.c: In function 'fail_page_alloc_debugfs':
mm/fail_page_alloc.c:57:9: error: implicit declaration of function 'debugfs_create_bool'; did you mean 'kernfs_create_root'? [-Werror=implicit-function-declaration]
   57 |         debugfs_create_bool("ignore-gfp-wait", mode, dir,
      |         ^~~~~~~~~~~~~~~~~~~
      |         kernfs_create_root
mm/fail_page_alloc.c:61:9: error: implicit declaration of function 'debugfs_create_u32' [-Werror=implicit-function-declaration]
   61 |         debugfs_create_u32("min-order", mode, dir, &fail_page_alloc.min_order);
      |         ^~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
mm/failslab.c: In function 'failslab_debugfs_init':
mm/failslab.c:65:9: error: implicit declaration of function 'debugfs_create_bool'; did you mean 'kernfs_create_root'? [-Werror=implicit-function-declaration]
   65 |         debugfs_create_bool("ignore-gfp-wait", mode, dir,
      |         ^~~~~~~~~~~~~~~~~~~
      |         kernfs_create_root
cc1: all warnings being treated as errors
lib/fault-inject.c: In function 'debugfs_create_ul':
lib/fault-inject.c:186:9: error: implicit declaration of function 'debugfs_create_file'; did you mean 'debugfs_create_ul'? [-Werror=implicit-function-declaration]
  186 |         debugfs_create_file(name, mode, parent, value, &fops_ul);
      |         ^~~~~~~~~~~~~~~~~~~
      |         debugfs_create_ul
lib/fault-inject.c: In function 'fault_create_debugfs_attr':
lib/fault-inject.c:217:15: error: implicit declaration of function 'debugfs_create_dir'; did you mean 'debugfs_create_ul'? [-Werror=implicit-function-declaration]
  217 |         dir = debugfs_create_dir(name, parent);
      |               ^~~~~~~~~~~~~~~~~~
      |               debugfs_create_ul
lib/fault-inject.c:217:13: error: assignment to 'struct dentry *' from 'int' makes pointer from integer without a cast [-Werror=int-conversion]
  217 |         dir = debugfs_create_dir(name, parent);
      |             ^
lib/fault-inject.c:223:9: error: implicit declaration of function 'debugfs_create_atomic_t'; did you mean 'debugfs_create_ul'? [-Werror=implicit-function-declaration]
  223 |         debugfs_create_atomic_t("times", mode, dir, &attr->times);
      |         ^~~~~~~~~~~~~~~~~~~~~~~
      |         debugfs_create_ul
lib/fault-inject.c:226:9: error: implicit declaration of function 'debugfs_create_u32'; did you mean 'debugfs_create_ul'? [-Werror=implicit-function-declaration]
  226 |         debugfs_create_u32("verbose_ratelimit_interval_ms", mode, dir,
      |         ^~~~~~~~~~~~~~~~~~
      |         debugfs_create_ul
lib/fault-inject.c:230:9: error: implicit declaration of function 'debugfs_create_bool'; did you mean 'debugfs_create_ul'? [-Werror=implicit-function-declaration]
  230 |         debugfs_create_bool("task-filter", mode, dir, &attr->task_filter);
      |         ^~~~~~~~~~~~~~~~~~~
      |         debugfs_create_ul
lib/fault-inject.c:235:9: error: implicit declaration of function 'debugfs_create_xul'; did you mean 'debugfs_create_ul'? [-Werror=implicit-function-declaration]
  235 |         debugfs_create_xul("require-start", mode, dir, &attr->require_start);
      |         ^~~~~~~~~~~~~~~~~~
      |         debugfs_create_ul
cc1: all warnings being treated as errors

Caused by commit

  2771559a5531 ("fault-inject: improve build for CONFIG_FAULT_INJECTION=n")

This is just whack-a-mole ... :-(

I have applied the following patch for today.

From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Thu, 15 Aug 2024 09:47:30 +1000
Subject: [PATCH] fix up for "fault-inject: improve build for CONFIG_FAULT_INJECTION=n"

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
 drivers/iommu/iommufd/selftest.c | 1 +
 drivers/nvme/host/fault_inject.c | 1 +
 kernel/futex/core.c              | 1 +
 lib/fault-inject.c               | 1 +
 mm/fail_page_alloc.c             | 1 +
 mm/failslab.c                    | 1 +
 6 files changed, 6 insertions(+)

diff --git a/drivers/iommu/iommufd/selftest.c b/drivers/iommu/iommufd/selftest.c
index f95e32e29133..d9024c00c6c3 100644
--- a/drivers/iommu/iommufd/selftest.c
+++ b/drivers/iommu/iommufd/selftest.c
@@ -8,6 +8,7 @@
 #include <linux/xarray.h>
 #include <linux/file.h>
 #include <linux/anon_inodes.h>
+#include <linux/debugfs.h>
 #include <linux/fault-inject.h>
 #include <linux/platform_device.h>
 #include <uapi/linux/iommufd.h>
diff --git a/drivers/nvme/host/fault_inject.c b/drivers/nvme/host/fault_inject.c
index 1d1b6441a339..105d6cb41c72 100644
--- a/drivers/nvme/host/fault_inject.c
+++ b/drivers/nvme/host/fault_inject.c
@@ -6,6 +6,7 @@
  */
 
 #include <linux/moduleparam.h>
+#include <linux/debugfs.h>
 #include "nvme.h"
 
 static DECLARE_FAULT_ATTR(fail_default_attr);
diff --git a/kernel/futex/core.c b/kernel/futex/core.c
index 06a1f091be81..f7cddf321593 100644
--- a/kernel/futex/core.c
+++ b/kernel/futex/core.c
@@ -36,6 +36,7 @@
 #include <linux/pagemap.h>
 #include <linux/plist.h>
 #include <linux/memblock.h>
+#include <linux/debugfs.h>
 #include <linux/fault-inject.h>
 #include <linux/slab.h>
 
diff --git a/lib/fault-inject.c b/lib/fault-inject.c
index d608f9b48c10..d5853defe77a 100644
--- a/lib/fault-inject.c
+++ b/lib/fault-inject.c
@@ -9,6 +9,7 @@
 #include <linux/export.h>
 #include <linux/interrupt.h>
 #include <linux/stacktrace.h>
+#include <linux/debugfs.h>
 #include <linux/fault-inject.h>
 
 /*
diff --git a/mm/fail_page_alloc.c b/mm/fail_page_alloc.c
index 532851ce5132..4c7aa18450c9 100644
--- a/mm/fail_page_alloc.c
+++ b/mm/fail_page_alloc.c
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: GPL-2.0
+#include <linux/debugfs.h>
 #include <linux/fault-inject.h>
 #include <linux/error-injection.h>
 #include <linux/mm.h>
diff --git a/mm/failslab.c b/mm/failslab.c
index af16c2ed578f..4b02bc8b420e 100644
--- a/mm/failslab.c
+++ b/mm/failslab.c
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: GPL-2.0
+#include <linux/debugfs.h>
 #include <linux/fault-inject.h>
 #include <linux/error-injection.h>
 #include <linux/slab.h>
-- 
2.43.0

-- 
Cheers,
Stephen Rothwell
Re: linux-next: build failure after merge of the mm tree
Posted by Stephen Rothwell 1 year, 5 months ago
Hi all,

On Thu, 15 Aug 2024 09:57:34 +1000 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>
> After merging the mm tree, today's linux-next build (x86_64 allmodconfig)
> failed like this:
> 
	.
	.
	.
> 
> Caused by commit
> 
>   2771559a5531 ("fault-inject: improve build for CONFIG_FAULT_INJECTION=n")
> 
> This is just whack-a-mole ... :-(

These files might also be worth a look:

$ git grep -l '\<debugfs_' $(git grep -L 'linux/debugfs.h' $(git grep -l 'linux/fault-inject.h'))
drivers/gpu/drm/msm/msm_drv.c
drivers/misc/xilinx_tmr_inject.c
drivers/ufs/core/ufs-fault-injection.c
include/linux/mmc/host.h
include/ufs/ufshcd.h

-- 
Cheers,
Stephen Rothwell
Re: linux-next: build failure after merge of the mm tree
Posted by Andrew Morton 1 year, 5 months ago
On Thu, 15 Aug 2024 10:06:45 +1000 Stephen Rothwell <sfr@canb.auug.org.au> wrote:

> > 
> > Caused by commit
> > 
> >   2771559a5531 ("fault-inject: improve build for CONFIG_FAULT_INJECTION=n")
> > 
> > This is just whack-a-mole ... :-(
> 
> These files might also be worth a look:
> 
> $ git grep -l '\<debugfs_' $(git grep -L 'linux/debugfs.h' $(git grep -l 'linux/fault-inject.h'))
> drivers/gpu/drm/msm/msm_drv.c
> drivers/misc/xilinx_tmr_inject.c
> drivers/ufs/core/ufs-fault-injection.c
> include/linux/mmc/host.h
> include/ufs/ufshcd.h

yup, thanks, why not.

 drivers/gpu/drm/msm/msm_drv.c          |    1 +
 drivers/ufs/core/ufs-fault-injection.c |    1 +
 include/linux/mmc/host.h               |    1 +
 include/ufs/ufshcd.h                   |    1 +
 4 files changed, 4 insertions(+)

--- a/drivers/gpu/drm/msm/msm_drv.c~fault-inject-improve-build-for-config_fault_injection=n-fix-3
+++ a/drivers/gpu/drm/msm/msm_drv.c
@@ -7,6 +7,7 @@
 
 #include <linux/dma-mapping.h>
 #include <linux/fault-inject.h>
+#include <linux/debugfs.h>
 #include <linux/of_address.h>
 #include <linux/uaccess.h>
 
--- a/drivers/ufs/core/ufs-fault-injection.c~fault-inject-improve-build-for-config_fault_injection=n-fix-3
+++ a/drivers/ufs/core/ufs-fault-injection.c
@@ -3,6 +3,7 @@
 #include <linux/kconfig.h>
 #include <linux/types.h>
 #include <linux/fault-inject.h>
+#include <linux/debugfs.h>
 #include <linux/module.h>
 #include <ufs/ufshcd.h>
 #include "ufs-fault-injection.h"
--- a/include/linux/mmc/host.h~fault-inject-improve-build-for-config_fault_injection=n-fix-3
+++ a/include/linux/mmc/host.h
@@ -10,6 +10,7 @@
 #include <linux/sched.h>
 #include <linux/device.h>
 #include <linux/fault-inject.h>
+#include <linux/debugfs.h>
 
 #include <linux/mmc/core.h>
 #include <linux/mmc/card.h>
--- a/include/ufs/ufshcd.h~fault-inject-improve-build-for-config_fault_injection=n-fix-3
+++ a/include/ufs/ufshcd.h
@@ -17,6 +17,7 @@
 #include <linux/blk-mq.h>
 #include <linux/devfreq.h>
 #include <linux/fault-inject.h>
+#include <linux/debugfs.h>
 #include <linux/msi.h>
 #include <linux/pm_runtime.h>
 #include <linux/dma-direction.h>
_
Re: linux-next: build failure after merge of the mm tree
Posted by Andrew Morton 1 year, 5 months ago
On Thu, 15 Aug 2024 09:57:34 +1000 Stephen Rothwell <sfr@canb.auug.org.au> wrote:

> Hi all,
> 
> After merging the mm tree, today's linux-next build (x86_64 allmodconfig)
> failed like this:
> 
> drivers/nvme/host/fault_inject.c: In function 'nvme_fault_inject_init':
> drivers/nvme/host/fault_inject.c:29:18: error: implicit declaration of function 'debugfs_create_dir'; did you mean 'kernfs_create_dir'? [-Werror=implicit-function-declaration]
>    29 |         parent = debugfs_create_dir(dev_name, NULL);
>       |                  ^~~~~~~~~~~~~~~~~~
>       |                  kernfs_create_dir
> 
> ...
>
> Caused by commit
> 
>   2771559a5531 ("fault-inject: improve build for CONFIG_FAULT_INJECTION=n")
> 
> ...
>
>  drivers/iommu/iommufd/selftest.c | 1 +
>  drivers/nvme/host/fault_inject.c | 1 +
>  kernel/futex/core.c              | 1 +
>  lib/fault-inject.c               | 1 +
>  mm/fail_page_alloc.c             | 1 +
>  mm/failslab.c                    | 1 +
>  6 files changed, 6 insertions(+)

Oh.  I think I got all these with
fault-inject-improve-build-for-config_fault_injection=n-fix.patch. 
Maybe that escaped somehow.


From: Andrew Morton <akpm@linux-foundation.org>
Subject: fault-inject-improve-build-for-config_fault_injection=n-fix
Date: Tue Aug 13 07:20:23 PM PDT 2024

repair fallout from no longer including debugfs.h into fault-inject.h

Cc: Abhinav Kumar <quic_abhinavk@quicinc.com>
Cc: Akinobu Mita <akinobu.mita@gmail.com>
Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---

 drivers/iommu/iommufd/selftest.c |    1 +
 drivers/nvme/host/fault_inject.c |    1 +
 kernel/futex/core.c              |    1 +
 lib/fault-inject.c               |    1 +
 mm/fail_page_alloc.c             |    1 +
 mm/failslab.c                    |    1 +
 6 files changed, 6 insertions(+)

--- a/drivers/iommu/iommufd/selftest.c~fault-inject-improve-build-for-config_fault_injection=n-fix
+++ a/drivers/iommu/iommufd/selftest.c
@@ -7,6 +7,7 @@
 #include <linux/iommu.h>
 #include <linux/xarray.h>
 #include <linux/file.h>
+#include <linux/debugfs.h>
 #include <linux/anon_inodes.h>
 #include <linux/fault-inject.h>
 #include <linux/platform_device.h>
--- a/drivers/nvme/host/fault_inject.c~fault-inject-improve-build-for-config_fault_injection=n-fix
+++ a/drivers/nvme/host/fault_inject.c
@@ -6,6 +6,7 @@
  */
 
 #include <linux/moduleparam.h>
+#include <linux/debugfs.h>
 #include "nvme.h"
 
 static DECLARE_FAULT_ATTR(fail_default_attr);
--- a/kernel/futex/core.c~fault-inject-improve-build-for-config_fault_injection=n-fix
+++ a/kernel/futex/core.c
@@ -34,6 +34,7 @@
 #include <linux/compat.h>
 #include <linux/jhash.h>
 #include <linux/pagemap.h>
+#include <linux/debugfs.h>
 #include <linux/plist.h>
 #include <linux/memblock.h>
 #include <linux/fault-inject.h>
--- a/lib/fault-inject.c~fault-inject-improve-build-for-config_fault_injection=n-fix
+++ a/lib/fault-inject.c
@@ -2,6 +2,7 @@
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/random.h>
+#include <linux/debugfs.h>
 #include <linux/sched.h>
 #include <linux/stat.h>
 #include <linux/types.h>
--- a/mm/fail_page_alloc.c~fault-inject-improve-build-for-config_fault_injection=n-fix
+++ a/mm/fail_page_alloc.c
@@ -1,5 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 #include <linux/fault-inject.h>
+#include <linux/debugfs.h>
 #include <linux/error-injection.h>
 #include <linux/mm.h>
 
--- a/mm/failslab.c~fault-inject-improve-build-for-config_fault_injection=n-fix
+++ a/mm/failslab.c
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0
 #include <linux/fault-inject.h>
 #include <linux/error-injection.h>
+#include <linux/debugfs.h>
 #include <linux/slab.h>
 #include <linux/mm.h>
 #include "slab.h"
_
Re: linux-next: build failure after merge of the mm tree
Posted by Stephen Rothwell 1 year, 5 months ago
Hi Andrew,

On Wed, 14 Aug 2024 17:08:03 -0700 Andrew Morton <akpm@linux-foundation.org> wrote:
>
> Oh.  I think I got all these with
> fault-inject-improve-build-for-config_fault_injection=n-fix.patch. 
> Maybe that escaped somehow.

I guess it did. :-(

-- 
Cheers,
Stephen Rothwell