Added an explanatory comment for the device_create() compatibility stuff.
authorIan Abbott <abbotti@mev.co.uk>
Thu, 17 Jul 2008 12:11:58 +0000 (12:11 +0000)
committerIan Abbott <abbotti@mev.co.uk>
Thu, 17 Jul 2008 12:11:58 +0000 (12:11 +0000)
include/linux/device.h

index 5b4b23683fb6aff4b9372a9aa9d684197928b11f..4ee4454870ea0d6054e3251b47847c6b189e74c0 100644 (file)
 
 #include <linux/version.h>
 
+/*
+ * Notes:
+ *
+ * The 'struct device *' returned by the device_create() compatibility
+ * functions (assuming the return value is not an error pointer for which
+ * 'IS_ERR(ptr)' is true) is not really a 'struct device *' and should not
+ * be treated as such.  For kernel versions 2.5.0 to 2.6.17, the return
+ * value is actually a 'struct class_device *' in disguise and we assume
+ * the 'parent' parameter of device_create() is also a 'struct class_device *'
+ * in disguise from a previous call to device_create().
+ *
+ * The main limitation is that we cannot use a *real* 'struct device *' as
+ * the parent parameter of device_create(), only a pointer from a previous
+ * call to device_create().
+ */
+
 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
 #include <pcmcia/cs_types.h>