All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: samples/vfio-mdev/mtty.c:930:14: warning: Dereference of null pointer [clang-analyzer-core.NullDereference]
Date: Sat, 06 Nov 2021 15:32:20 +0800	[thread overview]
Message-ID: <202111061506.7suosGhE-lkp@intel.com> (raw)

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

CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Jason Gunthorpe <jgg@nvidia.com>
CC: Alex Williamson <alex.williamson@redhat.com>
CC: Christoph Hellwig <hch@lst.de>
CC: Cornelia Huck <cohuck@redhat.com>
CC: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>
CC: Kirti Wankhede <kwankhede@nvidia.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   fe91c4725aeed35023ba4f7a1e1adfebb6878c23
commit: af3ab3f9b986cdbc1b97b8a3341ce78851edb0dd vfio/mdev: Remove CONFIG_VFIO_MDEV_DEVICE
date:   5 months ago
:::::: branch date: 16 hours ago
:::::: commit date: 5 months ago
config: i386-randconfig-c001-20211013 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project adf55ac6657693f7bfbe3087b599b4031a765a44)
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://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=af3ab3f9b986cdbc1b97b8a3341ce78851edb0dd
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout af3ab3f9b986cdbc1b97b8a3341ce78851edb0dd
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=i386 clang-analyzer 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


