Date: Wed, 29 May 2019 12:58:29 +0300 From: Andriy Gapon <avg@FreeBSD.org> To: freebsd-arch@FreeBSD.ORG Subject: Re: proposal: require ivar accessors to succeed Message-ID: <ae9ea2ac-d469-3fbb-61c5-f7344128be2d@FreeBSD.org> 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/05/2019 08: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. > Thank you. > I've create a review request for this suggestion: https://reviews.freebsd.org/D20458 Please join in if you are interested. -- Andriy Gapon
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?ae9ea2ac-d469-3fbb-61c5-f7344128be2d>