From: kernel test robot <lkp@intel.com>
To: 'Guanjun' <guanjun@linux.alibaba.com>,
herbert@gondor.apana.org.au, elliott@hpe.com
Cc: oe-kbuild-all@lists.linux.dev, zelin.deng@linux.alibaba.com,
artie.ding@linux.alibaba.com, guanjun@linux.alibaba.com,
linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org,
xuchun.shang@linux.alibaba.com
Subject: Re: [PATCH v3 5/9] crypto/ycc: Add skcipher algorithm support
Date: Tue, 25 Oct 2022 23:06:48 +0800 [thread overview]
Message-ID: <202210252228.fA2Fr1Ob-lkp@intel.com> (raw)
In-Reply-To: <1666691616-69983-6-git-send-email-guanjun@linux.alibaba.com>
[-- Attachment #1: Type: text/plain, Size: 15770 bytes --]
Hi 'Guanjun',
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on herbert-cryptodev-2.6/master]
[also build test WARNING on herbert-crypto-2.6/master linus/master v6.1-rc2 next-20221025]
[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/Guanjun/Drivers-for-Alibaba-YCC-Yitian-Cryptography-Complex-cryptographic-accelerator/20221025-180005
base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
patch link: https://lore.kernel.org/r/1666691616-69983-6-git-send-email-guanjun%40linux.alibaba.com
patch subject: [PATCH v3 5/9] crypto/ycc: Add skcipher algorithm support
config: sparc-allyesconfig (attached as .config)
compiler: sparc64-linux-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/085f9f4e861489eac45d22a53b0ef9ab669007a9
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Guanjun/Drivers-for-Alibaba-YCC-Yitian-Cryptography-Complex-cryptographic-accelerator/20221025-180005
git checkout 085f9f4e861489eac45d22a53b0ef9ab669007a9
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=sparc SHELL=/bin/bash drivers/crypto/ycc/
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
>> drivers/crypto/ycc/ycc_ske.c:41:5: warning: no previous prototype for 'ycc_skcipher_aes_ecb_setkey' [-Wmissing-prototypes]
41 | int ycc_skcipher_aes_##name##_setkey(struct crypto_skcipher *tfm, \
| ^~~~~~~~~~~~~~~~~
drivers/crypto/ycc/ycc_ske.c:107:1: note: in expansion of macro 'DEFINE_YCC_SKE_AES_SETKEY'
107 | DEFINE_YCC_SKE_AES_SETKEY(ecb, ECB, 32);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/crypto/ycc/ycc_ske.c:41:5: warning: no previous prototype for 'ycc_skcipher_aes_cbc_setkey' [-Wmissing-prototypes]
41 | int ycc_skcipher_aes_##name##_setkey(struct crypto_skcipher *tfm, \
| ^~~~~~~~~~~~~~~~~
drivers/crypto/ycc/ycc_ske.c:108:1: note: in expansion of macro 'DEFINE_YCC_SKE_AES_SETKEY'
108 | DEFINE_YCC_SKE_AES_SETKEY(cbc, CBC, 48);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/crypto/ycc/ycc_ske.c:41:5: warning: no previous prototype for 'ycc_skcipher_aes_ctr_setkey' [-Wmissing-prototypes]
41 | int ycc_skcipher_aes_##name##_setkey(struct crypto_skcipher *tfm, \
| ^~~~~~~~~~~~~~~~~
drivers/crypto/ycc/ycc_ske.c:109:1: note: in expansion of macro 'DEFINE_YCC_SKE_AES_SETKEY'
109 | DEFINE_YCC_SKE_AES_SETKEY(ctr, CTR, 48);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/crypto/ycc/ycc_ske.c:41:5: warning: no previous prototype for 'ycc_skcipher_aes_cfb_setkey' [-Wmissing-prototypes]
41 | int ycc_skcipher_aes_##name##_setkey(struct crypto_skcipher *tfm, \
| ^~~~~~~~~~~~~~~~~
drivers/crypto/ycc/ycc_ske.c:110:1: note: in expansion of macro 'DEFINE_YCC_SKE_AES_SETKEY'
110 | DEFINE_YCC_SKE_AES_SETKEY(cfb, CFB, 48);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/crypto/ycc/ycc_ske.c:41:5: warning: no previous prototype for 'ycc_skcipher_aes_ofb_setkey' [-Wmissing-prototypes]
41 | int ycc_skcipher_aes_##name##_setkey(struct crypto_skcipher *tfm, \
| ^~~~~~~~~~~~~~~~~
drivers/crypto/ycc/ycc_ske.c:111:1: note: in expansion of macro 'DEFINE_YCC_SKE_AES_SETKEY'
111 | DEFINE_YCC_SKE_AES_SETKEY(ofb, OFB, 48);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/crypto/ycc/ycc_ske.c:63:5: warning: no previous prototype for 'ycc_skcipher_sm4_ecb_setkey' [-Wmissing-prototypes]
63 | int ycc_skcipher_sm4_##name##_setkey(struct crypto_skcipher *tfm, \
| ^~~~~~~~~~~~~~~~~
drivers/crypto/ycc/ycc_ske.c:113:1: note: in expansion of macro 'DEFINE_YCC_SKE_SM4_SETKEY'
113 | DEFINE_YCC_SKE_SM4_SETKEY(ecb, ECB, 32);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/crypto/ycc/ycc_ske.c:63:5: warning: no previous prototype for 'ycc_skcipher_sm4_cbc_setkey' [-Wmissing-prototypes]
63 | int ycc_skcipher_sm4_##name##_setkey(struct crypto_skcipher *tfm, \
| ^~~~~~~~~~~~~~~~~
drivers/crypto/ycc/ycc_ske.c:114:1: note: in expansion of macro 'DEFINE_YCC_SKE_SM4_SETKEY'
114 | DEFINE_YCC_SKE_SM4_SETKEY(cbc, CBC, 48);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/crypto/ycc/ycc_ske.c:63:5: warning: no previous prototype for 'ycc_skcipher_sm4_ctr_setkey' [-Wmissing-prototypes]
63 | int ycc_skcipher_sm4_##name##_setkey(struct crypto_skcipher *tfm, \
| ^~~~~~~~~~~~~~~~~
drivers/crypto/ycc/ycc_ske.c:115:1: note: in expansion of macro 'DEFINE_YCC_SKE_SM4_SETKEY'
115 | DEFINE_YCC_SKE_SM4_SETKEY(ctr, CTR, 48);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/crypto/ycc/ycc_ske.c:63:5: warning: no previous prototype for 'ycc_skcipher_sm4_cfb_setkey' [-Wmissing-prototypes]
63 | int ycc_skcipher_sm4_##name##_setkey(struct crypto_skcipher *tfm, \
| ^~~~~~~~~~~~~~~~~
drivers/crypto/ycc/ycc_ske.c:116:1: note: in expansion of macro 'DEFINE_YCC_SKE_SM4_SETKEY'
116 | DEFINE_YCC_SKE_SM4_SETKEY(cfb, CFB, 48);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/crypto/ycc/ycc_ske.c:63:5: warning: no previous prototype for 'ycc_skcipher_sm4_ofb_setkey' [-Wmissing-prototypes]
63 | int ycc_skcipher_sm4_##name##_setkey(struct crypto_skcipher *tfm, \
| ^~~~~~~~~~~~~~~~~
drivers/crypto/ycc/ycc_ske.c:117:1: note: in expansion of macro 'DEFINE_YCC_SKE_SM4_SETKEY'
117 | DEFINE_YCC_SKE_SM4_SETKEY(ofb, OFB, 48);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/crypto/ycc/ycc_ske.c:74:5: warning: no previous prototype for 'ycc_skcipher_des_ecb_setkey' [-Wmissing-prototypes]
74 | int ycc_skcipher_des_##name##_setkey(struct crypto_skcipher *tfm, \
| ^~~~~~~~~~~~~~~~~
drivers/crypto/ycc/ycc_ske.c:119:1: note: in expansion of macro 'DEFINE_YCC_SKE_DES_SETKEY'
119 | DEFINE_YCC_SKE_DES_SETKEY(ecb, ECB, 32);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/crypto/ycc/ycc_ske.c:74:5: warning: no previous prototype for 'ycc_skcipher_des_cbc_setkey' [-Wmissing-prototypes]
74 | int ycc_skcipher_des_##name##_setkey(struct crypto_skcipher *tfm, \
| ^~~~~~~~~~~~~~~~~
drivers/crypto/ycc/ycc_ske.c:120:1: note: in expansion of macro 'DEFINE_YCC_SKE_DES_SETKEY'
120 | DEFINE_YCC_SKE_DES_SETKEY(cbc, CBC, 48);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/crypto/ycc/ycc_ske.c:74:5: warning: no previous prototype for 'ycc_skcipher_des_ctr_setkey' [-Wmissing-prototypes]
74 | int ycc_skcipher_des_##name##_setkey(struct crypto_skcipher *tfm, \
| ^~~~~~~~~~~~~~~~~
drivers/crypto/ycc/ycc_ske.c:121:1: note: in expansion of macro 'DEFINE_YCC_SKE_DES_SETKEY'
121 | DEFINE_YCC_SKE_DES_SETKEY(ctr, CTR, 48);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/crypto/ycc/ycc_ske.c:74:5: warning: no previous prototype for 'ycc_skcipher_des_cfb_setkey' [-Wmissing-prototypes]
74 | int ycc_skcipher_des_##name##_setkey(struct crypto_skcipher *tfm, \
| ^~~~~~~~~~~~~~~~~
drivers/crypto/ycc/ycc_ske.c:122:1: note: in expansion of macro 'DEFINE_YCC_SKE_DES_SETKEY'
122 | DEFINE_YCC_SKE_DES_SETKEY(cfb, CFB, 48);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/crypto/ycc/ycc_ske.c:74:5: warning: no previous prototype for 'ycc_skcipher_des_ofb_setkey' [-Wmissing-prototypes]
74 | int ycc_skcipher_des_##name##_setkey(struct crypto_skcipher *tfm, \
| ^~~~~~~~~~~~~~~~~
drivers/crypto/ycc/ycc_ske.c:123:1: note: in expansion of macro 'DEFINE_YCC_SKE_DES_SETKEY'
123 | DEFINE_YCC_SKE_DES_SETKEY(ofb, OFB, 48);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/crypto/ycc/ycc_ske.c:89:5: warning: no previous prototype for 'ycc_skcipher_3des_ecb_setkey' [-Wmissing-prototypes]
89 | int ycc_skcipher_3des_##name##_setkey(struct crypto_skcipher *tfm, \
| ^~~~~~~~~~~~~~~~~~
drivers/crypto/ycc/ycc_ske.c:125:1: note: in expansion of macro 'DEFINE_YCC_SKE_3DES_SETKEY'
125 | DEFINE_YCC_SKE_3DES_SETKEY(ecb, ECB, 32);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/crypto/ycc/ycc_ske.c:89:5: warning: no previous prototype for 'ycc_skcipher_3des_cbc_setkey' [-Wmissing-prototypes]
89 | int ycc_skcipher_3des_##name##_setkey(struct crypto_skcipher *tfm, \
| ^~~~~~~~~~~~~~~~~~
drivers/crypto/ycc/ycc_ske.c:126:1: note: in expansion of macro 'DEFINE_YCC_SKE_3DES_SETKEY'
126 | DEFINE_YCC_SKE_3DES_SETKEY(cbc, CBC, 48);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/crypto/ycc/ycc_ske.c:89:5: warning: no previous prototype for 'ycc_skcipher_3des_ctr_setkey' [-Wmissing-prototypes]
89 | int ycc_skcipher_3des_##name##_setkey(struct crypto_skcipher *tfm, \
| ^~~~~~~~~~~~~~~~~~
drivers/crypto/ycc/ycc_ske.c:127:1: note: in expansion of macro 'DEFINE_YCC_SKE_3DES_SETKEY'
127 | DEFINE_YCC_SKE_3DES_SETKEY(ctr, CTR, 48);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/crypto/ycc/ycc_ske.c:89:5: warning: no previous prototype for 'ycc_skcipher_3des_cfb_setkey' [-Wmissing-prototypes]
89 | int ycc_skcipher_3des_##name##_setkey(struct crypto_skcipher *tfm, \
| ^~~~~~~~~~~~~~~~~~
drivers/crypto/ycc/ycc_ske.c:128:1: note: in expansion of macro 'DEFINE_YCC_SKE_3DES_SETKEY'
128 | DEFINE_YCC_SKE_3DES_SETKEY(cfb, CFB, 48);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/crypto/ycc/ycc_ske.c:89:5: warning: no previous prototype for 'ycc_skcipher_3des_ofb_setkey' [-Wmissing-prototypes]
89 | int ycc_skcipher_3des_##name##_setkey(struct crypto_skcipher *tfm, \
| ^~~~~~~~~~~~~~~~~~
drivers/crypto/ycc/ycc_ske.c:129:1: note: in expansion of macro 'DEFINE_YCC_SKE_3DES_SETKEY'
129 | DEFINE_YCC_SKE_3DES_SETKEY(ofb, OFB, 48);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/ycc/ycc_ske.c:131:5: warning: no previous prototype for 'ycc_skcipher_aes_xts_setkey' [-Wmissing-prototypes]
131 | int ycc_skcipher_aes_xts_setkey(struct crypto_skcipher *tfm,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/ycc/ycc_ske.c:157:5: warning: no previous prototype for 'ycc_skcipher_sm4_xts_setkey' [-Wmissing-prototypes]
157 | int ycc_skcipher_sm4_xts_setkey(struct crypto_skcipher *tfm,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/ycc_skcipher_aes_ecb_setkey +41 drivers/crypto/ycc/ycc_ske.c
39
40 #define DEFINE_YCC_SKE_AES_SETKEY(name, mode, size) \
> 41 int ycc_skcipher_aes_##name##_setkey(struct crypto_skcipher *tfm, \
42 const u8 *key, \
43 unsigned int key_size) \
44 { \
45 int alg_mode; \
46 switch (key_size) { \
47 case AES_KEYSIZE_128: \
48 alg_mode = YCC_AES_128_##mode; \
49 break; \
50 case AES_KEYSIZE_192: \
51 alg_mode = YCC_AES_192_##mode; \
52 break; \
53 case AES_KEYSIZE_256: \
54 alg_mode = YCC_AES_256_##mode; \
55 break; \
56 default: \
57 return -EINVAL; \
58 } \
59 return ycc_skcipher_setkey(tfm, key, key_size, alg_mode, size); \
60 }
61
62 #define DEFINE_YCC_SKE_SM4_SETKEY(name, mode, size) \
> 63 int ycc_skcipher_sm4_##name##_setkey(struct crypto_skcipher *tfm, \
64 const u8 *key, \
65 unsigned int key_size) \
66 { \
67 int alg_mode = YCC_SM4_##mode; \
68 if (key_size != SM4_KEY_SIZE) \
69 return -EINVAL; \
70 return ycc_skcipher_setkey(tfm, key, key_size, alg_mode, size); \
71 }
72
73 #define DEFINE_YCC_SKE_DES_SETKEY(name, mode, size) \
> 74 int ycc_skcipher_des_##name##_setkey(struct crypto_skcipher *tfm, \
75 const u8 *key, \
76 unsigned int key_size) \
77 { \
78 int alg_mode = YCC_DES_##mode; \
79 int ret; \
80 if (key_size != DES_KEY_SIZE) \
81 return -EINVAL; \
82 ret = verify_skcipher_des_key(tfm, key); \
83 if (ret) \
84 return ret; \
85 return ycc_skcipher_setkey(tfm, key, key_size, alg_mode, size); \
86 }
87
88 #define DEFINE_YCC_SKE_3DES_SETKEY(name, mode, size) \
> 89 int ycc_skcipher_3des_##name##_setkey(struct crypto_skcipher *tfm, \
90 const u8 *key, \
91 unsigned int key_size) \
92 { \
93 int alg_mode = YCC_TDES_192_##mode; \
94 int ret; \
95 if (key_size != DES3_EDE_KEY_SIZE) \
96 return -EINVAL; \
97 ret = verify_skcipher_des3_key(tfm, key); \
98 if (ret) \
99 return ret; \
100 return ycc_skcipher_setkey(tfm, key, key_size, alg_mode, size); \
101 }
102
103 /*
104 * ECB: Only has 1 key, without IV, at least 32 bytes.
105 * Others except XTS: |key|iv|, at least 48 bytes.
106 */
> 107 DEFINE_YCC_SKE_AES_SETKEY(ecb, ECB, 32);
> 108 DEFINE_YCC_SKE_AES_SETKEY(cbc, CBC, 48);
> 109 DEFINE_YCC_SKE_AES_SETKEY(ctr, CTR, 48);
> 110 DEFINE_YCC_SKE_AES_SETKEY(cfb, CFB, 48);
> 111 DEFINE_YCC_SKE_AES_SETKEY(ofb, OFB, 48);
112
> 113 DEFINE_YCC_SKE_SM4_SETKEY(ecb, ECB, 32);
> 114 DEFINE_YCC_SKE_SM4_SETKEY(cbc, CBC, 48);
> 115 DEFINE_YCC_SKE_SM4_SETKEY(ctr, CTR, 48);
> 116 DEFINE_YCC_SKE_SM4_SETKEY(cfb, CFB, 48);
> 117 DEFINE_YCC_SKE_SM4_SETKEY(ofb, OFB, 48);
118
> 119 DEFINE_YCC_SKE_DES_SETKEY(ecb, ECB, 32);
> 120 DEFINE_YCC_SKE_DES_SETKEY(cbc, CBC, 48);
> 121 DEFINE_YCC_SKE_DES_SETKEY(ctr, CTR, 48);
> 122 DEFINE_YCC_SKE_DES_SETKEY(cfb, CFB, 48);
> 123 DEFINE_YCC_SKE_DES_SETKEY(ofb, OFB, 48);
124
> 125 DEFINE_YCC_SKE_3DES_SETKEY(ecb, ECB, 32);
> 126 DEFINE_YCC_SKE_3DES_SETKEY(cbc, CBC, 48);
> 127 DEFINE_YCC_SKE_3DES_SETKEY(ctr, CTR, 48);
> 128 DEFINE_YCC_SKE_3DES_SETKEY(cfb, CFB, 48);
129 DEFINE_YCC_SKE_3DES_SETKEY(ofb, OFB, 48);
130
> 131 int ycc_skcipher_aes_xts_setkey(struct crypto_skcipher *tfm,
132 const u8 *key,
133 unsigned int key_size)
134 {
135 int alg_mode;
136 int ret;
137
138 ret = xts_verify_key(tfm, key, key_size);
139 if (ret)
140 return ret;
141
142 switch (key_size) {
143 case AES_KEYSIZE_128 * 2:
144 alg_mode = YCC_AES_128_XTS;
145 break;
146 case AES_KEYSIZE_256 * 2:
147 alg_mode = YCC_AES_256_XTS;
148 break;
149 default:
150 return -EINVAL;
151 }
152
153 /* XTS: |key1|key2|iv|, at least 32 + 32 + 16 bytes */
154 return ycc_skcipher_setkey(tfm, key, key_size, alg_mode, 80);
155 }
156
> 157 int ycc_skcipher_sm4_xts_setkey(struct crypto_skcipher *tfm,
158 const u8 *key,
159 unsigned int key_size)
160 {
161 int alg_mode;
162 int ret;
163
164 ret = xts_verify_key(tfm, key, key_size);
165 if (ret)
166 return ret;
167
168 if (key_size != SM4_KEY_SIZE * 2)
169 return -EINVAL;
170
171 alg_mode = YCC_SM4_XTS;
172 return ycc_skcipher_setkey(tfm, key, key_size, alg_mode, 80);
173 }
174
--
0-DAY CI Kernel Test Service
https://01.org/lkp
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 74649 bytes --]
next prev parent reply other threads:[~2022-10-25 15:08 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-25 9:53 [PATCH v3 0/9] Drivers for Alibaba YCC (Yitian Cryptography Complex) cryptographic accelerator 'Guanjun'
2022-10-25 9:53 ` [PATCH v3 1/9] crypto/ycc: Add YCC (Yitian Cryptography Complex) accelerator driver 'Guanjun'
2022-10-25 9:53 ` [PATCH v3 2/9] crypto/ycc: Add ycc ring configuration 'Guanjun'
2022-10-25 13:30 ` kernel test robot
2022-10-26 11:04 ` kernel test robot
2022-10-25 9:53 ` [PATCH v3 3/9] crypto/ycc: Add irq support for ycc kernel rings 'Guanjun'
2022-10-25 9:53 ` [PATCH v3 4/9] crypto/ycc: Add device error handling support for ycc hw errors 'Guanjun'
2022-10-25 14:18 ` kernel test robot
2022-10-25 9:53 ` [PATCH v3 5/9] crypto/ycc: Add skcipher algorithm support 'Guanjun'
2022-10-25 15:06 ` kernel test robot [this message]
2022-10-26 20:41 ` kernel test robot
2022-10-25 9:53 ` [PATCH v3 6/9] crypto/ycc: Add aead " 'Guanjun'
2022-10-26 23:13 ` kernel test robot
2022-10-25 9:53 ` [PATCH v3 7/9] crypto/ycc: Add rsa " 'Guanjun'
2022-10-25 9:53 ` [PATCH v3 8/9] crypto/ycc: Add sm2 " 'Guanjun'
2022-10-26 23:23 ` kernel test robot
2022-10-25 9:53 ` [PATCH v3 9/9] MAINTAINERS: Add Yitian Cryptography Complex (YCC) driver maintainer entry 'Guanjun'
2022-10-26 9:03 ` [PATCH v3 0/9] Drivers for Alibaba YCC (Yitian Cryptography Complex) cryptographic accelerator guanjun
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202210252228.fA2Fr1Ob-lkp@intel.com \
--to=lkp@intel.com \
--cc=artie.ding@linux.alibaba.com \
--cc=elliott@hpe.com \
--cc=guanjun@linux.alibaba.com \
--cc=herbert@gondor.apana.org.au \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=xuchun.shang@linux.alibaba.com \
--cc=zelin.deng@linux.alibaba.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.