Re: [PATCH 1/3] usb: gadget: function: 9pfs

From: kernel test robot
Date: Tue Jan 16 2024 - 07:05:26 EST


Hi Michael,

kernel test robot noticed the following build warnings:

[auto build test WARNING on 052d534373b7ed33712a63d5e17b2b6cdbce84fd]

url: https://github.com/intel-lab-lkp/linux/commits/Michael-Grzeschik/usb-gadget-function-9pfs/20240116-095914
base: 052d534373b7ed33712a63d5e17b2b6cdbce84fd
patch link: https://lore.kernel.org/r/20240116-ml-topic-u9p-v1-1-ad8c306f9a4e%40pengutronix.de
patch subject: [PATCH 1/3] usb: gadget: function: 9pfs
config: loongarch-allyesconfig (https://download.01.org/0day-ci/archive/20240116/202401161948.no61pNtO-lkp@xxxxxxxxx/config)
compiler: loongarch64-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240116/202401161948.no61pNtO-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202401161948.no61pNtO-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

In file included from drivers/usb/gadget/function/f_9pfs.c:21:
drivers/usb/gadget/function/f_9pfs.c: In function 'usb9pfs_rx_header':
>> drivers/usb/gadget/function/f_9pfs.c:196:34: warning: format '%u' expects argument of type 'unsigned int', but argument 5 has type 'size_t' {aka 'long unsigned int'} [-Wformat=]
196 | p9_debug(P9_DEBUG_TRANS, "mux %p got %u bytes\n", usb9pfs,
| ^~~~~~~~~~~~~~~~~~~~~~~
197 | rc.capacity - rc.offset);
| ~~~~~~~~~~~~~~~~~~~~~~~
| |
| size_t {aka long unsigned int}
include/net/9p/9p.h:55:36: note: in definition of macro 'p9_debug'
55 | _p9_debug(level, __func__, fmt, ##__VA_ARGS__)
| ^~~
drivers/usb/gadget/function/f_9pfs.c:196:47: note: format string is defined here
196 | p9_debug(P9_DEBUG_TRANS, "mux %p got %u bytes\n", usb9pfs,
| ~^
| |
| unsigned int
| %lu
drivers/usb/gadget/function/f_9pfs.c: At top level:
>> drivers/usb/gadget/function/f_9pfs.c:286:6: warning: no previous prototype for 'disable_endpoints' [-Wmissing-prototypes]
286 | void disable_endpoints(struct usb_composite_dev *cdev,
| ^~~~~~~~~~~~~~~~~
>> drivers/usb/gadget/function/f_9pfs.c:825:12: warning: no previous prototype for 'usb9pfs_modinit' [-Wmissing-prototypes]
825 | int __init usb9pfs_modinit(void)
| ^~~~~~~~~~~~~~~
>> drivers/usb/gadget/function/f_9pfs.c:838:13: warning: no previous prototype for 'usb9pfs_modexit' [-Wmissing-prototypes]
838 | void __exit usb9pfs_modexit(void)
| ^~~~~~~~~~~~~~~


vim +196 drivers/usb/gadget/function/f_9pfs.c

184
185 static struct p9_req_t *usb9pfs_rx_header(struct f_usb9pfs *usb9pfs, struct usb_request *req)
186 {
187 struct p9_req_t *p9_rx_req;
188 struct p9_fcall rc;
189 int ret;
190
191 /* start by reading header */
192 rc.sdata = req->buf;
193 rc.offset = 0;
194 rc.capacity = rc.size = P9_HDRSZ;
195
> 196 p9_debug(P9_DEBUG_TRANS, "mux %p got %u bytes\n", usb9pfs,
197 rc.capacity - rc.offset);
198
199 ret = p9_parse_header(&rc, &rc.size, NULL, NULL, 0);
200 if (ret) {
201 p9_debug(P9_DEBUG_ERROR,
202 "error parsing header: %d\n", ret);
203 return NULL;
204 }
205
206 p9_debug(P9_DEBUG_TRANS,
207 "mux %p pkt: size: %d bytes tag: %d\n",
208 usb9pfs, rc.size, rc.tag);
209
210 p9_rx_req = p9_tag_lookup(usb9pfs->client, rc.tag);
211 if (!p9_rx_req || (p9_rx_req->status != REQ_STATUS_SENT)) {
212 p9_debug(P9_DEBUG_ERROR, "Unexpected packet tag %d\n", rc.tag);
213 return NULL;
214 }
215
216 if (rc.size > p9_rx_req->rc.capacity) {
217 p9_debug(P9_DEBUG_ERROR,
218 "requested packet size too big: %d for tag %d with capacity %zd\n",
219 rc.size, rc.tag, p9_rx_req->rc.capacity);
220 return NULL;
221 }
222
223 if (!p9_rx_req->rc.sdata) {
224 p9_debug(P9_DEBUG_ERROR,
225 "No recv fcall for tag %d (req %p), disconnecting!\n",
226 rc.tag, p9_rx_req);
227 p9_req_put(usb9pfs->client, p9_rx_req);
228 return NULL;
229 }
230
231 return p9_rx_req;
232 }
233
234 static void usb9pfs_rx_complete(struct usb_ep *ep, struct usb_request *req)
235 {
236 struct f_usb9pfs *usb9pfs = ep->driver_data;
237 struct usb_composite_dev *cdev = usb9pfs->function.config->cdev;
238 struct p9_req_t *p9_rx_req;
239 unsigned long flags;
240
241 switch (req->status) {
242 case 0: /* normal completion? */
243 spin_lock_irqsave(&usb9pfs->req_lock, flags);
244 p9_rx_req = usb9pfs_rx_header(usb9pfs, req);
245 if (!p9_rx_req) {
246 spin_unlock_irqrestore(&usb9pfs->req_lock, flags);
247 goto free_req;
248 }
249
250 memcpy(p9_rx_req->rc.sdata, req->buf, req->actual);
251 p9_rx_req->rc.size = req->actual;
252
253 p9_client_cb(usb9pfs->client, p9_rx_req, REQ_STATUS_RCVD);
254 p9_req_put(usb9pfs->client, p9_rx_req);
255
256 usb9pfs->p9_tx_req = NULL;
257
258 usb9pfs_transmit(usb9pfs);
259
260 spin_unlock_irqrestore(&usb9pfs->req_lock, flags);
261
262 return;
263 free_req:
264 default:
265 dev_err(&cdev->gadget->dev, "%s usb9pfs complete --> %d, %d/%d\n",
266 ep->name, req->status, req->actual, req->length);
267 usb_ep_free_request(ep == usb9pfs->in_ep ?
268 usb9pfs->out_ep : usb9pfs->in_ep,
269 req->context);
270 free_ep_req(ep, req);
271 return;
272 }
273
274 p9_client_cb(usb9pfs->client, p9_rx_req, REQ_STATUS_ERROR);
275 }
276
277 static void disable_ep(struct usb_composite_dev *cdev, struct usb_ep *ep)
278 {
279 int value;
280
281 value = usb_ep_disable(ep);
282 if (value < 0)
283 dev_info(&cdev->gadget->dev, "disable %s --> %d\n", ep->name, value);
284 }
285
> 286 void disable_endpoints(struct usb_composite_dev *cdev,
287 struct usb_ep *in, struct usb_ep *out,
288 struct usb_ep *iso_in, struct usb_ep *iso_out)
289 {
290 disable_ep(cdev, in);
291 disable_ep(cdev, out);
292 }
293

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