linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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 --]

  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).