From: [EMAIL PROTECTED] Date: Wed, 08 Nov 2006 19:51:04 -0800 > From: Alan Cox <[EMAIL PROTECTED]> > > Signed-off-by: Alan Cox <[EMAIL PROTECTED]> > Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
This fixes the most obvious 64-bit problems, but it is still very very broken in other aspects. It is bad enough that I feel irresponsible turning it on in the 64-bit build. For example, it takes an ioremap()'d value, and accesses it as a regular cpu pointer which will explode on many architectures since all such accesses should go through asm/io.h accessors. Specifically I'm talking about dev->seg_ram, it is initialized like this: base = ioremap(real_base,iadev->pci_map_size); /* ioremap is not resolved ??? */ ... iadev->seg_ram = base + ACTUAL_SEG_RAM_BASE; ... Then used like this: desc1 = *(u_short *)(dev->seg_ram + dev->host_tcq_wr); and this: *(u_short *) (dev->seg_ram + dev->host_tcq_wr) = 0; and this: *(u_short *)(dev->seg_ram + dev->ffL.tcq_rd) = i+1; and this: desc_num = *(u_short *)(dev->seg_ram + dev->ffL.tcq_rd); and this: desc_num = *(u_short *)(dev->seg_ram + dev->ffL.tcq_rd); and this: SchedTbl = (u16*)(dev->seg_ram+CBR_SCHED_TABLE*dev->memSize); ... TstSchedTbl = (u16*)(SchedTbl+testSlot); //set index and read in value ... memcpy((caddr_t)&cbrVC,(caddr_t)TstSchedTbl,sizeof(cbrVC)); ... memcpy((caddr_t)TstSchedTbl, (caddr_t)&vcIndex,sizeof(TstSchedTbl)); Really, this driver has a ton of unresolved portability problems. - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html