clang-analyzer warnings: (new ones prefixed by >>)
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:308:3: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                   ^
   drivers/greybus/manifest.c:196:2: note: Loop condition is false.  Exiting loop
           list_for_each_entry(descriptor, &intf->manifest_descs, links) {
           ^
   include/linux/list.h:630:13: note: expanded from macro 'list_for_each_entry'
                pos = list_next_entry(pos, member))
                      ^
   include/linux/list.h:555:2: note: expanded from macro 'list_next_entry'
           list_entry((pos)->member.next, typeof(*(pos)), member)
           ^
   include/linux/list.h:511:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^
   note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:306:2: note: expanded from macro '__compiletime_assert'
           do {                                                            \
           ^
   drivers/greybus/manifest.c:196:2: note: Loop condition is true.  Entering loop body
           list_for_each_entry(descriptor, &intf->manifest_descs, links) {
           ^
   include/linux/list.h:628:2: note: expanded from macro 'list_for_each_entry'
           for (pos = list_first_entry(head, typeof(*pos), member);        \
           ^
   drivers/greybus/manifest.c:197:7: note: Use of memory after it is freed
                   if (descriptor->type != GREYBUS_TYPE_STRING)
                       ^~~~~~~~~~~~~~~~
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   5 warnings generated.
>> samples/vfio-mdev/mtty.c:930:14: warning: Dereference of null pointer [clang-analyzer-core.NullDereference]
                                   int fd = *(int *)data;
                                            ^
   samples/vfio-mdev/mtty.c:1118:6: note: Assuming 'mdev' is non-null
           if (!mdev)
               ^~~~~
   samples/vfio-mdev/mtty.c:1118:2: note: Taking false branch
           if (!mdev)
           ^
   samples/vfio-mdev/mtty.c:1121:15: note: Calling 'mdev_get_drvdata'
           mdev_state = mdev_get_drvdata(mdev);
                        ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/mdev.h:159:2: note: Returning without writing to 'mdev->driver_data', which participates in a condition later
           return mdev->driver_data;
           ^
   include/linux/mdev.h:159:2: note: Returning pointer, which participates in a condition later
           return mdev->driver_data;
           ^~~~~~~~~~~~~~~~~~~~~~~~
   samples/vfio-mdev/mtty.c:1121:15: note: Returning from 'mdev_get_drvdata'
           mdev_state = mdev_get_drvdata(mdev);
                        ^~~~~~~~~~~~~~~~~~~~~~
   samples/vfio-mdev/mtty.c:1122:6: note: Assuming 'mdev_state' is non-null
           if (!mdev_state)
               ^~~~~~~~~~~
   samples/vfio-mdev/mtty.c:1122:2: note: Taking false branch
           if (!mdev_state)
           ^
   samples/vfio-mdev/mtty.c:1125:2: note: Control jumps to 'case 15214:'  at line 1196
           switch (cmd) {
           ^
   samples/vfio-mdev/mtty.c:1199:7: note: 'data' initialized to a null pointer value
                   u8 *data = NULL, *ptr = NULL;
                       ^~~~
   samples/vfio-mdev/mtty.c:1204:7: note: Calling 'copy_from_user'
                   if (copy_from_user(&hdr, (void __user *)arg, minsz))
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/uaccess.h:191:2: note: Taking true branch
           if (likely(check_copy_size(to, n, false)))
           ^
   include/linux/uaccess.h:193:2: note: Returning value (loaded from 'n'), which participates in a condition later
           return n;
           ^~~~~~~~
   samples/vfio-mdev/mtty.c:1204:7: note: Returning from 'copy_from_user'
                   if (copy_from_user(&hdr, (void __user *)arg, minsz))
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   samples/vfio-mdev/mtty.c:1204:7: note: Assuming the condition is false
                   if (copy_from_user(&hdr, (void __user *)arg, minsz))
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   samples/vfio-mdev/mtty.c:1204:3: note: Taking false branch
                   if (copy_from_user(&hdr, (void __user *)arg, minsz))
                   ^
   samples/vfio-mdev/mtty.c:1211:7: note: Assuming 'ret' is 0
                   if (ret)
                       ^~~
   samples/vfio-mdev/mtty.c:1211:3: note: Taking false branch
                   if (ret)
                   ^
   samples/vfio-mdev/mtty.c:1214:7: note: Assuming 'data_size' is 0
                   if (data_size) {
                       ^~~~~~~~~
   samples/vfio-mdev/mtty.c:1214:3: note: Taking false branch
                   if (data_size) {
                   ^
   samples/vfio-mdev/mtty.c:1222:20: note: Passing null pointer value via 6th parameter 'data'
                                       hdr.count, data);
                                                  ^~~~
   samples/vfio-mdev/mtty.c:1221:9: note: Calling 'mtty_set_irqs'
                   ret = mtty_set_irqs(mdev, hdr.flags, hdr.index, hdr.start,
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   samples/vfio-mdev/mtty.c:906:7: note: 'mdev' is non-null
           if (!mdev)
                ^~~~
   samples/vfio-mdev/mtty.c:906:2: note: Taking false branch
           if (!mdev)
           ^
   samples/vfio-mdev/mtty.c:909:15: note: Calling 'mdev_get_drvdata'
           mdev_state = mdev_get_drvdata(mdev);
                        ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/mdev.h:159:2: note: Returning without writing to 'mdev->driver_data', which participates in a condition later
           return mdev->driver_data;
           ^
   include/linux/mdev.h:159:2: note: Returning pointer, which participates in a condition later
           return mdev->driver_data;
           ^~~~~~~~~~~~~~~~~~~~~~~~
   samples/vfio-mdev/mtty.c:909:15: note: Returning from 'mdev_get_drvdata'
           mdev_state = mdev_get_drvdata(mdev);
                        ^~~~~~~~~~~~~~~~~~~~~~
   samples/vfio-mdev/mtty.c:910:7: note: 'mdev_state' is non-null
           if (!mdev_state)
                ^~~~~~~~~~
   samples/vfio-mdev/mtty.c:910:2: note: Taking false branch
           if (!mdev_state)
           ^
   samples/vfio-mdev/mtty.c:914:2: note: Control jumps to 'case VFIO_PCI_INTX_IRQ_INDEX:'  at line 915
           switch (index) {
           ^
   samples/vfio-mdev/mtty.c:916:3: note: Control jumps to 'case 32:'  at line 920
                   switch (flags & VFIO_IRQ_SET_ACTION_TYPE_MASK) {
                   ^
   samples/vfio-mdev/mtty.c:922:8: note: Assuming the condition is false
                           if (flags & VFIO_IRQ_SET_DATA_NONE) {

vim +930 samples/vfio-mdev/mtty.c

9d1a546c53b4c1c Kirti Wankhede 2016-11-17  898  
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  899  static int mtty_set_irqs(struct mdev_device *mdev, uint32_t flags,
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  900  			 unsigned int index, unsigned int start,
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  901  			 unsigned int count, void *data)
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  902  {
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  903  	int ret = 0;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  904  	struct mdev_state *mdev_state;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  905  
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  906  	if (!mdev)
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  907  		return -EINVAL;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  908  
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  909  	mdev_state = mdev_get_drvdata(mdev);
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  910  	if (!mdev_state)
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  911  		return -EINVAL;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  912  
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  913  	mutex_lock(&mdev_state->ops_lock);
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  914  	switch (index) {
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  915  	case VFIO_PCI_INTX_IRQ_INDEX:
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  916  		switch (flags & VFIO_IRQ_SET_ACTION_TYPE_MASK) {
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  917  		case VFIO_IRQ_SET_ACTION_MASK:
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  918  		case VFIO_IRQ_SET_ACTION_UNMASK:
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  919  			break;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  920  		case VFIO_IRQ_SET_ACTION_TRIGGER:
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  921  		{
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  922  			if (flags & VFIO_IRQ_SET_DATA_NONE) {
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  923  				pr_info("%s: disable INTx\n", __func__);
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  924  				if (mdev_state->intx_evtfd)
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  925  					eventfd_ctx_put(mdev_state->intx_evtfd);
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  926  				break;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  927  			}
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  928  
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  929  			if (flags & VFIO_IRQ_SET_DATA_EVENTFD) {
9d1a546c53b4c1c Kirti Wankhede 2016-11-17 @930  				int fd = *(int *)data;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  931  
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  932  				if (fd > 0) {
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  933  					struct eventfd_ctx *evt;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  934  
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  935  					evt = eventfd_ctx_fdget(fd);
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  936  					if (IS_ERR(evt)) {
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  937  						ret = PTR_ERR(evt);
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  938  						break;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  939  					}
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  940  					mdev_state->intx_evtfd = evt;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  941  					mdev_state->irq_fd = fd;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  942  					mdev_state->irq_index = index;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  943  					break;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  944  				}
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  945  			}
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  946  			break;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  947  		}
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  948  		}
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  949  		break;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  950  	case VFIO_PCI_MSI_IRQ_INDEX:
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  951  		switch (flags & VFIO_IRQ_SET_ACTION_TYPE_MASK) {
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  952  		case VFIO_IRQ_SET_ACTION_MASK:
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  953  		case VFIO_IRQ_SET_ACTION_UNMASK:
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  954  			break;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  955  		case VFIO_IRQ_SET_ACTION_TRIGGER:
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  956  			if (flags & VFIO_IRQ_SET_DATA_NONE) {
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  957  				if (mdev_state->msi_evtfd)
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  958  					eventfd_ctx_put(mdev_state->msi_evtfd);
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  959  				pr_info("%s: disable MSI\n", __func__);
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  960  				mdev_state->irq_index = VFIO_PCI_INTX_IRQ_INDEX;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  961  				break;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  962  			}
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  963  			if (flags & VFIO_IRQ_SET_DATA_EVENTFD) {
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  964  				int fd = *(int *)data;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  965  				struct eventfd_ctx *evt;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  966  
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  967  				if (fd <= 0)
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  968  					break;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  969  
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  970  				if (mdev_state->msi_evtfd)
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  971  					break;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  972  
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  973  				evt = eventfd_ctx_fdget(fd);
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  974  				if (IS_ERR(evt)) {
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  975  					ret = PTR_ERR(evt);
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  976  					break;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  977  				}
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  978  				mdev_state->msi_evtfd = evt;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  979  				mdev_state->irq_fd = fd;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  980  				mdev_state->irq_index = index;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  981  			}
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  982  			break;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  983  	}
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  984  	break;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  985  	case VFIO_PCI_MSIX_IRQ_INDEX:
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  986  		pr_info("%s: MSIX_IRQ\n", __func__);
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  987  		break;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  988  	case VFIO_PCI_ERR_IRQ_INDEX:
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  989  		pr_info("%s: ERR_IRQ\n", __func__);
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  990  		break;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  991  	case VFIO_PCI_REQ_IRQ_INDEX:
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  992  		pr_info("%s: REQ_IRQ\n", __func__);
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  993  		break;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  994  	}
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  995  
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  996  	mutex_unlock(&mdev_state->ops_lock);
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  997  	return ret;
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  998  }
9d1a546c53b4c1c Kirti Wankhede 2016-11-17  999  

:::::: The code at line 930 was first introduced by commit
:::::: 9d1a546c53b4c1c378b0f34de84ddee2c7d4c90c docs: Sample driver to demonstrate how to use Mediated device framework.

:::::: TO: Kirti Wankhede <kwankhede@nvidia.com>
:::::: CC: Alex Williamson <alex.williamson@redhat.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

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

             reply	other threads:[~2021-11-06  7:32 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-06  7:32 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2021-11-07 18:48 samples/vfio-mdev/mtty.c:930:14: warning: Dereference of null pointer [clang-analyzer-core.NullDereference] kernel test robot
2022-01-06 14:24 kernel test robot

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=202111061506.7suosGhE-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild@lists.01.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.