From nobody Thu Nov 03 04:28:07 2022 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4N2rNL1GcBz4gs3r for ; Thu, 3 Nov 2022 04:28:18 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic308-8.consmr.mail.gq1.yahoo.com (sonic308-8.consmr.mail.gq1.yahoo.com [98.137.68.32]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4N2rNK1sRyz3mKf for ; Thu, 3 Nov 2022 04:28:17 +0000 (UTC) (envelope-from marklmi@yahoo.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1667449695; bh=cuESWokoYcfpnjoTEwemmLJl/klH7JDZqcWuMKEQNOA=; h=From:Subject:Date:To:References:From:Subject:Reply-To; b=ZJ9icdChFfBXANHa5ApLX2EYQKcyFcZBbQGhRXWg3my6B0MGuTKRABkUdIHYQfY/cIkKF5etjgiscolcmLaCEvaR6s5F2mSnsDT5FWJo04Cok7dC7F9Ak5rxADLHn8t8n/OACn6NKqd2lwJs3ayfpLzAKwvEhMlQ8Ak7c0UzBRJr5gmHmNJWsHPM1pGfTiEj5PmDEvP3m1sx+DUNtNMrF7RXPQHRfiRqunQ5DT1YGWDP/MlOGS6UzVWd7xyJoinW6UmpDJVw4FRhL0yHtYy1siqdFCnS40r1Jymu6rnpkMLAELVxtq2bKuEPNoH3A866eT1QIsekdcK6C8hrOjgFvQ== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1667449695; bh=/QVEiwVbX/V817zYl9TXysER9LL4mylTiZ8mRUP22ob=; h=X-Sonic-MF:From:Subject:Date:To:From:Subject; b=Ug1Ey+LqgJJ92tA+42NgjxTusfIRs+2bZ1PNzUw7+htAlfSqF/DdgKbcY2yhhhv3SwQcPJmESZUNVjHmNsd4r8uH6kOWR2lI3sFvLS8TP40P6mVkMWg42ChQEp2dBl8549noLtNQWZatctulcPkYulofz/mXDQKWVKNCpP7roCdZtPw/sfyo3PGMCkonEqv/B5KDnfhA0B9pqTwAyBJTFjjKZXnEK7TaeIef0McLsj8YVzsd74p1RrS04S9UxRyMVz1I9N3Ms+iK3GEyfSCGXlC8hzDdv1169dQCXRhVPA2HA42I1b8p48F5KYfrlWuBqqcrEDxEc0hk/PSYngmMKg== X-YMail-OSG: haJHAp4VM1m58mcAoPV1Rjc4uNTdUJkbbpiDKYdzX0KreTfn0JwHzCqniMtUMtI 6liM2RwdNNc4r7HrmxieSYnrwECH7unoPmt0wuU4QzutRJhOjPmY79ty3cmMK9kYQ7XTj6Ms3Jbd g4uwwu4zDYssPwZrl2iZW5qENK_.eI7XDuXN8MMg_yMYN1ar4zGPE_TDfIhC0gKzxhOLjF9cyi6L 5tLiIbSI3L38kZdUX32nddcjhF_aY8JYuODT4Kl1Q40vgXaXQTP9o5N2tJZmOUXNoaqoa5fBxAAP YJovq55yaBgD.4gynMaWwBBFF9TcZg1ISiL0hy.mK.AKv.rj7kfkgRdxaABFpLqVz29jU9fR6xh6 wnOpe0roYzF2ly0b79VciO4ghsN2PvIO.DUFmpmJCl8XY1GGHhdgl41uGL8oqYPrhgwgVuKh_.8o ViPBiF8VKKkF7gIdEeZny9bWq7pDyVcO0ve7ovm7TfwYLjz9X_NR_fl.dEu0wJKA7uZLMaZHlqpT JHakgRll97RCNywhPIbgCiyufRGQFYJnaWL7SKmaNCn_.w4rZqbfkalVPJ8itRLEmJJU5paJOOKF yhqbkBbDF5R.uLxOSTldqRCGquV4B7l.lOt2rBvwJudXFPgRz25rhiijGLFZNVHf4OOClx9fQL7y xGXhR4Opm5bPphpbmk86TjIdLdLYpDPxQkaezgfkHZ12Sh11EF9LQqd2wcr0MAe.NNhW612VqGJs kjG1BDobSQzfW0kpvEDBjflAvLIRqrWpD.QwWoXf0Awi0YIRuY_w55.VYBuOPEDPmHiwYZaAu3Jt A1mENbKpoTaxwav4WapnjGN6Rii2NjOj7iDmw3FCBl6uiTwTXZT8XchzAal.RlFBvPZ.uPq9Iumf qfdRkcz5sgMb10kNknm8MggOk7R2aFObSP0KpqTA5Q0Ys1AbGsGhM5jadIB9X5fThkc54m_75Xp_ wA7HGJtix5JQJHJPDhwg5SzmL2KF9iP9wCIHWBVTh11OAYoOdGT3XP2KUdFtb0syuhWMJLnYkW8_ F6M0tK1ELtD6KJRUDsqsjMtnc_osOWqO9OePWpW3CBPEGA.9YC76xypqJVHl3c.pKjNvLn3E4jBf UeR_fHaBwl8Ttn32wS.OyRmtuUhN.RMhcrSAVsfI0K0youmJjqDdhtQDJgLEinkmv8hDbR3BhD0q XvHJJbEOFT1VzFwueejMpwFy09QO6yqNXPucCF1VtPto0voNvn04mU.IWK.h_taHLcAMByp7H3P4 ZREZ3t5Dafyj02msEOde.s7KDclxO4Fl85N6g.oLF1.uDgLKmm9omoykLlKGzBUMuCD06_0UM0Xb n4QOpwO5MVSBSBZmg9F0_nxlaTx51OmHpcU3SGSmfs8axm1t1fD6tRo.7zcNHv9FHDOktUcUtsp0 32bL4YVGae5FxZl0xSoqn3lSLGBMCRNohKmJxQj21vkDFjBvUJVRJxxqpGQrWcrCeJkChnweUIeL qKWQ1eIaV82Ct9RqSh4veb7j5NRDTqK7y3As2JckKMJtVhsuxO6ahoa_lWpv96imF9zr9pe_avDf BGCzzyBk0YEl4bzNIrUjUAQJFJFTWhDzj1pm9.QwqOdRcyAZG2BjvJcT8Xp.0pfGHJl2oincivbn AHWtfqVZpgq_6kVEkLVvMerQYN6bbWsHPNL5vjgnJj0DKz7gOgCl9NJW8wrytYNU4_auK.PcykPc AccNOx_myfg_rZxLcibaWnVH8DMyebamReyqvl3TBvJopx0KuJqUbwxibUlWNQxge2slodzh7vpl 2BQgzjSED251zMsNwuX7mBf9tij_UpVhemOiNyA3zhU7lnZ65RxYVPA6iROL0vnOzN4hT2tC_rYy 99hu5S.7wyYO7kgJyJeITF7YoeEDHli8wh1VDN3tg7WuSIdbQALi9v_a2GVqB2BedjF42OHzYP7s nj8Day1V7tjb04HsKS..2.7mIJmgqDtUpFnroDVUHlYFrD87kl5c.gQLdxvVQyT.4fABMM4q0iFN lOazTUmPSmWCTf6zvZjLhcxuAF3OVhiCqLn2UDDXn1P6yJtT1EPm3b5vUhE1a3QHLNSK1XHAgF16 kWROrEOp9Mewg7zCHVMYMW7ujZbzC6SdkapJDvQmaF928xsXrOb8CfOZoiMSoxRId0Yk9jiShW7Z q9y_5aTHpx48FUiSuK5YWR9wazNiF5yKdpTqVdIDeMwME6I65JKLq99UazxsGm8qOcPYa3hzlfKW tMp0Ng_W9oSK8JNzZJ9.uZ6qF0z5Fx5Mkv7kfY0E6iRt9qMfDiU.NO3npXKSE8w-- X-Sonic-MF: Received: from sonic.gate.mail.ne1.yahoo.com by sonic308.consmr.mail.gq1.yahoo.com with HTTP; Thu, 3 Nov 2022 04:28:15 +0000 Received: by hermes--production-ne1-6bcfb7fb87-qqz4t (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID a081e930c0de70863a1468b7f14857dd; Thu, 03 Nov 2022 04:28:11 +0000 (UTC) From: Mark Millard Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@freebsd.org Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\)) Subject: A FreeBSD DTB content handling question, via an example that currently crashes Message-Id: Date: Wed, 2 Nov 2022 21:28:07 -0700 To: FreeBSD Hackers X-Mailer: Apple Mail (2.3696.120.41.1.1) References: X-Rspamd-Queue-Id: 4N2rNK1sRyz3mKf X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=yahoo.com header.s=s2048 header.b=ZJ9icdCh; dmarc=pass (policy=reject) header.from=yahoo.com; spf=pass (mx1.freebsd.org: domain of marklmi@yahoo.com designates 98.137.68.32 as permitted sender) smtp.mailfrom=marklmi@yahoo.com X-Spamd-Result: default: False [-3.45 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-0.98)[-0.983]; NEURAL_HAM_SHORT(-0.97)[-0.971]; MV_CASE(0.50)[]; DMARC_POLICY_ALLOW(-0.50)[yahoo.com,reject]; R_DKIM_ALLOW(-0.20)[yahoo.com:s=s2048]; R_SPF_ALLOW(-0.20)[+ptr:yahoo.com]; MIME_GOOD(-0.10)[text/plain]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; ARC_NA(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[98.137.68.32:from]; DWL_DNSWL_NONE(0.00)[yahoo.com:dkim]; RCVD_TLS_LAST(0.00)[]; MLMMJ_DEST(0.00)[freebsd-hackers@freebsd.org]; TO_DN_ALL(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; FREEMAIL_FROM(0.00)[yahoo.com]; MID_RHS_MATCH_FROM(0.00)[]; DKIM_TRACE(0.00)[yahoo.com:+]; MIME_TRACE(0.00)[0:+]; FROM_EQ_ENVFROM(0.00)[]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/20, country:US]; FREEMAIL_ENVFROM(0.00)[yahoo.com]; RWL_MAILSPIKE_POSSIBLE(0.00)[98.137.68.32:from] X-ThisMailContainsUnwantedMimeParts: N The following setup for a question is based on the RPi* support code in the kernel, code that leads to crashes for RPi* DTB's from over more than the last year. The question is really more general and the RPi* is an example. There is for the RPi* support: static int bcm_sdhci_attach(device_t dev) { . . . sc->sc_dma_ch =3D bcm_dma_allocate(BCM_DMA_CH_ANY); if (sc->sc_dma_ch =3D=3D BCM_DMA_CH_INVALID) goto fail; . . . where: static struct bcm_dma_softc *bcm_dma_sc =3D NULL; . . . int bcm_dma_allocate(int req_ch) { struct bcm_dma_softc *sc =3D bcm_dma_sc; . . . mtx_lock(&sc->sc_mtx); . . . and bcm_dma_sc is made non-NULL via bcm_dma_probe/bcm_dma_attach (not shown). This used to not crash when the RPi* .dtb's used the order: QUOTE > dma@7e007000 { > compatible =3D "brcm,bcm2835-dma"; > . . . > mmc@7e300000 { > compatible =3D "brcm,bcm2835-mmc", = "brcm,bcm2835-sdhci"; > . . . END QUOTE so the brcm,bcm2835-dma happened to be probed and attached before brcm,bcm2835-sdhci was probed and attached. However, since sometime after the 2021-08-05 RPi* firmware release, the more modern RPi* .dtb content has had the order: QUOTE > mmc@7e300000 { > compatible =3D "brcm,bcm2835-mmc", = "brcm,bcm2835-sdhci"; > . . . > dma@7e007000 { > compatible =3D "brcm,bcm2835-dma"; > . . . END QUOTE This leads to the bcm_dma_allocate in bcm_sdhci_attach doing, in effect: struct bcm_dma_softc *sc =3D NULL; . . . mtx_lock(&sc->sc_mtx); because the bcm_dma_probe/bcm_dma_attach does not happen first. Result: crash. (But just avoiding the crash locally, would not be sufficient overall.) (I failed to find any DTB specification material indicating an ordering requirement for such things. If I'm wrong, point me at it.) Does FreeBSD have any principles that cover handling DTB content for both potential orders for such things? If yes, what is it? Are there good examples around to follow? =3D=3D=3D Mark Millard marklmi at yahoo.com