--- /home/linux/v2.4/linux/drivers/scsi/sym53c8xx_2/ChangeLog.txt Sun Nov 18 17:01:36 2001 +++ linux/drivers/scsi/sym53c8xx_2/ChangeLog.txt Sun Nov 18 19:10:56 2001 @@ -128,3 +128,11 @@ * version sym-2.1.16-20011028 - Slightly simplify driver configuration. - Prepare a new patch against linux-2.4.13. + +Sat Nov 17 10:00 2001 Gerard Roudier + * version sym-2.1.17 + - Fix a couple of gcc/gcc3 warnings. + - Allocate separately from the HCB the array for CCBs hashed by DSA. + All driver memory allocations are now not greater than 1 PAGE + even on PPC64 / 4KB PAGE surprising setup. + --- /home/linux/v2.4/linux/drivers/scsi/sym53c8xx_2/sym_glue.h Sun Nov 18 17:01:36 2001 +++ linux/drivers/scsi/sym53c8xx_2/sym_glue.h Sun Nov 18 18:16:39 2001 @@ -77,7 +77,6 @@ #include #include #include -#include #include #include #include --- /home/linux/v2.4/linux/drivers/scsi/sym53c8xx_2/sym_hipd.c Sun Nov 18 17:01:36 2001 +++ linux/drivers/scsi/sym53c8xx_2/sym_hipd.c Sun Nov 18 18:31:27 2001 @@ -50,7 +50,7 @@ * SUCH DAMAGE. */ -#define SYM_DRIVER_NAME "sym-2.1.16a" +#define SYM_DRIVER_NAME "sym-2.1.17" #ifdef __FreeBSD__ #include @@ -4691,6 +4691,7 @@ OUTL_DSP (SCRIPTA_BA (np, clrack)); return; out_stuck: + return; } /* @@ -5226,6 +5227,7 @@ return; fail: + return; } /* @@ -5788,6 +5790,13 @@ goto attach_failed; /* + * Allocate the array of lists of CCBs hashed by DSA. + */ + np->ccbh = sym_calloc(sizeof(ccb_p *)*CCB_HASH_SIZE, "CCBH"); + if (!np->ccbh) + goto attach_failed; + + /* * Initialyze the CCB free and busy queues. */ sym_que_init(&np->free_ccbq); @@ -5978,6 +5987,8 @@ sym_mfree_dma(cp, sizeof(*cp), "CCB"); } } + if (np->ccbh) + sym_mfree(np->ccbh, sizeof(ccb_p *)*CCB_HASH_SIZE, "CCBH"); if (np->badluntbl) sym_mfree_dma(np->badluntbl, 256,"BADLUNTBL"); --- /home/linux/v2.4/linux/drivers/scsi/sym53c8xx_2/sym_hipd.h Sun Nov 18 17:01:36 2001 +++ linux/drivers/scsi/sym53c8xx_2/sym_hipd.h Sun Nov 18 17:49:09 2001 @@ -1068,7 +1068,8 @@ /* * CCB lists and queue. */ - ccb_p ccbh[CCB_HASH_SIZE]; /* CCB hashed by DSA value */ + ccb_p *ccbh; /* CCBs hashed by DSA value */ + /* CCB_HASH_SIZE lists of CCBs */ SYM_QUEHEAD free_ccbq; /* Queue of available CCBs */ SYM_QUEHEAD busy_ccbq; /* Queue of busy CCBs */ --- /home/linux/v2.4/linux/drivers/scsi/sym53c8xx_2/sym_nvram.c Sun Nov 18 17:01:36 2001 +++ linux/drivers/scsi/sym53c8xx_2/sym_nvram.c Sun Nov 18 17:49:12 2001 @@ -505,10 +505,10 @@ return retv; } -#undef SET_BIT 0 -#undef CLR_BIT 1 -#undef SET_CLK 2 -#undef CLR_CLK 3 +#undef SET_BIT +#undef CLR_BIT +#undef SET_CLK +#undef CLR_CLK /* * Try reading Symbios NVRAM.