Public bug reported:

[Impact]

When compiling bionic linux 4.15.0-56.62 with CONFIG_NVM disabled, it
fails with:

make[5]: *** [drivers/nvme/host/core.o] Error 1
make[5]: *** Waiting for unfinished jobs....
In file included from 
/tmp/kernel-kleber-57dc2e6-NQe1/build/drivers/nvme/host/multipath.c:15:0:
/tmp/kernel-kleber-57dc2e6-NQe1/build/drivers/nvme/host/nvme.h: In function 
'nvme_nvm_register_sysfs':
/tmp/kernel-kleber-57dc2e6-NQe1/build/drivers/nvme/host/nvme.h:502:6: error: 
'ctrl' undeclared (first use in this function)
  if (ctrl->subsys->cmic & (1 << 3))
      ^
/tmp/kernel-kleber-57dc2e6-NQe1/build/drivers/nvme/host/nvme.h:502:6: note: 
each undeclared identifier is reported only once for each function it appears in

[Fix]
The culprit seems to be this patch:

commit 993f70b886c0062fb5ec7c3c556d074bb3380b9d
Author: Christoph Hellwig <h...@lst.de>
Date:   Tue Nov 20 16:57:54 2018 +0100

    nvme: warn when finding multi-port subsystems without multipathing
enabled

    BugLink: https://bugs.launchpad.net/bugs/1837161

    [ Upstream commit 14a1336e6fff47dd1028b484d6c802105c58e2ee ]
