Skip to contentSkip to conversation

RDMA/siw: Mark expected switch fall-throughs

PATCH In review Gustavo A. R. Silva 3 participants 4 messages Jul 11, 2019 – Jul 12, 2019

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 RDMA/siw: Mark expected switch fall-throughs

In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through.

This patch fixes the following warnings:

drivers/infiniband/sw/siw/siw_qp_rx.c: In function ‘siw_rdmap_complete’:
drivers/infiniband/sw/siw/siw_qp_rx.c:1214:18: warning: this statement may fall through [-Wimplicit-fallthrough=]
wqe->rqe.flags |= SIW_WQE_SOLICITED;
~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
drivers/infiniband/sw/siw/siw_qp_rx.c:1215:2: note: here
case RDMAP_SEND:
^~~~

drivers/infiniband/sw/siw/siw_qp_tx.c: In function ‘siw_qp_sq_process’:
drivers/infiniband/sw/siw/siw_qp_tx.c:1044:4: warning: this statement may fall through [-Wimplicit-fallthrough=]

    siw_wqe_put_mem(wqe, tx_type);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

drivers/infiniband/sw/siw/siw_qp_tx.c:1045:3: note: here
case SIW_OP_INVAL_STAG:
^~~~
drivers/infiniband/sw/siw/siw_qp_tx.c:1128:4: warning: this statement may fall through [-Wimplicit-fallthrough=]

    siw_wqe_put_mem(wqe, tx_type);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

drivers/infiniband/sw/siw/siw_qp_tx.c:1129:3: note: here
case SIW_OP_INVAL_STAG:
^~~~

Warning level 3 was used: -Wimplicit-fallthrough=3

This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough.

---

NOTE: -Wimplicit-fallthrough will be enabled globally in v5.3. So, I
suggest you to take this patch for 5.3-rc1.

 drivers/infiniband/sw/siw/siw_qp_rx.c | 2 ++
 drivers/infiniband/sw/siw/siw_qp_tx.c | 4 ++++
 2 files changed, 6 insertions(+)
drivers/infiniband/sw/siw/siw_qp_rx.c +2 -0
index 682a290bc11e..f87657a11657 100644
@@ -1212,6 +1212,8 @@ static int siw_rdmap_complete(struct siw_qp *qp, int error)
 	case RDMAP_SEND_SE:
 	case RDMAP_SEND_SE_INVAL:
 		wqe->rqe.flags |= SIW_WQE_SOLICITED;
+		/* Fall through */
+
 	case RDMAP_SEND:
 	case RDMAP_SEND_INVAL:
 		if (wqe->wr_status == SIW_WR_IDLE)
drivers/infiniband/sw/siw/siw_qp_tx.c +4 -0
index f0d949e2e318..43020d2040fc 100644
@@ -1042,6 +1042,8 @@ int siw_qp_sq_process(struct siw_qp *qp)
 		case SIW_OP_SEND_REMOTE_INV:
 		case SIW_OP_WRITE:
 			siw_wqe_put_mem(wqe, tx_type);
+			/* Fall through */
+
 		case SIW_OP_INVAL_STAG:
 		case SIW_OP_REG_MR:
 			if (tx_flags(wqe) & SIW_WQE_SIGNALLED)
@@ -1126,6 +1128,8 @@ int siw_qp_sq_process(struct siw_qp *qp)
 		case SIW_OP_READ:
 		case SIW_OP_READ_LOCAL_INV:
 			siw_wqe_put_mem(wqe, tx_type);
