[ 28/85] USB: iuu_phoenix: fix sysfs-attribute creation

From: Greg Kroah-Hartman
Date: Thu Oct 25 2012 - 20:23:47 EST


3.6-stable review patch. If anyone has any objections, please let me know.

------------------

From: Johan Hovold <jhovold@xxxxxxxxx>

commit 0978c9499944d0670338fd048a3bdb1624dc66dc upstream.

Make sure sysfs attributes are created at port probe.

A recent patch ("USB: iuu_phoenix: fix port-data memory leak") removed
the sysfs-attribute creation by mistake.

Reported-by: Yuanhan Liu <yuanhan.liu@xxxxxxxxx>
Signed-off-by: Johan Hovold <jhovold@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

---
drivers/usb/serial/iuu_phoenix.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)

--- a/drivers/usb/serial/iuu_phoenix.c
+++ b/drivers/usb/serial/iuu_phoenix.c
@@ -60,6 +60,8 @@ static int iuu_cardout;
static bool xmas;
static int vcc_default = 5;

+static int iuu_create_sysfs_attrs(struct usb_serial_port *port);
+static int iuu_remove_sysfs_attrs(struct usb_serial_port *port);
static void read_rxcmd_callback(struct urb *urb);

struct iuu_private {
@@ -83,6 +85,7 @@ struct iuu_private {
static int iuu_port_probe(struct usb_serial_port *port)
{
struct iuu_private *priv;
+ int ret;

priv = kzalloc(sizeof(struct iuu_private), GFP_KERNEL);
if (!priv)
@@ -115,6 +118,14 @@ static int iuu_port_probe(struct usb_ser

usb_set_serial_port_data(port, priv);

+ ret = iuu_create_sysfs_attrs(port);
+ if (ret) {
+ kfree(priv->writebuf);
+ kfree(priv->buf);
+ kfree(priv);
+ return ret;
+ }
+
return 0;
}

@@ -122,6 +133,7 @@ static int iuu_port_remove(struct usb_se
{
struct iuu_private *priv = usb_get_serial_port_data(port);

+ iuu_remove_sysfs_attrs(port);
kfree(priv->dbgbuf);
kfree(priv->writebuf);
kfree(priv->buf);
@@ -1221,8 +1233,6 @@ static struct usb_serial_driver iuu_devi
.num_ports = 1,
.bulk_in_size = 512,
.bulk_out_size = 512,
- .port_probe = iuu_create_sysfs_attrs,
- .port_remove = iuu_remove_sysfs_attrs,
.open = iuu_open,
.close = iuu_close,
.write = iuu_uart_write,


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/