[...]
--- a/drivers/nvme/host/nvme.h
+++ b/drivers/nvme/host/nvme.h
@@ -499,6 +499,9 @@ static inline int nvme_nvm_register(struct nvme_ns *ns, 
char *disk_name,
 static inline void nvme_nvm_unregister(struct nvme_ns *ns) {};
 static inline int nvme_nvm_register_sysfs(struct nvme_ns *ns)
 {
+       if (ctrl->subsys->cmic & (1 << 3))
+               dev_warn(ctrl->device,
+"Please enable CONFIG_NVME_MULTIPATH for full support of multi-port 
devices.\n");
        return 0;
 }

which is adding the new lines to a different function than the original
upstream commit:

--- a/drivers/nvme/host/nvme.h
+++ b/drivers/nvme/host/nvme.h
@@ -531,6 +531,9 @@ static inline void nvme_mpath_check_last_path(struct 
nvme_ns *ns)
 static inline int nvme_mpath_init(struct nvme_ctrl *ctrl,
                struct nvme_id_ctrl *id)
 {
+       if (ctrl->subsys->cmic & (1 << 3))
+               dev_warn(ctrl->device,
+"Please enable CONFIG_NVME_MULTIPATH for full support of multi-port 
devices.\n");
        return 0;
 }

This patch was probably wrongly backported for bug #1837161 from
linux-4.19.y stable and not needed since bionic/linux lacks commit
0d0b660f214d (nvme: add ANA support) which introduced nvme_mpath_init().
The fix is to revert this patch.

[Test Case]

Disabled kernel config CONFIG_NVM and compile the kernel.

[Regression Potential]

Low. The patch was wrongly backported and can be safely reverted.

** Affects: linux (Ubuntu)
     Importance: Undecided
         Status: Invalid

** Affects: linux-azure (Ubuntu)
     Importance: Undecided
         Status: Invalid

** Affects: linux (Ubuntu Xenial)
     Importance: Undecided
         Status: Invalid

** Affects: linux-azure (Ubuntu Xenial)
     Importance: Undecided
         Status: Confirmed

** Affects: linux (Ubuntu Bionic)
     Importance: Undecided
         Status: Confirmed

** Affects: linux-azure (Ubuntu Bionic)
     Importance: Undecided
         Status: Invalid

** Also affects: linux (Ubuntu Bionic)
   Importance: Undecided
       Status: New

** Also affects: linux-azure (Ubuntu)
   Importance: Undecided
       Status: New

** Also affects: linux (Ubuntu Xenial)
   Importance: Undecided
       Status: New

** Also affects: linux-azure (Ubuntu Xenial)
   Importance: Undecided
       Status: New

** Changed in: linux (Ubuntu Xenial)
       Status: New => Invalid

** Changed in: linux (Ubuntu)
       Status: New => Invalid

** Changed in: linux (Ubuntu Bionic)
       Status: New => Confirmed

** Changed in: linux-azure (Ubuntu)
       Status: New => Invalid

** Changed in: linux-azure (Ubuntu Xenial)
       Status: New => Confirmed

** Changed in: linux-azure (Ubuntu Bionic)
       Status: New => Invalid

** Description changed:

  [Impact]
  
  When compiling bionic linux 4.15.0-56.62 with CONFIG_NVM disabled, it
  fails with:
  
  make[5]: *** [drivers/nvme/host/core.o] Error 1
  make[5]: *** Waiting for unfinished jobs....
  In file included from 
/tmp/kernel-kleber-57dc2e6-NQe1/build/drivers/nvme/host/multipath.c:15:0:
  /tmp/kernel-kleber-57dc2e6-NQe1/build/drivers/nvme/host/nvme.h: In function 
'nvme_nvm_register_sysfs':
  /tmp/kernel-kleber-57dc2e6-NQe1/build/drivers/nvme/host/nvme.h:502:6: error: 
'ctrl' undeclared (first use in this function)
-   if (ctrl->subsys->cmic & (1 << 3))
-       ^
+   if (ctrl->subsys->cmic & (1 << 3))
+       ^
  /tmp/kernel-kleber-57dc2e6-NQe1/build/drivers/nvme/host/nvme.h:502:6: note: 
each undeclared identifier is reported only once for each function it appears in
  
- [Fix] 
+ [Fix]
  The culprit seems to be this patch:
  
  commit 993f70b886c0062fb5ec7c3c556d074bb3380b9d
  Author: Christoph Hellwig <h...@lst.de>
  Date:   Tue Nov 20 16:57:54 2018 +0100
  
-     nvme: warn when finding multi-port subsystems without multipathing enabled
-     
-     BugLink: https://bugs.launchpad.net/bugs/1837161
-     
-     [ Upstream commit 14a1336e6fff47dd1028b484d6c802105c58e2ee ]
+     nvme: warn when finding multi-port subsystems without multipathing
+ enabled
+ 
+     BugLink: https://bugs.launchpad.net/bugs/1837161
+ 
+     [ Upstream commit 14a1336e6fff47dd1028b484d6c802105c58e2ee ]
  [...]
  --- a/drivers/nvme/host/nvme.h
  +++ b/drivers/nvme/host/nvme.h
  @@ -499,6 +499,9 @@ static inline int nvme_nvm_register(struct nvme_ns *ns, 
char *disk_name,
-  static inline void nvme_nvm_unregister(struct nvme_ns *ns) {};
-  static inline int nvme_nvm_register_sysfs(struct nvme_ns *ns)
-  {
+  static inline void nvme_nvm_unregister(struct nvme_ns *ns) {};
+  static inline int nvme_nvm_register_sysfs(struct nvme_ns *ns)
+  {
  +       if (ctrl->subsys->cmic & (1 << 3))
  +               dev_warn(ctrl->device,
  +"Please enable CONFIG_NVME_MULTIPATH for full support of multi-port 
devices.\n");
-         return 0;
-  }
+         return 0;
+  }
  
  which is adding the new lines to a different function than the original
  upstream commit:
  
  --- a/drivers/nvme/host/nvme.h
  +++ b/drivers/nvme/host/nvme.h
  @@ -531,6 +531,9 @@ static inline void nvme_mpath_check_last_path(struct 
nvme_ns *ns)
-  static inline int nvme_mpath_init(struct nvme_ctrl *ctrl,
-                 struct nvme_id_ctrl *id)
-  {
+  static inline int nvme_mpath_init(struct nvme_ctrl *ctrl,
+                 struct nvme_id_ctrl *id)
+  {
  +       if (ctrl->subsys->cmic & (1 << 3))
  +               dev_warn(ctrl->device,
  +"Please enable CONFIG_NVME_MULTIPATH for full support of multi-port 
devices.\n");
-         return 0;
-  }
+         return 0;
+  }
  
- This patch was probably wrongly backported from linux-4.19.y stable and
- not needed since bionic/linux lacks commit 0d0b660f214d (nvme: add ANA
- support) which introduced nvme_mpath_init(). The fix is to revert this
- patch.
- 
+ This patch was probably wrongly backported for bug #1837161 from
+ linux-4.19.y stable and not needed since bionic/linux lacks commit
+ 0d0b660f214d (nvme: add ANA support) which introduced nvme_mpath_init().
+ The fix is to revert this patch.
  
  [Test Case]
  
  Disabled kernel config CONFIG_NVM and compile the kernel.
  
- 
- [Regression Potential] 
+ [Regression Potential]
  
  Low. The patch was wrongly backported and can be safely reverted.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1838533

Title:
  Bionic linux 4.15.0-56.62 fails to build with CONFIG_NVM disabled

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1838533/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to