Re: Linux-2.6.13-rc7

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Aug 24, 2005 at 10:38:59PM +0100, Al Viro wrote:
> On Thu, Aug 25, 2005 at 12:13:02AM +0400, Alexey Dobriyan wrote:
> > On Wed, Aug 24, 2005 at 08:15:44PM +0100, Al Viro wrote:
> > > Most of the remaining stuff is for
> > > m68k (and applies both to Linus' tree and m68k CVS); I'll send that today
> > > and if Geert ACKs them, we will be _very_ close to having 2.6.13 build
> > > out of the box on the following set:
> > > alpha,
> > 
> > Do I understand correctly that alpha in "--><-- close" list?
> > 
> > 2.6.13-rc7, alpha, allmodconfig:
> > 
> >   LD      .tmp_vmlinux1
> > net/built-in.o: In function `kmalloc':
> > include/linux/slab.h:92: undefined reference to `__you_cannot_kmalloc_that_much'
> > include/linux/slab.h:92: undefined reference to `__you_cannot_kmalloc_that_much'
> > 
> > Guilty: net/ipv4/route.c
> > 
> > $ nm net/ipv4/route.o | grep kmalloc
> >                  U __you_cannot_kmalloc_that_much
> 
> Not here...
> 
>   CC      arch/alpha/lib/udelay.o
>   LD      .tmp_vmlinux1
	[snip]

> Allmodconfig on alpha, alpha-linux-gcc (GCC) 4.0.1 20050727 (Red Hat 4.0.1-5).

Mine is alpha-unknown-linux-gnu-gcc (GCC) 3.4.4 (Gentoo 3.4.4)

> Which place triggers it in your build?

net/ipv4/route.c:3152, call to rt_hash_lock_init().

>From preprocessed source (reformatted):
-----------------------------------------------------------------------
typedef struct {
	volatile unsigned int lock;

	int on_cpu;
	int line_no;
	void *previous;
	struct task_struct * task;
	const char *base_file;
} spinlock_t;

static inline void *kmalloc(size_t size, unsigned int flags)
{
	if (__builtin_constant_p(size)) {
		int i = 0;
		
		if (size <= 64) goto found; else i++;
		if (size <= 128) goto found; else i++;
		if (size <= 192) goto found; else i++;
		if (size <= 256) goto found; else i++;
		if (size <= 512) goto found; else i++;
		if (size <= 1024) goto found; else i++;
		if (size <= 2048) goto found; else i++;
		if (size <= 4096) goto found; else i++;
		if (size <= 8192) goto found; else i++;
		if (size <= 16384) goto found; else i++;
		if (size <= 32768) goto found; else i++;
		if (size <= 65536) goto found; else i++;
		if (size <= 131072) goto found; else i++;
		{
			extern void __you_cannot_kmalloc_that_much(void);
			__you_cannot_kmalloc_that_much();
		}
		[snip]
-----------------------------------------------------------------------
{
	int i;
	rt_hash_locks = kmalloc(sizeof(spinlock_t) * 4096, (0x10u | 0x40u | 0x80u));
	if (!rt_hash_locks)
		panic("IP: failed to allocate rt_hash_locks\n");
		for (i = 0; i < 4096; i++)
			do {
				*(&rt_hash_locks[i]) = (spinlock_t){ 0, -1, 0, ((void *)0), ((void *)0), ((void *)0) };
			} while(0);
};
-----------------------------------------------------------------------

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]
  Powered by Linux