]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
crypto: qat - fix warning on adf_pfvf_pf_proto.c
authorGiovanni Cabiddu <giovanni.cabiddu@intel.com>
Thu, 20 Nov 2025 16:30:46 +0000 (16:30 +0000)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 19 Dec 2025 06:47:46 +0000 (14:47 +0800)
Building the QAT driver with -Wmaybe-uninitialized triggers warnings in
qat_common/adf_pfvf_pf_proto.c. Specifically, the variables blk_type,
blk_byte, and byte_max may be used uninitialized in handle_blkmsg_req():

  make M=drivers/crypto/intel/qat W=1 C=2 "KCFLAGS=-Werror" \
       KBUILD_CFLAGS_KERNEL=-Wmaybe-uninitialized           \
       CFLAGS_MODULE=-Wmaybe-uninitialized

  ...
  warning: ‘byte_max’ may be used uninitialized [-Wmaybe-uninitialized]
  warning: ‘blk_type’ may be used uninitialized [-Wmaybe-uninitialized]
  warning: ‘blk_byte’ may be used uninitialized [-Wmaybe-uninitialized]

Although the caller of handle_blkmsg_req() always provides a req.type
that is handled by the switch, the compiler cannot guarantee this.

Add a default case to the switch statement to handle an invalid req.type.

Fixes: 673184a2a58f ("crypto: qat - introduce support for PFVF block messages")
Signed-off-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Reviewed-by: Ahsan Atta <ahsan.atta@intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/intel/qat/qat_common/adf_pfvf_pf_proto.c

index b9b5e744a3f16356d1f8865f0eafba3dd07e7ab9..af8dbc7517cf825de1a01d6aa493fd5d89d4595f 100644 (file)
@@ -148,6 +148,16 @@ static struct pfvf_message handle_blkmsg_req(struct adf_accel_vf_info *vf_info,
                blk_byte = FIELD_GET(ADF_VF2PF_SMALL_BLOCK_BYTE_MASK, req.data);
                byte_max = ADF_VF2PF_SMALL_BLOCK_BYTE_MAX;
                break;
+       default:
+               dev_err(&GET_DEV(vf_info->accel_dev),
+                       "Invalid BlockMsg type 0x%.4x received from VF%u\n",
+                       req.type, vf_info->vf_nr);
+               resp.type = ADF_PF2VF_MSGTYPE_BLKMSG_RESP;
+               resp.data = FIELD_PREP(ADF_PF2VF_BLKMSG_RESP_TYPE_MASK,
+                                      ADF_PF2VF_BLKMSG_RESP_TYPE_ERROR) |
+                           FIELD_PREP(ADF_PF2VF_BLKMSG_RESP_DATA_MASK,
+                                      ADF_PF2VF_UNSPECIFIED_ERROR);
+               return resp;
        }
 
        /* Is this a request for CRC or data? */