git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
sound
/
oss
/
emu10k1
/
midi.c
diff --git
a/sound/oss/emu10k1/midi.c
b/sound/oss/emu10k1/midi.c
index
06a7899
..
cca3dad
100644
(file)
--- a/
sound/oss/emu10k1/midi.c
+++ b/
sound/oss/emu10k1/midi.c
@@
-45,7
+45,7
@@
#include "../sound_config.h"
#endif
#include "../sound_config.h"
#endif
-static
spinlock_t midi_spinlock __attribute((unused)) = SPIN_LOCK_UNLOCKED
;
+static
DEFINE_SPINLOCK(midi_spinlock)
;
static void init_midi_hdr(struct midi_hdr *midihdr)
{
static void init_midi_hdr(struct midi_hdr *midihdr)
{
@@
-58,14
+58,15
@@
static int midiin_add_buffer(struct emu10k1_mididevice *midi_dev, struct midi_hd
{
struct midi_hdr *midihdr;
{
struct midi_hdr *midihdr;
- if ((midihdr =
(struct midi_hdr *)
kmalloc(sizeof(struct midi_hdr), GFP_KERNEL)) == NULL) {
+ if ((midihdr = kmalloc(sizeof(struct midi_hdr), GFP_KERNEL)) == NULL) {
ERROR();
return -EINVAL;
}
init_midi_hdr(midihdr);
ERROR();
return -EINVAL;
}
init_midi_hdr(midihdr);
- if ((midihdr->data = (u8 *) kmalloc(MIDIIN_BUFLEN, GFP_KERNEL)) == NULL) {
+ midihdr->data = kmalloc(MIDIIN_BUFLEN, GFP_KERNEL);
+ if (!midihdr->data) {
ERROR();
kfree(midihdr);
return -1;
ERROR();
kfree(midihdr);
return -1;
@@
-110,24
+111,24
@@
match:
#endif
/* Wait for device to become free */
#endif
/* Wait for device to become free */
-
down
(&card->open_sem);
+
mutex_lock
(&card->open_sem);
while (card->open_mode & (file->f_mode << FMODE_MIDI_SHIFT)) {
if (file->f_flags & O_NONBLOCK) {
while (card->open_mode & (file->f_mode << FMODE_MIDI_SHIFT)) {
if (file->f_flags & O_NONBLOCK) {
-
up
(&card->open_sem);
+
mutex_unlock
(&card->open_sem);
return -EBUSY;
}
return -EBUSY;
}
-
up
(&card->open_sem);
+
mutex_unlock
(&card->open_sem);
interruptible_sleep_on(&card->open_wait);
if (signal_pending(current)) {
return -ERESTARTSYS;
}
interruptible_sleep_on(&card->open_wait);
if (signal_pending(current)) {
return -ERESTARTSYS;
}
-
down
(&card->open_sem);
+
mutex_lock
(&card->open_sem);
}
}
- if ((midi_dev =
(struct emu10k1_mididevice *)
kmalloc(sizeof(*midi_dev), GFP_KERNEL)) == NULL)
+ if ((midi_dev = kmalloc(sizeof(*midi_dev), GFP_KERNEL)) == NULL)
return -EINVAL;
midi_dev->card = card;
return -EINVAL;
midi_dev->card = card;
@@
-183,9
+184,9
@@
match:
card->open_mode |= (file->f_mode << FMODE_MIDI_SHIFT) & (FMODE_MIDI_READ | FMODE_MIDI_WRITE);
card->open_mode |= (file->f_mode << FMODE_MIDI_SHIFT) & (FMODE_MIDI_READ | FMODE_MIDI_WRITE);
-
up
(&card->open_sem);
+
mutex_unlock
(&card->open_sem);
- return
0
;
+ return
nonseekable_open(inode, file)
;
}
static int emu10k1_midi_release(struct inode *inode, struct file *file)
}
static int emu10k1_midi_release(struct inode *inode, struct file *file)
@@
-234,9
+235,9
@@
static int emu10k1_midi_release(struct inode *inode, struct file *file)
kfree(midi_dev);
kfree(midi_dev);
-
down
(&card->open_sem);
+
mutex_lock
(&card->open_sem);
card->open_mode &= ~((file->f_mode << FMODE_MIDI_SHIFT) & (FMODE_MIDI_READ | FMODE_MIDI_WRITE));
card->open_mode &= ~((file->f_mode << FMODE_MIDI_SHIFT) & (FMODE_MIDI_READ | FMODE_MIDI_WRITE));
-
up
(&card->open_sem);
+
mutex_unlock
(&card->open_sem);
wake_up_interruptible(&card->open_wait);
unlock_kernel();
wake_up_interruptible(&card->open_wait);
unlock_kernel();
@@
-244,7
+245,7
@@
static int emu10k1_midi_release(struct inode *inode, struct file *file)
return 0;
}
return 0;
}
-static ssize_t emu10k1_midi_read(struct file *file, char *buffer, size_t count, loff_t * pos)
+static ssize_t emu10k1_midi_read(struct file *file, char
__user
*buffer, size_t count, loff_t * pos)
{
struct emu10k1_mididevice *midi_dev = (struct emu10k1_mididevice *) file->private_data;
ssize_t ret = 0;
{
struct emu10k1_mididevice *midi_dev = (struct emu10k1_mididevice *) file->private_data;
ssize_t ret = 0;
@@
-253,9
+254,6
@@
static ssize_t emu10k1_midi_read(struct file *file, char *buffer, size_t count,
DPD(4, "emu10k1_midi_read(), count %#x\n", (u32) count);
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;
if (!access_ok(VERIFY_WRITE, buffer, count))
return -EFAULT;
@@
-319,29
+317,26
@@
static ssize_t emu10k1_midi_read(struct file *file, char *buffer, size_t count,
return ret;
}
return ret;
}
-static ssize_t emu10k1_midi_write(struct file *file, const char *buffer, size_t count, loff_t * pos)
+static ssize_t emu10k1_midi_write(struct file *file, const char
__user
*buffer, size_t count, loff_t * pos)
{
struct emu10k1_mididevice *midi_dev = (struct emu10k1_mididevice *) file->private_data;
struct midi_hdr *midihdr;
{
struct emu10k1_mididevice *midi_dev = (struct emu10k1_mididevice *) file->private_data;
struct midi_hdr *midihdr;
- ssize_t ret = 0;
unsigned long flags;
DPD(4, "emu10k1_midi_write(), count=%#x\n", (u32) count);
unsigned long flags;
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 (!access_ok(VERIFY_READ, buffer, count))
return -EFAULT;
- if ((midihdr =
(struct midi_hdr *)
kmalloc(sizeof(struct midi_hdr), GFP_KERNEL)) == NULL)
+ if ((midihdr = kmalloc(sizeof(struct midi_hdr), GFP_KERNEL)) == NULL)
return -EINVAL;
midihdr->bufferlength = count;
midihdr->bytesrecorded = 0;
midihdr->flags = 0;
return -EINVAL;
midihdr->bufferlength = count;
midihdr->bytesrecorded = 0;
midihdr->flags = 0;
- if ((midihdr->data = (u8 *) kmalloc(count, GFP_KERNEL)) == NULL) {
+ midihdr->data = kmalloc(count, GFP_KERNEL);
+ if (!midihdr->data) {
ERROR();
kfree(midihdr);
return -EINVAL;
ERROR();
kfree(midihdr);
return -EINVAL;
@@
-350,7
+345,7
@@
static ssize_t emu10k1_midi_write(struct file *file, const char *buffer, size_t
if (copy_from_user(midihdr->data, buffer, count)) {
kfree(midihdr->data);
kfree(midihdr);
if (copy_from_user(midihdr->data, buffer, count)) {
kfree(midihdr->data);
kfree(midihdr);
- return
ret ? ret :
-EFAULT;
+ return -EFAULT;
}
spin_lock_irqsave(&midi_spinlock, flags);
}
spin_lock_irqsave(&midi_spinlock, flags);
@@
-495,7
+490,7
@@
int emu10k1_seq_midi_open(int dev, int mode,
DPF(2, "emu10k1_seq_midi_open()\n");
DPF(2, "emu10k1_seq_midi_open()\n");
- if ((midi_dev =
(struct emu10k1_mididevice *)
kmalloc(sizeof(*midi_dev), GFP_KERNEL)) == NULL)
+ if ((midi_dev = kmalloc(sizeof(*midi_dev), GFP_KERNEL)) == NULL)
return -EINVAL;
midi_dev->card = card;
return -EINVAL;
midi_dev->card = card;
@@
-530,10
+525,8
@@
void emu10k1_seq_midi_close(int dev)
card = midi_devs[dev]->devc;
emu10k1_mpuout_close(card);
card = midi_devs[dev]->devc;
emu10k1_mpuout_close(card);
- if (card->seq_mididev) {
- kfree(card->seq_mididev);
- card->seq_mididev = 0;
- }
+ kfree(card->seq_mididev);
+ card->seq_mididev = NULL;
}
int emu10k1_seq_midi_out(int dev, unsigned char midi_byte)
}
int emu10k1_seq_midi_out(int dev, unsigned char midi_byte)
@@
-547,14
+540,15
@@
int emu10k1_seq_midi_out(int dev, unsigned char midi_byte)
card = midi_devs[dev]->devc;
card = midi_devs[dev]->devc;
- if ((midihdr =
(struct midi_hdr *)
kmalloc(sizeof(struct midi_hdr), GFP_KERNEL)) == NULL)
+ if ((midihdr = kmalloc(sizeof(struct midi_hdr), GFP_KERNEL)) == NULL)
return -EINVAL;
midihdr->bufferlength = 1;
midihdr->bytesrecorded = 0;
midihdr->flags = 0;
return -EINVAL;
midihdr->bufferlength = 1;
midihdr->bytesrecorded = 0;
midihdr->flags = 0;
- if ((midihdr->data = (u8 *) kmalloc(1, GFP_KERNEL)) == NULL) {
+ midihdr->data = kmalloc(1, GFP_KERNEL);
+ if (!midihdr->data) {
ERROR();
kfree(midihdr);
return -EINVAL;
ERROR();
kfree(midihdr);
return -EINVAL;