public inbox for linux-ia64@vger.kernel.org
 help / color / mirror / Atom feed
* [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