* [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