-#define ips_active(pset) io_active(&(pset)->ips_object)
-#define ips_lock(pset) io_lock(&(pset)->ips_object)
-#define ips_lock_try(pset) io_lock_try(&(pset)->ips_object)
-#define ips_lock_held_kdp(pset) io_lock_held_kdp(&(pset)->ips_object)
-#define ips_unlock(pset) io_unlock(&(pset)->ips_object)
-#define ips_reference(pset) io_reference(&(pset)->ips_object)
-#define ips_release(pset) io_release(&(pset)->ips_object)
+#define ips_object_to_pset(io) __container_of(io, struct ipc_pset, ips_object)
+#define ips_to_object(pset) (&(pset)->ips_object)
+#define ips_active(pset) io_active(ips_to_object(pset))
+#define ips_lock(pset) io_lock(ips_to_object(pset))
+#define ips_lock_try(pset) io_lock_try(ips_to_object(pset))
+#define ips_lock_held_kdp(pset) io_lock_held_kdp(ips_to_object(pset))
+#define ips_unlock(pset) io_unlock(ips_to_object(pset))
+#define ips_reference(pset) io_reference(ips_to_object(pset))
+#define ips_release(pset) io_release(ips_to_object(pset))