Date: Mon, 27 May 2019 08:44:43 +0300 From: Andriy Gapon <avg@FreeBSD.org> To: freebsd-arch@FreeBSD.ORG Subject: proposal: require ivar accessors to succeed Message-ID: <2b2ab28f-45c5-1c28-f923-170d95c20c3d@FreeBSD.org>
next in thread | raw e-mail | index | archive | help
__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. -- Andriy Gapon
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2b2ab28f-45c5-1c28-f923-170d95c20c3d>