Thanks, applied most fixes. Further points:
On 05.02.2014 23:32, Daniel Mack wrote:
Mostly due to:
ERROR: DOS line endings
Did you send the patch using git send-email?
Yes, I only get the two warnings as Takashi. I also moved the strings in one line as he suggested.
+struct bcd2000 {
- struct usb_device *dev;
- struct snd_card *card;
- struct usb_interface *intf;
- int card_index;
- struct snd_pcm *pcm;
Unused?
- struct list_head midi_list;
- spinlock_t lock;
Unused?
- struct mutex mutex;
That one's also kinda unused (see below)
You're right. The original module had multiple interfaces. Removed.
+static DEFINE_MUTEX(devices_mutex); +static unsigned int devices_used; +static struct usb_driver bcd2000_driver;
Kill excessive newlines here.
Okay, removed. I find little gaps useful to separate logical parts.
You could add something like this:
#ifdef CONFIG_SND_DEBUG static void bcd2000_midi_hex_dump(const char *prefix, const unsigned char *buf, int len) { print_hex_dump(KERN_DEBUG, prefix, DUMP_PREFIX_NONE, 16, 1, buf, len, false); } #else static inline void bcd2000_midi_hex_dump(const char *prefix, const unsigned char *buf, int len) {} #endif
And then just call the function from various places. That would safe you the module parameter, the condition check, and an indentation level.
Hm, I removed the CONFIG_ part as the module parameter would allow me and possible users to debug things spontaneously. But I can use our approach if you think it would be better nonetheless?
/* safety check */
if (bcd2k->midi_cmd_offset + tocopy < BUFSIZE &&
buf_offset + tocopy < len) {
memcpy(&bcd2k->midi_cmd_buf[bcd2k->midi_cmd_offset],
&buf[buf_offset], tocopy);
} else {
snd_printk(KERN_ERR PREFIX "access violation in %s\n",
__func__);
You want to drop the entire packet here, right?
Hm, I'm not sure. A "return" after the snd_printk would do, right?
Thank you very much! Mario