2002-10-19 02:35:07

by Adam Kropelin

[permalink] [raw]
Subject: [PATCH] 2.5: ewrk3 signature cleanup, changelog, and revision bump

Last patch for now. Updates the changelog to cover previous patches, bumps the
revision number, and replaces the horrific EthwrkSignature function with
something (slightly) less horrific.

Applies against 2.5.43 + ewrk3-ethtool + ewrk3-clisti + ewrk3-ioctllock.

--Adam

--- linux-2.5.43-mm1/drivers/net/ewrk3.c Fri Oct 18 22:17:11 2002
+++ linux-2.5.43-mm1/drivers/net/ewrk3.c.new Fri Oct 18 22:32:21 2002
@@ -137,6 +137,8 @@
0.45 19-Jul-02 fix unaligned access on alpha <[email protected]>
0.46 10-Oct-02 Multiple NIC support when module <[email protected]>
0.47 18-Oct-02 ethtool support <[email protected]>
+ 0.48 18-Oct-02 cli/sti removal for 2.5 <[email protected]>
+ ioctl locking, signature search cleanup <[email protected]>

=========================================================================
*/
@@ -171,10 +173,10 @@
#include "ewrk3.h"

#define DRV_NAME "ewrk3"
-#define DRV_VERSION "0.47"
+#define DRV_VERSION "0.48"

static char version[] __initdata =
-DRV_NAME ":v" DRV_VERSION " 2002/10/17 [email protected]\n";
+DRV_NAME ":v" DRV_VERSION " 2002/10/18 [email protected]\n";

#ifdef EWRK3_DEBUG
static int ewrk3_debug = EWRK3_DEBUG;
@@ -1476,27 +1478,20 @@
*/
static void __init EthwrkSignature(char *name, char *eeprom_image)
{
- u_long i, j, k;
+ int i;
char *signatures[] = EWRK3_SIGNATURE;

- strcpy(name, "");
- for (i = 0; *signatures[i] != '\0' && *name == '\0'; i++) {
- for (j = EEPROM_PNAME7, k = 0; j <= EEPROM_PNAME0 && k < strlen(signatures[i]); j++) {
- if (signatures[i][k] == eeprom_image[j]) { /* track signature */
- k++;
- } else { /* lost signature; begin search again */
- k = 0;
- }
- }
- if (k == strlen(signatures[i])) {
- for (k = 0; k < EWRK3_STRLEN; k++) {
- name[k] = eeprom_image[EEPROM_PNAME7 + k];
- name[EWRK3_STRLEN] = '\0';
- }
- }
- }
+ for (i=0; *signatures[i] != '\0'; i++)
+ if( !strncmp(eeprom_image+EEPROM_PNAME7, signatures[i], strlen(signatures[i])) )
+ break;

- return; /* return the device name string */
+ if (*signatures[i] != '\0') {
+ memcpy(name, eeprom_image+EEPROM_PNAME7, EWRK3_STRLEN);
+ name[EWRK3_STRLEN] = '\0';
+ } else
+ name[0] = '\0';
+
+ return;
}

/*


2002-10-22 00:47:54

by Jeff Garzik

[permalink] [raw]