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 8C104C6FD1D for ; Tue, 4 Apr 2023 09:50:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2FDDD6B007B; Tue, 4 Apr 2023 05:50:26 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2ADF96B007D; Tue, 4 Apr 2023 05:50:26 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 12CA86B007E; Tue, 4 Apr 2023 05:50:26 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id F0D5B6B007B for ; Tue, 4 Apr 2023 05:50:25 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id CECA4140138 for ; Tue, 4 Apr 2023 09:50:25 +0000 (UTC) X-FDA: 80643238410.27.1844D07 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf17.hostedemail.com (Postfix) with ESMTP id AED7F4000B for ; Tue, 4 Apr 2023 09:50:23 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=g5Em+NEb; spf=pass (imf17.hostedemail.com: domain of hdegoede@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=hdegoede@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1680601823; a=rsa-sha256; cv=none; b=tOBx+YI2Cu6M3wAeF7L68A+pQNZdK8uY3r4vWIIaPPF7BTiqggrf6XR/K5V6dprswxl9Vp CwI5OJ7lBIF4ihMjbL75wwKtC7yfyeW2VBsXqlFYa6R8G9u/iM+1wlJhHXfRfqrcgEKcR8 S3xlmc5imqSFt1i83MYkwguwKwGAxYg= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=g5Em+NEb; spf=pass (imf17.hostedemail.com: domain of hdegoede@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=hdegoede@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1680601823; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=gWz1ABZ3fmvwgLKtocpzwdklp33JeqGFnHowDmxZOJY=; b=79wxXScyDVUZ91AgxA7WBikbFmsRQSniC75XpN3saASqZ9SQnpNju4+YZLeu4LXT4y2Kmr qYUoO7Q9fYw5LI09aG4OlV0So2GpX1RLp9FhTEjTxw1IBUQIaTcGf/4U+cw1nbJ+rpifJa rnmpqUpNrdcc9dW+BixJLXrF5rYJhwM= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1680601823; h=from:from: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:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gWz1ABZ3fmvwgLKtocpzwdklp33JeqGFnHowDmxZOJY=; b=g5Em+NEbuZVIE4vZOIapd2G4pRI1f8cTmBBraAMUmJjijW+0DhV1p5WQxaQF1BGHWyr1py yQ//bAMrawkG1TIODw7acs/Tz1NbKW5tkq5RHgTccwN1dqH1Yj/pzbMx3q3+LX/p9/1l0p jMZ3NtIonQV0d+LnByMP9xtDZg8nUpg= Received: from mail-ed1-f69.google.com (mail-ed1-f69.google.com [209.85.208.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-385-lcU2GS0wNUq_gsPuXhlCdA-1; Tue, 04 Apr 2023 05:50:21 -0400 X-MC-Unique: lcU2GS0wNUq_gsPuXhlCdA-1 Received: by mail-ed1-f69.google.com with SMTP id b18-20020a50b412000000b0050234a3ad75so40679345edh.23 for ; Tue, 04 Apr 2023 02:50:21 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680601820; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=gWz1ABZ3fmvwgLKtocpzwdklp33JeqGFnHowDmxZOJY=; b=ZoM9C4U6dkfFpyVF8QG2wjusALJnOcb9QcVKkqTaZmo/l+BdOmcHe06HwZ9e11iyR7 lgovj2gBX3t1h19bQK2E9YYwQXKeiLz7hLHWdB37TPLCM9GtKC/A0eGNoRhiCMyjy5qw RaWp73eCL2jhoSBdiwLdkMkpa2DkzEBr0b9/mvJF5YXJ5w/vZMugjwfyrxVdkYda0fwp j8bQU8JLRUWVmfEAbc9lZankLTQOGKHkbFen34TYJA2xPax6q3+OkbaRzpfjzadeCUBR B6EiWltYvbEora44a9lK29MWP4ezr7pbgCBcLdLn6sDFqigyzABStvZWREhSF2OqkoXo EFfQ== X-Gm-Message-State: AAQBX9ezyD04rfuUSmTIXQqvec+rDsOB51ZbZft6qwlIC/Ycv2IhEzaf mf4DGUJwyWSBYVFossXwEQfmnfUe6t57Rrn0RAdTx8xHNyYgkKhudjyuyF3ETMmdIm4i5+iR1r4 2cHnhPxeOmBQ= X-Received: by 2002:a17:906:a04b:b0:933:3a65:67ed with SMTP id bg11-20020a170906a04b00b009333a6567edmr1667327ejb.75.1680601819824; Tue, 04 Apr 2023 02:50:19 -0700 (PDT) X-Google-Smtp-Source: AKy350bsscIb2so87VzjSstYrwPOOqnH/+y9SuctIsemdfL5H3GaHYF8eyDlnBJCCD+qFsL8ghPC0w== X-Received: by 2002:a17:906:a04b:b0:933:3a65:67ed with SMTP id bg11-20020a170906a04b00b009333a6567edmr1667315ejb.75.1680601819503; Tue, 04 Apr 2023 02:50:19 -0700 (PDT) Received: from ?IPV6:2001:1c00:c32:7800:5bfa:a036:83f0:f9ec? (2001-1c00-0c32-7800-5bfa-a036-83f0-f9ec.cable.dynamic.v6.ziggo.nl. [2001:1c00:c32:7800:5bfa:a036:83f0:f9ec]) by smtp.gmail.com with ESMTPSA id i5-20020a50d745000000b004fa19f5ba99sm5715114edj.79.2023.04.04.02.50.18 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 04 Apr 2023 02:50:18 -0700 (PDT) Message-ID: Date: Tue, 4 Apr 2023 11:50:17 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: sparse false-positive ? (was [linux-next:master 3256/8744] drivers/platform/x86/apple-gmux.c:224:48: sparse: sparse: incorrect type in argument 1 (different address spaces)) To: Dan Carpenter Cc: oe-kbuild-all@lists.linux.dev, Linux Memory Management List , kernel test robot , Orlando Chamberlain References: <202304040401.IMxt7Ubi-lkp@intel.com> From: Hans de Goede In-Reply-To: <202304040401.IMxt7Ubi-lkp@intel.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US, nl Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Queue-Id: AED7F4000B X-Rspamd-Server: rspam01 X-Stat-Signature: nbtrejjzqqdyz15mz43iz3zw66599tbi X-HE-Tag: 1680601823-4017 X-HE-Meta: U2FsdGVkX18fIkRH4d+TSBmX2UP6RAuN9YcSLrqC8L9UU65ExofIoG0x97XSVYea1osYkD58tTODz87Wmn2MXKqGTIWShl+ZGIoRBZ+rq0Wd+MeV8p1QbHgax+qafvo/DpnHyehxUhGHOG23nHG/0/U4tbgRHpp+cPGusXMWt32sS4yMlITYAcb+dBybBzpZLk7kd9AGun8vkjXMRDh4BZqJ8yXNeSbmAWGD/um3LKoYs8rx6Ef52jxYtGkSGnbGd0ja3szuN8AK0v7Tzkn0ia4vGriz3k+nvgqDheDCYsU5UZg1rGUL+PxPp7XaQYk/5D0ovZaiieUPOurFMCwIJWrGFx5U2lc3elAQSVJGkyunoE/2pUi5KPHEYiODN8qTtCPnVr8xhuaELPCnr7BVY3CTc6JNUcYBO9Ows0aYFQlDTwH3mLyFjyHyIPGSb1KACZGsuKlyDMDXB/XTSnQool5s+qwywxY43H/9lFEr+Di0/4wkZx/b0/OffOEBhcrIFBdfru8kVBNhyp8f0ZsCbZUbSycOyZlCulqOVoy+xoQEc+ar9etf2ssUfpgBdrdCC4EOpiDgeVRlKcNlpU8luMHDjTY1TMWpuPrLOv7mvfxuQb+H3BQhEkvOKQA1MWEDLTzbHPS8lwu2I7ho+B0Hd913pDVSIP5XJtBkUz/ST5YCNp0nd6rdIAcn9SqvppPnkY/sgiQrcretqKsm3aveFAy2ZSzowNrEnelDp3BsEtZEEEn6P+Ps/W46NbWjNL9I/Zt2cNLcIsML0PMldAM2blSrU5PeX7Jm9XrbmzIB5+CR+SbVSlbRBVMhCVPUME8LbFDW30Z9FF3nGJ1IFNQKmGl//cYr7+QGyRcMtn0aK7l4tQdV4agvZAx4s10nJKwUA8Y/+y8qMU5lhc9Hv0AXu7+e7bCKUiVh3uCZ511uVMXfAJb9MeU1xdraJ3qdFN2VxtAT5x8GTPdFBg8kF0R wC9IQfK3 WEs79YP6/79fi7z3JKZ/fFIRPayMka3Y+emM4N0gxanp7PGIjLuYlAI+O8Ks7/0QYJ++40dL2Sy3/N0ULWJxpThJinGDdxq1Ey/BNSOcym5Idb6ZJBV2DpqysK0ly+7w++RBrimZVJFU5sHuovYHGbkOu8+eC9gXLbPU5baDAeh0/hVvJL0gP3mNr0gBZYtBvCNnWhIZSATn6TPJKloDwz0wqCdrBk8M5g5zY3dYZFlv7VScmESOigg9SWTYX/np8xCZA0jR92R5QJuUcZTdBARIPwl0aL5tNZY+/1hygYFYkNUTHoWbiH1mTqgvA1HdIzp1eRJJIDq/yIjGUxDj+Mqri4ixWpJAZBWCwDuRPdypKxVAMOMQp0OodqRtFfwogDVpHjjaFk9rAgZP+NYe2LYAnEP16qIrFfUQKPgPbP80uNxj08qfYBEu2qsCg0ZMl+0Y6bbrRKGtXjeYnOCfVkd9mYiXLQ0obw4eTRJurZMe9fGpc4xyE8emorVhEIoR3mCgkJxeMy0TzYLoQOeeMRgf5T06XrrNtWmDacHdBOow0AVKv2Lh2fjrF/BYCvZ08BdQesGp9SRb5ObE267jMGF+9UU3aSRN75Mb7/bOUdoNS+nMlugaoahwYoA== 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: Dan, Can you perhaps help me understand the following sparse warnings, they seem like false-positives to me. But I'm not used to sparse giving false-positives so I think I might be missing something here ? On 4/3/23 22:39, kernel test robot wrote: > tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master > head: 31bd35b66249699343d2416658f57e97314a433a > commit: 0c18184de990e63f708b090bcb9fc6c0fbc427cd [3256/8744] platform/x86: apple-gmux: support MMIO gmux on T2 Macs > config: x86_64-randconfig-s023-20230403 (https://download.01.org/0day-ci/archive/20230404/202304040401.IMxt7Ubi-lkp@intel.com/config) > compiler: gcc-11 (Debian 11.3.0-8) 11.3.0 > reproduce: > # apt-get install sparse > # sparse version: v0.6.4-39-gce1a6720-dirty > # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=0c18184de990e63f708b090bcb9fc6c0fbc427cd > git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git > git fetch --no-tags linux-next master > git checkout 0c18184de990e63f708b090bcb9fc6c0fbc427cd > # save the config file > mkdir build_dir && cp config build_dir/.config > make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=x86_64 olddefconfig > make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/platform/x86/ > > If you fix the issue, kindly add following tag where applicable > | Reported-by: kernel test robot > | Link: https://lore.kernel.org/oe-kbuild-all/202304040401.IMxt7Ubi-lkp@intel.com/ > > sparse warnings: (new ones prefixed by >>) >>> drivers/platform/x86/apple-gmux.c:224:48: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned char [usertype] * @@ > drivers/platform/x86/apple-gmux.c:224:48: sparse: expected void const [noderef] __iomem * > drivers/platform/x86/apple-gmux.c:224:48: sparse: got unsigned char [usertype] * So apple-gmux.c:224 for the commit these sparse warnings are about reads: u8 gwr = ioread8(gmux_data->iomem_base + GMUX_MMIO_COMMAND_SEND); Where gmux_data is a "struct apple_gmux_data *" and the iomem_base member is: u8 *__iomem iomem_base; And GMUX_MMIO_COMMAND_SEND is: #define GMUX_MMIO_COMMAND_SEND 0x0f So I don't understand this warnining ? Maybe sparse tracks what is being assigned to apple_gmux_data->iomem_base else where ? The assignment is done like this: gmux_data->iomem_base = ioremap(gmux_data->iostart, gmux_data->iolen); And ioremap() returns a "void __iomem *" so even if the assignment is tracked things still seem fine ? Regards, Hans > drivers/platform/x86/apple-gmux.c:227:53: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned char [usertype] * @@ > drivers/platform/x86/apple-gmux.c:227:53: sparse: expected void const [noderef] __iomem * > drivers/platform/x86/apple-gmux.c:227:53: sparse: got unsigned char [usertype] * >>> drivers/platform/x86/apple-gmux.c:241:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned char [usertype] * @@ > drivers/platform/x86/apple-gmux.c:241:55: sparse: expected void [noderef] __iomem * > drivers/platform/x86/apple-gmux.c:241:55: sparse: got unsigned char [usertype] * > drivers/platform/x86/apple-gmux.c:243:39: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned char [usertype] * @@ > drivers/platform/x86/apple-gmux.c:243:39: sparse: expected void [noderef] __iomem * > drivers/platform/x86/apple-gmux.c:243:39: sparse: got unsigned char [usertype] * >>> drivers/platform/x86/apple-gmux.c:245:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned char [usertype] *[noderef] iomem_base @@ > drivers/platform/x86/apple-gmux.c:245:32: sparse: expected void const [noderef] __iomem * > drivers/platform/x86/apple-gmux.c:245:32: sparse: got unsigned char [usertype] *[noderef] iomem_base >>> drivers/platform/x86/apple-gmux.c:256:32: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned char [usertype] *[noderef] iomem_base @@ > drivers/platform/x86/apple-gmux.c:256:32: sparse: expected void [noderef] __iomem * > drivers/platform/x86/apple-gmux.c:256:32: sparse: got unsigned char [usertype] *[noderef] iomem_base > drivers/platform/x86/apple-gmux.c:258:53: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned char [usertype] * @@ > drivers/platform/x86/apple-gmux.c:258:53: sparse: expected void [noderef] __iomem * > drivers/platform/x86/apple-gmux.c:258:53: sparse: got unsigned char [usertype] * > drivers/platform/x86/apple-gmux.c:260:39: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned char [usertype] * @@ > drivers/platform/x86/apple-gmux.c:260:39: sparse: expected void [noderef] __iomem * > drivers/platform/x86/apple-gmux.c:260:39: sparse: got unsigned char [usertype] * > drivers/platform/x86/apple-gmux.c:272:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned char [usertype] * @@ > drivers/platform/x86/apple-gmux.c:272:55: sparse: expected void [noderef] __iomem * > drivers/platform/x86/apple-gmux.c:272:55: sparse: got unsigned char [usertype] * > drivers/platform/x86/apple-gmux.c:274:39: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned char [usertype] * @@ > drivers/platform/x86/apple-gmux.c:274:39: sparse: expected void [noderef] __iomem * > drivers/platform/x86/apple-gmux.c:274:39: sparse: got unsigned char [usertype] * > drivers/platform/x86/apple-gmux.c:276:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned char [usertype] *[noderef] iomem_base @@ > drivers/platform/x86/apple-gmux.c:276:15: sparse: expected void const [noderef] __iomem * > drivers/platform/x86/apple-gmux.c:276:15: sparse: got unsigned char [usertype] *[noderef] iomem_base >>> drivers/platform/x86/apple-gmux.c:276:15: sparse: sparse: cast to restricted __be32 >>> drivers/platform/x86/apple-gmux.c:286:19: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] @@ got restricted __be32 [usertype] @@ > drivers/platform/x86/apple-gmux.c:286:19: sparse: expected unsigned int [usertype] > drivers/platform/x86/apple-gmux.c:286:19: sparse: got restricted __be32 [usertype] > drivers/platform/x86/apple-gmux.c:286:46: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned char [usertype] *[noderef] iomem_base @@ > drivers/platform/x86/apple-gmux.c:286:46: sparse: expected void [noderef] __iomem * > drivers/platform/x86/apple-gmux.c:286:46: sparse: got unsigned char [usertype] *[noderef] iomem_base > drivers/platform/x86/apple-gmux.c:287:53: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned char [usertype] * @@ > drivers/platform/x86/apple-gmux.c:287:53: sparse: expected void [noderef] __iomem * > drivers/platform/x86/apple-gmux.c:287:53: sparse: got unsigned char [usertype] * > drivers/platform/x86/apple-gmux.c:289:39: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got unsigned char [usertype] * @@ > drivers/platform/x86/apple-gmux.c:289:39: sparse: expected void [noderef] __iomem * > drivers/platform/x86/apple-gmux.c:289:39: sparse: got unsigned char [usertype] * >>> drivers/platform/x86/apple-gmux.c:739:39: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [usertype] *[noderef] iomem_base @@ got void [noderef] __iomem * @@ > drivers/platform/x86/apple-gmux.c:739:39: sparse: expected unsigned char [usertype] *[noderef] iomem_base > drivers/platform/x86/apple-gmux.c:739:39: sparse: got void [noderef] __iomem * >>> drivers/platform/x86/apple-gmux.c:889:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned char [usertype] *[noderef] iomem_base @@ > drivers/platform/x86/apple-gmux.c:889:34: sparse: expected void volatile [noderef] __iomem *addr > drivers/platform/x86/apple-gmux.c:889:34: sparse: got unsigned char [usertype] *[noderef] iomem_base > drivers/platform/x86/apple-gmux.c:916:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned char [usertype] *[noderef] iomem_base @@ > drivers/platform/x86/apple-gmux.c:916:34: sparse: expected void volatile [noderef] __iomem *addr > drivers/platform/x86/apple-gmux.c:916:34: sparse: got unsigned char [usertype] *[noderef] iomem_base >>> drivers/platform/x86/apple-gmux.c:224:26: sparse: sparse: dereference of noderef expression > drivers/platform/x86/apple-gmux.c:227:31: sparse: sparse: dereference of noderef expression > drivers/platform/x86/apple-gmux.c:241:33: sparse: sparse: dereference of noderef expression > drivers/platform/x86/apple-gmux.c:243:17: sparse: sparse: dereference of noderef expression > drivers/platform/x86/apple-gmux.c:245:23: sparse: sparse: dereference of noderef expression > drivers/platform/x86/apple-gmux.c:256:23: sparse: sparse: dereference of noderef expression > drivers/platform/x86/apple-gmux.c:258:31: sparse: sparse: dereference of noderef expression > drivers/platform/x86/apple-gmux.c:260:17: sparse: sparse: dereference of noderef expression > drivers/platform/x86/apple-gmux.c:272:33: sparse: sparse: dereference of noderef expression > drivers/platform/x86/apple-gmux.c:274:17: sparse: sparse: dereference of noderef expression > drivers/platform/x86/apple-gmux.c:276:15: sparse: sparse: dereference of noderef expression > drivers/platform/x86/apple-gmux.c:286:37: sparse: sparse: dereference of noderef expression > drivers/platform/x86/apple-gmux.c:287:31: sparse: sparse: dereference of noderef expression > drivers/platform/x86/apple-gmux.c:289:17: sparse: sparse: dereference of noderef expression > drivers/platform/x86/apple-gmux.c: note: in included file: >>> include/linux/apple-gmux.h:69:41: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned char [usertype] *[noderef] __iomem iomem_base @@ got void [noderef] __iomem * @@ > include/linux/apple-gmux.h:69:41: sparse: expected unsigned char [usertype] *[noderef] __iomem iomem_base > include/linux/apple-gmux.h:69:41: sparse: got void [noderef] __iomem * >>> include/linux/apple-gmux.h:80:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem * @@ got unsigned char [usertype] * @@ > include/linux/apple-gmux.h:80:34: sparse: expected void const [noderef] __iomem * > include/linux/apple-gmux.h:80:34: sparse: got unsigned char [usertype] * >>> include/linux/apple-gmux.h:81:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned char [usertype] *[noderef] __iomem iomem_base @@ > include/linux/apple-gmux.h:81:17: sparse: expected void volatile [noderef] __iomem *addr > include/linux/apple-gmux.h:81:17: sparse: got unsigned char [usertype] *[noderef] __iomem iomem_base >>> include/linux/apple-gmux.h:72:14: sparse: sparse: dereference of noderef expression > include/linux/apple-gmux.h:80:23: sparse: sparse: dereference of noderef expression > include/linux/apple-gmux.h:81:17: sparse: sparse: dereference of noderef expression > drivers/platform/x86/apple-gmux.c:740:22: sparse: sparse: dereference of noderef expression > drivers/platform/x86/apple-gmux.c:888:13: sparse: sparse: dereference of noderef expression > drivers/platform/x86/apple-gmux.c:889:25: sparse: sparse: dereference of noderef expression > drivers/platform/x86/apple-gmux.c:915:13: sparse: sparse: dereference of noderef expression > drivers/platform/x86/apple-gmux.c:916:25: sparse: sparse: dereference of noderef expression > > vim +224 drivers/platform/x86/apple-gmux.c > > 220 > 221 static int gmux_mmio_wait(struct apple_gmux_data *gmux_data) > 222 { > 223 int i = 200; > > 224 u8 gwr = ioread8(gmux_data->iomem_base + GMUX_MMIO_COMMAND_SEND); > 225 > 226 while (i && gwr) { > > 227 gwr = ioread8(gmux_data->iomem_base + GMUX_MMIO_COMMAND_SEND); > 228 udelay(100); > 229 i--; > 230 } > 231 > 232 return !!i; > 233 } > 234 > 235 static u8 gmux_mmio_read8(struct apple_gmux_data *gmux_data, int port) > 236 { > 237 u8 val; > 238 > 239 mutex_lock(&gmux_data->index_lock); > 240 gmux_mmio_wait(gmux_data); > > 241 iowrite8((port & 0xff), gmux_data->iomem_base + GMUX_MMIO_PORT_SELECT); > 242 iowrite8(GMUX_MMIO_READ | sizeof(val), > 243 gmux_data->iomem_base + GMUX_MMIO_COMMAND_SEND); > 244 gmux_mmio_wait(gmux_data); > > 245 val = ioread8(gmux_data->iomem_base); > 246 mutex_unlock(&gmux_data->index_lock); > 247 > 248 return val; > 249 } > 250 > 251 static void gmux_mmio_write8(struct apple_gmux_data *gmux_data, int port, > 252 u8 val) > 253 { > 254 mutex_lock(&gmux_data->index_lock); > 255 gmux_mmio_wait(gmux_data); > > 256 iowrite8(val, gmux_data->iomem_base); > 257 > 258 iowrite8(port & 0xff, gmux_data->iomem_base + GMUX_MMIO_PORT_SELECT); > 259 iowrite8(GMUX_MMIO_WRITE | sizeof(val), > 260 gmux_data->iomem_base + GMUX_MMIO_COMMAND_SEND); > 261 > 262 gmux_mmio_wait(gmux_data); > 263 mutex_unlock(&gmux_data->index_lock); > 264 } > 265 > 266 static u32 gmux_mmio_read32(struct apple_gmux_data *gmux_data, int port) > 267 { > 268 u32 val; > 269 > 270 mutex_lock(&gmux_data->index_lock); > 271 gmux_mmio_wait(gmux_data); > > 272 iowrite8((port & 0xff), gmux_data->iomem_base + GMUX_MMIO_PORT_SELECT); > 273 iowrite8(GMUX_MMIO_READ | sizeof(val), > 274 gmux_data->iomem_base + GMUX_MMIO_COMMAND_SEND); > 275 gmux_mmio_wait(gmux_data); > > 276 val = be32_to_cpu(ioread32(gmux_data->iomem_base)); > 277 mutex_unlock(&gmux_data->index_lock); > 278 > 279 return val; > 280 } > 281 > 282 static void gmux_mmio_write32(struct apple_gmux_data *gmux_data, int port, > 283 u32 val) > 284 { > 285 mutex_lock(&gmux_data->index_lock); > > 286 iowrite32(cpu_to_be32(val), gmux_data->iomem_base); > > 287 iowrite8(port & 0xff, gmux_data->iomem_base + GMUX_MMIO_PORT_SELECT); > 288 iowrite8(GMUX_MMIO_WRITE | sizeof(val), > 289 gmux_data->iomem_base + GMUX_MMIO_COMMAND_SEND); > 290 gmux_mmio_wait(gmux_data); > 291 mutex_unlock(&gmux_data->index_lock); > 292 } > 293 >