From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 009ECEE4996 for ; Tue, 22 Aug 2023 02:51:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 791D9940025; Mon, 21 Aug 2023 22:51:45 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 740C594000D; Mon, 21 Aug 2023 22:51:45 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5E166940025; Mon, 21 Aug 2023 22:51:45 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 46F2094000D for ; Mon, 21 Aug 2023 22:51:45 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 0BA8080196 for ; Tue, 22 Aug 2023 02:51:45 +0000 (UTC) X-FDA: 81150215370.09.06F9356 Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.20]) by imf27.hostedemail.com (Postfix) with ESMTP id CEE1540003 for ; Tue, 22 Aug 2023 02:51:40 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=kn7fBlD9; spf=pass (imf27.hostedemail.com: domain of lkp@intel.com designates 134.134.136.20 as permitted sender) smtp.mailfrom=lkp@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1692672701; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding:in-reply-to: references:dkim-signature; bh=0qhuPOVNDMmAToRdE6DPnu5qu1iSPMOXUSptEkPr2i0=; b=PWiB0kSk89uUd3GvIK0NK0KSWKkAdWudHKr2DrXuxYg1wuEjSLN+oQ2isTxiPIt128EyC2 /mkhUzSkFjKab2nDOg80vti8t3FUVIMiyzglkALMqh7lvqG+Vwh3ory0eCG9f3ygkTskeH xv3x6tbShv9Kfru37CKGINGd1jqyS4I= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=kn7fBlD9; spf=pass (imf27.hostedemail.com: domain of lkp@intel.com designates 134.134.136.20 as permitted sender) smtp.mailfrom=lkp@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1692672701; a=rsa-sha256; cv=none; b=iY/lKI5oKmEiYAj/xS7DtG7H0wmJrT88PHLxaSwA8PJ2Br3cNQ9Ae8VTOr8rNqw/Yr37vc 31tDptrdJc7QA+dKju+Km0xCfW2i5QpEHJ3eyZtW0g+uYBtVEc/Bkwll23fN4w2FSdKVcK 80psS0EWKjFzNVc79UlPKFdyaHJQfOk= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1692672700; x=1724208700; h=date:from:to:cc:subject:message-id:mime-version; bh=jGnO8w/y8E4+6b+Y6WhdEOIQiCCyO9d3q81LCJ3bC9I=; b=kn7fBlD9FdSfDKgG5UGS9NGTePMISa7Q9hUwxZ4UuB2CEXMxE0OVCjQW nr7qJMsdIDipa7YgPqvZfgS/wEtPUdzHCjW8TBQZbGmwdW1kFJXaAp8yB b+5L1as92tQOVf/cUN/zf7UNFrpW/BWZLGCDAo4jR7v7zHCQvI6m7sdFq DCKhd7jph1onhNyD/rtzBKVq/RGaSYemhCMsXvWNg7EQo/ySeBOXYF863 8IjVECktfo3q6WwiKrA9mYMcybdGGklToYS41i2QGF6eDbu5mBvgEgYS7 C3CE8nu84m34l3Srw3iNdMS7Qd92ONn/zpuIfB0H5KI0gvWAxmcynl211 g==; X-IronPort-AV: E=McAfee;i="6600,9927,10809"; a="363928905" X-IronPort-AV: E=Sophos;i="6.01,191,1684825200"; d="scan'208";a="363928905" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Aug 2023 19:51:38 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10809"; a="685878544" X-IronPort-AV: E=Sophos;i="6.01,191,1684825200"; d="scan'208";a="685878544" Received: from lkp-server02.sh.intel.com (HELO 6809aa828f2a) ([10.239.97.151]) by orsmga003.jf.intel.com with ESMTP; 21 Aug 2023 19:51:34 -0700 Received: from kbuild by 6809aa828f2a with local (Exim 4.96) (envelope-from ) id 1qYHUB-0001G4-1C; Tue, 22 Aug 2023 02:51:30 +0000 Date: Tue, 22 Aug 2023 10:50:12 +0800 From: kernel test robot To: Alexander Potapenko Cc: oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org, Andrew Morton , Linux Memory Management List , Marco Elver Subject: drivers/firmware/efi/test/efi_test.c:187:13: sparse: sparse: incorrect type in argument 1 (different address spaces) Message-ID: <202308221059.oo45olQg-lkp@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Rspamd-Queue-Id: CEE1540003 X-Rspam-User: X-Stat-Signature: k1tugkk7zqaj8kdymm9mqbjgshzjw4q5 X-Rspamd-Server: rspam01 X-HE-Tag: 1692672700-232338 X-HE-Meta: U2FsdGVkX18S/Hnrw7oucnzHZLlyHEG1XT9oJA76AZAlykyk+A94p9i/lyK/iy5N31EF7pCwXfC/dfR6tlZgaewN02nP04Aau6xWK0WrierM0xJvmg2xXuJ6toj64D2pHlSb/42FnDxasFwZYQHNcmdUhtZGSePXgoDmlEPRP25sOwq53OqU2A4jAxxp6RLmHhVEpubzKz1alNUzWymUbsdcS484S30M2YqLjMIDCTOnIaKZJtXOGJz/DGxxDw9hqYSvee2rLjSN3K/Zu7KdzZrR4/3gGNksaYMGcd2KmFhpQgA6c+kypP2ha7EeHICS/3KXqXEBFina5SiDadHYXMijermN+TRPAnuXZDs9k96suOW9+WL+D6B1FXi7KJlblFWe/9GxhFZlyQwjjjfdggA8V3P6zF9g0EcGDfBDU7odIryToWt1QaowaQ/uUFteWsyvHg1XGXpEsKfEqaPshpjecn5EUdLOkM9hV2lF+NTfiJ5JCgXq1ZANIZlA5luheX31eEqWpdCrCDn/RMisdWUDTiyd8or4zilZ/e6cf1l17jnRKXZkOjAejHtUsoEmAsXlZdKeMT/4SPti5LPQk+qvJmtw1tBOq79R0RkwemW9fTy3pQWfFO4e4F509PLKi+ukfV4nO5Wxhiqb2adJwAZZIyUh6JMft/njhHdUMgNwPVDAWX2GvdwRUgaxgzouEpDJs55sfg1Fl8p4T54zorEKrjZj3PmUBuT6h3J07urP/1rT1QbDJPTipCkKcgsFDshUFMLaE6KGE3Y2WHdMHmC52k+dq3tNTjPKhYtB99tX7rLZLmYmh6c37Hl9jNVwa83gYlfqVqT701YPgTp/gtpwih30JaSFROs1jXdqsibVjr5DTnTL2+KxB2T9egE0JbpFI5PP6I1y8cBBG0u2p/L9jfo8nrpVkHFLzjueKFOa0r2ny2v7kkJ+sUDqnIOF+i7HqlmAMyaBGBfkNBz XHAwQs0x 8K/kW5FbGieHvZjO3GiN1XvRO+wq/JTxw90MuuCsiBM3Poqa4LP4ze/yVKqwOl5lmF4z8z34rRIDlW8/caBYzO/s6C5XYTuyRYCppnPfj0lxTtQ14Od8XZEWIP3Hr44xyAIqiP2INNWxblakQu0aI+BmDHMue47h+A+k8xKRJNIXIEHhk/sCR2eH9cePATC+NNQT8X5DIyQSVgHWQ6U7XFRKa/gHSIoDvnA9znBMzdsULfgf7bp8RRkbIOJu+OQurhtpRaAePQ6tW5abDfuLOTwau1W9Yqcb46WSaADFV2uqsU8XEGDBcs8YRMGt0smRbp8ljDJaDR28It4Ne2+MqbpJV4MawQ3kcxm42EV5shte52VwzubDe6KYkxr9F0oSAHPNbL/xbiWfWhLDd6PKswuNuKMqYFgNDxOEr2gpz7BXnU6E+003ULRXl/yhW+wTiLAdE1DJHn/3O+YqJefzg+wmJA1bnLXEMokFAvlSwHsJH1Y9ZqpE7IIgFD40gKbRgMn/qUux6l/w2FLaggFafDyYeQg== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: f7757129e3dea336c407551c98f50057c22bb266 commit: 75cf0290271bf6dae9dee982aef15242dadf97e4 instrumented.h: add KMSAN support date: 11 months ago config: i386-randconfig-063-20230822 (https://download.01.org/0day-ci/archive/20230822/202308221059.oo45olQg-lkp@intel.com/config) compiler: gcc-12 (Debian 12.2.0-14) 12.2.0 reproduce: (https://download.01.org/0day-ci/archive/20230822/202308221059.oo45olQg-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot | Closes: https://lore.kernel.org/oe-kbuild-all/202308221059.oo45olQg-lkp@intel.com/ sparse warnings: (new ones prefixed by >>) drivers/firmware/efi/test/efi_test.c:157:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long *[addressable] data_size @@ drivers/firmware/efi/test/efi_test.c:157:13: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:157:13: sparse: got unsigned long *[addressable] data_size drivers/firmware/efi/test/efi_test.c:160:61: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got struct guid_t [usertype] *[addressable] vendor_guid @@ drivers/firmware/efi/test/efi_test.c:160:61: sparse: expected void const [noderef] __user *from drivers/firmware/efi/test/efi_test.c:160:61: sparse: got struct guid_t [usertype] *[addressable] vendor_guid drivers/firmware/efi/test/efi_test.c:167:60: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected unsigned short [noderef] [usertype] __user *src @@ got unsigned short [usertype] *[addressable] variable_name @@ drivers/firmware/efi/test/efi_test.c:167:60: sparse: expected unsigned short [noderef] [usertype] __user *src drivers/firmware/efi/test/efi_test.c:167:60: sparse: got unsigned short [usertype] *[addressable] variable_name drivers/firmware/efi/test/efi_test.c:187:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:187:13: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:187:13: sparse: got unsigned long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:187:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __user *__ptr_pu @@ got unsigned long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:187:13: sparse: expected void [noderef] __user *__ptr_pu drivers/firmware/efi/test/efi_test.c:187:13: sparse: got unsigned long [usertype] *__ptr >> drivers/firmware/efi/test/efi_test.c:187:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got unsigned long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:187:13: sparse: expected void [noderef] __user *to drivers/firmware/efi/test/efi_test.c:187:13: sparse: got unsigned long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:194:35: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long *__ptr @@ drivers/firmware/efi/test/efi_test.c:194:35: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:194:35: sparse: got unsigned long *__ptr drivers/firmware/efi/test/efi_test.c:194:35: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __user *__ptr_pu @@ got unsigned long *__ptr @@ drivers/firmware/efi/test/efi_test.c:194:35: sparse: expected void [noderef] __user *__ptr_pu drivers/firmware/efi/test/efi_test.c:194:35: sparse: got unsigned long *__ptr >> drivers/firmware/efi/test/efi_test.c:194:35: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got unsigned long *__ptr @@ drivers/firmware/efi/test/efi_test.c:194:35: sparse: expected void [noderef] __user *to drivers/firmware/efi/test/efi_test.c:194:35: sparse: got unsigned long *__ptr drivers/firmware/efi/test/efi_test.c:209:45: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got void *[addressable] data @@ drivers/firmware/efi/test/efi_test.c:209:45: sparse: expected void [noderef] __user *to drivers/firmware/efi/test/efi_test.c:209:45: sparse: got void *[addressable] data drivers/firmware/efi/test/efi_test.c:215:19: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned int [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:215:19: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:215:19: sparse: got unsigned int [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:215:19: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __user *__ptr_pu @@ got unsigned int [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:215:19: sparse: expected void [noderef] __user *__ptr_pu drivers/firmware/efi/test/efi_test.c:215:19: sparse: got unsigned int [usertype] *__ptr >> drivers/firmware/efi/test/efi_test.c:215:19: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got unsigned int [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:215:19: sparse: expected void [noderef] __user *to drivers/firmware/efi/test/efi_test.c:215:19: sparse: got unsigned int [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:220:19: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long *__ptr @@ drivers/firmware/efi/test/efi_test.c:220:19: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:220:19: sparse: got unsigned long *__ptr drivers/firmware/efi/test/efi_test.c:220:19: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __user *__ptr_pu @@ got unsigned long *__ptr @@ drivers/firmware/efi/test/efi_test.c:220:19: sparse: expected void [noderef] __user *__ptr_pu drivers/firmware/efi/test/efi_test.c:220:19: sparse: got unsigned long *__ptr drivers/firmware/efi/test/efi_test.c:220:19: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got unsigned long *__ptr @@ drivers/firmware/efi/test/efi_test.c:220:19: sparse: expected void [noderef] __user *to drivers/firmware/efi/test/efi_test.c:220:19: sparse: got unsigned long *__ptr drivers/firmware/efi/test/efi_test.c:243:53: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got struct guid_t [usertype] *[addressable] vendor_guid @@ drivers/firmware/efi/test/efi_test.c:243:53: sparse: expected void const [noderef] __user *from drivers/firmware/efi/test/efi_test.c:243:53: sparse: got struct guid_t [usertype] *[addressable] vendor_guid drivers/firmware/efi/test/efi_test.c:248:60: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected unsigned short [noderef] [usertype] __user *src @@ got unsigned short [usertype] *[addressable] variable_name @@ drivers/firmware/efi/test/efi_test.c:248:60: sparse: expected unsigned short [noderef] [usertype] __user *src drivers/firmware/efi/test/efi_test.c:248:60: sparse: got unsigned short [usertype] *[addressable] variable_name drivers/firmware/efi/test/efi_test.c:253:39: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __user * @@ got void *[addressable] data @@ drivers/firmware/efi/test/efi_test.c:253:39: sparse: expected void const [noderef] __user * drivers/firmware/efi/test/efi_test.c:253:39: sparse: got void *[addressable] data drivers/firmware/efi/test/efi_test.c:263:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:263:13: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:263:13: sparse: got unsigned long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:263:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __user *__ptr_pu @@ got unsigned long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:263:13: sparse: expected void [noderef] __user *__ptr_pu drivers/firmware/efi/test/efi_test.c:263:13: sparse: got unsigned long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:263:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got unsigned long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:263:13: sparse: expected void [noderef] __user *to drivers/firmware/efi/test/efi_test.c:263:13: sparse: got unsigned long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:292:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:292:13: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:292:13: sparse: got unsigned long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:292:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __user *__ptr_pu @@ got unsigned long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:292:13: sparse: expected void [noderef] __user *__ptr_pu drivers/firmware/efi/test/efi_test.c:292:13: sparse: got unsigned long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:292:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got unsigned long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:292:13: sparse: expected void [noderef] __user *to drivers/firmware/efi/test/efi_test.c:292:13: sparse: got unsigned long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:301:27: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct efi_time_cap_t [noderef] [usertype] __user *cap_local @@ got struct efi_time_cap_t [usertype] * @@ drivers/firmware/efi/test/efi_test.c:301:27: sparse: expected struct efi_time_cap_t [noderef] [usertype] __user *cap_local drivers/firmware/efi/test/efi_test.c:301:27: sparse: got struct efi_time_cap_t [usertype] * drivers/firmware/efi/test/efi_test.c:308:41: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got struct efi_time_t [usertype] *[addressable] time @@ drivers/firmware/efi/test/efi_test.c:308:41: sparse: expected void [noderef] __user *to drivers/firmware/efi/test/efi_test.c:308:41: sparse: got struct efi_time_t [usertype] *[addressable] time drivers/firmware/efi/test/efi_test.c:325:46: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got struct efi_time_t [usertype] *[addressable] time @@ drivers/firmware/efi/test/efi_test.c:325:46: sparse: expected void const [noderef] __user *from drivers/firmware/efi/test/efi_test.c:325:46: sparse: got struct efi_time_t [usertype] *[addressable] time drivers/firmware/efi/test/efi_test.c:330:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:330:13: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:330:13: sparse: got unsigned long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:330:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __user *__ptr_pu @@ got unsigned long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:330:13: sparse: expected void [noderef] __user *__ptr_pu drivers/firmware/efi/test/efi_test.c:330:13: sparse: got unsigned long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:330:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got unsigned long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:330:13: sparse: expected void [noderef] __user *to drivers/firmware/efi/test/efi_test.c:330:13: sparse: got unsigned long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:354:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:354:13: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:354:13: sparse: got unsigned long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:354:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __user *__ptr_pu @@ got unsigned long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:354:13: sparse: expected void [noderef] __user *__ptr_pu drivers/firmware/efi/test/efi_test.c:354:13: sparse: got unsigned long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:354:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got unsigned long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:354:13: sparse: expected void [noderef] __user *to drivers/firmware/efi/test/efi_test.c:354:13: sparse: got unsigned long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:360:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned char [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:360:38: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:360:38: sparse: got unsigned char [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:360:38: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __user *__ptr_pu @@ got unsigned char [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:360:38: sparse: expected void [noderef] __user *__ptr_pu drivers/firmware/efi/test/efi_test.c:360:38: sparse: got unsigned char [usertype] *__ptr >> drivers/firmware/efi/test/efi_test.c:360:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got unsigned char [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:360:38: sparse: expected void [noderef] __user *to drivers/firmware/efi/test/efi_test.c:360:38: sparse: got unsigned char [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:365:47: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got struct efi_time_t [usertype] *[addressable] time @@ drivers/firmware/efi/test/efi_test.c:365:47: sparse: expected void [noderef] __user *to drivers/firmware/efi/test/efi_test.c:365:47: sparse: got struct efi_time_t [usertype] *[addressable] time drivers/firmware/efi/test/efi_test.c:389:60: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got struct efi_time_t [usertype] *[addressable] time @@ drivers/firmware/efi/test/efi_test.c:389:60: sparse: expected void const [noderef] __user *from drivers/firmware/efi/test/efi_test.c:389:60: sparse: got struct efi_time_t [usertype] *[addressable] time drivers/firmware/efi/test/efi_test.c:397:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:397:13: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:397:13: sparse: got unsigned long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:397:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __user *__ptr_pu @@ got unsigned long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:397:13: sparse: expected void [noderef] __user *__ptr_pu drivers/firmware/efi/test/efi_test.c:397:13: sparse: got unsigned long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:397:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got unsigned long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:397:13: sparse: expected void [noderef] __user *to drivers/firmware/efi/test/efi_test.c:397:13: sparse: got unsigned long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:421:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long *[addressable] variable_name_size @@ drivers/firmware/efi/test/efi_test.c:421:21: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:421:21: sparse: got unsigned long *[addressable] variable_name_size drivers/firmware/efi/test/efi_test.c:429:52: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got struct guid_t [usertype] *[addressable] vendor_guid @@ drivers/firmware/efi/test/efi_test.c:429:52: sparse: expected void const [noderef] __user *from drivers/firmware/efi/test/efi_test.c:429:52: sparse: got struct guid_t [usertype] *[addressable] vendor_guid drivers/firmware/efi/test/efi_test.c:439:52: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected unsigned short [noderef] [usertype] __user *src @@ got unsigned short [usertype] *[addressable] variable_name @@ drivers/firmware/efi/test/efi_test.c:439:52: sparse: expected unsigned short [noderef] [usertype] __user *src drivers/firmware/efi/test/efi_test.c:439:52: sparse: got unsigned short [usertype] *[addressable] variable_name drivers/firmware/efi/test/efi_test.c:452:52: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected unsigned short [noderef] [usertype] __user *src @@ got unsigned short [usertype] *[addressable] variable_name @@ drivers/firmware/efi/test/efi_test.c:452:52: sparse: expected unsigned short [noderef] [usertype] __user *src drivers/firmware/efi/test/efi_test.c:452:52: sparse: got unsigned short [usertype] *[addressable] variable_name drivers/firmware/efi/test/efi_test.c:461:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:461:13: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:461:13: sparse: got unsigned long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:461:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __user *__ptr_pu @@ got unsigned long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:461:13: sparse: expected void [noderef] __user *__ptr_pu drivers/firmware/efi/test/efi_test.c:461:13: sparse: got unsigned long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:461:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got unsigned long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:461:13: sparse: expected void [noderef] __user *to drivers/firmware/efi/test/efi_test.c:461:13: sparse: got unsigned long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:468:35: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long *__ptr @@ drivers/firmware/efi/test/efi_test.c:468:35: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:468:35: sparse: got unsigned long *__ptr drivers/firmware/efi/test/efi_test.c:468:35: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __user *__ptr_pu @@ got unsigned long *__ptr @@ drivers/firmware/efi/test/efi_test.c:468:35: sparse: expected void [noderef] __user *__ptr_pu drivers/firmware/efi/test/efi_test.c:468:35: sparse: got unsigned long *__ptr drivers/firmware/efi/test/efi_test.c:468:35: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got unsigned long *__ptr @@ drivers/firmware/efi/test/efi_test.c:468:35: sparse: expected void [noderef] __user *to drivers/firmware/efi/test/efi_test.c:468:35: sparse: got unsigned long *__ptr drivers/firmware/efi/test/efi_test.c:479:62: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected unsigned short [noderef] [usertype] __user *dst @@ got unsigned short [usertype] *[addressable] variable_name @@ drivers/firmware/efi/test/efi_test.c:479:62: sparse: expected unsigned short [noderef] [usertype] __user *dst drivers/firmware/efi/test/efi_test.c:479:62: sparse: got unsigned short [usertype] *[addressable] variable_name drivers/firmware/efi/test/efi_test.c:487:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long *__ptr @@ drivers/firmware/efi/test/efi_test.c:487:21: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:487:21: sparse: got unsigned long *__ptr drivers/firmware/efi/test/efi_test.c:487:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __user *__ptr_pu @@ got unsigned long *__ptr @@ drivers/firmware/efi/test/efi_test.c:487:21: sparse: expected void [noderef] __user *__ptr_pu drivers/firmware/efi/test/efi_test.c:487:21: sparse: got unsigned long *__ptr drivers/firmware/efi/test/efi_test.c:487:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got unsigned long *__ptr @@ drivers/firmware/efi/test/efi_test.c:487:21: sparse: expected void [noderef] __user *to drivers/firmware/efi/test/efi_test.c:487:21: sparse: got unsigned long *__ptr drivers/firmware/efi/test/efi_test.c:494:53: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got struct guid_t [usertype] *[addressable] vendor_guid @@ drivers/firmware/efi/test/efi_test.c:494:53: sparse: expected void [noderef] __user *to drivers/firmware/efi/test/efi_test.c:494:53: sparse: got struct guid_t [usertype] *[addressable] vendor_guid drivers/firmware/efi/test/efi_test.c:522:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:522:13: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:522:13: sparse: got unsigned long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:522:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __user *__ptr_pu @@ got unsigned long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:522:13: sparse: expected void [noderef] __user *__ptr_pu drivers/firmware/efi/test/efi_test.c:522:13: sparse: got unsigned long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:522:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got unsigned long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:522:13: sparse: expected void [noderef] __user *to drivers/firmware/efi/test/efi_test.c:522:13: sparse: got unsigned long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:529:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned int [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:529:13: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:529:13: sparse: got unsigned int [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:529:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __user *__ptr_pu @@ got unsigned int [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:529:13: sparse: expected void [noderef] __user *__ptr_pu drivers/firmware/efi/test/efi_test.c:529:13: sparse: got unsigned int [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:529:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got unsigned int [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:529:13: sparse: expected void [noderef] __user *to drivers/firmware/efi/test/efi_test.c:529:13: sparse: got unsigned int [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:546:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __user * @@ got void * @@ drivers/firmware/efi/test/efi_test.c:546:37: sparse: expected void const [noderef] __user * drivers/firmware/efi/test/efi_test.c:546:37: sparse: got void * drivers/firmware/efi/test/efi_test.c:575:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:575:13: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:575:13: sparse: got unsigned long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:575:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __user *__ptr_pu @@ got unsigned long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:575:13: sparse: expected void [noderef] __user *__ptr_pu drivers/firmware/efi/test/efi_test.c:575:13: sparse: got unsigned long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:575:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got unsigned long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:575:13: sparse: expected void [noderef] __user *to drivers/firmware/efi/test/efi_test.c:575:13: sparse: got unsigned long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:581:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:581:13: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:581:13: sparse: got unsigned long long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:581:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __user *__ptr_pu @@ got unsigned long long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:581:13: sparse: expected void [noderef] __user *__ptr_pu drivers/firmware/efi/test/efi_test.c:581:13: sparse: got unsigned long long [usertype] *__ptr >> drivers/firmware/efi/test/efi_test.c:581:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got unsigned long long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:581:13: sparse: expected void [noderef] __user *to drivers/firmware/efi/test/efi_test.c:581:13: sparse: got unsigned long long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:585:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:585:13: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:585:13: sparse: got unsigned long long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:585:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __user *__ptr_pu @@ got unsigned long long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:585:13: sparse: expected void [noderef] __user *__ptr_pu drivers/firmware/efi/test/efi_test.c:585:13: sparse: got unsigned long long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:585:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got unsigned long long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:585:13: sparse: expected void [noderef] __user *to drivers/firmware/efi/test/efi_test.c:585:13: sparse: got unsigned long long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:589:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:589:13: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:589:13: sparse: got unsigned long long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:589:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __user *__ptr_pu @@ got unsigned long long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:589:13: sparse: expected void [noderef] __user *__ptr_pu drivers/firmware/efi/test/efi_test.c:589:13: sparse: got unsigned long long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:589:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got unsigned long long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:589:13: sparse: expected void [noderef] __user *to drivers/firmware/efi/test/efi_test.c:589:13: sparse: got unsigned long long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:625:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got struct efi_capsule_header_t [usertype] ** @@ drivers/firmware/efi/test/efi_test.c:625:21: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:625:21: sparse: got struct efi_capsule_header_t [usertype] ** drivers/firmware/efi/test/efi_test.c:629:50: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got struct efi_capsule_header_t [usertype] *[assigned] c @@ drivers/firmware/efi/test/efi_test.c:629:50: sparse: expected void const [noderef] __user *from drivers/firmware/efi/test/efi_test.c:629:50: sparse: got struct efi_capsule_header_t [usertype] *[assigned] c drivers/firmware/efi/test/efi_test.c:643:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:643:13: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:643:13: sparse: got unsigned long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:643:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __user *__ptr_pu @@ got unsigned long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:643:13: sparse: expected void [noderef] __user *__ptr_pu drivers/firmware/efi/test/efi_test.c:643:13: sparse: got unsigned long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:643:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got unsigned long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:643:13: sparse: expected void [noderef] __user *to drivers/firmware/efi/test/efi_test.c:643:13: sparse: got unsigned long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:653:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned long long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:653:13: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:653:13: sparse: got unsigned long long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:653:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __user *__ptr_pu @@ got unsigned long long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:653:13: sparse: expected void [noderef] __user *__ptr_pu drivers/firmware/efi/test/efi_test.c:653:13: sparse: got unsigned long long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:653:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got unsigned long long [usertype] *__ptr @@ drivers/firmware/efi/test/efi_test.c:653:13: sparse: expected void [noderef] __user *to drivers/firmware/efi/test/efi_test.c:653:13: sparse: got unsigned long long [usertype] *__ptr drivers/firmware/efi/test/efi_test.c:658:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got int *__ptr @@ drivers/firmware/efi/test/efi_test.c:658:13: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:658:13: sparse: got int *__ptr drivers/firmware/efi/test/efi_test.c:658:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __user *__ptr_pu @@ got int *__ptr @@ drivers/firmware/efi/test/efi_test.c:658:13: sparse: expected void [noderef] __user *__ptr_pu drivers/firmware/efi/test/efi_test.c:658:13: sparse: got int *__ptr >> drivers/firmware/efi/test/efi_test.c:658:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got int *__ptr @@ drivers/firmware/efi/test/efi_test.c:658:13: sparse: expected void [noderef] __user *to drivers/firmware/efi/test/efi_test.c:658:13: sparse: got int *__ptr drivers/firmware/efi/test/efi_test.c:671:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *supported_mask @@ got unsigned int * @@ drivers/firmware/efi/test/efi_test.c:671:24: sparse: expected unsigned int [noderef] __user *supported_mask drivers/firmware/efi/test/efi_test.c:671:24: sparse: got unsigned int * drivers/firmware/efi/test/efi_test.c:35:27: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned short [usertype] *s @@ got unsigned short [noderef] [usertype] __user *str @@ drivers/firmware/efi/test/efi_test.c:35:27: sparse: expected unsigned short [usertype] *s drivers/firmware/efi/test/efi_test.c:35:27: sparse: got unsigned short [noderef] [usertype] __user *str drivers/firmware/efi/test/efi_test.c:44:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned short [usertype] * @@ drivers/firmware/efi/test/efi_test.c:44:13: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:44:13: sparse: got unsigned short [usertype] * drivers/firmware/efi/test/efi_test.c:50:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned short [usertype] * @@ drivers/firmware/efi/test/efi_test.c:50:21: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:50:21: sparse: got unsigned short [usertype] * drivers/firmware/efi/test/efi_test.c:35:27: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned short [usertype] *[assigned] s @@ got unsigned short [noderef] [usertype] __user *str @@ drivers/firmware/efi/test/efi_test.c:35:27: sparse: expected unsigned short [usertype] *[assigned] s drivers/firmware/efi/test/efi_test.c:35:27: sparse: got unsigned short [noderef] [usertype] __user *str drivers/firmware/efi/test/efi_test.c:44:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned short [usertype] * @@ drivers/firmware/efi/test/efi_test.c:44:13: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:44:13: sparse: got unsigned short [usertype] * drivers/firmware/efi/test/efi_test.c:50:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned short [usertype] * @@ drivers/firmware/efi/test/efi_test.c:50:21: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:50:21: sparse: got unsigned short [usertype] * drivers/firmware/efi/test/efi_test.c:35:27: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned short [usertype] *[assigned] s @@ got unsigned short [noderef] [usertype] __user *str @@ drivers/firmware/efi/test/efi_test.c:35:27: sparse: expected unsigned short [usertype] *[assigned] s drivers/firmware/efi/test/efi_test.c:35:27: sparse: got unsigned short [noderef] [usertype] __user *str drivers/firmware/efi/test/efi_test.c:44:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned short [usertype] * @@ drivers/firmware/efi/test/efi_test.c:44:13: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:44:13: sparse: got unsigned short [usertype] * drivers/firmware/efi/test/efi_test.c:50:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __user *ptr @@ got unsigned short [usertype] * @@ drivers/firmware/efi/test/efi_test.c:50:21: sparse: expected void const volatile [noderef] __user *ptr drivers/firmware/efi/test/efi_test.c:50:21: sparse: got unsigned short [usertype] * vim +187 drivers/firmware/efi/test/efi_test.c ff6301dabc3ca2 Ivan Hu 2016-08-25 138 ff6301dabc3ca2 Ivan Hu 2016-08-25 139 static long efi_runtime_get_variable(unsigned long arg) ff6301dabc3ca2 Ivan Hu 2016-08-25 140 { ff6301dabc3ca2 Ivan Hu 2016-08-25 141 struct efi_getvariable __user *getvariable_user; ff6301dabc3ca2 Ivan Hu 2016-08-25 142 struct efi_getvariable getvariable; 46b9b7135332d1 Ivan Hu 2016-10-18 143 unsigned long datasize = 0, prev_datasize, *dz; ff6301dabc3ca2 Ivan Hu 2016-08-25 144 efi_guid_t vendor_guid, *vd = NULL; ff6301dabc3ca2 Ivan Hu 2016-08-25 145 efi_status_t status; ff6301dabc3ca2 Ivan Hu 2016-08-25 146 efi_char16_t *name = NULL; ff6301dabc3ca2 Ivan Hu 2016-08-25 147 u32 attr, *at; ff6301dabc3ca2 Ivan Hu 2016-08-25 148 void *data = NULL; ff6301dabc3ca2 Ivan Hu 2016-08-25 149 int rv = 0; ff6301dabc3ca2 Ivan Hu 2016-08-25 150 ff6301dabc3ca2 Ivan Hu 2016-08-25 151 getvariable_user = (struct efi_getvariable __user *)arg; ff6301dabc3ca2 Ivan Hu 2016-08-25 152 ff6301dabc3ca2 Ivan Hu 2016-08-25 153 if (copy_from_user(&getvariable, getvariable_user, ff6301dabc3ca2 Ivan Hu 2016-08-25 154 sizeof(getvariable))) ff6301dabc3ca2 Ivan Hu 2016-08-25 155 return -EFAULT; ff6301dabc3ca2 Ivan Hu 2016-08-25 156 if (getvariable.data_size && ff6301dabc3ca2 Ivan Hu 2016-08-25 157 get_user(datasize, getvariable.data_size)) ff6301dabc3ca2 Ivan Hu 2016-08-25 158 return -EFAULT; ff6301dabc3ca2 Ivan Hu 2016-08-25 159 if (getvariable.vendor_guid) { ff6301dabc3ca2 Ivan Hu 2016-08-25 160 if (copy_from_user(&vendor_guid, getvariable.vendor_guid, ff6301dabc3ca2 Ivan Hu 2016-08-25 161 sizeof(vendor_guid))) ff6301dabc3ca2 Ivan Hu 2016-08-25 162 return -EFAULT; ff6301dabc3ca2 Ivan Hu 2016-08-25 163 vd = &vendor_guid; ff6301dabc3ca2 Ivan Hu 2016-08-25 164 } ff6301dabc3ca2 Ivan Hu 2016-08-25 165 ff6301dabc3ca2 Ivan Hu 2016-08-25 166 if (getvariable.variable_name) { ff6301dabc3ca2 Ivan Hu 2016-08-25 167 rv = copy_ucs2_from_user(&name, getvariable.variable_name); ff6301dabc3ca2 Ivan Hu 2016-08-25 168 if (rv) ff6301dabc3ca2 Ivan Hu 2016-08-25 169 return rv; ff6301dabc3ca2 Ivan Hu 2016-08-25 170 } ff6301dabc3ca2 Ivan Hu 2016-08-25 171 ff6301dabc3ca2 Ivan Hu 2016-08-25 172 at = getvariable.attributes ? &attr : NULL; ff6301dabc3ca2 Ivan Hu 2016-08-25 173 dz = getvariable.data_size ? &datasize : NULL; ff6301dabc3ca2 Ivan Hu 2016-08-25 174 ff6301dabc3ca2 Ivan Hu 2016-08-25 175 if (getvariable.data_size && getvariable.data) { ff6301dabc3ca2 Ivan Hu 2016-08-25 176 data = kmalloc(datasize, GFP_KERNEL); ff6301dabc3ca2 Ivan Hu 2016-08-25 177 if (!data) { ff6301dabc3ca2 Ivan Hu 2016-08-25 178 kfree(name); ff6301dabc3ca2 Ivan Hu 2016-08-25 179 return -ENOMEM; ff6301dabc3ca2 Ivan Hu 2016-08-25 180 } ff6301dabc3ca2 Ivan Hu 2016-08-25 181 } ff6301dabc3ca2 Ivan Hu 2016-08-25 182 ff6301dabc3ca2 Ivan Hu 2016-08-25 183 prev_datasize = datasize; ff6301dabc3ca2 Ivan Hu 2016-08-25 184 status = efi.get_variable(name, vd, at, dz, data); ff6301dabc3ca2 Ivan Hu 2016-08-25 185 kfree(name); ff6301dabc3ca2 Ivan Hu 2016-08-25 186 ff6301dabc3ca2 Ivan Hu 2016-08-25 @187 if (put_user(status, getvariable.status)) { ff6301dabc3ca2 Ivan Hu 2016-08-25 188 rv = -EFAULT; ff6301dabc3ca2 Ivan Hu 2016-08-25 189 goto out; ff6301dabc3ca2 Ivan Hu 2016-08-25 190 } ff6301dabc3ca2 Ivan Hu 2016-08-25 191 ff6301dabc3ca2 Ivan Hu 2016-08-25 192 if (status != EFI_SUCCESS) { ff6301dabc3ca2 Ivan Hu 2016-08-25 193 if (status == EFI_BUFFER_TOO_SMALL) { ff6301dabc3ca2 Ivan Hu 2016-08-25 @194 if (dz && put_user(datasize, getvariable.data_size)) { ff6301dabc3ca2 Ivan Hu 2016-08-25 195 rv = -EFAULT; ff6301dabc3ca2 Ivan Hu 2016-08-25 196 goto out; ff6301dabc3ca2 Ivan Hu 2016-08-25 197 } ff6301dabc3ca2 Ivan Hu 2016-08-25 198 } ff6301dabc3ca2 Ivan Hu 2016-08-25 199 rv = -EINVAL; ff6301dabc3ca2 Ivan Hu 2016-08-25 200 goto out; ff6301dabc3ca2 Ivan Hu 2016-08-25 201 } ff6301dabc3ca2 Ivan Hu 2016-08-25 202 ff6301dabc3ca2 Ivan Hu 2016-08-25 203 if (prev_datasize < datasize) { ff6301dabc3ca2 Ivan Hu 2016-08-25 204 rv = -EINVAL; ff6301dabc3ca2 Ivan Hu 2016-08-25 205 goto out; ff6301dabc3ca2 Ivan Hu 2016-08-25 206 } ff6301dabc3ca2 Ivan Hu 2016-08-25 207 ff6301dabc3ca2 Ivan Hu 2016-08-25 208 if (data) { ff6301dabc3ca2 Ivan Hu 2016-08-25 209 if (copy_to_user(getvariable.data, data, datasize)) { ff6301dabc3ca2 Ivan Hu 2016-08-25 210 rv = -EFAULT; ff6301dabc3ca2 Ivan Hu 2016-08-25 211 goto out; ff6301dabc3ca2 Ivan Hu 2016-08-25 212 } ff6301dabc3ca2 Ivan Hu 2016-08-25 213 } ff6301dabc3ca2 Ivan Hu 2016-08-25 214 ff6301dabc3ca2 Ivan Hu 2016-08-25 @215 if (at && put_user(attr, getvariable.attributes)) { ff6301dabc3ca2 Ivan Hu 2016-08-25 216 rv = -EFAULT; ff6301dabc3ca2 Ivan Hu 2016-08-25 217 goto out; ff6301dabc3ca2 Ivan Hu 2016-08-25 218 } ff6301dabc3ca2 Ivan Hu 2016-08-25 219 ff6301dabc3ca2 Ivan Hu 2016-08-25 220 if (dz && put_user(datasize, getvariable.data_size)) ff6301dabc3ca2 Ivan Hu 2016-08-25 221 rv = -EFAULT; ff6301dabc3ca2 Ivan Hu 2016-08-25 222 ff6301dabc3ca2 Ivan Hu 2016-08-25 223 out: ff6301dabc3ca2 Ivan Hu 2016-08-25 224 kfree(data); ff6301dabc3ca2 Ivan Hu 2016-08-25 225 return rv; ff6301dabc3ca2 Ivan Hu 2016-08-25 226 ff6301dabc3ca2 Ivan Hu 2016-08-25 227 } ff6301dabc3ca2 Ivan Hu 2016-08-25 228 ff6301dabc3ca2 Ivan Hu 2016-08-25 229 static long efi_runtime_set_variable(unsigned long arg) ff6301dabc3ca2 Ivan Hu 2016-08-25 230 { ff6301dabc3ca2 Ivan Hu 2016-08-25 231 struct efi_setvariable __user *setvariable_user; ff6301dabc3ca2 Ivan Hu 2016-08-25 232 struct efi_setvariable setvariable; ff6301dabc3ca2 Ivan Hu 2016-08-25 233 efi_guid_t vendor_guid; ff6301dabc3ca2 Ivan Hu 2016-08-25 234 efi_status_t status; ff6301dabc3ca2 Ivan Hu 2016-08-25 235 efi_char16_t *name = NULL; ff6301dabc3ca2 Ivan Hu 2016-08-25 236 void *data; ff6301dabc3ca2 Ivan Hu 2016-08-25 237 int rv = 0; ff6301dabc3ca2 Ivan Hu 2016-08-25 238 ff6301dabc3ca2 Ivan Hu 2016-08-25 239 setvariable_user = (struct efi_setvariable __user *)arg; ff6301dabc3ca2 Ivan Hu 2016-08-25 240 ff6301dabc3ca2 Ivan Hu 2016-08-25 241 if (copy_from_user(&setvariable, setvariable_user, sizeof(setvariable))) ff6301dabc3ca2 Ivan Hu 2016-08-25 242 return -EFAULT; ff6301dabc3ca2 Ivan Hu 2016-08-25 243 if (copy_from_user(&vendor_guid, setvariable.vendor_guid, ff6301dabc3ca2 Ivan Hu 2016-08-25 244 sizeof(vendor_guid))) ff6301dabc3ca2 Ivan Hu 2016-08-25 245 return -EFAULT; ff6301dabc3ca2 Ivan Hu 2016-08-25 246 ff6301dabc3ca2 Ivan Hu 2016-08-25 247 if (setvariable.variable_name) { ff6301dabc3ca2 Ivan Hu 2016-08-25 248 rv = copy_ucs2_from_user(&name, setvariable.variable_name); ff6301dabc3ca2 Ivan Hu 2016-08-25 249 if (rv) ff6301dabc3ca2 Ivan Hu 2016-08-25 250 return rv; ff6301dabc3ca2 Ivan Hu 2016-08-25 251 } ff6301dabc3ca2 Ivan Hu 2016-08-25 252 c208ed916e5870 Ivan Hu 2016-10-18 253 data = memdup_user(setvariable.data, setvariable.data_size); c208ed916e5870 Ivan Hu 2016-10-18 254 if (IS_ERR(data)) { ff6301dabc3ca2 Ivan Hu 2016-08-25 255 kfree(name); c208ed916e5870 Ivan Hu 2016-10-18 256 return PTR_ERR(data); ff6301dabc3ca2 Ivan Hu 2016-08-25 257 } ff6301dabc3ca2 Ivan Hu 2016-08-25 258 ff6301dabc3ca2 Ivan Hu 2016-08-25 259 status = efi.set_variable(name, &vendor_guid, ff6301dabc3ca2 Ivan Hu 2016-08-25 260 setvariable.attributes, ff6301dabc3ca2 Ivan Hu 2016-08-25 261 setvariable.data_size, data); ff6301dabc3ca2 Ivan Hu 2016-08-25 262 ff6301dabc3ca2 Ivan Hu 2016-08-25 263 if (put_user(status, setvariable.status)) { ff6301dabc3ca2 Ivan Hu 2016-08-25 264 rv = -EFAULT; ff6301dabc3ca2 Ivan Hu 2016-08-25 265 goto out; ff6301dabc3ca2 Ivan Hu 2016-08-25 266 } ff6301dabc3ca2 Ivan Hu 2016-08-25 267 ff6301dabc3ca2 Ivan Hu 2016-08-25 268 rv = status == EFI_SUCCESS ? 0 : -EINVAL; ff6301dabc3ca2 Ivan Hu 2016-08-25 269 ff6301dabc3ca2 Ivan Hu 2016-08-25 270 out: ff6301dabc3ca2 Ivan Hu 2016-08-25 271 kfree(data); ff6301dabc3ca2 Ivan Hu 2016-08-25 272 kfree(name); ff6301dabc3ca2 Ivan Hu 2016-08-25 273 ff6301dabc3ca2 Ivan Hu 2016-08-25 274 return rv; ff6301dabc3ca2 Ivan Hu 2016-08-25 275 } ff6301dabc3ca2 Ivan Hu 2016-08-25 276 ff6301dabc3ca2 Ivan Hu 2016-08-25 277 static long efi_runtime_get_time(unsigned long arg) ff6301dabc3ca2 Ivan Hu 2016-08-25 278 { ff6301dabc3ca2 Ivan Hu 2016-08-25 279 struct efi_gettime __user *gettime_user; ff6301dabc3ca2 Ivan Hu 2016-08-25 280 struct efi_gettime gettime; ff6301dabc3ca2 Ivan Hu 2016-08-25 281 efi_status_t status; ff6301dabc3ca2 Ivan Hu 2016-08-25 282 efi_time_cap_t cap; ff6301dabc3ca2 Ivan Hu 2016-08-25 283 efi_time_t efi_time; ff6301dabc3ca2 Ivan Hu 2016-08-25 284 ff6301dabc3ca2 Ivan Hu 2016-08-25 285 gettime_user = (struct efi_gettime __user *)arg; ff6301dabc3ca2 Ivan Hu 2016-08-25 286 if (copy_from_user(&gettime, gettime_user, sizeof(gettime))) ff6301dabc3ca2 Ivan Hu 2016-08-25 287 return -EFAULT; ff6301dabc3ca2 Ivan Hu 2016-08-25 288 ff6301dabc3ca2 Ivan Hu 2016-08-25 289 status = efi.get_time(gettime.time ? &efi_time : NULL, ff6301dabc3ca2 Ivan Hu 2016-08-25 290 gettime.capabilities ? &cap : NULL); ff6301dabc3ca2 Ivan Hu 2016-08-25 291 ff6301dabc3ca2 Ivan Hu 2016-08-25 292 if (put_user(status, gettime.status)) ff6301dabc3ca2 Ivan Hu 2016-08-25 293 return -EFAULT; ff6301dabc3ca2 Ivan Hu 2016-08-25 294 ff6301dabc3ca2 Ivan Hu 2016-08-25 295 if (status != EFI_SUCCESS) ff6301dabc3ca2 Ivan Hu 2016-08-25 296 return -EINVAL; ff6301dabc3ca2 Ivan Hu 2016-08-25 297 ff6301dabc3ca2 Ivan Hu 2016-08-25 298 if (gettime.capabilities) { ff6301dabc3ca2 Ivan Hu 2016-08-25 299 efi_time_cap_t __user *cap_local; ff6301dabc3ca2 Ivan Hu 2016-08-25 300 ff6301dabc3ca2 Ivan Hu 2016-08-25 301 cap_local = (efi_time_cap_t *)gettime.capabilities; ff6301dabc3ca2 Ivan Hu 2016-08-25 302 if (put_user(cap.resolution, &(cap_local->resolution)) || ff6301dabc3ca2 Ivan Hu 2016-08-25 303 put_user(cap.accuracy, &(cap_local->accuracy)) || ff6301dabc3ca2 Ivan Hu 2016-08-25 304 put_user(cap.sets_to_zero, &(cap_local->sets_to_zero))) ff6301dabc3ca2 Ivan Hu 2016-08-25 305 return -EFAULT; ff6301dabc3ca2 Ivan Hu 2016-08-25 306 } ff6301dabc3ca2 Ivan Hu 2016-08-25 307 if (gettime.time) { ff6301dabc3ca2 Ivan Hu 2016-08-25 308 if (copy_to_user(gettime.time, &efi_time, sizeof(efi_time_t))) ff6301dabc3ca2 Ivan Hu 2016-08-25 309 return -EFAULT; ff6301dabc3ca2 Ivan Hu 2016-08-25 310 } ff6301dabc3ca2 Ivan Hu 2016-08-25 311 ff6301dabc3ca2 Ivan Hu 2016-08-25 312 return 0; ff6301dabc3ca2 Ivan Hu 2016-08-25 313 } ff6301dabc3ca2 Ivan Hu 2016-08-25 314 ff6301dabc3ca2 Ivan Hu 2016-08-25 315 static long efi_runtime_set_time(unsigned long arg) ff6301dabc3ca2 Ivan Hu 2016-08-25 316 { ff6301dabc3ca2 Ivan Hu 2016-08-25 317 struct efi_settime __user *settime_user; ff6301dabc3ca2 Ivan Hu 2016-08-25 318 struct efi_settime settime; ff6301dabc3ca2 Ivan Hu 2016-08-25 319 efi_status_t status; ff6301dabc3ca2 Ivan Hu 2016-08-25 320 efi_time_t efi_time; ff6301dabc3ca2 Ivan Hu 2016-08-25 321 ff6301dabc3ca2 Ivan Hu 2016-08-25 322 settime_user = (struct efi_settime __user *)arg; ff6301dabc3ca2 Ivan Hu 2016-08-25 323 if (copy_from_user(&settime, settime_user, sizeof(settime))) ff6301dabc3ca2 Ivan Hu 2016-08-25 324 return -EFAULT; ff6301dabc3ca2 Ivan Hu 2016-08-25 325 if (copy_from_user(&efi_time, settime.time, ff6301dabc3ca2 Ivan Hu 2016-08-25 326 sizeof(efi_time_t))) ff6301dabc3ca2 Ivan Hu 2016-08-25 327 return -EFAULT; ff6301dabc3ca2 Ivan Hu 2016-08-25 328 status = efi.set_time(&efi_time); ff6301dabc3ca2 Ivan Hu 2016-08-25 329 ff6301dabc3ca2 Ivan Hu 2016-08-25 330 if (put_user(status, settime.status)) ff6301dabc3ca2 Ivan Hu 2016-08-25 331 return -EFAULT; ff6301dabc3ca2 Ivan Hu 2016-08-25 332 ff6301dabc3ca2 Ivan Hu 2016-08-25 333 return status == EFI_SUCCESS ? 0 : -EINVAL; ff6301dabc3ca2 Ivan Hu 2016-08-25 334 } ff6301dabc3ca2 Ivan Hu 2016-08-25 335 ff6301dabc3ca2 Ivan Hu 2016-08-25 336 static long efi_runtime_get_waketime(unsigned long arg) ff6301dabc3ca2 Ivan Hu 2016-08-25 337 { ff6301dabc3ca2 Ivan Hu 2016-08-25 338 struct efi_getwakeuptime __user *getwakeuptime_user; ff6301dabc3ca2 Ivan Hu 2016-08-25 339 struct efi_getwakeuptime getwakeuptime; ff6301dabc3ca2 Ivan Hu 2016-08-25 340 efi_bool_t enabled, pending; ff6301dabc3ca2 Ivan Hu 2016-08-25 341 efi_status_t status; ff6301dabc3ca2 Ivan Hu 2016-08-25 342 efi_time_t efi_time; ff6301dabc3ca2 Ivan Hu 2016-08-25 343 ff6301dabc3ca2 Ivan Hu 2016-08-25 344 getwakeuptime_user = (struct efi_getwakeuptime __user *)arg; ff6301dabc3ca2 Ivan Hu 2016-08-25 345 if (copy_from_user(&getwakeuptime, getwakeuptime_user, ff6301dabc3ca2 Ivan Hu 2016-08-25 346 sizeof(getwakeuptime))) ff6301dabc3ca2 Ivan Hu 2016-08-25 347 return -EFAULT; ff6301dabc3ca2 Ivan Hu 2016-08-25 348 ff6301dabc3ca2 Ivan Hu 2016-08-25 349 status = efi.get_wakeup_time( ff6301dabc3ca2 Ivan Hu 2016-08-25 350 getwakeuptime.enabled ? (efi_bool_t *)&enabled : NULL, ff6301dabc3ca2 Ivan Hu 2016-08-25 351 getwakeuptime.pending ? (efi_bool_t *)&pending : NULL, ff6301dabc3ca2 Ivan Hu 2016-08-25 352 getwakeuptime.time ? &efi_time : NULL); ff6301dabc3ca2 Ivan Hu 2016-08-25 353 ff6301dabc3ca2 Ivan Hu 2016-08-25 354 if (put_user(status, getwakeuptime.status)) ff6301dabc3ca2 Ivan Hu 2016-08-25 355 return -EFAULT; ff6301dabc3ca2 Ivan Hu 2016-08-25 356 ff6301dabc3ca2 Ivan Hu 2016-08-25 357 if (status != EFI_SUCCESS) ff6301dabc3ca2 Ivan Hu 2016-08-25 358 return -EINVAL; ff6301dabc3ca2 Ivan Hu 2016-08-25 359 ff6301dabc3ca2 Ivan Hu 2016-08-25 @360 if (getwakeuptime.enabled && put_user(enabled, ff6301dabc3ca2 Ivan Hu 2016-08-25 361 getwakeuptime.enabled)) ff6301dabc3ca2 Ivan Hu 2016-08-25 362 return -EFAULT; ff6301dabc3ca2 Ivan Hu 2016-08-25 363 ff6301dabc3ca2 Ivan Hu 2016-08-25 364 if (getwakeuptime.time) { ff6301dabc3ca2 Ivan Hu 2016-08-25 365 if (copy_to_user(getwakeuptime.time, &efi_time, ff6301dabc3ca2 Ivan Hu 2016-08-25 366 sizeof(efi_time_t))) ff6301dabc3ca2 Ivan Hu 2016-08-25 367 return -EFAULT; ff6301dabc3ca2 Ivan Hu 2016-08-25 368 } ff6301dabc3ca2 Ivan Hu 2016-08-25 369 ff6301dabc3ca2 Ivan Hu 2016-08-25 370 return 0; ff6301dabc3ca2 Ivan Hu 2016-08-25 371 } ff6301dabc3ca2 Ivan Hu 2016-08-25 372 :::::: The code at line 187 was first introduced by commit :::::: ff6301dabc3ca20ab8f50f8d0252ac05da610d89 efi: Add efi_test driver for exporting UEFI runtime service interfaces :::::: TO: Ivan Hu :::::: CC: Matt Fleming -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki