From: kbuild test robot <lkp@intel.com>
To: vladimir.stankovic@displaylink.com
Cc: kbuild-all@lists.01.org, gregkh@linuxfoundation.org,
linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org,
mausb-host-devel@displaylink.com
Subject: Re: [PATCH v4 5/8] usb: mausb_host: Introduce PAL processing
Date: Sat, 28 Mar 2020 11:56:30 +0800 [thread overview]
Message-ID: <202003281124.Je2vS2zs%lkp@intel.com> (raw)
In-Reply-To: <20200327152614.26833-6-vladimir.stankovic@displaylink.com>
[-- Attachment #1: Type: text/plain, Size: 9599 bytes --]
Hi,
I love your patch! Perhaps something to improve:
[auto build test WARNING on usb/usb-testing]
[also build test WARNING on balbi-usb/next peter.chen-usb/ci-for-usb-next linus/master linux/master v5.6-rc7 next-20200327]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/vladimir-stankovic-displaylink-com/Add-MA-USB-Host-driver/20200328-042436
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
config: c6x-allyesconfig (attached as .config)
compiler: c6x-elf-gcc (GCC) 9.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=9.2.0 make.cross ARCH=c6x
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
drivers/usb/mausb_host/hpal.c: In function 'mausb_release_event_resources':
>> drivers/usb/mausb_host/hpal.c:221:45: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
221 | struct ma_usb_hdr_common *receive_buffer = (struct ma_usb_hdr_common *)
| ^
drivers/usb/mausb_host/hpal.c: In function 'mausb_complete_urb':
drivers/usb/mausb_host/hpal.c:229:20: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
229 | struct urb *urb = (struct urb *)event->data.urb;
| ^
drivers/usb/mausb_host/hpal.c: In function 'mausb_data_req_enqueue_event':
>> drivers/usb/mausb_host/hpal.c:357:26: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
357 | mausb_event.data.urb = (u64)request;
| ^
drivers/usb/mausb_host/hpal.c: In function 'mausb_execute_urb_dequeue':
drivers/usb/mausb_host/hpal.c:492:32: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
492 | mausb_event.data.urb = (u64)urb;
| ^
drivers/usb/mausb_host/hpal.c: In function 'mausb_send_data_msg':
drivers/usb/mausb_host/hpal.c:725:35: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
725 | urb_ctx = mausb_find_urb_in_tree((struct urb *)event->data.urb);
| ^
drivers/usb/mausb_host/hpal.c: In function 'mausb_receive_data_msg':
drivers/usb/mausb_host/hpal.c:752:35: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
752 | urb_ctx = mausb_find_urb_in_tree((struct urb *)event->data.urb);
| ^
/tmp/ccABqgDp.s: Assembler messages:
/tmp/ccABqgDp.s:3838: Warning: ignoring changed section attributes for .far
vim +221 drivers/usb/mausb_host/hpal.c
218
219 void mausb_release_event_resources(struct mausb_event *event)
220 {
> 221 struct ma_usb_hdr_common *receive_buffer = (struct ma_usb_hdr_common *)
222 event->data.recv_buf;
223
224 kfree(receive_buffer);
225 }
226
227 void mausb_complete_urb(struct mausb_event *event)
228 {
229 struct urb *urb = (struct urb *)event->data.urb;
230
231 mausb_pr_debug("transfer_size=%d, rem_transfer_size=%d, status=%d",
232 event->data.transfer_size,
233 event->data.rem_transfer_size, event->status);
234 mausb_complete_request(urb,
235 event->data.transfer_size -
236 event->data.rem_transfer_size,
237 event->status);
238 }
239
240 static int mausb_get_first_free_port_number(u16 *port_number)
241 {
242 (*port_number) = 0;
243 while ((mhcd->connected_ports & (1 << *port_number)) != 0 &&
244 *port_number < NUMBER_OF_PORTS)
245 ++(*port_number);
246
247 if (*port_number == NUMBER_OF_PORTS)
248 return -EINVAL;
249
250 mhcd->connected_ports |= (1 << *port_number);
251
252 return 0;
253 }
254
255 static inline void mausb_port_has_changed_event(struct mausb_device *dev,
256 struct mausb_event *event)
257 {
258 int status;
259 u16 port_number;
260 unsigned long flags = 0;
261
262 spin_lock_irqsave(&mhcd->lock, flags);
263
264 status = mausb_get_first_free_port_number(&port_number);
265 if (status < 0) {
266 spin_unlock_irqrestore(&mhcd->lock, flags);
267 mausb_pr_err("There is no free port, schedule delete ma_dev");
268 queue_work(dev->workq, &dev->socket_disconnect_work);
269 return;
270 }
271
272 spin_unlock_irqrestore(&mhcd->lock, flags);
273
274 dev->dev_type = event->port_changed.dev_type;
275 dev->dev_speed = event->port_changed.dev_speed;
276 dev->lse = event->port_changed.lse;
277 dev->dev_connected = 1;
278 dev->port_number = port_number;
279
280 mausb_port_has_changed(event->port_changed.dev_type,
281 event->port_changed.dev_speed, dev);
282
283 if ((enum mausb_device_type)event->port_changed.dev_type == USB30HUB)
284 mausb_port_has_changed(USB20HUB, HIGH_SPEED, dev);
285 }
286
287 static void mausb_heartbeat_timer_func(struct timer_list *timer)
288 {
289 unsigned long flags = 0;
290 struct mausb_device *dev = NULL;
291
292 if (mausb_start_heartbeat_timer() < 0) {
293 mausb_pr_err("Devices disconnecting - app is unresponsive");
294 spin_lock_irqsave(&mss.lock, flags);
295
296 /* Reset connected clients */
297 mss.client_connected = false;
298 mss.missed_heartbeats = 0;
299
300 list_for_each_entry(dev, &mss.madev_list, list_entry) {
301 mausb_pr_debug("Enqueue heartbeat_work madev_addr=%x",
302 dev->madev_addr);
303 queue_work(dev->workq, &dev->heartbeat_work);
304 }
305
306 complete(&mss.client_stopped);
307 spin_unlock_irqrestore(&mss.lock, flags);
308 }
309 }
310
311 void mausb_release_ma_dev_async(struct kref *kref)
312 {
313 struct mausb_device *dev = container_of(kref, struct mausb_device,
314 refcount);
315
316 mausb_pr_info("Scheduling work for MAUSB device to be deleted");
317
318 schedule_work(&dev->madev_delete_work);
319 }
320
321 int mausb_enqueue_event_from_user(u8 madev_addr, u16 num_of_events,
322 u16 num_of_completed)
323 {
324 unsigned long flags;
325 struct mausb_device *dev;
326
327 spin_lock_irqsave(&mss.lock, flags);
328 dev = mausb_get_dev_from_addr_unsafe(madev_addr);
329
330 if (!dev) {
331 spin_unlock_irqrestore(&mss.lock, flags);
332 return -EINVAL;
333 }
334
335 spin_lock(&dev->num_of_user_events_lock);
336 dev->num_of_user_events += num_of_events;
337 dev->num_of_completed_events += num_of_completed;
338 spin_unlock(&dev->num_of_user_events_lock);
339 queue_work(dev->workq, &dev->work);
340 spin_unlock_irqrestore(&mss.lock, flags);
341
342 return 0;
343 }
344
345 int mausb_data_req_enqueue_event(struct mausb_device *dev, u16 ep_handle,
346 struct urb *request)
347 {
348 struct mausb_event mausb_event;
349
350 mausb_event.type = MAUSB_EVENT_TYPE_SEND_DATA_MSG;
351 mausb_event.status = 0;
352
353 mausb_event.data.transfer_type =
354 mausb_transfer_type_from_usb(&request->ep->desc);
355 mausb_event.data.device_id = dev->id;
356 mausb_event.data.ep_handle = ep_handle;
> 357 mausb_event.data.urb = (u64)request;
358 mausb_event.data.setup_packet =
359 (usb_endpoint_xfer_control(&request->ep->desc) &&
360 request->setup_packet);
361 mausb_event.data.transfer_size = request->transfer_buffer_length;
362 mausb_event.data.direction = (usb_urb_dir_in(request) ?
363 MAUSB_DATA_MSG_DIRECTION_IN :
364 MAUSB_DATA_MSG_DIRECTION_OUT);
365 mausb_event.data.transfer_size +=
366 ((mausb_event.data.direction == MAUSB_DATA_MSG_DIRECTION_OUT &&
367 mausb_event.data.setup_packet) ?
368 MAUSB_CONTROL_SETUP_SIZE : 0);
369 mausb_event.data.rem_transfer_size = mausb_event.data.transfer_size;
370 mausb_event.data.transfer_flags = request->transfer_flags;
371 mausb_event.data.transfer_eot = false;
372 mausb_event.data.isoch_seg_num = (u32)request->number_of_packets;
373 mausb_event.data.recv_buf = 0;
374 mausb_event.data.payload_size =
375 (usb_endpoint_xfer_isoc(&request->ep->desc) &&
376 usb_endpoint_dir_out(&request->ep->desc)) ?
377 (request->iso_frame_desc[request->number_of_packets - 1]
378 .offset +
379 request->iso_frame_desc[request->number_of_packets - 1]
380 .length) : 0;
381
382 if (mausb_event.data.setup_packet) {
383 memcpy(mausb_event.data.hdr_ack, request->setup_packet,
384 MAUSB_CONTROL_SETUP_SIZE);
385 memcpy(shift_ptr(mausb_event.data.hdr_ack,
386 MAUSB_CONTROL_SETUP_SIZE),
387 &request->dev->route, sizeof(request->dev->route));
388 }
389
390 return 0;
391 }
392
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 51707 bytes --]
next prev parent reply other threads:[~2020-03-28 3:57 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-12 14:42 [PATCH v3 0/8] Add MA USB Host driver Vladimir Stankovic
2020-03-27 15:26 ` [PATCH v4 " vladimir.stankovic
2020-03-27 15:26 ` [PATCH v4 1/8] usb: Add MA-USB Host kernel module vladimir.stankovic
2020-03-27 16:25 ` Alan Stern
2020-03-27 15:26 ` [PATCH v4 2/8] usb: mausb_host: Add link layer implementation vladimir.stankovic
2020-03-27 15:26 ` [PATCH v4 3/8] usb: mausb_host: HCD initialization vladimir.stankovic
2020-03-27 15:26 ` [PATCH v4 4/8] usb: mausb_host: Implement initial hub handlers vladimir.stankovic
2020-03-27 16:37 ` Alan Stern
2020-04-13 15:16 ` Vladimir Stankovic
2020-03-27 15:26 ` [PATCH v4 5/8] usb: mausb_host: Introduce PAL processing vladimir.stankovic
2020-03-27 16:35 ` Alan Stern
2020-03-28 3:56 ` kbuild test robot [this message]
2020-03-27 15:26 ` [PATCH v4 6/8] usb: mausb_host: Add logic for PAL-to-PAL communication vladimir.stankovic
2020-03-27 15:26 ` [PATCH v4 7/8] usb: mausb_host: MA-USB PAL events processing vladimir.stankovic
2020-03-28 10:35 ` kbuild test robot
2020-04-04 16:07 ` kbuild test robot
2020-03-27 15:26 ` [PATCH v4 8/8] usb: mausb_host: Process MA-USB data packets vladimir.stankovic
2020-04-25 9:19 ` [PATCH v5 0/8] Add MA USB Host driver vladimir.stankovic
2020-04-25 9:19 ` [PATCH v5 1/8] usb: Add MA-USB Host kernel module vladimir.stankovic
2020-04-28 11:03 ` Greg KH
2020-04-25 9:19 ` [PATCH v5 2/8] usb: mausb_host: Add link layer implementation vladimir.stankovic
2020-04-25 9:19 ` [PATCH v5 3/8] usb: mausb_host: HCD initialization vladimir.stankovic
2020-04-28 11:07 ` Greg KH
2020-04-25 9:19 ` [PATCH v5 4/8] usb: mausb_host: Implement initial hub handlers vladimir.stankovic
2020-04-25 9:19 ` [PATCH v5 5/8] usb: mausb_host: Introduce PAL processing vladimir.stankovic
2020-04-26 0:32 ` Alan Stern
2020-04-26 12:32 ` Vladimir Stankovic
2020-04-26 14:31 ` Alan Stern
2020-04-26 14:45 ` [External] " Vladimir Stankovic
2020-04-26 20:56 ` Alan Stern
2020-04-30 14:37 ` Vladimir Stankovic
2020-04-30 15:18 ` Alan Stern
2020-04-30 15:34 ` Vladimir Stankovic
2020-04-30 15:41 ` Alan Stern
2020-04-25 9:19 ` [PATCH v5 6/8] usb: mausb_host: Add logic for PAL-to-PAL communication vladimir.stankovic
2020-04-25 9:19 ` [PATCH v5 7/8] usb: mausb_host: MA-USB PAL events processing vladimir.stankovic
2020-04-28 11:08 ` Greg KH
2020-04-25 9:19 ` [PATCH v5 8/8] usb: mausb_host: Process MA-USB data packets vladimir.stankovic
2020-04-28 11:04 ` [PATCH v5 0/8] Add MA USB Host driver Greg KH
2020-04-30 16:51 ` [External] " Vladimir Stankovic
2020-04-30 20:02 ` Greg KH
2020-05-15 13:04 ` Vladimir Stankovic
2020-05-29 12:48 ` Pavel Machek
2020-05-15 12:34 ` [PATCH v6 " Vladimir Stankovic
2020-05-15 12:34 ` [PATCH v6 1/8] usb: Add MA-USB Host kernel module Vladimir Stankovic
2020-05-15 13:01 ` Greg KH
2020-06-11 18:20 ` Vladimir Stankovic
2020-05-15 13:02 ` Greg KH
2020-06-11 18:19 ` [External] " Vladimir Stankovic
2020-05-15 12:34 ` [PATCH v6 2/8] usb: mausb_host: Add link layer implementation Vladimir Stankovic
2020-05-15 12:34 ` [PATCH v6 3/8] usb: mausb_host: HCD initialization Vladimir Stankovic
2020-05-15 13:03 ` Greg KH
2020-06-11 18:19 ` Vladimir Stankovic
2020-05-15 13:07 ` Greg KH
2020-06-11 18:18 ` [External] " Vladimir Stankovic
2020-06-18 8:18 ` Greg KH
2020-05-15 12:34 ` [PATCH v6 4/8] usb: mausb_host: Implement initial hub handlers Vladimir Stankovic
2020-05-15 12:34 ` [PATCH v6 5/8] usb: mausb_host: Introduce PAL processing Vladimir Stankovic
2020-05-15 12:35 ` [PATCH v6 6/8] usb: mausb_host: Add logic for PAL-to-PAL communication Vladimir Stankovic
2020-05-15 12:35 ` [PATCH v6 7/8] usb: mausb_host: MA-USB PAL events processing Vladimir Stankovic
2020-05-15 12:35 ` [PATCH v6 8/8] usb: mausb_host: Process MA-USB data packets Vladimir Stankovic
2020-05-15 13:08 ` [PATCH v6 0/8] Add MA USB Host driver Greg KH
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=202003281124.Je2vS2zs%lkp@intel.com \
--to=lkp@intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=kbuild-all@lists.01.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=mausb-host-devel@displaylink.com \
--cc=vladimir.stankovic@displaylink.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).