--- svgalib/kernel/svgalib_helper/kernel26compat.h	2008/10/16 23:28:58	1.1
+++ svgalib/kernel/svgalib_helper/kernel26compat.h	2008/10/16 23:34:41
@@ -117,7 +117,7 @@ static inline int devfs_unregister_chrde
                              MKDEV(SVGALIB_HELPER_MAJOR, _minor),       \
                              &sh_pci_devs[_minor]->dev->dev, _name);
 /* 2.6.26 changed class_device_create to device_create */
-#else
+#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27)
 #  define SLH_SYSFS_ADD_CONTROL                                          \
      device_create(svgalib_helper_class, NULL,                           \
                              MKDEV(SVGALIB_HELPER_MAJOR, 0),             \
@@ -127,6 +127,18 @@ static inline int devfs_unregister_chrde
      device_create(svgalib_helper_class, &sh_pci_devs[_minor]->dev->dev, \
                              MKDEV(SVGALIB_HELPER_MAJOR, _minor),        \
                              _name);
+/* 2.6.27 changed device_create to device_create_drvdata */
+#else
+#  define SLH_SYSFS_ADD_CONTROL                                          \
+     device_create_drvdata(svgalib_helper_class, NULL,                   \
+                           MKDEV(SVGALIB_HELPER_MAJOR, 0),               \
+                           "%s%d", "svga", 0);
+
+#  define SLH_SYSFS_ADD_DEVICE(_name, _minor)                            \
+     device_create_drvdata(svgalib_helper_class,                         \
+                           &sh_pci_devs[_minor]->dev->dev,               \
+                           MKDEV(SVGALIB_HELPER_MAJOR, _minor),          \
+                           "%s%d", _name, _minor);
 #endif
 
 #  define SLH_SYSFS_REMOVE_DEVICE(i)                                    \