* kernel 2.5.20 on alpha (RE: [patch] Re: kernel 2.5.18 on alpha) @ 2002-06-04 10:11 Oliver Pitzeier 2002-06-04 12:45 ` Oliver Pitzeier 2002-06-04 20:04 ` David Mosberger 0 siblings, 2 replies; 15+ messages in thread From: Oliver Pitzeier @ 2002-06-04 10:11 UTC (permalink / raw) To: o.pitzeier, 'Ivan Kokshaysky' Cc: 'Richard Henderson', linux-kernel, axp-kernel-list Oliver Pitzeier wrote: [ ... ] > If you want to know the error: [ ... ] > `copy_user_page' undeclared (first use in this function) > make[1]: *** [main.o] Error 1 > make[1]: Leaving directory `/usr/src/linux-2.5.20/init' > make: *** [init] Error 2 I guess I found where the error comes from: (from the 2.5.20 Changelog): > <davidm@napali.hpl.hp.com> > [PATCH] pass "page" pointer to clear_user_page()/copy_user_page() > > Hi Linus, > > Are you willing to change the interfaces of clear_user_page() and > copy_user_page() so that they can receive the relevant page pointer as > a separate argument? I need this on ia64 to implement the lazy-cache > flushing scheme. > > I believe PPC would also benefit from this. > > --david Now I believe, that Alpha also benefits from this. :o) The only thing I have to do - I guess - is to change the defines for copy_user_page() and clear_user_page. Adding the not used parameter >pg< should not make any problems. Greetz, Oliver ^ permalink raw reply [flat|nested] 15+ messages in thread
* RE: kernel 2.5.20 on alpha (RE: [patch] Re: kernel 2.5.18 on alpha) 2002-06-04 10:11 kernel 2.5.20 on alpha (RE: [patch] Re: kernel 2.5.18 on alpha) Oliver Pitzeier @ 2002-06-04 12:45 ` Oliver Pitzeier 2002-06-04 14:06 ` Oliver Pitzeier 2002-06-04 20:04 ` David Mosberger 1 sibling, 1 reply; 15+ messages in thread From: Oliver Pitzeier @ 2002-06-04 12:45 UTC (permalink / raw) To: 'Ivan Kokshaysky'; +Cc: linux-kernel, axp-kernel-list Hi! I already found a few more errors while trying to compile 2.5.20. I send you the patch as soon as I have successfully compiled the kernel _without_ problems (hopefully today). FYI. I do not compile very much options; The main options I compile ('coz I need 'em and nothing more...): SCSI: QLogic ISP Network: DECchip Tulip (dc2114x) and Early DECchip Tulip (dc2104x) Character Dev.: Support for console on serial port Filesystems: EXT3 support, no ReiserFS Network FS: NFS (as module) Greetz, Oliver > Oliver Pitzeier wrote: > [ ... ] > > > If you want to know the error: > > [ ... ] > > > `copy_user_page' undeclared (first use in this function) > > make[1]: *** [main.o] Error 1 > > make[1]: Leaving directory `/usr/src/linux-2.5.20/init' > > make: *** [init] Error 2 > > I guess I found where the error comes from: > > (from the 2.5.20 Changelog): > > <davidm@napali.hpl.hp.com> > > [PATCH] pass "page" pointer to clear_user_page()/copy_user_page() > > > > Hi Linus, > > > > Are you willing to change the interfaces of clear_user_page() and > > copy_user_page() so that they can receive the relevant page > pointer as > > a separate argument? I need this on ia64 to implement the > lazy-cache > > flushing scheme. > > > > I believe PPC would also benefit from this. > > > > --david > > Now I believe, that Alpha also benefits from this. :o) The > only thing I have to do - I guess - is to change the defines > for copy_user_page() and clear_user_page. Adding the not used > parameter >pg< should not make any problems. > > Greetz, > Oliver ^ permalink raw reply [flat|nested] 15+ messages in thread
* RE: kernel 2.5.20 on alpha (RE: [patch] Re: kernel 2.5.18 on alpha) 2002-06-04 12:45 ` Oliver Pitzeier @ 2002-06-04 14:06 ` Oliver Pitzeier 2002-06-04 14:22 ` Jan-Benedict Glaw ` (2 more replies) 0 siblings, 3 replies; 15+ messages in thread From: Oliver Pitzeier @ 2002-06-04 14:06 UTC (permalink / raw) To: axp-kernel-list, 'Ivan Kokshaysky'; +Cc: linux-kernel Ok. Kernel compiled, but at the startup I see this: [ ... ] Initializing RT netlink socket pci: passed tb register update test pci: passed sg loopback i/o read test pci: passed tbia test pci: passed pte write cache snoop test pci: failed valid tag invalid pte reload test (mcheck; workaround available) pci: passed pci machine check test Kernel bug at /usr/src/linux-2.5.20/include/linux/device.h:75 swapper(1): Kernel Bug 1 pc = [<fffffc00003dceac>] ra = [<fffffc00003dbc14>] ps = 0000 Not tainted v0 = 0000000000000000 t0 = 0000000000000000 t1 = fffffc00005b3a48 t2 = fffffc00001e2888 t3 = fffffc00001e2878 t4 = ffffffff00000000 t5 = 0000000000000001 t6 = fffffc000ffe1c68 t7 = fffffc00008a8000 a0 = fffffc00001e2878 a1 = 0000000000000000 a2 = 0000000000000000 a3 = 0000000000000000 a4 = fffffffffffffffe a5 = 0000000000000002 t8 = fffffc00005a85b0 t9 = 0000000000008000 t10= 0000000000008000 t11= 0000000000010000 pv = fffffc00003dce80 at = 0000000000000000 gp = fffffc00005eece8 sp = fffffc00008ab400 Trace:fffffc00003dbc14 fffffc00003100c8 fffffc0000310708 fffffc0000310bf8 fffffc000032ed58 fffffc000031008c fffffc00003100b0 fffffc00003106f0 Code: a44400c0 2fe00000 e4400018 a022000c f4200004 00000081 <0000004b> 00579a9d Kernel panic: Attempted to kill init! I check what is on line 75 in device.h! Greetz, Oliver PS: Anybody want's the patches??? > -----Original Message----- > From: axp-kernel-list-admin@redhat.com > [mailto:axp-kernel-list-admin@redhat.com] On Behalf Of Oliver Pitzeier > Sent: Tuesday, June 04, 2002 2:45 PM > To: 'Ivan Kokshaysky' > Cc: linux-kernel@vger.kernel.org; axp-kernel-list@redhat.com > Subject: RE: kernel 2.5.20 on alpha (RE: [patch] Re: kernel > 2.5.18 on alpha) > > > Hi! > > I already found a few more errors while trying to compile > 2.5.20. I send you the patch as soon as I have successfully > compiled the kernel _without_ problems (hopefully today). > > FYI. I do not compile very much options; The main options > I compile ('coz I need 'em and nothing more...): > SCSI: QLogic ISP > Network: DECchip Tulip (dc2114x) and Early DECchip > Tulip (dc2104x) > Character Dev.: Support for console on serial port > Filesystems: EXT3 support, no ReiserFS > Network FS: NFS (as module) > > Greetz, > Oliver > > > Oliver Pitzeier wrote: > > [ ... ] > > > > > If you want to know the error: > > > > [ ... ] > > > > > `copy_user_page' undeclared (first use in this function) > > > make[1]: *** [main.o] Error 1 > > > make[1]: Leaving directory `/usr/src/linux-2.5.20/init' > > > make: *** [init] Error 2 > > > > I guess I found where the error comes from: > > > > (from the 2.5.20 Changelog): > > > <davidm@napali.hpl.hp.com> > > > [PATCH] pass "page" pointer to clear_user_page()/copy_user_page() > > > > > > Hi Linus, > > > > > > Are you willing to change the interfaces of clear_user_page() and > > > copy_user_page() so that they can receive the relevant page > > pointer as > > > a separate argument? I need this on ia64 to implement the > > lazy-cache > > > flushing scheme. > > > > > > I believe PPC would also benefit from this. > > > > > > --david > > > > Now I believe, that Alpha also benefits from this. :o) The > > only thing I have to do - I guess - is to change the defines > > for copy_user_page() and clear_user_page. Adding the not used > > parameter >pg< should not make any problems. > > > > Greetz, > > Oliver > > > > > _______________________________________________ > Axp-kernel-list mailing list > Axp-kernel-list@redhat.com > https://listman.redhat.com/mailman/listinfo/axp-kernel-list > ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: kernel 2.5.20 on alpha (RE: [patch] Re: kernel 2.5.18 on alpha) 2002-06-04 14:06 ` Oliver Pitzeier @ 2002-06-04 14:22 ` Jan-Benedict Glaw 2002-06-04 15:13 ` Oliver Pitzeier 2002-06-04 15:47 ` Oliver Pitzeier 2002-06-04 14:40 ` Oliver Pitzeier 2002-06-04 16:24 ` kernel 2.5.20 on alpha (RE: [patch] Re: kernel 2.5.18 on alpha) Thunder from the hill 2 siblings, 2 replies; 15+ messages in thread From: Jan-Benedict Glaw @ 2002-06-04 14:22 UTC (permalink / raw) To: linux-kernel [-- Attachment #1: Type: text/plain, Size: 1260 bytes --] On Tue, 2002-06-04 16:06:35 +0200, Oliver Pitzeier <o.pitzeier@uptime.at> wrote in message <000001c20bd1$0cad7580$010b10ac@sbp.uptime.at>: > Ok. Kernel compiled, but at the startup I see this: > [ ... ] > Initializing RT netlink socket > pci: passed tb register update test > pci: passed sg loopback i/o read test > pci: passed tbia test > pci: passed pte write cache snoop test > pci: failed valid tag invalid pte reload test (mcheck; workaround > available) > pci: passed pci machine check test > Kernel bug at /usr/src/linux-2.5.20/include/linux/device.h:75 > swapper(1): Kernel Bug 1 > pc = [<fffffc00003dceac>] ra = [<fffffc00003dbc14>] ps = 0000 Not > tainted > v0 = 0000000000000000 t0 = 0000000000000000 t1 = fffffc00005b3a48 > > I check what is on line 75 in device.h! That's a known problem. Please look for my mail with Subject "[2.5.19] Oops during PCI scan on Alpha". One follow-up had a working (but hackish) fix. > PS: Anybody want's the patches??? /me MfG, JBG PS: Please answer _under_ or _within_ an old mail, but never ever above it! -- Jan-Benedict Glaw . jbglaw@lug-owl.de . +49-172-7608481 -- New APT-Proxy written in shell script -- http://lug-owl.de/~jbglaw/software/ap2/ [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* RE: kernel 2.5.20 on alpha (RE: [patch] Re: kernel 2.5.18 on alpha) 2002-06-04 14:22 ` Jan-Benedict Glaw @ 2002-06-04 15:13 ` Oliver Pitzeier 2002-06-04 15:47 ` Oliver Pitzeier 1 sibling, 0 replies; 15+ messages in thread From: Oliver Pitzeier @ 2002-06-04 15:13 UTC (permalink / raw) To: 'Jan-Benedict Glaw', linux-kernel, axp-kernel-list Cc: 'Ivan Kokshaysky' Jan-Benedict Glaw wrote: > That's a known problem. Please look for my mail with Subject > "[2.5.19] Oops during PCI scan on Alpha". One follow-up had a > working (but > hackish) fix. [ ... ] OK. Next error. I give up for today. :o) [ ... ] Freeing unused kernel memory: 360k freed Kernel bug at ll_rw_blk.c:1602 swapper(1): Kernel Bug 1 pc = [<fffffc000040b850>] ra = [<fffffc000040ba44>] ps = 0000 Not tainted v0 = 0000000000000000 t0 = 0000000000000060 t1 = 0000000000000001 t2 = fffffc000fd84740 t3 = 0000000000000000 t4 = 0000000000000060 t5 = 0000000000000001 t6 = fffffc000fcfabf0 t7 = fffffc00008a8000 a0 = fffffc000fee08c0 a1 = fffffc000fee08c0 a2 = fffffc00008ab4e0 a3 = fffffc00008ab4f0 a4 = fffffc00008ab554 a5 = 0000000000000001 t8 = 0000000000000000 t9 = 0000000000000001 t10= 0000000000000000 t11= 0000000000000278 pv = fffffc000040b9a0 at = fffffc00005acc90 gp = fffffc00005eece8 sp = fffffc00008ab530 Trace:fffffc000040ba44 fffffc0000382e00 fffffc00003831f4 fffffc0000383354 fffffc00003b2280 fffffc00003d630c fffffc00003464ac fffffc00003b2280 fffffc00003b280c fffffc0000359c10 fffffc0000359e14 fffffc0000347204 fffffc0000347928 fffffc00003477d0 fffffc0000368b58 fffffc0000369a00 fffffc000031078c fffffc00003101cc fffffc0000310708 fffffc0000310bf8 fffffc000032ed58 fffffc000031008c fffffc00003100b0 fffffc00003106f0 Code: 4821f621 48213681 48407622 404103a2 e4400005 00000081 <00000642> 0057c095 Kernel panic: Attempted to kill init! ^ permalink raw reply [flat|nested] 15+ messages in thread
* RE: kernel 2.5.20 on alpha (RE: [patch] Re: kernel 2.5.18 on alpha) 2002-06-04 14:22 ` Jan-Benedict Glaw 2002-06-04 15:13 ` Oliver Pitzeier @ 2002-06-04 15:47 ` Oliver Pitzeier 1 sibling, 0 replies; 15+ messages in thread From: Oliver Pitzeier @ 2002-06-04 15:47 UTC (permalink / raw) To: 'Jan-Benedict Glaw', linux-kernel; +Cc: axp-kernel-list [-- Attachment #1: Type: text/plain, Size: 295 bytes --] Jan Benedict Glaw wrote: [ ... ] > > PS: Anybody want's the patches??? > > /me OK, I attached the patches: a small part is from: Anton Blanchard; a big part from: Ivan Kokshaysky a small part from: me... And I took an idea from: "davidm@napali.hpl.hp.com" (See the 2.5.20 Changelog) -Oliver [-- Attachment #2: kernel-2.5.20.alpha.patch --] [-- Type: application/octet-stream, Size: 9433 bytes --] diff -r -C2 tarballs/linux-2.5.20/arch/alpha/kernel/osf_sys.c linux-2.5.20/arch/alpha/kernel/osf_sys.c *** tarballs/linux-2.5.20/arch/alpha/kernel/osf_sys.c Mon Jun 3 03:44:37 2002 --- linux-2.5.20/arch/alpha/kernel/osf_sys.c Tue Jun 4 11:19:48 2002 *************** *** 34,37 **** --- 34,38 ---- #include <linux/types.h> #include <linux/ipc.h> + #include <linux/namei.h> #include <asm/fpu.h> diff -r -C2 tarballs/linux-2.5.20/arch/alpha/kernel/pci.c linux-2.5.20/arch/alpha/kernel/pci.c *** tarballs/linux-2.5.20/arch/alpha/kernel/pci.c Mon Jun 3 03:44:41 2002 --- linux-2.5.20/arch/alpha/kernel/pci.c Tue Jun 4 11:19:48 2002 *************** *** 191,200 **** #undef GB ! static void __init pcibios_init(void) { ! if (!alpha_mv.init_pci) ! return; ! alpha_mv.init_pci(); } --- 191,200 ---- #undef GB ! static int __init pcibios_init(void) { ! if (alpha_mv.init_pci) ! alpha_mv.init_pci(); ! return 0; } diff -r -C2 tarballs/linux-2.5.20/arch/alpha/kernel/signal.c linux-2.5.20/arch/alpha/kernel/signal.c *** tarballs/linux-2.5.20/arch/alpha/kernel/signal.c Mon Jun 3 03:44:49 2002 --- linux-2.5.20/arch/alpha/kernel/signal.c Tue Jun 4 11:19:48 2002 *************** *** 19,22 **** --- 19,23 ---- #include <linux/stddef.h> #include <linux/tty.h> + #include <linux/binfmts.h> #include <asm/bitops.h> diff -r -C2 tarballs/linux-2.5.20/drivers/pci/pci-driver.c linux-2.5.20/drivers/pci/pci-driver.c *** tarballs/linux-2.5.20/drivers/pci/pci-driver.c Mon Jun 3 03:44:51 2002 --- linux-2.5.20/drivers/pci/pci-driver.c Tue Jun 4 16:46:39 2002 *************** *** 193,197 **** } ! subsys_initcall(pci_driver_init); EXPORT_SYMBOL(pci_match_device); --- 193,197 ---- } ! arch_initcall(pci_driver_init); EXPORT_SYMBOL(pci_match_device); diff -r -C2 tarballs/linux-2.5.20/fs/mpage.c linux-2.5.20/fs/mpage.c *** tarballs/linux-2.5.20/fs/mpage.c Mon Jun 3 03:44:44 2002 --- linux-2.5.20/fs/mpage.c Tue Jun 4 14:30:34 2002 *************** *** 13,16 **** --- 13,17 ---- #include <linux/kernel.h> #include <linux/module.h> + #include <linux/kdev_t.h> #include <linux/bio.h> #include <linux/fs.h> diff -r -C2 tarballs/linux-2.5.20/include/asm-alpha/bitops.h linux-2.5.20/include/asm-alpha/bitops.h *** tarballs/linux-2.5.20/include/asm-alpha/bitops.h Mon Jun 3 03:44:49 2002 --- linux-2.5.20/include/asm-alpha/bitops.h Tue Jun 4 11:19:49 2002 *************** *** 316,319 **** --- 316,333 ---- } + /* + * fls: find last bit set. + */ + #if defined(__alpha_cix__) && defined(__alpha_fix__) + static inline int fls(int word) + { + long result; + __asm__("ctlz %1,%0" : "=r"(result) : "r"(word & 0xffffffff)); + return 64 - result; + } + #else + #define fls generic_fls + #endif + /* Compute powers of two for the given integer. */ static inline int floor_log2(unsigned long word) diff -r -C2 tarballs/linux-2.5.20/include/asm-alpha/mc146818rtc.h linux-2.5.20/include/asm-alpha/mc146818rtc.h *** tarballs/linux-2.5.20/include/asm-alpha/mc146818rtc.h Mon Jun 3 03:44:39 2002 --- linux-2.5.20/include/asm-alpha/mc146818rtc.h Tue Jun 4 12:39:46 2002 *************** *** 25,27 **** --- 25,29 ---- }) + #define RTC_IRQ 8 + #endif /* __ASM_ALPHA_MC146818RTC_H */ diff -r -C2 tarballs/linux-2.5.20/include/asm-alpha/page.h linux-2.5.20/include/asm-alpha/page.h *** tarballs/linux-2.5.20/include/asm-alpha/page.h Mon Jun 3 03:44:52 2002 --- linux-2.5.20/include/asm-alpha/page.h Tue Jun 4 12:07:23 2002 *************** *** 16,23 **** extern void clear_page(void *page); ! #define clear_user_page(page, vaddr) clear_page(page) extern void copy_page(void * _to, void * _from); ! #define copy_user_page(to, from, vaddr) copy_page(to, from) #ifdef STRICT_MM_TYPECHECKS --- 16,23 ---- extern void clear_page(void *page); ! #define clear_user_page(page, vaddr, pg) clear_page(page) extern void copy_page(void * _to, void * _from); ! #define copy_user_page(to, from, vaddr, pg) copy_page(to, from) #ifdef STRICT_MM_TYPECHECKS *************** *** 96,101 **** #define __va(x) ((void *)((unsigned long) (x) + PAGE_OFFSET)) #ifndef CONFIG_DISCONTIGMEM ! #define virt_to_page(kaddr) (mem_map + (__pa(kaddr) >> PAGE_SHIFT)) ! #define VALID_PAGE(page) (((page) - mem_map) < max_mapnr) #endif /* CONFIG_DISCONTIGMEM */ --- 96,105 ---- #define __va(x) ((void *)((unsigned long) (x) + PAGE_OFFSET)) #ifndef CONFIG_DISCONTIGMEM ! #define pfn_to_page(pfn) (mem_map + (pfn)) ! #define page_to_pfn(page) ((unsigned long)((page) - mem_map)) ! #define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT) ! ! #define pfn_valid(pfn) ((pfn) < max_mapnr) ! #define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT) #endif /* CONFIG_DISCONTIGMEM */ diff -r -C2 tarballs/linux-2.5.20/include/asm-alpha/pgtable.h linux-2.5.20/include/asm-alpha/pgtable.h *** tarballs/linux-2.5.20/include/asm-alpha/pgtable.h Mon Jun 3 03:44:45 2002 --- linux-2.5.20/include/asm-alpha/pgtable.h Tue Jun 4 12:10:18 2002 *************** *** 180,188 **** #if defined(CONFIG_ALPHA_GENERIC) || \ (defined(CONFIG_ALPHA_EV6) && !defined(USE_48_BIT_KSEG)) ! #define PHYS_TWIDDLE(phys) \ ! ((((phys) & 0xc0000000000UL) == 0x40000000000UL) \ ! ? ((phys) ^= 0xc0000000000UL) : (phys)) #else ! #define PHYS_TWIDDLE(phys) (phys) #endif --- 180,189 ---- #if defined(CONFIG_ALPHA_GENERIC) || \ (defined(CONFIG_ALPHA_EV6) && !defined(USE_48_BIT_KSEG)) ! #define KSEG_PFN (0xc0000000000UL >> PAGE_SHIFT) ! #define PHYS_TWIDDLE(pfn) \ ! ((((pfn) & KSEG_PFN) == (0x40000000000UL >> PAGE_SHIFT)) \ ! ? ((pfn) ^= KSEG_PFN) : (pfn)) #else ! #define PHYS_TWIDDLE(pfn) (pfn) #endif *************** *** 200,209 **** #ifndef CONFIG_DISCONTIGMEM #define mk_pte(page, pgprot) \ ({ \ pte_t pte; \ \ ! pte_val(pte) = ((unsigned long)(page - mem_map) << 32) | \ ! pgprot_val(pgprot); \ pte; \ }) --- 201,211 ---- #ifndef CONFIG_DISCONTIGMEM + #define pte_pfn(pte) (pte_val(pte) >> 32) + #define pte_page(pte) pfn_to_page(pte_pfn(pte)) #define mk_pte(page, pgprot) \ ({ \ pte_t pte; \ \ ! pte_val(pte) = (page_to_pfn(page) << 32) | pgprot_val(pgprot); \ pte; \ }) *************** *** 220,227 **** pte; \ }) #endif ! extern inline pte_t mk_pte_phys(unsigned long physpage, pgprot_t pgprot) ! { pte_t pte; pte_val(pte) = (PHYS_TWIDDLE(physpage) << (32-PAGE_SHIFT)) | pgprot_val(pgprot); return pte; } extern inline pte_t pte_modify(pte_t pte, pgprot_t newprot) --- 222,239 ---- pte; \ }) + #define pte_page(x) \ + ({ \ + unsigned long kvirt; \ + struct page * __xx; \ + \ + kvirt = (unsigned long)__va(pte_val(x) >> (32-PAGE_SHIFT)); \ + __xx = virt_to_page(kvirt); \ + \ + __xx; \ + }) #endif ! extern inline pte_t pfn_pte(unsigned long physpfn, pgprot_t pgprot) ! { pte_t pte; pte_val(pte) = (PHYS_TWIDDLE(physpfn) << 32) | pgprot_val(pgprot); return pte; } extern inline pte_t pte_modify(pte_t pte, pgprot_t newprot) *************** *** 234,251 **** { pgd_val(*pgdp) = _PAGE_TABLE | ((((unsigned long) pmdp) - PAGE_OFFSET) << (32-PAGE_SHIFT)); } - #ifndef CONFIG_DISCONTIGMEM - #define pte_page(x) (mem_map+(unsigned long)((pte_val(x) >> 32))) - #else - #define pte_page(x) \ - ({ \ - unsigned long kvirt; \ - struct page * __xx; \ - \ - kvirt = (unsigned long)__va(pte_val(x) >> (32-PAGE_SHIFT)); \ - __xx = virt_to_page(kvirt); \ - \ - __xx; \ - }) - #endif extern inline unsigned long --- 246,249 ---- diff -r -C2 tarballs/linux-2.5.20/include/asm-alpha/tlb.h linux-2.5.20/include/asm-alpha/tlb.h *** tarballs/linux-2.5.20/include/asm-alpha/tlb.h Mon Jun 3 03:44:48 2002 --- linux-2.5.20/include/asm-alpha/tlb.h Tue Jun 4 11:19:48 2002 *************** *** 1 **** --- 1,15 ---- + #ifndef _ALPHA_TLB_H + #define _ALPHA_TLB_H + + #define tlb_start_vma(tlb, vma) do { } while (0) + #define tlb_end_vma(tlb, vma) do { } while (0) + #define tlb_remove_tlb_entry(tlb, pte, addr) do { } while (0) + + #define tlb_flush(tlb) flush_tlb_mm((tlb)->mm) + #include <asm-generic/tlb.h> + + #define pte_free_tlb(tlb,pte) pte_free(pte) + #define pmd_free_tlb(tlb,pmd) pmd_free(pmd) + + #endif diff -r -C2 tarballs/linux-2.5.20/include/linux/bio.h linux-2.5.20/include/linux/bio.h *** tarballs/linux-2.5.20/include/linux/bio.h Mon Jun 3 03:44:52 2002 --- linux-2.5.20/include/linux/bio.h Tue Jun 4 12:56:40 2002 *************** *** 129,134 **** * will die */ ! #define bio_to_phys(bio) (page_to_phys(bio_page((bio))) + (unsigned long) bio_offset((bio))) ! #define bvec_to_phys(bv) (page_to_phys((bv)->bv_page) + (unsigned long) (bv)->bv_offset) /* --- 129,134 ---- * will die */ ! #define bio_to_phys(bio) ((page_to_pfn(bio_page((bio))) << PAGE_SHIFT) + (unsigned long) bio_offset((bio))) ! #define bvec_to_phys(bv) ((page_to_pfn((bv)->bv_page) << PAGE_SHIFT) + (unsigned long) (bv)->bv_offset) /* ^ permalink raw reply [flat|nested] 15+ messages in thread
* RE: kernel 2.5.20 on alpha (RE: [patch] Re: kernel 2.5.18 on alpha) 2002-06-04 14:06 ` Oliver Pitzeier 2002-06-04 14:22 ` Jan-Benedict Glaw @ 2002-06-04 14:40 ` Oliver Pitzeier 2002-06-04 15:19 ` Patrick Mochel 2002-06-04 16:24 ` kernel 2.5.20 on alpha (RE: [patch] Re: kernel 2.5.18 on alpha) Thunder from the hill 2 siblings, 1 reply; 15+ messages in thread From: Oliver Pitzeier @ 2002-06-04 14:40 UTC (permalink / raw) To: axp-kernel-list, 'Ivan Kokshaysky'; +Cc: linux-kernel Can anybody tell me what's wrong within this line: linux-2.5.20/include/linux/device.h: [ ... ] 73 static inline struct bus_type * get_bus(struct bus_type * bus) 74 { -->> 75 BUG_ON(!atomic_read(&bus->refcount)); 76 atomic_inc(&bus->refcount); 77 return bus; 78 } [ ... ] I guess BUG_ON always produces an error? But why is my kernel jumping there and why is BUG_ON there? This is new to me... I can't find get_bus in 2.5.18. -Oliver Oliver Pitzeier wrote: > Ok. Kernel compiled, but at the startup I see this: > [ ... ] > Initializing RT netlink socket > pci: passed tb register update test > pci: passed sg loopback i/o read test > pci: passed tbia test > pci: passed pte write cache snoop test > pci: failed valid tag invalid pte reload test (mcheck; workaround > available) > pci: passed pci machine check test > Kernel bug at /usr/src/linux-2.5.20/include/linux/device.h:75 > swapper(1): Kernel Bug 1 > pc = [<fffffc00003dceac>] ra = [<fffffc00003dbc14>] ps = 0000 Not > tainted > v0 = 0000000000000000 t0 = 0000000000000000 t1 = > fffffc00005b3a48 t2 = fffffc00001e2888 t3 = fffffc00001e2878 > t4 = ffffffff00000000 t5 = 0000000000000001 t6 = > fffffc000ffe1c68 t7 = fffffc00008a8000 a0 = fffffc00001e2878 > a1 = 0000000000000000 a2 = 0000000000000000 a3 = > 0000000000000000 a4 = fffffffffffffffe a5 = > 0000000000000002 t8 = fffffc00005a85b0 t9 = 0000000000008000 > t10= 0000000000008000 t11= 0000000000010000 pv = > fffffc00003dce80 at = 0000000000000000 gp = fffffc00005eece8 > sp = fffffc00008ab400 Trace:fffffc00003dbc14 > fffffc00003100c8 fffffc0000310708 fffffc0000310bf8 > fffffc000032ed58 fffffc000031008c fffffc00003100b0 fffffc00003106f0 > Code: a44400c0 2fe00000 e4400018 a022000c f4200004 > 00000081 <0000004b> 00579a9d > Kernel panic: Attempted to kill init! > > I check what is on line 75 in device.h! > > Greetz, > Oliver > > PS: Anybody want's the patches??? > > > -----Original Message----- > > From: axp-kernel-list-admin@redhat.com > > [mailto:axp-kernel-list-admin@redhat.com] On Behalf Of > Oliver Pitzeier > > Sent: Tuesday, June 04, 2002 2:45 PM > > To: 'Ivan Kokshaysky' > > Cc: linux-kernel@vger.kernel.org; axp-kernel-list@redhat.com > > Subject: RE: kernel 2.5.20 on alpha (RE: [patch] Re: kernel > > 2.5.18 on alpha) > > > > > > Hi! > > > > I already found a few more errors while trying to compile > > 2.5.20. I send you the patch as soon as I have successfully > > compiled the kernel _without_ problems (hopefully today). > > > > FYI. I do not compile very much options; The main options > > I compile ('coz I need 'em and nothing more...): > > SCSI: QLogic ISP > > Network: DECchip Tulip (dc2114x) and Early DECchip > > Tulip (dc2104x) > > Character Dev.: Support for console on serial port > > Filesystems: EXT3 support, no ReiserFS > > Network FS: NFS (as module) > > > > Greetz, > > Oliver > > > > > Oliver Pitzeier wrote: > > > [ ... ] > > > > > > > If you want to know the error: > > > > > > [ ... ] > > > > > > > `copy_user_page' undeclared (first use in this function) > > > > make[1]: *** [main.o] Error 1 > > > > make[1]: Leaving directory `/usr/src/linux-2.5.20/init' > > > > make: *** [init] Error 2 > > > > > > I guess I found where the error comes from: > > > > > > (from the 2.5.20 Changelog): > > > > <davidm@napali.hpl.hp.com> > > > > [PATCH] pass "page" pointer to > clear_user_page()/copy_user_page() > > > > > > > > Hi Linus, > > > > > > > > Are you willing to change the interfaces of > clear_user_page() and > > > > copy_user_page() so that they can receive the relevant page > > > pointer as > > > > a separate argument? I need this on ia64 to implement the > > > lazy-cache > > > > flushing scheme. > > > > > > > > I believe PPC would also benefit from this. > > > > > > > > --david > > > > > > Now I believe, that Alpha also benefits from this. :o) The only > > > thing I have to do - I guess - is to change the defines for > > > copy_user_page() and clear_user_page. Adding the not used > parameter > > > >pg< should not make any problems. > > > > > > Greetz, > > > Oliver ^ permalink raw reply [flat|nested] 15+ messages in thread
* RE: kernel 2.5.20 on alpha (RE: [patch] Re: kernel 2.5.18 on alpha) 2002-06-04 14:40 ` Oliver Pitzeier @ 2002-06-04 15:19 ` Patrick Mochel 2002-06-04 15:33 ` Oliver Pitzeier ` (2 more replies) 0 siblings, 3 replies; 15+ messages in thread From: Patrick Mochel @ 2002-06-04 15:19 UTC (permalink / raw) To: Oliver Pitzeier; +Cc: axp-kernel-list, 'Ivan Kokshaysky', linux-kernel [ I apologize for answering this so late, and being so tardy in releasing docs explaining all this. I'll be sending docs to the list soon... ] On Tue, 4 Jun 2002, Oliver Pitzeier wrote: > Can anybody tell me what's wrong within this line: > > linux-2.5.20/include/linux/device.h: > [ ... ] > 73 static inline struct bus_type * get_bus(struct bus_type * bus) > 74 { > -->> 75 BUG_ON(!atomic_read(&bus->refcount)); > 76 atomic_inc(&bus->refcount); > 77 return bus; > 78 } > [ ... ] > > I guess BUG_ON always produces an error? But why is my kernel > jumping there and why is BUG_ON there? The short of it: 2.5.19 introduced a struct bus_type that describes each bus type in the system. It holds lists of all the devices and drivers that are found for that bus type. When a bus is probed and devices are discovered, they are inserted into the bus's list of devices (as well as their place in the global hierarchy). The problem: bus_types are registered with the system, which intializes all the internal fields, making them ready for use. The PCI bus is being probed before the PCI bus type has been registered. device_register() calls bus_add_device(), which does get_bus(). With a refcount == 0, you hit the BUG(). The PCI bus type is registered in drivers/pci/pci-driver.c::pci_driver_init(), which is a subsys_initcall. pci_scan_bus() is called from arch/alpha/kernel/pci.c::common_init_pci(). It appears that this is called from pcibios_init(), which is also a subsys_initcall. The arch/ objects are probably linked before the driver/ objects on alpha, so the bus ends up being scanned before the bus type is registered. Can pcibios_init() be demoted to a device_initcall? This would delay probing until all the subsystems could be setup... -pat ^ permalink raw reply [flat|nested] 15+ messages in thread
* RE: kernel 2.5.20 on alpha (RE: [patch] Re: kernel 2.5.18 on alpha) 2002-06-04 15:19 ` Patrick Mochel @ 2002-06-04 15:33 ` Oliver Pitzeier 2002-06-04 20:23 ` Michal Jaegermann 2002-06-04 22:00 ` Paul Mackerras 2 siblings, 0 replies; 15+ messages in thread From: Oliver Pitzeier @ 2002-06-04 15:33 UTC (permalink / raw) To: 'Patrick Mochel' Cc: axp-kernel-list, 'Ivan Kokshaysky', linux-kernel Patrick Mochel wrote: > [ I apologize for answering this so late, and being so tardy > in releasing > docs explaining all this. I'll be sending docs to the list soon... ] Alright. This is OK. :o) [ ... ] > The short of it: 2.5.19 introduced a struct bus_type that > describes each > bus type in the system. It holds lists of all the devices and > drivers that are found for that bus type. I guessed so and already found this out. :o) [ ... ] > The arch/ objects are probably linked before the driver/ > objects on alpha, so the bus ends up being scanned before the > bus type is registered. Seems, that you're right! > Can pcibios_init() be demoted to a device_initcall? This would delay > probing until all the subsystems could be setup... Yea, great idea, but I don't have the time at the moment to do this. I hope anybody else will (please) do it!? -Oliver ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: kernel 2.5.20 on alpha (RE: [patch] Re: kernel 2.5.18 on alpha) 2002-06-04 15:19 ` Patrick Mochel 2002-06-04 15:33 ` Oliver Pitzeier @ 2002-06-04 20:23 ` Michal Jaegermann 2002-06-04 20:36 ` Jeff Garzik 2002-06-04 22:00 ` Paul Mackerras 2 siblings, 1 reply; 15+ messages in thread From: Michal Jaegermann @ 2002-06-04 20:23 UTC (permalink / raw) To: Patrick Mochel; +Cc: linux-kernel, jgarzik On Tue, Jun 04, 2002 at 08:19:49AM -0700, Patrick Mochel wrote: > > The short of it: 2.5.19 introduced a struct bus_type that describes each > bus type in the system. Which immediately collided with 'static struct bus_type {...}' hidden in drivers/net/tulip/de4x5.c and, as result, the later does not compile anymore. These two "bus_types" are quite dissimilar. :-) An obvious and trivial fix was to globally replace "bus_type" in de4x5.c with "de4x5_bus_type" (or this should be done in some other manner). Michal ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: kernel 2.5.20 on alpha (RE: [patch] Re: kernel 2.5.18 on alpha) 2002-06-04 20:23 ` Michal Jaegermann @ 2002-06-04 20:36 ` Jeff Garzik 0 siblings, 0 replies; 15+ messages in thread From: Jeff Garzik @ 2002-06-04 20:36 UTC (permalink / raw) To: Michal Jaegermann; +Cc: Patrick Mochel, linux-kernel Michal Jaegermann wrote: >On Tue, Jun 04, 2002 at 08:19:49AM -0700, Patrick Mochel wrote: > > >>The short of it: 2.5.19 introduced a struct bus_type that describes each >>bus type in the system. >> >> > >Which immediately collided with 'static struct bus_type {...}' >hidden in drivers/net/tulip/de4x5.c and, as result, the later does >not compile anymore. These two "bus_types" are quite dissimilar. :-) > > FWIW that s/bus_type/de4x5_bus_type/ patch was applied to 2.5.20 (and to 2.4.x too, even) Jeff ^ permalink raw reply [flat|nested] 15+ messages in thread
* RE: kernel 2.5.20 on alpha (RE: [patch] Re: kernel 2.5.18 on alpha) 2002-06-04 15:19 ` Patrick Mochel 2002-06-04 15:33 ` Oliver Pitzeier 2002-06-04 20:23 ` Michal Jaegermann @ 2002-06-04 22:00 ` Paul Mackerras 2002-06-04 22:07 ` kernel 2.5.20 on alpha David S. Miller 2 siblings, 1 reply; 15+ messages in thread From: Paul Mackerras @ 2002-06-04 22:00 UTC (permalink / raw) To: Patrick Mochel; +Cc: linux-kernel Patrick Mochel writes: > The problem: bus_types are registered with the system, which intializes > all the internal fields, making them ready for use. The PCI bus is being > probed before the PCI bus type has been registered. We hit this on PPC too. > Can pcibios_init() be demoted to a device_initcall? This would delay > probing until all the subsystems could be setup... No, because we have device drivers that are initialized with a device_initcall and which reasonably expect the PCI subsystem to be set up before they are called. I can see two solutions: either rename "unused_initcall" to "sys_init" or something similar and use it for sys_bus_init, or else make an alias for fs_initcall called "bus_init" or something and use that for pcibios_init. Paul. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: kernel 2.5.20 on alpha 2002-06-04 22:00 ` Paul Mackerras @ 2002-06-04 22:07 ` David S. Miller 0 siblings, 0 replies; 15+ messages in thread From: David S. Miller @ 2002-06-04 22:07 UTC (permalink / raw) To: paulus; +Cc: mochel, linux-kernel From: Paul Mackerras <paulus@samba.org> Date: Wed, 5 Jun 2002 08:00:25 +1000 (EST) I can see two solutions: either rename "unused_initcall" to "sys_init" or something similar and use it for sys_bus_init See similar postings on this topic, with Subject "Re: [2.5.19] Oops during PCI scan on Alpha" There is a patch at the end of the thread which does exactly as you describe. ^ permalink raw reply [flat|nested] 15+ messages in thread
* RE: kernel 2.5.20 on alpha (RE: [patch] Re: kernel 2.5.18 on alpha) 2002-06-04 14:06 ` Oliver Pitzeier 2002-06-04 14:22 ` Jan-Benedict Glaw 2002-06-04 14:40 ` Oliver Pitzeier @ 2002-06-04 16:24 ` Thunder from the hill 2 siblings, 0 replies; 15+ messages in thread From: Thunder from the hill @ 2002-06-04 16:24 UTC (permalink / raw) To: Oliver Pitzeier; +Cc: axp-kernel-list, 'Ivan Kokshaysky', linux-kernel Hi, On Tue, 4 Jun 2002, Oliver Pitzeier wrote: > Kernel bug at /usr/src/linux-2.5.20/include/linux/device.h:75 > I check what is on line 75 in device.h! You find BUG_ON(atomic_read(&bus_refcount)); It might already be fixed by some of Irwing's patches. > PS: Anybody want's the patches??? Sure as hell, if there are any new. Regards, Thunder -- ship is leaving right on time | Thunder from the hill at ngforever empty harbour, wave goodbye | evacuation of the isle | free inhabitant not directly caveman's paintings drowning | belonging anywhere ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: kernel 2.5.20 on alpha (RE: [patch] Re: kernel 2.5.18 on alpha) 2002-06-04 10:11 kernel 2.5.20 on alpha (RE: [patch] Re: kernel 2.5.18 on alpha) Oliver Pitzeier 2002-06-04 12:45 ` Oliver Pitzeier @ 2002-06-04 20:04 ` David Mosberger 1 sibling, 0 replies; 15+ messages in thread From: David Mosberger @ 2002-06-04 20:04 UTC (permalink / raw) To: o.pitzeier Cc: 'Ivan Kokshaysky', 'Richard Henderson', linux-kernel, axp-kernel-list >>>>> On Tue, 4 Jun 2002 12:11:05 +0200, "Oliver Pitzeier" <o.pitzeier@uptime.at> said: >> `copy_user_page' undeclared (first use in this function) make[1]: >> *** [main.o] Error 1 make[1]: Leaving directory >> `/usr/src/linux-2.5.20/init' make: *** [init] Error 2 Oliver> I guess I found where the error comes from: Oliver> (from the 2.5.20 Changelog): >> <davidm@napali.hpl.hp.com> [PATCH] pass "page" pointer to >> clear_user_page()/copy_user_page() >> >> Hi Linus, >> >> Are you willing to change the interfaces of clear_user_page() and >> copy_user_page() so that they can receive the relevant page >> pointer as a separate argument? I need this on ia64 to implement >> the lazy-cache flushing scheme. >> >> I believe PPC would also benefit from this. >> >> --david Oliver> Now I believe, that Alpha also benefits from this. :o) The Oliver> only thing I have to do - I guess - is to change the defines Oliver> for copy_user_page() and clear_user_page. Adding the not Oliver> used parameter >pg< should not make any problems. Yes, you can simply ignore the page pointer argument. It's there for those arches that want to take advantage of it. Sorry about causing breakage... --david ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2002-06-04 22:13 UTC | newest] Thread overview: 15+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2002-06-04 10:11 kernel 2.5.20 on alpha (RE: [patch] Re: kernel 2.5.18 on alpha) Oliver Pitzeier 2002-06-04 12:45 ` Oliver Pitzeier 2002-06-04 14:06 ` Oliver Pitzeier 2002-06-04 14:22 ` Jan-Benedict Glaw 2002-06-04 15:13 ` Oliver Pitzeier 2002-06-04 15:47 ` Oliver Pitzeier 2002-06-04 14:40 ` Oliver Pitzeier 2002-06-04 15:19 ` Patrick Mochel 2002-06-04 15:33 ` Oliver Pitzeier 2002-06-04 20:23 ` Michal Jaegermann 2002-06-04 20:36 ` Jeff Garzik 2002-06-04 22:00 ` Paul Mackerras 2002-06-04 22:07 ` kernel 2.5.20 on alpha David S. Miller 2002-06-04 16:24 ` kernel 2.5.20 on alpha (RE: [patch] Re: kernel 2.5.18 on alpha) Thunder from the hill 2002-06-04 20:04 ` David Mosberger
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox