From: Bjorge Dijkstra <bjd@jooz.net>
To: dbrownell@users.sourceforge.net
Cc: netdev@vger.kernel.org, linux-wireless@vger.kernel.org,
Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Subject: [PATCH 4/8] [PATCH] Halt device if rndis_bind fails.
Date: Sat, 22 Dec 2007 22:51:30 +0100 [thread overview]
Message-ID: <1198360295683-git-send-email-bjd@jooz.net> (raw)
In-Reply-To: <11983602942818-git-send-email-bjd@jooz.net>
From: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
When bind fails after device was initialized, shutdown device properly
by sending RNDIS_MSG_HALT.
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Signed-off-by: Bjorge Dijkstra <bjd@jooz.net>
---
drivers/net/usb/rndis_host.c | 12 +++++++++---
1 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/drivers/net/usb/rndis_host.c b/drivers/net/usb/rndis_host.c
index 42b161c..c686025 100644
--- a/drivers/net/usb/rndis_host.c
+++ b/drivers/net/usb/rndis_host.c
@@ -467,6 +467,7 @@ static int rndis_bind(struct usbnet *dev, struct usb_interface *intf)
struct rndis_query_c *get_c;
struct rndis_set *set;
struct rndis_set_c *set_c;
+ struct rndis_halt *halt;
} u;
u32 tmp;
int reply_len;
@@ -517,7 +518,7 @@ static int rndis_bind(struct usbnet *dev, struct usb_interface *intf)
"dev can't take %u byte packets (max %u)\n",
dev->hard_mtu, tmp);
retval = -EINVAL;
- goto fail_and_release;
+ goto halt_fail_and_release;
}
dev->hard_mtu = tmp;
net->mtu = dev->hard_mtu - net->hard_header_len;
@@ -539,7 +540,7 @@ static int rndis_bind(struct usbnet *dev, struct usb_interface *intf)
48, (void **) &bp, &reply_len);
if (unlikely(retval< 0)) {
dev_err(&intf->dev, "rndis get ethaddr, %d\n", retval);
- goto fail_and_release;
+ goto halt_fail_and_release;
}
memcpy(net->dev_addr, bp, ETH_ALEN);
@@ -555,7 +556,7 @@ static int rndis_bind(struct usbnet *dev, struct usb_interface *intf)
retval = rndis_command(dev, u.header);
if (unlikely(retval < 0)) {
dev_err(&intf->dev, "rndis set packet filter, %d\n", retval);
- goto fail_and_release;
+ goto halt_fail_and_release;
}
retval = 0;
@@ -563,6 +564,11 @@ static int rndis_bind(struct usbnet *dev, struct usb_interface *intf)
kfree(u.buf);
return retval;
+halt_fail_and_release:
+ memset(u.halt, 0, sizeof *u.halt);
+ u.halt->msg_type = RNDIS_MSG_HALT;
+ u.halt->msg_len = ccpu2(sizeof *u.halt);
+ (void) rndis_command(dev, (void *)u.halt);
fail_and_release:
usb_set_intfdata(info->data, NULL);
usb_driver_release_interface(driver_of(intf), info->data);
--
1.5.2.5
WARNING: multiple messages have this Message-ID (diff)
From: Bjorge Dijkstra <bjd-a1rhEgazXTw@public.gmane.org>
To: dbrownell-Rn4VEauK+AKRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Cc: netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-wireless-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Jussi Kivilinna <jussi.kivilinna-E01nCVcF24I@public.gmane.org>
Subject: [PATCH 4/8] [PATCH] Halt device if rndis_bind fails.
Date: Sat, 22 Dec 2007 22:51:30 +0100 [thread overview]
Message-ID: <1198360295683-git-send-email-bjd@jooz.net> (raw)
In-Reply-To: <11983602942818-git-send-email-bjd-a1rhEgazXTw@public.gmane.org>
From: Jussi Kivilinna <jussi.kivilinna-E01nCVcF24I@public.gmane.org>
When bind fails after device was initialized, shutdown device properly
by sending RNDIS_MSG_HALT.
Signed-off-by: Jussi Kivilinna <jussi.kivilinna-E01nCVcF24I@public.gmane.org>
Signed-off-by: Bjorge Dijkstra <bjd-a1rhEgazXTw@public.gmane.org>
---
drivers/net/usb/rndis_host.c | 12 +++++++++---
1 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/drivers/net/usb/rndis_host.c b/drivers/net/usb/rndis_host.c
index 42b161c..c686025 100644
--- a/drivers/net/usb/rndis_host.c
+++ b/drivers/net/usb/rndis_host.c
@@ -467,6 +467,7 @@ static int rndis_bind(struct usbnet *dev, struct usb_interface *intf)
struct rndis_query_c *get_c;
struct rndis_set *set;
struct rndis_set_c *set_c;
+ struct rndis_halt *halt;
} u;
u32 tmp;
int reply_len;
@@ -517,7 +518,7 @@ static int rndis_bind(struct usbnet *dev, struct usb_interface *intf)
"dev can't take %u byte packets (max %u)\n",
dev->hard_mtu, tmp);
retval = -EINVAL;
- goto fail_and_release;
+ goto halt_fail_and_release;
}
dev->hard_mtu = tmp;
net->mtu = dev->hard_mtu - net->hard_header_len;
@@ -539,7 +540,7 @@ static int rndis_bind(struct usbnet *dev, struct usb_interface *intf)
48, (void **) &bp, &reply_len);
if (unlikely(retval< 0)) {
dev_err(&intf->dev, "rndis get ethaddr, %d\n", retval);
- goto fail_and_release;
+ goto halt_fail_and_release;
}
memcpy(net->dev_addr, bp, ETH_ALEN);
@@ -555,7 +556,7 @@ static int rndis_bind(struct usbnet *dev, struct usb_interface *intf)
retval = rndis_command(dev, u.header);
if (unlikely(retval < 0)) {
dev_err(&intf->dev, "rndis set packet filter, %d\n", retval);
- goto fail_and_release;
+ goto halt_fail_and_release;
}
retval = 0;
@@ -563,6 +564,11 @@ static int rndis_bind(struct usbnet *dev, struct usb_interface *intf)
kfree(u.buf);
return retval;
+halt_fail_and_release:
+ memset(u.halt, 0, sizeof *u.halt);
+ u.halt->msg_type = RNDIS_MSG_HALT;
+ u.halt->msg_len = ccpu2(sizeof *u.halt);
+ (void) rndis_command(dev, (void *)u.halt);
fail_and_release:
usb_set_intfdata(info->data, NULL);
usb_driver_release_interface(driver_of(intf), info->data);
--
1.5.2.5
next prev parent reply other threads:[~2007-12-22 21:51 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-22 21:51 [PATCH 0/8] RFC: Wireless Extensions for rndis_host Bjorge Dijkstra
2007-12-22 21:51 ` [PATCH 1/8] Fix sparse warning: returning void-valued expression Bjorge Dijkstra
2007-12-22 21:51 ` Bjorge Dijkstra
2007-12-23 0:42 ` David Brownell
2007-12-23 0:42 ` David Brownell
2007-12-22 21:51 ` [PATCH 2/8] [PATCH] Hardwire CDC descriptors when missing Bjorge Dijkstra
2007-12-23 0:49 ` David Brownell
2007-12-22 21:51 ` [PATCH 3/8] [PATCH] Use 1KB buffer in rndis_unbind Bjorge Dijkstra
2007-12-23 0:51 ` David Brownell
2007-12-23 0:51 ` David Brownell
2007-12-22 21:51 ` Bjorge Dijkstra [this message]
2007-12-22 21:51 ` [PATCH 4/8] [PATCH] Halt device if rndis_bind fails Bjorge Dijkstra
2007-12-23 0:54 ` David Brownell
2007-12-22 21:51 ` [PATCH 5/8] Fix rndis packet filter flags Bjorge Dijkstra
2007-12-22 21:51 ` Bjorge Dijkstra
2007-12-23 1:06 ` David Brownell
2007-12-22 21:51 ` [PATCH 6/8] [PATCH] Split up rndis_host.c Bjorge Dijkstra
2007-12-23 1:17 ` David Brownell
2008-01-02 20:13 ` Jussi Kivilinna
2008-01-02 20:13 ` Jussi Kivilinna
2008-01-08 11:19 ` David Brownell
2008-01-08 17:32 ` Johannes Berg
2008-01-08 17:32 ` Johannes Berg
2008-01-08 18:49 ` David Brownell
2008-01-08 18:49 ` David Brownell
2008-01-17 20:40 ` Jussi Kivilinna
2008-01-17 20:40 ` Jussi Kivilinna
2007-12-22 21:51 ` [PATCH 7/8] Add Wireless Extensions to rndis_host Bjorge Dijkstra
2007-12-23 1:27 ` David Brownell
2007-12-23 1:27 ` David Brownell
2007-12-22 21:51 ` [PATCH 8/8] [PATCH] Use wlan device name for RNDIS wireless devices Bjorge Dijkstra
2007-12-22 21:51 ` Bjorge Dijkstra
2007-12-23 1:30 ` David Brownell
2007-12-23 1:30 ` David Brownell
2007-12-23 1:49 ` [PATCH 0/8] RFC: Wireless Extensions for rndis_host David Brownell
2007-12-23 1:49 ` David Brownell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1198360295683-git-send-email-bjd@jooz.net \
--to=bjd@jooz.net \
--cc=dbrownell@users.sourceforge.net \
--cc=jussi.kivilinna@mbnet.fi \
--cc=linux-wireless@vger.kernel.org \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.