Author: avg
Date: Tue Jul 16 15:28:28 2019
New Revision: 350033
URL: https://svnweb.freebsd.org/changeset/base/350033

Log:
  MFC r348688: first step towards enforcing must-succeed semantics for bus 
accessors

Modified:
  stable/12/sys/sys/bus.h
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sys/sys/bus.h
==============================================================================
--- stable/12/sys/sys/bus.h     Tue Jul 16 15:07:33 2019        (r350032)
+++ stable/12/sys/sys/bus.h     Tue Jul 16 15:28:28 2019        (r350033)
@@ -807,16 +807,30 @@ DECLARE_MODULE(name##_##busname, name##_##busname##_mo
 static __inline type varp ## _get_ ## var(device_t dev)                        
\
 {                                                                      \
        uintptr_t v;                                                    \
-       BUS_READ_IVAR(device_get_parent(dev), dev,                      \
+       int e;                                                          \
+       e = BUS_READ_IVAR(device_get_parent(dev), dev,                  \
            ivarp ## _IVAR_ ## ivar, &v);                               \
+       if (e != 0) {                                                   \
+               device_printf(dev, "failed to read ivar "               \
+                   __XSTRING(ivarp ## _IVAR_ ## ivar) " on bus %s, "   \
+                   "error = %d\n",                                     \
+                   device_get_nameunit(device_get_parent(dev)), e);    \
+       }                                                               \
        return ((type) v);                                              \
 }                                                                      \
                                                                        \
 static __inline void varp ## _set_ ## var(device_t dev, type t)                
\
 {                                                                      \
        uintptr_t v = (uintptr_t) t;                                    \
-       BUS_WRITE_IVAR(device_get_parent(dev), dev,                     \
+       int e;                                                          \
+       e = BUS_WRITE_IVAR(device_get_parent(dev), dev,                 \
            ivarp ## _IVAR_ ## ivar, v);                                \
+       if (e != 0) {                                                   \
+               device_printf(dev, "failed to write ivar "              \
+                   __XSTRING(ivarp ## _IVAR_ ## ivar) " on bus %s, "   \
+                   "error = %d\n",                                     \
+                   device_get_nameunit(device_get_parent(dev)), e);    \
+       }                                                               \
 }
 
 /**
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to