Patch "scsi: elx: efct: Fix void-pointer-to-enum-cast warning for efc_nport_topology" has been added to the 5.14-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    scsi: elx: efct: Fix void-pointer-to-enum-cast warning for efc_nport_topology

to the 5.14-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     scsi-elx-efct-fix-void-pointer-to-enum-cast-warning-.patch
and it can be found in the queue-5.14 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 52a822f92583da3c50633925f82954bc1a0288fe
Author: James Smart <jsmart2021@xxxxxxxxx>
Date:   Mon Aug 30 16:10:50 2021 -0700

    scsi: elx: efct: Fix void-pointer-to-enum-cast warning for efc_nport_topology
    
    [ Upstream commit 96fafe7c6523886308605d30ec92c7936abe7c2c ]
    
    The kernel test robot flagged an warning for ".../efc_device.c:932:6:
    warning: cast to smaller integer type 'enum efc_nport_topology' from 'void
    *'"
    
    For the topology events, the "arg" field is generically defined as a void *
    and is used to pass different arguments. Most of the arguments are pointers
    to data structures. But for the EFC_EVT_NPORT_TOPOLOGY_NOTIFY event, the
    argument is an enum value, and the code is typecasting the void * to an
    enum generating the warning.
    
    Fix by converting the EFC_EVT_NPORT_TOPOLOGY_NOTIFY event to pass a pointer
    to the enum, thus it's a straight-forward pointer dereference in the event
    handler.
    
    Link: https://lore.kernel.org/r/20210830231050.5951-1-jsmart2021@xxxxxxxxx
    Fixes: 202bfdffae27 ("scsi: elx: libefc: FC node ELS and state handling")
    Reported-by: kernel test robot <lkp@xxxxxxxxx>
    Co-developed-by: Ram Vegesna <ram.vegesna@xxxxxxxxxxxx>
    Signed-off-by: Ram Vegesna <ram.vegesna@xxxxxxxxxxxx>
    Signed-off-by: James Smart <jsmart2021@xxxxxxxxx>
    Signed-off-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/scsi/elx/libefc/efc_device.c b/drivers/scsi/elx/libefc/efc_device.c
index 725ca2a23fb2..52be01333c6e 100644
--- a/drivers/scsi/elx/libefc/efc_device.c
+++ b/drivers/scsi/elx/libefc/efc_device.c
@@ -928,22 +928,21 @@ __efc_d_wait_topology_notify(struct efc_sm_ctx *ctx,
 		break;
 
 	case EFC_EVT_NPORT_TOPOLOGY_NOTIFY: {
-		enum efc_nport_topology topology =
-					(enum efc_nport_topology)arg;
+		enum efc_nport_topology *topology = arg;
 
 		WARN_ON(node->nport->domain->attached);
 
 		WARN_ON(node->send_ls_acc != EFC_NODE_SEND_LS_ACC_PLOGI);
 
 		node_printf(node, "topology notification, topology=%d\n",
-			    topology);
+			    *topology);
 
 		/* At the time the PLOGI was received, the topology was unknown,
 		 * so we didn't know which node would perform the domain attach:
 		 * 1. The node from which the PLOGI was sent (p2p) or
 		 * 2. The node to which the FLOGI was sent (fabric).
 		 */
-		if (topology == EFC_NPORT_TOPO_P2P) {
+		if (*topology == EFC_NPORT_TOPO_P2P) {
 			/* if this is p2p, need to attach to the domain using
 			 * the d_id from the PLOGI received
 			 */
diff --git a/drivers/scsi/elx/libefc/efc_fabric.c b/drivers/scsi/elx/libefc/efc_fabric.c
index d397220d9e54..3270ce40196c 100644
--- a/drivers/scsi/elx/libefc/efc_fabric.c
+++ b/drivers/scsi/elx/libefc/efc_fabric.c
@@ -107,7 +107,6 @@ void
 efc_fabric_notify_topology(struct efc_node *node)
 {
 	struct efc_node *tmp_node;
-	enum efc_nport_topology topology = node->nport->topology;
 	unsigned long index;
 
 	/*
@@ -118,7 +117,7 @@ efc_fabric_notify_topology(struct efc_node *node)
 		if (tmp_node != node) {
 			efc_node_post_event(tmp_node,
 					    EFC_EVT_NPORT_TOPOLOGY_NOTIFY,
-					    (void *)topology);
+					    &node->nport->topology);
 		}
 	}
 }



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux