Hi Sasha,
[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on linus/master]
[also build test WARNING on v5.7-rc6 next-20200519]
[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/Sasha-Levin/DirectX-on-Linux/202...
base:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
642b151f45dd54809ea00ecd3976a56c1ec9b53d
config: i386-allyesconfig (attached as .config)
reproduce:
# apt-get install sparse
# sparse version: v0.6.1-193-gb8fad4bc-dirty
# save the attached .config to linux build tree
make C=1 ARCH=i386 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
drivers/gpu/dxgkrnl/dxgvmbus.c:1709:51: sparse: got unsigned long long [usertype]
*fence_values
drivers/gpu/dxgkrnl/dxgvmbus.c:1805:65: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got sn:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:1805:65: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:1805:65: sparse: got void **
drivers/gpu/dxgkrnl/dxgvmbus.c:1863:41: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got [noderef] <asn:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:1863:41: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:1863:41: sparse: got unsigned long long *
drivers/gpu/dxgkrnl/dxgvmbus.c:1933:51: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got uvoid const [noderef] <asn:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:1933:51: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:1933:51: sparse: got unsigned int const [usertype]
*allocation_list
drivers/gpu/dxgkrnl/dxgvmbus.c:1938:38: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got uvoid const [noderef] <asn:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:1938:38: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:1938:38: sparse: got unsigned int const [usertype]
*priorities
drivers/gpu/dxgkrnl/dxgvmbus.c:2000:51: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got uvoid const [noderef] <asn:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:2000:51: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:2000:51: sparse: got unsigned int const [usertype]
*allocation_list
drivers/gpu/dxgkrnl/dxgvmbus.c:2016:69: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got const [noderef] <asn:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:2016:69: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:2016:69: sparse: got unsigned char [usertype] *
drivers/gpu/dxgkrnl/dxgvmbus.c:2097:68: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got const [noderef] <asn:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:2097:68: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:2097:68: sparse: got unsigned int [usertype]
*resources
drivers/gpu/dxgkrnl/dxgvmbus.c:2101:46: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got uvoid const [noderef] <asn:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:2101:46: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:2101:46: sparse: got unsigned int const [usertype]
*allocations
drivers/gpu/dxgkrnl/dxgvmbus.c:2144:68: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got const [noderef] <asn:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:2144:68: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:2144:68: sparse: got unsigned int [usertype]
*resources
drivers/gpu/dxgkrnl/dxgvmbus.c:2148:46: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got const [noderef] <asn:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:2148:46: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:2148:46: sparse: got unsigned int [usertype]
*allocations
drivers/gpu/dxgkrnl/dxgvmbus.c:2167:33: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got [noderef] <asn:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:2167:33: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:2167:33: sparse: got unsigned long long *
drivers/gpu/dxgkrnl/dxgvmbus.c:2173:55: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got unsigned invoid const [noderef] <asn:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:2173:55: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:2173:55: sparse: got unsigned int enum
d3dddi_reclaim_result *
drivers/gpu/dxgkrnl/dxgvmbus.c:2250:46: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got n:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:2250:46: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:2250:46: sparse: got void *priv_drv_data
drivers/gpu/dxgkrnl/dxgvmbus.c:2283:49: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got ref] <asn:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:2283:49: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:2283:49: sparse: got unsigned int *
drivers/gpu/dxgkrnl/dxgvmbus.c:2286:34: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got ref] <asn:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:2286:34: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:2286:34: sparse: got unsigned int *
drivers/gpu/dxgkrnl/dxgvmbus.c:2290:31: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got sn:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:2290:31: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:2290:31: sparse: got void **
drivers/gpu/dxgkrnl/dxgvmbus.c:2294:31: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got [noderef] <asn:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:2294:31: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:2294:31: sparse: got unsigned long long *
drivers/gpu/dxgkrnl/dxgvmbus.c:2298:41: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got eref] <asn:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:2298:41: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:2298:41: sparse: got unsigned char *
drivers/gpu/dxgkrnl/dxgvmbus.c:2352:38: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got n:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:2352:38: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:2352:38: sparse: got void *private_data
drivers/gpu/dxgkrnl/dxgvmbus.c:2384:52: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got eref] <asn:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:2384:52: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:2384:52: sparse: got unsigned char *
drivers/gpu/dxgkrnl/dxgvmbus.c:2411:59: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got const [noderef] <asn:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:2411:59: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:2411:59: sparse: got unsigned int [usertype]
*written_primaries
drivers/gpu/dxgkrnl/dxgvmbus.c:2418:46: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got n:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:2418:46: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:2418:46: sparse: got void *priv_drv_data
drivers/gpu/dxgkrnl/dxgvmbus.c:2458:54: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got const [noderef] <asn:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:2458:54: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:2458:54: sparse: got struct dxgk_gpuclockdata *
drivers/gpu/dxgkrnl/dxgvmbus.c:2523:59: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got const [noderef] <asn:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:2523:59: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:2523:59: sparse: got unsigned int [usertype]
*allocations
drivers/gpu/dxgkrnl/dxgvmbus.c:2543:63: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got struct dxgkvmb_command_quevoid const [noderef] <asn:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:2543:63: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:2543:63: sparse: got struct
dxgkvmb_command_queryallocationresidency_return *
drivers/gpu/dxgkrnl/dxgvmbus.c:2587:46: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got n:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:2587:46: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:2587:46: sparse: got void *priv_drv_data
drivers/gpu/dxgkrnl/dxgvmbus.c:2600:40: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got eref] <asn:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:2600:40: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:2600:40: sparse: got unsigned char *
drivers/gpu/dxgkrnl/dxgvmbus.c:2632:50: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got [noderef] <asn:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:2632:50: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:2632:50: sparse: got unsigned long long *
drivers/gpu/dxgkrnl/dxgvmbus.c:2636:57: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got [noderef] <asn:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:2636:57: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:2636:57: sparse: got unsigned long long *
drivers/gpu/dxgkrnl/dxgvmbus.c:2641:33: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got [noderef] <asn:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:2641:33: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:2641:33: sparse: got unsigned long long *
drivers/gpu/dxgkrnl/dxgvmbus.c:2646:33: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got [noderef] <asn:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:2646:33: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:2646:33: sparse: got unsigned long long *
drivers/gpu/dxgkrnl/dxgvmbus.c:2677:41: sparse: sparse: incorrect type in argument 2
(different address spaces) @@ expected void const [noderef] <asn:1> *from @@
got void const [noderef] <asn:1> *from @@
drivers/gpu/dxgkrnl/dxgvmbus.c:2677:41: sparse: expected void const [noderef]
<asn:1> *from
drivers/gpu/dxgkrnl/dxgvmbus.c:2677:41: sparse: got struct d3dkmt_getdevicestate *
drivers/gpu/dxgkrnl/dxgvmbus.c:962:41: sparse: sparse: dereference of noderef
expression
drivers/gpu/dxgkrnl/dxgvmbus.c:1009:33: sparse: sparse: dereference of noderef
expression
drivers/gpu/dxgkrnl/dxgvmbus.c:1180:63: sparse: sparse: dereference of noderef
expression
> drivers/gpu/dxgkrnl/dxgvmbus.c:1632:57: sparse: sparse: non
size-preserving pointer to integer cast
drivers/gpu/dxgkrnl/dxgvmbus.c:1805:49:
sparse: sparse: dereference of noderef expression
drivers/gpu/dxgkrnl/dxgvmbus.c:1862:41: sparse: sparse: dereference of noderef
expression
drivers/gpu/dxgkrnl/dxgvmbus.c:2166:32: sparse: sparse: dereference of noderef
expression
drivers/gpu/dxgkrnl/dxgvmbus.c:2283:33: sparse: sparse: dereference of noderef
expression
drivers/gpu/dxgkrnl/dxgvmbus.c:2285:34: sparse: sparse: dereference of noderef
expression
drivers/gpu/dxgkrnl/dxgvmbus.c:2289:31: sparse: sparse: dereference of noderef
expression
drivers/gpu/dxgkrnl/dxgvmbus.c:2293:31: sparse: sparse: dereference of noderef
expression
drivers/gpu/dxgkrnl/dxgvmbus.c:2458:33: sparse: sparse: dereference of noderef
expression
drivers/gpu/dxgkrnl/dxgvmbus.c:2632:33: sparse: sparse: dereference of noderef
expression
drivers/gpu/dxgkrnl/dxgvmbus.c:2636:33: sparse: sparse: dereference of noderef
expression
drivers/gpu/dxgkrnl/dxgvmbus.c:2640:33: sparse: sparse: dereference of noderef
expression
drivers/gpu/dxgkrnl/dxgvmbus.c:2645:33: sparse: sparse: dereference of noderef
expression
drivers/gpu/dxgkrnl/dxgvmbus.c:2677:32: sparse: sparse: dereference of noderef
expression
vim +1632 drivers/gpu/dxgkrnl/dxgvmbus.c
9cc562c3695b5b Sasha Levin 2020-05-19 1594
9cc562c3695b5b Sasha Levin 2020-05-19 1595 int dxgvmb_send_signal_sync_object(struct
dxgprocess *process,
9cc562c3695b5b Sasha Levin 2020-05-19 1596 struct dxgvmbuschannel *channel,
9cc562c3695b5b Sasha Levin 2020-05-19 1597 struct d3dddicb_signalflags flags,
9cc562c3695b5b Sasha Levin 2020-05-19 1598 uint64_t legacy_fence_value,
9cc562c3695b5b Sasha Levin 2020-05-19 1599 d3dkmt_handle context,
9cc562c3695b5b Sasha Levin 2020-05-19 1600 uint object_count,
9cc562c3695b5b Sasha Levin 2020-05-19 1601 d3dkmt_handle __user *objects,
9cc562c3695b5b Sasha Levin 2020-05-19 1602 uint context_count,
9cc562c3695b5b Sasha Levin 2020-05-19 1603 d3dkmt_handle __user *contexts,
9cc562c3695b5b Sasha Levin 2020-05-19 1604 uint fence_count,
9cc562c3695b5b Sasha Levin 2020-05-19 1605 uint64_t __user *fences,
9cc562c3695b5b Sasha Levin 2020-05-19 1606 struct eventfd_ctx *cpu_event_handle,
9cc562c3695b5b Sasha Levin 2020-05-19 1607 d3dkmt_handle device)
9cc562c3695b5b Sasha Levin 2020-05-19 1608 {
9cc562c3695b5b Sasha Levin 2020-05-19 1609 int ret = 0;
9cc562c3695b5b Sasha Levin 2020-05-19 1610 struct dxgkvmb_command_signalsyncobject
*command = NULL;
9cc562c3695b5b Sasha Levin 2020-05-19 1611 uint object_size = object_count *
sizeof(d3dkmt_handle);
9cc562c3695b5b Sasha Levin 2020-05-19 1612 uint context_size = context_count *
sizeof(d3dkmt_handle);
9cc562c3695b5b Sasha Levin 2020-05-19 1613 uint fence_size = fences ? fence_count *
sizeof(uint64_t) : 0;
9cc562c3695b5b Sasha Levin 2020-05-19 1614 uint8_t *current_pos;
9cc562c3695b5b Sasha Levin 2020-05-19 1615 uint cmd_size = sizeof(struct
dxgkvmb_command_signalsyncobject) +
9cc562c3695b5b Sasha Levin 2020-05-19 1616 object_size + context_size +
fence_size;
9cc562c3695b5b Sasha Levin 2020-05-19 1617
9cc562c3695b5b Sasha Levin 2020-05-19 1618 if (context)
9cc562c3695b5b Sasha Levin 2020-05-19 1619 cmd_size += sizeof(d3dkmt_handle);
9cc562c3695b5b Sasha Levin 2020-05-19 1620
9cc562c3695b5b Sasha Levin 2020-05-19 1621 command = dxgmem_alloc(process,
DXGMEM_VMBUS, cmd_size);
9cc562c3695b5b Sasha Levin 2020-05-19 1622 if (command == NULL) {
9cc562c3695b5b Sasha Levin 2020-05-19 1623 ret = STATUS_NO_MEMORY;
9cc562c3695b5b Sasha Levin 2020-05-19 1624 goto cleanup;
9cc562c3695b5b Sasha Levin 2020-05-19 1625 }
9cc562c3695b5b Sasha Levin 2020-05-19 1626
9cc562c3695b5b Sasha Levin 2020-05-19 1627
command_vgpu_to_host_init2(&command->hdr,
9cc562c3695b5b Sasha Levin 2020-05-19 1628 DXGK_VMBCOMMAND_SIGNALSYNCOBJECT,
9cc562c3695b5b Sasha Levin 2020-05-19 1629 process->host_handle);
9cc562c3695b5b Sasha Levin 2020-05-19 1630
9cc562c3695b5b Sasha Levin 2020-05-19 1631 if (flags.enqueue_cpu_event)
9cc562c3695b5b Sasha Levin 2020-05-19 @1632 command->cpu_event_handle = (winhandle)
cpu_event_handle;
9cc562c3695b5b Sasha Levin 2020-05-19 1633 else
9cc562c3695b5b Sasha Levin 2020-05-19 1634 command->device = device;
9cc562c3695b5b Sasha Levin 2020-05-19 1635 command->flags = flags;
9cc562c3695b5b Sasha Levin 2020-05-19 1636 command->fence_value =
legacy_fence_value;
9cc562c3695b5b Sasha Levin 2020-05-19 1637 command->object_count = object_count;
9cc562c3695b5b Sasha Levin 2020-05-19 1638 command->context_count = context_count;
9cc562c3695b5b Sasha Levin 2020-05-19 1639 current_pos = (uint8_t *) &command[1];
9cc562c3695b5b Sasha Levin 2020-05-19 1640 ret = dxg_copy_from_user(current_pos,
objects, object_size);
9cc562c3695b5b Sasha Levin 2020-05-19 1641 if (ret) {
9cc562c3695b5b Sasha Levin 2020-05-19 1642 pr_err("Failed to read objects %p
%d",
9cc562c3695b5b Sasha Levin 2020-05-19 1643 objects, object_size);
9cc562c3695b5b Sasha Levin 2020-05-19 1644 goto cleanup;
9cc562c3695b5b Sasha Levin 2020-05-19 1645 }
9cc562c3695b5b Sasha Levin 2020-05-19 1646 current_pos += object_size;
9cc562c3695b5b Sasha Levin 2020-05-19 1647 if (context) {
9cc562c3695b5b Sasha Levin 2020-05-19 1648 command->context_count++;
9cc562c3695b5b Sasha Levin 2020-05-19 1649 *(d3dkmt_handle *) current_pos = context;
9cc562c3695b5b Sasha Levin 2020-05-19 1650 current_pos += sizeof(d3dkmt_handle);
9cc562c3695b5b Sasha Levin 2020-05-19 1651 }
9cc562c3695b5b Sasha Levin 2020-05-19 1652 if (context_size) {
9cc562c3695b5b Sasha Levin 2020-05-19 1653 ret = dxg_copy_from_user(current_pos,
contexts, context_size);
9cc562c3695b5b Sasha Levin 2020-05-19 1654 if (ret) {
9cc562c3695b5b Sasha Levin 2020-05-19 1655 pr_err("Failed to read contexts %p
%d",
9cc562c3695b5b Sasha Levin 2020-05-19 1656 contexts, context_size);
9cc562c3695b5b Sasha Levin 2020-05-19 1657 goto cleanup;
9cc562c3695b5b Sasha Levin 2020-05-19 1658 }
9cc562c3695b5b Sasha Levin 2020-05-19 1659 current_pos += context_size;
9cc562c3695b5b Sasha Levin 2020-05-19 1660 }
9cc562c3695b5b Sasha Levin 2020-05-19 1661 if (fence_size) {
9cc562c3695b5b Sasha Levin 2020-05-19 1662 ret = dxg_copy_from_user(current_pos,
fences, fence_size);
9cc562c3695b5b Sasha Levin 2020-05-19 1663 if (ret) {
9cc562c3695b5b Sasha Levin 2020-05-19 1664 pr_err("Failed to read fences %p
%d",
9cc562c3695b5b Sasha Levin 2020-05-19 1665 fences, fence_size);
9cc562c3695b5b Sasha Levin 2020-05-19 1666 goto cleanup;
9cc562c3695b5b Sasha Levin 2020-05-19 1667 }
9cc562c3695b5b Sasha Levin 2020-05-19 1668 }
9cc562c3695b5b Sasha Levin 2020-05-19 1669
9cc562c3695b5b Sasha Levin 2020-05-19 1670 ret = dxgvmb_send_sync_msg_ntstatus(channel,
command, cmd_size);
9cc562c3695b5b Sasha Levin 2020-05-19 1671
9cc562c3695b5b Sasha Levin 2020-05-19 1672 cleanup:
9cc562c3695b5b Sasha Levin 2020-05-19 1673 if (command)
9cc562c3695b5b Sasha Levin 2020-05-19 1674 dxgmem_free(process, DXGMEM_VMBUS,
command);
9cc562c3695b5b Sasha Levin 2020-05-19 1675 TRACE_FUNC_EXIT_ERR(__func__, ret);
9cc562c3695b5b Sasha Levin 2020-05-19 1676 return ret;
9cc562c3695b5b Sasha Levin 2020-05-19 1677 }
9cc562c3695b5b Sasha Levin 2020-05-19 1678
:::::: The code at line 1632 was first introduced by commit
:::::: 9cc562c3695b5b44c0c931c76bdc24e8c4f33587 gpu: dxgkrnl: core code
:::::: TO: Sasha Levin <sashal(a)kernel.org>
:::::: CC: 0day robot <lkp(a)intel.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org