--- linux-2.4/drivers/scsi/gdth_proc.c.orig 2004-09-20 09:53:51.532561072 -0300 +++ linux-2.4/drivers/scsi/gdth_proc.c 2004-09-20 09:56:43.506417072 -0300 @@ -7,10 +7,12 @@ #include #endif +int gdth_alloc, gdth_free; + int gdth_proc_info(char *buffer,char **start,off_t offset,int length, int hostno,int inout) { - int hanum,busnum,i; + int hanum,busnum,i, ret = 0; TRACE2(("gdth_proc_info() length %d ha %d offs %d inout %d\n", length,hostno,(int)offset,inout)); @@ -27,8 +29,11 @@ if (inout) return(gdth_set_info(buffer,length,i,hanum,busnum)); - else - return(gdth_get_info(buffer,start,offset,length,i,hanum,busnum)); + else { + ret = gdth_get_info(buffer,start,offset,length,i,hanum,busnum); + printk(KERN_ERR "gdth_alloc:%d gdth_free:%d\n", gdth_alloc, gdth_free); + return ret; + } } static int gdth_set_info(char *buffer,int length,int vh,int hanum,int busnum) @@ -707,6 +712,9 @@ memset(cmnd, 0xff, 12); memset(&gdtcmd, 0, sizeof(gdth_cmd_str)); + + gdth_alloc = 0; gdth_free = 0; + TRACE2(("gdth_get_info() ha %d bus %d\n",hanum,busnum)); ha = HADATA(gdth_ctr_tab[hanum]); @@ -1321,6 +1329,7 @@ #if LINUX_VERSION_CODE >= 0x020322 ret_val = (void *) __get_free_pages(GFP_ATOMIC | GFP_DMA, GDTH_SCRATCH_ORD); + gdth_alloc++; #else ret_val = scsi_init_malloc(GDTH_SCRATCH, GFP_ATOMIC | GFP_DMA); #endif @@ -1343,6 +1352,7 @@ } else { #if LINUX_VERSION_CODE >= 0x020322 free_pages((unsigned long)buf, GDTH_SCRATCH_ORD); + gdth_free++; #else scsi_init_free((void *)buf, GDTH_SCRATCH); #endif