-int snd_rawmidi_control_ioctl(snd_card_t * card, snd_ctl_file_t * control,
- unsigned int cmd, unsigned long arg)
+/* FIXME: need to unlock BKL to allow preemption */
+static int snd_rawmidi_ioctl(struct inode *inode, struct file *file,
+ unsigned int cmd, unsigned long arg)
+{
+ int err;
+ unlock_kernel();
+ err = _snd_rawmidi_ioctl(inode, file, cmd, arg);
+ lock_kernel();
+ return err;
+}
+
+static int snd_rawmidi_control_ioctl(snd_card_t * card,
+ snd_ctl_file_t * control,
+ unsigned int cmd,
+ unsigned long arg)