#include <linux/module.h>
#include <linux/version.h>
#include <linux/init.h>
+#include <linux/interrupt.h>
+#include <linux/hrtimer.h>
#include <linux/wait.h>
#include <linux/uio.h>
#include <linux/net.h>
static int isotp_release(struct socket *sock)
{
struct sock *sk = sock->sk;
- struct isotp_sock *so = isotp_sk(sk);
+ struct isotp_sock *so;
+
+ if (!sk)
+ return 0;
+
+ so = isotp_sk(sk);
/* wait for complete transmission of current pdu */
wait_event_interruptible(so->wait, so->tx.state == ISOTP_IDLE);
.init = isotp_init,
};
-static struct can_proto isotp_can_proto __read_mostly = {
+static const struct can_proto isotp_can_proto = {
.type = SOCK_DGRAM,
.protocol = CAN_ISOTP,
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)