{"id":2220333,"url":"http://patchwork.ozlabs.org/api/1.2/covers/2220333/?format=json","web_url":"http://patchwork.ozlabs.org/project/linuxppc-dev/cover/20260406232444.3117516-1-dianders@chromium.org/","project":{"id":2,"url":"http://patchwork.ozlabs.org/api/1.2/projects/2/?format=json","name":"Linux PPC development","link_name":"linuxppc-dev","list_id":"linuxppc-dev.lists.ozlabs.org","list_email":"linuxppc-dev@lists.ozlabs.org","web_url":"https://github.com/linuxppc/wiki/wiki","scm_url":"https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git","webscm_url":"https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/","list_archive_url":"https://lore.kernel.org/linuxppc-dev/","list_archive_url_format":"https://lore.kernel.org/linuxppc-dev/{}/","commit_url_format":"https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/commit/?id={}"},"msgid":"<20260406232444.3117516-1-dianders@chromium.org>","list_archive_url":"https://lore.kernel.org/linuxppc-dev/20260406232444.3117516-1-dianders@chromium.org/","date":"2026-04-06T23:22:53","name":"[v5,0/9] driver core: Fix some race conditions","submitter":{"id":9763,"url":"http://patchwork.ozlabs.org/api/1.2/people/9763/?format=json","name":"Douglas Anderson","email":"dianders@chromium.org"},"mbox":"http://patchwork.ozlabs.org/project/linuxppc-dev/cover/20260406232444.3117516-1-dianders@chromium.org/mbox/","series":[{"id":498902,"url":"http://patchwork.ozlabs.org/api/1.2/series/498902/?format=json","web_url":"http://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=498902","date":"2026-04-06T23:22:53","name":"driver core: Fix some race conditions","version":5,"mbox":"http://patchwork.ozlabs.org/series/498902/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/covers/2220333/comments/","headers":{"Return-Path":"\n <linuxppc-dev+bounces-19414-incoming=patchwork.ozlabs.org@lists.ozlabs.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256\n header.s=google header.b=J51YEBaC;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org\n (client-ip=2404:9400:21b9:f100::1; helo=lists.ozlabs.org;\n envelope-from=linuxppc-dev+bounces-19414-incoming=patchwork.ozlabs.org@lists.ozlabs.org;\n receiver=patchwork.ozlabs.org)","lists.ozlabs.org;\n arc=none smtp.remote-ip=\"2607:f8b0:4864:20::1331\"","lists.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=chromium.org","lists.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256\n header.s=google header.b=J51YEBaC;\n\tdkim-atps=neutral","lists.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=chromium.org\n (client-ip=2607:f8b0:4864:20::1331; helo=mail-dy1-x1331.google.com;\n envelope-from=dianders@chromium.org; receiver=lists.ozlabs.org)"],"Received":["from lists.ozlabs.org (lists.ozlabs.org\n [IPv6:2404:9400:21b9:f100::1])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1 raw public key)\n server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fqQRb3mLWz1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 07 Apr 2026 09:25:30 +1000 (AEST)","from boromir.ozlabs.org (localhost [127.0.0.1])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 4fqQRY0JCGz2ygY;\n\tTue, 07 Apr 2026 09:25:29 +1000 (AEST)","from mail-dy1-x1331.google.com (mail-dy1-x1331.google.com\n [IPv6:2607:f8b0:4864:20::1331])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n\t(No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 4fqQRW0Lp3z2yfs\n\tfor <linuxppc-dev@lists.ozlabs.org>; Tue, 07 Apr 2026 09:25:26 +1000 (AEST)","by mail-dy1-x1331.google.com with SMTP id\n 5a478bee46e88-2ce102afb0aso2630017eec.1\n        for <linuxppc-dev@lists.ozlabs.org>;\n Mon, 06 Apr 2026 16:25:25 -0700 (PDT)","from dianders.sjc.corp.google.com\n ([2a00:79e0:2e7c:8:c071:3b78:5a5:824a])\n        by smtp.gmail.com with ESMTPSA id\n 5a478bee46e88-2ca760b0518sm14730975eec.0.2026.04.06.16.25.18\n        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n        Mon, 06 Apr 2026 16:25:22 -0700 (PDT)"],"ARC-Seal":"i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1775517928;\n\tcv=none;\n b=TS44JN8eOuujM6vNtzlOSmP92QBOPfiAZt6+jrzMFtlQfnE+xziDkAqqUtYHVLlsHLvMnfLKyx6mEmnXxBo8r5lZ9pPMBzHV0cqeiWsj1bBNzqPCEGl+OMfQtPl2aq9FYYip+EhKSnKW7KjO1/pgXArAHLedmzYy6FBqjiA/O871w86widqamUwhqfWjtCNQtmlXGnFSx/HEgTDCGmmQjKFagwbjFuUmqU+5xX8OEcytSxcWSo2KrhgiG63eKbGpBfFb9yVSyg0gTP5cTobN8D2EFh35jOBY9eFrTQWRBOiyN51pmtgcPlnI87wREVTRRYEmKq/yD9Ho9yWOCsEqNw==","ARC-Message-Signature":"i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707;\n\tt=1775517928; c=relaxed/relaxed;\n\tbh=e+LsTmUaKDUP6TtbtpmsofePBR8TWMvjJHv9+/xi4nY=;\n\th=From:To:Cc:Subject:Date:Message-ID:MIME-Version;\n b=TjOwBC4SQ2xwUJAEj2+10rD+CII5C/6ZgaOUnS1b/LE8MEKXvm+pcg4pTeKdDAAmFS2V6PbBpIht1F/NqtFOzzVCVSspTmB2NduDoiCdYE2PYAbJ1m8EC2mfod+FxHcpIwUIyM1Lad6gF4APHDsaOcpYEVd4kzWIkCz/zIsNeBvgDf7HDo4rpBZkV63kkb0iJ0zfnb3jp8UDx6M5i2DsIqR31hQulwRCOLyjfUoyfdHCWzqDOJ9nTBG7vsDclAI4nawgpr99c2TXQiwTFb1A+JhPTtAkNvDb1usQl/2M6CY0kzZFMMBhM7VbUetwO6M1mJGH7pYIE2zPf2v9UQwczA==","ARC-Authentication-Results":"i=1; lists.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=chromium.org;\n dkim=pass (1024-bit key;\n unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256\n header.s=google header.b=J51YEBaC; dkim-atps=neutral;\n spf=pass (client-ip=2607:f8b0:4864:20::1331; helo=mail-dy1-x1331.google.com;\n envelope-from=dianders@chromium.org;\n receiver=lists.ozlabs.org) smtp.mailfrom=chromium.org","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=chromium.org; s=google; t=1775517923; x=1776122723;\n darn=lists.ozlabs.org;\n        h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n         :to:from:from:to:cc:subject:date:message-id:reply-to;\n        bh=e+LsTmUaKDUP6TtbtpmsofePBR8TWMvjJHv9+/xi4nY=;\n        b=J51YEBaCA+bUN38q3XXwMl21y97zWG5ODUEZhkKNQusDnDyZ323wmziB9eBSPBPGih\n         LxsA74yXTRkqXHiCe8NunyctS9PeCoXYWchGeDgpjRbkcgnodIiEqXg8AJUhIHyzNIa8\n         yQtstMnnwR9jfHpMMUj2qHwroIcCbgmBeXY6I=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1775517923; x=1776122723;\n        h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n         :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n         :message-id:reply-to;\n        bh=e+LsTmUaKDUP6TtbtpmsofePBR8TWMvjJHv9+/xi4nY=;\n        b=jWnwHUYkjTxAp/vJ40EM2uhD/t4BVlbWOmK1GQU/el+/M9hWQ4YWeeN9Rd84qFmyN6\n         D6Uxe4YP5JXKjAHhOpwvfHqDg/eYA6lK83PyqFuZDIrGnBpUFyBiwPKSOF+yWUVPQpDu\n         1OjHZ85W4R039qWN/ANLPzAcfSbyCoDsLae/FtSJ7j12VyW9WIyvzD7XY9gtf/lje4is\n         UThM0wD/K2UIZEqRDgNwJcGrQj+TpJ1fQzMlI8fPK2vTOcsKyEuKvMkia35bNepSIlg4\n         4pTaQMFzUzXjEjGK5xdgG2JUNI2wasMkDYxLD2i2rAoK7plwjxbjRaInxtrO17sK/mKn\n         iDxw==","X-Forwarded-Encrypted":"i=1;\n AJvYcCWYI1v4/8OZeavSEE/37KSRiKvWIUD1airuGap2ieVs0KAERrEL6WcA/8fdRqLyD8+9ewYla11mhPyHvqg=@lists.ozlabs.org","X-Gm-Message-State":"AOJu0YxwzJaPJwNLtdi1D700waWL5ztHODNc0zLtInqiYd8/YG5q8JSx\n\tq37WufNM+EQzVRJDaz7iEjtZWSWNrdKmbYgrzIXH35uA34a52+f7IjMWxBz/g/XWgQ==","X-Gm-Gg":"AeBDiesYO1Uajt175btCgC7VC0EphUTHVkSUU2PVZ7vsqM4l7kISCf3T5ONsx6ohotK\n\tINiahD2QLghJItURwCkkzgPJF4viNUO0OnVf7fHUz/Up7hzEJ6oAuYVJme5I5fy85pEwklblHD6\n\t98POnLjkpTPPg7HgtCY2j9F/vnU6M1xtD0OKl9mzDhf8W/YK1hWXtF3NDLHDkPawL5a3XbF88bo\n\tsBYuWh0Yj4IF+Z02EFRTGIh+tnZNzMMLiq8NzfSoTIBNY0z079bpkG5bQTdIlzZziE8+wWPOexj\n\tvFl3iea3lgZNhPHdMKAtL/PMVJVgf3ipjYazAb4r/JFcrJ7AWqmTUrxROgPvErOG/hdYZKK2Uv+\n\tav/0/LGB8tB4C+GWSSZBfxNAlUu8ZJNZDj0yEYDyQkK2e/Pwk1MOwiPr9dVKfR96jGfcaZ2JHt0\n\tIGPXgT2qQyfIHt0WfU9sBCPigHPeE3D0yPNeenffoj4/Bpw0pJUs8m+VqCrvoNwv7nUY/hyltJb\n\tvO0tGyk+oD92qC4cPy+","X-Received":"by 2002:a05:7300:818c:b0:2c7:3a7:c7b1 with SMTP id\n 5a478bee46e88-2cbf9503916mr7679632eec.1.1775517923360;\n        Mon, 06 Apr 2026 16:25:23 -0700 (PDT)","From":"Douglas Anderson <dianders@chromium.org>","To":"Greg Kroah-Hartman <gregkh@linuxfoundation.org>,\n\t\"Rafael J . Wysocki\" <rafael@kernel.org>,\n\tDanilo Krummrich <dakr@kernel.org>,\n\tAlan Stern <stern@rowland.harvard.edu>","Cc":"Alexey Kardashevskiy <aik@ozlabs.ru>,\n\tJohan Hovold <johan@kernel.org>,\n\tEric Dumazet <edumazet@google.com>,\n\tLeon Romanovsky <leon@kernel.org>,\n\tChristoph Hellwig <hch@lst.de>,\n\tRobin Murphy <robin.murphy@arm.com>,\n\tmaz@kernel.org,\n\tAlexander Lobakin <aleksander.lobakin@intel.com>,\n\tSaravana Kannan <saravanak@kernel.org>,\n\tDouglas Anderson <dianders@chromium.org>,\n\tAndrew Morton <akpm@linux-foundation.org>,\n\tFrank.Li@kernel.org,\n\tJason Gunthorpe <jgg@ziepe.ca>,\n\talex@ghiti.fr,\n\talexander.stein@ew.tq-group.com,\n\tandre.przywara@arm.com,\n\tandrew@codeconstruct.com.au,\n\tandrew@lunn.ch,\n\tandriy.shevchenko@linux.intel.com,\n\taou@eecs.berkeley.edu,\n\tardb@kernel.org,\n\tastewart@tektelic.com,\n\tbhelgaas@google.com,\n\tbrgl@kernel.org,\n\tbroonie@kernel.org,\n\tcatalin.marinas@arm.com,\n\tchleroy@kernel.org,\n\tdavem@davemloft.net,\n\tdavid@kernel.org,\n\tdevicetree@vger.kernel.org,\n\tdmaengine@vger.kernel.org,\n\tdriver-core@lists.linux.dev,\n\tgbatra@linux.ibm.com,\n\tgregory.clement@bootlin.com,\n\thkallweit1@gmail.com,\n\tiommu@lists.linux.dev,\n\tjirislaby@kernel.org,\n\tjoel@jms.id.au,\n\tjoro@8bytes.org,\n\tkees@kernel.org,\n\tkevin.brodsky@arm.com,\n\tkuba@kernel.org,\n\tlenb@kernel.org,\n\tlgirdwood@gmail.com,\n\tlinux-acpi@vger.kernel.org,\n\tlinux-arm-kernel@lists.infradead.org,\n\tlinux-aspeed@lists.ozlabs.org,\n\tlinux-cxl@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org,\n\tlinux-mips@vger.kernel.org,\n\tlinux-mm@kvack.org,\n\tlinux-pci@vger.kernel.org,\n\tlinux-riscv@lists.infradead.org,\n\tlinux-serial@vger.kernel.org,\n\tlinux-snps-arc@lists.infradead.org,\n\tlinux-usb@vger.kernel.org,\n\tlinux@armlinux.org.uk,\n\tlinuxppc-dev@lists.ozlabs.org,\n\tm.szyprowski@samsung.com,\n\tmaddy@linux.ibm.com,\n\tmani@kernel.org,\n\tmiko.lenczewski@arm.com,\n\tmpe@ellerman.id.au,\n\tnetdev@vger.kernel.org,\n\tnpiggin@gmail.com,\n\tosalvador@suse.de,\n\toupton@kernel.org,\n\tpabeni@redhat.com,\n\tpalmer@dabbelt.com,\n\tpeter.ujfalusi@gmail.com,\n\tpeterz@infradead.org,\n\tpjw@kernel.org,\n\trobh@kernel.org,\n\tsebastian.hesselbarth@gmail.com,\n\ttglx@kernel.org,\n\ttsbogend@alpha.franken.de,\n\tvgupta@kernel.org,\n\tvkoul@kernel.org,\n\twill@kernel.org,\n\twilly@infradead.org,\n\tyangyicong@hisilicon.com,\n\tyeoreum.yun@arm.com","Subject":"[PATCH v5 0/9] driver core: Fix some race conditions","Date":"Mon,  6 Apr 2026 16:22:53 -0700","Message-ID":"<20260406232444.3117516-1-dianders@chromium.org>","X-Mailer":"git-send-email 2.53.0.1213.gd9a14994de-goog","X-Mailing-List":"linuxppc-dev@lists.ozlabs.org","List-Id":"<linuxppc-dev.lists.ozlabs.org>","List-Help":"<mailto:linuxppc-dev+help@lists.ozlabs.org>","List-Owner":"<mailto:linuxppc-dev+owner@lists.ozlabs.org>","List-Post":"<mailto:linuxppc-dev@lists.ozlabs.org>","List-Archive":"<https://lore.kernel.org/linuxppc-dev/>,\n  <https://lists.ozlabs.org/pipermail/linuxppc-dev/>","List-Subscribe":"<mailto:linuxppc-dev+subscribe@lists.ozlabs.org>,\n  <mailto:linuxppc-dev+subscribe-digest@lists.ozlabs.org>,\n  <mailto:linuxppc-dev+subscribe-nomail@lists.ozlabs.org>","List-Unsubscribe":"<mailto:linuxppc-dev+unsubscribe@lists.ozlabs.org>","Precedence":"list","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","X-Spam-Status":"No, score=-0.2 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED,\n\tDKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE,\n\tSPF_HELO_NONE,SPF_PASS autolearn=disabled version=4.0.1 OzLabs 8","X-Spam-Checker-Version":"SpamAssassin 4.0.1 (2024-03-25) on lists.ozlabs.org"},"content":"The main goal of this series is to fix the observed bug talked about\nin the first patch (\"driver core: Don't let a device probe until it's\nready\"). That patch fixes a problem that has been observed in the real\nworld and could land even if the rest of the patches are found\nunacceptable or need to be spun.\n\nThat said, during patch review Danilo correctly pointed out that many\nof the bitfield accesses in \"struct device\" are unsafe. I added a\nbunch of patches in the series to address each one.\n\nDanilo said he's most worried about \"can_match\", so I put that one\nfirst. After that, I tried to transition bitfields to flags in reverse\norder to when the bitfield was added.\n\nEven if transitioning from bitfields to flags isn't truly needed for\ncorrectness, it seems silly (and wasteful of space in struct device)\nto have some in bitfields and some as flags. Thus I didn't spend time\nfor each bitfield showing that it's truly needed for correctness.\n\nTransition was done semi manually. Presumably someone skilled at\ncoccinelle could do a better job, but I just used sed in a heavy-\nhanded manner and then reviewed/fixed the results, undoing anything my\nscript got wrong. My terrible/ugly script was:\n\nvar=can_match\ncaps=\"${var^^}\"\nfor f in $(git grep -l \"[>\\.]${var}[^1-9_a-zA-Z\\[]\"); do\n  echo $f\n  sed -i~ -e \"s/\\([a-zA-Z_0-9\\.>()-][a-zA-Z_0-9\\.>()-]*\\)->${var} = true/set_bit(DEV_FLAG_${caps}, \\&\\\\1->flags)/\" \"$f\"\n  sed -i~ -e \"s/\\([a-zA-Z_0-9\\.>()-][a-zA-Z_0-9\\.>()-]*\\)\\.${var} = true/dev_set_${caps}(\\&\\\\1)/\" \"$f\"\n  sed -i~ -e \"s/\\([a-zA-Z_0-9\\.>()-][a-zA-Z_0-9\\.>()-]*\\)->${var} = false/clear_bit(DEV_FLAG_${caps}, \\&\\\\1->flags)/\" \"$f\"\n  sed -i~ -e \"s/\\([a-zA-Z_0-9\\.>()-][a-zA-Z_0-9\\.>()-]*\\)\\.${var} = false/dev_clear_${caps}(\\&\\\\1)/\" \"$f\"\n  sed -i~ -e \"s/\\([a-zA-Z_0-9\\.>()-][a-zA-Z_0-9\\.>()-]*\\)->${var} = \\([^;]*\\)/assign_bit(DEV_FLAG_${caps}, \\&\\\\1->flags, \\\\2)/\" \"$f\"\n  sed -i~ -e \"s/\\([a-zA-Z_0-9\\.>()-][a-zA-Z_0-9\\.>()-]*\\)\\.${var} = \\([^;]*\\)/dev_assign_${caps}(\\&\\\\1, \\\\2)/\" \"$f\"\n  sed -i~ -e \"s/\\([a-zA-Z_0-9\\.>()-][a-zA-Z_0-9\\.>()-]*\\)->${var}\\([^1-9_a-zA-Z\\[]\\)/test_bit(DEV_FLAG_${caps}, \\&\\\\1->flags)\\\\2/\" \"$f\"\n  sed -i~ -e \"s/\\([a-zA-Z_0-9\\.>()-][a-zA-Z_0-9\\.>()-]*\\)\\.${var}\\([^1-9_a-zA-Z\\[]\\)/dev_${caps}(\\&\\\\1)\\\\2/\" \"$f\"\ndone\n\nFrom v3 to v4, I transitioned to accessor functions with another ugly\nsed script. I had git format the old patches, then transformed them\nwith:\n\nfor f in *.patch; do\n  echo $f\n  sed -i~ -e \"s/test_and_set_bit(DEV_FLAG_\\([^,]*\\), \\&\\(.*\\)->flags)/dev_test_and_set_\\\\L\\\\1(\\\\2)/\" \"$f\"\n  sed -i~ -e \"s/test_and_set_bit(DEV_FLAG_\\([^,]*\\), \\(.*\\)\\.flags)/dev_test_and_set_\\\\L\\\\1(\\\\2)/\" \"$f\"\n  sed -i~ -e \"s/test_bit(DEV_FLAG_\\([^,]*\\), \\&\\(.*\\)->flags)/dev_\\\\L\\\\1(\\\\2)/\" \"$f\"\n  sed -i~ -e \"s/test_bit(DEV_FLAG_\\([^,]*\\), \\(.*\\)\\.flags)/dev_\\\\L\\\\1(\\\\2)/\" \"$f\"\n  sed -i~ -e \"s/set_bit(DEV_FLAG_\\([^,]*\\), \\&\\(.*\\)->flags)/dev_set_\\\\L\\\\1(\\\\2)/\" \"$f\"\n  sed -i~ -e \"s/set_bit(DEV_FLAG_\\([^,]*\\), \\(.*\\)\\.flags)/dev_set_\\\\L\\\\1(\\\\2)/\" \"$f\"\n  sed -i~ -e \"s/clear_bit(DEV_FLAG_\\([^,]*\\), \\&\\(.*\\)->flags)/dev_clear_\\\\L\\\\1(\\\\2)/\" \"$f\"\n  sed -i~ -e \"s/clear_bit(DEV_FLAG_\\([^,]*\\), \\(.*\\)\\.flags)/dev_clear_\\\\L\\\\1(\\\\2)/\" \"$f\"\n  sed -i~ -e \"s/assign_bit(DEV_FLAG_\\([^,]*\\), \\&\\(.*\\)->flags, \\(.*\\))/dev_assign_\\\\L\\\\1(\\\\2, \\\\3)/\" \"$f\"\n  sed -i~ -e \"s/assign_bit(DEV_FLAG_\\([^,]*\\), \\(.*\\)\\.flags, \\(.*\\))/dev_assign_\\\\L\\\\1(\\\\2, \\\\3)/\" \"$f\"\ndone\n\n...and then did a few manual touchups for spacing.\n\nI only marked the first patch as a \"Fix\" since it is the only one\nfixing observed problems. Other patches could be considered fixes too\nif folks want.\n\nI tested the first patch in the series backported to kernel 6.6 on the\nPixel phone that was experiencing the race. I added extra printouts to\nmake sure that the problem was hitting / addressed. The rest of the\npatches are tested with allmodconfig with arm32, arm64, ppc, and\nx86. I boot tested on an arm64 Chromebook running mainline.\n\nChanges in v5:\n- ready_to_prove => ready_to_probe typo\n- device_lock() while calling dev_set_ready_to_probe()\n- Add comment before \"can_match = true\" from Danilo.\n- undef __create_dev_flag_accessors\n\nChanges in v4:\n- Use accessor functions for flags\n\nChanges in v3:\n- Use a new \"flags\" bitfield\n- Add missing \\n in probe error message\n\nChanges in v2:\n- Instead of adjusting the ordering, use \"ready_to_probe\" flag\n\nDouglas Anderson (9):\n  driver core: Don't let a device probe until it's ready\n  driver core: Replace dev->can_match with dev_can_match()\n  driver core: Replace dev->dma_iommu with dev_dma_iommu()\n  driver core: Replace dev->dma_skip_sync with dev_dma_skip_sync()\n  driver core: Replace dev->dma_ops_bypass with dev_dma_ops_bypass()\n  driver core: Replace dev->state_synced with dev_state_synced()\n  driver core: Replace dev->dma_coherent with dev_dma_coherent()\n  driver core: Replace dev->of_node_reused with dev_of_node_reused()\n  driver core: Replace dev->offline + ->offline_disabled with accessors\n\n arch/arc/mm/dma.c                             |   4 +-\n arch/arm/mach-highbank/highbank.c             |   2 +-\n arch/arm/mach-mvebu/coherency.c               |   2 +-\n arch/arm/mm/dma-mapping-nommu.c               |   4 +-\n arch/arm/mm/dma-mapping.c                     |  28 ++--\n arch/arm64/kernel/cpufeature.c                |   2 +-\n arch/arm64/mm/dma-mapping.c                   |   2 +-\n arch/mips/mm/dma-noncoherent.c                |   2 +-\n arch/powerpc/kernel/dma-iommu.c               |   8 +-\n .../platforms/pseries/hotplug-memory.c        |   4 +-\n arch/riscv/mm/dma-noncoherent.c               |   2 +-\n drivers/acpi/scan.c                           |   2 +-\n drivers/base/core.c                           |  55 +++++---\n drivers/base/cpu.c                            |   4 +-\n drivers/base/dd.c                             |  36 ++++--\n drivers/base/memory.c                         |   2 +-\n drivers/base/pinctrl.c                        |   2 +-\n drivers/base/platform.c                       |   2 +-\n drivers/dma/ti/k3-udma-glue.c                 |   6 +-\n drivers/dma/ti/k3-udma.c                      |   6 +-\n drivers/iommu/dma-iommu.c                     |   9 +-\n drivers/iommu/iommu.c                         |   5 +-\n drivers/net/pcs/pcs-xpcs-plat.c               |   2 +-\n drivers/of/device.c                           |   6 +-\n drivers/pci/of.c                              |   2 +-\n drivers/pci/pwrctrl/core.c                    |   2 +-\n drivers/regulator/bq257xx-regulator.c         |   2 +-\n drivers/regulator/rk808-regulator.c           |   2 +-\n drivers/tty/serial/serial_base_bus.c          |   2 +-\n drivers/usb/gadget/udc/aspeed-vhub/dev.c      |   2 +-\n include/linux/device.h                        | 122 ++++++++++++------\n include/linux/dma-map-ops.h                   |   6 +-\n include/linux/dma-mapping.h                   |   2 +-\n include/linux/iommu-dma.h                     |   3 +-\n kernel/cpu.c                                  |   4 +-\n kernel/dma/mapping.c                          |  12 +-\n mm/hmm.c                                      |   2 +-\n 37 files changed, 218 insertions(+), 142 deletions(-)"}