#include <linux/init.h>
#include <linux/kbd_ll.h>
#include <linux/delay.h>
-#include <linux/random.h>
#include <linux/poll.h>
#include <linux/miscdevice.h>
#include <linux/slab.h>
#include <linux/pc_keyb.h>
#include <asm/keyboard.h>
-#include <asm/bitops.h>
+#include <linux/bitops.h>
#include <asm/uaccess.h>
#include <asm/irq.h>
#include <asm/system.h>
}
-spinlock_t kbd_controller_lock = SPIN_LOCK_UNLOCKED;
+DEFINE_SPINLOCK(kbd_controller_lock);
static unsigned char handle_kbd_event(void);
return;
}
- add_mouse_randomness(scancode);
if (aux_count) {
int head = queue->head;
i--;
}
if (count-i) {
- file->f_dentry->d_inode->i_atime = CURRENT_TIME;
+ struct inode *inode = file->f_dentry->d_inode;
+ inode->i_atime = current_fs_time(inode->i_sb);
return count-i;
}
if (signal_pending(current))
return retval;
queue = (struct aux_queue *) kmalloc(sizeof(*queue), GFP_KERNEL);
+ if (!queue) {
+ misc_deregister(&psaux_mouse);
+ return -ENOMEM;
+ }
+
memset(queue, 0, sizeof(*queue));
queue->head = queue->tail = 0;
init_waitqueue_head(&queue->proc_list);