Date: Mon, 27 May 2019 18:10:28 +0000 From: "Bjoern A. Zeeb" <bzeeb-lists@lists.zabbadoz.net> To: "Andriy Gapon" <avg@FreeBSD.org> Cc: freebsd-arch@FreeBSD.ORG Subject: Re: proposal: require ivar accessors to succeed Message-ID: <E7700915-34BE-4371-A258-C010638CFA38@lists.zabbadoz.net> In-Reply-To: <2b2ab28f-45c5-1c28-f923-170d95c20c3d@FreeBSD.org> References: <2b2ab28f-45c5-1c28-f923-170d95c20c3d@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 27 May 2019, at 5:44, Andriy Gapon wrote: > __BUS_ACCESSOR() macro is used to define accessors to bus IVAR > variables. > Unfortunately, accessors defined in such a fashion completely ignore > return > values of BUS_READ_IVAR() and BUS_WRITE_IVAR() method calls. There is > no way to > see if a call is successful. Typically, this should not be a problem > as a > device driver targets a specific bus (sometimes, buses) and it should > know what > IVARs the bus has. So, the driver should make only those IVAR calls > that are > supposed to always succeed on the bus. > But sometimes things can go wrong as with everything else. > > So, I am proposing to add some code to __BUS_ACCESSOR to verify the > success. > For example, we can panic when a call fails. The checks could be > under > INVARIANTS or under DIAGNOSTICS or under a new kernel option. > A less drastic option is to print a warning message on an error. > > This is mostly intended to help driver writers and maintainers. > > Opinions, suggestions, etc are welcome. What about “fixing” the KPI (possibly adding a 2nd one), deprecating the old one, and (slowly over time) migrating old stuff over? /bz
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E7700915-34BE-4371-A258-C010638CFA38>