[PATCH] nvme: rdma: Add check for queue in nvmet_rdma_cm_handler()

kernel test robot lkp at intel.com
Fri Nov 1 07:02:09 PDT 2024


Hi George,

kernel test robot noticed the following build warnings:

[auto build test WARNING on linus/master]
[also build test WARNING on v6.12-rc5 next-20241101]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/George-Rurikov/nvme-rdma-Add-check-for-queue-in-nvmet_rdma_cm_handler/20241101-013611
base:   linus/master
patch link:    https://lore.kernel.org/r/20241031173327.663-1-grurikov%40gmail.com
patch subject: [PATCH] nvme: rdma: Add check for queue in nvmet_rdma_cm_handler()
config: x86_64-rhel-8.3-func (https://download.01.org/0day-ci/archive/20241101/202411012136.hoMlvrTF-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241101/202411012136.hoMlvrTF-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202411012136.hoMlvrTF-lkp@intel.com/

All warnings (new ones prefixed by >>):

   drivers/nvme/target/rdma.c: In function 'nvmet_rdma_cm_handler':
>> drivers/nvme/target/rdma.c:1771:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
    1771 |                 if (!queue) {
         |                    ^
   drivers/nvme/target/rdma.c:1775:9: note: here
    1775 |         case RDMA_CM_EVENT_ADDR_CHANGE:
         |         ^~~~
   drivers/nvme/target/rdma.c:1785:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
    1785 |                 if (!queue) {
         |                    ^
   drivers/nvme/target/rdma.c:1789:9: note: here
    1789 |         case RDMA_CM_EVENT_DEVICE_REMOVAL:
         |         ^~~~
   drivers/nvme/target/rdma.c:1798:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
    1798 |                 if (!queue) {
         |                    ^
   drivers/nvme/target/rdma.c:1802:9: note: here
    1802 |         default:
         |         ^~~~~~~


vim +1771 drivers/nvme/target/rdma.c

  1752	
  1753	static int nvmet_rdma_cm_handler(struct rdma_cm_id *cm_id,
  1754			struct rdma_cm_event *event)
  1755	{
  1756		struct nvmet_rdma_queue *queue = NULL;
  1757		int ret = 0;
  1758	
  1759		if (cm_id->qp)
  1760			queue = cm_id->qp->qp_context;
  1761	
  1762		pr_debug("%s (%d): status %d id %p\n",
  1763			rdma_event_msg(event->event), event->event,
  1764			event->status, cm_id);
  1765	
  1766		switch (event->event) {
  1767		case RDMA_CM_EVENT_CONNECT_REQUEST:
  1768			ret = nvmet_rdma_queue_connect(cm_id, event);
  1769			break;
  1770		case RDMA_CM_EVENT_ESTABLISHED:
> 1771			if (!queue) {
  1772				nvmet_rdma_queue_established(queue);
  1773				break;
  1774			}
  1775		case RDMA_CM_EVENT_ADDR_CHANGE:
  1776			if (!queue) {
  1777				struct nvmet_rdma_port *port = cm_id->context;
  1778	
  1779				queue_delayed_work(nvmet_wq, &port->repair_work, 0);
  1780				break;
  1781			}
  1782			fallthrough;
  1783		case RDMA_CM_EVENT_DISCONNECTED:
  1784		case RDMA_CM_EVENT_TIMEWAIT_EXIT:
  1785			if (!queue) {
  1786				nvmet_rdma_queue_disconnect(queue);
  1787				break;
  1788			}
  1789		case RDMA_CM_EVENT_DEVICE_REMOVAL:
  1790			ret = nvmet_rdma_device_removal(cm_id, queue);
  1791			break;
  1792		case RDMA_CM_EVENT_REJECTED:
  1793			pr_debug("Connection rejected: %s\n",
  1794				 rdma_reject_msg(cm_id, event->status));
  1795			fallthrough;
  1796		case RDMA_CM_EVENT_UNREACHABLE:
  1797		case RDMA_CM_EVENT_CONNECT_ERROR:
  1798			if (!queue) {
  1799				nvmet_rdma_queue_connect_fail(cm_id, queue);
  1800				break;
  1801			}
  1802		default:
  1803			pr_err("received unrecognized RDMA CM event %d\n",
  1804				event->event);
  1805			break;
  1806		}
  1807	
  1808		return ret;
  1809	}
  1810	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki



More information about the Linux-nvme mailing list