* [Linux-ia64] kernel update (third patch relative to 2.4.2)
@ 2001-03-27 3:22 David Mosberger
2001-03-29 21:32 ` David Mosberger
2001-04-01 18:24 ` Andreas Schwab
0 siblings, 2 replies; 3+ messages in thread
From: David Mosberger @ 2001-03-27 3:22 UTC (permalink / raw)
To: linux-ia64
The latest IA-64 patch is now available at:
ftp://ftp.kernel.org/pub/linux/kernel/ports/ia64/
in file linux-2.4.2-ia64-010326.diff*
The only two changes are:
o fix do_csum_partial_copy_from_user() to work properly
o fix ia64_ksyms.c so it compiles for UP as well
Enjoy,
--david
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Linux-ia64] kernel update (third patch relative to 2.4.2)
2001-03-27 3:22 [Linux-ia64] kernel update (third patch relative to 2.4.2) David Mosberger
@ 2001-03-29 21:32 ` David Mosberger
2001-04-01 18:24 ` Andreas Schwab
1 sibling, 0 replies; 3+ messages in thread
From: David Mosberger @ 2001-03-29 21:32 UTC (permalink / raw)
To: linux-ia64
Some of you reported that the 2.4.2 based kernels no longer boot
properly because /sbin/init got stuck. Andreas Schwab found that this
happened only when using a page size smaller than 16KB. I looked into
this and it turned out to be a nasty initialization ordering problem.
Basically, ia64_mmu_init() ended up using the "unimpl_va_mask" member
in cpu_data[] before it was initialized, which made it appear as if
the CPU implements all 64 virtual address bits. With a page size of
16KB or bigger, this happened to work mostly OK (though there could
have been corner cases under which this would also have produced
problems), but with a page size of 4 or 8KB, the kernel basically told
the CPU that the entire address space is used for the virtually mapped
page table. Of course, that doesn't work too well... ;-)
A patch to fix the problem is attached below. Please let me know how
this goes. If nothing unexpected crops up, I'd like to update the
patch on ftp.kernel.org on Monday.
--david
--- arch/ia64/kernel/setup.c~ Wed Mar 28 21:45:13 2001
+++ arch/ia64/kernel/setup.c Thu Mar 29 13:07:02 2001
@@ -398,6 +398,14 @@
pal_vm_info_2_u_t vmi;
unsigned int max_ctx;
+ /*
+ * We can't pass "local_cpu_data" do identify_cpu() because we haven't called
+ * ia64_mmu_init() yet. And we can't call ia64_mmu_init() first because it
+ * depends on the data returned by identify_cpu(). We break the dependency by
+ * accessing cpu_data[] the old way, through identity mapped space.
+ */
+ identify_cpu(&cpu_data[smp_processor_id()]);
+
/* Clear the stack memory reserved for pt_regs: */
memset(ia64_task_regs(current), 0, sizeof(struct pt_regs));
@@ -416,8 +424,6 @@
current->active_mm = &init_mm;
ia64_mmu_init();
-
- identify_cpu(local_cpu_data);
#ifdef CONFIG_IA32_SUPPORT
/* initialize global ia32 state - CR0 and CR4 */
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Linux-ia64] kernel update (third patch relative to 2.4.2)
2001-03-27 3:22 [Linux-ia64] kernel update (third patch relative to 2.4.2) David Mosberger
2001-03-29 21:32 ` David Mosberger
@ 2001-04-01 18:24 ` Andreas Schwab
1 sibling, 0 replies; 3+ messages in thread
From: Andreas Schwab @ 2001-04-01 18:24 UTC (permalink / raw)
To: linux-ia64
David Mosberger <davidm@hpl.hp.com> writes:
|> The latest IA-64 patch is now available at:
|>
|> ftp://ftp.kernel.org/pub/linux/kernel/ports/ia64/
|>
|> in file linux-2.4.2-ia64-010326.diff*
|>
|> The only two changes are:
|>
|> o fix do_csum_partial_copy_from_user() to work properly
|> o fix ia64_ksyms.c so it compiles for UP as well
Actually, for UP we need to export __flush_tlb_all for the agpgart module.
--- ia64_ksyms.c 2001/03/28 11:36:05 1.1
+++ ia64_ksyms.c 2001/04/01 17:59:28
@@ -52,9 +52,11 @@
EXPORT_SYMBOL_NOVERS(__down_write_failed);
EXPORT_SYMBOL_NOVERS(__rwsem_wake);
-#ifdef CONFIG_SMP
#include <asm/pgalloc.h>
+#ifdef CONFIG_SMP
EXPORT_SYMBOL(smp_flush_tlb_all);
+#else
+EXPORT_SYMBOL(__flush_tlb_all);
#endif
#include <asm/page.h>
Andreas.
--
Andreas Schwab "And now for something
SuSE Labs completely different."
Andreas.Schwab@suse.de
SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg
Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2001-04-01 18:24 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-03-27 3:22 [Linux-ia64] kernel update (third patch relative to 2.4.2) David Mosberger
2001-03-29 21:32 ` David Mosberger
2001-04-01 18:24 ` Andreas Schwab
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox