* ax8817x_set_multicast - use address of dev->data, not contents * ax8817x_write_async_cmd - free request and urb if submit fails
--- a/drivers/usb/net/usbnet.c 2003-10-20 23:43:22.000000000 -0400 +++ b/drivers/usb/net/usbnet.c 2003-10-21 12:49:13.519752384 -0400 @@ -493,8 +493,11 @@ (void *)req, data, size, ax8817x_async_cmd_callback, req); - if((status = usb_submit_urb(urb, GFP_ATOMIC)) < 0) + if((status = usb_submit_urb(urb, GFP_ATOMIC)) < 0) { deverr(dev, "Error submitting the control message: status=%d", status); + kfree(req); + usb_free_urb(urb); + } } static void ax8817x_set_multicast(struct net_device *net) @@ -514,7 +517,7 @@ * for our 8 byte filter buffer * to avoid allocating memory that * is tricky to free later */ - u8 *multi_filter = (u8 *)dev->data; + u8 *multi_filter = (u8 *)&dev->data; struct dev_mc_list *mc_list = net->mc_list; u32 crc_bits; int i;