up(&card->open_sem);
- return nonseekable_open(inode, file);
+ return 0;
}
static int emu10k1_midi_release(struct inode *inode, struct file *file)
DPD(4, "emu10k1_midi_read(), count %#x\n", (u32) count);
+ if (pos != &file->f_pos)
+ return -ESPIPE;
+
if (!access_ok(VERIFY_WRITE, buffer, count))
return -EFAULT;
DPD(4, "emu10k1_midi_write(), count=%#x\n", (u32) count);
+ if (pos != &file->f_pos)
+ return -ESPIPE;
+
if (!access_ok(VERIFY_READ, buffer, count))
return -EFAULT;
if (card->seq_mididev) {
kfree(card->seq_mididev);
- card->seq_mididev = NULL;
+ card->seq_mididev = 0;
}
}