All of lore.kernel.org
 help / color / mirror / Atom feed
* [joro:sev-es-client-v5.7-rc2 39/74] arch/x86/kernel/sev-es.c:77:21: sparse: sparse: incorrect type in argument 1 (different address spaces)
@ 2020-04-25 22:12 kbuild test robot
  0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2020-04-25 22:12 UTC (permalink / raw)
  To: kbuild-all

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

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/joro/linux.git sev-es-client-v5.7-rc2
head:   d145adbc6f48a45af59f5878a14d7ac5af86a707
commit: bd69b0258960348142fb2db49cbf9be6b2ccde9f [39/74] x86/sev-es: Compile early handler code into kernel image
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.1-191-gc51a0382-dirty
        git checkout bd69b0258960348142fb2db49cbf9be6b2ccde9f
        make ARCH=x86_64 allmodconfig
        make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

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


sparse warnings: (new ones prefixed by >>)

>> arch/x86/kernel/sev-es.c:77:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void const volatile [noderef] <asn:1> * @@    got eref] <asn:1> * @@
   arch/x86/kernel/sev-es.c:77:21: sparse:    expected void const volatile [noderef] <asn:1> *
   arch/x86/kernel/sev-es.c:77:21: sparse:    got unsigned char *target
   arch/x86/kernel/sev-es.c:82:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void const volatile [noderef] <asn:1> * @@    got eref] <asn:1> * @@
   arch/x86/kernel/sev-es.c:82:21: sparse:    expected void const volatile [noderef] <asn:1> *
   arch/x86/kernel/sev-es.c:82:21: sparse:    got unsigned char *target
   arch/x86/kernel/sev-es.c:87:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void const volatile [noderef] <asn:1> * @@    got eref] <asn:1> * @@
   arch/x86/kernel/sev-es.c:87:21: sparse:    expected void const volatile [noderef] <asn:1> *
   arch/x86/kernel/sev-es.c:87:21: sparse:    got unsigned char *target
   arch/x86/kernel/sev-es.c:92:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void const volatile [noderef] <asn:1> * @@    got eref] <asn:1> * @@
   arch/x86/kernel/sev-es.c:92:21: sparse:    expected void const volatile [noderef] <asn:1> *
   arch/x86/kernel/sev-es.c:92:21: sparse:    got unsigned char *target
>> arch/x86/kernel/sev-es.c:124:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void const volatile [noderef] <asn:1> * @@    got n:1> * @@
   arch/x86/kernel/sev-es.c:124:21: sparse:    expected void const volatile [noderef] <asn:1> *
   arch/x86/kernel/sev-es.c:124:21: sparse:    got char *src
   arch/x86/kernel/sev-es.c:129:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void const volatile [noderef] <asn:1> * @@    got n:1> * @@
   arch/x86/kernel/sev-es.c:129:21: sparse:    expected void const volatile [noderef] <asn:1> *
   arch/x86/kernel/sev-es.c:129:21: sparse:    got char *src
   arch/x86/kernel/sev-es.c:134:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void const volatile [noderef] <asn:1> * @@    got n:1> * @@
   arch/x86/kernel/sev-es.c:134:21: sparse:    expected void const volatile [noderef] <asn:1> *
   arch/x86/kernel/sev-es.c:134:21: sparse:    got char *src
   arch/x86/kernel/sev-es.c:139:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void const volatile [noderef] <asn:1> * @@    got n:1> * @@
   arch/x86/kernel/sev-es.c:139:21: sparse:    expected void const volatile [noderef] <asn:1> *
   arch/x86/kernel/sev-es.c:139:21: sparse:    got char *src

vim +77 arch/x86/kernel/sev-es.c

    63	
    64	static enum es_result vc_write_mem(struct es_em_ctxt *ctxt,
    65					   char *dst, char *buf, size_t size)
    66	{
    67		unsigned long error_code = X86_PF_PROT | X86_PF_WRITE;
    68		unsigned char *target = dst;
    69		u64 d8;
    70		u32 d4;
    71		u16 d2;
    72		u8  d1;
    73	
    74		switch (size) {
    75		case 1:
    76			memcpy(&d1, buf, 1);
  > 77			if (put_user(d1, target))
    78				goto fault;
    79			break;
    80		case 2:
    81			memcpy(&d2, buf, 2);
  > 82			if (put_user(d2, target))
    83				goto fault;
    84			break;
    85		case 4:
    86			memcpy(&d4, buf, 4);
    87			if (put_user(d4, target))
    88				goto fault;
    89			break;
    90		case 8:
    91			memcpy(&d8, buf, 8);
    92			if (put_user(d8, target))
    93				goto fault;
    94			break;
    95		default:
    96			WARN_ONCE(1, "%s: Invalid size: %zu\n", __func__, size);
    97			return ES_UNSUPPORTED;
    98		}
    99	
   100		return ES_OK;
   101	
   102	fault:
   103		if (user_mode(ctxt->regs))
   104			error_code |= X86_PF_USER;
   105	
   106		ctxt->fi.vector = X86_TRAP_PF;
   107		ctxt->fi.error_code = error_code;
   108		ctxt->fi.cr2 = (unsigned long)dst;
   109	
   110		return ES_EXCEPTION;
   111	}
   112	
   113	static enum es_result vc_read_mem(struct es_em_ctxt *ctxt,
   114					  char *src, char *buf, size_t size)
   115	{
   116		unsigned long error_code = X86_PF_PROT;
   117		u64 d8;
   118		u32 d4;
   119		u16 d2;
   120		u8  d1;
   121	
   122		switch (size) {
   123		case 1:
 > 124			if (get_user(d1, src))
   125				goto fault;
   126			memcpy(buf, &d1, 1);
   127			break;
   128		case 2:
   129			if (get_user(d2, src))
   130				goto fault;
   131			memcpy(buf, &d2, 2);
   132			break;
   133		case 4:
   134			if (get_user(d4, src))
   135				goto fault;
   136			memcpy(buf, &d4, 4);
   137			break;
   138		case 8:
   139			if (get_user(d8, src))
   140				goto fault;
   141			memcpy(buf, &d8, 8);
   142			break;
   143		default:
   144			WARN_ONCE(1, "%s: Invalid size: %zu\n", __func__, size);
   145			return ES_UNSUPPORTED;
   146		}
   147	
   148		return ES_OK;
   149	
   150	fault:
   151		if (user_mode(ctxt->regs))
   152			error_code |= X86_PF_USER;
   153	
   154		ctxt->fi.vector = X86_TRAP_PF;
   155		ctxt->fi.error_code = error_code;
   156		ctxt->fi.cr2 = (unsigned long)src;
   157	
   158		return ES_EXCEPTION;
   159	}
   160	

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-04-25 22:12 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-25 22:12 [joro:sev-es-client-v5.7-rc2 39/74] arch/x86/kernel/sev-es.c:77:21: sparse: sparse: incorrect type in argument 1 (different address spaces) kbuild test robot

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.