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 Signed-off-by: Linus Torvalds 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 Signed-off-by: Linus Torvalds 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 Signed-off-by: Linus Torvalds 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 Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds 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 Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds 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 Signed-off-by: Linus Torvalds ChangeSet@1.2206, 2004-10-16 15:03:26-07:00, olh@suse.de [PATCH] joydump needs gameport Signed-off-by: Adrian Bunk Signed-off-by: Linus Torvalds 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 Signed-off-by: Linus Torvalds 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 Signed-off-by: Linus Torvalds 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 Signed-off-by: Linus Torvalds 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 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 Signed-off-by: Linus Torvalds 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