Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 15 Sep 2012 19:28:54 +0000 (UTC)
From:      Ed Schouten <ed@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r240539 - in head/sys: dev/drm2 dev/drm2/i915 fs/devfs mips/mips
Message-ID:  <201209151928.q8FJSs1p016318@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ed
Date: Sat Sep 15 19:28:54 2012
New Revision: 240539
URL: http://svn.freebsd.org/changeset/base/240539

Log:
  Prefer __containerof() above member2struct().
  
  The first does proper checking of the argument types, while the latter
  does not.

Modified:
  head/sys/dev/drm2/drm_gem.c
  head/sys/dev/drm2/i915/i915_drv.h
  head/sys/fs/devfs/devfs_int.h
  head/sys/mips/mips/pmap.c

Modified: head/sys/dev/drm2/drm_gem.c
==============================================================================
--- head/sys/dev/drm2/drm_gem.c	Sat Sep 15 19:17:19 2012	(r240538)
+++ head/sys/dev/drm2/drm_gem.c	Sat Sep 15 19:28:54 2012	(r240539)
@@ -396,7 +396,7 @@ drm_gem_object_from_offset(struct drm_de
 		    (uintmax_t)offset);
 		return (NULL);
 	}
-	obj = member2struct(drm_gem_object, map_list, map_list);
+	obj = __containerof(map_list, struct drm_gem_object, map_list);
 	return (obj);
 }
 

Modified: head/sys/dev/drm2/i915/i915_drv.h
==============================================================================
--- head/sys/dev/drm2/i915/i915_drv.h	Sat Sep 15 19:17:19 2012	(r240538)
+++ head/sys/dev/drm2/i915/i915_drv.h	Sat Sep 15 19:28:54 2012	(r240539)
@@ -889,7 +889,7 @@ struct drm_i915_gem_object {
 	int pending_flip;
 };
 
-#define	to_intel_bo(x) member2struct(drm_i915_gem_object, base, (x))
+#define	to_intel_bo(x) __containerof(x, struct drm_i915_gem_object, base)
 
 /**
  * Request queue structure.

Modified: head/sys/fs/devfs/devfs_int.h
==============================================================================
--- head/sys/fs/devfs/devfs_int.h	Sat Sep 15 19:17:19 2012	(r240538)
+++ head/sys/fs/devfs/devfs_int.h	Sat Sep 15 19:28:54 2012	(r240539)
@@ -69,7 +69,7 @@ struct cdev_priv {
 	LIST_HEAD(, cdev_privdata) cdp_fdpriv;
 };
 
-#define	cdev2priv(c)	member2struct(cdev_priv, cdp_c, c)
+#define	cdev2priv(c)	__containerof(c, struct cdev_priv, cdp_c)
 
 struct cdev	*devfs_alloc(int);
 int	devfs_dev_exists(const char *);

Modified: head/sys/mips/mips/pmap.c
==============================================================================
--- head/sys/mips/mips/pmap.c	Sat Sep 15 19:17:19 2012	(r240538)
+++ head/sys/mips/mips/pmap.c	Sat Sep 15 19:28:54 2012	(r240539)
@@ -1629,7 +1629,7 @@ pmap_pvh_free(struct md_page *pvh, pmap_
 
 	pv = pmap_pvh_remove(pvh, pmap, va);
 	KASSERT(pv != NULL, ("pmap_pvh_free: pv not found, pa %lx va %lx",
-	     (u_long)VM_PAGE_TO_PHYS(member2struct(vm_page, md, pvh)),
+	     (u_long)VM_PAGE_TO_PHYS(__containerof(pvh, struct vm_page, md)),
 	     (u_long)va));
 	free_pv_entry(pmap, pv);
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201209151928.q8FJSs1p016318>