David Mosberger [Tue, 4 Mar 2003 10:40:21 +0000 (02:40 -0800)]
ia64: Implement pcibios_prep_mwi() and define HAVE_ARCH_PCI_MWI to
ensure that PCI line-size gets programmed properly. Based
on patch by Grant Grundler.
Seth Rohit [Tue, 4 Mar 2003 09:33:01 +0000 (01:33 -0800)]
[PATCH] ia64: 2nd update for HugeTLB Page patch for IA-64 2.5.60 kernel
Please find attached a small hugetlb page support update for 2.5.60
IA-64 kernel (+ my previous hugetlb page patch). This patch adds the
HAVE_ARCH_HUGETLB_UNMAPPED_AREA define for IA-64 arch.
hugetlb_get_unmapped_area function is added in
arch/ia64/mm/hugetlbpage.c
Seth Rohit [Tue, 4 Mar 2003 09:30:54 +0000 (01:30 -0800)]
[PATCH] ia64: HugeTLB Page patch for IA-64 2.5.60 kernel
Please find attached a hugetlb page patch for IA-64 2.5.60 kernel .
Changes in generic files are mostly backported from 2.5.62 (to get
hugetlb support functioning properly).
Jesse Barnes [Tue, 4 Mar 2003 07:00:36 +0000 (23:00 -0800)]
[PATCH] ia64: SN update
And here's the SN specific part of the update. This should get an SN2
compile all the way to the link stage, where I still have some devfs
stuff to cleanup.
IA64 ABI specifies that globals > 8 bytes need to be aligned to 16 bytes.
gcc doesn't follow this convention. Current kernel code will fail to work with
a compiler which follows the ABI.
size of structure ia64_machine_vector is > 8 bytes and not multiple of 16 bytes.
When we have CONFIG_IA64_GENERIC, each machine specific vector from different
object files gets linked into a user defined section(forming array of
structures).
Now with a compiler conforming to ABI, there will be holes in this array
resulting in the code failure when it goes through this array of structures.
Following patch will make the size of the structure to be multiple of 16 bytes
making both ABI confirming/non-conforming compilers happy.
Current 2.5 kernels are broken with CONFIG_IA64_GENERIC option. Two unused
members are still remaining in the structure, resulting in corruption of
structure elements during the MACHVEC_INIT initialization. Attached patch
fixes this problem.
Rationalize __init/__devinit attributes. The noteworthy changes are
that
iosapic_system_init(),
iosapic_init(),
iosapic_register_platform_intr(), and
iosapic_override_isa_irq()
are __init (only called from ACPI __init functions), but
iosapic_lists[],
num_iosapic,
find_iosapic(),
register_intr(),
iosapic_register_intr(), and
acpi_register_irq()
are not because they may be used after init-time by modules.
pcat_compat: __initdata, referenced by
iosapic_system_init (__init)
iosapic_init (__init)
iosapic_parse_prt (__init)
find_iosapic: normal, called by
register_intr (normal)
register_intr: normal, called by
iosapic_register_intr (normal), called by
acpi_register_irq (normal), called by
modules (=> can't be __init or __devinit)
iosapic_register_platform_intr (__init)
iosapic_override_isa_irq (__init)
iosapic_parse_prt (__init)
iosapic_reassign_vector: __init, called by
iosapic_register_platform_intr (__init), called by
acpi_parse_plat_int_src (__init)
iosapic_system_init: __init, called by
acpi_parse_madt (__init)
iosapic_init: __init, called by
acpi_parse_iosapic (__init)
iosapic_register_platform_intr: __init, called by
acpi_parse_plat_int_src (__init)
iosapic_override_isa_irq: __init, called by
acpi_parse_int_src_ovr (__init)
iosapic_init (__init)
fixup_vector: __init, called by
iosapic_parse_prt (__init), called by
acpi_pci_irq_init (__init)
Make interrupt registration functions take named constants for
polarity and trigger mode. Old -> new magic decoder ring:
polarity 0 -> IOSAPIC_POL_LOW(#defined to 1)
polarity 1 -> IOSAPIC_POL_HIGH(#defined to 0)
trigger 0 -> IOSAPIC_LEVEL(#defined to 1)
trigger 1 -> IOSAPIC_EDGE(#defined to 0)
emove IOSAPIC address and GSI base from external interrupt
registration interfaces. This lets us remove acpi_find_iosapic(),
which is functionally similar to find_iosapic().
This version executes in around 300 cycles on Itanium I (down from 900
or so for the original version), and so can be said to have
microsecond precision.
Stéphane Eranian [Tue, 11 Feb 2003 08:37:26 +0000 (00:37 -0800)]
[PATCH] ia64: perfmon patch for 2.5.59
Here is the patch that matches the changes I made for RHAS w.r.t
perfmon and the O(1) scheduler. This fixes the deadlocks we were
seing in RHAS and therefore on 2.5 as well.
The key change is that SIGPROF notifications are now delivered
in the perfmon kernel exit handler (called from entry.S).
At that point, we know none of the runqueue locks are held.
I have run the same test suite I used on RHAS overnight and no
sign of deadlocks.
the problem is that if the buffer was locked on entry to this code sequence
(due to in-progress I/O), ll_rw_block() will not wait, and start new I/O. So
this code will wait on the _old_ I/O, and will then continue execution,
leaving the buffer dirty.
It turns out that all callers were only writing one buffer, and they were all
waiting on that writeout. So I added a new sync_dirty_buffer() function:
Dave Jones [Mon, 10 Feb 2003 17:45:11 +0000 (16:45 -0100)]
[AGPGART] Merge VIA KT400 AGP3 support into main via-agp module.
This removes lots of annoying problems trying to prevent both modules
from being loaded, and also shares quite a bit of code.
CONFIG_AGP3 will disable AGP3 mode operation of KT400s.
Dave Jones [Mon, 10 Feb 2003 16:53:30 +0000 (15:53 -0100)]
[AGPGART] Add extra VIA GART IDs.
Based upon information from VIA, this also adds a bunch of placeholder
entries that will get filled in over time when they have been proven
to work with the code with no extra modification.
Dave Jones [Mon, 10 Feb 2003 16:53:24 +0000 (15:53 -0100)]
[AGPGART] First step towards multiple AGP buses.
The AGP3 spec allows for >1 AGP bus. This is the first of several patches
from Jeff Hartmann towards a context-using agp_bridge, by replacing
agp_bridge.foo accesses with agp_bridge->foo accesses. For now, there
should be no functional differences, as there is still only a single
agp_bridge_data struct defined.
Steven Cole [Mon, 10 Feb 2003 01:40:33 +0000 (17:40 -0800)]
[PATCH] Finish job of trimming ".o" module extension in Kconfig files
Most of the instances of <module>.o in Kconfig files have had the ".o"
extension trimmed. This change came from GertJan Spoelman through Rusty
"Trivial" Russell.
However, there are a few files that didn't get trimmed. This brings
them line with the rest of the tree.
Linus Torvalds [Sun, 9 Feb 2003 23:58:04 +0000 (15:58 -0800)]
Wake up a stopped task _after_ having marked the SIGCONT pending,
so that there isn't any window for running before the signal
handler has been invoced.
Rusty Russell [Sun, 9 Feb 2003 11:01:17 +0000 (03:01 -0800)]
[PATCH] Write with buffer>2GB returns broken errno (2)
[ Acked by AKPM --RR ]
From: Kazuto MIYOSHI <miyoshi@hpc.bs1.fc.nec.co.jp>
On 64-bit platforms, issuing write(2) with buffer larger than
2GB will return -1 and broken errno (such as 2147483640)
Requested data itself is written correctly.
That is because generic_file_write() and other relating functions
store 'ssize_t written' into 'int err'. Written byte is trimmed to
int and then sign-extended to a negative ssize_t value, which
wrongly indicates an error.
(On 64bit platform, current glibc defines SSIZE_MAX as 'LONG_MAX')
Rusty Russell [Sun, 9 Feb 2003 11:00:00 +0000 (03:00 -0800)]
[PATCH] remove LinuxVersionCode from de4x5.h
From: Adrian Bunk <bunk@fs.tum.de>
drivers/net/tulip/de4x5.h in 2.5.54 contains a definition of
LinuxVersionCode. LinuxVersionCode isn't used and it's anyway obsoleted
by KERNEL_VERSION in version.h.
Rusty Russell [Sun, 9 Feb 2003 10:59:46 +0000 (02:59 -0800)]
[PATCH] Fix return code of init_module in drivers_net_arlan.c (2)
From: Pablo Menichini <pablo@menichini.com.ar>
This patch returns correct error codes if init_modules fail.
Because of this, we can take the printks indicating the error as these
corrected error codes return miningfull information.
Rusty Russell [Sun, 9 Feb 2003 10:59:32 +0000 (02:59 -0800)]
[PATCH] RTC alarm and wildcards
(Included in 2.4)
From: Paul Gortmaker <p_gortmaker@yahoo.com>
Summary: Wildcards in RTC alarm settings failed to work
Description:
The RTC has provision for wildcards when setting the alarm; to
use them you have to write a value higher than 0xc0 to the
appropriate hr/min/sec entry. The driver used 0xff, which is
fine, but it mistakenly fed the 0xff through BIN_TO_BCD before
writing them (which is < 0xc0) and so wildcards didn't work.
(Thanks to Gerhard Kurz for reporting the bug.)
Rusty Russell [Sun, 9 Feb 2003 10:58:40 +0000 (02:58 -0800)]
[PATCH] scripts_ver_linux
From: Frank Davis <fdavis@si.rr.com>
The ver_linux script is still using rmmod to determine
module-init-tools version. The following patch uses depmod,
which produces the appropriate result.
Rusty Russell [Sun, 9 Feb 2003 10:58:12 +0000 (02:58 -0800)]
[PATCH] remove check_region from drivers_net_irda_irport.c
From: william stinson <wstinson@wanadoo.fr>
this patch for drivers/net/irda/irport.c IRDA driver removes one call
to check_region using request_region instead. The patch also moves
the call to request_region to before the allocation of the driver
instance.