All of lore.kernel.org
 help / color / mirror / Atom feed
From: kbuild test robot <lkp@intel.com>
Cc: kbuild-all@01.org,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Arnd Bergmann <arnd@arndb.de>, Sujeev Dias <sdias@codeaurora.org>,
	linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org,
	Tony Truong <truong@codeaurora.org>
Subject: Re: [PATCH v1 4/4] mhi_bus: dev: uci: add user space interface driver
Date: Sat, 28 Apr 2018 09:03:54 +0800	[thread overview]
Message-ID: <201804280844.K9kqpUZI%fengguang.wu@intel.com> (raw)
In-Reply-To: <1524795811-21399-5-git-send-email-sdias@codeaurora.org>

[-- Attachment #1: Type: text/plain, Size: 19534 bytes --]

Hi Sujeev,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v4.17-rc2 next-20180426]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Sujeev-Dias/mhi_bus-core-Add-support-for-MHI-host-interface/20180428-065959
config: i386-allmodconfig (attached as .config)
compiler: gcc-7 (Debian 7.3.0-16) 7.3.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All warnings (new ones prefixed by >>):

   In file included from drivers/bus/mhi/devices/mhi_uci.c:26:0:
   include/linux/mhi.h:658:15: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'int'
    static inlint int mhi_force_rddm_mode(struct mhi_controller *mhi_cntrl)
                  ^~~
   In file included from include/linux/printk.h:7:0,
                    from include/linux/kernel.h:14,
                    from include/linux/list.h:9,
                    from include/linux/kobject.h:19,
                    from include/linux/cdev.h:5,
                    from drivers/bus/mhi/devices/mhi_uci.c:13:
   drivers/bus/mhi/devices/mhi_uci.c: In function 'mhi_queue_inbound':
>> include/linux/kern_levels.h:5:18: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'size_t {aka unsigned int}' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:11:18: note: in expansion of macro 'KERN_SOH'
    #define KERN_ERR KERN_SOH "3" /* error conditions */
                     ^~~~~~~~
   include/linux/printk.h:304:9: note: in expansion of macro 'KERN_ERR'
     printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~
