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 2D21DEE57DF for ; Mon, 11 Sep 2023 06:30:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 76C326B0171; Mon, 11 Sep 2023 02:30:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 71B786B0172; Mon, 11 Sep 2023 02:30:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5E2D36B0173; Mon, 11 Sep 2023 02:30:52 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 4A0C36B0171 for ; Mon, 11 Sep 2023 02:30:52 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 13001808B6 for ; Mon, 11 Sep 2023 06:30:52 +0000 (UTC) X-FDA: 81223343544.23.4D11AF5 Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.20]) by imf10.hostedemail.com (Postfix) with ESMTP id AF1CFC0008 for ; Mon, 11 Sep 2023 06:30:48 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=UphiIOow; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf10.hostedemail.com: domain of lkp@intel.com designates 134.134.136.20 as permitted sender) smtp.mailfrom=lkp@intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1694413849; 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=OXdG9ZnDzfzVhMxMs7WCjWc4F2hI3SDqPOKGog+Sqbo=; b=My/g5kqYmKfRp+J3mn/n8UiCsJFuZ5bXkFCzRrQojxGYlKtBPUAddPlu6fsX/ubGw+PBim WQDzlPlD0k3hjiy1KqcOComfMPfVztLtYQgx0DCUzZKMyP+jx3PIBVYsn8pIB3qCfaX/Xe I4FA6RluXlHZ4pRfqT3oL5jLivF5a7Y= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=UphiIOow; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf10.hostedemail.com: domain of lkp@intel.com designates 134.134.136.20 as permitted sender) smtp.mailfrom=lkp@intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1694413849; a=rsa-sha256; cv=none; b=E6i2p+hWCdgkEPfnzEIGZbu3c9TfewIbYs4k+3c19i8R/viOGo8T2HfeBq2VlsIPw5GtJb yijSTbmQ5+0MUttG5RjjZhPDU/Kypdwc/S6IorXqsTNfQK8OPsZPX2A8AQwRUIYhGy3ILe ukl6jiFzAOG/RI6TIr86mpFLB1pYar0= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1694413848; x=1725949848; h=date:from:to:cc:subject:message-id:mime-version; bh=mHGDktIdHZ2sp4tCCtKrCx+DSVNhi68TUsVKEiZ/UPw=; b=UphiIOowKsSXXr11NqHWnppP0stLyDPBgRpInrOiM2I7T2G9jBKpRyRH nnXP6MvLGkCge+y1IJ5IBVnnVABwZnXqkm/Cb3AiT4gHjMaJG5AlxTYpV D8MYpS2Nj4H9OLEEhH6gQonIBkJcuqmxx3g17zt1Rzf9WJNKWj8fsJbum XaOk/6iM9m1IVAwSxaQCIZ2CT476ou0lOhrEmZdjR5CU91z2EkIoUMYoc eMpwtdq+G/qmv3xqd6I5XpZ/0Z/ffVHpcbr2scxhg7t9QAou0d9/tInQ/ xTZdMJJmsBMZ8IQIqX6QdXi0C4mD79cijMJoXF+nUbR4mDQLwH4r71SIM Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10829"; a="368245279" X-IronPort-AV: E=Sophos;i="6.02,243,1688454000"; d="scan'208";a="368245279" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Sep 2023 23:30:39 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10829"; a="858198114" X-IronPort-AV: E=Sophos;i="6.02,243,1688454000"; d="scan'208";a="858198114" Received: from lkp-server01.sh.intel.com (HELO 59b3c6e06877) ([10.239.97.150]) by fmsmga002.fm.intel.com with ESMTP; 10 Sep 2023 23:30:37 -0700 Received: from kbuild by 59b3c6e06877 with local (Exim 4.96) (envelope-from ) id 1qfaRP-0005tb-1E; Mon, 11 Sep 2023 06:30:35 +0000 Date: Mon, 11 Sep 2023 14:30:31 +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: <202309111412.xYn3gZWr-lkp@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Rspamd-Queue-Id: AF1CFC0008 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: k9865roqokcstqyu4aojk3rhpn7uskau X-HE-Tag: 1694413848-1787 X-HE-Meta: U2FsdGVkX1/8m5EJiysOl4VdQpg3vkimox/zr7gelTZQ8SFqbVU1vXRGXp7j0v7pSB+xmjojJs52HvA3tHf2Vj7NkL/1YNeC+g8B8BpA2okcyLX5fixlzAU2xPGEpzHy3AzNVsST29f/wm7uD62T9K3KMCz56engwTsz2L+5/YRozrdULAATj22HspeDoCDufrYgYjIm7koN8FEhOs2CEW+G9q1b+rGAizo5IVciBeGCnBM0smSJwomF5aoJL8vIh5LPvDxpHsXqBGpF+3wTIx9ghAxKA8NVxx42TTf8cFl3JMVUJ6ziiE3shyhrE01ZkbtlTCcWpHS/ckyOmEo5FWRJg688MdPqYuPLFTmT/HsbGtq0V9goO36DXvanGB3wcsBB4L7BZwE3xBuzSLC5OfbyTNliNc+rwsefX3kVdOKJWoWXEVvR8jQW3cldajEKNXS4cc+W6TeMRFoR9hVxV9QxxnSNabdx8BBBdYaZIeKf+kRxU5Y0IOlvsHiWzHJCJNBmanIY4mHqilsQMs1b3Rb9/8a8dqMx2RHu3zsggQfEEF5NEPkVsOMxak7tJ7jQkL+SywWCYHEj20hoNlS2vM/aRt644JoU2htf925TXNoJkR+waHsyplKdj9hN/AQpdPB93UaWdEXu5x3ZwTFkFlZ/+kB1jIJ0eZZzADb3KYwpcmx9ykRvG2ha85R9mmqNywhgQbTULRgxmZEL7LFvVRqwHh7hnHzqx55FX14kArztGuAmYL0F53vTFL1dF9l4Rv1Cm9BXVY5usSQh3ApjyFc9I28Ch9Qo5NwTz/bMH8qHmHW2jFrL9Jev2/gQepRak1n9G7CHlUHvFmuoW/pevEDs99eFJSJ3S9pc4FLWOqesesDXWnOPrvtI57pu2VPKVsbhGTlt5iicCAfaHeqU64cB1vTLril3XdismMJxyvEjwYTE9FV0HxqWYQJBWxfrMRCbNizvWGBAdK+zxW6 GjNRw8Bm rYbtncf888UKBZtvTMJZQSDoh06xaTAJWMkZO+r6awsR5fizmHrVu9nUzYxQ7Hj/AQx8abths2FUicz37AlMJdtcmo8HTGVl0DVSBA2zPKH0iE5Eaw77FspgZ19V+cQpimdGCKOv00rfueh9C6EdbZJyjRAGZtzlgwHpzCtovcoFDl3R3WcNmui442gaC4bJZ3pk9dotPnXe5UhbK6EPEmnwhFi2u+NiOvPj89TxYe4IgvbAGP7gt0320v/e9uq0WFzjwxMrQMp5+XBzwEsL13zr+D9Pjm0XSvOP5vHFXP1/og2+/wyaf/chuUxia5DmUp7OPMu34abWW88PGIuV+8ucg6zctttESZlk+QlRDn3Eo7CuysG2kdjkouQ8Wrqp00eBz2BqfrqC1VBO2wjbJKV01eLWUsSC9uft1tfTW3e7NDBFwJOTAhDqQZyMdxAgH0QhYprs0jZgOmF6/zurMGjRG4OAehZ61I6F/crChWgY6Mzau8NpfhisfwDktnW0XkCHzmTJem28BREnxMH5TbAynoQ== 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: 0bb80ecc33a8fb5a682236443c1e740d5c917d1d commit: 75cf0290271bf6dae9dee982aef15242dadf97e4 instrumented.h: add KMSAN support date: 11 months ago config: i386-randconfig-061-20230911 (https://download.01.org/0day-ci/archive/20230911/202309111412.xYn3gZWr-lkp@intel.com/config) compiler: gcc-12 (Debian 12.2.0-14) 12.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20230911/202309111412.xYn3gZWr-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/202309111412.xYn3gZWr-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