Received: by 2002:a89:48b:0:b0:1f5:f2ab:c469 with SMTP id a11csp1349729lqd; Thu, 25 Apr 2024 12:45:47 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCV1bap2enZ2fV8pfDRj8sNmBxc2tX7L39a6t9XNq0IDZvReTpQHoWNbAvdXAbcIW8DUQuilCcbThSn8HPoBCT07S3wmYrxNjWpVyc6ngQ== X-Google-Smtp-Source: AGHT+IHvdiykBDa6/EDkp1aqE3mElr9zStRzous/AEFiLfQeCV5wswUOxSDlUhq7wOcSwc+OuKaH X-Received: by 2002:aca:1b08:0:b0:3c7:513b:4298 with SMTP id b8-20020aca1b08000000b003c7513b4298mr677908oib.54.1714074347546; Thu, 25 Apr 2024 12:45:47 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1714074347; cv=pass; d=google.com; s=arc-20160816; b=QGfJGiBX1+7uKrW+Vj7BzytHwivOXubqmxcgKQsGPuEEdw5VE3DSuVvjBH6F9fykrq m1jQ8PPGmxdmC+ApUPW6PKSa4qYhJtTvcQDGauXNjL1dAn26Fmy1Bgy+jsqY5cj2cpYC n8u75Gsm7QhQFRmyD+Qx7YCjRt13NXFL7BIhhU9XDGdKA7+Hdup0vqeBkODecZdhDyt2 4FsiC7kxVLIu/nORnWkA21JNaYhZ6IDPxmREpRxUAJhBbupbHNjQSd1IKausRXcnYK2J xuXxOaf1O/6FfDOBx2LIR+D2wszHuuc1wRpZPzGoXGZftNbMw76LuQKWaO3JX6cRrNiD kZHw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:list-unsubscribe:list-subscribe :list-id:precedence:dkim-signature; bh=7IAXEvA4ZWCrR3JmSQt9ypdNc8lO4tNBuaxk9blx0R8=; fh=h2lBSLYTEsYeOcfkUyDID+v/rL5rwg/k/yOjKf6kZJo=; b=x/RxaYNCTvbI36uos9SLTbUqjlTRca8ric1OE96W3Vekjthkjlccmi1G1mqU5nSaxK +ylMhZOLRp8F+zcr8jQnVuySXY3Qh0GtbDCrtXkpAyIe8vdKADN2oP+7ldwwGC7IJORK dl9LK54tWOXkLMEWDWJrxXMMNjb6L9MPx05pEdI7bLWk/vZxTiyhTKPlhWX7AoWuahaf RizEVTzSMt0on2CK75rxi4V6D+Tovtc8Oal4xNYkOakRH8d1ZOJWa7Uu9GK3PosaVOCe JTAiOrBKk/eptJhM1E3LZ5DRe9bG3JSRw6HlkzVjcVBRdp8EQNOK8YZmOOsV/SiOfoL6 9yAw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=DMgrpv+K; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-159086-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-159086-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id if4-20020a0562141c4400b006a0423b368dsi18377225qvb.325.2024.04.25.12.45.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Apr 2024 12:45:47 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-159086-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=DMgrpv+K; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-159086-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-159086-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 476A21C216D9 for ; Thu, 25 Apr 2024 19:45:47 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 62E4B152532; Thu, 25 Apr 2024 19:45:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="DMgrpv+K" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 820B938FB6; Thu, 25 Apr 2024 19:45:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714074337; cv=none; b=bKWN30dCuT8XCu9IZadgJEx39TUxsmsUwK03YryMVppvqBmmp/0AmPEI3jWSoq5X4Xg9bRiqUF34CR5lA20OMLQ+ZfMCL5HyzNIh6u+FDdP9IcOivxES4QYF1lYo6vSwY1A7T0Ti14k9DvEHe5z91zPGxvtPEUhQwiX+wFbK8SE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714074337; c=relaxed/simple; bh=ii5cdCmylSrCYuAbjnq23PCiMMHhvORNNb2ZdSUJH64=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=eIEm3wofRcsKj5hxDuB/A1nlF5K5zU/xdwzx5E/qWCn5fKgFoXhXfveiANFAwIWi1Zgw6ZGA15FfyAXlcgxoXXXdVIf8AoeCHIwkV+OOOlrHuRaTcZsU0q8Q1lurAO+x5sVnrr1Aquc5GXO4myr4mwhgBk0IyFC78T9+E4TqIZc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=DMgrpv+K; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 553C0C113CC; Thu, 25 Apr 2024 19:45:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1714074337; bh=ii5cdCmylSrCYuAbjnq23PCiMMHhvORNNb2ZdSUJH64=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=DMgrpv+Kf3nsvrblhKu8VsgYRAyRPmTW64jjD5rLF2diiiIzhJssj1a9nB5c8D0hw DOIsOdirt2STnNGPU+fjAupf7X3Q8LTjgs1NxHPC43clhNkyf3XayU8QVYJL3e1rX6 u+Z4MG/NV1sg4WTNXSAyvBwLWRKcpbjy+a14qupyddby6jO0z5GGmRlt5nJGE8OgbN ZfxpkHOvXO2+NsFULVEM4+gigs4OAlTyHLG3cA/9+FIVa2YF0FY1SDxLI0bUmIUOHr HnFmisAnqwrxGiQHvtS8rFJmQspNEsmr1z9csfNojq0PG7v4DOHeclaMX+45mVOteZ RFYOJJJMfsFzA== Received: by mail-ot1-f41.google.com with SMTP id 46e09a7af769-6eba841d83cso303993a34.2; Thu, 25 Apr 2024 12:45:37 -0700 (PDT) X-Forwarded-Encrypted: i=1; AJvYcCWankNtAt05l6L3ldIumLgzgvUDTMzcFDPQHYrimyRbKLqBLVYdJBe4EpX9mU3dgBs4zeVsGQeypNEhCtd4fhIRMkAI3yXKUMRpjtoaKC76DWWYNAkYBuB+F4CEb5XXuiroQ3RiqF0ivqzfXH+gld5r/vRDoFEv69zLkfnwSgvjUItk X-Gm-Message-State: AOJu0Ywat8tr+F9atp0ZyR8emR1SNo0b7kjHzJ/FZUsJlUibdRkMojn4 rfskSN1ya21qzEK0fnHTCol+kKkJ44nl/1lRD95kgfmHslEKwcBvAr9vUJmOLgHvXOlOIZ/wa85 sYw1tOTl5HnciVORhIxB75ajYVrM= X-Received: by 2002:a4a:ba07:0:b0:5aa:14ff:4128 with SMTP id b7-20020a4aba07000000b005aa14ff4128mr816756oop.1.1714074336594; Thu, 25 Apr 2024 12:45:36 -0700 (PDT) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: In-Reply-To: From: "Rafael J. Wysocki" Date: Thu, 25 Apr 2024 21:45:24 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [GIT PULL] ACPI fixes for v6.9-rc6 To: Linus Torvalds , Jarred White Cc: "Rafael J. Wysocki" , ACPI Devel Maling List , Linux PM , Linux Kernel Mailing List , Easwar Hariharan Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Apr 25, 2024 at 9:18=E2=80=AFPM Linus Torvalds wrote: > > On Thu, 25 Apr 2024 at 11:58, Linus Torvalds > wrote: > > > > And maybe this time, it's not a buggy mess? > > Actually, even with MASK_VAL() fixed, I think it's *STILL* a buggy mess. > > Why? Beuse the *uses* of MASK_VAL() seem entirely bogus. > > In particular, we have this in cpc_write(): > > if (reg->space_id =3D=3D ACPI_ADR_SPACE_SYSTEM_MEMORY) > val =3D MASK_VAL(reg, val); > > switch (size) { > case 8: > writeb_relaxed(val, vaddr); > break; > case 16: > writew_relaxed(val, vaddr); > break; > ... > > and I strongly suspect that it needs to update the 'vaddr' too. Something= like > > if (reg->space_id =3D=3D ACPI_ADR_SPACE_SYSTEM_MEMORY) { > val =3D MASK_VAL(reg, val); > #ifdef __LITTLE_ENDIAN > vaddr +=3D reg->bit_offset >> 3; > if (reg->bit_offset & 7) > return -EFAULT; > #else > /* Fixme if we ever care */ > if (reg->bit_offset) > return -EFAULT; > #endif > } > > *might* be changing this in the right direction, but it's unclear and > I neither know that CPC rules, nor did I think _that_ much about it. This is a very nice catch, thank you! > Anyway, the take-away should be that all this code is entirely broken > and somebody didn't think enough about it. > > It's possible that that whole cpc_write() ACPI_ADR_SPACE_SYSTEM_MEMORY > case should be done as a 64-bit "read-mask-write" sequence. > > Possibly with "reg->bit_offset =3D=3D 0" and the 8/16/32/64-bit cases as = a > special case for "just do the write". > > Or, maybe writes with a non-zero bit offset shouldn't be allowed at > all, and there are CPC rules that aren't checked. I don't know. I only > know that the current code is seriously broken. In any case, this needs to be taken care of (Jared?). Thanks, Rafael