>> drivers/bus/mhi/devices/mhi_uci.c:73:4: note: in expansion of macro 'pr_err'
       pr_err("[D][%s] " fmt, __func__, ##__VA_ARGS__); \
       ^~~~~~
>> drivers/bus/mhi/devices/mhi_uci.c:114:3: note: in expansion of macro 'MSG_VERB'
      MSG_VERB("Allocated buf %d of %d size %ld\n", i, nr_trbs, mtu);
      ^~~~~~~~
   drivers/bus/mhi/devices/mhi_uci.c:114:43: note: format string is defined here
      MSG_VERB("Allocated buf %d of %d size %ld\n", i, nr_trbs, mtu);
                                            ~~^
                                            %d
   In file included from include/linux/printk.h:7:0,
                    from include/linux/kernel.h:14,
                    from include/linux/list.h:9,
                    from include/linux/kobject.h:19,
                    from include/linux/cdev.h:5,
                    from drivers/bus/mhi/devices/mhi_uci.c:13:
   drivers/bus/mhi/devices/mhi_uci.c: In function 'mhi_uci_write':
   include/linux/kern_levels.h:5:18: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'size_t {aka unsigned int}' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:11:18: note: in expansion of macro 'KERN_SOH'
    #define KERN_ERR KERN_SOH "3" /* error conditions */
                     ^~~~~~~~
   include/linux/printk.h:304:9: note: in expansion of macro 'KERN_ERR'
     printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~
>> drivers/bus/mhi/devices/mhi_uci.c:73:4: note: in expansion of macro 'pr_err'
       pr_err("[D][%s] " fmt, __func__, ##__VA_ARGS__); \
       ^~~~~~
   drivers/bus/mhi/devices/mhi_uci.c:243:2: note: in expansion of macro 'MSG_VERB'
     MSG_VERB("Enter: to xfer:%lu bytes\n", count);
     ^~~~~~~~
   drivers/bus/mhi/devices/mhi_uci.c:243:29: note: format string is defined here
     MSG_VERB("Enter: to xfer:%lu bytes\n", count);
                              ~~^
                              %u
   In file included from include/linux/printk.h:7:0,
                    from include/linux/kernel.h:14,
                    from include/linux/list.h:9,
                    from include/linux/kobject.h:19,
                    from include/linux/cdev.h:5,
                    from drivers/bus/mhi/devices/mhi_uci.c:13:
   include/linux/kern_levels.h:5:18: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'size_t {aka unsigned int}' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:11:18: note: in expansion of macro 'KERN_SOH'
    #define KERN_ERR KERN_SOH "3" /* error conditions */
                     ^~~~~~~~
   include/linux/printk.h:304:9: note: in expansion of macro 'KERN_ERR'
     printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~
   drivers/bus/mhi/devices/mhi_uci.c:89:4: note: in expansion of macro 'pr_err'
       pr_err("[E][%s] " fmt, __func__, ##__VA_ARGS__); \
       ^~~~~~
>> drivers/bus/mhi/devices/mhi_uci.c:266:4: note: in expansion of macro 'MSG_ERR'
       MSG_ERR("Failed to allocate memory %lu\n", xfer_size);
       ^~~~~~~
   drivers/bus/mhi/devices/mhi_uci.c:266:41: note: format string is defined here
       MSG_ERR("Failed to allocate memory %lu\n", xfer_size);
                                          ~~^
                                          %u
   In file included from include/linux/printk.h:7:0,
                    from include/linux/kernel.h:14,
                    from include/linux/list.h:9,
                    from include/linux/kobject.h:19,
                    from include/linux/cdev.h:5,
                    from drivers/bus/mhi/devices/mhi_uci.c:13:
   include/linux/kern_levels.h:5:18: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'size_t {aka unsigned int}' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:11:18: note: in expansion of macro 'KERN_SOH'
    #define KERN_ERR KERN_SOH "3" /* error conditions */
                     ^~~~~~~~
   include/linux/printk.h:304:9: note: in expansion of macro 'KERN_ERR'
     printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~
>> drivers/bus/mhi/devices/mhi_uci.c:73:4: note: in expansion of macro 'pr_err'
       pr_err("[D][%s] " fmt, __func__, ##__VA_ARGS__); \
       ^~~~~~
   drivers/bus/mhi/devices/mhi_uci.c:295:2: note: in expansion of macro 'MSG_VERB'
     MSG_VERB("Exit: Number of bytes xferred:%lu\n", bytes_xfered);
     ^~~~~~~~
   drivers/bus/mhi/devices/mhi_uci.c:295:44: note: format string is defined here
     MSG_VERB("Exit: Number of bytes xferred:%lu\n", bytes_xfered);
                                             ~~^
                                             %u
   In file included from include/linux/printk.h:7:0,
                    from include/linux/kernel.h:14,
                    from include/linux/list.h:9,
                    from include/linux/kobject.h:19,
                    from include/linux/cdev.h:5,
                    from drivers/bus/mhi/devices/mhi_uci.c:13:
   drivers/bus/mhi/devices/mhi_uci.c: In function 'mhi_uci_read':
   include/linux/kern_levels.h:5:18: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'size_t {aka unsigned int}' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:11:18: note: in expansion of macro 'KERN_SOH'
    #define KERN_ERR KERN_SOH "3" /* error conditions */
                     ^~~~~~~~
   include/linux/printk.h:304:9: note: in expansion of macro 'KERN_ERR'
     printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~
>> drivers/bus/mhi/devices/mhi_uci.c:73:4: note: in expansion of macro 'pr_err'
       pr_err("[D][%s] " fmt, __func__, ##__VA_ARGS__); \
       ^~~~~~
   drivers/bus/mhi/devices/mhi_uci.c:321:2: note: in expansion of macro 'MSG_VERB'
     MSG_VERB("Client provided buf len:%lu\n", count);
     ^~~~~~~~
   drivers/bus/mhi/devices/mhi_uci.c:321:38: note: format string is defined here
     MSG_VERB("Client provided buf len:%lu\n", count);
                                       ~~^
                                       %u
   In file included from include/linux/printk.h:7:0,
                    from include/linux/kernel.h:14,
                    from include/linux/list.h:9,
                    from include/linux/kobject.h:19,
                    from include/linux/cdev.h:5,
                    from drivers/bus/mhi/devices/mhi_uci.c:13:
   include/linux/kern_levels.h:5:18: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'size_t {aka unsigned int}' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:11:18: note: in expansion of macro 'KERN_SOH'
    #define KERN_ERR KERN_SOH "3" /* error conditions */
                     ^~~~~~~~
   include/linux/printk.h:304:9: note: in expansion of macro 'KERN_ERR'
     printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~
>> drivers/bus/mhi/devices/mhi_uci.c:73:4: note: in expansion of macro 'pr_err'
       pr_err("[D][%s] " fmt, __func__, ##__VA_ARGS__); \
       ^~~~~~
   drivers/bus/mhi/devices/mhi_uci.c:376:2: note: in expansion of macro 'MSG_VERB'
     MSG_VERB("Copied %lu of %lu bytes\n", to_copy, uci_chan->rx_size);
     ^~~~~~~~
   drivers/bus/mhi/devices/mhi_uci.c:376:21: note: format string is defined here
     MSG_VERB("Copied %lu of %lu bytes\n", to_copy, uci_chan->rx_size);
                      ~~^
                      %u
   In file included from include/linux/printk.h:7:0,
                    from include/linux/kernel.h:14,
                    from include/linux/list.h:9,
                    from include/linux/kobject.h:19,
                    from include/linux/cdev.h:5,
                    from drivers/bus/mhi/devices/mhi_uci.c:13:
   include/linux/kern_levels.h:5:18: warning: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'size_t {aka unsigned int}' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:11:18: note: in expansion of macro 'KERN_SOH'
    #define KERN_ERR KERN_SOH "3" /* error conditions */
                     ^~~~~~~~
   include/linux/printk.h:304:9: note: in expansion of macro 'KERN_ERR'
     printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~
>> drivers/bus/mhi/devices/mhi_uci.c:73:4: note: in expansion of macro 'pr_err'
       pr_err("[D][%s] " fmt, __func__, ##__VA_ARGS__); \
       ^~~~~~
   drivers/bus/mhi/devices/mhi_uci.c:376:2: note: in expansion of macro 'MSG_VERB'
     MSG_VERB("Copied %lu of %lu bytes\n", to_copy, uci_chan->rx_size);
     ^~~~~~~~
   drivers/bus/mhi/devices/mhi_uci.c:376:28: note: format string is defined here
     MSG_VERB("Copied %lu of %lu bytes\n", to_copy, uci_chan->rx_size);
                             ~~^
                             %u
   In file included from include/linux/printk.h:7:0,
                    from include/linux/kernel.h:14,
                    from include/linux/list.h:9,
                    from include/linux/kobject.h:19,
                    from include/linux/cdev.h:5,
                    from drivers/bus/mhi/devices/mhi_uci.c:13:
   include/linux/kern_levels.h:5:18: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'size_t {aka unsigned int}' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:11:18: note: in expansion of macro 'KERN_SOH'
    #define KERN_ERR KERN_SOH "3" /* error conditions */
                     ^~~~~~~~
   include/linux/printk.h:304:9: note: in expansion of macro 'KERN_ERR'
     printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~
>> drivers/bus/mhi/devices/mhi_uci.c:73:4: note: in expansion of macro 'pr_err'
       pr_err("[D][%s] " fmt, __func__, ##__VA_ARGS__); \
       ^~~~~~
   drivers/bus/mhi/devices/mhi_uci.c:400:2: note: in expansion of macro 'MSG_VERB'
     MSG_VERB("Returning %lu bytes\n", to_copy);
     ^~~~~~~~
   drivers/bus/mhi/devices/mhi_uci.c:400:24: note: format string is defined here
     MSG_VERB("Returning %lu bytes\n", to_copy);
                         ~~^
                         %u

vim +/pr_err +73 drivers/bus/mhi/devices/mhi_uci.c

    70	
    71	#define MSG_VERB(fmt, ...) do { \
    72			if (msg_lvl <= MHI_MSG_LVL_VERBOSE) \
  > 73				pr_err("[D][%s] " fmt, __func__, ##__VA_ARGS__); \
    74		} while (0)
    75	
    76	#else
    77	
    78	#define MSG_VERB(fmt, ...)
    79	
    80	#endif
    81	
    82	#define MSG_LOG(fmt, ...) do { \
    83			if (msg_lvl <= MHI_MSG_LVL_INFO) \
    84				pr_err("[I][%s] " fmt, __func__, ##__VA_ARGS__); \
    85		} while (0)
    86	
    87	#define MSG_ERR(fmt, ...) do { \
    88			if (msg_lvl <= MHI_MSG_LVL_ERROR) \
  > 89				pr_err("[E][%s] " fmt, __func__, ##__VA_ARGS__); \
    90		} while (0)
    91	
    92	#define MAX_UCI_DEVICES (64)
    93	
    94	static DECLARE_BITMAP(uci_minors, MAX_UCI_DEVICES);
    95	static struct mhi_uci_drv mhi_uci_drv;
    96	
    97	static int mhi_queue_inbound(struct uci_dev *uci_dev)
    98	{
    99		struct mhi_device *mhi_dev = uci_dev->mhi_dev;
   100		int nr_trbs = mhi_get_no_free_descriptors(mhi_dev, DMA_FROM_DEVICE);
   101		size_t mtu = uci_dev->mtu;
   102		void *buf;
   103		struct uci_buf *uci_buf;
   104		int ret = -EIO, i;
   105	
   106		for (i = 0; i < nr_trbs; i++) {
   107			buf = kmalloc(mtu + sizeof(*uci_buf), GFP_KERNEL);
   108			if (!buf)
   109				return -ENOMEM;
   110	
   111			uci_buf = buf + mtu;
   112			uci_buf->data = buf;
   113	
 > 114			MSG_VERB("Allocated buf %d of %d size %ld\n", i, nr_trbs, mtu);
   115	
   116			ret = mhi_queue_transfer(mhi_dev, DMA_FROM_DEVICE, buf, mtu,
   117						 MHI_EOT);
   118			if (ret) {
   119				kfree(buf);
   120				MSG_ERR("Failed to queue buffer %d\n", i);
   121				return ret;
   122			}
   123		}
   124	
   125		return ret;
   126	}
   127	
   128	static long mhi_uci_ioctl(struct file *file,
   129				  unsigned int cmd,
   130				  unsigned long arg)
   131	{
   132		struct uci_dev *uci_dev = file->private_data;
   133		struct mhi_device *mhi_dev = uci_dev->mhi_dev;
   134		long ret = -ERESTARTSYS;
   135	
   136		mutex_lock(&uci_dev->mutex);
   137		if (uci_dev->enabled)
   138			ret = mhi_ioctl(mhi_dev, cmd, arg);
   139		mutex_unlock(&uci_dev->mutex);
   140	
   141		return ret;
   142	}
   143	
   144	static int mhi_uci_release(struct inode *inode, struct file *file)
   145	{
   146		struct uci_dev *uci_dev = file->private_data;
   147	
   148		mutex_lock(&uci_dev->mutex);
   149		uci_dev->ref_count--;
   150		if (!uci_dev->ref_count) {
   151			struct uci_buf *itr, *tmp;
   152			struct uci_chan *uci_chan;
   153	
   154			MSG_LOG("Last client left, closing node\n");
   155	
   156			if (uci_dev->enabled)
   157				mhi_unprepare_from_transfer(uci_dev->mhi_dev);
   158	
   159			/* clean inbound channel */
   160			uci_chan = &uci_dev->dl_chan;
   161			list_for_each_entry_safe(itr, tmp, &uci_chan->pending, node) {
   162				list_del(&itr->node);
   163				kfree(itr->data);
   164			}
   165			if (uci_chan->cur_buf)
   166				kfree(uci_chan->cur_buf->data);
   167	
   168			uci_chan->cur_buf = NULL;
   169	
   170			if (!uci_dev->enabled) {
   171				MSG_LOG("Node is deleted, freeing dev node\n");
   172				mutex_unlock(&uci_dev->mutex);
   173				mutex_destroy(&uci_dev->mutex);
   174				clear_bit(MINOR(uci_dev->devt), uci_minors);
   175				kfree(uci_dev);
   176				return 0;
   177			}
   178		}
   179	
   180		mutex_unlock(&uci_dev->mutex);
   181	
   182		MSG_LOG("exit: ref_count:%d\n", uci_dev->ref_count);
   183	
   184		return 0;
   185	}
   186	
   187	static unsigned int mhi_uci_poll(struct file *file, poll_table *wait)
   188	{
   189		struct uci_dev *uci_dev = file->private_data;
   190		struct mhi_device *mhi_dev = uci_dev->mhi_dev;
   191		struct uci_chan *uci_chan;
   192		unsigned int mask = 0;
   193	
   194		poll_wait(file, &uci_dev->dl_chan.wq, wait);
   195		poll_wait(file, &uci_dev->ul_chan.wq, wait);
   196	
   197		uci_chan = &uci_dev->dl_chan;
   198		spin_lock_bh(&uci_chan->lock);
   199		if (!uci_dev->enabled) {
   200			mask = POLLERR;
   201		} else if (!list_empty(&uci_chan->pending) || uci_chan->cur_buf) {
   202			MSG_VERB("Client can read from node\n");
   203			mask |= POLLIN | POLLRDNORM;
   204		}
   205		spin_unlock_bh(&uci_chan->lock);
   206	
   207		uci_chan = &uci_dev->ul_chan;
   208		spin_lock_bh(&uci_chan->lock);
   209		if (!uci_dev->enabled) {
   210			mask |= POLLERR;
   211		} else if (mhi_get_no_free_descriptors(mhi_dev, DMA_TO_DEVICE) > 0) {
   212			MSG_VERB("Client can write to node\n");
   213			mask |= POLLOUT | POLLWRNORM;
   214		}
   215		spin_unlock_bh(&uci_chan->lock);
   216	
   217		MSG_LOG("Client attempted to poll, returning mask 0x%x\n", mask);
   218	
   219		return mask;
   220	}
   221	
   222	static ssize_t mhi_uci_write(struct file *file,
   223				     const char __user *buf,
   224				     size_t count,
   225				     loff_t *offp)
   226	{
   227		struct uci_dev *uci_dev = file->private_data;
   228		struct mhi_device *mhi_dev = uci_dev->mhi_dev;
   229		struct uci_chan *uci_chan = &uci_dev->ul_chan;
   230		size_t bytes_xfered = 0;
   231		int ret;
   232	
   233		if (!buf || !count)
   234			return -EINVAL;
   235	
   236		/* confirm channel is active */
   237		spin_lock_bh(&uci_chan->lock);
   238		if (!uci_dev->enabled) {
   239			spin_unlock_bh(&uci_chan->lock);
   240			return -ERESTARTSYS;
   241		}
   242	
   243		MSG_VERB("Enter: to xfer:%lu bytes\n", count);
   244	
   245		while (count) {
   246			size_t xfer_size;
   247			void *kbuf;
   248			enum MHI_FLAGS flags;
   249	
   250			spin_unlock_bh(&uci_chan->lock);
   251	
   252			/* wait for free descriptors */
   253			ret = wait_event_interruptible(uci_chan->wq,
   254				(!uci_dev->enabled) ||
   255				mhi_get_no_free_descriptors
   256						       (mhi_dev, DMA_TO_DEVICE) > 0);
   257	
   258			if (ret == -ERESTARTSYS) {
   259				MSG_LOG("Exit signal caught for node\n");
   260				return -ERESTARTSYS;
   261			}
   262	
   263			xfer_size = min_t(size_t, count, uci_dev->mtu);
   264			kbuf = kmalloc(xfer_size, GFP_KERNEL);
   265			if (!kbuf) {
 > 266				MSG_ERR("Failed to allocate memory %lu\n", xfer_size);
   267				return -ENOMEM;
   268			}
   269	
   270			ret = copy_from_user(kbuf, buf, xfer_size);
   271			if (unlikely(ret)) {
   272				kfree(kbuf);
   273				return ret;
   274			}
   275	
   276			spin_lock_bh(&uci_chan->lock);
   277			flags = (count - xfer_size) ? MHI_EOB : MHI_EOT;
   278			if (uci_dev->enabled)
   279				ret = mhi_queue_transfer(mhi_dev, DMA_TO_DEVICE, kbuf,
   280							 xfer_size, flags);
   281			else
   282				ret = -ERESTARTSYS;
   283	
   284			if (ret) {
   285				kfree(kbuf);
   286				goto sys_interrupt;
   287			}
   288	
   289			bytes_xfered += xfer_size;
   290			count -= xfer_size;
   291			buf += xfer_size;
   292		}
   293	
   294		spin_unlock_bh(&uci_chan->lock);
   295		MSG_VERB("Exit: Number of bytes xferred:%lu\n", bytes_xfered);
   296	
   297		return bytes_xfered;
   298	
   299	sys_interrupt:
   300		spin_unlock_bh(&uci_chan->lock);
   301	
   302		return ret;
   303	}
   304	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 62952 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: kbuild test robot <lkp@intel.com>
To: Sujeev Dias <sdias@codeaurora.org>
Cc: kbuild-all@01.org,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Arnd Bergmann <arnd@arndb.de>, Sujeev Dias <sdias@codeaurora.org>,
	linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org,
	Tony Truong <truong@codeaurora.org>
Subject: Re: [PATCH v1 4/4] mhi_bus: dev: uci: add user space interface driver
Date: Sat, 28 Apr 2018 09:03:54 +0800	[thread overview]
Message-ID: <201804280844.K9kqpUZI%fengguang.wu@intel.com> (raw)
In-Reply-To: <1524795811-21399-5-git-send-email-sdias@codeaurora.org>

[-- Attachment #1: Type: text/plain, Size: 19534 bytes --]

Hi Sujeev,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v4.17-rc2 next-20180426]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Sujeev-Dias/mhi_bus-core-Add-support-for-MHI-host-interface/20180428-065959
config: i386-allmodconfig (attached as .config)
compiler: gcc-7 (Debian 7.3.0-16) 7.3.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All warnings (new ones prefixed by >>):

   In file included from drivers/bus/mhi/devices/mhi_uci.c:26:0:
   include/linux/mhi.h:658:15: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'int'
    static inlint int mhi_force_rddm_mode(struct mhi_controller *mhi_cntrl)
                  ^~~
   In file included from include/linux/printk.h:7:0,
                    from include/linux/kernel.h:14,
                    from include/linux/list.h:9,
                    from include/linux/kobject.h:19,
                    from include/linux/cdev.h:5,
                    from drivers/bus/mhi/devices/mhi_uci.c:13:
   drivers/bus/mhi/devices/mhi_uci.c: In function 'mhi_queue_inbound':
>> include/linux/kern_levels.h:5:18: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'size_t {aka unsigned int}' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:11:18: note: in expansion of macro 'KERN_SOH'
    #define KERN_ERR KERN_SOH "3" /* error conditions */
                     ^~~~~~~~
   include/linux/printk.h:304:9: note: in expansion of macro 'KERN_ERR'
     printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~
>> drivers/bus/mhi/devices/mhi_uci.c:73:4: note: in expansion of macro 'pr_err'
       pr_err("[D][%s] " fmt, __func__, ##__VA_ARGS__); \
       ^~~~~~
>> drivers/bus/mhi/devices/mhi_uci.c:114:3: note: in expansion of macro 'MSG_VERB'
      MSG_VERB("Allocated buf %d of %d size %ld\n", i, nr_trbs, mtu);
      ^~~~~~~~
   drivers/bus/mhi/devices/mhi_uci.c:114:43: note: format string is defined here
      MSG_VERB("Allocated buf %d of %d size %ld\n", i, nr_trbs, mtu);
                                            ~~^
                                            %d
   In file included from include/linux/printk.h:7:0,
                    from include/linux/kernel.h:14,
                    from include/linux/list.h:9,
                    from include/linux/kobject.h:19,
                    from include/linux/cdev.h:5,
                    from drivers/bus/mhi/devices/mhi_uci.c:13:
   drivers/bus/mhi/devices/mhi_uci.c: In function 'mhi_uci_write':
   include/linux/kern_levels.h:5:18: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'size_t {aka unsigned int}' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:11:18: note: in expansion of macro 'KERN_SOH'
    #define KERN_ERR KERN_SOH "3" /* error conditions */
                     ^~~~~~~~
   include/linux/printk.h:304:9: note: in expansion of macro 'KERN_ERR'
     printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~
>> drivers/bus/mhi/devices/mhi_uci.c:73:4: note: in expansion of macro 'pr_err'
       pr_err("[D][%s] " fmt, __func__, ##__VA_ARGS__); \
       ^~~~~~
   drivers/bus/mhi/devices/mhi_uci.c:243:2: note: in expansion of macro 'MSG_VERB'
     MSG_VERB("Enter: to xfer:%lu bytes\n", count);
     ^~~~~~~~
   drivers/bus/mhi/devices/mhi_uci.c:243:29: note: format string is defined here
     MSG_VERB("Enter: to xfer:%lu bytes\n", count);
                              ~~^
                              %u
   In file included from include/linux/printk.h:7:0,
                    from include/linux/kernel.h:14,
                    from include/linux/list.h:9,
                    from include/linux/kobject.h:19,
                    from include/linux/cdev.h:5,
                    from drivers/bus/mhi/devices/mhi_uci.c:13:
   include/linux/kern_levels.h:5:18: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'size_t {aka unsigned int}' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:11:18: note: in expansion of macro 'KERN_SOH'
    #define KERN_ERR KERN_SOH "3" /* error conditions */
                     ^~~~~~~~
   include/linux/printk.h:304:9: note: in expansion of macro 'KERN_ERR'
     printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~
   drivers/bus/mhi/devices/mhi_uci.c:89:4: note: in expansion of macro 'pr_err'
       pr_err("[E][%s] " fmt, __func__, ##__VA_ARGS__); \
       ^~~~~~
>> drivers/bus/mhi/devices/mhi_uci.c:266:4: note: in expansion of macro 'MSG_ERR'
       MSG_ERR("Failed to allocate memory %lu\n", xfer_size);
       ^~~~~~~
   drivers/bus/mhi/devices/mhi_uci.c:266:41: note: format string is defined here
       MSG_ERR("Failed to allocate memory %lu\n", xfer_size);
                                          ~~^
                                          %u
   In file included from include/linux/printk.h:7:0,
                    from include/linux/kernel.h:14,
                    from include/linux/list.h:9,
                    from include/linux/kobject.h:19,
                    from include/linux/cdev.h:5,
                    from drivers/bus/mhi/devices/mhi_uci.c:13:
   include/linux/kern_levels.h:5:18: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'size_t {aka unsigned int}' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:11:18: note: in expansion of macro 'KERN_SOH'
    #define KERN_ERR KERN_SOH "3" /* error conditions */
                     ^~~~~~~~
   include/linux/printk.h:304:9: note: in expansion of macro 'KERN_ERR'
     printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~
>> drivers/bus/mhi/devices/mhi_uci.c:73:4: note: in expansion of macro 'pr_err'
       pr_err("[D][%s] " fmt, __func__, ##__VA_ARGS__); \
       ^~~~~~
   drivers/bus/mhi/devices/mhi_uci.c:295:2: note: in expansion of macro 'MSG_VERB'
     MSG_VERB("Exit: Number of bytes xferred:%lu\n", bytes_xfered);
     ^~~~~~~~
   drivers/bus/mhi/devices/mhi_uci.c:295:44: note: format string is defined here
     MSG_VERB("Exit: Number of bytes xferred:%lu\n", bytes_xfered);
                                             ~~^
                                             %u
   In file included from include/linux/printk.h:7:0,
                    from include/linux/kernel.h:14,
                    from include/linux/list.h:9,
                    from include/linux/kobject.h:19,
                    from include/linux/cdev.h:5,
                    from drivers/bus/mhi/devices/mhi_uci.c:13:
   drivers/bus/mhi/devices/mhi_uci.c: In function 'mhi_uci_read':
   include/linux/kern_levels.h:5:18: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'size_t {aka unsigned int}' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:11:18: note: in expansion of macro 'KERN_SOH'
    #define KERN_ERR KERN_SOH "3" /* error conditions */
                     ^~~~~~~~
   include/linux/printk.h:304:9: note: in expansion of macro 'KERN_ERR'
     printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~
>> drivers/bus/mhi/devices/mhi_uci.c:73:4: note: in expansion of macro 'pr_err'
       pr_err("[D][%s] " fmt, __func__, ##__VA_ARGS__); \
       ^~~~~~
   drivers/bus/mhi/devices/mhi_uci.c:321:2: note: in expansion of macro 'MSG_VERB'
     MSG_VERB("Client provided buf len:%lu\n", count);
     ^~~~~~~~
   drivers/bus/mhi/devices/mhi_uci.c:321:38: note: format string is defined here
     MSG_VERB("Client provided buf len:%lu\n", count);
                                       ~~^
                                       %u
   In file included from include/linux/printk.h:7:0,
                    from include/linux/kernel.h:14,
                    from include/linux/list.h:9,
                    from include/linux/kobject.h:19,
                    from include/linux/cdev.h:5,
                    from drivers/bus/mhi/devices/mhi_uci.c:13:
   include/linux/kern_levels.h:5:18: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'size_t {aka unsigned int}' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:11:18: note: in expansion of macro 'KERN_SOH'
    #define KERN_ERR KERN_SOH "3" /* error conditions */
                     ^~~~~~~~
   include/linux/printk.h:304:9: note: in expansion of macro 'KERN_ERR'
     printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~
>> drivers/bus/mhi/devices/mhi_uci.c:73:4: note: in expansion of macro 'pr_err'
       pr_err("[D][%s] " fmt, __func__, ##__VA_ARGS__); \
       ^~~~~~
   drivers/bus/mhi/devices/mhi_uci.c:376:2: note: in expansion of macro 'MSG_VERB'
     MSG_VERB("Copied %lu of %lu bytes\n", to_copy, uci_chan->rx_size);
     ^~~~~~~~
   drivers/bus/mhi/devices/mhi_uci.c:376:21: note: format string is defined here
     MSG_VERB("Copied %lu of %lu bytes\n", to_copy, uci_chan->rx_size);
                      ~~^
                      %u
   In file included from include/linux/printk.h:7:0,
                    from include/linux/kernel.h:14,
                    from include/linux/list.h:9,
                    from include/linux/kobject.h:19,
                    from include/linux/cdev.h:5,
                    from drivers/bus/mhi/devices/mhi_uci.c:13:
   include/linux/kern_levels.h:5:18: warning: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'size_t {aka unsigned int}' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:11:18: note: in expansion of macro 'KERN_SOH'
    #define KERN_ERR KERN_SOH "3" /* error conditions */
                     ^~~~~~~~
   include/linux/printk.h:304:9: note: in expansion of macro 'KERN_ERR'
     printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~
>> drivers/bus/mhi/devices/mhi_uci.c:73:4: note: in expansion of macro 'pr_err'
       pr_err("[D][%s] " fmt, __func__, ##__VA_ARGS__); \
       ^~~~~~
   drivers/bus/mhi/devices/mhi_uci.c:376:2: note: in expansion of macro 'MSG_VERB'
     MSG_VERB("Copied %lu of %lu bytes\n", to_copy, uci_chan->rx_size);
     ^~~~~~~~
   drivers/bus/mhi/devices/mhi_uci.c:376:28: note: format string is defined here
     MSG_VERB("Copied %lu of %lu bytes\n", to_copy, uci_chan->rx_size);
                             ~~^
                             %u
   In file included from include/linux/printk.h:7:0,
                    from include/linux/kernel.h:14,
                    from include/linux/list.h:9,
                    from include/linux/kobject.h:19,
                    from include/linux/cdev.h:5,
                    from drivers/bus/mhi/devices/mhi_uci.c:13:
   include/linux/kern_levels.h:5:18: warning: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'size_t {aka unsigned int}' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/linux/kern_levels.h:11:18: note: in expansion of macro 'KERN_SOH'
    #define KERN_ERR KERN_SOH "3" /* error conditions */
                     ^~~~~~~~
   include/linux/printk.h:304:9: note: in expansion of macro 'KERN_ERR'
     printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
            ^~~~~~~~
>> drivers/bus/mhi/devices/mhi_uci.c:73:4: note: in expansion of macro 'pr_err'
       pr_err("[D][%s] " fmt, __func__, ##__VA_ARGS__); \
       ^~~~~~
   drivers/bus/mhi/devices/mhi_uci.c:400:2: note: in expansion of macro 'MSG_VERB'
     MSG_VERB("Returning %lu bytes\n", to_copy);
     ^~~~~~~~
   drivers/bus/mhi/devices/mhi_uci.c:400:24: note: format string is defined here
     MSG_VERB("Returning %lu bytes\n", to_copy);
                         ~~^
                         %u

vim +/pr_err +73 drivers/bus/mhi/devices/mhi_uci.c

    70	
    71	#define MSG_VERB(fmt, ...) do { \
    72			if (msg_lvl <= MHI_MSG_LVL_VERBOSE) \
  > 73				pr_err("[D][%s] " fmt, __func__, ##__VA_ARGS__); \
    74		} while (0)
    75	
    76	#else
    77	
    78	#define MSG_VERB(fmt, ...)
    79	
    80	#endif
    81	
    82	#define MSG_LOG(fmt, ...) do { \
    83			if (msg_lvl <= MHI_MSG_LVL_INFO) \
    84				pr_err("[I][%s] " fmt, __func__, ##__VA_ARGS__); \
    85		} while (0)
    86	
    87	#define MSG_ERR(fmt, ...) do { \
    88			if (msg_lvl <= MHI_MSG_LVL_ERROR) \
  > 89				pr_err("[E][%s] " fmt, __func__, ##__VA_ARGS__); \
    90		} while (0)
    91	
    92	#define MAX_UCI_DEVICES (64)
    93	
    94	static DECLARE_BITMAP(uci_minors, MAX_UCI_DEVICES);
    95	static struct mhi_uci_drv mhi_uci_drv;
    96	
    97	static int mhi_queue_inbound(struct uci_dev *uci_dev)
    98	{
    99		struct mhi_device *mhi_dev = uci_dev->mhi_dev;
   100		int nr_trbs = mhi_get_no_free_descriptors(mhi_dev, DMA_FROM_DEVICE);
   101		size_t mtu = uci_dev->mtu;
   102		void *buf;
   103		struct uci_buf *uci_buf;
   104		int ret = -EIO, i;
   105	
   106		for (i = 0; i < nr_trbs; i++) {
   107			buf = kmalloc(mtu + sizeof(*uci_buf), GFP_KERNEL);
   108			if (!buf)
   109				return -ENOMEM;
   110	
   111			uci_buf = buf + mtu;
   112			uci_buf->data = buf;
   113	
 > 114			MSG_VERB("Allocated buf %d of %d size %ld\n", i, nr_trbs, mtu);
   115	
   116			ret = mhi_queue_transfer(mhi_dev, DMA_FROM_DEVICE, buf, mtu,
   117						 MHI_EOT);
   118			if (ret) {
   119				kfree(buf);
   120				MSG_ERR("Failed to queue buffer %d\n", i);
   121				return ret;
   122			}
   123		}
   124	
   125		return ret;
   126	}
   127	
   128	static long mhi_uci_ioctl(struct file *file,
   129				  unsigned int cmd,
   130				  unsigned long arg)
   131	{
   132		struct uci_dev *uci_dev = file->private_data;
   133		struct mhi_device *mhi_dev = uci_dev->mhi_dev;
   134		long ret = -ERESTARTSYS;
   135	
   136		mutex_lock(&uci_dev->mutex);
   137		if (uci_dev->enabled)
   138			ret = mhi_ioctl(mhi_dev, cmd, arg);
   139		mutex_unlock(&uci_dev->mutex);
   140	
   141		return ret;
   142	}
   143	
   144	static int mhi_uci_release(struct inode *inode, struct file *file)
   145	{
   146		struct uci_dev *uci_dev = file->private_data;
   147	
   148		mutex_lock(&uci_dev->mutex);
   149		uci_dev->ref_count--;
   150		if (!uci_dev->ref_count) {
   151			struct uci_buf *itr, *tmp;
   152			struct uci_chan *uci_chan;
   153	
   154			MSG_LOG("Last client left, closing node\n");
   155	
   156			if (uci_dev->enabled)
   157				mhi_unprepare_from_transfer(uci_dev->mhi_dev);
   158	
   159			/* clean inbound channel */
   160			uci_chan = &uci_dev->dl_chan;
   161			list_for_each_entry_safe(itr, tmp, &uci_chan->pending, node) {
   162				list_del(&itr->node);
   163				kfree(itr->data);
   164			}
   165			if (uci_chan->cur_buf)
   166				kfree(uci_chan->cur_buf->data);
   167	
   168			uci_chan->cur_buf = NULL;
   169	
   170			if (!uci_dev->enabled) {
   171				MSG_LOG("Node is deleted, freeing dev node\n");
   172				mutex_unlock(&uci_dev->mutex);
   173				mutex_destroy(&uci_dev->mutex);
   174				clear_bit(MINOR(uci_dev->devt), uci_minors);
   175				kfree(uci_dev);
   176				return 0;
   177			}
   178		}
   179	
   180		mutex_unlock(&uci_dev->mutex);
   181	
   182		MSG_LOG("exit: ref_count:%d\n", uci_dev->ref_count);
   183	
   184		return 0;
   185	}
   186	
   187	static unsigned int mhi_uci_poll(struct file *file, poll_table *wait)
   188	{
   189		struct uci_dev *uci_dev = file->private_data;
   190		struct mhi_device *mhi_dev = uci_dev->mhi_dev;
   191		struct uci_chan *uci_chan;
   192		unsigned int mask = 0;
   193	
   194		poll_wait(file, &uci_dev->dl_chan.wq, wait);
   195		poll_wait(file, &uci_dev->ul_chan.wq, wait);
   196	
   197		uci_chan = &uci_dev->dl_chan;
   198		spin_lock_bh(&uci_chan->lock);
   199		if (!uci_dev->enabled) {
   200			mask = POLLERR;
   201		} else if (!list_empty(&uci_chan->pending) || uci_chan->cur_buf) {
   202			MSG_VERB("Client can read from node\n");
   203			mask |= POLLIN | POLLRDNORM;
   204		}
   205		spin_unlock_bh(&uci_chan->lock);
   206	
   207		uci_chan = &uci_dev->ul_chan;
   208		spin_lock_bh(&uci_chan->lock);
   209		if (!uci_dev->enabled) {
   210			mask |= POLLERR;
   211		} else if (mhi_get_no_free_descriptors(mhi_dev, DMA_TO_DEVICE) > 0) {
   212			MSG_VERB("Client can write to node\n");
   213			mask |= POLLOUT | POLLWRNORM;
   214		}
   215		spin_unlock_bh(&uci_chan->lock);
   216	
   217		MSG_LOG("Client attempted to poll, returning mask 0x%x\n", mask);
   218	
   219		return mask;
   220	}
   221	
   222	static ssize_t mhi_uci_write(struct file *file,
   223				     const char __user *buf,
   224				     size_t count,
   225				     loff_t *offp)
   226	{
   227		struct uci_dev *uci_dev = file->private_data;
   228		struct mhi_device *mhi_dev = uci_dev->mhi_dev;
   229		struct uci_chan *uci_chan = &uci_dev->ul_chan;
   230		size_t bytes_xfered = 0;
   231		int ret;
   232	
   233		if (!buf || !count)
   234			return -EINVAL;
   235	
   236		/* confirm channel is active */
   237		spin_lock_bh(&uci_chan->lock);
   238		if (!uci_dev->enabled) {
   239			spin_unlock_bh(&uci_chan->lock);
   240			return -ERESTARTSYS;
   241		}
   242	
   243		MSG_VERB("Enter: to xfer:%lu bytes\n", count);
   244	
   245		while (count) {
   246			size_t xfer_size;
   247			void *kbuf;
   248			enum MHI_FLAGS flags;
   249	
   250			spin_unlock_bh(&uci_chan->lock);
   251	
   252			/* wait for free descriptors */
   253			ret = wait_event_interruptible(uci_chan->wq,
   254				(!uci_dev->enabled) ||
   255				mhi_get_no_free_descriptors
   256						       (mhi_dev, DMA_TO_DEVICE) > 0);
   257	
   258			if (ret == -ERESTARTSYS) {
   259				MSG_LOG("Exit signal caught for node\n");
   260				return -ERESTARTSYS;
   261			}
   262	
   263			xfer_size = min_t(size_t, count, uci_dev->mtu);
   264			kbuf = kmalloc(xfer_size, GFP_KERNEL);
   265			if (!kbuf) {
 > 266				MSG_ERR("Failed to allocate memory %lu\n", xfer_size);
   267				return -ENOMEM;
   268			}
   269	
   270			ret = copy_from_user(kbuf, buf, xfer_size);
   271			if (unlikely(ret)) {
   272				kfree(kbuf);
   273				return ret;
   274			}
   275	
   276			spin_lock_bh(&uci_chan->lock);
   277			flags = (count - xfer_size) ? MHI_EOB : MHI_EOT;
   278			if (uci_dev->enabled)
   279				ret = mhi_queue_transfer(mhi_dev, DMA_TO_DEVICE, kbuf,
   280							 xfer_size, flags);
   281			else
   282				ret = -ERESTARTSYS;
   283	
   284			if (ret) {
   285				kfree(kbuf);
   286				goto sys_interrupt;
   287			}
   288	
   289			bytes_xfered += xfer_size;
   290			count -= xfer_size;
   291			buf += xfer_size;
   292		}
   293	
   294		spin_unlock_bh(&uci_chan->lock);
   295		MSG_VERB("Exit: Number of bytes xferred:%lu\n", bytes_xfered);
   296	
   297		return bytes_xfered;
   298	
   299	sys_interrupt:
   300		spin_unlock_bh(&uci_chan->lock);
   301	
   302		return ret;
   303	}
   304	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 62952 bytes --]

  parent reply	other threads:[~2018-04-28  1:03 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-27  2:23 MHI initial design review Sujeev Dias
2018-04-27  2:23 ` [PATCH v1 1/4] mhi_bus: core: Add support for MHI host interface Sujeev Dias
2018-04-27  7:22   ` Greg Kroah-Hartman
2018-04-28 14:28     ` Sujeev Dias
2018-04-28 15:50       ` Greg Kroah-Hartman
2018-04-27  7:23   ` Greg Kroah-Hartman
2018-04-27 12:18   ` Arnd Bergmann
2018-04-28 16:08     ` Sujeev Dias
2018-04-28  0:28   ` kbuild test robot
2018-04-28  0:28     ` kbuild test robot
2018-04-28  2:52   ` kbuild test robot
2018-04-28  2:52     ` kbuild test robot
2018-05-03 19:21   ` Pavel Machek
2018-05-04  3:05     ` Sujeev Dias
2018-06-22 23:03   ` Randy Dunlap
2018-04-27  2:23 ` [PATCH v1 2/4] mhi_bus: controller: MHI support for QCOM modems Sujeev Dias
2018-04-27 11:32   ` Arnd Bergmann
2018-04-28 15:40     ` Sujeev Dias
2018-04-28  3:05   ` kbuild test robot
2018-04-28  3:05     ` kbuild test robot
2018-04-28  3:12   ` kbuild test robot
2018-04-28  3:12     ` kbuild test robot
2018-04-27  2:23 ` [PATCH v1 3/4] mhi_bus: dev: netdev: add network interface driver Sujeev Dias
2018-04-27 11:19   ` Arnd Bergmann
2018-04-28 15:25     ` Sujeev Dias
2018-04-27  2:23 ` [PATCH v1 4/4] mhi_bus: dev: uci: add user space " Sujeev Dias
2018-04-27 11:36   ` Arnd Bergmann
2018-04-28  1:03   ` kbuild test robot [this message]
2018-04-28  1:03     ` kbuild test robot
2018-04-28  5:16   ` [PATCH] mhi_bus: dev: uci: fix semicolon.cocci warnings kbuild test robot
2018-04-28  5:16     ` kbuild test robot
2018-04-28  5:16   ` [PATCH v1 4/4] mhi_bus: dev: uci: add user space interface driver kbuild test robot
2018-04-28  5:16     ` kbuild test robot
2018-07-09 20:08 ` MHI code review Sujeev Dias
2018-07-09 20:08   ` [PATCH v2 1/7] mhi_bus: core: initial checkin for modem host interface bus driver Sujeev Dias
2018-07-09 20:50     ` Greg Kroah-Hartman
2018-07-09 20:52     ` Greg Kroah-Hartman
2018-07-10  6:36     ` Greg Kroah-Hartman
2018-07-11 19:30     ` Rob Herring
2018-08-09 18:39     ` Randy Dunlap
2018-07-09 20:08   ` [PATCH v2 2/7] mhi_bus: core: add power management support Sujeev Dias
2018-07-09 20:08   ` [PATCH v2 3/7] mhi_bus: core: add support for data transfer Sujeev Dias
2018-07-10  6:29     ` Greg Kroah-Hartman
2018-07-09 20:08   ` [PATCH v2 4/7] mhi_bus: core: add support for handling ioctl cmds Sujeev Dias
2018-07-09 20:08   ` [PATCH v2 5/7] mhi_bus: core: add support to get external modem time Sujeev Dias
2018-07-11 19:32     ` Rob Herring
2018-08-09 20:17     ` Randy Dunlap
2018-07-09 20:08   ` [PATCH v2 6/7] mhi_bus: controller: MHI support for QCOM modems Sujeev Dias
2018-07-11 19:36     ` Rob Herring
2018-07-09 20:08   ` [PATCH v2 7/7] mhi_bus: dev: uci: add user space interface driver Sujeev Dias
2019-04-30 15:10   ` MHI code review Daniele Palmas
2019-06-12 17:54     ` Sujeev Dias
2019-06-12 20:58       ` Daniele Palmas
2019-06-12 18:00     ` Sujeev Dias

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=201804280844.K9kqpUZI%fengguang.wu@intel.com \
    --to=lkp@intel.com \
    --cc=arnd@arndb.de \
    --cc=gregkh@linuxfoundation.org \
    --cc=kbuild-all@01.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sdias@codeaurora.org \
    --cc=truong@codeaurora.org \
    /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.