ChangeSet@1.2212, 2004-10-17 09:21:08-07:00, nathanl@austin.ibm.com [PATCH] ppc64: fix smp_startup_cpu for cpu hotplug This change is needed in order to allow cpus to be onlined after boot. This used to work but the declaration of pseries_secondary_smp_init in this file was changed in Ben's big cleanup patch a while back, so the cpu would start at a bad address. Signed-off-by: Nathan Lynch <nathanl@austin.ibm.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org> ChangeSet@1.2211, 2004-10-17 09:20:56-07:00, nickpiggin@yahoo.com.au [PATCH] kswapd lockup fix Fix some bugs in the kswapd logic which can cause kswapd lockups. The balance_pgdat() logic is supposed to cause kswapd to loop across all zones in the node until each zone either a) has enough pages free or b) is deemed to be in an "all pages unreclaimable" state. In the latter case, we just give the zone a light scan on each balance_pgdat() scan and wait for the zone to come back to life again. But the zone->all_unreclaimable logic is broken - if the zone has no pages on the LRU at all, we perform no scanning of that zone (of course). So the zone->pages_scanned is not incremented and the expression if (zone->pages_scanned > zone->present_pages * 2) zone->all_unreclaimable = 1; never is satisfied. The patch changes that logic to if (zone->pages_scanned >= (zone->nr_active + zone->nr_inactive) * 4) zone->all_unreclaimable = 1; so if the zone has no LRU pages it will still enter the all_unreclaimable state. Another problem is that if the zone has no LRU pages we will tell shrink_slab() that we scanned zero LRU pages. This causes shrink_slab() to scan zero slab objects, which is obviously wrong. So change shrink_slab() to perform a decent chunk of slab scanning in this situation. And put a cond_resched() into the balance_pgdat() outer loop. Probably unnecessary, but that's what Jeff had in place when he confirmed that this patch fixed the lockup :( Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org> ChangeSet@1.2210, 2004-10-17 09:20:42-07:00, pavel@ucw.cz [PATCH] swsusp: fix x86-64 - do not use memory in copy loop In assembly code, there are some problems with "nosave" section (linker was doing something stupid, like duplicating the section). We attempted to fix it, but fix was worse then first problem. This fixes is for good: We no longer use any memory in the copy loop. (Plus it fixes indentation and uses meaningful labels.) Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org> ChangeSet@1.2209, 2004-10-17 09:20:30-07:00, mingo@elte.hu [PATCH] tailcall prevention in sys_wait4() and sys_waitid() A hack to prevent the compiler from generatin tailcalls in these two functions. With CONFIG_REGPARM=y, the tailcalled code ends up stomping on the syscall's argument frame which corrupts userspace's registers. Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org> ChangeSet@1.2208, 2004-10-17 09:20:18-07:00, rddunlap@osdl.org [PATCH] intel_agp: dangling devexit reference Fix error found by 'scripts/reference_discarded.pl': Error: ./drivers/char/agp/intel-agp.o .data refers to 00000914 R_386_32 .exit.text Signed-off-by: Randy Dunlap <rddunlap@osdl.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org> ChangeSet@1.2207, 2004-10-16 20:19:14-07:00, benh@kernel.crashing.org [PATCH] ppc64: more issues with mem_reserve As Milton noticed, Anton actually broke the logic if the memory isn't aligned in the first place. Sorry about this mess for such a little piece of code. This _really_ fixes is it all Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org> ChangeSet@1.2206, 2004-10-16 15:03:26-07:00, olh@suse.de [PATCH] joydump needs gameport Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org> ChangeSet@1.2205, 2004-10-16 15:03:14-07:00, anton@samba.org [PATCH] ppc64: fix some issues with mem_reserve I found a couple of issues with reserve_mem: - If we try and mem_reserve something of zero length, everything reserved after it would get ignored. This is because early_reserve_mem sees a zero length as a terminator. - The code rounded the top down instead of up. Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org> ChangeSet@1.2204, 2004-10-16 15:03:01-07:00, benh@kernel.crashing.org [PATCH] ppc32: Add "native" iomap interfaces This patch adds proper ppc32 "iomap" interfaces. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org> ChangeSet@1.2203, 2004-10-16 15:02:49-07:00, benh@kernel.crashing.org [PATCH] ppc64: Split iomap implementation & eeh ! Nowadays, it's possible to build CONFIG_PPC_PMAC without CONFIG_PPC_PSERIES, in which case, eeh will not be included in the build (and the eeh checks are turned into no-ops). However, we then "lose" the iomap functions. This patch moves them to a separate file. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org> ChangeSet@1.2202, 2004-10-16 15:02:35-07:00, akpm@osdl.org [PATCH] ext3 direct io assert fix Fix bug identified by Badari Pulavarty <pbadari@us.ibm.com> Local variable `handle' will become stale if ext3_direct_io_get_blocks() closes off the current transaction and starts a new one. This causes a BUG in journal_stop(). So reacquire the handle from *current after performing the I/O. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org> ChangeSet@1.2201, 2004-10-15 20:01:12-07:00, torvalds@ppc970.osdl.org Linux 2.6.9-final Let's try the 2.4.x release methodology TAG: v2.6.9-final