Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0235f641 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman Committed by Jeff Garzik
Browse files

USB: HSO: minor fixes due to code review



Fix up problems in hso.c driver as pointed out by Andrew.

Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
parent 6c59f569
Loading
Loading
Loading
Loading
+24 −19
Original line number Original line Diff line number Diff line
@@ -102,8 +102,12 @@


#define MAX_RX_URBS			2
#define MAX_RX_URBS			2


#define get_serial_by_tty(x)	\
static inline struct hso_serial *get_serial_by_tty(struct tty_struct *tty)
	(x ? (struct hso_serial *)x->driver_data : NULL)
{
	if (tty)
		return tty->driver_data;
	return NULL;
}


/*****************************************************************************/
/*****************************************************************************/
/* Debugging functions                                                       */
/* Debugging functions                                                       */
@@ -294,24 +298,25 @@ static int hso_get_activity(struct hso_device *hso_dev);


/* #define DEBUG */
/* #define DEBUG */


#define dev2net(x) (x->port_data.dev_net)
static inline struct hso_net *dev2net(struct hso_device *hso_dev)
#define dev2ser(x) (x->port_data.dev_serial)
{
	return hso_dev->port_data.dev_net;
}

static inline struct hso_serial *dev2ser(struct hso_device *hso_dev)
{
	return hso_dev->port_data.dev_serial;
}


/* Debugging functions */
/* Debugging functions */
#ifdef DEBUG
#ifdef DEBUG
static void dbg_dump(int line_count, const char *func_name, unsigned char *buf,
static void dbg_dump(int line_count, const char *func_name, unsigned char *buf,
		     unsigned int len)
		     unsigned int len)
{
{
	u8 i = 0;
	static char name[255];

	printk(KERN_DEBUG "[%d:%s]: len %d", line_count, func_name, len);


	for (i = 0; i < len; i++) {
	sprintf(name, "hso[%d:%s]", line_count, func_name);
		if (!(i % 16))
	print_hex_dump_bytes(name, DUMP_PREFIX_NONE, buf, len);
			printk("\n    0x%03x:  ", i);
		printk("%02x ", (unsigned char)buf[i]);
	}
	printk("\n");
}
}


#define DUMP(buf_, len_)	\
#define DUMP(buf_, len_)	\
@@ -528,12 +533,11 @@ static struct hso_serial *get_serial_by_shared_int_and_type(


static struct hso_serial *get_serial_by_index(unsigned index)
static struct hso_serial *get_serial_by_index(unsigned index)
{
{
	struct hso_serial *serial;
	struct hso_serial *serial = NULL;
	unsigned long flags;
	unsigned long flags;


	if (!serial_table[index])
		return NULL;
	spin_lock_irqsave(&serial_table_lock, flags);
	spin_lock_irqsave(&serial_table_lock, flags);
	if (serial_table[index])
		serial = dev2ser(serial_table[index]);
		serial = dev2ser(serial_table[index]);
	spin_unlock_irqrestore(&serial_table_lock, flags);
	spin_unlock_irqrestore(&serial_table_lock, flags);


@@ -561,6 +565,7 @@ static int get_free_serial_index(void)
static void set_serial_by_index(unsigned index, struct hso_serial *serial)
static void set_serial_by_index(unsigned index, struct hso_serial *serial)
{
{
	unsigned long flags;
	unsigned long flags;

	spin_lock_irqsave(&serial_table_lock, flags);
	spin_lock_irqsave(&serial_table_lock, flags);
	if (serial)
	if (serial)
		serial_table[index] = serial->parent;
		serial_table[index] = serial->parent;
@@ -569,7 +574,7 @@ static void set_serial_by_index(unsigned index, struct hso_serial *serial)
	spin_unlock_irqrestore(&serial_table_lock, flags);
	spin_unlock_irqrestore(&serial_table_lock, flags);
}
}


/* log a meaningfull explanation of an USB status */
/* log a meaningful explanation of an USB status */
static void log_usb_status(int status, const char *function)
static void log_usb_status(int status, const char *function)
{
{
	char *explanation;
	char *explanation;