+			/* Fall through */
+
 		case SIW_OP_INVAL_STAG:
 		case SIW_OP_REG_MR:
 			siw_sqe_complete(qp, &wqe->sqe, wqe->bytes,
Signature · 1 line
2.21.0
#1 lore raw

-----"Gustavo A. R. Silva" <[email protected]> wrote: -----

Quoted 98 lines

To: "Bernard Metzler" <[email protected]>, "Doug Ledford" <[email protected]>, "Jason Gunthorpe" <[email protected]>
From: "Gustavo A. R. Silva" <[email protected]>
Date: 07/11/2019 06:12PM
Cc: [email protected], [email protected], "Gustavo A. R. Silva" <[email protected]>
Subject: [EXTERNAL] [PATCH] RDMA/siw: Mark expected switch fall-throughs

In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through.

This patch fixes the following warnings:

drivers/infiniband/sw/siw/siw_qp_rx.c: In function ‘siw_rdmap_complete’:
drivers/infiniband/sw/siw/siw_qp_rx.c:1214:18: warning: this statement may fall through [-Wimplicit-fallthrough=]
wqe->rqe.flags |= SIW_WQE_SOLICITED; ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
drivers/infiniband/sw/siw/siw_qp_rx.c:1215:2: note: here
case RDMAP_SEND:
^~~~

drivers/infiniband/sw/siw/siw_qp_tx.c: In function ‘siw_qp_sq_process’:
drivers/infiniband/sw/siw/siw_qp_tx.c:1044:4: warning: this statement may fall through [-Wimplicit-fallthrough=]

   siw_wqe_put_mem(wqe, tx_type);
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

drivers/infiniband/sw/siw/siw_qp_tx.c:1045:3: note: here
case SIW_OP_INVAL_STAG:
^~~~
drivers/infiniband/sw/siw/siw_qp_tx.c:1128:4: warning: this statement may fall through [-Wimplicit-fallthrough=]

   siw_wqe_put_mem(wqe, tx_type);
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

drivers/infiniband/sw/siw/siw_qp_tx.c:1129:3: note: here
case SIW_OP_INVAL_STAG:
^~~~

Warning level 3 was used: -Wimplicit-fallthrough=3

This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough.

---

NOTE: -Wimplicit-fallthrough will be enabled globally in v5.3. So, I
suggest you to take this patch for 5.3-rc1.

drivers/infiniband/sw/siw/siw_qp_rx.c | 2 ++
drivers/infiniband/sw/siw/siw_qp_tx.c | 4 ++++

2 files changed, 6 insertions(+)
drivers/infiniband/sw/siw/siw_qp_rx.c +2 -0
index 682a290bc11e..f87657a11657 100644
@@ -1212,6 +1212,8 @@ static int siw_rdmap_complete(struct siw_qp
 *qp, int error)
 	case RDMAP_SEND_SE:
 	case RDMAP_SEND_SE_INVAL:
 		wqe->rqe.flags |= SIW_WQE_SOLICITED;
+		/* Fall through */
+
 	case RDMAP_SEND:
 	case RDMAP_SEND_INVAL:
		if (wqe->wr_status == SIW_WR_IDLE)
drivers/infiniband/sw/siw/siw_qp_tx.c +4 -0
index f0d949e2e318..43020d2040fc 100644
@@ -1042,6 +1042,8 @@ int siw_qp_sq_process(struct siw_qp *qp)
 		case SIW_OP_SEND_REMOTE_INV:
 		case SIW_OP_WRITE:
 			siw_wqe_put_mem(wqe, tx_type);
+			/* Fall through */
+
 		case SIW_OP_INVAL_STAG:
 		case SIW_OP_REG_MR:
 			if (tx_flags(wqe) & SIW_WQE_SIGNALLED)
@@ -1126,6 +1128,8 @@ int siw_qp_sq_process(struct siw_qp *qp)
 		case SIW_OP_READ:
 		case SIW_OP_READ_LOCAL_INV:
 			siw_wqe_put_mem(wqe, tx_type);
+			/* Fall through */
+
 		case SIW_OP_INVAL_STAG:
 		case SIW_OP_REG_MR:
 			siw_sqe_complete(qp, &wqe->sqe, wqe->bytes,
Signature · 1 line
2.21.0

Thanks Gustavo. Didn't know that becomes mandatory. Had it here and there only, where I thought it is not obvious...but better to keep the rules simple.

Thanks,
Bernard.

#2 lore raw
In reply to Gustavo A. R. Silva
Quoted 29 lines · Gustavo A. R. Silva

In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through.

This patch fixes the following warnings:

drivers/infiniband/sw/siw/siw_qp_rx.c: In function ‘siw_rdmap_complete’:
drivers/infiniband/sw/siw/siw_qp_rx.c:1214:18: warning: this statement may fall through [-Wimplicit-fallthrough=]

   wqe->rqe.flags |= SIW_WQE_SOLICITED;
   ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~

drivers/infiniband/sw/siw/siw_qp_rx.c:1215:2: note: here
case RDMAP_SEND:
^~~~

drivers/infiniband/sw/siw/siw_qp_tx.c: In function ‘siw_qp_sq_process’:
drivers/infiniband/sw/siw/siw_qp_tx.c:1044:4: warning: this statement may fall through [-Wimplicit-fallthrough=]

    siw_wqe_put_mem(wqe, tx_type);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/infiniband/sw/siw/siw_qp_tx.c:1045:3: note: here
   case SIW_OP_INVAL_STAG:
   ^~~~
drivers/infiniband/sw/siw/siw_qp_tx.c:1128:4: warning: this statement may fall through [-Wimplicit-fallthrough=]
    siw_wqe_put_mem(wqe, tx_type);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/infiniband/sw/siw/siw_qp_tx.c:1129:3: note: here
   case SIW_OP_INVAL_STAG:
   ^~~~

Warning level 3 was used: -Wimplicit-fallthrough=3

Quoted 7 lines

This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough.

NOTE: -Wimplicit-fallthrough will be enabled globally in v5.3. So, I
suggest you to take this patch for 5.3-rc1.

Okay, I queued this for the current merge window then

Jason

#3 lore raw
Quoted 10 lines · Jason Gunthorpe
Quoted 7 lines

This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough.

NOTE: -Wimplicit-fallthrough will be enabled globally in v5.3. So, I
suggest you to take this patch for 5.3-rc1.

Okay, I queued this for the current merge window then

Awesome. :)

Thank you both, Bernard and Jason.

--
Gustavo