Messages in this thread | | | Date | Fri, 22 Feb 2002 12:08:25 +0100 | From | Steffen Persvold <> | Subject | Re: ioremap()/PCI sickness in 2.4.18-rc2 (FIXED ALMOST) |
| |
"Jeff V. Merkey" wrote: > > On Wed, Feb 20, 2002 at 02:54:49PM -0700, Jeff V. Merkey wrote: > > > struct vm_struct * get_vm_area(unsigned long size, unsigned long flags) > > { > > unsigned long addr; > > struct vm_struct **p, *tmp, *area; > > > > area = (struct vm_struct *) kmalloc(sizeof(*area), GFP_KERNEL); > > if (!area) > > return NULL; > > size += PAGE_SIZE; > > addr = VMALLOC_START; > > write_lock(&vmlist_lock); > > for (p = &vmlist; (tmp = *p) ; p = &tmp->next) { > > > > ===============> we barf here since the size + addr wraps > > > > Also, this function should be moved to the /arch/i386/mm area since > it is doing pointer arithmetic with 32 bit assumptions (i.e. > unsigned long + unsigned long) Last time I checked, unsigned long > was a construct for a 32 bit value in any gcc compiler version, ia64 > or not. >
Jeff,
I think you'll have to check again. In LP64 programming models (used on most 64-bit OS'es) 'long' is 64 bit. Thus a 'unsigned long' is always safe to use for pointer arithmetic since it will be 32 bit on 32bit machines and 64bit on 64bit machines.
Regards, -- Steffen Persvold | Scalable Linux Systems | Try out the world's best mailto:sp@scali.com | http://www.scali.com | performing MPI implementation: Tel: (+47) 2262 8950 | Olaf Helsets vei 6 | - ScaMPI 1.13.8 - Fax: (+47) 2262 8951 | N0621 Oslo, NORWAY | >320MBytes/s and <4uS latency - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |