# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
# ChangeSet 1.482 -> 1.483
# drivers/usb/net/kaweth.c 1.18 -> 1.19
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/06/13 [EMAIL PROTECTED] 1.483
# [PATCH] USB: saving memory on kaweth
#
# this saves memory by making the buffer for firmware temporary.
# --------------------------------------------
#
diff -Nru a/drivers/usb/net/kaweth.c b/drivers/usb/net/kaweth.c
--- a/drivers/usb/net/kaweth.c Fri Jun 14 14:15:31 2002
+++ b/drivers/usb/net/kaweth.c Fri Jun 14 14:15:31 2002
@@ -75,6 +75,7 @@
#define KAWETH_MTU 1514
#define KAWETH_BUF_SIZE 1664
#define KAWETH_TX_TIMEOUT (5 * HZ)
+#define KAWETH_SCRATCH_SIZE 32
#define KAWETH_FIRMWARE_BUF_SIZE 4096
#define KAWETH_CONTROL_TIMEOUT (30 * HZ)
@@ -220,7 +221,8 @@
struct urb *tx_urb;
struct urb *irq_urb;
- __u8 firmware_buf[KAWETH_FIRMWARE_BUF_SIZE];
+ __u8 *firmware_buf;
+ __u8 scratch[KAWETH_SCRATCH_SIZE];
__u8 tx_buf[KAWETH_BUF_SIZE];
__u8 rx_buf[KAWETH_BUF_SIZE];
__u8 intbuffer[INTBUFFERSIZE];
@@ -312,7 +314,7 @@
USB_TYPE_VENDOR | USB_DIR_OUT | USB_RECIP_DEVICE,
urb_size,
0,
- (void *)&kaweth->firmware_buf,
+ (void *)&kaweth->scratch,
0,
KAWETH_CONTROL_TIMEOUT);
@@ -334,7 +336,7 @@
USB_TYPE_VENDOR | USB_DIR_OUT | USB_RECIP_DEVICE,
sofs_wait,
0,
- (void *)&kaweth->firmware_buf,
+ (void *)&kaweth->scratch,
0,
KAWETH_CONTROL_TIMEOUT);
@@ -357,7 +359,7 @@
USB_TYPE_VENDOR | USB_DIR_OUT | USB_RECIP_DEVICE,
receive_filter,
0,
- (void *)&kaweth->firmware_buf,
+ (void *)&kaweth->scratch,
0,
KAWETH_CONTROL_TIMEOUT);
@@ -399,7 +401,7 @@
USB_TYPE_VENDOR | USB_DIR_OUT | USB_RECIP_DEVICE,
0,
0,
- (void *)&kaweth->firmware_buf,
+ (void *)kaweth->firmware_buf,
data_len,
KAWETH_CONTROL_TIMEOUT);
}
@@ -427,7 +429,7 @@
USB_TYPE_VENDOR | USB_DIR_OUT | USB_RECIP_DEVICE,
0,
0,
- (void *)&kaweth->firmware_buf,
+ (void *)kaweth->firmware_buf,
8,
KAWETH_CONTROL_TIMEOUT);
}
@@ -755,7 +757,7 @@
USB_TYPE_VENDOR | USB_DIR_OUT | USB_RECIP_DEVICE,
packet_filter_bitmap,
0,
- (void *)&kaweth->firmware_buf,
+ (void *)&kaweth->scratch,
0,
KAWETH_CONTROL_TIMEOUT);
@@ -840,12 +842,14 @@
} else {
/* Download the firmware */
kaweth_info("Downloading firmware...");
+ kaweth->firmware_buf = (__u8 *)__get_free_page(GFP_KERNEL);
if ((result = kaweth_download_firmware(kaweth,
kaweth_new_code,
len_kaweth_new_code,
100,
2)) < 0) {
kaweth_err("Error downloading firmware (%d)", result);
+ free_page((unsigned long)kaweth->firmware_buf);
kfree(kaweth);
return NULL;
}
@@ -856,6 +860,7 @@
100,
3)) < 0) {
kaweth_err("Error downloading firmware fix (%d)", result);
+ free_page((unsigned long)kaweth->firmware_buf);
kfree(kaweth);
return NULL;
}
@@ -866,6 +871,7 @@
126,
2)) < 0) {
kaweth_err("Error downloading trigger code (%d)", result);
+ free_page((unsigned long)kaweth->firmware_buf);
kfree(kaweth);
return NULL;
}
@@ -876,6 +882,7 @@
126,
3)) < 0) {
kaweth_err("Error downloading trigger code fix (%d)", result);
+ free_page((unsigned long)kaweth->firmware_buf);
kfree(kaweth);
return NULL;
}
@@ -883,12 +890,14 @@
if ((result = kaweth_trigger_firmware(kaweth, 126)) < 0) {
kaweth_err("Error triggering firmware (%d)", result);
+ free_page((unsigned long)kaweth->firmware_buf);
kfree(kaweth);
return NULL;
}
/* Device will now disappear for a moment... */
kaweth_info("Firmware loaded. I'll be back...");
+ free_page((unsigned long)kaweth->firmware_buf);
kfree(kaweth);
return NULL;
}
_______________________________________________________________
Don't miss the 2002 Sprint PCS Application Developer's Conference
August 25-28 in Las Vegas -
http://devcon.sprintpcs.com/adp/index.cfm?source=osdntextlink
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel