ChangeSet@1.1576, 2005-03-12 09:50:55-03:00, torvalds@osdl.org [PATCH] Workaround possible pty line discipline race It's in no way "correct", in that the race hasn't actually gone away by this patch, but the patch makes it unimportant. We may end up calling a stale line discipline, which is still very wrong, but it so happens that we don't much care in practice. I think that in a 2.4.x tree there are some theoretical SMP races with module unloading etc (which the 2.6.x code doesn't have because module unload stops the other CPU's - maybe that part got backported to 2.4.x?), but quite frankly, I suspect that even in 2.4.x they are entirely theoretical and impossible to actually hit. And again, in theory some line discipline might do something strange in it's "chars_in_buffer" routine that would be problematic. In practice that's just not the case: the "chars_in_buffer()" routine might return a bogus _value_ for a stale line discipline thing, but none of them seem to follow any pointers that might have become invalid (and in fact, most ldiscs don't even have that function). So while this patch is wrong in theory, it does have the advantage of being (a) very safe minimal patch and (b) fixing the problem in practice with no performance downside. I still feel a bit guilty about it, though. ChangeSet@1.1575, 2005-03-12 09:31:25-03:00, roland@redhat.com [PATCH] i386/x86_64 fpu: fix x87 tag word simulation using fxsave Fix x87 fnsave Tag Word emulation when using FXSR (SSE) From: Roland McGrath The fxsave instruction does not save the x87 tag word (only the empty bits), and we re-created the old-style x87 tags incorrectly. The registers are saved in "stack order" in the save area, but the tag word bits are in "hardware order", and we need to get the right register state. Both x86 and x86-64 needed this fix. Signed-off-by: Roland McGrath Signed-off-by: Linus Torvalds ChangeSet@1.1574, 2005-03-11 13:56:03-03:00, andrea@suse.de [PATCH] Write throttling should not take free highmem into account I've got a fix for you on 2.4. I got reports of stalls with heavy writes on 2.4. There was a mistake in nr_free_buffer_pages. That function is definitely meant _not_ to take highmem into account (dirty cache cannot spread over highmem in 2.4 [even when on top of fs]). For unknown reasons it was actually taking highmem into account. The code was obviously meant to not take into account see the GFP_USER and zonelist, except it wasn't using the zonelist. That is a severe problem because there will be no write throttling at all, and no bdflush wakeup either. This should fix it, though my compiler fails to compile 2.4, so it's not immediate to verify it. If any problem showup I'll post a followup. This is a noop for all systems <800M (1G shouldn't be noticeable either). This is why most people can't notice. Signed-off-by: Andrea Arcangeli ChangeSet@1.1573, 2005-03-10 17:59:22-03:00, cw@f00f.org [PATCH] early boot code references check_acpi_pci() For x86 (and friends) ACPI_BOOT=y (always) and this code wants to call check_acpi_pci(). Signed-off-by: Chris Wedgwood ===== arch/i386/kernel/earlyquirk.c 1.1 vs edited ===== ChangeSet@1.1572, 2005-03-10 07:51:36-03:00, willy@w.ods.org [PATCH] acpi.h needs the recent acpi merge in 2.4-BK broke compilation of a few external patches (eg: iptable_string), because it declares check_acpi_pci() as void __init, while linux/init.h is not included. Here is a trivial patch which solves the problem. ChangeSet@1.1571, 2005-03-09 11:43:51-03:00, marcelo@logos.cnet Early ACPI PCI quirk depends on CONFIG_X86_IO_APIC TAG: v2.4.30-pre3