__FBSDID("$FreeBSD: src/sys/opencrypto/cryptodev.c,v 1.34 2007/05/09 19:37:02 gnn Exp $");
*/
-#ifndef AUTOCONF_INCLUDED
+#include <linux/version.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38) && !defined(AUTOCONF_INCLUDED)
#include <linux/config.h>
#endif
#include <linux/types.h>
#include <linux/file.h>
#include <linux/mount.h>
#include <linux/miscdevice.h>
-#include <linux/version.h>
#include <asm/uaccess.h>
#include <cryptodev.h>
struct fcrypt *fcr;
dprintk("%s()\n", __FUNCTION__);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35)
+ /*
+ * on 2.6.35 private_data points to a miscdevice structure, we override
+ * it, which is currently safe to do.
+ */
if (filp->private_data) {
- printk("cryptodev: Private data already exists !\n");
- return(0);
+ printk("cryptodev: Private data already exists - %p!\n", filp->private_data);
+ return(-ENODEV);
}
+#endif
fcr = kmalloc(sizeof(*fcr), GFP_KERNEL);
if (!fcr) {
.owner = THIS_MODULE,
.open = cryptodev_open,
.release = cryptodev_release,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,36)
.ioctl = cryptodev_ioctl,
+#endif
#ifdef HAVE_UNLOCKED_IOCTL
.unlocked_ioctl = cryptodev_unlocked_ioctl,
#endif