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]
/
drivers
/
usb
/
gadget
/
ether.c
diff --git
a/drivers/usb/gadget/ether.c
b/drivers/usb/gadget/ether.c
index
fed484d
..
d15bf22
100644
(file)
--- a/
drivers/usb/gadget/ether.c
+++ b/
drivers/usb/gadget/ether.c
@@
-1833,9
+1833,9
@@
static void rx_fill (struct eth_dev *dev, gfp_t gfp_flags)
spin_unlock_irqrestore(&dev->req_lock, flags);
}
spin_unlock_irqrestore(&dev->req_lock, flags);
}
-static void eth_work (
void *_dev
)
+static void eth_work (
struct work_struct *work
)
{
{
- struct eth_dev
*dev = _dev
;
+ struct eth_dev
*dev = container_of(work, struct eth_dev, work)
;
if (test_and_clear_bit (WORK_RX_MEMORY, &dev->todo)) {
if (netif_running (dev->net))
if (test_and_clear_bit (WORK_RX_MEMORY, &dev->todo)) {
if (netif_running (dev->net))
@@
-1894,13
+1894,13
@@
static int eth_start_xmit (struct sk_buff *skb, struct net_device *net)
if (!eth_is_promisc (dev)) {
u8 *dest = skb->data;
if (!eth_is_promisc (dev)) {
u8 *dest = skb->data;
- if (
dest [0] & 0x01
) {
+ if (
is_multicast_ether_addr(dest)
) {
u16 type;
/* ignores USB_CDC_PACKET_TYPE_MULTICAST and host
* SET_ETHERNET_MULTICAST_FILTERS requests
*/
u16 type;
/* ignores USB_CDC_PACKET_TYPE_MULTICAST and host
* SET_ETHERNET_MULTICAST_FILTERS requests
*/
- if (
memcmp (dest, net->broadcast, ETH_ALEN) == 0
)
+ if (
is_broadcast_ether_addr(dest)
)
type = USB_CDC_PACKET_TYPE_BROADCAST;
else
type = USB_CDC_PACKET_TYPE_ALL_MULTICAST;
type = USB_CDC_PACKET_TYPE_BROADCAST;
else
type = USB_CDC_PACKET_TYPE_ALL_MULTICAST;
@@
-2014,7
+2014,7
@@
rndis_control_ack_complete (struct usb_ep *ep, struct usb_request *req)
static int rndis_control_ack (struct net_device *net)
{
struct eth_dev *dev = netdev_priv(net);
static int rndis_control_ack (struct net_device *net)
{
struct eth_dev *dev = netdev_priv(net);
-
u32
length;
+
int
length;
struct usb_request *resp = dev->stat_req;
/* in case RNDIS calls this after disconnect */
struct usb_request *resp = dev->stat_req;
/* in case RNDIS calls this after disconnect */
@@
-2230,6
+2230,9
@@
eth_bind (struct usb_gadget *gadget)
if (gadget_is_pxa (gadget)) {
/* pxa doesn't support altsettings */
cdc = 0;
if (gadget_is_pxa (gadget)) {
/* pxa doesn't support altsettings */
cdc = 0;
+ } else if (gadget_is_musbhdrc(gadget)) {
+ /* reduce tx dma overhead by avoiding special cases */
+ zlp = 0;
} else if (gadget_is_sh(gadget)) {
/* sh doesn't support multiple interfaces or configs */
cdc = 0;
} else if (gadget_is_sh(gadget)) {
/* sh doesn't support multiple interfaces or configs */
cdc = 0;
@@
-2257,7
+2260,7
@@
eth_bind (struct usb_gadget *gadget)
return -ENODEV;
}
snprintf (manufacturer, sizeof manufacturer, "%s %s/%s",
return -ENODEV;
}
snprintf (manufacturer, sizeof manufacturer, "%s %s/%s",
-
system_utsname.sysname, system_utsname.
release,
+
init_utsname()->sysname, init_utsname()->
release,
gadget->name);
/* If there's an RNDIS configuration, that's what Windows wants to
gadget->name);
/* If there's an RNDIS configuration, that's what Windows wants to
@@
-2395,7
+2398,7
@@
autoconf_fail:
dev = netdev_priv(net);
spin_lock_init (&dev->lock);
spin_lock_init (&dev->req_lock);
dev = netdev_priv(net);
spin_lock_init (&dev->lock);
spin_lock_init (&dev->req_lock);
- INIT_WORK (&dev->work, eth_work
, dev
);
+ INIT_WORK (&dev->work, eth_work);
INIT_LIST_HEAD (&dev->tx_reqs);
INIT_LIST_HEAD (&dev->rx_reqs);
INIT_LIST_HEAD (&dev->tx_reqs);
INIT_LIST_HEAD (&dev->rx_reqs);