http://linux.bkbits.net/linux-2.5 dhowells@redhat.com[torvalds]|ChangeSet|20050106045130|04513 dhowells # This is a BitKeeper generated diff -Nru style patch. # # ChangeSet # 2005/01/05 16:12:23-08:00 dhowells@redhat.com # [PATCH] FRV: Update banner comments at the top of frv arch files # # This updates the banner comments at the top of the frv arch files so # that they don't proclaim to be part of the m68k arch and also to # attribute responsibility for them to myself. # # Signed-Off-By: David Howells # Signed-off-by: Linus Torvalds # # ChangeSet # 2005/01/05 16:12:09-08:00 dhowells@redhat.com # [PATCH] Make pud_alloc() and pmd_alloc() non-existant on !MMU # # This makes the general pud_alloc() and pmd_alloc() inline functions # unavailable if CONFIG_MMU is not defined. # # Signed-Off-By: David Howells # Signed-off-by: Linus Torvalds # # ChangeSet # 2005/01/05 16:11:57-08:00 dhowells@redhat.com # [PATCH] FRV: provide stub asm/a.out.h # # This provides a stub asm/a.out.h for the FRV arch. This shouldn't be # necessary as FRV doesn't support the AOUT binfmt, but it seems to be # required by some archs for compilation of fs/exec.c. # # Signed-Off-By: David Howells # Signed-off-by: Linus Torvalds # # ChangeSet # 2005/01/05 16:11:43-08:00 dhowells@redhat.com # [PATCH] FRV: remove excess argument passed to expand_stack() # # This removes the excess argument being passed to expand_stack() as it # isn't needed in -bk8. # # Signed-Off-By: David Howells # Signed-off-by: Linus Torvalds # # ChangeSet # 2005/01/05 16:11:30-08:00 dhowells@redhat.com # [PATCH] FRV: vperfctr syscalls don't exist in -bk8 # # This marks the vperfctr syscalls as unavailable as they aren't actually # implemented in -bk8. # # Signed-Off-By: David Howells # Signed-off-by: Linus Torvalds # # ChangeSet # 2005/01/05 15:46:52-08:00 torvalds@ppc970.osdl.org # fbmem: don't mix code/declarations. That messes up gcc-2.95 # # ChangeSet # 2005/01/05 15:36:59-08:00 clameter@sgi.com # [PATCH] Make page allocator aware of requests for zeroed memory # # Thisintroduces __GFP_ZERO as an additional gfp_mask element to allow to # request zeroed pages from the page allocator: # # - Modifies the page allocator so that it zeroes memory if __GFP_ZERO is # set # # - Replace all page zeroing after allocating pages by prior allocations with # allocations using __GFP_ZERO # # Signed-off-by: Christoph Lameter # Signed-off-by: Linus Torvalds # # arch/frv/mm/kmap.c # 2005/01/05 06:47:05-08:00 dhowells@redhat.com +9 -3 # FRV: Update banner comments at the top of frv arch files # # arch/frv/mb93090-mb00/pci-frv.c # 2005/01/05 06:49:38-08:00 dhowells@redhat.com +9 -84 # FRV: Update banner comments at the top of frv arch files # # arch/frv/kernel/time.c # 2005/01/05 06:43:44-08:00 dhowells@redhat.com +8 -8 # FRV: Update banner comments at the top of frv arch files # # arch/frv/kernel/sys_frv.c # 2005/01/05 06:43:03-08:00 dhowells@redhat.com +9 -5 # FRV: Update banner comments at the top of frv arch files # # arch/frv/kernel/signal.c # 2005/01/05 06:42:07-08:00 dhowells@redhat.com +8 -5 # FRV: Update banner comments at the top of frv arch files # # arch/frv/kernel/setup.c # 2005/01/05 06:41:37-08:00 dhowells@redhat.com +9 -14 # FRV: Update banner comments at the top of frv arch files # # arch/frv/kernel/ptrace.c # 2005/01/05 06:40:51-08:00 dhowells@redhat.com +8 -15 # FRV: Update banner comments at the top of frv arch files # # arch/frv/kernel/process.c # 2005/01/05 06:39:32-08:00 dhowells@redhat.com +8 -10 # FRV: Update banner comments at the top of frv arch files # # include/linux/mm.h # 2005/01/05 05:51:04-08:00 dhowells@redhat.com +2 -0 # Make pud_alloc() and pmd_alloc() non-existant on !MMU # # include/asm-frv/a.out.h # 2005/01/05 05:33:46-08:00 dhowells@redhat.com +5 -0 # FRV: provide stub asm/a.out.h # # include/asm-frv/a.out.h # 2005/01/05 05:33:46-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/a.out.h # # arch/frv/mm/fault.c # 2005/01/05 05:30:51-08:00 dhowells@redhat.com +2 -7 # FRV: remove excess argument passed to expand_stack() # # arch/frv/kernel/entry.S # 2005/01/05 05:47:01-08:00 dhowells@redhat.com +5 -5 # FRV: vperfctr syscalls don't exist in -bk8 # # drivers/video/fbmem.c # 2005/01/05 15:46:41-08:00 torvalds@ppc970.osdl.org +1 -1 # Don't mix code/declarations. That messes up gcc-2.95 # # mm/shmem.c # 2005/01/05 09:30:39-08:00 clameter@sgi.com +3 -5 # Make page allocator aware of requests for zeroed memory # # mm/page_alloc.c # 2005/01/05 09:32:52-08:00 clameter@sgi.com +14 -6 # Make page allocator aware of requests for zeroed memory # # mm/memory.c # 2005/01/05 09:30:39-08:00 clameter@sgi.com +1 -2 # Make page allocator aware of requests for zeroed memory # # kernel/profile.c # 2005/01/05 09:30:39-08:00 clameter@sgi.com +4 -8 # Make page allocator aware of requests for zeroed memory # # include/linux/gfp.h # 2005/01/05 09:30:39-08:00 clameter@sgi.com +2 -0 # Make page allocator aware of requests for zeroed memory # # include/asm-sparc64/pgalloc.h # 2005/01/05 09:30:39-08:00 clameter@sgi.com +1 -2 # Make page allocator aware of requests for zeroed memory # # include/asm-sh64/pgalloc.h # 2005/01/05 09:30:39-08:00 clameter@sgi.com +3 -9 # Make page allocator aware of requests for zeroed memory # # include/asm-sh/pgalloc.h # 2005/01/05 09:30:39-08:00 clameter@sgi.com +2 -6 # Make page allocator aware of requests for zeroed memory # # include/asm-parisc/pgalloc.h # 2005/01/05 09:30:39-08:00 clameter@sgi.com +2 -6 # Make page allocator aware of requests for zeroed memory # # include/asm-mips/pgalloc.h # 2005/01/05 09:30:39-08:00 clameter@sgi.com +1 -3 # Make page allocator aware of requests for zeroed memory # # include/asm-m68k/motorola_pgalloc.h # 2005/01/05 09:30:39-08:00 clameter@sgi.com +2 -4 # Make page allocator aware of requests for zeroed memory # # include/asm-m32r/pgalloc.h # 2005/01/05 09:30:39-08:00 clameter@sgi.com +3 -11 # Make page allocator aware of requests for zeroed memory # # include/asm-ia64/pgalloc.h # 2005/01/05 09:30:39-08:00 clameter@sgi.com +4 -12 # Make page allocator aware of requests for zeroed memory # # include/asm-cris/pgalloc.h # 2005/01/05 09:30:39-08:00 clameter@sgi.com +2 -6 # Make page allocator aware of requests for zeroed memory # # include/asm-arm/pgalloc.h # 2005/01/05 09:30:39-08:00 clameter@sgi.com +2 -4 # Make page allocator aware of requests for zeroed memory # # include/asm-alpha/pgalloc.h # 2005/01/05 09:30:39-08:00 clameter@sgi.com +1 -3 # Make page allocator aware of requests for zeroed memory # # drivers/block/pktcdvd.c # 2005/01/05 09:30:39-08:00 clameter@sgi.com +1 -3 # Make page allocator aware of requests for zeroed memory # # arch/um/kernel/mem.c # 2005/01/05 09:30:39-08:00 clameter@sgi.com +2 -6 # Make page allocator aware of requests for zeroed memory # # arch/sparc64/mm/init.c # 2005/01/05 09:30:39-08:00 clameter@sgi.com +1 -2 # Make page allocator aware of requests for zeroed memory # # arch/ppc/mm/pgtable.c # 2005/01/05 09:30:39-08:00 clameter@sgi.com +2 -5 # Make page allocator aware of requests for zeroed memory # # arch/i386/mm/pgtable.c # 2005/01/05 09:30:39-08:00 clameter@sgi.com +3 -8 # Make page allocator aware of requests for zeroed memory # # arch/alpha/mm/init.c # 2005/01/05 09:30:39-08:00 clameter@sgi.com +2 -5 # Make page allocator aware of requests for zeroed memory # # ChangeSet # 2005/01/05 13:12:57-08:00 davem@nuts.davemloft.net # [SPARC64]: We really do need to mask the start/end args to flush_tlb_pgtables(). # # The callers used to do it, but with the 4-level page # table code this is no longer the case. Noticed by # Nick Piggin and Andrew Morton. # # Signed-off-by: David S. Miller # # arch/sparc64/mm/tlb.c # 2005/01/05 13:11:53-08:00 davem@nuts.davemloft.net +1 -3 # [SPARC64]: We really do need to mask the start/end args to flush_tlb_pgtables(). # # ChangeSet # 2005/01/05 11:12:32-08:00 torvalds@ppc970.osdl.org # Merge bk://drm.bkbits.net/drm-linus # into ppc970.osdl.org:/home/torvalds/v2.6/linux # # arch/sparc64/Kconfig # 2005/01/05 11:12:27-08:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # ChangeSet # 2005/01/05 11:11:30-08:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] Fix megaraid oops on unload # # Reported by Wakko Warner. # # The megaraid driver is trying to remove a non-empty directory in procfs. # # Trivially fixed by first unregistering the driver, which will remove all # the per-controller files in the megaraid directory, and only _then_ # removing the megaraid /proc directory entry. # # drivers/scsi/megaraid.c # 2005/01/05 10:03:52-08:00 viro@parcelfarce.linux.theplanet.co.uk +2 -2 # Fix megaraid oops on unload # # ChangeSet # 2005/01/05 19:11:47+01:00 dwmw2@shinybook.infradead.org # Merge shinybook.infradead.org:/home/dwmw2/bk/linus-2.6 # into shinybook.infradead.org:/home/dwmw2/bk/mtd-2.6 # # fs/jffs2/fs.c # 2005/01/05 19:11:38+01:00 dwmw2@shinybook.infradead.org +0 -0 # Auto merged # # fs/Kconfig # 2005/01/05 19:11:38+01:00 dwmw2@shinybook.infradead.org +0 -0 # Auto merged # # MAINTAINERS # 2005/01/05 19:11:38+01:00 dwmw2@shinybook.infradead.org +0 -0 # Auto merged # # ChangeSet # 2005/01/05 19:08:53+01:00 domen@coderock.org # MTD: Remove gratuitous (void *) casts. # # Signed-off-by: Domen Puncer # Signed-off-by: David Woodhouse # # drivers/mtd/nand/s3c2410.c # 2005/01/05 19:08:37+01:00 domen@coderock.org +6 -6 # Removes casts of (void *) pointers. # # drivers/mtd/nand/diskonchip.c # 2005/01/05 19:08:37+01:00 domen@coderock.org +40 -40 # Removes casts of (void *) pointers. # # drivers/mtd/mtdchar.c # 2005/01/05 19:08:37+01:00 domen@coderock.org +6 -6 # Removes casts of (void *) pointers. # # drivers/mtd/maps/uclinux.c # 2005/01/05 19:08:36+01:00 domen@coderock.org +3 -3 # Removes casts of (void *) pointers. # # drivers/mtd/maps/ocelot.c # 2005/01/05 19:08:36+01:00 domen@coderock.org +2 -2 # Removes casts of (void *) pointers. # # drivers/mtd/devices/slram.c # 2005/01/05 19:08:36+01:00 domen@coderock.org +5 -5 # Removes casts of (void *) pointers. # # drivers/mtd/devices/pmc551.c # 2005/01/05 19:08:36+01:00 domen@coderock.org +6 -6 # Removes casts of (void *) pointers. # # drivers/mtd/devices/phram.c # 2005/01/05 19:08:36+01:00 domen@coderock.org +5 -5 # Removes casts of (void *) pointers. # # drivers/mtd/devices/mtdram.c # 2005/01/05 19:08:36+01:00 domen@coderock.org +3 -3 # Removes casts of (void *) pointers. # # drivers/mtd/devices/ms02-nv.c # 2005/01/05 19:08:36+01:00 domen@coderock.org +4 -4 # Removes casts of (void *) pointers. # # drivers/mtd/devices/doc2001plus.c # 2005/01/05 19:08:36+01:00 domen@coderock.org +12 -12 # Removes casts of (void *) pointers. # # drivers/mtd/devices/doc2001.c # 2005/01/05 19:08:36+01:00 domen@coderock.org +10 -10 # Removes casts of (void *) pointers. # # drivers/mtd/devices/doc2000.c # 2005/01/05 19:08:36+01:00 domen@coderock.org +11 -11 # Removes casts of (void *) pointers. # # drivers/mtd/chips/map_rom.c # 2005/01/05 19:08:36+01:00 domen@coderock.org +2 -2 # Removes casts of (void *) pointers. # # drivers/mtd/chips/map_ram.c # 2005/01/05 19:08:36+01:00 domen@coderock.org +4 -4 # Removes casts of (void *) pointers. # # drivers/mtd/chips/jedec.c # 2005/01/05 19:08:36+01:00 domen@coderock.org +8 -8 # Removes casts of (void *) pointers. # # ChangeSet # 2005/01/05 18:53:19+01:00 dwmw2@shinybook.infradead.org # MTD: Remove long-obsolete DiskOnChip 1000 driver. # # BitKeeper/deleted/.del-doc1000.c~2174a9c913a860d8 # 2005/01/05 18:52:41+01:00 dwmw2@shinybook.infradead.org +0 -0 # Delete: drivers/mtd/devices/doc1000.c # # ChangeSet # 2005/01/05 18:47:09+01:00 dwmw2@shinybook.infradead.org # MTD: Cosmetic ident catchup. # # Let the CVS idents catch up where changes have been made upstream. # # Signed-off-by: David Woodhouse # # include/linux/mtd/gen_probe.h # 2005/01/05 18:46:53+01:00 dwmw2@shinybook.infradead.org +1 -1 # revision 1.3 # date: 2004/10/20 22:10:33; author: dwmw2; state: Exp; lines: +2 -2 # merge from 2.6.9 -- change asm/bitops.h to linux/bitops.h # # include/linux/mtd/doc2000.h # 2005/01/05 18:46:53+01:00 dwmw2@shinybook.infradead.org +1 -1 # revision 1.24 # date: 2005/01/05 12:40:38; author: dwmw2; state: Exp; lines: +3 -3 # [PATCH] diskonchip missing iomem annotations # some trivial iomem annotations were still missing; since 2.6.10 # and mtd snapshot are identical in that area, same patch goes to Linus and # dwmw2. # Signed-off-by: Al Viro # # drivers/mtd/maps/sc520cdp.c # 2005/01/05 18:46:53+01:00 dwmw2@shinybook.infradead.org +1 -1 # revision 1.21 # date: 2004/12/13 10:27:08; author: dedekind; state: Exp; lines: +2 -2 # Roll-back: remove wrong cast which hides error instead of fix it. # ---------------------------- # revision 1.20 # date: 2004/12/11 15:41:19; author: dedekind; state: Exp; lines: +2 -2 # Cast type to prevent warning. # # drivers/mtd/devices/docprobe.c # 2005/01/05 18:46:53+01:00 dwmw2@shinybook.infradead.org +1 -1 # revision 1.44 # date: 2005/01/05 12:40:36; author: dwmw2; state: Exp; lines: +9 -9 # [PATCH] diskonchip missing iomem annotations # some trivial iomem annotations were still missing; since 2.6.10 # and mtd snapshot are identical in that area, same patch goes to Linus and # dwmw2. # Signed-off-by: Al Viro # # drivers/mtd/devices/doc2001plus.c # 2005/01/05 18:46:53+01:00 dwmw2@shinybook.infradead.org +1 -1 # revision 1.12 # date: 2005/01/05 12:40:36; author: dwmw2; state: Exp; lines: +4 -4 # [PATCH] diskonchip missing iomem annotations # some trivial iomem annotations were still missing; since 2.6.10 # and mtd snapshot are identical in that area, same patch goes to Linus and # dwmw2. # Signed-off-by: Al Viro # # drivers/mtd/devices/doc2001.c # 2005/01/05 18:46:53+01:00 dwmw2@shinybook.infradead.org +1 -1 # revision 1.47 # date: 2005/01/05 12:40:36; author: dwmw2; state: Exp; lines: +4 -4 # [PATCH] diskonchip missing iomem annotations # some trivial iomem annotations were still missing; since 2.6.10 # and mtd snapshot are identical in that area, same patch goes to Linus and # dwmw2. # Signed-off-by: Al Viro # # drivers/mtd/devices/doc2000.c # 2005/01/05 18:46:53+01:00 dwmw2@shinybook.infradead.org +1 -1 # revision 1.65 # date: 2005/01/05 12:40:36; author: dwmw2; state: Exp; lines: +5 -5 # [PATCH] diskonchip missing iomem annotations # some trivial iomem annotations were still missing; since 2.6.10 # and mtd snapshot are identical in that area, same patch goes to Linus and # dwmw2. # Signed-off-by: Al Viro # # drivers/mtd/chips/Kconfig # 2005/01/05 18:46:53+01:00 dwmw2@shinybook.infradead.org +1 -1 # revision 1.13 # date: 2004/12/01 15:49:10; author: nico; state: Exp; lines: +3 -2 # allows MTD XIP to compile on every target with a fallback to reduced # responsiveness, and warn about it. # ---------------------------- # revision 1.12 # date: 2004/12/01 14:52:17; author: nico; state: Exp; lines: +2 -3 # fix a Kconfig dependency to prevent too much grief for the brave on lkml # # ChangeSet # 2005/01/05 18:43:36+01:00 dwmw2@shinybook.infradead.org # [MTD] add missing dependencies on MTD_PARTITIONS # # Signed-off-by: Adrian Bunk # Signed-off-by: David Woodhouse # # drivers/mtd/nand/Kconfig # 2005/01/05 18:43:20+01:00 dwmw2@shinybook.infradead.org +2 -2 # revision 1.26 # date: 2005/01/05 12:42:24; author: dwmw2; state: Exp; lines: +2 -2 # [2.6 patch] add missing dependencies on MTD_PARTITIONS # # Signed-off-by: Adrian Bunk # # drivers/mtd/maps/Kconfig # 2005/01/05 18:43:20+01:00 dwmw2@shinybook.infradead.org +3 -3 # revision 1.42 # date: 2005/01/05 16:59:50; author: dwmw2; state: Exp; lines: +9 -1 # add chestnut map driver # ---------------------------- # revision 1.41 # date: 2005/01/05 12:42:24; author: dwmw2; state: Exp; lines: +2 -2 # [2.6 patch] add missing dependencies on MTD_PARTITIONS # # Signed-off-by: Adrian Bunk # # ChangeSet # 2005/01/05 18:39:49+01:00 dwmw2@shinybook.infradead.org # MTD: Fix config option name in Makefile for IBM 750FX/750GX boards. # # Also some cosmetic fixes in the map driver itself. # # Signed-off-by: David Woodhouse # # drivers/mtd/maps/chestnut.c # 2005/01/05 18:39:35+01:00 dwmw2@shinybook.infradead.org +4 -2 # cosmetic fixes. # # drivers/mtd/maps/Makefile # 2005/01/05 18:39:35+01:00 dwmw2@shinybook.infradead.org +2 -2 # revision 1.23 # date: 2005/01/05 17:06:36; author: dwmw2; state: Exp; lines: +2 -2 # Fix chestnut config option name # # ChangeSet # 2005/01/05 18:36:19+01:00 dwmw2@shinybook.infradead.org # MTD: include moduleparam.h in DiskOnChip driver # # Signed-off-by: David Woodhouse # # drivers/mtd/nand/diskonchip.c # 2005/01/05 18:36:04+01:00 dwmw2@shinybook.infradead.org +2 -1 # revision 1.44 # date: 2005/01/05 17:34:27; author: dwmw2; state: Exp; lines: +2 -1 # include moduleparam.h # # ChangeSet # 2005/01/05 18:25:43+01:00 rpurdie@rpsys.net # MTD SharpSL NAND driver: Calculate partitions sizes at runtime. # # This allows one kernel build to support multiple machines. # # Signed-off-by: Richard Purdie # Signed-off-by: David Woodhouse # # drivers/mtd/nand/sharpsl.c # 2005/01/05 18:25:27+01:00 rpurdie@rpsys.net +19 -32 # revision 1.3 # date: 2005/01/03 14:53:50; author: rpurdie; state: Exp; lines: +19 -32 # NAND Sharpsl: Work out partition sizes at runtime instead of compile time allowing one kernel to support multiple machines. # # ChangeSet # 2005/01/05 18:22:57+01:00 joern@wh.fh-wedel.de # [MTD] New blockdev-backed 'fake' MTD device. # # Rewritten alternative driver by Gareth Bult and Jörn Engel. # # Signed-off-by: David Woodhouse # # drivers/mtd/devices/block2mtd.c # 2005/01/05 18:22:39+01:00 joern@wh.fh-wedel.de +505 -0 # # drivers/mtd/devices/block2mtd.c # 2005/01/05 18:22:39+01:00 joern@wh.fh-wedel.de +0 -0 # BitKeeper file /home/dwmw2/bk/mtd-2.6/drivers/mtd/devices/block2mtd.c # # drivers/mtd/devices/Makefile # 2005/01/05 18:22:39+01:00 joern@wh.fh-wedel.de +2 -1 # revision 1.7 # date: 2004/12/22 17:51:15; author: joern; state: Exp; lines: +2 -1 # Add Kconfig and Makefile entries for block2mtd. # # drivers/mtd/devices/Kconfig # 2005/01/05 18:22:39+01:00 joern@wh.fh-wedel.de +10 -1 # revision 1.15 # date: 2004/12/22 17:51:15; author: joern; state: Exp; lines: +10 -1 # Add Kconfig and Makefile entries for block2mtd. # # ChangeSet # 2005/01/05 18:17:59+01:00 juhl-lkml@dif.dk # [MTD] remove unnecessary casts from drivers/mtd/maps/nettel.c and kill two warnings # # I took a look at the cause for these warnings in the 2.6.10 kernel, # # drivers/mtd/maps/nettel.c:361: warning: assignment makes pointer from integer without a cast # drivers/mtd/maps/nettel.c:395: warning: assignment makes pointer from integer without a cast # # and as far as I can see the casts in there (to unsigned long and back to # void*) are completely unnessesary ('virt' in 'struct map_info' is a void # __iomem *), and getting rid of those casts buys us a warning free build. # # Signed-off-by: Jesper Juhl # Signed-off-by: David Woodhouse # # drivers/mtd/maps/nettel.c # 2005/01/05 18:17:45+01:00 juhl-lkml@dif.dk +9 -11 # revision 1.10 # date: 2005/01/05 17:11:29; author: dwmw2; state: Exp; lines: +9 -11 # [patch] remove unnessesary casts from drivers/mtd/maps/nettel.c and kill two warnings # # I took a look at the cause for these warnings in the 2.6.10 kernel, # # drivers/mtd/maps/nettel.c:361: warning: assignment makes pointer from integer without a cast # drivers/mtd/maps/nettel.c:395: warning: assignment makes pointer from integer without a cast # # and as far as I can see the casts in there (to unsigned long and back to # void*) are completely unnessesary ('virt' in 'struct map_info' is a void # __iomem *), and getting rid of those casts buys us a warning free build. # # Signed-off-by: Jesper Juhl # # ChangeSet # 2005/01/05 18:15:36+01:00 dwmw2@shinybook.infradead.org # [MTD] Bug in 2.6.10 mtd driver for physmem mapped flash chips # # The patch below fixes a small but fatal bug in the code that handles # non-buswidth-aligned writes. The problem is that the code used the same # index in both map_word and buf, therefore putting the wrong words in the # map_word that partially contains old data and partially contains new # data. The result: corrupt data is being written. # # Signed-off-by: Koen Martens # Signed-off-by: David Woodhouse # # include/linux/mtd/map.h # 2005/01/05 18:13:39+01:00 kmartens@sonologic.nl +2 -2 # revision 1.46 # date: 2005/01/05 17:09:44; author: dwmw2; state: Exp; lines: +2 -2 # [PATCH] Bug in 2.6.10 mtd driver for physmem mapped flash chips # # The patch below fixes a small but fatal bug in the code that handles # non-buswidth-aligned writes. The problem is that the code used the same # index in both map_word and buf, therefore putting the wrong words in the # map_word that partially contains old data and partially contains new # data. The result: corrupt data is being written. # # Signed-off-by: Koen Martens # # ChangeSet # 2005/01/04 21:57:13-08:00 rbultje@ronald.bitfreak.net # [PATCH] zr36067 driver - reduce stack size usage # # Reduce local variable (large struct) stack usage in zoran_do_ioctl() from 1028 # bytes to 324 bytes (on x86-32) by declaring & using only 1 "struct # zoran_jpg_settings" instead of 5 instances of it. Reduced from 5 * 180 bytes # to 1 * 180 bytes, plus other locals in each case. # # Signed-off-by: Randy Dunlap # Signed-off-by: Ronald S. Bultje # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/media/video/zoran_driver.c # 2005/01/04 18:48:34-08:00 rbultje@ronald.bitfreak.net +7 -7 # zr36067 driver - reduce stack size usage # # ChangeSet # 2005/01/04 21:57:00-08:00 rbultje@ronald.bitfreak.net # [PATCH] zr36067 driver - ppc/be port # # Attached patch adds some host<->le conversion functions for 32-bit integers. # The hardware expects 32-bit integers, which the host does not always provide. # With the attached patch, the hardware runs fine on PPC hardware as well. # # Original patch by Ben Capper . # # Signed-off-by: Ronald S. Bultje # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/media/video/zoran_driver.c # 2005/01/04 20:24:03-08:00 rbultje@ronald.bitfreak.net +33 -23 # zr36067 driver - ppc/be port # # drivers/media/video/zoran_device.c # 2005/01/04 18:48:33-08:00 rbultje@ronald.bitfreak.net +18 -13 # zr36067 driver - ppc/be port # # ChangeSet # 2005/01/04 21:56:47-08:00 rbultje@ronald.bitfreak.net # [PATCH] zr36067 driver - correct jpeg app/com markers # # Attached patch fixes the writing of APP (application-specific) and COM # (comment) markers in the JPEG stream as generated by the zr36050 or zr36060 # encoders, both part of the zr36067 driver. # # During separating those bits out of the main zoran driver, we accidently # removed the interface through which applications can adapt those markers, # replacing them by unchangeable (static) markers. Some video formats, # particularly Quicktime and AVI, require specific container-specific markers in # the stream for interlaced streams. Those markers specify field order and # such. # # The attached patch re-adds this feature so that decoders depending on those # container-specific markers for correct playback will work correctly. # # Signed-off-by: Ronald S. Bultje # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/media/video/zr36060.h # 2005/01/04 18:48:33-08:00 rbultje@ronald.bitfreak.net +6 -0 # zr36067 driver - correct jpeg app/com markers # # drivers/media/video/zr36060.c # 2005/01/04 18:48:33-08:00 rbultje@ronald.bitfreak.net +62 -34 # zr36067 driver - correct jpeg app/com markers # # drivers/media/video/zr36050.h # 2005/01/04 18:48:33-08:00 rbultje@ronald.bitfreak.net +6 -0 # zr36067 driver - correct jpeg app/com markers # # drivers/media/video/zr36050.c # 2005/01/04 18:48:33-08:00 rbultje@ronald.bitfreak.net +62 -32 # zr36067 driver - correct jpeg app/com markers # # drivers/media/video/zoran_device.c # 2005/01/04 20:24:03-08:00 rbultje@ronald.bitfreak.net +18 -1 # zr36067 driver - correct jpeg app/com markers # # drivers/media/video/videocodec.h # 2005/01/04 18:48:33-08:00 rbultje@ronald.bitfreak.net +11 -0 # zr36067 driver - correct jpeg app/com markers # # ChangeSet # 2005/01/04 21:56:34-08:00 adaplas@hotpop.com # [PATCH] fbdev: Reduce stack usage of intelfb # # Reduce stack usage in intelfb_set_par() from 2404 bytes (on x86-32) to 12 # bytes. # # Signed-off-by: Randy Dunlap # Signed-off-by: Antonino Daplas # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/video/intelfb/intelfbdrv.c # 2005/01/04 18:48:33-08:00 adaplas@hotpop.com +16 -9 # fbdev: Reduce stack usage of intelfb # # ChangeSet # 2005/01/04 21:56:21-08:00 adaplas@hotpop.com # [PATCH] fbdev: Fix default timings in vga16fb # # From: Martin Wilck # # ..I am asking because we have encountered a video device that obviously # has problems displaying the standard mode of the vga16fb driver... # # The default timings give a vtotal of 529 instead of 525 in 640x480@60. # # Signed-off-by: Antonino Daplas # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/video/vga16fb.c # 2005/01/04 18:48:33-08:00 adaplas@hotpop.com +2 -2 # fbdev: Fix default timings in vga16fb # # ChangeSet # 2005/01/04 21:56:08-08:00 adaplas@hotpop.com # [PATCH] fbdev: Add Viewsonic PF775a to broken display database # # Add Viewsonic PF775a to broken display database # # Signed-off-by: Antonino Daplas # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/video/fbmon.c # 2005/01/04 18:48:33-08:00 adaplas@hotpop.com +37 -30 # fbdev: Add Viewsonic PF775a to broken display database # # ChangeSet # 2005/01/04 21:55:55-08:00 adaplas@hotpop.com # [PATCH] fbdev: Do a symbol_put for each symbol_get in savagefb # # Do a symbol_put() for each symbol_get() in savagefb. # # Signed-off-by: Antonino Daplas # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/video/savage/savagefb-i2c.c # 2005/01/04 18:48:33-08:00 adaplas@hotpop.com +9 -1 # fbdev: Do a symbol_put for each symbol_get in savagefb # # ChangeSet # 2005/01/04 21:55:42-08:00 adaplas@hotpop.com # [PATCH] fbdev: Check return value of fb_add_videomode # # The function fb_add_videomode can fail, check return value. # # Signed-off-by: Antonino Daplas # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/video/fbmem.c # 2005/01/04 18:48:32-08:00 adaplas@hotpop.com +5 -3 # fbdev: Check return value of fb_add_videomode # # ChangeSet # 2005/01/04 21:55:29-08:00 adaplas@hotpop.com # [PATCH] fbcon/fbdev: Add blanking notification # # Add blanking event to the notifier call chain. This can be used by fbcon # to blank/unblank the console, and theoretically, by backlight drivers. # # Signed-off-by: Antonino Daplas # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/fb.h # 2005/01/04 18:48:32-08:00 adaplas@hotpop.com +3 -2 # fbcon/fbdev: Add blanking notification # # drivers/video/fbmem.c # 2005/01/04 20:24:04-08:00 adaplas@hotpop.com +18 -8 # fbcon/fbdev: Add blanking notification # # drivers/video/console/fbcon.h # 2005/01/04 18:48:32-08:00 adaplas@hotpop.com +1 -0 # fbcon/fbdev: Add blanking notification # # drivers/video/console/fbcon.c # 2005/01/04 18:48:32-08:00 adaplas@hotpop.com +47 -42 # fbcon/fbdev: Add blanking notification # # drivers/char/vt.c # 2005/01/04 18:48:32-08:00 adaplas@hotpop.com +2 -1 # fbcon/fbdev: Add blanking notification # # ChangeSet # 2005/01/04 21:55:16-08:00 adaplas@hotpop.com # [PATCH] fbdev: Revive global_mode_option # # The global_mode_option is useful for choosing the initial video mode # without specifying the driver, ie 'video=1024x768@60'. After the # initialization cleanup, this variable was accidentally removed. This patch # brings it back again. # # Signed-off-by: Antonino Daplas # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/video/modedb.c # 2005/01/04 18:48:32-08:00 adaplas@hotpop.com +1 -3 # fbdev: Revive global_mode_option # # drivers/video/fbmem.c # 2005/01/04 20:24:05-08:00 adaplas@hotpop.com +21 -8 # fbdev: Revive global_mode_option # # ChangeSet # 2005/01/04 21:55:03-08:00 adaplas@hotpop.com # [PATCH] fbdev: Revive BIOS-less booting for Rage XL cards # # The file drivers/video/aty/xlinit.c is currently unused. This file might be # useful to boot some types of RageXL cards on non-x86 platforms. # # Signed-off-by: Antonino Daplas # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/video/aty/xlinit.c # 2005/01/04 18:48:32-08:00 adaplas@hotpop.com +1 -14 # fbdev: Revive BIOS-less booting for Rage XL cards # # drivers/video/aty/atyfb_base.c # 2005/01/04 18:48:32-08:00 adaplas@hotpop.com +4 -1 # fbdev: Revive BIOS-less booting for Rage XL cards # # drivers/video/aty/atyfb.h # 2005/01/04 18:48:32-08:00 adaplas@hotpop.com +19 -5 # fbdev: Revive BIOS-less booting for Rage XL cards # # drivers/video/aty/Makefile # 2005/01/04 18:48:32-08:00 adaplas@hotpop.com +2 -0 # fbdev: Revive BIOS-less booting for Rage XL cards # # ChangeSet # 2005/01/04 21:54:49-08:00 adaplas@hotpop.com # [PATCH] fbdev: Cleanup i2c code of rivafb # # - Change timings to as close as possible to VESA specs and # use msecs_to_jiffies() instead of hard-coded number # - Attempt to read all i2c busses regardless of chipset type # # Signed-off-by: Antonino Daplas # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/video/riva/rivafb-i2c.c # 2005/01/04 18:48:32-08:00 adaplas@hotpop.com +13 -31 # fbdev: Cleanup i2c code of rivafb # # drivers/video/riva/fbdev.c # 2005/01/04 18:48:32-08:00 adaplas@hotpop.com +5 -3 # fbdev: Cleanup i2c code of rivafb # # ChangeSet # 2005/01/04 21:54:37-08:00 jbarnes@engr.sgi.com # [PATCH] fix ROM enable/disable in r128 and radeon fb drivers # # Both the r128 and radeon fb drivers do bad things with the PCI BAR # corresponding to their option ROM. They incorrectly use the host address # instead of the BAR address to enable the ROM, and then incorrectly lose the # original value on unmap. This patch fixes both problems. Tested on Altix. # # Signed-off-by: Jesse Barnes # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/video/aty/radeon_base.c # 2005/01/04 18:48:32-08:00 jbarnes@engr.sgi.com +3 -30 # fix ROM enable/disable in r128 and radeon fb drivers # # drivers/video/aty/aty128fb.c # 2005/01/04 18:48:32-08:00 jbarnes@engr.sgi.com +5 -37 # fix ROM enable/disable in r128 and radeon fb drivers # # ChangeSet # 2005/01/04 21:54:23-08:00 jim.hague@acm.org # [PATCH] pm2fb: fix fbi image display on 24 bit depth big endian # # Handle 24bit on big-endian by leaving the hardware in RGB and using the # colour offset to reverse red/blue. Leaving the hardware in RGB means that # fbi displays images correctly (abeit fortuitously) and the console is # correct, thanks to a recent patch to the console code correcting an endian # bug in fbcon_putc(). # # Signed-off-by: Jim Hague # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/video/pm2fb.c # 2005/01/04 18:48:32-08:00 jim.hague@acm.org +11 -5 # pm2fb: fix fbi image display on 24 bit depth big endian # # ChangeSet # 2005/01/04 21:54:11-08:00 jim.hague@acm.org # [PATCH] pm2fb: fix big-endian (Sparc) support # # A collection of changes that taken together makes the driver work correctly on # big-endian systems, specifically Sparc. # # - Remove old PM2FB_BE_APERTURE define and use __BIG_ENDIAN # throughout. PM2FB_BE_APERTURE wasn't defined on Sparc; this # was incorrect. # - Replace colour mode magic numbers with suitable constants, # and tidy colour mode handling. Use BGR not RGB at 24bit on # big-endian. # - Replace aperture magic numbers with constants. Rearrange code to # emphasise second aperture is not used. Add short explanations # of aperture settings for big endian. # - Update comments to note that the driver now works on Sparc. # - Revisit 32bit depth colour offsets and ensure transp is set. # # Signed-off-by: Jim Hague # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/video/permedia2.h # 2005/01/04 18:48:31-08:00 jim.hague@acm.org +11 -0 # pm2fb: fix big-endian (Sparc) support # # drivers/video/pm2fb.c # 2005/01/04 20:24:05-08:00 jim.hague@acm.org +43 -34 # pm2fb: fix big-endian (Sparc) support # # ChangeSet # 2005/01/04 21:53:58-08:00 jim.hague@acm.org # [PATCH] pm2fb: use modedb in modules # # - modedb is now available in modules. # # Signed-off-by: Jim Hague # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/video/pm2fb.c # 2005/01/04 20:24:06-08:00 jim.hague@acm.org +1 -4 # pm2fb: use modedb in modules # # ChangeSet # 2005/01/04 21:53:45-08:00 jim.hague@acm.org # [PATCH] pm2fb: save/restore memory config # # - From 2.4 driver: Save memory config registers at init and restore after card # reset. Reset card on mode change. # # Signed-off-by: Jim Hague # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/video/pm2fb.c # 2005/01/04 20:24:06-08:00 jim.hague@acm.org +43 -17 # pm2fb: save/restore memory config # # ChangeSet # 2005/01/04 21:53:32-08:00 jim.hague@acm.org # [PATCH] pm2fb: module parameters and module-conditional code # # - Update MODULE_PARM to module_param. # - Omit some non-module code from module builds and vice-versa. # # Signed-off-by: Jim Hague # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/video/pm2fb.c # 2005/01/04 20:24:06-08:00 jim.hague@acm.org +14 -3 # pm2fb: module parameters and module-conditional code # # ChangeSet # 2005/01/04 21:53:19-08:00 kraxel@bytesex.org # [PATCH] fbdev: sysfs fix # # Make sure the fbdev sysfs class is registered before all drivers, otherwise # some symlinks are missing. # # Signed-off-by: Gerd Knorr # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/video/fbmem.c # 2005/01/04 20:24:05-08:00 kraxel@bytesex.org +1 -1 # fbdev: sysfs fix # # ChangeSet # 2005/01/04 21:53:06-08:00 thomas@winischhofer.net # [PATCH] fbdev: SiS framebuffer driver update 1.7.17 # # attached is an update for sisfb, lifting it up to version 1.7.17. # # It contains all changes done behind my back by other people (viro, # torvalds, adaplas) in the meantime. Furthermore, # # - all remaining sparse warnings were fixed (mainly caused by the ROM code) # # - problems with very old and brand new BIOSes from SiS were fixed, # # - LCD setup was simplified, allowing more display modes than before, # # - UMC/charter bridge type handling was added, # # - a code clean-up was performed, the new FB_BLANK-flags were taken over, # VBLANK status info was corrected, etc. # # Signed-off-by: Thomas Winischhofer # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/video/sis/vstruct.h # 2005/01/04 18:48:31-08:00 thomas@winischhofer.net +8 -11 # fbdev: SiS framebuffer driver update 1.7.17 # # drivers/video/sis/vgatypes.h # 2005/01/04 18:48:31-08:00 thomas@winischhofer.net +14 -49 # fbdev: SiS framebuffer driver update 1.7.17 # # drivers/video/sis/sis_main.h # 2005/01/04 18:48:31-08:00 thomas@winischhofer.net +39 -36 # fbdev: SiS framebuffer driver update 1.7.17 # # drivers/video/sis/sis_main.c # 2005/01/04 18:48:31-08:00 thomas@winischhofer.net +117 -119 # fbdev: SiS framebuffer driver update 1.7.17 # # drivers/video/sis/sis.h # 2005/01/04 18:48:31-08:00 thomas@winischhofer.net +118 -46 # fbdev: SiS framebuffer driver update 1.7.17 # # drivers/video/sis/osdef.h # 2005/01/04 18:48:31-08:00 thomas@winischhofer.net +14 -11 # fbdev: SiS framebuffer driver update 1.7.17 # # drivers/video/sis/oem310.h # 2005/01/04 18:48:31-08:00 thomas@winischhofer.net +1 -1 # fbdev: SiS framebuffer driver update 1.7.17 # # drivers/video/sis/oem300.h # 2005/01/04 18:48:31-08:00 thomas@winischhofer.net +18 -18 # fbdev: SiS framebuffer driver update 1.7.17 # # drivers/video/sis/initdef.h # 2005/01/04 18:48:31-08:00 thomas@winischhofer.net +16 -10 # fbdev: SiS framebuffer driver update 1.7.17 # # drivers/video/sis/init301.h # 2005/01/04 18:48:31-08:00 thomas@winischhofer.net +75 -79 # fbdev: SiS framebuffer driver update 1.7.17 # # drivers/video/sis/init301.c # 2005/01/04 18:48:31-08:00 thomas@winischhofer.net +812 -518 # fbdev: SiS framebuffer driver update 1.7.17 # # drivers/video/sis/init.h # 2005/01/04 18:48:31-08:00 thomas@winischhofer.net +275 -258 # fbdev: SiS framebuffer driver update 1.7.17 # # drivers/video/sis/init.c # 2005/01/04 18:48:31-08:00 thomas@winischhofer.net +345 -298 # fbdev: SiS framebuffer driver update 1.7.17 # # drivers/video/sis/310vtbl.h # 2005/01/04 18:48:31-08:00 thomas@winischhofer.net +166 -47 # fbdev: SiS framebuffer driver update 1.7.17 # # drivers/video/sis/300vtbl.h # 2005/01/04 18:48:31-08:00 thomas@winischhofer.net +94 -91 # fbdev: SiS framebuffer driver update 1.7.17 # # ChangeSet # 2005/01/04 21:52:52-08:00 wli@holomorphy.com # [PATCH] invalidate_inodes speedup # # With Kirill Korotaev # # invalidate_inodes() can take a large amount of time searching the inode # lists for inodes which belong to this fs. Add a separate list for this # search. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/fs.h # 2005/01/04 18:48:30-08:00 wli@holomorphy.com +2 -0 # invalidate_inodes speedup # # fs/super.c # 2005/01/04 18:48:30-08:00 wli@holomorphy.com +1 -0 # invalidate_inodes speedup # # fs/inode.c # 2005/01/04 18:48:30-08:00 wli@holomorphy.com +18 -29 # invalidate_inodes speedup # # fs/hugetlbfs/inode.c # 2005/01/04 18:48:30-08:00 wli@holomorphy.com +2 -0 # invalidate_inodes speedup # # ChangeSet # 2005/01/04 21:52:38-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: clear the recall_lru of delegations at shutdown # # Signed-off-by: Andy Adamson # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/nfsd/nfs4state.c # 2005/01/04 18:48:30-08:00 neilb@cse.unsw.edu.au +10 -0 # knfsd: clear the recall_lru of delegations at shutdown # # ChangeSet # 2005/01/04 21:52:26-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: add to the laundromat service for delegations. # # Walk the recall_lru and reap unused or timed-out delegations. # # Signed-off-by: Andy Adamson # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/nfsd/nfs4state.c # 2005/01/04 20:24:08-08:00 neilb@cse.unsw.edu.au +23 -4 # knfsd: add to the laundromat service for delegations. # # ChangeSet # 2005/01/04 21:52:12-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: add the DELEGRETURN operation. # # Signed-off-by: Andy Adamson # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/nfsd/xdr4.h # 2005/01/04 18:48:30-08:00 neilb@cse.unsw.edu.au +7 -0 # knfsd: add the DELEGRETURN operation. # # fs/nfsd/nfs4xdr.c # 2005/01/04 18:48:30-08:00 neilb@cse.unsw.edu.au +17 -0 # knfsd: add the DELEGRETURN operation. # # fs/nfsd/nfs4state.c # 2005/01/04 20:24:08-08:00 neilb@cse.unsw.edu.au +16 -0 # knfsd: add the DELEGRETURN operation. # # fs/nfsd/nfs4proc.c # 2005/01/04 18:48:30-08:00 neilb@cse.unsw.edu.au +3 -0 # knfsd: add the DELEGRETURN operation. # # ChangeSet # 2005/01/04 21:51:59-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: add checking of delegation stateids to nfs4_preprocess_stateid_op. # # Call release_delegation on delegreturn (DELEG_RET). # # Signed-off-by: Andy Adamson # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/nfsd/state.h # 2005/01/04 18:48:30-08:00 neilb@cse.unsw.edu.au +1 -0 # knfsd: add checking of delegation stateids to nfs4_preprocess_stateid_op. # # fs/nfsd/nfs4state.c # 2005/01/04 20:24:08-08:00 neilb@cse.unsw.edu.au +38 -24 # knfsd: add checking of delegation stateids to nfs4_preprocess_stateid_op. # # ChangeSet # 2005/01/04 21:51:46-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: check for openmode violations given a delegation stateid. # # Signed-off-by: Andy Adamson # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/nfsd/nfs4state.c # 2005/01/04 20:24:08-08:00 neilb@cse.unsw.edu.au +14 -0 # knfsd: check for openmode violations given a delegation stateid. # # ChangeSet # 2005/01/04 21:51:33-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: remove unnecessary stateowner existence check. # # At OPEN: # Check for delegations in the process of being recalled. # Attempt to hand out a delegation. # # Signed-off-by: Andy Adamson # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/nfsd/nfs4state.c # 2005/01/04 20:24:09-08:00 neilb@cse.unsw.edu.au +19 -17 # knfsd: remove unnecessary stateowner existence check. # # ChangeSet # 2005/01/04 21:51:20-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: attempt to hand out a delegation # # Signed-off-by: Andy Adamson # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/nfsd/nfs4state.c # 2005/01/04 20:24:09-08:00 neilb@cse.unsw.edu.au +59 -0 # knfsd: attempt to hand out a delegation # # ChangeSet # 2005/01/04 21:51:07-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: helper functions for deciding to grant a delegation. # # Signed-off-by: Andy Adamson # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/nfsd/nfs4state.c # 2005/01/04 20:24:09-08:00 neilb@cse.unsw.edu.au +37 -0 # knfsd: helper functions for deciding to grant a delegation. # # ChangeSet # 2005/01/04 21:50:54-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: kernel thread for delegation callback # # Any task can call break_lease or time_out_leases # on a v4 delegated file which results in a recall callback rpc sent to the # NFSv4 client holding the delegation, and/or the FL_LEASE to be removed. # Spawn a kernel thread to perform the callback. # # Signed-off-by: Andy Adamson # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/nfsd/nfs4state.c # 2005/01/04 20:24:09-08:00 neilb@cse.unsw.edu.au +96 -0 # knfsd: kernel thread for delegation callback # # ChangeSet # 2005/01/04 21:50:42-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: delegation recall callback rpc. # # Signed-off-by: Andy Adamson # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/nfsd/state.h # 2005/01/04 20:24:08-08:00 neilb@cse.unsw.edu.au +1 -0 # knfsd: delegation recall callback rpc. # # fs/nfsd/nfs4callback.c # 2005/01/04 18:48:29-08:00 neilb@cse.unsw.edu.au +315 -1 # knfsd: delegation recall callback rpc. # # ChangeSet # 2005/01/04 21:50:29-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: delay nfsd_colse for delegations until reaping # # Because nfsd_close() can call locks_remove_flock() which removes leases, # delay nfsd_close() for delegations until the delegation is reaped. # # Don't release an nfs4_file struct with delegations. # # Signed-off-by: Andy Adamson # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/nfsd/nfs4state.c # 2005/01/04 20:24:09-08:00 neilb@cse.unsw.edu.au +18 -3 # knfsd: delay nfsd_colse for delegations until reaping # # ChangeSet # 2005/01/04 21:50:16-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: changes to expire_client # # ... to shutdown the rpc callback client and remove all # client associated delegations # # Signed-off-by: Andy Adamson # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/nfsd/nfs4state.c # 2005/01/04 20:24:09-08:00 neilb@cse.unsw.edu.au +22 -1 # knfsd: changes to expire_client # # ChangeSet # 2005/01/04 21:50:03-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: add the delegation release and free functions # # Signed-off-by: Andy Adamson # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/nfsd/nfs4state.c # 2005/01/04 20:24:10-08:00 neilb@cse.unsw.edu.au +63 -0 # knfsd: add the delegation release and free functions # # ChangeSet # 2005/01/04 21:49:50-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: find a delegation for a file given a stateid. # # Signed-off-by: Andy Adamson # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/nfsd/nfs4state.c # 2005/01/04 20:24:10-08:00 neilb@cse.unsw.edu.au +27 -0 # knfsd: find a delegation for a file given a stateid. # # ChangeSet # 2005/01/04 21:49:38-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: allocate and initialize the delegation structure. # # Declare and initialize the recall_lru list. # # Signed-off-by: Andy Adamson # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/nfsd/nfs4state.c # 2005/01/04 20:24:10-08:00 neilb@cse.unsw.edu.au +56 -2 # knfsd: allocate and initialize the delegation structure. # # ChangeSet # 2005/01/04 21:49:25-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: add structures for delegation support # # Signed-off-by: Andy Adamson # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/nfsd/state.h # 2005/01/04 20:24:09-08:00 neilb@cse.unsw.edu.au +37 -0 # knfsd: add structures for delegation support # # ChangeSet # 2005/01/04 21:49:12-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: get rid of the special delegation_stateid_t, use the existing stateid_t. # # Signed-off-by: Andy Adamson # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/nfsd/xdr4.h # 2005/01/04 20:24:08-08:00 neilb@cse.unsw.edu.au +3 -13 # knfsd: get rid of the special delegation_stateid_t, use the existing stateid_t. # # fs/nfsd/nfs4xdr.c # 2005/01/04 20:24:08-08:00 neilb@cse.unsw.edu.au +6 -6 # knfsd: get rid of the special delegation_stateid_t, use the existing stateid_t. # # ChangeSet # 2005/01/04 21:48:59-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: check for existence of file_lock parameter inside of the kernel lock. # # Signed-off-by: Andy Adamson # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/locks.c # 2005/01/04 18:48:28-08:00 neilb@cse.unsw.edu.au +3 -5 # knfsd: check for existence of file_lock parameter inside of the kernel lock. # # ChangeSet # 2005/01/04 21:48:47-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: probe the callback path upon a successful setclientid_confirm # # Signed-off-by: Andy Adamson # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/nfsd/nfs4state.c # 2005/01/04 20:24:10-08:00 neilb@cse.unsw.edu.au +5 -1 # knfsd: probe the callback path upon a successful setclientid_confirm # # ChangeSet # 2005/01/04 21:48:34-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: preparation for delegation: client callback probe # # client callback rpc to probe the callback # channel on setclientid with a null request. # # Signed-off-by: Andy Adamson # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/nfsd/state.h # 2005/01/04 20:24:10-08:00 neilb@cse.unsw.edu.au +1 -0 # knfsd: preparation for delegation: client callback probe # # fs/nfsd/nfs4callback.c # 2005/01/04 20:24:09-08:00 neilb@cse.unsw.edu.au +269 -0 # knfsd: preparation for delegation: client callback probe # # fs/nfsd/Makefile # 2005/01/04 18:48:27-08:00 neilb@cse.unsw.edu.au +1 -1 # knfsd: preparation for delegation: client callback probe # # fs/nfsd/nfs4callback.c # 2005/01/04 20:24:09-08:00 neilb@cse.unsw.edu.au +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/fs/nfsd/nfs4callback.c # # ChangeSet # 2005/01/04 21:48:20-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: count the nfs4_client structure usage # # ... to protect the null (probe) callback asynchronous rpc's reference. # # Atomically inc and set the cb_set flag. # # Signed-off-by: Andy Adamson # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/nfsd/state.h # 2005/01/04 20:24:11-08:00 neilb@cse.unsw.edu.au +3 -1 # knfsd: count the nfs4_client structure usage # # fs/nfsd/nfs4state.c # 2005/01/04 20:24:11-08:00 neilb@cse.unsw.edu.au +12 -2 # knfsd: count the nfs4_client structure usage # # ChangeSet # 2005/01/04 21:48:08-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: check the callback netid in gen_callback. # # since we only support tcp, don't save the netinfo. # # Signed-off-by: Andy Adamson # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/nfsd/state.h # 2005/01/04 20:24:11-08:00 neilb@cse.unsw.edu.au +0 -1 # knfsd: check the callback netid in gen_callback. # # fs/nfsd/nfs4state.c # 2005/01/04 20:24:11-08:00 neilb@cse.unsw.edu.au +14 -7 # knfsd: check the callback netid in gen_callback. # # ChangeSet # 2005/01/04 21:47:55-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: move nfserr_openmode checking from nfsd_read/write into nfs4_preprocess_stateid_op() in preparation for delegation state. # # Signed-off-by: Andy Adamson # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/nfsd/state.h # 2005/01/04 20:24:11-08:00 neilb@cse.unsw.edu.au +4 -3 # knfsd: move nfserr_openmode checking from nfsd_read/write into nfs4_preprocess_stateid_op() in preparation for delegation state. # # fs/nfsd/nfs4state.c # 2005/01/04 20:24:11-08:00 neilb@cse.unsw.edu.au +35 -7 # knfsd: move nfserr_openmode checking from nfsd_read/write into nfs4_preprocess_stateid_op() in preparation for delegation state. # # fs/nfsd/nfs4proc.c # 2005/01/04 20:24:08-08:00 neilb@cse.unsw.edu.au +4 -36 # knfsd: move nfserr_openmode checking from nfsd_read/write into nfs4_preprocess_stateid_op() in preparation for delegation state. # # ChangeSet # 2005/01/04 21:47:42-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: nfsd4: encode_dirent: trivial cleanup # # Trim a couple redundant comments, minor whitespace cleanup. # # Signed-off-by: J. Bruce Fields # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/nfsd/nfs4xdr.c # 2005/01/04 20:24:10-08:00 neilb@cse.unsw.edu.au +3 -12 # knfsd: nfsd4: encode_dirent: trivial cleanup # # ChangeSet # 2005/01/04 21:47:29-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: nfsd4: encode_dirent: fix dropit return # # We need to handle nfserr_dropit as a special case here, since we don't # want to return it in the rdattr_error attribute. # # Signed-off-by: J. Bruce Fields # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/nfsd/nfs4xdr.c # 2005/01/04 20:24:12-08:00 neilb@cse.unsw.edu.au +2 -0 # knfsd: nfsd4: encode_dirent: fix dropit return # # ChangeSet # 2005/01/04 21:47:16-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: nfsd4: encode_dirent: simplify control flow # # Replace series of if's by a switch, remove (now unnecessary) label "out". # # Signed-off-by: J. Bruce Fields # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/nfsd/nfs4xdr.c # 2005/01/04 20:24:12-08:00 neilb@cse.unsw.edu.au +20 -21 # knfsd: nfsd4: encode_dirent: simplify control flow # # ChangeSet # 2005/01/04 21:47:03-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: nfsd4: encode_dirent: simplify error handling # # Minor simplification of error handling in encode_dirent. # # Signed-off-by: J. Bruce Fields # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/nfsd/nfs4xdr.c # 2005/01/04 20:24:12-08:00 neilb@cse.unsw.edu.au +12 -11 # knfsd: nfsd4: encode_dirent: simplify error handling # # ChangeSet # 2005/01/04 21:46:50-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: nfsd4: encode_dirent: move rdattr_error code to new function # # Move code to encode the special rdattr_error attribute to # nfsd4_encode_rdattr_error(). # # Signed-off-by: J. Bruce Fields # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/nfsd/nfs4xdr.c # 2005/01/04 20:24:12-08:00 neilb@cse.unsw.edu.au +20 -11 # knfsd: nfsd4: encode_dirent: move rdattr_error code to new function # # ChangeSet # 2005/01/04 21:46:37-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: nfsd4: encode_dirent: simplify nfs4_encode_dirent_fattr # # Make nfsd4_encode_dirent_fattr() slightly more concise. # # Signed-off-by: J. Bruce Fields # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/nfsd/nfs4xdr.c # 2005/01/04 20:24:12-08:00 neilb@cse.unsw.edu.au +4 -7 # knfsd: nfsd4: encode_dirent: simplify nfs4_encode_dirent_fattr # # ChangeSet # 2005/01/04 21:46:24-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: nfsd4: encode_dirent: more readdir attribute encoding to new function # # Move readdir attribute encoding to nfsd4_encode_dirent_fattr(), remove # the (no-longer used) error label. # # Signed-off-by: J. Bruce Fields # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/nfsd/nfs4xdr.c # 2005/01/04 20:24:12-08:00 neilb@cse.unsw.edu.au +41 -32 # knfsd: nfsd4: encode_dirent: more readdir attribute encoding to new function # # ChangeSet # 2005/01/04 21:46:12-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: nfsd4: encode_dirent: superfluous local variables # # The local variables bmval0 and bmval1 turn out not to really help much. # # Signed-off-by: J. Bruce Fields # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/nfsd/nfs4xdr.c # 2005/01/04 20:24:12-08:00 neilb@cse.unsw.edu.au +3 -10 # knfsd: nfsd4: encode_dirent: superfluous local variables # # ChangeSet # 2005/01/04 21:45:59-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: nfsd4: encode_dirent: superfluous assignment # # Remove unused assignment # # Signed-off-by: J. Bruce Fields # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/nfsd/nfs4xdr.c # 2005/01/04 20:24:13-08:00 neilb@cse.unsw.edu.au +1 -2 # knfsd: nfsd4: encode_dirent: superfluous assignment # # ChangeSet # 2005/01/04 21:45:46-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: nfsd4 encode_dirent cleanup # # No sensible client is ever going to request only the RDATTR_ERROR attribute, so # there's no point optimizing for that case. # # Signed-off-by: J. Bruce Fields # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/nfsd/nfs4xdr.c # 2005/01/04 20:24:13-08:00 neilb@cse.unsw.edu.au +47 -59 # knfsd: nfsd4 encode_dirent cleanup # # ChangeSet # 2005/01/04 21:45:32-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: nfsd4: use the fsid export option when returning the fsid attribute # # Return the special NFSv4 pseudo filesystem fsid (0/0) in a GETATTR on an # NFSv4 pseudo filesystem node. # # Signed-off-by: Andy Adamson # Signed-off-by: J. Bruce Fields # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/nfsd/nfs4xdr.c # 2005/01/04 20:24:13-08:00 neilb@cse.unsw.edu.au +10 -5 # knfsd: nfsd4: use the fsid export option when returning the fsid attribute # # ChangeSet # 2005/01/04 21:45:20-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: nfsd4: fix fileid in readdir responses # # We were reporting mounted_on fileid instead of fileid in readdir responses. # # Signed-off-by: J. Bruce Fields # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/nfsd/nfs4xdr.c # 2005/01/04 20:24:13-08:00 neilb@cse.unsw.edu.au +1 -3 # knfsd: nfsd4: fix fileid in readdir responses # # ChangeSet # 2005/01/04 21:45:08-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: rpcsec_gss: comparing pointer to 0 instead of NULL # # Just noticed while fixing some other sparse-related stuff. # # Signed-off-by: J. Bruce Fields # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # net/sunrpc/auth_gss/svcauth_gss.c # 2005/01/04 18:48:25-08:00 neilb@cse.unsw.edu.au +1 -1 # knfsd: rpcsec_gss: comparing pointer to 0 instead of NULL # # ChangeSet # 2005/01/04 21:44:55-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: nfsd4: fix open_downgrade decode error. # # Fix open downgrade decode error. # # Signed-off-by: Andy Adamson # Signed-off-by: J. Bruce Fields # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/nfsd/nfs4xdr.c # 2005/01/04 20:24:13-08:00 neilb@cse.unsw.edu.au +1 -1 # knfsd: nfsd4: fix open_downgrade decode error. # # ChangeSet # 2005/01/04 21:44:42-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: svcrpc: share code duplicated between auth_unix and auth_null # # Call a helper function from svcauth_unix_accept() and svcauth_null_accept() # instead of duplicating code. # # Signed-off-by: J. Bruce Fields # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # net/sunrpc/svcauth_unix.c # 2005/01/04 18:48:25-08:00 neilb@cse.unsw.edu.au +36 -52 # knfsd: svcrpc: share code duplicated between auth_unix and auth_null # # ChangeSet # 2005/01/04 21:44:30-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: svcrpc: auth_null fixes # # Fix some discrepencies between the server-side auth_null and auth_unix rpc # code: in particular, make sure we return an auth error in the auth_null case # instead of dropping when we fail to match an export entry, and make sure such # responses are encoded correctly. # # Signed-off-by: J. Bruce Fields # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # net/sunrpc/svcauth_unix.c # 2005/01/04 20:24:14-08:00 neilb@cse.unsw.edu.au +18 -12 # knfsd: svcrpc: auth_null fixes # # ChangeSet # 2005/01/04 21:44:16-08:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: nfsd_translate_wouldblocks # # -EAGAIN has a special treatment in the nfsd code since it's used to indicate # that an upcall has been initiated and that a request should be dropped pending # the upcall result. # # But when the break_lease functions return -EWOULDBLOCK (==-EAGAIN on most # architectures), we actually prefer to return nfserr_jukebox. So translate # -EAGAIN returns to -ETIMEDOUT (which will be translated to nfserr_jukebox). # # Undo the mapping of -EWOULDBLOCK to nfserr_jukebox, since on most # architectures that has the undesireable effect of mapping -EAGAIN to # nfserr_jukebox. # # Signed-off-by: J. Bruce Fields # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/nfsd/vfs.c # 2005/01/04 18:48:24-08:00 neilb@cse.unsw.edu.au +4 -0 # knfsd: nfsd_translate_wouldblocks # # fs/nfsd/nfsproc.c # 2005/01/04 18:48:24-08:00 neilb@cse.unsw.edu.au +0 -1 # knfsd: nfsd_translate_wouldblocks # # ChangeSet # 2005/01/04 21:44:04-08:00 penberg@cs.helsinki.fi # [PATCH] oprofile: minor cleanups # # This patch has the following cleanups to oprofile: # # - Remove spurious casts # - vfree() accepts NULL pointers so remove redundant test # - The parameter for __free_cpu_buffer() is not used so merge the function # with free_cpu_buffer() # # Signed-off-by: Pekka Enberg # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/oprofile/cpu_buffer.c # 2005/01/04 18:48:24-08:00 penberg@cs.helsinki.fi +4 -11 # oprofile: minor cleanups # # drivers/oprofile/buffer_sync.c # 2005/01/04 18:48:24-08:00 penberg@cs.helsinki.fi +1 -1 # oprofile: minor cleanups # # ChangeSet # 2005/01/04 21:43:51-08:00 gnb@melbourne.sgi.com # [PATCH] oprofile: update sparc64 for api changes # # oprofile sparc64 arch updates, including some internal API changes. # # Signed-off-by: John Levon # Signed-off-by: Greg Banks # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/sparc64/oprofile/init.c # 2005/01/04 18:48:24-08:00 gnb@melbourne.sgi.com +1 -4 # oprofile: update sparc64 for api changes # # ChangeSet # 2005/01/04 21:43:39-08:00 gnb@melbourne.sgi.com # [PATCH] oprofile: update sh for api changes # # oprofile sh arch updates, including some internal API changes. # # Signed-off-by: John Levon # Signed-off-by: Greg Banks # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/sh/oprofile/op_model_null.c # 2005/01/04 18:48:24-08:00 gnb@melbourne.sgi.com +1 -2 # oprofile: update sh for api changes # # ChangeSet # 2005/01/04 21:43:26-08:00 gnb@melbourne.sgi.com # [PATCH] oprofile: update s390 for api changes # # oprofile s390 arch updates, including some internal API changes. # # Signed-off-by: John Levon # Signed-off-by: Greg Banks # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/s390/oprofile/init.c # 2005/01/04 18:48:24-08:00 gnb@melbourne.sgi.com +1 -6 # oprofile: update s390 for api changes # # ChangeSet # 2005/01/04 21:43:13-08:00 gnb@melbourne.sgi.com # [PATCH] oprofile: update parisc for api changes # # oprofile parisc arch updates, including some internal API changes. # # Signed-off-by: John Levon # Signed-off-by: Greg Banks # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/parisc/oprofile/init.c # 2005/01/04 18:48:24-08:00 gnb@melbourne.sgi.com +1 -4 # oprofile: update parisc for api changes # # ChangeSet # 2005/01/04 21:43:03-08:00 gnb@melbourne.sgi.com # [PATCH] oprofile: update ppc for api changes # # oprofile ppc64 arch updates, including some internal API changes. # # Signed-off-by: John Levon # Signed-off-by: Greg Banks # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/ppc64/oprofile/op_model_rs64.c # 2005/01/04 18:48:24-08:00 gnb@melbourne.sgi.com +1 -2 # oprofile: update ppc for api changes # # arch/ppc64/oprofile/op_model_power4.c # 2005/01/04 18:48:24-08:00 gnb@melbourne.sgi.com +1 -2 # oprofile: update ppc for api changes # # arch/ppc64/oprofile/common.c # 2005/01/04 18:48:24-08:00 gnb@melbourne.sgi.com +13 -20 # oprofile: update ppc for api changes # # ChangeSet # 2005/01/04 21:42:50-08:00 gnb@melbourne.sgi.com # [PATCH] oprofile: update arm for api changes # # oprofile arm arch updates, including some internal API changes. # # Signed-off-by: John Levon # Signed-off-by: Greg Banks # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/arm/oprofile/op_model_xscale.c # 2005/01/04 18:48:24-08:00 gnb@melbourne.sgi.com +2 -3 # oprofile: update arm for api changes # # arch/arm/oprofile/init.c # 2005/01/04 18:48:24-08:00 gnb@melbourne.sgi.com +2 -5 # oprofile: update arm for api changes # # arch/arm/oprofile/common.c # 2005/01/04 18:48:24-08:00 gnb@melbourne.sgi.com +8 -13 # oprofile: update arm for api changes # # ChangeSet # 2005/01/04 21:42:37-08:00 gnb@melbourne.sgi.com # [PATCH] oprofile: update alpha for api changes # # oprofile alpha arch updates, including some internal API changes. # # Signed-off-by: John Levon # Signed-off-by: Greg Banks # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/alpha/oprofile/op_model_ev67.c # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +3 -5 # oprofile: update alpha for api changes # # arch/alpha/oprofile/op_model_ev6.c # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +1 -2 # oprofile: update alpha for api changes # # arch/alpha/oprofile/op_model_ev5.c # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +1 -2 # oprofile: update alpha for api changes # # arch/alpha/oprofile/op_model_ev4.c # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +1 -2 # oprofile: update alpha for api changes # # arch/alpha/oprofile/common.c # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +9 -16 # oprofile: update alpha for api changes # # ChangeSet # 2005/01/04 21:42:25-08:00 gnb@melbourne.sgi.com # [PATCH] oprofile: ia64 support for oprofile stack trace sampling # # oprofile ia64 arch updates, including some internal API changes and support # for stack trace sampling. # # Signed-off-by: John Levon # Signed-off-by: Keith Owens # Signed-off-by: Greg Banks # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/ia64/oprofile/backtrace.c # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +150 -0 # oprofile: ia64 support for oprofile stack trace sampling # # arch/ia64/oprofile/perfmon.c # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +5 -10 # oprofile: ia64 support for oprofile stack trace sampling # # arch/ia64/oprofile/init.c # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +6 -4 # oprofile: ia64 support for oprofile stack trace sampling # # arch/ia64/oprofile/backtrace.c # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ia64/oprofile/backtrace.c # # arch/ia64/oprofile/Makefile # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +1 -1 # oprofile: ia64 support for oprofile stack trace sampling # # arch/ia64/kernel/unwind.c # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +2 -0 # oprofile: ia64 support for oprofile stack trace sampling # # arch/ia64/kernel/ia64_ksyms.c # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +3 -0 # oprofile: ia64 support for oprofile stack trace sampling # # ChangeSet # 2005/01/04 21:42:11-08:00 gnb@melbourne.sgi.com # [PATCH] oprofile: i386 support for stack trace sampling # # oprofile i386 arch updates, including some internal API changes and support # for stack trace sampling. # # (akpm: I added a nasty hack to fix the x86_64 build. However the feature is # untested on x86_64 and probably doesn't work yet). # # Signed-off-by: John Levon # Signed-off-by: Greg Banks # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/x86_64/oprofile/Makefile # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +1 -1 # oprofile: i386 support for stack trace sampling # # arch/i386/oprofile/op_x86_model.h # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +2 -3 # oprofile: i386 support for stack trace sampling # # arch/i386/oprofile/op_model_ppro.c # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +3 -6 # oprofile: i386 support for stack trace sampling # # arch/i386/oprofile/op_model_p4.c # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +3 -6 # oprofile: i386 support for stack trace sampling # # arch/i386/oprofile/op_model_athlon.c # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +3 -6 # oprofile: i386 support for stack trace sampling # # arch/i386/oprofile/nmi_timer_int.c # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +5 -11 # oprofile: i386 support for stack trace sampling # # arch/i386/oprofile/nmi_int.c # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +23 -26 # oprofile: i386 support for stack trace sampling # # arch/i386/oprofile/init.c # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +10 -6 # oprofile: i386 support for stack trace sampling # # arch/i386/oprofile/backtrace.c # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +124 -0 # oprofile: i386 support for stack trace sampling # # arch/i386/oprofile/Makefile # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +1 -1 # oprofile: i386 support for stack trace sampling # # arch/i386/oprofile/backtrace.c # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/i386/oprofile/backtrace.c # # ChangeSet # 2005/01/04 21:41:57-08:00 gnb@sgi.com # [PATCH] oprofile: backtrace operation does not initialized # # Allow stack tracing to work when sampling on timer is forced using the # timer=1 boot option. Reported by Akinobu Mita. # # Signed-off-by: Greg Banks # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/oprofile/timer_int.c # 2005/01/04 18:48:23-08:00 gnb@sgi.com +3 -0 # oprofile: backtrace operation does not initialized # # drivers/oprofile/oprof.c # 2005/01/04 18:48:23-08:00 gnb@sgi.com +2 -4 # oprofile: backtrace operation does not initialized # # ChangeSet # 2005/01/04 21:41:45-08:00 gnb@melbourne.sgi.com # [PATCH] oprofile: arch-independent code for stack trace sampling # # oprofile arch-independent updates, including some internal API changes and # support for stack trace sampling. # # Signed-off-by: John Levon # Signed-off-by: Greg Banks # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/oprofile.h # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +15 -5 # oprofile: arch-independent code for stack trace sampling # # drivers/oprofile/timer_int.c # 2005/01/04 20:24:16-08:00 gnb@melbourne.sgi.com +8 -15 # oprofile: arch-independent code for stack trace sampling # # drivers/oprofile/oprofile_stats.h # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +1 -0 # oprofile: arch-independent code for stack trace sampling # # drivers/oprofile/oprofile_stats.c # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +4 -0 # oprofile: arch-independent code for stack trace sampling # # drivers/oprofile/oprofile_files.c # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +37 -5 # oprofile: arch-independent code for stack trace sampling # # drivers/oprofile/oprof.h # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +5 -1 # oprofile: arch-independent code for stack trace sampling # # drivers/oprofile/oprof.c # 2005/01/04 20:24:16-08:00 gnb@melbourne.sgi.com +41 -30 # oprofile: arch-independent code for stack trace sampling # # drivers/oprofile/event_buffer.h # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +2 -0 # oprofile: arch-independent code for stack trace sampling # # drivers/oprofile/cpu_buffer.h # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +6 -0 # oprofile: arch-independent code for stack trace sampling # # drivers/oprofile/cpu_buffer.c # 2005/01/04 20:24:14-08:00 gnb@melbourne.sgi.com +115 -26 # oprofile: arch-independent code for stack trace sampling # # drivers/oprofile/buffer_sync.c # 2005/01/04 20:24:14-08:00 gnb@melbourne.sgi.com +46 -11 # oprofile: arch-independent code for stack trace sampling # # ChangeSet # 2005/01/04 21:41:31-08:00 gnb@melbourne.sgi.com # [PATCH] oprofile: add check_user_page_readable() # # Add check_user_page_readable() for kernel modules which need to follow user # space addresses but can't use get_user(). # # Signed-off-by: John Levon # Signed-off-by: Greg Banks # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/memory.c # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +18 -2 # oprofile: add check_user_page_readable() # # include/linux/mm.h # 2005/01/04 18:48:23-08:00 gnb@melbourne.sgi.com +1 -0 # oprofile: add check_user_page_readable() # # ChangeSet # 2005/01/04 21:41:17-08:00 sds@epoch.ncsc.mil # [PATCH] SELinux: eliminate unaligned accesses by policy loading code # # This patch rewrites the SELinux next_entry() function and all callers to # copy entry data from the binary policy into properly aligned buffers, # eliminating unaligned accesses. This patch is in response to a bug report # from Prarit Bhargava for SELinux and ia64, and he has confirmed that this # patch eliminates the unaligned access warnings. # # Signed-off-by: Stephen Smalley # Signed-off-by: James Morris # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # security/selinux/ss/policydb.h # 2005/01/04 18:48:22-08:00 sds@epoch.ncsc.mil +4 -6 # SELinux: eliminate unaligned accesses by policy loading code # # security/selinux/ss/policydb.c # 2005/01/04 18:48:22-08:00 sds@epoch.ncsc.mil +106 -155 # SELinux: eliminate unaligned accesses by policy loading code # # security/selinux/ss/mls.c # 2005/01/04 18:48:22-08:00 sds@epoch.ncsc.mil +43 -46 # SELinux: eliminate unaligned accesses by policy loading code # # security/selinux/ss/ebitmap.c # 2005/01/04 18:48:22-08:00 sds@epoch.ncsc.mil +7 -8 # SELinux: eliminate unaligned accesses by policy loading code # # security/selinux/ss/conditional.c # 2005/01/04 18:48:22-08:00 sds@epoch.ncsc.mil +24 -24 # SELinux: eliminate unaligned accesses by policy loading code # # security/selinux/ss/avtab.c # 2005/01/04 18:48:22-08:00 sds@epoch.ncsc.mil +17 -11 # SELinux: eliminate unaligned accesses by policy loading code # # ChangeSet # 2005/01/04 21:41:04-08:00 sds@epoch.ncsc.mil # [PATCH] SELinux: add member node to selinuxfs # # This patch adds a member node to selinuxfs to export the security_member_sid # interface to userspace for obtaining security polyinstantiation decisions. # # Signed-off-by: Stephen Smalley # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # security/selinux/selinuxfs.c # 2005/01/04 18:48:22-08:00 sds@epoch.ncsc.mil +65 -0 # SELinux: add member node to selinuxfs # # ChangeSet # 2005/01/04 21:40:51-08:00 sds@epoch.ncsc.mil # [PATCH] SELinux: enhance SELinux control of executable mappings # # This patch adds new permission checks to the SELinux mmap and mprotect hooks # to enable control over the ability to make executable a mapping that can # contain data not covered by the existing file-based permission checks. # # The task->self execmem permission controls the ability to create an executable # anonymous mapping or a writable executable private file mapping. The # task->file execmod permission controls the ability to make executable a # previously written private file mapping, e.g. for text relocations. Thanks # to Roland McGrath for input and feedback on earlier versions of this patch. # # Signed-off-by: Stephen Smalley # Signed-off-by: James Morris # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # security/selinux/include/av_permissions.h # 2005/01/04 18:48:22-08:00 sds@epoch.ncsc.mil +2 -0 # SELinux: enhance SELinux control of executable mappings # # security/selinux/include/av_perm_to_string.h # 2005/01/04 18:48:22-08:00 sds@epoch.ncsc.mil +2 -0 # SELinux: enhance SELinux control of executable mappings # # security/selinux/hooks.c # 2005/01/04 18:48:22-08:00 sds@epoch.ncsc.mil +23 -0 # SELinux: enhance SELinux control of executable mappings # # ChangeSet # 2005/01/04 21:40:39-08:00 sds@epoch.ncsc.mil # [PATCH] SELinux: add dynamic context transition support to SELinux # # This patch for adds dynamic context transition support to SELinux via writes # to the existing /proc/pid/attr/current interface. # # Previously, SELinux only supported exec-based context transitions. This # functionality allows privileged applications to apply privilege bracketing # without necessarily being refactored to an exec-based model (although such a # model has advantages in least privilege and isolation). # # A process must have setcurrent permission to use this mechanism at all, and # the dyntransition permission must be granted between the old and new security # contexts. Multi-threaded processes are not allowed to use this operation, as # it will yield an inconsistency among the security contexts of the threads # sharing the same mm. # # Ptrace permission is revalidated against the new context if the process is # being ptraced. # # Author: Darrel Goeddel # Signed-off-by: Stephen Smalley # Signed-off-by: James Morris # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # security/selinux/ss/services.c # 2005/01/04 18:48:22-08:00 sds@epoch.ncsc.mil +3 -2 # SELinux: add dynamic context transition support to SELinux # # security/selinux/include/av_permissions.h # 2005/01/04 20:24:17-08:00 sds@epoch.ncsc.mil +2 -0 # SELinux: add dynamic context transition support to SELinux # # security/selinux/include/av_perm_to_string.h # 2005/01/04 20:24:17-08:00 sds@epoch.ncsc.mil +2 -0 # SELinux: add dynamic context transition support to SELinux # # security/selinux/hooks.c # 2005/01/04 20:24:17-08:00 sds@epoch.ncsc.mil +49 -3 # SELinux: add dynamic context transition support to SELinux # # ChangeSet # 2005/01/04 21:40:25-08:00 sds@epoch.ncsc.mil # [PATCH] SELinux: audit task comm if exe cannot be determined # # This patch ensures that the comm is included in the audit message if avc_audit # is unable to determine the exe due to the mmap_sem being held. This is # helpful in tracking down the causes of permission denials that occur in the # mmap/mprotect hooks. # # Signed-off-by: Stephen Smalley # Signed-off-by: James Morris # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # security/selinux/avc.c # 2005/01/04 18:48:22-08:00 sds@epoch.ncsc.mil +2 -0 # SELinux: audit task comm if exe cannot be determined # # ChangeSet # 2005/01/04 21:40:12-08:00 sds@epoch.ncsc.mil # [PATCH] SELinux: update selinux_task_setscheduler # # This patch updates the selinux_task_setscheduler hook function to use the # standard helper for task permission checks since it is now safe to audit from # this hook (due to the upstream change to setscheduler() to not hold the # runqueue lock during the security hook call). # # Signed-off-by: Stephen Smalley # Signed-off-by: James Morris # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # security/selinux/hooks.c # 2005/01/04 20:24:17-08:00 sds@epoch.ncsc.mil +1 -10 # SELinux: update selinux_task_setscheduler # # ChangeSet # 2005/01/04 21:39:59-08:00 sds@epoch.ncsc.mil # [PATCH] SELinux: regenerate SELinux module headers # # This patch regenerates the SELinux module headers to use a new format and # updates their use by the AVC. # # Signed-off-by: Stephen Smalley # Signed-off-by: James Morris # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # security/selinux/include/flask.h # 2005/01/04 18:48:22-08:00 sds@epoch.ncsc.mil +2 -0 # SELinux: regenerate SELinux module headers # # security/selinux/include/common_perm_to_string.h # 2005/01/04 18:48:22-08:00 sds@epoch.ncsc.mil +54 -61 # SELinux: regenerate SELinux module headers # # security/selinux/include/class_to_string.h # 2005/01/04 18:48:22-08:00 sds@epoch.ncsc.mil +54 -56 # SELinux: regenerate SELinux module headers # # security/selinux/include/av_permissions.h # 2005/01/04 20:24:17-08:00 sds@epoch.ncsc.mil +14 -3 # SELinux: regenerate SELinux module headers # # security/selinux/include/av_perm_to_string.h # 2005/01/04 20:24:17-08:00 sds@epoch.ncsc.mil +222 -225 # SELinux: regenerate SELinux module headers # # security/selinux/include/av_inherit.h # 2005/01/04 18:48:22-08:00 sds@epoch.ncsc.mil +29 -43 # SELinux: regenerate SELinux module headers # # security/selinux/avc.c # 2005/01/04 20:24:17-08:00 sds@epoch.ncsc.mil +34 -3 # SELinux: regenerate SELinux module headers # # ChangeSet # 2005/01/04 21:39:47-08:00 jmorris@redhat.com # [PATCH] SELinux scalability: AVC statistics and tuning # # This patch adds an selinuxfs based API to the AVC, to allow monitoring of # the cache, and tuning of the cache size. The latter is mediated via the # new setsecparam permission. # # AVC statistics may be monitored via the avcstat utility: # http://people.redhat.com/jmorris/selinux/perf/avcstat.c # # Signed-off-by: James Morris # Signed-off-by: Stephen Smalley # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # security/selinux/selinuxfs.c # 2005/01/04 20:24:17-08:00 jmorris@redhat.com +224 -1 # SELinux scalability: AVC statistics and tuning # # security/selinux/include/avc.h # 2005/01/04 18:48:21-08:00 jmorris@redhat.com +17 -9 # SELinux scalability: AVC statistics and tuning # # security/selinux/include/av_permissions.h # 2005/01/04 20:24:18-08:00 jmorris@redhat.com +1 -0 # SELinux scalability: AVC statistics and tuning # # security/selinux/include/av_perm_to_string.h # 2005/01/04 20:24:18-08:00 jmorris@redhat.com +1 -0 # SELinux scalability: AVC statistics and tuning # # security/selinux/avc.c # 2005/01/04 20:24:18-08:00 jmorris@redhat.com +35 -51 # SELinux scalability: AVC statistics and tuning # # security/selinux/Kconfig # 2005/01/04 18:48:21-08:00 jmorris@redhat.com +9 -0 # SELinux scalability: AVC statistics and tuning # # ChangeSet # 2005/01/04 21:39:34-08:00 jmorris@redhat.com # [PATCH] SELinux: atomic_dec_and_test() bug # # Atomic underflow debugging in this kernel exposed a bug in the AVC RCU # code, fix below. The effect of this bug would be delayed node reclamation. # # Signed-off-by: James Morris # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # security/selinux/avc.c # 2005/01/04 20:24:18-08:00 jmorris@redhat.com +1 -1 # SELinux: atomic_dec_and_test() bug # # ChangeSet # 2005/01/04 21:39:21-08:00 jmorris@redhat.com # [PATCH] SELinux scalability: convert AVC to RCU # # The following patch improves the scalability of SELinux by replacing the # global avc_lock with an RCU based scheme by Kaigai Kohei. The size of the # cache is made tunable, to allow administrators to tune systems for different # workloads, while statistics are exported via selinuxfs to allow AVC # performance to be monitored at a low level. # # AVC nodes are also allocated now via a slab cache, and AVC references have # been removed from the code. # # This code has been extensively tested and benchmarked (see benchmark results # below). Baseline performance is not improved, although it is clear that # dramatic scalability improvements are achieved. # # Baseline performance and networking scalability are areas where work is # ongoing (in particular, we need to add caching of some network security # objects so that we don't fallback to policy database lookups on each # permission call). # # Benchmark results: # # =============================================================================================== # # System: 4 node 16-way IA64 NUMA # # - 'Stream' is based on http://www.cs.virginia.edu/stream/ , HPC memory bandwidth test, # higher result is better. # - Hackbench: scheduler scalability benchmark by Rusty, lower is better. # # Standard kernel: # 2.6.9-1.648_EL SELINUX=0 : Stream 6159.987MB/s HackBench 53.144 # 2.6.9-1.648_EL SELINUX=1 : Stream 5872.529MB/s HackBench 1043.132 # # Kernel with RCU/AVC patches: # 2.6.9-1.689_avcrcu.root SELINUX=0 : Stream 8829.647MB/s HackBench 53.976 # 2.6.9-1.689_avcrcu.root SELINUX=1 : Stream 8817.117MB/s HackBench 50.975 # # =============================================================================================== # # System: 8-way PIII 900Mhz Xeon with 9GB RAM # Fileystem: ext2 for all testing. # # Notes: # AVC was reset before tests, so avc was flushed. # System was run in enforcing mode. # # Key: # std-nolsm: standard kernel with LSM disabled # std-lsmcap: standard kernel with LSM enabled, capabilities LSM # std-sel-strict: standard kernel with SELinux enabled, capabilities secondary LSM # rcu-sel-strict: as above with RCU & AVC stats patches # # security/selinux/selinuxfs.c # 2005/01/04 20:24:18-08:00 jmorris@redhat.com +1 -1 # SELinux scalability: convert AVC to RCU # # security/selinux/include/objsec.h # 2005/01/04 18:48:21-08:00 jmorris@redhat.com +0 -6 # SELinux scalability: convert AVC to RCU # # security/selinux/include/avc.h # 2005/01/04 20:24:18-08:00 jmorris@redhat.com +2 -21 # SELinux scalability: convert AVC to RCU # # security/selinux/hooks.c # 2005/01/04 20:24:18-08:00 jmorris@redhat.com +64 -98 # SELinux scalability: convert AVC to RCU # # security/selinux/avc.c # 2005/01/04 20:24:18-08:00 jmorris@redhat.com +253 -226 # SELinux scalability: convert AVC to RCU # # ChangeSet # 2005/01/04 21:39:08-08:00 jmorris@redhat.com # [PATCH] SELinux scalability: add spin_trylock_irq and spin_trylock_irqsave # # This patch from Kaigai Kohei adds irq and irqsave # trylock spinlock variants for use by the SELinux AVC RCU patch. # # Signed-off-by: Kaigai Kohei # Signed-off-by: Stephen Smalley # Signed-off-by: James Morris # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/spinlock.h # 2005/01/04 18:48:21-08:00 jmorris@redhat.com +14 -0 # SELinux scalability: add spin_trylock_irq and spin_trylock_irqsave # # ChangeSet # 2005/01/04 21:38:55-08:00 oleg@tv-sign.ru # [PATCH] uninline/kill __exit_mm() # # __exit_mm() is an inlined version of exit_mm(). This patch unifies them. # # Saves 356 byte in exit.o. # # Signed-off-by: Oleg Nesterov # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/exit.c # 2005/01/04 18:48:21-08:00 oleg@tv-sign.ru +2 -7 # uninline/kill __exit_mm() # # ChangeSet # 2005/01/04 21:38:42-08:00 roland@redhat.com # [PATCH] task_struct.exit_state usage # # I just did a quick audit of the use of exit_state and the EXIT_* bit # macros. I guess I didn't really review these changes very closely when you # did them originally. :-( # # I found several places that seem like lossy cases of query-replace without # enough thought about the code. Linus has previously said the >= tests # ought to be & tests instead. But for exit_state, it can only ever be 0, # EXIT_DEAD, or EXIT_ZOMBIE--so a nonzero test is actually the same as # testing & (EXIT_DEAD|EXIT_ZOMBIE), and maybe its code is a tiny bit better. # The case like in choose_new_parent is just confusing, to have the # always-false test for EXIT_* bits in ->state there too. # # The two cases in wants_signal and do_process_times are actual regressions # that will give us back old bugs in race conditions. These places had # s/TASK/EXIT/ but not s/state/exit_state/, and now there tests for exiting # tasks are now wrong and never catching them. I take it back: there is no # regression in wants_signal in practice I think, because of the PF_EXITING # test that makes the EXIT_* state checks superfluous anyway. So that is # just another cosmetic case of confusing code. But in do_process_times, # there is that SIGXCPU-while-exiting race condition back again. # # Signed-off-by: Roland McGrath # Acked-by: Ingo Molnar # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/timer.c # 2005/01/04 18:48:21-08:00 roland@redhat.com +1 -1 # task_struct.exit_state usage # # kernel/signal.c # 2005/01/04 18:48:21-08:00 roland@redhat.com +3 -3 # task_struct.exit_state usage # # kernel/sched.c # 2005/01/04 18:48:21-08:00 roland@redhat.com +1 -1 # task_struct.exit_state usage # # kernel/exit.c # 2005/01/04 20:24:19-08:00 roland@redhat.com +4 -4 # task_struct.exit_state usage # # ChangeSet # 2005/01/04 21:38:28-08:00 roland@redhat.com # [PATCH] move waitchld_exit from task_struct to signal_struct # # There is really no point in each task_struct having its own waitchld_exit. # In the only use of it, the waitchld_exit of each thread in a group gets # woken up at the same time. So, there might as well just be one wait queue # for the whole thread group. This patch does that by moving the field from # task_struct to signal_struct. It should have no effect on the behavior, # but saves a little work and a little storage in the multithreaded case. # # Signed-off-by: Roland McGrath # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # security/selinux/hooks.c # 2005/01/04 20:24:19-08:00 roland@redhat.com +1 -1 # move waitchld_exit from task_struct to signal_struct # # kernel/signal.c # 2005/01/04 20:24:19-08:00 roland@redhat.com +3 -19 # move waitchld_exit from task_struct to signal_struct # # kernel/fork.c # 2005/01/04 18:48:20-08:00 roland@redhat.com +1 -1 # move waitchld_exit from task_struct to signal_struct # # kernel/exit.c # 2005/01/04 20:24:19-08:00 roland@redhat.com +2 -2 # move waitchld_exit from task_struct to signal_struct # # include/linux/sched.h # 2005/01/04 18:48:20-08:00 roland@redhat.com +2 -1 # move waitchld_exit from task_struct to signal_struct # # include/linux/init_task.h # 2005/01/04 18:48:20-08:00 roland@redhat.com +1 -1 # move waitchld_exit from task_struct to signal_struct # # arch/mips/kernel/irixsig.c # 2005/01/04 18:48:20-08:00 roland@redhat.com +2 -2 # move waitchld_exit from task_struct to signal_struct # # ChangeSet # 2005/01/04 21:38:15-08:00 roland@redhat.com # [PATCH] fix ptracer death race yielding bogus BUG_ON # # There is a BUG_ON in ptrace_stop that hits if the thread is not ptraced. # However, there is no synchronization between a thread deciding to do a # ptrace stop and so going here, and its ptracer dying and so detaching from # it and clearing its ->ptrace field. # # The RHEL3 2.4-based kernel has a backport of a slightly older version of # the 2.6 signals code, which has a different but equivalent BUG_ON. This # actually bit users in practice (when the debugger dies), but was # exceedingly difficult to reproduce in contrived circumstances. We moved # forward in RHEL3 just by removing the BUG_ON, and that fixed the real user # problems even though I was never able to reproduce the scenario myself. # So, to my knowledge this scenario has never actually been seen in practice # under 2.6. But it's plain to see from the code that it is indeed possible. # # This patch removes that BUG_ON, but also goes further and tries to handle # this case more gracefully than simply avoiding the crash. By removing the # BUG_ON alone, it becomes possible for the real parent of a process to see # spurious SIGCHLD notifications intended for the debugger that has just # died, and have its child wind up stopped unexpectedly. This patch avoids # that possibility by detecting the case when we are about to do the ptrace # stop but our ptracer has gone away, and simply eliding that ptrace stop # altogether as if we hadn't been ptraced when we hit the interesting event # (signal or ptrace_notify call for syscall tracing or something like that). # # Signed-off-by: Roland McGrath # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/signal.c # 2005/01/04 20:24:19-08:00 roland@redhat.com +22 -8 # fix ptracer death race yielding bogus BUG_ON # # ChangeSet # 2005/01/04 21:38:01-08:00 roland@redhat.com # [PATCH] move group_exit flag into signal_struct.flags word # # After my last change, there are plenty of unused bits available in the new # flags word in signal_struct. This patch moves the `group_exit' flag into # one of those bits, saving a word in signal_struct. # # Signed-off-by: Roland McGrath # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/signal.c # 2005/01/04 20:24:20-08:00 roland@redhat.com +10 -5 # move group_exit flag into signal_struct.flags word # # kernel/fork.c # 2005/01/04 20:24:19-08:00 roland@redhat.com +1 -2 # move group_exit flag into signal_struct.flags word # # kernel/exit.c # 2005/01/04 20:24:19-08:00 roland@redhat.com +5 -5 # move group_exit flag into signal_struct.flags word # # include/linux/sched.h # 2005/01/04 20:24:19-08:00 roland@redhat.com +1 -1 # move group_exit flag into signal_struct.flags word # # fs/exec.c # 2005/01/04 18:48:20-08:00 roland@redhat.com +3 -4 # move group_exit flag into signal_struct.flags word # # ChangeSet # 2005/01/04 21:37:48-08:00 roland@redhat.com # [PATCH] fix stop signal race # # The `sig_avoid_stop_race' checks fail to catch a related race scenario that # can happen. I don't think this has been seen in nature, but it could # happen in the same sorts of situations where the observed problems come up # that those checks work around. This patch takes a different approach to # catching this race condition. The new approach plugs the hole, and I think # is also cleaner. # # The issue is a race between one CPU processing a stop signal while another # CPU processes a SIGCONT or SIGKILL. There is a window in stop-signal # processing where the siglock must be released. If a SIGCONT or SIGKILL # comes along here on another CPU, then the stop signal in the midst of being # processed needs to be discarded rather than having the stop take place # after the SIGCONT or SIGKILL has been generated. The existing workaround # checks for this case explicitly by looking for a pending SIGCONT or SIGKILL # after reacquiring the lock. # # However, there is another problem related to the same race issue. In the # window where the processing of the stop signal has released the siglock, # the stop signal is not represented in the pending set any more, but it is # still "pending" and not "delivered" in POSIX terms. The SIGCONT coming in # this window is required to clear all pending stop signals. But, if a stop # signal has been dequeued but not yet processed, the SIGCONT generation will # fail to clear it (in handle_stop_signal). Likewise, a SIGKILL coming here # should prevent the stop processing and make the thread die immediately # instead. The `sig_avoid_stop_race' code checks for this by examining the # pending set to see if SIGCONT or SIGKILL is in it. But this fails to # handle the case where another CPU running another thread in the same # process has already dequeued the signal (so it no longer can be found in # the pending set). We must catch this as well, so that the same problems do # not arise when another thread on another CPU acted real fast. # # I've fixed this dumping the `sig_avoid_stop_race' kludge in favor of a # little explicit bookkeeping. Now, dequeuing any stop signal sets a flag # saying that a pending stop signal has been taken on by some CPU since the # last time all pending stop signals were cleared due to SIGCONT/SIGKILL. # The processing of stop signals checks the flag after the window where it # released the lock, and abandons the signal the flag has been cleared. The # code that clears pending stop signals on SIGCONT generation also clears # this flag. The various places that are trying to ensure the process dies # quickly (SIGKILL or other unhandled signals) also clear the flag. I've # made this a general flags word in signal_struct, and replaced the # stop_state field with flag bits in this word. # # Signed-off-by: Roland McGrath # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/signal.c # 2005/01/04 20:24:20-08:00 roland@redhat.com +67 -48 # fix stop signal race # # kernel/fork.c # 2005/01/04 20:24:20-08:00 roland@redhat.com +1 -1 # fix stop signal race # # kernel/exit.c # 2005/01/04 20:24:20-08:00 roland@redhat.com +4 -3 # fix stop signal race # # include/linux/sched.h # 2005/01/04 20:24:20-08:00 roland@redhat.com +9 -2 # fix stop signal race # # ChangeSet # 2005/01/04 21:37:34-08:00 coywolf@gmail.com # [PATCH] remove redundant sys_delete_module() # # Peter Chubb recently split out a standalone sys_ni.c file for the not # implemented syscalls. This patch removes the redundant sys_delete_module() # in module.c. # # Signed-off-by: Coywolf Qi Hunt # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/module.c # 2005/01/04 18:48:20-08:00 coywolf@gmail.com +0 -7 # remove redundant sys_delete_module() # # ChangeSet # 2005/01/04 21:37:20-08:00 oleg@tv-sign.ru # [PATCH] fix conflicting cpu_idle() declarations # # cpu_idle() is referenced from generic code (init/main.c). It is # declared/defined in # # init/main.c: void cpu_idle(void) # # i386/kernel/process.c void cpu_idle(void) # i386/kernel/smpboot.c: int cpu_idle(void) # i386/mach-voyager/voyager_smp.c: int cpu_idle(void) # # ppc/kernel/idle.c: int cpu_idle(void) # ppc/kernel/smp.c: int cpu_idle(void *unused) # # ppc64/kernel/idle.c: int cpu_idle(void) # ppc64/kernel/smp.c: int cpu_idle(void *unused) # # sparc/kernel/process.c: int cpu_idle(void) # # sparc64/kernel/process.c: int cpu_idle(void) # # sh/kernel/process.c: void cpu_idle(void *unused) # sh/kernel/smp.c: int cpu_idle(void *unused) # # ia64/kernel/smpboot.c: int cpu_idle(void) # ia64/kernel/process.c: void cpu_idle(void *unused) # # sh64/kernel/process.c: void cpu_idle(void *unused) # # s390/kernel/process.c: int cpu_idle(void) # s390/kernel/smp.c: int cpu_idle(void * unused) # # m32r/kernel/process.c: void cpu_idle(void) # m32r/kernel/smpboot.c int cpu_idle(void) # # Other arches beleive that cpu_idle is void(void). # # This patch puts 'void cpu_idle(void)' in include/linux/smp.h # and fixes conflicting definitions. # # Also removes now unneeded declarations in x86_64, alpha, parisc. # # Only i386 part is tested. # # Signed-off-by: Oleg Nesterov # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # init/main.c # 2005/01/04 18:48:20-08:00 oleg@tv-sign.ru +0 -1 # fix conflicting cpu_idle() declarations # # include/linux/smp.h # 2005/01/04 18:48:20-08:00 oleg@tv-sign.ru +2 -0 # fix conflicting cpu_idle() declarations # # include/asm-x86_64/proto.h # 2005/01/04 18:48:20-08:00 oleg@tv-sign.ru +0 -1 # fix conflicting cpu_idle() declarations # # arch/sparc64/kernel/process.c # 2005/01/04 18:48:20-08:00 oleg@tv-sign.ru +4 -4 # fix conflicting cpu_idle() declarations # # arch/sparc/kernel/sun4m_smp.c # 2005/01/04 18:48:20-08:00 oleg@tv-sign.ru +0 -1 # fix conflicting cpu_idle() declarations # # arch/sparc/kernel/sun4d_smp.c # 2005/01/04 18:48:20-08:00 oleg@tv-sign.ru +0 -1 # fix conflicting cpu_idle() declarations # # arch/sparc/kernel/process.c # 2005/01/04 18:48:20-08:00 oleg@tv-sign.ru +3 -6 # fix conflicting cpu_idle() declarations # # arch/sh64/kernel/process.c # 2005/01/04 18:48:20-08:00 oleg@tv-sign.ru +1 -1 # fix conflicting cpu_idle() declarations # # arch/sh/kernel/smp.c # 2005/01/04 18:48:20-08:00 oleg@tv-sign.ru +2 -2 # fix conflicting cpu_idle() declarations # # arch/sh/kernel/process.c # 2005/01/04 18:48:20-08:00 oleg@tv-sign.ru +1 -1 # fix conflicting cpu_idle() declarations # # arch/s390/kernel/smp.c # 2005/01/04 18:48:20-08:00 oleg@tv-sign.ru +2 -2 # fix conflicting cpu_idle() declarations # # arch/s390/kernel/process.c # 2005/01/04 18:48:20-08:00 oleg@tv-sign.ru +1 -2 # fix conflicting cpu_idle() declarations # # arch/ppc64/kernel/smp.c # 2005/01/04 18:48:20-08:00 oleg@tv-sign.ru +2 -2 # fix conflicting cpu_idle() declarations # # arch/ppc64/kernel/idle.c # 2005/01/04 18:48:20-08:00 oleg@tv-sign.ru +1 -2 # fix conflicting cpu_idle() declarations # # arch/ppc/kernel/smp.c # 2005/01/04 18:48:20-08:00 oleg@tv-sign.ru +2 -2 # fix conflicting cpu_idle() declarations # # arch/ppc/kernel/idle.c # 2005/01/04 18:48:20-08:00 oleg@tv-sign.ru +1 -2 # fix conflicting cpu_idle() declarations # # arch/parisc/kernel/smp.c # 2005/01/04 18:48:20-08:00 oleg@tv-sign.ru +0 -1 # fix conflicting cpu_idle() declarations # # arch/m32r/kernel/smpboot.c # 2005/01/04 18:48:20-08:00 oleg@tv-sign.ru +2 -2 # fix conflicting cpu_idle() declarations # # arch/ia64/kernel/smpboot.c # 2005/01/04 18:48:20-08:00 oleg@tv-sign.ru +2 -3 # fix conflicting cpu_idle() declarations # # arch/ia64/kernel/process.c # 2005/01/04 18:48:20-08:00 oleg@tv-sign.ru +1 -1 # fix conflicting cpu_idle() declarations # # arch/i386/mach-voyager/voyager_smp.c # 2005/01/04 18:48:20-08:00 oleg@tv-sign.ru +2 -3 # fix conflicting cpu_idle() declarations # # arch/i386/kernel/smpboot.c # 2005/01/04 18:48:20-08:00 oleg@tv-sign.ru +2 -4 # fix conflicting cpu_idle() declarations # # arch/alpha/kernel/proto.h # 2005/01/04 18:48:20-08:00 oleg@tv-sign.ru +0 -3 # fix conflicting cpu_idle() declarations # # ChangeSet # 2005/01/04 21:37:07-08:00 james4765@verizon.net # [PATCH] lcd: fix memory leak, code cleanup # # This patch addresses the following issues: # # - Fix log-spamming and cryptic error messages, and add KERN_ constants. # # - Convert some ints to unsigned ints. # # - Add checks for CAP_SYS_ADMIN for FLASH_Burn and FLASH_Erase ioctls. # # - Identify use of global variable. # # - Fix memory leak in FLASH_Burn ioctl. # # - Fix error return codes in lcd_ioctl(). # # - Move variable "index" in lcd_ioctl() to smaller scope to reduce memory # usage. # # - Convert cli()/sti() to spin_lock_irqsave()/spin_unlock_irqrestore(). # Fix legibility issues in FLASH_Burn ioctl. # # Signed-off-by: James Nelson # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/char/lcd.h # 2005/01/04 18:48:19-08:00 james4765@verizon.net +2 -0 # lcd: fix memory leak, code cleanup # # drivers/char/lcd.c # 2005/01/04 18:48:19-08:00 james4765@verizon.net +44 -42 # lcd: fix memory leak, code cleanup # # ChangeSet # 2005/01/04 21:36:54-08:00 werner@almesberger.net # [PATCH] prio_tree: move general code from mm/ to lib/ # # Last but not least, move the general prio_tree code from mm/ to lib/. This # patch also duplicates some macros, which are used in the VMA code for # debugging purposes, so we can't properly separate them yet. # # Note that this patch conflicts with a patch in 2.6.10-rc3-mm1 # (frv-better-mmap-support-in-uclinux.patch), which removes mm/prio_tree in # systems without an MMU. Not making that other patch provide a dummy for # prio_tree_init should resolve the conflict. (That's just from reading the # patch - I haven't actually tried this.) # # Signed-off-by: Werner Almesberger # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/prio_tree.c # 2005/01/04 18:48:19-08:00 werner@almesberger.net +6 -459 # prio_tree: move general code from mm/ to lib/ # # lib/prio_tree.c # 2005/01/04 18:48:19-08:00 werner@almesberger.net +484 -0 # prio_tree: move general code from mm/ to lib/ # # lib/Makefile # 2005/01/04 18:48:19-08:00 werner@almesberger.net +1 -1 # prio_tree: move general code from mm/ to lib/ # # lib/prio_tree.c # 2005/01/04 18:48:19-08:00 werner@almesberger.net +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/lib/prio_tree.c # # ChangeSet # 2005/01/04 21:36:41-08:00 werner@almesberger.net # [PATCH] prio_tree: generalization # # Export prio_tree functions such that they can be used by other subsystems than # only VMAs. Also adds a mode to prio_tree to use it with keys explicitly # included in the prio_tree meta-data. # # The plan is to also consider converting VMAs to use explicit keys, so that the # old "raw" mode can be removed. # # Signed-off-by: Werner Almesberger # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/prio_tree.c # 2005/01/04 20:24:21-08:00 werner@almesberger.net +33 -32 # prio_tree: generalization # # include/linux/prio_tree.h # 2005/01/04 18:48:19-08:00 werner@almesberger.net +45 -2 # prio_tree: generalization # # include/linux/mm.h # 2005/01/04 20:24:16-08:00 werner@almesberger.net +1 -1 # prio_tree: generalization # # fs/inode.c # 2005/01/04 20:24:07-08:00 werner@almesberger.net +1 -1 # prio_tree: generalization # # ChangeSet # 2005/01/04 21:36:27-08:00 werner@almesberger.net # [PATCH] prio_tree: roll call to prio_tree_first into prio_tree_next # # Allow prio_tree_next to be used as the only function for tree traversal, # similar to how vma_prio_tree_next works. # # This patch isn't needed for the generalization, but since it affects the API, # it's better to include it first. # # Signed-off-by: Werner Almesberger # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/prio_tree.c # 2005/01/04 20:24:21-08:00 werner@almesberger.net +4 -1 # prio_tree: roll call to prio_tree_first into prio_tree_next # # include/linux/prio_tree.h # 2005/01/04 20:24:21-08:00 werner@almesberger.net +1 -0 # prio_tree: roll call to prio_tree_first into prio_tree_next # # ChangeSet # 2005/01/04 21:36:15-08:00 akpm@osdl.org # [PATCH] msync(): set PF_SYNCWRITE # # Pass the "we are doing synchronous writes" hint down from msync(). # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/msync.c # 2005/01/04 18:48:19-08:00 akpm@osdl.org +4 -0 # msync(): set PF_SYNCWRITE # # ChangeSet # 2005/01/04 21:36:02-08:00 nanhai.zou@intel.com # [PATCH] compat: sigtimedwait # # - Merge sys32_rt_sigtimedwait function in X86_64, IA64, PPC64, MIPS, # SPARC64, S390 32 bit layer into 1 compat_rt_sigtimedwait function. It will # also fix a bug of copy wrong information to 32 bit userspace siginfo # structure on X86_64, IA64 and SPARC64 when calling sigtimedwait on 32 bit # layer. # # - Change all name the of siginfo_t32 structure in X86_64, IA64, MIPS, # SPARC64 and S390 to the name compat_siginfo_t as used in PPC64. # # - Patch introduced a macro __COMPAT_ENDIAN_SWAP__ in # include/asm-mips/compat.h when MIPS kernel is compiled in little-endian # mode. This macro is used to do byte swapping in function # sigset_from_compat. # # - This patch is only tested on X86_64 and IA_64. # # Signed-off-by: Zou Nan hai # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/compat.c # 2005/01/04 18:48:19-08:00 nanhai.zou@intel.com +86 -0 # compat: sigtimedwait # # include/linux/compat.h # 2005/01/04 18:48:19-08:00 nanhai.zou@intel.com +3 -1 # compat: sigtimedwait # # include/asm-x86_64/ia32.h # 2005/01/04 18:48:19-08:00 nanhai.zou@intel.com +3 -5 # compat: sigtimedwait # # include/asm-sparc64/siginfo.h # 2005/01/04 18:48:19-08:00 nanhai.zou@intel.com +1 -4 # compat: sigtimedwait # # include/asm-mips/compat.h # 2005/01/04 18:48:19-08:00 nanhai.zou@intel.com +3 -0 # compat: sigtimedwait # # arch/x86_64/ia32/sys_ia32.c # 2005/01/04 18:48:19-08:00 nanhai.zou@intel.com +4 -43 # compat: sigtimedwait # # arch/x86_64/ia32/ia32entry.S # 2005/01/04 18:48:19-08:00 nanhai.zou@intel.com +1 -1 # compat: sigtimedwait # # arch/x86_64/ia32/ia32_signal.c # 2005/01/04 18:48:19-08:00 nanhai.zou@intel.com +6 -6 # compat: sigtimedwait # # arch/sparc64/kernel/systbls.S # 2005/01/04 18:48:19-08:00 nanhai.zou@intel.com +1 -1 # compat: sigtimedwait # # arch/sparc64/kernel/sys_sparc32.c # 2005/01/04 18:48:19-08:00 nanhai.zou@intel.com +4 -89 # compat: sigtimedwait # # arch/sparc64/kernel/signal32.c # 2005/01/04 18:48:19-08:00 nanhai.zou@intel.com +7 -7 # compat: sigtimedwait # # arch/s390/kernel/syscalls.S # 2005/01/04 18:48:19-08:00 nanhai.zou@intel.com +1 -1 # compat: sigtimedwait # # arch/s390/kernel/ptrace.c # 2005/01/04 18:48:19-08:00 nanhai.zou@intel.com +2 -2 # compat: sigtimedwait # # arch/s390/kernel/compat_wrapper.S # 2005/01/04 18:48:19-08:00 nanhai.zou@intel.com +3 -3 # compat: sigtimedwait # # arch/s390/kernel/compat_signal.c # 2005/01/04 18:48:19-08:00 nanhai.zou@intel.com +5 -5 # compat: sigtimedwait # # arch/s390/kernel/compat_linux.h # 2005/01/04 18:48:19-08:00 nanhai.zou@intel.com +2 -5 # compat: sigtimedwait # # arch/s390/kernel/compat_linux.c # 2005/01/04 18:48:19-08:00 nanhai.zou@intel.com +1 -85 # compat: sigtimedwait # # arch/ppc64/kernel/signal32.c # 2005/01/04 18:48:19-08:00 nanhai.zou@intel.com +3 -33 # compat: sigtimedwait # # arch/ppc64/kernel/misc.S # 2005/01/04 18:48:19-08:00 nanhai.zou@intel.com +1 -1 # compat: sigtimedwait # # arch/mips/kernel/signal32.c # 2005/01/04 18:48:19-08:00 nanhai.zou@intel.com +7 -98 # compat: sigtimedwait # # arch/mips/kernel/scall64-o32.S # 2005/01/04 18:48:19-08:00 nanhai.zou@intel.com +1 -1 # compat: sigtimedwait # # arch/mips/kernel/scall64-n32.S # 2005/01/04 18:48:19-08:00 nanhai.zou@intel.com +1 -1 # compat: sigtimedwait # # arch/ia64/ia32/sys_ia32.c # 2005/01/04 18:48:19-08:00 nanhai.zou@intel.com +1 -1 # compat: sigtimedwait # # arch/ia64/ia32/ia32priv.h # 2005/01/04 18:48:19-08:00 nanhai.zou@intel.com +2 -6 # compat: sigtimedwait # # arch/ia64/ia32/ia32_signal.c # 2005/01/04 18:48:19-08:00 nanhai.zou@intel.com +6 -33 # compat: sigtimedwait # # arch/ia64/ia32/ia32_entry.S # 2005/01/04 18:48:19-08:00 nanhai.zou@intel.com +1 -1 # compat: sigtimedwait # # ChangeSet # 2005/01/04 21:35:46-08:00 hch@lst.de # [PATCH] remove dead ext3_put_inode prototype # # ext3_put_inode has been removed a while ago. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/ext3_fs.h # 2005/01/04 18:48:18-08:00 hch@lst.de +0 -1 # remove dead ext3_put_inode prototype # # ChangeSet # 2005/01/04 21:35:33-08:00 hch@lst.de # [PATCH] udf: fix reservation discarding # # UDF discards file preallocations on every ->put_inode which is totally # bogus. It already discards them in ->release which makes sense for normal # writes, so the only additional discard is in ->clear_inode so we make sure # we don't leak any reservations for shared writeable mappings. # # This follows similar changes to ext2 and ext3. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/udf/udfdecl.h # 2005/01/04 18:48:18-08:00 hch@lst.de +0 -1 # udf: fix reservation discarding # # fs/udf/super.c # 2005/01/04 18:48:18-08:00 hch@lst.de +0 -1 # udf: fix reservation discarding # # fs/udf/inode.c # 2005/01/04 18:48:18-08:00 hch@lst.de +6 -24 # udf: fix reservation discarding # # ChangeSet # 2005/01/04 21:35:19-08:00 hch@lst.de # [PATCH] udf: simplify udf_iget, fix race # # udf_iget calls __udf_read_inode after the inode has been unlocked and other # threads could access it. Switching to iget_locked() fixes this race and # nicely simplifies the code. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/udf/super.c # 2005/01/04 20:24:23-08:00 hch@lst.de +0 -1 # udf: simplify udf_iget, fix race # # fs/udf/inode.c # 2005/01/04 20:24:23-08:00 hch@lst.de +15 -69 # udf: simplify udf_iget, fix race # # ChangeSet # 2005/01/04 21:35:06-08:00 zwane@arm.linux.org.uk # [PATCH] Remove RCU abuse in cpu_idle() # # Introduce cpu_idle_wait() on architectures requiring modification of # pm_idle from modules, this will ensure that all processors have updated # their cached values of pm_idle upon exit. This patch is to address the bug # report at http://bugme.osdl.org/show_bug.cgi?id=1716 and replaces the # current code fix which is in violation of normal RCU usage as pointed out # by Stephen, Dipankar and Paul. # # Signed-off-by: Zwane Mwaikambo # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-x86_64/system.h # 2005/01/04 18:48:18-08:00 zwane@arm.linux.org.uk +2 -0 # Remove RCU abuse in cpu_idle() # # include/asm-ia64/system.h # 2005/01/04 18:48:18-08:00 zwane@arm.linux.org.uk +1 -0 # Remove RCU abuse in cpu_idle() # # include/asm-i386/system.h # 2005/01/04 18:48:18-08:00 zwane@arm.linux.org.uk +1 -0 # Remove RCU abuse in cpu_idle() # # drivers/acpi/processor_idle.c # 2005/01/04 18:48:18-08:00 zwane@arm.linux.org.uk +1 -1 # Remove RCU abuse in cpu_idle() # # arch/x86_64/kernel/process.c # 2005/01/04 18:48:18-08:00 zwane@arm.linux.org.uk +24 -7 # Remove RCU abuse in cpu_idle() # # arch/ia64/kernel/process.c # 2005/01/04 20:24:21-08:00 zwane@arm.linux.org.uk +24 -7 # Remove RCU abuse in cpu_idle() # # arch/i386/kernel/process.c # 2005/01/04 18:48:18-08:00 zwane@arm.linux.org.uk +25 -9 # Remove RCU abuse in cpu_idle() # # arch/i386/kernel/apm.c # 2005/01/04 18:48:18-08:00 zwane@arm.linux.org.uk +1 -1 # Remove RCU abuse in cpu_idle() # # ChangeSet # 2005/01/04 21:34:52-08:00 mason@suse.com # [PATCH] __getblk_slow can loop forever when pages are partially mapped # # When a block device is accessed via read/write, it is possible for some of # the buffers on a page to be mapped and others not. __getblk and friends # assume this can't happen, and can end up looping forever when pages have # some unmapped buffers. Picture: # # lseek(/dev/xxx, 2048, SEEK_SET) # write(/dev/xxx, 2048 bytes) # # Assuming the block size is 1k, page 0 has 4 buffers, two are mapped by # __block_prepare_write and two are not. Next, another process triggers # getblk(/dev/xxx, blocknr = 0); # # __getblk_slow will loop forever. __find_get_block fails because the buffer # isn't mapped. grow_dev_page does nothing because there are buffers on the # page with the correct size. madhav@veritas.com and others at Veritas # tracked this down. # # The fix below has two parts. First, it changes __find_get_block to avoid # the buffer_error warnings when it finds unmapped buffers on the page. # # Second, it changes grow_dev_page to map the buffers on the page by calling # init_page_buffers. init_page_buffers is changed so we don't stomp on # uptodate bits for the buffers. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/buffer.c # 2005/01/04 18:48:18-08:00 mason@suse.com +23 -13 # __getblk_slow can loop forever when pages are partially mapped # # ChangeSet # 2005/01/04 21:34:39-08:00 kaneshige.kenji@jp.fujitsu.com # [PATCH] IRQ resource deallocation: ia64 # # This is an ia64 portion of IRQ resource deallocation. It implements # pcibios_disable_device() and acpi_unregister_gsi() for ia64. # # o acpi_unregister_gsi() # # Summary of changes for implementing this interface: # # - Add new function iosapic_unregister_intr() into # arch/ia64/kernel/iosapic.c. This function frees an interrupt # vector and related data structures. # # - Add new function free_irq_vector() into # arch/ia64/kernel/irq_ia64.c. This frees an unused vector. # # - Change assign_irq_vector() to be able to support # free_irq_vector(). # # o pcibios_disable_device() # # This calls acpi_pci_irq_disable() to deallocate IRQ resources. # # Signed-off-by: Kenji Kaneshige # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ia64/iosapic.h # 2005/01/04 18:48:18-08:00 kaneshige.kenji@jp.fujitsu.com +4 -0 # IRQ resource deallocation: ia64 # # include/asm-ia64/hw_irq.h # 2005/01/04 18:48:18-08:00 kaneshige.kenji@jp.fujitsu.com +2 -0 # IRQ resource deallocation: ia64 # # arch/ia64/pci/pci.c # 2005/01/04 18:48:18-08:00 kaneshige.kenji@jp.fujitsu.com +8 -0 # IRQ resource deallocation: ia64 # # arch/ia64/kernel/irq_ia64.c # 2005/01/04 18:48:18-08:00 kaneshige.kenji@jp.fujitsu.com +23 -4 # IRQ resource deallocation: ia64 # # arch/ia64/kernel/irq.c # 2005/01/04 18:48:18-08:00 kaneshige.kenji@jp.fujitsu.com +3 -0 # IRQ resource deallocation: ia64 # # arch/ia64/kernel/iosapic.c # 2005/01/04 18:48:18-08:00 kaneshige.kenji@jp.fujitsu.com +87 -9 # IRQ resource deallocation: ia64 # # arch/ia64/kernel/acpi.c # 2005/01/04 18:48:18-08:00 kaneshige.kenji@jp.fujitsu.com +9 -0 # IRQ resource deallocation: ia64 # # arch/ia64/Kconfig # 2005/01/04 18:48:18-08:00 kaneshige.kenji@jp.fujitsu.com +5 -0 # IRQ resource deallocation: ia64 # # ChangeSet # 2005/01/04 21:34:25-08:00 kaneshige.kenji@jp.fujitsu.com # [PATCH] IRQ resource deallocation: ACPI # # Architecture dependent IRQ resources such as interrupt vector for PCI # devices are allocated at pci_enable_device() time on i386, x86-64 and # ia64 platform. Today, however, these IRQ resources are never # deallocated even if they are no longer used. The following set of # patches adds supports to deallocate IRQ resources at # pci_disable_device() time. # # The motivation of the set of patches is as follows: # # - IRQ resources such as interrupt vectors should be freed if they # are no longer used because the amount of these resources are # limited. By deallocating IRQ resources, we can recycle them. # # - I think some hardwares will support hot-pluggable I/O units with # I/O xAPICs in the near future. So I/O xAPIC hot-plug support by # OS will be needed soon. IRQ resouces deallocation will be one of # the most important stuff for I/O xAPIC hot-plug. # # For now, the following set of patches has ia64 implementation only. # i386 and x86_64 implementations are TBD. # # # # # This patch is ACPI portion of IRQ deallocation. This patch defines the # following new interface. The implementation of this interface depends # on each platform. # # o void acpi_unregister_gsi(u32 gsi) # # This is a opposite portion of acpi_register_gsi(). This has a # responsibility for deallocating IRQ resources associated with # the specified GSI number. # # We need to consider the case of shared interrupt. In the case # of shared interrupt, acpi_register_gsi() is called multiple # times for one gsi. That is, registrations and unregistrations # can be nested. # # This function undoes the effect of one call to # acpi_register_gsi(). If this matches the last registration, # IRQ resources associated with the specified GSI number are # freed. # # This patch also adds the following new function. # # o void acpi_pci_irq_disable (struct pci_dev *dev) # # This function is a opposite portion of # acpi_pci_enable_irq(). It clears the device's linux IRQ number # and calls acpi_unregister_gsi() to deallocate IRQ resources. # # Signed-off-by: Kenji Kaneshige # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/acpi.h # 2005/01/04 18:48:17-08:00 kaneshige.kenji@jp.fujitsu.com +13 -0 # IRQ resource deallocation: ACPI # # drivers/acpi/pci_irq.c # 2005/01/04 18:48:17-08:00 kaneshige.kenji@jp.fujitsu.com +52 -0 # IRQ resource deallocation: ACPI # # ChangeSet # 2005/01/04 21:34:13-08:00 manfred@colorfullife.com # [PATCH] fix missing wakeup in ipc/sem # # My patch that removed the spin_lock calls from the tail of sys_semtimedop # introduced a bug: # # Before my patch was merged, every operation that altered an array called # update_queue. That call woke up threads that were waiting until a # semaphore value becomes 0. I've accidentially removed that call. # # The attached patch fixes that by modifying update_queue: the function now # loops internally and wakes up all threads. The patch also removes # update_queue calls from the error path of sys_semtimedop: failed operations # do not modify the array, no need to rescan the list of waiting threads. # # Signed-Off-By: Manfred Spraul # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # ipc/sem.c # 2005/01/04 18:48:17-08:00 manfred@colorfullife.com +21 -6 # fix missing wakeup in ipc/sem # # include/linux/sem.h # 2005/01/04 18:48:17-08:00 manfred@colorfullife.com +1 -0 # fix missing wakeup in ipc/sem # # ChangeSet # 2005/01/04 21:34:00-08:00 agruen@suse.de # [PATCH] Ext[23]: apply umask to symlinks with ACLs configured out # # Keith Young has reported that when ACLs are not # compiled in, the default implementation of ext[23]_init_acl applies the # umask to all new files, including symlinks, which is wrong. In this case # the VFS already takes care of applying the umask when needed, so ext2 and # ext3 need not bother about it. Remove the superfluous statements. # # Signed-off-by: Andreas Gruenbacher # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/ext3/acl.h # 2005/01/04 18:48:17-08:00 agruen@suse.de +0 -1 # Ext[23]: apply umask to symlinks with ACLs configured out # # fs/ext2/acl.h # 2005/01/04 18:48:17-08:00 agruen@suse.de +0 -1 # Ext[23]: apply umask to symlinks with ACLs configured out # # ChangeSet # 2005/01/04 21:33:47-08:00 akpm@osdl.org # [PATCH] get_blkdev_list() cleanup # # - Move prototype to genhd.h # # - It is only needed for /proc # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/genhd.h # 2005/01/04 18:48:17-08:00 akpm@osdl.org +1 -0 # get_blkdev_list() cleanup # # fs/proc/proc_misc.c # 2005/01/04 18:48:17-08:00 akpm@osdl.org +0 -1 # get_blkdev_list() cleanup # # drivers/block/genhd.c # 2005/01/04 18:48:17-08:00 akpm@osdl.org +2 -0 # get_blkdev_list() cleanup # # ChangeSet # 2005/01/04 21:33:34-08:00 sfr@canb.auug.org.au # [PATCH] noone uses HAVE_ARCH_SI_CODES or HAVE_ARCH_SIGEVENT_T # # Since asm-generic/siginfo.h was created, the architectures have been slowly # fixed/modified until noone uses HAVE_ARCH_SI_CODES or HAVE_ARCH_SIGEVENT_T # any more, so this patch removes the checks for them. # # Signed-off-by: Stephen Rothwell # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-generic/siginfo.h # 2005/01/04 18:48:17-08:00 sfr@canb.auug.org.au +0 -7 # noone uses HAVE_ARCH_SI_CODES or HAVE_ARCH_SIGEVENT_T # # ChangeSet # 2005/01/04 21:33:21-08:00 franz_pletz@t-online.de # [PATCH] loop device resursion avoidance # # With Andries Brouwer # # Fix various recursion scenarios wherein it was possible to mount a loop # device on itself, either directly or via intermediate loops devices. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/block/loop.c # 2005/01/04 18:48:17-08:00 franz_pletz@t-online.de +28 -5 # loop device resursion avoidance # # ChangeSet # 2005/01/04 21:33:09-08:00 penberg@cs.helsinki.fi # [PATCH] noop iosched: remove unused includes # # This patch removes unused includes from drivers/block/noop-iosched.c. # # Signed-off-by: Pekka Enberg # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/block/noop-iosched.c # 2005/01/04 18:48:17-08:00 penberg@cs.helsinki.fi +0 -7 # noop iosched: remove unused includes # # ChangeSet # 2005/01/04 21:32:56-08:00 penberg@cs.helsinki.fi # [PATCH] noop iosched: make code static # # This patch makes code static in drivers/block/noop-iosched.c and adds # __init and __exit for module initialization and cleanup functions. # # Signed-off-by: Pekka Enberg # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/block/noop-iosched.c # 2005/01/04 20:24:25-08:00 penberg@cs.helsinki.fi +9 -9 # noop iosched: make code static # # ChangeSet # 2005/01/04 21:32:43-08:00 rddunlap@osdl.org # [PATCH] cpumask: range check before using value # # When setting the 'cpu_isolated_map' mask, check that the user input value # is valid (in range 0 .. NR_CPUS - 1). Also fix up kernel-parameters.txt # for this parameter. # # Signed-off-by: Randy Dunlap # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/sched.c # 2005/01/04 20:24:19-08:00 rddunlap@osdl.org +3 -1 # cpumask: range check before using value # # Documentation/kernel-parameters.txt # 2005/01/04 18:48:16-08:00 rddunlap@osdl.org +3 -1 # cpumask: range check before using value # # ChangeSet # 2005/01/04 21:32:30-08:00 zwane@holomorphy.com # [PATCH] fix alt-sysrq deadlock # # __handle_sysrq was modified to do a spin_lock_irqsave so we were entering # smp_send_stop with interrupts. So reenable interrupts to prevent the # possible smp_call_function() deadlock. # # (It's still deadlocky if the sysrq handler is against called via an # interrupt from a different device, but that seems unlikely). # # Signed-off-by: Zwane Mwaikambo # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/char/sysrq.c # 2005/01/04 18:48:16-08:00 zwane@holomorphy.com +1 -0 # fix alt-sysrq deadlock # # ChangeSet # 2005/01/04 21:32:17-08:00 pmeda@akamai.com # [PATCH] Add PR_GET_NAME # # A while back we added the PR_SET_NAME prctl, but no PR_GET_NAME. I guess # we should add this, if only to enable testing of PR_SET_NAME. # # Signed-off-by: Prasanna Meda # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/sys.c # 2005/01/04 18:48:16-08:00 pmeda@akamai.com +9 -0 # Add PR_GET_NAME # # include/linux/prctl.h # 2005/01/04 18:48:16-08:00 pmeda@akamai.com +1 -0 # Add PR_GET_NAME # # ChangeSet # 2005/01/04 21:32:05-08:00 rddunlap@osdl.org # [PATCH] panic_timeout: move to kernel.h # # Move 'panic_timeout' to linux/kernel.h. # # ipmi_watchdog.c wanted to know why panic_timeout isn't in some header file. # However, ipmi_watchdog.c doesn't even use it, so that reference was # deleted. Other references now use kernel.h instead of straight extern int. # # Signed-off-by: Randy Dunlap # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/sysctl.c # 2005/01/04 18:48:16-08:00 rddunlap@osdl.org +0 -1 # panic_timeout: move to kernel.h # # include/linux/kernel.h # 2005/01/04 18:48:16-08:00 rddunlap@osdl.org +1 -0 # panic_timeout: move to kernel.h # # drivers/char/ipmi/ipmi_watchdog.c # 2005/01/04 18:48:16-08:00 rddunlap@osdl.org +0 -2 # panic_timeout: move to kernel.h # # arch/v850/kernel/sim85e2.c # 2005/01/04 18:48:16-08:00 rddunlap@osdl.org +0 -2 # panic_timeout: move to kernel.h # # arch/v850/kernel/fpga85e2c.c # 2005/01/04 18:48:16-08:00 rddunlap@osdl.org +0 -1 # panic_timeout: move to kernel.h # # arch/ppc64/kernel/setup.c # 2005/01/04 18:48:16-08:00 rddunlap@osdl.org +1 -1 # panic_timeout: move to kernel.h # # arch/ppc64/kernel/iSeries_pci.c # 2005/01/04 18:48:16-08:00 rddunlap@osdl.org +0 -2 # panic_timeout: move to kernel.h # # arch/ppc/kernel/setup.c # 2005/01/04 18:48:16-08:00 rddunlap@osdl.org +1 -1 # panic_timeout: move to kernel.h # # arch/mips/sibyte/swarm/setup.c # 2005/01/04 18:48:16-08:00 rddunlap@osdl.org +1 -2 # panic_timeout: move to kernel.h # # arch/mips/jmr3927/rbhma3100/setup.c # 2005/01/04 18:48:16-08:00 rddunlap@osdl.org +0 -1 # panic_timeout: move to kernel.h # # arch/mips/ddb5xxx/ddb5477/setup.c # 2005/01/04 18:48:16-08:00 rddunlap@osdl.org +0 -2 # panic_timeout: move to kernel.h # # arch/mips/ddb5xxx/ddb5476/setup.c # 2005/01/04 18:48:16-08:00 rddunlap@osdl.org +0 -2 # panic_timeout: move to kernel.h # # arch/mips/ddb5xxx/ddb5074/setup.c # 2005/01/04 18:48:16-08:00 rddunlap@osdl.org +0 -2 # panic_timeout: move to kernel.h # # ChangeSet # 2005/01/04 21:31:50-08:00 Matt_Domsch@dell.com # [PATCH] EDD: add edd=off and edd=skipmbr options # # EDD: add edd=off and edd=skipmbr command line options # # New command line options # edd=off (or edd=of) # edd=skipmbr (or edd=sk) # # runtime options for disabling all EDD int13 calls completely, or for # skipping the int13 READ SECTOR calls, respectively. # # These are provided to allow Linux distributions to include CONFIG_EDD=m, yet # allow end-users to disable parts of EDD which may not work well with their # system's BIOS. # # I incorporated comments from Randy Dunlap, and got an ack from Andi Kleen. # # Signed-off-by: Matt Domsch # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/edd.h # 2005/01/04 18:48:16-08:00 Matt_Domsch@dell.com +4 -0 # EDD: add edd=off and edd=skipmbr options # # arch/i386/boot/edd.S # 2005/01/04 18:48:16-08:00 Matt_Domsch@dell.com +40 -2 # EDD: add edd=off and edd=skipmbr options # # Documentation/kernel-parameters.txt # 2005/01/04 20:24:26-08:00 Matt_Domsch@dell.com +5 -0 # EDD: add edd=off and edd=skipmbr options # # ChangeSet # 2005/01/04 21:31:38-08:00 jamagallon@able.es # [PATCH] make gconfig work with gtk-2.4 # # I need this to make gconfig work under gtk-2.4. Without this, it just # coredumps. There is some problem with pixmap creation/usage from XPM in # the way it is done in gconf, so I just added some stock icons. It is even # prettier..;) # # Could someone test this still works on gtk-2.0 or 2.2 ? # # Changes: # # - change the wiget class 'button' in glade files to something known to # glade (GtkToolButton) # - use 'stock-id' property for toolbar buttons instead of "stock_pixmap" # - change unknown signal "pressed" to "clicked" # - remove manual setting of icons in gconf.c # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # scripts/kconfig/gconf.glade # 2005/01/04 18:48:16-08:00 jamagallon@able.es +21 -19 # make gconfig work with gtk-2.4 # # scripts/kconfig/gconf.c # 2005/01/04 18:48:16-08:00 jamagallon@able.es +0 -32 # make gconfig work with gtk-2.4 # # ChangeSet # 2005/01/04 21:31:25-08:00 rusty@rustcorp.com.au # [PATCH] sys_sched_setaffinity() on UP should fail for non-zero CPUs. # # Return EINVAL for invalid sched_setaffinity on UP. I was a little # surprised that sys_sched_setaffinity for CPU 1 didn't fail on my UP box. # With CONFIG_SMP it would have. # # Signed-off-by: Rusty Russell # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/sched.h # 2005/01/04 20:24:20-08:00 rusty@rustcorp.com.au +3 -0 # sys_sched_setaffinity() on UP should fail for non-zero CPUs. # # ChangeSet # 2005/01/04 21:31:12-08:00 tvrtko.ursulin@sophos.com # [PATCH] smb_file_open() retval fix # # Correctly propagate the return value from smb_open(). # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/smbfs/file.c # 2005/01/04 18:48:15-08:00 tvrtko.ursulin@sophos.com +1 -1 # smb_file_open() retval fix # # ChangeSet # 2005/01/04 21:31:02-08:00 manfred@colorfullife.com # [PATCH] rcu: simplify quiescent state detection # # Based on an initial patch from Oleg Nesterov # # rcu_data.last_qsctr is not needed. Actually, not even a counter is needed, # just a flag that indicates that there was a quiescent state. # # Signed-Off-By: Manfred Spraul # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/rcupdate.c # 2005/01/04 18:48:15-08:00 manfred@colorfullife.com +5 -6 # rcu: simplify quiescent state detection # # include/linux/rcupdate.h # 2005/01/04 18:48:15-08:00 manfred@colorfullife.com +7 -6 # rcu: simplify quiescent state detection # # ChangeSet # 2005/01/04 21:30:48-08:00 manfred@colorfullife.com # [PATCH] rcu: make two internal structs static # # The patch below makes two needlessly global structs static. # # Signed-off-by: Adrian Bunk # Signed-off-by: Manfred Spraul # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/rcupdate.c # 2005/01/04 20:24:27-08:00 manfred@colorfullife.com +2 -2 # rcu: make two internal structs static # # ChangeSet # 2005/01/04 21:30:36-08:00 oleg@tv-sign.ru # [PATCH] rcu: eliminate rcu_ctrlblk.lock # # rcu_ctrlblk.lock is used to read the ->cur and ->next_pending # atomically in __rcu_process_callbacks(). It can be replaced # by a couple of memory barriers. # # rcu_start_batch: # rcp->next_pending = 0; # smp_wmb(); # rcp->cur++; # # __rcu_process_callbacks: # rdp->batch = rcp->cur + 1; # smp_rmb(); # if (!rcp->next_pending) # rcu_start_batch(rcp, rsp, 1); # # This way, if __rcu_process_callbacks() sees incremented ->cur value, # it must also see that ->next_pending == 0 (or rcu_start_batch() is # already in progress on another cpu). # # Signed-off-by: Oleg Nesterov # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/rcupdate.c # 2005/01/04 20:24:27-08:00 oleg@tv-sign.ru +15 -13 # rcu: eliminate rcu_ctrlblk.lock # # include/linux/rcupdate.h # 2005/01/04 20:24:27-08:00 oleg@tv-sign.ru +0 -1 # rcu: eliminate rcu_ctrlblk.lock # # ChangeSet # 2005/01/04 21:30:23-08:00 bunk@stusta.de # [PATCH] remove ip2 programs # # drivers/char/ip2/ contained three programs. Besides shipping programs at # this place doesn't sound like a good idea, they didn't even all compile. # # The patch below removes them. # # Signed-off-by: Adrian Bunk # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # BitKeeper/deleted/.del-ip2trace.c~6156ba3af01310d9 # 2005/01/04 21:30:15-08:00 bunk@stusta.de +0 -0 # Delete: drivers/char/ip2/ip2trace.c # # BitKeeper/deleted/.del-ip2stat.c~11d3f1fb72bca2c # 2005/01/04 21:30:15-08:00 bunk@stusta.de +0 -0 # Delete: drivers/char/ip2/ip2stat.c # # BitKeeper/deleted/.del-ip2mkdev.c~6ae07a714e53a9bf # 2005/01/04 21:30:15-08:00 bunk@stusta.de +0 -0 # Delete: drivers/char/ip2/ip2mkdev.c # # BitKeeper/deleted/.del-Makefile~f7a579dfc5bdb816 # 2005/01/04 21:30:15-08:00 bunk@stusta.de +0 -0 # Delete: drivers/char/ip2/Makefile # # ChangeSet # 2005/01/04 21:30:08-08:00 ak@suse.de # [PATCH] Sync in core time granuality with filesystems # # This patch corrects a problem that was originally added with the nanosecond # timestamps in stat patch. The problem is that some file systems don't have # enough space in their on disk inode to save nanosecond timestamps, so they # truncate the c/a/mtime to seconds when flushing an dirty node. In core the # inode would have full jiffies granuality. # # This can be observed by programs as a timestamp that jumps backwards under # specific loads when an inode is flushed and then reloaded from disk. # # The problem was already known when the original patch went in, but it # wasn't deemed important enough at that time. So far there has been only # one report of it causing problems. Now Tridge is worried that it will # break running Excel over samba4 because Excel seems to do very anal # timestamp checking and samba4 will supply 100ns timestamps over the # network. # # This patch solves it by putting the time resolution into the superblock of # a fs and always rounding the in core timestamps to that granuality. # # This also supercedes some previous ext2/3 hacks to flush the inode less # often when only the subsecond timestamp changes. # # I tried to keep the overhead low, in particular it tries to keep divisions # out of fast paths as far as possible. # # The patch is quite big but 99% of it is just relatively straight forward # search'n'replace in a lot of fs. Unconverted filesystems will default to a # 1ns granuality, but may still show the problem if they continue to use # CURRENT_TIME. I converted all in tree fs. # # One possible future extension of this would be to have two time # granualities per superblock - one that specifies the visible resolution, # and the other to specify how often timestamps should be flushed to disk, # which could be tuned with a mount option per fs (e.g. often m/atimes don't # need to be flushed every second). Would be easy to do as an addon if # someone is interested. # # Signed-off-by: Andi Kleen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # net/sunrpc/rpc_pipe.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -0 # Sync in core time granuality with filesystems # # kernel/time.c # 2005/01/04 18:48:14-08:00 ak@suse.de +46 -1 # Sync in core time granuality with filesystems # # include/linux/time.h # 2005/01/04 18:48:14-08:00 ak@suse.de +3 -0 # Sync in core time granuality with filesystems # # include/linux/fs.h # 2005/01/04 20:24:07-08:00 ak@suse.de +6 -2 # Sync in core time granuality with filesystems # # fs/xfs/linux-2.6/xfs_super.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -0 # Sync in core time granuality with filesystems # # fs/vfat/namei.c # 2005/01/04 18:48:14-08:00 ak@suse.de +10 -9 # Sync in core time granuality with filesystems # # fs/umsdos/emd.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -1 # Sync in core time granuality with filesystems # # fs/ufs/truncate.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -1 # Sync in core time granuality with filesystems # # fs/ufs/namei.c # 2005/01/04 18:48:14-08:00 ak@suse.de +2 -2 # Sync in core time granuality with filesystems # # fs/ufs/inode.c # 2005/01/04 18:48:14-08:00 ak@suse.de +2 -2 # Sync in core time granuality with filesystems # # fs/ufs/ialloc.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -1 # Sync in core time granuality with filesystems # # fs/ufs/dir.c # 2005/01/04 18:48:14-08:00 ak@suse.de +2 -2 # Sync in core time granuality with filesystems # # fs/udf/super.c # 2005/01/04 20:24:23-08:00 ak@suse.de +1 -0 # Sync in core time granuality with filesystems # # fs/udf/namei.c # 2005/01/04 18:48:14-08:00 ak@suse.de +6 -6 # Sync in core time granuality with filesystems # # fs/udf/inode.c # 2005/01/04 20:24:23-08:00 ak@suse.de +2 -2 # Sync in core time granuality with filesystems # # fs/udf/ialloc.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -1 # Sync in core time granuality with filesystems # # fs/sysv/namei.c # 2005/01/04 18:48:14-08:00 ak@suse.de +2 -2 # Sync in core time granuality with filesystems # # fs/sysv/itree.c # 2005/01/04 18:48:14-08:00 ak@suse.de +2 -2 # Sync in core time granuality with filesystems # # fs/sysv/ialloc.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -1 # Sync in core time granuality with filesystems # # fs/sysv/dir.c # 2005/01/04 18:48:14-08:00 ak@suse.de +3 -3 # Sync in core time granuality with filesystems # # fs/sysfs/mount.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -0 # Sync in core time granuality with filesystems # # fs/super.c # 2005/01/04 20:24:07-08:00 ak@suse.de +1 -0 # Sync in core time granuality with filesystems # # fs/smbfs/proto.h # 2005/01/04 18:48:14-08:00 ak@suse.de +2 -1 # Sync in core time granuality with filesystems # # fs/smbfs/proc.c # 2005/01/04 18:48:14-08:00 ak@suse.de +3 -2 # Sync in core time granuality with filesystems # # fs/smbfs/inode.c # 2005/01/04 18:48:14-08:00 ak@suse.de +2 -1 # Sync in core time granuality with filesystems # # fs/smbfs/file.c # 2005/01/04 20:24:27-08:00 ak@suse.de +3 -2 # Sync in core time granuality with filesystems # # fs/reiserfs/xattr.c # 2005/01/04 18:48:14-08:00 ak@suse.de +3 -3 # Sync in core time granuality with filesystems # # fs/reiserfs/stree.c # 2005/01/04 18:48:14-08:00 ak@suse.de +2 -2 # Sync in core time granuality with filesystems # # fs/reiserfs/namei.c # 2005/01/04 18:48:14-08:00 ak@suse.de +6 -6 # Sync in core time granuality with filesystems # # fs/reiserfs/ioctl.c # 2005/01/04 18:48:14-08:00 ak@suse.de +2 -2 # Sync in core time granuality with filesystems # # fs/reiserfs/inode.c # 2005/01/04 18:48:14-08:00 ak@suse.de +2 -1 # Sync in core time granuality with filesystems # # fs/ramfs/inode.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -0 # Sync in core time granuality with filesystems # # fs/qnx4/truncate.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -1 # Sync in core time granuality with filesystems # # fs/qnx4/namei.c # 2005/01/04 18:48:14-08:00 ak@suse.de +2 -2 # Sync in core time granuality with filesystems # # fs/qnx4/inode.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -1 # Sync in core time granuality with filesystems # # fs/proc/inode.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -0 # Sync in core time granuality with filesystems # # fs/openpromfs/inode.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -0 # Sync in core time granuality with filesystems # # fs/ntfs/super.c # 2005/01/04 18:48:14-08:00 ak@suse.de +2 -0 # Sync in core time granuality with filesystems # # fs/ntfs/mft.c # 2005/01/04 18:48:14-08:00 ak@suse.de +2 -1 # Sync in core time granuality with filesystems # # fs/nfs/inode.c # 2005/01/04 18:48:14-08:00 ak@suse.de +3 -0 # Sync in core time granuality with filesystems # # fs/msdos/namei.c # 2005/01/04 18:48:14-08:00 ak@suse.de +8 -8 # Sync in core time granuality with filesystems # # fs/minix/namei.c # 2005/01/04 18:48:14-08:00 ak@suse.de +2 -2 # Sync in core time granuality with filesystems # # fs/minix/itree_common.c # 2005/01/04 18:48:14-08:00 ak@suse.de +2 -2 # Sync in core time granuality with filesystems # # fs/minix/dir.c # 2005/01/04 18:48:14-08:00 ak@suse.de +3 -3 # Sync in core time granuality with filesystems # # fs/minix/bitmap.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -1 # Sync in core time granuality with filesystems # # fs/locks.c # 2005/01/04 20:24:11-08:00 ak@suse.de +1 -1 # Sync in core time granuality with filesystems # # fs/libfs.c # 2005/01/04 18:48:14-08:00 ak@suse.de +2 -0 # Sync in core time granuality with filesystems # # fs/jfs/super.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -1 # Sync in core time granuality with filesystems # # fs/jfs/namei.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -1 # Sync in core time granuality with filesystems # # fs/jffs2/fs.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -1 # Sync in core time granuality with filesystems # # fs/jffs/inode-v23.c # 2005/01/04 18:48:14-08:00 ak@suse.de +4 -4 # Sync in core time granuality with filesystems # # fs/inode.c # 2005/01/04 20:24:21-08:00 ak@suse.de +5 -19 # Sync in core time granuality with filesystems # # fs/hugetlbfs/inode.c # 2005/01/04 20:24:07-08:00 ak@suse.de +1 -0 # Sync in core time granuality with filesystems # # fs/hpfs/file.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -1 # Sync in core time granuality with filesystems # # fs/hfsplus/ioctl.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -1 # Sync in core time granuality with filesystems # # fs/hfsplus/inode.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -1 # Sync in core time granuality with filesystems # # fs/hfsplus/dir.c # 2005/01/04 18:48:14-08:00 ak@suse.de +3 -3 # Sync in core time granuality with filesystems # # fs/hfsplus/catalog.c # 2005/01/04 18:48:14-08:00 ak@suse.de +4 -4 # Sync in core time granuality with filesystems # # fs/hfs/inode.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -1 # Sync in core time granuality with filesystems # # fs/hfs/dir.c # 2005/01/04 18:48:14-08:00 ak@suse.de +2 -2 # Sync in core time granuality with filesystems # # fs/hfs/catalog.c # 2005/01/04 18:48:14-08:00 ak@suse.de +4 -4 # Sync in core time granuality with filesystems # # fs/fat/file.c # 2005/01/04 18:48:14-08:00 ak@suse.de +2 -2 # Sync in core time granuality with filesystems # # fs/fat/dir.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -1 # Sync in core time granuality with filesystems # # fs/ext3/xattr.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -1 # Sync in core time granuality with filesystems # # fs/ext3/super.c # 2005/01/04 18:48:14-08:00 ak@suse.de +0 -1 # Sync in core time granuality with filesystems # # fs/ext3/namei.c # 2005/01/04 18:48:14-08:00 ak@suse.de +7 -7 # Sync in core time granuality with filesystems # # fs/ext3/ioctl.c # 2005/01/04 18:48:14-08:00 ak@suse.de +2 -2 # Sync in core time granuality with filesystems # # fs/ext3/inode.c # 2005/01/04 18:48:14-08:00 ak@suse.de +2 -2 # Sync in core time granuality with filesystems # # fs/ext3/ialloc.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -1 # Sync in core time granuality with filesystems # # fs/ext2/xattr.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -1 # Sync in core time granuality with filesystems # # fs/ext2/super.c # 2005/01/04 18:48:14-08:00 ak@suse.de +0 -1 # Sync in core time granuality with filesystems # # fs/ext2/namei.c # 2005/01/04 18:48:14-08:00 ak@suse.de +3 -3 # Sync in core time granuality with filesystems # # fs/ext2/ioctl.c # 2005/01/04 18:48:14-08:00 ak@suse.de +2 -2 # Sync in core time granuality with filesystems # # fs/ext2/inode.c # 2005/01/04 18:48:14-08:00 ak@suse.de +2 -2 # Sync in core time granuality with filesystems # # fs/ext2/ialloc.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -1 # Sync in core time granuality with filesystems # # fs/ext2/dir.c # 2005/01/04 18:48:14-08:00 ak@suse.de +3 -3 # Sync in core time granuality with filesystems # # fs/devpts/inode.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -0 # Sync in core time granuality with filesystems # # fs/devfs/base.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -0 # Sync in core time granuality with filesystems # # fs/coda/inode.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -1 # Sync in core time granuality with filesystems # # fs/coda/file.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -1 # Sync in core time granuality with filesystems # # fs/coda/dir.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -1 # Sync in core time granuality with filesystems # # fs/cifs/inode.c # 2005/01/04 18:48:14-08:00 ak@suse.de +2 -2 # Sync in core time granuality with filesystems # # fs/cifs/file.c # 2005/01/04 18:48:14-08:00 ak@suse.de +6 -4 # Sync in core time granuality with filesystems # # fs/cifs/connect.c # 2005/01/04 18:48:14-08:00 ak@suse.de +2 -0 # Sync in core time granuality with filesystems # # fs/binfmt_misc.c # 2005/01/04 18:48:14-08:00 ak@suse.de +2 -1 # Sync in core time granuality with filesystems # # fs/bfs/inode.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -1 # Sync in core time granuality with filesystems # # fs/bfs/dir.c # 2005/01/04 18:48:14-08:00 ak@suse.de +7 -7 # Sync in core time granuality with filesystems # # fs/bad_inode.c # 2005/01/04 18:48:14-08:00 ak@suse.de +2 -1 # Sync in core time granuality with filesystems # # fs/autofs4/inode.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -0 # Sync in core time granuality with filesystems # # fs/autofs/inode.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -0 # Sync in core time granuality with filesystems # # fs/attr.c # 2005/01/04 18:48:14-08:00 ak@suse.de +8 -4 # Sync in core time granuality with filesystems # # fs/affs/inode.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -1 # Sync in core time granuality with filesystems # # fs/affs/file.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -1 # Sync in core time granuality with filesystems # # fs/affs/amigaffs.c # 2005/01/04 18:48:14-08:00 ak@suse.de +3 -3 # Sync in core time granuality with filesystems # # fs/adfs/inode.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -1 # Sync in core time granuality with filesystems # # drivers/usb/gadget/inode.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -0 # Sync in core time granuality with filesystems # # drivers/usb/core/inode.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -0 # Sync in core time granuality with filesystems # # drivers/oprofile/oprofilefs.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -0 # Sync in core time granuality with filesystems # # drivers/misc/ibmasm/ibmasmfs.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -0 # Sync in core time granuality with filesystems # # drivers/isdn/capi/capifs.c # 2005/01/04 18:48:14-08:00 ak@suse.de +1 -0 # Sync in core time granuality with filesystems # # drivers/char/tty_io.c # 2005/01/04 18:48:14-08:00 ak@suse.de +3 -2 # Sync in core time granuality with filesystems # # drivers/char/sonypi.c # 2005/01/04 18:48:14-08:00 ak@suse.de +4 -2 # Sync in core time granuality with filesystems # # drivers/char/random.c # 2005/01/04 18:48:14-08:00 ak@suse.de +3 -2 # Sync in core time granuality with filesystems # # drivers/char/qtronix.c # 2005/01/04 18:48:14-08:00 ak@suse.de +2 -1 # Sync in core time granuality with filesystems # # ChangeSet # 2005/01/04 21:29:47-08:00 schwidefsky@de.ibm.com # [PATCH] sys_stime needs a compat function # # I realized that the best way to get the sys_time/sys_stime problem fixed is # to make sys_time 64 bit safe by using "time_t *" instead of "int *" and to # introduce two proper compat functions compat_sys_time and compat_sys_stime. # # The prototype change of sys_time is transparent for 32 bit architectures # because both "int" and "time_t" are 32 bit. For 64 bit the type change # would be wrong but luckily no 64 bit architecture uses sys_time/sys_stime # in 64 bit mode. The patch makes the following change: # # ia64 : Remove sys32_time, use compat_sys_time and # add (!!) compat_sys_stime to compat syscall table. # mips : Use compat_sys_time/compat_sys_stime in 32 bit syscall table. # Add #ifdef magic to compile sys_time/sys_stime and # compat_sys_time/compat_sys_stime only if needed. # parisc : Remove sys32_time, use compat_sys_time and compat_sys_stime. # ppc64 : remove sys32_time, ppc64_sys32_stime and ppc64_sys_stime. # Use common compat_sys_time, compat_sys_stime and sys_stime. # s390 : Use compat_sys_stime. Add #ifdef magic to compile # sys_time/sys_stime and compat_sys_time/compat_sys_stime only # if needed. # sparc64 : Use compat_sys_time/compat_Sys_stime in 32 bit syscall table. # um : Remove um_time and um_stime. Use common functions sys_time and # sys_stime. This adds a CAP_SYS_TIME check to UMs stime call. # x86_64 : Remove sys32_time. Use compat_sys_time and compat_sys_stime # in 32 bit syscall table. # # The original stime bug is fixed for mips, parisc, s390, sparc64 and # x86_64. Can the arch-maintainers please take a look at this? # # From: Martin Schwidefsky # # Convert compat_time_t to time_t in 32 bit emulation for sys_stime and # consolidate all the different implementation of sys_time, sys_stime and # their 32-bit emulation parts. # # Signed-off-by: Martin Schwidefsky # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/time.c # 2005/01/04 20:24:30-08:00 schwidefsky@de.ibm.com +2 -4 # sys_stime needs a compat function # # kernel/compat.c # 2005/01/04 20:24:22-08:00 schwidefsky@de.ibm.com +40 -0 # sys_stime needs a compat function # # include/linux/syscalls.h # 2005/01/04 18:48:14-08:00 schwidefsky@de.ibm.com +1 -1 # sys_stime needs a compat function # # include/asm-x86_64/unistd.h # 2005/01/04 18:48:14-08:00 schwidefsky@de.ibm.com +1 -1 # sys_stime needs a compat function # # include/asm-sparc64/unistd.h # 2005/01/04 18:48:14-08:00 schwidefsky@de.ibm.com +1 -0 # sys_stime needs a compat function # # include/asm-s390/unistd.h # 2005/01/04 18:48:14-08:00 schwidefsky@de.ibm.com +3 -2 # sys_stime needs a compat function # # include/asm-ppc64/unistd.h # 2005/01/04 18:48:14-08:00 schwidefsky@de.ibm.com +1 -0 # sys_stime needs a compat function # # include/asm-parisc/unistd.h # 2005/01/04 18:48:14-08:00 schwidefsky@de.ibm.com +1 -0 # sys_stime needs a compat function # # include/asm-mips/unistd.h # 2005/01/04 18:48:14-08:00 schwidefsky@de.ibm.com +6 -1 # sys_stime needs a compat function # # include/asm-ia64/unistd.h # 2005/01/04 18:48:14-08:00 schwidefsky@de.ibm.com +1 -0 # sys_stime needs a compat function # # arch/x86_64/ia32/sys_ia32.c # 2005/01/04 20:24:22-08:00 schwidefsky@de.ibm.com +0 -20 # sys_stime needs a compat function # # arch/x86_64/ia32/ia32entry.S # 2005/01/04 20:24:22-08:00 schwidefsky@de.ibm.com +2 -2 # sys_stime needs a compat function # # arch/sparc64/kernel/systbls.S # 2005/01/04 20:24:22-08:00 schwidefsky@de.ibm.com +2 -2 # sys_stime needs a compat function # # arch/s390/kernel/compat_wrapper.S # 2005/01/04 20:24:22-08:00 schwidefsky@de.ibm.com +3 -3 # sys_stime needs a compat function # # arch/ppc64/kernel/time.c # 2005/01/04 18:48:14-08:00 schwidefsky@de.ibm.com +0 -54 # sys_stime needs a compat function # # arch/ppc64/kernel/sys_ppc32.c # 2005/01/04 18:48:14-08:00 schwidefsky@de.ibm.com +0 -17 # sys_stime needs a compat function # # arch/ppc64/kernel/misc.S # 2005/01/04 20:24:22-08:00 schwidefsky@de.ibm.com +3 -3 # sys_stime needs a compat function # # arch/parisc/kernel/syscall_table.S # 2005/01/04 18:48:14-08:00 schwidefsky@de.ibm.com +2 -2 # sys_stime needs a compat function # # arch/parisc/kernel/sys_parisc32.c # 2005/01/04 18:48:14-08:00 schwidefsky@de.ibm.com +0 -15 # sys_stime needs a compat function # # arch/mips/kernel/scall64-o32.S # 2005/01/04 20:24:22-08:00 schwidefsky@de.ibm.com +2 -2 # sys_stime needs a compat function # # arch/ia64/ia32/sys_ia32.c # 2005/01/04 20:24:22-08:00 schwidefsky@de.ibm.com +0 -21 # sys_stime needs a compat function # # arch/ia64/ia32/ia32_entry.S # 2005/01/04 20:24:22-08:00 schwidefsky@de.ibm.com +2 -2 # sys_stime needs a compat function # # ChangeSet # 2005/01/04 21:29:33-08:00 bunk@stusta.de # [PATCH] compile with -ffreestanding # # For the kernel, it would be logical to use -ffreestanding. The kernel is # not a hosted environment with a standard C library. # # The gcc option -ffreestanding is supported by both gcc 2.95 and 3.4, which # covers the whole range of currently supported compilers. # # Regarding changes caused by this patch: # # Andi Kleen reported: # Newer gcc rewrites sprintf(buf,"%s",str) to strcpy(buf,str) transparently. # # This is only true with unit-at-a-time (disabled on i386 but enabled on # x86_64). The Linux kernel doesn't offer a standard C library, and such # transparent replacements of kernel functions with builtins are quite # fragile. # # Even with -ffreestanding, it's still possilble to explicitely use a gcc # builtin if desired. # # Signed-off-by: Adrian Bunk # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # Makefile # 2005/01/04 18:48:13-08:00 bunk@stusta.de +2 -1 # compile with -ffreestanding # # ChangeSet # 2005/01/04 21:29:20-08:00 alexn@dsv.su.se # [PATCH] Off by one in drivers/parport/probe.c # # This fixes a theoretical bug indicated in: # http://bugme.osdl.org/show_bug.cgi?id=240 # # It prevents overflow in case the required buffer is larger than the passed # buffer. This I found to be the minimally intrusive change. # # Signed-off-by: Alexander Nyberg # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/parport/probe.c # 2005/01/04 18:48:13-08:00 alexn@dsv.su.se +11 -2 # Off by one in drivers/parport/probe.c # # ChangeSet # 2005/01/04 21:29:07-08:00 alex@clusterfs.com # [PATCH] ext3: support for EA in inode # # 1) intent of the patch is to get possibility to store EAs in the body of large # inode. it saves space and improves performance in some cases # # 2) the patch is quite simple: it works the same way original xattr does, but # using other storage (inode body). body has priority over separate block. # original routines (ext3_xattr_get, ext3_xattr_list, ext3_xattr_set) are # renamed to ext3_xattr_block_*. new routines that handle inode storate are # added (ext3_xattr_ibody_get, ext3_xattr_ibody_list, ext3_xattr_ibody_set). # routines ext3_xattr_get, ext3_xattr_list and ext3_xattr_set allow user to # accesss both the storages transparently # # 3) the change makes sense on filesystem with inode size >= 256 bytes only. # 2.4 kernels don't support such a filesystems, AFAIK. 2.6 kernels do support # and ignore EAs stored in a body w/o the patch # # 4) debugfs and e2fsck need to be patched to deal with EAs in inode # the patch will be sent later # # 5) testing results: # a) Andrew Samba Master (tridge) has done successful tests # b) we've been using ea-in-inode feature in Lustre for many months # # Signed-off-by: Andreas Dilger # Signed-off-by: Alex Tomas # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/ext3_fs_i.h # 2005/01/04 18:48:13-08:00 alex@clusterfs.com +3 -0 # ext3: support for EA in inode # # include/linux/ext3_fs.h # 2005/01/04 20:24:22-08:00 alex@clusterfs.com +3 -0 # ext3: support for EA in inode # # fs/ext3/xattr.h # 2005/01/04 18:48:13-08:00 alex@clusterfs.com +2 -1 # ext3: support for EA in inode # # fs/ext3/xattr.c # 2005/01/04 20:24:30-08:00 alex@clusterfs.com +603 -36 # ext3: support for EA in inode # # fs/ext3/inode.c # 2005/01/04 20:24:30-08:00 alex@clusterfs.com +9 -1 # ext3: support for EA in inode # # fs/ext3/ialloc.c # 2005/01/04 20:24:30-08:00 alex@clusterfs.com +5 -0 # ext3: support for EA in inode # # ChangeSet # 2005/01/04 21:28:54-08:00 akpm@osdl.org # [PATCH] Reduce i_sem usage during file sync operations # # We hold i_sem during the various sync() operations to prevent livelocks: # if another thread is dirtying the file, a sync() may never return. # # Or at least, that used to be true when we were using the per-address_space # page lists. Since writeback has used radix tree traversal it is not possible # to livelock the sync() operations, because they only visit each page a single # time. # # sync_page_range() (used by O_SYNC writes) has not been holding i_sem for quite # some time, for the above reasons. # # The patch converts fsync(), fdatasync() and msync() to also not hold i_sem # during the radix-tree-based writeback. # # Now, we _do_ still need to hold i_sem across the file->f_op->fsync() call, # because that is still based on a list_head walk, and is still livelockable. # # But in the case of msync() I deliberately left i_sem untaken. This is because # we're currently deadlockable in msync, because mmap_sem is already held, and # mmap_sem nexts inside i_sem, due to direct-io.c. # # And yes, the ranking of down_read() veruss down() does matter: # # Task A Task B Task C # # down_read(rwsem) # down(sem) # down_write(rwsem) # down(sem) # down_read(rwsem) # # # C's down_write() will cause B's down_read to block. B holds `sem', so A will # never release `rwsem'. # # So the patch fixes a hard-to-hit triple-task deadlock, but adds a possible # livelock in msync(). It is possible to fix sys_msync() so that it takes i_sem # outside i_mmap_sem. Later. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/msync.c # 2005/01/04 20:24:22-08:00 akpm@osdl.org +4 -2 # Reduce i_sem usage during file sync operations # # fs/buffer.c # 2005/01/04 20:24:24-08:00 akpm@osdl.org +9 -5 # Reduce i_sem usage during file sync operations # # ChangeSet # 2005/01/04 21:28:41-08:00 akpm@osdl.org # [PATCH] suppress might_sleep() if oopsing # # We can call might_sleep() functions on the oops handling path (under do_exit). # # There seem little point in emitting spurious might_sleep() warnings into the # logs after the kernel has oopsed. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/sched.c # 2005/01/04 20:24:26-08:00 akpm@osdl.org +1 -1 # suppress might_sleep() if oopsing # # ChangeSet # 2005/01/04 21:28:28-08:00 pmeda@akamai.com # [PATCH] fork: total_forks not counted under tasklist_lock # # Bring the total_forks under tasklist_lock. When most of the fork code # icluding nr_threads is moved to copy_process() from do_fork() code in 2.6, # this is left out. # # Althought accuracy of total_forks is not important, it would be nice to add # this. It does not involve additional cost, and the code will be cleaner if # it is grouped with nr_threads. The difference is, total_forks will # increase on fork, but nr_threads will increase on fork and decrease on the # exit. # # I also moved extern decleration to sched.h from proc_misc.c. # # Signed-off-by: Prasanna Meda # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/fork.c # 2005/01/04 20:24:20-08:00 pmeda@akamai.com +6 -6 # fork: total_forks not counted under tasklist_lock # # include/linux/sched.h # 2005/01/04 20:24:27-08:00 pmeda@akamai.com +1 -0 # fork: total_forks not counted under tasklist_lock # # fs/proc/proc_misc.c # 2005/01/04 20:24:25-08:00 pmeda@akamai.com +0 -1 # fork: total_forks not counted under tasklist_lock # # ChangeSet # 2005/01/04 21:28:15-08:00 shaohua.li@intel.com # [PATCH] time runx too fast after S3 # # After resume from S3, 'date' shows time run too fast. # # Signed-off-by: Li Shaohua # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/kernel/time.c # 2005/01/04 18:48:13-08:00 shaohua.li@intel.com +3 -2 # time runx too fast after S3 # # ChangeSet # 2005/01/04 21:28:02-08:00 colpatch@us.ibm.com # [PATCH] cpumask_t initializers # # In the course of another patch I've been working on, I stumbled across # some weirdness with some of the SD_*_INIT sched_domains initializers. A # day or so of digging narrowed it down to the CPU_MASK_NONE initializer # nested inside the sched_domain initializers. The errors I got were: # # kernel/sched.c:4812: error: initializer element is not constant # kernel/sched.c:4812: error: (near initialization for `sched_domain_dummy') # kernel/sched.c:4812: error: initializer element is not constant # # which was this line: # # static struct sched_domain sched_domain_dummy = SD_CPU_INIT; # # Janis Johnson, a GCC hacker, told me the following: # # include/linux/cpumask.h # 2005/01/04 18:48:12-08:00 colpatch@us.ibm.com +8 -8 # cpumask_t initializers # # ChangeSet # 2005/01/04 21:27:49-08:00 sct@redhat.com # [PATCH] ext3: handle attempted double-delete of metadata. # # This patch improves ext3's ability to deal with corruption on-disk. If we # try to delete a metadata block twice, we confuse ext3's internal revoke # error-checking, resulting in a BUG(). But this can occur in practice due # to a corrupt indirect block, so we should attempt to fail gracefully. # # Downgrade the assert failure to a JH_EXPECT_BH failure, and return EIO when # it occurs. # # This is easily reproduced with a sample ext3 fs image containing an inode # which references the same indirect block more than once. Deleting that # inode will BUG() an unfixed kernel with: # # Assertion failure in journal_revoke() at fs/jbd/revoke.c:379: # "!buffer_revoked(bh)" # # With the fix, ext3 recovers gracefully. # # Signed-off-by: Stephen Tweedie # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/jbd/revoke.c # 2005/01/04 18:48:12-08:00 sct@redhat.com +6 -1 # ext3: handle attempted double-delete of metadata. # # ChangeSet # 2005/01/04 21:27:36-08:00 sct@redhat.com # [PATCH] ext3: handle attempted delete of bitmap blocks. # # This patch improves ext3's ability to deal with corruption on-disk. If we # ever get a corrupt inode or indirect block, then an attempt to delete it # can end up trying to remove any block on the fs, including bitmap blocks. # This can cause ext3 to assert-fail as we end up trying to do an ext3_forget # on a buffer with b_committed_data set. # # The fix is to downgrade this to an IO error and journal abort, so that we # take the filesystem readonly but don't bring down the whole kernel. # # Make J_EXPECT_JH() return a value so it can be easily tested and yet still # retained as an assert failure if we build ext3 with full internal debugging # enabled. Make journal_forget() return an error code so that in this case # the error can be passed up to the caller. # # This is easily reproduced with a sample ext3 fs image containing an inode # whose direct and indirect blocks refer to a block bitmap block. Allocating # new blocks and then deleting that inode will BUG() with: # # Assertion failure in journal_forget() at fs/jbd/transaction.c:1228: # "!jh->b_committed_data" # # With the fix, ext3 recovers gracefully. # # Signed-off-by: Stephen Tweedie # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/jbd.h # 2005/01/04 18:48:12-08:00 sct@redhat.com +7 -5 # ext3: handle attempted delete of bitmap blocks. # # include/linux/ext3_jbd.h # 2005/01/04 18:48:12-08:00 sct@redhat.com +8 -3 # ext3: handle attempted delete of bitmap blocks. # # fs/jbd/transaction.c # 2005/01/04 18:48:12-08:00 sct@redhat.com +12 -4 # ext3: handle attempted delete of bitmap blocks. # # fs/ext3/inode.c # 2005/01/04 20:24:31-08:00 sct@redhat.com +1 -1 # ext3: handle attempted delete of bitmap blocks. # # ChangeSet # 2005/01/04 21:27:23-08:00 sct@redhat.com # [PATCH] ext3: cleanup handling of aborted transactions. # # This patch improves ext3's error logging when we encounter an on-disk # corruption. Previously, a transaction (such as a truncate) which encountered # many corruptions (eg. a single highly-corrupt indirect block) would emit # copious "aborting transaction" errors to the log. # # Even worse, encountering an aborted journal can count as such an error, # leading to a flood of spurious "aborting transaction: Journal has aborted" # errors. # # With the fix, only emit that message on the first error. The patch also # restores a missing \n in that printk path. # # Signed-off-by: Stephen Tweedie # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/ext3/super.c # 2005/01/04 20:24:30-08:00 sct@redhat.com +9 -4 # ext3: cleanup handling of aborted transactions. # # ChangeSet # 2005/01/04 21:27:10-08:00 bunk@stusta.de # [PATCH] kill blk.h # # All blk.h users were converted in 2.5, and at the same time blk.h began # giving a warning. # # The patch below removes this obsolete file. # # Signed-off-by: Adrian Bunk # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # BitKeeper/deleted/.del-blk.h~82e746e9684702f1 # 2005/01/04 21:27:03-08:00 bunk@stusta.de +0 -0 # Delete: include/linux/blk.h # # ChangeSet # 2005/01/04 21:26:58-08:00 minyard@acm.org # [PATCH] Cleanups for the IPMI driver # # This patch removes some unneeded cruft that Adrian found, and also turns # off the shutdown of the timer when removing the module. Since the timer is # shutdown when the driver is closed (unless no way out is specified) this is # unnecessary and defeats the no way out option. # # - remove some completely unused code # - make some needlessly global code static # - removal of some EXPORT_SYMBOL'ed code with zero users. # - Removal of the timer shutdown on module removal # # Signed-off-by: Adrian Bunk # Signed-off-by: Corey Minyard # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/ipmi.h # 2005/01/04 18:48:12-08:00 minyard@acm.org +0 -63 # Cleanups for the IPMI driver # # drivers/char/ipmi/ipmi_watchdog.c # 2005/01/04 20:24:26-08:00 minyard@acm.org +0 -21 # Cleanups for the IPMI driver # # drivers/char/ipmi/ipmi_si_intf.c # 2005/01/04 18:48:12-08:00 minyard@acm.org +2 -2 # Cleanups for the IPMI driver # # drivers/char/ipmi/ipmi_poweroff.c # 2005/01/04 18:48:12-08:00 minyard@acm.org +3 -3 # Cleanups for the IPMI driver # # drivers/char/ipmi/ipmi_msghandler.c # 2005/01/04 18:48:12-08:00 minyard@acm.org +2 -97 # Cleanups for the IPMI driver # # ChangeSet # 2005/01/04 21:26:45-08:00 holt@sgi.com # [PATCH] Hold BKL for shorter period in generic_shutdown_super(). # # Testing revealed long pauses of the entire system while autofs initiated # umounts as a result of timing out the mounts. # # It was noticed that during a umount, the BKL is held while scanning the # inode_list and removing and inodes that are candidates. This patch moves # locking until after the first pass had gone through the inode_list. # # Testing revelead that on an ia64 machine with a filesystem that had 8.4 # Million inodes, there were no observable pauses during the umount. This # was down from over 4 seconds without this patch. # # Signed-Off-By: Robin Holt # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/super.c # 2005/01/04 20:24:30-08:00 holt@sgi.com +1 -1 # Hold BKL for shorter period in generic_shutdown_super(). # # ChangeSet # 2005/01/04 21:26:32-08:00 hch@lst.de # [PATCH] remove unused irq_cpustat fields # # The only common field in irq_cpustat is __softirq_pending, i386 and ppc # have some of their own. # # Remove all unused obsolete fields from various architectures. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-v850/hardirq.h # 2005/01/04 18:48:11-08:00 hch@lst.de +0 -2 # remove unused irq_cpustat fields # # include/asm-ppc64/hardirq.h # 2005/01/04 18:48:11-08:00 hch@lst.de +0 -1 # remove unused irq_cpustat fields # # include/asm-parisc/hardirq.h # 2005/01/04 18:48:11-08:00 hch@lst.de +0 -3 # remove unused irq_cpustat fields # # include/asm-m68knommu/hardirq.h # 2005/01/04 18:48:11-08:00 hch@lst.de +0 -2 # remove unused irq_cpustat fields # # include/asm-m32r/hardirq.h # 2005/01/04 18:48:11-08:00 hch@lst.de +0 -2 # remove unused irq_cpustat fields # # include/asm-h8300/hardirq.h # 2005/01/04 18:48:11-08:00 hch@lst.de +0 -2 # remove unused irq_cpustat fields # # include/asm-cris/hardirq.h # 2005/01/04 18:48:11-08:00 hch@lst.de +0 -4 # remove unused irq_cpustat fields # # include/asm-arm26/hardirq.h # 2005/01/04 18:48:11-08:00 hch@lst.de +0 -4 # remove unused irq_cpustat fields # # include/asm-alpha/hardirq.h # 2005/01/04 18:48:11-08:00 hch@lst.de +0 -3 # remove unused irq_cpustat fields # # ChangeSet # 2005/01/04 21:26:18-08:00 hch@lst.de # [PATCH] move irq_enter and irq_exit to common code # # This code is the same for all architectures with the following invariants: # # - arm gurantees irqs are disabled when calling irq_exit so it can call # __do_softirq directly instead of do_softirq # # - arm26 is totally broken for about half a year, I didn't care for it # # - some architectures use softirq_pending(smp_processor_id()) instead of # local_softirq_pending, but they always evaluate to the same # # This patch moves the out of line irq_exit implementation from # kernel/irq/handle.c which depends on CONFIG_GENERIC_HARDIRQS to # kernel/softirq.c which is always compiled, tweaks it for the arm special # case and moves the irq_enter/irq_exit/nmi_enter/nmi_exit bits from # asm-*/hardirq.h to linux/hardirq.h # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/softirq.c # 2005/01/04 18:48:11-08:00 hch@lst.de +17 -0 # move irq_enter and irq_exit to common code # # kernel/irq/handle.c # 2005/01/04 18:48:11-08:00 hch@lst.de +0 -11 # move irq_enter and irq_exit to common code # # include/linux/hardirq.h # 2005/01/04 18:48:11-08:00 hch@lst.de +0 -2 # move irq_enter and irq_exit to common code # # include/asm-v850/hardirq.h # 2005/01/04 20:24:33-08:00 hch@lst.de +0 -9 # move irq_enter and irq_exit to common code # # include/asm-sparc64/hardirq.h # 2005/01/04 18:48:11-08:00 hch@lst.de +0 -9 # move irq_enter and irq_exit to common code # # include/asm-sparc/hardirq.h # 2005/01/04 18:48:11-08:00 hch@lst.de +0 -9 # move irq_enter and irq_exit to common code # # include/asm-sh/hardirq.h # 2005/01/04 18:48:11-08:00 hch@lst.de +0 -12 # move irq_enter and irq_exit to common code # # include/asm-s390/hardirq.h # 2005/01/04 18:48:11-08:00 hch@lst.de +1 -15 # move irq_enter and irq_exit to common code # # include/asm-parisc/hardirq.h # 2005/01/04 20:24:33-08:00 hch@lst.de +0 -9 # move irq_enter and irq_exit to common code # # include/asm-m68knommu/hardirq.h # 2005/01/04 20:24:33-08:00 hch@lst.de +0 -9 # move irq_enter and irq_exit to common code # # include/asm-m68k/hardirq.h # 2005/01/04 18:48:11-08:00 hch@lst.de +0 -9 # move irq_enter and irq_exit to common code # # include/asm-h8300/hardirq.h # 2005/01/04 20:24:33-08:00 hch@lst.de +0 -9 # move irq_enter and irq_exit to common code # # include/asm-cris/hardirq.h # 2005/01/04 20:24:33-08:00 hch@lst.de +0 -9 # move irq_enter and irq_exit to common code # # include/asm-arm/hardirq.h # 2005/01/04 18:48:11-08:00 hch@lst.de +1 -11 # move irq_enter and irq_exit to common code # # include/asm-alpha/hardirq.h # 2005/01/04 20:24:33-08:00 hch@lst.de +0 -10 # move irq_enter and irq_exit to common code # # arch/ia64/kernel/irq_ia64.c # 2005/01/04 20:24:24-08:00 hch@lst.de +0 -15 # move irq_enter and irq_exit to common code # # ChangeSet # 2005/01/04 21:26:05-08:00 rddunlap@osdl.org # [PATCH] handle quoted module parameters # # Fix module parameter quote handling. # Module parameter strings (with spaces) are quoted like so: # "modprm=this test" # and not like this: # modprm="this test" # # Signed-off-by: Randy Dunlap # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/params.c # 2005/01/04 18:48:11-08:00 rddunlap@osdl.org +12 -3 # handle quoted module parameters # # ChangeSet # 2005/01/04 21:25:52-08:00 dev@sw.ru # [PATCH] 4/4GB: Incorrect bound check in do_getname() # # This patch fixes incorrect address range check in do_getname(). # Theoretically this can lead to do_getname() failure on kernel address space # string on the TASK_SIZE boundary addresses when 4GB split is ON. # # (akpm: I don't see why this check exists at all, actually. afaict the only # effect of removing it is that we'll then generate -EFAULT on a # non-null-terminated pathname which ends exactly at TASK_SIZE). # # Signed-Off-By: Kirill Korotaev # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/namei.c # 2005/01/04 18:48:11-08:00 dev@sw.ru +6 -5 # 4/4GB: Incorrect bound check in do_getname() # # ChangeSet # 2005/01/04 21:25:39-08:00 jlan@engr.sgi.com # [PATCH] enhanced Memory accounting data collection # # This patch is to offer common accounting data collection method at memory # usage for various accounting packages including BSD accounting, ELSA, CSA # and any other acct packages that use a common layer of data collection. # # New struct fields are added to mm_struct to save high watermarks of rss # usage as well as virtual memory usage. # # New struct fields are added to task_struct to collect accumulated rss usage # and vm usages. # # These data are collected on per process basis. # # Signed-off-by: Jay Lan # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/swapfile.c # 2005/01/04 18:48:11-08:00 jlan@engr.sgi.com +3 -0 # enhanced Memory accounting data collection # # mm/rmap.c # 2005/01/04 18:48:11-08:00 jlan@engr.sgi.com +3 -0 # enhanced Memory accounting data collection # # mm/mremap.c # 2005/01/04 18:48:11-08:00 jlan@engr.sgi.com +6 -0 # enhanced Memory accounting data collection # # mm/mmap.c # 2005/01/04 18:48:11-08:00 jlan@engr.sgi.com +10 -0 # enhanced Memory accounting data collection # # mm/memory.c # 2005/01/04 20:24:16-08:00 jlan@engr.sgi.com +30 -2 # enhanced Memory accounting data collection # # kernel/fork.c # 2005/01/04 20:24:32-08:00 jlan@engr.sgi.com +6 -0 # enhanced Memory accounting data collection # # kernel/exit.c # 2005/01/04 20:24:20-08:00 jlan@engr.sgi.com +2 -0 # enhanced Memory accounting data collection # # kernel/acct.c # 2005/01/04 18:48:11-08:00 jlan@engr.sgi.com +31 -0 # enhanced Memory accounting data collection # # include/linux/sched.h # 2005/01/04 20:24:32-08:00 jlan@engr.sgi.com +8 -0 # enhanced Memory accounting data collection # # include/linux/mm.h # 2005/01/04 20:24:21-08:00 jlan@engr.sgi.com +3 -0 # enhanced Memory accounting data collection # # include/linux/acct.h # 2005/01/04 18:48:11-08:00 jlan@engr.sgi.com +4 -0 # enhanced Memory accounting data collection # # fs/exec.c # 2005/01/04 20:24:20-08:00 jlan@engr.sgi.com +3 -0 # enhanced Memory accounting data collection # # ChangeSet # 2005/01/04 21:25:25-08:00 jlan@engr.sgi.com # [PATCH] enhanced I/O accounting data patch # # This patch is to offer common accounting data collection method at I/O for # various accounting packages including BSD accounting, ELSA, CSA and any # other acct packages that use a common layer of data collection. # # Patch is made to fs/read_write.c to collect per process data on character # read/written in bytes and number of read/write syscalls made. # # New struct fields are added to task_struct to store the data. # # These data are collected on per process basis. # # Signed-off-by: Jay Lan # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/fork.c # 2005/01/04 20:24:35-08:00 jlan@engr.sgi.com +12 -3 # enhanced I/O accounting data patch # # include/linux/sched.h # 2005/01/04 20:24:35-08:00 jlan@engr.sgi.com +2 -0 # enhanced I/O accounting data patch # # fs/read_write.c # 2005/01/04 18:48:11-08:00 jlan@engr.sgi.com +21 -2 # enhanced I/O accounting data patch # # ChangeSet # 2005/01/04 21:25:12-08:00 dhowells@redhat.com # [PATCH] Cross-reference nommu VMAs with mappings # # The attached patch includes prio-tree support and adds cross-referencing of # VMAs with address spaces back in, as is done under normal MMU Linux. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/nommu.c # 2005/01/04 18:48:10-08:00 dhowells@redhat.com +18 -4 # Cross-reference nommu VMAs with mappings # # mm/Makefile # 2005/01/04 18:48:10-08:00 dhowells@redhat.com +2 -2 # Cross-reference nommu VMAs with mappings # # ChangeSet # 2005/01/04 21:24:59-08:00 dhowells@redhat.com # [PATCH] Permit nommu MAP_SHARED of memory backed files # # The attached patch applies some further fixes and extensions to the nommu mmap # implementation: # # (1) /proc/maps distinguishes shareable private mappings and real shared # mappings by marking the former with 's' and the latter with 'S'. # # (2) Rearrange and optimise the checking portion of do_mmap_pgoff() to make it # easier to follow. # # (3) Only set VM_SHARED on MAP_SHARED mappings. Its presence indicates that the # backing memory is supplied by the underlying file or chardev. # # VM_MAYSHARE indicates that a VMA may be shared if it's a private VMA. The # memory for a private VMA is allocated by do_mmap_pgoff() from a kmalloc # slab and then the file contents are read into it before returning. # # (4) Permit MAP_SHARED + PROT_WRITE on memory-backed files[*] and chardevs to # indicate a contiguous area of memory when its get_unmapped_area() is # called if the backing fs/chardev is willing. # # [*] file->f_mapping->backing_dev_info->memory_backed == 1 # # (5) Require chardevs and files that support to provide a get_unmapped_area() # file operation. # # (6) Made sure a private mapping of /dev/zero is possible. Shared mappings of # /dev/zero are not currently supported because this'd need greater # interaction of mmap with the chardev driver than is currently supported. # # (7) Add in some extra checks from mm/mmap.c: security, file having write # access for a writable shared mapping, file not being in append mode. # # (8) Only account the mapping memory if it's allocated here; memory belonging # to a shared chardev or file is not accounted. # # With this patch it should be possible to map contiguous flash files directly # out of ROM simply by providing get_unmapped_area() for a read-only/shared # mapping. # # I think that it might be worth splitting do_mmap_pgoff() up into smaller # subfunctions: one to handle the checking, one to handle shared mappings and # one to handle private mappings. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/nommu.c # 2005/01/04 20:24:35-08:00 dhowells@redhat.com +123 -59 # Permit nommu MAP_SHARED of memory backed files # # fs/proc/nommu.c # 2005/01/04 18:48:10-08:00 dhowells@redhat.com +1 -1 # Permit nommu MAP_SHARED of memory backed files # # ChangeSet # 2005/01/04 21:24:46-08:00 dhowells@redhat.com # [PATCH] Fix nommu MAP_SHARED handling # # The attached patch does the following things: # # (1) It uniquifies permitted overlapping VMAs (eg: MAP_SHARED on chardevs) in # nommu_vma_tree. Identical entries break the assumptions on which rbtrees # work. Since we don't need to share VMAs in this case, we uniquify such # VMAs by using the pointer to the VMA. They're only kept in the tree for # /proc/maps visibility. # # (2) Extracts VMA unlinking into its own function so that the source is # adjacent to the VMA linking function. # # (3) No longer releases memory belonging to a shared chardev or file (the # underlying driver is expected to provide mappable memory). # # (4) Frees the file attached to a VMA whether or not that VMA is shared or is # a memory-mapped I/O mapping. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/nommu.c # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +50 -16 # Fix nommu MAP_SHARED handling # # ChangeSet # 2005/01/04 21:24:34-08:00 dhowells@redhat.com # [PATCH] Implement nommu find_vma() # # The attached patch implements a nommu version of find_vma(). # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/nommu.c # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +12 -1 # Implement nommu find_vma() # # ChangeSet # 2005/01/04 21:24:21-08:00 dhowells@redhat.com # [PATCH] FRV: Change PML4 -> PUD # # The attached patch changes the PML4 bits of the FRV arch to the new PUD way. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-frv/pgtable.h # 2005/01/04 18:48:10-08:00 dhowells@redhat.com +96 -33 # FRV: Change PML4 -> PUD # # include/asm-frv/pgalloc.h # 2005/01/04 18:48:10-08:00 dhowells@redhat.com +1 -3 # FRV: Change PML4 -> PUD # # include/asm-frv/page.h # 2005/01/04 18:48:10-08:00 dhowells@redhat.com +7 -6 # FRV: Change PML4 -> PUD # # include/asm-frv/mmu_context.h # 2005/01/04 18:48:10-08:00 dhowells@redhat.com +3 -3 # FRV: Change PML4 -> PUD # # arch/frv/mm/pgalloc.c # 2005/01/04 18:48:10-08:00 dhowells@redhat.com +1 -1 # FRV: Change PML4 -> PUD # # arch/frv/mm/mmu-context.c # 2005/01/04 18:48:10-08:00 dhowells@redhat.com +1 -3 # FRV: Change PML4 -> PUD # # arch/frv/mm/init.c # 2005/01/04 18:48:10-08:00 dhowells@redhat.com +3 -1 # FRV: Change PML4 -> PUD # # arch/frv/mm/fault.c # 2005/01/04 18:48:10-08:00 dhowells@redhat.com +15 -8 # FRV: Change PML4 -> PUD # # arch/frv/mm/dma-alloc.c # 2005/01/04 18:48:10-08:00 dhowells@redhat.com +4 -2 # FRV: Change PML4 -> PUD # # arch/frv/kernel/gdb-stub.c # 2005/01/04 18:48:10-08:00 dhowells@redhat.com +3 -1 # FRV: Change PML4 -> PUD # # ChangeSet # 2005/01/04 21:24:08-08:00 dhowells@redhat.com # [PATCH] FRV: FR55x CPU support fixes # # The attached patch fixes the following issues with support for the FR55x CPUs: # # (1) The FR555 has a 64-byte cacheline size; everything else that we've come # across has a 32-byte cacheline size. # # (2) Fix machine_restart() for FR55x. # # (3) Fix frv_cpu_suspend() for FR55x. # # Signed-Off-By: David Howells # Signed-off-by: Mark Salter # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-frv/cache.h # 2005/01/04 18:48:10-08:00 dhowells@redhat.com +3 -1 # FRV: FR55x CPU support fixes # # arch/frv/kernel/sleep.S # 2005/01/04 18:48:10-08:00 dhowells@redhat.com +33 -15 # FRV: FR55x CPU support fixes # # arch/frv/kernel/setup.c # 2005/01/04 18:48:10-08:00 dhowells@redhat.com +2 -2 # FRV: FR55x CPU support fixes # # arch/frv/kernel/process.c # 2005/01/04 18:48:10-08:00 dhowells@redhat.com +7 -1 # FRV: FR55x CPU support fixes # # arch/frv/kernel/head.S # 2005/01/04 18:48:10-08:00 dhowells@redhat.com +4 -3 # FRV: FR55x CPU support fixes # # arch/frv/Kconfig # 2005/01/04 18:48:10-08:00 dhowells@redhat.com +5 -0 # FRV: FR55x CPU support fixes # # ChangeSet # 2005/01/04 21:23:55-08:00 dhowells@redhat.com # [PATCH] FRV: pagetable handling fixes # # The attached patch makes the following fixes to the frv arch: # # (1) pte_offset() should no longer be around; the fault handler should use # pte_offset_kernel() instead when fixing up vmalloc misses. # # (2) The PGEs/PMEs do not hold PTEs. They have greater address resolution and # fewer control bits. # # (3) The data access error pattern in ESR15.EC should be 10000 not 10100. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-frv/spr-regs.h # 2005/01/04 18:48:10-08:00 dhowells@redhat.com +1 -1 # FRV: pagetable handling fixes # # include/asm-frv/pgtable.h # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +1 -2 # FRV: pagetable handling fixes # # arch/frv/mm/pgalloc.c # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +1 -1 # FRV: pagetable handling fixes # # arch/frv/mm/fault.c # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +1 -1 # FRV: pagetable handling fixes # # ChangeSet # 2005/01/04 21:23:40-08:00 dhowells@redhat.com # [PATCH] frv: accidental TLB entry write-protect fix # # The attached patch stops the FRV kernel-instruction-TLB-miss handler from # setting the write-protect bit on a mapping entry when punting an entry from # the mapping fast cache registers (DAMR1/IAMR1) to the TLB. # # This patch derives the WP value from the DAMPR1 register (which actually has # a WP bit) rather than the IAMPR1 register (which does not). # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/frv/mm/tlb-miss.S # 2005/01/04 18:48:09-08:00 dhowells@redhat.com +2 -2 # frv: accidental TLB entry write-protect fix # # ChangeSet # 2005/01/04 21:23:27-08:00 dhowells@redhat.com # [PATCH] frv: update the trap tables comment # # The attached patch updates the FRV trap tables comment to make it more # appropriate. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/frv/kernel/entry-table.S # 2005/01/04 18:48:09-08:00 dhowells@redhat.com +29 -11 # frv: update the trap tables comment # # ChangeSet # 2005/01/04 21:23:15-08:00 dhowells@redhat.com # [PATCH] frv: perfctr_info syscall # # The attached patch gets rid of the perfctr_info syscall from the FRV arch now # that its implementation has gone and it has been removed from the i386 arch # and the i386 syscalls have been renumbered. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-frv/unistd.h # 2005/01/04 18:48:09-08:00 dhowells@redhat.com +6 -7 # frv: perfctr_info syscall # # arch/frv/kernel/entry.S # 2005/01/04 18:48:09-08:00 dhowells@redhat.com +3 -3 # frv: perfctr_info syscall # # ChangeSet # 2005/01/04 21:23:02-08:00 dhowells@redhat.com # [PATCH] frv: Minix & ext2 bitops fixes # # The attached patch does two things: # # (1) Implements the ext2/ext3 bitops in terms of the main bitops functions. # # (2) Changes the Minix bitops to use the ext2 bitops (LE) rather than the main # bitops (BE). # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-frv/bitops.h # 2005/01/04 18:48:09-08:00 dhowells@redhat.com +11 -60 # frv: Minix & ext2 bitops fixes # # ChangeSet # 2005/01/04 21:22:49-08:00 dhowells@redhat.com # [PATCH] FRV: debugging fixes # # The attached patch fixes three debugging problems in the frv arch: # # (1) Single-stepping in userspace steps through into the kernel-mode interrupt # handler when a hardware interrupt happens, and sometimes it gets past # where the debug-mode handler would normally catch it. This patch extends # the range of detected PC values. # # (2) When setting up the kernel-mode exception frame from the debug-mode # handler for a userspace debugging event, we weren't setting the LR # register to generate a return to the exception handler epilogue. # # (3) sys_ptrace() now needs to "put" the inferior task_struct not "free" it as # was done in 2.4. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/frv/kernel/ptrace.c # 2005/01/04 18:48:09-08:00 dhowells@redhat.com +1 -1 # FRV: debugging fixes # # arch/frv/kernel/break.S # 2005/01/04 18:48:09-08:00 dhowells@redhat.com +7 -0 # FRV: debugging fixes # # ChangeSet # 2005/01/04 21:22:36-08:00 dhowells@redhat.com # [PATCH] Make more syscalls available for the FR-V arch # # The attached patch makes more syscalls available for the FR-V arch. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-frv/unistd.h # 2005/01/04 20:24:37-08:00 dhowells@redhat.com +12 -1 # Make more syscalls available for the FR-V arch # # arch/frv/kernel/entry.S # 2005/01/04 20:24:37-08:00 dhowells@redhat.com +12 -1 # Make more syscalls available for the FR-V arch # # ChangeSet # 2005/01/04 21:22:23-08:00 dhowells@redhat.com # [PATCH] frv: nommu changes # # The attached patch changes the nommu bits of the FRV arch to incorporate the # name changes made to the nommu core stuff. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-frv/mmu.h # 2005/01/04 18:48:09-08:00 dhowells@redhat.com +1 -1 # frv: nommu changes # # arch/frv/kernel/ptrace.c # 2005/01/04 20:24:37-08:00 dhowells@redhat.com +3 -3 # frv: nommu changes # # ChangeSet # 2005/01/04 21:22:10-08:00 dhowells@redhat.com # [PATCH] Further nommu /proc changes # # The attached patch changes the nommu procfs routines to match the nommu # changes in patch 1/1. # # This is an exercise in structure renaming and handling the fact that the list # of VMAs in the system is now held together by vma->vm_rb. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/proc/task_nommu.c # 2005/01/04 18:48:08-08:00 dhowells@redhat.com +26 -24 # Further nommu /proc changes # # fs/proc/nommu.c # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +12 -17 # Further nommu /proc changes # # ChangeSet # 2005/01/04 21:21:58-08:00 dhowells@redhat.com # [PATCH] Further nommu changes # # The attached patch further changes the nommu stuff previously changed. These # new changes do the following: # # (0) Some additional variables have been defined to make nommu even compile. # # (1) Get rid of the alternate vm_area_struct. The nommu mmap now uses the # normal one. There's a refcount field added to the normal one, contingent # on !CONFIG_MMU. # # (2) vm_rb is now used to keep track of the VMAs in an rbtree rather than # adding a separate list. # # (3) mm_tblock_struct is now vm_list_struct. # # (4) put_vma() now calls vma->vm_ops->close() if available on nommu. # # (5) A dummy generic_file_vm_ops has been provided. It does nothing, but # permits tiny-shmem to compile. # # tiny-shmem and ramfs still need attention, such that files contained # therein can be mmapped shared-writably to some extent on nommu. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/tiny-shmem.c # 2005/01/04 18:48:08-08:00 dhowells@redhat.com +0 -2 # Further nommu changes # # mm/nommu.c # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +122 -55 # Further nommu changes # # include/linux/mm.h # 2005/01/04 20:24:35-08:00 dhowells@redhat.com +12 -18 # Further nommu changes # # ChangeSet # 2005/01/04 21:21:45-08:00 dhowells@redhat.com # [PATCH] Fix some ELF-FDPIC binfmt problems # # The attached patch fixes the following problems in the ELF-FDPIC binfmt # driver: # # (1) elf_fdpic_map_file() should be passed an mm_struct pointer, not NULL. # # (2) do_mmap() should be called with the mmap_sem held. # # (3) mm_struct::end_brk doesn't exist in 2.6 (debugging only). # # (4) Avoid debugging warnings by casting certain values to unsigned long # before printing them. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/binfmt_elf_fdpic.c # 2005/01/04 18:48:08-08:00 dhowells@redhat.com +14 -6 # Fix some ELF-FDPIC binfmt problems # # ChangeSet # 2005/01/04 21:21:32-08:00 dhowells@redhat.com # [PATCH] FRV: Add FDPIC ELF binary format driver # # The attached patch adds a new binary format driver that allows a special # variety of ELF to be used that permits the dynamic sections that comprise an # executable, its dynamic loader and its shared libaries and its stack and data # to be located anywhere within the address space. # # This is used to provide shared libraries and shared executables (at least, as # far as the read-only dynamic sections go) on uClinux. Not only that, but the # same binaries can be run on MMU linux without a problem. # # This is achieved by: # # (1) Passing loadmaps to the dynamic loader (or to a statically linked # executable) to indicate the whereabouts of the various dynamic sections. # # (2) Using a GOT inside the program. # # (3) Passing setup_arg_pages() the stack pointer to be. # # (4) Allowing the arch greated control over how an executable is laid out in # memory in MMU Linux. # # (5) Rewriting mm/nommu.c to support MAP_PRIVATE on files, thus allowing _mmap_ # to handle sharing of private-readonly mappings. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/elf-fdpic.h # 2005/01/04 18:48:08-08:00 dhowells@redhat.com +68 -0 # FRV: Add FDPIC ELF binary format driver # # fs/binfmt_elf_fdpic.c # 2005/01/04 20:24:38-08:00 dhowells@redhat.com +1093 -0 # FRV: Add FDPIC ELF binary format driver # # include/linux/personality.h # 2005/01/04 18:48:08-08:00 dhowells@redhat.com +4 -0 # FRV: Add FDPIC ELF binary format driver # # include/linux/elf-fdpic.h # 2005/01/04 18:48:08-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/linux/elf-fdpic.h # # fs/binfmt_elf_fdpic.c # 2005/01/04 20:24:38-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/fs/binfmt_elf_fdpic.c # # fs/Makefile # 2005/01/04 18:48:08-08:00 dhowells@redhat.com +1 -0 # FRV: Add FDPIC ELF binary format driver # # fs/Kconfig.binfmt # 2005/01/04 18:48:08-08:00 dhowells@redhat.com +13 -0 # FRV: Add FDPIC ELF binary format driver # # ChangeSet # 2005/01/04 21:21:18-08:00 dhowells@redhat.com # [PATCH] Fix usage of setup_arg_pages() in IA64, MIPS, S390 and Sparc64 # # The attached patch fixes the usage of setup_arg_pages() in the IA64, MIPS, # S390 and Sparc64 arches. This function now takes an extra parameter: the # initial top of stack. This is useful in uClinux when there's no fixed # location to which the stack pointer can be initialised. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/sparc64/kernel/binfmt_aout32.c # 2005/01/04 18:48:08-08:00 dhowells@redhat.com +1 -1 # Fix usage of setup_arg_pages() in IA64, MIPS, S390 and Sparc64 # # arch/mips/kernel/irixelf.c # 2005/01/04 18:48:08-08:00 dhowells@redhat.com +1 -1 # Fix usage of setup_arg_pages() in IA64, MIPS, S390 and Sparc64 # # arch/ia64/ia32/binfmt_elf32.c # 2005/01/04 18:48:08-08:00 dhowells@redhat.com +1 -1 # Fix usage of setup_arg_pages() in IA64, MIPS, S390 and Sparc64 # # ChangeSet # 2005/01/04 21:21:04-08:00 dhowells@redhat.com # [PATCH] FRV: change setup_arg_pages() to take stack pointer # # The attached patch changes setup_arg_pages() to take the proposed initial stack # top for the new executable image. This makes it easier for the binfmt to place # the stack at a non-fixed location, such as happens in !MMU configurations. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/binfmts.h # 2005/01/04 18:48:08-08:00 dhowells@redhat.com +3 -1 # FRV: change setup_arg_pages() to take stack pointer # # fs/exec.c # 2005/01/04 20:24:35-08:00 dhowells@redhat.com +7 -5 # FRV: change setup_arg_pages() to take stack pointer # # fs/binfmt_som.c # 2005/01/04 18:48:08-08:00 dhowells@redhat.com +1 -1 # FRV: change setup_arg_pages() to take stack pointer # # fs/binfmt_elf.c # 2005/01/04 18:48:08-08:00 dhowells@redhat.com +1 -1 # FRV: change setup_arg_pages() to take stack pointer # # fs/binfmt_aout.c # 2005/01/04 18:48:08-08:00 dhowells@redhat.com +1 -1 # FRV: change setup_arg_pages() to take stack pointer # # arch/x86_64/ia32/ia32_binfmt.c # 2005/01/04 18:48:08-08:00 dhowells@redhat.com +4 -3 # FRV: change setup_arg_pages() to take stack pointer # # arch/x86_64/ia32/ia32_aout.c # 2005/01/04 18:48:08-08:00 dhowells@redhat.com +3 -2 # FRV: change setup_arg_pages() to take stack pointer # # ChangeSet # 2005/01/04 21:20:51-08:00 dhowells@redhat.com # [PATCH] FRV: procfs changes for nommu changes # # The attached patch splits some memory-related procfs files into MMU and !MMU # versions and places them in separate conditionally-compiled files. A header # file local to the fs/proc/ directory is used to declare functions and the like. # # Additionally, a !MMU-only proc file (/proc/maps) is provided so that master VMA # list in a uClinux kernel is viewable. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/proc/nommu.c # 2005/01/04 20:24:38-08:00 dhowells@redhat.com +140 -0 # FRV: procfs changes for nommu changes # # fs/proc/mmu.c # 2005/01/04 18:48:08-08:00 dhowells@redhat.com +67 -0 # FRV: procfs changes for nommu changes # # fs/proc/task_nommu.c # 2005/01/04 20:24:38-08:00 dhowells@redhat.com +53 -18 # FRV: procfs changes for nommu changes # # fs/proc/task_mmu.c # 2005/01/04 18:48:08-08:00 dhowells@redhat.com +32 -0 # FRV: procfs changes for nommu changes # # fs/proc/proc_misc.c # 2005/01/04 20:24:32-08:00 dhowells@redhat.com +6 -44 # FRV: procfs changes for nommu changes # # fs/proc/nommu.c # 2005/01/04 20:24:38-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/fs/proc/nommu.c # # fs/proc/mmu.c # 2005/01/04 18:48:08-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/fs/proc/mmu.c # # fs/proc/internal.h # 2005/01/04 18:48:08-08:00 dhowells@redhat.com +48 -0 # FRV: procfs changes for nommu changes # # fs/proc/base.c # 2005/01/04 18:48:08-08:00 dhowells@redhat.com +1 -42 # FRV: procfs changes for nommu changes # # fs/proc/array.c # 2005/01/04 18:48:08-08:00 dhowells@redhat.com +1 -0 # FRV: procfs changes for nommu changes # # fs/proc/Makefile # 2005/01/04 18:48:08-08:00 dhowells@redhat.com +2 -2 # FRV: procfs changes for nommu changes # # fs/proc/internal.h # 2005/01/04 18:48:08-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/fs/proc/internal.h # # ChangeSet # 2005/01/04 21:20:39-08:00 dhowells@redhat.com # [PATCH] FRV: Better mmap support in uClinux # # The attached patch changes mm/nommu.c to better support mmap() when MMU # support is disabled (as it is in uClinux). # # This was discussed on the uclibc mailing list in a thread revolving around the # following message: # # Date: Thu, 1 Apr 2004 12:05:50 +1000 # From: David McCullough # To: David Howells # Cc: Alexandre Oliva , uclibc@uclibc.org # Subject: Re: [uClibc] mmaps for malloc should be private # Message-ID: <20040401020550.GG3150@beast> # # The revised rules are: # # (1) Anonymous mappings can be shared or private, read or write. # # (2) Chardevs can be mapped shared, provided they supply a get_unmapped_area() # file operation and use that to set the address of the mapping (as a frame # buffer driver might do, for instance). # # (3) Files (and blockdevs) cannot be mapped shared since it is not really # possible to honour this by writing any changes back to the backing device. # # (4) Files (or sections thereof) can be mapped read-only private, in which case # the mapped bit will be read into memory and shared, and its address will # be returned. Any excess beyond EOF will be cleared. # # (5) Files (or sections thereof) can be mapped writable private, in which case # a private copy of the mapped bit will be read into a new bit memory, and # its address will be returned. Any excess beyond EOF will be cleared. # # Mappings are per MM structure still. You can only unmap what you've mapped. # # Fork semantics are irrelevant, since there's no fork. # # A global list of VMA's is maintained to keep track of the bits of memory # currently mapped on the system. # # The new binfmt makes use of (4) to implement shared libraries. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/nommu.c # 2005/01/04 20:24:38-08:00 dhowells@redhat.com +339 -159 # FRV: Better mmap support in uClinux # # include/linux/mm.h # 2005/01/04 20:24:38-08:00 dhowells@redhat.com +30 -0 # FRV: Better mmap support in uClinux # # ChangeSet # 2005/01/04 21:20:24-08:00 dhowells@redhat.com # [PATCH] FRV: Make calibrate_delay() optional # # The attached patch makes calibrate_delay() optional. In this architecture, it's # a waste of time since we can predict exactly what it's going to come up with # just by looking at the CPU's hardware clock registers. Thus far, we haven't # seen a board with any clock not dependent on the CPU's clock. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # init/main.c # 2005/01/04 20:24:21-08:00 dhowells@redhat.com +0 -70 # FRV: Make calibrate_delay() optional # # init/Makefile # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +2 -0 # FRV: Make calibrate_delay() optional # # init/calibrate.c # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +79 -0 # FRV: Make calibrate_delay() optional # # include/linux/delay.h # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +1 -0 # FRV: Make calibrate_delay() optional # # include/asm-x86_64/proto.h # 2005/01/04 20:24:21-08:00 dhowells@redhat.com +0 -1 # FRV: Make calibrate_delay() optional # # include/asm-m32r/smp.h # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +0 -1 # FRV: Make calibrate_delay() optional # # arch/x86_64/Kconfig # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +4 -0 # FRV: Make calibrate_delay() optional # # arch/v850/Kconfig # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +3 -0 # FRV: Make calibrate_delay() optional # # arch/um/Kconfig # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +4 -0 # FRV: Make calibrate_delay() optional # # arch/sparc64/Kconfig # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +4 -0 # FRV: Make calibrate_delay() optional # # arch/sparc/Kconfig # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +4 -0 # FRV: Make calibrate_delay() optional # # arch/sh64/Kconfig # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +4 -0 # FRV: Make calibrate_delay() optional # # arch/sh/Kconfig # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +4 -0 # FRV: Make calibrate_delay() optional # # arch/s390/Kconfig # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +4 -0 # FRV: Make calibrate_delay() optional # # arch/ppc64/Kconfig # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +4 -0 # FRV: Make calibrate_delay() optional # # arch/ppc/Kconfig # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +4 -0 # FRV: Make calibrate_delay() optional # # arch/parisc/Kconfig # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +4 -0 # FRV: Make calibrate_delay() optional # # arch/mips/Kconfig # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +4 -0 # FRV: Make calibrate_delay() optional # # arch/m68knommu/Kconfig # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +4 -0 # FRV: Make calibrate_delay() optional # # arch/m68k/Kconfig # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +4 -0 # FRV: Make calibrate_delay() optional # # arch/ia64/Kconfig # 2005/01/04 20:24:24-08:00 dhowells@redhat.com +4 -0 # FRV: Make calibrate_delay() optional # # arch/i386/Kconfig # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +4 -0 # FRV: Make calibrate_delay() optional # # arch/h8300/Kconfig # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +4 -0 # FRV: Make calibrate_delay() optional # # arch/cris/Kconfig # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +4 -0 # FRV: Make calibrate_delay() optional # # arch/arm26/Kconfig # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +4 -0 # FRV: Make calibrate_delay() optional # # arch/arm/Kconfig # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +4 -0 # FRV: Make calibrate_delay() optional # # arch/alpha/Kconfig # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +4 -0 # FRV: Make calibrate_delay() optional # # init/calibrate.c # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/init/calibrate.c # # ChangeSet # 2005/01/04 21:20:09-08:00 dhowells@redhat.com # [PATCH] FRV: Remaining Fujitsu FR-V arch include files # # The attached patch provides the remaining arch-specific include files for # the Fujitsu FR-V CPU arch. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-frv/virtconvert.h # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +42 -0 # FRV: Remaining Fujitsu FR-V arch include files # # include/asm-frv/user.h # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +80 -0 # FRV: Remaining Fujitsu FR-V arch include files # # include/asm-frv/unistd.h # 2005/01/04 20:24:37-08:00 dhowells@redhat.com +491 -0 # FRV: Remaining Fujitsu FR-V arch include files # # include/linux/suspend.h # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +1 -1 # FRV: Remaining Fujitsu FR-V arch include files # # include/linux/elf.h # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +5 -2 # FRV: Remaining Fujitsu FR-V arch include files # # include/asm-frv/virtconvert.h # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/virtconvert.h # # include/asm-frv/user.h # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/user.h # # include/asm-frv/unistd.h # 2005/01/04 20:24:37-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/unistd.h # # include/asm-frv/unaligned.h # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +203 -0 # FRV: Remaining Fujitsu FR-V arch include files # # include/asm-frv/unaligned.h # 2005/01/04 18:48:07-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/unaligned.h # # ChangeSet # 2005/01/04 21:19:55-08:00 dhowells@redhat.com # [PATCH] FRV: Yet more Fujitsu FR-V arch include files # # The attached patch provides the third 100KB or so of the arch-specific # include files for the Fujitsu FR-V CPU arch. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-frv/ucontext.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +12 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/uaccess.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +317 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/types.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +74 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/topology.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +14 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/tlbflush.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +76 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/tlb.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +23 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/timex.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +25 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/timer-regs.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +106 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/thread_info.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +158 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/termios.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +74 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/termbits.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +177 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/system.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +123 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/suspend.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +20 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/string.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +51 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/statfs.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +7 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/stat.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +100 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/spr-regs.h # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +401 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/spinlock.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +17 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/sockios.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +13 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/socket.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +51 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/smp.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +10 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/signal.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +187 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/siginfo.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +12 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/sigcontext.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +26 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/shmparam.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +7 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/shmbuf.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +43 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/setup.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +25 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/serial.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +19 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/serial-regs.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +44 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/sembuf.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +26 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/semaphore.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +161 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/segment.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +46 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/sections.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +46 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/scatterlist.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +32 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/resource.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +53 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/ucontext.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/ucontext.h # # include/asm-frv/uaccess.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/uaccess.h # # include/asm-frv/types.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/types.h # # include/asm-frv/topology.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/topology.h # # include/asm-frv/tlbflush.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/tlbflush.h # # include/asm-frv/tlb.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/tlb.h # # include/asm-frv/timex.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/timex.h # # include/asm-frv/timer-regs.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/timer-regs.h # # include/asm-frv/thread_info.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/thread_info.h # # include/asm-frv/termios.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/termios.h # # include/asm-frv/termbits.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/termbits.h # # include/asm-frv/system.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/system.h # # include/asm-frv/suspend.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/suspend.h # # include/asm-frv/string.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/string.h # # include/asm-frv/statfs.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/statfs.h # # include/asm-frv/stat.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/stat.h # # include/asm-frv/spr-regs.h # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/spr-regs.h # # include/asm-frv/spinlock.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/spinlock.h # # include/asm-frv/sockios.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/sockios.h # # include/asm-frv/socket.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/socket.h # # include/asm-frv/smp.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/smp.h # # include/asm-frv/signal.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/signal.h # # include/asm-frv/siginfo.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/siginfo.h # # include/asm-frv/sigcontext.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/sigcontext.h # # include/asm-frv/shmparam.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/shmparam.h # # include/asm-frv/shmbuf.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/shmbuf.h # # include/asm-frv/setup.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/setup.h # # include/asm-frv/serial.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/serial.h # # include/asm-frv/serial-regs.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/serial-regs.h # # include/asm-frv/sembuf.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/sembuf.h # # include/asm-frv/semaphore.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/semaphore.h # # include/asm-frv/segment.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/segment.h # # include/asm-frv/sections.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/sections.h # # include/asm-frv/scatterlist.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/scatterlist.h # # include/asm-frv/resource.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/resource.h # # include/asm-frv/registers.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +255 -0 # FRV: Yet more Fujitsu FR-V arch include files # # include/asm-frv/registers.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/registers.h # # ChangeSet # 2005/01/04 21:19:42-08:00 wli@holomorphy.com # [PATCH] convert FRV to use remap_pfn_range # # This patch converts FRV to use remap_pfn_range() in its # io_remap_page_range() function. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-frv/pgtable.h # 2005/01/04 20:24:36-08:00 wli@holomorphy.com +2 -1 # convert FRV to use remap_pfn_range # # ChangeSet # 2005/01/04 21:19:30-08:00 dhowells@redhat.com # [PATCH] FRV: More Fujitsu FR-V arch include files # # The attached patch provides the second 100KB or so of the arch-specific # include files for the Fujitsu FR-V CPU arch. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-frv/ptrace.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +86 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/processor.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +153 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/posix_types.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +66 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/poll.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +23 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/pgtable.h # 2005/01/04 20:24:41-08:00 dhowells@redhat.com +491 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/pgalloc.h # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +66 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/percpu.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +6 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/pci.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +108 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/param.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +23 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/page.h # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +104 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/namei.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +18 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/msgbuf.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +32 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/module.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +20 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/mmu_context.h # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +50 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/mmu.h # 2005/01/04 20:24:37-08:00 dhowells@redhat.com +42 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/mman.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +44 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/mem-layout.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +78 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/mb93493-regs.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +279 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/mb93493-irqs.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +52 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/mb93093-fpga-irqs.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +31 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/mb93091-fpga-irqs.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +44 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/mb86943a.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +39 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/mb-regs.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +185 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/math-emu.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +301 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/local.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +6 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/linkage.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +7 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/kmap_types.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +29 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/irq.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +44 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/irq-routing.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +70 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/irc-regs.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +53 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/ipc.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +33 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/ptrace.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/ptrace.h # # include/asm-frv/processor.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/processor.h # # include/asm-frv/posix_types.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/posix_types.h # # include/asm-frv/poll.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/poll.h # # include/asm-frv/pgtable.h # 2005/01/04 20:24:41-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/pgtable.h # # include/asm-frv/pgalloc.h # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/pgalloc.h # # include/asm-frv/percpu.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/percpu.h # # include/asm-frv/pci.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/pci.h # # include/asm-frv/param.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/param.h # # include/asm-frv/page.h # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/page.h # # include/asm-frv/namei.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/namei.h # # include/asm-frv/msgbuf.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/msgbuf.h # # include/asm-frv/module.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/module.h # # include/asm-frv/mmu_context.h # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/mmu_context.h # # include/asm-frv/mmu.h # 2005/01/04 20:24:37-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/mmu.h # # include/asm-frv/mman.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/mman.h # # include/asm-frv/mem-layout.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/mem-layout.h # # include/asm-frv/mb93493-regs.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/mb93493-regs.h # # include/asm-frv/mb93493-irqs.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/mb93493-irqs.h # # include/asm-frv/mb93093-fpga-irqs.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/mb93093-fpga-irqs.h # # include/asm-frv/mb93091-fpga-irqs.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/mb93091-fpga-irqs.h # # include/asm-frv/mb86943a.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/mb86943a.h # # include/asm-frv/mb-regs.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/mb-regs.h # # include/asm-frv/math-emu.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/math-emu.h # # include/asm-frv/local.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/local.h # # include/asm-frv/linkage.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/linkage.h # # include/asm-frv/kmap_types.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/kmap_types.h # # include/asm-frv/irq.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/irq.h # # include/asm-frv/irq-routing.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/irq-routing.h # # include/asm-frv/irc-regs.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/irc-regs.h # # include/asm-frv/ipcbuf.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +30 -0 # FRV: More Fujitsu FR-V arch include files # # include/asm-frv/ipc.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/ipc.h # # include/asm-frv/ipcbuf.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/ipcbuf.h # # ChangeSet # 2005/01/04 21:19:15-08:00 dhowells@redhat.com # [PATCH] frv: Fix PCI config space write # # The attached patch makes byte and word writes to PCI config space work. # The problem was that the pointer to the appropriate chunk of the config # port needs to be juggled to allow for the fact that FRV is big endian in # this case. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/frv/mb93090-mb00/pci-vdk.c # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +8 -3 # frv: Fix PCI config space write # # ChangeSet # 2005/01/04 21:19:03-08:00 dhowells@redhat.com # [PATCH] frv: PCI DMA fixes # # The attached patch makes cache flushing work correctly on DMA consistent # memory for the frv arch. On the FRV unmapped memory can't be flushed # directly, but has to be kmapped first since the flush instructions take # virtual pointers not physical ones. # # It also splits the MMU and !MMU versions into separate files. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-frv/dma-mapping.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +6 -32 # frv: PCI DMA fixes # # arch/frv/mb93090-mb00/pci-dma.c # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +62 -81 # frv: PCI DMA fixes # # arch/frv/mb93090-mb00/pci-dma-nommu.c # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +152 -0 # frv: PCI DMA fixes # # arch/frv/mb93090-mb00/Makefile # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +9 -1 # frv: PCI DMA fixes # # arch/frv/mb93090-mb00/pci-dma-nommu.c # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/mb93090-mb00/pci-dma-nommu.c # # ChangeSet # 2005/01/04 21:18:48-08:00 dhowells@redhat.com # [PATCH] frv: emove obsolete hardirq stuff from includes # # The attached patch removes irq_enter() and friends from asm-frv/hardirq.h as # they are now mandatorily defined in linux/hardirq.h. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-frv/hardirq.h # 2005/01/04 18:48:06-08:00 dhowells@redhat.com +0 -13 # frv: emove obsolete hardirq stuff from includes # # ChangeSet # 2005/01/04 21:18:35-08:00 dhowells@redhat.com # [PATCH] FRV: First batch of Fujitsu FR-V arch include files # # The attached patch provides the first 100KB or so of the arch-specific # include files for the Fujitsu FR-V CPU arch. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-frv/ioctls.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +82 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/ioctl.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +80 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/io.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +278 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/init.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +12 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/ide.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +43 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/hw_irq.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +16 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/highmem.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +183 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/hardirq.h # 2005/01/04 20:24:42-08:00 dhowells@redhat.com +43 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/gpio-regs.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +116 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/gdb-stub.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +118 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/fpu.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +12 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/fcntl.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +88 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/errno.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +7 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/elf.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +147 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/dma.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +129 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/dma-mapping.h # 2005/01/04 20:24:41-08:00 dhowells@redhat.com +210 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/dm9000.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +37 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/div64.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +1 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/delay.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +50 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/current.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +30 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/cputime.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +6 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/cpumask.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +6 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/cpu-irqs.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +87 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/checksum.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +183 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/cacheflush.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +91 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/cache.h # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +22 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/byteorder.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +13 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/busctl-regs.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +41 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/bugs.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +14 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/bug.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +51 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/bitops.h # 2005/01/04 20:24:37-08:00 dhowells@redhat.com +390 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/ax88796.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +22 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/ioctls.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/ioctls.h # # include/asm-frv/ioctl.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/ioctl.h # # include/asm-frv/io.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/io.h # # include/asm-frv/init.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/init.h # # include/asm-frv/ide.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/ide.h # # include/asm-frv/hw_irq.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/hw_irq.h # # include/asm-frv/highmem.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/highmem.h # # include/asm-frv/hardirq.h # 2005/01/04 20:24:42-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/hardirq.h # # include/asm-frv/gpio-regs.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/gpio-regs.h # # include/asm-frv/gdb-stub.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/gdb-stub.h # # include/asm-frv/fpu.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/fpu.h # # include/asm-frv/fcntl.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/fcntl.h # # include/asm-frv/errno.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/errno.h # # include/asm-frv/elf.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/elf.h # # include/asm-frv/dma.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/dma.h # # include/asm-frv/dma-mapping.h # 2005/01/04 20:24:41-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/dma-mapping.h # # include/asm-frv/dm9000.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/dm9000.h # # include/asm-frv/div64.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/div64.h # # include/asm-frv/delay.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/delay.h # # include/asm-frv/current.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/current.h # # include/asm-frv/cputime.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/cputime.h # # include/asm-frv/cpumask.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/cpumask.h # # include/asm-frv/cpu-irqs.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/cpu-irqs.h # # include/asm-frv/checksum.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/checksum.h # # include/asm-frv/cacheflush.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/cacheflush.h # # include/asm-frv/cache.h # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/cache.h # # include/asm-frv/byteorder.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/byteorder.h # # include/asm-frv/busctl-regs.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/busctl-regs.h # # include/asm-frv/bugs.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/bugs.h # # include/asm-frv/bug.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/bug.h # # include/asm-frv/bitops.h # 2005/01/04 20:24:37-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/bitops.h # # include/asm-frv/ax88796.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/ax88796.h # # include/asm-frv/atomic.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +417 -0 # FRV: First batch of Fujitsu FR-V arch include files # # include/asm-frv/atomic.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-frv/atomic.h # # ChangeSet # 2005/01/04 21:18:21-08:00 haveblue@us.ibm.com # [PATCH] kill off highmem_start_page # # People love to do comparisons with highmem_start_page. However, where # CONFIG_HIGHMEM=y and there is no actual highmem, there's no real page at # *highmem_start_page. # # That's usually not a problem, but CONFIG_NONLINEAR is a bit more strict and # catches the bogus address tranlations. # # There are about a gillion different ways to find out of a 'struct page' is # highmem or not. Why not just check page_flags? Just use PageHighMem() # wherever there used to be a highmem_start_page comparison. Then, kill off # highmem_start_page. # # This removes more code than it adds, and gets rid of some nasty # #ifdefs in .c files. # # Signed-off-by: Dave Hansen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/frv/mm/init.c # 2005/01/04 20:24:36-08:00 haveblue@us.ibm.com +0 -5 # kill off highmem_start_page # # arch/frv/mm/highmem.c # 2005/01/04 18:48:05-08:00 haveblue@us.ibm.com +2 -2 # kill off highmem_start_page # # ChangeSet # 2005/01/04 21:18:08-08:00 dhowells@redhat.com # [PATCH] Put memory in DMA zone not Normal zone in FRV arch # # The attached patch makes the FR-V arch put all its memory in the DMA zone # rather than the Normal zone since all the memory is available as a DMA # target. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/frv/mm/init.c # 2005/01/04 20:24:42-08:00 dhowells@redhat.com +2 -2 # Put memory in DMA zone not Normal zone in FRV arch # # ChangeSet # 2005/01/04 21:17:55-08:00 dhowells@redhat.com # [PATCH] FRV: Fujitsu FR-V CPU arch implementation part 9 # # The attached patches provides part 9 of an architecture implementation # for the Fujitsu FR-V CPU series, configurably as Linux or uClinux. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/frv/mm/unaligned.c # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +218 -0 # FRV: Fujitsu FR-V CPU arch implementation part 9 # # arch/frv/mm/tlb-miss.S # 2005/01/04 20:24:37-08:00 dhowells@redhat.com +631 -0 # FRV: Fujitsu FR-V CPU arch implementation part 9 # # arch/frv/mm/tlb-flush.S # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +185 -0 # FRV: Fujitsu FR-V CPU arch implementation part 9 # # arch/frv/mm/pgalloc.c # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +159 -0 # FRV: Fujitsu FR-V CPU arch implementation part 9 # # arch/frv/mm/mmu-context.c # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +210 -0 # FRV: Fujitsu FR-V CPU arch implementation part 9 # # arch/frv/mm/kmap.c # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +56 -0 # FRV: Fujitsu FR-V CPU arch implementation part 9 # # arch/frv/mm/init.c # 2005/01/04 20:24:42-08:00 dhowells@redhat.com +244 -0 # FRV: Fujitsu FR-V CPU arch implementation part 9 # # arch/frv/mm/highmem.c # 2005/01/04 20:24:42-08:00 dhowells@redhat.com +33 -0 # FRV: Fujitsu FR-V CPU arch implementation part 9 # # arch/frv/mm/fault.c # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +323 -0 # FRV: Fujitsu FR-V CPU arch implementation part 9 # # arch/frv/mm/extable.c # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +91 -0 # FRV: Fujitsu FR-V CPU arch implementation part 9 # # arch/frv/mm/elf-fdpic.c # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +123 -0 # FRV: Fujitsu FR-V CPU arch implementation part 9 # # arch/frv/mm/dma-alloc.c # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +186 -0 # FRV: Fujitsu FR-V CPU arch implementation part 9 # # arch/frv/mm/Makefile # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +9 -0 # FRV: Fujitsu FR-V CPU arch implementation part 9 # # arch/frv/mm/unaligned.c # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/mm/unaligned.c # # arch/frv/mm/tlb-miss.S # 2005/01/04 20:24:37-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/mm/tlb-miss.S # # arch/frv/mm/tlb-flush.S # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/mm/tlb-flush.S # # arch/frv/mm/pgalloc.c # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/mm/pgalloc.c # # arch/frv/mm/mmu-context.c # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/mm/mmu-context.c # # arch/frv/mm/kmap.c # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/mm/kmap.c # # arch/frv/mm/init.c # 2005/01/04 20:24:42-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/mm/init.c # # arch/frv/mm/highmem.c # 2005/01/04 20:24:42-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/mm/highmem.c # # arch/frv/mm/fault.c # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/mm/fault.c # # arch/frv/mm/extable.c # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/mm/extable.c # # arch/frv/mm/elf-fdpic.c # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/mm/elf-fdpic.c # # arch/frv/mm/dma-alloc.c # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/mm/dma-alloc.c # # arch/frv/mm/cache-page.c # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +66 -0 # FRV: Fujitsu FR-V CPU arch implementation part 9 # # arch/frv/mm/Makefile # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/mm/Makefile # # arch/frv/mm/cache-page.c # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/mm/cache-page.c # # ChangeSet # 2005/01/04 21:17:41-08:00 dhowells@redhat.com # [PATCH] FRV: Fujitsu FR-V CPU arch implementation part 8 # # The attached patches provides part 8 of an architecture implementation # for the Fujitsu FR-V CPU series, configurably as Linux or uClinux. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/frv/mb93090-mb00/pci-vdk.c # 2005/01/04 20:24:41-08:00 dhowells@redhat.com +462 -0 # FRV: Fujitsu FR-V CPU arch implementation part 8 # # arch/frv/mb93090-mb00/pci-irq.c # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +70 -0 # FRV: Fujitsu FR-V CPU arch implementation part 8 # # arch/frv/mb93090-mb00/pci-frv.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +47 -0 # FRV: Fujitsu FR-V CPU arch implementation part 8 # # arch/frv/mb93090-mb00/pci-frv.c # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +363 -0 # FRV: Fujitsu FR-V CPU arch implementation part 8 # # arch/frv/mb93090-mb00/pci-dma.c # 2005/01/04 20:24:41-08:00 dhowells@redhat.com +124 -0 # FRV: Fujitsu FR-V CPU arch implementation part 8 # # arch/frv/mb93090-mb00/pci-vdk.c # 2005/01/04 20:24:41-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/mb93090-mb00/pci-vdk.c # # arch/frv/mb93090-mb00/pci-irq.c # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/mb93090-mb00/pci-irq.c # # arch/frv/mb93090-mb00/pci-frv.h # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/mb93090-mb00/pci-frv.h # # arch/frv/mb93090-mb00/pci-frv.c # 2005/01/04 18:48:05-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/mb93090-mb00/pci-frv.c # # arch/frv/mb93090-mb00/pci-dma.c # 2005/01/04 20:24:41-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/mb93090-mb00/pci-dma.c # # arch/frv/mb93090-mb00/Makefile # 2005/01/04 20:24:41-08:00 dhowells@redhat.com +5 -0 # FRV: Fujitsu FR-V CPU arch implementation part 8 # # arch/frv/mb93090-mb00/Makefile # 2005/01/04 20:24:41-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/mb93090-mb00/Makefile # # ChangeSet # 2005/01/04 21:17:28-08:00 dhowells@redhat.com # [PATCH] FRV: Fujitsu FR-V CPU arch implementation part 7 # # The attached patches provides part 7 of an architecture implementation # for the Fujitsu FR-V CPU series, configurably as Linux or uClinux. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/frv/lib/outsl_sw.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +45 -0 # FRV: Fujitsu FR-V CPU arch implementation part 7 # # arch/frv/lib/outsl_ns.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +59 -0 # FRV: Fujitsu FR-V CPU arch implementation part 7 # # arch/frv/lib/memset.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +182 -0 # FRV: Fujitsu FR-V CPU arch implementation part 7 # # arch/frv/lib/memcpy.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +135 -0 # FRV: Fujitsu FR-V CPU arch implementation part 7 # # arch/frv/lib/insl_sw.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +40 -0 # FRV: Fujitsu FR-V CPU arch implementation part 7 # # arch/frv/lib/insl_ns.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +52 -0 # FRV: Fujitsu FR-V CPU arch implementation part 7 # # arch/frv/lib/checksum.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +148 -0 # FRV: Fujitsu FR-V CPU arch implementation part 7 # # arch/frv/lib/cache.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +98 -0 # FRV: Fujitsu FR-V CPU arch implementation part 7 # # arch/frv/lib/atomic-ops.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +265 -0 # FRV: Fujitsu FR-V CPU arch implementation part 7 # # arch/frv/lib/__negdi2.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +28 -0 # FRV: Fujitsu FR-V CPU arch implementation part 7 # # arch/frv/lib/__muldi3.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +32 -0 # FRV: Fujitsu FR-V CPU arch implementation part 7 # # arch/frv/lib/__lshrdi3.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +40 -0 # FRV: Fujitsu FR-V CPU arch implementation part 7 # # arch/frv/lib/__ashrdi3.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +41 -0 # FRV: Fujitsu FR-V CPU arch implementation part 7 # # arch/frv/lib/Makefile # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +8 -0 # FRV: Fujitsu FR-V CPU arch implementation part 7 # # arch/frv/lib/outsl_sw.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/lib/outsl_sw.S # # arch/frv/lib/outsl_ns.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/lib/outsl_ns.S # # arch/frv/lib/memset.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/lib/memset.S # # arch/frv/lib/memcpy.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/lib/memcpy.S # # arch/frv/lib/insl_sw.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/lib/insl_sw.S # # arch/frv/lib/insl_ns.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/lib/insl_ns.S # # arch/frv/lib/checksum.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/lib/checksum.c # # arch/frv/lib/cache.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/lib/cache.S # # arch/frv/lib/atomic-ops.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/lib/atomic-ops.S # # arch/frv/lib/__negdi2.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/lib/__negdi2.S # # arch/frv/lib/__muldi3.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/lib/__muldi3.S # # arch/frv/lib/__lshrdi3.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/lib/__lshrdi3.S # # arch/frv/lib/__ashrdi3.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/lib/__ashrdi3.S # # arch/frv/lib/__ashldi3.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +40 -0 # FRV: Fujitsu FR-V CPU arch implementation part 7 # # arch/frv/lib/Makefile # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/lib/Makefile # # arch/frv/lib/__ashldi3.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/lib/__ashldi3.S # # ChangeSet # 2005/01/04 21:17:14-08:00 dhowells@redhat.com # [PATCH] FRV: Fujitsu FR-V CPU arch implementation part 6 # # The attached patches provides part 6 of an architecture implementation # for the Fujitsu FR-V CPU series, configurably as Linux or uClinux. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/frv/kernel/uaccess.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +95 -0 # FRV: Fujitsu FR-V CPU arch implementation part 6 # # arch/frv/kernel/traps.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +431 -0 # FRV: Fujitsu FR-V CPU arch implementation part 6 # # arch/frv/kernel/time.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +234 -0 # FRV: Fujitsu FR-V CPU arch implementation part 6 # # arch/frv/kernel/sys_frv.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +210 -0 # FRV: Fujitsu FR-V CPU arch implementation part 6 # # arch/frv/kernel/uaccess.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/uaccess.c # # arch/frv/kernel/traps.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/traps.c # # arch/frv/kernel/time.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/time.c # # arch/frv/kernel/sysctl.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +206 -0 # FRV: Fujitsu FR-V CPU arch implementation part 6 # # arch/frv/kernel/sys_frv.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/sys_frv.c # # arch/frv/kernel/sysctl.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/sysctl.c # # ChangeSet # 2005/01/04 21:17:01-08:00 dhowells@redhat.com # [PATCH] FRV: Fujitsu FR-V CPU arch implementation part 5 # # The attached patches provides part 5 of an architecture implementation # for the Fujitsu FR-V CPU series, configurably as Linux or uClinux. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/frv/kernel/switch_to.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +486 -0 # FRV: Fujitsu FR-V CPU arch implementation part 5 # # arch/frv/kernel/sleep.S # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +356 -0 # FRV: Fujitsu FR-V CPU arch implementation part 5 # # arch/frv/kernel/signal.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +595 -0 # FRV: Fujitsu FR-V CPU arch implementation part 5 # # arch/frv/kernel/setup.c # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +1202 -0 # FRV: Fujitsu FR-V CPU arch implementation part 5 # # arch/frv/kernel/semaphore.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +142 -0 # FRV: Fujitsu FR-V CPU arch implementation part 5 # # arch/frv/kernel/ptrace.c # 2005/01/04 20:24:37-08:00 dhowells@redhat.com +771 -0 # FRV: Fujitsu FR-V CPU arch implementation part 5 # # arch/frv/kernel/switch_to.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/switch_to.S # # arch/frv/kernel/sleep.S # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/sleep.S # # arch/frv/kernel/signal.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/signal.c # # arch/frv/kernel/setup.c # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/setup.c # # arch/frv/kernel/semaphore.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/semaphore.c # # arch/frv/kernel/ptrace.c # 2005/01/04 20:24:37-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/ptrace.c # # ChangeSet # 2005/01/04 21:16:47-08:00 dhowells@redhat.com # [PATCH] FRV: Fujitsu FR-V CPU arch implementation part 4 # # The attached patches provides part 4 of an architecture implementation # for the Fujitsu FR-V CPU series, configurably as Linux or uClinux. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/frv/kernel/process.c # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +384 -0 # FRV: Fujitsu FR-V CPU arch implementation part 4 # # arch/frv/kernel/pm.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +432 -0 # FRV: Fujitsu FR-V CPU arch implementation part 4 # # arch/frv/kernel/pm-mb93093.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +66 -0 # FRV: Fujitsu FR-V CPU arch implementation part 4 # # arch/frv/kernel/local.h # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +56 -0 # FRV: Fujitsu FR-V CPU arch implementation part 4 # # arch/frv/kernel/kernel_thread.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +77 -0 # FRV: Fujitsu FR-V CPU arch implementation part 4 # # arch/frv/kernel/irq.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +764 -0 # FRV: Fujitsu FR-V CPU arch implementation part 4 # # arch/frv/kernel/irq-routing.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +291 -0 # FRV: Fujitsu FR-V CPU arch implementation part 4 # # arch/frv/kernel/irq-mb93493.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +108 -0 # FRV: Fujitsu FR-V CPU arch implementation part 4 # # arch/frv/kernel/irq-mb93093.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +99 -0 # FRV: Fujitsu FR-V CPU arch implementation part 4 # # arch/frv/kernel/irq-mb93091.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +116 -0 # FRV: Fujitsu FR-V CPU arch implementation part 4 # # arch/frv/kernel/init_task.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +39 -0 # FRV: Fujitsu FR-V CPU arch implementation part 4 # # arch/frv/kernel/head-uc-fr555.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +347 -0 # FRV: Fujitsu FR-V CPU arch implementation part 4 # # arch/frv/kernel/head-uc-fr451.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +174 -0 # FRV: Fujitsu FR-V CPU arch implementation part 4 # # arch/frv/kernel/Makefile # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +22 -0 # FRV: Fujitsu FR-V CPU arch implementation part 4 # # arch/frv/kernel/process.c # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/process.c # # arch/frv/kernel/pm.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/pm.c # # arch/frv/kernel/pm-mb93093.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/pm-mb93093.c # # arch/frv/kernel/local.h # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/local.h # # arch/frv/kernel/kernel_thread.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/kernel_thread.S # # arch/frv/kernel/irq.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/irq.c # # arch/frv/kernel/irq-routing.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/irq-routing.c # # arch/frv/kernel/irq-mb93493.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/irq-mb93493.c # # arch/frv/kernel/irq-mb93093.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/irq-mb93093.c # # arch/frv/kernel/irq-mb93091.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/irq-mb93091.c # # arch/frv/kernel/init_task.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/init_task.c # # arch/frv/kernel/head-uc-fr555.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/head-uc-fr555.S # # arch/frv/kernel/head-uc-fr451.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/head-uc-fr451.S # # arch/frv/kernel/head-uc-fr401.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +311 -0 # FRV: Fujitsu FR-V CPU arch implementation part 4 # # arch/frv/kernel/Makefile # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/Makefile # # arch/frv/kernel/head-uc-fr401.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/head-uc-fr401.S # # ChangeSet # 2005/01/04 21:16:34-08:00 dhowells@redhat.com # [PATCH] FRV: Fujitsu FR-V CPU arch implementation part 3 # # The attached patches provides part 3 of an architecture implementation # for the Fujitsu FR-V CPU series, configurably as Linux or uClinux. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/frv/kernel/head.inc # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +50 -0 # FRV: Fujitsu FR-V CPU arch implementation part 3 # # arch/frv/kernel/head.S # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +638 -0 # FRV: Fujitsu FR-V CPU arch implementation part 3 # # arch/frv/kernel/head-mmu-fr451.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +374 -0 # FRV: Fujitsu FR-V CPU arch implementation part 3 # # arch/frv/kernel/head.inc # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/head.inc # # arch/frv/kernel/head.S # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/head.S # # arch/frv/kernel/head-mmu-fr451.S # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/head-mmu-fr451.S # # arch/frv/kernel/gdb-stub.c # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +2082 -0 # FRV: Fujitsu FR-V CPU arch implementation part 3 # # arch/frv/kernel/gdb-io.h # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +55 -0 # FRV: Fujitsu FR-V CPU arch implementation part 3 # # arch/frv/kernel/gdb-io.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +216 -0 # FRV: Fujitsu FR-V CPU arch implementation part 3 # # arch/frv/kernel/frv_ksyms.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +124 -0 # FRV: Fujitsu FR-V CPU arch implementation part 3 # # arch/frv/kernel/gdb-stub.c # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/gdb-stub.c # # arch/frv/kernel/gdb-io.h # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/gdb-io.h # # arch/frv/kernel/gdb-io.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/gdb-io.c # # arch/frv/kernel/frv_ksyms.c # 2005/01/04 18:48:04-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/frv_ksyms.c # # ChangeSet # 2005/01/04 21:16:20-08:00 dhowells@redhat.com # [PATCH] FRV: Fujitsu FR-V CPU arch implementation part 2 # # The attached patches provides part 2 of an architecture implementation # for the Fujitsu FR-V CPU series, configurably as Linux or uClinux. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/frv/kernel/entry.S # 2005/01/04 20:24:37-08:00 dhowells@redhat.com +1420 -0 # FRV: Fujitsu FR-V CPU arch implementation part 2 # # arch/frv/kernel/entry-table.S # 2005/01/04 20:24:37-08:00 dhowells@redhat.com +277 -0 # FRV: Fujitsu FR-V CPU arch implementation part 2 # # arch/frv/kernel/dma.c # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +464 -0 # FRV: Fujitsu FR-V CPU arch implementation part 2 # # arch/frv/kernel/debug-stub.c # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +259 -0 # FRV: Fujitsu FR-V CPU arch implementation part 2 # # arch/frv/kernel/cmode.S # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +190 -0 # FRV: Fujitsu FR-V CPU arch implementation part 2 # # arch/frv/kernel/entry.S # 2005/01/04 20:24:37-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/entry.S # # arch/frv/kernel/entry-table.S # 2005/01/04 20:24:37-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/entry-table.S # # arch/frv/kernel/dma.c # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/dma.c # # arch/frv/kernel/debug-stub.c # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/debug-stub.c # # arch/frv/kernel/cmode.S # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/cmode.S # # arch/frv/kernel/break.S # 2005/01/04 20:24:37-08:00 dhowells@redhat.com +713 -0 # FRV: Fujitsu FR-V CPU arch implementation part 2 # # arch/frv/kernel/break.S # 2005/01/04 20:24:37-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/break.S # # ChangeSet # 2005/01/04 21:16:06-08:00 dhowells@redhat.com # [PATCH] FRV: Fujitsu FR-V CPU arch implementation part 1 # # The attached patches provides part 1 of an architecture implementation # for the Fujitsu FR-V CPU series, configurably as Linux or uClinux. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/frv/kernel/vmlinux.lds.S # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +187 -0 # FRV: Fujitsu FR-V CPU arch implementation part 1 # # arch/frv/boot/Makefile # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +73 -0 # FRV: Fujitsu FR-V CPU arch implementation part 1 # # arch/frv/Makefile # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +118 -0 # FRV: Fujitsu FR-V CPU arch implementation part 1 # # arch/frv/Kconfig # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +496 -0 # FRV: Fujitsu FR-V CPU arch implementation part 1 # # arch/frv/kernel/vmlinux.lds.S # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/kernel/vmlinux.lds.S # # arch/frv/boot/Makefile # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/boot/Makefile # # arch/frv/Makefile # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/Makefile # # arch/frv/Kconfig # 2005/01/04 20:24:36-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/frv/Kconfig # # ChangeSet # 2005/01/04 21:15:53-08:00 dhowells@redhat.com # [PATCH] FRV: Fujitsu FR-V arch documentation # # The attached patch provides the arch-specific documentation for the Fujitsu # FR-V CPU arch. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # Documentation/fujitsu/frv/mmu-layout.txt # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +306 -0 # FRV: Fujitsu FR-V arch documentation # # Documentation/fujitsu/frv/gdbstub.txt # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +130 -0 # FRV: Fujitsu FR-V arch documentation # # Documentation/fujitsu/frv/gdbinit # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +102 -0 # FRV: Fujitsu FR-V arch documentation # # Documentation/fujitsu/frv/features.txt # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +310 -0 # FRV: Fujitsu FR-V arch documentation # # Documentation/fujitsu/frv/configuring.txt # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +125 -0 # FRV: Fujitsu FR-V arch documentation # # Documentation/fujitsu/frv/clock.txt # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +65 -0 # FRV: Fujitsu FR-V arch documentation # # Documentation/fujitsu/frv/booting.txt # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +181 -0 # FRV: Fujitsu FR-V arch documentation # # Documentation/fujitsu/frv/README.txt # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +51 -0 # FRV: Fujitsu FR-V arch documentation # # Documentation/fujitsu/frv/mmu-layout.txt # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/Documentation/fujitsu/frv/mmu-layout.txt # # Documentation/fujitsu/frv/gdbstub.txt # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/Documentation/fujitsu/frv/gdbstub.txt # # Documentation/fujitsu/frv/gdbinit # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/Documentation/fujitsu/frv/gdbinit # # Documentation/fujitsu/frv/features.txt # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/Documentation/fujitsu/frv/features.txt # # Documentation/fujitsu/frv/configuring.txt # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/Documentation/fujitsu/frv/configuring.txt # # Documentation/fujitsu/frv/clock.txt # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/Documentation/fujitsu/frv/clock.txt # # Documentation/fujitsu/frv/booting.txt # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/Documentation/fujitsu/frv/booting.txt # # Documentation/fujitsu/frv/atomic-ops.txt # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +134 -0 # FRV: Fujitsu FR-V arch documentation # # Documentation/fujitsu/frv/README.txt # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/Documentation/fujitsu/frv/README.txt # # Documentation/fujitsu/frv/atomic-ops.txt # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/Documentation/fujitsu/frv/atomic-ops.txt # # ChangeSet # 2005/01/04 21:15:39-08:00 dhowells@redhat.com # [PATCH] FRV: Fujitsu FR-V CPU arch maintainer record # # The attached patch supplies the maintainer record for an architecture # implementation for the Fujistu FR-V CPU series. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # MAINTAINERS # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +5 -0 # FRV: Fujitsu FR-V CPU arch maintainer record # # ChangeSet # 2005/01/04 21:15:26-08:00 dhowells@redhat.com # [PATCH] VM routine fixes # # The attached patch fixes a number of problems in the VM routines: # # (1) Some inline funcs don't compile if CONFIG_MMU is not set. # # (2) swapper_pml4 needn't exist if CONFIG_MMU is not set. # # (3) __free_pages_ok() doesn't counter set_page_refs() different behaviour if # CONFIG_MMU is not set. # # (4) swsusp.c invokes TLB flushing functions without including the header file # that declares them. # # CONFIG_SHMEM semantics: # # - If MMU: Always enabled if !EMBEDDED # # - If MMU && EMBEDDED: configurable # # - If !MMU: disabled # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/tiny-shmem.c # 2005/01/04 20:24:38-08:00 dhowells@redhat.com +2 -0 # VM routine fixes # # mm/page_alloc.c # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +11 -2 # VM routine fixes # # mm/internal.h # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +13 -0 # VM routine fixes # # mm/bootmem.c # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +6 -4 # VM routine fixes # # mm/Makefile # 2005/01/04 20:24:35-08:00 dhowells@redhat.com +2 -2 # VM routine fixes # # kernel/sysctl.c # 2005/01/04 20:24:26-08:00 dhowells@redhat.com +4 -0 # VM routine fixes # # kernel/power/swsusp.c # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +1 -0 # VM routine fixes # # init/Kconfig # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +2 -1 # VM routine fixes # # mm/internal.h # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/mm/internal.h # # ChangeSet # 2005/01/04 21:15:13-08:00 dhowells@redhat.com # [PATCH] frv: add initdata variable spec in a header file # # The attached patch marks a variable as __initdata in a header file so that # the FRV gcc generates the correct access method as initdata variables are # too far from the GPREL pointer to access directly. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/bootmem.h # 2005/01/04 18:48:03-08:00 dhowells@redhat.com +1 -1 # frv: add initdata variable spec in a header file # # ChangeSet # 2005/01/04 21:15:00-08:00 dhowells@redhat.com # [PATCH] GP-REL data support # # The attached patch makes it possible to support gp-rel addressing for small # variables. Since the FR-V cpu's have fixed-length instructions and plenty of # general-purpose registers, one register is nominated as a base for the small # data area. This makes it possible to use single-insn accesses to access # global and static variables instead of having to use multiple instructions. # # This, however, causes problems with small variables used to pinpoint the # beginning and end of sections. The compiler assumes it can use gp-rel # addressing for these, but the linker then complains because the displacement # is out of range. # # By declaring certain variables as arrays or by forcing them into named # sections, the compiler is persuaded to access them as if they can be outside # the displacement range. Declaring the variables as "const void" type also # works. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # security/security.c # 2005/01/04 18:48:02-08:00 dhowells@redhat.com +2 -2 # GP-REL data support # # kernel/power/swsusp.c # 2005/01/04 20:24:45-08:00 dhowells@redhat.com +1 -1 # GP-REL data support # # kernel/kallsyms.c # 2005/01/04 18:48:02-08:00 dhowells@redhat.com +3 -4 # GP-REL data support # # init/version.c # 2005/01/04 18:48:02-08:00 dhowells@redhat.com +1 -1 # GP-REL data support # # init/main.c # 2005/01/04 20:24:40-08:00 dhowells@redhat.com +7 -9 # GP-REL data support # # init/initramfs.c # 2005/01/04 18:48:02-08:00 dhowells@redhat.com +3 -3 # GP-REL data support # # include/linux/kernel.h # 2005/01/04 20:24:26-08:00 dhowells@redhat.com +2 -0 # GP-REL data support # # include/linux/jiffies.h # 2005/01/04 18:48:02-08:00 dhowells@redhat.com +8 -2 # GP-REL data support # # include/linux/init.h # 2005/01/04 18:48:02-08:00 dhowells@redhat.com +2 -2 # GP-REL data support # # include/asm-sparc64/sections.h # 2005/01/04 18:48:02-08:00 dhowells@redhat.com +1 -1 # GP-REL data support # # include/asm-ppc/sections.h # 2005/01/04 18:48:02-08:00 dhowells@redhat.com +0 -2 # GP-REL data support # # include/asm-ia64/sections.h # 2005/01/04 18:48:02-08:00 dhowells@redhat.com +0 -1 # GP-REL data support # # include/asm-generic/sections.h # 2005/01/04 18:48:02-08:00 dhowells@redhat.com +1 -0 # GP-REL data support # # fs/proc/proc_misc.c # 2005/01/04 20:24:39-08:00 dhowells@redhat.com +0 -1 # GP-REL data support # # drivers/char/tty_io.c # 2005/01/04 20:24:30-08:00 dhowells@redhat.com +2 -2 # GP-REL data support # # ChangeSet # 2005/01/04 21:14:46-08:00 dhowells@redhat.com # [PATCH] out-of-line implementation of find_next_bit() # # The attached patch provides an out-of-line implementation of find_next_bit() # and rearranges linux/bitops.h to avoid a dependency loop between inline # functions in there and in asm/bitops.h trying to include one another. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # lib/find_next_bit.c # 2005/01/04 18:48:02-08:00 dhowells@redhat.com +55 -0 # out-of-line implementation of find_next_bit() # # lib/Makefile # 2005/01/04 20:24:21-08:00 dhowells@redhat.com +1 -0 # out-of-line implementation of find_next_bit() # # include/linux/bitops.h # 2005/01/04 18:48:02-08:00 dhowells@redhat.com +6 -1 # out-of-line implementation of find_next_bit() # # lib/find_next_bit.c # 2005/01/04 18:48:02-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/lib/find_next_bit.c # # ChangeSet # 2005/01/04 21:14:32-08:00 sfr@canb.auug.org.au # [PATCH] ppc64: tidy up the htab_data structure # # More tidying up. # # The htab_data structure contained 5 fields or which two were completely # unused and one other was just kept for printing at boot time. I have mode # the remaining two into global variables. # # Built and booted on iSeries (which is always lpar) and on pSeries without # partitioning. # # Signed-off-by: Stephen Rothwell # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ppc64/mmu.h # 2005/01/04 18:48:02-08:00 sfr@canb.auug.org.au +2 -9 # ppc64: tidy up the htab_data structure # # arch/ppc64/mm/init.c # 2005/01/04 18:48:02-08:00 sfr@canb.auug.org.au +1 -1 # ppc64: tidy up the htab_data structure # # arch/ppc64/mm/hugetlbpage.c # 2005/01/04 18:48:02-08:00 sfr@canb.auug.org.au +4 -4 # ppc64: tidy up the htab_data structure # # arch/ppc64/mm/hash_utils.c # 2005/01/04 18:48:02-08:00 sfr@canb.auug.org.au +7 -7 # ppc64: tidy up the htab_data structure # # arch/ppc64/mm/hash_native.c # 2005/01/04 18:48:02-08:00 sfr@canb.auug.org.au +9 -9 # ppc64: tidy up the htab_data structure # # arch/ppc64/mm/hash_low.S # 2005/01/04 18:48:02-08:00 sfr@canb.auug.org.au +2 -2 # ppc64: tidy up the htab_data structure # # arch/ppc64/kernel/setup.c # 2005/01/04 20:24:26-08:00 sfr@canb.auug.org.au +3 -3 # ppc64: tidy up the htab_data structure # # arch/ppc64/kernel/pSeries_lpar.c # 2005/01/04 18:48:02-08:00 sfr@canb.auug.org.au +1 -1 # ppc64: tidy up the htab_data structure # # arch/ppc64/kernel/iSeries_setup.c # 2005/01/04 18:48:02-08:00 sfr@canb.auug.org.au +3 -5 # ppc64: tidy up the htab_data structure # # ChangeSet # 2005/01/04 21:14:19-08:00 sfr@canb.auug.org.au # [PATCH] ppc64: use c99 initializers # # This patch is just more clean up in the ppc64 arch. It uses c99 initializers # for various iSeries structures that are used to pass information to the # hypervisor. Also itLpNaca is not used by any code that could be in a module, # so don't export it. # # Built and booted. # # Signed-off-by: Stephen Rothwell # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/ppc64/kernel/ppc_ksyms.c # 2005/01/04 18:48:02-08:00 sfr@canb.auug.org.au +0 -3 # ppc64: use c99 initializers # # arch/ppc64/kernel/LparData.c # 2005/01/04 18:48:02-08:00 sfr@canb.auug.org.au +61 -59 # ppc64: use c99 initializers # # ChangeSet # 2005/01/04 21:14:06-08:00 sfr@canb.auug.org.au # [PATCH] ppc64: remove StudlyCaps from lppaca structure # # This patch just renames all the fields (and the structure name) of the # lppaca structure to rid us of some more StudyCaps. # # Signed-off-by: Stephen Rothwell # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ppc64/time.h # 2005/01/04 18:48:02-08:00 sfr@canb.auug.org.au +2 -2 # ppc64: remove StudlyCaps from lppaca structure # # include/asm-ppc64/spinlock.h # 2005/01/04 18:48:02-08:00 sfr@canb.auug.org.au +1 -1 # ppc64: remove StudlyCaps from lppaca structure # # include/asm-ppc64/paca.h # 2005/01/04 18:48:02-08:00 sfr@canb.auug.org.au +4 -4 # ppc64: remove StudlyCaps from lppaca structure # # include/asm-ppc64/lppaca.h # 2005/01/04 18:48:02-08:00 sfr@canb.auug.org.au +56 -58 # ppc64: remove StudlyCaps from lppaca structure # # arch/ppc64/xmon/xmon.c # 2005/01/04 18:48:02-08:00 sfr@canb.auug.org.au +4 -4 # ppc64: remove StudlyCaps from lppaca structure # # arch/ppc64/lib/locks.c # 2005/01/04 18:48:02-08:00 sfr@canb.auug.org.au +2 -2 # ppc64: remove StudlyCaps from lppaca structure # # arch/ppc64/kernel/time.c # 2005/01/04 20:24:30-08:00 sfr@canb.auug.org.au +2 -2 # ppc64: remove StudlyCaps from lppaca structure # # arch/ppc64/kernel/sysfs.c # 2005/01/04 18:48:02-08:00 sfr@canb.auug.org.au +1 -1 # ppc64: remove StudlyCaps from lppaca structure # # arch/ppc64/kernel/pacaData.c # 2005/01/04 18:48:02-08:00 sfr@canb.auug.org.au +8 -8 # ppc64: remove StudlyCaps from lppaca structure # # arch/ppc64/kernel/lparcfg.c # 2005/01/04 18:48:02-08:00 sfr@canb.auug.org.au +6 -6 # ppc64: remove StudlyCaps from lppaca structure # # arch/ppc64/kernel/irq.c # 2005/01/04 18:48:02-08:00 sfr@canb.auug.org.au +4 -4 # ppc64: remove StudlyCaps from lppaca structure # # arch/ppc64/kernel/idle.c # 2005/01/04 20:24:21-08:00 sfr@canb.auug.org.au +8 -8 # ppc64: remove StudlyCaps from lppaca structure # # arch/ppc64/kernel/iSeries_smp.c # 2005/01/04 18:48:02-08:00 sfr@canb.auug.org.au +3 -3 # ppc64: remove StudlyCaps from lppaca structure # # arch/ppc64/kernel/iSeries_setup.c # 2005/01/04 20:24:46-08:00 sfr@canb.auug.org.au +2 -2 # ppc64: remove StudlyCaps from lppaca structure # # arch/ppc64/kernel/asm-offsets.c # 2005/01/04 18:48:02-08:00 sfr@canb.auug.org.au +4 -4 # ppc64: remove StudlyCaps from lppaca structure # # ChangeSet # 2005/01/04 21:13:53-08:00 sfr@canb.auug.org.au # [PATCH] ppc64: move the lppaca defining header file # # This patch just renames asm/iSeries/ItLpPaca.h to asm/lppaca.h as the # lppaca structure is no longer just legacy iSeries specific. # # Signed-off-by: Stephen Rothwell # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ppc64/paca.h # 2005/01/04 20:24:47-08:00 sfr@canb.auug.org.au +1 -1 # ppc64: move the lppaca defining header file # # include/asm-ppc64/lppaca.h # 2005/01/04 20:24:47-08:00 sfr@canb.auug.org.au +28 -28 # ppc64: move the lppaca defining header file # # include/asm-ppc64/iSeries/LparData.h # 2005/01/04 18:48:01-08:00 sfr@canb.auug.org.au +0 -1 # ppc64: move the lppaca defining header file # # arch/ppc64/kernel/sysfs.c # 2005/01/04 20:24:47-08:00 sfr@canb.auug.org.au +1 -1 # ppc64: move the lppaca defining header file # # arch/ppc64/kernel/pacaData.c # 2005/01/04 20:24:47-08:00 sfr@canb.auug.org.au +1 -1 # ppc64: move the lppaca defining header file # # arch/ppc64/kernel/lparcfg.c # 2005/01/04 20:24:47-08:00 sfr@canb.auug.org.au +1 -1 # ppc64: move the lppaca defining header file # # arch/ppc64/kernel/iSeries_proc.c # 2005/01/04 18:48:01-08:00 sfr@canb.auug.org.au +1 -1 # ppc64: move the lppaca defining header file # # arch/ppc64/kernel/asm-offsets.c # 2005/01/04 20:24:47-08:00 sfr@canb.auug.org.au +1 -1 # ppc64: move the lppaca defining header file # # arch/ppc64/kernel/LparData.c # 2005/01/04 20:24:46-08:00 sfr@canb.auug.org.au +1 -1 # ppc64: move the lppaca defining header file # # ChangeSet # 2005/01/04 21:13:18-08:00 sfr@canb.auug.org.au # [PATCH] ppc64: use xPMCRegsInUse # # This fixes an aweful piece of code that could have just referenced # xPMCRegsInUse in the lppaca structure. # # Signed-off-by: Stephen Rothwell # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/ppc64/kernel/sysfs.c # 2005/01/04 20:24:47-08:00 sfr@canb.auug.org.au +4 -4 # ppc64: use xPMCRegsInUse # # ChangeSet # 2005/01/04 21:13:07-08:00 sfr@canb.auug.org.au # [PATCH] ppc64: remove the naca from all but iSeries # # This patch finally removes the naca from all architectures except legacy # iSeries and in the process makes it a structure instead of a pointer. # # Signed-off-by: Stephen Rothwell # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ppc64/naca.h # 2005/01/04 18:48:01-08:00 sfr@canb.auug.org.au +1 -2 # ppc64: remove the naca from all but iSeries # # include/asm-ppc64/iSeries/HvReleaseData.h # 2005/01/04 18:48:01-08:00 sfr@canb.auug.org.au +1 -0 # ppc64: remove the naca from all but iSeries # # arch/ppc64/kernel/pacaData.c # 2005/01/04 20:24:47-08:00 sfr@canb.auug.org.au +0 -3 # ppc64: remove the naca from all but iSeries # # arch/ppc64/kernel/iSeries_setup.c # 2005/01/04 20:24:47-08:00 sfr@canb.auug.org.au +8 -8 # ppc64: remove the naca from all but iSeries # # arch/ppc64/kernel/head.S # 2005/01/04 18:48:01-08:00 sfr@canb.auug.org.au +2 -19 # ppc64: remove the naca from all but iSeries # # arch/ppc64/kernel/LparData.c # 2005/01/04 20:24:47-08:00 sfr@canb.auug.org.au +1 -1 # ppc64: remove the naca from all but iSeries # # ChangeSet # 2005/01/04 21:12:54-08:00 sfr@canb.auug.org.au # [PATCH] ppc64: remove debug_switch from the naca # # The patch moves the debug_switch from the naca to a global variable. # # Also, a couple of trivial naming tidy ups. # # Signed-off-by: Stephen Rothwell # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ppc64/ppcdebug.h # 2005/01/04 18:48:01-08:00 sfr@canb.auug.org.au +4 -1 # ppc64: remove debug_switch from the naca # # include/asm-ppc64/naca.h # 2005/01/04 20:24:47-08:00 sfr@canb.auug.org.au +0 -3 # ppc64: remove debug_switch from the naca # # arch/ppc64/xmon/xmon.c # 2005/01/04 20:24:47-08:00 sfr@canb.auug.org.au +5 -6 # ppc64: remove debug_switch from the naca # # arch/ppc64/kernel/udbg.c # 2005/01/04 18:48:01-08:00 sfr@canb.auug.org.au +2 -3 # ppc64: remove debug_switch from the naca # # arch/ppc64/kernel/setup.c # 2005/01/04 20:24:46-08:00 sfr@canb.auug.org.au +10 -11 # ppc64: remove debug_switch from the naca # # arch/ppc64/kernel/pSeries_setup.c # 2005/01/04 18:48:01-08:00 sfr@canb.auug.org.au +1 -2 # ppc64: remove debug_switch from the naca # # ChangeSet # 2005/01/04 21:12:41-08:00 sfr@canb.auug.org.au # [PATCH] ppc64: remove serialPortAddr from the naca # # The serialPortAddr field of the naca was only being used locally, remove # it. # # Signed-off-by: Stephen Rothwell # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ppc64/naca.h # 2005/01/04 20:24:48-08:00 sfr@canb.auug.org.au +0 -1 # ppc64: remove serialPortAddr from the naca # # arch/ppc64/kernel/setup.c # 2005/01/04 20:24:48-08:00 sfr@canb.auug.org.au +4 -3 # ppc64: remove serialPortAddr from the naca # # arch/ppc64/kernel/pSeries_setup.c # 2005/01/04 20:24:48-08:00 sfr@canb.auug.org.au +6 -4 # ppc64: remove serialPortAddr from the naca # # arch/ppc64/kernel/maple_setup.c # 2005/01/04 18:48:01-08:00 sfr@canb.auug.org.au +7 -5 # ppc64: remove serialPortAddr from the naca # # ChangeSet # 2005/01/04 21:12:28-08:00 sfr@canb.auug.org.au # [PATCH] ppc64: remove the paca pointer form the naca # # The only place that was using the paca pointer that was in the naca was some # assembler that used it to find a parameter to pass to some C code. That C # code did not even declare that parameter! # # Remove the paca pointer. # # Signed-off-by: Stephen Rothwell # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ppc64/naca.h # 2005/01/04 20:24:48-08:00 sfr@canb.auug.org.au +0 -2 # ppc64: remove the paca pointer form the naca # # arch/ppc64/kernel/head.S # 2005/01/04 20:24:47-08:00 sfr@canb.auug.org.au +1 -9 # ppc64: remove the paca pointer form the naca # # arch/ppc64/kernel/asm-offsets.c # 2005/01/04 20:24:47-08:00 sfr@canb.auug.org.au +0 -3 # ppc64: remove the paca pointer form the naca # # ChangeSet # 2005/01/04 21:12:14-08:00 sfr@canb.auug.org.au # [PATCH] ppc64: remove /proc/ppc64/{naca,paca/xx} # # This patch removes the (unused) /proc entries for the naca and the (per cpu) # pacas. Also it removes a lot of no longer necessary includes of . # # Signed-off-by: Stephen Rothwell # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ppc64/iSeries/LparData.h # 2005/01/04 20:24:47-08:00 sfr@canb.auug.org.au +0 -2 # ppc64: remove /proc/ppc64/{naca,paca/xx} # # arch/ppc64/mm/stab.c # 2005/01/04 18:48:01-08:00 sfr@canb.auug.org.au +0 -1 # ppc64: remove /proc/ppc64/{naca,paca/xx} # # arch/ppc64/mm/slb.c # 2005/01/04 18:48:01-08:00 sfr@canb.auug.org.au +0 -1 # ppc64: remove /proc/ppc64/{naca,paca/xx} # # arch/ppc64/mm/init.c # 2005/01/04 20:24:46-08:00 sfr@canb.auug.org.au +0 -1 # ppc64: remove /proc/ppc64/{naca,paca/xx} # # arch/ppc64/kernel/smp.c # 2005/01/04 20:24:21-08:00 sfr@canb.auug.org.au +0 -1 # ppc64: remove /proc/ppc64/{naca,paca/xx} # # arch/ppc64/kernel/prom_init.c # 2005/01/04 18:48:01-08:00 sfr@canb.auug.org.au +0 -1 # ppc64: remove /proc/ppc64/{naca,paca/xx} # # arch/ppc64/kernel/proc_ppc64.c # 2005/01/04 18:48:01-08:00 sfr@canb.auug.org.au +0 -38 # ppc64: remove /proc/ppc64/{naca,paca/xx} # # arch/ppc64/kernel/pci_dn.c # 2005/01/04 18:48:01-08:00 sfr@canb.auug.org.au +0 -1 # ppc64: remove /proc/ppc64/{naca,paca/xx} # # arch/ppc64/kernel/pSeries_smp.c # 2005/01/04 18:48:01-08:00 sfr@canb.auug.org.au +0 -1 # ppc64: remove /proc/ppc64/{naca,paca/xx} # # arch/ppc64/kernel/pSeries_pci.c # 2005/01/04 18:48:01-08:00 sfr@canb.auug.org.au +0 -1 # ppc64: remove /proc/ppc64/{naca,paca/xx} # # arch/ppc64/kernel/iSeries_smp.c # 2005/01/04 20:24:47-08:00 sfr@canb.auug.org.au +0 -1 # ppc64: remove /proc/ppc64/{naca,paca/xx} # # arch/ppc64/kernel/iSeries_proc.c # 2005/01/04 20:24:47-08:00 sfr@canb.auug.org.au +0 -1 # ppc64: remove /proc/ppc64/{naca,paca/xx} # # arch/ppc64/kernel/iSeries_pci.c # 2005/01/04 20:24:26-08:00 sfr@canb.auug.org.au +0 -1 # ppc64: remove /proc/ppc64/{naca,paca/xx} # # ChangeSet # 2005/01/04 21:12:02-08:00 sfr@canb.auug.org.au # [PATCH] ppc64: remove interrupt_controller from naca # # This patch just moves the interrupt_controller field of the naca into a # global variable. # # Signed-off-by: Stephen Rothwell # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ppc64/processor.h # 2005/01/04 18:48:00-08:00 sfr@canb.auug.org.au +1 -0 # ppc64: remove interrupt_controller from naca # # include/asm-ppc64/naca.h # 2005/01/04 20:24:48-08:00 sfr@canb.auug.org.au +0 -1 # ppc64: remove interrupt_controller from naca # # arch/ppc64/kernel/xics.c # 2005/01/04 18:48:00-08:00 sfr@canb.auug.org.au +1 -2 # ppc64: remove interrupt_controller from naca # # arch/ppc64/kernel/setup.c # 2005/01/04 20:24:48-08:00 sfr@canb.auug.org.au +1 -1 # ppc64: remove interrupt_controller from naca # # arch/ppc64/kernel/prom.c # 2005/01/04 18:48:00-08:00 sfr@canb.auug.org.au +1 -2 # ppc64: remove interrupt_controller from naca # # arch/ppc64/kernel/pmac_setup.c # 2005/01/04 18:48:00-08:00 sfr@canb.auug.org.au +1 -2 # ppc64: remove interrupt_controller from naca # # arch/ppc64/kernel/pSeries_smp.c # 2005/01/04 20:24:48-08:00 sfr@canb.auug.org.au +1 -1 # ppc64: remove interrupt_controller from naca # # arch/ppc64/kernel/pSeries_setup.c # 2005/01/04 20:24:48-08:00 sfr@canb.auug.org.au +4 -4 # ppc64: remove interrupt_controller from naca # # arch/ppc64/kernel/pSeries_pci.c # 2005/01/04 20:24:48-08:00 sfr@canb.auug.org.au +2 -2 # ppc64: remove interrupt_controller from naca # # arch/ppc64/kernel/maple_setup.c # 2005/01/04 20:24:48-08:00 sfr@canb.auug.org.au +1 -1 # ppc64: remove interrupt_controller from naca # # arch/ppc64/kernel/irq.c # 2005/01/04 20:24:47-08:00 sfr@canb.auug.org.au +2 -1 # ppc64: remove interrupt_controller from naca # # ChangeSet # 2005/01/04 21:11:49-08:00 sfr@canb.auug.org.au # [PATCH] ppc64: remove the page table size from the naca # # This patch just removes the page table size field from the naca (and makes # it ppc64_pft_size instead). # # Signed-off-by: Stephen Rothwell # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ppc64/page.h # 2005/01/04 18:48:00-08:00 sfr@canb.auug.org.au +2 -0 # ppc64: remove the page table size from the naca # # include/asm-ppc64/naca.h # 2005/01/04 20:24:49-08:00 sfr@canb.auug.org.au +0 -2 # ppc64: remove the page table size from the naca # # arch/ppc64/mm/hash_utils.c # 2005/01/04 20:24:46-08:00 sfr@canb.auug.org.au +1 -2 # ppc64: remove the page table size from the naca # # arch/ppc64/kernel/setup.c # 2005/01/04 20:24:49-08:00 sfr@canb.auug.org.au +3 -1 # ppc64: remove the page table size from the naca # # arch/ppc64/kernel/prom.c # 2005/01/04 20:24:49-08:00 sfr@canb.auug.org.au +6 -6 # ppc64: remove the page table size from the naca # # arch/ppc64/kernel/pSeries_lpar.c # 2005/01/04 20:24:46-08:00 sfr@canb.auug.org.au +1 -2 # ppc64: remove the page table size from the naca # # ChangeSet # 2005/01/04 21:11:36-08:00 sfr@canb.auug.org.au # [PATCH] ppc64: consolidate cache sizing variables # # This patch consolidates the variables that define the PPC64 cache sizes into a # single structure (the were in the naca and the systemcfg structures). Those # that were in the systemcfg structure are left there just because they are # exported to user mode through /proc. # # Signed-off-by: Stephen Rothwell # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ppc64/systemcfg.h # 2005/01/04 18:48:00-08:00 sfr@canb.auug.org.au +5 -12 # ppc64: consolidate cache sizing variables # # include/asm-ppc64/processor.h # 2005/01/04 20:24:49-08:00 sfr@canb.auug.org.au +1 -0 # ppc64: consolidate cache sizing variables # # include/asm-ppc64/page.h # 2005/01/04 20:24:49-08:00 sfr@canb.auug.org.au +3 -3 # ppc64: consolidate cache sizing variables # # include/asm-ppc64/naca.h # 2005/01/04 20:24:49-08:00 sfr@canb.auug.org.au +1 -11 # ppc64: consolidate cache sizing variables # # include/asm-ppc64/cache.h # 2005/01/04 18:48:00-08:00 sfr@canb.auug.org.au +19 -0 # ppc64: consolidate cache sizing variables # # arch/ppc64/kernel/traps.c # 2005/01/04 18:48:00-08:00 sfr@canb.auug.org.au +1 -0 # ppc64: consolidate cache sizing variables # # arch/ppc64/kernel/time.c # 2005/01/04 20:24:47-08:00 sfr@canb.auug.org.au +1 -0 # ppc64: consolidate cache sizing variables # # arch/ppc64/kernel/sysfs.c # 2005/01/04 20:24:47-08:00 sfr@canb.auug.org.au +1 -0 # ppc64: consolidate cache sizing variables # # arch/ppc64/kernel/sys_ppc32.c # 2005/01/04 20:24:30-08:00 sfr@canb.auug.org.au +1 -0 # ppc64: consolidate cache sizing variables # # arch/ppc64/kernel/setup.c # 2005/01/04 20:24:49-08:00 sfr@canb.auug.org.au +19 -14 # ppc64: consolidate cache sizing variables # # arch/ppc64/kernel/rtasd.c # 2005/01/04 18:48:00-08:00 sfr@canb.auug.org.au +1 -0 # ppc64: consolidate cache sizing variables # # arch/ppc64/kernel/rtas.c # 2005/01/04 18:48:00-08:00 sfr@canb.auug.org.au +1 -0 # ppc64: consolidate cache sizing variables # # arch/ppc64/kernel/rtas-proc.c # 2005/01/04 18:48:00-08:00 sfr@canb.auug.org.au +1 -0 # ppc64: consolidate cache sizing variables # # arch/ppc64/kernel/ppc_ksyms.c # 2005/01/04 20:24:46-08:00 sfr@canb.auug.org.au +0 -2 # ppc64: consolidate cache sizing variables # # arch/ppc64/kernel/pmac_setup.c # 2005/01/04 20:24:49-08:00 sfr@canb.auug.org.au +1 -0 # ppc64: consolidate cache sizing variables # # arch/ppc64/kernel/pacaData.c # 2005/01/04 20:24:47-08:00 sfr@canb.auug.org.au +4 -0 # ppc64: consolidate cache sizing variables # # arch/ppc64/kernel/pSeries_iommu.c # 2005/01/04 18:48:00-08:00 sfr@canb.auug.org.au +1 -0 # ppc64: consolidate cache sizing variables # # arch/ppc64/kernel/nvram.c # 2005/01/04 18:48:00-08:00 sfr@canb.auug.org.au +1 -0 # ppc64: consolidate cache sizing variables # # arch/ppc64/kernel/misc.S # 2005/01/04 20:24:30-08:00 sfr@canb.auug.org.au +15 -22 # ppc64: consolidate cache sizing variables # # arch/ppc64/kernel/idle.c # 2005/01/04 20:24:47-08:00 sfr@canb.auug.org.au +1 -0 # ppc64: consolidate cache sizing variables # # arch/ppc64/kernel/iSeries_setup.c # 2005/01/04 20:24:47-08:00 sfr@canb.auug.org.au +17 -13 # ppc64: consolidate cache sizing variables # # arch/ppc64/kernel/eeh.c # 2005/01/04 18:48:00-08:00 sfr@canb.auug.org.au +1 -0 # ppc64: consolidate cache sizing variables # # arch/ppc64/kernel/asm-offsets.c # 2005/01/04 20:24:48-08:00 sfr@canb.auug.org.au +7 -6 # ppc64: consolidate cache sizing variables # # ChangeSet # 2005/01/04 21:11:24-08:00 paulus@samba.org # [PATCH] ppc64: simplify timer_interrupt # # This patch is from Milton Miller . # # When the update_process_times call was moved out of do_timer for the UP # case, the replicator didn't track down the hiding and just added ifndef # SMP. # # This removes the ifdefs and the indirection of calling another file for one # function in a third file. # # Signed-off-by: Milton Miller # Signed-off-by: Paul Mackerras # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/ppc64/kernel/time.c # 2005/01/04 20:24:50-08:00 paulus@samba.org +1 -9 # ppc64: simplify timer_interrupt # # arch/ppc64/kernel/smp.c # 2005/01/04 20:24:48-08:00 paulus@samba.org +0 -5 # ppc64: simplify timer_interrupt # # ChangeSet # 2005/01/04 21:11:12-08:00 anton@samba.org # [PATCH] ppc64: remove stale prom.h code # # Remove some stale code in prom.h # # Signed-off-by: Anton Blanchard # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ppc64/prom.h # 2005/01/04 18:48:00-08:00 anton@samba.org +0 -28 # ppc64: remove stale prom.h code # # ChangeSet # 2005/01/04 21:10:59-08:00 anton@samba.org # [PATCH] ppc64: fix some compiler warnings # # Fix some compiler warnings: # # - The first two are spurious gcc warnings, but quieten them up regardless # - Add a missing include # - Use register_sysrq_key instead of __sysrq_put_key_op # # Signed-off-by: Anton Blanchard # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/ppc64/xmon/start.c # 2005/01/04 18:47:59-08:00 anton@samba.org +1 -1 # ppc64: fix some compiler warnings # # arch/ppc64/mm/hash_native.c # 2005/01/04 20:24:46-08:00 anton@samba.org +1 -1 # ppc64: fix some compiler warnings # # arch/ppc64/kernel/pSeries_setup.c # 2005/01/04 20:24:49-08:00 anton@samba.org +1 -0 # ppc64: fix some compiler warnings # # arch/ppc64/kernel/pSeries_lpar.c # 2005/01/04 20:24:49-08:00 anton@samba.org +1 -1 # ppc64: fix some compiler warnings # # ChangeSet # 2005/01/04 21:10:46-08:00 anton@samba.org # [PATCH] ppc64: Clarify rtasd printk # # On machines with RTAS but without event-scan support we would incorrectly # claim there was no RTAS on the system. # # Signed-off-by: Anton Blanchard # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/ppc64/kernel/rtasd.c # 2005/01/04 20:24:50-08:00 anton@samba.org +1 -1 # ppc64: Clarify rtasd printk # # ChangeSet # 2005/01/04 21:10:33-08:00 anton@samba.org # [PATCH] ppc64: catch bad xmon read/write SPR commands # # Protect the read/write SPR xmon commands. # # Signed-off-by: Anton Blanchard # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/ppc64/xmon/xmon.c # 2005/01/04 20:24:48-08:00 anton@samba.org +22 -2 # ppc64: catch bad xmon read/write SPR commands # # arch/ppc64/kernel/traps.c # 2005/01/04 20:24:50-08:00 anton@samba.org +3 -0 # ppc64: catch bad xmon read/write SPR commands # # ChangeSet # 2005/01/04 21:10:19-08:00 anton@samba.org # [PATCH] ppc64: limit xmon dump length # # A number of people (myself included) have pasted bad input into xmon that # it parsed as a request to dump gigabytes of memory. # # Place a limit of 128kB on the dump commands. Also remove a stale function # prototype thats been lying around. # # Signed-off-by: Anton Blanchard # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/ppc64/xmon/xmon.c # 2005/01/04 20:24:51-08:00 anton@samba.org +9 -6 # ppc64: limit xmon dump length # # ChangeSet # 2005/01/04 21:10:06-08:00 serue@us.ibm.com # [PATCH] capset returns -EPERM when pid==current->pid # # In the current kernel/capability.c:sys_capset() code, permission is # denied if CAP_SETPCAP is not held and pid is positive. pid=0 means use # the current process, and this is allowed. But using the current # process' pid is not allowed. The man page for capsetp simply says that # CAP_SETPCAP is required to use this function, and does not mention the # exception for pid=0. # # The current behavior seems inconsistent. The attached patch also # allows a process to call capset() on itself. # # Signed-off-by: Chris Wright # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/capability.c # 2005/01/04 18:47:39-08:00 serue@us.ibm.com +1 -1 # capset returns -EPERM when pid==current->pid # # ChangeSet # 2005/01/04 21:09:53-08:00 serue@us.ibm.com # [PATCH] properly split capset_check+capset_set # # The attached patch removes checks from kernel/capability.c which are # redundant with cap_capset_check() code, and moves the capset_check() calls # to immediately before the capset_set() calls. This allows capset_check() # to accurately check the setter's permission to set caps on the target. # Please apply. # # Signed-off-by: Serge Hallyn # Signed-off-by: Chris Wright # Signed-off-by: Stephen Smalley # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # security/selinux/hooks.c # 2005/01/04 20:24:19-08:00 serue@us.ibm.com +0 -6 # properly split capset_check+capset_set # # kernel/capability.c # 2005/01/04 20:24:51-08:00 serue@us.ibm.com +38 -25 # properly split capset_check+capset_set # # ChangeSet # 2005/01/04 21:09:40-08:00 oleg@tv-sign.ru # [PATCH] fix double sync_page_range() in generic_file_aio_write() # # generic_file_aio_write(): # generic_file_aio_write_nolock(): # if (SYNC) sync_page_range_nolock(); # if (SYNC) sync_page_range(); # # I think that generic_file_aio_write() should use # __generic_file_aio_write_nolock() instead. # # Signed-off-by: Oleg Nesterov # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/filemap.c # 2005/01/04 18:47:39-08:00 oleg@tv-sign.ru +1 -1 # fix double sync_page_range() in generic_file_aio_write() # # ChangeSet # 2005/01/04 21:09:27-08:00 wli@holomorphy.com # [PATCH] fix arch/x86_64/ia32/syscall32.c misdeclared pud variable # # pud needs to be declared as a pud_t in order to avoid an assignment from # incompatible pointer type warning or two; this patch makes it so. # # Signed-off-by: William Irwin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/x86_64/ia32/syscall32.c # 2005/01/04 18:46:40-08:00 wli@holomorphy.com +1 -1 # fix arch/x86_64/ia32/syscall32.c misdeclared pud variable # # ChangeSet # 2005/01/04 21:09:14-08:00 heiko.carstens@de.ibm.com # [PATCH] s390: fix pgd_index() compile warnings # # the patch below fixes a few compile warnings due to missing parenthesizes. # # Signed-off-by: Heiko Carstens # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-s390/pgtable.h # 2005/01/04 18:46:40-08:00 heiko.carstens@de.ibm.com +1 -1 # s390: fix pgd_index() compile warnings # # ChangeSet # 2005/01/04 20:15:26-08:00 rusty@rustcorp.com.au # [PATCH] More ECN Fixes: make writable before writing # # Patrick McHardy spotted this, on top of previous fix. I neatened it. # # Signed-off-by: Rusty Russell # Signed-off-by: Linus Torvalds # # net/ipv4/netfilter/ipt_ECN.c # 2005/01/04 18:49:02-08:00 rusty@rustcorp.com.au +27 -30 # More ECN Fixes: make writable before writing # # ChangeSet # 2005/01/04 20:15:13-08:00 rusty@rustcorp.com.au # [PATCH] ftp nonlinear packet fix # # FTP connection tracking assumes it can just dereference tcphdr; not # neccessarily true now we don't linearize in ftp conntrack helper or # tcp connection tracking. Also found by nfsim. # # Signed-off-by: Rusty Russell # Signed-off-by: Linus Torvalds # # net/ipv4/netfilter/ip_nat_ftp.c # 2005/01/04 18:15:50-08:00 rusty@rustcorp.com.au +10 -7 # ftp nonlinear packet fix # # ChangeSet # 2005/01/04 20:15:00-08:00 rusty@rustcorp.com.au # [PATCH] Fix for NAT core on nonlinear skbs # # The nat core calls skb_ip_make_writable() with a length too short. # Found by nfsim. # # Signed-off-by: Rusty Russell # Signed-off-by: Linus Torvalds # # net/ipv4/netfilter/ip_nat_core.c # 2005/01/04 00:08:51-08:00 rusty@rustcorp.com.au +1 -1 # Fix for NAT core on nonlinear skbs # # ChangeSet # 2005/01/04 20:14:47-08:00 rusty@rustcorp.com.au # [PATCH] Fix for UDP and TCP NAT on nonlinear skbs # # UDP and TCP refer to potentially stale pointers after calling # skb_ip_make_writable(), and UDP calls it with the wrong len argument. # All found by nfsim. # # Signed-off-by: Rusty Russell # Signed-off-by: Linus Torvalds # # net/ipv4/netfilter/ip_nat_proto_udp.c # 2005/01/04 00:19:58-08:00 rusty@rustcorp.com.au +5 -5 # Fix for UDP and TCP NAT on nonlinear skbs # # net/ipv4/netfilter/ip_nat_proto_tcp.c # 2005/01/04 00:23:52-08:00 rusty@rustcorp.com.au +4 -4 # Fix for UDP and TCP NAT on nonlinear skbs # # ChangeSet # 2005/01/04 20:14:34-08:00 rusty@rustcorp.com.au # [PATCH] Conntrack Hash Allocation using __get_free_pages # # Here is a patch that just makes it use get_free_pages to test the TLB # theory. Another obvious improvement would be to not use list_heads for # the hash table buckets - a single pointer would likely suffice and it # would cut the hash table in half, saving cache, TLB and memory. # # Signed-off-by: Linus Torvalds # # net/ipv4/netfilter/ip_conntrack_core.c # 2005/01/04 03:25:56-08:00 rusty@rustcorp.com.au +28 -5 # Conntrack Hash Allocation using __get_free_pages # # ChangeSet # 2005/01/04 20:14:21-08:00 rusty@rustcorp.com.au # [PATCH] Multiport revision with port ranges (replaces "mport") # # The multiport match doesn't support ranges of ports, so a new match # called "mport" was written. Now we have versioning of matches and # targets, we can simply put this extension in multiport revision 1. # # Also, removes gratuitous checking in match: we basically trust # iptables userspace these days. # # Signed-off-by: Pablo Neira Ayuso # Signed-off-by: Rusty Russell (modified) # Signed-off-by: Linus Torvalds # # net/ipv4/netfilter/ipt_multiport.c # 2005/01/04 18:02:41-08:00 rusty@rustcorp.com.au +104 -17 # Multiport revision with port ranges (replaces "mport") # # include/linux/netfilter_ipv4/ipt_multiport.h # 2005/01/04 18:02:41-08:00 rusty@rustcorp.com.au +8 -0 # Multiport revision with port ranges (replaces "mport") # # ChangeSet # 2005/01/04 20:14:08-08:00 rusty@rustcorp.com.au # [PATCH] Add bitops to ipt_MARK without breaking compatbility # # Anders Fugmann wrote a patch to add bitops to # ipt_MARK. I made a version based on the revision patch. # # Bart De Schuymer provided the idea of overriding # the target type. # # Signed-off-by: Rusty Russell # Signed-off-by: Linus Torvalds # # net/ipv4/netfilter/ipt_MARK.c # 2004/12/28 20:20:29-08:00 rusty@rustcorp.com.au +99 -16 # Add bitops to ipt_MARK without breaking compatbility # # include/linux/netfilter_ipv4/ipt_MARK.h # 2004/12/28 20:18:20-08:00 rusty@rustcorp.com.au +12 -0 # Add bitops to ipt_MARK without breaking compatbility # # ChangeSet # 2005/01/04 20:13:55-08:00 rusty@rustcorp.com.au # [PATCH] iptables revision getsockopt # # This adds a new getsockopt to iptables, which allows userspace to # query the revision number of extensions. iptables 1.3.0 (to be # released soon) already has support for this. # # Signed-off-by: Rusty Russell # Signed-off-by: Linus Torvalds # # net/ipv4/netfilter/ip_tables.c # 2004/12/31 15:51:37-08:00 rusty@rustcorp.com.au +84 -0 # iptables revision getsockopt # # include/linux/netfilter_ipv4/ip_tables.h # 2004/12/31 02:31:06-08:00 rusty@rustcorp.com.au +14 -3 # iptables revision getsockopt # # ChangeSet # 2005/01/04 20:13:42-08:00 rusty@rustcorp.com.au # [PATCH] Steal a Character To Create a Revision Number # # Pablo Neira came up with the idea of stealing the # last byte in the (already nul-terminated) name of a target/match to # create a version. # # That patch motivated me to clean up the match and target searching in # ip_tables, which makes this patch more trivial. I also renamed # "version" to "revision" since the word "version" was used for iptables # itself. # # Signed-off-by: Rusty Russell # Signed-off-by: Linus Torvalds # # net/ipv4/netfilter/ip_tables.c # 2004/12/28 21:58:29-08:00 rusty@rustcorp.com.au +46 -25 # Steal a Character To Create a Revision Number # # include/linux/netfilter_ipv4/ip_tables.h # 2004/12/28 21:58:29-08:00 rusty@rustcorp.com.au +12 -4 # Steal a Character To Create a Revision Number # # ChangeSet # 2005/01/04 20:13:30-08:00 rusty@rustcorp.com.au # [PATCH] Clean up the kmod handling code in iptables.c # # We now have a convenient kmod macro try_then_request_module(). # # 1) Split our current "generic" function into separate # find_target_lock(), find_table_lock() and find_match_lock() # functions explicitly. # # 2) Have those functions do try_module_get() for us, and fix up the one # caller who didn't do that anyway. # # 3) Have the caller use try_then_request_module(). # # 4) Remove __ipt_mutex_up() and __ipt_find_target_lock() which weren't # used (even in patch-o-matic AFAICT). # # This cleanup takes us closer to using standard list macros everywhere, # and makes the version patch simpler. # # Signed-off-by: Rusty Russell # Signed-off-by: Linus Torvalds # # net/ipv4/netfilter/ip_tables.c # 2004/12/31 17:27:36-08:00 rusty@rustcorp.com.au +68 -105 # Clean up the kmod handling code in iptables.c # # include/linux/netfilter_ipv4/ip_tables.h # 2004/12/31 17:26:37-08:00 rusty@rustcorp.com.au +0 -4 # Clean up the kmod handling code in iptables.c # # ChangeSet # 2005/01/04 20:13:17-08:00 rusty@rustcorp.com.au # [PATCH] Remove Randomness in Selecting NAT IP Address # # We currently choose a "random" IP address to NAT to, where we have a # range. Martin Josefsson pointed out that he uses the SAME target in # iptables because changing IP addresses breaks Internet banking sites # (among others) which assume the customer will be coming from a # consistent IP address. # # In fact, we spend a fair bit of effort trying to balance the number of # connections we NAT to each IP address. We can come pretty damn close # just hashing the source and destination IP addresses, and it has the # consistency property which is so desirable, as well as being faster. # # Signed-off-by: Rusty Russell # Signed-off-by: Linus Torvalds # # net/ipv4/netfilter/ip_nat_core.c # 2004/12/12 17:03:20-08:00 rusty@rustcorp.com.au +11 -89 # Remove Randomness in Selecting NAT IP Address # # include/linux/netfilter_ipv4/ip_nat.h # 2004/12/12 17:03:20-08:00 rusty@rustcorp.com.au +1 -1 # Remove Randomness in Selecting NAT IP Address # # ChangeSet # 2005/01/04 20:13:04-08:00 rusty@rustcorp.com.au # [PATCH] Warn when old code would have done extra mangling # # Now we no longer do extra mangling, warn in that case. # # Signed-off-by: Rusty Russell # Signed-off-by: Linus Torvalds # # net/ipv4/netfilter/ip_nat_core.c # 2004/12/12 17:03:19-08:00 rusty@rustcorp.com.au +22 -0 # Warn when old code would have done extra mangling # # ChangeSet # 2005/01/04 20:12:51-08:00 rusty@rustcorp.com.au # [PATCH] Remove do_extra_mangle: double NAT on LOCAL_OUT # # On NF_IP_LOCAL_OUT, when destination NAT changes the destination # interface, we also change the source address, so the packet is the # same as if it were generated to go that way in the first place. This # is not strictly necessary, I believe. # # This patch rips that code out to see what breaks. # # Signed-off-by: Rusty Russell # Signed-off-by: Linus Torvalds # # net/ipv4/netfilter/ip_nat_core.c # 2004/12/12 17:03:19-08:00 rusty@rustcorp.com.au +24 -74 # Remove do_extra_mangle: double NAT on LOCAL_OUT # # ChangeSet # 2005/01/04 20:12:38-08:00 rusty@rustcorp.com.au # [PATCH] Don't try too hard to NAT to unique tuple # # On NF_IP_LOCAL_OUT or NF_IP_PRE_ROUTING, if destination NAT is not # sufficient to create a unique tuple, we try changing the source port # as well. However, this is also not strictly necessary: if the tuple # is not unique, we will also try to change the source on the # NF_IP_POST_ROUTING hook. # # When we finally confirm the connection, if the tuple is still not # unique the packet will be dropped (this is required anyway as we could # race: the conntrack is not placed in the hash until the packet is # about to leave the box anyway). # # In fact, we only need best effort *everywhere*. # # This patch rips that code out to see what breaks. # # Signed-off-by: Rusty Russell # Signed-off-by: Linus Torvalds # # net/ipv4/netfilter/ip_nat_core.c # 2004/12/12 17:03:18-08:00 rusty@rustcorp.com.au +29 -61 # Don't try too hard to NAT to unique tuple # # ChangeSet # 2005/01/04 20:12:25-08:00 rusty@rustcorp.com.au # [PATCH] ip_conntrack_alter_reply doesn't need to loop # # ip_conntrack_alter_reply checks that the reply isn't already taken, # but there's little point, since there's *still* a race after it is # called (which we handle at confirm time anyway). # # Signed-off-by: Linus Torvalds # # net/ipv4/netfilter/ip_nat_core.c # 2005/01/04 03:11:54-08:00 rusty@rustcorp.com.au +14 -27 # ip_conntrack_alter_reply doesn't need to loop # # net/ipv4/netfilter/ip_conntrack_core.c # 2005/01/04 03:11:54-08:00 rusty@rustcorp.com.au +4 -10 # ip_conntrack_alter_reply doesn't need to loop # # include/linux/netfilter_ipv4/ip_conntrack.h # 2005/01/04 03:11:54-08:00 rusty@rustcorp.com.au +2 -3 # ip_conntrack_alter_reply doesn't need to loop # # ChangeSet # 2005/01/04 20:12:12-08:00 rusty@rustcorp.com.au # [PATCH] Remove NAT to multiple ranges # # The NAT code has the concept of multiple ranges: you can say "map this # connection onto IP 192.168.1.2 - 192.168.1.4, 192.168.1.7 ports # 1024-65535, and 192.168.1.10". I implemented this because we could. # # But it's not actually *used* by many (any?) people, and you can # approximate this by a random match (from patch-o-matic) if you really # want to. It adds complexity to the code. # # Signed-off-by: Rusty Russell # Signed-off-by: Linus Torvalds # # net/ipv4/netfilter/ipt_SAME.c # 2005/01/04 03:11:48-08:00 rusty@rustcorp.com.au +11 -11 # Remove NAT to multiple ranges # # net/ipv4/netfilter/ipt_REDIRECT.c # 2005/01/04 03:11:48-08:00 rusty@rustcorp.com.au +7 -7 # Remove NAT to multiple ranges # # net/ipv4/netfilter/ipt_NETMAP.c # 2005/01/04 03:11:48-08:00 rusty@rustcorp.com.au +7 -7 # Remove NAT to multiple ranges # # net/ipv4/netfilter/ipt_MASQUERADE.c # 2005/01/04 03:11:48-08:00 rusty@rustcorp.com.au +7 -7 # Remove NAT to multiple ranges # # net/ipv4/netfilter/ip_nat_tftp.c # 2005/01/04 03:11:48-08:00 rusty@rustcorp.com.au +7 -9 # Remove NAT to multiple ranges # # net/ipv4/netfilter/ip_nat_rule.c # 2005/01/04 03:11:48-08:00 rusty@rustcorp.com.au +15 -17 # Remove NAT to multiple ranges # # net/ipv4/netfilter/ip_nat_irc.c # 2005/01/04 03:11:48-08:00 rusty@rustcorp.com.au +4 -5 # Remove NAT to multiple ranges # # net/ipv4/netfilter/ip_nat_ftp.c # 2005/01/04 03:11:48-08:00 rusty@rustcorp.com.au +6 -7 # Remove NAT to multiple ranges # # net/ipv4/netfilter/ip_nat_core.c # 2005/01/04 03:11:48-08:00 rusty@rustcorp.com.au +120 -176 # Remove NAT to multiple ranges # # net/ipv4/netfilter/ip_nat_amanda.c # 2005/01/04 03:11:48-08:00 rusty@rustcorp.com.au +6 -7 # Remove NAT to multiple ranges # # include/linux/netfilter_ipv4/ip_nat.h # 2005/01/04 03:11:48-08:00 rusty@rustcorp.com.au +6 -4 # Remove NAT to multiple ranges # # ChangeSet # 2005/01/04 20:11:59-08:00 rusty@rustcorp.com.au # [PATCH] When ipt_ECN needs TCP, check it is not inverted # # Writing the nfsim testcase for the ECN target revealed a hole in the # rule checking: when checking whether the rule specified TCP, you need # to check it isn't inverted. # # Signed-off-by: Rusty Russell # Signed-off-by: Linus Torvalds # # net/ipv4/netfilter/ipt_ECN.c # 2005/01/04 02:24:01-08:00 rusty@rustcorp.com.au +1 -1 # When ipt_ECN needs TCP, check it is not inverted # # ChangeSet # 2005/01/04 20:11:46-08:00 rusty@rustcorp.com.au # [PATCH] ipt_REJECT Target nonlinear fixes # # nfsim now generates non-linear packets: when run under valgrind it # finds linear assumptions very nicely. This is the second thing I # tried, and it found a real bug. # # In this case, checking the UDP checksum is correct, but overkill, and # like the ICMP header handling, does not handle non-linear packets. Remove UDP # checksum, fix ICMP error. # # Signed-off-by: Rusty Russell # Signed-off-by: Linus Torvalds # # net/ipv4/netfilter/ipt_REJECT.c # 2005/01/03 19:56:45-08:00 rusty@rustcorp.com.au +5 -19 # ipt_REJECT Target nonlinear fixes # # ChangeSet # 2005/01/04 15:59:03-08:00 chrisw@osdl.org # [PATCH] fix up dummy security module code merge # # OK, somehow I managed to botch this one. It happens to work fine, but I # should have been more careful with forward porting this 1+ year old patch. # The exec-time calc should go in bprm_apply_creds, not bprm_free_security. # # Thanks to Stephen for spotting my mistake. # # Signed-off-by: Chris Wright # Signed-off-by: Linus Torvalds # # security/dummy.c # 2005/01/04 14:45:31-08:00 chrisw@osdl.org +2 -1 # fix up dummy security module code merge # # ChangeSet # 2005/01/04 15:57:57-08:00 torvalds@ppc970.osdl.org # Merge bk://nfsclient.bkbits.net/linux-2.6 # into ppc970.osdl.org:/home/torvalds/v2.6/linux # # fs/nfs/direct.c # 2005/01/04 15:57:52-08:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # ChangeSet # 2005/01/04 15:57:25-08:00 brugolsky@telemetry-investments.com # [PATCH] NFS client O_DIRECT error case fix # # The NFS direct-io error return path for request sizes greater than # MAX_DIRECTIO_SIZE fails to initialize the returned page struct array # pointer to NULL. # # Discovered using AKPM's ext3-tools: odwrite -ko 0 16385 foo # # Signed-off-by: Bill Rugolsky # Signed-off-by: Linus Torvalds # # fs/nfs/direct.c # 2005/01/04 13:55:37-08:00 brugolsky@telemetry-investments.com +3 -1 # NFS client O_DIRECT error case fix # # ChangeSet # 2005/01/04 22:45:01+00:00 Liam.Girdwood@com.rmk.(none) # [ARM PATCH] 2347/1: PXA SSP PSP bit definition # # Patch from Liam Girdwood # # This patch adds a bit definition for the SSP port PSP mode. # # Signed-off-by: Liam Girdwood # Signed-off-by: Russell King # # include/asm-arm/arch-pxa/pxa-regs.h # 2005/01/03 12:22:28+00:00 Liam.Girdwood@com.rmk.(none) +1 -0 # [PATCH] 2347/1: PXA SSP PSP bit definition # # ChangeSet # 2005/01/04 22:39:50+00:00 dsaxena@net.rmk.(none) # [ARM PATCH] 2346/1: Update IXP4xx documentation # # Patch from Deepak Saxena # # This patch updates the IXP4xx documentation with information about # the latest chipsets and supported devices. # # Supercedes 2308/1 # # Signed-off-by: Deepak Saxena # Signed-off-by: Russell King # # Documentation/arm/IXP4xx # 2005/01/04 16:44:55+00:00 dsaxena@net.rmk.(none) +14 -4 # [PATCH] 2346/1: Update IXP4xx documentation # # ChangeSet # 2005/01/04 22:34:56+00:00 ben-linux@org.rmk.(none) # [ARM PATCH] 2345/1: S3C24XX - serial init depending on cpu detected # # Patch from Ben Dooks # # Use the cpu-type detected in arch/arm/mach-s3c2410/cpu.c # to work out which uart initialisation routine to call, # instead of relying on the one called within mach-xxxx.c. # # This allows one machine-type to run with either an 2410 or # 2440 cpu installed. # # Thanks to Dimitry Andric for the original patch. # # Signed-off-by: Ben Dooks # Signed-off-by: Russell King # # arch/arm/mach-s3c2410/s3c2440.h # 2005/01/04 15:43:25+00:00 ben-linux@org.rmk.(none) +1 -4 # [PATCH] 2345/1: S3C24XX - serial init depending on cpu detected # # arch/arm/mach-s3c2410/s3c2410.h # 2005/01/04 15:43:30+00:00 ben-linux@org.rmk.(none) +2 -5 # [PATCH] 2345/1: S3C24XX - serial init depending on cpu detected # # arch/arm/mach-s3c2410/mach-vr1000.c # 2005/01/04 15:44:18+00:00 ben-linux@org.rmk.(none) +2 -1 # [PATCH] 2345/1: S3C24XX - serial init depending on cpu detected # # arch/arm/mach-s3c2410/mach-smdk2410.c # 2005/01/04 15:46:33+00:00 ben-linux@org.rmk.(none) +1 -1 # [PATCH] 2345/1: S3C24XX - serial init depending on cpu detected # # arch/arm/mach-s3c2410/mach-rx3715.c # 2005/01/04 15:43:30+00:00 ben-linux@org.rmk.(none) +1 -1 # [PATCH] 2345/1: S3C24XX - serial init depending on cpu detected # # arch/arm/mach-s3c2410/mach-h1940.c # 2005/01/04 15:45:18+00:00 ben-linux@org.rmk.(none) +3 -2 # [PATCH] 2345/1: S3C24XX - serial init depending on cpu detected # # arch/arm/mach-s3c2410/mach-bast.c # 2005/01/04 15:44:50+00:00 ben-linux@org.rmk.(none) +3 -2 # [PATCH] 2345/1: S3C24XX - serial init depending on cpu detected # # arch/arm/mach-s3c2410/cpu.h # 2005/01/04 15:52:12+00:00 ben-linux@org.rmk.(none) +12 -4 # [PATCH] 2345/1: S3C24XX - serial init depending on cpu detected # # arch/arm/mach-s3c2410/cpu.c # 2005/01/04 15:42:39+00:00 ben-linux@org.rmk.(none) +35 -20 # [PATCH] 2345/1: S3C24XX - serial init depending on cpu detected # # ChangeSet # 2005/01/04 22:29:29+00:00 ben-linux@org.rmk.(none) # [ARM PATCH] 2344/1: S3C2440 - fix mapping of watchdog for reboot # # Patch from Ben Dooks # # Ensure the watchdog timer is mapped for use with # the reboot code. Also fixes minor comment typo. # # Signed-off-by: Dimitry Andric # # Signed-off-by: Ben Dooks # Signed-off-by: Russell King # # ChangeSet # 2005/01/04 14:28:02-08:00 Andries.Brouwer@cwi.nl # [PATCH] remove duplicated patch fragment # # Acked-by: Chris Wright # Signed-off-by: Linus Torvalds # # security/commoncap.c # 2005/01/04 09:35:49-08:00 Andries.Brouwer@cwi.nl +0 -4 # remove duplicated patch fragment # # arch/arm/mach-s3c2410/s3c2440.c # 2005/01/04 15:00:40+00:00 ben-linux@org.rmk.(none) +2 -1 # [PATCH] 2344/1: S3C2440 - fix mapping of watchdog for reboot # # ChangeSet # 2005/01/04 22:24:26+00:00 ben-linux@org.rmk.(none) # [ARM PATCH] 2343/1: S3C2410 / S3C2440 MAINTAINERS entries # # Patch from Ben Dooks # # Mainter entries for ARM/S3C2410 and ARM/S3C2410 ARM # Architectures, mainted by Ben Dooks on behalf of # Simtec Electronics. # # Signed-off-by: Ben Dooks # Signed-off-by: Russell King # # MAINTAINERS # 2005/01/04 12:16:47+00:00 ben-linux@org.rmk.(none) +14 -0 # [PATCH] 2343/1: S3C2410 / S3C2440 MAINTAINERS entries # # ChangeSet # 2005/01/04 13:54:13-08:00 chrisw@osdl.org # [PATCH] track capabilities in default dummy security module code # # Switch dummy logic around to set cap_* bits during exec and set*uid based # on basic uid check. Then check cap_* bits during capable() (rather than # doing basic uid check). This ensures that capability bits are properly # initialized in case the capability module is later loaded. # # Signed-off-by: Chris Wright # Signed-off-by: Linus Torvalds # # security/dummy.c # 2005/01/04 13:14:10-08:00 chrisw@osdl.org +3 -4 # track capabilities in default dummy security module code # # ChangeSet # 2005/01/04 20:03:09+00:00 rmk@flint.arm.linux.org.uk # [ARM] Fix slab corruption issues triggered with pud_t integration. # # When the page tables are wrapped from 4 levels to 2 levels, the new # MM code requires PMD_SHIFT to match PUD_SHIFT, which must also # match PGDIR_SHIFT. If PMD_SHIFT is smaller than PUD_SHIFT, we risk # freeing a still-in-use table (== page) which can then get re-used # for the slab cache. # # Testing and inspection shows that there isn't any real benefit from # keeping PMD_SHIFT set to 20. # # In addition, add some comments concerning the granularity of # alloc_init_section() and fix a missing PMD assignment in the # rebooting code. Somehow we managed to get away with that, although # it is actually wrong. Maybe I've just been lucky until now. # # Signed-off-by: Russell King # # include/asm-arm/pgtable.h # 2005/01/04 19:59:55+00:00 rmk@flint.arm.linux.org.uk +1 -1 # Set PMD_SHIFT to 21 isntead of 20. # # arch/arm/mm/mm-armv.c # 2005/01/04 19:59:55+00:00 rmk@flint.arm.linux.org.uk +6 -1 # Add comments concerning alloc_init_section's granularity. # Fix setup_mm_for_reboot() to set second half of pgdir entry. # # ChangeSet # 2005/01/04 19:49:09+01:00 trond.myklebust@fys.uio.no # RPC: call_verify # Don't label all retries as "server seeing garbage". # Report correct error for buffer overflows. # Fix incorrect buffer overflow test that was masking # AUTH_REJECTEDCRED, AUTH_REJECTEDVERF,... errors. # # Signed-off-by: Trond Myklebust # # net/sunrpc/clnt.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +30 -19 # RPC: call_verify # # ChangeSet # 2005/01/04 19:48:45+01:00 trond.myklebust@fys.uio.no # Subject: [PATCH] NFS: incorrect "df" results # # Description: # Fix an NFS client bug introduced in 2.6.9-rc1. The "df" command was # reporting the size of NFS file systems incorrectly. # # Signed-off-by: Chuck Lever # Signed-off-by: Trond Myklebust # # fs/nfs/inode.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +15 -1 # Subject: [PATCH] NFS: incorrect "df" results # # ChangeSet # 2005/01/04 19:48:17+01:00 trond.myklebust@fys.uio.no # NFS: Ensure ACCESS caches are invalidated together with the attribute # cache. # # Signed-off-by: Trond Myklebust # # include/linux/nfs_fs.h # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +2 -1 # NFS: Ensure ACCESS caches are invalidated together with the attribute # # fs/nfs/inode.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +8 -19 # NFS: Ensure ACCESS caches are invalidated together with the attribute # # fs/nfs/dir.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +2 -1 # NFS: Ensure ACCESS caches are invalidated together with the attribute # # ChangeSet # 2005/01/04 19:47:52+01:00 trond.myklebust@fys.uio.no # Subject: [PATCH] NFS: use attribute timeout instead of "noac" mount option # # The behavior enabled by the "noac" mount option should be precisely # equivalent to setting acreg{min,max} or acdir{min,max} to zero via mount # options. # # Signed-off-by: Chuck Lever # Signed-off-by: Trond Myklebust # # fs/nfs/inode.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +1 -1 # Subject: [PATCH] NFS: use attribute timeout instead of "noac" mount option # # ChangeSet # 2005/01/04 19:47:24+01:00 trond.myklebust@fys.uio.no # Subject: [PATCH] NFS: Direct reads and writes need to flush dirty cache pages # # Other parts of the NFS client invoke nfs_wb_all() when they want to flush dirty # cache pages. The direct path needs to do that, too. # # Signed-off-by: Chuck Lever # Signed-off-by: Trond Myklebust # # fs/nfs/direct.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +4 -0 # Subject: [PATCH] NFS: Direct reads and writes need to flush dirty cache pages # # ChangeSet # 2005/01/04 19:47:00+01:00 trond.myklebust@fys.uio.no # Subject: [PATCH] NFS: Use parallel read operations to do direct read requests # # The initial implementation of NFS direct reads was entirely synchronous. # The direct read logic issued one NFS READ operation at a time, and waited # for the server's reply before issuing the next one. For large direct # read requests, this is unnecessarily slow. # # This patch changes the NFS direct read path to dispatch NFS READ operations # for a single direct read request in parallel and wait for them once. The # direct read path is still synchronous in nature, but because the NFS READ # operations are going in parallel, the completion wait should be much shorter. # # Signed-off-by: Chuck Lever # Signed-off-by: Trond Myklebust # # fs/nfs/inode.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +22 -3 # Subject: [PATCH] NFS: Use parallel read operations to do direct read requests # # fs/nfs/direct.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +262 -69 # Subject: [PATCH] NFS: Use parallel read operations to do direct read requests # # ChangeSet # 2005/01/04 19:46:31+01:00 trond.myklebust@fys.uio.no # Subject: [PATCH] NFS: Direct read path allocates nfs_read_data on the stack # # Reduce stack utilization in the NFS direct read path by using a # dynamically allocated nfs_read_data structure instead of allocating one # on the stack. This reduces stack utilization of nfs_direct_read_seg # from over 900 bytes to less than 100 bytes. # # Signed-off-by: Chuck Lever # Signed-off-by: Trond Myklebust # # include/linux/nfs_fs.h # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +20 -0 # Subject: [PATCH] NFS: Direct read path allocates nfs_read_data on the stack # # fs/nfs/read.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +2 -17 # Subject: [PATCH] NFS: Direct read path allocates nfs_read_data on the stack # # fs/nfs/direct.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +33 -34 # Subject: [PATCH] NFS: Direct read path allocates nfs_read_data on the stack # # ChangeSet # 2005/01/04 19:46:04+01:00 trond.myklebust@fys.uio.no # Subject: [PATCH] NFS: Direct write path allocates nfs_write_data on the stack # # Reduce stack utilization in the NFS direct write path by using a # dynamically allocated nfs_write_data structure instead of allocating one # on the stack. This reduces stack utilization of nfs_direct_write_seg # from over 900 bytes to less than 100 bytes. # # Signed-off-by: Chuck Lever # Signed-off-by: Trond Myklebust # # include/linux/nfs_fs.h # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +39 -0 # Subject: [PATCH] NFS: Direct write path allocates nfs_write_data on the stack # # fs/nfs/write.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +3 -36 # Subject: [PATCH] NFS: Direct write path allocates nfs_write_data on the stack # # fs/nfs/direct.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +37 -38 # Subject: [PATCH] NFS: Direct write path allocates nfs_write_data on the stack # # ChangeSet # 2005/01/04 19:45:37+01:00 trond.myklebust@fys.uio.no # Subject: [PATCH] NFS: better handling of short writes in direct write path # # Immediately return control to the application if a short NFS write is # detected in the NFS client's direct write path. This is better behavior # than what the direct write path does today, which could result in data # appearing at the wrong offset in the file. # # Eventually this code path should retry short writes at least once before # giving up. # # Signed-off-by: Chuck Lever # Signed-off-by: Trond Myklebust # # fs/nfs/direct.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +6 -1 # Subject: [PATCH] NFS: better handling of short writes in direct write path # # ChangeSet # 2005/01/04 19:45:13+01:00 trond.myklebust@fys.uio.no # Subject: [PATCH] NFS: Use sizeof() instead of C macro # # Replace a C macro with sizeof(). # # Signed-off-by: Chuck Lever # Signed-off-by: Trond Myklebust # # fs/nfs/direct.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +5 -6 # Subject: [PATCH] NFS: Use sizeof() instead of C macro # # ChangeSet # 2005/01/04 19:44:43+01:00 trond.myklebust@fys.uio.no # Subject: [PATCH] RPC: display XIDs in host order # # Description: # Ethereal and other tools display RPC XIDs in host order. This patch # changes the RPC trace messages that display XIDs to print them in host # order so they can be easily matched to XIDs that appear in Ethereal. # # Signed-off-by: Chuck Lever # Signed-off-by: Trond Myklebust # # net/sunrpc/xprt.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +4 -3 # Subject: [PATCH] RPC: display XIDs in host order # # ChangeSet # 2005/01/04 19:44:19+01:00 trond.myklebust@fys.uio.no # Subject: [PATCH] NFS: report return code on GETATTR and SETATTR # # Improve trace debugging messages for NFSv2/3 GETATTR and SETATTR # procedures. # # Signed-off-by: Chuck Lever # Signed-off-by: Trond Myklebust # # fs/nfs/proc.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +4 -4 # Subject: [PATCH] NFS: report return code on GETATTR and SETATTR # # fs/nfs/nfs3proc.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +5 -5 # Subject: [PATCH] NFS: report return code on GETATTR and SETATTR # # ChangeSet # 2005/01/04 19:43:50+01:00 trond.myklebust@fys.uio.no # Subject: [PATCH] NFS: short write warning # # Recently a patch set was accepted to allow the Linux NFS client to handle # short writes by retrying the unwritten portion of the request. The only # case that now results in an error is when the server makes no progress; # that is, writes zero bytes. # # This patch changes the kernel log warning that is generated in that case # to reflect the error condition more accurately. # # Signed-off-by: Chuck Lever # Signed-off-by: Trond Myklebust # # fs/nfs/write.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +2 -1 # Subject: [PATCH] NFS: short write warning # # ChangeSet # 2005/01/04 19:43:24+01:00 trond.myklebust@fys.uio.no # NFS: Fix dentry refcount accounting error which causes unnecessary # sillyrenames when renaming to an existing file. # # Signed-off-by: Greg Banks # Signed-off-by: Trond Myklebust # # fs/nfs/dir.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +2 -4 # NFS: Fix dentry refcount accounting error which causes unnecessary # # ChangeSet # 2005/01/04 19:42:56+01:00 trond.myklebust@fys.uio.no # NFS: when we mount with the "nolock" flag we need to use local locking. # # Signed-off-by: Trond Myklebust # # fs/nfs/inode.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +15 -8 # NFS: when we mount with the "nolock" flag we need to use local locking. # # fs/nfs/file.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +29 -21 # NFS: when we mount with the "nolock" flag we need to use local locking. # # ChangeSet # 2005/01/04 19:42:30+01:00 trond.myklebust@fys.uio.no # VFS: Remove LOCK_USE_CLNT. It should no longer be necessary. # # Signed-off-by: Trond Myklebust # # include/linux/fs.h # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +0 -5 # VFS: Remove LOCK_USE_CLNT. It should no longer be necessary. # # fs/locks.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +0 -6 # VFS: Remove LOCK_USE_CLNT. It should no longer be necessary. # # ChangeSet # 2005/01/04 19:42:03+01:00 trond.myklebust@fys.uio.no # RPC: Optimize away unnecessary del_timer_sync() operations, when we # know there are no pending timers. # # Signed-off-by: Trond Myklebust # # net/sunrpc/sched.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +7 -1 # RPC: Optimize away unnecessary del_timer_sync() operations, when we # # include/linux/sunrpc/sched.h # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +1 -0 # RPC: Optimize away unnecessary del_timer_sync() operations, when we # # ChangeSet # 2005/01/04 19:41:37+01:00 trond.myklebust@fys.uio.no # VFS: Avoid dentry aliasing problems in filesystems like NFS, where # inodes may be marked as stale in one instance (causing the dentry # to be dropped) then re-enabled in the next instance. # # Signed-off-by: Trond Myklebust # # include/linux/dcache.h # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +18 -0 # VFS: Avoid dentry aliasing problems in filesystems like NFS, where # # fs/nfs/dir.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +25 -16 # VFS: Avoid dentry aliasing problems in filesystems like NFS, where # # fs/dcache.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +48 -0 # VFS: Avoid dentry aliasing problems in filesystems like NFS, where # # ChangeSet # 2005/01/04 19:41:11+01:00 trond.myklebust@fys.uio.no # NFSv2/v3/v4: ESTALE should not be a permanent condition on directories. # # Although it usually means that someone has deleted a file on the server, # the ESTALE error may also indicate that the sysadmin has used exportfs to # deny our client access to the server. Most NFS implementations therefore # consider it a non-permanent condition, and allow inodes to "recover" when # the sysadmin re-enables access. # If, however, you want to work with broken servers, like unfsd, that reuse # filehandles for new files after the original file gets deleted, then # "recovery" is impossible, since it may be that the filehandle now points # to a different file. Note that this is broken server behaviour that may # happen even without us ever seeing the ESTALE error. # In order to minimize (but we can never eliminate entirely) this race # condition on unfsd servers, Linux has traditionally made ESTALE a # permanent condition on all filehandles except the root filehandle. # # The problem is that if we apply this strict staleness criterion to # directories (particularly so for he current directory), then all # processes will need to re-walk the path starting from the mount point, # in order to recover from the sysadmin intervention case. As this is not # usual on other *NIX implementations, and may in any case be undermined by # caching rules etc, this is being seen as a usability problem. # # This patch makes ESTALE a non-permanent condition on directories, but # preserves the current behaviour for non-directories. # # Signed-off-by: Trond Myklebust # # fs/nfs/inode.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +7 -7 # NFSv2/v3/v4: ESTALE should not be a permanent condition on directories. # # ChangeSet # 2005/01/04 19:40:47+01:00 trond.myklebust@fys.uio.no # Subject: [PATCH] NFS: Sync NFS writes still use kmalloc # # Replace the kmalloc() and kfree() calls in this path with appropriate # invocations of nfs_writedata_alloc() and nfs_writedata_free(). This # makes nfs_writepage_sync match all the other write paths in fs/nfs/write.c. # # Category: Maintainability, performance # # Signed-off-by: Chuck Lever # Signed-off-by: Trond Myklebust # # fs/nfs/write.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +2 -4 # Subject: [PATCH] NFS: Sync NFS writes still use kmalloc # # ChangeSet # 2005/01/04 19:40:18+01:00 trond.myklebust@fys.uio.no # RPCSEC_GSS: Miscellaneous cleanup of auth_gss.c: we're passing something # as a void * when we know perfectly well what it is. And we're passing # some arguments that we don't actually use. # # Signed-off-by: J. Bruce Fields # Signed-off-by: Trond Myklebust # # net/sunrpc/auth_gss/auth_gss.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +7 -10 # RPCSEC_GSS: Miscellaneous cleanup of auth_gss.c: we're passing something # # ChangeSet # 2005/01/04 19:39:55+01:00 trond.myklebust@fys.uio.no # RPC: The RPCAUTH_CRED_DEAD flag had been unused for some time before I # unwisely revived it for use with the gss code. Having removed that use # from the gss code, it's time to remove all references to it. # # Signed-off-by: J. Bruce Fields # Signed-off-by: Trond Myklebust # # net/sunrpc/auth.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +0 -12 # RPC: The RPCAUTH_CRED_DEAD flag had been unused for some time before I # # include/linux/sunrpc/auth.h # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +0 -2 # RPC: The RPCAUTH_CRED_DEAD flag had been unused for some time before I # # ChangeSet # 2005/01/04 19:39:27+01:00 trond.myklebust@fys.uio.no # RPC: Instead of setting a flag (RPCAUTH_CRED_DEAD) in the cred to # indicate failure of an upcall to get a gss context for that cred, # set the status of waiting tasks to indicate failure. # # This solves problems e.g. with creds with the CRED_DEAD flag set # never being refreshed, which caused krb5 mounts to fail after the # context used to do RENEWS expired. # # Signed-off-by: J. Bruce Fields # Signed-off-by: Trond Myklebust # # net/sunrpc/clnt.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +1 -1 # RPC: Instead of setting a flag (RPCAUTH_CRED_DEAD) in the cred to # # net/sunrpc/auth_gss/auth_gss.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +3 -1 # RPC: Instead of setting a flag (RPCAUTH_CRED_DEAD) in the cred to # # ChangeSet # 2005/01/04 19:39:01+01:00 trond.myklebust@fys.uio.no # RPCSEC_GSS: When the gss code notices that a cred has expired, mark # the cred containing the context non-uptodate, triggering creation of # a new context. # # Note that on the send-side operations (get_mic, wrap), we mark the # cred as not uptodate, but continue trying to use it; the server can # complain if it wants to, and the next time through we'll refresh it. # # Signed-off-by: J. Bruce Fields # Signed-off-by: Trond Myklebust # # net/sunrpc/auth_gss/auth_gss.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +19 -8 # RPCSEC_GSS: When the gss code notices that a cred has expired, mark # # ChangeSet # 2005/01/04 19:38:37+01:00 trond.myklebust@fys.uio.no # NFSv4: Convert the NFSv4 close and open_downgrade operations to use # asynchronous RPC calls. # # Signed-off-by: Trond Myklebust # # include/linux/nfs_fs.h # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +1 -2 # NFSv4: Convert the NFSv4 close and open_downgrade operations to use # # fs/nfs/nfs4state.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +4 -6 # NFSv4: Convert the NFSv4 close and open_downgrade operations to use # # fs/nfs/nfs4proc.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +78 -93 # NFSv4: Convert the NFSv4 close and open_downgrade operations to use # # ChangeSet # 2005/01/04 19:38:13+01:00 trond.myklebust@fys.uio.no # NFSv4: setattr, close and open_downgrade should use the state_owner's # credentials when they are available. # # Signed-off-by: Trond Myklebust # # fs/nfs/nfs4proc.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +4 -0 # NFSv4: setattr, close and open_downgrade should use the state_owner's # # ChangeSet # 2005/01/04 19:37:47+01:00 trond.myklebust@fys.uio.no # NFSv4: Make nfs4_do_open() take a dentry argument. # # Signed-off-by: Trond Myklebust # # fs/nfs/nfs4proc.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +8 -8 # NFSv4: Make nfs4_do_open() take a dentry argument. # # ChangeSet # 2005/01/04 19:37:20+01:00 trond.myklebust@fys.uio.no # NFS: Change rpc_ops->create() to take a dentry argument rather than a # qstr. # # Signed-off-by: Trond Myklebust # # include/linux/nfs_xdr.h # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +1 -1 # NFS: Change rpc_ops->create() to take a dentry argument rather than a # # fs/nfs/proc.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +4 -4 # NFS: Change rpc_ops->create() to take a dentry argument rather than a # # fs/nfs/nfs4proc.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +2 -2 # NFS: Change rpc_ops->create() to take a dentry argument rather than a # # fs/nfs/nfs3proc.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +5 -5 # NFS: Change rpc_ops->create() to take a dentry argument rather than a # # fs/nfs/dir.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +1 -7 # NFS: Change rpc_ops->create() to take a dentry argument rather than a # # ChangeSet # 2005/01/04 19:36:52+01:00 trond.myklebust@fys.uio.no # NFS: The fact that readdirplus calls now create dentries from within readdir # calls renders nfs_cached_lookup() obsolete. # # Signed-off-by: Trond Myklebust # # fs/nfs/dir.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +6 -106 # NFS: The fact that readdirplus calls now create dentries from within readdir # # ChangeSet # 2005/01/04 19:36:29+01:00 trond.myklebust@fys.uio.no # NFS: Make readdirplus create dentries on the fly when we're running # through the directory. # # Signed-off-by: Trond Myklebust # # fs/nfs/dir.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +59 -18 # NFS: Make readdirplus create dentries on the fly when we're running # # ChangeSet # 2005/01/04 19:36:01+01:00 trond.myklebust@fys.uio.no # RPC: Add missing calls to flush_dcache_page() in net/sunrpc/xdr.c # # Signed-off-by: Trond Myklebust # # net/sunrpc/xdr.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +4 -0 # RPC: Add missing calls to flush_dcache_page() in net/sunrpc/xdr.c # # ChangeSet # 2005/01/04 19:35:39+01:00 trond.myklebust@fys.uio.no # RPC: More aggressive RPC debugging code. # # People are worrying about spinlock deadlocks in the debugging code, without # actually worrying about the bugs that triggered the debugging code in the # first place. # Convert to BUG_ON() in order to ensure that bugs are reported. # # Signed-off-by: Trond Myklebust # # net/sunrpc/sched.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +4 -13 # RPC: More aggressive RPC debugging code. # # ChangeSet # 2005/01/04 19:35:12+01:00 trond.myklebust@fys.uio.no # RPC: Fix a bug in rpc_killall_tasks(). # # Shirly Ma reported seeing problems with rpc_killall_tasks() causing # the task->tk_magic debugging test to trigger. It turns out we may be # killing tasks that are not yet running or even initialized. # # Signed-off-by: Trond Myklebust # # net/sunrpc/sched.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +9 -6 # RPC: Fix a bug in rpc_killall_tasks(). # # ChangeSet # 2005/01/04 19:34:47+01:00 trond.myklebust@fys.uio.no # RPC: Remove the rpc_queue_lock global spinlock. Replace it with per-rpc_queue # spinlocks. # # Signed-off-by: Trond Myklebust # # net/sunrpc/sched.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +30 -39 # RPC: Remove the rpc_queue_lock global spinlock. Replace it with per-rpc_queue # # include/linux/sunrpc/sched.h # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +4 -0 # RPC: Remove the rpc_queue_lock global spinlock. Replace it with per-rpc_queue # # ChangeSet # 2005/01/04 19:34:21+01:00 trond.myklebust@fys.uio.no # RPC: Convert rpciod into a work queue for greater flexibility. # # Signed-off-by: Trond Myklebust # # net/sunrpc/xprt.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +1 -1 # RPC: Convert rpciod into a work queue for greater flexibility. # # net/sunrpc/sched.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +138 -330 # RPC: Convert rpciod into a work queue for greater flexibility. # # include/linux/sunrpc/sched.h # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +43 -18 # RPC: Convert rpciod into a work queue for greater flexibility. # # fs/nfs/unlink.c # 2005/01/04 01:00:00+01:00 trond.myklebust@fys.uio.no +1 -2 # RPC: Convert rpciod into a work queue for greater flexibility. # # ChangeSet # 2005/01/04 10:06:07-08:00 torvalds@ppc970.osdl.org # Mark HPUSBSCSI scanner broken. You're supposed to use libusb. # # drivers/usb/image/Kconfig # 2005/01/04 10:06:00-08:00 torvalds@ppc970.osdl.org +1 -1 # Mark HPUSBSCSI scanner broken. You're supposed to use libusb. # # ChangeSet # 2005/01/04 08:16:58-08:00 torvalds@ppc970.osdl.org # Hide question about SERIO_LIBPS2 unless there is some remote # reason the user migth want to see it. # # Under any normal use it gets auto-selected by PS/2 mouse or ATKBD # support anyway, and if those aren't selected there's no reason to # select this one either unless you have some very special uses. # # drivers/input/serio/Kconfig # 2005/01/04 08:16:51-08:00 torvalds@ppc970.osdl.org +1 -1 # Hide question about SERIO_LIBPS2 unless there is some remote # reason the user migth want to see it. # # ChangeSet # 2005/01/04 08:03:51-08:00 torvalds@ppc970.osdl.org # Merge bk://linux-sam.bkbits.net/kbuild # into ppc970.osdl.org:/home/torvalds/v2.6/linux # # mm/memory.c # 2005/01/04 08:03:47-08:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # include/linux/mm.h # 2005/01/04 08:03:46-08:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # include/asm-x86_64/page.h # 2005/01/04 08:03:46-08:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # arch/x86_64/mm/init.c # 2005/01/04 08:03:46-08:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # ChangeSet # 2005/01/04 15:46:20+01:00 dwmw2@shinybook.infradead.org # Merge shinybook.infradead.org:/home/dwmw2/bk/linus-2.6 # into shinybook.infradead.org:/home/dwmw2/bk/mtd-2.6 # # drivers/mtd/maps/Makefile # 2005/01/04 15:46:11+01:00 dwmw2@shinybook.infradead.org +0 -0 # Auto merged # # drivers/mtd/maps/Kconfig # 2005/01/04 15:46:11+01:00 dwmw2@shinybook.infradead.org +0 -0 # Auto merged # # MAINTAINERS # 2005/01/04 15:46:11+01:00 dwmw2@shinybook.infradead.org +0 -0 # Auto merged # # CREDITS # 2005/01/04 15:46:11+01:00 dwmw2@shinybook.infradead.org +0 -0 # Auto merged # # ChangeSet # 2005/01/04 09:06:19+01:00 vojtech@suse.cz # Merge suse.cz:/home/vojtech/bk/linus into suse.cz:/home/vojtech/bk/input # # Documentation/kernel-parameters.txt # 2005/01/04 09:06:16+01:00 vojtech@suse.cz +0 -0 # Auto merged # # ChangeSet # 2005/01/04 06:48:44+01:00 akpm@osdl.org # bk-kbuild-in_gate_area_no_task-warning-fix # # arch/x86_64/mm/init.c: In function `in_gate_area_no_task': # arch/x86_64/mm/init.c:656: warning: suggest parentheses around && within || # In file included from include/asm/numa.h:5, # from arch/x86_64/kernel/setup.c:60: # # # Signed-off-by: Andrew Morton # Signed-off-by: Sam Ravnborg # # arch/x86_64/mm/init.c # 2004/12/29 12:37:56+01:00 akpm@osdl.org +2 -2 # bk-kbuild-in_gate_area_no_task-warning-fix # # ChangeSet # 2005/01/03 21:21:57-08:00 zwane@arm.linux.org.uk # [PATCH] NX: Fix noexec kernel parameter # # noexec_setup runs too late to take any effect, so parse it earlier. # # Signed-off-by: Zwane Mwaikambo # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-x86_64/pgtable.h # 2005/01/03 15:49:21-08:00 zwane@arm.linux.org.uk +1 -0 # NX: Fix noexec kernel parameter # # include/asm-i386/pgtable.h # 2005/01/03 15:49:21-08:00 zwane@arm.linux.org.uk +2 -0 # NX: Fix noexec kernel parameter # # arch/x86_64/kernel/setup64.c # 2005/01/03 15:50:30-08:00 zwane@arm.linux.org.uk +1 -4 # NX: Fix noexec kernel parameter # # arch/x86_64/kernel/setup.c # 2005/01/03 15:50:31-08:00 zwane@arm.linux.org.uk +3 -0 # NX: Fix noexec kernel parameter # # arch/i386/mm/init.c # 2005/01/03 15:50:32-08:00 zwane@arm.linux.org.uk +1 -4 # NX: Fix noexec kernel parameter # # arch/i386/kernel/setup.c # 2005/01/03 15:50:31-08:00 zwane@arm.linux.org.uk +4 -0 # NX: Fix noexec kernel parameter # # ChangeSet # 2005/01/03 21:16:56-08:00 heiko.carstens@de.ibm.com # [PATCH] s390: SCLP device driver cleanup # # From: Peter Oberparleiter # # sclp: core driver cleanup # # Details: # - moved signal shutdown (quiesce) handling into a separate file # - cleanup of SCLP core driver: # . introduced driver states instead of bits # . introduced request retry count and retry limit # . sclp_add_request now returns an error code if a request couldn't be started # . introduced separate request structure for init_mask requests to simplify # code # . request timer is now manually checked in sclp_sync_wait because timer # interrupts are disabled in this context # . removed busy timer - request timer now handles both cases # . split up sclp_start_request into __sclp_start_request and sclp_process # queue # . removed sclp_error_message (unused) # . introduced sclp_check_handler function to split up initial init mask # test from standard init mask request processing # . introduced sclp_deactivate and sclp_reactivate for simplified reboot # event handling (and potential use in suspend/resume scenario) # . added protection against multiple concurrent init mask calls # - minor changes in SCLP core driver: # . updated comments # . renamed functions to be consistent with "function name starts with __ => # needs lock" # . renamed internal functions for consistency reasons # . introduced inlined helper functions to simplify code # . moved EXPORT_SYMBOL definitions next to function definition # - changes in sclp console driver # . removed callback recursion to prevent stack overflow # - changes to CPI module # . added check for sclp_add_request return code # . changed printks to specify a message level # - changes to generic sclp tty layer # . removed timed buffer retry after error (timers may not work in some # situations) # . introduced return code for sclp_emit_buffer # - changes to sclp tty driver # . removed callback recursion # - changes to sclp vt220 driver # . removed callback recursion # . removed timed buffer retry after error # - modified sclp_init_mask to prevent problems with some compiler versions # # Signed-off-by: Heiko Carstens # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/s390/char/sclp_quiesce.c # 2005/01/03 15:49:39-08:00 heiko.carstens@de.ibm.com +114 -0 # s390: SCLP device driver cleanup # # drivers/s390/char/sclp_vt220.c # 2005/01/03 15:49:39-08:00 heiko.carstens@de.ibm.com +35 -59 # s390: SCLP device driver cleanup # # drivers/s390/char/sclp_tty.c # 2005/01/03 15:49:39-08:00 heiko.carstens@de.ibm.com +20 -20 # s390: SCLP device driver cleanup # # drivers/s390/char/sclp_rw.h # 2005/01/03 15:49:39-08:00 heiko.carstens@de.ibm.com +1 -3 # s390: SCLP device driver cleanup # # drivers/s390/char/sclp_rw.c # 2005/01/03 15:49:39-08:00 heiko.carstens@de.ibm.com +23 -39 # s390: SCLP device driver cleanup # # drivers/s390/char/sclp_quiesce.c # 2005/01/03 15:49:39-08:00 heiko.carstens@de.ibm.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/s390/char/sclp_quiesce.c # # drivers/s390/char/sclp_cpi.c # 2005/01/03 15:49:39-08:00 heiko.carstens@de.ibm.com +14 -5 # s390: SCLP device driver cleanup # # drivers/s390/char/sclp_con.c # 2005/01/03 15:49:39-08:00 heiko.carstens@de.ibm.com +20 -19 # s390: SCLP device driver cleanup # # drivers/s390/char/sclp.h # 2005/01/03 15:49:39-08:00 heiko.carstens@de.ibm.com +4 -2 # s390: SCLP device driver cleanup # # drivers/s390/char/sclp.c # 2005/01/03 15:49:39-08:00 heiko.carstens@de.ibm.com +667 -605 # s390: SCLP device driver cleanup # # drivers/s390/char/Makefile # 2005/01/03 15:49:39-08:00 heiko.carstens@de.ibm.com +1 -1 # s390: SCLP device driver cleanup # # ChangeSet # 2005/01/03 21:16:43-08:00 heiko.carstens@de.ibm.com # [PATCH] s390: DCSS driver cleanup fix # # From: Carsten Otte # # - Fix codingstyle. # # Signed-off-by: Heiko Carstens # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/s390/mm/extmem.c # 2005/01/03 15:49:39-08:00 heiko.carstens@de.ibm.com +2 -1 # s390: DCSS driver cleanup fix # # ChangeSet # 2005/01/03 21:16:29-08:00 heiko.carstens@de.ibm.com # [PATCH] s390: Character device drivers # # From: Peter Oberparleiter # From: Stefan Bader # # character device driver changes: # - tape: Correct module count usage. # - 3270: Use mod_timer only when timer is pending. # # Signed-off-by: Heiko Carstens # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/s390/char/tty3270.c # 2005/01/03 15:49:39-08:00 heiko.carstens@de.ibm.com +3 -2 # s390: Character device drivers # # drivers/s390/char/tape_core.c # 2005/01/03 15:49:39-08:00 heiko.carstens@de.ibm.com +9 -2 # s390: Character device drivers # # drivers/s390/char/con3270.c # 2005/01/03 15:49:39-08:00 heiko.carstens@de.ibm.com +4 -2 # s390: Character device drivers # # ChangeSet # 2005/01/03 21:16:16-08:00 heiko.carstens@de.ibm.com # [PATCH] s390: DASD driver # # From: Peter Oberparleiter # # dasd driver changes: # - Modify format analysis routine to use block size provided by on-disk label. # - Search data structures when referencing use_diag/ro attribute values. # - Correct return code checking when allocating memory. # # Signed-off-by: Heiko Carstens # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/s390/block/dasd_proc.c # 2005/01/03 15:49:39-08:00 heiko.carstens@de.ibm.com +6 -4 # s390: DASD driver # # drivers/s390/block/dasd_eckd.c # 2005/01/03 15:49:39-08:00 heiko.carstens@de.ibm.com +13 -13 # s390: DASD driver # # drivers/s390/block/dasd_diag.c # 2005/01/03 15:49:39-08:00 heiko.carstens@de.ibm.com +11 -5 # s390: DASD driver # # drivers/s390/block/dasd_devmap.c # 2005/01/03 15:49:39-08:00 heiko.carstens@de.ibm.com +15 -8 # s390: DASD driver # # ChangeSet # 2005/01/03 21:16:02-08:00 heiko.carstens@de.ibm.com # [PATCH] s390: Network device driver patches # # From: Ursula Braun-Krahl # From: Peter Tiedemann # From: Thomas Spatzier # From: Frank Pavlic # # - ctc: make sysfs attribute buffer early available. # - ctc: remove memory leak for channel ccw struct. # - qeth: remove redundant info card->info.ifname. # - qeth: enable recovery with retries in qeth_hardsetup_card after unit check. # - qeth: do not allow to set layer2 attribute on IQD devices. # # Signed-off-by: Heiko Carstens # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/s390/net/qeth_sys.c # 2005/01/03 15:49:39-08:00 heiko.carstens@de.ibm.com +15 -8 # s390: Network device driver patches # # drivers/s390/net/qeth_proc.c # 2005/01/03 15:49:39-08:00 heiko.carstens@de.ibm.com +4 -4 # s390: Network device driver patches # # drivers/s390/net/qeth_main.c # 2005/01/03 15:49:39-08:00 heiko.carstens@de.ibm.com +69 -59 # s390: Network device driver patches # # drivers/s390/net/qeth.h # 2005/01/03 15:49:39-08:00 heiko.carstens@de.ibm.com +8 -2 # s390: Network device driver patches # # drivers/s390/net/ctcmain.c # 2005/01/03 15:49:39-08:00 heiko.carstens@de.ibm.com +10 -6 # s390: Network device driver patches # # ChangeSet # 2005/01/03 21:15:47-08:00 heiko.carstens@de.ibm.com # [PATCH] s390: Common I/O layer # # From: Cornelia Huck # # common i/o layer changes: # # - Cope with changed cdev->handler. # - Split clearing of subchannels from reipl function and declare it in header. # # Signed-off-by: Heiko Carstens # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-s390/cio.h # 2005/01/03 15:49:38-08:00 heiko.carstens@de.ibm.com +2 -0 # s390: Common I/O layer # # drivers/s390/cio/qdio.c # 2005/01/03 15:49:38-08:00 heiko.carstens@de.ibm.com +10 -1 # s390: Common I/O layer # # drivers/s390/cio/cio.c # 2005/01/03 15:49:38-08:00 heiko.carstens@de.ibm.com +13 -6 # s390: Common I/O layer # # ChangeSet # 2005/01/03 21:15:33-08:00 heiko.carstens@de.ibm.com # [PATCH] s390: core patches # # s390 core changes: # - Disable pfault pseudo page faults before stopping a cpu. # - Add exception table for diag10 instruction. # - Move initialization of active_mm of idle task to smp_create_idle. # - Regenerate default configuration. # # Signed-off-by: Heiko Carstens # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/s390/mm/init.c # 2005/01/03 15:49:38-08:00 heiko.carstens@de.ibm.com +17 -4 # s390: core patches # # arch/s390/kernel/smp.c # 2005/01/03 15:49:38-08:00 heiko.carstens@de.ibm.com +8 -1 # s390: core patches # # arch/s390/kernel/setup.c # 2005/01/03 15:49:38-08:00 heiko.carstens@de.ibm.com +0 -3 # s390: core patches # # arch/s390/defconfig # 2005/01/03 15:49:38-08:00 heiko.carstens@de.ibm.com +7 -2 # s390: core patches # # ChangeSet # 2005/01/03 21:15:20-08:00 schwidefsky@de.ibm.com # [PATCH] s390: remove compat setup_arg_pages32 # # Remove the s390 version of setup_arg_pages32 function and use the generic # setup_arg_pages function instead. # # Signed-off-by: Martin Schwidefsky # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/s390/kernel/binfmt_elf32.c # 2005/01/03 15:49:38-08:00 schwidefsky@de.ibm.com +0 -3 # s390: remove compat setup_arg_pages32 # # arch/s390/kernel/Makefile # 2005/01/03 15:49:38-08:00 schwidefsky@de.ibm.com +1 -1 # s390: remove compat setup_arg_pages32 # # BitKeeper/deleted/.del-compat_exec.c~5f9e0c0b8a034dac # 2005/01/03 21:15:12-08:00 schwidefsky@de.ibm.com +0 -0 # Delete: arch/s390/kernel/compat_exec.c # # ChangeSet # 2005/01/03 21:15:06-08:00 kraxel@bytesex.org # [PATCH] uml: sysfs support for the uml block devices. # # Signed-off-by: Gerd Knorr # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/drivers/ubd_kern.c # 2005/01/03 15:49:38-08:00 kraxel@bytesex.org +18 -0 # uml: sysfs support for the uml block devices. # # ChangeSet # 2005/01/03 21:14:52-08:00 kraxel@bytesex.org # [PATCH] uml: sysfs support for uml network driver. # # Add sysfs support to the uml network driver. Also comment the eth_init # function, I think that one is never ever needed as the devices are initialized # when the underlying transport mechanism registeres. # # Signed-off-by: Gerd Knorr # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/include/net_kern.h # 2005/01/03 15:49:38-08:00 kraxel@bytesex.org +1 -0 # uml: sysfs support for uml network driver. # # arch/um/drivers/net_kern.c # 2005/01/03 15:49:38-08:00 kraxel@bytesex.org +22 -2 # uml: sysfs support for uml network driver. # # ChangeSet # 2005/01/03 21:14:36-08:00 kraxel@bytesex.org # [PATCH] uml: raise tty limit # # Signed-off-by: Gerd Knorr # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/drivers/stdio_console.c # 2005/01/03 15:49:38-08:00 kraxel@bytesex.org +1 -1 # uml: raise tty limit # # ChangeSet # 2005/01/03 21:14:23-08:00 kraxel@bytesex.org # [PATCH] uml: fix umldir init order # # Fixup initialization order when creating the $HOME/.uml/ directory and # the files therein, also make the error messages more useful. # # Signed-off-by: Gerd Knorr # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/kernel/umid.c # 2005/01/03 15:49:38-08:00 kraxel@bytesex.org +9 -10 # uml: fix umldir init order # # ChangeSet # 2005/01/03 21:14:09-08:00 kraxel@bytesex.org # [PATCH] uml: symbol export # # export a missing symbol, IIRC xfs needs that one. # # Signed-off-by: Gerd Knorr # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/kernel/um_arch.c # 2005/01/03 15:49:37-08:00 kraxel@bytesex.org +1 -0 # uml: symbol export # # ChangeSet # 2005/01/03 21:13:54-08:00 jdike@addtoit.com # [PATCH] uml: Fix highmem compilation # # Remove a reference to an unused variable. # # Signed-off-by: Jeff Dike # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/kernel/mem.c # 2005/01/03 15:49:37-08:00 jdike@addtoit.com +0 -3 # uml: Fix highmem compilation # # ChangeSet # 2005/01/03 21:13:41-08:00 jdike@addtoit.com # [PATCH] uml: Remove bogus __NR_sigreturn check # # Before Bodo's signal fixes and my signal delivery rework, it was possible for # a process to execute UML code by running the default signal restorer. This # is no longer possible, so this check can be removed from the sanity test for # UML accidentally tracing itself. # # Signed-off-by: Jeff Dike # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/kernel/tt/syscall_user.c # 2005/01/03 15:49:37-08:00 jdike@addtoit.com +1 -2 # uml: Remove bogus __NR_sigreturn check # # ChangeSet # 2005/01/03 21:13:28-08:00 jdike@addtoit.com # [PATCH] uml: declare ptrace_setfpregs # # Add a declaration for ptrace_setfpregs # # Signed-off-by: Jeff Dike # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/include/ptrace_user.h # 2005/01/03 15:49:37-08:00 jdike@addtoit.com +1 -0 # uml: declare ptrace_setfpregs # # ChangeSet # 2005/01/03 21:13:13-08:00 jdike@addtoit.com # [PATCH] uml: use SYSEMU_SINGLESTEP # # This implements using the new ptrace option SYSEMU_SINGLESTEP in UML # (advanced sysemu) in SKAS and TT modes. # To have a fast selection of the appropriate ptrace option to use next, # a 2 dimensional arry is used and singlestepping() is modified to return # 0,1 or 2: # 0 = don't do singlestepping # 1 = singlestep a syscall # 2 = singlestep a "non syscall" instruction # # In do_syscall() writing of the syscall number is supressed, if the # advanced sysemu is in use (that does it itself). # # Signed-off-by: Bodo Stroesser # Signed-off-by: Jeff Dike # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/kernel/tt/tracer.c # 2005/01/03 15:49:37-08:00 jdike@addtoit.com +7 -11 # uml: use SYSEMU_SINGLESTEP # # arch/um/kernel/tt/syscall_user.c # 2005/01/03 15:50:15-08:00 jdike@addtoit.com +4 -0 # uml: use SYSEMU_SINGLESTEP # # arch/um/kernel/skas/process.c # 2005/01/03 15:49:37-08:00 jdike@addtoit.com +4 -6 # uml: use SYSEMU_SINGLESTEP # # arch/um/kernel/process_kern.c # 2005/01/03 15:49:37-08:00 jdike@addtoit.com +2 -2 # uml: use SYSEMU_SINGLESTEP # # arch/um/include/ptrace_user.h # 2005/01/03 15:50:16-08:00 jdike@addtoit.com +7 -0 # uml: use SYSEMU_SINGLESTEP # # ChangeSet # 2005/01/03 21:12:59-08:00 jdike@addtoit.com # [PATCH] uml: detect SYSEMU_SINGLESTEP # # From: Bodo Stroesser # # This implements checking for the new ptrace option SYSEMU_SINGLESTEP # (advanced sysemu) and allows the values 0,1,2 for /proc/sysemu, # if advanced sysemu is available: # 0 = don't use sysemu # 1 = use sysemu, but don't use advanced sysemu # 2 = use sysemu and advanced sysemu # # Signed-off-by: Bodo Stroesser # Signed-off-by: Jeff Dike # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/kernel/process_kern.c # 2005/01/03 15:50:16-08:00 jdike@addtoit.com +4 -2 # uml: detect SYSEMU_SINGLESTEP # # arch/um/kernel/process.c # 2005/01/03 15:49:37-08:00 jdike@addtoit.com +36 -2 # uml: detect SYSEMU_SINGLESTEP # # arch/um/include/sysdep-i386/ptrace.h # 2005/01/03 15:49:37-08:00 jdike@addtoit.com +3 -0 # uml: detect SYSEMU_SINGLESTEP # # arch/um/include/ptrace_user.h # 2005/01/03 15:50:16-08:00 jdike@addtoit.com +3 -0 # uml: detect SYSEMU_SINGLESTEP # # ChangeSet # 2005/01/03 21:12:43-08:00 jdike@addtoit.com # [PATCH] uml: fix update_process_times call # # From: Bodo Stroesser # # In call to update_process_times() set parameter user # correctly. (was from for SKAS). # # Signed-off-by: Bodo Stroesser # Signed-off-by: Jeff Dike # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/kernel/time_kern.c # 2005/01/03 15:49:37-08:00 jdike@addtoit.com +1 -1 # uml: fix update_process_times call # # ChangeSet # 2005/01/03 21:12:30-08:00 jdike@addtoit.com # [PATCH] uml: correctly restore extramask in sigreturn # # From: Bodo Stroesser # # Restoring of current->blocked in sys_sigreturn is wrong. # The first (long ) of the mask correctly is fetched from sc->oldmask. # The further longs again come from there, but correctly should be # taken from frame->extramask. # # Signed-off-by: Bodo Stroesser # Signed-off-by: Jeff Dike # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/sys-i386/signal.c # 2005/01/03 15:49:36-08:00 jdike@addtoit.com +4 -3 # uml: correctly restore extramask in sigreturn # # ChangeSet # 2005/01/03 21:12:17-08:00 jdike@addtoit.com # [PATCH] uml: SYSEMU fixes # # From: Bodo Stroesser # # Usage of SYSEMU in TT mode is modified, so that always the # same method is used in do_syscall as has been used before in # ptrace(PTRACE_SYSCALL/SYSEMU, ...) # # Signed-off-by: Bodo Stroesser # Signed-off-by: Jeff Dike # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/kernel/tt/tracer.c # 2005/01/03 15:50:16-08:00 jdike@addtoit.com +4 -4 # uml: SYSEMU fixes # # arch/um/kernel/tt/syscall_user.c # 2005/01/03 15:50:16-08:00 jdike@addtoit.com +3 -6 # uml: SYSEMU fixes # # arch/um/kernel/tt/include/tt.h # 2005/01/03 15:49:36-08:00 jdike@addtoit.com +1 -1 # uml: SYSEMU fixes # # ChangeSet # 2005/01/03 21:12:04-08:00 jdike@addtoit.com # [PATCH] uml: Allow vsyscall code to build on 2.4 # # From: Bodo Stroesser # # This patch fixes compilation on 2.4 hosts by not relying on macros from 2.6 # host kernel headers in one userspace file. It's about AT_SYSINFO_* macros. # # Signed-off-by: Paolo 'Blaisorblade' Giarrusso # Signed-off-by: Jeff Dike # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/os-Linux/elf_aux.c # 2005/01/03 15:49:36-08:00 jdike@addtoit.com +1 -0 # uml: Allow vsyscall code to build on 2.4 # # arch/um/include/elf_user.h # 2005/01/03 15:49:36-08:00 jdike@addtoit.com +19 -0 # uml: Allow vsyscall code to build on 2.4 # # arch/um/include/elf_user.h # 2005/01/03 15:49:36-08:00 jdike@addtoit.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/um/include/elf_user.h # # ChangeSet # 2005/01/03 21:11:51-08:00 jdike@addtoit.com # [PATCH] uml: Fix setting of TIF_SIGPENDING # # From: Bodo Stroesser # # My older patch, that sets TIF_SIGPENDING after an ptrace-interception # in syscall_trace() is wrong. # Some syscalls want to be called without any signal pending. If a signal # is pending on syscall-entry, they immediately return with -ERESTARTNOINTR. # Thus, on return to user, the pending signals can be processed and the # kernel will lower eip by 2 to have the syscall restarted after that. # Since my change sets TIF_SIGPENDING on the entry and exit interception, # stracing such a syscall looped! Try "strace ls" to see what happens. # Fix: set TIF_SIGPENDING on the exit interception only. This avoids the # loop and is enough for security. # # Signed-off-by: Bodo Stroesser # Signed-off-by: Jeff Dike # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/kernel/ptrace.c # 2005/01/03 15:49:36-08:00 jdike@addtoit.com +2 -2 # uml: Fix setting of TIF_SIGPENDING # # ChangeSet # 2005/01/03 21:11:38-08:00 jdike@addtoit.com # [PATCH] uml: system call restart fixes # # From: Bodo Stroesser # # The implementation of sys_sigreturn() and sys_rt_sigreturn() in UML # must be changed. # This is necessary, since the return value of sys_*_sigreturn() # is the value of eax in the thread, that was interrupted by the # signal handler. If accidentaly eax contains -ERESTART_*, orig_eax # *must* be -1 to avoid syscall restart processing in kern_do_signal(). # If orig_eax is >=0, eip might be lowered by 2, the process will fail. # In UML PT_REGS_SYSCALL_NR() or UPT_SYSCALL_NR() have to be used # instead of orig_eax. # # While writing and testing an exploit for this, I saw that for most # interrupts, the syscall number is undefined. So even on a return from # interrupt a wrong syscall restart handling could happen. # # And also: UML resumes a process with ptrace(PTRACE_SYSCALL/SYSEMU/SINGLESTEP # when a syscall in UML in SKAS mode has been processed. But since there # is a valid syscall number in the host's orig_eax, the host could do # a wrong syscall restarting if the syscall in UML was a sigreturn() returning # -ERESTART* To avoid this, in SKAS -1 should be written to regs.orig_eax # before restore_registers(). # # Signed-off-by: Bodo Stroesser # Signed-off-by: Paolo 'Blaisorblade' Giarrusso # Signed-off-by: Jeff Dike # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/sys-i386/signal.c # 2005/01/03 15:50:16-08:00 jdike@addtoit.com +4 -0 # uml: system call restart fixes # # arch/um/kernel/tt/tracer.c # 2005/01/03 15:50:16-08:00 jdike@addtoit.com +4 -1 # uml: system call restart fixes # # arch/um/kernel/skas/process.c # 2005/01/03 15:50:16-08:00 jdike@addtoit.com +5 -1 # uml: system call restart fixes # # ChangeSet # 2005/01/03 21:11:23-08:00 jdike@addtoit.com # [PATCH] uml: export end_iomem # # From: Bodo Stroesser # # some modules need end_iomem to be exported. # # Signed-off-by: Bodo Stroesser # Signed-off-by: Jeff Dike # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/kernel/ksyms.c # 2005/01/03 15:49:36-08:00 jdike@addtoit.com +1 -0 # uml: export end_iomem # # ChangeSet # 2005/01/03 21:11:10-08:00 jdike@addtoit.com # [PATCH] uml: small vsyscall fixes # # From: Bodo Stroesser # # As Jeff pointed out, the check for address wrapping in access_ok_skas # was wrong. Also, change vsyscall_ehdr and vsyscall_end to be # unsigned long and export them, since modules need them for access_ok_skas # # Signed-off-by: Bodo Stroesser # Signed-off-by: Jeff Dike # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-um/archparam-i386.h # 2005/01/03 15:49:36-08:00 jdike@addtoit.com +3 -3 # uml: small vsyscall fixes # # arch/um/os-Linux/user_syms.c # 2005/01/03 15:49:36-08:00 jdike@addtoit.com +3 -0 # uml: small vsyscall fixes # # arch/um/os-Linux/elf_aux.c # 2005/01/03 15:50:16-08:00 jdike@addtoit.com +3 -3 # uml: small vsyscall fixes # # arch/um/kernel/skas/include/uaccess-skas.h # 2005/01/03 15:49:36-08:00 jdike@addtoit.com +2 -2 # uml: small vsyscall fixes # # ChangeSet # 2005/01/03 21:10:59-08:00 jdike@addtoit.com # [PATCH] uml: defconfig update # # Update defconfig for 2.6.10-rc2-mm4. # # Signed-off-by: Jeff Dike # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/defconfig # 2005/01/03 15:49:35-08:00 jdike@addtoit.com +7 -5 # uml: defconfig update # # ChangeSet # 2005/01/03 21:10:46-08:00 jdike@addtoit.com # [PATCH] uml: kill host processes properly # # This patch changes how UML kills ptraced processes in order to be more # correct in the presence of the ptrace changes in 2.6.9. It used to be that # ptrace stopped processes could simply be killed and they would go away. Now, # there's a new run state for ptraced processes which doesn't receive signals # until they are PTRACE_KILLed or PTRACE_CONTinued. So, this patch kills the # process, as usual, then PTRACE_KILL and PTRACE_CONT. This is done in # os_kill_ptrace_process() for use from skas mode, and in tracer() when it # sees a child process getting a SIGKILL. # # Signed-off-by: Jeff Dike # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/os-Linux/process.c # 2005/01/03 15:49:35-08:00 jdike@addtoit.com +7 -0 # uml: kill host processes properly # # arch/um/kernel/tt/tracer.c # 2005/01/03 15:50:17-08:00 jdike@addtoit.com +7 -1 # uml: kill host processes properly # # arch/um/kernel/tt/process_kern.c # 2005/01/03 15:49:35-08:00 jdike@addtoit.com +3 -2 # uml: kill host processes properly # # arch/um/kernel/tt/exec_user.c # 2005/01/03 15:49:35-08:00 jdike@addtoit.com +2 -1 # uml: kill host processes properly # # ChangeSet # 2005/01/03 21:10:34-08:00 jdike@addtoit.com # [PATCH] uml: Add TRACESYSGOOD support # # From: Bodo Stroesser # # Patch 1/3 to implement usage of PTRACE_O_TRACESYSGOOD # This is necessary, to fix UMLs bad behavior when a process does # a systemcall with syscall-number less than 0. # # Insert a check for availability and function of # ptrace(PTRACE_SETOPTIONS,,,PTRACE_O_TRACESYSGOOD) # into the normal ptrace checks at startup. # # Patch 2/3 to implement usage of PTRACE_O_TRACESYSGOOD # This is necessary, to fix UMLs bad behavior when a process does # a systemcall with syscall-number less than 0. # # This patch makes SKAS-mode use PTRACE_O_TRACESYSGOOD and fixes # the problems in SKAS. # # Patch 3/3 to implement usage of PTRACE_O_TRACESYSGOOD # This is necessary, to fix UMLs bad behavior when a process does # a systemcall with syscall-number less than 0. # # This patch makes TT-mode use PTRACE_O_TRACESYSGOOD and fixes # the problems in TT. # I'm not quite sure, that this patch doesn't cause problems with # debugger usage. It should be testet by someone, who has more # know how about TT-mode debugger. # # Signed-off-by: Bodo Stroesser # Signed-off-by: Jeff Dike # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/kernel/tt/tracer.c # 2005/01/03 15:50:17-08:00 jdike@addtoit.com +18 -3 # uml: Add TRACESYSGOOD support # # arch/um/kernel/tt/syscall_user.c # 2005/01/03 15:50:16-08:00 jdike@addtoit.com +6 -8 # uml: Add TRACESYSGOOD support # # arch/um/kernel/tt/include/tt.h # 2005/01/03 15:50:16-08:00 jdike@addtoit.com +1 -0 # uml: Add TRACESYSGOOD support # # arch/um/kernel/tt/exec_user.c # 2005/01/03 15:50:17-08:00 jdike@addtoit.com +4 -0 # uml: Add TRACESYSGOOD support # # arch/um/kernel/skas/process.c # 2005/01/03 15:50:17-08:00 jdike@addtoit.com +13 -9 # uml: Add TRACESYSGOOD support # # arch/um/kernel/process.c # 2005/01/03 15:50:16-08:00 jdike@addtoit.com +6 -2 # uml: Add TRACESYSGOOD support # # ChangeSet # 2005/01/03 21:10:21-08:00 jdike@addtoit.com # [PATCH] uml: include vsyscall page in core dumps # # From: Bodo Stroesser # # Complete the dump with the vsyscall-information, if a vsyscall-page # is available. # # Signed-off-by: Bodo Stroesser # Signed-off-by: Jeff Dike # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-um/archparam-i386.h # 2005/01/03 15:50:17-08:00 jdike@addtoit.com +18 -26 # uml: include vsyscall page in core dumps # # ChangeSet # 2005/01/03 21:10:08-08:00 jdike@addtoit.com # [PATCH] uml: make vsyscall page into process page tables # # From: Bodo Stroesser # # To make the vsyscall-page available for copy_from_user() and # ptrace(), we should use kernel's "gate-vma" mechanism. # Therefore we need a valid page structure. To have this, one # page (or more) is allocated at boot time, the contents of the # vsyscall-page is copied into this page and the page's pte is # inserted in swapper's pagetables. # Now it will be copied into the pagetables of all processes. # # Note: this alone doesn't work, since FIXADDR_USER_START and # FIXADDR_USER_END are not yet defined correctly. Also # access_ok_skas() does not yet grant read accesses to # pages not in the normal user area. # # Risks: # Please check the first hunk! I don't know, whether this change is OK. # Maybe fixrange_init() is wrong anyway with 3-level-pagetables? # # Here access_ok_skas() and FIXADDR_USER_XXXX are fixed. # Now everything should work fine, while the processes are # running. But if a process crashes, the vsyscall-page will # not be dumped. # # Signed-off-by: Bodo Stroesser # Signed-off-by: Jeff Dike # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-um/pgtable.h # 2005/01/03 15:49:35-08:00 jdike@addtoit.com +2 -0 # uml: make vsyscall page into process page tables # # include/asm-um/fixmap.h # 2005/01/03 15:49:35-08:00 jdike@addtoit.com +3 -3 # uml: make vsyscall page into process page tables # # arch/um/kernel/skas/include/uaccess-skas.h # 2005/01/03 15:50:17-08:00 jdike@addtoit.com +6 -1 # uml: make vsyscall page into process page tables # # arch/um/kernel/mem.c # 2005/01/03 15:50:15-08:00 jdike@addtoit.com +25 -0 # uml: make vsyscall page into process page tables # # ChangeSet # 2005/01/03 21:09:55-08:00 jdike@addtoit.com # [PATCH] uml: add elf vsyscall support # # From: Bodo Stroesser # # This is the first patch of a series of four. # These patches allow the use of sysenter-systemcalls in UML # if the host support sysenter. # Some facts have to be noted: # - the sysenter instruction does not save anything, not even the # return address. Thus the host-kernel builds a stackframe with an # fixed return address for the backjump to the vsyscall-page. All # kernels that support sysenter thus must have a vsyscall-page # - The hosts vsyscall-page is visible in all memory-contexts on the # host, even in those of the processes running on UML. This cannot # be changed. # So the best way to implement sysenter is to integrate the host's # vsyscall-page into UML, if available. # # This patch creates a new source file containing an UML # initialization function. The function scans the Elf-auxiliary vector # that is prepared by the host for relevant information about: # - vsyscall elf-header # - vsyscall entry # - machine type (called "platform", e.g. "i586" or "i686") # - hardware capabilities # These informations are inserted into the Elf-auxiliary-vector that is # generated if an UML process calls "execXX()". If the information from # the auxiliray-vector is not complete, UML uses the previos default # values, with one exception: if the host has no vsyscall-page, UML now # does no longer insert AT_SYSINFO or AT_SYSINFO_EHDR elements. (I think, # that's better than writing dummies) # # Since the host's vsyscall-page is always visible to UML processes, this # change is enough to let UML with an i686-compiled glibc use sysenter. # # what's missing: # - is_syscall() in SKAS cannot access the code in the vsyscall-page via # copy_from_user(), thus singlesteppers still could break out. (Note: # that's not new, if someone jumps willingly to the sysenter-entry in # the vsyscall-page, he can do that without the patch, too). # - a debugger cannot access the code in the vsyscall-page via # ptrace( PEEKTEXT, ...) # # Risks: # could there by any feature of the host's processor, that is indicated in # the hardware capabilities, but must not be used in UML? # # Signed-off-by: Bodo Stroesser # Signed-off-by: Jeff Dike # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-um/elf.h # 2005/01/03 15:49:35-08:00 jdike@addtoit.com +2 -1 # uml: add elf vsyscall support # # include/asm-um/archparam-i386.h # 2005/01/03 15:50:18-08:00 jdike@addtoit.com +13 -12 # uml: add elf vsyscall support # # arch/um/os-Linux/elf_aux.c # 2005/01/03 15:50:17-08:00 jdike@addtoit.com +66 -0 # uml: add elf vsyscall support # # arch/um/os-Linux/Makefile # 2005/01/03 15:49:35-08:00 jdike@addtoit.com +3 -2 # uml: add elf vsyscall support # # arch/um/kernel/um_arch.c # 2005/01/03 15:50:15-08:00 jdike@addtoit.com +0 -5 # uml: add elf vsyscall support # # arch/um/kernel/main.c # 2005/01/03 15:49:35-08:00 jdike@addtoit.com +4 -0 # uml: add elf vsyscall support # # arch/um/os-Linux/elf_aux.c # 2005/01/03 15:50:17-08:00 jdike@addtoit.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/um/os-Linux/elf_aux.c # # ChangeSet # 2005/01/03 21:09:42-08:00 blaisorblade_spam@yahoo.it # [PATCH] uml: finish fixing run_helper failure path # # Fix some bugs left in the failure path of run_helper by the previous patch: # it was missing one # # os_close_file(fds[1]) # # which is conditional. To use the goto handling model, I set the fd to -1 # if it's already closed (I don't want to check if keeping one more pipe-end # open is no problem). # # Also do some cosmethic cleanup: # # * "err" was what we returned even on success, so just use a neutral "ret". # # * use tabs, not spaces. # # * a little more comments. # # Signed-off-by: Paolo 'Blaisorblade' Giarrusso # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/kernel/helper.c # 2005/01/03 15:49:35-08:00 blaisorblade_spam@yahoo.it +27 -21 # uml: finish fixing run_helper failure path # # arch/um/drivers/net_user.c # 2005/01/03 15:49:35-08:00 blaisorblade_spam@yahoo.it +2 -1 # uml: finish fixing run_helper failure path # # ChangeSet # 2005/01/03 21:09:29-08:00 blaisorblade_spam@yahoo.it # [PATCH] Uml: first part rework of run_helper() and users. # # With Jeff Dike , # # Fixed a file descriptor leak in the network driver when changing an IP # address. # # Fixed the error handling in run_helper. # # Paolo notes: # # Actually, this is part one of the change, the exact one extracted from Jeff # Dike's incrementals tree before 2.6.9-rc big UML merge. # # There is some changes must be done, so I'm also sending a second patch with # this one, too. Separated for tracking purposes. # # Signed-off-by: Paolo 'Blaisorblade' Giarrusso # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/kernel/helper.c # 2005/01/03 15:50:18-08:00 blaisorblade_spam@yahoo.it +5 -9 # Uml: first part rework of run_helper() and users. # # arch/um/drivers/net_user.c # 2005/01/03 15:50:18-08:00 blaisorblade_spam@yahoo.it +2 -1 # Uml: first part rework of run_helper() and users. # # ChangeSet # 2005/01/03 21:09:16-08:00 kraxel@bytesex.org # [PATCH] uml: terminal cleanup # # This is a major cleanup of the uml terminal drivers and console handling # (console as in "where the kernel messages go to", not as in "linux # virtual terminals"). The changes in detail: # # (1) There is a new console driver calles "stderr" which (as the name # implies) simply dumps all kernel messages to stderr. That one # is registered very early in the boot process via console_initcall() # and will print every almost kernel message instantly: Both very # early in the boot process and very late in shutdown. # Note that this is not enabled by default, see below for details. # # (2) Ditched the early-console-init hackery in stdio_console.c # (open_console(NULL) + related stuff) into the waste basket, not # needed any more as you can use the new stderr console driver to # get the kernel messages if your kernel crashes very early in the # boot process. # # (3) Handle console initialitation for the uml stdio console and # virtual serial lines the normal way using the console->setup() # function. Now all kernel messages appear on your console device # once it is initialized without any dirty tricks. # # (4) The (2) changes allow a number of further cleanups: As we don't # open a line without a tty_struct any more we can ... # * hook struct line into tty->driver_data # * pass around tty_struct instead of struct line everythere # * get rid of some trivial wrappers in ssl.c and stdio_console.c # because we can get struct line via tty_struct all the time now. # # (5) Change the ordering in the arch/um/drivers/Makefile and thus # the link and initialization order to make sure the stdio console # and not the virtual serial line is the default console device. # # (6) Fixed a number of Documentation/CodingStyle issues within the # code (not systematically, but usually just the places I was # touching anyway or where it bugged me while browsing the code # because it was hard to read). # # Looks like that cleanup also fixed some strange tty issues I've seen in # the past (like console getty not responding to input sometimes, suse's # /sbin/blogd causing trouble). # # Finally some usage notes for using the new stderr console: # # If the stderr console is enabled, then it is the default console device # because it registeres very early in the boot process. But as it isn't # linked to a tty device this makes init unhappy, you'll see "can't open # initial console" error messages. Because you usually don't want that # the stderr console is turned off by default. That also maintains the # behavior that /dev/tty0 is the first console device registered and thus # the default console. # # There are basically two useful use cases for the stderr console: # # (1) Your kernel dies before the normal console device is initialized # and thus you don't see any messages. Just enable the stderr # console to see them by adding "stderr=1" to the kernel command line. # # (2) You want to have the kernel messages on both stderr and your # console terminal device. Try something like this: # # $ ./linux stderr=1 console=stderr console=ttyS0 ssl0=xterm # # This example sets up the console on a virtual serial line and # pops up an xterm for that. # # Signed-off-by: Gerd Knorr # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/include/line.h # 2005/01/03 15:49:34-08:00 kraxel@bytesex.org +9 -7 # uml: terminal cleanup # # arch/um/include/chan_user.h # 2005/01/03 15:49:34-08:00 kraxel@bytesex.org +3 -2 # uml: terminal cleanup # # arch/um/include/chan_kern.h # 2005/01/03 15:49:34-08:00 kraxel@bytesex.org +7 -3 # uml: terminal cleanup # # arch/um/drivers/xterm.c # 2005/01/03 15:49:34-08:00 kraxel@bytesex.org +2 -2 # uml: terminal cleanup # # arch/um/drivers/stdio_console.c # 2005/01/03 15:50:15-08:00 kraxel@bytesex.org +46 -102 # uml: terminal cleanup # # arch/um/drivers/stderr_console.c # 2005/01/03 15:49:34-08:00 kraxel@bytesex.org +45 -0 # uml: terminal cleanup # # arch/um/drivers/ssl.c # 2005/01/03 15:49:34-08:00 kraxel@bytesex.org +38 -88 # uml: terminal cleanup # # arch/um/drivers/pty.c # 2005/01/03 15:49:34-08:00 kraxel@bytesex.org +2 -1 # uml: terminal cleanup # # arch/um/drivers/line.c # 2005/01/03 15:49:34-08:00 kraxel@bytesex.org +167 -96 # uml: terminal cleanup # # arch/um/drivers/chan_user.c # 2005/01/03 15:49:34-08:00 kraxel@bytesex.org +5 -5 # uml: terminal cleanup # # arch/um/drivers/chan_kern.c # 2005/01/03 15:49:34-08:00 kraxel@bytesex.org +28 -12 # uml: terminal cleanup # # arch/um/drivers/Makefile # 2005/01/03 15:49:34-08:00 kraxel@bytesex.org +4 -3 # uml: terminal cleanup # # arch/um/Kconfig_char # 2005/01/03 15:49:34-08:00 kraxel@bytesex.org +6 -0 # uml: terminal cleanup # # arch/um/drivers/stderr_console.c # 2005/01/03 15:49:34-08:00 kraxel@bytesex.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/um/drivers/stderr_console.c # # ChangeSet # 2005/01/03 21:09:02-08:00 blaisorblade_spam@yahoo.it # [PATCH] hostfs: uml: add some other pagecache methods # # This is a follow-up to my previous "hostfs - uml: set .sendfile to # generic_file_sendfile" patch. I was asking whether other methods should have # been added, and comparing with ext3 I found some more ones. # # However, I have not specific clues about them: I know they use the pagecache, # which relies on *page methods, which are defined by hostfs. So I think it # could work. # # I have a doubt, whether hostfs needs the commented out method below: # # static struct address_space_operations hostfs_aops = { # .writepage = hostfs_writepage, # .readpage = hostfs_readpage, # /* .set_page_dirty = __set_page_dirty_nobuffers, */ # .prepare_write = hostfs_prepare_write, # .commit_write = hostfs_commit_write # }; # # Hostfs does not have a underlying device (and I have some rough idea that # buffers cache block devices data), so I wonder if that is needed or not. # # Signed-off-by: Paolo 'Blaisorblade' Giarrusso # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/hostfs/hostfs_kern.c # 2005/01/03 15:49:34-08:00 blaisorblade_spam@yahoo.it +5 -0 # hostfs: uml: add some other pagecache methods # # ChangeSet # 2005/01/03 21:08:49-08:00 blaisorblade_spam@yahoo.it # [PATCH] hostfs: uml: set .sendfile to generic_file_sendfile # # Make hostfs use the generic sendfile implementation. # # Signed-off-by: Paolo 'Blaisorblade' Giarrusso # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/hostfs/hostfs_kern.c # 2005/01/03 15:50:19-08:00 blaisorblade_spam@yahoo.it +1 -0 # hostfs: uml: set .sendfile to generic_file_sendfile # # ChangeSet # 2005/01/03 21:08:33-08:00 jdike@addtoit.com # [PATCH] uml: unregister signal handlers at reboot # # From: Bodo Stroesser # # In most cases reboot failed on my system. After "Restarting system.", UML # exited without further messages. I found an SIGIO being processed by # sig_handler() resp. sig_handler_common_skas(). Don't know, why this exits, # maybe the context is no longer valid at this time. So, I changed the sequence # in the reboot part of main() to stop the timers and disable the fds before # unblocking the signals. Since this wasn't enough, I also added # set_handler(SIGXXX, SIG_IGN) calls to disable_timer() and # deactivate_all_fds(). Now reboot works fine in SKAS and it still works in TT. # # Signed-off-by: Bodo Stroesser # Signed-off-by: Jeff Dike # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/kernel/time.c # 2005/01/03 15:49:34-08:00 jdike@addtoit.com +3 -0 # uml: unregister signal handlers at reboot # # arch/um/kernel/main.c # 2005/01/03 15:50:18-08:00 jdike@addtoit.com +8 -6 # uml: unregister signal handlers at reboot # # arch/um/kernel/irq_user.c # 2005/01/03 15:49:34-08:00 jdike@addtoit.com +2 -0 # uml: unregister signal handlers at reboot # # ChangeSet # 2005/01/03 21:08:20-08:00 jdike@addtoit.com # [PATCH] uml: free host resources associated with freed IRQs # # This adds a free_irq_by_irq_and_dev call which was accidentally removed when # the UML free_irq was replaced by generic code. # # Signed-off-by: Jeff Dike # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/kernel/irq_user.c # 2005/01/03 15:50:19-08:00 jdike@addtoit.com +4 -1 # uml: free host resources associated with freed IRQs # # ChangeSet # 2005/01/03 21:08:05-08:00 jdike@addtoit.com # [PATCH] uml: close host file descriptors properly # # This process closes some file descriptors which were left open incorrectly. # These are the initrd descriptor, the temporary test file used for testing /tmp # for execution permission, and a descriptor used by the netork to connect to # the switch. In the network case, we add network devices to the opened list as # soon as they are added to UML, rather than when they are configured. This # ensures that close_devices will remove the device properly on shutdown. # # Signed-off-by: Jeff Dike # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/kernel/mem_user.c # 2005/01/03 15:49:34-08:00 jdike@addtoit.com +2 -0 # uml: close host file descriptors properly # # arch/um/kernel/initrd_user.c # 2005/01/03 15:49:34-08:00 jdike@addtoit.com +2 -0 # uml: close host file descriptors properly # # arch/um/drivers/net_kern.c # 2005/01/03 15:50:15-08:00 jdike@addtoit.com +8 -9 # uml: close host file descriptors properly # # ChangeSet # 2005/01/03 21:07:51-08:00 jdike@addtoit.com # [PATCH] uml: fix sigreturn to not copy_user under a spinlock # # Fix sys_sigreturn and sys_rt_sigreturn to avoid calling copy_from_user inside # a spinlock. We copy the blocked signal mask into a local sigset_t before the # spinlock and then just assign from it inside the lock. # # Signed-off-by: Jeff Dike # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/sys-i386/signal.c # 2005/01/03 15:50:17-08:00 jdike@addtoit.com +31 -8 # uml: fix sigreturn to not copy_user under a spinlock # # ChangeSet # 2005/01/03 21:07:36-08:00 jdike@addtoit.com # [PATCH] uml: remove a quilt-induced duplicity # # This piece appears to have gone in twice. # # Signed-off-by: Milton Miller # Signed-off-by: Jeff Dike # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/kernel/tt/trap_user.c # 2005/01/03 15:49:33-08:00 jdike@addtoit.com +0 -7 # uml: remove a quilt-induced duplicity # # ChangeSet # 2005/01/03 21:07:23-08:00 jdike@addtoit.com # [PATCH] uml: unistd.h cleanup # # From: Chris Wedgewood: this removes unnecessary cruft from unistd.h # # Signed-off-by: Jeff Dike # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-um/unistd.h # 2005/01/03 15:49:33-08:00 jdike@addtoit.com +15 -91 # uml: unistd.h cleanup # # ChangeSet # 2005/01/03 21:07:08-08:00 jdike@addtoit.com # [PATCH] uml: make restorer match i386 # # From: Bodo Stroesser # # Signed-off-by: Jeff Dike # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/sys-i386/signal.c # 2005/01/03 15:50:19-08:00 jdike@addtoit.com +4 -4 # uml: make restorer match i386 # # ChangeSet # 2005/01/03 21:06:56-08:00 jdike@addtoit.com # [PATCH] uml: redo the signal delivery mechanism # # This patch rips out the old signal delivery mechanism and replaces it with a # sane one. # # Specifically, UML used to capture a host signal frame and use it as a template # for its own signal frames. This was a worthy idea, because it promised a # degree of architecture-independence for this part of UML, but impractical. # There are some environments, notably 32 bit emulation on a 64 bit box, where # you can't use the host signal frame as a template for your own. Plus, this # code is as complicated, even to someone who understands what it's doing, as # the standard fill-in-a-structure-and-write-it-to-the-stack. For everyone # else, it is incomprehensible. # # So, this reimplements signal handling in the way that everyone else does. It # gives up on architecture independence, and moves this code into the # x86-specific stuff. # # Signed-off-by: Jeff Dike # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/sys-i386/signal.c # 2005/01/03 21:06:48-08:00 jdike@addtoit.com +348 -0 # # arch/um/sys-i386/signal.c # 2005/01/03 21:06:48-08:00 jdike@addtoit.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/um/sys-i386/signal.c # # arch/um/sys-i386/sigcontext.c # 2005/01/03 15:49:33-08:00 jdike@addtoit.com +3 -11 # uml: redo the signal delivery mechanism # # arch/um/sys-i386/Makefile # 2005/01/03 15:49:33-08:00 jdike@addtoit.com +1 -1 # uml: redo the signal delivery mechanism # # arch/um/kernel/tt/tracer.c # 2005/01/03 15:50:18-08:00 jdike@addtoit.com +0 -2 # uml: redo the signal delivery mechanism # # arch/um/kernel/tt/include/mode-tt.h # 2005/01/03 15:49:33-08:00 jdike@addtoit.com +0 -3 # uml: redo the signal delivery mechanism # # arch/um/kernel/tt/Makefile # 2005/01/03 15:49:33-08:00 jdike@addtoit.com +1 -1 # uml: redo the signal delivery mechanism # # arch/um/kernel/trap_user.c # 2005/01/03 15:49:33-08:00 jdike@addtoit.com +0 -1 # uml: redo the signal delivery mechanism # # arch/um/kernel/skas/process_kern.c # 2005/01/03 15:49:33-08:00 jdike@addtoit.com +0 -2 # uml: redo the signal delivery mechanism # # arch/um/kernel/skas/include/mode-skas.h # 2005/01/03 15:49:33-08:00 jdike@addtoit.com +0 -5 # uml: redo the signal delivery mechanism # # arch/um/kernel/skas/Makefile # 2005/01/03 15:49:33-08:00 jdike@addtoit.com +0 -1 # uml: redo the signal delivery mechanism # # arch/um/kernel/signal_kern.c # 2005/01/03 15:49:33-08:00 jdike@addtoit.com +0 -47 # uml: redo the signal delivery mechanism # # arch/um/kernel/process_kern.c # 2005/01/03 15:50:16-08:00 jdike@addtoit.com +0 -2 # uml: redo the signal delivery mechanism # # arch/um/kernel/Makefile # 2005/01/03 15:49:33-08:00 jdike@addtoit.com +1 -1 # uml: redo the signal delivery mechanism # # arch/um/include/frame_kern.h # 2005/01/03 15:49:33-08:00 jdike@addtoit.com +2 -2 # uml: redo the signal delivery mechanism # # BitKeeper/deleted/.del-sigcontext.c~b35dd0fe749335be # 2005/01/03 21:06:48-08:00 jdike@addtoit.com +0 -0 # Delete: arch/um/kernel/tt/sys-i386/sigcontext.c # # BitKeeper/deleted/.del-Makefile~4a159f77562eb97f # 2005/01/03 21:06:48-08:00 jdike@addtoit.com +0 -0 # Delete: arch/um/kernel/tt/sys-i386/Makefile # # BitKeeper/deleted/.del-sigcontext.c~dc098287cfac9b8f # 2005/01/03 21:06:47-08:00 jdike@addtoit.com +0 -0 # Delete: arch/um/kernel/skas/sys-i386/sigcontext.c # # BitKeeper/deleted/.del-frame_kern.c~31f934208c027579 # 2005/01/03 21:06:47-08:00 jdike@addtoit.com +0 -0 # Delete: arch/um/kernel/frame_kern.c # # BitKeeper/deleted/.del-Makefile~70edd8cf705113bd # 2005/01/03 21:06:47-08:00 jdike@addtoit.com +0 -0 # Delete: arch/um/kernel/skas/sys-i386/Makefile # # BitKeeper/deleted/.del-frame_user.h~fc044711b94cb67f # 2005/01/03 21:06:46-08:00 jdike@addtoit.com +0 -0 # Delete: arch/um/include/sysdep-i386/frame_user.h # # BitKeeper/deleted/.del-frame_kern.h~b26a6fac31fb4a97 # 2005/01/03 21:06:46-08:00 jdike@addtoit.com +0 -0 # Delete: arch/um/include/sysdep-i386/frame_kern.h # # BitKeeper/deleted/.del-frame.c~af97c27d9803081 # 2005/01/03 21:06:46-08:00 jdike@addtoit.com +0 -0 # Delete: arch/um/kernel/frame.c # # BitKeeper/deleted/.del-frame_user.h~ae3ef5f79112d87b # 2005/01/03 21:06:45-08:00 jdike@addtoit.com +0 -0 # Delete: arch/um/include/frame_user.h # # BitKeeper/deleted/.del-frame.h~be06e0bb2f485f1 # 2005/01/03 21:06:45-08:00 jdike@addtoit.com +0 -0 # Delete: arch/um/include/frame.h # # BitKeeper/deleted/.del-frame.h~4e4bd718a128c004 # 2005/01/03 21:06:45-08:00 jdike@addtoit.com +0 -0 # Delete: arch/um/include/sysdep-i386/frame.h # # ChangeSet # 2005/01/03 21:05:26-08:00 blaisorblade_spam@yahoo.it # [PATCH] uml: fix some ptrace functions returns values # # From: Jeff Dike # # This patch adds ptrace_setfpregs and makes these functions return -errno on # failure. # # Signed-off-by: Paolo 'Blaisorblade' Giarrusso # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/sys-i386/ptrace_user.c # 2005/01/03 15:49:33-08:00 blaisorblade_spam@yahoo.it +16 -3 # uml: fix some ptrace functions returns values # # ChangeSet # 2005/01/03 21:05:13-08:00 blaisorblade_spam@yahoo.it # [PATCH] uml: fix __wrap_free comment # # Reworded the comment about __wrap_free detection of the allocator used to # allocate the pointer (it can free a pointer created by either the host # malloc(), kmalloc() or vmalloc()). # # Signed-off-by: Paolo 'Blaisorblade' Giarrusso # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/kernel/main.c # 2005/01/03 15:50:19-08:00 blaisorblade_spam@yahoo.it +6 -3 # uml: fix __wrap_free comment # # ChangeSet # 2005/01/03 21:05:00-08:00 blaisorblade_spam@yahoo.it # [PATCH] uml: remove most devfs_mk_symlink calls # # Remove uses of devfs_mk_symlink(). # # We didn't do this before to avoid breaking most user setups, but this patch # should be quite harmless. # # I've excluded the hottest part, i.e. the ubd symlink, while removing the # other; I released a end-user tree with this patch and there was a good number # of people using the symlink rather than the preferred name. That part will be # merged later, I think. # # Since now we have evidence of less and less users using devfs, we think that # it will not cause too much problems. # # Acked-by: Jeff Dike # Signed-off-by: Paolo 'Blaisorblade' Giarrusso # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/um/drivers/mmapper_kern.c # 2005/01/03 15:49:32-08:00 blaisorblade_spam@yahoo.it +0 -1 # uml: remove most devfs_mk_symlink calls # # arch/um/drivers/line.c # 2005/01/03 15:50:19-08:00 blaisorblade_spam@yahoo.it +1 -8 # uml: remove most devfs_mk_symlink calls # # ChangeSet # 2005/01/03 21:04:47-08:00 takata@linux-m32r.org # [PATCH] m32r: Update include/asm-m32r/mmu_context.h # # This patch updates include/asm-m32r/mmu_context.h. # # * include/asm-m32r/mmu_context.h: # - Add #ifdef __KERNEL__ # - Change __inline__ to inline for __KERNEL__ portion. # # Signed-off-by: Hirokazu Takata # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-m32r/mmu_context.h # 2005/01/03 15:49:32-08:00 takata@linux-m32r.org +11 -10 # m32r: Update include/asm-m32r/mmu_context.h # # ChangeSet # 2005/01/03 21:04:34-08:00 takata@linux-m32r.org # [PATCH] m32r: Update include/asm-m32r/system.h # # This patch updates include/asm-m32r/system.h. # # * include/asm-m32r/system.h: # - Use barrier() as mb(). # - Change __inline__ to inline. # # Signed-off-by: Hirokazu Takata # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-m32r/system.h # 2005/01/03 15:49:32-08:00 takata@linux-m32r.org +4 -8 # m32r: Update include/asm-m32r/system.h # # ChangeSet # 2005/01/03 21:04:21-08:00 takata@linux-m32r.org # [PATCH] m32r: Use generic hardirq framework # # This patch is for employing the generic hardirq framework for m32r. # Now CONFIG_GENERIC_HARDIRQS is set to Y by default. # # - Update to use GENERIC_HARDIRQ framework. # - Fix PREEMPT_ACTIVE definition (changeset 1.2000.16.20) # # Signed-off-by: Hirokazu Takata # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-m32r/thread_info.h # 2005/01/03 15:49:32-08:00 takata@linux-m32r.org +1 -1 # m32r: Use generic hardirq framework # # include/asm-m32r/irq.h # 2005/01/03 15:49:32-08:00 takata@linux-m32r.org +3 -14 # m32r: Use generic hardirq framework # # include/asm-m32r/hardirq.h # 2005/01/03 15:49:32-08:00 takata@linux-m32r.org +8 -0 # m32r: Use generic hardirq framework # # arch/m32r/kernel/irq.c # 2005/01/03 15:49:32-08:00 takata@linux-m32r.org +9 -938 # m32r: Use generic hardirq framework # # arch/m32r/Kconfig # 2005/01/03 15:49:32-08:00 takata@linux-m32r.org +7 -3 # m32r: Use generic hardirq framework # # ChangeSet # 2005/01/03 21:04:08-08:00 takata@linux-m32r.org # [PATCH] m32r: Make kernel headers for mutual exclusion # # Here is a patch to update kernel headers for mutual exclusion, # atomic.h, bitops.h and semaphore.h of m32r. # This patch is for making these headers publishable to userland. # # * include/asm-m32r/assembler.h (M32R_LOCK, M32R_UNLOCK): # Define M32R_LOCK and M32R_UNLOCK macros. For SMP configuration, # these macros are expanded to m32r's LOCK and UNLOCK instructions. # While, for UP configuration, these are simply expanded to m32r's # LD(load) and ST(store) instructions, respectively. # # * include/asm-m32r/atomic.h, include/asm-m32r/bitops.h, # include/asm-m32r/semaphore.h: # - Change macros from LOAD and STORE to M32R_LOCK and M32R_UNLOCK, # respectively. It is because LOAD and STORE are too generic words. # - Change inline to __inline__. # Retrieve __inline__ modifiers for functions which are placed # outside of __KERNEL__ region in these headers, because those # functions might be included and used from ISO C program in # userland. # # Currently, it seems that these headers are allowed to be included from # userland. Indeed, they are kernel stuff, but these headers provide # useful definitions and functions even for userland applications, I think. # # Signed-off-by: Hirokazu Takata # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-m32r/semaphore.h # 2005/01/03 15:49:32-08:00 takata@linux-m32r.org +9 -18 # m32r: Make kernel headers for mutual exclusion # # include/asm-m32r/bitops.h # 2005/01/03 15:49:32-08:00 takata@linux-m32r.org +33 -48 # m32r: Make kernel headers for mutual exclusion # # include/asm-m32r/atomic.h # 2005/01/03 15:49:32-08:00 takata@linux-m32r.org +19 -29 # m32r: Make kernel headers for mutual exclusion # # include/asm-m32r/assembler.h # 2005/01/03 15:49:32-08:00 takata@linux-m32r.org +24 -11 # m32r: Make kernel headers for mutual exclusion # # ChangeSet # 2005/01/03 21:03:55-08:00 takata@linux-m32r.org # [PATCH] m32r: Use kmalloc for m32r stacks # # - Use kmalloc for m32r stacks (cf. changeset 1.1046.533.10) # - Update for CONFIG_DEBUG_STACK_USAGE # # This modification was taken from include/asm-i386/thread_info.h. # # Signed-off-by: Hirokazu Takata # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-m32r/thread_info.h # 2005/01/03 15:50:21-08:00 takata@linux-m32r.org +15 -3 # m32r: Use kmalloc for m32r stacks # # ChangeSet # 2005/01/03 21:03:42-08:00 takata@linux-m32r.org # [PATCH] m32r: include/asm-m32r/thread_info.h minor updates # # - Use THREAD_SIZE for __ASSEMBLY__ portion. # - Update comments. # - Fix a typo: user-thead --> user-thread. # # NOTE: Now there are two THREAD_SIZE definitions in the following patch, # one is in C part and the other is in __ASSEMBLY__ part. # I'm going to consolidate these THREAD_SIZE definitions. So, I have to # change PAGE_SIZE definition of include/asm-m32r/page.h to be includable # into asm portion... # # Signed-off-by: Hirokazu Takata # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-m32r/thread_info.h # 2005/01/03 15:50:21-08:00 takata@linux-m32r.org +15 -11 # m32r: include/asm-m32r/thread_info.h minor updates # # ChangeSet # 2005/01/03 21:03:29-08:00 takata@linux-m32r.org # [PATCH] m32r: Clean up include/asm-m32r/pgtable-2level.h # # - Add #ifdef __KERNEL__ # - Change __inline__ to inline for __KERNEL__ portion. # - Remove RCS ID string. # # Signed-off-by: Hirokazu Takata # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-m32r/pgtable-2level.h # 2005/01/03 15:49:31-08:00 takata@linux-m32r.org +7 -5 # m32r: Clean up include/asm-m32r/pgtable-2level.h # # ChangeSet # 2005/01/03 21:03:16-08:00 takata@linux-m32r.org # [PATCH] m32r: Remove PAGE_USER # # - Remove _PAGE_USER bit from pte. # - The m32r doesn't support _PAGE_USER bit by hardware. # # Signed-off-by: Hirokazu Takata # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-m32r/pgtable.h # 2005/01/03 15:49:31-08:00 takata@linux-m32r.org +13 -25 # m32r: Remove PAGE_USER # # include/asm-m32r/pgtable-2level.h # 2005/01/03 15:50:21-08:00 takata@linux-m32r.org +2 -3 # m32r: Remove PAGE_USER # # ChangeSet # 2005/01/03 21:03:04-08:00 takata@linux-m32r.org # [PATCH] m32r: Support PAGE_NONE # # - Support PAGE_NONE attribute for memory protection. # - Add _PAGE_PROTNONE bit to pte (software bit). # # Signed-off-by: NIIBE Yutaka # Signed-off-by: Hirokazu Takata # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-m32r/pgtable.h # 2005/01/03 15:50:22-08:00 takata@linux-m32r.org +7 -5 # m32r: Support PAGE_NONE # # include/asm-m32r/pgtable-2level.h # 2005/01/03 15:50:22-08:00 takata@linux-m32r.org +3 -4 # m32r: Support PAGE_NONE # # ChangeSet # 2005/01/03 21:02:51-08:00 takata@linux-m32r.org # [PATCH] m32r: Clean up include/asm-m32r/pgtable.h # # - Change PAGE_*_X to PAGE_*_EXEC for good readability. # - Add #include __KERNEL__ # - Change __inline__ to inline for the __KERNEL__ portion. # # Signed-off-by: Hirokazu Takata # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-m32r/pgtable.h # 2005/01/03 15:50:22-08:00 takata@linux-m32r.org +70 -98 # m32r: Clean up include/asm-m32r/pgtable.h # # ChangeSet # 2005/01/03 21:02:38-08:00 takata@linux-m32r.org # [PATCH] m32r: Clean up arch/m32r/mm/fault.c # # - Fix a typo: ACE_USEMODE --> ACE_USERMODE. # - Update copyright statement, and so on. # # Signed-off-by: Hirokazu Takata # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/m32r/mm/fault.c # 2005/01/03 15:49:31-08:00 takata@linux-m32r.org +2 -3 # m32r: Clean up arch/m32r/mm/fault.c # # ChangeSet # 2005/01/03 21:02:25-08:00 takata@linux-m32r.org # [PATCH] m32r: Don't encode ACE_INSTRUCTION in address # # - To be more comprehensive, keep ACE_INSTRUCTION (access exception # on instruction execution) information in thread_info->flags, # instead of encoding it into address parameter. # # Signed-off-by: NIIBE Yutaka # Signed-off-by: Hirokazu Takata # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-m32r/thread_info.h # 2005/01/03 15:50:21-08:00 takata@linux-m32r.org +16 -0 # m32r: Don't encode ACE_INSTRUCTION in address # # arch/m32r/mm/fault.c # 2005/01/03 15:50:22-08:00 takata@linux-m32r.org +4 -3 # m32r: Don't encode ACE_INSTRUCTION in address # # ChangeSet # 2005/01/03 21:02:12-08:00 takata@linux-m32r.org # [PATCH] m32r: Cause SIGSEGV for nonexec page execution # # - Cause a segmentation fault for an illegal execution of a code on # non-executable memory page. # # Signed-off-by: Naoto Sugai # Signed-off-by: Hirokazu Takata # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-m32r/pgtable.h # 2005/01/03 15:50:22-08:00 takata@linux-m32r.org +10 -11 # m32r: Cause SIGSEGV for nonexec page execution # # arch/m32r/mm/fault.c # 2005/01/03 15:50:22-08:00 takata@linux-m32r.org +24 -13 # m32r: Cause SIGSEGV for nonexec page execution # # ChangeSet # 2005/01/03 21:01:59-08:00 takata@linux-m32r.org # [PATCH] m32r: Update ptrace.c for multithread debugging # # This patch updates ptrace.c to support multithread debugging. So far, only # one breakpoint's location was kept by kernel, however, in the multithreaded # application's debug, it is required to kept multi-point breakpoint locations # by kernel. # # In this implementation, maximum number of MAX_TRAPS(=10 (by default)) # breakpoint's information will be kept in the "debug_trap" member of the # thread_struct for each thread. # # * include/asm-m32r/processor.h: # Modify debug_trap struct to keep multipoint breakpoint locations # for multithread debugging. # # * arch/m32r/kernel/ptrace.c: # - Update to support multithread debugging. # - Remove unused functions, withdraw_debug_trap_for_signal() and # embed_debug_trap_for_signal(). # # Signed-off-by: Kei Sakamoto # Signed-off-by: Hirokazu Takata # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-m32r/processor.h # 2005/01/03 15:49:30-08:00 takata@linux-m32r.org +4 -2 # m32r: Update ptrace.c for multithread debugging # # arch/m32r/kernel/ptrace.c # 2005/01/03 15:49:30-08:00 takata@linux-m32r.org +30 -59 # m32r: Update ptrace.c for multithread debugging # # ChangeSet # 2005/01/03 21:01:46-08:00 takata@linux-m32r.org # [PATCH] m32r: Support pgprot_noncached() # # This patch updates include/asm-m32r/pgtable.h to add pgprot_noncached(). # It is required to fix a problem of an userspace application, which mmaps # io registers. # # This patch also modifies drivers/video/fbmem.c to support noncachable # framebuffer access for m32r. # In this routine, pgprot_writecombine() is used hopefully, even though # the current m32r never does write-combining or write-coalescing... # # Please apply this. # # * include/asm-m32r/pgtable.h # (pgprot_noncached, pgprot_writecombine): Newly added. # # * drivers/video/fbmem.c (fb_mmap): Add m32r support. # # Signed-off-by: Mamoru Sakugawa # Signed-off-by: Hirokazu Takata # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-m32r/pgtable.h # 2005/01/03 15:50:22-08:00 takata@linux-m32r.org +13 -0 # m32r: Support pgprot_noncached() # # drivers/video/fbmem.c # 2005/01/03 15:49:30-08:00 takata@linux-m32r.org +2 -1 # m32r: Support pgprot_noncached() # # ChangeSet # 2005/01/03 21:01:33-08:00 takata@linux-m32r.org # [PATCH] m32r: Add new relocation types to elf.h # # include/asm-m32r/elf.h: # # Add relocations R_M32R_GOTOFF_HI_ULO, R_M32R_GOTOFF_HI_SLO, and # R_M32R_GOTOFF_LO. These relocations are required to implement GOTOFF # support for m32r. # # Signed-off-by: Hirokazu Takata # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-m32r/elf.h # 2005/01/03 15:49:30-08:00 takata@linux-m32r.org +3 -0 # m32r: Add new relocation types to elf.h # # ChangeSet # 2005/01/03 21:01:20-08:00 akpm@osdl.org # [PATCH] swsusp-try_to_freeze-to-make-freezing-hooks-nicer fix # # In file included from include/linux/ptrace.h:77, # from arch/ppc64/lib/sstep.c:12: # include/linux/sched.h: In function `freeze_processes': # include/linux/sched.h:1189: warning: no return statement in function returning non-void # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/sched.h # 2005/01/03 15:49:30-08:00 akpm@osdl.org +1 -1 # swsusp-try_to_freeze-to-make-freezing-hooks-nicer fix # # ChangeSet # 2005/01/03 21:01:05-08:00 pavel@ucw.cz # [PATCH] swsusp: try_to_freeze to make freezing hooks nicer # # This moves refrigerator changes to sched.h, so that every file user of # refrigerator does not have to include suspend.h, and makes refrigerator # support easier by introducing try_to_freeze. # # Adapted from patch by Nigel Cunningham # Signed-off-by: Pavel Machek # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/suspend.h # 2005/01/03 15:49:30-08:00 pavel@ucw.cz +5 -15 # swsusp: try_to_freeze to make freezing hooks nicer # # include/linux/sched.h # 2005/01/03 15:50:23-08:00 pavel@ucw.cz +28 -0 # swsusp: try_to_freeze to make freezing hooks nicer # # ChangeSet # 2005/01/03 21:00:51-08:00 pavel@ucw.cz # [PATCH] swsusp: Kill O(n^2) algorithm in swsusp # # Some machines are spending minutes of CPU time during suspend in stupid O(n^2) # algorithm. This patch replaces it with O(n) algorithm, making swsusp usable # to some people. # # Signed-off-by: Pavel Machek # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/page_alloc.c # 2005/01/03 15:49:30-08:00 pavel@ucw.cz +17 -13 # swsusp: Kill O(n^2) algorithm in swsusp # # kernel/power/swsusp.c # 2005/01/03 15:49:30-08:00 pavel@ucw.cz +56 -75 # swsusp: Kill O(n^2) algorithm in swsusp # # include/linux/suspend.h # 2005/01/03 15:50:23-08:00 pavel@ucw.cz +1 -0 # swsusp: Kill O(n^2) algorithm in swsusp # # include/linux/page-flags.h # 2005/01/03 15:49:30-08:00 pavel@ucw.cz +5 -0 # swsusp: Kill O(n^2) algorithm in swsusp # # ChangeSet # 2005/01/03 21:00:38-08:00 pavel@ucw.cz # [PATCH] swsusp: Small cleanups # # This adds statics at few places and fixes stale references to pmdisk. # # Signed-off-by: Pavel Machek # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/power/swsusp.c # 2005/01/03 15:50:23-08:00 pavel@ucw.cz +3 -3 # swsusp: Small cleanups # # ChangeSet # 2005/01/03 21:00:25-08:00 pavel@ucw.cz # [PATCH] swsusp: kill one-line helpers, handle read errors # # swsusp contains few one-line helpers that only make reading/understanding code # more difficult. Also warn the user when something goes wrong, instead of # waking machine with corrupt data. # # Signed-off-by: Pavel Machek # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/power/swsusp.c # 2005/01/03 15:50:23-08:00 pavel@ucw.cz +8 -15 # swsusp: kill one-line helpers, handle read errors # # ChangeSet # 2005/01/03 21:00:12-08:00 pavel@ucw.cz # [PATCH] swsusp: kill unused variable # # Variable used only for writing is bad idea. # # Signed-off-by: Pavel Machek # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/power/swsusp.c # 2005/01/03 15:50:23-08:00 pavel@ucw.cz +0 -2 # swsusp: kill unused variable # # ChangeSet # 2005/01/03 20:59:56-08:00 pavel@ucw.cz # [PATCH] fix naming in swsusp # # At few points we still reference to swsusp as "pmdisk"... it might confuse # someone not knowing full history. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/power/swsusp.c # 2005/01/03 15:50:24-08:00 pavel@ucw.cz +2 -2 # fix naming in swsusp # # ChangeSet # 2005/01/03 20:59:43-08:00 rmk+lkml@arm.linux.org.uk # [PATCH] typeof(dev->power.saved_state) # # arch/arm/common/sa1111.c: In function `sa1111_suspend': # arch/arm/common/sa1111.c:816: warning: assignment from incompatible pointer type # # This is a rather annoying, and IMHO pointless warning. First question: # what is the reasoning for using an array of unsigned bytes here? Are we # expecting to power manage devices which only have byte wide registers? # # In reality, devices have half-word and word sized registers as well, which # means that dev->power.saved_state actually points to device specific data # (or even device driver specific data) for the device. As such, it makes # far more sense for this to be a 'void *'. # # I'd rather not go around the ARM kernel tree adding pointless casts to 'u8 # *' and back again because the wrong type for this was picked in the # structure definition, so here's a patch which changes this to void *. # # Signed-off-by: Russell King # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/pm.h # 2005/01/03 15:49:29-08:00 rmk+lkml@arm.linux.org.uk +1 -1 # typeof(dev->power.saved_state) # # ChangeSet # 2005/01/03 20:59:29-08:00 bjorn.helgaas@hp.com # [PATCH] ia64: remove HCDP support for early printk # # This is only used by the ia64 early_printk patch, which isn't in the # mainline tree. If anybody is still using that patch, hcdp_early_uart() # should be incorporated into it. # # Signed-off-by: Bjorn Helgaas # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/firmware/pcdp.c # 2005/01/03 15:49:29-08:00 bjorn.helgaas@hp.com +0 -41 # ia64: remove HCDP support for early printk # # ChangeSet # 2005/01/03 20:59:13-08:00 spyro@f2s.com # [PATCH] arm26: better unistd.h (reimplemented based on arm32) # # Some long overdue updates to this file. newer macros taken from arm32. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-arm26/unistd.h # 2005/01/03 15:49:29-08:00 spyro@f2s.com +153 -164 # arm26: better unistd.h (reimplemented based on arm32) # # ChangeSet # 2005/01/03 20:59:00-08:00 spyro@f2s.com # [PATCH] arm26: better put_user macros. # # Better put_user macro. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-arm26/uaccess.h # 2005/01/03 15:49:29-08:00 spyro@f2s.com +36 -1 # arm26: better put_user macros. # # ChangeSet # 2005/01/03 20:58:49-08:00 spyro@f2s.com # [PATCH] arm26: TLB update # # A keep-it-compiling patch based on the arm32 code. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-arm26/tlb.h # 2005/01/03 15:49:29-08:00 spyro@f2s.com +16 -1 # arm26: TLB update # # ChangeSet # 2005/01/03 20:58:33-08:00 spyro@f2s.com # [PATCH] arm26: replace arm32 time handling code with smaller version # # ARM26 systems only have one possible clock, thus we can merge all this into # one source file and drop the ability to dynamically alter it. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/arm26/kernel/time.c # 2005/01/03 15:49:29-08:00 spyro@f2s.com +47 -7 # arm26: replace arm32 time handling code with smaller version # # BitKeeper/deleted/.del-time-acorn.c~657720ddfef2529c # 2005/01/03 20:58:26-08:00 spyro@f2s.com +0 -0 # Delete: arch/arm26/kernel/time-acorn.c # # ChangeSet # 2005/01/03 20:58:20-08:00 spyro@f2s.com # [PATCH] arm26: update system.h to some semblance of recentness. # # The arm26 version of this had become horribly out of date. this is a # sideways-port of the arm32 version, dropping the unwanted stuff and adjusted # for arm26 compatability. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-arm26/system.h # 2005/01/03 15:49:28-08:00 spyro@f2s.com +146 -100 # arm26: update system.h to some semblance of recentness. # # ChangeSet # 2005/01/03 20:58:07-08:00 spyro@f2s.com # [PATCH] arm26: softirq update # # New irq exit handler (part of the softirq changes) # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-arm26/hardirq.h # 2005/01/03 15:49:28-08:00 spyro@f2s.com +10 -7 # arm26: softirq update # # ChangeSet # 2005/01/03 20:57:54-08:00 spyro@f2s.com # [PATCH] arm26: remove shark (arm32) from arm26 # # Drop shark support from arm26 (shark isn't arm26 based) # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # BitKeeper/deleted/.del-ofw-shark.c~ad19e9fa95bda312 # 2005/01/03 20:57:47-08:00 spyro@f2s.com +0 -0 # Delete: arch/arm26/boot/compressed/ofw-shark.c # # ChangeSet # 2005/01/03 20:57:41-08:00 spyro@f2s.com # [PATCH] arm26: move some files to better locations # # This diff effects a restructuring of arm26s directory layout. A number of # files can now move to more logical locations, since there are no machine # specific directories anymore. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/arm26/mm/small_page.c # 2005/01/03 15:49:28-08:00 spyro@f2s.com +5 -2 # arm26: move some files to better locations # # arch/arm26/mm/memc.c # 2005/01/03 15:49:28-08:00 spyro@f2s.com +1 -1 # arm26: move some files to better locations # # arch/arm26/machine/latches.c # 2005/01/03 15:49:28-08:00 spyro@f2s.com +2 -2 # arm26: move some files to better locations # # arch/arm26/lib/io-writesw.S # 2005/01/03 15:49:28-08:00 spyro@f2s.com +1 -1 # arm26: move some files to better locations # # arch/arm26/lib/io-readsw.S # 2005/01/03 15:49:28-08:00 spyro@f2s.com +1 -1 # arm26: move some files to better locations # # arch/arm26/lib/io-readsl.S # 2005/01/03 15:49:28-08:00 spyro@f2s.com +1 -1 # arm26: move some files to better locations # # arch/arm26/kernel/head.S # 2005/01/03 15:49:28-08:00 spyro@f2s.com +6 -4 # arm26: move some files to better locations # # arch/arm26/kernel/calls.S # 2005/01/03 20:57:32-08:00 spyro@f2s.com +265 -0 # # arch/arm26/kernel/calls.S # 2005/01/03 20:57:32-08:00 spyro@f2s.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/arm26/kernel/calls.S # # BitKeeper/deleted/.del-calls.h~a2e7fd7f114305ce # 2005/01/03 20:57:32-08:00 spyro@f2s.com +0 -0 # Delete: include/asm-arm26/calls.h # # ChangeSet # 2005/01/03 20:51:11-08:00 spyro@f2s.com # [PATCH] arm26: new execve code # # This pulls in the execve changes made in arm32. # # Also, drops some old arm32 power management stuff thats no longer relevant # in process.c. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/arm26/kernel/sys_arm.c # 2005/01/03 15:49:28-08:00 spyro@f2s.com +41 -0 # arm26: new execve code # # arch/arm26/kernel/process.c # 2005/01/03 15:49:28-08:00 spyro@f2s.com +42 -60 # arm26: new execve code # # ChangeSet # 2005/01/03 20:50:56-08:00 spyro@f2s.com # [PATCH] arm26:cleanup trap handling assembly # # This removes some unneeded definitions and makes the naming used within the # file more consistent. # # Also adds some macros to make it easier to see how the interrupt handler is # structured. # # The assembled output is identical to the original. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/arm26/kernel/entry.S # 2005/01/03 15:49:28-08:00 spyro@f2s.com +93 -121 # arm26:cleanup trap handling assembly # # ChangeSet # 2005/01/03 20:50:42-08:00 spyro@f2s.com # [PATCH] arm26: necessary compilation fixes for 2.6.10 # # Various trivial fixes required to get a clean compile. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-arm26/thread_info.h # 2005/01/03 15:49:27-08:00 spyro@f2s.com +2 -1 # arm26: necessary compilation fixes for 2.6.10 # # include/asm-arm26/setup.h # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: necessary compilation fixes for 2.6.10 # # include/asm-arm26/posix_types.h # 2005/01/03 15:49:27-08:00 spyro@f2s.com +4 -4 # arm26: necessary compilation fixes for 2.6.10 # # include/asm-arm26/irqchip.h # 2005/01/03 15:49:27-08:00 spyro@f2s.com +0 -17 # arm26: necessary compilation fixes for 2.6.10 # # include/asm-arm26/dma-mapping.h # 2005/01/03 15:49:27-08:00 spyro@f2s.com +2 -0 # arm26: necessary compilation fixes for 2.6.10 # # include/asm-arm26/checksum.h # 2005/01/03 15:49:27-08:00 spyro@f2s.com +8 -6 # arm26: necessary compilation fixes for 2.6.10 # # arch/arm26/lib/putuser.S # 2005/01/03 15:49:27-08:00 spyro@f2s.com +3 -2 # arm26: necessary compilation fixes for 2.6.10 # # arch/arm26/lib/getuser.S # 2005/01/03 15:49:27-08:00 spyro@f2s.com +3 -2 # arm26: necessary compilation fixes for 2.6.10 # # arch/arm26/kernel/semaphore.c # 2005/01/03 15:49:27-08:00 spyro@f2s.com +7 -1 # arm26: necessary compilation fixes for 2.6.10 # # arch/arm26/kernel/armksyms.c # 2005/01/03 15:49:27-08:00 spyro@f2s.com +4 -10 # arm26: necessary compilation fixes for 2.6.10 # # include/asm-arm26/dma-mapping.h # 2005/01/03 15:49:27-08:00 spyro@f2s.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-arm26/dma-mapping.h # # ChangeSet # 2005/01/03 20:50:29-08:00 spyro@f2s.com # [PATCH] arm26: update comments, headers, notes # # Add and update comments all throughout the arm26 tree. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-arm26/hardware.h # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -0 # arm26: update comments, headers, notes # # arch/arm26/mm/proc-funcs.S # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/mm/fault.c # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -2 # arm26: update comments, headers, notes # # arch/arm26/mm/extable.c # 2005/01/03 15:49:27-08:00 spyro@f2s.com +7 -1 # arm26: update comments, headers, notes # # arch/arm26/machine/irq.c # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/machine/dma.c # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/lib/testsetbit.S # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/lib/testclearbit.S # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/lib/testchangebit.S # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/lib/strrchr.S # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/lib/strchr.S # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/lib/setbit.S # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/lib/memzero.S # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/lib/memset.S # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/lib/memcpy.S # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/lib/memchr.S # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/lib/io-writesl.S # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/lib/io-writesb.S # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/lib/io-readsb.S # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/lib/io-acorn.S # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/lib/floppydma.S # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/lib/ecard.S # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/lib/delay.S # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/lib/csumpartialcopygeneric.S # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/lib/csumpartialcopy.S # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/lib/csumpartial.S # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/lib/csumipv6.S # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/lib/copy_page.S # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/lib/clearbit.S # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/lib/changebit.S # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/lib/backtrace.S # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/kernel/setup.c # 2005/01/03 15:49:27-08:00 spyro@f2s.com +2 -2 # arm26: update comments, headers, notes # # arch/arm26/kernel/init_task.c # 2005/01/03 15:49:27-08:00 spyro@f2s.com +4 -2 # arm26: update comments, headers, notes # # arch/arm26/kernel/compat.c # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/boot/install.sh # 2005/01/03 15:49:27-08:00 spyro@f2s.com +2 -2 # arm26: update comments, headers, notes # # arch/arm26/boot/compressed/vmlinux.lds.in # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/boot/compressed/uncompress.h # 2005/01/03 15:49:27-08:00 spyro@f2s.com +0 -1 # arm26: update comments, headers, notes # # arch/arm26/boot/compressed/ll_char_wr.S # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/boot/compressed/head.S # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -1 # arm26: update comments, headers, notes # # arch/arm26/ACKNOWLEDGEMENTS # 2005/01/03 15:49:27-08:00 spyro@f2s.com +2 -0 # arm26: update comments, headers, notes # # ChangeSet # 2005/01/03 20:50:15-08:00 spyro@f2s.com # [PATCH] arm26 build system updates # # - Updates to makefiles required by the other changes in this patchset. # # - Also add some entries to the linker scripts. The linker scripts really # ought to be merged into one script but that will have to wait. # # - Add a comment for building xipImages Update the compiler flags used to # build arm26 so gcc 3.4 doesnt barf. # # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/arm26/mm/Makefile # 2005/01/03 15:49:27-08:00 spyro@f2s.com +2 -1 # arm26 build system updates # # arch/arm26/machine/Makefile # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -5 # arm26 build system updates # # arch/arm26/lib/Makefile # 2005/01/03 15:49:27-08:00 spyro@f2s.com +6 -6 # arm26 build system updates # # arch/arm26/kernel/vmlinux-arm26.lds.in # 2005/01/03 15:49:27-08:00 spyro@f2s.com +2 -1 # arm26 build system updates # # arch/arm26/kernel/vmlinux-arm26-xip.lds.in # 2005/01/03 15:49:27-08:00 spyro@f2s.com +4 -1 # arm26 build system updates # # arch/arm26/kernel/Makefile # 2005/01/03 15:49:27-08:00 spyro@f2s.com +7 -8 # arm26 build system updates # # arch/arm26/boot/Makefile # 2005/01/03 15:49:27-08:00 spyro@f2s.com +5 -3 # arm26 build system updates # # arch/arm26/Makefile # 2005/01/03 15:49:27-08:00 spyro@f2s.com +7 -7 # arm26 build system updates # # ChangeSet # 2005/01/03 20:49:59-08:00 spyro@f2s.com # [PATCH] arm26: update the atomic ops # # Replace the macros for atomic ops and bring arm26 up to current definitions. # make the arm26 mm code use the proper macros also. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-arm26/bitops.h # 2005/01/03 15:49:27-08:00 spyro@f2s.com +28 -45 # arm26: update the atomic ops # # include/asm-arm26/atomic.h # 2005/01/03 15:49:27-08:00 spyro@f2s.com +33 -76 # arm26: update the atomic ops # # arch/arm26/mm/init.c # 2005/01/03 15:49:27-08:00 spyro@f2s.com +2 -3 # arm26: update the atomic ops # # ChangeSet # 2005/01/03 20:49:46-08:00 spyro@f2s.com # [PATCH] arm26: remove arm32 cruft # # This patch drops some more stuff left over from the old combined arm26/32 # architecture. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/arm26/kernel/traps.c # 2005/01/03 15:49:27-08:00 spyro@f2s.com +6 -6 # arm26: remove arm32 cruft # # arch/arm26/kernel/ecard.c # 2005/01/03 15:49:27-08:00 spyro@f2s.com +23 -78 # arm26: remove arm32 cruft # # arch/arm26/kernel/dma.c # 2005/01/03 15:49:27-08:00 spyro@f2s.com +1 -30 # arm26: remove arm32 cruft # # ChangeSet # 2005/01/03 20:49:33-08:00 ysato@users.sourceforge.jp # [PATCH] H8/300 new systemcall support # # Signed-off-by: Yoshinori Sato # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-h8300/unistd.h # 2005/01/03 15:49:26-08:00 ysato@users.sourceforge.jp +22 -1 # H8/300 new systemcall support # # arch/h8300/kernel/syscalls.S # 2005/01/03 15:49:26-08:00 ysato@users.sourceforge.jp +15 -0 # H8/300 new systemcall support # # ChangeSet # 2005/01/03 20:49:20-08:00 ak@suse.de # [PATCH] x86_64: Eliminate some useless printks in ACPI numa.c # # Eliminate some useless printks in ACPI numa.c # # They trigger all the time on x86-64 with CONFIG_ACPI_NUMA # # Signed-off-by: Andi Kleen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/acpi/numa.c # 2005/01/03 15:49:26-08:00 ak@suse.de +0 -7 # x86_64: Eliminate some useless printks in ACPI numa.c # # ChangeSet # 2005/01/03 20:49:07-08:00 ak@suse.de # [PATCH] x86_64: Add x86_64 support for Jack Steiner's SLIT sysfs patch # # Add x86_64 support for Jack Steiner's SLIT sysfs patch # # Make Jack's code compile on x86-64 and add x86-64 low level support to save # the SLIT pointer and a node_distance() implementation. # # Requires the previous SRAT patch. # # Signed-off-by: Andi Kleen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-x86_64/topology.h # 2005/01/03 15:49:26-08:00 ak@suse.de +6 -0 # x86_64: Add x86_64 support for Jack Steiner's SLIT sysfs patch # # drivers/base/node.c # 2005/01/03 15:49:26-08:00 ak@suse.de +2 -2 # x86_64: Add x86_64 support for Jack Steiner's SLIT sysfs patch # # arch/x86_64/mm/srat.c # 2005/01/03 15:49:26-08:00 ak@suse.de +28 -1 # x86_64: Add x86_64 support for Jack Steiner's SLIT sysfs patch # # ChangeSet # 2005/01/03 20:48:54-08:00 ak@suse.de # [PATCH] x86_64: Add SLIT (inter node distance) information to sysfs. # # Add SLIT (inter node distance) information to sysfs. # # [This is Jack's patch that he submitted on l-k. I'm submitting # it for him because I need it for my x86-64 followon SLIT patch. # Hope I don't stomp onto his toes with that one. If you already # merged it please ignore] # # From: Jack Steiner # # Here is an update patch to externalize the SLIT information. I think I have # encorporated all the comments that were posted previously) # # For example: # # # cd /sys/devices/system # # find . # ./node # ./node/node5 # ./node/node5/distance # ./node/node5/numastat # ./node/node5/meminfo # ./node/node5/cpumap # # # cat ./node/node0/distance # 10 20 64 42 42 22 # # # cat node/*/distance # 10 20 64 42 42 22 # 20 10 42 22 64 84 # 64 42 10 20 22 42 # 42 22 20 10 42 62 # 42 64 22 42 10 20 # 22 84 42 62 20 10 # # Signed-off-by: Jack Steiner # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/topology.h # 2005/01/03 15:49:26-08:00 ak@suse.de +4 -1 # x86_64: Add SLIT (inter node distance) information to sysfs. # # include/asm-i386/topology.h # 2005/01/03 15:49:26-08:00 ak@suse.de +0 -3 # x86_64: Add SLIT (inter node distance) information to sysfs. # # drivers/base/node.c # 2005/01/03 15:50:27-08:00 ak@suse.de +19 -0 # x86_64: Add SLIT (inter node distance) information to sysfs. # # ChangeSet # 2005/01/03 20:48:43-08:00 ak@suse.de # [PATCH] x86_64: Remove unneeded ifdef in hardirq.h # # Remove unneeded ifdef in hardirq.h # # I can't see any reason for the #ifdef CONFIG_X86 introduced to the x86_64 # hardirq.h as part of the generic irq subsystem changes. # # Signed-off-by: Adrian Bunk # Signed-off-by: Andi Kleen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-x86_64/hardirq.h # 2005/01/03 15:49:26-08:00 ak@suse.de +0 -2 # x86_64: Remove unneeded ifdef in hardirq.h # # ChangeSet # 2005/01/03 20:48:28-08:00 ak@suse.de # [PATCH] x86_64: Fix EM64T config description # # Fix EM64T config description # # From: Xose Vazquez Perez # # Signed-off-by: Andi Kleen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/x86_64/Kconfig # 2005/01/03 15:49:26-08:00 ak@suse.de +4 -3 # x86_64: Fix EM64T config description # # ChangeSet # 2005/01/03 20:48:15-08:00 ak@suse.de # [PATCH] x86_64: Fix some outdated assumptions that CPU numbers are equal numbers. # # Fix some outdated assumptions that CPU numbers are equal numbers. # # Depends on the unlimited cpus patch. # # Signed-off-by: Andi Kleen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/x86_64/mm/numa.c # 2005/01/03 15:49:26-08:00 ak@suse.de +1 -4 # x86_64: Fix some outdated assumptions that CPU numbers are equal numbers. # # arch/x86_64/kernel/setup64.c # 2005/01/03 15:49:26-08:00 ak@suse.de +3 -4 # x86_64: Fix some outdated assumptions that CPU numbers are equal numbers. # # ChangeSet # 2005/01/03 20:48:03-08:00 ak@suse.de # [PATCH] x86_64: Fix a warning in the CMP support code for !CONFIG_NUMA # # Fix a warning in the CMP support code for !CONFIG_NUMA # # Signed-off-by: Andi Kleen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/x86_64/kernel/setup.c # 2005/01/03 15:49:25-08:00 ak@suse.de +2 -0 # x86_64: Fix a warning in the CMP support code for !CONFIG_NUMA # # ChangeSet # 2005/01/03 20:47:50-08:00 ak@suse.de # [PATCH] x86_64: Allow to configure more CPUs and nodes. # # Allow to configure more CPUs and nodes. # # With clustered mode and AMD's big flat APIC mode there is no reason anymore to # limit the max number of CPUs to 8. Increase the limit to 256 for now, which # is the current APIC limit. # # Untested for now. # # Also increase the max number of nodes to 64. Remove the MAXNODE define and # replace it with MAX_NUMNODES everywhere or the constant if the hardware limits # the number of nodes. # # Also remove some obsolete comments. # # Signed-off-by: Andi Kleen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-x86_64/numnodes.h # 2005/01/03 15:49:25-08:00 ak@suse.de +1 -2 # x86_64: Allow to configure more CPUs and nodes. # # include/asm-x86_64/numa.h # 2005/01/03 15:49:25-08:00 ak@suse.de +1 -3 # x86_64: Allow to configure more CPUs and nodes. # # include/asm-x86_64/mmzone.h # 2005/01/03 15:49:25-08:00 ak@suse.de +0 -1 # x86_64: Allow to configure more CPUs and nodes. # # arch/x86_64/mm/numa.c # 2005/01/03 15:50:27-08:00 ak@suse.de +4 -4 # x86_64: Allow to configure more CPUs and nodes. # # arch/x86_64/mm/k8topology.c # 2005/01/03 15:49:25-08:00 ak@suse.de +2 -2 # x86_64: Allow to configure more CPUs and nodes. # # arch/x86_64/Kconfig # 2005/01/03 15:50:27-08:00 ak@suse.de +4 -6 # x86_64: Allow to configure more CPUs and nodes. # # ChangeSet # 2005/01/03 20:47:37-08:00 ak@suse.de # [PATCH] x86_64: Export phys_proc_id # # Export phys_proc_id # # This is useful for the powernow-k8 driver which needs to know that two CPUs # share a die. # # It cannot use cpu_sibling_map anymore, so this is an alternative. # # Signed-off-by: Andi Kleen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/x86_64/kernel/smpboot.c # 2005/01/03 15:49:25-08:00 ak@suse.de +1 -0 # x86_64: Export phys_proc_id # # ChangeSet # 2005/01/03 20:47:24-08:00 ak@suse.de # [PATCH] x86_64: Always print segfaults for init. # # Always print segfaults for init. # # This gives better debugging output when something is really wrong with the # kernel. # # Signed-off-by: Andi Kleen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/x86_64/mm/fault.c # 2005/01/03 15:49:25-08:00 ak@suse.de +5 -2 # x86_64: Always print segfaults for init. # # ChangeSet # 2005/01/03 20:47:11-08:00 ak@suse.de # [PATCH] x86_64: Add a missing newline in /proc/cpuinfo # # Add a missing newline in /proc/cpuinfo # # Signed-off-by: Andi Kleen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/x86_64/kernel/setup.c # 2005/01/03 15:50:28-08:00 ak@suse.de +1 -0 # x86_64: Add a missing newline in /proc/cpuinfo # # ChangeSet # 2005/01/03 20:46:58-08:00 ak@suse.de # [PATCH] x86_64: Add a missing __iomem pointed out by Linus. # # Add a missing __iomem pointed out by Linus. # # Signed-off-by: Andi Kleen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/x86_64/kernel/early_printk.c # 2005/01/03 15:49:25-08:00 ak@suse.de +1 -1 # x86_64: Add a missing __iomem pointed out by Linus. # # ChangeSet # 2005/01/03 20:46:45-08:00 ak@suse.de # [PATCH] x86_64: Scheduler support for AMD CMP # # Scheduler support for AMD CMP # # AMD dual core looks like HT but isn't really. Hide it from the scheduler. # This works around problems with the domain scheduler. Also probably gives # slightly better scheduling and disables SMT nice which is harmful on dual # core. # # We still display it like HT in /proc/cpuinfo. This is to make it appear the # same to license managers so that they count dual cores only as a single # physical CPU. # # Signed-off-by: Andi Kleen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/x86_64/kernel/setup.c # 2005/01/03 15:50:28-08:00 ak@suse.de +18 -6 # x86_64: Scheduler support for AMD CMP # # ChangeSet # 2005/01/03 20:46:32-08:00 ak@suse.de # [PATCH] x86_64: Rename HTVALID to CMP_LEGACY # # Rename HTVALID to CMP_LEGACY # # AMD renamed the HTVALID CPUID flag to CMP_LEGACY and reverted its meaning. # Follow this for /proc/cpuinfo # # Needed for the followon CMP patches. # # Signed-off-by: Andi Kleen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-x86_64/cpufeature.h # 2005/01/03 15:49:25-08:00 ak@suse.de +1 -1 # x86_64: Rename HTVALID to CMP_LEGACY # # arch/x86_64/kernel/setup.c # 2005/01/03 15:50:28-08:00 ak@suse.de +1 -1 # x86_64: Rename HTVALID to CMP_LEGACY # # ChangeSet # 2005/01/03 20:46:17-08:00 ak@suse.de # [PATCH] x86_64: Remove debug information for vsyscalls # # Remove debug information for vsyscalls # # This helps gdb apparently because it doesn't like code with debugging # information before other code (?) # # Via the kgdb folks. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/x86_64/kernel/Makefile # 2005/01/03 15:49:24-08:00 ak@suse.de +2 -0 # x86_64: Remove debug information for vsyscalls # # ChangeSet # 2005/01/03 20:46:04-08:00 ak@suse.de # [PATCH] x86_64: Allow a kernel debugger to hide single steps in more cases. # # Allow a kernel debugger to hide single steps in more cases. # # Apparently helps the kgdb people. # # Signed-off-by: Andi Kleen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-x86_64/kdebug.h # 2005/01/03 15:49:24-08:00 ak@suse.de +1 -0 # x86_64: Allow a kernel debugger to hide single steps in more cases. # # arch/x86_64/kernel/traps.c # 2005/01/03 15:49:24-08:00 ak@suse.de +3 -1 # x86_64: Allow a kernel debugger to hide single steps in more cases. # # ChangeSet # 2005/01/03 20:45:51-08:00 ak@suse.de # [PATCH] x86_64: Update uptime after suspend # # Update uptime after suspend # # Derived from i386 # # Adjust jiffies after suspend to keep uptime. # # Signed-off-by: Andi Kleen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/x86_64/mm/srat.c # 2005/01/03 15:50:27-08:00 ak@suse.de +4 -4 # x86_64: Update uptime after suspend # # arch/x86_64/kernel/time.c # 2005/01/03 15:49:24-08:00 ak@suse.de +6 -2 # x86_64: Update uptime after suspend # # ChangeSet # 2005/01/03 20:45:38-08:00 ak@suse.de # [PATCH] x86_64: Add SRAT NUMA discovery to x86-64. # # Add SRAT NUMA discovery to x86-64. # # Previously the NUMA nodes on Opteron systems were directly read from the # hardware registers of the northbridge. # # This version also supports reading it from the more generic ACPI SRAT table. # This allows to support NUMA on all kinds of systems and in general gives more # flexibility, but needs a bit of BIOS support. # # This implementation was not done before because the SRAT specification had a # bad license from Microsoft that didn't allow to implement it on other OS. Now # that ACPI 3.0 is released and SRAT is part of it that isn't a concern anymore. # # One side effect of this is that holes not described in SRAT (e.g. usually the # 640K DOS and 4GB PCI memory holes) will not included in the nodes and won't # get mem_map entries allocated. This may have side effects for some drivers. # # Some support for handling dual core AMD CPUs is included. # # SLIT parsing is done in a later patch. Depends on earlier patches to split up # the ACPI boot parsing and to add better CMP support on x86-64. # # Can be disabled with numa=noacpi # # Signed-off-by: Andi Kleen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-x86_64/numa.h # 2005/01/03 15:50:28-08:00 ak@suse.de +1 -0 # x86_64: Add SRAT NUMA discovery to x86-64. # # include/asm-x86_64/acpi.h # 2005/01/03 15:49:24-08:00 ak@suse.de +4 -0 # x86_64: Add SRAT NUMA discovery to x86-64. # # drivers/acpi/Kconfig # 2005/01/03 15:49:24-08:00 ak@suse.de +1 -1 # x86_64: Add SRAT NUMA discovery to x86-64. # # arch/x86_64/mm/srat.c # 2005/01/03 15:50:29-08:00 ak@suse.de +182 -0 # x86_64: Add SRAT NUMA discovery to x86-64. # # arch/x86_64/mm/numa.c # 2005/01/03 15:50:28-08:00 ak@suse.de +17 -3 # x86_64: Add SRAT NUMA discovery to x86-64. # # arch/x86_64/mm/k8topology.c # 2005/01/03 15:50:28-08:00 ak@suse.de +1 -3 # x86_64: Add SRAT NUMA discovery to x86-64. # # arch/x86_64/mm/Makefile # 2005/01/03 15:49:24-08:00 ak@suse.de +1 -0 # x86_64: Add SRAT NUMA discovery to x86-64. # # arch/x86_64/kernel/setup.c # 2005/01/03 15:50:29-08:00 ak@suse.de +16 -5 # x86_64: Add SRAT NUMA discovery to x86-64. # # arch/x86_64/mm/srat.c # 2005/01/03 15:50:29-08:00 ak@suse.de +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/x86_64/mm/srat.c # # ChangeSet # 2005/01/03 20:45:23-08:00 ak@suse.de # [PATCH] x86_64: Split ACPI boot table parsing # # Split ACPI boot table parsing # # Split ACPI boot table parsing into two parts. First a acpi_boot_table_init() # call that initializes the basic ACPI table parsing machinery and discovers the # RSDP, and then another call to actually parse the various boot tables. # # This is needed for a followon patch that implements SRAT support, because # nodes need to be set up before the other ACPI tables can be parsed. # # On x86-64 I moved the early initialization very early because that is needed # for the SRAT parser. # # On i386 it should be a nop. # # Signed-off-by: Andi Kleen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/acpi.h # 2005/01/03 15:49:24-08:00 ak@suse.de +6 -0 # x86_64: Split ACPI boot table parsing # # arch/x86_64/kernel/setup.c # 2005/01/03 15:50:29-08:00 ak@suse.de +14 -7 # x86_64: Split ACPI boot table parsing # # arch/i386/kernel/setup.c # 2005/01/03 15:49:24-08:00 ak@suse.de +1 -0 # x86_64: Split ACPI boot table parsing # # arch/i386/kernel/acpi/boot.c # 2005/01/03 15:49:24-08:00 ak@suse.de +21 -3 # x86_64: Split ACPI boot table parsing # # ChangeSet # 2005/01/03 20:45:08-08:00 ak@suse.de # [PATCH] x86_64: Handle NX correctly in pageattr # # Handle NX correctly in pageattr # # Second attempt to try to fix an long standing NX bug in change_page_attr. # Hopefully this version will be better. # # The kernel text mapping aliases part of the physical memory and needs its # caching attributes changed too. But when doing this one has to be very # careful to handle the NX bit correctly. # # A previous slightly different version of this broke the X server on some RH # systems. I hope this version will be better, but if you have X server # problems please revert this one. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/x86_64/mm/pageattr.c # 2005/01/03 15:49:24-08:00 ak@suse.de +4 -3 # x86_64: Handle NX correctly in pageattr # # ChangeSet # 2005/01/03 20:44:54-08:00 ak@suse.de # [PATCH] x86_64: Collected ioremap fixes # # Collected ioremap fixes # # - Call change_page_attr correctly # - Fix a race during iounmap # - Handle mmio holes without mem_map correctly (needed for SRAT patch) # - Some cleanups # # Signed-off-by: Andi Kleen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-x86_64/cacheflush.h # 2005/01/03 15:49:24-08:00 ak@suse.de +1 -0 # x86_64: Collected ioremap fixes # # arch/x86_64/mm/pageattr.c # 2005/01/03 15:50:29-08:00 ak@suse.de +21 -15 # x86_64: Collected ioremap fixes # # arch/x86_64/mm/ioremap.c # 2005/01/03 15:49:24-08:00 ak@suse.de +48 -28 # x86_64: Collected ioremap fixes # # ChangeSet # 2005/01/03 20:44:39-08:00 ak@suse.de # [PATCH] x86_64: Add reboot=force # # Add reboot=force # # reboot=force doesn't wait for any other CPUs on reboot. This is useful when # you really need a system to reboot on its own. # # Signed-off-by: Andi Kleen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-x86_64/proto.h # 2005/01/03 15:49:23-08:00 ak@suse.de +2 -0 # x86_64: Add reboot=force # # arch/x86_64/kernel/smp.c # 2005/01/03 15:49:23-08:00 ak@suse.de +3 -0 # x86_64: Add reboot=force # # arch/x86_64/kernel/reboot.c # 2005/01/03 15:49:23-08:00 ak@suse.de +23 -14 # x86_64: Add reboot=force # # ChangeSet # 2005/01/03 20:44:26-08:00 ak@suse.de # [PATCH] x86_64: Remove BIOS reboot code # # Remove BIOS reboot code # # Remove the never quite working BIOS reboot code. This gets rid of a lot of # code. # # Signed-off-by: Andi Kleen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/x86_64/kernel/reboot.c # 2005/01/03 15:50:30-08:00 ak@suse.de +1 -34 # x86_64: Remove BIOS reboot code # # arch/x86_64/kernel/Makefile # 2005/01/03 15:50:29-08:00 ak@suse.de +1 -1 # x86_64: Remove BIOS reboot code # # BitKeeper/deleted/.del-warmreboot.S~b112755cbbb477d # 2005/01/03 20:44:19-08:00 ak@suse.de +0 -0 # Delete: arch/x86_64/kernel/warmreboot.S # # ChangeSet # 2005/01/03 20:44:13-08:00 ak@suse.de # [PATCH] x86_64: Remove duplicated FAKE_STACK_FRAME macro. # # Remove duplicated FAKE_STACK_FRAME macro. # # FAKE_STACK_FRAME macro is defined twice. The one that gets used is in # arch/x86_64/kernel/entry.S, and is slightly different codewise, although # should have the same end result (uses pushq rather than addq %rsp + movq and # has the extra dwarf annotations). # # Signed-off-by: Chris Wright # Signed-off-by: Andi Kleen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-x86_64/calling.h # 2005/01/03 15:49:23-08:00 ak@suse.de +0 -16 # x86_64: Remove duplicated FAKE_STACK_FRAME macro. # # ChangeSet # 2005/01/03 20:44:00-08:00 ak@suse.de # [PATCH] x86_64: Reenable MGA DRI on x86-64 # # Reenable MGA DRI on x86-64 # # Has been reported as working. # # Signed-off-by: Andi Kleen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/char/drm/Kconfig # 2005/01/03 15:49:23-08:00 ak@suse.de +1 -1 # x86_64: Reenable MGA DRI on x86-64 # # ChangeSet # 2005/01/03 20:43:47-08:00 pbadari@us.ibm.com # [PATCH] x86_64: numa_add_cpu() fix # # Problem is with "c - cpu_data" arthimetic. "c" could be "boot_cpu_data" or # "cpu_data". # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/x86_64/kernel/setup.c # 2005/01/03 15:50:29-08:00 pbadari@us.ibm.com +2 -1 # x86_64: numa_add_cpu() fix # # ChangeSet # 2005/01/03 20:43:34-08:00 ak@suse.de # [PATCH] x86_64: Fix bugs in the AMD K8 CMP support code. # # Fix bugs in the AMD K8 CMP support code. # # Check the correct cpuid level and move numa_add_cpu to the correct place. # # Signed-off-by: Andi Kleen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/x86_64/kernel/setup64.c # 2005/01/03 15:50:27-08:00 ak@suse.de +0 -4 # x86_64: Fix bugs in the AMD K8 CMP support code. # # arch/x86_64/kernel/setup.c # 2005/01/03 15:50:30-08:00 ak@suse.de +5 -1 # x86_64: Fix bugs in the AMD K8 CMP support code. # # ChangeSet # 2005/01/03 20:43:21-08:00 ak@suse.de # [PATCH] x86_64: Add a real pfn_valid # # Add a real pfn_valid # # This adds a real pfn_valid. Needed together with the SRAT patch which can # generated memmap less holes for mmio. In general it will help to handle # memory holes better. # # Signed-off-by: Andi Kleen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-x86_64/mmzone.h # 2005/01/03 15:50:28-08:00 ak@suse.de +3 -4 # x86_64: Add a real pfn_valid # # ChangeSet # 2005/01/03 20:43:08-08:00 prasanna@in.ibm.com # [PATCH] x86_64: do_general_protection() retval check # # This patch adds the return value check for the exception notifiers at # do_general_protection as pointed out by Chuck Ebbert. # # Signed-off-by: Prasanna S Panchamukhi # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/x86_64/kernel/traps.c # 2005/01/03 15:50:29-08:00 prasanna@in.ibm.com +3 -2 # x86_64: do_general_protection() retval check # # ChangeSet # 2005/01/03 20:42:52-08:00 zwane@linuxpower.ca # [PATCH] Intel thermal monitor for x86_64 # # Patch adds support for notification of overheating conditions on intel # x86_64 processors. Tested on EM64T, test booted on AMD64. # # Hardware courtesy of Intel Corporation # # Signed-off-by: Zwane Mwaikambo # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-x86_64/mce.h # 2005/01/03 15:49:22-08:00 zwane@linuxpower.ca +13 -0 # Intel thermal monitor for x86_64 # # arch/x86_64/kernel/traps.c # 2005/01/03 15:50:31-08:00 zwane@linuxpower.ca +4 -0 # Intel thermal monitor for x86_64 # # arch/x86_64/kernel/mce_intel.c # 2005/01/03 15:49:22-08:00 zwane@linuxpower.ca +99 -0 # Intel thermal monitor for x86_64 # # arch/x86_64/kernel/mce.c # 2005/01/03 15:49:22-08:00 zwane@linuxpower.ca +13 -1 # Intel thermal monitor for x86_64 # # arch/x86_64/kernel/i8259.c # 2005/01/03 15:49:22-08:00 zwane@linuxpower.ca +2 -0 # Intel thermal monitor for x86_64 # # arch/x86_64/kernel/entry.S # 2005/01/03 15:49:22-08:00 zwane@linuxpower.ca +3 -0 # Intel thermal monitor for x86_64 # # arch/x86_64/kernel/Makefile # 2005/01/03 15:50:30-08:00 zwane@linuxpower.ca +1 -0 # Intel thermal monitor for x86_64 # # arch/x86_64/Kconfig # 2005/01/03 15:50:28-08:00 zwane@linuxpower.ca +7 -0 # Intel thermal monitor for x86_64 # # arch/x86_64/kernel/mce_intel.c # 2005/01/03 15:49:22-08:00 zwane@linuxpower.ca +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/x86_64/kernel/mce_intel.c # # ChangeSet # 2005/01/03 20:42:35-08:00 hpa@zytor.com # [PATCH] /proc/sys/kernel/bootloader_type # # This patch exports to userspace the boot loader ID which has been exported # by (b)zImage boot loaders since boot protocol version 2. # # It is needed so that update tools that update kernels from vendors know which # bootloader file they need to update; eg right now those tools do all kinds of # hairy heuristics to find out if it's grub or lilo or .. that installed the # kernel. Those heuristics are fragile in the presence of more than one # bootloader (which isn't that uncommon in OS upgrade situations). # # Tested on i386 and x86-64; as far as I know those are the only # architectures which use zImage/bzImage format. # # Signed-Off-By: H. Peter Anvin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/sysctl.c # 2005/01/03 15:49:22-08:00 hpa@zytor.com +10 -0 # /proc/sys/kernel/bootloader_type # # include/linux/sysctl.h # 2005/01/03 15:49:22-08:00 hpa@zytor.com +1 -0 # /proc/sys/kernel/bootloader_type # # include/asm-x86_64/processor.h # 2005/01/03 15:49:22-08:00 hpa@zytor.com +2 -0 # /proc/sys/kernel/bootloader_type # # include/asm-i386/processor.h # 2005/01/03 15:49:22-08:00 hpa@zytor.com +3 -0 # /proc/sys/kernel/bootloader_type # # arch/x86_64/kernel/setup.c # 2005/01/03 15:50:31-08:00 hpa@zytor.com +4 -0 # /proc/sys/kernel/bootloader_type # # arch/i386/kernel/setup.c # 2005/01/03 15:50:29-08:00 hpa@zytor.com +4 -0 # /proc/sys/kernel/bootloader_type # # ChangeSet # 2005/01/03 20:42:19-08:00 hpa@zytor.com # [PATCH] i386 boot loader IDs # # This patch adds some i386 boot loader IDs that were used but never # officially recorded as assigned. This makes them nice and official. # # Signed-Off-By: H. Peter Anvin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # Documentation/i386/boot.txt # 2005/01/03 15:49:22-08:00 hpa@zytor.com +3 -0 # i386 boot loader IDs # # ChangeSet # 2005/01/03 20:42:05-08:00 vgoyal@in.ibm.com # [PATCH] Secondary cpus boot-up for non default location built kernels # # This patch fixes the problem of secondary cpus not coming up over a reboot. # This problem was seen when a kernel compiled for non default (16MB) # location is booted. # # Signed-off-by: Vivek Goyal # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/kernel/trampoline.S # 2005/01/03 15:49:22-08:00 vgoyal@in.ibm.com +8 -2 # Secondary cpus boot-up for non default location built kernels # # ChangeSet # 2005/01/03 20:41:53-08:00 haveblue@us.ibm.com # [PATCH] remove pfn_to_pgdat() on x86 # # This function is unused on i386. # # Signed-off-by: Dave Hansen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-i386/mmzone.h # 2005/01/03 15:49:22-08:00 haveblue@us.ibm.com +0 -6 # remove pfn_to_pgdat() on x86 # # ChangeSet # 2005/01/03 20:41:40-08:00 hpa@zytor.com # [PATCH] Trivial cleanup in arch/i386/kernel/head.S # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/kernel/head.S # 2005/01/03 15:49:22-08:00 hpa@zytor.com +3 -5 # Trivial cleanup in arch/i386/kernel/head.S # # ChangeSet # 2005/01/03 20:41:26-08:00 zwane@arm.linux.org.uk # [PATCH] NX: Triple fault with 4k kernel mappings and PAE # # Booting with NX, CONFIG_X86_PAE and CONFIG_DEBUG_PAGEALLOC or mem=nopentium # triple faults really early during boot as it appears to be tripping over # pages from PAGE_OFFSET -> PAGE_OFFSET + 0x100000 not being marked as # executable. # # Signed-off-by: Zwane Mwaikambo # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/mm/init.c # 2005/01/03 15:49:21-08:00 zwane@arm.linux.org.uk +1 -1 # NX: Triple fault with 4k kernel mappings and PAE # # ChangeSet # 2005/01/03 20:41:13-08:00 zwane@linuxpower.ca # [PATCH] Cyrix MII cpuid returns stale %ecx # # This patch is for the following bug, thanks to Ondrej Zary for reporting, # testing and submitting a patch. # # http://bugzilla.kernel.org/show_bug.cgi?id=3767 # # It appears that the Cyrix MII won't touch %ecx at all resulting in stale # data being returned as extended attributes, so clear ecx before issuing the # cpuid. I have also made the capability print code display all the # capability words for easier debugging in future. # # Signed-off-by: Zwane Mwaikambo # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-i386/processor.h # 2005/01/03 15:50:31-08:00 zwane@linuxpower.ca +3 -1 # Cyrix MII cpuid returns stale %ecx # # arch/i386/kernel/cpu/common.c # 2005/01/03 15:49:21-08:00 zwane@linuxpower.ca +13 -16 # Cyrix MII cpuid returns stale %ecx # # ChangeSet # 2005/01/03 20:41:00-08:00 venkatesh.pallipadi@intel.com # [PATCH] x86: remove data-header and code overlap in boot/setup.S # # The setup.S data and code is not cleanly separated. The current space # reserved for setup header is not enough to fit the complete header. As a # result, part of the header (EDDBUF) will overwrite the initial code. # # I haven't seen any negative impact of this bug. As, by the time the setup # code is overwritten, we would have finished executing it anyway. But, I # think it is better to separate the header and code and prevent this # data_overwriting_the_code condition. # # The atatched patch adds some space in the header to fit all the data listed # in Documentation/i386/zero-page.txt for both i386 and x86_64 (and updates # zero-page.txt). # # Signed-off-by:: "Venkatesh Pallipadi" # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/x86_64/boot/setup.S # 2005/01/03 15:49:21-08:00 venkatesh.pallipadi@intel.com +3 -1 # x86: remove data-header and code overlap in boot/setup.S # # arch/i386/boot/setup.S # 2005/01/03 15:49:21-08:00 venkatesh.pallipadi@intel.com +3 -1 # x86: remove data-header and code overlap in boot/setup.S # # Documentation/i386/zero-page.txt # 2005/01/03 15:49:21-08:00 venkatesh.pallipadi@intel.com +4 -0 # x86: remove data-header and code overlap in boot/setup.S # # ChangeSet # 2005/01/03 20:40:47-08:00 mbligh@aracnet.com # [PATCH] Assign PKMAP_BASE dynamically # # Badari hit a problem when configuring PAE off (ie CONFIG_4G) where the # pkmap area could end up overlapping the fixmap area. For some reason, # PKMAP_BASE was defined statically, which seems rather pointless, and asking # for trouble. Patch below definines it dynamically, under the fixmap area. # The ordering of the VMALLOC_RESERVE space is: # # FIXADDR_TOP # fixed_addresses # FIXADDR_START # temp fixed addresses # FIXADDR_BOOT_START # Persistent kmap area # PKMAP_BASE # VMALLOC_END # Vmalloc area # VMALLOC_START # high_memory # # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-i386/highmem.h # 2005/01/03 15:49:21-08:00 mbligh@aracnet.com +16 -5 # Assign PKMAP_BASE dynamically # # include/asm-i386/fixmap.h # 2005/01/03 15:49:21-08:00 mbligh@aracnet.com +3 -1 # Assign PKMAP_BASE dynamically # # ChangeSet # 2005/01/03 20:40:34-08:00 dhowells@redhat.com # [PATCH] IDE_ARCH_OBSOLETE_INIT fix # # The attached patch fixes the IDE driver to initialise correctly in the case # that IDE_ARCH_OBSOLETE_INIT is not defined. Not defining this macro would # seem to be the correct thing to do since it includes the word "obsolete" in # its name. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/ide/setup-pci.c # 2005/01/03 15:49:21-08:00 dhowells@redhat.com +5 -0 # IDE_ARCH_OBSOLETE_INIT fix # # ChangeSet # 2005/01/03 20:40:21-08:00 dhowells@redhat.com # [PATCH] Termio userspace access error handling # # The attached patch creates a generic set of termio userspace access functions # with proper error handling. None of the current archs check for errors in # this case. # # Signed-Off-By: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-generic/termios.h # 2005/01/03 15:49:21-08:00 dhowells@redhat.com +69 -0 # Termio userspace access error handling # # include/asm-generic/termios.h # 2005/01/03 15:49:21-08:00 dhowells@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-generic/termios.h # # ChangeSet # 2005/01/03 20:40:08-08:00 ananth@in.ibm.com # [PATCH] Kprobes: wrapper to define jprobe.entry # # Here is a patch that adds a wrapper for defining jprobe.entry to make # t easy to handle the three dword function descriptors defined by the # PowerPC ELF ABI. # # x86, ppc64 and x86_64 are also updated. # # Signed-off-by: Ananth N Mavinakayanahalli # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-x86_64/kprobes.h # 2005/01/03 15:49:21-08:00 ananth@in.ibm.com +2 -0 # Kprobes: wrapper to define jprobe.entry # # include/asm-sparc64/kprobes.h # 2005/01/03 15:49:21-08:00 ananth@in.ibm.com +2 -0 # Kprobes: wrapper to define jprobe.entry # # include/asm-ppc64/kprobes.h # 2005/01/03 15:49:21-08:00 ananth@in.ibm.com +2 -0 # Kprobes: wrapper to define jprobe.entry # # include/asm-i386/kprobes.h # 2005/01/03 15:49:21-08:00 ananth@in.ibm.com +2 -0 # Kprobes: wrapper to define jprobe.entry # # ChangeSet # 2005/01/03 20:39:55-08:00 david@gibson.dropbear.id.au # [PATCH] ppc64: tweaks to ppc64 cpu sysfs information # # Currently the ppc64 sysfs code registers an entry for each possible cpu in # sysfs, rather than just online cpus. That makes sense, since the sysfs # entries are needed to control onlining of the cpus. However, this is done # even if CONFIG_HOTPLUG_CPU is not set, or if it is not a hotplug capable # (DLPAR) machine, which is a bit misleading. Secondly it also registers all # the other sysfs entries (mostly performance monitoring controls) on all # possible cpus, although they are quite meaningless on non-online cpus. # # This patch alters the code to only register sysfs directories at boot for # cpus which are either online or could be onlined (cpu is possible, and # CONFIG_HOTPLUG_CPU and an lpar machine). Furthermore, the entries apart # from 'online' itself and 'physical_id' are only registered for online CPUs # (and deregistered again if a cpu goes offline). # # Currently the ppc64 sysfs code registers an entry for each possible cpu in # sysfs, rather than just online cpus. That makes sense, since the sysfs # entries are needed to control onlining of the cpus. However, this is done # even if CONFIG_HOTPLUG_CPU is not set, or if it is not a hotplug capable # (DLPAR) machine, which is a bit misleading. Secondly it also registers all # the other sysfs entries (mostly performance monitoring controls) on all # possible cpus, although they are quite meaningless on non-online cpus. # # This patch alters the code to only register sysfs directories at boot for # cpus which are either online or could be onlined (cpu is possible, and # CONFIG_HOTPLUG_CPU and an lpar machine). Furthermore, the entries apart # from 'online' itself and 'physical_id' are only registered for online CPUs # (and deregistered again if a cpu goes offline). # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/ppc64/kernel/sysfs.c # 2005/01/03 15:49:20-08:00 david@gibson.dropbear.id.au +85 -14 # ppc64: tweaks to ppc64 cpu sysfs information # # ChangeSet # 2005/01/03 20:39:42-08:00 ananth@in.ibm.com # [PATCH] ppc64: kprobes implementation # # Kprobes (Kernel dynamic probes) is a lightweight mechanism for kernel # modules to insert probes into a running kernel, without the need to modify # the underlying source. The probe handlers can then be coded to log # relevent data at the probe point. More information on kprobes can be found # at: # # http://www-124.ibm.com/developerworks/oss/linux/projects/kprobes/ # # Jprobes (or jumper probes) is a small infrastructure to access function # arguments. It can be used by defining a small stub with the same template # as the routine in kernel, within which the required parameters can be # logged. # # Signed-off-by: Ananth N Mavinakayanahalli # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ppc64/kprobes.h # 2005/01/03 15:50:33-08:00 ananth@in.ibm.com +54 -0 # ppc64: kprobes implementation # # include/asm-ppc64/kdebug.h # 2005/01/03 15:49:20-08:00 ananth@in.ibm.com +43 -0 # ppc64: kprobes implementation # # include/asm-ppc64/sstep.h # 2005/01/03 15:49:20-08:00 ananth@in.ibm.com +11 -0 # ppc64: kprobes implementation # # include/asm-ppc64/kprobes.h # 2005/01/03 15:50:33-08:00 ananth@in.ibm.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-ppc64/kprobes.h # # include/asm-ppc64/kdebug.h # 2005/01/03 15:49:20-08:00 ananth@in.ibm.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-ppc64/kdebug.h # # arch/ppc64/xmon/xmon.c # 2005/01/03 15:49:20-08:00 ananth@in.ibm.com +0 -11 # ppc64: kprobes implementation # # arch/ppc64/mm/fault.c # 2005/01/03 15:49:20-08:00 ananth@in.ibm.com +8 -0 # ppc64: kprobes implementation # # arch/ppc64/lib/Makefile # 2005/01/03 15:49:20-08:00 ananth@in.ibm.com +1 -1 # ppc64: kprobes implementation # # arch/ppc64/kernel/traps.c # 2005/01/03 15:49:20-08:00 ananth@in.ibm.com +24 -0 # ppc64: kprobes implementation # # arch/ppc64/kernel/kprobes.c # 2005/01/03 15:49:20-08:00 ananth@in.ibm.com +258 -0 # ppc64: kprobes implementation # # arch/ppc64/kernel/Makefile # 2005/01/03 15:49:20-08:00 ananth@in.ibm.com +1 -0 # ppc64: kprobes implementation # # arch/ppc64/Kconfig.debug # 2005/01/03 15:49:20-08:00 ananth@in.ibm.com +10 -0 # ppc64: kprobes implementation # # arch/ppc64/kernel/kprobes.c # 2005/01/03 15:49:20-08:00 ananth@in.ibm.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc64/kernel/kprobes.c # # ChangeSet # 2005/01/03 20:39:27-08:00 a.othieno@bluewin.ch # [PATCH] ppc32: Resurrect Documentation/powerpc/cpu_features.txt # # Documentation/powerpc/cpu_features.txt mysteriously disappeared sometime # when 2.5 forked off. # # Searching through BK logs on linux.bkbits.net didn't reveal anything, # unfortunately. The only reference I could pick up from searching the # available lkml archives is the 2.4.20-pre11 ChangeLog where this was first # merged. # # Thus far, nothing indicates it was intentionally removed, and AFAICS, is # still up to date with the current code. # # Signed-off-by: Arthur Othieno # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # Documentation/powerpc/cpu_features.txt # 2005/01/03 15:49:20-08:00 a.othieno@bluewin.ch +56 -0 # ppc32: Resurrect Documentation/powerpc/cpu_features.txt # # Documentation/powerpc/cpu_features.txt # 2005/01/03 15:49:20-08:00 a.othieno@bluewin.ch +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/Documentation/powerpc/cpu_features.txt # # Documentation/powerpc/00-INDEX # 2005/01/03 15:49:20-08:00 a.othieno@bluewin.ch +3 -0 # ppc32: Resurrect Documentation/powerpc/cpu_features.txt # # ChangeSet # 2005/01/03 20:39:14-08:00 mporter@kernel.crashing.org # [PATCH] ppc32: fix io_remap_page_range for 36-bit phys platforms # # Fixes io_remap_page_range() to use the 32-bit address translator similar to # ioremap(). Someday u64 start/end resources should make this unnecessary. # Fixes set_pte() to handle a long long pte_t properly. # # Signed-off-by: Matt Porter # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ppc/pgtable.h # 2005/01/03 15:49:20-08:00 mporter@kernel.crashing.org +15 -1 # ppc32: fix io_remap_page_range for 36-bit phys platforms # # arch/ppc/syslib/ibm44x_common.c # 2005/01/03 15:49:20-08:00 mporter@kernel.crashing.org +2 -0 # ppc32: fix io_remap_page_range for 36-bit phys platforms # # arch/ppc/Kconfig # 2005/01/03 15:49:20-08:00 mporter@kernel.crashing.org +5 -0 # ppc32: fix io_remap_page_range for 36-bit phys platforms # # ChangeSet # 2005/01/03 20:39:01-08:00 mporter@kernel.crashing.org # [PATCH] ppc32: add uImage to default targets # # We'd like to get a uImage when just using 'make' on many targets. After # some discussion, it made sense to simply add uImage to the default targets # since it adds minimal build overhead and will work on all platforms. Also, # fix a dependency in the boot stuff. # # Signed-off-by: Matt Porter # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/ppc/boot/simple/misc.c # 2005/01/03 15:49:20-08:00 mporter@kernel.crashing.org +1 -1 # ppc32: add uImage to default targets # # arch/ppc/Makefile # 2005/01/03 15:49:20-08:00 mporter@kernel.crashing.org +1 -1 # ppc32: add uImage to default targets # # ChangeSet # 2005/01/03 20:38:48-08:00 minyard@acm.org # [PATCH] PPC debug setcontext syscall implementation. # # Add a debugging interface for PowerPC that allows signal handlers (or any # jump to a context, really) to perform debug functions. It allows the a # user program to turn on single-stepping, for instance, and the thread will # get a trap after executing the next instruction. It can also (on supported # PPC processors) turn on branch tracing and get a trap after the next branch # instruction is executed. This is useful for in-application debugging. # # Note that you can enable single-stepping on x86 processors directly from # signal handlers. Newer x86 processors have the equivalent of a # branch-trace bit in the IA32_DEBUGCTL MSR and could have similar function # to this syscall. Most other processors could benefit from a similar # interface, except for ARM which is extraordinarily broken for debugging. # # Future uses of this could be adding the ability to set the hardware # breakpoint registers from a signal handler. # # Signed-off-by: Corey Minyard # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ppc/unistd.h # 2005/01/03 15:49:20-08:00 minyard@acm.org +1 -1 # PPC debug setcontext syscall implementation. # # include/asm-ppc/signal.h # 2005/01/03 15:49:20-08:00 minyard@acm.org +19 -0 # PPC debug setcontext syscall implementation. # # arch/ppc/kernel/traps.c # 2005/01/03 15:49:20-08:00 minyard@acm.org +1 -1 # PPC debug setcontext syscall implementation. # # arch/ppc/kernel/signal.c # 2005/01/03 15:49:20-08:00 minyard@acm.org +90 -0 # PPC debug setcontext syscall implementation. # # arch/ppc/kernel/misc.S # 2005/01/03 15:49:20-08:00 minyard@acm.org +1 -1 # PPC debug setcontext syscall implementation. # # arch/ppc/kernel/entry.S # 2005/01/03 15:49:20-08:00 minyard@acm.org +17 -13 # PPC debug setcontext syscall implementation. # # ChangeSet # 2005/01/03 20:38:35-08:00 mporter@kernel.crashing.org # [PATCH] ppc32: remove bogus SPRN_CPC0_GPIO define # # This trivial patch removes long-standing typo in ibm44x.h. In fact, we # already have correct DCRN_CPC0_GPIO define later in the same file. # # Signed-off-by: Eugene Surovegin # Signed-off-by: Matt Porter # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ppc/ibm44x.h # 2005/01/03 15:49:19-08:00 mporter@kernel.crashing.org +0 -5 # ppc32: remove bogus SPRN_CPC0_GPIO define # # ChangeSet # 2005/01/03 20:38:22-08:00 mporter@kernel.crashing.org # [PATCH] ppc32: fix ebony.c warnings # # This patch removes annoying warnings in ebony.c. Fix is similar to one I # made in ocotea.c before. # # Signed-off-by: Eugene Surovegin # Signed-off-by: Matt Porter # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/ppc/platforms/4xx/ebony.c # 2005/01/03 15:49:19-08:00 mporter@kernel.crashing.org +1 -1 # ppc32: fix ebony.c warnings # # ChangeSet # 2005/01/03 20:38:09-08:00 galak@somerset.sps.mot.com # [PATCH] Fix prototypes & externs in e500 oprofile support # # Remove prototypes and externs out of the .c files # # Signed-off-by: Andy Fleming # Signed-off-by: Kumar Gala # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ppc/perfmon.h # 2005/01/03 15:49:19-08:00 galak@somerset.sps.mot.com +4 -0 # Fix prototypes & externs in e500 oprofile support # # arch/ppc/oprofile/common.c # 2005/01/03 15:49:19-08:00 galak@somerset.sps.mot.com +0 -1 # Fix prototypes & externs in e500 oprofile support # # arch/ppc/kernel/traps.c # 2005/01/03 15:50:34-08:00 galak@somerset.sps.mot.com +1 -2 # Fix prototypes & externs in e500 oprofile support # # arch/ppc/kernel/perfmon_fsl_booke.c # 2005/01/03 15:49:19-08:00 galak@somerset.sps.mot.com +1 -9 # Fix prototypes & externs in e500 oprofile support # # ChangeSet # 2005/01/03 20:37:56-08:00 galak@linen.sps.mot.com # [PATCH] ppc32: performance Monitor/Oprofile support for e500 # # Adds oprofile support for the e500 PowerPC core. # # Signed-off-by: Andy Fleming # Signed-off-by: Kumar Gala # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ppc/perfmon.h # 2005/01/03 20:37:48-08:00 galak@linen.sps.mot.com +18 -0 # # arch/ppc/oprofile/op_model_fsl_booke.c # 2005/01/03 20:37:48-08:00 galak@linen.sps.mot.com +185 -0 # # arch/ppc/oprofile/op_impl.h # 2005/01/03 20:37:48-08:00 galak@linen.sps.mot.com +45 -0 # # arch/ppc/oprofile/common.c # 2005/01/03 20:37:48-08:00 galak@linen.sps.mot.com +163 -0 # # arch/ppc/kernel/perfmon_fsl_booke.c # 2005/01/03 20:37:48-08:00 galak@linen.sps.mot.com +230 -0 # # arch/ppc/kernel/perfmon.c # 2005/01/03 20:37:48-08:00 galak@linen.sps.mot.com +94 -0 # # include/asm-ppc/reg_booke.h # 2005/01/03 15:49:19-08:00 galak@linen.sps.mot.com +53 -0 # ppc32: performance Monitor/Oprofile support for e500 # # include/asm-ppc/perfmon.h # 2005/01/03 20:37:48-08:00 galak@linen.sps.mot.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-ppc/perfmon.h # # arch/ppc/oprofile/op_model_fsl_booke.c # 2005/01/03 20:37:48-08:00 galak@linen.sps.mot.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/oprofile/op_model_fsl_booke.c # # arch/ppc/oprofile/op_impl.h # 2005/01/03 20:37:48-08:00 galak@linen.sps.mot.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/oprofile/op_impl.h # # arch/ppc/oprofile/common.c # 2005/01/03 20:37:48-08:00 galak@linen.sps.mot.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/oprofile/common.c # # arch/ppc/oprofile/Makefile # 2005/01/03 15:49:19-08:00 galak@linen.sps.mot.com +1 -1 # ppc32: performance Monitor/Oprofile support for e500 # # arch/ppc/kernel/traps.c # 2005/01/03 15:50:34-08:00 galak@linen.sps.mot.com +6 -0 # ppc32: performance Monitor/Oprofile support for e500 # # arch/ppc/kernel/perfmon_fsl_booke.c # 2005/01/03 20:37:48-08:00 galak@linen.sps.mot.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/kernel/perfmon_fsl_booke.c # # arch/ppc/kernel/perfmon.c # 2005/01/03 20:37:48-08:00 galak@linen.sps.mot.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/kernel/perfmon.c # # arch/ppc/kernel/head_e500.S # 2005/01/03 15:49:19-08:00 galak@linen.sps.mot.com +2 -1 # ppc32: performance Monitor/Oprofile support for e500 # # arch/ppc/kernel/Makefile # 2005/01/03 15:49:19-08:00 galak@linen.sps.mot.com +2 -1 # ppc32: performance Monitor/Oprofile support for e500 # # BitKeeper/deleted/.del-init.c~f4279b05cb33da1b # 2005/01/03 20:37:48-08:00 galak@linen.sps.mot.com +0 -0 # Delete: arch/ppc/oprofile/init.c # # ChangeSet # 2005/01/03 20:33:46-08:00 mporter@kernel.crashing.org # [PATCH] ppc32: PPC4xx PIC rewrite/cleanup # # Patch from Eugene to do some cleanup of the PPC4xx PIC code. Separates the # interrupts that can have polarity/triggering modified for platform # modification if necessary. Between the two of us, it's tested on most of # the affected platforms. # # Signed-off-by: Eugene Surovegin # Signed-off-by: Matt Porter # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/ppc/syslib/ppc403_pic.c # 2005/01/03 15:49:19-08:00 mporter@kernel.crashing.org +127 -0 # ppc32: PPC4xx PIC rewrite/cleanup # # include/asm-ppc/ppc4xx_pic.h # 2005/01/03 15:49:19-08:00 mporter@kernel.crashing.org +38 -13 # ppc32: PPC4xx PIC rewrite/cleanup # # include/asm-ppc/ibm44x.h # 2005/01/03 15:50:34-08:00 mporter@kernel.crashing.org +1 -3 # ppc32: PPC4xx PIC rewrite/cleanup # # arch/ppc/syslib/xilinx_pic.c # 2005/01/03 15:49:19-08:00 mporter@kernel.crashing.org +5 -4 # ppc32: PPC4xx PIC rewrite/cleanup # # arch/ppc/syslib/ppc4xx_setup.c # 2005/01/03 15:49:19-08:00 mporter@kernel.crashing.org +0 -5 # ppc32: PPC4xx PIC rewrite/cleanup # # arch/ppc/syslib/ppc4xx_pic.c # 2005/01/03 15:49:19-08:00 mporter@kernel.crashing.org +189 -480 # ppc32: PPC4xx PIC rewrite/cleanup # # arch/ppc/syslib/ppc403_pic.c # 2005/01/03 15:49:19-08:00 mporter@kernel.crashing.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/syslib/ppc403_pic.c # # arch/ppc/syslib/ibm44x_common.c # 2005/01/03 15:50:34-08:00 mporter@kernel.crashing.org +1 -11 # ppc32: PPC4xx PIC rewrite/cleanup # # arch/ppc/syslib/Makefile # 2005/01/03 15:49:19-08:00 mporter@kernel.crashing.org +4 -0 # ppc32: PPC4xx PIC rewrite/cleanup # # arch/ppc/platforms/4xx/sycamore.c # 2005/01/03 15:49:19-08:00 mporter@kernel.crashing.org +15 -37 # ppc32: PPC4xx PIC rewrite/cleanup # # arch/ppc/platforms/4xx/redwood6.c # 2005/01/03 15:49:19-08:00 mporter@kernel.crashing.org +12 -38 # ppc32: PPC4xx PIC rewrite/cleanup # # arch/ppc/platforms/4xx/ocotea.c # 2005/01/03 15:49:19-08:00 mporter@kernel.crashing.org +0 -6 # ppc32: PPC4xx PIC rewrite/cleanup # # arch/ppc/platforms/4xx/oak.c # 2005/01/03 15:49:19-08:00 mporter@kernel.crashing.org +2 -28 # ppc32: PPC4xx PIC rewrite/cleanup # # arch/ppc/platforms/4xx/ibmstbx25.c # 2005/01/03 15:49:19-08:00 mporter@kernel.crashing.org +9 -0 # ppc32: PPC4xx PIC rewrite/cleanup # # arch/ppc/platforms/4xx/ibmnp405h.h # 2005/01/03 15:49:19-08:00 mporter@kernel.crashing.org +1 -3 # ppc32: PPC4xx PIC rewrite/cleanup # # arch/ppc/platforms/4xx/ibm440gx.c # 2005/01/03 15:49:19-08:00 mporter@kernel.crashing.org +17 -0 # ppc32: PPC4xx PIC rewrite/cleanup # # arch/ppc/platforms/4xx/ibm440gp.c # 2005/01/03 15:49:19-08:00 mporter@kernel.crashing.org +13 -0 # ppc32: PPC4xx PIC rewrite/cleanup # # arch/ppc/platforms/4xx/ibm405gpr.c # 2005/01/03 15:49:19-08:00 mporter@kernel.crashing.org +9 -0 # ppc32: PPC4xx PIC rewrite/cleanup # # arch/ppc/platforms/4xx/ibm405gp.c # 2005/01/03 15:49:19-08:00 mporter@kernel.crashing.org +9 -0 # ppc32: PPC4xx PIC rewrite/cleanup # # arch/ppc/platforms/4xx/ibm405ep.c # 2005/01/03 15:49:19-08:00 mporter@kernel.crashing.org +9 -0 # ppc32: PPC4xx PIC rewrite/cleanup # # arch/ppc/platforms/4xx/ebony.c # 2005/01/03 15:50:34-08:00 mporter@kernel.crashing.org +15 -69 # ppc32: PPC4xx PIC rewrite/cleanup # # ChangeSet # 2005/01/03 20:33:32-08:00 rvinson@mvista.com # [PATCH] ppc32: add Support for IBM 750FX and 750GX Eval Boards # # I've added support for the IBM 750FX and 750GX Eval Boards # (Chestnut/Buckeye). # # Signed-off-by: Randy Vinson # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/mtd/maps/chestnut.c # 2005/01/03 15:49:19-08:00 rvinson@mvista.com +89 -0 # ppc32: add Support for IBM 750FX and 750GX Eval Boards # # arch/ppc/platforms/chestnut.h # 2005/01/03 15:49:19-08:00 rvinson@mvista.com +128 -0 # ppc32: add Support for IBM 750FX and 750GX Eval Boards # # arch/ppc/platforms/chestnut.c # 2005/01/03 15:49:19-08:00 rvinson@mvista.com +623 -0 # ppc32: add Support for IBM 750FX and 750GX Eval Boards # # include/asm-ppc/serial.h # 2005/01/03 15:49:19-08:00 rvinson@mvista.com +2 -0 # ppc32: add Support for IBM 750FX and 750GX Eval Boards # # include/asm-ppc/mv64x60_defs.h # 2005/01/03 15:49:19-08:00 rvinson@mvista.com +2 -0 # ppc32: add Support for IBM 750FX and 750GX Eval Boards # # drivers/mtd/maps/chestnut.c # 2005/01/03 15:49:19-08:00 rvinson@mvista.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/mtd/maps/chestnut.c # # drivers/mtd/maps/Makefile # 2005/01/03 15:49:19-08:00 rvinson@mvista.com +1 -0 # ppc32: add Support for IBM 750FX and 750GX Eval Boards # # drivers/mtd/maps/Kconfig # 2005/01/03 15:49:19-08:00 rvinson@mvista.com +8 -0 # ppc32: add Support for IBM 750FX and 750GX Eval Boards # # arch/ppc/syslib/Makefile # 2005/01/03 15:50:35-08:00 rvinson@mvista.com +1 -0 # ppc32: add Support for IBM 750FX and 750GX Eval Boards # # arch/ppc/platforms/chestnut.h # 2005/01/03 15:49:19-08:00 rvinson@mvista.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/platforms/chestnut.h # # arch/ppc/platforms/chestnut.c # 2005/01/03 15:49:19-08:00 rvinson@mvista.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/platforms/chestnut.c # # arch/ppc/platforms/Makefile # 2005/01/03 15:49:19-08:00 rvinson@mvista.com +1 -0 # ppc32: add Support for IBM 750FX and 750GX Eval Boards # # arch/ppc/configs/chestnut_defconfig # 2005/01/03 15:49:19-08:00 rvinson@mvista.com +739 -0 # ppc32: add Support for IBM 750FX and 750GX Eval Boards # # arch/ppc/boot/simple/misc-chestnut.S # 2005/01/03 15:49:19-08:00 rvinson@mvista.com +41 -0 # ppc32: add Support for IBM 750FX and 750GX Eval Boards # # arch/ppc/boot/simple/Makefile # 2005/01/03 15:49:19-08:00 rvinson@mvista.com +3 -0 # ppc32: add Support for IBM 750FX and 750GX Eval Boards # # arch/ppc/Kconfig # 2005/01/03 15:50:34-08:00 rvinson@mvista.com +12 -1 # ppc32: add Support for IBM 750FX and 750GX Eval Boards # # arch/ppc/configs/chestnut_defconfig # 2005/01/03 15:49:19-08:00 rvinson@mvista.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/configs/chestnut_defconfig # # arch/ppc/boot/simple/misc-chestnut.S # 2005/01/03 15:49:19-08:00 rvinson@mvista.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/boot/simple/misc-chestnut.S # # ChangeSet # 2005/01/03 20:33:18-08:00 mgreer@mvista.com # [PATCH] ppc32: support for Artesyn Katana cPCI boards # # This patch adds support for the Artesyn Katana 750i, 752i, and 3750. # # Signed-off-by: Mark A. Greer # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/ppc/platforms/katana.h # 2005/01/03 15:49:18-08:00 mgreer@mvista.com +231 -0 # ppc32: support for Artesyn Katana cPCI boards # # arch/ppc/platforms/katana.c # 2005/01/03 15:49:18-08:00 mgreer@mvista.com +660 -0 # ppc32: support for Artesyn Katana cPCI boards # # arch/ppc/configs/katana_defconfig # 2005/01/03 15:49:18-08:00 mgreer@mvista.com +651 -0 # ppc32: support for Artesyn Katana cPCI boards # # arch/ppc/boot/simple/misc-katana.c # 2005/01/03 15:49:18-08:00 mgreer@mvista.com +15 -0 # ppc32: support for Artesyn Katana cPCI boards # # arch/ppc/syslib/Makefile # 2005/01/03 15:50:35-08:00 mgreer@mvista.com +1 -0 # ppc32: support for Artesyn Katana cPCI boards # # arch/ppc/platforms/katana.h # 2005/01/03 15:49:18-08:00 mgreer@mvista.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/platforms/katana.h # # arch/ppc/platforms/katana.c # 2005/01/03 15:49:18-08:00 mgreer@mvista.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/platforms/katana.c # # arch/ppc/platforms/Makefile # 2005/01/03 15:50:35-08:00 mgreer@mvista.com +1 -0 # ppc32: support for Artesyn Katana cPCI boards # # arch/ppc/configs/katana_defconfig # 2005/01/03 15:49:18-08:00 mgreer@mvista.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/configs/katana_defconfig # # arch/ppc/boot/simple/misc-katana.c # 2005/01/03 15:49:18-08:00 mgreer@mvista.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/boot/simple/misc-katana.c # # arch/ppc/boot/simple/Makefile # 2005/01/03 15:50:35-08:00 mgreer@mvista.com +4 -0 # ppc32: support for Artesyn Katana cPCI boards # # arch/ppc/Kconfig # 2005/01/03 15:50:35-08:00 mgreer@mvista.com +11 -0 # ppc32: support for Artesyn Katana cPCI boards # # ChangeSet # 2005/01/03 20:33:05-08:00 mgreer@mvista.com # [PATCH] ppc32: support for Force CPCI-690 board # # This patch adds support for the Force CPCI-690 cPCI board. # # Signed-off-by: Mark A. Greer # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/ppc/platforms/cpci690.h # 2005/01/03 15:49:18-08:00 mgreer@mvista.com +73 -0 # ppc32: support for Force CPCI-690 board # # arch/ppc/platforms/cpci690.c # 2005/01/03 15:49:18-08:00 mgreer@mvista.com +493 -0 # ppc32: support for Force CPCI-690 board # # arch/ppc/configs/cpci690_defconfig # 2005/01/03 15:49:18-08:00 mgreer@mvista.com +686 -0 # ppc32: support for Force CPCI-690 board # # arch/ppc/boot/simple/misc-cpci690.c # 2005/01/03 15:49:18-08:00 mgreer@mvista.com +15 -0 # ppc32: support for Force CPCI-690 board # # arch/ppc/syslib/Makefile # 2005/01/03 15:50:35-08:00 mgreer@mvista.com +4 -0 # ppc32: support for Force CPCI-690 board # # arch/ppc/platforms/cpci690.h # 2005/01/03 15:49:18-08:00 mgreer@mvista.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/platforms/cpci690.h # # arch/ppc/platforms/cpci690.c # 2005/01/03 15:49:18-08:00 mgreer@mvista.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/platforms/cpci690.c # # arch/ppc/platforms/Makefile # 2005/01/03 15:50:35-08:00 mgreer@mvista.com +1 -0 # ppc32: support for Force CPCI-690 board # # arch/ppc/configs/cpci690_defconfig # 2005/01/03 15:49:18-08:00 mgreer@mvista.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/configs/cpci690_defconfig # # arch/ppc/boot/simple/misc-cpci690.c # 2005/01/03 15:49:18-08:00 mgreer@mvista.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/boot/simple/misc-cpci690.c # # arch/ppc/boot/simple/Makefile # 2005/01/03 15:50:35-08:00 mgreer@mvista.com +6 -0 # ppc32: support for Force CPCI-690 board # # arch/ppc/Kconfig # 2005/01/03 15:50:35-08:00 mgreer@mvista.com +6 -1 # ppc32: support for Force CPCI-690 board # # ChangeSet # 2005/01/03 20:32:51-08:00 mgreer@mvista.com # [PATCH] ppc32: support for Marvell EV-64260[ab]-BP eval platform # # This patch adds support for a line of evaluation platforms from Marvell # that use the Marvell GT64260[ab] host bridges. # # This patch depends on the Marvell host bridge support patch (mv64x60). # # Signed-off-by: Mark A. Greer # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/ppc/syslib/Makefile # 2005/01/03 15:50:35-08:00 mgreer@mvista.com +1 -2 # ppc32: support for Marvell EV-64260[ab]-BP eval platform # # arch/ppc/platforms/ev64260.h # 2005/01/03 15:49:18-08:00 mgreer@mvista.com +82 -21 # ppc32: support for Marvell EV-64260[ab]-BP eval platform # # arch/ppc/platforms/ev64260.c # 2005/01/03 20:32:43-08:00 mgreer@mvista.com +631 -0 # # arch/ppc/platforms/Makefile # 2005/01/03 15:50:35-08:00 mgreer@mvista.com +1 -1 # ppc32: support for Marvell EV-64260[ab]-BP eval platform # # arch/ppc/configs/ev64260_defconfig # 2005/01/03 15:49:18-08:00 mgreer@mvista.com +311 -133 # ppc32: support for Marvell EV-64260[ab]-BP eval platform # # arch/ppc/boot/simple/misc-ev64260.S # 2005/01/03 15:49:18-08:00 mgreer@mvista.com +46 -36 # ppc32: support for Marvell EV-64260[ab]-BP eval platform # # arch/ppc/boot/simple/head.S # 2005/01/03 15:49:18-08:00 mgreer@mvista.com +3 -3 # ppc32: support for Marvell EV-64260[ab]-BP eval platform # # arch/ppc/boot/simple/Makefile # 2005/01/03 15:50:35-08:00 mgreer@mvista.com +1 -1 # ppc32: support for Marvell EV-64260[ab]-BP eval platform # # arch/ppc/platforms/ev64260.c # 2005/01/03 20:32:43-08:00 mgreer@mvista.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/platforms/ev64260.c # # BitKeeper/deleted/.del-gt64260_tty.c~5b3e07594e3e7d82 # 2005/01/03 20:32:43-08:00 mgreer@mvista.com +0 -0 # Delete: arch/ppc/boot/simple/gt64260_tty.c # # BitKeeper/deleted/.del-ev64260_setup.c~e8d75ac5d9c1c70e # 2005/01/03 20:32:43-08:00 mgreer@mvista.com +0 -0 # Delete: arch/ppc/platforms/ev64260_setup.c # # ChangeSet # 2005/01/03 20:32:15-08:00 mgreer@mvista.com # [PATCH] ppc32-marvell-host-bridge-support-mv64x60 review fixes # # Here is an incremental patch [hopefully] with your concerns addressed. # Note that the arch/ppc/boot code is not kernel code and only exists for a # short period of time before execution jumps to the kernel. # # Signed-off-by: Mark A. Greer # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/ppc/syslib/mv64x60.c # 2005/01/03 15:49:18-08:00 mgreer@mvista.com +104 -96 # ppc32-marvell-host-bridge-support-mv64x60 review fixes # # arch/ppc/syslib/mv64360_pic.c # 2005/01/03 15:49:18-08:00 mgreer@mvista.com +18 -8 # ppc32-marvell-host-bridge-support-mv64x60 review fixes # # arch/ppc/syslib/gt64260_pic.c # 2005/01/03 15:49:18-08:00 mgreer@mvista.com +16 -6 # ppc32-marvell-host-bridge-support-mv64x60 review fixes # # arch/ppc/boot/simple/mv64x60_tty.c # 2005/01/03 15:49:18-08:00 mgreer@mvista.com +29 -24 # ppc32-marvell-host-bridge-support-mv64x60 review fixes # # arch/ppc/boot/include/mpsc_defs.h # 2005/01/03 15:49:18-08:00 mgreer@mvista.com +146 -0 # ppc32-marvell-host-bridge-support-mv64x60 review fixes # # arch/ppc/boot/include/mpsc_defs.h # 2005/01/03 15:49:18-08:00 mgreer@mvista.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/boot/include/mpsc_defs.h # # ChangeSet # 2005/01/03 20:32:01-08:00 mgreer@mvista.com # [PATCH] ppc32: Marvell host bridge support (mv64x60) # # This patch adds core support for a line of host bridges from Marvell # (formerly Galileo). This code has been tested with a GT64260a, GT64260b, # MV64360, and MV64460. Patches for platforms that use these bridges will be # sent separately. # # The patch is rather large so a link is provided. # # Signed-off-by: Mark A. Greer # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ppc/mv64x60_defs.h # 2005/01/03 20:31:54-08:00 mgreer@mvista.com +927 -0 # # include/asm-ppc/mv64x60.h # 2005/01/03 20:31:54-08:00 mgreer@mvista.com +343 -0 # # arch/ppc/syslib/mv64x60_win.c # 2005/01/03 20:31:54-08:00 mgreer@mvista.com +1168 -0 # # arch/ppc/syslib/mv64x60_dbg.c # 2005/01/03 20:31:54-08:00 mgreer@mvista.com +123 -0 # # arch/ppc/syslib/mv64x60.c # 2005/01/03 20:31:54-08:00 mgreer@mvista.com +2246 -0 # # arch/ppc/syslib/mv64360_pic.c # 2005/01/03 20:31:54-08:00 mgreer@mvista.com +407 -0 # # arch/ppc/boot/simple/mv64x60_tty.c # 2005/01/03 20:31:54-08:00 mgreer@mvista.com +381 -0 # # arch/ppc/boot/simple/mv64x60_stub.c # 2005/01/03 20:31:54-08:00 mgreer@mvista.com +24 -0 # # arch/ppc/boot/simple/misc-mv64x60.S # 2005/01/03 20:31:54-08:00 mgreer@mvista.com +57 -0 # # include/linux/mv643xx.h # 2005/01/03 15:49:18-08:00 mgreer@mvista.com +49 -0 # ppc32: Marvell host bridge support (mv64x60) # # include/asm-ppc/mv64x60_defs.h # 2005/01/03 20:31:54-08:00 mgreer@mvista.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-ppc/mv64x60_defs.h # # include/asm-ppc/mv64x60.h # 2005/01/03 20:31:54-08:00 mgreer@mvista.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-ppc/mv64x60.h # # arch/ppc/syslib/mv64x60_win.c # 2005/01/03 20:31:54-08:00 mgreer@mvista.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/syslib/mv64x60_win.c # # arch/ppc/syslib/mv64x60_dbg.c # 2005/01/03 20:31:54-08:00 mgreer@mvista.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/syslib/mv64x60_dbg.c # # arch/ppc/syslib/mv64x60.c # 2005/01/03 20:31:54-08:00 mgreer@mvista.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/syslib/mv64x60.c # # arch/ppc/syslib/mv64360_pic.c # 2005/01/03 20:31:54-08:00 mgreer@mvista.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/syslib/mv64360_pic.c # # arch/ppc/syslib/gt64260_pic.c # 2005/01/03 15:50:36-08:00 mgreer@mvista.com +164 -87 # ppc32: Marvell host bridge support (mv64x60) # # arch/ppc/syslib/Makefile # 2005/01/03 15:50:36-08:00 mgreer@mvista.com +3 -0 # ppc32: Marvell host bridge support (mv64x60) # # arch/ppc/boot/simple/mv64x60_tty.c # 2005/01/03 20:31:54-08:00 mgreer@mvista.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/boot/simple/mv64x60_tty.c # # arch/ppc/boot/simple/mv64x60_stub.c # 2005/01/03 20:31:54-08:00 mgreer@mvista.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/boot/simple/mv64x60_stub.c # # arch/ppc/boot/simple/misc-mv64x60.S # 2005/01/03 20:31:54-08:00 mgreer@mvista.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/boot/simple/misc-mv64x60.S # # arch/ppc/boot/simple/Makefile # 2005/01/03 15:50:36-08:00 mgreer@mvista.com +3 -2 # ppc32: Marvell host bridge support (mv64x60) # # arch/ppc/Kconfig # 2005/01/03 15:50:35-08:00 mgreer@mvista.com +42 -4 # ppc32: Marvell host bridge support (mv64x60) # # BitKeeper/deleted/.del-gt64260_common.c~ed2987317531dc82 # 2005/01/03 20:31:54-08:00 mgreer@mvista.com +0 -0 # Delete: arch/ppc/syslib/gt64260_common.c # # ChangeSet # 2005/01/03 20:20:09-08:00 trini@kernel.crashing.org # [PATCH] ppc32: Switch to KBUILD_DEFCONFIG # # The following patch switches ppc32 from using arch/ppc/defconfig to # arch/ppc/configs/common_defconfig as a defconfig. These files are supposed # to be identical, but always end up out of sync. This also updates the # common_defconfig with current options. # # Signed-off-by: Tom Rini # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/ppc/configs/common_defconfig # 2005/01/03 15:49:17-08:00 trini@kernel.crashing.org +137 -42 # ppc32: Switch to KBUILD_DEFCONFIG # # arch/ppc/Makefile # 2005/01/03 15:50:34-08:00 trini@kernel.crashing.org +3 -0 # ppc32: Switch to KBUILD_DEFCONFIG # # BitKeeper/deleted/.del-defconfig~924a0ab4bf2d23b6 # 2005/01/03 20:20:02-08:00 trini@kernel.crashing.org +0 -0 # Delete: arch/ppc/defconfig # # ChangeSet # 2005/01/03 20:19:56-08:00 galak@somerset.sps.mot.com # [PATCH] ppc32: refactor common book-e exception code # # Moves common handling of InstructionStorage, Alignment, Program, and # Decrementer exceptions handlers for Book-E processors (44x & e500) into # common code. # # Signed-off-by: Kumar Gala # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/ppc/kernel/head_e500.S # 2005/01/03 15:50:34-08:00 galak@somerset.sps.mot.com +4 -25 # ppc32: refactor common book-e exception code # # arch/ppc/kernel/head_booke.h # 2005/01/03 15:49:17-08:00 galak@somerset.sps.mot.com +33 -0 # ppc32: refactor common book-e exception code # # arch/ppc/kernel/head_44x.S # 2005/01/03 15:49:17-08:00 galak@somerset.sps.mot.com +4 -23 # ppc32: refactor common book-e exception code # # ChangeSet # 2005/01/03 20:19:43-08:00 galak@somerset.sps.mot.com # [PATCH] ppc32: freescale Book-E MMU cleanup # # Updates the Freescale Book-E MMU usage to match the architecture spec. # This is mainly growing the widths of fields in various registers to match # the architecture spec instead of the implementation. # # Signed-off-by: Becky Gill # Signed-off-by: Kumar Gala # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ppc/mmu.h # 2005/01/03 15:49:17-08:00 galak@somerset.sps.mot.com +13 -11 # ppc32: freescale Book-E MMU cleanup # # arch/ppc/mm/fsl_booke_mmu.c # 2005/01/03 15:49:17-08:00 galak@somerset.sps.mot.com +3 -3 # ppc32: freescale Book-E MMU cleanup # # arch/ppc/kernel/head_e500.S # 2005/01/03 15:50:37-08:00 galak@somerset.sps.mot.com +9 -11 # ppc32: freescale Book-E MMU cleanup # # ChangeSet # 2005/01/03 20:19:30-08:00 gandalf@netfilter.org # [PATCH] Fix broken RST handling in ip_conntrack # # Here's a patch that fixes a pretty serious bug introduced by a recent # "bugfix". The problem is that RST packets are ignored if they follow an # ACK packet, this means that the timeout of the connection isn't decreased, # so we get lots of old connections lingering around until the timeout # expires, the default timeout for state ESTABLISHED is 5 days. # # This needs to go into -bk as soon as possible. The bug is present in # 2.6.10 as well. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # net/ipv4/netfilter/ip_conntrack_proto_tcp.c # 2005/01/03 15:49:17-08:00 gandalf@netfilter.org +2 -1 # Fix broken RST handling in ip_conntrack # # ChangeSet # 2005/01/03 20:19:17-08:00 rusty@rustcorp.com.au # [PATCH] netfilter: Fix cleanup in ipt_recent should ipt_registrater_match error # # When ipt_registrater_match() fails, ipt_recent doesn't remove its proc # entry. Found by nfsim. # # Signed-off-by: Rusty Russell # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # net/ipv4/netfilter/ipt_recent.c # 2005/01/03 15:49:17-08:00 rusty@rustcorp.com.au +5 -2 # netfilter: Fix cleanup in ipt_recent should ipt_registrater_match error # # ChangeSet # 2005/01/03 20:19:04-08:00 rusty@rustcorp.com.au # [PATCH] netfilter: Remove copy_to_user Warnings in Netfilter # # After changing firewall rules, we try to return the counters to userspace. We # didn't fail at that point if the copy failed, but it doesn't really matter. # Someone added a warn_unused_result attribute to copy_to_user, so we get bogus # warnings. # # Signed-off-by: Rusty Russell # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # net/ipv6/netfilter/ip6_tables.c # 2005/01/03 15:49:17-08:00 rusty@rustcorp.com.au +4 -3 # netfilter: Remove copy_to_user Warnings in Netfilter # # net/ipv4/netfilter/ip_tables.c # 2005/01/03 15:49:17-08:00 rusty@rustcorp.com.au +4 -4 # netfilter: Remove copy_to_user Warnings in Netfilter # # net/ipv4/netfilter/arp_tables.c # 2005/01/03 15:49:17-08:00 rusty@rustcorp.com.au +4 -4 # netfilter: Remove copy_to_user Warnings in Netfilter # # ChangeSet # 2005/01/03 20:18:48-08:00 rusty@rustcorp.com.au # [PATCH] netfilter: Remove IPCHAINS and IPFWADM compatibility # # We've been threatening to do this for ages: remove the backwards compatibility # code. We can now combine ip_conntrack_core.c and ip_conntrack_standalone.c, # likewise for the NAT code, but that will come later. # # Signed-off-by: Rusty Russell # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # net/ipv4/netfilter/Makefile # 2005/01/03 15:49:16-08:00 rusty@rustcorp.com.au +2 -16 # netfilter: Remove IPCHAINS and IPFWADM compatibility # # net/ipv4/netfilter/Kconfig # 2005/01/03 15:49:16-08:00 rusty@rustcorp.com.au +1 -26 # netfilter: Remove IPCHAINS and IPFWADM compatibility # # BitKeeper/deleted/.del-ip_fw_compat_redir.c~71f45a07f87c6c11 # 2005/01/03 20:18:41-08:00 rusty@rustcorp.com.au +0 -0 # Delete: net/ipv4/netfilter/ip_fw_compat_redir.c # # BitKeeper/deleted/.del-ip_fw_compat_masq.c~2732fae4afde00b # 2005/01/03 20:18:40-08:00 rusty@rustcorp.com.au +0 -0 # Delete: net/ipv4/netfilter/ip_fw_compat_masq.c # # BitKeeper/deleted/.del-ip_fw_compat.h~e6b495cea8febf37 # 2005/01/03 20:18:40-08:00 rusty@rustcorp.com.au +0 -0 # Delete: net/ipv4/netfilter/ip_fw_compat.h # # BitKeeper/deleted/.del-ipfwadm_core.c~1ec6656495906ffe # 2005/01/03 20:18:39-08:00 rusty@rustcorp.com.au +0 -0 # Delete: net/ipv4/netfilter/ipfwadm_core.c # # BitKeeper/deleted/.del-ipchains_core.c~ea158d1212825a07 # 2005/01/03 20:18:39-08:00 rusty@rustcorp.com.au +0 -0 # Delete: net/ipv4/netfilter/ipchains_core.c # # BitKeeper/deleted/.del-ip_fw_compat.c~63568190cfb99895 # 2005/01/03 20:18:39-08:00 rusty@rustcorp.com.au +0 -0 # Delete: net/ipv4/netfilter/ip_fw_compat.c # # BitKeeper/deleted/.del-ipfwadm_core.h~e011b25dbeb1ed51 # 2005/01/03 20:18:38-08:00 rusty@rustcorp.com.au +0 -0 # Delete: include/linux/netfilter_ipv4/ipfwadm_core.h # # BitKeeper/deleted/.del-ipchains_core.h~3ab28b61cde4afa2 # 2005/01/03 20:18:38-08:00 rusty@rustcorp.com.au +0 -0 # Delete: include/linux/netfilter_ipv4/ipchains_core.h # # BitKeeper/deleted/.del-compat_firewall.h~7ef67ef6a7f02b90 # 2005/01/03 20:18:38-08:00 rusty@rustcorp.com.au +0 -0 # Delete: include/linux/netfilter_ipv4/compat_firewall.h # # ChangeSet # 2005/01/03 20:18:31-08:00 rusty@rustcorp.com.au # [PATCH] netfilter: Add comment above remove_expectations in destroy_conntrack() # # I removed this code in a previous patch, and Patrick McHardy explained # what was wrong. Add a comment. # # Signed-off-by: Rusty Russell # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # net/ipv4/netfilter/ip_conntrack_core.c # 2005/01/03 15:49:16-08:00 rusty@rustcorp.com.au +4 -1 # netfilter: Add comment above remove_expectations in destroy_conntrack() # # ChangeSet # 2005/01/03 20:18:18-08:00 rusty@rustcorp.com.au # [PATCH] netfilter: Fix ip_ct_selective_cleanup(), and rename ip_ct_iterate_cleanup() # # Several places use ip_ct_selective_cleanup() as a general iterator, which it # was not intended for (it takes a const ip_conntrack *). So rename it, and # make it take a non-const argument. # # Also, it missed unconfirmed connections, which aren't in the hash table. This # introduces a potential problem for users which expect to iterate all # connections (such as the helper deletion code). So keep a linked list of # unconfirmed connections as well. # # Signed-off-by: Rusty Russell # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # net/ipv4/netfilter/ipt_MASQUERADE.c # 2005/01/03 15:49:16-08:00 rusty@rustcorp.com.au +3 -3 # netfilter: Fix ip_ct_selective_cleanup(), and rename ip_ct_iterate_cleanup() # # net/ipv4/netfilter/ip_nat_helper.c # 2005/01/03 15:49:16-08:00 rusty@rustcorp.com.au +2 -2 # netfilter: Fix ip_ct_selective_cleanup(), and rename ip_ct_iterate_cleanup() # # net/ipv4/netfilter/ip_nat_core.c # 2005/01/03 15:49:16-08:00 rusty@rustcorp.com.au +3 -3 # netfilter: Fix ip_ct_selective_cleanup(), and rename ip_ct_iterate_cleanup() # # net/ipv4/netfilter/ip_conntrack_standalone.c # 2005/01/03 15:49:16-08:00 rusty@rustcorp.com.au +3 -3 # netfilter: Fix ip_ct_selective_cleanup(), and rename ip_ct_iterate_cleanup() # # net/ipv4/netfilter/ip_conntrack_core.c # 2005/01/03 15:50:38-08:00 rusty@rustcorp.com.au +39 -15 # netfilter: Fix ip_ct_selective_cleanup(), and rename ip_ct_iterate_cleanup() # # include/linux/netfilter_ipv4/ip_conntrack.h # 2005/01/03 15:49:16-08:00 rusty@rustcorp.com.au +3 -3 # netfilter: Fix ip_ct_selective_cleanup(), and rename ip_ct_iterate_cleanup() # # ChangeSet # 2005/01/03 20:18:05-08:00 rusty@rustcorp.com.au # [PATCH] netfilter: Fix ip_conntrack_proto_sctp exit on sysctl fail # # On failure from register_sysctl_table, we return with exit 0. Oops. init and # fini should also be static. nfsim found these. # # Signed-off-by: Rusty Russell # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # net/ipv4/netfilter/ip_conntrack_proto_sctp.c # 2005/01/03 15:49:16-08:00 rusty@rustcorp.com.au +3 -2 # netfilter: Fix ip_conntrack_proto_sctp exit on sysctl fail # # ChangeSet # 2005/01/03 20:17:52-08:00 rusty@rustcorp.com.au # [PATCH] netfilter: fix return values of ipt_recent checkentry # # Peejix's nfsim test for ipt_recent, written two days ago, revealed this bugs # with ipt_recent: checkentry() returns true or false, not an error. (Maybe it # should, but that's a much larger change). Also, make hash_func() static. # # Signed-off-by: Rusty Russell # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # net/ipv4/netfilter/ipt_recent.c # 2005/01/03 15:50:37-08:00 rusty@rustcorp.com.au +9 -9 # netfilter: fix return values of ipt_recent checkentry # # ChangeSet # 2005/01/03 20:17:39-08:00 bcasavan@sgi.com # [PATCH] TCP hashes: NUMA interleaving # # Modifies the TCP ehash and TCP bhash to enable the use of vmalloc to # alleviate boottime memory allocation imbalances on NUMA systems, utilizing # flags to the alloc_large_system_hash routine in order to centralize the # enabling of this behavior. # # Signed-off-by: Brent Casavant # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # net/ipv4/tcp.c # 2005/01/03 15:49:16-08:00 bcasavan@sgi.com +29 -33 # TCP hashes: NUMA interleaving # # ChangeSet # 2005/01/03 20:17:25-08:00 bcasavan@sgi.com # [PATCH] filesystem hashes: NUMA interleaving # # The following patch modifies the dentry cache and inode cache to enable the # use of vmalloc to alleviate boottime memory allocation imbalances on NUMA # systems, utilizing flags to the alloc_large_system_hash routine in order to # centralize the enabling of this behavior. # # In general, for each hash, we check at the early allocation point whether # hash distribution is enabled, and if so we defer allocation. At the late # allocation point we perform the allocation if it was not earlier deferred. # These late allocation points are the same points utilized prior to the # addition of alloc_large_system_hash to the kernel. # # Signed-off-by: Brent Casavant # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/inode.c # 2005/01/03 15:49:16-08:00 bcasavan@sgi.com +25 -0 # filesystem hashes: NUMA interleaving # # fs/dcache.c # 2005/01/03 15:49:16-08:00 bcasavan@sgi.com +25 -0 # filesystem hashes: NUMA interleaving # # ChangeSet # 2005/01/03 20:17:12-08:00 bcasavan@sgi.com # [PATCH] alloc_large_system_hash: NUMA interleaving # # NUMA systems running current Linux kernels suffer from substantial inequities # in the amount of memory allocated from each NUMA node during boot. In # particular, several large hashes are allocated using alloc_bootmem, and as # such are allocated contiguously from a single node each. # # This becomes a problem for certain workloads that are relatively common on # big-iron HPC NUMA systems. In particular, a number of MPI and OpenMP # applications which require nearly all available processors in the system and # nearly all the memory on each node run into difficulties. Due to the uneven # memory distribution onto a few nodes, any thread on those nodes will require a # portion of its memory be allocated from remote nodes. Any access to those # memory locations will be slower than local accesses, and thereby slows down # the effective computation rate for the affected CPUs/threads. This problem is # further amplified if the application is tightly synchronized between threads # (as is often the case), as they entire job can run only at the speed of the # slowest thread. # # Additionally since these hashes are usually accessed by all CPUS in the # system, the NUMA network link on the node which hosts the hash experiences # disproportionate traffic levels, thereby reducing the memory bandwidth # available to that node's CPUs, and further penalizing performance of the # threads executed thereupon. # # As such, it is desired to find a way to distribute these large hash # allocations more evenly across NUMA nodes. Fortunately current kernels do # perform allocation interleaving for vmalloc() during boot, which provides a # stepping stone to a solution. # # This series of patches enables (but does not require) the kernel to allocate # several boot time hashes using vmalloc rather than alloc_bootmem, thereby # causing the hashes to be interleaved amongst NUMA nodes. In particular the # dentry cache, inode cache, TCP ehash, and TCP bhash have been changed to be # allocated in this manner. Due to the limited vmalloc space on architectures # such as i386, this behavior is turned on by default only for IA64 NUMA systems # (though there is no reason other interested architectures could not enable it # if desired). Non-IA64 and non-NUMA systems continue to use the existing # alloc_bootmem() allocation mechanism. A boot line parameter "hashdist" can be # set to override the default behavior. # # The following two sets of example output show the uneven distribution just # after boot, using init=/bin/sh to eliminate as much non-kernel allocation as # possible. # # Without the boot hash distribution patches: # # Nid MemTotal MemFree MemUsed (in kB) # 0 3870656 3697696 172960 # 1 3882992 3866656 16336 # 2 3883008 3866784 16224 # 3 3882992 3866464 16528 # 4 3883008 3866592 16416 # 5 3883008 3866720 16288 # 6 3882992 3342176 540816 # 7 3883008 3865440 17568 # 8 3882992 3866560 16432 # 9 3883008 3866400 16608 # 10 3882992 3866592 16400 # 11 3883008 3866400 16608 # 12 3882992 3866400 16592 # 13 3883008 3866432 16576 # 14 3883008 3866528 16480 # 15 3864768 3848256 16512 # ToT 62097440 61152096 945344 # # Notice that nodes 0 and 6 have a substantially larger memory utilization # than all other nodes. # # With the boot hash distribution patch: # # Nid MemTotal MemFree MemUsed (in kB) # 0 3870656 3789792 80864 # 1 3882992 3843776 39216 # 2 3883008 3843808 39200 # 3 3882992 3843904 39088 # 4 3883008 3827488 55520 # 5 3883008 3843712 39296 # 6 3882992 3843936 39056 # 7 3883008 3844096 38912 # 8 3882992 3843712 39280 # 9 3883008 3844000 39008 # 10 3882992 3843872 39120 # 11 3883008 3843872 39136 # 12 3882992 3843808 39184 # 13 3883008 3843936 39072 # 14 3883008 3843712 39296 # 15 3864768 3825760 39008 # ToT 62097440 61413184 684256 # # While not perfectly even, we can see that there is a substantial improvement # in the spread of memory allocated by the kernel during boot. The remaining # uneveness may be due in part to further boot time allocations that could be # addressed in a similar manner, but some difference is due to the somewhat # special nature of node 0 during boot. However the uneveness has fallen to a # much more acceptable level (at least to a level that SGI isn't concerned # about). # # The astute reader will also notice that in this example, with this patch # approximately 256 MB less memory was allocated during boot. This is due to # the size limits of a single vmalloc. More specifically, this is because the # automatically computed size of the TCP ehash exceeds the maximum size which a # single vmalloc can accomodate. However this is of little practical concern as # the vmalloc size limit simply reduces one ridiculously large allocation # (512MB) to a slightly less ridiculously large allocation (256MB). In practice # machines with large memory configurations are using the thash_entries setting # to limit the size of the TCP ehash _much_ lower than either of the # automatically computed values. Illustrative of the exceedingly large nature # of the automatically computed size, SGI currently recommends that customers # boot with thash_entries=2097152, which works out to a 32MB allocation. In any # case, setting hashdist=0 will allow for allocations in excess of vmalloc # limits, if so desired. # # Other than the vmalloc limit, great care was taken to ensure that the size of # TCP hash allocations was not altered by this patch. Due to slightly different # computation techniques between the existing TCP code and # alloc_large_system_hash (which is now utilized), some of the magic constants # in the TCP hash allocation code were changed. On all sizes of system (128MB # through 64GB) that I had access to, the patched code preserves the previous # hash size, as long as the vmalloc limit (256MB on IA64) is not encountered. # # There was concern that changing the TCP-related hashes to use vmalloc space # may adversely impact network performance. To this end the netperf set of # benchmarks was run. Some individual tests seemed to benefit slightly, some # seemed to be harmed slightly, but in all cases the average difference with and # without these patches was well within the variabilty I would see from run to # run. # # The following is the overall netperf averages (30 10 second runs each) against # an older kernel with these same patches. These tests were run over loopback # as GigE results were so inconsistent run to run both with and without these # patches that they provided no meaningful comparison that I could discern. I # used the same kernel (IA64 generic) for each run, simply varying the new # "hashdist" boot parameter to turn on or off the new allocation behavior. In # all cases the thash_entries value was manually specified as discussed # previously to eliminate any variability that might result from that size # difference. # # HP ZX1, hashdist=0 # ================== # TCP_RR = 19389 # TCP_MAERTS = 6561 # TCP_STREAM = 6590 # TCP_CC = 9483 # TCP_CRR = 8633 # # HP ZX1, hashdist=1 # ================== # TCP_RR = 19411 # TCP_MAERTS = 6559 # TCP_STREAM = 6584 # TCP_CC = 9454 # TCP_CRR = 8626 # # SGI Altix, hashdist=0 # ===================== # TCP_RR = 16871 # TCP_MAERTS = 3925 # TCP_STREAM = 4055 # TCP_CC = 8438 # TCP_CRR = 7750 # # SGI Altix, hashdist=1 # ===================== # TCP_RR = 17040 # TCP_MAERTS = 3913 # TCP_STREAM = 4044 # TCP_CC = 8367 # TCP_CRR = 7538 # # I believe the TCP_CC and TCP_CRR are the tests most sensitive to this # particular change. But again, I want to emphasize that even the differences # you see above are _well_ within the variability I saw from run to run of any # given test. # # In addition, Jose Santos at IBM has run specSFS, which has been particularly # sensitive to TLB issues, against these patches and saw no performance # degredation (differences down in the noise). # # # # This patch: # # Modifies alloc_large_system_hash to enable the use of vmalloc to alleviate # boottime allocation imbalances on NUMA systems. # # Due to limited vmalloc space on some architectures (i.e. x86), the use of # vmalloc is enabled by default only on NUMA IA64 kernels. There should be # no problem enabling this change for any other interested NUMA architecture. # # Signed-off-by: Brent Casavant # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/page_alloc.c # 2005/01/03 15:50:23-08:00 bcasavan@sgi.com +36 -9 # alloc_large_system_hash: NUMA interleaving # # include/linux/bootmem.h # 2005/01/03 15:49:15-08:00 bcasavan@sgi.com +17 -2 # alloc_large_system_hash: NUMA interleaving # # fs/inode.c # 2005/01/03 15:50:38-08:00 bcasavan@sgi.com +3 -2 # alloc_large_system_hash: NUMA interleaving # # fs/dcache.c # 2005/01/03 15:50:38-08:00 bcasavan@sgi.com +3 -2 # alloc_large_system_hash: NUMA interleaving # # Documentation/kernel-parameters.txt # 2005/01/03 15:49:15-08:00 bcasavan@sgi.com +5 -0 # alloc_large_system_hash: NUMA interleaving # # ChangeSet # 2005/01/03 20:16:59-08:00 alex.williamson@hp.com # [PATCH] collect page_states only from online cpus # # I noticed the function __read_page_state() curiously high in a q-tools # profile of a write to a software raid0 device. Seems this is because we're # checking page_states for all possible cpus and we have NR_CPUS possible # when CONFIG_HOTPLUG_CPU=y. The default config for ia64 is now NR_CPUS=512, # so on a little 8-way box, this is a significant waste of time. The patch # below updates __read_page_state() and __get_page_state() to only count # page_state info for online cpus. To keep the stats consistent, the # page_alloc notifier is updated to move page_states off of the cpu going # offline. On my profile, this dropped __read_page_state() back into the # noise and boosted block write performance by 5% (as measured by spew - # http://spew.berlios.de). # # Signed-off-by: Alex Williamson # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/page_alloc.c # 2005/01/03 15:50:39-08:00 alex.williamson@hp.com +22 -11 # collect page_states only from online cpus # # ChangeSet # 2005/01/03 20:16:46-08:00 manfred@colorfullife.com # [PATCH] slab: Add more arch overrides to control object alignment # # Add ARCH_SLAB_MINALIGN and document ARCH_KMALLOC_MINALIGN: The flags allow # the arch code to override the default minimum object aligment # (BYTES_PER_WORD). # # Signed-Off-By: Manfred Spraul # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/slab.c # 2005/01/03 15:49:15-08:00 manfred@colorfullife.com +55 -25 # slab: Add more arch overrides to control object alignment # # ChangeSet # 2005/01/03 20:16:33-08:00 akpm@osdl.org # [PATCH] do_anonymous_page() use SetPageReferenced # # mark_page_accessed() is more heavyweight than we need: the page is already # headed for the active list, so setting the software-referenced bit is # equivalent. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/memory.c # 2005/01/03 15:49:15-08:00 akpm@osdl.org +1 -1 # do_anonymous_page() use SetPageReferenced # # ChangeSet # 2005/01/03 20:16:19-08:00 miquels@cistron.nl # [PATCH] mark_page_accessed() for read()s on non-page boundaries # # When reading a (partial) page from disk using read(), the kernel only marks # the page as "accessed" if the read started at a page boundary. This means # that files that are accessed randomly at non-page boundaries (usually # database style files) will not be cached properly. # # The patch below uses the readahead state instead. If a page is read(), it # is marked as "accessed" if the previous read() was for a different page, # whatever the offset in the page. # # Testing results: # # # - Boot kernel with mem=128M # # - create a testfile of size 8 MB on a partition. Unmount/mount. # # - then generate about 10 MB/sec streaming writes # # for i in `seq 1 1000` # do # dd if=/dev/zero of=junkfile.$i bs=1M count=10 # sync # cat junkfile.$i > /dev/null # sleep 1 # done # # - use an application that reads 128 bytes 64000 times from a # random offset in the 64 MB testfile. # # 1. Linux 2.6.10-rc3 vanilla, no streaming writes: # # # time ~/rr testfile # Read 128 bytes 64000 times # ~/rr testfile 0.03s user 0.22s system 5% cpu 4.456 total # # 2. Linux 2.6.10-rc3 vanilla, streaming writes: # # # time ~/rr testfile # Read 128 bytes 64000 times # ~/rr testfile 0.03s user 0.16s system 2% cpu 7.667 total # # time ~/rr testfile # Read 128 bytes 64000 times # ~/rr testfile 0.03s user 0.37s system 1% cpu 23.294 total # # time ~/rr testfile # Read 128 bytes 64000 times # ~/rr testfile 0.02s user 0.99s system 1% cpu 1:11.52 total # # time ~/rr testfile # Read 128 bytes 64000 times # ~/rr testfile 0.03s user 0.21s system 2% cpu 10.273 total # # 3. Linux 2.6.10-rc3 with read-page-access.patch , streaming writes: # # # time ~/rr testfile # Read 128 bytes 64000 times # ~/rr testfile 0.02s user 0.21s system 3% cpu 7.634 total # # time ~/rr testfile # Read 128 bytes 64000 times # ~/rr testfile 0.04s user 0.22s system 2% cpu 9.588 total # # time ~/rr testfile # Read 128 bytes 64000 times # ~/rr testfile 0.02s user 0.12s system 24% cpu 0.563 total # # time ~/rr testfile # Read 128 bytes 64000 times # ~/rr testfile 0.03s user 0.13s system 98% cpu 0.163 total # # As expected, with the read-page-access.patch, the kernel keeps the 8 MB # testfile cached as expected, while without it, it doesn't. # # So this is useful for workloads where one smallish (wrt RAM) file is read # randomly over and over again (like heavily used database indexes), while # other I/O is going on. Plain 2.6 caches those files poorly, if the app # uses plain read(). # # Signed-Off-By: Miquel van Smoorenburg # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/readahead.c # 2005/01/03 15:49:15-08:00 miquels@cistron.nl +2 -0 # mark_page_accessed() for read()s on non-page boundaries # # mm/filemap.c # 2005/01/03 15:49:15-08:00 miquels@cistron.nl +3 -2 # mark_page_accessed() for read()s on non-page boundaries # # ChangeSet # 2005/01/03 20:16:04-08:00 haveblue@us.ibm.com # [PATCH] make sure ioremap only tests valid addresses # # When CONFIG_HIGHMEM=y, but ZONE_NORMAL isn't quite full, there is, of # course, no actual memory at *high_memory. This isn't a problem with normal # virt<->phys translations because it's never dereferenced, but # CONFIG_NONLINEAR is a bit more finicky. So, don't do virt_to_phys() to # non-existent addresses. # # Signed-off-by: Dave Hansen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/mm/ioremap.c # 2005/01/03 15:49:15-08:00 haveblue@us.ibm.com +3 -3 # make sure ioremap only tests valid addresses # # ChangeSet # 2005/01/03 20:15:51-08:00 haveblue@us.ibm.com # [PATCH] kill off highmem_start_page # # People love to do comparisons with highmem_start_page. However, where # CONFIG_HIGHMEM=y and there is no actual highmem, there's no real page at # *highmem_start_page. # # That's usually not a problem, but CONFIG_NONLINEAR is a bit more strict and # catches the bogus address tranlations. # # There are about a gillion different ways to find out of a 'struct page' is # highmem or not. Why not just check page_flags? Just use PageHighMem() # wherever there used to be a highmem_start_page comparison. Then, kill off # highmem_start_page. # # This removes more code than it adds, and gets rid of some nasty # #ifdefs in .c files. # # Signed-off-by: Dave Hansen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # net/core/dev.c # 2005/01/03 15:49:15-08:00 haveblue@us.ibm.com +1 -1 # kill off highmem_start_page # # mm/memory.c # 2005/01/03 15:50:39-08:00 haveblue@us.ibm.com +0 -2 # kill off highmem_start_page # # include/linux/highmem.h # 2005/01/03 15:49:15-08:00 haveblue@us.ibm.com +0 -2 # kill off highmem_start_page # # include/asm-sparc/highmem.h # 2005/01/03 15:49:15-08:00 haveblue@us.ibm.com +2 -2 # kill off highmem_start_page # # include/asm-ppc/highmem.h # 2005/01/03 15:49:15-08:00 haveblue@us.ibm.com +3 -3 # kill off highmem_start_page # # arch/um/kernel/mem.c # 2005/01/03 15:50:18-08:00 haveblue@us.ibm.com +0 -2 # kill off highmem_start_page # # arch/sparc/mm/init.c # 2005/01/03 15:49:15-08:00 haveblue@us.ibm.com +0 -2 # kill off highmem_start_page # # arch/sparc/mm/highmem.c # 2005/01/03 15:49:15-08:00 haveblue@us.ibm.com +1 -1 # kill off highmem_start_page # # arch/ppc/mm/init.c # 2005/01/03 15:49:15-08:00 haveblue@us.ibm.com +0 -1 # kill off highmem_start_page # # arch/mips/mm/init.c # 2005/01/03 15:49:15-08:00 haveblue@us.ibm.com +0 -1 # kill off highmem_start_page # # arch/mips/mm/highmem.c # 2005/01/03 15:49:15-08:00 haveblue@us.ibm.com +3 -3 # kill off highmem_start_page # # arch/i386/mm/pageattr.c # 2005/01/03 15:49:15-08:00 haveblue@us.ibm.com +1 -4 # kill off highmem_start_page # # arch/i386/mm/init.c # 2005/01/03 15:50:32-08:00 haveblue@us.ibm.com +0 -1 # kill off highmem_start_page # # arch/i386/mm/highmem.c # 2005/01/03 15:49:15-08:00 haveblue@us.ibm.com +3 -3 # kill off highmem_start_page # # arch/i386/mm/discontig.c # 2005/01/03 15:49:15-08:00 haveblue@us.ibm.com +0 -5 # kill off highmem_start_page # # ChangeSet # 2005/01/03 20:15:37-08:00 Andries.Brouwer@cwi.nl # [PATCH] mm: overcommit updates # # Alan made overcommit mode 2 and it doesnt work at all. A process passing # the limit often does so at a moment of stack extension, and is killed by a # segfault, not better than being OOM-killed. # # Another problem is that close to the edge no other processes can be # started, so that a sysadmin has problems logging in and investigating. # # Below a patch that does 3 things: # # (1) It reserves a reasonable amount of virtual stack space (amount # randomly chosen, no guarantees given) when the process is started, so # that the common utilities will not be killed by segfault on stack # extension. # # (2) It reserves a reasonable amount of virtual memory for root, so that # root can do things when the system is out-of-memory # # (3) It limits a single process to 97% of what is left, so that also an # ordinary user is able to use getty, login, bash, ps, kill and similar # things when one of her processes got out of control. # # Since the current overcommit mode 2 is not really useful, I did not give # this a new number. # # The patch is just for playing, not to be applied by Linus. But, Andrew, I # hope that you would be willing to put this in -mm so that people can # experiment. Of course it only does something if one sets overcommit mode # to 2. # # The past month I have pressured people asking for feedback, and now have # about a dozen reports, mostly positive, one very positive. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # security/dummy.c # 2005/01/03 15:49:14-08:00 Andries.Brouwer@cwi.nl +8 -0 # mm: overcommit updates # # security/commoncap.c # 2005/01/03 15:49:14-08:00 Andries.Brouwer@cwi.nl +8 -0 # mm: overcommit updates # # fs/exec.c # 2005/01/03 15:49:14-08:00 Andries.Brouwer@cwi.nl +11 -8 # mm: overcommit updates # # ChangeSet # 2005/01/03 20:15:21-08:00 andrea@novell.com # [PATCH] mempolicy optimisation # # Some optimizations in mempolicy.c (like to avoid rebalancing the tree while # destroying it and by breaking loops early and not checking for invariant # conditions in the replace operation). # # Signed-off-by: Andrea Arcangeli # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/mempolicy.c # 2005/01/03 15:49:14-08:00 andrea@novell.com +4 -6 # mempolicy optimisation # # ChangeSet # 2005/01/03 20:15:08-08:00 linuxram@us.ibm.com # [PATCH] Simplified readahead congestion control # # Reinstate the feature wherein readahead will be bypassed if the underlying # queue is read-congersted. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/readahead.c # 2005/01/03 15:50:39-08:00 linuxram@us.ibm.com +92 -32 # Simplified readahead congestion control # # ChangeSet # 2005/01/03 20:14:55-08:00 slpratt@austin.ibm.com # [PATCH] Simplified readahead # # With Ram Pai # # - request size is now passed into page_cache_readahead. This allows the # removal of the size averaging code in the current readahead logic. # # - readahead rampup is now faster (especially for larger request sizes) # # - No longer "slow read path". Readahead is turn off at first random access, # turned back on at first sequential access. # # - Code now handles thrashing, slowly reducing readahead window until # thrashing stops, or min size reached. # # - Returned to old behavior where first access is assumed sequential only if # at offset 0. # # - designed to handle larger (1M or above) window sizes efficiently # # # Benchmark results: # # machine 1: 8 way pentiumIV 1GB memory, tests run to 36GB SCSI disk # (Similar results were seen on a 1 way 866Mhz box with IDE disk.) # # TioBench: # # tiobench.pl --dir /mnt/tmp --block 4096 --size 4000 --numruns 2 --threads 1(4,16,64) # # 4k request size sequential read results in MB/sec # # Threads 2.6.9 w/patches %diff diff # # mm/readahead.c # 2005/01/03 15:50:40-08:00 slpratt@austin.ibm.com +181 -240 # Simplified readahead # # mm/filemap.c # 2005/01/03 15:50:39-08:00 slpratt@austin.ibm.com +15 -4 # Simplified readahead # # include/linux/mm.h # 2005/01/03 15:49:14-08:00 slpratt@austin.ibm.com +5 -2 # Simplified readahead # # include/linux/fs.h # 2005/01/03 15:49:14-08:00 slpratt@austin.ibm.com +4 -3 # Simplified readahead # # ChangeSet # 2005/01/03 20:14:42-08:00 nickpiggin@yahoo.com.au # [PATCH] mm: teach kswapd about higher order areas # # Teach kswapd to free memory on behalf of higher order allocators. This # could be important for higher order atomic allocations because they # otherwise have no means to free the memory themselves. # # Signed-off-by: Nick Piggin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/vmscan.c # 2005/01/03 15:49:14-08:00 nickpiggin@yahoo.com.au +31 -8 # mm: teach kswapd about higher order areas # # mm/page_alloc.c # 2005/01/03 15:50:39-08:00 nickpiggin@yahoo.com.au +2 -1 # mm: teach kswapd about higher order areas # # include/linux/mmzone.h # 2005/01/03 15:49:14-08:00 nickpiggin@yahoo.com.au +3 -2 # mm: teach kswapd about higher order areas # # ChangeSet # 2005/01/03 20:14:29-08:00 nickpiggin@yahoo.com.au # [PATCH] mm: higher order watermarks # # Move the watermark checking code into a single function. Extend it to # account for the order of the allocation and the number of free pages that # could satisfy such a request. # # From: Marcelo Tosatti # # Fix typo in Nick's kswapd-high-order awareness patch # # Signed-off-by: Nick Piggin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/page_alloc.c # 2005/01/03 15:50:40-08:00 nickpiggin@yahoo.com.au +39 -19 # mm: higher order watermarks # # include/linux/mmzone.h # 2005/01/03 15:50:40-08:00 nickpiggin@yahoo.com.au +2 -0 # mm: higher order watermarks # # ChangeSet # 2005/01/03 20:14:14-08:00 nickpiggin@yahoo.com.au # [PATCH] mm: keep count of free areas # # Keep track of the number of free pages of each order in the buddy allocator. # # Signed-off-by: Nick Piggin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/page_alloc.c # 2005/01/03 15:50:40-08:00 nickpiggin@yahoo.com.au +9 -14 # mm: keep count of free areas # # include/linux/mmzone.h # 2005/01/03 15:50:40-08:00 nickpiggin@yahoo.com.au +1 -0 # mm: keep count of free areas # # ChangeSet # 2005/01/03 20:14:02-08:00 rjmx@rjmx.net # [PATCH] CS461x gameport code isn't being included in build # # With Cal Peake # # I've found a typo in drivers/input/gameport/Makefile in kernel 2.6.9 which # effectively prevents the CS461x gameport code from being included. # # Signed-off-by: Ron Murray # Signed-off-by: Cal Peake # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/input/gameport/Makefile # 2005/01/03 15:49:13-08:00 rjmx@rjmx.net +1 -1 # CS461x gameport code isn't being included in build # # ChangeSet # 2005/01/03 20:13:49-08:00 akpm@osdl.org # [PATCH] vmscan: total_scanned fix # # We haven't been incrementing local variable total_scanned since the # scan_control stuff went in. That broke kswapd throttling. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/vmscan.c # 2005/01/03 15:50:40-08:00 akpm@osdl.org +1 -0 # vmscan: total_scanned fix # # ChangeSet # 2005/01/03 20:13:31-08:00 jack@suse.cz # [PATCH] Allow disabling quota messages to console # # Allow disabling of quota messages to console (they can disturb other # output). # # Signed-off-by: Jan Kara # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/sysctl.h # 2005/01/03 15:50:31-08:00 jack@suse.cz +2 -1 # Allow disabling quota messages to console # # fs/dquot.c # 2005/01/03 15:49:13-08:00 jack@suse.cz +14 -0 # Allow disabling quota messages to console # # ChangeSet # 2005/01/03 20:13:18-08:00 jack@suse.cz # [PATCH] Fix of quota deadlock on pagelock: reiserfs # # Implement quota journaling and quota reading and writing functions for # reiserfs. Solves also several other deadlocks possible for reiserfs due to # the lock inversion on journal_begin and quota locks. # # From: Vladimir Saveliev # # When CONFIG_QUOTA is defined reiserfs's finish_unfinished sets and clears # MS_ACTIVE bit in s_flags field of super block. If that bit was set already # it should not be set. # # Signed-off-by: Jan Kara # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/reiserfs_fs_sb.h # 2005/01/03 15:49:13-08:00 jack@suse.cz +4 -0 # Fix of quota deadlock on pagelock: reiserfs # # include/linux/reiserfs_fs.h # 2005/01/03 15:49:13-08:00 jack@suse.cz +16 -0 # Fix of quota deadlock on pagelock: reiserfs # # fs/reiserfs/super.c # 2005/01/03 15:49:13-08:00 jack@suse.cz +410 -5 # Fix of quota deadlock on pagelock: reiserfs # # fs/reiserfs/namei.c # 2005/01/03 15:49:13-08:00 jack@suse.cz +27 -33 # Fix of quota deadlock on pagelock: reiserfs # # fs/reiserfs/inode.c # 2005/01/03 15:49:13-08:00 jack@suse.cz +37 -17 # Fix of quota deadlock on pagelock: reiserfs # # fs/reiserfs/file.c # 2005/01/03 15:49:13-08:00 jack@suse.cz +3 -3 # Fix of quota deadlock on pagelock: reiserfs # # ChangeSet # 2005/01/03 20:13:03-08:00 jack@suse.cz # [PATCH] Fix of quota deadlock on pagelock: ext3 # # Implementation of quota reading and writing functions for ext3. # # Signed-off-by: Jan Kara # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/ext3_jbd.h # 2005/01/03 15:49:13-08:00 jack@suse.cz +2 -0 # Fix of quota deadlock on pagelock: ext3 # # fs/ext3/super.c # 2005/01/03 15:49:13-08:00 jack@suse.cz +132 -31 # Fix of quota deadlock on pagelock: ext3 # # fs/ext3/inode.c # 2005/01/03 15:49:13-08:00 jack@suse.cz +1 -1 # Fix of quota deadlock on pagelock: ext3 # # ChangeSet # 2005/01/03 20:12:49-08:00 jack@suse.cz # [PATCH] Fix of quota deadlock on pagelock: ext2 # # Implementation of quota reading and writing functions for ext2. # # Signed-off-by: Jan Kara # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/ext2/super.c # 2005/01/03 15:49:13-08:00 jack@suse.cz +114 -0 # Fix of quota deadlock on pagelock: ext2 # # fs/ext2/inode.c # 2005/01/03 15:49:13-08:00 jack@suse.cz +1 -1 # Fix of quota deadlock on pagelock: ext2 # # fs/ext2/ext2.h # 2005/01/03 15:49:13-08:00 jack@suse.cz +1 -0 # Fix of quota deadlock on pagelock: ext2 # # ChangeSet # 2005/01/03 20:12:36-08:00 jack@suse.cz # [PATCH] quota umount race fix # # Fix possible races between umount and quota on/off. # # Finally I decided to take a reference to vfsmount during vfs_quota_on() and # to drop it after the final cleanup in the vfs_quota_off(). This way we # should be all the time guarded against umount. This way was protected also # the old code which used filp_open() for opening quota files. I was also # thinking about other ways of protection but there would be always a window # (provided I don't want to play much with namespace locks) where # vfs_quota_on() could be called while umount() is in progress resulting in # the "Busy inodes after unmount" messages... # # Get a reference to vfsmount during quotaon() so that we are guarded against # umount (as was the old code using filp_open()). # # Signed-off-by: Jan Kara # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/quotaops.h # 2005/01/03 15:49:13-08:00 jack@suse.cz +1 -1 # quota umount race fix # # include/linux/quota.h # 2005/01/03 15:49:13-08:00 jack@suse.cz +1 -0 # quota umount race fix # # fs/dquot.c # 2005/01/03 15:50:41-08:00 jack@suse.cz +33 -12 # quota umount race fix # # ChangeSet # 2005/01/03 20:12:24-08:00 jack@suse.cz # [PATCH] Fix of quota deadlock on pagelock: quota core # # The four patches in this series fix deadlocks with quotas of pagelock (the # problem was lock inversion on PageLock and transaction start - quota code # needed to first start a transaction and then write the data which subsequently # needed acquisition of PageLock while the standard ordering - PageLock first # and transaction start later - was used e.g. by pdflush). They implement a # new way of quota access to disk: Every filesystem that would like to implement # quotas now has to provide quota_read() and quota_write() functions. These # functions must obey quota lock ordering (in particular they should not take # PageLock inside a transaction). # # The first patch implements the changes in the quota core, the other three # patches implement needed functions in ext2, ext3 and reiserfs. The patch for # reiserfs also fixes several other lock inversion problems (similar as ext3 # had) and implements the journaled quota functionality (which comes almost for # free after the locking fixes...). # # The quota core patch makes quota support in other filesystems (except XFS # which implements everything on its own ;)) unfunctional (quotaon() will refuse # to turn on quotas on them). When the patches get reasonable wide testing and # it will seem that no major changes will be needed I can make fixes also for # the other filesystems (JFS, UDF, UFS). # # This patch: # # The patch implements the new way of quota io in the quota core. Every # filesystem wanting to support quotas has to provide functions quota_read() # and quota_write() obeying quota locking rules. As the writes and reads # bypass the pagecache there is some ugly stuff ensuring that userspace can # see all the data after quotaoff() (or Q_SYNC quotactl). In future I plan # to make quota files inaccessible from userspace (with the exception of # quotacheck(8) which will take care about the cache flushing and such stuff # itself) so that this synchronization stuff can be removed... # # The rewrite of the quota core. Quota uses the filesystem read() and write() # functions no more to avoid possible deadlocks on PageLock. From now on every # filesystem supporting quotas must provide functions quota_read() and # quota_write() which obey the quota locking rules (e.g. they cannot acquire the # PageLock). # # Signed-off-by: Jan Kara # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # security/selinux/hooks.c # 2005/01/03 15:49:12-08:00 jack@suse.cz +2 -2 # Fix of quota deadlock on pagelock: quota core # # security/dummy.c # 2005/01/03 15:50:40-08:00 jack@suse.cz +1 -1 # Fix of quota deadlock on pagelock: quota core # # include/linux/security.h # 2005/01/03 15:49:12-08:00 jack@suse.cz +4 -4 # Fix of quota deadlock on pagelock: quota core # # include/linux/quota.h # 2005/01/03 15:50:42-08:00 jack@suse.cz +1 -1 # Fix of quota deadlock on pagelock: quota core # # include/linux/fs.h # 2005/01/03 15:50:40-08:00 jack@suse.cz +3 -0 # Fix of quota deadlock on pagelock: quota core # # fs/quota_v2.c # 2005/01/03 15:49:12-08:00 jack@suse.cz +101 -126 # Fix of quota deadlock on pagelock: quota core # # fs/quota_v1.c # 2005/01/03 15:49:12-08:00 jack@suse.cz +12 -50 # Fix of quota deadlock on pagelock: quota core # # fs/quota.c # 2005/01/03 15:49:12-08:00 jack@suse.cz +42 -3 # Fix of quota deadlock on pagelock: quota core # # fs/dquot.c # 2005/01/03 15:50:42-08:00 jack@suse.cz +82 -81 # Fix of quota deadlock on pagelock: quota core # # ChangeSet # 2005/01/03 20:12:10-08:00 jack@suse.cz # [PATCH] Fix reiserfs quota debug messages # # Attached patch fixes debug messages of quota code in reiserfs so that they # compile. Chris Mason agreed the patch. # # Signed-off-by: Jan Kara # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/reiserfs/stree.c # 2005/01/03 15:49:12-08:00 jack@suse.cz +7 -7 # Fix reiserfs quota debug messages # # fs/reiserfs/bitmap.c # 2005/01/03 15:49:12-08:00 jack@suse.cz +4 -4 # Fix reiserfs quota debug messages # # ChangeSet # 2005/01/03 20:11:57-08:00 jack@suse.cz # [PATCH] Expose reiserfs_sync_fs() # # Attached patch exposes reiserfs_sync_fs(). This call is needed by the new # quota code to write data to disk on quotaoff so that userspace can see them # afterwards. Chris Mason agrees with the patch. # # Make reiserfs provide the sync_fs() function so that the quota code # has a way to reliably force a transaction to disk. # # Signed-off-by: Jan Kara # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/reiserfs/super.c # 2005/01/03 15:50:41-08:00 jack@suse.cz +4 -2 # Expose reiserfs_sync_fs() # # ChangeSet # 2005/01/03 22:48:10+00:00 mzzhgg@de.rmk.(none) # [SERIAL] support for another Rockwell PNP modem # # From: Lennart Poettering # # Trivial patch against Linux 2.6.10 which adds PNP support for a # certain kind of Rockwell 28.8/ISA modems. # # drivers/serial/8250_pnp.c # 2005/01/03 22:44:47+00:00 mzzhgg@de.rmk.(none) +2 -0 # [PATCH] support for another Rockwell PNP modem # # ChangeSet # 2005/01/03 18:56:59+00:00 rmk@flint.arm.linux.org.uk # [MMC] Remove deprecated data->req # # Since all users of this have now been eliminated, we can eliminate # the element itself. MMC host drivers now operate only on the # scatter lists passed to them, rather than needing knowledge of # block devices. # # Signed-off-by: Russell King # # include/linux/mmc/mmc.h # 2005/01/03 18:53:11+00:00 rmk@flint.arm.linux.org.uk +0 -1 # Remove req element - it's deprecated. # # drivers/mmc/mmc_block.c # 2005/01/03 18:53:11+00:00 rmk@flint.arm.linux.org.uk +0 -1 # Remove assignment of data->req - this element is deprecated. # # ChangeSet # 2005/01/03 18:37:35+00:00 drzeus-list@cx.rmk.(none) # [MMC] Fix warning in wbsd # # From: Pierre Ossman # # Cleanup that fixes a warning in the wbsd module. # # drivers/mmc/wbsd.c # 2005/01/03 18:33:55+00:00 drzeus-list@cx.rmk.(none) +0 -2 # [PATCH] Fix warning in wbsd # # ChangeSet # 2005/01/03 18:28:00+00:00 rmk@flint.arm.linux.org.uk # [ARM] Fix some pointer/integer conversion warnings for RiscPC. # # Signed-off-by: Russell King # # include/asm-arm/arch-rpc/io.h # 2005/01/03 18:24:20+00:00 rmk@flint.arm.linux.org.uk +11 -9 # Fix implicit pointer/integer conversion warnings. # # ChangeSet # 2005/01/03 18:07:07+00:00 rmk@flint.arm.linux.org.uk # [ARm] Silence a couple of compiler warnings. # # Signed-off-by: Russell King # # arch/arm/mach-integrator/time.c # 2005/01/03 18:03:45+00:00 rmk@flint.arm.linux.org.uk +2 -0 # Add asm/mach/time.h to silence a couple of compiler warnings. # # ChangeSet # 2005/01/03 17:02:08+00:00 Liam.Girdwood@com.rmk.(none) # [ARM PATCH] 2342/1: Support PXA SSP configuration changes when port is open # # Patch from Liam Girdwood # # This patch allows the PXA SSP port configuration to be changed without # the need to close the port. # # Signed-off-by: Liam Girdwood # Signed-off-by: Russell King # # include/asm-arm/arch-pxa/ssp.h # 2005/01/03 14:00:31+00:00 Liam.Girdwood@com.rmk.(none) +2 -2 # [PATCH] 2342/1: Support PXA SSP configuration changes when port is open # # arch/arm/mach-pxa/ssp.c # 2005/01/03 16:36:03+00:00 Liam.Girdwood@com.rmk.(none) +57 -13 # [PATCH] 2342/1: Support PXA SSP configuration changes when port is open # # ChangeSet # 2005/01/03 16:33:30+00:00 rmk@flint.arm.linux.org.uk # [ARM] Swap DOMAIN_USER and DOMAIN_KERNEL indicies # # This changes kernel domains to use domain 0 rather than domain 1, # in preparation to supporting supersection mappings. # # Signed-off-by: Russell King # # include/asm-arm/domain.h # 2005/01/03 16:29:47+00:00 rmk@flint.arm.linux.org.uk +5 -5 # Swap DOMAIN_USER and DOMAIN_KERNEL indicies. # # ChangeSet # 2005/01/03 16:13:30+00:00 Liam.Girdwood@com.rmk.(none) # [ARM PATCH] 2340/1: Added PXA27x SSP port 3 to kernel io address range # # Patch from Liam Girdwood # # This patch adds the PXA27x SSP port 3 configuration register space (Phys # 0x41900000) to the kernel memory table. # # Signed-off-by: Liam Girdwood # Signed-off-by: Russell King # # arch/arm/mach-pxa/generic.c # 2004/12/17 12:44:02+00:00 Liam.Girdwood@com.rmk.(none) +1 -1 # [PATCH] 2340/1: Added PXA27x SSP port 3 to kernel io address range # # ChangeSet # 2005/01/03 14:13:22+01:00 dtor_core@ameritech.net # Input: i8042 - fix "debug" parameter sysfs permissions. # # Signed-off-by: Dmitry Torokhov # Signed-off-by: Vojtech Pavlik # # drivers/input/serio/i8042.c # 2005/01/03 14:11:49+01:00 dtor_core@ameritech.net +1 -1 # Input: i8042 - fix "debug" parameter sysfs permissions. # # Signed-off-by: Dmitry Torokhov # Signed-off-by: Vojtech Pavlik # # ChangeSet # 2005/01/03 13:15:38+01:00 vojtech@suse.cz # Merge suse.cz:/home/vojtech/bk/linus into suse.cz:/home/vojtech/bk/input # # Documentation/kernel-parameters.txt # 2005/01/03 13:15:35+01:00 vojtech@suse.cz +0 -0 # Auto merged # # ChangeSet # 2005/01/02 17:51:04-08:00 nickpiggin@yahoo.com.au # [PATCH] ia64 4-level pgtable fix # # Fix a 4-level page table bug that slipped through (introduced by me, # not Andi). # # Compiles and boots on ia64 and 2-level i386. # # Signed-off-by: Nick Piggin # Signed-off-by: Linus Torvalds # # mm/memory.c # 2005/01/02 16:40:56-08:00 nickpiggin@yahoo.com.au +2 -2 # ia64 4-level pgtable fix # # include/asm-ia64/pgtable.h # 2005/01/02 16:45:04-08:00 nickpiggin@yahoo.com.au +1 -1 # ia64 4-level pgtable fix # # ChangeSet # 2005/01/02 17:49:03-08:00 torvalds@evo.osdl.org # x86 single-step: fix up comments and cleanup. # # Pretty much all the TF-related comments were stale, and # had been for a long time. Fix them up, clean up code. # # arch/i386/kernel/traps.c # 2005/01/02 17:48:53-08:00 torvalds@evo.osdl.org +11 -15 # x86 single-step: fix up comments and cleanup. # # Pretty much all the TF-related comments were stale, and # had been for a long time. Fix them up, clean up code. # # ChangeSet # 2005/01/02 17:17:29-08:00 torvalds@ppc970.osdl.org # x86 ptrace: remove long stale (and bitrotted) test for # PT_DTRACE without PT_PTRACED. # # Long ago, the "D" in PT_DTRACE meant "Delayed", and it was used # as a flag to mark that we had ptrace'd the process but no longer # did so. That hasn't been true in a while now, and the flag should # probably be renamed, but in the meantime the test for PT_PTRACED # being cleared had been corrupted into something totally nonsensical. # # Pointed out by Andi Kleen. # # arch/i386/kernel/traps.c # 2005/01/02 17:17:15-08:00 torvalds@ppc970.osdl.org +0 -2 # x86 ptrace: remove long stale (and bitrotted) test for # PT_DTRACE without PT_PTRACED. # # Long ago, the "D" in PT_DTRACE meant "Delayed", and it was used # as a flag to mark that we had ptrace'd the process but no longer # did so. That hasn't been true in a while now, and the flag should # probably be renamed, but in the meantime the test for PT_PTRACED # being cleared had been corrupted into something totally nonsensical. # # Pointed out by Andi Kleen. # # ChangeSet # 2005/01/02 20:27:25+00:00 rmk@flint.arm.linux.org.uk # [MMC] Fix UNSTUFF_BITS # # Quieten down compiler warnings, and fix an off-by-one bug when # deciding whether to include the next word. # # drivers/mmc/mmc.c # 2005/01/02 20:24:16+00:00 rmk@flint.arm.linux.org.uk +4 -3 # Quieten compiler warnings. # Fix off-by-one bug when deciding whether to include the next word. # # ChangeSet # 2005/01/02 21:17:55+01:00 kaos@ocs.com.au # kallsyms: Avoid kallsyms corner case on _etext and _einittext # # Avoid kallsyms corner case on _etext and _einittext with # CONFIG_KALLSYMS_ALL=n. # # Signed-off-by: Keith Owens # Signed-off-by: Sam Ravnborg # # scripts/kallsyms.c # 2005/01/01 11:22:13+01:00 kaos@ocs.com.au +9 -0 # kallsyms: Avoid kallsyms corner case on _etext and _einittext # # ChangeSet # 2005/01/02 11:45:13-08:00 torvalds@evo.osdl.org # acpi video device enumeration: fix incorrect device list allocation # # It didn't allocate space for the final terminating entry, # which caused it to overwrite the next slab entry, which in turn # sometimes ended up being a slab array cache pointer. End result: # total slab cache corruption at a random time afterwards. Very # nasty. # # drivers/acpi/video.c # 2005/01/02 11:45:03-08:00 torvalds@evo.osdl.org +1 -1 # acpi video device enumeration: fix incorrect device list allocation # # It didn't allocate space for the final terminating entry, # which caused it to overwrite the next slab entry, which in turn # sometimes ended up being a slab array cache pointer. End result: # total slab cache corruption at a random time afterwards. Very # nasty. # # ChangeSet # 2005/01/02 10:49:42-08:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] diskonchip missing iomem annotations # # some trivial iomem annotations were still missing # # Signed-off-by: Al Viro # Signed-off-by: Linus Torvalds # # include/linux/mtd/doc2000.h # 2004/12/29 12:36:39-08:00 viro@parcelfarce.linux.theplanet.co.uk +2 -2 # diskonchip missing iomem annotations # # drivers/mtd/nand/diskonchip.c # 2004/12/29 12:36:39-08:00 viro@parcelfarce.linux.theplanet.co.uk +2 -2 # diskonchip missing iomem annotations # # drivers/mtd/devices/docprobe.c # 2004/12/29 12:36:39-08:00 viro@parcelfarce.linux.theplanet.co.uk +8 -8 # diskonchip missing iomem annotations # # drivers/mtd/devices/doc2001plus.c # 2004/12/29 12:36:39-08:00 viro@parcelfarce.linux.theplanet.co.uk +3 -3 # diskonchip missing iomem annotations # # drivers/mtd/devices/doc2001.c # 2004/12/29 12:36:39-08:00 viro@parcelfarce.linux.theplanet.co.uk +3 -3 # diskonchip missing iomem annotations # # drivers/mtd/devices/doc2000.c # 2004/12/29 12:36:39-08:00 viro@parcelfarce.linux.theplanet.co.uk +4 -4 # diskonchip missing iomem annotations # # ChangeSet # 2005/01/02 10:49:27-08:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] pc300 portability fixes # # local variable used to store flags after spin_lock_irqsave() should be # unsigned long, not u32. That should complete the 64bit cleanups in # there. # # Signed-off-by: Al Viro # Signed-off-by: Linus Torvalds # # drivers/net/wan/pc300_drv.c # 2004/12/29 11:25:16-08:00 viro@parcelfarce.linux.theplanet.co.uk +5 -5 # pc300 portability fixes # # ChangeSet # 2005/01/02 10:49:14-08:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] ppc uaccess annotations # # - get_user() __gu_val should be unsigned long (same as with i386 patch) # - __copy_to_user() et.al. didn't have proper type checking # - documented the casts in __copy_tofrom_user() calls with __force. # # Signed-off-by: Al Viro # Signed-off-by: Linus Torvalds # # include/asm-ppc/uaccess.h # 2004/12/29 11:25:16-08:00 viro@parcelfarce.linux.theplanet.co.uk +18 -10 # ppc uaccess annotations # # ChangeSet # 2005/01/02 10:47:03-08:00 rusty@rustcorp.com.au # [PATCH] Fix cleanup path when sysctl registration fails # # nfsim gains sysctl support, and sure enough, --failtest uncovered an # unregister when the registration had failed. # # Signed-off-by: Linus Torvalds # # net/ipv4/netfilter/ip_conntrack_standalone.c # 2004/12/30 00:18:29-08:00 rusty@rustcorp.com.au +3 -1 # Fix cleanup path when sysctl registration fails # # ChangeSet # 2005/01/02 10:46:04-08:00 rusty@rustcorp.com.au # [PATCH] Fix proc removal in ip_conntrack_standalone # # Someone thought it would be clever if proc code ignores removal of # non-existent entries. Hence, we missed that /proc/net/stat/ip_conntrack # is never removed on module removal or init failure. # # Found by nfsim. # # Signed-off-by: Linus Torvalds # # net/ipv4/netfilter/ip_conntrack_standalone.c # 2004/12/29 22:39:53-08:00 rusty@rustcorp.com.au +2 -2 # Fix proc removal in ip_conntrack_standalone # # ChangeSet # 2005/01/02 09:49:29-08:00 rddunlap@osdl.org # [PATCH] parport_pc: don't mix module parameter styles # # Somehow parport_pc.c ended up with mixed old-style and new-style module # parameters, but mixing them is not allowed. # # Use module_param() instead of MODULE_PARM() -- cannot be mixed. # # Signed-off-by: Randy Dunlap # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/parport/parport_pc.c # 2005/01/02 01:37:36-08:00 rddunlap@osdl.org +2 -2 # parport_pc: don't mix module parameter styles # # ChangeSet # 2005/01/02 09:49:16-08:00 wli@holomorphy.com # [PATCH] sparc32: fix blank screen problem in cg6.c # # Although the CG6 framebuffer is detected and initialized, without this # patch all it displays is a blank screen. Tested on an Ultra 1 with a # TGX+. # # Originally from Bob Breuer for the CG14. # # Signed-off-by: Adam Kropelin # Acked-by: William Irwin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/video/cg6.c # 2005/01/02 01:37:36-08:00 wli@holomorphy.com +4 -0 # sparc32: fix blank screen problem in cg6.c # # ChangeSet # 2005/01/02 09:49:03-08:00 wli@holomorphy.com # [PATCH] sparc32: remove conflicting definition of _exit() # # sparc32 had a conflicting _exit, removed the line from asm- # sparc/unistd.h. This is the same change that DaveM made to sparc64 here: # http://linux.bkbits.net:8080/linux-2.6/diffs/include/asm- # sparc64/unistd.h@1.33 # # Warning was: # In file included from include/linux/unistd.h:9, # from init/main.c:45: # include/asm/unistd.h:489: warning: conflicting types for built-in # function '_exit' # # Signed-off-by: Tom 'spot' Callaway # Acked-by: William Irwin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-sparc/unistd.h # 2005/01/02 01:37:36-08:00 wli@holomorphy.com +0 -1 # sparc32: remove conflicting definition of _exit() # # ChangeSet # 2005/01/02 09:48:52-08:00 wli@holomorphy.com # [PATCH] sparc32: fix incomplete irqreturn_t sweep in include/asm-sparc/floppy.h # # Squelch the floppy compile warning: # # include/asm/floppy.h: In function `sun_fd_request_irq': # include/asm/floppy.h:276: warning: passing arg 2 of `request_fast_irq' # from incompatible pointer type # # Signed-off-by: Tom 'spot' Callaway # Acked-by: William Irwin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-sparc/floppy.h # 2005/01/02 01:37:36-08:00 wli@holomorphy.com +1 -1 # sparc32: fix incomplete irqreturn_t sweep in include/asm-sparc/floppy.h # # ChangeSet # 2005/01/02 09:48:39-08:00 wli@holomorphy.com # [PATCH] sparc32: fix missing handling for VM fault codes # # Fix missing cases for vm fault codes in sparc32 fault handling, and # convert the entire file to using symbolic fault codes. This fixes a # latent bug where an allocation failure returns to the kernel instead of # delivering an error as expected. # # Signed-off-by: William Irwin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/sparc/mm/fault.c # 2005/01/02 01:37:36-08:00 wli@holomorphy.com +12 -8 # sparc32: fix missing handling for VM fault codes # # ChangeSet # 2005/01/02 09:48:26-08:00 wli@holomorphy.com # [PATCH] sparc32: fix sbus rtc warnings # # Add a sparc #ifdef to drivers/char/rtc.c and iomem annotations to # drivers/sbus/char/rtc.c # # Signed-off-by: William Irwin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/sbus/char/rtc.c # 2005/01/02 01:37:35-08:00 wli@holomorphy.com +3 -2 # sparc32: fix sbus rtc warnings # # drivers/char/rtc.c # 2005/01/02 01:37:35-08:00 wli@holomorphy.com +1 -1 # sparc32: fix sbus rtc warnings # # ChangeSet # 2005/01/02 09:48:13-08:00 wli@holomorphy.com # [PATCH] sparc32: unused variable in sunsu.c # # serio is unused except in the #ifdef CONFIG_SERIO paths. To kill the # warning, make the declaration conditional on the same. # # Signed-off-by: William Irwin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/serial/sunsu.c # 2005/01/02 01:37:35-08:00 wli@holomorphy.com +2 -0 # sparc32: unused variable in sunsu.c # # ChangeSet # 2005/01/02 09:48:00-08:00 wli@holomorphy.com # [PATCH] sparc32: arch/sparc/kernel/pcic.c iomem annotations # # arch/sparc/kernel/pcic.c trips numerous warnings due to iomem # annotations. This patch adds various needed iomem annotations. # # Signed-off-by: William Irwin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-sparc/pcic.h # 2005/01/02 01:37:35-08:00 wli@holomorphy.com +3 -3 # sparc32: arch/sparc/kernel/pcic.c iomem annotations # # include/asm-sparc/io.h # 2005/01/02 01:37:35-08:00 wli@holomorphy.com +6 -6 # sparc32: arch/sparc/kernel/pcic.c iomem annotations # # arch/sparc/kernel/pcic.c # 2005/01/02 01:37:35-08:00 wli@holomorphy.com +10 -11 # sparc32: arch/sparc/kernel/pcic.c iomem annotations # # ChangeSet # 2005/01/02 09:47:47-08:00 wli@holomorphy.com # [PATCH] sparc32: fix missing return value for svr4_setcontext() # # sparc32 svr4_setcontext() needs to return a value in the SIGSEGV path. # # Signed-off-by: William Irwin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/sparc/kernel/signal.c # 2005/01/02 01:37:35-08:00 wli@holomorphy.com +1 -0 # sparc32: fix missing return value for svr4_setcontext() # # ChangeSet # 2005/01/02 09:47:34-08:00 wli@holomorphy.com # [PATCH] sparc32: fix initrd memcpy problem # # The latter hunk of the forwarded patch has already been applied, so # please apply the patch as it appears in the un-forwarded part. I've # taken some liberties in adding the Acked/Signed-off lines in what I # hope is an agreeable way. # # On Sun, Nov 14, 2004 at 11:16:40PM -0500, Jurij Smakov wrote: # > As a followup: I have tried fiddling more with the memcpy() routine. # > Insight from Rob Radez and comments in arch/sparc/lib/blockops.S suggest, # > that __copy_1page assumes that the memory regions copied are aligned on a # > double-word boundary. I have checked, that in the cramfs case it wasn't # > true, the destination was not aligned on the double-word boundary. So, I # > have implemented a simple workaround (see patch below), which together # > with Bob Breuer's iommu.c fix [0] made 2.6.8 kernel to boot on my # > machine (SS10 with Ross Hypersparc CPU)! I also confirm, that adding the # > suggested fix to the srmmu.c also [1] breaks sunlance on my machine. With # > that "fix" the line 'eth0: Memory error, status 88c3, addr 3713ba' is # > displayed continuously during boot, when it comes to configuring network # > interfaces. The successful patch for me is: # # Acked-by: William Irwin # Acked-by: Dave Miller # Signed-off-by: Jurij Smakov # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-sparc/string.h # 2005/01/02 01:37:35-08:00 wli@holomorphy.com +3 -0 # sparc32: fix initrd memcpy problem # # ChangeSet # 2005/01/02 09:47:21-08:00 wli@holomorphy.com # [PATCH] sparc32: sun4d update # # Chris Newport and Thomas Bogendoerfer have been working to get the # sun4d port functional again. This patch updates 2.6.10-rc3 to a current # snapshot of their work. It does the following 3 things: # # (1) add sun4d hook to sbus_bus_ranges_init() # (2) fix up pgd_offset() call in sun4d iommu code # (3) fix up sun4d's definition of current # # Signed-off-by: Chris Newport # Signed-off-by: Thomas Bogendoerfer # Acked-by: William Irwin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-sparc/winmacro.h # 2005/01/02 01:37:35-08:00 wli@holomorphy.com +6 -3 # sparc32: sun4d update # # include/asm-sparc/sbus.h # 2005/01/02 01:37:35-08:00 wli@holomorphy.com +2 -0 # sparc32: sun4d update # # include/asm-sparc/asi.h # 2005/01/02 01:37:35-08:00 wli@holomorphy.com +2 -1 # sparc32: sun4d update # # drivers/sbus/sbus.c # 2005/01/02 01:37:35-08:00 wli@holomorphy.com +14 -0 # sparc32: sun4d update # # arch/sparc/prom/ranges.c # 2005/01/02 01:37:35-08:00 wli@holomorphy.com +1 -1 # sparc32: sun4d update # # arch/sparc/mm/io-unit.c # 2005/01/02 01:37:35-08:00 wli@holomorphy.com +1 -1 # sparc32: sun4d update # # arch/sparc/kernel/sun4d_smp.c # 2005/01/02 01:37:35-08:00 wli@holomorphy.com +5 -13 # sparc32: sun4d update # # ChangeSet # 2005/01/02 09:47:08-08:00 wli@holomorphy.com # [PATCH] sparc32: fix hypersparc dvma # # DVMA is having aliasing problems. Bob originally sent in the following # description: # # At some point in the past, Bob Breuer wrote: # > Here's the preliminary patch. This time around, both the hme # > and esp drivers are working for me. This replaces my previous # > patch and is against the vanilla 2.6.9 kernel. I've tried to # > reduce the amount of unnecessary cache flushing, therefore this # > will need some testing on non-hypersparc cpus also. It needs # > some cleanup yet, and will be rediffed against a later kernel. # > I'm looking for comments and feedback. # # This patch represents one of those subsequent rediffings. # # Signed-off-by: Bob Breuer # Acked-by: William Irwin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-sparc/bitext.h # 2005/01/02 01:37:34-08:00 wli@holomorphy.com +1 -0 # sparc32: fix hypersparc dvma # # arch/sparc/mm/iommu.c # 2005/01/02 01:37:34-08:00 wli@holomorphy.com +22 -6 # sparc32: fix hypersparc dvma # # arch/sparc/lib/bitext.c # 2005/01/02 01:37:34-08:00 wli@holomorphy.com +12 -6 # sparc32: fix hypersparc dvma # # ChangeSet # 2005/01/02 09:46:55-08:00 akpm@osdl.org # [PATCH] floppy build fix # # drivers/block/floppy.c: In function `init_module': # drivers/block/floppy.c:4598: error: parse error before "UTS_RELEASE" # # Not sure what went wrong here - just kill the thing. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/block/floppy.c # 2005/01/02 01:37:34-08:00 akpm@osdl.org +0 -2 # floppy build fix # # ChangeSet # 2005/01/02 09:46:42-08:00 akpm@osdl.org # [PATCH] fix inet6_sk for non IPV6 builds again # # The recent ipv6 "fix" broke the build: # # security/selinux/avc.c: In function `avc_audit': # security/selinux/avc.c:581: warning: implicit declaration of function `inet6_sk' # security/selinux/avc.c:581: warning: initialization makes pointer from integer without a cast # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/ipv6.h # 2005/01/02 01:37:34-08:00 akpm@osdl.org +11 -0 # fix inet6_sk for non IPV6 builds again # # ChangeSet # 2005/01/02 09:46:29-08:00 michal@logix.cz # [PATCH] Add Michal Ludvig to CREDITS # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # CREDITS # 2005/01/02 01:37:34-08:00 michal@logix.cz +9 -0 # Add Michal Ludvig to CREDITS # # ChangeSet # 2005/01/02 09:46:16-08:00 michal@logix.cz # [PATCH] VIA PadLock compilation fixes # # This patch contains two fixes for VIA PadLock compilation with GCC 2.95.3 # and GCC 3.4.3 (original patch was tested with 3.3.4 only). # # Signed-off-by: Michal Ludvig # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/crypto/padlock-aes.c # 2005/01/02 01:37:34-08:00 michal@logix.cz +14 -16 # VIA PadLock compilation fixes # # ChangeSet # 2005/01/02 09:46:03-08:00 akpm@osdl.org # [PATCH] ia64 PTRS_PER_PGD build fix # # mm/memory.c:1944:6: missing binary operator before token "long" # # The preprocessor doesn't like the typecast.... # # PTRS_PER_PGD isn't used in assembly code, so this looks to be safe enough.. # # This patch helps, but the ia64 build is still broken. There is no # implementation of __pmd_alloc(). # # Cc: Nick Piggin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ia64/pgtable.h # 2005/01/02 01:37:13-08:00 akpm@osdl.org +1 -1 # ia64 PTRS_PER_PGD build fix # # ChangeSet # 2005/01/02 09:45:50-08:00 akpm@osdl.org # [PATCH] sparc64 pmd_offset() fix # # mm/memory.c: In function `zeromap_pud_range': # mm/memory.c:1053: warning: suggest parentheses around + or - inside shift # mm/memory.c: In function `remap_pud_range': # mm/memory.c:1170: warning: suggest parentheses around + or - inside shift # # Parenthesize this macro arg. # # Cc: Nick Piggin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-sparc64/pgtable.h # 2005/01/02 01:36:40-08:00 akpm@osdl.org +1 -1 # sparc64 pmd_offset() fix # # ChangeSet # 2005/01/02 09:45:38-08:00 akpm@osdl.org # [PATCH] setup_pci.c build fix # # On sparc64: # # drivers/ide/setup-pci.c:310: error: `DMA_32BIT_MASK' undeclared (first use in this function) # drivers/ide/setup-pci.c:310: error: (Each undeclared identifier is reported only once # drivers/ide/setup-pci.c:310: error: for each function it appears in.) # # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/ide/setup-pci.c # 2005/01/02 01:36:39-08:00 akpm@osdl.org +1 -0 # setup_pci.c build fix # # ChangeSet # 2005/01/02 09:40:33-08:00 rusty@rustcorp.com.au # [PATCH] ipt_ECN corrupt checksum fix # # Nasty bug, caught while writing the ECN target test. Corrupts # checksums of packets when target is used on them. # # Let this be a warning on the evils of casts. # # Signed-off-by: Linus Torvalds # # net/ipv4/netfilter/ipt_ECN.c # 2005/01/02 02:56:47-08:00 rusty@rustcorp.com.au +1 -1 # ipt_ECN corrupt checksum fix # # ChangeSet # 2005/01/02 20:08:59+11:00 airlied@starflyer.(none) # drm: mark ffb as broken because it actually is # # The ffb driver has been broken since 2.6.8 at least, so mark it # as so. This also contains some fixes so it at least compiles. # # Signed-off-by: Dave Airlie # # drivers/char/drm/ffb_drv.h # 2005/01/02 20:08:50+11:00 airlied@starflyer.(none) +1 -1 # drm: mark ffb as broken because it actually is # # The ffb driver has been broken since 2.6.8 at least, so mark it # as so. This also contains some fixes so it at least compiles. # # Signed-off-by: Dave Airlie # # drivers/char/drm/ffb_drv.c # 2005/01/02 20:08:50+11:00 airlied@starflyer.(none) +71 -26 # drm: mark ffb as broken because it actually is # # The ffb driver has been broken since 2.6.8 at least, so mark it # as so. This also contains some fixes so it at least compiles. # # Signed-off-by: Dave Airlie # # arch/sparc64/Kconfig # 2005/01/02 20:08:50+11:00 airlied@starflyer.(none) +1 -1 # drm: mark ffb as broken because it actually is # # The ffb driver has been broken since 2.6.8 at least, so mark it # as so. This also contains some fixes so it at least compiles. # # Signed-off-by: Dave Airlie # # ChangeSet # 2005/01/01 14:02:07-08:00 ak@suse.de # [PATCH] convert x86_64 to 4 level page tables # # Converted to true 4levels. The address space per process is expanded to # 47bits now, the supported physical address space is 46bits. # # Lmbench fork/exit numbers are down a few percent because it has to walk # much more pagetables, but some planned future optimizations will # hopefully recover it. # # See Documentation/x86_64/mm.txt for more details on the memory map. # # Signed-off-by: Andi Kleen # # Converted to pud_t by Nick Piggin. # # Signed-off-by: Nick Piggin # Signed-off-by: Linus Torvalds # # include/asm-x86_64/processor.h # 2004/12/22 01:33:05-08:00 ak@suse.de +2 -2 # convert x86_64 to 4 level page tables # # include/asm-x86_64/pgtable.h # 2004/12/22 01:34:25-08:00 ak@suse.de +57 -83 # convert x86_64 to 4 level page tables # # include/asm-x86_64/pgalloc.h # 2004/12/22 01:33:05-08:00 ak@suse.de +33 -5 # convert x86_64 to 4 level page tables # # include/asm-x86_64/pda.h # 2004/12/22 01:33:05-08:00 ak@suse.de +0 -1 # convert x86_64 to 4 level page tables # # include/asm-x86_64/page.h # 2004/12/22 01:33:05-08:00 ak@suse.de +6 -6 # convert x86_64 to 4 level page tables # # include/asm-x86_64/mmu_context.h # 2004/12/22 01:33:05-08:00 ak@suse.de +1 -4 # convert x86_64 to 4 level page tables # # include/asm-x86_64/e820.h # 2004/12/22 01:33:05-08:00 ak@suse.de +0 -3 # convert x86_64 to 4 level page tables # # arch/x86_64/mm/pageattr.c # 2004/12/22 01:33:05-08:00 ak@suse.de +21 -13 # convert x86_64 to 4 level page tables # # arch/x86_64/mm/ioremap.c # 2004/12/22 01:33:05-08:00 ak@suse.de +33 -10 # convert x86_64 to 4 level page tables # # arch/x86_64/mm/init.c # 2004/12/22 01:33:05-08:00 ak@suse.de +46 -55 # convert x86_64 to 4 level page tables # # arch/x86_64/mm/fault.c # 2004/12/22 01:33:05-08:00 ak@suse.de +65 -46 # convert x86_64 to 4 level page tables # # arch/x86_64/kernel/setup64.c # 2004/12/22 01:33:05-08:00 ak@suse.de +2 -11 # convert x86_64 to 4 level page tables # # arch/x86_64/kernel/reboot.c # 2004/12/22 01:33:05-08:00 ak@suse.de +1 -1 # convert x86_64 to 4 level page tables # # arch/x86_64/kernel/init_task.c # 2004/12/22 01:33:05-08:00 ak@suse.de +0 -2 # convert x86_64 to 4 level page tables # # arch/x86_64/kernel/head.S # 2004/12/22 01:33:05-08:00 ak@suse.de +0 -1 # convert x86_64 to 4 level page tables # # arch/x86_64/kernel/acpi/sleep.c # 2004/12/22 01:33:05-08:00 ak@suse.de +6 -2 # convert x86_64 to 4 level page tables # # arch/x86_64/ia32/syscall32.c # 2004/12/22 01:33:05-08:00 ak@suse.de +19 -12 # convert x86_64 to 4 level page tables # # Documentation/x86_64/mm.txt # 2004/12/22 01:33:05-08:00 ak@suse.de +22 -146 # convert x86_64 to 4 level page tables # # ChangeSet # 2005/01/01 14:01:54-08:00 nickpiggin@yahoo.com.au # [PATCH] convert ia64 to generic nopud header # # Convert ia64 architecture over to handle 4 level pagetables. # # Signed-off-by: Nick Piggin # Signed-off-by: Linus Torvalds # # include/asm-ia64/tlb.h # 2004/12/22 01:32:06-08:00 nickpiggin@yahoo.com.au +6 -0 # convert ia64 to generic nopud header # # include/asm-ia64/pgtable.h # 2004/12/22 01:32:20-08:00 nickpiggin@yahoo.com.au +8 -8 # convert ia64 to generic nopud header # # include/asm-ia64/pgalloc.h # 2004/12/22 01:32:06-08:00 nickpiggin@yahoo.com.au +2 -3 # convert ia64 to generic nopud header # # arch/ia64/mm/init.c # 2004/12/22 01:32:06-08:00 nickpiggin@yahoo.com.au +12 -2 # convert ia64 to generic nopud header # # arch/ia64/mm/hugetlbpage.c # 2004/12/22 01:32:06-08:00 nickpiggin@yahoo.com.au +14 -6 # convert ia64 to generic nopud header # # arch/ia64/mm/fault.c # 2004/12/22 01:32:06-08:00 nickpiggin@yahoo.com.au +6 -1 # convert ia64 to generic nopud header # # ChangeSet # 2005/01/01 14:01:39-08:00 ak@suse.de # [PATCH] convert i386 to generic nopud header # # i386 works with 2 and 3 levels # # Signed-off-by: Andi Kleen # # Converted to use pud_t by Nick Piggin # # Signed-off-by: Nick Piggin # Signed-off-by: Linus Torvalds # # include/asm-i386/pgtable.h # 2004/12/22 01:31:49-08:00 ak@suse.de +1 -0 # convert i386 to generic nopud header # # include/asm-i386/pgtable-3level.h # 2004/12/22 01:31:49-08:00 ak@suse.de +13 -11 # convert i386 to generic nopud header # # include/asm-i386/pgalloc.h # 2004/12/22 01:31:49-08:00 ak@suse.de +1 -2 # convert i386 to generic nopud header # # arch/i386/mm/pgtable.c # 2004/12/22 01:31:49-08:00 ak@suse.de +10 -2 # convert i386 to generic nopud header # # arch/i386/mm/pageattr.c # 2004/12/22 01:31:49-08:00 ak@suse.de +10 -4 # convert i386 to generic nopud header # # arch/i386/mm/ioremap.c # 2004/12/22 01:31:49-08:00 ak@suse.de +6 -1 # convert i386 to generic nopud header # # arch/i386/mm/init.c # 2004/12/22 01:31:49-08:00 ak@suse.de +12 -6 # convert i386 to generic nopud header # # arch/i386/mm/hugetlbpage.c # 2004/12/22 01:31:49-08:00 ak@suse.de +6 -2 # convert i386 to generic nopud header # # arch/i386/mm/fault.c # 2004/12/22 01:31:49-08:00 ak@suse.de +10 -3 # convert i386 to generic nopud header # # arch/i386/kernel/vm86.c # 2004/12/22 01:31:49-08:00 ak@suse.de +10 -1 # convert i386 to generic nopud header # # ChangeSet # 2005/01/01 14:01:24-08:00 nickpiggin@yahoo.com.au # [PATCH] introduce fallback header # # Add a temporary "fallback" header so architectures can run with the 4level # patgetables patch without modification. All architectures should be # converted to use the folding headers (include/asm-generic/pgtable-nop?d.h) # as soon as possible, and the fallback header removed. # # Make all architectures include the fallback header, except i386, because that # architecture has earlier been converted to use pgtable-nopmd.h under the 3 # level system, which is not compatible with the fallback header. # # Signed-off-by: Nick Piggin # Signed-off-by: Linus Torvalds # # mm/memory.c # 2004/12/22 01:36:07-08:00 nickpiggin@yahoo.com.au +25 -0 # introduce fallback header # # include/linux/mm.h # 2004/12/22 01:36:07-08:00 nickpiggin@yahoo.com.au +6 -0 # introduce fallback header # # include/asm-x86_64/pgtable.h # 2004/12/22 01:38:06-08:00 nickpiggin@yahoo.com.au +2 -0 # introduce fallback header # # include/asm-v850/pgtable.h # 2004/12/22 01:36:07-08:00 nickpiggin@yahoo.com.au +2 -0 # introduce fallback header # # include/asm-um/pgtable.h # 2004/12/22 01:36:07-08:00 nickpiggin@yahoo.com.au +2 -0 # introduce fallback header # # include/asm-sparc64/pgtable.h # 2004/12/22 01:36:07-08:00 nickpiggin@yahoo.com.au +2 -0 # introduce fallback header # # include/asm-generic/4level-fixup.h # 2004/12/22 01:38:01-08:00 nickpiggin@yahoo.com.au +34 -0 # introduce fallback header # # include/asm-sparc/pgtable.h # 2004/12/22 01:36:07-08:00 nickpiggin@yahoo.com.au +2 -0 # introduce fallback header # # include/asm-sh64/pgtable.h # 2004/12/22 01:36:07-08:00 nickpiggin@yahoo.com.au +2 -0 # introduce fallback header # # include/asm-sh/pgtable.h # 2004/12/22 01:36:07-08:00 nickpiggin@yahoo.com.au +2 -0 # introduce fallback header # # include/asm-s390/pgtable.h # 2004/12/22 01:36:07-08:00 nickpiggin@yahoo.com.au +2 -0 # introduce fallback header # # include/asm-ppc64/pgtable.h # 2004/12/22 01:36:07-08:00 nickpiggin@yahoo.com.au +2 -0 # introduce fallback header # # include/asm-ppc/pgtable.h # 2004/12/22 01:36:07-08:00 nickpiggin@yahoo.com.au +2 -0 # introduce fallback header # # include/asm-parisc/pgtable.h # 2004/12/22 01:36:07-08:00 nickpiggin@yahoo.com.au +2 -0 # introduce fallback header # # include/asm-mips/pgtable.h # 2004/12/22 01:36:07-08:00 nickpiggin@yahoo.com.au +2 -0 # introduce fallback header # # include/asm-m68knommu/pgtable.h # 2004/12/22 01:36:07-08:00 nickpiggin@yahoo.com.au +2 -0 # introduce fallback header # # include/asm-m68k/pgtable.h # 2004/12/22 01:36:07-08:00 nickpiggin@yahoo.com.au +2 -0 # introduce fallback header # # include/asm-m32r/pgtable.h # 2004/12/22 01:36:07-08:00 nickpiggin@yahoo.com.au +2 -0 # introduce fallback header # # include/asm-ia64/pgtable.h # 2004/12/22 01:38:07-08:00 nickpiggin@yahoo.com.au +2 -0 # introduce fallback header # # include/asm-h8300/pgtable.h # 2004/12/22 01:36:07-08:00 nickpiggin@yahoo.com.au +2 -0 # introduce fallback header # # include/asm-generic/tlb.h # 2004/12/22 01:36:07-08:00 nickpiggin@yahoo.com.au +2 -0 # introduce fallback header # # include/asm-generic/4level-fixup.h # 2004/12/22 01:38:01-08:00 nickpiggin@yahoo.com.au +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-generic/4level-fixup.h # # include/asm-cris/pgtable.h # 2004/12/22 01:36:07-08:00 nickpiggin@yahoo.com.au +2 -0 # introduce fallback header # # include/asm-arm26/pgtable.h # 2004/12/22 01:36:07-08:00 nickpiggin@yahoo.com.au +2 -0 # introduce fallback header # # include/asm-arm/pgtable.h # 2004/12/22 01:36:07-08:00 nickpiggin@yahoo.com.au +2 -0 # introduce fallback header # # include/asm-alpha/pgtable.h # 2004/12/22 01:36:07-08:00 nickpiggin@yahoo.com.au +2 -0 # introduce fallback header # # ChangeSet # 2005/01/01 14:01:09-08:00 ak@suse.de # [PATCH] convert Linux to 4-level page tables # # Extend the Linux MM to 4level page tables. # # This is the core patch for mm/*, fs/*, include/linux/* # # It breaks all architectures, which will be fixed in separate patches. # # The conversion is quite straight forward. All the functions walking the page # table hierarchy have been changed to deal with another level at the top. The # additional level is called pml4. # # mm/memory.c has changed a lot because it did most of the heavy lifting here. # Most of the changes here are extensions of the previous code. # # Signed-off-by: Andi Kleen # # Converted by Nick Piggin to use the pud_t 'page upper' level between pgd # and pmd instead of Andi's pml4 level above pgd. # # Signed-off-by: Nick Piggin # Signed-off-by: Linus Torvalds # # mm/vmalloc.c # 2004/12/22 01:31:46-08:00 ak@suse.de +83 -30 # convert Linux to 4-level page tables # # mm/swapfile.c # 2004/12/22 01:31:46-08:00 ak@suse.de +60 -21 # convert Linux to 4-level page tables # # mm/rmap.c # 2004/12/22 01:31:46-08:00 ak@suse.de +18 -3 # convert Linux to 4-level page tables # # mm/msync.c # 2004/12/22 01:31:46-08:00 ak@suse.de +43 -12 # convert Linux to 4-level page tables # # mm/mremap.c # 2004/12/22 01:31:46-08:00 ak@suse.de +23 -6 # convert Linux to 4-level page tables # # mm/mprotect.c # 2004/12/22 01:31:46-08:00 ak@suse.de +47 -18 # convert Linux to 4-level page tables # # mm/mempolicy.c # 2004/12/22 01:31:46-08:00 ak@suse.de +17 -5 # convert Linux to 4-level page tables # # mm/memory.c # 2004/12/22 01:35:55-08:00 ak@suse.de +317 -91 # convert Linux to 4-level page tables # # mm/fremap.c # 2004/12/22 01:31:46-08:00 ak@suse.de +14 -4 # convert Linux to 4-level page tables # # include/linux/mm.h # 2004/12/22 01:35:55-08:00 ak@suse.de +14 -6 # convert Linux to 4-level page tables # # fs/exec.c # 2004/12/22 01:31:46-08:00 ak@suse.de +5 -1 # convert Linux to 4-level page tables # # drivers/char/drm/drm_memory.h # 2004/12/22 01:31:46-08:00 ak@suse.de +2 -1 # convert Linux to 4-level page tables # # ChangeSet # 2005/01/01 14:00:55-08:00 nickpiggin@yahoo.com.au # [PATCH] introduce 4-level nopud folding header # # Generic headers to fold the 4-level pagetable into 3 levels. # # Signed-off-by: Nick Piggin # Signed-off-by: Linus Torvalds # # include/asm-generic/tlb.h # 2004/12/22 01:35:55-08:00 nickpiggin@yahoo.com.au +6 -0 # introduce 4-level nopud folding header # # include/asm-generic/pgtable-nopud.h # 2004/12/22 01:31:45-08:00 nickpiggin@yahoo.com.au +56 -0 # introduce 4-level nopud folding header # # include/asm-generic/pgtable-nopmd.h # 2004/12/22 01:31:45-08:00 nickpiggin@yahoo.com.au +23 -22 # introduce 4-level nopud folding header # # include/asm-generic/pgtable-nopud.h # 2004/12/22 01:31:45-08:00 nickpiggin@yahoo.com.au +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-generic/pgtable-nopud.h # # ChangeSet # 2005/01/01 14:00:42-08:00 nickpiggin@yahoo.com.au # [PATCH] replace clear_page_tables with clear_page_range # # Rename clear_page_tables to clear_page_range. clear_page_range takes byte # ranges, and aggressively frees page table pages. Maybe useful to control # page table memory consumption on 4-level architectures (and even 3 level # ones). # # Possible downsides are: # - flush_tlb_pgtables gets called more often (only a problem for sparc64 # AFAIKS). # # - the opportunistic "expand to fill PGDIR_SIZE hole" logic that ensures # something actually gets done under the old system is still in place. # This could sometimes make unmapping small regions more inefficient. There # are some other solutions to look at if this is the case though. # # Signed-off-by: Nick Piggin # Signed-off-by: Linus Torvalds # # mm/mmap.c # 2004/12/22 01:31:45-08:00 nickpiggin@yahoo.com.au +10 -14 # replace clear_page_tables with clear_page_range # # mm/memory.c # 2004/12/22 01:35:56-08:00 nickpiggin@yahoo.com.au +49 -31 # replace clear_page_tables with clear_page_range # # include/linux/mm.h # 2004/12/22 01:35:56-08:00 nickpiggin@yahoo.com.au +1 -1 # replace clear_page_tables with clear_page_range # # arch/ia64/mm/hugetlbpage.c # 2004/12/22 01:35:53-08:00 nickpiggin@yahoo.com.au +2 -13 # replace clear_page_tables with clear_page_range # # arch/i386/mm/pgtable.c # 2004/12/22 01:35:54-08:00 nickpiggin@yahoo.com.au +1 -1 # replace clear_page_tables with clear_page_range # # ChangeSet # 2005/01/01 14:00:27-08:00 ak@suse.de # [PATCH] split copy_page_range # # Split copy_page_range into the usual set of page table walking functions. # Needed to handle the complexity when moving to 4 levels. # # Signed-off-by: Andi Kleen # # Split out from Andi Kleen's 4level patch by Nick Piggin. # # Signed-off-by: Nick Piggin # Signed-off-by: Linus Torvalds # # mm/memory.c # 2004/12/22 01:35:58-08:00 ak@suse.de +153 -139 # split copy_page_range # # ChangeSet # 2005/01/01 14:00:15-08:00 nickpiggin@yahoo.com.au # [PATCH] convert i386 to generic nopmd header # # Adapt the i386 architecture to use the generic 2-level folding header. # Just to show how it is done. # # Signed-off-by: Nick Piggin # Signed-off-by: Linus Torvalds # # include/asm-i386/pgtable.h # 2004/12/22 01:35:54-08:00 nickpiggin@yahoo.com.au +3 -10 # convert i386 to generic nopmd header # # include/asm-i386/pgtable-3level.h # 2004/12/22 01:35:54-08:00 nickpiggin@yahoo.com.au +11 -0 # convert i386 to generic nopmd header # # include/asm-i386/pgtable-2level.h # 2004/12/22 01:31:43-08:00 nickpiggin@yahoo.com.au +8 -25 # convert i386 to generic nopmd header # # include/asm-i386/pgtable-2level-defs.h # 2004/12/22 01:31:43-08:00 nickpiggin@yahoo.com.au +0 -2 # convert i386 to generic nopmd header # # include/asm-i386/pgalloc.h # 2004/12/22 01:35:54-08:00 nickpiggin@yahoo.com.au +7 -10 # convert i386 to generic nopmd header # # include/asm-i386/page.h # 2004/12/22 01:31:43-08:00 nickpiggin@yahoo.com.au +2 -4 # convert i386 to generic nopmd header # # include/asm-i386/mmzone.h # 2004/12/22 01:31:44-08:00 nickpiggin@yahoo.com.au +0 -1 # convert i386 to generic nopmd header # # ChangeSet # 2005/01/01 14:00:01-08:00 nickpiggin@yahoo.com.au # [PATCH] generic 3-level nopmd folding header # # Generic headers to fold the 3-level pagetable into 2 levels. # # Signed-off-by: Nick Piggin # Signed-off-by: Linus Torvalds # # include/asm-generic/pgtable-nopmd.h # 2004/12/22 01:35:57-08:00 nickpiggin@yahoo.com.au +59 -0 # generic 3-level nopmd folding header # # include/asm-generic/pgtable-nopmd.h # 2004/12/22 01:35:57-08:00 nickpiggin@yahoo.com.au +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-generic/pgtable-nopmd.h # # ChangeSet # 2005/01/01 13:59:48-08:00 nickpiggin@yahoo.com.au # [PATCH] parentheses to x86-64 macro # # Add parentheses to x86-64's pgd_index's arguments # # Signed-off-by: Nick Piggin # Signed-off-by: Linus Torvalds # # include/asm-x86_64/pgtable.h # 2004/12/22 01:35:55-08:00 nickpiggin@yahoo.com.au +1 -1 # parentheses to x86-64 macro # # ChangeSet # 2005/01/01 13:47:42-08:00 torvalds@evo.osdl.org # x86: single-step over "popf" without corrupting state. # # This still leaves "pushf" able to see that somebody is # single-stepping us, but that is at least something you # can work around. # # arch/i386/kernel/ptrace.c # 2005/01/01 13:47:31-08:00 torvalds@evo.osdl.org +83 -1 # x86: single-step over "popf" without corrupting state. # # This still leaves "pushf" able to see that somebody is # single-stepping us, but that is at least something you # can work around. # # ChangeSet # 2005/01/01 13:11:08-08:00 torvalds@evo.osdl.org # x86: be a lot more careful about TF handling. # # This should fix Wine for some games that otherwise # seem to think that they run under a debugger. # # arch/i386/kernel/traps.c # 2005/01/01 13:10:57-08:00 torvalds@evo.osdl.org +11 -2 # x86: be a lot more careful about TF handling. # # This should fix Wine for some games that otherwise # seem to think that they run under a debugger. # # arch/i386/kernel/signal.c # 2005/01/01 13:10:57-08:00 torvalds@evo.osdl.org +7 -21 # x86: be a lot more careful about TF handling. # # This should fix Wine for some games that otherwise # seem to think that they run under a debugger. # # arch/i386/kernel/ptrace.c # 2005/01/01 13:10:57-08:00 torvalds@evo.osdl.org +27 -8 # x86: be a lot more careful about TF handling. # # This should fix Wine for some games that otherwise # seem to think that they run under a debugger. # # ChangeSet # 2005/01/01 12:24:01-08:00 torvalds@evo.osdl.org # x86: common send_sigtrap helper for debug event SIGTRAP's, # and use that for system call single-step events. # # This one also gets the user mode test right, and makes sure # the siginfo is not leaking any stack contents. # # include/asm-i386/ptrace.h # 2005/01/01 12:23:50-08:00 torvalds@evo.osdl.org +2 -0 # x86: common send_sigtrap helper for debug event SIGTRAP's, # and use that for system call single-step events. # # This one also gets the user mode test right, and makes sure # the siginfo is not leaking any stack contents. # # arch/i386/kernel/traps.c # 2005/01/01 12:23:50-08:00 torvalds@evo.osdl.org +1 -13 # x86: common send_sigtrap helper for debug event SIGTRAP's, # and use that for system call single-step events. # # This one also gets the user mode test right, and makes sure # the siginfo is not leaking any stack contents. # # arch/i386/kernel/ptrace.c # 2005/01/01 12:23:50-08:00 torvalds@evo.osdl.org +27 -5 # x86: common send_sigtrap helper for debug event SIGTRAP's, # and use that for system call single-step events. # # This one also gets the user mode test right, and makes sure # the siginfo is not leaking any stack contents. # # ChangeSet # 2005/01/01 12:21:12-08:00 torvalds@evo.osdl.org # Now that sparse looks into asms, fix the fake anti-optimizer cast # macro to use the right address space. # # include/asm-i386/uaccess.h # 2005/01/01 12:21:02-08:00 torvalds@evo.osdl.org +1 -1 # Now that sparse looks into asms, fix the fake anti-optimizer cast # macro to use the right address space. # # ChangeSet # 2005/01/01 19:02:55+00:00 rmk@flint.arm.linux.org.uk # [ARM] Remove static mapping for RTC on Integrator/AP # # arch/arm/mach-integrator/integrator_ap.c # 2005/01/01 18:59:49+00:00 rmk@flint.arm.linux.org.uk +0 -2 # Remove static mapping for RTC # # ChangeSet # 2005/01/01 18:08:52+00:00 rmk@flint.arm.linux.org.uk # [ARM] Update Integrator RTC driver. # # This updates the Integrator RTC driver to use the ARM common RTC # interface, and converts the driver to behave as a standard AMBA # peripheral driver. # # arch/arm/mach-integrator/time.c # 2005/01/01 18:06:08+00:00 rmk@flint.arm.linux.org.uk +180 -15 # Convert integrator RTC driver to use common rtc interface and # convert to a standard AMBA driver. # # ChangeSet # 2005/01/01 16:29:07+00:00 dsaxena@net.rmk.(none) # [ARM PATCH] 2338/1: IXP465 and IXDPG465 header file updates # # Patch from Deepak Saxena # # Update IXP4xx header files with new registers for IXP46x CPU family. # # Replaces 2306/1 # # Signed-off-by: Deepak Saxena # Signed-off-by: Russell King # # include/asm-arm/arch-ixp4xx/ixp4xx-regs.h # 2004/12/30 19:13:53+00:00 dsaxena@net.rmk.(none) +32 -0 # [PATCH] 2338/1: IXP465 and IXDPG465 header file updates # # include/asm-arm/arch-ixp4xx/irqs.h # 2004/12/30 19:13:53+00:00 dsaxena@net.rmk.(none) +21 -1 # [PATCH] 2338/1: IXP465 and IXDPG465 header file updates # # include/asm-arm/arch-ixp4xx/hardware.h # 2004/12/30 19:13:53+00:00 dsaxena@net.rmk.(none) +7 -0 # [PATCH] 2338/1: IXP465 and IXDPG465 header file updates # # include/asm-arm/arch-ixp4xx/entry-macro.S # 2004/12/30 19:13:46+00:00 dsaxena@net.rmk.(none) +13 -0 # [PATCH] 2338/1: IXP465 and IXDPG465 header file updates # # ChangeSet # 2005/01/01 23:20:59+11:00 airlied@starflyer.(none) # drm: core changes broke i810/830 # # Reported by Joseph Fannin during -mm, revert incorrect change. # # Signed-off-by: Dave Airlie # # drivers/char/drm/i830_drv.c # 2005/01/01 23:20:50+11:00 airlied@starflyer.(none) +1 -1 # drm: core changes broke i810/830 # # Reported by Joseph Fannin during -mm, revert incorrect change. # # Signed-off-by: Dave Airlie # # drivers/char/drm/i810_drv.c # 2005/01/01 23:20:50+11:00 airlied@starflyer.(none) +1 -1 # drm: core changes broke i810/830 # # Reported by Joseph Fannin during -mm, revert incorrect change. # # Signed-off-by: Dave Airlie # # ChangeSet # 2004/12/31 18:36:38+11:00 airlied@starflyer.(none) # drm: make reclaim_buffers take dev argument # # Allow drivers to override reclaim_buffers in an OS-independent # way by passing drm_device_t* as first parameter, like in the # BSD version. # # From: Felix Kuehling # Signed-off-by: Dave Airlie # # drivers/char/drm/i830_drv.h # 2004/12/31 18:36:29+11:00 airlied@starflyer.(none) +1 -1 # drm: make reclaim_buffers take dev argument # # Allow drivers to override reclaim_buffers in an OS-independent # way by passing drm_device_t* as first parameter, like in the # BSD version. # # From: Felix Kuehling # Signed-off-by: Dave Airlie # # drivers/char/drm/i830_dma.c # 2004/12/31 18:36:29+11:00 airlied@starflyer.(none) +2 -4 # drm: make reclaim_buffers take dev argument # # Allow drivers to override reclaim_buffers in an OS-independent # way by passing drm_device_t* as first parameter, like in the # BSD version. # # From: Felix Kuehling # Signed-off-by: Dave Airlie # # drivers/char/drm/i810_drv.h # 2004/12/31 18:36:29+11:00 airlied@starflyer.(none) +1 -1 # drm: make reclaim_buffers take dev argument # # Allow drivers to override reclaim_buffers in an OS-independent # way by passing drm_device_t* as first parameter, like in the # BSD version. # # From: Felix Kuehling # Signed-off-by: Dave Airlie # # drivers/char/drm/i810_dma.c # 2004/12/31 18:36:29+11:00 airlied@starflyer.(none) +2 -4 # drm: make reclaim_buffers take dev argument # # Allow drivers to override reclaim_buffers in an OS-independent # way by passing drm_device_t* as first parameter, like in the # BSD version. # # From: Felix Kuehling # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_fops.c # 2004/12/31 18:36:29+11:00 airlied@starflyer.(none) +1 -1 # drm: make reclaim_buffers take dev argument # # Allow drivers to override reclaim_buffers in an OS-independent # way by passing drm_device_t* as first parameter, like in the # BSD version. # # From: Felix Kuehling # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_dma.c # 2004/12/31 18:36:29+11:00 airlied@starflyer.(none) +1 -3 # drm: make reclaim_buffers take dev argument # # Allow drivers to override reclaim_buffers in an OS-independent # way by passing drm_device_t* as first parameter, like in the # BSD version. # # From: Felix Kuehling # Signed-off-by: Dave Airlie # # drivers/char/drm/drmP.h # 2004/12/31 18:36:29+11:00 airlied@starflyer.(none) +2 -2 # drm: make reclaim_buffers take dev argument # # Allow drivers to override reclaim_buffers in an OS-independent # way by passing drm_device_t* as first parameter, like in the # BSD version. # # From: Felix Kuehling # Signed-off-by: Dave Airlie # # ChangeSet # 2004/12/31 18:24:53+11:00 airlied@starflyer.(none) # drm: use spin_lock_init instead of SPIN_LOCK_UNLOCKED # # From: Jon Smirl # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_stub.c # 2004/12/31 18:24:45+11:00 airlied@starflyer.(none) +1 -1 # drm: use spin_lock_init instead of SPIN_LOCK_UNLOCKED # # From: Jon Smirl # Signed-off-by: Dave Airlie # # ChangeSet # 2004/12/31 18:18:54+11:00 airlied@starflyer.(none) # drm: correct historic mis-attribution of copyright # # From: Keith Withwell # Signed-off-by: Dave Airlie # # drivers/char/drm/sis_ds.h # 2004/12/31 18:18:45+11:00 airlied@starflyer.(none) +2 -2 # drm: correct historic mis-attribution of copyright # # From: Keith Withwell # Signed-off-by: Dave Airlie # # drivers/char/drm/sis_ds.c # 2004/12/31 18:18:45+11:00 airlied@starflyer.(none) +2 -2 # drm: correct historic mis-attribution of copyright # # From: Keith Withwell # Signed-off-by: Dave Airlie # # ChangeSet # 2004/12/31 18:15:21+11:00 airlied@starflyer.(none) # Make 1-bit fields be unsigned (no sign bit :). # sparse complains about them: # drivers/char/drm/sis_ds.h:88:12: warning: dubious one-bit signed bitfield # drivers/char/drm/sis_ds.h:89:16: warning: dubious one-bit signed bitfield # # Signed-off-by: Randy Dunlap # Signed-off-by: Dave Airlie # # drivers/char/drm/sis_ds.h # 2004/12/31 18:15:12+11:00 airlied@starflyer.(none) +2 -2 # Make 1-bit fields be unsigned (no sign bit :). # sparse complains about them: # drivers/char/drm/sis_ds.h:88:12: warning: dubious one-bit signed bitfield # drivers/char/drm/sis_ds.h:89:16: warning: dubious one-bit signed bitfield # # Signed-off-by: Randy Dunlap # Signed-off-by: Dave Airlie # # ChangeSet # 2004/12/31 12:46:36+11:00 airlied@starflyer.(none) # drm: Use wbinvd macro instead of assembly for it, # # From: Stefan Dirsch # Signed-off-by: Dave Airlie # # drivers/char/drm/ati_pcigart.c # 2004/12/31 12:46:27+11:00 airlied@starflyer.(none) +1 -1 # drm: Use wbinvd macro instead of assembly for it, # # From: Stefan Dirsch # Signed-off-by: Dave Airlie # # ChangeSet # 2004/12/31 00:26:38+00:00 dsaxena@net.rmk.(none) # [ARM PATCH] 2307/1: Add IXP46x and IXDPG465 implementation # # Patch from Deepak Saxena # # Patch adds implementation details for IXP46x CPUs and new IXDPG465 # reference platform. # # Signed-off-by: Deepak Saxena # Signed-off-by: Russell King # # arch/arm/mach-ixp4xx/ixdp425-setup.c # 2004/12/14 18:39:27+00:00 dsaxena@net.rmk.(none) +18 -0 # [PATCH] 2307/1: Add IXP46x and IXDPG465 implementation # # arch/arm/mach-ixp4xx/ixdp425-pci.c # 2004/12/14 17:57:55+00:00 dsaxena@net.rmk.(none) +2 -3 # [PATCH] 2307/1: Add IXP46x and IXDPG465 implementation # # arch/arm/mach-ixp4xx/common.c # 2004/12/14 17:22:07+00:00 dsaxena@net.rmk.(none) +18 -4 # [PATCH] 2307/1: Add IXP46x and IXDPG465 implementation # # arch/arm/mach-ixp4xx/common-pci.c # 2004/12/14 03:16:53+00:00 dsaxena@net.rmk.(none) +4 -3 # [PATCH] 2307/1: Add IXP46x and IXDPG465 implementation # # arch/arm/mach-ixp4xx/Kconfig # 2004/12/14 17:43:46+00:00 dsaxena@net.rmk.(none) +17 -1 # [PATCH] 2307/1: Add IXP46x and IXDPG465 implementation # # ChangeSet # 2004/12/31 00:20:31+00:00 dsaxena@net.rmk.(none) # [ARM PATCH] 2339/1: Don't mask IRQ_STATUS with IXP2000_VALID_IRQ_MASK # # Patch from Deepak Saxena # # Supersedes 2226/1 # # According to the IXP Programmer's Reference Manual, a read from # IRQ_STATUS can only return '1' for IRQ sources that have been # explicitly enabled in IRQ_ENABLE. So if we never enable 'invalid' # IRQ sources, we don't actually have to mask off IRQ_STATUS with # IXP2000_VALID_IRQ_MASK. # # Signed-off-by: Deepak Saxena # Signed-off-by: Russell King # # include/asm-arm/arch-ixp2000/entry-macro.S # 2004/12/30 20:07:56+00:00 dsaxena@net.rmk.(none) +0 -5 # [PATCH] 2339/1: Don't mask IRQ_STATUS with IXP2000_VALID_IRQ_MASK # # ChangeSet # 2004/12/31 00:14:52+00:00 rmk@flint.arm.linux.org.uk # [ARM] Add missing end of comment. # # include/asm-arm/arch-integrator/entry-macro.S # 2004/12/31 00:12:02+00:00 rmk@flint.arm.linux.org.uk +1 -0 # Add missing end of comment. # # ChangeSet # 2004/12/30 15:23:01-08:00 torvalds@ppc970.osdl.org # Merge bk://bart.bkbits.net/ide-2.6 # into ppc970.osdl.org:/home/torvalds/v2.6/linux # # include/linux/pci_ids.h # 2004/12/30 15:22:56-08:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # arch/i386/pci/irq.c # 2004/12/30 15:22:56-08:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # ChangeSet # 2004/12/30 15:21:16-08:00 acme@conectiva.com.br # [PATCH] Fix net/core/sock.o build failure # # This fixes a build failure that happens when you don't select IPV6. # # Signed-off-by: Linus Torvalds # # include/linux/ipv6.h # 2004/12/29 14:22:45-08:00 acme@conectiva.com.br +1 -1 # Fix net/core/sock.o build failure # # ChangeSet # 2004/12/30 22:40:35+01:00 bzolnier@trik.(none) # [patch] Intel ICH7 DID's, PIRQ and PATA support # # From: Jason Gaston # # This patch adds the Intel ICH7 DID's to the pci_ids.h file # and updates the piix driver and related files for PATA support. # # bart: this patch also adds PIRQ support # # Signed-off-by: Bartlomiej Zolnierkiewicz # # include/linux/pci_ids.h # 2004/12/28 16:07:28+01:00 bzolnier@trik.(none) +24 -0 # [patch] Intel ICH7 DID's, PIRQ and PATA support # # drivers/ide/pci/piix.h # 2004/12/28 16:07:28+01:00 bzolnier@trik.(none) +2 -1 # [patch] Intel ICH7 DID's, PIRQ and PATA support # # drivers/ide/pci/piix.c # 2004/12/28 16:07:28+01:00 bzolnier@trik.(none) +3 -0 # [patch] Intel ICH7 DID's, PIRQ and PATA support # # arch/i386/pci/irq.c # 2004/12/28 16:07:28+01:00 bzolnier@trik.(none) +2 -0 # [patch] Intel ICH7 DID's, PIRQ and PATA support # # ChangeSet # 2004/12/30 20:29:23+01:00 bzolnier@trik.(none) # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # - nothing clever here: the most noticeable change is the change of # returned value for (*init_setup) in struct ide_pci_device_s which # goes from void to int. Anything else is editing and checking for # errors in the output of the compiler; # - pci_disable_device() added for the error path in pci_init_sgiioc4(); # - BUG() removed in amd74xx_probe(): good old printk() is enough. # # Signed-off-by: Francois Romieu # Signed-off-by: Bartlomiej Zolnierkiewicz # # include/linux/ide.h # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +1 -1 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/via82cxxx.c # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +1 -2 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/trm290.c # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +1 -2 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/triflex.c # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +1 -3 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/slc90e66.c # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +1 -2 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/sl82c105.c # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +1 -2 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/sis5513.c # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +1 -2 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/siimage.c # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +1 -2 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/sgiioc4.c # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +15 -4 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/serverworks.h # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +2 -2 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/serverworks.c # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +5 -6 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/sc1200.c # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +1 -2 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/rz1000.c # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +1 -2 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/piix.h # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +1 -1 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/piix.c # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +3 -4 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/pdc202xx_old.h # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +3 -3 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/pdc202xx_old.c # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +11 -9 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/pdc202xx_new.h # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +3 -3 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/pdc202xx_new.c # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +13 -14 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/opti621.h # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +1 -1 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/opti621.c # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +3 -4 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/ns87415.c # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +1 -2 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/it8172.c # 2004/12/30 20:27:27+01:00 bzolnier@trik.(none) +1 -2 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/hpt366.h # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +3 -3 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/hpt366.c # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +16 -17 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/hpt34x.c # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +1 -2 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/generic.c # 2004/12/30 20:27:07+01:00 bzolnier@trik.(none) +1 -2 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/cy82c693.c # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +3 -2 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/cs5530.c # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +1 -2 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/cmd64x.c # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +1 -2 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/atiixp.c # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +1 -2 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/amd74xx.c # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +6 -3 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/alim15x3.c # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +1 -2 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/aec62xx.h # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +2 -2 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # drivers/ide/pci/aec62xx.c # 2004/12/29 23:58:32+01:00 bzolnier@trik.(none) +5 -6 # [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} # # ChangeSet # 2004/12/30 20:16:30+01:00 bzolnier@trik.(none) # [ide] propagate the error status in ide_pci_enable/ide_setup_pci_controller # # - no need to overwrite the status code returned by the pci_xyz() functions; # - jump into the new century and use DMA_32BIT_MASK; # - misc cleanup in the error paths. It should not add a huge value in # ide_pci_enable() due to the FIXME comment but it should not bite too hard # either. # # Signed-off-by: Francois Romieu # Signed-off-by: Bartlomiej Zolnierkiewicz # # drivers/ide/setup-pci.c # 2004/12/30 20:16:19+01:00 bzolnier@trik.(none) +37 -21 # [ide] propagate the error status in ide_pci_enable/ide_setup_pci_controller # # ChangeSet # 2004/12/30 20:08:53+01:00 bzolnier@trik.(none) # [ide] clean up error path in do_ide_setup_pci_device() # # ide_setup_pci_controller() puts the device in a PCI enabled state. # The patch adds a small helper to balance it when things go wrong. # # Actually the helper does not *exactly* balance the setup: if it can # not do a better job, ide_setup_pci_controller() may only enable some # BARS whereas the new counterpart will try to disable everything. # # Signed-off-by: Francois Romieu # Signed-off-by: Bartlomiej Zolnierkiewicz # # drivers/ide/setup-pci.c # 2004/12/29 23:42:45+01:00 bzolnier@trik.(none) +13 -2 # [ide] clean up error path in do_ide_setup_pci_device() # # ChangeSet # 2004/12/30 19:26:14+01:00 bzolnier@trik.(none) # [ide] propagation of error code in PCI IDE setup # # - Change the return value and the prototype of do_ide_setup_pci_device # Due to lack of appropriate return status code, the current clients of # do_ide_setup_pci_device() can not distinguish a failing invocation # from a successfull one. The patch modify do_ide_setup_pci_device() so # that it can propagate some of the errors from the lower layers. # # - Make ide_setup_pci_device() aware of the change and propagate the news # itself. I only gave a quick sight to create_proc_ide_interfaces() (and # ide_remove_proc_entries()) but they do seem sane and it should not matter # if it fails or not. # # - ide_setup_pci_devices(): mostly the same thing than ide_setup_pci_device(). # do not look trivially suspect. # # Signed-off-by: Francois Romieu # Signed-off-by: Bartlomiej Zolnierkiewicz # # include/linux/ide.h # 2004/12/30 19:26:04+01:00 bzolnier@trik.(none) +2 -2 # [ide] propagation of error code in PCI IDE setup # # drivers/ide/setup-pci.c # 2004/12/30 19:26:04+01:00 bzolnier@trik.(none) +55 -28 # [ide] propagation of error code in PCI IDE setup # # ChangeSet # 2004/12/30 19:07:00+01:00 bzolnier@trik.(none) # [ide] fix return codes in the generic PCI IDE driver # # From: Alan Cox # # This patch updates ide/pci/generic.c to fix the incorrect returns # causing PCI devices to be left reserved wrongly by the driver. # # From: Francois Romieu # # Use -ENODEV instead of -EAGAIN. # # Signed-off-by: Bartlomiej Zolnierkiewicz # # drivers/ide/pci/generic.c # 2004/12/30 19:06:50+01:00 bzolnier@trik.(none) +8 -6 # [ide] fix return codes in the generic PCI IDE driver # # ChangeSet # 2004/12/30 19:00:56+01:00 bzolnier@trik.(none) # [ide] it8172: incorrect return from it8172_init_one() # # From: Alan Cox # # Several IDE drivers return positive values as errors in the PCI setup # code. Unfortunately the PCI layer considers positive values as success # so the driver skips the device but still claims it and things then go # downhill. # # This fixes the IT8172 driver. # # From: Francois Romieu # # Use -ENODEV instead of -EAGAIN. # # Signed-off-by: Bartlomiej Zolnierkiewicz # # drivers/ide/pci/it8172.c # 2004/12/30 19:00:46+01:00 bzolnier@trik.(none) +1 -1 # [ide] it8172: incorrect return from it8172_init_one() # # ChangeSet # 2004/12/29 17:32:38-08:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] i386 uaccess annotations # # get_user() stores result in a local variable that later gets cast to # integer or pointer type. The proper type for that is unsigned long. # # Signed-off-by: Al Viro # Signed-off-by: Linus Torvalds # # include/asm-i386/uaccess.h # 2004/12/29 11:25:15-08:00 viro@parcelfarce.linux.theplanet.co.uk +4 -2 # i386 uaccess annotations # # ChangeSet # 2004/12/29 23:21:55+01:00 bzolnier@trik.(none) # [ide] fix cleanup_module() in ide.c # # DMA should be already released by ide_unregister() # (unless interface is still busy). # # Signed-off-by: Bartlomiej Zolnierkiewicz # # drivers/ide/ide.c # 2004/12/29 23:21:46+01:00 bzolnier@trik.(none) +1 -4 # [ide] fix cleanup_module() in ide.c # # ChangeSet # 2004/12/29 23:11:22+01:00 bzolnier@trik.(none) # [ide] ide-proc: kill destroy_proc_ide_interfaces() # # /proc interface entries should be already unregistered # by ide_unregister() (unless interface is still busy). # # Signed-off-by: Bartlomiej Zolnierkiewicz # # drivers/ide/ide-proc.c # 2004/12/26 00:19:15+01:00 bzolnier@trik.(none) +0 -15 # [ide] ide-proc: kill destroy_proc_ide_interfaces() # # ChangeSet # 2004/12/29 21:00:56+00:00 davis_g@com.rmk.(none) # [ARM PATCH] 2327/1: Thumb ld/st alignment fault fixups # # Patch from George G. Davis # # Adds support for Thumb ld/st alignment fault fixups via conversion of # Thumb ld/st instruction forms into equivalent ARM instructions and # reusing ARM alignment fault handler for Thumb instructions. This # implementation was inspired by and initially based on the algorithm # found in gdb/sim/arm/thumbemu.c. # # I've backed out the silly 'T' suffix on PC in this version as requested # by RMK. At this point, I prefer to avoid making any of the other changes # discussed, e.g. dump_instr() for bad instruction cases, in order to get # the basic Thumb support change committed. # # Thanks! # # Signed-off-by: George G. Davis # Signed-off-by: Russell King # # arch/arm/mm/alignment.c # 2004/12/29 00:00:00+00:00 davis_g@com.rmk.(none) +145 -7 # [PATCH] 2327/1: Thumb ld/st alignment fault fixups # # ChangeSet # 2004/12/29 20:39:53+00:00 tony@com.rmk.(none) # [ARM PATCH] 2336/1: OMAP update 1/2: Arch files, take 2 # # Patch from Tony Lindgren # # This patch syncs the mainline kernel with the linux-omap tree. # The highlights of the patch are: # - Add OMAP board specific low-level init functions for smc91x Ethernet # - DMA audio functions by Nishant Menon # - Remove references to OMAP specific serial.h # # This is an updated version of ARM patch 2331/1 with extra comments # added to the omap_get_dma_src_pos() and omap_get_dma_dst_pos() functions # as recommended by RMK. # # Signed-off-by: Tony Lindgren # Signed-off-by: Russell King # # arch/arm/mach-omap/pm.c # 2004/12/27 20:48:59+00:00 tony@com.rmk.(none) +9 -3 # [PATCH] 2336/1: OMAP update 1/2: Arch files, take 2 # # arch/arm/mach-omap/dma.c # 2004/12/27 20:46:42+00:00 tony@com.rmk.(none) +49 -4 # [PATCH] 2336/1: OMAP update 1/2: Arch files, take 2 # # arch/arm/mach-omap/common.c # 2004/12/27 22:18:34+00:00 tony@com.rmk.(none) +7 -7 # [PATCH] 2336/1: OMAP update 1/2: Arch files, take 2 # # arch/arm/mach-omap/board-perseus2.c # 2004/12/27 20:48:59+00:00 tony@com.rmk.(none) +17 -5 # [PATCH] 2336/1: OMAP update 1/2: Arch files, take 2 # # arch/arm/mach-omap/board-osk.c # 2004/12/27 22:18:34+00:00 tony@com.rmk.(none) +13 -3 # [PATCH] 2336/1: OMAP update 1/2: Arch files, take 2 # # arch/arm/mach-omap/board-innovator.c # 2004/12/27 22:18:34+00:00 tony@com.rmk.(none) +21 -8 # [PATCH] 2336/1: OMAP update 1/2: Arch files, take 2 # # arch/arm/mach-omap/board-h3.c # 2004/12/27 22:18:34+00:00 tony@com.rmk.(none) +21 -7 # [PATCH] 2336/1: OMAP update 1/2: Arch files, take 2 # # arch/arm/mach-omap/board-h2.c # 2004/12/27 22:18:34+00:00 tony@com.rmk.(none) +15 -3 # [PATCH] 2336/1: OMAP update 1/2: Arch files, take 2 # # ChangeSet # 2004/12/29 10:43:28-08:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] ppc __iomem annotations - ->cfg_addr # # ->cfg_addr is an iomem pointer; annotated as such, setup_indirect_pci() # cleaned up. # # Signed-off-by: Al Viro # Signed-off-by: Linus Torvalds # # include/asm-ppc/pci-bridge.h # 2004/12/28 16:02:37-08:00 viro@parcelfarce.linux.theplanet.co.uk +2 -2 # ppc __iomem annotations - ->cfg_addr # # arch/ppc/syslib/indirect_pci.c # 2004/12/28 16:02:37-08:00 viro@parcelfarce.linux.theplanet.co.uk +8 -8 # ppc __iomem annotations - ->cfg_addr # # arch/ppc/platforms/pmac_pci.c # 2004/12/28 16:02:37-08:00 viro@parcelfarce.linux.theplanet.co.uk +2 -4 # ppc __iomem annotations - ->cfg_addr # # ChangeSet # 2004/12/29 10:43:15-08:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] ppc __iomem annotations - openpic # # Signed-off-by: Al Viro # Signed-off-by: Linus Torvalds # # include/asm-ppc/open_pic.h # 2004/12/28 16:02:36-08:00 viro@parcelfarce.linux.theplanet.co.uk +2 -2 # ppc __iomem annotations - openpic # # arch/ppc/syslib/open_pic_defs.h # 2004/12/28 16:02:36-08:00 viro@parcelfarce.linux.theplanet.co.uk +1 -1 # ppc __iomem annotations - openpic # # arch/ppc/syslib/open_pic.c # 2004/12/28 16:02:36-08:00 viro@parcelfarce.linux.theplanet.co.uk +21 -21 # ppc __iomem annotations - openpic # # ChangeSet # 2004/12/29 10:43:02-08:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] ppc __iomem annotations - gg2 # # gg2_pci_config_base is an iomem pointer. # # Signed-off-by: Al Viro # Signed-off-by: Linus Torvalds # # include/asm-ppc/gg2.h # 2004/12/28 16:02:36-08:00 viro@parcelfarce.linux.theplanet.co.uk +1 -1 # ppc __iomem annotations - gg2 # # arch/ppc/platforms/chrp_setup.c # 2004/12/28 16:02:36-08:00 viro@parcelfarce.linux.theplanet.co.uk +4 -5 # ppc __iomem annotations - gg2 # # arch/ppc/platforms/chrp_pci.c # 2004/12/28 16:02:36-08:00 viro@parcelfarce.linux.theplanet.co.uk +4 -3 # ppc __iomem annotations - gg2 # # ChangeSet # 2004/12/29 10:42:49-08:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] ppc __iomem annotations - ->cfg_data # # struct pci_controller ->cfg_data annotated as iomem pointer; users # modified accordingly... # # Signed-off-by: Al Viro # Signed-off-by: Linus Torvalds # # include/asm-ppc/pci-bridge.h # 2004/12/28 16:02:36-08:00 viro@parcelfarce.linux.theplanet.co.uk +1 -1 # ppc __iomem annotations - ->cfg_data # # arch/ppc/syslib/indirect_pci.c # 2004/12/28 16:02:36-08:00 viro@parcelfarce.linux.theplanet.co.uk +9 -9 # ppc __iomem annotations - ->cfg_data # # arch/ppc/platforms/prep_pci.c # 2004/12/28 16:02:36-08:00 viro@parcelfarce.linux.theplanet.co.uk +8 -8 # ppc __iomem annotations - ->cfg_data # # arch/ppc/platforms/pmac_pci.c # 2004/12/28 16:02:36-08:00 viro@parcelfarce.linux.theplanet.co.uk +40 -42 # ppc __iomem annotations - ->cfg_data # # arch/ppc/platforms/chrp_pci.c # 2004/12/28 16:02:36-08:00 viro@parcelfarce.linux.theplanet.co.uk +9 -10 # ppc __iomem annotations - ->cfg_data # # ChangeSet # 2004/12/29 10:42:36-08:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] av7110_hw __user annotations fix # # Signed-off-by: Al Viro # Signed-off-by: Linus Torvalds # # drivers/media/dvb/ttpci/av7110_hw.c # 2004/12/28 11:29:54-08:00 viro@parcelfarce.linux.theplanet.co.uk +1 -1 # av7110_hw __user annotations fix # # ChangeSet # 2004/12/29 10:42:23-08:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] dib3000 portability fix # # size_t is %zd, not %d... # # Signed-off-by: Al Viro # Signed-off-by: Linus Torvalds # # drivers/media/dvb/frontends/dib3000-common.h # 2004/12/28 11:29:54-08:00 viro@parcelfarce.linux.theplanet.co.uk +1 -1 # dib3000 portability fix # # ChangeSet # 2004/12/29 10:42:10-08:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] tda80xx.c portability fix # # should include asm/irq.h, not linux/irq.h # # Signed-off-by: Al Viro # Signed-off-by: Linus Torvalds # # drivers/media/dvb/frontends/tda80xx.c # 2004/12/28 11:29:53-08:00 viro@parcelfarce.linux.theplanet.co.uk +1 -1 # tda80xx.c portability fix # # ChangeSet # 2004/12/29 10:41:57-08:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] more isa-ectomy # # switch to ioremap + normal iomem access primitives # # Signed-off-by: Al Viro # Signed-off-by: Linus Torvalds # # drivers/char/i8k.c # 2004/12/28 11:07:48-08:00 viro@parcelfarce.linux.theplanet.co.uk +25 -22 # more isa-ectomy # # arch/i386/kernel/traps.c # 2004/12/28 11:07:48-08:00 viro@parcelfarce.linux.theplanet.co.uk +3 -1 # more isa-ectomy # # arch/i386/kernel/dmi_scan.c # 2004/12/28 11:07:48-08:00 viro@parcelfarce.linux.theplanet.co.uk +7 -6 # more isa-ectomy # # ChangeSet # 2004/12/29 10:41:44-08:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] hotplug NULL noise removal # # Signed-off-by: Al Viro # Signed-off-by: Linus Torvalds # # drivers/pci/hotplug/pciehp_hpc.c # 2004/12/28 11:02:33-08:00 viro@parcelfarce.linux.theplanet.co.uk +1 -1 # hotplug NULL noise removal # # ChangeSet # 2004/12/29 10:41:31-08:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] ppc io.h annotations # # * prototypes converted to standard ones # * bunch of useless casts killed in ioread*/iowrite* # # Signed-off-by: Al Viro # Signed-off-by: Linus Torvalds # # include/asm-ppc/io.h # 2004/12/27 19:11:33-08:00 viro@parcelfarce.linux.theplanet.co.uk +12 -10 # ppc io.h annotations # # ChangeSet # 2004/12/29 10:41:18-08:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] x86_64 io.h annotations # # x86-64 memcpy_toio(), memcpy_fromio(), memset_io() and read{b,w,l,q}(), # switched to standard prototypes. # # Signed-off-by: Al Viro # Signed-off-by: Linus Torvalds # # include/asm-x86_64/io.h # 2004/12/27 18:56:21-08:00 viro@parcelfarce.linux.theplanet.co.uk +12 -12 # x86_64 io.h annotations # # arch/x86_64/lib/io.c # 2004/12/27 18:56:21-08:00 viro@parcelfarce.linux.theplanet.co.uk +4 -4 # x86_64 io.h annotations # # ChangeSet # 2004/12/29 10:41:06-08:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] cinergy __user annotations # # __user annotations in new code. # # Signed-off-by: Al Viro # Signed-off-by: Linus Torvalds # # drivers/media/dvb/cinergyT2/cinergyT2.c # 2004/12/26 22:04:22-08:00 viro@parcelfarce.linux.theplanet.co.uk +4 -4 # cinergy __user annotations # # ChangeSet # 2004/12/29 10:40:52-08:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] mxser annotations and compile fixes # # a) __user annotations # b) NULL noise removals # c) added missing ifdef CONFIG_PCI around the loop over mxser_pcibrds # during init. # d) declaration of CMSPAR in case if it had been undefined moved up # prior to the first use # # Signed-off-by: Al Viro # Signed-off-by: Linus Torvalds # # drivers/char/mxser.c # 2004/12/26 22:04:22-08:00 viro@parcelfarce.linux.theplanet.co.uk +47 -43 # mxser annotations and compile fixes # # ChangeSet # 2004/12/29 10:40:39-08:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] zatm fix # # Repairs the breakage introduced in gcc4 fixes. Original had expanded # to # # ((struct zatm_dev *)(dev)->dev_data) = zatm_dev; # # and that's what gcc4 had complained about (cast-as-lvalue). Proper fix is, # of course, # # dev->dev_data = zatm_dev; # # What we have in 2.6.10 is # # dev = (struct atm_dev *)zatm_dev; # # which doesn't cause complaints, but doesn't do anything good (leak + corruption # at the very least). # # Signed-off-by: Al Viro # Signed-off-by: Linus Torvalds # # drivers/atm/zatm.c # 2004/12/26 22:04:22-08:00 viro@parcelfarce.linux.theplanet.co.uk +1 -1 # zatm fix # # ChangeSet # 2004/12/29 10:40:24-08:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] affs headers cleanup # # kernel-only stuff moved from affs headers in include/linux to # fs/affs/affs.h; includes in fs/affs/*.c sanitized. # # That's the patch that had been ACKed by Roman + move of function-like # macros from amigaffs.h (also ACKed) + removal of ancient #if 0'ed junk # from declaration of affs_inode_info (spotted and suggested by Roman). # # Signed-off-by: Al Viro # Signed-off-by: Linus Torvalds # # include/linux/amigaffs.h # 2004/12/26 22:04:23-08:00 viro@parcelfarce.linux.theplanet.co.uk +0 -132 # affs headers cleanup # # include/linux/affs_fs.h # 2004/12/26 22:04:23-08:00 viro@parcelfarce.linux.theplanet.co.uk +0 -89 # affs headers cleanup # # fs/affs/symlink.c # 2004/12/26 22:04:23-08:00 viro@parcelfarce.linux.theplanet.co.uk +1 -8 # affs headers cleanup # # fs/affs/super.c # 2004/12/26 22:04:23-08:00 viro@parcelfarce.linux.theplanet.co.uk +2 -18 # affs headers cleanup # # fs/affs/namei.c # 2004/12/26 22:04:23-08:00 viro@parcelfarce.linux.theplanet.co.uk +1 -14 # affs headers cleanup # # fs/affs/inode.c # 2004/12/26 22:04:23-08:00 viro@parcelfarce.linux.theplanet.co.uk +1 -21 # affs headers cleanup # # fs/affs/file.c # 2004/12/26 22:04:23-08:00 viro@parcelfarce.linux.theplanet.co.uk +1 -18 # affs headers cleanup # # fs/affs/dir.c # 2004/12/26 22:04:23-08:00 viro@parcelfarce.linux.theplanet.co.uk +1 -11 # affs headers cleanup # # fs/affs/affs.h # 2004/12/29 10:40:16-08:00 viro@parcelfarce.linux.theplanet.co.uk +304 -0 # # fs/affs/bitmap.c # 2004/12/26 22:04:23-08:00 viro@parcelfarce.linux.theplanet.co.uk +1 -9 # affs headers cleanup # # fs/affs/amigaffs.c # 2004/12/26 22:04:23-08:00 viro@parcelfarce.linux.theplanet.co.uk +1 -8 # affs headers cleanup # # fs/affs/affs.h # 2004/12/29 10:40:16-08:00 viro@parcelfarce.linux.theplanet.co.uk +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/fs/affs/affs.h # # BitKeeper/deleted/.del-affs_fs_sb.h~92e539b5b05bc854 # 2004/12/29 10:40:16-08:00 viro@parcelfarce.linux.theplanet.co.uk +0 -0 # Delete: include/linux/affs_fs_sb.h # # BitKeeper/deleted/.del-affs_fs_i.h~383cf65512c8acae # 2004/12/29 10:40:15-08:00 viro@parcelfarce.linux.theplanet.co.uk +0 -0 # Delete: include/linux/affs_fs_i.h # # ChangeSet # 2004/12/29 10:25:36-06:00 domen@coderock.org # JFS: delete unused file # # Remove nowhere referenced file. (egrep "filename\." didn't find anything) # # Signed-off-by: Domen Puncer # Signed-off-by: Dave Kleikamp # # BitKeeper/deleted/.del-jfs_defragfs.h~1e8a3d543f69975a # 2004/12/29 10:20:36-06:00 shaggy@austin.ibm.com +0 -0 # Delete: fs/jfs/jfs_defragfs.h # # ChangeSet # 2004/12/29 15:41:46+00:00 tony@com.rmk.(none) # [ARM PATCH] 2329/1: Update Kconfig for OMAP processor options # # Patch from Tony Lindgren # # Updates processor specific Kconfig options for OMAP # # Signed-off-by: Tony Lindgren # Signed-off-by: Russell King # # arch/arm/mm/Kconfig # 2004/12/27 22:18:35+00:00 tony@com.rmk.(none) +5 -4 # [PATCH] 2329/1: Update Kconfig for OMAP processor options # # ChangeSet # 2004/12/29 15:36:14+00:00 tony@com.rmk.(none) # [ARM PATCH] 2328/1: ARM Kconfig updates for OMAP leds # # Patch from Tony Lindgren # # ARM Kconfig updates for OMAP leds # # Signed-off-by: Tony Lindgren # Signed-off-by: Russell King # # arch/arm/Kconfig # 2004/12/27 20:12:55+00:00 tony@com.rmk.(none) +2 -2 # [PATCH] 2328/1: ARM Kconfig updates for OMAP leds # # ChangeSet # 2004/12/29 15:30:34+00:00 dsaxena@net.rmk.(none) # [ARM PATCH] 2326/1: Fix IXP2000 timer implementation # # Patch from Deepak Saxena # # This patch fixes two issues with the IXP2000 timer implementation: # # - We currently to not account for lost timer interrupts # - We currently do not check for rollover within gettimeoffset() # # Signed-off-by: Deepak Saxena # Signed-off-by: Russell King # # include/asm-arm/arch-ixp2000/ixp2000-regs.h # 2004/12/22 23:25:34+00:00 dsaxena@net.rmk.(none) +1 -0 # [PATCH] 2326/1: Fix IXP2000 timer implementation # # arch/arm/mach-ixp2000/core.c # 2004/12/22 21:31:45+00:00 dsaxena@net.rmk.(none) +29 -6 # [PATCH] 2326/1: Fix IXP2000 timer implementation # # ChangeSet # 2004/12/29 15:25:09+00:00 dsaxena@net.rmk.(none) # [ARM PATCH] 2325/1: Cleanup IXP2000 reset handling # # Patch from Deepak Saxena # # On IXDP2801 we need to write a magic sequence to the CPLD to ensure # a full system reset instead of just CPU reset. Also cleanup some # comments and copyrights while we are in here. # # Signed-off-by: Deepak Saxena # Signed-off-by: Russell King # # include/asm-arm/arch-ixp2000/system.h # 2004/12/22 21:07:23+00:00 dsaxena@net.rmk.(none) +21 -2 # [PATCH] 2325/1: Cleanup IXP2000 reset handling # # ChangeSet # 2004/12/29 15:20:01+00:00 davis_g@com.rmk.(none) # [ARM PATCH] 2324/1: Convert ARM proc files to use domain and pgtable manifest constants # # Patch from George G. Davis # # Convert ARM proc files to use manifest constants defined in pgtable.h # and domain.h. This is a prelude to allow renumbering domains. The # domain renumbering is required to implement support for ARMv6 MMU # super sections where domain 0 is implied. Although this is technically # only required for ARMv6, it seemed reasonable to clean up all proc # files while here. # # I did a test build with and without this patch applied and confirmed # that all proc file binaries are unchanged when this patch is applied. # # Signed-off-by: George G. Davis # Signed-off-by: Russell King # # include/asm-arm/domain.h # 2004/12/29 00:00:00+00:00 davis_g@com.rmk.(none) +3 -1 # [PATCH] 2324/1: Convert ARM proc files to use domain and pgtable manifest constants # # arch/arm/mm/proc-xscale.S # 2004/12/29 00:00:00+00:00 davis_g@com.rmk.(none) +55 -11 # [PATCH] 2324/1: Convert ARM proc files to use domain and pgtable manifest constants # # arch/arm/mm/proc-v6.S # 2004/12/29 00:00:00+00:00 davis_g@com.rmk.(none) +10 -2 # [PATCH] 2324/1: Convert ARM proc files to use domain and pgtable manifest constants # # arch/arm/mm/proc-sa1100.S # 2004/12/29 00:00:00+00:00 davis_g@com.rmk.(none) +15 -3 # [PATCH] 2324/1: Convert ARM proc files to use domain and pgtable manifest constants # # arch/arm/mm/proc-sa110.S # 2004/12/29 00:00:00+00:00 davis_g@com.rmk.(none) +10 -2 # [PATCH] 2324/1: Convert ARM proc files to use domain and pgtable manifest constants # # arch/arm/mm/proc-arm926.S # 2004/12/29 00:00:00+00:00 davis_g@com.rmk.(none) +11 -2 # [PATCH] 2324/1: Convert ARM proc files to use domain and pgtable manifest constants # # arch/arm/mm/proc-arm925.S # 2004/12/29 00:00:00+00:00 davis_g@com.rmk.(none) +13 -3 # [PATCH] 2324/1: Convert ARM proc files to use domain and pgtable manifest constants # # arch/arm/mm/proc-arm922.S # 2004/12/29 00:00:00+00:00 davis_g@com.rmk.(none) +11 -2 # [PATCH] 2324/1: Convert ARM proc files to use domain and pgtable manifest constants # # arch/arm/mm/proc-arm920.S # 2004/12/29 00:00:00+00:00 davis_g@com.rmk.(none) +11 -2 # [PATCH] 2324/1: Convert ARM proc files to use domain and pgtable manifest constants # # arch/arm/mm/proc-arm720.S # 2004/12/29 00:00:00+00:00 davis_g@com.rmk.(none) +21 -4 # [PATCH] 2324/1: Convert ARM proc files to use domain and pgtable manifest constants # # arch/arm/mm/proc-arm6_7.S # 2004/12/29 00:00:00+00:00 davis_g@com.rmk.(none) +15 -3 # [PATCH] 2324/1: Convert ARM proc files to use domain and pgtable manifest constants # # arch/arm/mm/proc-arm1026.S # 2004/12/29 00:00:00+00:00 davis_g@com.rmk.(none) +9 -2 # [PATCH] 2324/1: Convert ARM proc files to use domain and pgtable manifest constants # # arch/arm/mm/proc-arm1022.S # 2004/12/29 00:00:00+00:00 davis_g@com.rmk.(none) +9 -2 # [PATCH] 2324/1: Convert ARM proc files to use domain and pgtable manifest constants # # arch/arm/mm/proc-arm1020e.S # 2004/12/29 00:00:00+00:00 davis_g@com.rmk.(none) +10 -2 # [PATCH] 2324/1: Convert ARM proc files to use domain and pgtable manifest constants # # arch/arm/mm/proc-arm1020.S # 2004/12/29 00:00:00+00:00 davis_g@com.rmk.(none) +8 -2 # [PATCH] 2324/1: Convert ARM proc files to use domain and pgtable manifest constants # # ChangeSet # 2004/12/29 15:02:36+00:00 tony@com.rmk.(none) # [ARM PATCH] 2332/1: OMAP update 1/2: Include files # # Patch from Tony Lindgren # # This patch syncs the mainline kernel with the linux-omap tree. # The patch mostly contains minor fixes and extra register definitions # by various OMAP developers. # # Signed-off-by: Tony Lindgren # Signed-off-by: Russell King # # include/asm-arm/arch-omap/omap16xx.h # 2004/12/27 20:09:02+00:00 tony@com.rmk.(none) +2 -1 # [PATCH] 2332/1: OMAP update 1/2: Include files # # include/asm-arm/arch-omap/mux.h # 2004/12/27 20:09:02+00:00 tony@com.rmk.(none) +12 -0 # [PATCH] 2332/1: OMAP update 1/2: Include files # # include/asm-arm/arch-omap/irqs.h # 2004/12/27 20:09:02+00:00 tony@com.rmk.(none) +2 -0 # [PATCH] 2332/1: OMAP update 1/2: Include files # # include/asm-arm/arch-omap/hardware.h # 2004/12/27 20:09:02+00:00 tony@com.rmk.(none) +1 -1 # [PATCH] 2332/1: OMAP update 1/2: Include files # # include/asm-arm/arch-omap/gpio.h # 2004/12/27 20:09:02+00:00 tony@com.rmk.(none) +1 -0 # [PATCH] 2332/1: OMAP update 1/2: Include files # # include/asm-arm/arch-omap/dma.h # 2004/12/27 20:09:02+00:00 tony@com.rmk.(none) +4 -0 # [PATCH] 2332/1: OMAP update 1/2: Include files # # ChangeSet # 2004/12/28 23:28:15-08:00 drm.adm@bkbits.net # Merge bkbits.net:/repos/l/linux/linux-2.5 # into bkbits.net:/repos/d/drm/drm-2.6 # # drivers/char/drm/drm_drv.c # 2004/12/28 23:27:40-08:00 drm.adm@bkbits.net +1 -1 # backout conflicting changes .. will # later... # # drivers/char/drm/drm_drv.c # 2004/12/28 23:23:50-08:00 drm.adm@bkbits.net +0 -0 # Merge rename: drivers/char/drm/drm_drv.h -> drivers/char/drm/drm_drv.c # # ChangeSet # 2004/12/29 00:15:39+01:00 sam@mars.ravnborg.org # kbuild: Use -isystem `gcc --print-file-name=include` # # Using "-nostdinc -isystem `gcc --print-file-name=include" let # us see full path to compiler specific files when compiling with make V=1 # Furthermore it lets us use same definition for sparse (CHECKFLAGS) and the kernel. # Tested with gcc 3.3.4 only. # # Signed-off-by: Sam Ravnborg # # scripts/Makefile.build # 2004/12/29 00:15:17+01:00 sam@mars.ravnborg.org +0 -1 # This assignment is done in top-level Makefile for now # # Makefile # 2004/12/29 00:15:17+01:00 sam@mars.ravnborg.org +3 -1 # Use full path to dir with compiler specific files # # ChangeSet # 2004/12/28 23:00:28+01:00 ahaas@airmail.net # kbuild: Trivial Makefile patch # # The comment doesn't match the function name. # # From: "Art Haas" # Signed-off-by: Sam Ravnborg # # Makefile # 2004/12/24 18:24:28+01:00 ahaas@airmail.net +1 -1 # kbuild: Trivial Makefile patch # # ChangeSet # 2004/12/28 22:59:46+01:00 sam@mars.ravnborg.org # kbuild: skip localversion files with '~' anywhere in their name # # Idea from: Blaisorblade # Signed-off-by: Sam Ravnborg # # Makefile # 2004/12/28 22:59:28+01:00 sam@mars.ravnborg.org +5 -6 # skip localversion files with '~' anywhere in their name # # ChangeSet # 2004/12/28 22:42:36+01:00 mpm@selenic.com # kbuild: make kernelrelease # # This patch makes it easy to programmatically get at the kernel # makefile's idea of the kernel version from external scripts and # makefiles with something like V=`make kernelrelease`. # # Alternatives include parsing Makefile (errorprone and broken by things # like localversion) and running the C preprocessor on version.h (which # requires a) building version.h somewhere and b) is really ugly). # # From: Matt Mackall # Signed-off-by: Sam Ravnborg # # Makefile # 2004/12/21 01:18:25+01:00 mpm@selenic.com +3 -0 # kbuild: make kernelrelease # # ChangeSet # 2004/12/28 22:16:26+01:00 kaos@ocs.com.au # kallsyms: gate page is part of the kernel, honour CONFIG_KALLSYMS_ALL # # * Treat the gate page as part of the kernel, to improve kernel backtraces. # # * Honour CONFIG_KALLSYMS_ALL, all symbols are valid, not just text. # # Signed-off-by: Keith Owens # Signed-off-by: Sam Ravnborg # # kernel/kallsyms.c # 2004/11/28 04:42:24+01:00 kaos@ocs.com.au +11 -4 # kallsyms: gate page is part of the kernel, honour CONFIG_KALLSYMS_ALL # # ChangeSet # 2004/12/28 22:16:00+01:00 kaos@ocs.com.au # kallsyms: Add in_gate_area_no_task() # # Add in_gate_area_no_task() for use in places where no task is valid # (e.g. kallsyms). If you have a valid task, use in_gate_area() as # before. # # Signed-off-by: Keith Owens # Signed-off-by: Sam Ravnborg # # mm/memory.c # 2004/11/28 04:42:20+01:00 kaos@ocs.com.au +1 -1 # kallsyms: Add in_gate_area_no_task() # # include/linux/mm.h # 2004/11/28 04:42:20+01:00 kaos@ocs.com.au +6 -0 # kallsyms: Add in_gate_area_no_task() # # arch/x86_64/mm/init.c # 2004/11/28 04:42:20+01:00 kaos@ocs.com.au +10 -0 # kallsyms: Add in_gate_area_no_task() # # ChangeSet # 2004/12/28 22:15:34+01:00 kaos@ocs.com.au # kallsyms: Clean up x86-64 special casing of in_gate_area() # # x86-64 has special case code for in_gate_area(), but it is not clean. # # * Replace CONFIG_ARCH_GATE_AREA with __HAVE_ARCH_GATE_AREA. # ARCH_GATE_AREA is not a config option. # # * The definitions of get_gate_vma() and in_gate_area() are identical in # include/asm-x86_64/page.h and include/linux/mm.h. Fold the duplicate # definitions into include/linux/mm.h. # # Does not affect kallsyms directly, this patch just creates a clean base # for patch 2. # # Signed-off-by: Keith Owens # Signed-off-by: Sam Ravnborg # # mm/memory.c # 2004/11/28 04:42:14+01:00 kaos@ocs.com.au +2 -2 # kallsyms: Clean up x86-64 special casing of in_gate_area() # # include/linux/mm.h # 2004/11/28 04:42:14+01:00 kaos@ocs.com.au +0 -2 # kallsyms: Clean up x86-64 special casing of in_gate_area() # # include/asm-x86_64/page.h # 2004/11/28 04:42:14+01:00 kaos@ocs.com.au +1 -7 # kallsyms: Clean up x86-64 special casing of in_gate_area() # # ChangeSet # 2004/12/28 22:05:31+01:00 bzolnier@trik.(none) # [ide] serverworks: add support for CSB6 RAID # # From: Alan Cox # # The ServerWorks chips include a RAID variant that the 2.6 driver didn't # support. This enables support for this and removes a pile of #if and # other pointless obfuscations. This removes the need to use various # vendor binary only drivers for CSB6 RAID. # # Signed-off-by: Bartlomiej Zolnierkiewicz # # drivers/ide/pci/serverworks.c # 2004/12/26 19:50:17+01:00 bzolnier@trik.(none) +2 -18 # [ide] serverworks: add support for CSB6 RAID # # ChangeSet # 2004/12/28 20:35:01+01:00 bzolnier@trik.(none) # [ide] add "ide=nodma" to documentation # # Here's a quick patch to add the currently-undocumented ide=nodma option # to the Documentation/ide.txt file. Since the code does not mark this # option as obsolete as far as I can see, I can only assume that it should # be in the documentation # # Signed-off-by: Vadim Lobanov # Signed-off-by: Bartlomiej Zolnierkiewicz # # Documentation/ide.txt # 2004/12/26 22:58:19+01:00 bzolnier@trik.(none) +2 -0 # [ide] add "ide=nodma" to documentation # # ChangeSet # 2004/12/28 19:12:15+01:00 sam@mars.ravnborg.org # kbuild: drop use of /usr/bin/env in top-level Makefile # # The use of env is not needed, and caused the output makefile to be # created in some setups where it was not supposed to. # Seems to be an issue with GNU sh-utils version of env. # # One user also reported env to be located in another place (/usr/local/bin/..). # This patch fixes bug: http://bugme.osdl.org/show_bug.cgi?id=3953 # # Thanks to "Mark Williams (MWP)" for helping tracking this down. # # Signed-off-by: Sam Ravnborg # # Makefile # 2004/12/28 19:11:36+01:00 sam@mars.ravnborg.org +1 -1 # Drop usage of /usr/bin/env # # ChangeSet # 2004/12/27 22:45:18-08:00 davem@nuts.davemloft.net # [SPARC64]: Include infiniband driver config and update defconfig. # # Signed-off-by: David S. Miller # # arch/sparc64/defconfig # 2004/12/27 22:44:46-08:00 davem@nuts.davemloft.net +24 -4 # [SPARC64]: Include infiniband driver config and update defconfig. # # arch/sparc64/Kconfig # 2004/12/27 22:44:46-08:00 davem@nuts.davemloft.net +2 -0 # [SPARC64]: Include infiniband driver config and update defconfig. # # ChangeSet # 2004/12/27 22:30:04-08:00 davem@nuts.davemloft.net # Merge nuts.davemloft.net:/disk1/BK/ib-2.6 # into nuts.davemloft.net:/disk1/BK/net-2.6 # # net/ipv4/arp.c # 2004/12/27 22:29:52-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # include/net/ip.h # 2004/12/27 22:29:52-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # MAINTAINERS # 2004/12/27 22:29:52-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # ChangeSet # 2004/12/27 22:26:29-08:00 roland@topspin.com # [INFINIBAND]: InfiniBand MAINTAINERS entry # # Add OpenIB maintainers information to MAINTAINERS. # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # MAINTAINERS # 2004/12/27 22:26:10-08:00 roland@topspin.com +11 -0 # [INFINIBAND]: InfiniBand MAINTAINERS entry # # Add OpenIB maintainers information to MAINTAINERS. # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 22:25:37-08:00 roland@topspin.com # [INFINIBAND]: Add InfiniBand Documentation files # # Add files to Documentation/infiniband that describe the tree under # /sys/class/infiniband, the IPoIB driver and the userspace MAD access driver. # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # Documentation/infiniband/user_mad.txt # 2004/12/27 22:25:05-08:00 roland@topspin.com +81 -0 # [INFINIBAND]: Add InfiniBand Documentation files # # Documentation/infiniband/sysfs.txt # 2004/12/27 22:25:05-08:00 roland@topspin.com +64 -0 # [INFINIBAND]: Add InfiniBand Documentation files # # Documentation/infiniband/user_mad.txt # 2004/12/27 22:25:05-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/Documentation/infiniband/user_mad.txt # # Documentation/infiniband/sysfs.txt # 2004/12/27 22:25:05-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/Documentation/infiniband/sysfs.txt # # Documentation/infiniband/ipoib.txt # 2004/12/27 22:25:04-08:00 roland@topspin.com +56 -0 # [INFINIBAND]: Add InfiniBand Documentation files # # Documentation/infiniband/ipoib.txt # 2004/12/27 22:25:04-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/Documentation/infiniband/ipoib.txt # # ChangeSet # 2004/12/27 22:24:37-08:00 roland@topspin.com # [INFINIBAND]: Document InfiniBand ioctl use # # Add the 0x1b ioctl magic number used by ib_umad module to # Documentation/ioctl-number.txt. # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # Documentation/ioctl-number.txt # 2004/12/27 22:24:18-08:00 roland@topspin.com +1 -0 # [INFINIBAND]: Document InfiniBand ioctl use # # Add the 0x1b ioctl magic number used by ib_umad module to # Documentation/ioctl-number.txt. # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 22:23:44-08:00 roland@topspin.com # [INFINIBAND]: Add IPoIB userspace MAD support # # Add a driver that provides a character special device for each # InfiniBand port. This device allows userspace to send and receive # MADs via write() and read() (with some control operations implemented # as ioctls). # # All operations are 32/64 clean and have been tested with 32-bit # userspace running on a ppc64 kernel. # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # drivers/infiniband/core/Makefile # 2004/12/27 22:23:12-08:00 roland@topspin.com +3 -1 # [INFINIBAND]: Add IPoIB userspace MAD support # # drivers/infiniband/include/ib_user_mad.h # 2004/12/27 22:23:10-08:00 roland@topspin.com +123 -0 # [INFINIBAND]: Add IPoIB userspace MAD support # # drivers/infiniband/include/ib_user_mad.h # 2004/12/27 22:23:10-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/include/ib_user_mad.h # # drivers/infiniband/core/user_mad.c # 2004/12/27 22:23:08-08:00 roland@topspin.com +738 -0 # [INFINIBAND]: Add IPoIB userspace MAD support # # drivers/infiniband/core/user_mad.c # 2004/12/27 22:23:08-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/core/user_mad.c # # ChangeSet # 2004/12/27 22:22:21-08:00 roland@topspin.com # [INFINIBAND]: Add IPoIB multicast and partition code # # Add functions for handling IPoIB multicast and multiple partitions. # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # drivers/infiniband/ulp/ipoib/ipoib_vlan.c # 2004/12/27 22:21:51-08:00 roland@topspin.com +177 -0 # [INFINIBAND]: Add IPoIB multicast and partition code # # drivers/infiniband/ulp/ipoib/ipoib_vlan.c # 2004/12/27 22:21:51-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/ulp/ipoib/ipoib_vlan.c # # drivers/infiniband/ulp/ipoib/ipoib_multicast.c # 2004/12/27 22:21:49-08:00 roland@topspin.com +981 -0 # [INFINIBAND]: Add IPoIB multicast and partition code # # drivers/infiniband/ulp/ipoib/ipoib_multicast.c # 2004/12/27 22:21:49-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/ulp/ipoib/ipoib_multicast.c # # ChangeSet # 2004/12/27 22:21:15-08:00 roland@topspin.com # [INFINIBAND]: Add IPoIB (IP-over-InfiniBand) driver # # Add a driver that implements the (IPoIB) IP-over-InfiniBand protocol. # This is a network device driver of type ARPHRD_INFINIBAND (and # addr_len INFINIBAND_ALEN bytes). # # The ARP/ND implementation for this driver is not completely # straightforward, because InfiniBand requires an additional path lookup # be performed (through an IB-specific mechanism) after a remote # hardware address has been resolved. We are very open to suggestions # of a better way to handle this than the current implementation. # # Although IB has a special multicast group join mode intended to # support IP multicast routing (non member join), no means to identify # different multicast styles has yet been determined, so all joins by # the driver are currently full member joins. We are looking for # guidance in how to solve this. # # The IPoIB protocol/encapsulation is described in the Internet-Drafts # http://www.ietf.org/internet-drafts/draft-ietf-ipoib-architecture-04.txt # http://www.ietf.org/internet-drafts/draft-ietf-ipoib-ip-over-infiniband-08.txt # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # drivers/infiniband/Makefile # 2004/12/27 22:20:37-08:00 roland@topspin.com +1 -0 # [INFINIBAND]: Add IPoIB (IP-over-InfiniBand) driver # # drivers/infiniband/Kconfig # 2004/12/27 22:20:37-08:00 roland@topspin.com +2 -0 # [INFINIBAND]: Add IPoIB (IP-over-InfiniBand) driver # # drivers/infiniband/ulp/ipoib/ipoib_verbs.c # 2004/12/27 22:20:35-08:00 roland@topspin.com +254 -0 # [INFINIBAND]: Add IPoIB (IP-over-InfiniBand) driver # # drivers/infiniband/ulp/ipoib/ipoib_main.c # 2004/12/27 22:20:35-08:00 roland@topspin.com +1079 -0 # [INFINIBAND]: Add IPoIB (IP-over-InfiniBand) driver # # drivers/infiniband/ulp/ipoib/ipoib_ib.c # 2004/12/27 22:20:35-08:00 roland@topspin.com +678 -0 # [INFINIBAND]: Add IPoIB (IP-over-InfiniBand) driver # # drivers/infiniband/ulp/ipoib/ipoib_fs.c # 2004/12/27 22:20:35-08:00 roland@topspin.com +287 -0 # [INFINIBAND]: Add IPoIB (IP-over-InfiniBand) driver # # drivers/infiniband/ulp/ipoib/ipoib.h # 2004/12/27 22:20:35-08:00 roland@topspin.com +350 -0 # [INFINIBAND]: Add IPoIB (IP-over-InfiniBand) driver # # drivers/infiniband/ulp/ipoib/Makefile # 2004/12/27 22:20:35-08:00 roland@topspin.com +11 -0 # [INFINIBAND]: Add IPoIB (IP-over-InfiniBand) driver # # drivers/infiniband/ulp/ipoib/ipoib_verbs.c # 2004/12/27 22:20:35-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/ulp/ipoib/ipoib_verbs.c # # drivers/infiniband/ulp/ipoib/ipoib_main.c # 2004/12/27 22:20:35-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/ulp/ipoib/ipoib_main.c # # drivers/infiniband/ulp/ipoib/ipoib_ib.c # 2004/12/27 22:20:35-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/ulp/ipoib/ipoib_ib.c # # drivers/infiniband/ulp/ipoib/ipoib_fs.c # 2004/12/27 22:20:35-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/ulp/ipoib/ipoib_fs.c # # drivers/infiniband/ulp/ipoib/ipoib.h # 2004/12/27 22:20:35-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/ulp/ipoib/ipoib.h # # drivers/infiniband/ulp/ipoib/Makefile # 2004/12/27 22:20:35-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/ulp/ipoib/Makefile # # drivers/infiniband/ulp/ipoib/Kconfig # 2004/12/27 22:20:33-08:00 roland@topspin.com +33 -0 # [INFINIBAND]: Add IPoIB (IP-over-InfiniBand) driver # # drivers/infiniband/ulp/ipoib/Kconfig # 2004/12/27 22:20:33-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/ulp/ipoib/Kconfig # # ChangeSet # 2004/12/27 22:19:47-08:00 roland@topspin.com # [INFINIBAND]: IPoIB IPv6 support # # Add ipv6_ib_mc_map() to convert IPv6 multicast addresses to IPoIB # hardware addresses, and add support for autoconfiguration for devices # with type ARPHRD_INFINIBAND. # # The mapping for multicast addresses is described in # http://www.ietf.org/internet-drafts/draft-ietf-ipoib-ip-over-infiniband-08.txt # # Signed-off-by: Nitin Hande # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # net/ipv6/ndisc.c # 2004/12/27 22:19:28-08:00 roland@topspin.com +3 -0 # [INFINIBAND]: IPoIB IPv6 support # # Add ipv6_ib_mc_map() to convert IPv6 multicast addresses to IPoIB # hardware addresses, and add support for autoconfiguration for devices # with type ARPHRD_INFINIBAND. # # The mapping for multicast addresses is described in # http://www.ietf.org/internet-drafts/draft-ietf-ipoib-ip-over-infiniband-08.txt # # Signed-off-by: Nitin Hande # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # net/ipv6/addrconf.c # 2004/12/27 22:19:28-08:00 roland@topspin.com +9 -1 # [INFINIBAND]: IPoIB IPv6 support # # Add ipv6_ib_mc_map() to convert IPv6 multicast addresses to IPoIB # hardware addresses, and add support for autoconfiguration for devices # with type ARPHRD_INFINIBAND. # # The mapping for multicast addresses is described in # http://www.ietf.org/internet-drafts/draft-ietf-ipoib-ip-over-infiniband-08.txt # # Signed-off-by: Nitin Hande # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # include/net/if_inet6.h # 2004/12/27 22:19:27-08:00 roland@topspin.com +15 -0 # [INFINIBAND]: IPoIB IPv6 support # # Add ipv6_ib_mc_map() to convert IPv6 multicast addresses to IPoIB # hardware addresses, and add support for autoconfiguration for devices # with type ARPHRD_INFINIBAND. # # The mapping for multicast addresses is described in # http://www.ietf.org/internet-drafts/draft-ietf-ipoib-ip-over-infiniband-08.txt # # Signed-off-by: Nitin Hande # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 22:18:50-08:00 roland@topspin.com # [INFINIBAND]: IPoIB IPv4 multicast # # Add ip_ib_mc_map() to convert IPv4 multicast addresses to IPoIB # hardware addresses. Also add so INFINIBAND_ALEN # has a home. # # The mapping for multicast addresses is described in # http://www.ietf.org/internet-drafts/draft-ietf-ipoib-ip-over-infiniband-08.txt # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # net/ipv4/arp.c # 2004/12/27 22:18:16-08:00 roland@topspin.com +3 -0 # [INFINIBAND]: IPoIB IPv4 multicast # # include/net/ip.h # 2004/12/27 22:18:16-08:00 roland@topspin.com +33 -0 # [INFINIBAND]: IPoIB IPv4 multicast # # include/linux/if_infiniband.h # 2004/12/27 22:18:10-08:00 roland@topspin.com +29 -0 # [INFINIBAND]: IPoIB IPv4 multicast # # include/linux/if_infiniband.h # 2004/12/27 22:18:10-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/include/linux/if_infiniband.h # # ChangeSet # 2004/12/27 22:17:23-08:00 roland@topspin.com # [INFINIBAND]: Add Mellanox HCA low-level driver (MAD) # # Add MAD (management datagram) code for Mellanox HCA driver. # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # drivers/infiniband/hw/mthca/mthca_mad.c # 2004/12/27 22:16:54-08:00 roland@topspin.com +320 -0 # [INFINIBAND]: Add Mellanox HCA low-level driver (MAD) # # drivers/infiniband/hw/mthca/mthca_mad.c # 2004/12/27 22:16:54-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/hw/mthca/mthca_mad.c # # ChangeSet # 2004/12/27 22:16:33-08:00 roland@topspin.com # [INFINIBAND]: Add Mellanox HCA low-level driver (last bits) # # Add code for remaining InfiniBand objects (address vectors, multicast # groups, memory regions and protection domains) # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # drivers/infiniband/hw/mthca/mthca_pd.c # 2004/12/27 22:16:03-08:00 roland@topspin.com +80 -0 # [INFINIBAND]: Add Mellanox HCA low-level driver (last bits) # # drivers/infiniband/hw/mthca/mthca_mr.c # 2004/12/27 22:16:03-08:00 roland@topspin.com +396 -0 # [INFINIBAND]: Add Mellanox HCA low-level driver (last bits) # # drivers/infiniband/hw/mthca/mthca_mcg.c # 2004/12/27 22:16:03-08:00 roland@topspin.com +376 -0 # [INFINIBAND]: Add Mellanox HCA low-level driver (last bits) # # drivers/infiniband/hw/mthca/mthca_pd.c # 2004/12/27 22:16:03-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/hw/mthca/mthca_pd.c # # drivers/infiniband/hw/mthca/mthca_mr.c # 2004/12/27 22:16:03-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/hw/mthca/mthca_mr.c # # drivers/infiniband/hw/mthca/mthca_mcg.c # 2004/12/27 22:16:03-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/hw/mthca/mthca_mcg.c # # drivers/infiniband/hw/mthca/mthca_av.c # 2004/12/27 22:16:02-08:00 roland@topspin.com +219 -0 # [INFINIBAND]: Add Mellanox HCA low-level driver (last bits) # # drivers/infiniband/hw/mthca/mthca_av.c # 2004/12/27 22:16:02-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/hw/mthca/mthca_av.c # # ChangeSet # 2004/12/27 22:15:37-08:00 roland@topspin.com # [INFINIBAND]: Add Mellanox HCA low-level driver (QP/CQ) # # Add CQ (completion queue) and QP (queue pair) code for Mellanox HCA driver. # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # drivers/infiniband/hw/mthca/mthca_qp.c # 2004/12/27 22:15:08-08:00 roland@topspin.com +1536 -0 # [INFINIBAND]: Add Mellanox HCA low-level driver (QP/CQ) # # drivers/infiniband/hw/mthca/mthca_qp.c # 2004/12/27 22:15:08-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/hw/mthca/mthca_qp.c # # drivers/infiniband/hw/mthca/mthca_cq.c # 2004/12/27 22:15:07-08:00 roland@topspin.com +836 -0 # [INFINIBAND]: Add Mellanox HCA low-level driver (QP/CQ) # # drivers/infiniband/hw/mthca/mthca_cq.c # 2004/12/27 22:15:07-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/hw/mthca/mthca_cq.c # # ChangeSet # 2004/12/27 22:14:43-08:00 roland@topspin.com # [INFINIBAND]: Add Mellanox HCA low-level driver (initialization) # # Add device initializaton code for Mellanox HCA driver. # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # drivers/infiniband/hw/mthca/mthca_reset.c # 2004/12/27 22:14:13-08:00 roland@topspin.com +232 -0 # [INFINIBAND]: Add Mellanox HCA low-level driver (initialization) # # drivers/infiniband/hw/mthca/mthca_profile.h # 2004/12/27 22:14:13-08:00 roland@topspin.com +62 -0 # [INFINIBAND]: Add Mellanox HCA low-level driver (initialization) # # drivers/infiniband/hw/mthca/mthca_reset.c # 2004/12/27 22:14:13-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/hw/mthca/mthca_reset.c # # drivers/infiniband/hw/mthca/mthca_profile.h # 2004/12/27 22:14:13-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/hw/mthca/mthca_profile.h # # drivers/infiniband/hw/mthca/mthca_profile.c # 2004/12/27 22:14:11-08:00 roland@topspin.com +226 -0 # [INFINIBAND]: Add Mellanox HCA low-level driver (initialization) # # drivers/infiniband/hw/mthca/mthca_profile.c # 2004/12/27 22:14:11-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/hw/mthca/mthca_profile.c # # ChangeSet # 2004/12/27 22:13:44-08:00 roland@topspin.com # [INFINIBAND]: Add Mellanox HCA low-level driver (EQ) # # Add event queue code for Mellanox HCA driver. # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # drivers/infiniband/hw/mthca/mthca_eq.c # 2004/12/27 22:13:13-08:00 roland@topspin.com +690 -0 # [INFINIBAND]: Add Mellanox HCA low-level driver (EQ) # # drivers/infiniband/hw/mthca/mthca_eq.c # 2004/12/27 22:13:13-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/hw/mthca/mthca_eq.c # # ChangeSet # 2004/12/27 22:12:48-08:00 roland@topspin.com # [INFINIBAND]: Add Mellanox HCA low-level driver (FW commands) # # Add firmware command processing code for Mellanox HCA driver. # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # drivers/infiniband/hw/mthca/mthca_cmd.h # 2004/12/27 22:12:16-08:00 roland@topspin.com +276 -0 # [INFINIBAND]: Add Mellanox HCA low-level driver (FW commands) # # drivers/infiniband/hw/mthca/mthca_cmd.h # 2004/12/27 22:12:16-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/hw/mthca/mthca_cmd.h # # drivers/infiniband/hw/mthca/mthca_cmd.c # 2004/12/27 22:12:15-08:00 roland@topspin.com +1573 -0 # [INFINIBAND]: Add Mellanox HCA low-level driver (FW commands) # # drivers/infiniband/hw/mthca/mthca_cmd.c # 2004/12/27 22:12:15-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/hw/mthca/mthca_cmd.c # # ChangeSet # 2004/12/27 22:11:50-08:00 roland@topspin.com # [INFINIBAND]: Add Mellanox HCA low-level driver (midlayer interface) # # Add midlayer interface code for Mellanox HCA driver. # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # drivers/infiniband/hw/mthca/mthca_provider.h # 2004/12/27 22:11:18-08:00 roland@topspin.com +225 -0 # [INFINIBAND]: Add Mellanox HCA low-level driver (midlayer interface) # # drivers/infiniband/hw/mthca/mthca_provider.h # 2004/12/27 22:11:18-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/hw/mthca/mthca_provider.h # # drivers/infiniband/hw/mthca/mthca_provider.c # 2004/12/27 22:11:16-08:00 roland@topspin.com +627 -0 # [INFINIBAND]: Add Mellanox HCA low-level driver (midlayer interface) # # drivers/infiniband/hw/mthca/mthca_provider.c # 2004/12/27 22:11:16-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/hw/mthca/mthca_provider.c # # ChangeSet # 2004/12/27 22:10:49-08:00 roland@topspin.com # [INFINIBAND]: Add Mellanox HCA low-level driver # # Add a low-level driver for Mellanox MT23108 and MT25208 HCAs. The # MT25208 is only fully supported when in MT23108 compatibility mode; # only the very beginnings of support for native MT25208 mode (required # for HCAs without local memory) is present. # # (As a side note, I believe this driver would be the first in-tree # consumer of the PCI MSI/MSI-X API) # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # drivers/infiniband/Makefile # 2004/12/27 22:10:10-08:00 roland@topspin.com +1 -0 # [INFINIBAND]: Add Mellanox HCA low-level driver # # drivers/infiniband/Kconfig # 2004/12/27 22:10:10-08:00 roland@topspin.com +2 -0 # [INFINIBAND]: Add Mellanox HCA low-level driver # # drivers/infiniband/hw/mthca/mthca_main.c # 2004/12/27 22:10:08-08:00 roland@topspin.com +936 -0 # [INFINIBAND]: Add Mellanox HCA low-level driver # # drivers/infiniband/hw/mthca/mthca_doorbell.h # 2004/12/27 22:10:08-08:00 roland@topspin.com +123 -0 # [INFINIBAND]: Add Mellanox HCA low-level driver # # drivers/infiniband/hw/mthca/mthca_dev.h # 2004/12/27 22:10:08-08:00 roland@topspin.com +391 -0 # [INFINIBAND]: Add Mellanox HCA low-level driver # # drivers/infiniband/hw/mthca/mthca_config_reg.h # 2004/12/27 22:10:08-08:00 roland@topspin.com +55 -0 # [INFINIBAND]: Add Mellanox HCA low-level driver # # drivers/infiniband/hw/mthca/mthca_allocator.c # 2004/12/27 22:10:08-08:00 roland@topspin.com +179 -0 # [INFINIBAND]: Add Mellanox HCA low-level driver # # drivers/infiniband/hw/mthca/Makefile # 2004/12/27 22:10:08-08:00 roland@topspin.com +12 -0 # [INFINIBAND]: Add Mellanox HCA low-level driver # # drivers/infiniband/hw/mthca/mthca_main.c # 2004/12/27 22:10:08-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/hw/mthca/mthca_main.c # # drivers/infiniband/hw/mthca/mthca_doorbell.h # 2004/12/27 22:10:08-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/hw/mthca/mthca_doorbell.h # # drivers/infiniband/hw/mthca/mthca_dev.h # 2004/12/27 22:10:08-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/hw/mthca/mthca_dev.h # # drivers/infiniband/hw/mthca/mthca_config_reg.h # 2004/12/27 22:10:08-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/hw/mthca/mthca_config_reg.h # # drivers/infiniband/hw/mthca/mthca_allocator.c # 2004/12/27 22:10:08-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/hw/mthca/mthca_allocator.c # # drivers/infiniband/hw/mthca/Makefile # 2004/12/27 22:10:08-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/hw/mthca/Makefile # # drivers/infiniband/hw/mthca/Kconfig # 2004/12/27 22:10:06-08:00 roland@topspin.com +26 -0 # [INFINIBAND]: Add Mellanox HCA low-level driver # # drivers/infiniband/hw/mthca/Kconfig # 2004/12/27 22:10:06-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/hw/mthca/Kconfig # # ChangeSet # 2004/12/27 22:09:20-08:00 roland@topspin.com # [INFINIBAND]: Add InfiniBand SA (Subnet Administration) query support # # Add support for sending queries to the SA (Subnet Administration). In # particular the PathRecord and MCMember (multicast group member) used # by the IP-over-InfiniBand driver are implemented. # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # drivers/infiniband/core/Makefile # 2004/12/27 22:08:42-08:00 roland@topspin.com +3 -1 # [INFINIBAND]: Add InfiniBand SA (Subnet Administration) query support # # drivers/infiniband/include/ib_sa.h # 2004/12/27 22:08:39-08:00 roland@topspin.com +280 -0 # [INFINIBAND]: Add InfiniBand SA (Subnet Administration) query support # # drivers/infiniband/include/ib_sa.h # 2004/12/27 22:08:39-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/include/ib_sa.h # # drivers/infiniband/core/sa_query.c # 2004/12/27 22:08:37-08:00 roland@topspin.com +866 -0 # [INFINIBAND]: Add InfiniBand SA (Subnet Administration) query support # # drivers/infiniband/core/sa_query.c # 2004/12/27 22:08:37-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/core/sa_query.c # # ChangeSet # 2004/12/27 22:07:43-08:00 roland@topspin.com # [INFINIBAND]: Add InfiniBand MAD SMI support # # Add MAD layer SMI (Subnet Management Interface) code. # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # drivers/infiniband/core/smi.h # 2004/12/27 22:07:11-08:00 roland@topspin.com +67 -0 # [INFINIBAND]: Add InfiniBand MAD SMI support # # drivers/infiniband/core/smi.h # 2004/12/27 22:07:11-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/core/smi.h # # drivers/infiniband/core/smi.c # 2004/12/27 22:07:09-08:00 roland@topspin.com +234 -0 # [INFINIBAND]: Add InfiniBand MAD SMI support # # drivers/infiniband/core/smi.c # 2004/12/27 22:07:09-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/core/smi.c # # ChangeSet # 2004/12/27 22:06:34-08:00 roland@topspin.com # [INFINIBAND]: Add InfiniBand MAD (management datagram) support (private headers) # # Add MAD layer private implementation headers. # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # drivers/infiniband/core/mad_priv.h # 2004/12/27 22:06:02-08:00 roland@topspin.com +194 -0 # [INFINIBAND]: Add InfiniBand MAD (management datagram) support (private headers) # # drivers/infiniband/core/agent_priv.h # 2004/12/27 22:06:02-08:00 roland@topspin.com +64 -0 # [INFINIBAND]: Add InfiniBand MAD (management datagram) support (private headers) # # drivers/infiniband/core/mad_priv.h # 2004/12/27 22:06:02-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/core/mad_priv.h # # drivers/infiniband/core/agent_priv.h # 2004/12/27 22:06:02-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/core/agent_priv.h # # drivers/infiniband/core/agent.h # 2004/12/27 22:06:00-08:00 roland@topspin.com +55 -0 # [INFINIBAND]: Add InfiniBand MAD (management datagram) support (private headers) # # drivers/infiniband/core/agent.h # 2004/12/27 22:06:00-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/core/agent.h # # ChangeSet # 2004/12/27 22:05:25-08:00 roland@topspin.com # [INFINIBAND]: Add InfiniBand MAD (management datagram) support # # Add support for handling InfiniBand MADs (management datagrams), # including sending and receiving MADs as well as passing MADs on to # local agents. # # This is required for an SM (subnet manager) to discover and configure # the host, since the SM's query MADs must be passed to the local SMA # (subnet management agent). In addition, this support is used by upper # level protocols to send queries to and receive responses from the SM. # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # drivers/infiniband/core/Makefile # 2004/12/27 22:04:49-08:00 roland@topspin.com +3 -1 # [INFINIBAND]: Add InfiniBand MAD (management datagram) support # # drivers/infiniband/core/mad.c # 2004/12/27 22:04:26-08:00 roland@topspin.com +2632 -0 # [INFINIBAND]: Add InfiniBand MAD (management datagram) support # # drivers/infiniband/core/mad.c # 2004/12/27 22:04:26-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/core/mad.c # # drivers/infiniband/core/agent.c # 2004/12/27 22:04:25-08:00 roland@topspin.com +399 -0 # [INFINIBAND]: Add InfiniBand MAD (management datagram) support # # drivers/infiniband/core/agent.c # 2004/12/27 22:04:25-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/core/agent.c # # ChangeSet # 2004/12/27 22:03:33-08:00 roland@topspin.com # [INFINIBAND]: Add InfiniBand MAD (management datagram) support (public headers) # # Add public headers for handling InfiniBand MADs (management # datagrams), including sending and receiving MADs as well as passing # MADs on to local agents. # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # drivers/infiniband/include/ib_smi.h # 2004/12/27 22:03:05-08:00 roland@topspin.com +96 -0 # [INFINIBAND]: Add InfiniBand MAD (management datagram) support (public headers) # # drivers/infiniband/include/ib_smi.h # 2004/12/27 22:03:05-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/include/ib_smi.h # # drivers/infiniband/include/ib_mad.h # 2004/12/27 22:03:03-08:00 roland@topspin.com +404 -0 # [INFINIBAND]: Add InfiniBand MAD (management datagram) support (public headers) # # drivers/infiniband/include/ib_mad.h # 2004/12/27 22:03:03-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/include/ib_mad.h # # ChangeSet # 2004/12/27 22:02:08-08:00 roland@topspin.com # [INFINIBAND]: Hook up drivers/infiniband # # Add the appropriate lines to drivers/Kconfig and drivers/Makefile so # that the kernel configuration and build systems know about drivers/infiniband. # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # drivers/Makefile # 2004/12/27 22:01:46-08:00 roland@topspin.com +1 -0 # [INFINIBAND]: Hook up drivers/infiniband # # Add the appropriate lines to drivers/Kconfig and drivers/Makefile so # that the kernel configuration and build systems know about drivers/infiniband. # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # drivers/Kconfig # 2004/12/27 22:01:46-08:00 roland@topspin.com +2 -0 # [INFINIBAND]: Hook up drivers/infiniband # # Add the appropriate lines to drivers/Kconfig and drivers/Makefile so # that the kernel configuration and build systems know about drivers/infiniband. # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 21:58:49-08:00 roland@topspin.com # [INFINIBAND]: Add core InfiniBand support # # Add implementation of core InfiniBand support. This can be thought of # as a midlayer that provides an abstraction between low-level hardware # drivers and upper level protocols (such as IP-over-InfiniBand). # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # drivers/infiniband/core/verbs.c # 2004/12/27 21:58:13-08:00 roland@topspin.com +433 -0 # [INFINIBAND]: Add core InfiniBand support # # drivers/infiniband/core/ud_header.c # 2004/12/27 21:58:13-08:00 roland@topspin.com +365 -0 # [INFINIBAND]: Add core InfiniBand support # # drivers/infiniband/core/sysfs.c # 2004/12/27 21:58:13-08:00 roland@topspin.com +725 -0 # [INFINIBAND]: Add core InfiniBand support # # drivers/infiniband/core/packer.c # 2004/12/27 21:58:13-08:00 roland@topspin.com +201 -0 # [INFINIBAND]: Add core InfiniBand support # # drivers/infiniband/core/fmr_pool.c # 2004/12/27 21:58:13-08:00 roland@topspin.com +507 -0 # [INFINIBAND]: Add core InfiniBand support # # drivers/infiniband/core/device.c # 2004/12/27 21:58:13-08:00 roland@topspin.com +614 -0 # [INFINIBAND]: Add core InfiniBand support # # drivers/infiniband/core/core_priv.h # 2004/12/27 21:58:13-08:00 roland@topspin.com +52 -0 # [INFINIBAND]: Add core InfiniBand support # # drivers/infiniband/core/cache.c # 2004/12/27 21:58:13-08:00 roland@topspin.com +328 -0 # [INFINIBAND]: Add core InfiniBand support # # drivers/infiniband/core/Makefile # 2004/12/27 21:58:13-08:00 roland@topspin.com +6 -0 # [INFINIBAND]: Add core InfiniBand support # # drivers/infiniband/Makefile # 2004/12/27 21:58:13-08:00 roland@topspin.com +1 -0 # [INFINIBAND]: Add core InfiniBand support # # drivers/infiniband/core/verbs.c # 2004/12/27 21:58:13-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/core/verbs.c # # drivers/infiniband/core/ud_header.c # 2004/12/27 21:58:13-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/core/ud_header.c # # drivers/infiniband/core/sysfs.c # 2004/12/27 21:58:13-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/core/sysfs.c # # drivers/infiniband/core/packer.c # 2004/12/27 21:58:13-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/core/packer.c # # drivers/infiniband/core/fmr_pool.c # 2004/12/27 21:58:13-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/core/fmr_pool.c # # drivers/infiniband/core/device.c # 2004/12/27 21:58:13-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/core/device.c # # drivers/infiniband/core/core_priv.h # 2004/12/27 21:58:13-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/core/core_priv.h # # drivers/infiniband/core/cache.c # 2004/12/27 21:58:13-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/core/cache.c # # drivers/infiniband/core/Makefile # 2004/12/27 21:58:13-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/core/Makefile # # drivers/infiniband/Makefile # 2004/12/27 21:58:13-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/Makefile # # drivers/infiniband/Kconfig # 2004/12/27 21:58:11-08:00 roland@topspin.com +10 -0 # [INFINIBAND]: Add core InfiniBand support # # drivers/infiniband/Kconfig # 2004/12/27 21:58:11-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/Kconfig # # ChangeSet # 2004/12/27 21:57:29-08:00 roland@topspin.com # [INFINIBAND]: Add core InfiniBand support (public headers) # # Add public headers for core InfiniBand support. This can be thought # of as a midlayer that provides an abstraction between low-level # hardware drivers and upper level protocols (such as # IP-over-InfiniBand). # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # drivers/infiniband/include/ib_verbs.h # 2004/12/27 21:56:56-08:00 roland@topspin.com +1249 -0 # [INFINIBAND]: Add core InfiniBand support (public headers) # # Add public headers for core InfiniBand support. This can be thought # of as a midlayer that provides an abstraction between low-level # hardware drivers and upper level protocols (such as # IP-over-InfiniBand). # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # drivers/infiniband/include/ib_pack.h # 2004/12/27 21:56:56-08:00 roland@topspin.com +245 -0 # [INFINIBAND]: Add core InfiniBand support (public headers) # # Add public headers for core InfiniBand support. This can be thought # of as a midlayer that provides an abstraction between low-level # hardware drivers and upper level protocols (such as # IP-over-InfiniBand). # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # drivers/infiniband/include/ib_fmr_pool.h # 2004/12/27 21:56:56-08:00 roland@topspin.com +92 -0 # [INFINIBAND]: Add core InfiniBand support (public headers) # # Add public headers for core InfiniBand support. This can be thought # of as a midlayer that provides an abstraction between low-level # hardware drivers and upper level protocols (such as # IP-over-InfiniBand). # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # drivers/infiniband/include/ib_verbs.h # 2004/12/27 21:56:56-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/include/ib_verbs.h # # drivers/infiniband/include/ib_pack.h # 2004/12/27 21:56:56-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/include/ib_pack.h # # drivers/infiniband/include/ib_fmr_pool.h # 2004/12/27 21:56:56-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/include/ib_fmr_pool.h # # drivers/infiniband/include/ib_cache.h # 2004/12/27 21:56:54-08:00 roland@topspin.com +53 -0 # [INFINIBAND]: Add core InfiniBand support (public headers) # # Add public headers for core InfiniBand support. This can be thought # of as a midlayer that provides an abstraction between low-level # hardware drivers and upper level protocols (such as # IP-over-InfiniBand). # # Signed-off-by: Roland Dreier # Signed-off-by: David S. Miller # # drivers/infiniband/include/ib_cache.h # 2004/12/27 21:56:54-08:00 roland@topspin.com +0 -0 # BitKeeper file /disk1/BK/ib-2.6/drivers/infiniband/include/ib_cache.h # # ChangeSet # 2004/12/27 21:30:55-08:00 davem@nuts.davemloft.net # Merge bk://kernel.bkbits.net/acme/connection_sock-2.6 # into nuts.davemloft.net:/disk1/BK/net-2.6 # # net/ipv4/udp.c # 2004/12/27 21:30:44-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/tcp_timer.c # 2004/12/27 21:30:44-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/tcp_minisocks.c # 2004/12/27 21:30:43-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/tcp_input.c # 2004/12/27 21:30:43-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/raw.c # 2004/12/27 21:30:43-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/ip_sockglue.c # 2004/12/27 21:30:43-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/igmp.c # 2004/12/27 21:30:43-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/icmp.c # 2004/12/27 21:30:43-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/af_inet.c # 2004/12/27 21:30:43-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # include/net/tcp.h # 2004/12/27 21:30:42-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # ChangeSet # 2004/12/27 21:26:00-08:00 tgraf@suug.ch # [PKT_SCHED]: dsmark should ignore ECN bits # # Taking ECN bits into account doesn't make sense. The two bits were # still unused at the time the code was written so this brings back the # old behaviour. # # Signed-off-by: Thomas Graf # Signed-off-by: David S. Miller # # net/sched/sch_dsmark.c # 2004/12/27 21:25:39-08:00 tgraf@suug.ch +5 -2 # [PKT_SCHED]: dsmark should ignore ECN bits # # Taking ECN bits into account doesn't make sense. The two bits were # still unused at the time the code was written so this brings back the # old behaviour. # # Signed-off-by: Thomas Graf # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 21:25:02-08:00 oleg@tv-sign.ru # [NET]: Use prefetching in skb_queue_walk(). # # This patch changes skb_queue_walk() in the same manner # as in list_for_each() prefetch optimization, see # http://marc.theaimsgroup.com/?l=linux-kernel&m=110399132418587 # # Signed-off-by: Oleg Nesterov # Signed-off-by: David S. Miller # # include/linux/skbuff.h # 2004/12/27 21:24:42-08:00 oleg@tv-sign.ru +3 -3 # [NET]: Use prefetching in skb_queue_walk(). # # This patch changes skb_queue_walk() in the same manner # as in list_for_each() prefetch optimization, see # http://marc.theaimsgroup.com/?l=linux-kernel&m=110399132418587 # # Signed-off-by: Oleg Nesterov # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 21:12:16-08:00 davem@nuts.davemloft.net # [LLC]: llc_sap_list_lock really does need to be exported. # # For the case where CONFIG_LLC2 is modular and thus # llc_proc.c needs to get at this symbol. # # Signed-off-by: David S. Miller # # net/llc/llc_core.c # 2004/12/27 21:11:29-08:00 davem@nuts.davemloft.net +1 -0 # [LLC]: llc_sap_list_lock really does need to be exported. # # ChangeSet # 2004/12/27 21:08:40-08:00 davem@nuts.davemloft.net # [SPARC64]: Fix typo in previous change, s/IS_SOCK/S_ISSOCK/ # # Signed-off-by: David S. Miller # # arch/sparc64/solaris/timod.c # 2004/12/27 21:08:08-08:00 davem@nuts.davemloft.net +1 -1 # [SPARC64]: Fix typo in previous change, s/IS_SOCK/S_ISSOCK/ # # ChangeSet # 2004/12/27 21:04:56-08:00 davem@nuts.davemloft.net # [IRDA]: More staticization becomes possible in ircomm_ttp.c # # Signed-off-by: David S. Miller # # net/irda/ircomm/ircomm_ttp.c # 2004/12/27 21:04:23-08:00 davem@nuts.davemloft.net +57 -27 # [IRDA]: More staticization becomes possible in ircomm_ttp.c # # ChangeSet # 2004/12/27 20:55:17-08:00 matthew@wil.cx # [SPARC64]: Stop referencing i_sock directly. # # Use S_ISSOCK() instead. # # Signed-off-by: Matthew Wilcox # Signed-off-by: David S. Miller # # arch/sparc64/solaris/timod.c # 2004/12/27 20:54:56-08:00 matthew@wil.cx +2 -4 # [SPARC64]: Stop referencing i_sock directly. # # Use S_ISSOCK() instead. # # Signed-off-by: Matthew Wilcox # Signed-off-by: David S. Miller # # arch/sparc64/solaris/socksys.c # 2004/12/27 20:54:56-08:00 matthew@wil.cx +1 -1 # [SPARC64]: Stop referencing i_sock directly. # # Use S_ISSOCK() instead. # # Signed-off-by: Matthew Wilcox # Signed-off-by: David S. Miller # # arch/sparc64/solaris/ioctl.c # 2004/12/27 20:54:56-08:00 matthew@wil.cx +2 -2 # [SPARC64]: Stop referencing i_sock directly. # # Use S_ISSOCK() instead. # # Signed-off-by: Matthew Wilcox # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 20:54:03-08:00 juhl-lkml@dif.dk # [IRDA]: Kill useless parens from return statements in irnet.h # # Signed-off-by: Jesper Juhl # Signed-off-by: David S. Miller # # net/irda/irnet/irnet.h # 2004/12/27 20:53:24-08:00 juhl-lkml@dif.dk +2 -2 # [IRDA]: Kill useless parens from return statements in irnet.h # # ChangeSet # 2004/12/27 20:52:34-08:00 bunk@stusta.de # [IPVS]: Remove subscribers-only mailing list from MAINTAINERS. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # MAINTAINERS # 2004/12/27 20:52:13-08:00 bunk@stusta.de +0 -1 # [IPVS]: Remove subscribers-only mailing list from MAINTAINERS. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 20:51:40-08:00 bunk@stusta.de # [PKT_SCHED]: Staticize and other cleanups. # # The patch below contans the following possible cleanups: # - make some needlessly global code static # - sch_htb.c: #undef HTB_DEBUG # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/sched/sch_prio.c # 2004/12/27 20:51:20-08:00 bunk@stusta.de +2 -1 # [PKT_SCHED]: Staticize and other cleanups. # # The patch below contans the following possible cleanups: # - make some needlessly global code static # - sch_htb.c: #undef HTB_DEBUG # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/sched/sch_ingress.c # 2004/12/27 20:51:20-08:00 bunk@stusta.de +1 -1 # [PKT_SCHED]: Staticize and other cleanups. # # The patch below contans the following possible cleanups: # - make some needlessly global code static # - sch_htb.c: #undef HTB_DEBUG # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/sched/sch_htb.c # 2004/12/27 20:51:20-08:00 bunk@stusta.de +1 -1 # [PKT_SCHED]: Staticize and other cleanups. # # The patch below contans the following possible cleanups: # - make some needlessly global code static # - sch_htb.c: #undef HTB_DEBUG # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/sched/sch_generic.c # 2004/12/27 20:51:20-08:00 bunk@stusta.de +2 -2 # [PKT_SCHED]: Staticize and other cleanups. # # The patch below contans the following possible cleanups: # - make some needlessly global code static # - sch_htb.c: #undef HTB_DEBUG # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/sched/sch_dsmark.c # 2004/12/27 20:51:20-08:00 bunk@stusta.de +1 -1 # [PKT_SCHED]: Staticize and other cleanups. # # The patch below contans the following possible cleanups: # - make some needlessly global code static # - sch_htb.c: #undef HTB_DEBUG # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/sched/sch_api.c # 2004/12/27 20:51:20-08:00 bunk@stusta.de +6 -5 # [PKT_SCHED]: Staticize and other cleanups. # # The patch below contans the following possible cleanups: # - make some needlessly global code static # - sch_htb.c: #undef HTB_DEBUG # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/sched/police.c # 2004/12/27 20:51:20-08:00 bunk@stusta.de +4 -4 # [PKT_SCHED]: Staticize and other cleanups. # # The patch below contans the following possible cleanups: # - make some needlessly global code static # - sch_htb.c: #undef HTB_DEBUG # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/sched/gact.c # 2004/12/27 20:51:20-08:00 bunk@stusta.de +1 -1 # [PKT_SCHED]: Staticize and other cleanups. # # The patch below contans the following possible cleanups: # - make some needlessly global code static # - sch_htb.c: #undef HTB_DEBUG # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # include/net/act_api.h # 2004/12/27 20:51:20-08:00 bunk@stusta.de +0 -3 # [PKT_SCHED]: Staticize and other cleanups. # # The patch below contans the following possible cleanups: # - make some needlessly global code static # - sch_htb.c: #undef HTB_DEBUG # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 20:50:34-08:00 bunk@stusta.de # [RXRPC]: Staticize and remove unused globals and exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global function: # - transport.c: rxrpc_clear_transport # - remove the following unneeded EXPORT_SYMBOL: # - rxrpc_syms.c: rxrpc_call_flush # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/rxrpc/transport.c # 2004/12/27 20:50:14-08:00 bunk@stusta.de +0 -10 # [RXRPC]: Staticize and remove unused globals and exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global function: # - transport.c: rxrpc_clear_transport # - remove the following unneeded EXPORT_SYMBOL: # - rxrpc_syms.c: rxrpc_call_flush # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/rxrpc/rxrpc_syms.c # 2004/12/27 20:50:14-08:00 bunk@stusta.de +0 -1 # [RXRPC]: Staticize and remove unused globals and exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global function: # - transport.c: rxrpc_clear_transport # - remove the following unneeded EXPORT_SYMBOL: # - rxrpc_syms.c: rxrpc_call_flush # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/rxrpc/peer.c # 2004/12/27 20:50:14-08:00 bunk@stusta.de +3 -1 # [RXRPC]: Staticize and remove unused globals and exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global function: # - transport.c: rxrpc_clear_transport # - remove the following unneeded EXPORT_SYMBOL: # - rxrpc_syms.c: rxrpc_call_flush # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/rxrpc/internal.h # 2004/12/27 20:50:14-08:00 bunk@stusta.de +0 -3 # [RXRPC]: Staticize and remove unused globals and exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global function: # - transport.c: rxrpc_clear_transport # - remove the following unneeded EXPORT_SYMBOL: # - rxrpc_syms.c: rxrpc_call_flush # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/rxrpc/connection.c # 2004/12/27 20:50:13-08:00 bunk@stusta.de +3 -1 # [RXRPC]: Staticize and remove unused globals and exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global function: # - transport.c: rxrpc_clear_transport # - remove the following unneeded EXPORT_SYMBOL: # - rxrpc_syms.c: rxrpc_call_flush # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/rxrpc/call.c # 2004/12/27 20:50:13-08:00 bunk@stusta.de +9 -6 # [RXRPC]: Staticize and remove unused globals and exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global function: # - transport.c: rxrpc_clear_transport # - remove the following unneeded EXPORT_SYMBOL: # - rxrpc_syms.c: rxrpc_call_flush # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # include/rxrpc/transport.h # 2004/12/27 20:50:13-08:00 bunk@stusta.de +0 -2 # [RXRPC]: Staticize and remove unused globals and exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global function: # - transport.c: rxrpc_clear_transport # - remove the following unneeded EXPORT_SYMBOL: # - rxrpc_syms.c: rxrpc_call_flush # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # include/rxrpc/packet.h # 2004/12/27 20:50:13-08:00 bunk@stusta.de +0 -2 # [RXRPC]: Staticize and remove unused globals and exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global function: # - transport.c: rxrpc_clear_transport # - remove the following unneeded EXPORT_SYMBOL: # - rxrpc_syms.c: rxrpc_call_flush # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # include/rxrpc/call.h # 2004/12/27 20:50:13-08:00 bunk@stusta.de +0 -5 # [RXRPC]: Staticize and remove unused globals and exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global function: # - transport.c: rxrpc_clear_transport # - remove the following unneeded EXPORT_SYMBOL: # - rxrpc_syms.c: rxrpc_call_flush # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 20:49:18-08:00 bunk@stusta.de # [ROSE]: Staticize and remove unused global functions. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/rose/rose_subr.c # 2004/12/27 20:48:58-08:00 bunk@stusta.de +3 -1 # [ROSE]: Staticize and remove unused global functions. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/rose/rose_route.c # 2004/12/27 20:48:58-08:00 bunk@stusta.de +2 -2 # [ROSE]: Staticize and remove unused global functions. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/rose/rose_link.c # 2004/12/27 20:48:58-08:00 bunk@stusta.de +7 -32 # [ROSE]: Staticize and remove unused global functions. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/rose/rose_dev.c # 2004/12/27 20:48:58-08:00 bunk@stusta.de +0 -32 # [ROSE]: Staticize and remove unused global functions. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/rose/af_rose.c # 2004/12/27 20:48:58-08:00 bunk@stusta.de +1 -1 # [ROSE]: Staticize and remove unused global functions. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # include/net/rose.h # 2004/12/27 20:48:57-08:00 bunk@stusta.de +0 -8 # [ROSE]: Staticize and remove unused global functions. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 20:48:19-08:00 bunk@stusta.de # [NETROM]: Make needlessly global code static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/netrom/nr_route.c # 2004/12/27 20:47:59-08:00 bunk@stusta.de +3 -2 # [NETROM]: Make needlessly global code static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/netrom/af_netrom.c # 2004/12/27 20:47:59-08:00 bunk@stusta.de +1 -1 # [NETROM]: Make needlessly global code static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 20:46:42-08:00 bunk@stusta.de # [LLC]: Staticize and remove unnecessary functions and exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - lc_c_ac.c: llc_conn_ac_report_status # - lc_c_ac.c: llc_conn_ac_send_dm_rsp_f_set_f_flag # - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1 # - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1_or_send_rr # - lc_c_ac.c: llc_conn_ac_send_ack_cmd_p_set_1 # - lc_c_ac.c: llc_conn_ac_send_ua_rsp_f_set_f_flag # - lc_c_ac.c: llc_conn_ac_set_f_flag_p # - llc_c_ev.c: llc_conn_ev_conn_resp # - llc_c_ev.c: llc_conn_ev_rst_resp # - llc_c_ev.c: llc_conn_ev_rx_xxx_cmd_pbit_set_0 # - llc_c_ev.c: llc_conn_ev_rx_xxx_yyy # - llc_c_ev.c: llc_conn_ev_any_tmr_exp # - llc_c_ev.c: llc_conn_ev_qlfy_init_p_f_cycle # - llc_c_ev.c: llc_conn_ev_qlfy_set_status_impossible # - llc_c_ev.c: llc_conn_ev_qlfy_set_status_received # - llc_if.c: llc_build_and_send_reset_pkt # - llc_pdu.c: llc_pdu_decode_cr_bit # - remove the following unneeded EXPORT_SYMBOL: # - llc_core.c: llc_sap_list_lock # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/llc/llc_station.c # 2004/12/27 20:46:22-08:00 bunk@stusta.de +1 -1 # [LLC]: Staticize and remove unnecessary functions and exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - lc_c_ac.c: llc_conn_ac_report_status # - lc_c_ac.c: llc_conn_ac_send_dm_rsp_f_set_f_flag # - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1 # - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1_or_send_rr # - lc_c_ac.c: llc_conn_ac_send_ack_cmd_p_set_1 # - lc_c_ac.c: llc_conn_ac_send_ua_rsp_f_set_f_flag # - lc_c_ac.c: llc_conn_ac_set_f_flag_p # - llc_c_ev.c: llc_conn_ev_conn_resp # - llc_c_ev.c: llc_conn_ev_rst_resp # - llc_c_ev.c: llc_conn_ev_rx_xxx_cmd_pbit_set_0 # - llc_c_ev.c: llc_conn_ev_rx_xxx_yyy # - llc_c_ev.c: llc_conn_ev_any_tmr_exp # - llc_c_ev.c: llc_conn_ev_qlfy_init_p_f_cycle # - llc_c_ev.c: llc_conn_ev_qlfy_set_status_impossible # - llc_c_ev.c: llc_conn_ev_qlfy_set_status_received # - llc_if.c: llc_build_and_send_reset_pkt # - llc_pdu.c: llc_pdu_decode_cr_bit # - remove the following unneeded EXPORT_SYMBOL: # - llc_core.c: llc_sap_list_lock # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/llc/llc_sap.c # 2004/12/27 20:46:22-08:00 bunk@stusta.de +3 -2 # [LLC]: Staticize and remove unnecessary functions and exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - lc_c_ac.c: llc_conn_ac_report_status # - lc_c_ac.c: llc_conn_ac_send_dm_rsp_f_set_f_flag # - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1 # - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1_or_send_rr # - lc_c_ac.c: llc_conn_ac_send_ack_cmd_p_set_1 # - lc_c_ac.c: llc_conn_ac_send_ua_rsp_f_set_f_flag # - lc_c_ac.c: llc_conn_ac_set_f_flag_p # - llc_c_ev.c: llc_conn_ev_conn_resp # - llc_c_ev.c: llc_conn_ev_rst_resp # - llc_c_ev.c: llc_conn_ev_rx_xxx_cmd_pbit_set_0 # - llc_c_ev.c: llc_conn_ev_rx_xxx_yyy # - llc_c_ev.c: llc_conn_ev_any_tmr_exp # - llc_c_ev.c: llc_conn_ev_qlfy_init_p_f_cycle # - llc_c_ev.c: llc_conn_ev_qlfy_set_status_impossible # - llc_c_ev.c: llc_conn_ev_qlfy_set_status_received # - llc_if.c: llc_build_and_send_reset_pkt # - llc_pdu.c: llc_pdu_decode_cr_bit # - remove the following unneeded EXPORT_SYMBOL: # - llc_core.c: llc_sap_list_lock # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/llc/llc_proc.c # 2004/12/27 20:46:22-08:00 bunk@stusta.de +2 -2 # [LLC]: Staticize and remove unnecessary functions and exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - lc_c_ac.c: llc_conn_ac_report_status # - lc_c_ac.c: llc_conn_ac_send_dm_rsp_f_set_f_flag # - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1 # - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1_or_send_rr # - lc_c_ac.c: llc_conn_ac_send_ack_cmd_p_set_1 # - lc_c_ac.c: llc_conn_ac_send_ua_rsp_f_set_f_flag # - lc_c_ac.c: llc_conn_ac_set_f_flag_p # - llc_c_ev.c: llc_conn_ev_conn_resp # - llc_c_ev.c: llc_conn_ev_rst_resp # - llc_c_ev.c: llc_conn_ev_rx_xxx_cmd_pbit_set_0 # - llc_c_ev.c: llc_conn_ev_rx_xxx_yyy # - llc_c_ev.c: llc_conn_ev_any_tmr_exp # - llc_c_ev.c: llc_conn_ev_qlfy_init_p_f_cycle # - llc_c_ev.c: llc_conn_ev_qlfy_set_status_impossible # - llc_c_ev.c: llc_conn_ev_qlfy_set_status_received # - llc_if.c: llc_build_and_send_reset_pkt # - llc_pdu.c: llc_pdu_decode_cr_bit # - remove the following unneeded EXPORT_SYMBOL: # - llc_core.c: llc_sap_list_lock # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/llc/llc_pdu.c # 2004/12/27 20:46:22-08:00 bunk@stusta.de +0 -13 # [LLC]: Staticize and remove unnecessary functions and exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - lc_c_ac.c: llc_conn_ac_report_status # - lc_c_ac.c: llc_conn_ac_send_dm_rsp_f_set_f_flag # - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1 # - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1_or_send_rr # - lc_c_ac.c: llc_conn_ac_send_ack_cmd_p_set_1 # - lc_c_ac.c: llc_conn_ac_send_ua_rsp_f_set_f_flag # - lc_c_ac.c: llc_conn_ac_set_f_flag_p # - llc_c_ev.c: llc_conn_ev_conn_resp # - llc_c_ev.c: llc_conn_ev_rst_resp # - llc_c_ev.c: llc_conn_ev_rx_xxx_cmd_pbit_set_0 # - llc_c_ev.c: llc_conn_ev_rx_xxx_yyy # - llc_c_ev.c: llc_conn_ev_any_tmr_exp # - llc_c_ev.c: llc_conn_ev_qlfy_init_p_f_cycle # - llc_c_ev.c: llc_conn_ev_qlfy_set_status_impossible # - llc_c_ev.c: llc_conn_ev_qlfy_set_status_received # - llc_if.c: llc_build_and_send_reset_pkt # - llc_pdu.c: llc_pdu_decode_cr_bit # - remove the following unneeded EXPORT_SYMBOL: # - llc_core.c: llc_sap_list_lock # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/llc/llc_if.c # 2004/12/27 20:46:22-08:00 bunk@stusta.de +0 -24 # [LLC]: Staticize and remove unnecessary functions and exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - lc_c_ac.c: llc_conn_ac_report_status # - lc_c_ac.c: llc_conn_ac_send_dm_rsp_f_set_f_flag # - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1 # - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1_or_send_rr # - lc_c_ac.c: llc_conn_ac_send_ack_cmd_p_set_1 # - lc_c_ac.c: llc_conn_ac_send_ua_rsp_f_set_f_flag # - lc_c_ac.c: llc_conn_ac_set_f_flag_p # - llc_c_ev.c: llc_conn_ev_conn_resp # - llc_c_ev.c: llc_conn_ev_rst_resp # - llc_c_ev.c: llc_conn_ev_rx_xxx_cmd_pbit_set_0 # - llc_c_ev.c: llc_conn_ev_rx_xxx_yyy # - llc_c_ev.c: llc_conn_ev_any_tmr_exp # - llc_c_ev.c: llc_conn_ev_qlfy_init_p_f_cycle # - llc_c_ev.c: llc_conn_ev_qlfy_set_status_impossible # - llc_c_ev.c: llc_conn_ev_qlfy_set_status_received # - llc_if.c: llc_build_and_send_reset_pkt # - llc_pdu.c: llc_pdu_decode_cr_bit # - remove the following unneeded EXPORT_SYMBOL: # - llc_core.c: llc_sap_list_lock # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/llc/llc_core.c # 2004/12/27 20:46:22-08:00 bunk@stusta.de +3 -4 # [LLC]: Staticize and remove unnecessary functions and exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - lc_c_ac.c: llc_conn_ac_report_status # - lc_c_ac.c: llc_conn_ac_send_dm_rsp_f_set_f_flag # - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1 # - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1_or_send_rr # - lc_c_ac.c: llc_conn_ac_send_ack_cmd_p_set_1 # - lc_c_ac.c: llc_conn_ac_send_ua_rsp_f_set_f_flag # - lc_c_ac.c: llc_conn_ac_set_f_flag_p # - llc_c_ev.c: llc_conn_ev_conn_resp # - llc_c_ev.c: llc_conn_ev_rst_resp # - llc_c_ev.c: llc_conn_ev_rx_xxx_cmd_pbit_set_0 # - llc_c_ev.c: llc_conn_ev_rx_xxx_yyy # - llc_c_ev.c: llc_conn_ev_any_tmr_exp # - llc_c_ev.c: llc_conn_ev_qlfy_init_p_f_cycle # - llc_c_ev.c: llc_conn_ev_qlfy_set_status_impossible # - llc_c_ev.c: llc_conn_ev_qlfy_set_status_received # - llc_if.c: llc_build_and_send_reset_pkt # - llc_pdu.c: llc_pdu_decode_cr_bit # - remove the following unneeded EXPORT_SYMBOL: # - llc_core.c: llc_sap_list_lock # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/llc/llc_conn.c # 2004/12/27 20:46:22-08:00 bunk@stusta.de +4 -3 # [LLC]: Staticize and remove unnecessary functions and exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - lc_c_ac.c: llc_conn_ac_report_status # - lc_c_ac.c: llc_conn_ac_send_dm_rsp_f_set_f_flag # - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1 # - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1_or_send_rr # - lc_c_ac.c: llc_conn_ac_send_ack_cmd_p_set_1 # - lc_c_ac.c: llc_conn_ac_send_ua_rsp_f_set_f_flag # - lc_c_ac.c: llc_conn_ac_set_f_flag_p # - llc_c_ev.c: llc_conn_ev_conn_resp # - llc_c_ev.c: llc_conn_ev_rst_resp # - llc_c_ev.c: llc_conn_ev_rx_xxx_cmd_pbit_set_0 # - llc_c_ev.c: llc_conn_ev_rx_xxx_yyy # - llc_c_ev.c: llc_conn_ev_any_tmr_exp # - llc_c_ev.c: llc_conn_ev_qlfy_init_p_f_cycle # - llc_c_ev.c: llc_conn_ev_qlfy_set_status_impossible # - llc_c_ev.c: llc_conn_ev_qlfy_set_status_received # - llc_if.c: llc_build_and_send_reset_pkt # - llc_pdu.c: llc_pdu_decode_cr_bit # - remove the following unneeded EXPORT_SYMBOL: # - llc_core.c: llc_sap_list_lock # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/llc/llc_c_ev.c # 2004/12/27 20:46:22-08:00 bunk@stusta.de +0 -88 # [LLC]: Staticize and remove unnecessary functions and exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - lc_c_ac.c: llc_conn_ac_report_status # - lc_c_ac.c: llc_conn_ac_send_dm_rsp_f_set_f_flag # - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1 # - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1_or_send_rr # - lc_c_ac.c: llc_conn_ac_send_ack_cmd_p_set_1 # - lc_c_ac.c: llc_conn_ac_send_ua_rsp_f_set_f_flag # - lc_c_ac.c: llc_conn_ac_set_f_flag_p # - llc_c_ev.c: llc_conn_ev_conn_resp # - llc_c_ev.c: llc_conn_ev_rst_resp # - llc_c_ev.c: llc_conn_ev_rx_xxx_cmd_pbit_set_0 # - llc_c_ev.c: llc_conn_ev_rx_xxx_yyy # - llc_c_ev.c: llc_conn_ev_any_tmr_exp # - llc_c_ev.c: llc_conn_ev_qlfy_init_p_f_cycle # - llc_c_ev.c: llc_conn_ev_qlfy_set_status_impossible # - llc_c_ev.c: llc_conn_ev_qlfy_set_status_received # - llc_if.c: llc_build_and_send_reset_pkt # - llc_pdu.c: llc_pdu_decode_cr_bit # - remove the following unneeded EXPORT_SYMBOL: # - llc_core.c: llc_sap_list_lock # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/llc/llc_c_ac.c # 2004/12/27 20:46:22-08:00 bunk@stusta.de +14 -113 # [LLC]: Staticize and remove unnecessary functions and exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - lc_c_ac.c: llc_conn_ac_report_status # - lc_c_ac.c: llc_conn_ac_send_dm_rsp_f_set_f_flag # - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1 # - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1_or_send_rr # - lc_c_ac.c: llc_conn_ac_send_ack_cmd_p_set_1 # - lc_c_ac.c: llc_conn_ac_send_ua_rsp_f_set_f_flag # - lc_c_ac.c: llc_conn_ac_set_f_flag_p # - llc_c_ev.c: llc_conn_ev_conn_resp # - llc_c_ev.c: llc_conn_ev_rst_resp # - llc_c_ev.c: llc_conn_ev_rx_xxx_cmd_pbit_set_0 # - llc_c_ev.c: llc_conn_ev_rx_xxx_yyy # - llc_c_ev.c: llc_conn_ev_any_tmr_exp # - llc_c_ev.c: llc_conn_ev_qlfy_init_p_f_cycle # - llc_c_ev.c: llc_conn_ev_qlfy_set_status_impossible # - llc_c_ev.c: llc_conn_ev_qlfy_set_status_received # - llc_if.c: llc_build_and_send_reset_pkt # - llc_pdu.c: llc_pdu_decode_cr_bit # - remove the following unneeded EXPORT_SYMBOL: # - llc_core.c: llc_sap_list_lock # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # include/net/llc_sap.h # 2004/12/27 20:46:22-08:00 bunk@stusta.de +0 -1 # [LLC]: Staticize and remove unnecessary functions and exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - lc_c_ac.c: llc_conn_ac_report_status # - lc_c_ac.c: llc_conn_ac_send_dm_rsp_f_set_f_flag # - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1 # - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1_or_send_rr # - lc_c_ac.c: llc_conn_ac_send_ack_cmd_p_set_1 # - lc_c_ac.c: llc_conn_ac_send_ua_rsp_f_set_f_flag # - lc_c_ac.c: llc_conn_ac_set_f_flag_p # - llc_c_ev.c: llc_conn_ev_conn_resp # - llc_c_ev.c: llc_conn_ev_rst_resp # - llc_c_ev.c: llc_conn_ev_rx_xxx_cmd_pbit_set_0 # - llc_c_ev.c: llc_conn_ev_rx_xxx_yyy # - llc_c_ev.c: llc_conn_ev_any_tmr_exp # - llc_c_ev.c: llc_conn_ev_qlfy_init_p_f_cycle # - llc_c_ev.c: llc_conn_ev_qlfy_set_status_impossible # - llc_c_ev.c: llc_conn_ev_qlfy_set_status_received # - llc_if.c: llc_build_and_send_reset_pkt # - llc_pdu.c: llc_pdu_decode_cr_bit # - remove the following unneeded EXPORT_SYMBOL: # - llc_core.c: llc_sap_list_lock # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # include/net/llc_pdu.h # 2004/12/27 20:46:21-08:00 bunk@stusta.de +0 -1 # [LLC]: Staticize and remove unnecessary functions and exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - lc_c_ac.c: llc_conn_ac_report_status # - lc_c_ac.c: llc_conn_ac_send_dm_rsp_f_set_f_flag # - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1 # - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1_or_send_rr # - lc_c_ac.c: llc_conn_ac_send_ack_cmd_p_set_1 # - lc_c_ac.c: llc_conn_ac_send_ua_rsp_f_set_f_flag # - lc_c_ac.c: llc_conn_ac_set_f_flag_p # - llc_c_ev.c: llc_conn_ev_conn_resp # - llc_c_ev.c: llc_conn_ev_rst_resp # - llc_c_ev.c: llc_conn_ev_rx_xxx_cmd_pbit_set_0 # - llc_c_ev.c: llc_conn_ev_rx_xxx_yyy # - llc_c_ev.c: llc_conn_ev_any_tmr_exp # - llc_c_ev.c: llc_conn_ev_qlfy_init_p_f_cycle # - llc_c_ev.c: llc_conn_ev_qlfy_set_status_impossible # - llc_c_ev.c: llc_conn_ev_qlfy_set_status_received # - llc_if.c: llc_build_and_send_reset_pkt # - llc_pdu.c: llc_pdu_decode_cr_bit # - remove the following unneeded EXPORT_SYMBOL: # - llc_core.c: llc_sap_list_lock # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # include/net/llc_conn.h # 2004/12/27 20:46:21-08:00 bunk@stusta.de +0 -3 # [LLC]: Staticize and remove unnecessary functions and exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - lc_c_ac.c: llc_conn_ac_report_status # - lc_c_ac.c: llc_conn_ac_send_dm_rsp_f_set_f_flag # - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1 # - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1_or_send_rr # - lc_c_ac.c: llc_conn_ac_send_ack_cmd_p_set_1 # - lc_c_ac.c: llc_conn_ac_send_ua_rsp_f_set_f_flag # - lc_c_ac.c: llc_conn_ac_set_f_flag_p # - llc_c_ev.c: llc_conn_ev_conn_resp # - llc_c_ev.c: llc_conn_ev_rst_resp # - llc_c_ev.c: llc_conn_ev_rx_xxx_cmd_pbit_set_0 # - llc_c_ev.c: llc_conn_ev_rx_xxx_yyy # - llc_c_ev.c: llc_conn_ev_any_tmr_exp # - llc_c_ev.c: llc_conn_ev_qlfy_init_p_f_cycle # - llc_c_ev.c: llc_conn_ev_qlfy_set_status_impossible # - llc_c_ev.c: llc_conn_ev_qlfy_set_status_received # - llc_if.c: llc_build_and_send_reset_pkt # - llc_pdu.c: llc_pdu_decode_cr_bit # - remove the following unneeded EXPORT_SYMBOL: # - llc_core.c: llc_sap_list_lock # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # include/net/llc_c_ev.h # 2004/12/27 20:46:21-08:00 bunk@stusta.de +0 -12 # [LLC]: Staticize and remove unnecessary functions and exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - lc_c_ac.c: llc_conn_ac_report_status # - lc_c_ac.c: llc_conn_ac_send_dm_rsp_f_set_f_flag # - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1 # - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1_or_send_rr # - lc_c_ac.c: llc_conn_ac_send_ack_cmd_p_set_1 # - lc_c_ac.c: llc_conn_ac_send_ua_rsp_f_set_f_flag # - lc_c_ac.c: llc_conn_ac_set_f_flag_p # - llc_c_ev.c: llc_conn_ev_conn_resp # - llc_c_ev.c: llc_conn_ev_rst_resp # - llc_c_ev.c: llc_conn_ev_rx_xxx_cmd_pbit_set_0 # - llc_c_ev.c: llc_conn_ev_rx_xxx_yyy # - llc_c_ev.c: llc_conn_ev_any_tmr_exp # - llc_c_ev.c: llc_conn_ev_qlfy_init_p_f_cycle # - llc_c_ev.c: llc_conn_ev_qlfy_set_status_impossible # - llc_c_ev.c: llc_conn_ev_qlfy_set_status_received # - llc_if.c: llc_build_and_send_reset_pkt # - llc_pdu.c: llc_pdu_decode_cr_bit # - remove the following unneeded EXPORT_SYMBOL: # - llc_core.c: llc_sap_list_lock # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # include/net/llc_c_ac.h # 2004/12/27 20:46:21-08:00 bunk@stusta.de +0 -19 # [LLC]: Staticize and remove unnecessary functions and exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - lc_c_ac.c: llc_conn_ac_report_status # - lc_c_ac.c: llc_conn_ac_send_dm_rsp_f_set_f_flag # - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1 # - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1_or_send_rr # - lc_c_ac.c: llc_conn_ac_send_ack_cmd_p_set_1 # - lc_c_ac.c: llc_conn_ac_send_ua_rsp_f_set_f_flag # - lc_c_ac.c: llc_conn_ac_set_f_flag_p # - llc_c_ev.c: llc_conn_ev_conn_resp # - llc_c_ev.c: llc_conn_ev_rst_resp # - llc_c_ev.c: llc_conn_ev_rx_xxx_cmd_pbit_set_0 # - llc_c_ev.c: llc_conn_ev_rx_xxx_yyy # - llc_c_ev.c: llc_conn_ev_any_tmr_exp # - llc_c_ev.c: llc_conn_ev_qlfy_init_p_f_cycle # - llc_c_ev.c: llc_conn_ev_qlfy_set_status_impossible # - llc_c_ev.c: llc_conn_ev_qlfy_set_status_received # - llc_if.c: llc_build_and_send_reset_pkt # - llc_pdu.c: llc_pdu_decode_cr_bit # - remove the following unneeded EXPORT_SYMBOL: # - llc_core.c: llc_sap_list_lock # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 20:45:07-08:00 bunk@stusta.de # [IRDA]: Staticize and remove unnecessary exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - discovery.c: irlmp_find_device # - ircomm/ircomm_param.c: ircomm_param_flush # - irda_device.c: irda_device_set_dtr_rts # - irda_device.c: irda_device_change_speed # - irda_device.c: irda_device_set_mode # - iriap.c: iriap_getinfobasedetails_request # - iriap.c: iriap_getinfobasedetails_confirm # - iriap.c: iriap_getobjects_request # - iriap.c: iriap_getobjects_confirm # - iriap.c: iriap_getvalue # - irlan_client.c: irlan_client_reconnect_data_channel # - irlap_frame.c: irlap_send_frmr_frame # - irlmp.c: irlmp_status_request # - remove the follwong unused global variables: # - irnet/irnet_ppp.c: irnet_ppp_ops # - irsysctl.c: sysctl_compression # - qos.c: #ifndef CONFIG_IRDA_DYNAMIC_WINDOW irlap_requested_line_capacity # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/irda/qos.c # 2004/12/27 20:44:25-08:00 bunk@stusta.de +16 -9 # [IRDA]: Staticize and remove unnecessary exports. # # net/irda/parameters.c # 2004/12/27 20:44:25-08:00 bunk@stusta.de +6 -5 # [IRDA]: Staticize and remove unnecessary exports. # # net/irda/irttp.c # 2004/12/27 20:44:25-08:00 bunk@stusta.de +8 -4 # [IRDA]: Staticize and remove unnecessary exports. # # net/irda/irsysctl.c # 2004/12/27 20:44:25-08:00 bunk@stusta.de +0 -1 # [IRDA]: Staticize and remove unnecessary exports. # # net/irda/irnet/irnet_ppp.h # 2004/12/27 20:44:25-08:00 bunk@stusta.de +0 -7 # [IRDA]: Staticize and remove unnecessary exports. # # net/irda/irnet/irnet_ppp.c # 2004/12/27 20:44:25-08:00 bunk@stusta.de +7 -1 # [IRDA]: Staticize and remove unnecessary exports. # # net/irda/irnet/irnet.h # 2004/12/27 20:44:25-08:00 bunk@stusta.de +0 -2 # [IRDA]: Staticize and remove unnecessary exports. # # net/irda/irmod.c # 2004/12/27 20:44:25-08:00 bunk@stusta.de +2 -2 # [IRDA]: Staticize and remove unnecessary exports. # # net/irda/irlmp.c # 2004/12/27 20:44:25-08:00 bunk@stusta.de +5 -7 # [IRDA]: Staticize and remove unnecessary exports. # # net/irda/irlap_frame.c # 2004/12/27 20:44:25-08:00 bunk@stusta.de +5 -30 # [IRDA]: Staticize and remove unnecessary exports. # # net/irda/irlap_event.c # 2004/12/27 20:44:25-08:00 bunk@stusta.de +1 -1 # [IRDA]: Staticize and remove unnecessary exports. # # net/irda/irlap.c # 2004/12/27 20:44:25-08:00 bunk@stusta.de +5 -3 # [IRDA]: Staticize and remove unnecessary exports. # # net/irda/irlan/irlan_provider.c # 2004/12/27 20:44:25-08:00 bunk@stusta.de +3 -3 # [IRDA]: Staticize and remove unnecessary exports. # # net/irda/irlan/irlan_common.c # 2004/12/27 20:44:25-08:00 bunk@stusta.de +20 -12 # [IRDA]: Staticize and remove unnecessary exports. # # net/irda/irlan/irlan_client.c # 2004/12/27 20:44:25-08:00 bunk@stusta.de +3 -38 # [IRDA]: Staticize and remove unnecessary exports. # # net/irda/irias_object.c # 2004/12/27 20:44:25-08:00 bunk@stusta.de +3 -3 # [IRDA]: Staticize and remove unnecessary exports. # # net/irda/iriap.c # 2004/12/27 20:44:25-08:00 bunk@stusta.de +19 -32 # [IRDA]: Staticize and remove unnecessary exports. # # net/irda/irda_device.c # 2004/12/27 20:44:25-08:00 bunk@stusta.de +1 -69 # [IRDA]: Staticize and remove unnecessary exports. # # net/irda/ircomm/ircomm_tty_ioctl.c # 2004/12/27 20:44:25-08:00 bunk@stusta.de +1 -1 # [IRDA]: Staticize and remove unnecessary exports. # # net/irda/ircomm/ircomm_tty_attach.c # 2004/12/27 20:44:25-08:00 bunk@stusta.de +7 -5 # [IRDA]: Staticize and remove unnecessary exports. # # net/irda/ircomm/ircomm_tty.c # 2004/12/27 20:44:25-08:00 bunk@stusta.de +4 -3 # [IRDA]: Staticize and remove unnecessary exports. # # net/irda/ircomm/ircomm_param.c # 2004/12/27 20:44:25-08:00 bunk@stusta.de +0 -17 # [IRDA]: Staticize and remove unnecessary exports. # # net/irda/ircomm/ircomm_lmp.c # 2004/12/27 20:44:25-08:00 bunk@stusta.de +65 -63 # [IRDA]: Staticize and remove unnecessary exports. # # net/irda/ircomm/ircomm_event.c # 2004/12/27 20:44:25-08:00 bunk@stusta.de +1 -1 # [IRDA]: Staticize and remove unnecessary exports. # # net/irda/ircomm/ircomm_core.c # 2004/12/27 20:44:25-08:00 bunk@stusta.de +2 -2 # [IRDA]: Staticize and remove unnecessary exports. # # net/irda/discovery.c # 2004/12/27 20:44:25-08:00 bunk@stusta.de +0 -35 # [IRDA]: Staticize and remove unnecessary exports. # # net/irda/af_irda.c # 2004/12/27 20:44:25-08:00 bunk@stusta.de +2 -2 # [IRDA]: Staticize and remove unnecessary exports. # # include/net/irda/qos.h # 2004/12/27 20:44:25-08:00 bunk@stusta.de +0 -1 # [IRDA]: Staticize and remove unnecessary exports. # # include/net/irda/parameters.h # 2004/12/27 20:44:25-08:00 bunk@stusta.de +0 -2 # [IRDA]: Staticize and remove unnecessary exports. # # include/net/irda/irttp.h # 2004/12/27 20:44:25-08:00 bunk@stusta.de +0 -3 # [IRDA]: Staticize and remove unnecessary exports. # # include/net/irda/irlmp.h # 2004/12/27 20:44:25-08:00 bunk@stusta.de +0 -3 # [IRDA]: Staticize and remove unnecessary exports. # # include/net/irda/irlap_frame.h # 2004/12/27 20:44:25-08:00 bunk@stusta.de +0 -1 # [IRDA]: Staticize and remove unnecessary exports. # # include/net/irda/irlap.h # 2004/12/27 20:44:25-08:00 bunk@stusta.de +0 -2 # [IRDA]: Staticize and remove unnecessary exports. # # include/net/irda/irlan_common.h # 2004/12/27 20:44:25-08:00 bunk@stusta.de +0 -3 # [IRDA]: Staticize and remove unnecessary exports. # # include/net/irda/irlan_client.h # 2004/12/27 20:44:25-08:00 bunk@stusta.de +0 -3 # [IRDA]: Staticize and remove unnecessary exports. # # include/net/irda/iriap.h # 2004/12/27 20:44:25-08:00 bunk@stusta.de +0 -10 # [IRDA]: Staticize and remove unnecessary exports. # # include/net/irda/irda_device.h # 2004/12/27 20:44:25-08:00 bunk@stusta.de +0 -2 # [IRDA]: Staticize and remove unnecessary exports. # # include/net/irda/ircomm_tty_attach.h # 2004/12/27 20:44:25-08:00 bunk@stusta.de +0 -1 # [IRDA]: Staticize and remove unnecessary exports. # # include/net/irda/ircomm_tty.h # 2004/12/27 20:44:25-08:00 bunk@stusta.de +0 -2 # [IRDA]: Staticize and remove unnecessary exports. # # include/net/irda/ircomm_ttp.h # 2004/12/27 20:44:25-08:00 bunk@stusta.de +0 -31 # [IRDA]: Staticize and remove unnecessary exports. # # include/net/irda/ircomm_param.h # 2004/12/27 20:44:25-08:00 bunk@stusta.de +0 -1 # [IRDA]: Staticize and remove unnecessary exports. # # include/net/irda/ircomm_lmp.h # 2004/12/27 20:44:25-08:00 bunk@stusta.de +0 -27 # [IRDA]: Staticize and remove unnecessary exports. # # include/net/irda/ircomm_event.h # 2004/12/27 20:44:25-08:00 bunk@stusta.de +0 -1 # [IRDA]: Staticize and remove unnecessary exports. # # ChangeSet # 2004/12/27 20:34:31-08:00 kaber@trash.net # [IPV4]: Let people know where to obtain the ss tool from. # # Signed-off-by: Patrick McHardy # Signed-off-by: David S. Miller # # net/ipv4/Kconfig # 2004/12/27 20:34:11-08:00 kaber@trash.net +4 -1 # [IPV4]: Let people know where to obtain the ss tool from. # # Signed-off-by: Patrick McHardy # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 19:50:18-08:00 bunk@stusta.de # [IPV4]: Staticize and remove unneeded exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - fib_rules.c: fib_rules_map_destination # - xfrm4_policy.: xfrm4_fini # - remove the following unneeded EXPORT_SYMBOL: # - tcp_timer.c: tcp_timer_bug_msg # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/ipv4/xfrm4_policy.c # 2004/12/27 19:49:58-08:00 bunk@stusta.de +0 -7 # [IPV4]: Staticize and remove unneeded exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - fib_rules.c: fib_rules_map_destination # - xfrm4_policy.: xfrm4_fini # - remove the following unneeded EXPORT_SYMBOL: # - tcp_timer.c: tcp_timer_bug_msg # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/ipv4/udp.c # 2004/12/27 19:49:58-08:00 bunk@stusta.de +8 -5 # [IPV4]: Staticize and remove unneeded exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - fib_rules.c: fib_rules_map_destination # - xfrm4_policy.: xfrm4_fini # - remove the following unneeded EXPORT_SYMBOL: # - tcp_timer.c: tcp_timer_bug_msg # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/ipv4/tcp_timer.c # 2004/12/27 19:49:58-08:00 bunk@stusta.de +0 -3 # [IPV4]: Staticize and remove unneeded exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - fib_rules.c: fib_rules_map_destination # - xfrm4_policy.: xfrm4_fini # - remove the following unneeded EXPORT_SYMBOL: # - tcp_timer.c: tcp_timer_bug_msg # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/ipv4/tcp_minisocks.c # 2004/12/27 19:49:58-08:00 bunk@stusta.de +3 -1 # [IPV4]: Staticize and remove unneeded exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - fib_rules.c: fib_rules_map_destination # - xfrm4_policy.: xfrm4_fini # - remove the following unneeded EXPORT_SYMBOL: # - tcp_timer.c: tcp_timer_bug_msg # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/ipv4/tcp_input.c # 2004/12/27 19:49:57-08:00 bunk@stusta.de +14 -2 # [IPV4]: Staticize and remove unneeded exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - fib_rules.c: fib_rules_map_destination # - xfrm4_policy.: xfrm4_fini # - remove the following unneeded EXPORT_SYMBOL: # - tcp_timer.c: tcp_timer_bug_msg # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/ipv4/route.c # 2004/12/27 19:49:57-08:00 bunk@stusta.de +16 -16 # [IPV4]: Staticize and remove unneeded exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - fib_rules.c: fib_rules_map_destination # - xfrm4_policy.: xfrm4_fini # - remove the following unneeded EXPORT_SYMBOL: # - tcp_timer.c: tcp_timer_bug_msg # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/ipv4/raw.c # 2004/12/27 19:49:57-08:00 bunk@stusta.de +2 -2 # [IPV4]: Staticize and remove unneeded exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - fib_rules.c: fib_rules_map_destination # - xfrm4_policy.: xfrm4_fini # - remove the following unneeded EXPORT_SYMBOL: # - tcp_timer.c: tcp_timer_bug_msg # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/ipv4/ipconfig.c # 2004/12/27 19:49:57-08:00 bunk@stusta.de +6 -6 # [IPV4]: Staticize and remove unneeded exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - fib_rules.c: fib_rules_map_destination # - xfrm4_policy.: xfrm4_fini # - remove the following unneeded EXPORT_SYMBOL: # - tcp_timer.c: tcp_timer_bug_msg # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/ipv4/ip_sockglue.c # 2004/12/27 19:49:57-08:00 bunk@stusta.de +1 -1 # [IPV4]: Staticize and remove unneeded exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - fib_rules.c: fib_rules_map_destination # - xfrm4_policy.: xfrm4_fini # - remove the following unneeded EXPORT_SYMBOL: # - tcp_timer.c: tcp_timer_bug_msg # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/ipv4/ip_gre.c # 2004/12/27 19:49:57-08:00 bunk@stusta.de +3 -3 # [IPV4]: Staticize and remove unneeded exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - fib_rules.c: fib_rules_map_destination # - xfrm4_policy.: xfrm4_fini # - remove the following unneeded EXPORT_SYMBOL: # - tcp_timer.c: tcp_timer_bug_msg # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/ipv4/igmp.c # 2004/12/27 19:49:57-08:00 bunk@stusta.de +8 -8 # [IPV4]: Staticize and remove unneeded exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - fib_rules.c: fib_rules_map_destination # - xfrm4_policy.: xfrm4_fini # - remove the following unneeded EXPORT_SYMBOL: # - tcp_timer.c: tcp_timer_bug_msg # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/ipv4/icmp.c # 2004/12/27 19:49:57-08:00 bunk@stusta.de +2 -2 # [IPV4]: Staticize and remove unneeded exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - fib_rules.c: fib_rules_map_destination # - xfrm4_policy.: xfrm4_fini # - remove the following unneeded EXPORT_SYMBOL: # - tcp_timer.c: tcp_timer_bug_msg # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/ipv4/fib_rules.c # 2004/12/27 19:49:57-08:00 bunk@stusta.de +1 -7 # [IPV4]: Staticize and remove unneeded exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - fib_rules.c: fib_rules_map_destination # - xfrm4_policy.: xfrm4_fini # - remove the following unneeded EXPORT_SYMBOL: # - tcp_timer.c: tcp_timer_bug_msg # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/ipv4/fib_frontend.c # 2004/12/27 19:49:57-08:00 bunk@stusta.de +3 -3 # [IPV4]: Staticize and remove unneeded exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - fib_rules.c: fib_rules_map_destination # - xfrm4_policy.: xfrm4_fini # - remove the following unneeded EXPORT_SYMBOL: # - tcp_timer.c: tcp_timer_bug_msg # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/ipv4/devinet.c # 2004/12/27 19:49:57-08:00 bunk@stusta.de +2 -2 # [IPV4]: Staticize and remove unneeded exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - fib_rules.c: fib_rules_map_destination # - xfrm4_policy.: xfrm4_fini # - remove the following unneeded EXPORT_SYMBOL: # - tcp_timer.c: tcp_timer_bug_msg # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/ipv4/arp.c # 2004/12/27 19:49:57-08:00 bunk@stusta.de +4 -4 # [IPV4]: Staticize and remove unneeded exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - fib_rules.c: fib_rules_map_destination # - xfrm4_policy.: xfrm4_fini # - remove the following unneeded EXPORT_SYMBOL: # - tcp_timer.c: tcp_timer_bug_msg # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/ipv4/af_inet.c # 2004/12/27 19:49:57-08:00 bunk@stusta.de +4 -4 # [IPV4]: Staticize and remove unneeded exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - fib_rules.c: fib_rules_map_destination # - xfrm4_policy.: xfrm4_fini # - remove the following unneeded EXPORT_SYMBOL: # - tcp_timer.c: tcp_timer_bug_msg # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # include/net/xfrm.h # 2004/12/27 19:49:57-08:00 bunk@stusta.de +0 -1 # [IPV4]: Staticize and remove unneeded exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - fib_rules.c: fib_rules_map_destination # - xfrm4_policy.: xfrm4_fini # - remove the following unneeded EXPORT_SYMBOL: # - tcp_timer.c: tcp_timer_bug_msg # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # include/net/tcp.h # 2004/12/27 19:49:57-08:00 bunk@stusta.de +0 -16 # [IPV4]: Staticize and remove unneeded exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - fib_rules.c: fib_rules_map_destination # - xfrm4_policy.: xfrm4_fini # - remove the following unneeded EXPORT_SYMBOL: # - tcp_timer.c: tcp_timer_bug_msg # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # include/net/ipconfig.h # 2004/12/27 19:49:57-08:00 bunk@stusta.de +0 -11 # [IPV4]: Staticize and remove unneeded exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - fib_rules.c: fib_rules_map_destination # - xfrm4_policy.: xfrm4_fini # - remove the following unneeded EXPORT_SYMBOL: # - tcp_timer.c: tcp_timer_bug_msg # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # include/net/ip_fib.h # 2004/12/27 19:49:57-08:00 bunk@stusta.de +0 -2 # [IPV4]: Staticize and remove unneeded exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - fib_rules.c: fib_rules_map_destination # - xfrm4_policy.: xfrm4_fini # - remove the following unneeded EXPORT_SYMBOL: # - tcp_timer.c: tcp_timer_bug_msg # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # include/net/ip.h # 2004/12/27 19:49:57-08:00 bunk@stusta.de +0 -2 # [IPV4]: Staticize and remove unneeded exports. # # The patch below contains the following possible cleanups: # - make some needlessly global code static # - remove the following unused global functions: # - fib_rules.c: fib_rules_map_destination # - xfrm4_policy.: xfrm4_fini # - remove the following unneeded EXPORT_SYMBOL: # - tcp_timer.c: tcp_timer_bug_msg # # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 18:54:21-08:00 bunk@stusta.de # [IPX]: Make needlessly global code static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/ipx/ipx_proc.c # 2004/12/27 18:54:01-08:00 bunk@stusta.de +3 -3 # [IPX]: Make needlessly global code static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/ipx/af_ipx.c # 2004/12/27 18:54:01-08:00 bunk@stusta.de +8 -2 # [IPX]: Make needlessly global code static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # include/net/ipx.h # 2004/12/27 18:54:01-08:00 bunk@stusta.de +0 -8 # [IPX]: Make needlessly global code static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 18:49:21-08:00 bunk@stusta.de # [IPVS]: Make needlessly global code static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/ipv4/ipvs/ip_vs_proto_icmp.c # 2004/12/27 18:49:01-08:00 bunk@stusta.de +2 -2 # [IPVS]: Make needlessly global code static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/ipv4/ipvs/ip_vs_proto.c # 2004/12/27 18:49:01-08:00 bunk@stusta.de +2 -2 # [IPVS]: Make needlessly global code static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/ipv4/ipvs/ip_vs_ctl.c # 2004/12/27 18:49:01-08:00 bunk@stusta.de +1 -1 # [IPVS]: Make needlessly global code static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/ipv4/ipvs/ip_vs_conn.c # 2004/12/27 18:49:01-08:00 bunk@stusta.de +1 -1 # [IPVS]: Make needlessly global code static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/ipv4/ipvs/ip_vs_app.c # 2004/12/27 18:49:01-08:00 bunk@stusta.de +1 -1 # [IPVS]: Make needlessly global code static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 18:41:46-08:00 bunk@stusta.de # [AF_PACKET]: Make needlessly global code static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/packet/af_packet.c # 2004/12/27 18:41:26-08:00 bunk@stusta.de +11 -10 # [AF_PACKET]: Make needlessly global code static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 18:40:25-08:00 bunk@stusta.de # [NETLINK]: Staticize and remove unused functions. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/netlink/af_netlink.c # 2004/12/27 18:40:05-08:00 bunk@stusta.de +1 -27 # [NETLINK]: Staticize and remove unused functions. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # include/linux/netlink.h # 2004/12/27 18:40:05-08:00 bunk@stusta.de +0 -3 # [NETLINK]: Staticize and remove unused functions. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 18:38:23-08:00 bunk@stusta.de # [AF_NET]: Mark pfkey_table static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/key/af_key.c # 2004/12/27 18:38:03-08:00 bunk@stusta.de +1 -1 # [AF_NET]: Mark pfkey_table static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 18:36:20-08:00 bunk@stusta.de # [NET]: Mark eth_header_parse static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/ethernet/eth.c # 2004/12/27 18:36:00-08:00 bunk@stusta.de +1 -1 # [NET]: Mark eth_header_parse static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # include/linux/etherdevice.h # 2004/12/27 18:36:00-08:00 bunk@stusta.de +0 -2 # [NET]: Mark eth_header_parse static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 18:33:52-08:00 bunk@stusta.de # [XFRM]: Staticize, and remove unused global functions. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/xfrm/xfrm_user.c # 2004/12/27 18:33:32-08:00 bunk@stusta.de +2 -2 # [XFRM]: Staticize, and remove unused global functions. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/xfrm/xfrm_state.c # 2004/12/27 18:33:32-08:00 bunk@stusta.de +5 -2 # [XFRM]: Staticize, and remove unused global functions. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/xfrm/xfrm_policy.c # 2004/12/27 18:33:32-08:00 bunk@stusta.de +4 -4 # [XFRM]: Staticize, and remove unused global functions. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/xfrm/xfrm_export.c # 2004/12/27 18:33:32-08:00 bunk@stusta.de +0 -1 # [XFRM]: Staticize, and remove unused global functions. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/xfrm/xfrm_algo.c # 2004/12/27 18:33:32-08:00 bunk@stusta.de +0 -8 # [XFRM]: Staticize, and remove unused global functions. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # include/net/xfrm.h # 2004/12/27 18:33:32-08:00 bunk@stusta.de +0 -5 # [XFRM]: Staticize, and remove unused global functions. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 18:32:23-08:00 bunk@stusta.de # [X25]: Staticize, and remove unused global functions. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/x25/x25_proc.c # 2004/12/27 18:32:03-08:00 bunk@stusta.de +2 -2 # [X25]: Staticize, and remove unused global functions. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/x25/x25_link.c # 2004/12/27 18:32:03-08:00 bunk@stusta.de +5 -28 # [X25]: Staticize, and remove unused global functions. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/x25/x25_dev.c # 2004/12/27 18:32:03-08:00 bunk@stusta.de +0 -23 # [X25]: Staticize, and remove unused global functions. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/x25/af_x25.c # 2004/12/27 18:32:03-08:00 bunk@stusta.de +4 -4 # [X25]: Staticize, and remove unused global functions. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # include/net/x25.h # 2004/12/27 18:32:03-08:00 bunk@stusta.de +0 -5 # [X25]: Staticize, and remove unused global functions. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 18:30:49-08:00 bunk@stusta.de # [AF_UNIX]: Mark needlessly global code static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/unix/sysctl_net_unix.c # 2004/12/27 18:30:29-08:00 bunk@stusta.de +1 -1 # [AF_UNIX]: Mark needlessly global code static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/unix/af_unix.c # 2004/12/27 18:30:29-08:00 bunk@stusta.de +1 -1 # [AF_UNIX]: Mark needlessly global code static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 18:29:36-08:00 bunk@stusta.de # [SUNRPC]: Staticize, kill unused functions, and remove unneeded exports. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/sunrpc/xprt.c # 2004/12/27 18:29:16-08:00 bunk@stusta.de +5 -3 # [SUNRPC]: Staticize, kill unused functions, and remove unneeded exports. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/sunrpc/xdr.c # 2004/12/27 18:29:16-08:00 bunk@stusta.de +3 -130 # [SUNRPC]: Staticize, kill unused functions, and remove unneeded exports. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/sunrpc/svcauth_unix.c # 2004/12/27 18:29:16-08:00 bunk@stusta.de +3 -3 # [SUNRPC]: Staticize, kill unused functions, and remove unneeded exports. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/sunrpc/svcauth.c # 2004/12/27 18:29:16-08:00 bunk@stusta.de +2 -1 # [SUNRPC]: Staticize, kill unused functions, and remove unneeded exports. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/sunrpc/sunrpc_syms.c # 2004/12/27 18:29:16-08:00 bunk@stusta.de +0 -1 # [SUNRPC]: Staticize, kill unused functions, and remove unneeded exports. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/sunrpc/sched.c # 2004/12/27 18:29:16-08:00 bunk@stusta.de +4 -1 # [SUNRPC]: Staticize, kill unused functions, and remove unneeded exports. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/sunrpc/rpc_pipe.c # 2004/12/27 18:29:16-08:00 bunk@stusta.de +2 -7 # [SUNRPC]: Staticize, kill unused functions, and remove unneeded exports. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/sunrpc/pmap_clnt.c # 2004/12/27 18:29:16-08:00 bunk@stusta.de +2 -2 # [SUNRPC]: Staticize, kill unused functions, and remove unneeded exports. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/sunrpc/cache.c # 2004/12/27 18:29:16-08:00 bunk@stusta.de +9 -32 # [SUNRPC]: Staticize, kill unused functions, and remove unneeded exports. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/sunrpc/auth_gss/svcauth_gss.c # 2004/12/27 18:29:16-08:00 bunk@stusta.de +2 -2 # [SUNRPC]: Staticize, kill unused functions, and remove unneeded exports. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/sunrpc/auth_gss/gss_spkm3_mech.c # 2004/12/27 18:29:16-08:00 bunk@stusta.de +3 -6 # [SUNRPC]: Staticize, kill unused functions, and remove unneeded exports. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/sunrpc/auth_gss/gss_krb5_mech.c # 2004/12/27 18:29:16-08:00 bunk@stusta.de +0 -3 # [SUNRPC]: Staticize, kill unused functions, and remove unneeded exports. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/sunrpc/auth_gss/gss_krb5_crypto.c # 2004/12/27 18:29:16-08:00 bunk@stusta.de +1 -1 # [SUNRPC]: Staticize, kill unused functions, and remove unneeded exports. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/sunrpc/auth_gss/gss_generic_token.c # 2004/12/27 18:29:16-08:00 bunk@stusta.de +0 -35 # [SUNRPC]: Staticize, kill unused functions, and remove unneeded exports. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/sunrpc/auth_gss/auth_gss.c # 2004/12/27 18:29:16-08:00 bunk@stusta.de +1 -1 # [SUNRPC]: Staticize, kill unused functions, and remove unneeded exports. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/sunrpc/auth.c # 2004/12/27 18:29:16-08:00 bunk@stusta.de +1 -1 # [SUNRPC]: Staticize, kill unused functions, and remove unneeded exports. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # include/linux/sunrpc/xprt.h # 2004/12/27 18:29:16-08:00 bunk@stusta.de +0 -3 # [SUNRPC]: Staticize, kill unused functions, and remove unneeded exports. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # include/linux/sunrpc/xdr.h # 2004/12/27 18:29:16-08:00 bunk@stusta.de +0 -6 # [SUNRPC]: Staticize, kill unused functions, and remove unneeded exports. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # include/linux/sunrpc/sched.h # 2004/12/27 18:29:16-08:00 bunk@stusta.de +0 -1 # [SUNRPC]: Staticize, kill unused functions, and remove unneeded exports. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # include/linux/sunrpc/gss_asn1.h # 2004/12/27 18:29:16-08:00 bunk@stusta.de +0 -2 # [SUNRPC]: Staticize, kill unused functions, and remove unneeded exports. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # include/linux/sunrpc/cache.h # 2004/12/27 18:29:16-08:00 bunk@stusta.de +0 -5 # [SUNRPC]: Staticize, kill unused functions, and remove unneeded exports. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # include/linux/sunrpc/auth.h # 2004/12/27 18:29:16-08:00 bunk@stusta.de +0 -2 # [SUNRPC]: Staticize, kill unused functions, and remove unneeded exports. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 18:25:23-08:00 bunk@stusta.de # [NET]: No need to export sock_readv_writev # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/socket.c # 2004/12/27 18:25:03-08:00 bunk@stusta.de +3 -2 # [NET]: No need to export sock_readv_writev # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # include/linux/net.h # 2004/12/27 18:25:03-08:00 bunk@stusta.de +0 -4 # [NET]: No need to export sock_readv_writev # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 18:24:18-08:00 bunk@stusta.de # [AX25]: Staticize functions, and remove unused global function. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/ax25/ax25_ds_subr.c # 2004/12/27 18:23:58-08:00 bunk@stusta.de +1 -1 # [AX25]: Staticize functions, and remove unused global function. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/ax25/ax25_addr.c # 2004/12/27 18:23:58-08:00 bunk@stusta.de +0 -20 # [AX25]: Staticize functions, and remove unused global function. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/ax25/af_ax25.c # 2004/12/27 18:23:58-08:00 bunk@stusta.de +1 -1 # [AX25]: Staticize functions, and remove unused global function. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # include/net/ax25.h # 2004/12/27 18:23:58-08:00 bunk@stusta.de +0 -3 # [AX25]: Staticize functions, and remove unused global function. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 18:23:16-08:00 bunk@stusta.de # [APPLETALK]: Make some code static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/appletalk/ddp.c # 2004/12/27 18:22:56-08:00 bunk@stusta.de +3 -3 # [APPLETALK]: Make some code static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/appletalk/atalk_proc.c # 2004/12/27 18:22:56-08:00 bunk@stusta.de +3 -3 # [APPLETALK]: Make some code static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # net/appletalk/aarp.c # 2004/12/27 18:22:56-08:00 bunk@stusta.de +2 -2 # [APPLETALK]: Make some code static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # include/linux/atalk.h # 2004/12/27 18:22:56-08:00 bunk@stusta.de +0 -2 # [APPLETALK]: Make some code static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 18:18:32-08:00 bunk@stusta.de # [SUNRPC]: Remove unused file net/sunrpc/auth_gss/sunrpcgss_syms.c # # Signed-off-by: David S. Miller # # BitKeeper/deleted/.del-sunrpcgss_syms.c~1faadca444e4da14 # 2004/12/27 18:17:57-08:00 bunk@stusta.de +0 -0 # Delete: net/sunrpc/auth_gss/sunrpcgss_syms.c # # ChangeSet # 2004/12/27 18:15:09-08:00 bunk@stusta.de # [SUNRPC]: Remove unused file net/sunrpc/svcauth_des.c # # Signed-off-by: David S. Miller # # BitKeeper/deleted/.del-svcauth_des.c~6e3893ce7064e0ed # 2004/12/27 18:14:36-08:00 bunk@stusta.de +0 -0 # Delete: net/sunrpc/svcauth_des.c # # ChangeSet # 2004/12/27 18:12:59-08:00 bunk@stusta.de # [SUNRPC]: Remove unused file net/sunrpc/auth_gss/gss_pseudoflavors.c # # Signed-off-by: David S. Miller # # BitKeeper/deleted/.del-gss_pseudoflavors.c~2f397379d8d33406 # 2004/12/27 18:12:09-08:00 bunk@stusta.de +0 -0 # Delete: net/sunrpc/auth_gss/gss_pseudoflavors.c # # ChangeSet # 2004/12/27 18:08:07-08:00 chas@cmf.nrl.navy.mil # [ATM]: small atm cleanups (from Adrian Bunk ) # # Signed-off-by: Chas Williams # Signed-off-by: David S. Miller # # drivers/atm/nicstarmac.h # 2004/12/27 18:07:47-08:00 chas@cmf.nrl.navy.mil +0 -1 # [ATM]: small atm cleanups (from Adrian Bunk ) # # Signed-off-by: Chas Williams # Signed-off-by: David S. Miller # # drivers/atm/nicstarmac.c # 2004/12/27 18:07:47-08:00 chas@cmf.nrl.navy.mil +4 -1 # [ATM]: small atm cleanups (from Adrian Bunk ) # # Signed-off-by: Chas Williams # Signed-off-by: David S. Miller # # drivers/atm/iphase.h # 2004/12/27 18:07:47-08:00 chas@cmf.nrl.navy.mil +0 -4 # [ATM]: small atm cleanups (from Adrian Bunk ) # # Signed-off-by: Chas Williams # Signed-off-by: David S. Miller # # drivers/atm/iphase.c # 2004/12/27 18:07:47-08:00 chas@cmf.nrl.navy.mil +7 -10 # [ATM]: small atm cleanups (from Adrian Bunk ) # # Signed-off-by: Chas Williams # Signed-off-by: David S. Miller # # drivers/atm/idt77252.h # 2004/12/27 18:07:47-08:00 chas@cmf.nrl.navy.mil +1 -1 # [ATM]: small atm cleanups (from Adrian Bunk ) # # Signed-off-by: Chas Williams # Signed-off-by: David S. Miller # # drivers/atm/idt77105.h # 2004/12/27 18:07:47-08:00 chas@cmf.nrl.navy.mil +0 -1 # [ATM]: small atm cleanups (from Adrian Bunk ) # # Signed-off-by: Chas Williams # Signed-off-by: David S. Miller # # drivers/atm/idt77105.c # 2004/12/27 18:07:47-08:00 chas@cmf.nrl.navy.mil +1 -1 # [ATM]: small atm cleanups (from Adrian Bunk ) # # Signed-off-by: Chas Williams # Signed-off-by: David S. Miller # # drivers/atm/he.h # 2004/12/27 18:07:47-08:00 chas@cmf.nrl.navy.mil +0 -43 # [ATM]: small atm cleanups (from Adrian Bunk ) # # Signed-off-by: Chas Williams # Signed-off-by: David S. Miller # # drivers/atm/he.c # 2004/12/27 18:07:47-08:00 chas@cmf.nrl.navy.mil +43 -1 # [ATM]: small atm cleanups (from Adrian Bunk ) # # Signed-off-by: Chas Williams # Signed-off-by: David S. Miller # # drivers/atm/firestream.c # 2004/12/27 18:07:47-08:00 chas@cmf.nrl.navy.mil +6 -6 # [ATM]: small atm cleanups (from Adrian Bunk ) # # Signed-off-by: Chas Williams # Signed-off-by: David S. Miller # # drivers/atm/atmtcp.c # 2004/12/27 18:07:47-08:00 chas@cmf.nrl.navy.mil +3 -3 # [ATM]: small atm cleanups (from Adrian Bunk ) # # Signed-off-by: Chas Williams # Signed-off-by: David S. Miller # # drivers/atm/ambassador.c # 2004/12/27 18:07:47-08:00 chas@cmf.nrl.navy.mil +2 -2 # [ATM]: small atm cleanups (from Adrian Bunk ) # # Signed-off-by: Chas Williams # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 18:06:57-08:00 tgraf@suug.ch # [PKT_SCHED]: Validate policer configuration TLVs. # # Signed-off-by: Thomas Graf # Signed-off-by: David S. Miller # # net/sched/police.c # 2004/12/27 18:06:37-08:00 tgraf@suug.ch +22 -8 # [PKT_SCHED]: Validate policer configuration TLVs. # # Signed-off-by: Thomas Graf # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 23:57:10-02:00 acme@conectiva.com.br # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # security/selinux/avc.c # 2004/12/27 23:56:34-02:00 acme@conectiva.com.br +2 -2 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/sctp/protocol.c # 2004/12/27 23:56:34-02:00 acme@conectiva.com.br +2 -2 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/sctp/ipv6.c # 2004/12/27 23:56:34-02:00 acme@conectiva.com.br +3 -3 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/sctp/input.c # 2004/12/27 23:56:34-02:00 acme@conectiva.com.br +1 -1 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv6/udp.c # 2004/12/27 23:56:34-02:00 acme@conectiva.com.br +6 -6 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv6/tcp_ipv6.c # 2004/12/27 23:56:34-02:00 acme@conectiva.com.br +10 -10 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv6/raw.c # 2004/12/27 23:56:34-02:00 acme@conectiva.com.br +5 -5 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv6/ip6_output.c # 2004/12/27 23:56:34-02:00 acme@conectiva.com.br +3 -3 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv6/datagram.c # 2004/12/27 23:56:34-02:00 acme@conectiva.com.br +2 -2 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv6/af_inet6.c # 2004/12/27 23:56:34-02:00 acme@conectiva.com.br +4 -6 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv4/udp.c # 2004/12/27 23:56:34-02:00 acme@conectiva.com.br +10 -10 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv4/tcp_timer.c # 2004/12/27 23:56:34-02:00 acme@conectiva.com.br +1 -1 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv4/tcp_output.c # 2004/12/27 23:56:34-02:00 acme@conectiva.com.br +1 -1 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv4/tcp_minisocks.c # 2004/12/27 23:56:34-02:00 acme@conectiva.com.br +1 -1 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv4/tcp_ipv4.c # 2004/12/27 23:56:34-02:00 acme@conectiva.com.br +16 -16 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv4/tcp_input.c # 2004/12/27 23:56:34-02:00 acme@conectiva.com.br +1 -1 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv4/tcp_diag.c # 2004/12/27 23:56:34-02:00 acme@conectiva.com.br +7 -7 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv4/tcp.c # 2004/12/27 23:56:34-02:00 acme@conectiva.com.br +2 -2 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv4/raw.c # 2004/12/27 23:56:34-02:00 acme@conectiva.com.br +7 -7 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv4/netfilter/ip_conntrack_core.c # 2004/12/27 23:56:34-02:00 acme@conectiva.com.br +1 -1 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv4/ipvs/ip_vs_sync.c # 2004/12/27 23:56:34-02:00 acme@conectiva.com.br +3 -3 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv4/ip_sockglue.c # 2004/12/27 23:56:34-02:00 acme@conectiva.com.br +6 -6 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv4/ip_output.c # 2004/12/27 23:56:34-02:00 acme@conectiva.com.br +8 -8 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv4/igmp.c # 2004/12/27 23:56:34-02:00 acme@conectiva.com.br +8 -8 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv4/icmp.c # 2004/12/27 23:56:33-02:00 acme@conectiva.com.br +2 -2 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv4/datagram.c # 2004/12/27 23:56:33-02:00 acme@conectiva.com.br +1 -1 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv4/af_inet.c # 2004/12/27 23:56:33-02:00 acme@conectiva.com.br +5 -5 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # include/net/tcp.h # 2004/12/27 23:56:33-02:00 acme@conectiva.com.br +1 -1 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # include/net/sctp/sctp.h # 2004/12/27 23:56:33-02:00 acme@conectiva.com.br +3 -9 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # include/net/icmp.h # 2004/12/27 23:56:33-02:00 acme@conectiva.com.br +1 -7 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # include/linux/udp.h # 2004/12/27 23:56:33-02:00 acme@conectiva.com.br +1 -5 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # include/linux/tcp.h # 2004/12/27 23:56:33-02:00 acme@conectiva.com.br +1 -5 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # include/linux/ipv6.h # 2004/12/27 23:56:33-02:00 acme@conectiva.com.br +4 -10 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # include/linux/ip.h # 2004/12/27 23:56:33-02:00 acme@conectiva.com.br +10 -14 # [INET] move inet_sock into inet_opt and rename it to inet_sock # # With this we can remove all the cut'n'pasted layouts in all inet_sock # derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/27 15:41:28-05:00 stkn@gentoo.org # [libata] add #include (fixes 2.4 alpha build) # # drivers/scsi/libata-core.c # 2004/12/27 15:41:22-05:00 stkn@gentoo.org +1 -0 # [libata] add #include (fixes 2.4 alpha build) # # ChangeSet # 2004/12/27 15:29:14-05:00 albertcc@tw.ibm.com # [libata] verify ATAPI DMA for a given request is OK # # After some testing, it seems that some PATA host adapter (ex. pdc20275) cannot # work reliably with specific request buffer sizes under ATAPI DMA mode. # # Detailed test result: # 4096, 2048, 1024, 512, 256: OK # 384, 257, 255, 128, 96, 64, 32: failed (irq lost) # # It seems multiple of 256 bytes are the safe ATAPI DMA buffer sizes to use. # # Attached please find the patch to fix the pdc2027x ATAPI DMA problem. # # Changes: # 1. Add a callback function "check_atapi_dma()" to ata_port_operations such that libata core # can ask the driver: "Can this command be processed in ATAPI DMA mode safely? " # when the the command is received. # 2. ATAPI DMA is off by default if the callback function is not provided by the driver # # If the callback function is not provided by the driver, the ATAPI DMA should be as is. # The ATAPI DMA is already controlled by dev->flags. # # BTW, the patch isolates the ATAPI DMA workaround to the pdc20275 driver itself, # not impacting libata core . # # Signed-off-by: Albert Lee # # include/linux/libata.h # 2004/12/27 15:29:08-05:00 albertcc@tw.ibm.com +2 -0 # [libata] verify ATAPI DMA for a given request is OK # # After some testing, it seems that some PATA host adapter (ex. pdc20275) cannot # work reliably with specific request buffer sizes under ATAPI DMA mode. # # Detailed test result: # 4096, 2048, 1024, 512, 256: OK # 384, 257, 255, 128, 96, 64, 32: failed (irq lost) # # It seems multiple of 256 bytes are the safe ATAPI DMA buffer sizes to use. # # Attached please find the patch to fix the pdc2027x ATAPI DMA problem. # # Changes: # 1. Add a callback function "check_atapi_dma()" to ata_port_operations such that libata core # can ask the driver: "Can this command be processed in ATAPI DMA mode safely? " # when the the command is received. # 2. ATAPI DMA is off by default if the callback function is not provided by the driver # # If the callback function is not provided by the driver, the ATAPI DMA should be as is. # The ATAPI DMA is already controlled by dev->flags. # # BTW, the patch isolates the ATAPI DMA workaround to the pdc20275 driver itself, # not impacting libata core . # # Signed-off-by: Albert Lee # # drivers/scsi/libata.h # 2004/12/27 15:29:08-05:00 albertcc@tw.ibm.com +1 -0 # [libata] verify ATAPI DMA for a given request is OK # # After some testing, it seems that some PATA host adapter (ex. pdc20275) cannot # work reliably with specific request buffer sizes under ATAPI DMA mode. # # Detailed test result: # 4096, 2048, 1024, 512, 256: OK # 384, 257, 255, 128, 96, 64, 32: failed (irq lost) # # It seems multiple of 256 bytes are the safe ATAPI DMA buffer sizes to use. # # Attached please find the patch to fix the pdc2027x ATAPI DMA problem. # # Changes: # 1. Add a callback function "check_atapi_dma()" to ata_port_operations such that libata core # can ask the driver: "Can this command be processed in ATAPI DMA mode safely? " # when the the command is received. # 2. ATAPI DMA is off by default if the callback function is not provided by the driver # # If the callback function is not provided by the driver, the ATAPI DMA should be as is. # The ATAPI DMA is already controlled by dev->flags. # # BTW, the patch isolates the ATAPI DMA workaround to the pdc20275 driver itself, # not impacting libata core . # # Signed-off-by: Albert Lee # # drivers/scsi/libata-scsi.c # 2004/12/27 15:29:08-05:00 albertcc@tw.ibm.com +5 -0 # [libata] verify ATAPI DMA for a given request is OK # # After some testing, it seems that some PATA host adapter (ex. pdc20275) cannot # work reliably with specific request buffer sizes under ATAPI DMA mode. # # Detailed test result: # 4096, 2048, 1024, 512, 256: OK # 384, 257, 255, 128, 96, 64, 32: failed (irq lost) # # It seems multiple of 256 bytes are the safe ATAPI DMA buffer sizes to use. # # Attached please find the patch to fix the pdc2027x ATAPI DMA problem. # # Changes: # 1. Add a callback function "check_atapi_dma()" to ata_port_operations such that libata core # can ask the driver: "Can this command be processed in ATAPI DMA mode safely? " # when the the command is received. # 2. ATAPI DMA is off by default if the callback function is not provided by the driver # # If the callback function is not provided by the driver, the ATAPI DMA should be as is. # The ATAPI DMA is already controlled by dev->flags. # # BTW, the patch isolates the ATAPI DMA workaround to the pdc20275 driver itself, # not impacting libata core . # # Signed-off-by: Albert Lee # # drivers/scsi/libata-core.c # 2004/12/27 15:29:08-05:00 albertcc@tw.ibm.com +17 -0 # [libata] verify ATAPI DMA for a given request is OK # # After some testing, it seems that some PATA host adapter (ex. pdc20275) cannot # work reliably with specific request buffer sizes under ATAPI DMA mode. # # Detailed test result: # 4096, 2048, 1024, 512, 256: OK # 384, 257, 255, 128, 96, 64, 32: failed (irq lost) # # It seems multiple of 256 bytes are the safe ATAPI DMA buffer sizes to use. # # Attached please find the patch to fix the pdc2027x ATAPI DMA problem. # # Changes: # 1. Add a callback function "check_atapi_dma()" to ata_port_operations such that libata core # can ask the driver: "Can this command be processed in ATAPI DMA mode safely? " # when the the command is received. # 2. ATAPI DMA is off by default if the callback function is not provided by the driver # # If the callback function is not provided by the driver, the ATAPI DMA should be as is. # The ATAPI DMA is already controlled by dev->flags. # # BTW, the patch isolates the ATAPI DMA workaround to the pdc20275 driver itself, # not impacting libata core . # # Signed-off-by: Albert Lee # # ChangeSet # 2004/12/27 15:24:53-05:00 albertcc@tw.ibm.com # [libata] PIO error handling improvement # # Tested burning CD-RW with libata-dev-2.6 and cdrecord: # 1. ATAPI DMA mode - tested OK # 2. ATAPI PIO mode - test failed when cdrecord finishes burning and issues MODE_SELECT to the device. # # After checking the log, it showed that MODE_SELECT caused ata_pio_complete() to return error. # However, the error is not handled by ata_pio_task(). # # Attached please find the patch for ata_pio_task() error handling for your review. # (The patch is against the libata-dev-2.6 tree. ) # # Changes in the patch: # 1. End the PIO task when PIO_ST_IDLE state is entered # 2. End the PIO task after PIO_ST_TMOUT and PIO_ST_ERR state handled by ata_pio_error() # 3. Remove the first "if" statement to handle the error condition returned from # ata_pio_block(), ata_pio_complete() and ata_pio_poll(). # # Change #2 is not so necessary since ata_pio_error() will put the cmd to PIO_ST_IDLE state # after the error condition is handled. The change just saves a function call to queue_work(). # # Tested OK on on my machine with pdc20275 and ASUS CD-RW drive. # # Signed-off-by: Albert Lee # # drivers/scsi/libata-core.c # 2004/12/27 15:24:47-05:00 albertcc@tw.ibm.com +9 -10 # [libata] PIO error handling improvement # # Tested burning CD-RW with libata-dev-2.6 and cdrecord: # 1. ATAPI DMA mode - tested OK # 2. ATAPI PIO mode - test failed when cdrecord finishes burning and issues MODE_SELECT to the device. # # After checking the log, it showed that MODE_SELECT caused ata_pio_complete() to return error. # However, the error is not handled by ata_pio_task(). # # Attached please find the patch for ata_pio_task() error handling for your review. # (The patch is against the libata-dev-2.6 tree. ) # # Changes in the patch: # 1. End the PIO task when PIO_ST_IDLE state is entered # 2. End the PIO task after PIO_ST_TMOUT and PIO_ST_ERR state handled by ata_pio_error() # 3. Remove the first "if" statement to handle the error condition returned from # ata_pio_block(), ata_pio_complete() and ata_pio_poll(). # # Change #2 is not so necessary since ata_pio_error() will put the cmd to PIO_ST_IDLE state # after the error condition is handled. The change just saves a function call to queue_work(). # # Tested OK on on my machine with pdc20275 and ASUS CD-RW drive. # # Signed-off-by: Albert Lee # # ChangeSet # 2004/12/27 15:22:51-05:00 albertcc@tw.ibm.com # [libata] use PIO mode for request sense # # Signed-off-by: Albert Lee # # drivers/scsi/libata-core.c # 2004/12/27 15:22:45-05:00 albertcc@tw.ibm.com +4 -11 # [libata] use PIO mode for request sense # # Signed-off-by: Albert Lee # # ChangeSet # 2004/12/27 15:13:29-05:00 bunk@stusta.de # [PATCH] drivers/char/hw_random.c: make a variable static # # Signed-off-by: Jeff Garzik # # drivers/char/hw_random.c # 2004/11/06 18:10:39-05:00 bunk@stusta.de +1 -1 # drivers/char/hw_random.c: make a variable static (fwd) # # ChangeSet # 2004/12/27 15:13:16-05:00 james4765@verizon.net # [PATCH] hw_random: Minor cleanup to hw_random.c # # Clean up in drivers/char/hw_random.c: # Make debug #defines a little easier to understand. # Small whitespace cleanup. # Change some printk()'s into pr_info()'s. # Add KERN_ constant to debug printk(). # # Signed-off-by: James Nelson # Signed-off-by: Jeff Garzik # # drivers/char/hw_random.c # 2004/12/26 11:22:27-05:00 james4765@verizon.net +15 -18 # hw_random: Minor cleanup to hw_random.c # # ChangeSet # 2004/12/27 10:28:42-08:00 torvalds@ppc970.osdl.org # Merge bk://linux-scsi.bkbits.net/scsi-for-linus-2.6 # into ppc970.osdl.org:/home/torvalds/v2.6/linux # # include/linux/pci_ids.h # 2004/12/27 10:28:38-08:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # drivers/scsi/qla2xxx/qla_rscn.c # 2004/12/27 10:28:38-08:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # drivers/scsi/aacraid/linit.c # 2004/12/27 10:28:38-08:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # drivers/scsi/scsi_lib.c # 2004/12/27 10:28:37-08:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # drivers/scsi/aacraid/aacraid.h # 2004/12/27 10:28:37-08:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # drivers/scsi/Kconfig # 2004/12/27 10:28:37-08:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # ChangeSet # 2004/12/27 10:24:28-08:00 arjan@infradead.org # [PATCH] drivers/acpi/ibm_acpi.o .init.text refers to .exit.text # # the ibm_acpi.c driver references acpi_ibm_exit() from it's __init function, # which means the exit function isn't allowed to be __exit since __exit # functions are not part of vmlinux while __init functions are. # # Signed-off-by: Arjan van de Ven # Signed-off-by: Linus Torvalds # # drivers/acpi/ibm_acpi.c # 2004/12/27 02:20:31-08:00 arjan@infradead.org +1 -1 # drivers/acpi/ibm_acpi.o .init.text refers to .exit.text # # ChangeSet # 2004/12/27 10:21:04-08:00 torvalds@ppc970.osdl.org # Merge bk://linux-voyager.bkbits.net/mca-2.6 # into ppc970.osdl.org:/home/torvalds/v2.6/linux # # include/asm-sparc/processor.h # 2004/12/27 10:21:00-08:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # arch/i386/kernel/time.c # 2004/12/27 10:21:00-08:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # ChangeSet # 2004/12/27 10:19:24-08:00 torvalds@ppc970.osdl.org # Revert duplicate AC97 id's. # # They were already there, properly sorted too. # # sound/pci/intel8x0.c # 2004/12/27 10:19:17-08:00 torvalds@ppc970.osdl.org +0 -18 # Revert duplicate AC97 id's. # # They were already there, properly sorted too. # # ChangeSet # 2004/12/27 10:06:23-06:00 jejb@mulgrave.(none) # SCSI: fix compile warning in fc transport class # # CC [M] drivers/scsi/scsi_transport_fc.o # drivers/scsi/scsi_transport_fc.c: In function `fc_stat_show': # drivers/scsi/scsi_transport_fc.c:634: warning: long long unsigned int format, long unsigned int arg (arg 4) # # To us %llx on a 64 bit platform we have to cast u64 to # unsigned long long. # # Signed-off-by: James Bottomley # # drivers/scsi/scsi_transport_fc.c # 2004/12/27 10:04:13-06:00 jejb@mulgrave.(none) +1 -1 # SCSI: fix compile warning in fc transport class # # ChangeSet # 2004/12/27 09:52:25-06:00 jejb@mulgrave.(none) # SCSI: Add FC transport host attributes # # From: James.Smart@Emulex.Com # # This patch updates the fc_transport with attributes for local FC ports # (e.g. Hosts). The port attributes are defined per HBAAPI v2.0 definitions. # # This patch results in the following in /sys/class: # ----------------------------------------------------- # # [jsmart@elxware class]$ cd /sys/class # [jsmart@elxware class]$ ls # fc_host graphics misc pci_bus scsi_host usb_host # fc_transport input net scsi_device tty vc # firmware mem netlink scsi_generic usb # [jsmart@elxware class]$ cd fc_host # [jsmart@elxware fc_host]$ ls # host4 # # [jsmart@elxware fc_host]$ cd host4 # [jsmart@elxware host4]$ ls # device host_port_maxframe_size host_port_supported_speeds # host_fabric_name host_port_name host_port_symbolic_name # host_link_down_tmo host_port_speed host_port_type # host_node_name host_port_state host_tgtid_bind_type # host_port_active_fc4s host_port_supported_classes statistics # host_port_id host_port_supported_fc4s # [jsmart@elxware host4]$ ls -ld * # lrwxrwxrwx 1 root root 0 Oct 13 18:24 device -> ../../../devices/platform/host4 # -r--r--r-- 1 root root 4096 Oct 13 18:24 host_fabric_name # -rw-r--r-- 1 root root 4096 Oct 13 18:24 host_link_down_tmo # -r--r--r-- 1 root root 4096 Oct 13 18:24 host_node_name # -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_active_fc4s # -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_id # -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_maxframe_size # -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_name # -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_speed # -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_state # -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_supported_classes # -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_supported_fc4s # -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_supported_speeds # -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_symbolic_name # -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_type # -rw-r--r-- 1 root root 4096 Oct 13 18:24 host_tgtid_bind_type # drwxr-xr-x 2 root root 0 Oct 13 18:24 statistics # # # Using the following script (/tmp/show_attributes): # #!/bin/sh # FILES=`ls *` # for file in $FILES; do # if [ -f $file ] ; then # echo "$file : " `cat $file` # fi # done # # Here's a sample of querying the attributes: # # [jsmart@elxware /]$ cd /sys/class/fc_host/host4 # [jsmart@elxware host4]$ /tmp/show_attributes # host_fabric_name : 0x33334444ffeeddcc # host_link_down_tmo : 30 # host_node_name : 0x78563412aabbccdd # host_port_active_fc4s : hex: 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f # host_port_id : 0x789abc # host_port_maxframe_size : 2511 bytes # host_port_name : 0xefcdab9011223344 # host_port_speed : 2 Gbit # host_port_state : Online # host_port_supported_classes : Class 2, Class 3 # host_port_supported_fc4s : hex: 80 81 82 83 84 85 86 87 88 89 8a 8b 8c 8d 8e 8f 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e 9f # host_port_supported_speeds : 2 Gbit, 4 Gbit, 10 Gbit # host_port_symbolic_name : LP9052 Dual Port Adapter # host_port_type : NPort (fabric via point-to-point) # host_tgtid_bind_type : wwpn (World Wide Port Name) # # Signed-off-by: James Bottomley # # include/scsi/scsi_transport_fc.h # 2004/12/27 09:51:06-06:00 jejb@mulgrave.(none) +207 -28 # SCSI: Add FC transport host attributes # # drivers/scsi/scsi_transport_fc.c # 2004/12/27 09:51:06-06:00 jejb@mulgrave.(none) +400 -53 # SCSI: Add FC transport host attributes # # ChangeSet # 2004/12/27 09:13:20-06:00 sleddog@us.ibm.com # [PATCH] ibmvscsi: replace schedule_timeout() with msleep() # # Description: Use msleep() instead of schedule_timeout() # to guarantee the task delays as expected. Originally # submitted to linux-scsi by the janitors, and resubmitted # by boutcher (after testing :-) # # Signed-off-by: Nishanth Aravamudan # Signed-off-by: Maximilian Attems # Signed-off-by: Dave Boutcher # Signed-off-by: James Bottomley # # drivers/scsi/ibmvscsi/ibmvscsi.c # 2004/10/20 19:41:22-05:00 sleddog@us.ibm.com +2 -2 # ibmvscsi: replace schedule_timeout() with msleep() # # ChangeSet # 2004/12/27 10:58:39+00:00 dvrabel@com.rmk.(none) # [ARM PATCH] 2323/1: Expand IXP4XX_WATCHDOG config help text # # Patch from David Vrabel # # Expand the IXP4XX_WATCHDOG (IXP4xx internal watchdog) config option help text with a note about its ineffectiveness. # # Signed-off-by: David Vrabel # Signed-off-by: Russell King # # drivers/char/watchdog/Kconfig # 2004/12/22 10:54:00+00:00 dvrabel@com.rmk.(none) +5 -0 # [PATCH] 2323/1: Expand IXP4XX_WATCHDOG config help text # # ChangeSet # 2004/12/27 10:53:36+00:00 catalin.marinas@com.rmk.(none) # [ARM PATCH] 2322/1: Enable ARM922T configuration option for Integrator # # Patch from Catalin Marinas # # This patch enables the ARM922T configuration option for the # Integrator platforms (there is an Excalibur core module available). # # Signed-off-by: Catalin Marinas # Signed-off-by: Russell King # # arch/arm/mm/Kconfig # 2004/12/27 00:00:00+00:00 catalin.marinas@com.rmk.(none) +3 -3 # [PATCH] 2322/1: Enable ARM922T configuration option for Integrator # # ChangeSet # 2004/12/27 10:48:52+00:00 dsaxena@net.rmk.(none) # [ARM PATCH] 2264/1: Move platform-specific code out of entry-armv.S # # Patch from Deepak Saxena # # This patch borrows from the uclinux source where they have moved # the per-platform code for get_irqnr_and_base, disable_fiq, and # irq_prio_table out of entry-armv.S. However, instead of putting the # macros in arch/arm/mach-$(MACHINE)/entry-header.S, we just have # it in the machine's incdir. This means we don't need the extra # complexity of creating symlink at build time. The patch also removes # the irq_prio_table as a requirement for all machines and makes it # specific to IOC/IOMD machines. # # This patch drastically shrinks entry-armv.S and allows us to delete # and add machines without having to touch generic code (there were two # dead machines laying around in entry-armv.S). # # Tested on IXP4xx and test-built for just about every defconfig. # # Signed-off-by: Deepak Saxena # Signed-off-by: Russell King # # include/asm-arm/hardware/entry-macro-iomd.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +145 -0 # [PATCH] 2264/1: Move platform-specific code out of entry-armv.S # # include/asm-arm/arch-versatile/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +35 -0 # [PATCH] 2264/1: Move platform-specific code out of entry-armv.S # # include/asm-arm/arch-shark/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +35 -0 # [PATCH] 2264/1: Move platform-specific code out of entry-armv.S # # include/asm-arm/arch-sa1100/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +41 -0 # [PATCH] 2264/1: Move platform-specific code out of entry-armv.S # # include/asm-arm/arch-s3c2410/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +127 -0 # [PATCH] 2264/1: Move platform-specific code out of entry-armv.S # # include/asm-arm/arch-rpc/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +3 -0 # [PATCH] 2264/1: Move platform-specific code out of entry-armv.S # # include/asm-arm/arch-pxa/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +31 -0 # [PATCH] 2264/1: Move platform-specific code out of entry-armv.S # # arch/arm/kernel/entry-header.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +1 -0 # [PATCH] 2264/1: Move platform-specific code out of entry-armv.S # # include/asm-arm/hardware/entry-macro-iomd.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/include/asm-arm/hardware/entry-macro-iomd.S # # include/asm-arm/arch-versatile/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/include/asm-arm/arch-versatile/entry-macro.S # # include/asm-arm/arch-shark/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/include/asm-arm/arch-shark/entry-macro.S # # include/asm-arm/arch-sa1100/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/include/asm-arm/arch-sa1100/entry-macro.S # # include/asm-arm/arch-s3c2410/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/include/asm-arm/arch-s3c2410/entry-macro.S # # include/asm-arm/arch-rpc/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/include/asm-arm/arch-rpc/entry-macro.S # # include/asm-arm/arch-pxa/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/include/asm-arm/arch-pxa/entry-macro.S # # include/asm-arm/arch-omap/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +32 -0 # [PATCH] 2264/1: Move platform-specific code out of entry-armv.S # # include/asm-arm/arch-lh7a40x/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +67 -0 # [PATCH] 2264/1: Move platform-specific code out of entry-armv.S # # include/asm-arm/arch-l7200/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +29 -0 # [PATCH] 2264/1: Move platform-specific code out of entry-armv.S # # include/asm-arm/arch-ixp4xx/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +26 -0 # [PATCH] 2264/1: Move platform-specific code out of entry-armv.S # # include/asm-arm/arch-ixp2000/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +59 -0 # [PATCH] 2264/1: Move platform-specific code out of entry-armv.S # # include/asm-arm/arch-iop3xx/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +61 -0 # [PATCH] 2264/1: Move platform-specific code out of entry-armv.S # # include/asm-arm/arch-integrator/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +35 -0 # [PATCH] 2264/1: Move platform-specific code out of entry-armv.S # # include/asm-arm/arch-imx/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +29 -0 # [PATCH] 2264/1: Move platform-specific code out of entry-armv.S # # include/asm-arm/arch-h720x/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +60 -0 # [PATCH] 2264/1: Move platform-specific code out of entry-armv.S # # include/asm-arm/arch-epxa10db/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +25 -0 # [PATCH] 2264/1: Move platform-specific code out of entry-armv.S # # include/asm-arm/arch-ebsa285/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +105 -0 # [PATCH] 2264/1: Move platform-specific code out of entry-armv.S # # include/asm-arm/arch-ebsa110/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +33 -0 # [PATCH] 2264/1: Move platform-specific code out of entry-armv.S # # include/asm-arm/arch-clps711x/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +51 -0 # [PATCH] 2264/1: Move platform-specific code out of entry-armv.S # # arch/arm/kernel/entry-armv.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +0 -996 # [PATCH] 2264/1: Move platform-specific code out of entry-armv.S # # include/asm-arm/arch-omap/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/include/asm-arm/arch-omap/entry-macro.S # # include/asm-arm/arch-lh7a40x/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/include/asm-arm/arch-lh7a40x/entry-macro.S # # include/asm-arm/arch-l7200/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/include/asm-arm/arch-l7200/entry-macro.S # # include/asm-arm/arch-ixp4xx/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/include/asm-arm/arch-ixp4xx/entry-macro.S # # include/asm-arm/arch-ixp2000/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/include/asm-arm/arch-ixp2000/entry-macro.S # # include/asm-arm/arch-iop3xx/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/include/asm-arm/arch-iop3xx/entry-macro.S # # include/asm-arm/arch-integrator/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/include/asm-arm/arch-integrator/entry-macro.S # # include/asm-arm/arch-imx/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/include/asm-arm/arch-imx/entry-macro.S # # include/asm-arm/arch-h720x/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/include/asm-arm/arch-h720x/entry-macro.S # # include/asm-arm/arch-epxa10db/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/include/asm-arm/arch-epxa10db/entry-macro.S # # include/asm-arm/arch-ebsa285/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/include/asm-arm/arch-ebsa285/entry-macro.S # # include/asm-arm/arch-ebsa110/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/include/asm-arm/arch-ebsa110/entry-macro.S # # include/asm-arm/arch-clps711x/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/include/asm-arm/arch-clps711x/entry-macro.S # # include/asm-arm/arch-cl7500/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +3 -0 # [PATCH] 2264/1: Move platform-specific code out of entry-armv.S # # include/asm-arm/arch-cl7500/entry-macro.S # 2004/11/17 23:16:28+00:00 dsaxena@net.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/include/asm-arm/arch-cl7500/entry-macro.S # # ChangeSet # 2004/12/27 04:31:00-05:00 jgarzik@pobox.com # Merge pobox.com:/garz/repo/netdev-2.6/janitor # into pobox.com:/garz/repo/net-drivers-2.6 # # drivers/net/tulip/tulip_core.c # 2004/12/27 04:30:57-05:00 jgarzik@pobox.com +0 -0 # Auto merged # # drivers/net/r8169.c # 2004/12/27 04:30:57-05:00 jgarzik@pobox.com +0 -0 # Auto merged # # drivers/net/e100.c # 2004/12/27 04:30:57-05:00 jgarzik@pobox.com +0 -0 # Auto merged # # ChangeSet # 2004/12/27 04:29:21-05:00 jgarzik@pobox.com # Merge pobox.com:/garz/repo/netdev-2.6/misc # into pobox.com:/garz/repo/net-drivers-2.6 # # drivers/net/Kconfig # 2004/12/27 04:29:18-05:00 jgarzik@pobox.com +0 -0 # Auto merged # # ChangeSet # 2004/12/27 04:26:39-05:00 jgarzik@pobox.com # Merge pobox.com:/garz/repo/netdev-2.6/viro-eth1 # into pobox.com:/garz/repo/net-drivers-2.6 # # drivers/net/wireless/netwave_cs.c # 2004/12/27 04:26:36-05:00 jgarzik@pobox.com +0 -0 # Auto merged # # drivers/net/wireless/airo.c # 2004/12/27 04:26:36-05:00 jgarzik@pobox.com +0 -0 # Auto merged # # drivers/net/tokenring/olympic.c # 2004/12/27 04:26:36-05:00 jgarzik@pobox.com +0 -0 # Auto merged # # drivers/net/tokenring/lanstreamer.c # 2004/12/27 04:26:36-05:00 jgarzik@pobox.com +0 -0 # Auto merged # # drivers/net/sundance.c # 2004/12/27 04:26:36-05:00 jgarzik@pobox.com +0 -0 # Auto merged # # ChangeSet # 2004/12/27 10:21:15+01:00 vojtech@suse.cz # Merge suse.cz:/home/vojtech/bk/linus into suse.cz:/home/vojtech/bk/input # # drivers/usb/input/hid-core.c # 2004/12/27 10:21:12+01:00 vojtech@suse.cz +0 -0 # Auto merged # # drivers/input/tsdev.c # 2004/12/27 10:21:12+01:00 vojtech@suse.cz +0 -5 # Auto merged # # drivers/input/mousedev.c # 2004/12/27 10:21:12+01:00 vojtech@suse.cz +0 -2 # Auto merged # # drivers/input/joydev.c # 2004/12/27 10:21:12+01:00 vojtech@suse.cz +0 -2 # Auto merged # # drivers/input/evdev.c # 2004/12/27 10:21:12+01:00 vojtech@suse.cz +0 -2 # Auto merged # # Documentation/kernel-parameters.txt # 2004/12/27 10:21:12+01:00 vojtech@suse.cz +0 -0 # Auto merged # # ChangeSet # 2004/12/26 22:20:57-08:00 alan@lxorguk.ukuu.org.uk # [PATCH] Early ALI watchdog support # # Originally submitted by Mike Waychison in # August but apparently lost. # # Signed-off-by: Alan Cox # Signed-off-by: Linus Torvalds # # drivers/char/watchdog/alim7101_wdt.c # 2004/12/26 09:25:46-08:00 alan@lxorguk.ukuu.org.uk +42 -4 # Early ALI watchdog support # # ChangeSet # 2004/12/26 22:20:44-08:00 alan@lxorguk.ukuu.org.uk # [PATCH] quiet scsi ioctls warnings # # SCSI ioctls can ask for a lot of memory and fail. We don't need to vomit # in the log file for this case. Again taken from the Red Hat minor # patches applied for FC3. # # Original-patch: Arjan van de Ven # Signed-off-by: Alan Cox # Signed-off-by: Linus Torvalds # # drivers/block/scsi_ioctl.c # 2004/12/26 09:27:51-08:00 alan@lxorguk.ukuu.org.uk +1 -1 # quiet scsi ioctls warnings # # ChangeSet # 2004/12/26 22:20:32-08:00 alan@lxorguk.ukuu.org.uk # [PATCH] Paul Laufer CREDITS address update # # Paul Laufer informed the list that he had changed address and his change # of address had been ignored so CREDITS was still wrong although other # files had been updated. # # Fix this. # # Signed-off-by: Alan Cox # Signed-off-by: Linus Torvalds # # CREDITS # 2004/12/26 09:29:08-08:00 alan@lxorguk.ukuu.org.uk +1 -1 # Paul Laufer CREDITS address update # # ChangeSet # 2004/12/26 22:20:19-08:00 alan@lxorguk.ukuu.org.uk # [PATCH] make microcode text less confusing # # Red Hat got some confused customers due to this message. The confused # user case is when they update the BIOS and all of a sudden we have "no # suitable data" yet we did before. We (Arjan van de Ven) thus changed it # to "No new microcode" which is much much clearer. # # Signed-off-by: Alan Cox # Signed-off-by: Linus Torvalds # # arch/i386/kernel/microcode.c # 2004/12/26 09:30:43-08:00 alan@lxorguk.ukuu.org.uk +1 -1 # make microcode text less confusing # # ChangeSet # 2004/12/26 22:20:06-08:00 alan@lxorguk.ukuu.org.uk # [PATCH] i810 more AC97 tunings # # Add some more funky AC97 knowledge to the intel8x0 driver. These come # from Red Hat and its partners and are included in our shipping code. # # Signed-off-by: Alan Cox # Signed-off-by: Linus Torvalds # # sound/pci/intel8x0.c # 2004/12/26 08:56:05-08:00 alan@lxorguk.ukuu.org.uk +18 -0 # i810 more AC97 tunings # # ChangeSet # 2004/12/26 22:15:27-08:00 torvalds@ppc970.osdl.org # Merge bk://linux-dj.bkbits.net/agpgart # into ppc970.osdl.org:/home/torvalds/v2.6/linux # # include/linux/pci_ids.h # 2004/12/26 22:15:23-08:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # ChangeSet # 2004/12/26 22:14:57-05:00 jgarzik@pobox.com # Merge pobox.com:/garz/repo/netdev-2.6/s2io # into pobox.com:/garz/repo/net-drivers-2.6 # # drivers/net/Kconfig # 2004/12/26 22:14:54-05:00 jgarzik@pobox.com +0 -0 # Auto merged # # ChangeSet # 2004/12/26 22:13:59-05:00 jgarzik@pobox.com # Merge pobox.com:/garz/repo/netdev-2.6/r8169 # into pobox.com:/garz/repo/net-drivers-2.6 # # drivers/net/r8169.c # 2004/12/26 22:13:57-05:00 jgarzik@pobox.com +0 -0 # Auto merged # # drivers/net/Kconfig # 2004/12/26 22:13:56-05:00 jgarzik@pobox.com +0 -0 # Auto merged # # ChangeSet # 2004/12/25 13:54:06-08:00 davem@nuts.davemloft.net # Merge nuts.davemloft.net:/disk1/BK/net-2.6.11 # into nuts.davemloft.net:/disk1/BK/net-2.6 # # net/sched/act_api.c # 2004/12/25 13:53:55-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # ChangeSet # 2004/12/24 00:03:49-05:00 len.brown@intel.com # Merge intel.com:/home/lenb/src/26-stable-dev # into intel.com:/home/lenb/src/26-latest-dev # # drivers/acpi/pci_irq.c # 2004/12/24 00:03:38-05:00 len.brown@intel.com +0 -0 # Auto merged # # drivers/acpi/hardware/hwsleep.c # 2004/12/24 00:03:38-05:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/12/23 23:43:30-05:00 len.brown@intel.com # [ACPI] Fix suspend/resume lockup issue # by leaving Bus Master Arbitration enabled. # The ACPI spec mandates it be disabled only for C3. # # http://bugzilla.kernel.org/show_bug.cgi?id=3599 # # Signed-off-by: David Shaohua Li # Signed-off-by: Len Brown # # drivers/acpi/hardware/hwsleep.c # 2004/12/16 23:21:28-05:00 len.brown@intel.com +0 -16 # Fix suspend/resume lockup issue # by leaving Bus Master Arbitration enabled. # # ChangeSet # 2004/12/23 23:38:32-05:00 len.brown@intel.com # [ACPI] apply via_interrupt_line_quirk in ACPI mode # the same way it is applied in legacy mode. # Delete redundant quirks. # # http://bugzilla.kernel.org/show_bug.cgi?id=3319 # # Signed-off-by: David Shaohua Li # Signed-off-by: Len Brown # # drivers/pci/quirks.c # 2004/12/23 23:38:24-05:00 len.brown@intel.com +5 -24 # via_interrupt_line_quirk # # drivers/acpi/pci_irq.c # 2004/12/23 23:38:24-05:00 len.brown@intel.com +4 -0 # via_interrupt_line_quirk # # arch/i386/pci/irq.c # 2004/12/23 23:38:24-05:00 len.brown@intel.com +2 -2 # via_interrupt_line_quirk # # ChangeSet # 2004/12/23 23:11:56-05:00 len.brown@intel.com # [ACPI] another fix to the stack-audit patch # http://bugzilla.kernel.org/show_bug.cgi?id=2901 # # Signed-off-by: Len Brown # # drivers/acpi/pci_irq.c # 2004/12/23 23:11:50-05:00 len.brown@intel.com +2 -5 # another fix to the stack-audit patch # # ChangeSet # 2004/12/23 15:10:05-05:00 len.brown@intel.com # Merge intel.com:/home/lenb/src/26-stable-dev # into intel.com:/home/lenb/src/26-latest-dev # # drivers/acpi/thermal.c # 2004/12/23 15:10:01-05:00 len.brown@intel.com +0 -0 # Auto merged # # drivers/acpi/pci_bind.c # 2004/12/23 15:10:01-05:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/12/23 15:07:34-05:00 len.brown@intel.com # [ACPI] two fixups where promotion and demotion were mixed up # # Signed-off-by: Dominik Brodowski # Signed-off-by: Len Brown # # drivers/acpi/processor_idle.c # 2004/12/23 08:39:58-05:00 len.brown@intel.com +2 -2 # two fixups where promotion and demotion were mixed up # # ChangeSet # 2004/12/23 14:39:34-05:00 len.brown@intel.com # [ACPI] fix to the stack-audit patch # http://bugzilla.kernel.org/show_bug.cgi?id=2901 # # Signed-off-by: Len Brown # # drivers/acpi/thermal.c # 2004/12/23 14:39:26-05:00 len.brown@intel.com +1 -1 # fix stack-audit patch # # drivers/acpi/pci_bind.c # 2004/12/23 14:39:26-05:00 len.brown@intel.com +1 -1 # fix stack-audit patch # # ChangeSet # 2004/12/23 14:20:02-05:00 len.brown@intel.com # [ACPI] add "processor.nocst" parameter # which blocks _CST parsing and always uses FADT info instead. # # Signed-off-by: Dominik Brodowski # Signed-off-by: Len Brown # # drivers/acpi/processor_idle.c # 2004/12/23 08:25:32-05:00 len.brown@intel.com +10 -3 # add "processor.nocst" parameter # # ChangeSet # 2004/12/23 14:18:22-05:00 len.brown@intel.com # [ACPI] Let C4 demote to C3, not directly to C2. # # Signed-off-by: Dominik Brodowski # Signed-off-by: Len Brown # # drivers/acpi/processor_idle.c # 2004/12/23 08:25:29-05:00 len.brown@intel.com +1 -4 # Let C4 demote to C3, not directly to C2. # # ChangeSet # 2004/12/23 14:13:35-05:00 len.brown@intel.com # # [ACPI] tweak /proc/acpi/processor/CPU0/power format # Current policy is to name both C-state-types and the actual C-States # "C[0-n]". Follow this rule... # # Signed-off-by: Dominik Brodowski # # drivers/acpi/processor_idle.c # 2004/12/23 08:25:24-05:00 len.brown@intel.com +7 -7 # tweak /proc/acpi/processor/CPU0/power format # # ChangeSet # 2004/12/23 13:06:55-06:00 jejb@mulgrave.(none) # SCSI: update 53c700 to use the change_queue_type API # # Signed-off-by: James Bottomley # # drivers/scsi/53c700.h # 2004/12/23 13:05:45-06:00 jejb@mulgrave.(none) +21 -1 # SCSI: update 53c700 to use the change_queue_type API # # drivers/scsi/53c700.c # 2004/12/23 13:05:44-06:00 jejb@mulgrave.(none) +55 -23 # SCSI: update 53c700 to use the change_queue_type API # # ChangeSet # 2004/12/23 13:01:49-06:00 jejb@mulgrave.(none) # SCSI: add queue_type entry in sysfs # # This adds an extra attribute to tell you what type of queueing the # driver is using: none, simple or ordered. If the driver supplies the # change_queue_type API, you can also alter this (which would allow the # turning on or off of TCQ). # # I also fixed the change_queue_depth not to allow the user to go below # one. # # Signed-off-by: James Bottomley # # include/scsi/scsi_tcq.h # 2004/12/23 13:00:32-06:00 jejb@mulgrave.(none) +46 -6 # SCSI: add queue_type entry in sysfs # # include/scsi/scsi_host.h # 2004/12/23 13:00:32-06:00 jejb@mulgrave.(none) +12 -2 # SCSI: add queue_type entry in sysfs # # drivers/scsi/scsi_sysfs.c # 2004/12/23 13:00:32-06:00 jejb@mulgrave.(none) +57 -0 # SCSI: add queue_type entry in sysfs # # ChangeSet # 2004/12/23 12:37:42-06:00 p_gortmaker@yahoo.com # [PATCH] scsi/advansys.c fix !CONFIG_PCI # # advansys.c fails to build for old ISA cards when CONFIG_PCI is not # enabled. # # Signed-off-by: Paul Gortmaker # Signed-off-by: James Bottomley # # drivers/scsi/advansys.c # 2004/12/19 23:04:35-06:00 p_gortmaker@yahoo.com +5 -5 # scsi/advansys.c fix !CONFIG_PCI # # ChangeSet # 2004/12/23 13:16:18-05:00 len.brown@intel.com # [ACPI] max_cstate shall limit C-states not C-state-types. # # Signed-off-by: Dominik Brodowski # Signed-off-by: Len Brown # # drivers/acpi/processor_idle.c # 2004/12/23 08:24:13-05:00 len.brown@intel.com +6 -4 # max_cstate shall limit C-states not C-state types. # # drivers/acpi/osl.c # 2004/12/23 08:09:11-05:00 len.brown@intel.com +2 -1 # max_cstate shall limit C-states not C-state types. # # ChangeSet # 2004/12/22 18:25:25-05:00 davej@redhat.com # [AGPGART] Fix agp=off. # # agp=off disabled the agpgart driver, but not the chipset specific drivers, # which still did their init routines. Chaos ensued. # # Signed-off-by: Dave Jones # # drivers/char/agp/via-agp.c # 2004/12/22 18:25:04-05:00 davej@redhat.com +2 -0 # [AGPGART] Fix agp=off. # # agp=off disabled the agpgart driver, but not the chipset specific drivers, # which still did their init routines. Chaos ensued. # # Signed-off-by: Dave Jones # # drivers/char/agp/uninorth-agp.c # 2004/12/22 18:25:04-05:00 davej@redhat.com +2 -0 # [AGPGART] Fix agp=off. # # agp=off disabled the agpgart driver, but not the chipset specific drivers, # which still did their init routines. Chaos ensued. # # Signed-off-by: Dave Jones # # drivers/char/agp/sworks-agp.c # 2004/12/22 18:25:04-05:00 davej@redhat.com +2 -0 # [AGPGART] Fix agp=off. # # agp=off disabled the agpgart driver, but not the chipset specific drivers, # which still did their init routines. Chaos ensued. # # Signed-off-by: Dave Jones # # drivers/char/agp/sis-agp.c # 2004/12/22 18:25:04-05:00 davej@redhat.com +2 -0 # [AGPGART] Fix agp=off. # # agp=off disabled the agpgart driver, but not the chipset specific drivers, # which still did their init routines. Chaos ensued. # # Signed-off-by: Dave Jones # # drivers/char/agp/nvidia-agp.c # 2004/12/22 18:25:04-05:00 davej@redhat.com +2 -0 # [AGPGART] Fix agp=off. # # agp=off disabled the agpgart driver, but not the chipset specific drivers, # which still did their init routines. Chaos ensued. # # Signed-off-by: Dave Jones # # drivers/char/agp/i460-agp.c # 2004/12/22 18:25:04-05:00 davej@redhat.com +2 -0 # [AGPGART] Fix agp=off. # # agp=off disabled the agpgart driver, but not the chipset specific drivers, # which still did their init routines. Chaos ensued. # # Signed-off-by: Dave Jones # # drivers/char/agp/hp-agp.c # 2004/12/22 18:25:04-05:00 davej@redhat.com +2 -0 # [AGPGART] Fix agp=off. # # agp=off disabled the agpgart driver, but not the chipset specific drivers, # which still did their init routines. Chaos ensued. # # Signed-off-by: Dave Jones # # drivers/char/agp/efficeon-agp.c # 2004/12/22 18:25:04-05:00 davej@redhat.com +3 -0 # [AGPGART] Fix agp=off. # # agp=off disabled the agpgart driver, but not the chipset specific drivers, # which still did their init routines. Chaos ensued. # # Signed-off-by: Dave Jones # # drivers/char/agp/ati-agp.c # 2004/12/22 18:25:04-05:00 davej@redhat.com +2 -0 # [AGPGART] Fix agp=off. # # agp=off disabled the agpgart driver, but not the chipset specific drivers, # which still did their init routines. Chaos ensued. # # Signed-off-by: Dave Jones # # drivers/char/agp/amd-k7-agp.c # 2004/12/22 18:25:04-05:00 davej@redhat.com +2 -0 # [AGPGART] Fix agp=off. # # agp=off disabled the agpgart driver, but not the chipset specific drivers, # which still did their init routines. Chaos ensued. # # Signed-off-by: Dave Jones # # drivers/char/agp/alpha-agp.c # 2004/12/22 18:25:04-05:00 davej@redhat.com +2 -0 # [AGPGART] Fix agp=off. # # agp=off disabled the agpgart driver, but not the chipset specific drivers, # which still did their init routines. Chaos ensued. # # Signed-off-by: Dave Jones # # drivers/char/agp/ali-agp.c # 2004/12/22 18:25:04-05:00 davej@redhat.com +2 -0 # [AGPGART] Fix agp=off. # # agp=off disabled the agpgart driver, but not the chipset specific drivers, # which still did their init routines. Chaos ensued. # # Signed-off-by: Dave Jones # # ChangeSet # 2004/12/22 17:10:35-05:00 davej@redhat.com # [AGPGART] ULI M1689 support. # # From: Peer.Chen@uli.com.tw # Signed-off-by: Dave Jones # # include/linux/pci_ids.h # 2004/12/22 17:10:20-05:00 davej@redhat.com +1 -0 # [AGPGART] ULI M1689 support. # # From: Peer.Chen@uli.com.tw # Signed-off-by: Dave Jones # # drivers/char/agp/amd64-agp.c # 2004/12/22 17:10:20-05:00 davej@redhat.com +77 -1 # [AGPGART] ULI M1689 support. # # From: Peer.Chen@uli.com.tw # Signed-off-by: Dave Jones # # ChangeSet # 2004/12/22 02:14:30-05:00 len.brown@intel.com # [ACPI] Export /sys/module/processor/parameters/max_cstate # # Signed-off-by: Dominik Brodowski # Signed-off-by: Len Brown # # drivers/acpi/processor_idle.c # 2004/12/14 07:19:52-05:00 len.brown@intel.com +1 -1 # Import patch acpi-16-max-cstate-in-sysfs # # ChangeSet # 2004/12/22 01:03:07-05:00 len.brown@intel.com # [ACPI] Consolidate code in processor_idle(). # Only symbols "exported" are _init(), _exit() and _cst_has_changed() # # Signed-off-by: Dominik Brodowski # Signed-off-by: Len Brown # # include/acpi/processor.h # 2004/12/14 07:14:54-05:00 len.brown@intel.com +4 -6 # Import patch acpi-15-power-only-init-modify-exit # # drivers/acpi/processor_idle.c # 2004/12/14 07:14:54-05:00 len.brown@intel.com +109 -8 # Import patch acpi-15-power-only-init-modify-exit # # drivers/acpi/processor_core.c # 2004/12/14 07:14:54-05:00 len.brown@intel.com +2 -67 # Import patch acpi-15-power-only-init-modify-exit # # ChangeSet # 2004/12/22 00:54:22-05:00 len.brown@intel.com # [ACPI] Notify the BIOS that Linux can handle _CST. # # http://bugzilla.kernel.org/show_bug.cgi?id=1958 # # Signed-off-by: Bruno Ducrot # Signed-off-by: Dominik Brodowski # Signed-off-by: Len Brown # # drivers/acpi/processor_core.c # 2004/12/14 07:14:15-05:00 len.brown@intel.com +8 -0 # Notify the BIOS that Linux can handle _CST. # # ChangeSet # 2004/12/22 00:48:28-05:00 len.brown@intel.com # [ACPI] Handle _CST change notifications # # It is necessary to unload the processor idle handle for # a short period of time to avoid for nasty races -- # and we don't want to grab too many locks # so that the idle handler continues to be speedy. # # http://bugzilla.kernel.org/show_bug.cgi?id=1958 # # Signed-off-by: Bruno Ducrot # Signed-off-by: Dominik Brodowski # Signed-off-by: Len Brown # # include/acpi/processor.h # 2004/12/14 07:13:36-05:00 len.brown@intel.com +1 -0 # Handle _CST change notifications # # drivers/acpi/processor_idle.c # 2004/12/14 07:13:36-05:00 len.brown@intel.com +27 -0 # Handle _CST change notifications # # drivers/acpi/processor_core.c # 2004/12/14 07:13:36-05:00 len.brown@intel.com +1 -1 # Handle _CST change notifications # # ChangeSet # 2004/12/22 00:45:13-05:00 len.brown@intel.com # [ACPI] Add _CST parsing # # http://bugzilla.kernel.org/show_bug.cgi?id=1958 # # Signed-off-by: Bruno Ducrot # Signed-off-by: Dominik Brodowski # Signed-off-by: Len Brown # # include/acpi/processor.h # 2004/12/14 07:12:57-05:00 len.brown@intel.com +14 -1 # Add _CST parsing # # drivers/acpi/processor_idle.c # 2004/12/14 07:12:57-05:00 len.brown@intel.com +149 -10 # Add _CST parsing # # ChangeSet # 2004/12/22 00:26:58-05:00 len.brown@intel.com # [ACPI] make the c-state policy decisions of demotion and promotion # independent of the assumption "one state per type." # make the state a pointer inside struct acpi_processor_cx_policy. # make max_cstate aware of c-state types instead of c-state number. # # http://bugzilla.kernel.org/show_bug.cgi?id=1958 # # Signed-off-by: Dominik Brodowski # Signed-off-by: Len Brown # # include/acpi/processor.h # 2004/12/14 07:12:12-05:00 len.brown@intel.com +3 -1 # Import patch acpi-11-power-policy-independent-of-states # # drivers/acpi/processor_idle.c # 2004/12/14 07:11:00-05:00 len.brown@intel.com +71 -66 # Import patch acpi-11-power-policy-independent-of-states # # ChangeSet # 2004/12/22 00:16:32-05:00 len.brown@intel.com # [ACPI] make power.state a pointer # # http://bugzilla.kernel.org/show_bug.cgi?id=1958 # # Signed-off-by: Dominik Brodowski # Signed-off-by: Len Brown # # include/acpi/processor.h # 2004/12/14 07:08:31-05:00 len.brown@intel.com +1 -1 # make power.state a pointer # # drivers/acpi/processor_idle.c # 2004/12/14 07:09:32-05:00 len.brown@intel.com +32 -18 # make power.state a pointer # # ChangeSet # 2004/12/22 00:12:13-05:00 len.brown@intel.com # [ACPI] deleted unused default c-state # # http://bugzilla.kernel.org/show_bug.cgi?id=1958 # # Signed-off-by: Dominik Brodowski # Signed-off-by: Len Brown # # drivers/acpi/processor_idle.c # 2004/12/13 19:29:47-05:00 len.brown@intel.com +0 -3 # deleted unused default c-state # # ChangeSet # 2004/12/22 00:05:34-05:00 len.brown@intel.com # [ACPI] Split up the extraction of information from the FADT # and the pblk_address (acpi_processor_get_power_info_fadt()) # and the validation whether the state is indeed available # (acpi_processor_power_verify()). # # http://bugzilla.kernel.org/show_bug.cgi?id=1958 # # Signed-off-by: Bruno Ducrot # Signed-off-by: Dominik Brodowski # Signed-off-by: Len Brown # # include/acpi/processor.h # 2004/12/13 19:24:07-05:00 len.brown@intel.com +1 -0 # acpi_processor_get_power_info_fadt() & acpi_processor_power_verify() # # drivers/acpi/processor_idle.c # 2004/12/13 19:28:33-05:00 len.brown@intel.com +162 -118 # acpi_processor_get_power_info_fadt() & acpi_processor_power_verify() # # drivers/acpi/processor_core.c # 2004/12/13 19:24:07-05:00 len.brown@intel.com +2 -4 # acpi_processor_get_power_info_fadt() & acpi_processor_power_verify() # # ChangeSet # 2004/12/21 23:54:21-05:00 davej@redhat.com # [AGPGART] Fix up two stupid bugs in the posting fixes. # # Spotted by MASAO TAKAHASHI # Signed-off-by: Dave Jones # # drivers/char/agp/intel-agp.c # 2004/12/21 23:53:58-05:00 davej@redhat.com +2 -2 # [AGPGART] Fix up two stupid bugs in the posting fixes. # # Spotted by MASAO TAKAHASHI # Signed-off-by: Dave Jones # # ChangeSet # 2004/12/21 23:53:22-05:00 len.brown@intel.com # [ACPI] Differentiate between C-States and C-state type. # # http://bugzilla.kernel.org/show_bug.cgi?id=1958 # # Signed-off-by: Bruno Ducrot # Signed-off-by: Dominik Brodowski # Signed-off-by: Len Brown # # include/acpi/processor.h # 2004/12/13 19:22:59-05:00 len.brown@intel.com +1 -0 # C-state type # # drivers/acpi/processor_idle.c # 2004/12/13 19:23:33-05:00 len.brown@intel.com +42 -17 # C-state type # # ChangeSet # 2004/12/21 22:58:56-05:00 len.brown@intel.com # [ACPI] Shorten the times IRQs are disabled in throttling. # During calculations no disabling is necessary. # # Signed-off-by: Dominik Brodowski # Signed-off-by: Len Brown # # drivers/acpi/processor_throttling.c # 2004/11/27 10:29:36-05:00 len.brown@intel.com +4 -4 # Shorten the times IRQs are disabled in throttling. # # ChangeSet # 2004/12/21 22:57:16-05:00 len.brown@intel.com # [ACPI] Finalize the splitting of processor.c by moving the rest to processor_core.c # # Signed-off-by: Dominik Brodowski # Signed-off-by: Len Brown # # drivers/acpi/processor_core.c # 2004/12/13 19:21:31-05:00 len.brown@intel.com +26 -28 # Finalize the splitting of processor.c by moving the rest to processor_core.c # # drivers/acpi/Makefile # 2004/12/13 19:20:38-05:00 len.brown@intel.com +4 -4 # Finalize the splitting of processor.c by moving the rest to processor_core.c # # ChangeSet # 2004/12/21 22:54:46-05:00 len.brown@intel.com # [ACPI] Split the ACPI Processor passive cooling code into a different file # # Signed-off-by: Dominik Brodowski # Signed-off-by: Len Brown # # drivers/acpi/processor_thermal.c # 2004/12/13 19:20:03-05:00 len.brown@intel.com +406 -0 # Split the ACPI Processor passive cooling code into a different file # # include/acpi/processor.h # 2004/12/13 19:20:03-05:00 len.brown@intel.com +19 -0 # Split the ACPI Processor passive cooling code into a different file # # drivers/acpi/processor_thermal.c # 2004/12/13 19:20:03-05:00 len.brown@intel.com +0 -0 # BitKeeper file /home/lenb/src/26-latest-dev/drivers/acpi/processor_thermal.c # # drivers/acpi/processor.c # 2004/12/13 19:20:03-05:00 len.brown@intel.com +2 -360 # Split the ACPI Processor passive cooling code into a different file # # drivers/acpi/Makefile # 2004/12/13 19:20:03-05:00 len.brown@intel.com +2 -1 # Split the ACPI Processor passive cooling code into a different file # # ChangeSet # 2004/12/21 22:53:35-05:00 len.brown@intel.com # [ACPI] Split the ACPI Processor C-States handling into a different file # # Signed-off-by: Dominik Brodowski # Signed-off-by: Len Brown # # drivers/acpi/processor_idle.c # 2004/12/13 19:37:33-05:00 len.brown@intel.com +637 -0 # Split the ACPI Processor C-States handling into a different file # # include/acpi/processor.h # 2004/12/13 19:37:21-05:00 len.brown@intel.com +8 -0 # Split the ACPI Processor C-States handling into a different file # # drivers/acpi/processor_idle.c # 2004/12/13 19:37:33-05:00 len.brown@intel.com +0 -0 # BitKeeper file /home/lenb/src/26-latest-dev/drivers/acpi/processor_idle.c # # drivers/acpi/processor.c # 2004/12/13 19:37:21-05:00 len.brown@intel.com +3 -588 # Split the ACPI Processor C-States handling into a different file # # drivers/acpi/Makefile # 2004/12/13 19:37:21-05:00 len.brown@intel.com +2 -2 # Split the ACPI Processor C-States handling into a different file # # ChangeSet # 2004/12/21 22:51:57-05:00 len.brown@intel.com # [ACPI] Split the ACPI Processor T-States handling into a different file # # Signed-off-by: Dominik Brodowski # Signed-off-by: Len Brown # # include/acpi/processor.h # 2004/12/13 19:09:37-05:00 len.brown@intel.com +22 -0 # Split the ACPI Processor T-States handling into a different file # # drivers/acpi/processor_throttling.c # 2004/12/13 19:09:37-05:00 len.brown@intel.com +351 -0 # Split the ACPI Processor T-States handling into a different file # # drivers/acpi/processor.c # 2004/12/13 19:09:56-05:00 len.brown@intel.com +1 -313 # Split the ACPI Processor T-States handling into a different file # # drivers/acpi/Makefile # 2004/12/13 19:09:37-05:00 len.brown@intel.com +1 -1 # Split the ACPI Processor T-States handling into a different file # # drivers/acpi/processor_throttling.c # 2004/12/13 19:09:37-05:00 len.brown@intel.com +0 -0 # BitKeeper file /home/lenb/src/26-latest-dev/drivers/acpi/processor_throttling.c # # ChangeSet # 2004/12/21 22:47:29-05:00 len.brown@intel.com # [ACPI] Split the ACPI Processor P-States library into a different file # # Signed-off-by: Dominik Brodowski # Signed-off-by: Len Brown # # drivers/acpi/processor_perflib.c # 2004/12/13 19:08:55-05:00 len.brown@intel.com +666 -0 # Split the ACPI Processor P-States library into a different file # # include/acpi/processor.h # 2004/12/13 19:04:00-05:00 len.brown@intel.com +25 -0 # Split the ACPI Processor P-States library into a different file # # drivers/acpi/processor_perflib.c # 2004/12/13 19:08:55-05:00 len.brown@intel.com +0 -0 # BitKeeper file /home/lenb/src/26-latest-dev/drivers/acpi/processor_perflib.c # # drivers/acpi/processor.c # 2004/12/13 19:07:47-05:00 len.brown@intel.com +3 -641 # Split the ACPI Processor P-States library into a different file # # drivers/acpi/Makefile # 2004/12/13 19:04:00-05:00 len.brown@intel.com +6 -1 # Split the ACPI Processor P-States library into a different file # # ChangeSet # 2004/12/21 22:08:59-05:00 len.brown@intel.com # Merge intel.com:/home/lenb/src/26-stable-dev # into intel.com:/home/lenb/src/26-latest-dev # # drivers/acpi/tables/tbconvrt.c # 2004/12/21 22:08:55-05:00 len.brown@intel.com +0 -0 # Auto merged # # drivers/acpi/pci_link.c # 2004/12/21 22:08:55-05:00 len.brown@intel.com +0 -0 # Auto merged # # drivers/acpi/osl.c # 2004/12/21 22:08:55-05:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/12/21 16:57:44-05:00 len.brown@intel.com # [ACPI] ACPICA 20041210 from Bob Moore # # ACPI 3.0 support is nearing completion in both the iASL # compiler and the ACPI CA core subsystem. # # Fixed a problem in the ToDecimalString operator where the # resulting string length was incorrectly calculated. The # length is now calculated exactly, eliminating incorrect # AE_STRING_LIMIT exceptions. # # Fixed a problem in the ToHexString operator to allow a # maximum 200 character string to be produced. # # Fixed a problem in the internal string-to-buffer and # buffer-to-buffer copy routine where the length of the # resulting buffer was not truncated to the new size (if # the target buffer already existed). # # Signed-off-by: Len Brown # # include/acpi/amlresrc.h # 2004/12/21 16:41:33-05:00 len.brown@intel.com +25 -1 # ACPICA 20041210 # # include/acpi/actbl2.h # 2004/12/21 16:41:34-05:00 len.brown@intel.com +1 -1 # ACPICA 20041210 # # include/acpi/aclocal.h # 2004/12/21 16:41:34-05:00 len.brown@intel.com +1 -1 # ACPICA 20041210 # # include/acpi/acdisasm.h # 2004/12/21 16:41:34-05:00 len.brown@intel.com +6 -0 # ACPICA 20041210 # # include/acpi/acconfig.h # 2004/12/21 16:41:34-05:00 len.brown@intel.com +2 -2 # ACPICA 20041210 # # drivers/acpi/tables/tbconvrt.c # 2004/12/21 16:41:37-05:00 len.brown@intel.com +2 -2 # ACPICA 20041210 # # drivers/acpi/executer/exstorob.c # 2004/12/21 16:41:38-05:00 len.brown@intel.com +10 -9 # ACPICA 20041210 # # drivers/acpi/executer/exconvrt.c # 2004/12/21 16:41:38-05:00 len.brown@intel.com +56 -40 # ACPICA 20041210 # # ChangeSet # 2004/12/21 12:54:09-05:00 len.brown@intel.com # [ACPI] fix return syntax # # Signed-off-by: Pavel Machek # Signed-off-by: Jesper Juhl # # drivers/acpi/toshiba_acpi.c # 2004/12/20 17:46:15-05:00 len.brown@intel.com +2 -2 # fix return syntax # # drivers/acpi/pci_link.c # 2004/12/20 17:42:13-05:00 len.brown@intel.com +2 -2 # fix return syntax # # drivers/acpi/osl.c # 2004/12/20 17:40:29-05:00 len.brown@intel.com +3 -3 # fix return syntax # # drivers/acpi/asus_acpi.c # 2004/12/20 17:35:32-05:00 len.brown@intel.com +9 -9 # fix return syntax # # ChangeSet # 2004/12/21 09:41:18-06:00 bunk@stusta.de # [PATCH] SCSI NCR53C9x.c: some cleanups # # Make two functions static # # Remove the old polling esp_command() entry point. # # Signed-off-by: Adrian Bunk # Signed-off-by: James Bottomley # # drivers/scsi/NCR53C9x.h # 2004/11/13 09:27:41-06:00 bunk@stusta.de +0 -1 # SCSI NCR53C9x.c: some cleanups # # drivers/scsi/NCR53C9x.c # 2004/11/13 09:28:23-06:00 bunk@stusta.de +2 -13 # SCSI NCR53C9x.c: some cleanups # # ChangeSet # 2004/12/21 09:36:37-06:00 bunk@stusta.de # [PATCH] SCSI mca_53c9x.c: make 2 functions static # # The patch below makes two functions without external users static. # # Signed-off-by: Adrian Bunk # Signed-off-by: James Bottomley # # drivers/scsi/mca_53c9x.c # 2004/11/13 15:42:22-06:00 bunk@stusta.de +2 -2 # SCSI mca_53c9x.c: make 2 functions static # # ChangeSet # 2004/12/21 09:32:13-06:00 bunk@stusta.de # [PATCH] SCSI ibmmca.c: make a struct static # # Signed-off-by: Adrian Bunk # Signed-off-by: James Bottomley # # drivers/scsi/ibmmca.c # 2004/11/13 14:50:49-06:00 bunk@stusta.de +1 -1 # SCSI ibmmca.c: make a struct static # # ChangeSet # 2004/12/21 11:32:36+00:00 abem.se@shinybook.infradead.org # JFFS2: Fix list corruption and memory leak on write retry. # # Reported by Per Hedblom # # Signed-off-by: David Woodhouse # # fs/jffs2/gc.c # 2004/12/21 11:32:21+00:00 abem.se@shinybook.infradead.org +2 -2 # revision 1.144 # date: 2004/12/21 11:18:50; author: dwmw2; state: Exp; lines: +2 -2 # Fix list-corrupting typo in write retry. Thanks to Per Hedblom # # ChangeSet # 2004/12/21 11:28:46+00:00 dmarlin@redhat.com # JFFS2: Fix freeing of block table on mount failure. # # We weren't correctly using vfree() where appropriate in the error case. # # Signed-off-by: David Marlin # Signed-off-by: David Woodhouse # # fs/jffs2/build.c # 2004/12/21 11:28:32+00:00 dmarlin@redhat.com +6 -2 # revision 1.69 # date: 2004/12/16 20:22:18; author: dmarlin; state: Exp; lines: +6 -2 # Perform vfree if MTD_NO_VIRTBLOCKS is used. # # ChangeSet # 2004/12/21 11:26:03+00:00 jarkko.lavinen@nokia.com # MTD: Make nand_write_page() ECC buffer size consistent with nand_read_ecc() # # We already increased it to 12 because we were overrunning the buffer. # Increase it again to be consistent with the 32 bytes we use elsewhere. # # Signed-off-by: Jarkko Lavinen # Signed-off-by: David Woodhouse # # drivers/mtd/nand/nand_base.c # 2004/12/21 11:25:49+00:00 jarkko.lavinen@nokia.com +2 -2 # revision 1.126 # date: 2004/12/13 11:22:25; author: lavinen; state: Exp; lines: +2 -2 # Use 32 ecc bytes in nand_write_page(), similar to nand_read_ec(). # # ChangeSet # 2004/12/21 11:22:51+00:00 nico@cam.org # MTD: Fix optimisation which breaks with newer Intel L18 flash chips. # # Increase region info and chip instance independently from each other. # Someone tried to be clever with chip masking here... # But it breaks with L18 flash where the chip structures are "virtual" # chips not real ones. # # Signed-off-by: Nicolas Pitre # Signed-off-by: David Woodhouse # # drivers/mtd/chips/cfi_util.c # 2004/12/21 11:22:36+00:00 nico@cam.org +3 -4 # revision 1.8 # date: 2004/12/14 19:55:56; author: nico; state: Exp; lines: +3 -4 # Increase region info and chip instance independently from each other. # Someone tried to be clever with chip masking here... # But it breaks with L18 flash where the chip structures are "virtual" # chips not real ones. # # ChangeSet # 2004/12/20 21:58:46-05:00 len.brown@intel.com # Merge intel.com:/home/lenb/src/26-stable-dev # into intel.com:/home/lenb/src/26-latest-dev # # include/asm-i386/acpi.h # 2004/12/20 21:58:42-05:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/12/20 15:17:24-08:00 shemminger@osdl.org # [TCP]: Efficient port randomization (rev 3) # # okay, here is the revised version. Testing shows that it # is more consistent, and just as fast as existing code, # probably because of the getting rid of portalloc_lock and # better distribution. # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # net/ipv4/tcp_ipv4.c # 2004/12/20 15:17:01-08:00 shemminger@osdl.org +25 -37 # [TCP]: Efficient port randomization (rev 3) # # okay, here is the revised version. Testing shows that it # is more consistent, and just as fast as existing code, # probably because of the getting rid of portalloc_lock and # better distribution. # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # include/linux/random.h # 2004/12/20 15:17:01-08:00 shemminger@osdl.org +1 -0 # [TCP]: Efficient port randomization (rev 3) # # okay, here is the revised version. Testing shows that it # is more consistent, and just as fast as existing code, # probably because of the getting rid of portalloc_lock and # better distribution. # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # drivers/char/random.c # 2004/12/20 15:17:01-08:00 shemminger@osdl.org +18 -0 # [TCP]: Efficient port randomization (rev 3) # # okay, here is the revised version. Testing shows that it # is more consistent, and just as fast as existing code, # probably because of the getting rid of portalloc_lock and # better distribution. # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # ChangeSet # 2004/12/20 12:40:03-05:00 len.brown@intel.com # Merge intel.com:/home/lenb/bk/26-latest-ref # into intel.com:/home/lenb/src/26-latest-dev # # Documentation/kernel-parameters.txt # 2004/12/20 12:39:59-05:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/12/19 14:59:06-06:00 brking@us.ibm.com # [PATCH] ipr: Bump driver version to 2.0.12 # # Bump driver version # # Signed-off-by: Brian King # Signed-off-by: James Bottomley # # drivers/scsi/ipr.h # 2004/12/14 17:09:02-06:00 brking@us.ibm.com +2 -2 # ipr: Bump driver version to 2.0.12 # # ChangeSet # 2004/12/19 14:54:06-06:00 brking@us.ibm.com # [PATCH] ipr: whitespace fixes # # Whitespace fixes. # # Signed-off-by: Brian King # Signed-off-by: James Bottomley # # drivers/scsi/ipr.h # 2004/12/14 17:06:41-06:00 brking@us.ibm.com +11 -11 # ipr: whitespace fixes # # ChangeSet # 2004/12/19 14:50:00-06:00 brking@us.ibm.com # [PATCH] ipr: Remove dead code # # Removes some unused debug code. # # Signed-off-by: Brian King # Signed-off-by: James Bottomley # # drivers/scsi/ipr.h # 2004/12/14 17:06:38-06:00 brking@us.ibm.com +0 -15 # ipr: Remove dead code # # ChangeSet # 2004/12/19 14:44:29-06:00 brking@us.ibm.com # [PATCH] ipr: new RAID error # # Adds support for logging a new RAID error that can be returned on # new ipr adapters. # # Signed-off-by: Brian King # Signed-off-by: James Bottomley # # drivers/scsi/ipr.c # 2004/12/14 17:06:35-06:00 brking@us.ibm.com +2 -0 # ipr: new RAID error # # ChangeSet # 2004/12/19 14:33:37-06:00 brking@us.ibm.com # [PATCH] ipr: PCI-X capabilities setup fix # # From: Andrew Vasquez # # While performing some PCI-X command register tuning with some of # QLogic's cards, I stumbled upon some suspect code in ipr.c. It appears # the two functions ipr_save_pcix_cmd_reg() and ipr_set_pcix_cmd_reg() are # actually reading/updating the PCI-X capabilities register and not in # fact the PCI-X command register -- some code from # ipr_save_pcix_cmd_reg(): # # ... # int pcix_cmd_reg = pci_find_capability(ioa_cfg->pdev, PCI_CAP_ID_PCIX); # # if (pcix_cmd_reg == 0) { # dev_err(&ioa_cfg->pdev->dev, "Failed to save PCI-X command register\n"); # return -EIO; # } # # pcix_cmd_reg points to the PCI-X capabilities register. Yet, the read: # # if (pci_read_config_word(ioa_cfg->pdev, pcix_cmd_reg, # &ioa_cfg->saved_pcix_cmd_reg) != PCIBIOS_SUCCESSFUL) { # dev_err(&ioa_cfg->pdev->dev, "Failed to save PCI-X command register\n"); # return -EIO; # } # # and subsequent update of the bits: # # ioa_cfg->saved_pcix_cmd_reg |= PCI_X_CMD_DPERR_E | PCI_X_CMD_ERO; # # should actually apply to the PCI-X Command register 2 bytes further into # config space. So, the following: # # if (pci_read_config_word(ioa_cfg->pdev, pcix_cmd_reg, # # should actually read as: # # if (pci_read_config_word(ioa_cfg->pdev, pcix_cmd_reg + PCI_X_CMD, # # The same is true for the 'save' case. # # Luckily, most devices hardwire the PCI-X capabilities register so the # write is effectively a NOOP. # # Signed-off-by: Brian King # Signed-off-by: James Bottomley # # drivers/scsi/ipr.c # 2004/12/14 17:06:30-06:00 brking@us.ibm.com +2 -2 # ipr: PCI-X capabilities setup fix # # ChangeSet # 2004/12/19 13:55:16-06:00 brking@us.ibm.com # [PATCH] ipr: Allow Query Resource State adapter command to # # The ipr adapters support an adapter command directed at the device # resource called "Query Resource State". It can be used to retrieve # state information about the resource it is sent to, including the # currently negotiated scsi speed. The adapter interface requires the # IPR_RQTYPE_IOACMD to be set on this command, so we set it if the # command code matches. # # Signed-off-by: Brian King # Signed-off-by: James Bottomley # # drivers/scsi/ipr.h # 2004/12/14 17:06:25-06:00 brking@us.ibm.com +1 -0 # ipr: Allow Query Resource State adapter command to # # drivers/scsi/ipr.c # 2004/12/14 17:06:25-06:00 brking@us.ibm.com +2 -1 # ipr: Allow Query Resource State adapter command to # # ChangeSet # 2004/12/19 13:49:55-06:00 markh@osdl.org # [PATCH] aacraid 2.6: Support for new cards # # This patch adds support for new aacraid cards. # # Signed-off-by: Mark Haverkamp # Signed-off-by: James Bottomley # # drivers/scsi/aacraid/linit.c # 2004/12/14 16:01:39-06:00 markh@osdl.org +66 -58 # aacraid 2.6: Support for new cards # # drivers/scsi/aacraid/aacraid.h # 2004/12/06 12:17:29-06:00 markh@osdl.org +18 -1 # aacraid 2.6: Support for new cards # # ChangeSet # 2004/12/19 13:23:28-06:00 jejb@mulgrave.(none) # SCSI: convert 53c700 driver to use change_queue_depth API # # Signed-off-by: James Bottomley # # drivers/scsi/53c700.c # 2004/12/19 13:21:53-06:00 jejb@mulgrave.(none) +6 -17 # convert 53c700 driver to use change_queue_depth API # # ChangeSet # 2004/12/19 13:19:57-06:00 jejb@mulgrave.(none) # SCSI:add change_queue_depth API to scsi host template # # Originally, the 53c700 driver implemented queue_depth changing as an # attribute override, primarily as a demonstration of how it should be # done. Now that a large number of drivers wish to implement this # functionality, it should become an API rather than an attribute # override, since the latter are supposed to be used as one off extensions # rather than the de-facto API. # # Signed-off-by: James Bottomley # # include/scsi/scsi_host.h # 2004/12/19 13:18:37-06:00 jejb@mulgrave.(none) +12 -0 # add change_queue_depth API to scsi host template # # drivers/scsi/scsi_sysfs.c # 2004/12/19 13:18:37-06:00 jejb@mulgrave.(none) +37 -3 # add change_queue_depth API to scsi host template # # ChangeSet # 2004/12/19 12:43:44-06:00 andrew.vasquez@qlogic.com # qla2xxx: Update driver version # # Update version number to 8.00.02b4-k. # # Signed-off-by: Andrew Vasquez # Signed-off-by: James Bottomley # # drivers/scsi/qla2xxx/qla_version.h # 2004/12/09 00:18:01-06:00 andrew.vasquez@qlogic.com +3 -3 # qla2xxx: Update driver version # # ChangeSet # 2004/12/19 12:41:11-06:00 jejb@mulgrave.(none) # qla2xxx: 23xx/63xx firmware updates # # From: Andrew Vasquez # # Resync with latest released firmware -- 3.03.08. # # Remove ql6322_fw.c file. # # Signed-off-by: Andrew Vasquez # Signed-off-by: James Bottomley # # drivers/scsi/qla2xxx/ql6312_fw.c # 2004/12/19 12:38:40-06:00 jejb@mulgrave.(none) +6911 -6666 # qla2xxx: 23xx/63xx firmware updates # # drivers/scsi/qla2xxx/ql2322_fw.c # 2004/12/19 12:38:40-06:00 jejb@mulgrave.(none) +6629 -6590 # qla2xxx: 23xx/63xx firmware updates # # drivers/scsi/qla2xxx/ql2300_fw.c # 2004/12/19 12:38:39-06:00 jejb@mulgrave.(none) +6983 -6941 # qla2xxx: 23xx/63xx firmware updates # # BitKeeper/deleted/.del-ql6322_fw.c~29d555524cf69da # 2004/12/19 12:37:05-06:00 jejb@mulgrave.(none) +0 -7433 # Delete: drivers/scsi/qla2xxx/ql6322_fw.c # # ChangeSet # 2004/12/19 12:32:44-06:00 andrew.vasquez@qlogic.com # qla2xxx: Consolidate ISP63xx support # # Recent ISP6312 FLX firmware can support both ISP6312 and # ISP6322 chips. Consolidate ISP6322 handling into the # ISP6312 firmware loader files. # # Remove ql6322.c file. # # Signed-off-by: Andrew Vasquez # Signed-off-by: James Bottomley # # drivers/scsi/qla2xxx/qla_def.h # 2004/12/09 00:16:47-06:00 andrew.vasquez@qlogic.com +1 -5 # qla2xxx: Consolidate ISP63xx support # # drivers/scsi/qla2xxx/ql6312.c # 2004/12/09 00:16:47-06:00 andrew.vasquez@qlogic.com +13 -1 # qla2xxx: Consolidate ISP63xx support # # drivers/scsi/qla2xxx/Makefile # 2004/12/09 00:16:47-06:00 andrew.vasquez@qlogic.com +0 -2 # qla2xxx: Consolidate ISP63xx support # # drivers/scsi/qla2xxx/Kconfig # 2004/12/09 00:16:47-06:00 andrew.vasquez@qlogic.com +4 -10 # qla2xxx: Consolidate ISP63xx support # # BitKeeper/deleted/.del-ql6322.c~c61deeb919dae129 # 2004/12/19 12:31:11-06:00 andrew.vasquez@qlogic.com +0 -0 # Delete: drivers/scsi/qla2xxx/ql6322.c # # ChangeSet # 2004/12/19 12:28:06-06:00 andrew.vasquez@qlogic.com # qla2xxx: Code scrubbing # # Misc. driver-code scrubbing: # # o Correct qla2300 module description. # o Resync with latest firmware structure definitions. # o White-space cleanup. # o Add additional display of driver internals when debug # is enabled. # # Signed-off-by: Andrew Vasquez # Signed-off-by: James Bottomley # # drivers/scsi/qla2xxx/qla_os.c # 2004/12/09 00:15:37-06:00 andrew.vasquez@qlogic.com +10 -10 # qla2xxx: Code scrubbing # # drivers/scsi/qla2xxx/qla_isr.c # 2004/12/09 00:15:37-06:00 andrew.vasquez@qlogic.com +5 -4 # qla2xxx: Code scrubbing # # drivers/scsi/qla2xxx/qla_init.c # 2004/12/09 00:15:37-06:00 andrew.vasquez@qlogic.com +1 -1 # qla2xxx: Code scrubbing # # drivers/scsi/qla2xxx/qla_def.h # 2004/12/09 00:15:37-06:00 andrew.vasquez@qlogic.com +11 -6 # qla2xxx: Code scrubbing # # drivers/scsi/qla2xxx/ql2300.c # 2004/12/09 00:15:37-06:00 andrew.vasquez@qlogic.com +1 -1 # qla2xxx: Code scrubbing # # ChangeSet # 2004/12/19 12:23:34-06:00 andrew.vasquez@qlogic.com # qla2xxx: ISR fixes # # Interrupt handler fixes: # # o Mark HBA offline in case the firmware cannot recover # after and ISP system-error. # o Correct issue where the loop-down-timer was not properly # being cleared during a port-update event. # # Signed-off-by: Andrew Vasquez # Signed-off-by: James Bottomley # # drivers/scsi/qla2xxx/qla_isr.c # 2004/12/09 00:15:02-06:00 andrew.vasquez@qlogic.com +12 -4 # qla2xxx: ISR fixes # # ChangeSet # 2004/12/19 12:16:44-06:00 andrew.vasquez@qlogic.com # qla2xxx: Small fixes # # o Issue a big-hammer to recover if the driver is unable # retrieve the host's loop-id. # o Correct failure to not add an fc_lun_t object for lun # 0. # o Interrogate only the relevant bits (peripheral # qualifier and device-type) of INQUIRY data. # o Correct issue where driver would incorrectly fail-out # of initializing an ISP if an device-discovery SNS scan # failed. # o Correct issue where the qla2x00_fabric_login() would # return an incorrect error status during mailbox # command execution. # # Signed-off-by: Andrew Vasquez # Signed-off-by: James Bottomley # # drivers/scsi/qla2xxx/qla_init.c # 2004/12/09 00:14:27-06:00 andrew.vasquez@qlogic.com +22 -11 # qla2xxx: Small fixes # # ChangeSet # 2004/12/19 12:12:20-06:00 andrew.vasquez@qlogic.com # qla2xxx: NVRAM id-list updates # # Resync with latest NVRAM subsystem ID list. # # Signed-off-by: Andrew Vasquez # Signed-off-by: James Bottomley # # drivers/scsi/qla2xxx/qla_devtbl.h # 2004/12/09 00:13:51-06:00 andrew.vasquez@qlogic.com +63 -29 # qla2xxx: NVRAM id-list updates # # ChangeSet # 2004/12/19 12:07:33-06:00 andrew.vasquez@qlogic.com # qla2xxx: NVRAM updates # # Address several NVRAM access issues: # # o Add support for write-protected NVRAM chips used with # ISP2322 and ISP6322. # o Correct code to not perform an erase data during NVRAM # update. # o Correct issuance of NVRAM delay after PCI posting call. # # Signed-off-by: Andrew Vasquez # Signed-off-by: James Bottomley # # drivers/scsi/qla2xxx/qla_sup.c # 2004/12/09 00:13:14-06:00 andrew.vasquez@qlogic.com +60 -33 # qla2xxx: NVRAM updates # # drivers/scsi/qla2xxx/qla_os.c # 2004/12/09 00:13:14-06:00 andrew.vasquez@qlogic.com +1 -0 # qla2xxx: NVRAM updates # # drivers/scsi/qla2xxx/qla_gbl.h # 2004/12/09 00:13:14-06:00 andrew.vasquez@qlogic.com +1 -0 # qla2xxx: NVRAM updates # # drivers/scsi/qla2xxx/qla_def.h # 2004/12/09 00:13:14-06:00 andrew.vasquez@qlogic.com +2 -0 # qla2xxx: NVRAM updates # # ChangeSet # 2004/12/19 12:00:57-06:00 andrew.vasquez@qlogic.com # qla2xxx: Tx/Rx Sensitivity additions # # Add support for new transmit/receive sensitivity settings when # updating an ISPs serial-link options. # # Signed-off-by: Andrew Vasquez # Signed-off-by: James Bottomley # # drivers/scsi/qla2xxx/qla_init.c # 2004/12/09 00:12:38-06:00 andrew.vasquez@qlogic.com +45 -14 # qla2xxx: Tx/Rx Sensitivity additions # # drivers/scsi/qla2xxx/qla_def.h # 2004/12/09 00:12:38-06:00 andrew.vasquez@qlogic.com +22 -3 # qla2xxx: Tx/Rx Sensitivity additions # # ChangeSet # 2004/12/19 11:54:26-06:00 andrew.vasquez@qlogic.com # qla2xxx: Dead code removal # # From: Christoph Hellwig # # remove dead code, add missing statics # # Signed-off-by: Andrew Vasquez # Signed-off-by: James Bottomley # # drivers/scsi/qla2xxx/qla_rscn.c # 2004/12/09 00:12:03-06:00 andrew.vasquez@qlogic.com +1 -1 # qla2xxx: Dead code removal # # drivers/scsi/qla2xxx/qla_os.c # 2004/12/09 00:12:03-06:00 andrew.vasquez@qlogic.com +16 -125 # qla2xxx: Dead code removal # # drivers/scsi/qla2xxx/qla_mbx.c # 2004/12/09 00:12:03-06:00 andrew.vasquez@qlogic.com +1 -502 # qla2xxx: Dead code removal # # drivers/scsi/qla2xxx/qla_iocb.c # 2004/12/09 00:12:03-06:00 andrew.vasquez@qlogic.com +2 -95 # qla2xxx: Dead code removal # # drivers/scsi/qla2xxx/qla_init.c # 2004/12/09 00:12:03-06:00 andrew.vasquez@qlogic.com +4 -509 # qla2xxx: Dead code removal # # drivers/scsi/qla2xxx/qla_gbl.h # 2004/12/09 00:12:03-06:00 andrew.vasquez@qlogic.com +0 -43 # qla2xxx: Dead code removal # # drivers/scsi/qla2xxx/qla_devtbl.h # 2004/12/09 00:12:03-06:00 andrew.vasquez@qlogic.com +2 -2 # qla2xxx: Dead code removal # # ChangeSet # 2004/12/19 10:06:32-06:00 jejb@mulgrave.(none) # SCSI: Add FC transport host statistics # # From: James.Smart@Emulex.Com # # This patch updates the fc_transport with statistics for local FC ports # (e.g. Hosts). The statistics are defined per HBAAPI v2.0 definitions. # # Caveats: # ------------ # - The information below is supplied by a simple test driver # that does not # talk to real hardware, but fully acts as a LLDD that supports the # fc transport. # # # This patch results in the following in /sys/class: # ----------------------------------------------------- # # [jsmart@elxware class]$ cd /sys/class # [jsmart@elxware class]$ ls # fc_host graphics misc pci_bus scsi_host usb_host # fc_transport input net scsi_device tty vc # firmware mem netlink scsi_generic usb # [jsmart@elxware class]$ cd fc_host # [jsmart@elxware fc_host]$ ls # host4 # # [jsmart@elxware fc_host]$ cd host4 # [jsmart@elxware host4]$ ls # device host_link_down_tmo statistics # [jsmart@elxware host4]$ ls -ld * # lrwxrwxrwx 1 root root 0 Oct 13 17:16 device -> # ../../../devices/platform/host4 # -rw-r--r-- 1 root root 4096 Oct 13 17:16 host_link_down_tmo # drwxr-xr-x 2 root root 0 Oct 13 17:16 statistics # # [jsmart@elxware host4]$ cd statistics # dumped_frames invalid_crc_count # prim_seq_protocol_err_count # error_frames invalid_tx_word_count reset_statistics # fcp_control_requests link_failure_count rx_frames # fcp_input_megabytes lip_count rx_words # fcp_input_requests loss_of_signal_count seconds_since_last_reset # fcp_output_megabytes loss_of_sync_count tx_frames # fcp_output_requests nos_count tx_words # # Signed-off-by: James Bottomley # # include/scsi/scsi_transport_fc.h # 2004/12/19 10:05:27-06:00 jejb@mulgrave.(none) +36 -0 # Add FC transport host statistics # # drivers/scsi/scsi_transport_fc.c # 2004/12/19 10:05:27-06:00 jejb@mulgrave.(none) +110 -0 # Add FC transport host statistics # # ChangeSet # 2004/12/19 10:01:12-06:00 jejb@mulgrave.(none) # SCSI: Add basic infrastructure for transport host statistics # # From: James.Smart@Emulex.Com # # This patch adds the basic hooks to the scsi subsystem to # support transport-specific statistics to be added to a host. # Its basic nature follows the way in which net devices showed # their statistics. # # Signed-off-by: James Bottomley # # include/scsi/scsi_transport.h # 2004/12/19 09:59:15-06:00 jejb@mulgrave.(none) +1 -0 # Add basic infrastructure for transport host statistics # # drivers/scsi/scsi_sysfs.c # 2004/12/19 09:59:15-06:00 jejb@mulgrave.(none) +8 -0 # Add basic infrastructure for transport host statistics # # drivers/scsi/hosts.c # 2004/12/19 09:59:14-06:00 jejb@mulgrave.(none) +6 -2 # Add basic infrastructure for transport host statistics # # ChangeSet # 2004/12/16 01:32:04-05:00 davej@redhat.com # [AGPGART] Fix masking (causes crash on 460GX). # virt_to_page(phys_to_virt(masked_addr)) still works. But the 460GX # sticks bits in the middle, so the free blows up. # # I've tested the agp_allocate_memory() change on Intel 460GX. I don't have # hardware to test the Intel MCH change, but it looks to me like the same # problem. # # Signed-off-by: Bjorn Helgaas # Signed-off-by: Dave Jones # # drivers/char/agp/intel-mch-agp.c # 2004/12/16 01:31:44-05:00 davej@redhat.com +1 -1 # [AGPGART] Fix masking (causes crash on 460GX). # virt_to_page(phys_to_virt(masked_addr)) still works. But the 460GX # sticks bits in the middle, so the free blows up. # # I've tested the agp_allocate_memory() change on Intel 460GX. I don't have # hardware to test the Intel MCH change, but it looks to me like the same # problem. # # Signed-off-by: Bjorn Helgaas # Signed-off-by: Dave Jones # # drivers/char/agp/generic.c # 2004/12/16 01:31:44-05:00 davej@redhat.com +1 -2 # [AGPGART] Fix masking (causes crash on 460GX). # virt_to_page(phys_to_virt(masked_addr)) still works. But the 460GX # sticks bits in the middle, so the free blows up. # # I've tested the agp_allocate_memory() change on Intel 460GX. I don't have # hardware to test the Intel MCH change, but it looks to me like the same # problem. # # Signed-off-by: Bjorn Helgaas # Signed-off-by: Dave Jones # # ChangeSet # 2004/12/16 01:26:04-05:00 davej@redhat.com # [AGPGART] Announce Intel 460GX when found. # # Most AGP chipset drivers announce the bridge found, and i460gx used # to, but it seems to have gotten dropped somewhere along the way. # # Signed-off-by: Bjorn Helgaas # Signed-off-by: Dave Jones # # drivers/char/agp/i460-agp.c # 2004/12/16 01:25:44-05:00 davej@redhat.com +2 -0 # [AGPGART] Announce Intel 460GX when found. # # Most AGP chipset drivers announce the bridge found, and i460gx used # to, but it seems to have gotten dropped somewhere along the way. # # Signed-off-by: Bjorn Helgaas # Signed-off-by: Dave Jones # # ChangeSet # 2004/12/15 20:46:09-05:00 davej@redhat.com # [AGPGART] Add missing cache flush to the generic remove routine. # # It's not entirely clear whether this is needed, or it was working around # the missing PCI Posting workaround. Until we know any better, make # the generic routine do what the per chipset routines do. # # Spotted-by: Alan Cox # Signed-off-by: Dave Jones # # drivers/char/agp/generic.c # 2004/12/15 20:45:49-05:00 davej@redhat.com +1 -0 # [AGPGART] Add missing cache flush to the generic remove routine. # # It's not entirely clear whether this is needed, or it was working around # the missing PCI Posting workaround. Until we know any better, make # the generic routine do what the per chipset routines do. # # Spotted-by: Alan Cox # Signed-off-by: Dave Jones # # ChangeSet # 2004/12/15 20:43:26-05:00 davej@redhat.com # [AGPGART] Remove unnecessary parenthesis on return statements. # # Signed-off-by: Dave Jones # # drivers/char/agp/intel-mch-agp.c # 2004/12/15 20:43:09-05:00 davej@redhat.com +18 -18 # [AGPGART] Remove unnecessary parenthesis on return statements. # # Signed-off-by: Dave Jones # # drivers/char/agp/intel-agp.c # 2004/12/15 20:43:09-05:00 davej@redhat.com +28 -28 # [AGPGART] Remove unnecessary parenthesis on return statements. # # Signed-off-by: Dave Jones # # drivers/char/agp/i460-agp.c # 2004/12/15 20:43:09-05:00 davej@redhat.com +2 -2 # [AGPGART] Remove unnecessary parenthesis on return statements. # # Signed-off-by: Dave Jones # # drivers/char/agp/efficeon-agp.c # 2004/12/15 20:43:09-05:00 davej@redhat.com +2 -2 # [AGPGART] Remove unnecessary parenthesis on return statements. # # Signed-off-by: Dave Jones # # ChangeSet # 2004/12/15 20:30:41-05:00 davej@redhat.com # [AGPGART] Another missing PCI Posting bugfix. # # Signed-off-by: Dave Jones # # drivers/char/agp/sworks-agp.c # 2004/12/15 20:30:19-05:00 davej@redhat.com +1 -0 # [AGPGART] Another missing PCI Posting bugfix. # # Signed-off-by: Dave Jones # # ChangeSet # 2004/12/15 20:24:52-05:00 davej@redhat.com # [AGPGART] More PCI Posting bugs. # # Signed-off-by: Dave Jones # # drivers/char/agp/nvidia-agp.c # 2004/12/15 20:24:29-05:00 davej@redhat.com +3 -1 # [AGPGART] More PCI Posting bugs. # # Signed-off-by: Dave Jones # # drivers/char/agp/generic.c # 2004/12/15 20:24:29-05:00 davej@redhat.com +9 -3 # [AGPGART] More PCI Posting bugs. # # Signed-off-by: Dave Jones # # drivers/char/agp/amd64-agp.c # 2004/12/15 20:24:29-05:00 davej@redhat.com +1 -0 # [AGPGART] More PCI Posting bugs. # # Signed-off-by: Dave Jones # # ChangeSet # 2004/12/15 19:56:29-05:00 davej@redhat.com # [AGPGART] Fix up PCI posting bugs. # Also remove a pointless wrapper. # # Signed-off-by: Dave Jones # # drivers/char/agp/sworks-agp.c # 2004/12/15 19:54:35-05:00 davej@redhat.com +12 -13 # [AGPGART] Fix up PCI posting bugs. # Also remove a pointless wrapper. # # Signed-off-by: Dave Jones # # drivers/char/agp/intel-mch-agp.c # 2004/12/15 19:54:35-05:00 davej@redhat.com +22 -18 # [AGPGART] Fix up PCI posting bugs. # Also remove a pointless wrapper. # # Signed-off-by: Dave Jones # # drivers/char/agp/intel-agp.c # 2004/12/15 19:54:34-05:00 davej@redhat.com +55 -53 # [AGPGART] Fix up PCI posting bugs. # Also remove a pointless wrapper. # # Signed-off-by: Dave Jones # # drivers/char/agp/hp-agp.c # 2004/12/15 19:54:34-05:00 davej@redhat.com +28 -23 # [AGPGART] Fix up PCI posting bugs. # Also remove a pointless wrapper. # # Signed-off-by: Dave Jones # # drivers/char/agp/ati-agp.c # 2004/12/15 19:54:34-05:00 davej@redhat.com +12 -5 # [AGPGART] Fix up PCI posting bugs. # Also remove a pointless wrapper. # # Signed-off-by: Dave Jones # # drivers/char/agp/amd-k7-agp.c # 2004/12/15 19:54:34-05:00 davej@redhat.com +19 -12 # [AGPGART] Fix up PCI posting bugs. # Also remove a pointless wrapper. # # Signed-off-by: Dave Jones # # drivers/char/agp/agp.h # 2004/12/15 19:54:34-05:00 davej@redhat.com +0 -10 # [AGPGART] Fix up PCI posting bugs. # Also remove a pointless wrapper. # # Signed-off-by: Dave Jones # # ChangeSet # 2004/12/15 12:56:22-08:00 davem@nuts.davemloft.net # Merge nuts.davemloft.net:/disk1/BK/network-2.6.11 # into nuts.davemloft.net:/disk1/BK/net-2.6.11 # # net/ipv4/netfilter/ip_conntrack_standalone.c # 2004/12/15 12:56:11-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/core/dev.c # 2004/12/15 12:56:10-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # include/net/act_api.h # 2004/12/15 12:56:10-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # arch/sparc64/defconfig # 2004/12/15 12:56:10-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # arch/mips/defconfig # 2004/12/15 12:56:10-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # arch/mips/configs/rm200_defconfig # 2004/12/15 12:56:10-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # arch/mips/configs/ip22_defconfig # 2004/12/15 12:56:10-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # arch/m68k/configs/sun3x_defconfig # 2004/12/15 12:56:10-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # arch/m68k/configs/sun3_defconfig # 2004/12/15 12:56:10-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # arch/m68k/configs/q40_defconfig # 2004/12/15 12:56:09-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # arch/m68k/configs/mvme16x_defconfig # 2004/12/15 12:56:09-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # arch/m68k/configs/mvme147_defconfig # 2004/12/15 12:56:09-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # arch/m68k/configs/mac_defconfig # 2004/12/15 12:56:09-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # arch/m68k/configs/hp300_defconfig # 2004/12/15 12:56:09-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # arch/m68k/configs/bvme6000_defconfig # 2004/12/15 12:56:09-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # arch/m68k/configs/atari_defconfig # 2004/12/15 12:56:09-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # arch/m68k/configs/apollo_defconfig # 2004/12/15 12:56:09-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # arch/m68k/configs/amiga_defconfig # 2004/12/15 12:56:09-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # ChangeSet # 2004/12/15 13:42:10-05:00 davej@redhat.com # [AGPGART] Fix TLB flushing issues with change_page_attr() # # Calls to change_page_attr() need an explicit call to # global_flush_tlb() afterwards. The AGP code didn't # do this in a number of cases. This patch makes # map_page_into_agp/unmap_page_from_agp do the calls # themselves, which takes care of most of the problem. # # The Intel AGP driver also has some slightly different calls to what # map_page_into_agp() does, as it changes 4 contiguous pages. # Introduce explicit flushes afterwards there too. # # Thanks to Alan Cox for pointing this out. # # Signed-off-by: Dave Jones # # include/asm-x86_64/agp.h # 2004/12/15 13:42:04-05:00 davej@redhat.com +2 -3 # [AGPGART] Fix TLB flushing issues with change_page_attr() # # Calls to change_page_attr() need an explicit call to # global_flush_tlb() afterwards. The AGP code didn't # do this in a number of cases. This patch makes # map_page_into_agp/unmap_page_from_agp do the calls # themselves, which takes care of most of the problem. # # The Intel AGP driver also has some slightly different calls to what # map_page_into_agp() does, as it changes 4 contiguous pages. # Introduce explicit flushes afterwards there too. # # Thanks to Alan Cox for pointing this out. # # Signed-off-by: Dave Jones # # include/asm-i386/agp.h # 2004/12/15 13:42:04-05:00 davej@redhat.com +2 -2 # [AGPGART] Fix TLB flushing issues with change_page_attr() # # Calls to change_page_attr() need an explicit call to # global_flush_tlb() afterwards. The AGP code didn't # do this in a number of cases. This patch makes # map_page_into_agp/unmap_page_from_agp do the calls # themselves, which takes care of most of the problem. # # The Intel AGP driver also has some slightly different calls to what # map_page_into_agp() does, as it changes 4 contiguous pages. # Introduce explicit flushes afterwards there too. # # Thanks to Alan Cox for pointing this out. # # Signed-off-by: Dave Jones # # drivers/char/agp/intel-agp.c # 2004/12/15 13:42:04-05:00 davej@redhat.com +5 -2 # [AGPGART] Fix TLB flushing issues with change_page_attr() # # Calls to change_page_attr() need an explicit call to # global_flush_tlb() afterwards. The AGP code didn't # do this in a number of cases. This patch makes # map_page_into_agp/unmap_page_from_agp do the calls # themselves, which takes care of most of the problem. # # The Intel AGP driver also has some slightly different calls to what # map_page_into_agp() does, as it changes 4 contiguous pages. # Introduce explicit flushes afterwards there too. # # Thanks to Alan Cox for pointing this out. # # Signed-off-by: Dave Jones # # drivers/char/agp/generic.c # 2004/12/15 13:42:04-05:00 davej@redhat.com +23 -0 # [AGPGART] Fix TLB flushing issues with change_page_attr() # # Calls to change_page_attr() need an explicit call to # global_flush_tlb() afterwards. The AGP code didn't # do this in a number of cases. This patch makes # map_page_into_agp/unmap_page_from_agp do the calls # themselves, which takes care of most of the problem. # # The Intel AGP driver also has some slightly different calls to what # map_page_into_agp() does, as it changes 4 contiguous pages. # Introduce explicit flushes afterwards there too. # # Thanks to Alan Cox for pointing this out. # # Signed-off-by: Dave Jones # # drivers/char/agp/ati-agp.c # 2004/12/15 13:42:04-05:00 davej@redhat.com +0 -3 # [AGPGART] Fix TLB flushing issues with change_page_attr() # # Calls to change_page_attr() need an explicit call to # global_flush_tlb() afterwards. The AGP code didn't # do this in a number of cases. This patch makes # map_page_into_agp/unmap_page_from_agp do the calls # themselves, which takes care of most of the problem. # # The Intel AGP driver also has some slightly different calls to what # map_page_into_agp() does, as it changes 4 contiguous pages. # Introduce explicit flushes afterwards there too. # # Thanks to Alan Cox for pointing this out. # # Signed-off-by: Dave Jones # # ChangeSet # 2004/12/15 13:41:06-05:00 davej@redhat.com # [AGPGART] Add support for ALI M1681/M1683 # # Signed-off-by: Dave Jones # # include/linux/pci_ids.h # 2004/12/15 13:41:00-05:00 davej@redhat.com +3 -1 # [AGPGART] Add support for ALI M1681/M1683 # # Signed-off-by: Dave Jones # # drivers/char/agp/ali-agp.c # 2004/12/15 13:41:00-05:00 davej@redhat.com +9 -0 # [AGPGART] Add support for ALI M1681/M1683 # # Signed-off-by: Dave Jones # # ChangeSet # 2004/12/15 13:40:41-05:00 davej@redhat.com # [AGPGART] Simplify global_cache_flush # # on_each_cpu does the right thing in the UP case, so we can # kill those ugly ifdefs. # # Signed-off-by: Dave Jones # # drivers/char/agp/generic.c # 2004/12/15 13:40:34-05:00 davej@redhat.com +0 -6 # [AGPGART] Simplify global_cache_flush # # on_each_cpu does the right thing in the UP case, so we can # kill those ugly ifdefs. # # Signed-off-by: Dave Jones # # ChangeSet # 2004/12/15 13:39:28-05:00 davej@redhat.com # [AGPGART] isoch.c: replace pci_find_device with pci_get_device # # As pci_find_device is going away soon I have converted this file to use # pci_get_device instead. for_each_pci_dev is just a macro wrapper around # pci_get_device. I have compile tested it. If anyone has this hardware # and could test it that would be great. # # Signed-off-by: Hanna Linder # Signed-off-by: Dave Jones # # drivers/char/agp/isoch.c # 2004/12/15 13:39:21-05:00 davej@redhat.com +1 -1 # [AGPGART] isoch.c: replace pci_find_device with pci_get_device # # As pci_find_device is going away soon I have converted this file to use # pci_get_device instead. for_each_pci_dev is just a macro wrapper around # pci_get_device. I have compile tested it. If anyone has this hardware # and could test it that would be great. # # Signed-off-by: Hanna Linder # Signed-off-by: Dave Jones # # ChangeSet # 2004/12/15 13:38:35-05:00 davej@redhat.com # [AGPGART] intel-mch-agp.c: replace pci_find_device with pci_get_device # # As pci_find_device is going away soon I have converted this file to use # pci_get_device instead. I have compile tested it. If anyone has this hardware # and could test it that would be great. # # Signed-off-by: Hanna Linder # Signed-off-by: Dave Jones # # drivers/char/agp/intel-mch-agp.c # 2004/12/15 13:38:28-05:00 davej@redhat.com +3 -2 # [AGPGART] intel-mch-agp.c: replace pci_find_device with pci_get_device # # As pci_find_device is going away soon I have converted this file to use # pci_get_device instead. I have compile tested it. If anyone has this hardware # and could test it that would be great. # # Signed-off-by: Hanna Linder # Signed-off-by: Dave Jones # # ChangeSet # 2004/12/15 13:38:11-05:00 davej@redhat.com # [AGPGART] intel-agp.c: replace pci_find_device with pci_get_device # # As pci_find_device is going away soon I have converted this file to use # pci_get_device instead. I have compile tested it. If anyone has this hardware # and could test it that would be great. # # Signed-off-by: Hanna Linder # Signed-off-by: Dave Jones # # drivers/char/agp/intel-agp.c # 2004/12/15 13:38:05-05:00 davej@redhat.com +4 -3 # [AGPGART] intel-agp.c: replace pci_find_device with pci_get_device # # As pci_find_device is going away soon I have converted this file to use # pci_get_device instead. I have compile tested it. If anyone has this hardware # and could test it that would be great. # # Signed-off-by: Hanna Linder # Signed-off-by: Dave Jones # # ChangeSet # 2004/12/15 13:36:47-05:00 davej@redhat.com # [AGPGART] generic.c: replace pci_find_device with pci_get_device # # As pci_find_device is going away soon I have converted this file # to use pci_get_device instead. I have compile tested it. # If anyone has this hardware and could test it that would be great. # # Signed-off-by: Hanna Linder # Signed-off-by: Dave Jones # # drivers/char/agp/generic.c # 2004/12/15 13:36:41-05:00 davej@redhat.com +2 -2 # [AGPGART] generic.c: replace pci_find_device with pci_get_device # # As pci_find_device is going away soon I have converted this file # to use pci_get_device instead. I have compile tested it. # If anyone has this hardware and could test it that would be great. # # Signed-off-by: Hanna Linder # Signed-off-by: Dave Jones # # ChangeSet # 2004/12/15 13:34:02-05:00 davej@redhat.com # [AGPGART] amd64-agp.c replace pci_find_device with pci_get_device # As pci_find_device is going away soon I have converted this file # to use pci_get_device instead. I have compile tested it. # If anyone has this hardware and could test it that would be great. # # Signed-off-by: Hanna Linder # Signed-off-by: Dave Jones # # drivers/char/agp/amd64-agp.c # 2004/12/15 13:33:56-05:00 davej@redhat.com +8 -3 # [AGPGART] amd64-agp.c replace pci_find_device with pci_get_device # As pci_find_device is going away soon I have converted this file # to use pci_get_device instead. I have compile tested it. # If anyone has this hardware and could test it that would be great. # # Signed-off-by: Hanna Linder # Signed-off-by: Dave Jones # # ChangeSet # 2004/12/13 07:58:37-08:00 jfs.adm@bkbits.net # Merge bk://linux.bkbits.net/linux-2.5 # into bkbits.net:/repos/j/jfs/linux-2.5 # # fs/Kconfig # 2004/12/13 07:58:30-08:00 jfs.adm@bkbits.net +0 -0 # Auto merged # # ChangeSet # 2004/12/13 11:55:52+00:00 nico@cam.org # MTD XIP support: allyesconfig compile fix. # # People insist on turning stuff on which doesn't make sense. Make it compile # in the case where the platform doesn't provide the necessary XIP primitives. # # Signed-off-by: Nicolas Pitre # Signed-off-by: David Woodhouse # # include/linux/mtd/xip.h # 2004/12/13 11:55:38+00:00 nico@cam.org +10 -2 # revision 1.2 # date: 2004/12/01 15:49:10; author: nico; state: Exp; lines: +10 -2 # allows MTD XIP to compile on every target with a fallback to reduced # responsiveness, and warn about it. # # ChangeSet # 2004/12/13 11:53:24+00:00 cs.helsinki.fi@shinybook.infradead.org # MTD: New mapping driver for IBM 405GP 'Walnut' board. # # Signed-off-by: Heikki O Lindholm # Signed-off-by: David Woodhouse # # drivers/mtd/maps/walnut.c # 2004/12/13 11:53:07+00:00 cs.helsinki.fi@shinybook.infradead.org +122 -0 # # drivers/mtd/maps/walnut.c # 2004/12/13 11:53:07+00:00 cs.helsinki.fi@shinybook.infradead.org +0 -0 # BitKeeper file /home/dwmw2/bk/mtd-2.6/drivers/mtd/maps/walnut.c # # drivers/mtd/maps/Makefile # 2004/12/13 11:53:07+00:00 cs.helsinki.fi@shinybook.infradead.org +2 -1 # revision 1.21 # date: 2004/12/09 20:01:05; author: holindho; state: Exp; lines: +2 -1 # Added IBM 405GP Walnut flash mapping. # # drivers/mtd/maps/Kconfig # 2004/12/13 11:53:07+00:00 cs.helsinki.fi@shinybook.infradead.org +9 -1 # revision 1.40 # date: 2004/12/09 20:01:05; author: holindho; state: Exp; lines: +9 -1 # Added IBM 405GP Walnut flash mapping. # # ChangeSet # 2004/12/13 11:47:54+00:00 cs.helsinki.fi@shinybook.infradead.org # MTD: Use JEDEC probe for flash chips on Ebony board. # # Signed-off-by: Heikki O Lindholm # Signed-off-by: David Woodhouse # # drivers/mtd/maps/ebony.c # 2004/12/13 11:47:39+00:00 cs.helsinki.fi@shinybook.infradead.org +3 -3 # revision 1.15 # date: 2004/12/09 18:39:54; author: holindho; state: Exp; lines: +3 -3 # Changed ebony to use JEDEC, since the factory config has JEDEC (AMD) parts. Enabled writing to BIOS area also. Change ok'd by the maintainer (Matt Porter). # # drivers/mtd/maps/Kconfig # 2004/12/13 11:47:39+00:00 cs.helsinki.fi@shinybook.infradead.org +2 -2 # revision 1.39 # date: 2004/12/09 18:39:54; author: holindho; state: Exp; lines: +2 -2 # Changed ebony to use JEDEC, since the factory config has JEDEC (AMD) parts. Enabled writing to BIOS area also. Change ok'd by the maintainer (Matt Porter). # # ChangeSet # 2004/12/13 11:44:09+00:00 dvrabel@arcom.co.uk # MTD: AMD/Fujitsu flash driver cleanup # # Use get_chip() helper function instead of open-coding it. # # Signed-off-by: David Vrabel # Signed-off-by: David Woodhouse # # drivers/mtd/chips/cfi_cmdset_0002.c # 2004/12/13 11:43:54+00:00 dvrabel@arcom.co.uk +8 -18 # revision 1.114 # date: 2004/12/11 15:43:53; author: dedekind; state: Exp; lines: +2 -2 # Remove unused variable. # ---------------------------- # revision 1.113 # date: 2004/12/03 10:26:41; author: dvrabel; state: Exp; lines: +7 -17 # Use chip_ready() in do_write_oneword(). # # ChangeSet # 2004/12/13 11:40:43+00:00 joern@wh.fh-wedel.de # MTD: phram device cleanup. # # - Remove old slram-like interface # - Fewer memory allocations # - Saner usage example # # Signed-off-by: Jörn Engel # Signed-off-by: David Woodhouse # # drivers/mtd/devices/phram.c # 2004/12/13 11:40:29+00:00 joern@wh.fh-wedel.de +26 -104 # revision 1.10 # date: 2004/12/10 17:53:13; author: joern; state: Exp; lines: +3 -3 # o Fix a typo. # o Pick a saner example. # ---------------------------- # revision 1.9 # date: 2004/12/10 17:49:18; author: joern; state: Exp; lines: +1 -67 # Remove slram interface. # ---------------------------- # revision 1.8 # date: 2004/12/10 17:46:31; author: joern; state: Exp; lines: +22 -29 # o Remove one kmalloc by embedding struct mtdinfo in struct phram_mtd_list. # o Shorten "mtdinfo" to "mtd". No information lost. # ---------------------------- # revision 1.7 # date: 2004/12/10 17:33:50; author: joern; state: Exp; lines: +3 -8 # Since many people bugged me to actively develop it, I might as well take # the copyright... # # ChangeSet # 2004/12/13 11:37:09+00:00 dedekind@infradead.org # MTD NAND flash simulator update. # # - Default to 8MiB instead of 64MiB # - Use generic LP NAND command definition # - Other minor cleanup # # Signed-off-by: Artem Bityuckiy # Signed-off-by: David Woodhouse # # drivers/mtd/nand/nandsim.c # 2004/12/13 11:36:55+00:00 dedekind@infradead.org +13 -19 # revision 1.7 # date: 2004/12/06 11:53:06; author: dedekind; state: Exp; lines: +6 -6 # Update the state name too. # ---------------------------- # revision 1.6 # date: 2004/12/06 11:49:07; author: dedekind; state: Exp; lines: +2 -8 # MTD now have 0x30 LP NAND read command macro, use it instead of custom # macro. # ---------------------------- # revision 1.5 # date: 2004/12/06 11:42:40; author: dedekind; state: Exp; lines: +5 -5 # Several tweaks. # ---------------------------- # revision 1.4 # date: 2004/12/06 10:02:01; author: dedekind; state: Exp; lines: +2 -2 # By default simulate 8MiB flash instead of 64MiB in order to not to waste # RAM too much especially if nandsim is not compiled as module. # # ChangeSet # 2004/12/13 11:33:49+00:00 dwmw2@shinybook.infradead.org # JFFS2 locking fix: Don't hold references to obsolete nodes without lock. # # Signed-off-by: David Woodhouse # # fs/jffs2/nodelist.c # 2004/12/13 11:33:34+00:00 dwmw2@shinybook.infradead.org +25 -13 # revision 1.90 # date: 2004/12/08 17:59:20; author: dwmw2; state: Exp; lines: +25 -13 # Adjust jffs2_get_inode_nodes() so we don't use node refs after they're obsoleted. # # ChangeSet # 2004/12/13 11:30:33+00:00 jarkko.lavinen@nokia.com # MTD: Increase nand_write_page() ECC buffer size to cope with 12-byte ECC. # # Signed-off-by: Jarkko Lavinen # Signed-off-by: David Woodhouse # # drivers/mtd/nand/nand_base.c # 2004/12/13 11:30:18+00:00 jarkko.lavinen@nokia.com +2 -2 # ---------------------------- # revision 1.126 # date: 2004/12/13 11:22:25; author: lavinen; state: Exp; lines: +2 -2 # Use 32 ecc bytes in nand_write_page(), similar to nand_read_ec(). # ---------------------------- # revision 1.125 # date: 2004/12/03 14:06:14; author: lavinen; state: Exp; lines: +1 -2 # Removed the unneeded setting of eccbytes to 12. # ---------------------------- # revision 1.124 # date: 2004/12/03 13:23:33; author: lavinen; state: Exp; lines: +3 -2 # Fixed for the 12 byte HW ecc support. # ---------------------------- # # ChangeSet # 2004/12/13 10:56:24+00:00 dwmw2@shinybook.infradead.org # Merge shinybook.infradead.org:/home/dwmw2/bk/linus-2.6 # into shinybook.infradead.org:/home/dwmw2/bk/mtd-2.6 # # fs/Kconfig # 2004/12/13 10:56:15+00:00 dwmw2@shinybook.infradead.org +0 -0 # Auto merged # # ChangeSet # 2004/12/11 19:15:36-06:00 jejb@mulgrave.(none) # SCSI: Quieten the incorrect state change message # # Make it a scsi logging message instead (under ERROR_RECOVERY) # # Signed-off-by: James Bottomley # # drivers/scsi/scsi_lib.c # 2004/12/11 19:14:44-06:00 jejb@mulgrave.(none) +6 -5 # SCSI: Quieten the incorrect state change message # # ChangeSet # 2004/12/08 00:40:23-05:00 len.brown@intel.com # [ACPI] fix polarity of CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI message # # Signed-off-by: Len Brown # # arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c # 2004/12/08 00:36:27-05:00 len.brown@intel.com +1 -1 # complain about CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI missing only when it is missing # # ChangeSet # 2004/12/08 00:33:06-05:00 len.brown@intel.com # [ACPI] remove duplicate _PDC #defines resulting from mis-merge # # Signed-off-by: Zhenyu Z. Wang # Signed-off-by: Len Brown # # include/asm-i386/acpi.h # 2004/12/08 00:32:58-05:00 len.brown@intel.com +0 -6 # remove duplicate #defines resulting from mis-merge # # ChangeSet # 2004/12/07 19:27:33-05:00 jgarzik@pobox.com # drivers/block/floppy: kill #include linux/version.h # # Appears to be unnecessary. # # drivers/block/floppy.c # 2004/12/07 19:27:27-05:00 jgarzik@pobox.com +0 -1 # drivers/block/floppy: kill #include linux/version.h # # Appears to be unnecessary. # # ChangeSet # 2004/12/07 18:46:10-05:00 jgarzik@pobox.com # Merge pobox.com:/garz/repo/linux-2.6 into pobox.com:/garz/repo/misc-2.6 # # sound/oss/soundcard.c # 2004/12/07 18:46:07-05:00 jgarzik@pobox.com +0 -0 # Auto merged # # sound/oss/i810_audio.c # 2004/12/07 18:46:07-05:00 jgarzik@pobox.com +0 -0 # Auto merged # # ChangeSet # 2004/12/07 15:38:26-06:00 shaggy@austin.ibm.com # JFS: flush new iag from bd_inode's mapping # # This is a fix to help jfs work with grub. A new IAG is created in # the bd_inode's mapping, but subsequently modified in a different # mapping. We should invalidate the former page to keep grub from # using that cached page. It isn't useful to have it cached anyway, # since jfs will never access it again through that mapping. # # Signed-off-by: Dave Kleikamp # # fs/jfs/jfs_metapage.c # 2004/12/07 15:38:08-06:00 shaggy@austin.ibm.com +1 -8 # META_discard no longer implies that we clear the write flag # # fs/jfs/jfs_imap.c # 2004/12/07 15:38:08-06:00 shaggy@austin.ibm.com +6 -0 # Invalidate page of newly initialized iag # # ChangeSet # 2004/12/06 17:23:23-05:00 len.brown@intel.com # Merge intel.com:/home/lenb/src/26-stable-dev # into intel.com:/home/lenb/src/26-latest-dev # # drivers/acpi/tables/tbxfroot.c # 2004/12/06 17:23:20-05:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/12/06 17:12:37-05:00 len.brown@intel.com # [ACPI] ACPICA 20041203 from Bob Moore and Alexey Starikovskiy # # The low-level field insertion/extraction code (exfldio) # has been completely rewritten to eliminate unnecessary # complexity, bugs, and boundary conditions. # # Fixed a problem in the ToInteger, ToBuffer, ToHexString, # and ToDecimalString operators where the input operand could # be inadvertently deleted if no conversion was necessary # (e.g., if the input to ToInteger was an Integer object.) # # Fixed a problem with the ToDecimalString and ToHexString # where an incorrect exception code was returned if the # resulting string would be > 200 chars. AE_STRING_LIMIT is # now returned. # # Fixed a problem with the Concatenate operator where AE_OK # was always returned, even if the operation failed. # # Fixed a problem in oswinxf (used by AcpiExec and iASL) # to allow > 128 semaphores to be allocated. # # Signed-off-by: Len Brown # # include/acpi/amlcode.h # 2004/12/06 16:15:20-05:00 len.brown@intel.com +1 -0 # ACPICA 20041203 # # include/acpi/acobject.h # 2004/12/06 16:15:20-05:00 len.brown@intel.com +1 -3 # ACPICA 20041203 # # include/acpi/acmacros.h # 2004/12/06 16:15:21-05:00 len.brown@intel.com +1 -0 # ACPICA 20041203 # # include/acpi/acconfig.h # 2004/12/06 16:15:21-05:00 len.brown@intel.com +1 -1 # ACPICA 20041203 # # drivers/acpi/parser/psopcode.c # 2004/12/06 16:15:25-05:00 len.brown@intel.com +4 -4 # ACPICA 20041203 # # drivers/acpi/executer/exprep.c # 2004/12/06 16:15:26-05:00 len.brown@intel.com +2 -22 # ACPICA 20041203 # # drivers/acpi/executer/exoparg1.c # 2004/12/06 16:15:26-05:00 len.brown@intel.com +22 -4 # ACPICA 20041203 # # drivers/acpi/executer/exmisc.c # 2004/12/06 16:15:26-05:00 len.brown@intel.com +1 -1 # ACPICA 20041203 # # drivers/acpi/executer/exfldio.c # 2004/12/06 16:15:26-05:00 len.brown@intel.com +114 -432 # ACPICA 20041203 # # drivers/acpi/executer/exdump.c # 2004/12/06 16:15:26-05:00 len.brown@intel.com +0 -3 # ACPICA 20041203 # # drivers/acpi/events/evgpe.c # 2004/12/06 16:15:25-05:00 len.brown@intel.com +13 -13 # ACPICA 20041203 # # drivers/acpi/dispatcher/dswexec.c # 2004/12/06 16:15:25-05:00 len.brown@intel.com +16 -8 # ACPICA 20041203 # # drivers/acpi/dispatcher/dsopcode.c # 2004/12/06 16:15:25-05:00 len.brown@intel.com +2 -3 # ACPICA 20041203 # # ChangeSet # 2004/12/06 16:57:17-05:00 len.brown@intel.com # [ACPI] ACPICA 20041119 from Bob Moore # # Fixed a problem in acpi_ex_convert_to_integer # where new integers were not truncated to 32 bits for # 32-bit ACPI tables. This routine converts buffers and # strings to integers. # # Implemented support to store a value to an Index() on a # String object. This is an ACPI 2.0 feature that had not # yet been implemented. # # Implemented new behavior for storing objects to individual # package elements (via the Index() operator). The # previous behavior was to invoke the implicit conversion # rules if an object was already present at the index. # The new behavior is to simply delete any existing object # and directly store the new object. Although the ACPI # specification seems unclear on this subject, other ACPI # implementations behave in this manner. (This is the root # of the AE_BAD_HEX_CONSTANT issue.) # # Modified the RSDP memory scan mechanism to support the # extended checksum for ACPI 2.0 (and above) RSDPs. Note # that the search continues until a valid RSDP signature is # found with a valid checksum. # # Signed-off-by: Len Brown # # include/acpi/acoutput.h # 2004/12/06 16:02:10-05:00 len.brown@intel.com +1 -1 # ACPICA 20041119 # # include/acpi/acmacros.h # 2004/12/06 16:02:10-05:00 len.brown@intel.com +12 -12 # ACPICA 20041119 # # include/acpi/acconfig.h # 2004/12/06 16:02:10-05:00 len.brown@intel.com +1 -1 # ACPICA 20041119 # # drivers/acpi/tables/tbxfroot.c # 2004/12/06 16:02:13-05:00 len.brown@intel.com +34 -11 # ACPICA 20041119 # # drivers/acpi/tables/tbrsdt.c # 2004/12/06 16:02:13-05:00 len.brown@intel.com +1 -0 # ACPICA 20041119 # # drivers/acpi/executer/exstore.c # 2004/12/06 16:02:13-05:00 len.brown@intel.com +26 -36 # ACPICA 20041119 # # drivers/acpi/executer/exoparg2.c # 2004/12/06 16:02:13-05:00 len.brown@intel.com +2 -2 # ACPICA 20041119 # # drivers/acpi/executer/exdump.c # 2004/12/06 16:56:20-05:00 len.brown@intel.com +5 -3 # ACPICA 20041119 # # drivers/acpi/executer/exconvrt.c # 2004/12/06 16:02:13-05:00 len.brown@intel.com +9 -7 # ACPICA 20041119 # # drivers/acpi/executer/exconfig.c # 2004/12/06 16:02:13-05:00 len.brown@intel.com +1 -1 # ACPICA 20041119 # # ChangeSet # 2004/12/06 15:58:53-05:00 len.brown@intel.com # merge # # drivers/acpi/processor.c # 2004/12/06 15:58:46-05:00 len.brown@intel.com +1 -1 # merge # # ChangeSet # 2004/12/06 14:38:49-06:00 bunk@stusta.de # [PATCH] i386 mca.c: small cleanups # # The patch below contains the following cleanups: # - make spinlock mca_lock static # - make struct mca_standard_resources static # # Signed-off-by: Adrian Bunk # Signed-off-by: James Bottomley # # include/asm-i386/mca.h # 2004/12/01 01:03:10-06:00 bunk@stusta.de +0 -3 # i386 mca.c: small cleanups # # arch/i386/kernel/mca.c # 2004/12/01 01:03:44-06:00 bunk@stusta.de +2 -2 # i386 mca.c: small cleanups # # include/linux/acpi.h # 2004/12/06 15:23:34-05:00 len.brown@intel.com +0 -0 # Auto merged # # drivers/acpi/pci_irq.c # 2004/12/06 15:23:34-05:00 len.brown@intel.com +0 -0 # Auto merged # # drivers/acpi/pci_bind.c # 2004/12/06 15:23:34-05:00 len.brown@intel.com +0 -0 # Auto merged # # drivers/acpi/bus.c # 2004/12/06 15:23:33-05:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/12/06 14:23:20-06:00 matthew@wil.cx # [PATCH] Move MCA_bus to linux/mca.h # # - Move MCA_bus declaration from to # - Define it in mca.c, not setup.c # - EXPORT_SYMBOL it at the site of its definition. # - Fix up random files to include for the use of the MCA_bus # symbol # - Delete some unnecessary ifdefs. # - Delete some unneeded comments. # # Signed-off-by: James Bottomley # # include/linux/mca.h # 2004/12/01 14:54:03-06:00 matthew@wil.cx +3 -11 # Move MCA_bus to linux/mca.h # # include/asm-x86_64/processor.h # 2004/12/01 14:54:03-06:00 matthew@wil.cx +0 -6 # Move MCA_bus to linux/mca.h # # include/asm-v850/processor.h # 2004/12/01 14:54:03-06:00 matthew@wil.cx +0 -7 # Move MCA_bus to linux/mca.h # # include/asm-sparc64/processor.h # 2004/12/01 14:54:03-06:00 matthew@wil.cx +0 -4 # Move MCA_bus to linux/mca.h # # include/asm-sparc/processor.h # 2004/12/01 14:54:03-06:00 matthew@wil.cx +0 -6 # Move MCA_bus to linux/mca.h # # include/asm-sh64/processor.h # 2004/12/01 14:54:03-06:00 matthew@wil.cx +0 -6 # Move MCA_bus to linux/mca.h # # include/asm-sh/processor.h # 2004/12/01 14:54:03-06:00 matthew@wil.cx +0 -6 # Move MCA_bus to linux/mca.h # # include/asm-ppc64/processor.h # 2004/12/01 14:54:01-06:00 matthew@wil.cx +0 -6 # Move MCA_bus to linux/mca.h # # include/asm-ppc/processor.h # 2004/12/01 14:54:01-06:00 matthew@wil.cx +0 -6 # Move MCA_bus to linux/mca.h # # include/asm-parisc/processor.h # 2004/12/01 14:54:01-06:00 matthew@wil.cx +0 -3 # Move MCA_bus to linux/mca.h # # include/asm-mips/processor.h # 2004/12/01 14:54:01-06:00 matthew@wil.cx +0 -6 # Move MCA_bus to linux/mca.h # # include/asm-m68knommu/processor.h # 2004/12/01 14:54:01-06:00 matthew@wil.cx +0 -5 # Move MCA_bus to linux/mca.h # # include/asm-i386/processor.h # 2004/12/01 14:54:00-06:00 matthew@wil.cx +0 -5 # Move MCA_bus to linux/mca.h # # include/asm-h8300/processor.h # 2004/12/01 14:53:59-06:00 matthew@wil.cx +0 -5 # Move MCA_bus to linux/mca.h # # include/asm-arm26/processor.h # 2004/12/01 14:53:59-06:00 matthew@wil.cx +0 -3 # Move MCA_bus to linux/mca.h # # include/asm-arm/processor.h # 2004/12/01 14:53:59-06:00 matthew@wil.cx +0 -3 # Move MCA_bus to linux/mca.h # # include/asm-alpha/processor.h # 2004/12/01 14:53:59-06:00 matthew@wil.cx +0 -6 # Move MCA_bus to linux/mca.h # # drivers/serial/8250.c # 2004/12/01 14:53:57-06:00 matthew@wil.cx +1 -2 # Move MCA_bus to linux/mca.h # # arch/i386/kernel/time.c # 2004/12/01 14:53:46-06:00 matthew@wil.cx +2 -3 # Move MCA_bus to linux/mca.h # # arch/i386/kernel/setup.c # 2004/12/01 14:53:46-06:00 matthew@wil.cx +11 -2 # Move MCA_bus to linux/mca.h # # arch/i386/kernel/mca.c # 2004/12/01 14:53:40-06:00 matthew@wil.cx +3 -0 # Move MCA_bus to linux/mca.h # # arch/i386/kernel/i386_ksyms.c # 2004/12/01 14:53:40-06:00 matthew@wil.cx +0 -1 # Move MCA_bus to linux/mca.h # # ChangeSet # 2004/12/06 15:00:40-05:00 len.brown@intel.com # build fix # # include/acpi/acpixf.h # 2004/12/06 15:00:29-05:00 len.brown@intel.com +1 -1 # build fix # # ChangeSet # 2004/12/06 11:38:01-06:00 jejb@mulgrave.(none) # Rename SCSI ChangeLog to reflect its venarability # # The last time it was modified was 1997, so add the # date range of applicability to its name. # # Signed-off-by: James Bottomley # # Documentation/scsi/ChangeLog.1992-1997 # 2004/12/06 11:36:04-06:00 jejb@mulgrave.(none) +0 -0 # Rename: Documentation/scsi/ChangeLog -> Documentation/scsi/ChangeLog.1992-1997 # # ChangeSet # 2004/12/06 01:43:31-05:00 len.brown@intel.com # Merge intel.com:/home/lenb/src/26-stable-dev # into intel.com:/home/lenb/src/26-latest-dev # # drivers/acpi/ec.c # 2004/12/06 01:43:27-05:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/12/06 01:40:07-05:00 len.brown@intel.com # [ACPI] 32-bit EC access # # http://bugzilla.kernel.org/show_bug.cgi?id=1744 # # Signed-off-by: Luming Yu # Signed-off-by: Len Brown # # drivers/acpi/ec.c # 2004/12/01 08:46:15-05:00 len.brown@intel.com +24 -0 # 32-bit EC access # # ChangeSet # 2004/12/06 00:09:58-05:00 len.brown@intel.com # Merge intel.com:/home/lenb/src/26-stable-dev # into intel.com:/home/lenb/src/26-latest-dev # # drivers/acpi/events/evxfevnt.c # 2004/12/06 00:09:54-05:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/12/06 00:08:27-05:00 len.brown@intel.com # build fix # # drivers/acpi/events/evxfevnt.c # 2004/12/06 00:08:18-05:00 len.brown@intel.com +1 -2 # build fix # # ChangeSet # 2004/12/06 00:03:42-05:00 len.brown@intel.com # Merge intel.com:/home/lenb/src/26-stable-dev # into intel.com:/home/lenb/src/26-latest-dev # # drivers/acpi/thermal.c # 2004/12/06 00:03:38-05:00 len.brown@intel.com +0 -0 # Auto merged # # drivers/acpi/sleep/proc.c # 2004/12/06 00:03:38-05:00 len.brown@intel.com +0 -0 # Auto merged # # drivers/acpi/pci_link.c # 2004/12/06 00:03:38-05:00 len.brown@intel.com +0 -0 # Auto merged # # drivers/acpi/pci_irq.c # 2004/12/06 00:03:38-05:00 len.brown@intel.com +0 -0 # Auto merged # # drivers/acpi/ec.c # 2004/12/06 00:03:38-05:00 len.brown@intel.com +0 -0 # Auto merged # # drivers/acpi/bus.c # 2004/12/06 00:03:38-05:00 len.brown@intel.com +0 -0 # Auto merged # # Documentation/kernel-parameters.txt # 2004/12/06 00:03:38-05:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/12/05 23:40:35-05:00 len.brown@intel.com # [ACPI] fixes from stack consumption audit # # http://bugzilla.kernel.org/show_bug.cgi?id=2901 # # Signed-off-by: Luming Yu # Signed-off-by: Len Brown # # drivers/acpi/video.c # 2004/12/01 06:31:48-05:00 len.brown@intel.com +7 -6 # stack consumption audit # # drivers/acpi/thermal.c # 2004/12/01 06:49:30-05:00 len.brown@intel.com +22 -5 # stack consumption audit # # drivers/acpi/pci_link.c # 2004/12/01 06:42:40-05:00 len.brown@intel.com +36 -26 # stack consumption audit # # drivers/acpi/pci_irq.c # 2004/12/01 06:31:47-05:00 len.brown@intel.com +12 -2 # stack consumption audit # # drivers/acpi/pci_bind.c # 2004/12/01 06:31:47-05:00 len.brown@intel.com +30 -7 # stack consumption audit # # ChangeSet # 2004/12/05 23:38:12-05:00 len.brown@intel.com # [ACPI] handle GPE sharing between button and lid # # http://bugzilla.kernel.org/show_bug.cgi?id=3518 # # Signed-off-by: David Shaohua Li # Signed-off-by: Len Brown # # drivers/acpi/sleep/proc.c # 2004/12/05 23:38:04-05:00 len.brown@intel.com +17 -0 # sharing GPE w/ button and LID # # ChangeSet # 2004/12/05 23:23:53-05:00 len.brown@intel.com # [ACPI] add "acpi_fake_ecdt" workaround for Gateway: # ex_access_region Region EmbeddedControl(3) has no handler # # http://bugzilla.kernel.org/show_bug.cgi?id=1690 # # Signed-off-by: David Shaohua Li # Signed-off-by: Len Brown # # drivers/acpi/ec.c # 2004/12/05 23:23:45-05:00 len.brown@intel.com +107 -4 # "acpi_fake_ecdt" # # Documentation/kernel-parameters.txt # 2004/12/05 23:23:45-05:00 len.brown@intel.com +2 -0 # "acpi_fake_ecdt" # # ChangeSet # 2004/12/05 23:10:31-05:00 len.brown@intel.com # [ACPI] fix "Error getting context for object" warning # http://bugzilla.kernel.org/show_bug.cgi?id=3805 # # Signed-off-by: David Shaohua Li # Signed-off-by: Len Brown # # drivers/pnp/pnpacpi/core.c # 2004/11/25 20:28:37-05:00 len.brown@intel.com +3 -3 # fix "Error getting context for object" warning # # drivers/acpi/bus.c # 2004/11/25 20:09:42-05:00 len.brown@intel.com +1 -1 # fix "Error getting context for object" warning # # ChangeSet # 2004/12/05 22:52:35-05:00 len.brown@intel.com # [ACPI] S3 resume using RTC # http://bugzilla.kernel.org/show_bug.cgi?id=1320 # # By: Patrick Mochel, Karol Kozimor, Shaohua Li # Signed-off-by: Len Brown # # drivers/acpi/sleep/proc.c # 2004/11/22 22:02:27-05:00 len.brown@intel.com +36 -25 # wake on RTC # # ChangeSet # 2004/12/03 22:40:32-05:00 len.brown@intel.com # [ACPI] fix VIA IRQ issue by enabling VIA quirk # http://bugzilla.kernel.org/show_bug.cgi?id=3319 # # Signed-off-by: David Shaohua Li # Signed-off-by: Len Brown # # drivers/pci/quirks.c # 2004/12/02 20:01:29-05:00 len.brown@intel.com +1 -0 # yet another example of VIA quirk # # ChangeSet # 2004/12/02 16:45:38-06:00 shaggy@austin.ibm.com # JFS: speed up nointegrity mount # # No need to flush metadata to advance the journal's sync-point if # we're not really writing to the journal # # Signed-off-by: Dave Kleikamp # # fs/jfs/jfs_logmgr.c # 2004/12/02 16:45:17-06:00 shaggy@austin.ibm.com +4 -0 # don't need to flush metadata to disk for nointegrity # # ChangeSet # 2004/12/02 17:12:47-05:00 rl@hellgate.ch # [PATCH] via-rhine: WOL band-aid # # After I disabled legacy WOL (i.e. controlled by EEPROM rather than # driver) in 2.6.9, several people reported regressions. Legacy WOL had # worked for them, but now it didn't anymore. The Right Way (TM) to fix # this will get the driver to set up working WOL for all hardware, but a # simpler solution will have to do for the time being: If a user requests # magic packet WOL, the driver re-enables legacy WOL. Yeah, I know it's # cheating. # # This version applies against -mm. I suggest to put it there for testing # and into 2.6.11 if feedback is good. # # Thanks to Pavel Ruzicka for testing. # # Roger # # Signed-off-by: Roger Luethi # Signed-off-by: Jeff Garzik # # drivers/net/via-rhine.c # 2004/11/30 17:32:01-05:00 rl@hellgate.ch +13 -5 # via-rhine: WOL band-aid # # ChangeSet # 2004/12/02 16:54:31-05:00 jgarzik@pobox.com # Merge pobox.com:/garz/repo/linux-2.6 # into pobox.com:/garz/repo/netdev-2.6/via-rhine # # drivers/net/via-rhine.c # 2004/12/02 16:54:27-05:00 jgarzik@pobox.com +0 -0 # Auto merged # # ChangeSet # 2004/12/01 21:50:03-08:00 davem@nuts.davemloft.net # Merge nuts.davemloft.net:/disk1/BK/net-2.6.11-work # into nuts.davemloft.net:/disk1/BK/net-2.6.11 # # net/xfrm/xfrm_policy.c # 2004/12/01 21:49:52-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/core/skbuff.c # 2004/12/01 21:49:52-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # arch/sparc64/defconfig # 2004/12/01 21:49:52-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # arch/mips/configs/rm200_defconfig # 2004/12/01 21:49:51-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # arch/m68k/configs/sun3x_defconfig # 2004/12/01 21:49:51-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # arch/m68k/configs/sun3_defconfig # 2004/12/01 21:49:51-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # arch/m68k/configs/q40_defconfig # 2004/12/01 21:49:51-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # arch/m68k/configs/mvme16x_defconfig # 2004/12/01 21:49:51-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # arch/m68k/configs/mvme147_defconfig # 2004/12/01 21:49:51-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # arch/m68k/configs/mac_defconfig # 2004/12/01 21:49:51-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # arch/m68k/configs/hp300_defconfig # 2004/12/01 21:49:51-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # arch/m68k/configs/bvme6000_defconfig # 2004/12/01 21:49:51-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # arch/m68k/configs/atari_defconfig # 2004/12/01 21:49:51-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # arch/m68k/configs/apollo_defconfig # 2004/12/01 21:49:51-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # arch/m68k/configs/amiga_defconfig # 2004/12/01 21:49:51-08:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # ChangeSet # 2004/12/01 23:50:22-05:00 len.brown@intel.com # Merge intel.com:/home/lenb/bk/26-latest-ref # into intel.com:/home/lenb/src/26-latest-dev # # arch/ia64/kernel/process.c # 2004/12/01 23:50:18-05:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/12/01 19:21:17-05:00 len.brown@intel.com # Merge intel.com:/home/lenb/bk/26-latest-ref # into intel.com:/home/lenb/src/26-latest-dev # # arch/ia64/kernel/process.c # 2004/12/01 19:21:13-05:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/12/01 16:17:57-06:00 shaggy@austin.ibm.com # JFS: add security and trusted xattrs # # Signed-off-by: Dave Kleikamp # # fs/jfs/xattr.c # 2004/12/01 16:17:46-06:00 shaggy@austin.ibm.com +55 -4 # Add security and trusted xattrs # # fs/Kconfig # 2004/12/01 16:17:46-06:00 shaggy@austin.ibm.com +12 -0 # Add jfs security labels (xattrs) # # ChangeSet # 2004/11/30 22:04:39-08:00 tgraf@suug.ch # [RTNETLINK]: Link attribute modification by interface name. # # This patch allows modification of link attributes by the interface name, # avoids the requirement of translating a name to an ifindex first, and # provides better atomicity to userspace. It works by setting the ifindex # to a negative number and provide the interface name via the IFLA_IFNAME # TLV and let the kernel lookup the device by name instead of ifindex. Changing # the interface name will not work using this method because IFLA_IFNAME also # transports the new interface name. The patch also fixes a possible source for # bugs if IFNAMSIZ is ever changed to a number not aligned to RTA_ALIGNTO. # # Signed-off-by: Thomas Graf # Signed-off-by: David S. Miller # # net/core/rtnetlink.c # 2004/11/30 22:04:20-08:00 tgraf@suug.ch +18 -3 # [RTNETLINK]: Link attribute modification by interface name. # # This patch allows modification of link attributes by the interface name, # avoids the requirement of translating a name to an ifindex first, and # provides better atomicity to userspace. It works by setting the ifindex # to a negative number and provide the interface name via the IFLA_IFNAME # TLV and let the kernel lookup the device by name instead of ifindex. Changing # the interface name will not work using this method because IFLA_IFNAME also # transports the new interface name. The patch also fixes a possible source for # bugs if IFNAMSIZ is ever changed to a number not aligned to RTA_ALIGNTO. # # Signed-off-by: Thomas Graf # Signed-off-by: David S. Miller # # ChangeSet # 2004/11/30 22:01:06-08:00 michal@logix.cz # [CRYPTO]: Standalone VIA PadLock driver. # # Signed-off-by: David S. Miller # # include/linux/crypto.h # 2004/11/30 22:00:21-08:00 michal@logix.cz +3 -0 # [CRYPTO]: Standalone VIA PadLock driver. # # drivers/Makefile # 2004/11/30 22:00:21-08:00 michal@logix.cz +1 -0 # [CRYPTO]: Standalone VIA PadLock driver. # # crypto/Kconfig # 2004/11/30 22:00:21-08:00 michal@logix.cz +1 -0 # [CRYPTO]: Standalone VIA PadLock driver. # # drivers/crypto/padlock.h # 2004/11/30 22:00:15-08:00 michal@logix.cz +36 -0 # [CRYPTO]: Standalone VIA PadLock driver. # # drivers/crypto/padlock-generic.c # 2004/11/30 22:00:15-08:00 michal@logix.cz +63 -0 # [CRYPTO]: Standalone VIA PadLock driver. # # drivers/crypto/padlock-aes.c # 2004/11/30 22:00:15-08:00 michal@logix.cz +470 -0 # [CRYPTO]: Standalone VIA PadLock driver. # # drivers/crypto/Makefile # 2004/11/30 22:00:15-08:00 michal@logix.cz +7 -0 # [CRYPTO]: Standalone VIA PadLock driver. # # drivers/crypto/padlock.h # 2004/11/30 22:00:15-08:00 michal@logix.cz +0 -0 # BitKeeper file /disk1/BK/net-2.6.11/drivers/crypto/padlock.h # # drivers/crypto/padlock-generic.c # 2004/11/30 22:00:15-08:00 michal@logix.cz +0 -0 # BitKeeper file /disk1/BK/net-2.6.11/drivers/crypto/padlock-generic.c # # drivers/crypto/padlock-aes.c # 2004/11/30 22:00:15-08:00 michal@logix.cz +0 -0 # BitKeeper file /disk1/BK/net-2.6.11/drivers/crypto/padlock-aes.c # # drivers/crypto/Makefile # 2004/11/30 22:00:15-08:00 michal@logix.cz +0 -0 # BitKeeper file /disk1/BK/net-2.6.11/drivers/crypto/Makefile # # drivers/crypto/Kconfig # 2004/11/30 22:00:13-08:00 michal@logix.cz +23 -0 # [CRYPTO]: Standalone VIA PadLock driver. # # drivers/crypto/Kconfig # 2004/11/30 22:00:13-08:00 michal@logix.cz +0 -0 # BitKeeper file /disk1/BK/net-2.6.11/drivers/crypto/Kconfig # # ChangeSet # 2004/11/30 21:55:37-08:00 bunk@stusta.de # [CRYPTO]: Make some code static # # This patch below makes some needlessly global code # static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # crypto/tcrypt.h # 2004/11/30 21:55:18-08:00 bunk@stusta.de +51 -51 # [CRYPTO]: Make some code static # # This patch below makes some needlessly global code # static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # crypto/tcrypt.c # 2004/11/30 21:55:18-08:00 bunk@stusta.de +1 -1 # [CRYPTO]: Make some code static # # This patch below makes some needlessly global code # static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # crypto/sha512.c # 2004/11/30 21:55:18-08:00 bunk@stusta.de +1 -1 # [CRYPTO]: Make some code static # # This patch below makes some needlessly global code # static. # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # ChangeSet # 2004/11/30 21:51:06-08:00 robert.olsson@data.slu.se # [IPV4]: FIB cleanup, fib_detect_death() # # Remove dependancy upon fib_hash specific # fn_hash_select_dflt and move it over to # fib_semantics.c # # Signed-off-by: David S. Miller # # net/ipv4/fib_semantics.c # 2004/11/30 21:50:04-08:00 robert.olsson@data.slu.se +23 -0 # [IPV4]: FIB cleanup, fib_detect_death() # # net/ipv4/fib_lookup.h # 2004/11/30 21:50:04-08:00 robert.olsson@data.slu.se +3 -0 # [IPV4]: FIB cleanup, fib_detect_death() # # net/ipv4/fib_hash.c # 2004/11/30 21:50:04-08:00 robert.olsson@data.slu.se +2 -25 # [IPV4]: FIB cleanup, fib_detect_death() # # ChangeSet # 2004/11/30 21:45:25-08:00 robert.olsson@data.slu.se # [IPV4]: FIB cleanup, fib_find_alias() # # Abstract out fib_node arg usage in fib_find_alias(), # move to fib_semantics.c # # Signed-off-by: David S. Miller # # net/ipv4/fib_semantics.c # 2004/11/30 21:44:45-08:00 robert.olsson@data.slu.se +18 -0 # [IPV4]: FIB cleanup, fib_find_alias() # # net/ipv4/fib_lookup.h # 2004/11/30 21:44:45-08:00 robert.olsson@data.slu.se +2 -0 # [IPV4]: FIB cleanup, fib_find_alias() # # net/ipv4/fib_hash.c # 2004/11/30 21:44:45-08:00 robert.olsson@data.slu.se +10 -22 # [IPV4]: FIB cleanup, fib_find_alias() # # ChangeSet # 2004/11/30 21:37:16-08:00 davem@nuts.davemloft.net # [IPV4]: FIB cleanup, rtmsg_fib() # # Based largely upon a patch by Robert Olsson. # # Abstract out rtmsg_fib() so that it does not depend # upon fib_hash internal datastructures, move it to # fib_semantics.c # # Signed-off-by: David S. Miller # # net/ipv4/fib_semantics.c # 2004/11/30 21:36:06-08:00 davem@nuts.davemloft.net +27 -0 # [IPV4]: FIB cleanup, rtmsg_fib() # # net/ipv4/fib_lookup.h # 2004/11/30 21:36:06-08:00 davem@nuts.davemloft.net +3 -0 # [IPV4]: FIB cleanup, rtmsg_fib() # # net/ipv4/fib_hash.c # 2004/11/30 21:36:06-08:00 davem@nuts.davemloft.net +2 -34 # [IPV4]: FIB cleanup, rtmsg_fib() # # ChangeSet # 2004/11/30 17:38:34-05:00 len.brown@intel.com # merge # # drivers/acpi/scan.c # 2004/11/30 17:38:27-05:00 len.brown@intel.com +0 -2 # merge # # BitKeeper/deleted/.del-acpi_ksyms.c~3e52a41ca5aed029 # 2004/11/30 17:15:57-05:00 len.brown@intel.com +0 -0 # Auto merged # # drivers/acpi/pci_irq.c # 2004/11/30 17:15:57-05:00 len.brown@intel.com +0 -0 # Auto merged # # drivers/acpi/pci_bind.c # 2004/11/30 17:15:57-05:00 len.brown@intel.com +0 -0 # Auto merged # # drivers/acpi/bus.c # 2004/11/30 17:15:57-05:00 len.brown@intel.com +0 -0 # Auto merged # # drivers/acpi/Makefile # 2004/11/30 17:15:57-05:00 len.brown@intel.com +0 -0 # Auto merged # # arch/i386/kernel/acpi/boot.c # 2004/11/30 17:15:57-05:00 len.brown@intel.com +0 -0 # Auto merged # # BitKeeper/deleted/.del-acpi_ksyms.c~3e52a41ca5aed029 # 2004/11/30 17:15:57-05:00 len.brown@intel.com +0 -0 # Merge rename: drivers/acpi/acpi_ksyms.c -> BitKeeper/deleted/.del-acpi_ksyms.c~3e52a41ca5aed029 # # ChangeSet # 2004/11/30 00:15:24+00:00 dwmw2@shinybook.infradead.org # Merge shinybook.infradead.org:/home/dwmw2/bk/linus-2.6 # into shinybook.infradead.org:/home/dwmw2/bk/mtd-2.6 # # MAINTAINERS # 2004/11/30 00:15:16+00:00 dwmw2@shinybook.infradead.org +0 -0 # Auto merged # # ChangeSet # 2004/11/29 22:58:33+00:00 dedekind@infradead.org # JFFS2: jffs2_get_inode_nodes(): Remove gratuitous memset on new nodes. # # We're about to set every field in the node structure. No need to spend # time filling it with zeroes. This is a fairly hot path. # # Signed-off-by: Artem Bityuckiy # Signed-off-by: David Woodhouse # # fs/jffs2/nodelist.c # 2004/11/29 22:58:12+00:00 dedekind@infradead.org +2 -2 # Remove unneeded memset # # ChangeSet # 2004/11/29 22:55:00+00:00 dedekind@infradead.org # JFFS2: Include vmalloc.h to fix compile warning. # # The previous fixes to use vmalloc for the eraseblock array missed it. # # Signed-off-by: Artem Bityuckiy # Signed-off-by: David Woodhouse # # fs/jffs2/fs.c # 2004/11/29 22:54:38+00:00 dedekind@infradead.org +2 -1 # Include vmalloc.h header to prevent warning. # # ChangeSet # 2004/11/29 22:43:46+00:00 bunk@stusta.de # MTD: Use select in Kconfig where appropriate. # # Signed-off-by: Adrian Bunk # Signed-off-by: David Woodhouse # # drivers/mtd/nand/Kconfig # 2004/11/29 22:43:24+00:00 bunk@stusta.de +2 -3 # The patch below switches options to use select where appropriate. # Signed-off-by: Adrian Bunk # # drivers/mtd/devices/Kconfig # 2004/11/29 22:43:24+00:00 bunk@stusta.de +8 -9 # The patch below switches options to use select where appropriate. # Signed-off-by: Adrian Bunk # # drivers/mtd/chips/Kconfig # 2004/11/29 22:43:24+00:00 bunk@stusta.de +6 -5 # The patch below switches options to use select where appropriate. # Signed-off-by: Adrian Bunk # # ChangeSet # 2004/11/29 22:34:26+00:00 dwmw2@shinybook.infradead.org # Merge linux-mtd@bkbits.net:mtd-2.6 # into shinybook.infradead.org:/home/dwmw2/bk/mtd-2.6 # # MAINTAINERS # 2004/11/29 22:34:18+00:00 dwmw2@shinybook.infradead.org +0 -0 # Auto merged # # ChangeSet # 2004/11/28 19:18:16+00:00 dwmw2@dwmw2.baythorne.internal # Merge dwmw2.baythorne.internal:/inst/bk/linus-2.6 # into dwmw2.baythorne.internal:/inst/bk/mtd-2.6 # # drivers/mtd/maps/ts5500_flash.c # 2004/11/28 19:18:10+00:00 dwmw2@dwmw2.baythorne.internal +0 -4 # Auto merged # # drivers/mtd/maps/scx200_docflash.c # 2004/11/28 19:18:10+00:00 dwmw2@dwmw2.baythorne.internal +0 -2 # Auto merged # # drivers/mtd/maps/scb2_flash.c # 2004/11/28 19:18:10+00:00 dwmw2@dwmw2.baythorne.internal +0 -2 # Auto merged # # drivers/mtd/maps/sc520cdp.c # 2004/11/28 19:18:10+00:00 dwmw2@dwmw2.baythorne.internal +0 -6 # Auto merged # # drivers/mtd/maps/sbc_gxx.c # 2004/11/28 19:18:10+00:00 dwmw2@dwmw2.baythorne.internal +0 -2 # Auto merged # # drivers/mtd/maps/physmap.c # 2004/11/28 19:18:10+00:00 dwmw2@dwmw2.baythorne.internal +0 -3 # Auto merged # # drivers/mtd/maps/pci.c # 2004/11/28 19:18:10+00:00 dwmw2@dwmw2.baythorne.internal +0 -3 # Auto merged # # drivers/mtd/maps/nettel.c # 2004/11/28 19:18:10+00:00 dwmw2@dwmw2.baythorne.internal +0 -2 # Auto merged # # drivers/mtd/maps/netsc520.c # 2004/11/28 19:18:10+00:00 dwmw2@dwmw2.baythorne.internal +0 -3 # Auto merged # # drivers/mtd/maps/l440gx.c # 2004/11/28 19:18:10+00:00 dwmw2@dwmw2.baythorne.internal +0 -3 # Auto merged # # drivers/mtd/maps/ichxrom.c # 2004/11/28 19:18:10+00:00 dwmw2@dwmw2.baythorne.internal +0 -3 # Auto merged # # drivers/mtd/maps/elan-104nc.c # 2004/11/28 19:18:10+00:00 dwmw2@dwmw2.baythorne.internal +0 -1 # Auto merged # # drivers/mtd/maps/ebony.c # 2004/11/28 19:18:10+00:00 dwmw2@dwmw2.baythorne.internal +0 -6 # Auto merged # # drivers/mtd/maps/dilnetpc.c # 2004/11/28 19:18:10+00:00 dwmw2@dwmw2.baythorne.internal +0 -3 # Auto merged # # drivers/mtd/maps/amd76xrom.c # 2004/11/28 19:18:10+00:00 dwmw2@dwmw2.baythorne.internal +0 -3 # Auto merged # # MAINTAINERS # 2004/11/28 19:18:10+00:00 dwmw2@dwmw2.baythorne.internal +0 -0 # Auto merged # # ChangeSet # 2004/11/28 19:16:07+00:00 dwmw2@dwmw2.baythorne.internal # NULL noise removal, missing __iomem in a couple of declarations, # removal of bogus cast to void * in iounmap() calls. # # Signed-off-by: Al Viro # Signed-off-by: David Woodhouse # # drivers/mtd/maps/ts5500_flash.c # 2004/11/28 09:52:32+00:00 dwmw2@dwmw2.baythorne.internal +5 -5 # NULL noise removal, missing __iomem in a couple of declarations, # removal of bogus cast to void * in iounmap() calls. # Signed-off-by: Al Viro # # drivers/mtd/maps/scx200_docflash.c # 2004/11/28 09:52:32+00:00 dwmw2@dwmw2.baythorne.internal +3 -3 # NULL noise removal, missing __iomem in a couple of declarations, # removal of bogus cast to void * in iounmap() calls. # Signed-off-by: Al Viro # # drivers/mtd/maps/scb2_flash.c # 2004/11/28 09:52:32+00:00 dwmw2@dwmw2.baythorne.internal +3 -3 # NULL noise removal, missing __iomem in a couple of declarations, # removal of bogus cast to void * in iounmap() calls. # Signed-off-by: Al Viro # # drivers/mtd/maps/sc520cdp.c # 2004/11/28 09:52:32+00:00 dwmw2@dwmw2.baythorne.internal +7 -7 # NULL noise removal, missing __iomem in a couple of declarations, # removal of bogus cast to void * in iounmap() calls. # Signed-off-by: Al Viro # # drivers/mtd/maps/sbc_gxx.c # 2004/11/28 09:52:32+00:00 dwmw2@dwmw2.baythorne.internal +3 -3 # NULL noise removal, missing __iomem in a couple of declarations, # removal of bogus cast to void * in iounmap() calls. # Signed-off-by: Al Viro # # drivers/mtd/maps/physmap.c # 2004/11/28 09:52:32+00:00 dwmw2@dwmw2.baythorne.internal +4 -4 # NULL noise removal, missing __iomem in a couple of declarations, # removal of bogus cast to void * in iounmap() calls. # Signed-off-by: Al Viro # # drivers/mtd/maps/pci.c # 2004/11/28 09:52:32+00:00 dwmw2@dwmw2.baythorne.internal +4 -4 # NULL noise removal, missing __iomem in a couple of declarations, # removal of bogus cast to void * in iounmap() calls. # Signed-off-by: Al Viro # # drivers/mtd/maps/nettel.c # 2004/11/28 09:52:32+00:00 dwmw2@dwmw2.baythorne.internal +3 -3 # NULL noise removal, missing __iomem in a couple of declarations, # removal of bogus cast to void * in iounmap() calls. # Signed-off-by: Al Viro # # drivers/mtd/maps/netsc520.c # 2004/11/28 09:52:32+00:00 dwmw2@dwmw2.baythorne.internal +4 -4 # NULL noise removal, missing __iomem in a couple of declarations, # removal of bogus cast to void * in iounmap() calls. # Signed-off-by: Al Viro # # drivers/mtd/maps/l440gx.c # 2004/11/28 09:52:32+00:00 dwmw2@dwmw2.baythorne.internal +4 -4 # NULL noise removal, missing __iomem in a couple of declarations, # removal of bogus cast to void * in iounmap() calls. # Signed-off-by: Al Viro # # drivers/mtd/maps/ichxrom.c # 2004/11/28 09:52:32+00:00 dwmw2@dwmw2.baythorne.internal +4 -4 # NULL noise removal, missing __iomem in a couple of declarations, # removal of bogus cast to void * in iounmap() calls. # Signed-off-by: Al Viro # # drivers/mtd/maps/elan-104nc.c # 2004/11/28 09:52:32+00:00 dwmw2@dwmw2.baythorne.internal +2 -2 # NULL noise removal, missing __iomem in a couple of declarations, # removal of bogus cast to void * in iounmap() calls. # Signed-off-by: Al Viro # # drivers/mtd/maps/ebony.c # 2004/11/28 09:52:32+00:00 dwmw2@dwmw2.baythorne.internal +7 -8 # NULL noise removal, missing __iomem in a couple of declarations, # removal of bogus cast to void * in iounmap() calls. # Signed-off-by: Al Viro # # drivers/mtd/maps/dilnetpc.c # 2004/11/28 09:52:32+00:00 dwmw2@dwmw2.baythorne.internal +4 -4 # NULL noise removal, missing __iomem in a couple of declarations, # removal of bogus cast to void * in iounmap() calls. # Signed-off-by: Al Viro # # drivers/mtd/maps/amd76xrom.c # 2004/11/28 09:52:32+00:00 dwmw2@dwmw2.baythorne.internal +4 -4 # NULL noise removal, missing __iomem in a couple of declarations, # removal of bogus cast to void * in iounmap() calls. # Signed-off-by: Al Viro # # ChangeSet # 2004/11/28 00:40:38+00:00 dwmw2@shinybook.infradead.org # Merge shinybook.infradead.org:/home/dwmw2/bk/linus-2.6 # into shinybook.infradead.org:/home/dwmw2/bk/mtd-2.6 # # MAINTAINERS # 2004/11/28 00:40:30+00:00 dwmw2@shinybook.infradead.org +0 -0 # Auto merged # # ChangeSet # 2004/11/28 00:33:43+00:00 dwmw2@shinybook.infradead.org # rslib: Spelling fixes. # # Some of the fixes from Joe Perches got missed out # of the last update. # # Signed-off-by: Thomas Gleixner # Signed-off-by: David Woodhouse # # lib/reed_solomon/reed_solomon.c # 2004/11/28 00:33:19+00:00 dwmw2@shinybook.infradead.org +8 -8 # revision 1.5 # date: 2004/10/22 15:41:47; author: gleixner; state: Exp; lines: +8 -8 # Joe Perches provided the spelling and # grammar fixes for Documentation. # I'm happy if somebody takes care of my language related # nescience. :) # # ChangeSet # 2004/11/28 00:19:24+00:00 dwmw2@shinybook.infradead.org # JFFS2: Allow NAND driver to disable virtual eraseblocks. # # In order to keep the RAM usage down with large devices and smaller # erase block sizes, we were using blocks in JFFS2 larger than the # physical erase size. This means that bad blocks lose a lot more space # though; allow it to be disabled. # # Signed-off-by: Thomas Gleixner # Signed-off-by: David Woodhouse # # include/mtd/mtd-abi.h # 2004/11/28 00:19:02+00:00 dwmw2@shinybook.infradead.org +2 -1 # revision 1.7 # date: 2004/11/23 15:37:32; author: gleixner; state: Exp; lines: +2 -1 # Disable virtual eraseblocks on request (MTD_NO_VIRTBLOCKS) is set. Be careful this can eat up a lot of memory # # fs/jffs2/super.c # 2004/11/28 00:19:01+00:00 dwmw2@shinybook.infradead.org +5 -2 # revision 1.104 # date: 2004/11/23 15:37:31; author: gleixner; state: Exp; lines: +5 -2 # Disable virtual eraseblocks on request (MTD_NO_VIRTBLOCKS) is set. Be careful this can eat up a lot of memory # # fs/jffs2/fs.c # 2004/11/28 00:19:01+00:00 dwmw2@shinybook.infradead.org +12 -7 # revision 1.50 # date: 2004/11/23 15:37:31; author: gleixner; state: Exp; lines: +12 -7 # Disable virtual eraseblocks on request (MTD_NO_VIRTBLOCKS) is set. Be careful this can eat up a lot of memory # # fs/jffs2/build.c # 2004/11/28 00:19:01+00:00 dwmw2@shinybook.infradead.org +7 -2 # revision 1.68 # date: 2004/11/27 13:38:10; author: gleixner; state: Exp; lines: +3 -1 # include headers to make it build # ---------------------------- # revision 1.67 # date: 2004/11/23 15:37:31; author: gleixner; state: Exp; lines: +5 -2 # Disable virtual eraseblocks on request (MTD_NO_VIRTBLOCKS) is set. Be careful this can eat up a lot of memory # # ChangeSet # 2004/11/28 00:15:04+00:00 dwmw2@shinybook.infradead.org # JFFS2: Split eraseblock refiling into separate function # # ...in preparation for further cleanups from Estelle Hammache which # will need to call it from elsewhere. # # Signed-off-by: David Woodhouse # # fs/jffs2/wbuf.c # 2004/11/28 00:14:42+00:00 dwmw2@shinybook.infradead.org +21 -16 # revision 1.82 # date: 2004/11/20 22:08:31; author: dwmw2; state: Exp; lines: +21 -16 # separate out block refiling # # ChangeSet # 2004/11/28 00:11:59+00:00 dwmw2@shinybook.infradead.org # JFFS2: Initialise bad_count for each eraseblock correctly. # # Patch from Estelle Hammache # Signed-off-by: David Woodhouse # # fs/jffs2/build.c # 2004/11/28 00:11:36+00:00 dwmw2@shinybook.infradead.org +2 -1 # revision 1.66 # date: 2004/11/20 19:18:07; author: dwmw2; state: Exp; lines: +2 -1 # Patch from Estelle Hammache: initialise bad_count. # # ChangeSet # 2004/11/28 00:07:08+00:00 dwmw2@shinybook.infradead.org # JFFS2: Various fixes for recent RAM use reduction. # # We recently started trying to merge the jffs2_raw_node_ref structures # for adjacent obsolete nodes. Fix a bunch of problems in that: # - Free inode cache structure for a dead inode which is now completely gone. # - Fix races vs. erase code which also walks the same lists. # - Fix BUG() when trying to merge with a node which still belongs to an inode. # # Signed-off-by: David Woodhouse # # fs/jffs2/nodemgmt.c # 2004/11/28 00:06:46+00:00 dwmw2@shinybook.infradead.org +60 -16 # revision 1.115 # date: 2004/11/22 11:07:21; author: dwmw2; state: Exp; lines: +5 -5 # Fix another bug in the merging of obsolete nodes # ---------------------------- # revision 1.114 # date: 2004/11/20 16:39:59; author: dwmw2; state: Exp; lines: +6 -2 # Add another reason why we can't currently merge obsolete node refs on # NAND. # ---------------------------- # revision 1.113 # date: 2004/11/20 16:25:19; author: dwmw2; state: Exp; lines: +7 -1 # Free inocache if it's all gone. # ---------------------------- # revision 1.112 # date: 2004/11/20 14:25:05; author: dwmw2; state: Exp; lines: +46 -12 # Fix race in jffs2_mark_node_obsolete(). There was nothing preventing the # block from being erased and 'ref' from being freed before we even got # around to marking it obsolete and then trying to merge nodes. # # fs/jffs2/build.c # 2004/11/28 00:06:46+00:00 dwmw2@shinybook.infradead.org +5 -2 # revision 1.65 # date: 2004/11/20 16:19:38; author: dwmw2; state: Exp; lines: +5 -2 # Fix freeing of refs belonging to unlinked inode # # ChangeSet # 2004/11/27 23:58:00+00:00 dwmw2@shinybook.infradead.org # JFFS2: Fix oops in read_inode. # # If the node with lowest version in a file was in the range # 0xfffff000 onwards, we oopsed because our rounding was bogus. # # Signed-off-by: David Woodhouse # # fs/jffs2/readinode.c # 2004/11/27 23:57:39+00:00 dwmw2@shinybook.infradead.org +2 -2 # revision 1.117 # date: 2004/11/20 18:06:54; author: dwmw2; state: Exp; lines: +2 -2 # Fix oops if we happen to have a node in the range 0xfffff000 onwards as the # lowest versioned node in the inode. # # ChangeSet # 2004/11/27 23:36:47+00:00 dwmw2@shinybook.infradead.org # MTD: NAND flash simulator # # We want to contribute the NAND flash simulator which we successfully use # when developing JFFS2. It is very useful tool which helps to develop # without real flash. # # It supports several options which allow to select which flash type to # emulate (just flash IDs which are in nand_ids.c file). See modinfo for # other options. # # Signed-off-by: Artem B. Bityuckiy # Signed-off-by: David Woodhouse # # drivers/mtd/nand/nandsim.c # 2004/11/27 23:36:22+00:00 dwmw2@shinybook.infradead.org +1619 -0 # # drivers/mtd/nand/nandsim.c # 2004/11/27 23:36:22+00:00 dwmw2@shinybook.infradead.org +0 -0 # BitKeeper file /home/dwmw2/bk/mtd-2.6/drivers/mtd/nand/nandsim.c # # drivers/mtd/nand/Makefile # 2004/11/27 23:36:22+00:00 dwmw2@shinybook.infradead.org +2 -1 # revision 1.15 # date: 2004/11/26 12:28:22; author: dedekind; state: Exp; lines: +2 -1 # Add the NAND simulator's records # # drivers/mtd/nand/Kconfig # 2004/11/27 23:36:22+00:00 dwmw2@shinybook.infradead.org +9 -1 # revision 1.24 # date: 2004/11/26 12:28:22; author: dedekind; state: Exp; lines: +9 -1 # Add the NAND simulator's records # # ChangeSet # 2004/11/27 23:18:34+00:00 dwmw2@shinybook.infradead.org # MTD: Support NOR and NAND flash on Sharp SL Series PDAs. # # Signed-off-by: Richard Purdie # Signed-off-by: David Woodhouse # # drivers/mtd/nand/sharpsl.c # 2004/11/27 23:18:12+00:00 dwmw2@shinybook.infradead.org +273 -0 # # drivers/mtd/nand/sharpsl.c # 2004/11/27 23:18:12+00:00 dwmw2@shinybook.infradead.org +0 -0 # BitKeeper file /home/dwmw2/bk/mtd-2.6/drivers/mtd/nand/sharpsl.c # # drivers/mtd/maps/sharpsl-flash.c # 2004/11/27 23:18:10+00:00 dwmw2@shinybook.infradead.org +101 -0 # # drivers/mtd/nand/Makefile # 2004/11/27 23:18:10+00:00 dwmw2@shinybook.infradead.org +2 -1 # revision 1.14 # date: 2004/11/24 19:33:56; author: rpurdie; state: Exp; lines: +2 -1 # Add the sharpsl nand driver. This supports the NAND chip on the Sharp SL Series # of PDAs. # # drivers/mtd/nand/Kconfig # 2004/11/27 23:18:10+00:00 dwmw2@shinybook.infradead.org +6 -1 # revision 1.23 # date: 2004/11/24 19:33:56; author: rpurdie; state: Exp; lines: +6 -1 # Add the sharpsl nand driver. This supports the NAND chip on the Sharp SL Series # of PDAs. # # drivers/mtd/maps/sharpsl-flash.c # 2004/11/27 23:18:10+00:00 dwmw2@shinybook.infradead.org +0 -0 # BitKeeper file /home/dwmw2/bk/mtd-2.6/drivers/mtd/maps/sharpsl-flash.c # # drivers/mtd/maps/Makefile # 2004/11/27 23:18:10+00:00 dwmw2@shinybook.infradead.org +2 -1 # revision 1.20 # date: 2004/11/24 19:42:51; author: rpurdie; state: Exp; lines: +2 -1 # Add mapping for the flash chip on Sharp SL Series PDAs. # # drivers/mtd/maps/Kconfig # 2004/11/27 23:18:10+00:00 dwmw2@shinybook.infradead.org +7 -1 # revision 1.38 # date: 2004/11/24 19:42:51; author: rpurdie; state: Exp; lines: +7 -1 # Add mapping for the flash chip on Sharp SL Series PDAs. # # ChangeSet # 2004/11/27 23:02:48+00:00 dwmw2@shinybook.infradead.org # MTD: Fix timing setup for NAND flash on Samsung S3C2410. # # Spotted by Shannon Holland. # # Signed-off-by: Ben Dooks # Signed-off-by: David Woodhouse # # drivers/mtd/nand/s3c2410.c # 2004/11/27 23:02:28+00:00 dwmw2@shinybook.infradead.org +2 -2 # revision 1.6 # date: 2004/11/24 12:25:48; author: bjd; state: Exp; lines: +2 -2 # correct timing setup to use plat->twrph1 instead of # plat->twrph0 for timing setup for the NAND controllers # twrph1 configuration # # Thanks to Shannon Holland for pointing this out # # ChangeSet # 2004/11/27 22:59:41+00:00 dwmw2@shinybook.infradead.org # MTD: Fix oops on erase in NFTL/INFTL (again). # # Only this time, set the field we were dereferencing _after_ we zero it not before. # # Signed-off-by: Kalev Lember # Signed-off-by: David Woodhouse # # drivers/mtd/nftlmount.c # 2004/11/27 22:59:16+00:00 dwmw2@shinybook.infradead.org +3 -4 # revision 1.40 # date: 2004/11/22 14:38:29; author: kalev; state: Exp; lines: +3 -4 # fix oops # # drivers/mtd/inftlmount.c # 2004/11/27 22:59:16+00:00 dwmw2@shinybook.infradead.org +3 -4 # revision 1.16 # date: 2004/11/22 13:50:53; author: kalev; state: Exp; lines: +3 -4 # fix oops # (the instr was zeroed _after_ setting instr->mtd) # # ChangeSet # 2004/11/27 22:53:43+00:00 dwmw2@shinybook.infradead.org # MTD: Make phram work again # # o Add simple usage example. # o Fix up unit handling (k, M. G). # o Use correct size limit for setup string. # o Remove pointless printk message. # o Fix mtdblock to not allocate a read-modify-write buffer for CAP_RAM # devices (and fail to do so, returning an error). # # Signed-off-by: Jörn Engel # Signed-off-by: David Woodhouse # # drivers/mtd/mtdblock.c # 2004/11/27 22:53:20+00:00 dwmw2@shinybook.infradead.org +2 -2 # revision 1.66 # date: 2004/11/25 13:52:52; author: joern; state: Exp; lines: +2 -2 # Fix up slram and phram. # # drivers/mtd/devices/phram.c # 2004/11/27 22:53:20+00:00 dwmw2@shinybook.infradead.org +10 -6 # revision 1.6 # date: 2004/11/25 16:51:09; author: joern; state: Exp; lines: +2 -2 # Brown Paperbag category. Patch should be self-explaining to anyone who # knows how to deal with multi-dimensional arrays in c (i.e. not me). # ---------------------------- # revision 1.5 # date: 2004/11/25 13:54:09; author: joern; state: Exp; lines: +6 -4 # Make dwmw2 happy and add an i to [kMG]. # ---------------------------- # revision 1.4 # date: 2004/11/25 13:52:53; author: joern; state: Exp; lines: +7 -5 # Fix up slram and phram. # # ChangeSet # 2004/11/27 22:47:33+00:00 dwmw2@shinybook.infradead.org # MTD: mtdpart_setup() is used from platform code. Remove 'static'. # # Signed-off-by: Jarkko Lavinen # Signed-off-by: David Woodhouse # # drivers/mtd/cmdlinepart.c # 2004/11/27 22:47:11+00:00 dwmw2@shinybook.infradead.org +4 -2 # revision 1.17 # date: 2004/11/26 11:18:47; author: lavinen; state: Exp; lines: +4 -2 # Changed mtdpart_setup() back to public, # # ChangeSet # 2004/11/27 22:42:45+00:00 dwmw2@shinybook.infradead.org # MTD: Fix RedBoot FIS table detection. # # The redboot partitioning code currently searches for a FIS table entry # named "RedBoot" (including the trailing \0) in one of the first three # entries to try and verify that the sector it is looking at really is a # FIS partition table. # # Firstly it fails when RedBoot is stored in some other Flash chip such as # a boot PROM, in this case there is no "RedBoot" entry in the partition # table. However there will always be a "FIS directory" entry in any valid # FIS directory. # # Secondly it can fail since the RedBoot entry is not always in the first # 3 slots -- this can happen for example on an x86 based platform where # the processor expects the boot device to be at the top of memory rather # than the bottom and so RedBoot is at the end of the flash device. # Equally when using "FIS directory" as the entry to search for it very # likely is not in the first three since the directory is typically at the # end of the flash. # # Signed-off-by: Ian Campbell # Signed-off-by: David Woodhouse # # drivers/mtd/redboot.c # 2004/11/27 22:42:22+00:00 dwmw2@shinybook.infradead.org +24 -8 # revision 1.17 # date: 2004/11/22 11:33:56; author: ijc; state: Exp; lines: +14 -3 # RedBoot has a compile time configuration option called # CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK. Add a similar option # to the redboot parsing code. # ---------------------------- # revision 1.16 # date: 2004/11/22 11:32:13; author: ijc; state: Exp; lines: +11 -6 # Search for a directory entry named "FIS directory" rather the "RedBoot" # since RedBoot can potentially be in another device but there should # always be a FIS directory present (or we wouldn't be looking for it...). # # Also search all blocks not just the first 3 since the directory is often at # the end of flash rather than the beginning. # # drivers/mtd/Kconfig # 2004/11/27 22:42:22+00:00 dwmw2@shinybook.infradead.org +20 -3 # revision 1.7 # date: 2004/11/22 11:33:56; author: ijc; state: Exp; lines: +20 -3 # RedBoot has a compile time configuration option called # CYGNUM_REDBOOT_FIS_DIRECTORY_BLOCK. Add a similar option # to the redboot parsing code. # # ChangeSet # 2004/11/27 13:35:38+01:00 kaber@coreworks.de # [NETFILTER]: Verify NAT manips have been applied before reversing them in icmp_reply_translation # # ICMP errors may be generated for packets that don't have # all NAT manips applied yet. Verify manips have been applied # before reversing them. # # Signed-off-by: Patrick McHardy # # net/ipv4/netfilter/ip_nat_core.c # 2004/11/27 13:35:30+01:00 kaber@coreworks.de +36 -0 # [NETFILTER]: Verify NAT manips have been applied before reversing them in icmp_reply_translation # # ICMP errors may be generated for packets that don't have # all NAT manips applied yet. Verify manips have been applied # before reversing them. # # Signed-off-by: Patrick McHardy # # net/ipv4/netfilter/ip_conntrack_standalone.c # 2004/11/27 13:35:30+01:00 kaber@coreworks.de +1 -0 # [NETFILTER]: Verify NAT manips have been applied before reversing them in icmp_reply_translation # # ICMP errors may be generated for packets that don't have # all NAT manips applied yet. Verify manips have been applied # before reversing them. # # Signed-off-by: Patrick McHardy # # ChangeSet # 2004/11/27 13:26:24+01:00 kaber@coreworks.de # [NETFILTER]: Apply PRE_ROUTING manips in LOCAL_OUT for locally generated icmp errors # # Locally generated ICMP errors never hit PRE_ROUTING. Fixes invalid # addressed ICMP errors for SNATed packets. # # Signed-off-by: Patrick McHardy # # net/ipv4/netfilter/ip_nat_core.c # 2004/11/27 13:26:17+01:00 kaber@coreworks.de +8 -0 # [NETFILTER]: Apply PRE_ROUTING manips in LOCAL_OUT for locally generated icmp errors # # Locally generated ICMP errors never hit PRE_ROUTING. Fixes invalid # addressed ICMP errors for SNATed packets. # # Signed-off-by: Patrick McHardy # # ChangeSet # 2004/11/27 13:15:30+01:00 kaber@coreworks.de # [NETFILTER]: Save a level of indentation in icmp_reply_translation # # Signed-off-by: Patrick McHardy # # net/ipv4/netfilter/ip_nat_core.c # 2004/11/27 13:15:22+01:00 kaber@coreworks.de +25 -29 # [NETFILTER]: Save a level of indentation in icmp_reply_translation # # Signed-off-by: Patrick McHardy # # ChangeSet # 2004/11/27 12:20:20+01:00 kaber@coreworks.de # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # net/ipv4/netfilter/ip_nat_standalone.c # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +4 -22 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # net/ipv4/netfilter/ip_nat_rule.c # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -11 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # net/ipv4/netfilter/ip_nat_core.c # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -8 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # net/ipv4/netfilter/Kconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -14 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # include/linux/netfilter_ipv4/ip_nat.h # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -5 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/sparc64/defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/ppc64/defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/ppc64/configs/pSeries_defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/ppc64/configs/iSeries_defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/ppc64/configs/g5_defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/ppc/defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/ppc/configs/pplus_defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/ppc/configs/pmac_defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/ppc/configs/pcore_defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/ppc/configs/menf1_defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/ppc/configs/k2_defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/ppc/configs/ibmchrp_defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/ppc/configs/common_defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/ppc/configs/apus_defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/ppc/configs/adir_defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/parisc/configs/n4000_defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/parisc/configs/c3000_defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/parisc/configs/a500_defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/mips/defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/mips/configs/rm200_defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/mips/configs/ip22_defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/m68k/configs/sun3x_defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/m68k/configs/sun3_defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/m68k/configs/q40_defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/m68k/configs/mvme16x_defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/m68k/configs/mvme147_defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/m68k/configs/mac_defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/m68k/configs/hp300_defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/m68k/configs/bvme6000_defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/m68k/configs/atari_defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/m68k/configs/apollo_defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/m68k/configs/amiga_defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/i386/defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/arm/configs/ixp4xx_defconfig # 2004/11/27 12:20:13+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/arm/configs/ebsa110_defconfig # 2004/11/27 12:20:12+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # arch/alpha/defconfig # 2004/11/27 12:20:12+01:00 kaber@coreworks.de +0 -1 # [NETFILTER]: Remove CONFIG_IP_NF_NAT_LOCAL config option # # Signed-off-by: Patrick McHardy # # ChangeSet # 2004/11/27 12:14:54+01:00 kaber@coreworks.de # [NETFILTER]: Release dst_entry in PRE_ROUTING after NAT # # Fixes NAT on loopback. # # Signed-off-by: Patrick McHardy # # net/ipv4/netfilter/ip_nat_standalone.c # 2004/11/27 12:14:47+01:00 kaber@coreworks.de +24 -1 # [NETFILTER]: Release dst_entry in PRE_ROUTING after NAT # # Fixes NAT on loopback. # # Signed-off-by: Patrick McHardy # # ChangeSet # 2004/11/26 11:50:43-06:00 bunk@stusta.de # [PATCH] remove bouncing email address of Deanna Bonds # # The patch below (applies against both 2.4 and 2.6) removes the bouncing # email address of Deanna Bonds (I didn't find a nmore recent address). # # Signed-off-by: Adrian Bunk # Signed-off-by: James Bottomley # # drivers/scsi/dpti.h # 2004/11/24 12:23:56-06:00 bunk@stusta.de +0 -1 # remove bouncing email address of Deanna Bonds # # drivers/scsi/dpt_i2o.c # 2004/11/24 12:24:37-06:00 bunk@stusta.de +0 -1 # remove bouncing email address of Deanna Bonds # # drivers/scsi/dpt/dpti_ioctl.h # 2004/11/24 12:24:27-06:00 bunk@stusta.de +0 -1 # remove bouncing email address of Deanna Bonds # # drivers/scsi/aacraid/README # 2004/11/24 12:24:16-06:00 bunk@stusta.de +1 -1 # remove bouncing email address of Deanna Bonds # # ChangeSet # 2004/11/26 11:47:06-06:00 bunk@stusta.de # [PATCH] SCSI aic7xxx_old.c: make a function static # # The patch below makes the needlessly global function aic7xxx_info # static. # # Signed-off-by: Adrian Bunk # Signed-off-by: James Bottomley # # drivers/scsi/aic7xxx_old/aic7xxx_proc.c # 2004/11/13 10:16:45-06:00 bunk@stusta.de +1 -1 # SCSI aic7xxx_old.c: make a function static # # drivers/scsi/aic7xxx_old.c # 2004/11/13 10:16:12-06:00 bunk@stusta.de +1 -1 # SCSI aic7xxx_old.c: make a function static # # ChangeSet # 2004/11/26 11:45:27-06:00 jejb@mulgrave.(none) # LSI Logic - SAS and FC PCI ID's # # From: Moore, Eric Dean # # Here are new PCI ID's for SAS and Fibre Channel # LSI Logic controllers. # # Signed-off-by: Eric Moore # Signed-off-by: James Bottomley # # include/linux/pci_ids.h # 2004/11/26 11:44:15-06:00 jejb@mulgrave.(none) +10 -0 # LSI Logic - SAS and FC PCI ID's # # ChangeSet # 2004/11/26 11:33:06-06:00 jejb@mulgrave.(none) # fixup dynamic scan aids EXPORT_SYMBOL mismerge # # OK, so I exported the wrong symbols ... # # Signed-off-by: James Bottomley # # drivers/scsi/scsi_scan.c # 2004/11/26 11:31:38-06:00 jejb@mulgrave.(none) +2 -1 # fixup dynamic scan aids EXPORT_SYMBOL mismerge # # ChangeSet # 2004/11/26 10:16:03-06:00 jejb@mulgrave.(none) # scsi: LLDD dynamic scan aids # # From: James.Smart@Emulex.Com # # With rejection fixes around the removal of scsi_syms.c # Signed-off-by: James Bottomley # # include/scsi/scsi_host.h # 2004/11/26 10:15:26-06:00 jejb@mulgrave.(none) +3 -0 # scsi: LLDD dynamic scan aids # # drivers/scsi/scsi_scan.c # 2004/11/26 10:15:26-06:00 jejb@mulgrave.(none) +13 -0 # scsi: LLDD dynamic scan aids # # ChangeSet # 2004/11/26 10:10:46-06:00 axboe@suse.de # [PATCH] kill locking around scsi_done() # # Lets show the mid layer as a good example and remove the host lock # around the scsi_done() call. # # Signed-off-by: Jens Axboe # Signed-off-by: James Bottomley # # ===== drivers/scsi/scsi.c 1.148 vs edited ===== # # drivers/scsi/scsi.c # 2004/11/20 16:25:38-06:00 axboe@suse.de +0 -2 # kill locking around scsi_done() # # ChangeSet # 2004/11/26 10:07:03-06:00 bunk@stusta.de # [PATCH] kill scsi_syms.c # # The patch below removes scsi_syms.c and moves the EXPORT_SYMBOL's to the # files where the actual functions are. # # Signed-off-by: Adrian Bunk # Signed-off-by: James Bottomley # # drivers/scsi/scsicam.c # 2004/11/20 14:31:54-06:00 bunk@stusta.de +3 -0 # kill scsi_syms.c # # drivers/scsi/scsi_sysfs.c # 2004/11/20 14:44:12-06:00 bunk@stusta.de +3 -0 # kill scsi_syms.c # # drivers/scsi/scsi_scan.c # 2004/11/20 14:43:37-06:00 bunk@stusta.de +5 -0 # kill scsi_syms.c # # drivers/scsi/scsi_lib.c # 2004/11/20 14:46:26-06:00 bunk@stusta.de +9 -1 # kill scsi_syms.c # # drivers/scsi/scsi_ioctl.c # 2004/11/20 14:36:32-06:00 bunk@stusta.de +3 -0 # kill scsi_syms.c # # drivers/scsi/scsi_error.c # 2004/11/20 14:46:48-06:00 bunk@stusta.de +6 -0 # kill scsi_syms.c # # drivers/scsi/scsi.c # 2004/11/20 14:46:12-06:00 bunk@stusta.de +11 -0 # kill scsi_syms.c # # drivers/scsi/hosts.c # 2004/11/20 14:30:51-06:00 bunk@stusta.de +8 -0 # kill scsi_syms.c # # drivers/scsi/constants.c # 2004/11/20 14:35:16-06:00 bunk@stusta.de +9 -0 # kill scsi_syms.c # # drivers/scsi/Makefile # 2004/11/20 14:26:17-06:00 bunk@stusta.de +1 -1 # kill scsi_syms.c # # Documentation/scsi/scsi_mid_low_api.txt # 2004/11/20 14:25:56-06:00 bunk@stusta.de +2 -2 # kill scsi_syms.c # # BitKeeper/deleted/.del-scsi_syms.c~8c75b2d48ed73d87 # 2004/11/26 10:06:12-06:00 bunk@stusta.de +0 -0 # Delete: drivers/scsi/scsi_syms.c # # ChangeSet # 2004/11/25 12:07:52-06:00 jejb@mulgrave.(none) # convert eata to pass pointers around # # From: Christoph Hellwig # # pass pointers to Scsi_Host and the private data around instead of using # indices into global arrays all over the place. # # Signed-off-by: James Bottomley # # drivers/scsi/eata.c # 2004/11/25 12:05:43-06:00 jejb@mulgrave.(none) +291 -298 # convert eata to pass pointers around # # ChangeSet # 2004/11/25 11:54:54-06:00 hch@lst.de # [PATCH] feed eata.c through Lindent # # the driver oopses on load for me currently, but to debug it I need to # actually be able to read the source.. # # Signed-off-by: James Bottomley # # drivers/scsi/eata.c # 2004/11/02 07:28:36-06:00 hch@lst.de +1770 -1568 # feed eata.c through Lindent # # ChangeSet # 2004/11/25 11:08:32-06:00 jejb@mulgrave.(none) # Merge ssh://linux-scsi@linux-scsi.bkbits.net/scsi-misc-2.6 # into mulgrave.(none):/home/jejb/BK/scsi-misc-2.6 # # drivers/scsi/hosts.c # 2004/11/25 11:08:25-06:00 jejb@mulgrave.(none) +0 -0 # Auto merged # # drivers/scsi/Kconfig # 2004/11/25 11:08:25-06:00 jejb@mulgrave.(none) +0 -0 # Auto merged # # ChangeSet # 2004/11/24 00:04:10-08:00 lcapitulino@conectiva.com.br # [NET]: __sock_create() cleanup # # The 'i' variable in net/socket.c::__sock_create() is not necessary. It's # have been used to store error codes but there is an 'err' variable already. # # Signed-off-by: Luiz Capitulino # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # net/socket.c # 2004/11/24 00:03:51-08:00 lcapitulino@conectiva.com.br +6 -8 # [NET]: __sock_create() cleanup # # The 'i' variable in net/socket.c::__sock_create() is not necessary. It's # have been used to store error codes but there is an 'err' variable already. # # Signed-off-by: Luiz Capitulino # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # ChangeSet # 2004/11/23 23:57:00-08:00 ahendry@tusc.com.au # [X25]: Remove unused header files. # # Signed-off-by: Andrew Hendry # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # net/x25/x25_timer.c # 2004/11/23 23:56:41-08:00 ahendry@tusc.com.au +0 -14 # [X25]: Remove unused header files. # # Signed-off-by: Andrew Hendry # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # net/x25/x25_subr.c # 2004/11/23 23:56:41-08:00 ahendry@tusc.com.au +0 -14 # [X25]: Remove unused header files. # # Signed-off-by: Andrew Hendry # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # net/x25/x25_out.c # 2004/11/23 23:56:41-08:00 ahendry@tusc.com.au +0 -13 # [X25]: Remove unused header files. # # Signed-off-by: Andrew Hendry # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # net/x25/x25_link.c # 2004/11/23 23:56:41-08:00 ahendry@tusc.com.au +0 -13 # [X25]: Remove unused header files. # # Signed-off-by: Andrew Hendry # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # net/x25/x25_in.c # 2004/11/23 23:56:41-08:00 ahendry@tusc.com.au +0 -14 # [X25]: Remove unused header files. # # Signed-off-by: Andrew Hendry # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # net/x25/x25_facilities.c # 2004/11/23 23:56:41-08:00 ahendry@tusc.com.au +0 -14 # [X25]: Remove unused header files. # # Signed-off-by: Andrew Hendry # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # net/x25/x25_dev.c # 2004/11/23 23:56:41-08:00 ahendry@tusc.com.au +0 -19 # [X25]: Remove unused header files. # # Signed-off-by: Andrew Hendry # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # net/x25/sysctl_net_x25.c # 2004/11/23 23:56:41-08:00 ahendry@tusc.com.au +0 -1 # [X25]: Remove unused header files. # # Signed-off-by: Andrew Hendry # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # net/x25/af_x25.c # 2004/11/23 23:56:41-08:00 ahendry@tusc.com.au +0 -9 # [X25]: Remove unused header files. # # Signed-off-by: Andrew Hendry # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # ChangeSet # 2004/11/23 23:56:04-08:00 ahendry@tusc.com.au # [X25]: When receiving a call, check listening sockets for matching call user data. # # If a listening socket sets call user data, ensure it only receives calls # with matching call user data. Also ensure incoming calls with matching # call user data dont go to another listening socket. # # Signed-off-by: Andrew Hendry # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # net/x25/x25_subr.c # 2004/11/23 23:55:45-08:00 ahendry@tusc.com.au +19 -0 # [X25]: When receiving a call, check listening sockets for matching call user data. # # If a listening socket sets call user data, ensure it only receives calls # with matching call user data. Also ensure incoming calls with matching # call user data dont go to another listening socket. # # Signed-off-by: Andrew Hendry # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # net/x25/af_x25.c # 2004/11/23 23:55:45-08:00 ahendry@tusc.com.au +47 -15 # [X25]: When receiving a call, check listening sockets for matching call user data. # # If a listening socket sets call user data, ensure it only receives calls # with matching call user data. Also ensure incoming calls with matching # call user data dont go to another listening socket. # # Signed-off-by: Andrew Hendry # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # include/net/x25.h # 2004/11/23 23:55:45-08:00 ahendry@tusc.com.au +1 -0 # [X25]: When receiving a call, check listening sockets for matching call user data. # # If a listening socket sets call user data, ensure it only receives calls # with matching call user data. Also ensure incoming calls with matching # call user data dont go to another listening socket. # # Signed-off-by: Andrew Hendry # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # ChangeSet # 2004/11/23 23:54:43-08:00 simlo@phys.au.dk # [ARCNET]: Fixes. # # As previously reported the ArcNet driver didn't work with Preempt and SMB # on. They do now. I have changed the locking system from being a global # arcnet lock to being a lock per device. I used the lock in # dev->hard_start_xmit = arcnet_send_packet. # # Furthermore I added the 'CAP mode' encapsulation. As far as I see it it is # the only encapsulation which actually makes ArcNet usefull over ethernet. # Previously, the driver just ignored the hardware transmit status, now you # can get hardware acknowledge and excessive nacks back to userspace via a # raw socket. The capmode.c is nearly just a copy of arc-rawmode.c. The # difference is that it inserts a ack_tx() handle into the general driver # framework. # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # include/linux/if_ether.h # 2004/11/23 23:53:52-08:00 simlo@phys.au.dk +1 -0 # [ARCNET]: Fixes. # # include/linux/if_arcnet.h # 2004/11/23 23:53:52-08:00 simlo@phys.au.dk +14 -0 # [ARCNET]: Fixes. # # include/linux/com20020.h # 2004/11/23 23:53:52-08:00 simlo@phys.au.dk +19 -11 # [ARCNET]: Fixes. # # include/linux/arcdevice.h # 2004/11/23 23:53:52-08:00 simlo@phys.au.dk +17 -4 # [ARCNET]: Fixes. # # drivers/net/arcnet/rfc1201.c # 2004/11/23 23:53:52-08:00 simlo@phys.au.dk +2 -0 # [ARCNET]: Fixes. # # drivers/net/arcnet/rfc1051.c # 2004/11/23 23:53:52-08:00 simlo@phys.au.dk +3 -0 # [ARCNET]: Fixes. # # drivers/net/arcnet/com20020.c # 2004/11/23 23:53:52-08:00 simlo@phys.au.dk +19 -9 # [ARCNET]: Fixes. # # drivers/net/arcnet/com20020-isa.c # 2004/11/23 23:53:52-08:00 simlo@phys.au.dk +0 -1 # [ARCNET]: Fixes. # # drivers/net/arcnet/arcnet.c # 2004/11/23 23:53:52-08:00 simlo@phys.au.dk +176 -77 # [ARCNET]: Fixes. # # drivers/net/arcnet/arc-rawmode.c # 2004/11/23 23:53:52-08:00 simlo@phys.au.dk +7 -2 # [ARCNET]: Fixes. # # drivers/net/arcnet/Makefile # 2004/11/23 23:53:52-08:00 simlo@phys.au.dk +1 -0 # [ARCNET]: Fixes. # # drivers/net/arcnet/Kconfig # 2004/11/23 23:53:52-08:00 simlo@phys.au.dk +19 -0 # [ARCNET]: Fixes. # # drivers/net/arcnet/capmode.c # 2004/11/23 23:53:48-08:00 simlo@phys.au.dk +296 -0 # [ARCNET]: Fixes. # # drivers/net/arcnet/capmode.c # 2004/11/23 23:53:48-08:00 simlo@phys.au.dk +0 -0 # BitKeeper file /disk1/BK/net-2.6.11/drivers/net/arcnet/capmode.c # # ChangeSet # 2004/11/23 23:52:02-08:00 acme@conectiva.com.br # [XFRM]: Export xfrm_policy_delete() # # Will be needed for DCCP. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/xfrm/xfrm_policy.c # 2004/11/23 23:51:43-08:00 acme@conectiva.com.br +2 -0 # [XFRM]: Export xfrm_policy_delete() # # Will be needed for DCCP. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # ChangeSet # 2004/11/23 23:50:00-08:00 kaber@trash.net # [PKT_SCHED]: Clean up tcf_action_init memory handling # # Signed-off-by: Patrick McHardy # Signed-off-by: David S. Miller # # net/sched/act_api.c # 2004/11/23 23:49:41-08:00 kaber@trash.net +47 -57 # [PKT_SCHED]: Clean up tcf_action_init memory handling # # Signed-off-by: Patrick McHardy # Signed-off-by: David S. Miller # # include/net/pkt_cls.h # 2004/11/23 23:49:41-08:00 kaber@trash.net +6 -20 # [PKT_SCHED]: Clean up tcf_action_init memory handling # # Signed-off-by: Patrick McHardy # Signed-off-by: David S. Miller # # include/net/act_api.h # 2004/11/23 23:49:41-08:00 kaber@trash.net +2 -2 # [PKT_SCHED]: Clean up tcf_action_init memory handling # # Signed-off-by: Patrick McHardy # Signed-off-by: David S. Miller # # ChangeSet # 2004/11/23 23:47:34-08:00 bdschuym@pandora.be # [EBTABLES]: Add userspace logging via netlink socket. # # The patch below adds the ebtables ulog watcher, that sends packets # to userspace. It is based on ipt_ULOG.c. # # The complete packet, including Ethernet header, is sent to userspace. # The in and out bridge ports are also sent to userspace. Logging is # of course not restricted to IP packets. # An example of a userspace program that receives and parses packets # sent by the ulog watcher is in the ebtables CVS tree under # examples/ulog/ # # Signed-off-by: Bart De Schuymer # Signed-off-by: David S. Miller # # net/bridge/netfilter/ebtables.c # 2004/11/23 23:46:46-08:00 bdschuym@pandora.be +3 -3 # [EBTABLES]: Add userspace logging via netlink socket. # # net/bridge/netfilter/ebt_log.c # 2004/11/23 23:46:46-08:00 bdschuym@pandora.be +3 -2 # [EBTABLES]: Add userspace logging via netlink socket. # # net/bridge/netfilter/Makefile # 2004/11/23 23:46:46-08:00 bdschuym@pandora.be +1 -0 # [EBTABLES]: Add userspace logging via netlink socket. # # net/bridge/netfilter/Kconfig # 2004/11/23 23:46:46-08:00 bdschuym@pandora.be +16 -2 # [EBTABLES]: Add userspace logging via netlink socket. # # include/linux/netfilter_bridge/ebtables.h # 2004/11/23 23:46:46-08:00 bdschuym@pandora.be +3 -3 # [EBTABLES]: Add userspace logging via netlink socket. # # net/bridge/netfilter/ebt_ulog.c # 2004/11/23 23:46:41-08:00 bdschuym@pandora.be +295 -0 # [EBTABLES]: Add userspace logging via netlink socket. # # net/bridge/netfilter/ebt_ulog.c # 2004/11/23 23:46:41-08:00 bdschuym@pandora.be +0 -0 # BitKeeper file /disk1/BK/net-2.6.11/net/bridge/netfilter/ebt_ulog.c # # include/linux/netfilter_bridge/ebt_ulog.h # 2004/11/23 23:46:38-08:00 bdschuym@pandora.be +36 -0 # [EBTABLES]: Add userspace logging via netlink socket. # # include/linux/netfilter_bridge/ebt_ulog.h # 2004/11/23 23:46:38-08:00 bdschuym@pandora.be +0 -0 # BitKeeper file /disk1/BK/net-2.6.11/include/linux/netfilter_bridge/ebt_ulog.h # # ChangeSet # 2004/11/23 18:52:13+11:00 airlied@starflyer.(none) # drm: move the enable device before filling in device info # # This moves the pci_enable_device to before the device info is # filled out as without routeirq this goes wrong.. # # Thanks to Ralf Gerbig for testing this. # # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_stub.c # 2004/11/23 18:52:04+11:00 airlied@starflyer.(none) +3 -1 # drm: move the enable device before filling in device info # # This moves the pci_enable_device to before the device info is # filled out as without routeirq this goes wrong.. # # Thanks to Ralf Gerbig for testing this. # # Signed-off-by: Dave Airlie # # ChangeSet # 2004/11/20 12:53:46+00:00 dwmw2@shinybook.infradead.org # MTD: Use msleep() in cfi_udelay() helper function. # # Signed-off-by: David Woodhouse # # include/linux/mtd/cfi.h # 2004/11/20 12:53:23+00:00 dwmw2@shinybook.infradead.org +6 -8 # revision 1.50 # date: 2004/11/20 12:46:51; author: dwmw2; state: Exp; lines: +6 -8 # Fix cfi_udelay() to use msleep() # # ChangeSet # 2004/11/20 12:48:27+00:00 dwmw2@shinybook.infradead.org # MTD NOR chip drivers: use msleep() # # Description: Use msleep() instead of schedule_timeout() # to guarantee the task delays as expected. # # Signed-off-by: Nishanth Aravamudan # Signed-off-by: Maximilian Attems # Signed-off-by: David Woodhouse # # drivers/mtd/chips/cfi_cmdset_0020.c # 2004/11/20 12:48:03+00:00 dwmw2@shinybook.infradead.org +4 -4 # Description: Use msleep() instead of schedule_timeout() # to guarantee the task delays as expected. # # drivers/mtd/chips/cfi_cmdset_0002.c # 2004/11/20 12:48:03+00:00 dwmw2@shinybook.infradead.org +3 -5 # Description: Use msleep() instead of schedule_timeout() # to guarantee the task delays as expected. # # drivers/mtd/chips/amd_flash.c # 2004/11/20 12:48:02+00:00 dwmw2@shinybook.infradead.org +2 -2 # Description: Use msleep() instead of schedule_timeout() # to guarantee the task delays as expected. # # ChangeSet # 2004/11/20 12:25:45+00:00 dwmw2@shinybook.infradead.org # JFFS2: Fix race on read access to NAND write-buffer. # # With SMP or preempt, we could attempt to read data from the wbuf # while it was being updated. Introduce a new rwsem to prevent this, # and update the documentation accordingly # # Signed-off-by: Artem Bityuckiy # Signed-off-by: David Woodhouse # # include/linux/jffs2_fs_sb.h # 2004/11/20 12:25:23+00:00 dwmw2@shinybook.infradead.org +5 -4 # revision 1.48 # date: 2004/11/20 10:41:12; author: dwmw2; state: Exp; lines: +4 -2 # include rwsem.h and make wbuf_sem nand-only # ---------------------------- # revision 1.47 # date: 2004/11/19 13:41:17; author: dedekind; state: Exp; lines: +3 -4 # Bugfix: fix the race bug when a writed and reader concurrently access # the wbuf. Introduce new rw semaphore to fix this. # # fs/jffs2/wbuf.c # 2004/11/20 12:25:23+00:00 dwmw2@shinybook.infradead.org +41 -19 # revision 1.81 # date: 2004/11/20 10:44:07; author: dwmw2; state: Exp; lines: +3 -2 # wbuf_sem is now nand-only # ---------------------------- # revision 1.80 # date: 2004/11/20 10:35:40; author: dwmw2; state: Exp; lines: +23 -15 # Clean up wbuf_sem a bit, document it. # ---------------------------- # revision 1.79 # date: 2004/11/20 10:21:40; author: dwmw2; state: Exp; lines: +2 -2 # Fix deadlock on wbuf_sem if jffs2_flash_writev() is writing to a new # block and flushes the wbuf on the old. # ---------------------------- # revision 1.78 # date: 2004/11/19 13:41:16; author: dedekind; state: Exp; lines: +33 -20 # Bugfix: fix the race bug when a writed and reader concurrently access # the wbuf. Introduce new rw semaphore to fix this. # # fs/jffs2/README.Locking # 2004/11/20 12:25:23+00:00 dwmw2@shinybook.infradead.org +14 -1 # revision 1.9 # date: 2004/11/20 10:35:40; author: dwmw2; state: Exp; lines: +14 -1 # Clean up wbuf_sem a bit, document it. # # ChangeSet # 2004/11/20 10:58:16+00:00 dwmw2@shinybook.infradead.org # JFFS2: Fix memory leak if jffs2_scan_medium() fails. # # We weren't releasing all the temporary dirent structures we may have # built up during the first part of the scan. # # Signed-off-by: Artem Bityuckiy # Signed-off-by: David Woodhouse # # fs/jffs2/build.c # 2004/11/20 10:57:52+00:00 dwmw2@shinybook.infradead.org +17 -6 # revision 1.64 # date: 2004/11/20 10:44:07; author: dwmw2; state: Exp; lines: +1 -2 # wbuf_sem is now nand-only # ---------------------------- # revision 1.63 # date: 2004/11/20 08:45:15; author: dwmw2; state: Exp; lines: +2 -2 # remove double semicolon # ---------------------------- # revision 1.62 # date: 2004/11/19 13:41:16; author: dedekind; state: Exp; lines: +2 -1 # Bugfix: fix the race bug when a writed and reader concurrently access # the wbuf. Introduce new rw semaphore to fix this. # ---------------------------- # revision 1.61 # date: 2004/11/18 11:17:41; author: dedekind; state: Exp; lines: +17 -6 # Bugfix: do not forget to free memory if the jffs2_scan_inode_node() # fails. # # ChangeSet # 2004/11/20 09:08:57+00:00 dwmw2@shinybook.infradead.org # JFFS2: Discard dirents which point to non-existent inodes. # # If a directory entry refers to an inode which doesn't actually exist, # we weren't marking it obsolete, so it was still visible in the file # system, and would give EIO if you ever tried to stat it. Once upon # a time, perl -e 'unlink' and rm -f would manage to unlink such things # but nowadays they both try to stat it first and stupidly refuse to # even attempt the unlink if the stat fails, and this is more of a # problem. So we throw it away ourselves. # # Signed-off-by: Artem Bityuckiy # Signed-off-by: David Woodhouse # # fs/jffs2/build.c # 2004/11/20 09:08:37+00:00 dwmw2@shinybook.infradead.org +4 -3 # revision 1.60 # date: 2004/11/17 17:13:13; author: dedekind; state: Exp; lines: +3 -3 # Do the pass1 with the JFFS2_SB_FLAG_MOUNTING flag set in order to preven # the physical flash writing if we have found the inode-less direntry. # ---------------------------- # revision 1.59 # date: 2004/11/17 12:56:15; author: dedekind; state: Exp; lines: +2 -2 # Fix the last bugfix: use the jffs2_mark_node_obsolete() function instead # of directly marking the node obsolete. This will not break the # free/dirty space counters. # ---------------------------- # revision 1.58 # date: 2004/11/17 11:47:08; author: dedekind; state: Exp; lines: +2 -1 # Bugfix: when we have found an inodeless direntry, mark the correspondent # node_ref as obsolete in order to let the GC to kill this direntry. # # ChangeSet # 2004/11/20 09:00:26+00:00 dwmw2@shinybook.infradead.org # JFFS2: Remove obsolete structure definitions and update comments. # # New eyes are looking over ancient code and comments which were put # in as the design was first coming together... and which don't make # even the slightest bit of sense any more. # # Signed-off-by: Artem Bityuckiy # Signed-off-by: David Woodhouse # # fs/jffs2/scan.c # 2004/11/20 09:00:03+00:00 dwmw2@shinybook.infradead.org +3 -6 # revision 1.115 # date: 2004/11/17 12:59:08; author: dedekind; state: Exp; lines: +3 -6 # Change/remove old and depricated comments. # # fs/jffs2/nodelist.h # 2004/11/20 09:00:03+00:00 dwmw2@shinybook.infradead.org +5 -23 # revision 1.126 # date: 2004/11/19 15:06:29; author: dedekind; state: Exp; lines: +1 -19 # Remove archaic outdated stuff. # ---------------------------- # revision 1.125 # date: 2004/11/17 12:59:08; author: dedekind; state: Exp; lines: +5 -5 # Change/remove old and depricated comments. # # ChangeSet # 2004/11/20 08:52:36+00:00 dwmw2@shinybook.infradead.org # MTD: Fix JEDEC probe of chips which don't require unlock sequence # # Signed-off-by: Thayne Harbaugh # Signed-off-by: David Woodhouse # # drivers/mtd/chips/jedec_probe.c # 2004/11/20 08:52:15+00:00 dwmw2@shinybook.infradead.org +6 -3 # revision 1.61 # date: 2004/11/19 20:52:16; author: thayne; state: Exp; lines: +6 -1 # Make sure that every enum uaddr has an entry in unlock_addrs[] # # ChangeSet # 2004/11/18 14:13:50-08:00 hch@lst.de # [NET]: Use local_softirq_pending instead of softirq_pending in netif_rx_ni # # Some architectures can optimize local_softirq_pending much better than # softirq_pending(smp_processor_id()), and for all others the former is # just a macro expanding to the later. # # Also this is the last use of softirq_pending() in common code, once this # is in we can soon kill the notation of beeing able to query other cpus # softirq pending count. # # Signed-off-by: David S. Miller # # net/core/dev.c # 2004/11/18 14:13:32-08:00 hch@lst.de +1 -1 # [NET]: Use local_softirq_pending instead of softirq_pending in netif_rx_ni # # Some architectures can optimize local_softirq_pending much better than # softirq_pending(smp_processor_id()), and for all others the former is # just a macro expanding to the later. # # Also this is the last use of softirq_pending() in common code, once this # is in we can soon kill the notation of beeing able to query other cpus # softirq pending count. # # Signed-off-by: David S. Miller # # ChangeSet # 2004/11/18 14:12:39-08:00 hch@lst.de # [NET]: Kill drivers/net/net_init.c # # After the last patch only three routines are left in this file, but all # of the fir into net/core/dev.c much better: # # - {un,}register_netdev are just wrappers around {un,}register_netdevice # from dev.c # - alloc_netdev's counterpart, free_netdev is in dev.c aswell. # # So move over the remaining contents and add some kerneldoc comments # describing the functions. # # Signed-off-by: David S. Miller # # net/core/dev.c # 2004/11/18 14:12:03-08:00 hch@lst.de +108 -4 # [NET]: Kill drivers/net/net_init.c # # drivers/net/Makefile # 2004/11/18 14:12:03-08:00 hch@lst.de +1 -1 # [NET]: Kill drivers/net/net_init.c # # BitKeeper/deleted/.del-net_init.c~818a1a4060953d02 # 2004/11/18 14:11:43-08:00 davem@nuts.davemloft.net +0 -0 # Delete: drivers/net/net_init.c # # ChangeSet # 2004/11/18 14:03:59-08:00 Ian.Pratt@cl.cam.ac.uk # [NET]: Add alloc_skb_from_cache. # # This serves two purposes: firstly, we like to allocate page-sized skbs # as this means we zero-copy transfer of network buffers between guest # operating systems. Secondly, it enables us to have a cache of pages # that have been used for network buffers that we can be more lax about # scrubbing when they change VM ownership (since they could be sniffed on # the wire). # # Signed-off-by: David S. Miller # # net/core/skbuff.c # 2004/11/18 14:02:13-08:00 Ian.Pratt@cl.cam.ac.uk +53 -0 # [NET]: Add alloc_skb_from_cache. # # include/linux/skbuff.h # 2004/11/18 14:02:13-08:00 Ian.Pratt@cl.cam.ac.uk +6 -0 # [NET]: Add alloc_skb_from_cache. # # ChangeSet # 2004/11/18 12:06:01+01:00 vojtech@suse.cz # Manual merge # # drivers/usb/input/hid-core.c # 2004/11/18 12:05:54+01:00 vojtech@suse.cz +5 -4 # Manual merge # # drivers/input/serio/serio.c # 2004/11/18 11:50:15+01:00 vojtech@suse.cz +0 -0 # Auto merged # # drivers/input/serio/i8042.c # 2004/11/18 11:50:15+01:00 vojtech@suse.cz +0 -0 # Auto merged # # drivers/input/input.c # 2004/11/18 11:50:15+01:00 vojtech@suse.cz +0 -0 # Auto merged # # Documentation/kernel-parameters.txt # 2004/11/18 11:50:15+01:00 vojtech@suse.cz +0 -0 # Auto merged # # ChangeSet # 2004/11/17 16:08:01-08:00 util@deuroconsult.ro # [PKT_SCHED]: Allow using nfmark as key in U32 classifier. # # Signed-off-by: Catalin(ux aka Dino) BOIE # Signed-off-by: David S. Miller # # net/sched/cls_u32.c # 2004/11/17 16:07:25-08:00 util@deuroconsult.ro +39 -0 # [PKT_SCHED]: Allow using nfmark as key in U32 classifier. # # Signed-off-by: Catalin(ux aka Dino) BOIE # Signed-off-by: David S. Miller # # net/sched/Kconfig # 2004/11/17 16:07:25-08:00 util@deuroconsult.ro +12 -0 # [PKT_SCHED]: Allow using nfmark as key in U32 classifier. # # Signed-off-by: Catalin(ux aka Dino) BOIE # Signed-off-by: David S. Miller # # include/linux/pkt_cls.h # 2004/11/17 16:07:25-08:00 util@deuroconsult.ro +1 -0 # [PKT_SCHED]: Allow using nfmark as key in U32 classifier. # # Signed-off-by: Catalin(ux aka Dino) BOIE # Signed-off-by: David S. Miller # # ChangeSet # 2004/11/17 12:51:43-06:00 shaggy@austin.ibm.com # JFS: fix race in jfs_commit_inode # # There was a race that resulted in old, deleted inodes being written # to disk after the inode number had been reused. jfs_commit_inode # needs to verify that the inode is still linked and dirty before # committing it. # # Signed-off-by: Dave Kleikamp # # fs/jfs/inode.c # 2004/11/17 12:51:26-06:00 shaggy@austin.ibm.com +8 -3 # jfs_commit_inode needs to re-verify that inode is still linked # and dirty # # ChangeSet # 2004/11/17 10:34:09-06:00 akpm@osdl.org # [PATCH] iscsi_transport build fix # # drivers/scsi/scsi_transport_iscsi.c:176: structure has no member named `sin6_addr' # # Older gcc's dont support anonymous unions. # # Signed-off-by: Andrew Morton # Signed-off-by: James Bottomley # # include/scsi/scsi_transport_iscsi.h # 2004/11/17 03:55:50-06:00 akpm@osdl.org +3 -3 # iscsi_transport build fix # # ChangeSet # 2004/11/17 10:45:15+00:00 dwmw2@shinybook.infradead.org # MTD: Fix chip ident definition for AMD 29F002T devices. # # They were missing unlock address and command set fields. # # From: David Vrabel # Signed-off-by: David Woodhouse # # drivers/mtd/chips/jedec_probe.c # 2004/11/17 10:44:46+00:00 dwmw2@shinybook.infradead.org +43 -28 # revision 1.59 # date: 2004/11/17 09:46:24; author: dvrabel; state: Exp; lines: +43 -28 # Add missing uddr and CmdSet fields to the entries for the 29F002T devices. # # ChangeSet # 2004/11/17 09:36:39+00:00 dwmw2@shinybook.infradead.org # JFFS2: Remove definition of obsolete struct jffs2_scan_info # # We no longer use this, since we rewrote the mount code to behave # entirely differently and not build up all the trees on mount. # # Signed-off-by: Artem Bityuckiy # Signed-off-by: David Woodhouse # # fs/jffs2/nodelist.h # 2004/11/17 09:36:16+00:00 dwmw2@shinybook.infradead.org +1 -8 # revision 1.124 # date: 2004/11/17 09:30:02; author: dedekind; state: Exp; lines: +1 -8 # Remove unused depricated struct jffs2_scan_info definition, # # ChangeSet # 2004/11/16 16:05:58-06:00 jejb@mulgrave.(none) # SCSI: Add missing state transition BLOCK->OFFLINE # # From: James.Smart@Emulex.Com # # Signed-off-by: James Bottomley # # drivers/scsi/scsi_lib.c # 2004/11/16 16:05:38-06:00 jejb@mulgrave.(none) +1 -0 # SCSI: Add missing state transition BLOCK->OFFLINE # # ChangeSet # 2004/11/16 16:01:31-06:00 dougg@torque.net # SCSI: descriptor sense format, mid-level # # - generalize sense data logic to cope with both fixed and # descriptor format # - use KERN_INFO on most printk()s to limit console noise # - retire mid-level usage of sense_class(), sense_error() and # sense_valid() macros which are SCSI-1 remnants. Now only # cpqfcTSinit.c seems to use them # # Signed-off-by: James Bottomley # # drivers/scsi/scsi_scan.c # 2004/11/08 02:33:25-06:00 dougg@torque.net +21 -12 # descriptor sense format, mid-level # # drivers/scsi/scsi_lib.c # 2004/11/08 01:14:41-06:00 dougg@torque.net +16 -12 # descriptor sense format, mid-level # # drivers/scsi/scsi_ioctl.c # 2004/11/08 04:56:44-06:00 dougg@torque.net +18 -12 # descriptor sense format, mid-level # # drivers/scsi/scsi_error.c # 2004/11/08 00:43:52-06:00 dougg@torque.net +35 -12 # descriptor sense format, mid-level # # ChangeSet # 2004/11/16 15:23:21-06:00 michaelc@cs.wisc.edu # [PATCH] iSCSI transport class # # The attached patch adds an iSCSI transport class. It was # built against scsi-misc-2.6. It allows the software/virtual # iSCSI driver to remove at least one of its ioctl commands. # The patch also assumes the no multipath/failover rule in # llds applies to iSCSI drivers, so when we remove our # portal/portal_group failover support it will allow us to # kill all our ioctl commands execpt the session creation one # (that will take more thought). # # We would like to build some functions like the # unblock/block capabilites into the iscsi transport class # like James Smart has done with FC class. but initially we # would like to begin with this smaller patch that only provides # an iscsi sysfs interface. # # Signed-off-by: James Bottomley # # include/scsi/scsi_transport_iscsi.h # 2004/10/29 05:55:13-05:00 michaelc@cs.wisc.edu +178 -0 # iSCSI transport class # # include/scsi/scsi_transport_iscsi.h # 2004/10/29 05:55:13-05:00 michaelc@cs.wisc.edu +0 -0 # BitKeeper file /home/jejb/BK/scsi-misc-2.6/include/scsi/scsi_transport_iscsi.h # # drivers/scsi/scsi_transport_iscsi.c # 2004/10/29 06:30:20-05:00 michaelc@cs.wisc.edu +355 -0 # iSCSI transport class # # drivers/scsi/Makefile # 2004/10/28 22:57:11-05:00 michaelc@cs.wisc.edu +1 -1 # iSCSI transport class # # drivers/scsi/Kconfig # 2004/10/28 22:57:11-05:00 michaelc@cs.wisc.edu +8 -0 # iSCSI transport class # # drivers/scsi/scsi_transport_iscsi.c # 2004/10/29 06:30:20-05:00 michaelc@cs.wisc.edu +0 -0 # BitKeeper file /home/jejb/BK/scsi-misc-2.6/drivers/scsi/scsi_transport_iscsi.c # # ChangeSet # 2004/11/16 20:53:10+00:00 dwmw2@shinybook.infradead.org # Email address update. # # The work address is increasingly unreliable and incompetently run. # Time to remove all visible instances of it and rely only on one # which isn't run by crack-monkeys. # # Signed-off-by: David Woodhouse # # kernel/workqueue.c # 2004/11/16 20:52:49+00:00 dwmw2@shinybook.infradead.org +1 -1 # Update email address to one at a competently-run domain. # # include/linux/jffs2.h # 2004/11/16 20:52:49+00:00 dwmw2@shinybook.infradead.org +2 -2 # Update email address to one at a competently-run domain. # # fs/jffs2/writev.c # 2004/11/16 20:52:49+00:00 dwmw2@shinybook.infradead.org +2 -2 # Update email address to one at a competently-run domain. # # fs/jffs2/write.c # 2004/11/16 20:52:48+00:00 dwmw2@shinybook.infradead.org +2 -2 # Update email address to one at a competently-run domain. # # fs/jffs2/wbuf.c # 2004/11/16 20:52:48+00:00 dwmw2@shinybook.infradead.org +2 -2 # Update email address to one at a competently-run domain. # # fs/jffs2/symlink.c # 2004/11/16 20:52:48+00:00 dwmw2@shinybook.infradead.org +2 -2 # Update email address to one at a competently-run domain. # # fs/jffs2/super.c # 2004/11/16 20:52:48+00:00 dwmw2@shinybook.infradead.org +2 -2 # Update email address to one at a competently-run domain. # # fs/jffs2/scan.c # 2004/11/16 20:52:48+00:00 dwmw2@shinybook.infradead.org +2 -2 # Update email address to one at a competently-run domain. # # fs/jffs2/readinode.c # 2004/11/16 20:52:48+00:00 dwmw2@shinybook.infradead.org +2 -2 # Update email address to one at a competently-run domain. # # fs/jffs2/read.c # 2004/11/16 20:52:48+00:00 dwmw2@shinybook.infradead.org +2 -2 # Update email address to one at a competently-run domain. # # fs/jffs2/pushpull.h # 2004/11/16 20:52:48+00:00 dwmw2@shinybook.infradead.org +2 -2 # Update email address to one at a competently-run domain. # # fs/jffs2/os-linux.h # 2004/11/16 20:52:48+00:00 dwmw2@shinybook.infradead.org +2 -2 # Update email address to one at a competently-run domain. # # fs/jffs2/nodemgmt.c # 2004/11/16 20:52:48+00:00 dwmw2@shinybook.infradead.org +2 -2 # Update email address to one at a competently-run domain. # # fs/jffs2/nodelist.h # 2004/11/16 20:52:48+00:00 dwmw2@shinybook.infradead.org +2 -2 # Update email address to one at a competently-run domain. # # fs/jffs2/nodelist.c # 2004/11/16 20:52:48+00:00 dwmw2@shinybook.infradead.org +2 -2 # Update email address to one at a competently-run domain. # # fs/jffs2/malloc.c # 2004/11/16 20:52:48+00:00 dwmw2@shinybook.infradead.org +2 -2 # Update email address to one at a competently-run domain. # # fs/jffs2/ioctl.c # 2004/11/16 20:52:48+00:00 dwmw2@shinybook.infradead.org +2 -2 # Update email address to one at a competently-run domain. # # fs/jffs2/gc.c # 2004/11/16 20:52:48+00:00 dwmw2@shinybook.infradead.org +2 -2 # Update email address to one at a competently-run domain. # # fs/jffs2/fs.c # 2004/11/16 20:52:48+00:00 dwmw2@shinybook.infradead.org +2 -2 # Update email address to one at a competently-run domain. # # fs/jffs2/file.c # 2004/11/16 20:52:48+00:00 dwmw2@shinybook.infradead.org +2 -2 # Update email address to one at a competently-run domain. # # fs/jffs2/erase.c # 2004/11/16 20:52:48+00:00 dwmw2@shinybook.infradead.org +2 -2 # Update email address to one at a competently-run domain. # # fs/jffs2/dir.c # 2004/11/16 20:52:48+00:00 dwmw2@shinybook.infradead.org +2 -2 # Update email address to one at a competently-run domain. # # fs/jffs2/compr_zlib.c # 2004/11/16 20:52:48+00:00 dwmw2@shinybook.infradead.org +2 -2 # Update email address to one at a competently-run domain. # # fs/jffs2/build.c # 2004/11/16 20:52:48+00:00 dwmw2@shinybook.infradead.org +2 -2 # Update email address to one at a competently-run domain. # # fs/jffs2/background.c # 2004/11/16 20:52:48+00:00 dwmw2@shinybook.infradead.org +2 -2 # Update email address to one at a competently-run domain. # # drivers/char/applicom.c # 2004/11/16 20:52:48+00:00 dwmw2@shinybook.infradead.org +1 -1 # Update email address to one at a competently-run domain. # # MAINTAINERS # 2004/11/16 20:52:48+00:00 dwmw2@shinybook.infradead.org +1 -1 # Update email address to one at a competently-run domain. # # CREDITS # 2004/11/16 20:52:47+00:00 dwmw2@shinybook.infradead.org +0 -1 # Update email address to one at a competently-run domain. # # ChangeSet # 2004/11/16 20:12:00+00:00 dwmw2@shinybook.infradead.org # JFFS2: Add notes on inocache_lock spinlock to README.Locking # # Signed-off-by: Artem Bityuckiy # Signed-off-by: David Woodhouse # # fs/jffs2/README.Locking # 2004/11/16 20:11:36+00:00 dwmw2@shinybook.infradead.org +26 -7 # revision 1.8 # date: 2004/11/14 11:43:41; author: dedekind; state: Exp; lines: +3 -3 # Fix typos in the newly added text. # ---------------------------- # revision 1.7 # date: 2004/11/14 11:38:54; author: dedekind; state: Exp; lines: +20 -1 # Add some information about the inocache_lock spinlock. # # ChangeSet # 2004/11/16 13:49:34-06:00 jejb@mulgrave.(none) # SCSI: Add transport destructors # # From: James.Smart@Emulex.Com # # This patch adds host/target/sdev destructor functions to the transport # template. The FC transport is updated to utilize them to cancel any # outstanding timer. It slightly rearranges the slave_xxx functions so # the transport is always involved prior to the LLDD. # # Minor rejection fixes and # Signed-off-by: James Bottomley # # include/scsi/scsi_transport.h # 2004/11/16 13:48:01-06:00 jejb@mulgrave.(none) +5 -0 # SCSI: Add transport destructors # # drivers/scsi/scsi_transport_fc.c # 2004/11/16 13:48:01-06:00 jejb@mulgrave.(none) +16 -0 # SCSI: Add transport destructors # # drivers/scsi/scsi_sysfs.c # 2004/11/16 13:48:01-06:00 jejb@mulgrave.(none) +5 -0 # SCSI: Add transport destructors # # drivers/scsi/scsi_scan.c # 2004/11/16 13:48:01-06:00 jejb@mulgrave.(none) +13 -6 # SCSI: Add transport destructors # # drivers/scsi/hosts.c # 2004/11/16 13:48:01-06:00 jejb@mulgrave.(none) +6 -1 # SCSI: Add transport destructors # # ChangeSet # 2004/11/16 13:42:53-06:00 jejb@mulgrave.(none) # SCSI: updates to constants.c # # From: Douglas Gilbert # # - bring opcode names, asc/ascq strings and sense format # into line with SPC-3 rev 21 (22 September 2004) # - drop SCSI-1 sense buffer decoding [still output it in hex] # - opcode names include those that depend on service actions # including variable length commands ** # - decodes both fixed and descriptor sense data formats # - use KERN_INFO on printk()s that start on new lines # - flag vendor specific asc and acsq codes # - print all bytes of a cdb after the name (previously skipped # the first byte) # - cleanup file, tab to 8 spaces # # Signed-off-by: James Bottomley # # drivers/scsi/constants.c # 2004/11/16 13:41:26-06:00 jejb@mulgrave.(none) +578 -339 # SCSI: updates to constants.c # # ChangeSet # 2004/11/16 13:29:04-06:00 jejb@mulgrave.(none) # update the fc_transport_class to use a workqueue instead of a timeout # # The amount of work that has to be done in the timeout routines is really # a bit much if there's a large number of LUNS. Plus the # device_for_each_child needs user context to get the bus semaphore, so # the solution is to migrate them from a timer to delayed work. # # There's still a race here in that the timer may still be ticking when # the device is destroyed ... To fix this, I think we may need to # introduce a destroy callback to the transport class. # # Signed-off-by: James Bottomley # # include/scsi/scsi_transport_fc.h # 2004/11/16 13:26:54-06:00 jejb@mulgrave.(none) +6 -6 # update the fc_transport_class to use a workqueue instead of a timeout # # drivers/scsi/scsi_transport_fc.c # 2004/11/16 13:26:54-06:00 jejb@mulgrave.(none) +17 -17 # update the fc_transport_class to use a workqueue instead of a timeout # # ChangeSet # 2004/11/16 19:04:30+00:00 dwmw2@shinybook.infradead.org # JFFS2: Move very noisy debugging messages from level 1 to level 2. # # Signed-off-by: Artem Bityuckiy # Signed-off-by: David Woodhouse # # fs/jffs2/readinode.c # 2004/11/16 19:04:09+00:00 dwmw2@shinybook.infradead.org +4 -2 # Nove very noisy debugging messages from level 1 to level 2. # # fs/jffs2/read.c # 2004/11/16 19:04:09+00:00 dwmw2@shinybook.infradead.org +2 -2 # Nove very noisy debugging messages from level 1 to level 2. # # fs/jffs2/nodemgmt.c # 2004/11/16 19:04:09+00:00 dwmw2@shinybook.infradead.org +2 -2 # Nove very noisy debugging messages from level 1 to level 2. # # fs/jffs2/nodelist.h # 2004/11/16 19:04:09+00:00 dwmw2@shinybook.infradead.org +2 -2 # Nove very noisy debugging messages from level 1 to level 2. # # fs/jffs2/gc.c # 2004/11/16 19:04:09+00:00 dwmw2@shinybook.infradead.org +3 -3 # Nove very noisy debugging messages from level 1 to level 2. # # fs/jffs2/fs.c # 2004/11/16 19:04:09+00:00 dwmw2@shinybook.infradead.org +2 -2 # Nove very noisy debugging messages from level 1 to level 2. # # fs/jffs2/build.c # 2004/11/16 19:04:09+00:00 dwmw2@shinybook.infradead.org +3 -3 # Nove very noisy debugging messages from level 1 to level 2. # # ChangeSet # 2004/11/16 19:02:03+00:00 dwmw2@shinybook.infradead.org # MTD: NAND driver updates # # - Support 2048-byte HW ECC (from Juha Yrjölä ) # - Allow board drivers to provide pattern for bad block scanning # # Signed-off-by: Thomas Gleixner # Signed-off-by: David Woodhouse # # include/linux/mtd/nand.h # 2004/11/16 19:01:44+00:00 dwmw2@shinybook.infradead.org +7 -1 # revision 1.68 # date: 2004/11/12 10:40:37; author: gleixner; state: Exp; lines: +3 -1 # Allow board drivers to provide their own scan pattern for bad block scanning # ---------------------------- # revision 1.67 # date: 2004/11/01 20:03:59; author: gleixner; state: Exp; lines: +5 -1 # Cleanup HW-ECC. Calc ecc bytes during setup. Add HW12_2048 ECC mode (Initial Patch provided by Juha Yrjola ) # # drivers/mtd/nand/nand_bbt.c # 2004/11/16 19:01:44+00:00 dwmw2@shinybook.infradead.org +12 -10 # revision 1.28 # date: 2004/11/13 10:19:09; author: gleixner; state: Exp; lines: +9 -5 # Do not enforce flahsbased bad block tables. Stupid me # ---------------------------- # revision 1.27 # date: 2004/11/12 10:40:36; author: gleixner; state: Exp; lines: +8 -10 # Allow board drivers to provide their own scan pattern for bad block scanning # # drivers/mtd/nand/nand_base.c # 2004/11/16 19:01:44+00:00 dwmw2@shinybook.infradead.org +48 -51 # revision 1.123 # date: 2004/11/02 22:36:59; author: gleixner; state: Exp; lines: +2 -2 # Fix typo. Hmm, I start to adopt dwmw2's bad habits. Pointed out by Ed Berube # ---------------------------- # revision 1.122 # date: 2004/11/01 20:03:57; author: gleixner; state: Exp; lines: +48 -51 # Cleanup HW-ECC. Calc ecc bytes during setup. Add HW12_2048 ECC mode (Initial Patch provided by Juha Yrjola ) # # ChangeSet # 2004/11/16 18:58:15+00:00 dwmw2@shinybook.infradead.org # MTD: Provide XIP support for Intel flash chips. # # This allows for MTD support to be used on flash memory which is also used # for XIP purposes, either XIP kernel or XIP userspace. The whole idea is # to relocate functions actually modifying the flash state away from array mode # to ram and run them with interrupt disabled. When the flash needs some time # to complete a certain operation, we poll the processor for pending (but still # masked) interrupts, and when they occur we suspend the flash operation in order # to unmask interrupts and let the system run again. # # Signed-off-by: Nicolas Pitre # Signed-off-by: David Woodhouse # # include/linux/mtd/xip.h # 2004/11/16 18:57:52+00:00 dwmw2@shinybook.infradead.org +99 -0 # # include/linux/mtd/xip.h # 2004/11/16 18:57:52+00:00 dwmw2@shinybook.infradead.org +0 -0 # BitKeeper file /home/dwmw2/bk/mtd-2.6/include/linux/mtd/xip.h # # include/linux/mtd/flashchip.h # 2004/11/16 18:57:52+00:00 dwmw2@shinybook.infradead.org +3 -1 # revision 1.15 # date: 2004/11/05 22:41:06; author: nico; state: Exp; lines: +3 -1 # This allows for MTD support to be used on flash memory which is also used # for XIP purposes, either XIP kernel or XIP userspace. The whole idea is # to relocate functions actually modifying the flash state away from array mode # to ram and run them with interrupt disabled. When the flash needs some time # to complete a certain operation, we poll the processor for pending (but still # masked) interrupts, and when they occur we suspend the flash operation in order # to unmask interrupts and let the system run again. # # drivers/mtd/chips/cfi_util.c # 2004/11/16 18:57:51+00:00 dwmw2@shinybook.infradead.org +22 -13 # revision 1.7 # date: 2004/11/05 22:41:05; author: nico; state: Exp; lines: +13 -2 # This allows for MTD support to be used on flash memory which is also used # for XIP purposes, either XIP kernel or XIP userspace. The whole idea is # to relocate functions actually modifying the flash state away from array mode # to ram and run them with interrupt disabled. When the flash needs some time # to complete a certain operation, we poll the processor for pending (but still # masked) interrupts, and when they occur we suspend the flash operation in order # to unmask interrupts and let the system run again. # ---------------------------- # revision 1.6 # date: 2004/11/01 06:02:24; author: nico; state: Exp; lines: +10 -12 # Prerequisite cleanup for the upcoming patch. # This should not have changed the code logic at all. Sue me if it did. # # drivers/mtd/chips/cfi_probe.c # 2004/11/16 18:57:51+00:00 dwmw2@shinybook.infradead.org +77 -31 # revision 1.83 # date: 2004/11/16 18:19:02; author: nico; state: Exp; lines: +2 -2 # fix bogus comment # ---------------------------- # revision 1.81 # date: 2004/11/05 22:41:05; author: nico; state: Exp; lines: +54 -7 # This allows for MTD support to be used on flash memory which is also used # for XIP purposes, either XIP kernel or XIP userspace. The whole idea is # to relocate functions actually modifying the flash state away from array mode # to ram and run them with interrupt disabled. When the flash needs some time # to complete a certain operation, we poll the processor for pending (but still # masked) interrupts, and when they occur we suspend the flash operation in order # to unmask interrupts and let the system run again. # ---------------------------- # revision 1.80 # date: 2004/11/01 06:02:24; author: nico; state: Exp; lines: +23 -24 # Prerequisite cleanup for the upcoming patch. # This should not have changed the code logic at all. Sue me if it did. # # drivers/mtd/chips/cfi_cmdset_0001.c # 2004/11/16 18:57:51+00:00 dwmw2@shinybook.infradead.org +291 -30 # revision 1.163 # date: 2004/11/15 20:56:31; author: nico; state: Exp; lines: +106 -26 # Determine number of hw partitions from extended query data instead of # hardcoding it. # ---------------------------- # revision 1.162 # date: 2004/11/11 11:13:19; author: dwmw2; state: Exp; lines: +12 -2 # Restore oldstate to FL_READY on resume (or suspend failure). # ---------------------------- # revision 1.161 # date: 2004/11/05 22:41:04; author: nico; state: Exp; lines: +289 -27 # This allows for MTD support to be used on flash memory which is also used # for XIP purposes, either XIP kernel or XIP userspace. The whole idea is # to relocate functions actually modifying the flash state away from array mode # to ram and run them with interrupt disabled. When the flash needs some time # to complete a certain operation, we poll the processor for pending (but still # masked) interrupts, and when they occur we suspend the flash operation in order # to unmask interrupts and let the system run again. # # drivers/mtd/chips/Kconfig # 2004/11/16 18:57:51+00:00 dwmw2@shinybook.infradead.org +10 -1 # revision 1.10 # date: 2004/11/05 22:41:04; author: nico; state: Exp; lines: +10 -1 # This allows for MTD support to be used on flash memory which is also used # for XIP purposes, either XIP kernel or XIP userspace. The whole idea is # to relocate functions actually modifying the flash state away from array mode # to ram and run them with interrupt disabled. When the flash needs some time # to complete a certain operation, we poll the processor for pending (but still # masked) interrupts, and when they occur we suspend the flash operation in order # to unmask interrupts and let the system run again. # # ChangeSet # 2004/11/16 18:54:16+00:00 dwmw2@shinybook.infradead.org # JFFS2: Add support for bizarre NOR flash with ECC. # # Signed-off-by: Josh Boyer # Signed-off-by: David Woodhouse # # include/linux/jffs2_fs_sb.h # 2004/11/16 18:53:54+00:00 dwmw2@shinybook.infradead.org +2 -2 # revision 1.46 # date: 2004/11/03 12:57:39; author: jwboyer; state: Exp; lines: +2 -2 # Adding ECC'd NOR support to JFFS2. Works with cfi_cmdset_0020.c # # Signed-off-by: Josh Boyer # # fs/jffs2/wbuf.c # 2004/11/16 18:53:54+00:00 dwmw2@shinybook.infradead.org +59 -9 # revision 1.76 # date: 2004/11/05 12:41:10; author: jwboyer; state: Exp; lines: +3 -1 # Fixed compilation with NAND=y but NOR_ECC=n. Ferenc was right in the first # place. Perhaps my stupidity is a reason to remove these config options finally # ---------------------------- # revision 1.75 # date: 2004/11/04 22:10:28; author: jwboyer; state: Exp; lines: +1 -5 # Fixup the fix from Ferenc. Stupid me # ---------------------------- # revision 1.74 # date: 2004/11/04 21:42:14; author: havasi; state: Exp; lines: +5 -1 # Make it compilable without JFFS2_FS_NOR_ECC, too # ---------------------------- # revision 1.73 # date: 2004/11/03 12:57:39; author: jwboyer; state: Exp; lines: +57 -9 # Adding ECC'd NOR support to JFFS2. Works with cfi_cmdset_0020.c # # Signed-off-by: Josh Boyer # # fs/jffs2/scan.c # 2004/11/16 18:53:54+00:00 dwmw2@shinybook.infradead.org +3 -3 # revision 1.113 # date: 2004/11/03 12:57:39; author: jwboyer; state: Exp; lines: +3 -3 # Adding ECC'd NOR support to JFFS2. Works with cfi_cmdset_0020.c # # Signed-off-by: Josh Boyer # ---------------------------- # # fs/jffs2/os-linux.h # 2004/11/16 18:53:54+00:00 dwmw2@shinybook.infradead.org +18 -4 # revision 1.50 # date: 2004/11/04 22:10:28; author: jwboyer; state: Exp; lines: +5 -2 # Fixup the fix from Ferenc. Stupid me # ---------------------------- # revision 1.49 # date: 2004/11/04 21:42:14; author: havasi; state: Exp; lines: +3 -3 # Make it compilable without JFFS2_FS_NOR_ECC, too # ---------------------------- # revision 1.48 # date: 2004/11/03 12:57:39; author: jwboyer; state: Exp; lines: +15 -4 # Adding ECC'd NOR support to JFFS2. Works with cfi_cmdset_0020.c # # Signed-off-by: Josh Boyer # # fs/jffs2/fs.c # 2004/11/16 18:53:54+00:00 dwmw2@shinybook.infradead.org +9 -1 # revision 1.47 # date: 2004/11/03 12:57:39; author: jwboyer; state: Exp; lines: +9 -1 # Adding ECC'd NOR support to JFFS2. Works with cfi_cmdset_0020.c # # Signed-off-by: Josh Boyer # # fs/jffs2/erase.c # 2004/11/16 18:53:54+00:00 dwmw2@shinybook.infradead.org +7 -3 # revision 1.65 # date: 2004/11/13 10:51:47; author: dedekind; state: Exp; lines: +2 -2 # Use kvec instead of iovec structure to pass to the # jffs2_flash_direct_writev() function. # ---------------------------- # revision 1.64 # date: 2004/11/12 15:25:14; author: jwboyer; state: Exp; lines: +5 -10 # Make cleanmarkers on NOR always write directly. This fixes some ECOS problems # as well. # ---------------------------- # revision 1.63 # date: 2004/11/11 12:38:28; author: dwmw2; state: Exp; lines: +2 -1 # Set bad_offset when erase fails under eCos # ---------------------------- # revision 1.62 # date: 2004/11/03 12:57:39; author: jwboyer; state: Exp; lines: +10 -2 # Adding ECC'd NOR support to JFFS2. Works with cfi_cmdset_0020.c # # Signed-off-by: Josh Boyer # # fs/jffs2/Makefile # 2004/11/16 18:53:54+00:00 dwmw2@shinybook.infradead.org +2 -1 # revision 1.7 # date: 2004/11/03 12:57:38; author: jwboyer; state: Exp; lines: +2 -1 # Adding ECC'd NOR support to JFFS2. Works with cfi_cmdset_0020.c # # Signed-off-by: Josh Boyer # # fs/Kconfig # 2004/11/16 18:53:54+00:00 dwmw2@shinybook.infradead.org +9 -0 # revision 1.8 # date: 2004/11/03 12:57:37; author: jwboyer; state: Exp; lines: +9 -0 # Adding ECC'd NOR support to JFFS2. Works with cfi_cmdset_0020.c # # Signed-off-by: Josh Boyer # # ChangeSet # 2004/11/16 02:17:36-05:00 jgarzik@pobox.com # [libata sata_uli] add 5281 support, fix SATA phy setup for others # # Contributed by Peer Chen @ ULi and tested by a user. # # drivers/scsi/sata_uli.c # 2004/11/16 02:17:30-05:00 jgarzik@pobox.com +23 -28 # [libata sata_uli] add 5281 support, fix SATA phy setup for others # # Contributed by Peer Chen @ ULi and tested by a user. # # ChangeSet # 2004/11/14 22:20:03-05:00 jgarzik@pobox.com # [sound/oss] use module_param() in soundcard.c and uart401.c # # ChangeSet # 2004/11/14 22:19:16-05:00 jgarzik@pobox.com # [sound/oss i810_audio] use module_param() # # Also, set MODULE_AUTHOR and correct module name in a macro. # # ChangeSet # 2004/11/14 18:33:29-05:00 webvenza@libero.it # [PATCH] convert sis900 to new style parameters # # Signed-off-by: Jeff Garzik # # ChangeSet # 2004/11/14 19:16:42-05:00 ralf@linux-mips.org # [PATCH] Another big 6pack patch # # Below another 6pack patch which I've got sitting in my repository for a # while already. The patch does: # # o Update my callsign # o Cleanup the internal for synchronization with a 6pack TNC a little bit # so it won't result in heaps and piles of messages in syslogs as it used # to do. # o Does paranoia checks for the maximum allowable packet size on transmit. # There was a slight chance this might have resulted in a crash in just # the right configuration. # o Verifies the address family for the SIOCSIFHWADDR network interface # ioctl. # o Tries to do proper locking so nothing will access dev->dev_addr in # midflight while changing the layer 2 address. # o Uses an intermediate buffer for the SIOCSIFHWADDR ioctl so an error in # copy_from_user can't result in a half-modified MAC address. # o Swaps the arguments of decode_prio_command, decode_std_command and # decode_data such that for consistency the struct sixpack pointer will be # the first argument like everywhere else. # # Signed-off-by: Jeff Garzik # # ChangeSet # 2004/11/14 18:29:10-05:00 jgarzik@pobox.com # Merge pobox.com:/garz/repo/linux-2.6 # into pobox.com:/garz/repo/netdev-2.6/misc # # sound/oss/uart401.c # 2004/11/14 22:19:57-05:00 jgarzik@pobox.com +4 -4 # [sound/oss] use module_param() in soundcard.c and uart401.c # # sound/oss/soundcard.c # 2004/11/14 22:19:57-05:00 jgarzik@pobox.com +2 -2 # [sound/oss] use module_param() in soundcard.c and uart401.c # # sound/oss/i810_audio.c # 2004/11/14 22:19:11-05:00 jgarzik@pobox.com +6 -6 # [sound/oss i810_audio] use module_param() # # Also, set MODULE_AUTHOR and correct module name in a macro. # # drivers/net/hamradio/6pack.c # 2004/11/02 13:51:05-05:00 ralf@linux-mips.org +179 -191 # Another big 6pack patch # # drivers/net/sis900.c # 2004/11/12 10:33:20-05:00 webvenza@libero.it +4 -3 # convert sis900 to new style parameters # # drivers/net/Kconfig # 2004/11/14 18:29:06-05:00 jgarzik@pobox.com +0 -0 # Auto merged # # ChangeSet # 2004/11/11 22:23:44+11:00 airlied@starflyer.(none) # drm: in-correct locking in intel drms # # The locking in the intel drms is incorrect it doesn't check # the current context owns the lock, just that someone does. # This could allow strange things to happen with multiple clients. # # From: Stefan Dirsch # Approved-by: Dave Airlie # # drivers/char/drm/i915_irq.c # 2004/11/11 22:23:34+11:00 airlied@starflyer.(none) +1 -4 # drm: in-correct locking in intel drms # # The locking in the intel drms is incorrect it doesn't check # the current context owns the lock, just that someone does. # This could allow strange things to happen with multiple clients. # # From: Stefan Dirsch # Approved-by: Dave Airlie # # drivers/char/drm/i915_dma.c # 2004/11/11 22:23:34+11:00 airlied@starflyer.(none) +5 -16 # drm: in-correct locking in intel drms # # The locking in the intel drms is incorrect it doesn't check # the current context owns the lock, just that someone does. # This could allow strange things to happen with multiple clients. # # From: Stefan Dirsch # Approved-by: Dave Airlie # # drivers/char/drm/i830_irq.c # 2004/11/11 22:23:34+11:00 airlied@starflyer.(none) +1 -4 # drm: in-correct locking in intel drms # # The locking in the intel drms is incorrect it doesn't check # the current context owns the lock, just that someone does. # This could allow strange things to happen with multiple clients. # # From: Stefan Dirsch # Approved-by: Dave Airlie # # drivers/char/drm/i830_dma.c # 2004/11/11 22:23:34+11:00 airlied@starflyer.(none) +6 -24 # drm: in-correct locking in intel drms # # The locking in the intel drms is incorrect it doesn't check # the current context owns the lock, just that someone does. # This could allow strange things to happen with multiple clients. # # From: Stefan Dirsch # Approved-by: Dave Airlie # # drivers/char/drm/i810_dma.c # 2004/11/11 22:23:34+11:00 airlied@starflyer.(none) +10 -37 # drm: in-correct locking in intel drms # # The locking in the intel drms is incorrect it doesn't check # the current context owns the lock, just that someone does. # This could allow strange things to happen with multiple clients. # # From: Stefan Dirsch # Approved-by: Dave Airlie # # ChangeSet # 2004/11/11 21:52:12+11:00 airlied@starflyer.(none) # drm: remove use of drm_agp use agp backend directly. # # This removes the inter module stuff between the DRM and AGP. # # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_drv.c # 2004/11/11 21:52:02+11:00 airlied@starflyer.(none) +0 -1 # drm: remove use of drm_agp use agp backend directly. # # This removes the inter module stuff between the DRM and AGP. # # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_agpsupport.c # 2004/11/11 21:52:02+11:00 airlied@starflyer.(none) +37 -66 # drm: remove use of drm_agp use agp backend directly. # # This removes the inter module stuff between the DRM and AGP. # # Signed-off-by: Dave Airlie # # drivers/char/drm/drmP.h # 2004/11/11 21:52:02+11:00 airlied@starflyer.(none) +0 -1 # drm: remove use of drm_agp use agp backend directly. # # This removes the inter module stuff between the DRM and AGP. # # Signed-off-by: Dave Airlie # # ChangeSet # 2004/11/11 21:15:33+11:00 airlied@starflyer.(none) # drm: fix Kconfig dependency # # fixup DRM/AGP Kconfig inter-dependency... # # From: Roman Zippel # Signed-off-by: Dave Airlie # # drivers/char/drm/Kconfig # 2004/11/11 21:15:23+11:00 airlied@starflyer.(none) +1 -0 # drm: fix Kconfig dependency # # fixup DRM/AGP Kconfig inter-dependency... # # From: Roman Zippel # Signed-off-by: Dave Airlie # # ChangeSet # 2004/11/11 20:53:06+11:00 airlied@starflyer.(none) # drm: fix warning for missing vunmap # # In file included from drivers/char/drm/drmP.h:795, # from drivers/char/drm/drm_dma.c:36: # drivers/char/drm/drm_memory.h: In function `drm_ioremapfree': # drivers/char/drm/drm_memory.h:191: warning: implicit declaration of function # `vunmap' # # Signed-off-by: Andrew Morton # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_memory.h # 2004/11/11 20:52:55+11:00 airlied@starflyer.(none) +1 -0 # drm: fix warning for missing vunmap # # In file included from drivers/char/drm/drmP.h:795, # from drivers/char/drm/drm_dma.c:36: # drivers/char/drm/drm_memory.h: In function `drm_ioremapfree': # drivers/char/drm/drm_memory.h:191: warning: implicit declaration of function # `vunmap' # # Signed-off-by: Andrew Morton # Signed-off-by: Dave Airlie # # ChangeSet # 2004/11/11 02:56:38-05:00 len.brown@intel.com # [ACPI] CPU hotplug, use kobject_hotplug(), kobject_register() # # Signed-off-by: Anil S. Keshavamurthy # Signed-off-by: Len Brown # # drivers/acpi/scan.c # 2004/11/11 02:56:31-05:00 len.brown@intel.com +1 -2 # Use kobject_register() # # drivers/acpi/processor.c # 2004/11/11 02:56:31-05:00 len.brown@intel.com +4 -54 # Use kobject_hotplug() # # drivers/acpi/container.c # 2004/11/11 02:56:31-05:00 len.brown@intel.com +3 -49 # Use kobject_hotplug() # # ChangeSet # 2004/11/11 02:44:40-05:00 len.brown@intel.com # merge # # include/linux/acpi.h # 2004/11/11 02:44:32-05:00 len.brown@intel.com +0 -0 # merge # # drivers/acpi/scan.c # 2004/11/11 02:44:32-05:00 len.brown@intel.com +0 -0 # merge # # drivers/acpi/processor.c # 2004/11/11 02:44:32-05:00 len.brown@intel.com +5 -4 # merge # # drivers/acpi/pci_irq.c # 2004/11/10 23:16:23-05:00 len.brown@intel.com +0 -0 # Auto merged # # drivers/acpi/bus.c # 2004/11/10 23:16:23-05:00 len.brown@intel.com +0 -0 # Auto merged # # arch/i386/kernel/acpi/boot.c # 2004/11/10 23:16:17-05:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/11/10 16:28:17-08:00 torvalds@ppc970.osdl.org # Fix the fix. # # Silly #endif placement problem. # # arch/i386/kernel/io_apic.c # 2004/11/10 16:28:10-08:00 torvalds@ppc970.osdl.org +1 -1 # Fix the fix. # # Silly #endif placement problem. # # ChangeSet # 2004/11/10 16:25:01-08:00 acme@conectiva.com.br # [PATCH] fix platform_rename_gsi related ia32 build breakage # # "platform_rename_gsi" does not exist unless CONFIG_ACPI_BOOT is defined. # # arch/i386/kernel/io_apic.c # 2004/11/10 15:58:57-08:00 acme@conectiva.com.br +2 -0 # fix platform_rename_gsi related ia32 build breakage # # ChangeSet # 2004/11/10 22:34:21+11:00 airlied@starflyer.(none) # drm: move ati_pcigart into drm core # # This moves the ati_pcigart code into the drm core. # # From: Jon Smirl # Signed-off-by: Dave Airlie # # drivers/char/drm/radeon_drv.c # 2004/11/10 22:34:12+11:00 airlied@starflyer.(none) +0 -1 # drm: move ati_pcigart into drm core # # This moves the ati_pcigart code into the drm core. # # From: Jon Smirl # Signed-off-by: Dave Airlie # # drivers/char/drm/radeon_cp.c # 2004/11/10 22:34:12+11:00 airlied@starflyer.(none) +0 -1 # drm: move ati_pcigart into drm core # # This moves the ati_pcigart code into the drm core. # # From: Jon Smirl # Signed-off-by: Dave Airlie # # drivers/char/drm/r128_drv.c # 2004/11/10 22:34:12+11:00 airlied@starflyer.(none) +0 -1 # drm: move ati_pcigart into drm core # # This moves the ati_pcigart code into the drm core. # # From: Jon Smirl # Signed-off-by: Dave Airlie # # drivers/char/drm/r128_cce.c # 2004/11/10 22:34:12+11:00 airlied@starflyer.(none) +0 -1 # drm: move ati_pcigart into drm core # # This moves the ati_pcigart code into the drm core. # # From: Jon Smirl # Signed-off-by: Dave Airlie # # drivers/char/drm/ati_pcigart.c # 2004/11/10 22:34:12+11:00 airlied@starflyer.(none) +6 -5 # drm: move ati_pcigart into drm core # # This moves the ati_pcigart code into the drm core. # # From: Jon Smirl # Signed-off-by: Dave Airlie # # drivers/char/drm/Makefile # 2004/11/10 22:34:12+11:00 airlied@starflyer.(none) +1 -1 # drm: move ati_pcigart into drm core # # This moves the ati_pcigart code into the drm core. # # From: Jon Smirl # Signed-off-by: Dave Airlie # # drivers/char/drm/ati_pcigart.c # 2004/11/10 22:26:00+11:00 airlied@starflyer.(none) +0 -0 # Rename: drivers/char/drm/ati_pcigart.h -> drivers/char/drm/ati_pcigart.c # # ChangeSet # 2004/11/08 23:32:53-05:00 jgarzik@pobox.com # Hand-merge module_param() conflicts in s2io net driver. # # drivers/net/s2io.c # 2004/11/08 23:32:47-05:00 jgarzik@pobox.com +2 -14 # Hand-merge module_param() conflicts in s2io net driver. # # drivers/net/s2io.h # 2004/11/08 23:27:33-05:00 jgarzik@pobox.com +0 -0 # Auto merged # # drivers/net/Kconfig # 2004/11/08 23:27:33-05:00 jgarzik@pobox.com +0 -0 # Auto merged # # ChangeSet # 2004/11/08 23:13:41-05:00 raghavendra.koushik@s2io.com # [PATCH] S2io: styling # # Attached is the patch to implement comments about styling # and few other changes. # Following is list of changes. # 1. Incorporated Randy's comment about C99 format for s2io_driver # structure initialization. # 2. Driver version displayed at load time. # 3. If initialization failed in s2io_init_nic(), appropriate error # codes are returned. # 4. #ifdef SET_ETHTOOL_OPS removed in couple of places. # # Signed-off-by: Raghavendra Koushik # Signed-off-by: Ravinandan Arakali # Signed-off-by: Jeff Garzik # # drivers/net/s2io.h # 2004/10/26 19:45:48-04:00 raghavendra.koushik@s2io.com +0 -6 # S2io: styling # # drivers/net/s2io.c # 2004/10/26 19:45:48-04:00 raghavendra.koushik@s2io.com +14 -7 # S2io: styling # # ChangeSet # 2004/11/08 23:13:28-05:00 raghavendra.koushik@s2io.com # [PATCH] S2io: modified loadable parameters # # Attached is the patch to implement module loadable parameters as per new API. # Following is the list of changes. # # 1. Used new module_param() API. # 2. List of variables for tx_fifo_len and rx_ring_sz replaced with array. # 3. Some of the module parameters which can be set thru setpci command have # been removed, such as latency_timer, max_read_byte_cnt, max_split_transactions. # 4. Other parameters which were felt to be not required, such as rx_prio, # tx_prio have been removed. # 5. Interrupt moderation parameters(such as tx_urange_*) are no longer module # loadable parameters since they can be configured thru' a separate patch # available to customers. # 6. Changed default max_read_byte_count to 1024. # 7. If scatter-gather is enabled, checksum is enabled too. # 8. Not verifying if module loadable parameters are within valid range # (verify_load_param() removed). # # Signed-off-by: Raghavendra Koushik # Signed-off-by: Ravinandan Arakali # Signed-off-by: Jeff Garzik # # drivers/net/s2io.h # 2004/10/26 19:43:20-04:00 raghavendra.koushik@s2io.com +0 -1 # S2io: modified loadable parameters # # drivers/net/s2io.c # 2004/10/26 19:43:20-04:00 raghavendra.koushik@s2io.com +58 -428 # S2io: modified loadable parameters # # ChangeSet # 2004/11/08 23:13:17-05:00 raghavendra.koushik@s2io.com # [PATCH] S2io: 2 buffer mode with copy # # This patch addresses the comments by Chris Leech about # skb->mac.ethernet resulting in NULL dereference with the old method # of implementing 2 buffer mode. The new method performs a copy of the # MAC header to the head of the payload. This is a stop-gap measure till # the fragmented skb receive feature in the kernel is made functional. # # Also, using GFP_KERNEL flag for buffer0, buffer1 memory allocation # instead of GFP_ATOMIC. # # Signed-off-by: Raghavendra Koushik # Signed-off-by: Ravinandan Arakali # Signed-off-by: Jeff Garzik # # drivers/net/s2io.c # 2004/10/26 19:40:43-04:00 raghavendra.koushik@s2io.com +14 -24 # S2io: 2 buffer mode with copy # # ChangeSet # 2004/11/08 23:13:06-05:00 raghavendra.koushik@s2io.com # [PATCH] S2io: new functions for card restart # # The attached patch incorporates Jeff's comments related to creating # separate functions for restarting the NIC(without using close and # open entry points) and few other comments. Complete list of changes # are as follows: # # 1. Two new functions s2io_card_down() and s2io_card_up() are defined # and are called during reset procedure instead of close and open # routines. # 2. tasklet_status field is now made as unsigned long. # 3. On getting serious error, queue is stopped before resetting the card. # 4. Removed the check for "queue stopped" in xmit routine. # # Signed-off-by: Raghavendra Koushik # Signed-off-by: Ravinandan Arakali # Signed-off-by: Jeff Garzik # # drivers/net/s2io.h # 2004/10/26 19:36:17-04:00 raghavendra.koushik@s2io.com +7 -1 # S2io: new functions for card restart # # drivers/net/s2io.c # 2004/10/26 19:36:17-04:00 raghavendra.koushik@s2io.com +145 -131 # S2io: new functions for card restart # # ChangeSet # 2004/11/08 23:12:25-05:00 raghavendra.koushik@s2io.com # [PATCH] S2io: two buffer mode # # Attached is the patch for implementing 2-buffer mode on Rx path. # # On certain systems when a DMA has to happen on an un-aligned memory # location performance will take a significant hit. It's standard # practice to offset the Rx buffer address by 2 (as Mac header is 14 # bytes) so the IP header starts from an aligned location. Obviously # using a single Rx buffer both cannot be achieved. Thus XFrame supports # something called 2 buffer Rx mode, where in the Rx'ed frame is split # into 2 parts, one is the Ethernet header and the other is the Ethernet # payload. So now we can allocate proper aligned memory for both buffers, # hence the DMA is not slowed down. Also, the Ethernet payload(starting # from L3 header) is on an aligned location so OS need not have to do # un-aligned accesses to process IP header. To achieve this, the kernel # function eth_type_trans functionality has to be partially implemented # in the driver itself. # # Signed-off-by: Raghavendra Koushik # Signed-off-by: Ravinandan Arakali # Signed-off-by: Jeff Garzik # # drivers/net/s2io.h # 2004/10/12 00:22:23-04:00 raghavendra.koushik@s2io.com +57 -0 # S2io: two buffer mode # # drivers/net/s2io.c # 2004/10/12 19:49:28-04:00 raghavendra.koushik@s2io.com +389 -1 # S2io: two buffer mode # # drivers/net/Kconfig # 2004/10/11 23:06:36-04:00 raghavendra.koushik@s2io.com +11 -0 # S2io: two buffer mode # # ChangeSet # 2004/11/08 23:12:13-05:00 raghavendra.koushik@s2io.com # [PATCH] S2io: NAPI fix # # 1. When processing Rx packets, making sure that get offset of ring # does not cross the put offset. # # 2. when NAPI is not in use a new spinlock(put_lock) is used to make # sure accessing put offset of ring is atomic. # # 3. Also introduced a new vaiable put_pos in nic_t to keep track of # absolute position of the put pointer of Rx ring. # # 4. When NAPI is used, fill_rx_buffer is not called from the interrupt # handler(s2io_isr) . # # 5. In s2io_poll, decrementing packets processed is done inside the # while loop unlike out side it as was being done last time. # # Signed-off-by: Raghavendra Koushik # Signed-off-by: Ravinandan Arakali # Signed-off-by: Jeff Garzik # # drivers/net/s2io.h # 2004/10/12 00:19:45-04:00 raghavendra.koushik@s2io.com +8 -0 # S2io: NAPI fix # # drivers/net/s2io.c # 2004/10/12 00:19:45-04:00 raghavendra.koushik@s2io.com +110 -74 # S2io: NAPI fix # # ChangeSet # 2004/11/08 23:12:02-05:00 raghavendra.koushik@s2io.com # [PATCH] S2io: new txd allocation # # The attached patch contains a modified scheme for allocating Tx descriptor # blocks. # More description follows. # # In the old scheme, the entire Tx descriptor space was allocated in # one go. This could cause driver load to fail on systems with low(or # scattered) memory. The Tx descriptor blocks are now allocated on # per-page basis. A new structure (list_info) has been introduced in # nic_t structure to keep track of the physical and virtual addresses # of every TxD allocated this way. # # Signed-off-by: Raghavendra Koushik # Signed-off-by: Ravinandan Arakali # Signed-off-by: Jeff Garzik # # drivers/net/s2io.h # 2004/10/11 20:20:24-04:00 raghavendra.koushik@s2io.com +9 -8 # S2io: new txd allocation # # drivers/net/s2io.c # 2004/10/11 20:20:24-04:00 raghavendra.koushik@s2io.com +99 -55 # S2io: new txd allocation # # ChangeSet # 2004/11/08 23:11:50-05:00 raghavendra.koushik@s2io.com # [PATCH] S2io: module loadable parameters # # 1. Max Txds per List. # # 2. statistics refresh time # # 3. pause frame control parameters including gap between two successive # frames, threshold watermarks # # 4. RTI and TTI configuration parameters including ranges, packet # counts and timeout periods. For further information please read the # section 3.5 of XFrame H/W spec. # # 5. PCI/PCI-X configuration variables latency_timer, MMRBC and OST. # # 6. OS offload features TSO (If support available) and checksum offload. # # 7. If NAPI is not in use, a variable indicate_max_pkts can be used # to limit number of Rx side packets processed for one call to Rx # Intr handler. # # Signed-off-by: Raghavendra Koushik # Signed-off-by: Ravinandan Arakali # Signed-off-by: Jeff Garzik # # drivers/net/s2io.h # 2004/10/11 18:34:23-04:00 raghavendra.koushik@s2io.com +3 -3 # S2io: module loadable parameters # # drivers/net/s2io.c # 2004/10/11 18:34:23-04:00 raghavendra.koushik@s2io.com +416 -77 # S2io: module loadable parameters # # ChangeSet # 2004/11/08 23:11:10-05:00 raghavendra.koushik@s2io.com # [PATCH] S2io: hardware fixes # # 1. Xena3's with a set of subsystem IDs had Link LED problems, fixed # that specifically for them. # # 2. To write into the Keyed Mac_Cfg register to enable broadcast, # writing two 32 bit writes into it along with a write to the key # register rather than a single write to key and a 64 bit write to # mac_cfg. This is necessary on 32 bit systems where a writeq(64 bit # write) is actually two writel (32 bit writes). # # 3. Writes to some special registers mentioned in UG is being done by # a special macro which defines which 32 bits of the 64 bit register # is to be written first. Again this applies only on 32 bit systems. # # 4. Configured pause frame related water marks and a shared_split # value which describes the Max TXDMA related split transaction that # can be used without giving room for the Rx transactions. # # 5. The mac_rmac_err_reg R1 register will be cleared in the interrupt # handler itself rather than in the scheduled task as was being done # previously. # # 6. Even on PCC_FB_ECC error the card will be reset by disabling # adapter enable bit. # # Signed-off-by: Raghavendra Koushik # Signed-off-by: Ravinandan Arakali # Signed-off-by: Jeff Garzik # # drivers/net/s2io.h # 2004/10/08 18:20:09-04:00 raghavendra.koushik@s2io.com +21 -0 # S2io: hardware fixes # # drivers/net/s2io.c # 2004/10/07 14:45:41-04:00 raghavendra.koushik@s2io.com +109 -21 # S2io: hardware fixes # # ChangeSet # 2004/11/08 23:10:59-05:00 raghavendra.koushik@s2io.com # [PATCH] S2io: optimizations # # 1. Definitions of LOW and PANIC levels of the Rx buffers have changed. # # 2. In wait_for_cmd_complete there is no longer a writeq but just a # read and wait for strobe bit to reset. # # 3. In s2io_isr, the isr_lock has been done away with also the NICs # interrupt are no longer disabled explicitly on entering the interrupt # handler and re-enabled again before leaving it. # # 4. Also clearing the semaphore "tasklet_status" when exiting # erroneously from s2io_isr after failing fill_rx_buffer call. # # 5. The set/reset Tx Csum function through ethtool was added to the # ethtool_ops structure. # # 6. Added a Rx side error code in the rx_osm_handler function. # # 7. No longer stopping and waking Tx queue when link state changes in # s2io_link function. # # 8. removed the isr_lock spinlock from the s2io_nic structure. # # 9. changed parameters which determine thresholds(LOW and PANIC) # to replenish Rx buffers. # This has been found to result in better performance. # # Signed-off-by: Raghavendra Koushik # Signed-off-by: Ravinandan Arakali # Signed-off-by: Jeff Garzik # # drivers/net/s2io.h # 2004/10/06 20:37:48-04:00 raghavendra.koushik@s2io.com +0 -1 # S2io: optimizations # # drivers/net/s2io.c # 2004/10/06 20:37:33-04:00 raghavendra.koushik@s2io.com +26 -59 # S2io: optimizations # # ChangeSet # 2004/11/08 23:10:48-05:00 raghavendra.koushik@s2io.com # [PATCH] S2io: sw bug fixes # # 1. In free_rx_buffers clearing out RxDs not owned by Xena. # # 2. In alarm_intr_handler, when a serr error occurs, schedule a task # to reset the card rather than stopping Tx queue. # # 3. In s2io_close freeing IRQ before calling s2io_reset also added a # new call to flush queued tasks. This is not done if the s2io_close # itself is called from a queued task like s2io_restart_nic. # # 4. read_eeprom function has been changed such that data to be returned # is sent as an input argument and the return value represents a # pass/fail. The previous implementation as Randy had pointed out was # error prone as on failure it returned -1 which can be interpreted # as all ff's, so any data area which contained ff's in the eeprom was # likely to be treated as an error. # # 5. Added a flag "task_flag" to track if the call to s2io_close is # coming from the s2io_restart_nic function or from the ifconfig # down called by user. # # 6. Moved register_netdev call from just after setting entry points # to the end of the s2io_init_nic function. # # 7. In s2io.h field added a new member into the s2io_nic structure # called "task_flag". # # Signed-off-by: Raghavendra Koushik # Signed-off-by: Ravinandan Arakali # Signed-off-by: Jeff Garzik # # drivers/net/s2io.h # 2004/10/06 19:19:53-04:00 raghavendra.koushik@s2io.com +2 -0 # S2io: sw bug fixes # # drivers/net/s2io.c # 2004/10/06 19:19:53-04:00 raghavendra.koushik@s2io.com +37 -21 # S2io: sw bug fixes # # ChangeSet # 2004/11/08 23:10:36-05:00 raghavendra.koushik@s2io.com # [PATCH] S2io: cosmetic changes # # 1. Indentation, change in comment styles, variable name changes etc. # 2. Changed the value written to dtx_control register to force XGXS reset. # 3. weight parameter(NAPI) changed to 90 for better performance. # # Signed-off-by: Raghavendra Koushik # Signed-off-by: Ravinandan Arakali # Signed-off-by: Jeff Garzik # # drivers/net/s2io.h # 2004/10/06 16:03:08-04:00 raghavendra.koushik@s2io.com +63 -127 # S2io: cosmetic changes # # drivers/net/s2io.c # 2004/10/06 16:03:08-04:00 raghavendra.koushik@s2io.com +1000 -943 # S2io: cosmetic changes # # drivers/net/s2io-regs.h # 2004/10/06 16:03:08-04:00 raghavendra.koushik@s2io.com +3 -0 # S2io: cosmetic changes # # ChangeSet # 2004/11/06 12:44:08-05:00 nacc@us.ibm.com # [PATCH] net/gt96100eth: replace gt96100_delay() with msleep_interruptible() # # Uses msleep_interruptible() instead of schedule_timeout() # in the gt96100_delay() function. Corrects one comment to correspond to # the code. # # Signed-off-by: Nishanth Aravamudan # Signed-off-by: Jeff Garzik # # drivers/net/gt96100eth.c # 2004/11/05 12:45:48-05:00 nacc@us.ibm.com +3 -5 # net/gt96100eth: replace gt96100_delay() with msleep_interruptible() # # ChangeSet # 2004/11/06 12:26:16-05:00 jgarzik@pobox.com # Merge pobox.com:/garz/repo/linux-2.6 # into pobox.com:/garz/repo/netdev-2.6/janitor # # drivers/net/8390.c # 2004/11/06 12:26:13-05:00 jgarzik@pobox.com +0 -0 # Auto merged # # ChangeSet # 2004/11/05 20:00:41+11:00 airlied@starflyer.(none) # drm: make pcigart functions inline # # with these unstatic uninline the kernel wouldn't build with both configured. # # Signed-off-by: Dave Airlie # # drivers/char/drm/radeon_cp.c # 2004/11/05 20:00:30+11:00 airlied@starflyer.(none) +1 -0 # drm: make pcigart functions inline # # with these unstatic uninline the kernel wouldn't build with both configured. # # Signed-off-by: Dave Airlie # # drivers/char/drm/r128_cce.c # 2004/11/05 20:00:30+11:00 airlied@starflyer.(none) +1 -0 # drm: make pcigart functions inline # # with these unstatic uninline the kernel wouldn't build with both configured. # # Signed-off-by: Dave Airlie # # drivers/char/drm/ati_pcigart.h # 2004/11/05 20:00:30+11:00 airlied@starflyer.(none) +39 -38 # drm: make pcigart functions inline # # with these unstatic uninline the kernel wouldn't build with both configured. # # Signed-off-by: Dave Airlie # # ChangeSet # 2004/11/04 22:32:38+11:00 airlied@starflyer.(none) # drm: rearrange some functions for new split # # This change moves some functions into different C files to align things # a bit more correctly... # # From: Jon Smirl # Approved-by: Dave Airlie # # drivers/char/drm/drm_stub.c # 2004/11/04 22:32:28+11:00 airlied@starflyer.(none) +73 -7 # drm: rearrange some functions for new split # # This change moves some functions into different C files to align things # a bit more correctly... # # From: Jon Smirl # Approved-by: Dave Airlie # # drivers/char/drm/drm_lock.c # 2004/11/04 22:32:28+11:00 airlied@starflyer.(none) +139 -4 # drm: rearrange some functions for new split # # This change moves some functions into different C files to align things # a bit more correctly... # # From: Jon Smirl # Approved-by: Dave Airlie # # drivers/char/drm/drm_ioctl.c # 2004/11/04 22:32:28+11:00 airlied@starflyer.(none) +8 -0 # drm: rearrange some functions for new split # # This change moves some functions into different C files to align things # a bit more correctly... # # From: Jon Smirl # Approved-by: Dave Airlie # # drivers/char/drm/drm_fops.c # 2004/11/04 22:32:28+11:00 airlied@starflyer.(none) +290 -0 # drm: rearrange some functions for new split # # This change moves some functions into different C files to align things # a bit more correctly... # # From: Jon Smirl # Approved-by: Dave Airlie # # drivers/char/drm/drm_drv.c # 2004/11/04 22:32:28+11:00 airlied@starflyer.(none) +7 -503 # drm: rearrange some functions for new split # # This change moves some functions into different C files to align things # a bit more correctly... # # From: Jon Smirl # Approved-by: Dave Airlie # # drivers/char/drm/drmP.h # 2004/11/04 22:32:28+11:00 airlied@starflyer.(none) +12 -10 # drm: rearrange some functions for new split # # This change moves some functions into different C files to align things # a bit more correctly... # # From: Jon Smirl # Approved-by: Dave Airlie # # ChangeSet # 2004/11/04 21:35:52+11:00 airlied@starflyer.(none) # drm: move fops into drivers # # move the drm file operations into the driver. # # From: Jon Smirl # Approved-by: Dave Airlie # # drivers/char/drm/tdfx_drv.c # 2004/11/04 21:35:43+11:00 airlied@starflyer.(none) +9 -0 # drm: move fops into drivers # # move the drm file operations into the driver. # # From: Jon Smirl # Approved-by: Dave Airlie # # drivers/char/drm/sis_drv.c # 2004/11/04 21:35:43+11:00 airlied@starflyer.(none) +9 -0 # drm: move fops into drivers # # move the drm file operations into the driver. # # From: Jon Smirl # Approved-by: Dave Airlie # # drivers/char/drm/radeon_drv.c # 2004/11/04 21:35:43+11:00 airlied@starflyer.(none) +9 -0 # drm: move fops into drivers # # move the drm file operations into the driver. # # From: Jon Smirl # Approved-by: Dave Airlie # # drivers/char/drm/r128_drv.c # 2004/11/04 21:35:43+11:00 airlied@starflyer.(none) +9 -0 # drm: move fops into drivers # # move the drm file operations into the driver. # # From: Jon Smirl # Approved-by: Dave Airlie # # drivers/char/drm/mga_drv.c # 2004/11/04 21:35:43+11:00 airlied@starflyer.(none) +9 -0 # drm: move fops into drivers # # move the drm file operations into the driver. # # From: Jon Smirl # Approved-by: Dave Airlie # # drivers/char/drm/i915_drv.c # 2004/11/04 21:35:43+11:00 airlied@starflyer.(none) +9 -0 # drm: move fops into drivers # # move the drm file operations into the driver. # # From: Jon Smirl # Approved-by: Dave Airlie # # drivers/char/drm/i830_drv.c # 2004/11/04 21:35:43+11:00 airlied@starflyer.(none) +9 -0 # drm: move fops into drivers # # move the drm file operations into the driver. # # From: Jon Smirl # Approved-by: Dave Airlie # # drivers/char/drm/i810_drv.c # 2004/11/04 21:35:43+11:00 airlied@starflyer.(none) +9 -0 # drm: move fops into drivers # # move the drm file operations into the driver. # # From: Jon Smirl # Approved-by: Dave Airlie # # drivers/char/drm/drm_vm.c # 2004/11/04 21:35:43+11:00 airlied@starflyer.(none) +1 -0 # drm: move fops into drivers # # move the drm file operations into the driver. # # From: Jon Smirl # Approved-by: Dave Airlie # # drivers/char/drm/drm_stub.c # 2004/11/04 21:35:43+11:00 airlied@starflyer.(none) +1 -1 # drm: move fops into drivers # # move the drm file operations into the driver. # # From: Jon Smirl # Approved-by: Dave Airlie # # drivers/char/drm/drm_fops.c # 2004/11/04 21:35:43+11:00 airlied@starflyer.(none) +1 -0 # drm: move fops into drivers # # move the drm file operations into the driver. # # From: Jon Smirl # Approved-by: Dave Airlie # # drivers/char/drm/drm_drv.c # 2004/11/04 21:35:43+11:00 airlied@starflyer.(none) +0 -13 # drm: move fops into drivers # # move the drm file operations into the driver. # # From: Jon Smirl # Approved-by: Dave Airlie # # drivers/char/drm/drmP.h # 2004/11/04 21:35:43+11:00 airlied@starflyer.(none) +1 -3 # drm: move fops into drivers # # move the drm file operations into the driver. # # From: Jon Smirl # Approved-by: Dave Airlie # # ChangeSet # 2004/11/02 22:20:24+11:00 airlied@starflyer.(none) # drm: rename fn_tbl to driver as it is no longer a function table # # This renames the drm_driver_fn to drm_driver and fn_tbl to driver, # this name is makes much more sense now. # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/tdfx_drv.c # 2004/11/02 22:20:15+11:00 airlied@starflyer.(none) +3 -3 # drm: rename fn_tbl to driver as it is no longer a function table # # This renames the drm_driver_fn to drm_driver and fn_tbl to driver, # this name is makes much more sense now. # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/sis_drv.c # 2004/11/02 22:20:15+11:00 airlied@starflyer.(none) +3 -3 # drm: rename fn_tbl to driver as it is no longer a function table # # This renames the drm_driver_fn to drm_driver and fn_tbl to driver, # this name is makes much more sense now. # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/radeon_drv.c # 2004/11/02 22:20:15+11:00 airlied@starflyer.(none) +3 -3 # drm: rename fn_tbl to driver as it is no longer a function table # # This renames the drm_driver_fn to drm_driver and fn_tbl to driver, # this name is makes much more sense now. # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/r128_drv.c # 2004/11/02 22:20:15+11:00 airlied@starflyer.(none) +3 -3 # drm: rename fn_tbl to driver as it is no longer a function table # # This renames the drm_driver_fn to drm_driver and fn_tbl to driver, # this name is makes much more sense now. # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/mga_drv.c # 2004/11/02 22:20:15+11:00 airlied@starflyer.(none) +3 -3 # drm: rename fn_tbl to driver as it is no longer a function table # # This renames the drm_driver_fn to drm_driver and fn_tbl to driver, # this name is makes much more sense now. # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/i915_drv.c # 2004/11/02 22:20:15+11:00 airlied@starflyer.(none) +3 -3 # drm: rename fn_tbl to driver as it is no longer a function table # # This renames the drm_driver_fn to drm_driver and fn_tbl to driver, # this name is makes much more sense now. # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/i830_drv.c # 2004/11/02 22:20:15+11:00 airlied@starflyer.(none) +3 -3 # drm: rename fn_tbl to driver as it is no longer a function table # # This renames the drm_driver_fn to drm_driver and fn_tbl to driver, # this name is makes much more sense now. # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/i810_drv.c # 2004/11/02 22:20:15+11:00 airlied@starflyer.(none) +3 -3 # drm: rename fn_tbl to driver as it is no longer a function table # # This renames the drm_driver_fn to drm_driver and fn_tbl to driver, # this name is makes much more sense now. # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/gamma_dma.c # 2004/11/02 22:20:15+11:00 airlied@starflyer.(none) +6 -6 # drm: rename fn_tbl to driver as it is no longer a function table # # This renames the drm_driver_fn to drm_driver and fn_tbl to driver, # this name is makes much more sense now. # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/ffb_drv.c # 2004/11/02 22:20:15+11:00 airlied@starflyer.(none) +8 -8 # drm: rename fn_tbl to driver as it is no longer a function table # # This renames the drm_driver_fn to drm_driver and fn_tbl to driver, # this name is makes much more sense now. # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_vm.c # 2004/11/02 22:20:15+11:00 airlied@starflyer.(none) +2 -2 # drm: rename fn_tbl to driver as it is no longer a function table # # This renames the drm_driver_fn to drm_driver and fn_tbl to driver, # this name is makes much more sense now. # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_stub.c # 2004/11/02 22:20:15+11:00 airlied@starflyer.(none) +2 -2 # drm: rename fn_tbl to driver as it is no longer a function table # # This renames the drm_driver_fn to drm_driver and fn_tbl to driver, # this name is makes much more sense now. # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_proc.c # 2004/11/02 22:20:15+11:00 airlied@starflyer.(none) +2 -2 # drm: rename fn_tbl to driver as it is no longer a function table # # This renames the drm_driver_fn to drm_driver and fn_tbl to driver, # this name is makes much more sense now. # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_irq.c # 2004/11/02 22:20:15+11:00 airlied@starflyer.(none) +6 -6 # drm: rename fn_tbl to driver as it is no longer a function table # # This renames the drm_driver_fn to drm_driver and fn_tbl to driver, # this name is makes much more sense now. # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_ioctl.c # 2004/11/02 22:20:15+11:00 airlied@starflyer.(none) +6 -6 # drm: rename fn_tbl to driver as it is no longer a function table # # This renames the drm_driver_fn to drm_driver and fn_tbl to driver, # this name is makes much more sense now. # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_fops.c # 2004/11/02 22:20:15+11:00 airlied@starflyer.(none) +2 -2 # drm: rename fn_tbl to driver as it is no longer a function table # # This renames the drm_driver_fn to drm_driver and fn_tbl to driver, # this name is makes much more sense now. # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_drv.c # 2004/11/02 22:20:15+11:00 airlied@starflyer.(none) +45 -45 # drm: rename fn_tbl to driver as it is no longer a function table # # This renames the drm_driver_fn to drm_driver and fn_tbl to driver, # this name is makes much more sense now. # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_context.c # 2004/11/02 22:20:15+11:00 airlied@starflyer.(none) +4 -4 # drm: rename fn_tbl to driver as it is no longer a function table # # This renames the drm_driver_fn to drm_driver and fn_tbl to driver, # this name is makes much more sense now. # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_bufs.c # 2004/11/02 22:20:15+11:00 airlied@starflyer.(none) +3 -3 # drm: rename fn_tbl to driver as it is no longer a function table # # This renames the drm_driver_fn to drm_driver and fn_tbl to driver, # this name is makes much more sense now. # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drmP.h # 2004/11/02 22:20:15+11:00 airlied@starflyer.(none) +7 -7 # drm: rename fn_tbl to driver as it is no longer a function table # # This renames the drm_driver_fn to drm_driver and fn_tbl to driver, # this name is makes much more sense now. # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # ChangeSet # 2004/11/02 21:59:29+11:00 airlied@starflyer.(none) # drm: drm_memory.c missing from build # # Add drm_memory.c to build. # # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_memory.c # 2004/11/02 21:57:07+11:00 airlied@starflyer.(none) +181 -0 # # drivers/char/drm/drm_memory.c # 2004/11/02 21:57:07+11:00 airlied@starflyer.(none) +0 -0 # BitKeeper file /home/airlied/bitkeeper/drm-test/drivers/char/drm/drm_memory.c # # ChangeSet # 2004/11/02 21:55:16+11:00 airlied@starflyer.(none) # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/tdfx_drv.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +59 -4 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/sis_mm.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +2 -10 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/sis_ds.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +8 -9 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/sis_drv.h # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +14 -0 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/sis_drv.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +75 -2 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/sis_drm.h # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +15 -6 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/radeon_state.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +7 -23 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/radeon_mem.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +10 -11 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/radeon_irq.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +5 -6 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/radeon_drv.h # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +21 -0 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/radeon_drv.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +136 -2 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/radeon_cp.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +6 -7 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/r128_state.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +44 -57 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/r128_irq.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +1 -2 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/r128_drv.h # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +16 -1 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/r128_drv.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +99 -2 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/r128_cce.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +8 -9 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/mga_warp.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +0 -1 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/mga_state.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +0 -1 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/mga_irq.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +1 -2 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/mga_drv.h # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +15 -0 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/mga_drv.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +92 -2 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/mga_dma.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +8 -26 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/i915_mem.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +10 -11 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/i915_irq.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +0 -1 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/i915_drv.h # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +24 -0 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/i915_drv.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +92 -2 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/i915_drm.h # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +25 -12 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/i915_dma.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +5 -22 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/i830_irq.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +0 -1 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/i830_drv.h # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +33 -0 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/i830_drv.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +101 -2 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/i830_drm.h # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +29 -14 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/i830_dma.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +15 -40 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/i810_drv.h # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +31 -4 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/i810_drv.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +93 -2 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/i810_drm.h # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +31 -15 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/i810_dma.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +16 -32 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/ffb_drv.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +4 -6 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_vm.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +61 -59 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_stub.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +34 -120 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_scatter.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +18 -18 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_proc.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +40 -40 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_memory.h # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +0 -158 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_lock.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +5 -5 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_irq.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +20 -18 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_ioctl.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +17 -19 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_init.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +1 -77 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_fops.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +12 -10 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_drv.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +277 -275 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_drawable.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +2 -2 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_dma.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +14 -13 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_core.h # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +11 -17 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_context.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +32 -32 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_bufs.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +70 -69 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_auth.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +15 -15 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_agpsupport.c # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +31 -31 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drmP.h # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +157 -137 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/ati_pcigart.h # 2004/11/02 21:55:07+11:00 airlied@starflyer.(none) +8 -8 # drm: core/personality split for 2.6 kernel # # This changeset gets rid of the DRM() macros and implements a core DRM module # linked to a per graphics card personality module.. # # Remove old 2.4 module parameters and switch to 2.6 module parameters # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # ChangeSet # 2004/11/01 20:44:28+01:00 vojtech@suse.cz # Merge suse.cz:/home/vojtech/bk/linus into suse.cz:/home/vojtech/bk/input # # include/linux/input.h # 2004/11/01 20:44:12+01:00 vojtech@suse.cz +0 -0 # Auto merged # # drivers/input/serio/Kconfig # 2004/11/01 20:44:12+01:00 vojtech@suse.cz +0 -0 # Auto merged # # Documentation/kernel-parameters.txt # 2004/11/01 20:44:12+01:00 vojtech@suse.cz +0 -0 # Auto merged # # drivers/char/drm/drm_memory.h # 2004/11/01 20:27:56+11:00 airlied@starflyer.(none) +0 -0 # Rename: drivers/char/drm/drm_memory.c -> drivers/char/drm/drm_memory.h # # drivers/char/drm/tdfx_drv.h # 2004/11/01 20:12:34+11:00 airlied@starflyer.(none) +0 -0 # Rename: drivers/char/drm/tdfx.h -> drivers/char/drm/tdfx_drv.h # # ChangeSet # 2004/10/31 20:52:40+11:00 airlied@starflyer.(none) # Merge starflyer.(none):/home/airlied/bitkeeper/drm-core # into starflyer.(none):/home/airlied/bitkeeper/drm-test # # drivers/char/drm/drm_stub.c # 2004/10/31 20:52:36+11:00 airlied@starflyer.(none) +0 -0 # Auto merged # # drivers/char/drm/drm_proc.c # 2004/10/31 20:52:36+11:00 airlied@starflyer.(none) +0 -0 # Auto merged # # drivers/char/drm/drm_memory.c # 2004/10/31 20:52:36+11:00 airlied@starflyer.(none) +0 -0 # Auto merged # # drivers/char/drm/drm_irq.c # 2004/10/31 20:52:36+11:00 airlied@starflyer.(none) +0 -0 # Auto merged # # drivers/char/drm/drm_drv.c # 2004/10/31 20:52:36+11:00 airlied@starflyer.(none) +0 -0 # Auto merged # # drivers/char/drm/drm_stub.c # 2004/10/31 20:52:36+11:00 airlied@starflyer.(none) +0 -0 # Merge rename: drivers/char/drm/drm_stub.h -> drivers/char/drm/drm_stub.c # # drivers/char/drm/drm_proc.c # 2004/10/31 20:52:36+11:00 airlied@starflyer.(none) +0 -0 # Merge rename: drivers/char/drm/drm_proc.h -> drivers/char/drm/drm_proc.c # # drivers/char/drm/drm_memory.c # 2004/10/31 20:52:36+11:00 airlied@starflyer.(none) +0 -0 # Merge rename: drivers/char/drm/drm_memory.h -> drivers/char/drm/drm_memory.c # # drivers/char/drm/drm_irq.c # 2004/10/31 20:52:36+11:00 airlied@starflyer.(none) +0 -0 # Merge rename: drivers/char/drm/drm_irq.h -> drivers/char/drm/drm_irq.c # # drivers/char/drm/drm_drv.c # 2004/10/31 20:52:36+11:00 airlied@starflyer.(none) +0 -0 # Merge rename: drivers/char/drm/drm_drv.h -> drivers/char/drm/drm_drv.c # # ChangeSet # 2004/10/31 01:14:20-05:00 len.brown@intel.com # [ACPI] fix mis-merge in processor.c # # drivers/acpi/processor.c # 2004/10/31 01:14:09-05:00 len.brown@intel.com +2 -60 # delete dupe acpi_processor_start() definition # # ChangeSet # 2004/10/30 10:59:44-04:00 margitsw@t-online.de # [PATCH] prism54 sparse fixes # # * On top of Linus's sparse changes, here is a # * fix that further reduces sparse warnings. # # We are still left with 2 warnings caused by the # member "data.pointer" in struct "iwreq_data" being # "__user" (from wireless.h). # # Signed-off-by: Jeff Garzik # # drivers/net/wireless/prism54/prismcompat.h # 2004/10/09 09:20:50-04:00 margitsw@t-online.de +4 -0 # prism54 sparse fixes # # drivers/net/wireless/prism54/isl_ioctl.c # 2004/10/09 08:43:06-04:00 margitsw@t-online.de +14 -10 # prism54 sparse fixes # # ChangeSet # 2004/10/30 10:59:34-04:00 margitsw@t-online.de # [PATCH] prism54 fix resume processing # # * We need to enable the device on resume. # # Signed-off-by: Jeff Garzik # # drivers/net/wireless/prism54/islpci_hotplug.c # 2004/10/07 13:16:27-04:00 margitsw@t-online.de +2 -0 # prism54 fix resume processing # # ChangeSet # 2004/10/30 10:31:06-04:00 shemminger@osdl.org # [PATCH] xircom_tulip_cb: convert to using module_param # # Signed-off-by: Stephen Hemminger # Signed-off-by: Jeff Garzik # # drivers/net/tulip/xircom_tulip_cb.c # 2004/10/18 18:27:10-04:00 shemminger@osdl.org +9 -6 # xircom_tulip_cb: convert to using module_param # # ChangeSet # 2004/10/30 10:29:27-04:00 shemminger@osdl.org # [PATCH] tlan: enable faster hash function # # Cleanout dead code, and use better hash function. The faster hash function # was already there, but not turned on by default. Tested hash function for # 10 million random addresses. # # Signed-off-by: Stephen Hemminger # Signed-off-by: Jeff Garzik # # drivers/net/tlan.h # 2004/10/19 14:14:54-04:00 shemminger@osdl.org +21 -55 # tlan: enable faster hash function # # ChangeSet # 2004/10/30 10:29:16-04:00 shemminger@osdl.org # [PATCH] tlan: make inline's static (rev2) # # Make inline functions static to avoid polluting global namespace. # # Signed-off-by: Stephen Hemminger # Signed-off-by: Jeff Garzik # # drivers/net/tlan.h # 2004/10/19 14:09:38-04:00 shemminger@osdl.org +12 -12 # tlan: make inline's static (rev2) # # ChangeSet # 2004/10/30 10:29:05-04:00 shemminger@osdl.org # [PATCH] tlan: get rid of unneeded global vars (rev 2) # # The global variable media_map is never used. And the media table media # can be static. # # Signed-off-by: Stephen Hemminger # Signed-off-by: Jeff Garzik # # drivers/net/tlan.c # 2004/10/19 14:05:01-04:00 shemminger@osdl.org +1 -3 # tlan: get rid of unneeded global vars (rev 2) # # ChangeSet # 2004/10/30 10:28:50-04:00 shemminger@osdl.org # [PATCH] tlan: use netdev_priv (rev 2) # # Use netdev_priv # # Signed-off-by: Stephen Hemminger # Signed-off-by: Jeff Garzik # # drivers/net/tlan.c # 2004/10/19 14:03:02-04:00 shemminger@osdl.org +34 -34 # tlan: use netdev_priv (rev 2) # # ChangeSet # 2004/10/30 10:26:58-04:00 shemminger@osdl.org # [PATCH] hp100: use inline for comple usage of dev->priv # # Make a separate function for the one more complex usage of netdev_priv. # # Signed-off-by: Stephen Hemminger # Signed-off-by: Jeff Garzik # # drivers/net/hp100.c # 2004/10/18 18:57:57-04:00 shemminger@osdl.org +8 -1 # hp100: use inline for comple usage of dev->priv # # ChangeSet # 2004/10/30 10:26:47-04:00 shemminger@osdl.org # [PATCH] hp100: use netdev_priv (rev 2) # # Here is a revised version of the hp100 patch sequence. # First one just does netdev_priv. # Worked with Jean to get these patches tested. # # Signed-off-by: Stephen Hemminger # Signed-off-by: Jeff Garzik # # drivers/net/hp100.c # 2004/10/18 18:51:14-04:00 shemminger@osdl.org +28 -28 # hp100: use netdev_priv (rev 2) # # ChangeSet # 2004/10/30 10:21:25-04:00 linville@tuxdriver.com # [PATCH] tulip: Add MODULE_VERSION # # Add MODULE_VERSION to the tulip-based drivers # # Signed-off-by: John W. Linville # Signed-off-by: Jeff Garzik # # drivers/net/tulip/xircom_tulip_cb.c # 2004/10/29 20:00:00-04:00 linville@tuxdriver.com +1 -0 # tulip: Add MODULE_VERSION # # drivers/net/tulip/winbond-840.c # 2004/10/29 20:00:00-04:00 linville@tuxdriver.com +1 -0 # tulip: Add MODULE_VERSION # # drivers/net/tulip/tulip_core.c # 2004/10/29 20:00:00-04:00 linville@tuxdriver.com +1 -0 # tulip: Add MODULE_VERSION # # drivers/net/tulip/dmfe.c # 2004/10/29 20:00:00-04:00 linville@tuxdriver.com +1 -0 # tulip: Add MODULE_VERSION # # drivers/net/tulip/de2104x.c # 2004/10/29 20:00:00-04:00 linville@tuxdriver.com +1 -0 # tulip: Add MODULE_VERSION # # ChangeSet # 2004/10/30 10:21:14-04:00 linville@tuxdriver.com # [PATCH] e100: Add MODULE_VERSION # # Add MODULE_VERSION to e100 driver. # # Signed-off-by: John W. Linville # Signed-off-by: Jeff Garzik # # drivers/net/e100.c # 2004/10/29 20:00:00-04:00 linville@tuxdriver.com +1 -0 # e100: Add MODULE_VERSION # # ChangeSet # 2004/10/30 10:21:02-04:00 linville@tuxdriver.com # [PATCH] r8169: Add MODULE_VERSION # # Add MODULE_VERSION to r8169 driver. # # Signed-off-by: John W. Linville # Signed-off-by: Jeff Garzik # # drivers/net/r8169.c # 2004/10/29 20:00:00-04:00 linville@tuxdriver.com +1 -0 # r8169: Add MODULE_VERSION # # ChangeSet # 2004/10/30 10:20:51-04:00 linville@tuxdriver.com # [PATCH] 8139too: Add MODULE_VERSION # # Add MODULE_VERSION to 8139too driver. # # Signed-off-by: John W. Linville # Signed-off-by: Jeff Garzik # # drivers/net/8139too.c # 2004/10/29 20:00:00-04:00 linville@tuxdriver.com +1 -0 # 8139too: Add MODULE_VERSION # # ChangeSet # 2004/10/30 10:20:40-04:00 linville@tuxdriver.com # [PATCH] 3c59x: Add MODULE_VERSION # # Add MODULE_VERSION to 3c59x driver. # # Signed-off-by: John W. Linville # Signed-off-by: Jeff Garzik # # drivers/net/3c59x.c # 2004/10/29 20:00:00-04:00 linville@tuxdriver.com +1 -0 # 3c59x: Add MODULE_VERSION # # ChangeSet # 2004/10/30 09:21:19-04:00 linville@tuxdriver.com # [PATCH] r8169: simplify trick if() expression # # Simplify tricky if() expression in rtl8169_vlan_rx_register(). # # Signed-off-by: John W. Linville # Signed-off-by: Jeff Garzik # # drivers/net/r8169.c # 2004/10/22 21:44:26-04:00 linville@tuxdriver.com +2 -1 # r8169: simplify trick if() expression # # ChangeSet # 2004/10/30 09:21:07-04:00 linville@tuxdriver.com # [PATCH] r8169: fix RxVlan bit manipulation # # Fix manipulation of RxVlan bit in rtl8169_vlan_rx_register(), and # remove it from rtl8169_vlan_rx_kill_vid(). # # Signed-off-by: John W. Linville # Signed-off-by: Jeff Garzik # # drivers/net/r8169.c # 2004/10/21 14:44:23-04:00 linville@tuxdriver.com +4 -6 # r8169: fix RxVlan bit manipulation # # ChangeSet # 2004/10/30 09:20:56-04:00 linville@tuxdriver.com # [PATCH] r8169: endian-swap return of rtl8169_tx_vlan_tag() # # Endian-swap return of rtl8169_tx_vlan_tag() in rtl8169_start_xmit() # # Signed-off-by: John W. Linville # Signed-off-by: Jeff Garzik # # drivers/net/r8169.c # 2004/10/21 14:49:05-04:00 linville@tuxdriver.com +1 -1 # r8169: endian-swap return of rtl8169_tx_vlan_tag() # # ChangeSet # 2004/10/30 08:36:13-04:00 hch@lst.de # [PATCH] unexport ei_tx_timeout # # not used by any module # # Signed-off-by: Jeff Garzik # # drivers/net/8390.c # 2004/10/23 10:17:41-04:00 hch@lst.de +0 -1 # unexport ei_tx_timeout # # ChangeSet # 2004/10/30 08:30:02-04:00 webvenza@libero.it # [PATCH] Add Altimata PHY to sis900 driver # # The attached patch fixes a long standing detection problem with the # sis900 driver. # This PHY chip is used on some Pentium 4 with SiS chipset and on the # Acer Aspire 1705SMi (at least) notebook. # # Signed-Off-By: Daniele Venzano # Signed-off-by: Jeff Garzik # # drivers/net/sis900.c # 2004/10/29 20:00:00-04:00 webvenza@libero.it +1 -0 # Add Altimata PHY to sis900 driver # # ChangeSet # 2004/10/30 08:14:50-04:00 bunk@stusta.de # [PATCH] net/skfp/smt.c: remove an unused function # # The patch below removes an unused function from drivers/net/skfp/smt.c # # Signed-off-by: Adrian Bunk # Signed-off-by: Jeff Garzik # # drivers/net/skfp/smt.c # 2004/10/28 17:19:00-04:00 bunk@stusta.de +0 -7 # net/skfp/smt.c: remove an unused function # # ChangeSet # 2004/10/30 08:14:39-04:00 bunk@stusta.de # [PATCH] net/3c505.c: remove unused functions # # Signed-off-by: Adrian Bunk # Signed-off-by: Jeff Garzik # # drivers/net/3c505.c # 2004/10/28 17:23:08-04:00 bunk@stusta.de +0 -10 # net/3c505.c: remove unused functions # # ChangeSet # 2004/10/30 08:14:29-04:00 bunk@stusta.de # [PATCH] bonding: remove an unused function # # Signed-off-by: Adrian Bunk # Signed-off-by: Jeff Garzik # # drivers/net/bonding/bond_3ad.c # 2004/10/28 17:18:19-04:00 bunk@stusta.de +0 -10 # bonding: remove an unused function # # ChangeSet # 2004/10/30 08:14:16-04:00 dave@thedillows.org # [PATCH] net/typhoon.c: use previously-unused function # # A response to Adrian Bunk's "remove unused function" cleanup patch. # # Signed-off-by: Jeff Garzik # # drivers/net/typhoon.c # 2004/10/28 20:06:45-04:00 dave@thedillows.org +1 -2 # net/typhoon.c: remove an unused function # # ChangeSet # 2004/10/30 08:14:05-04:00 khc@pm.waw.pl # [PATCH] net/wan/n2.c: remove an unused function # # Adrian Bunk writes: # > The patch below removes an unused function from drivers/net/wan/n2.c # # A similar thing, for C101 card. # # Signed-off-by: Krzysztof Halasa # Signed-off-by: Jeff Garzik # # drivers/net/wan/c101.c # 2004/10/28 20:18:31-04:00 khc@pm.waw.pl +0 -3 # net/wan/n2.c: remove an unused function # # ChangeSet # 2004/10/30 08:13:54-04:00 bunk@stusta.de # [PATCH] net/wan/n2.c: remove an unused function # # Signed-off-by: Adrian Bunk # Signed-off-by: Jeff Garzik # # drivers/net/wan/n2.c # 2004/10/28 17:20:30-04:00 bunk@stusta.de +0 -5 # net/wan/n2.c: remove an unused function # # ChangeSet # 2004/10/28 05:00:02-04:00 len.brown@intel.com # merge # # include/acpi/acpi_bus.h # 2004/10/28 04:59:55-04:00 len.brown@intel.com +0 -0 # merge # # drivers/acpi/processor.c # 2004/10/28 04:59:55-04:00 len.brown@intel.com +66 -2 # merge # # include/linux/acpi.h # 2004/10/28 04:45:11-04:00 len.brown@intel.com +0 -0 # Auto merged # # drivers/acpi/scan.c # 2004/10/28 04:45:11-04:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/10/28 04:01:25-04:00 len.brown@intel.com # [ACPI] Initial container driver to support hotplug notifications # on ACPI0004, PNP0A05 and PNP0A06 devices. # # Signed-off-by: Anil S Keshavamurthy # Signed-off-by: Len Brown # # include/acpi/container.h # 2004/09/24 18:26:34-04:00 len.brown@intel.com +13 -0 # Import patch container_drv.patch # # drivers/acpi/container.c # 2004/09/24 18:26:34-04:00 len.brown@intel.com +344 -0 # Import patch container_drv.patch # # include/acpi/container.h # 2004/09/24 18:26:34-04:00 len.brown@intel.com +0 -0 # BitKeeper file /home/lenb/src/26-latest-hotplug/include/acpi/container.h # # drivers/acpi/container.c # 2004/09/24 18:26:34-04:00 len.brown@intel.com +0 -0 # BitKeeper file /home/lenb/src/26-latest-hotplug/drivers/acpi/container.c # # drivers/acpi/Makefile # 2004/09/24 18:26:34-04:00 len.brown@intel.com +1 -0 # Import patch container_drv.patch # # drivers/acpi/Kconfig # 2004/09/24 18:26:34-04:00 len.brown@intel.com +9 -1 # Import patch container_drv.patch # # ChangeSet # 2004/10/28 03:55:03-04:00 len.brown@intel.com # [ACPI] Extend processor driver to support ACPI-based Physical CPU hotplug # # Signed-off-by Anil S Keshavamurthy # Signed-off-by: Len Brown # # drivers/acpi/processor.c # 2004/10/28 03:54:49-04:00 len.brown@intel.com +414 -66 # Import patch processor_drv.patch # # drivers/acpi/Kconfig # 2004/09/24 18:26:31-04:00 len.brown@intel.com +8 -0 # Import patch processor_drv.patch # # ChangeSet # 2004/10/28 03:41:43-04:00 len.brown@intel.com # IA64 CPU hotplug topology # # Extend support for dynamic registration and unregistration of the cpu, # by implementing and exporting arch_register_cpu()/arch_unregister_cpu(). # Also combine multiple implementation of topology_init() functions to # single topology_init() in case of ia64 architecture. # # Signed-off-by: Anil S Keshavamurthy # Signed-off-by: Len Brown # # include/linux/cpu.h # 2004/09/24 18:26:27-04:00 len.brown@intel.com +3 -0 # Import patch topology.patch # # include/asm-ia64/cpu.h # 2004/09/24 18:26:27-04:00 len.brown@intel.com +5 -0 # Import patch topology.patch # # include/asm-i386/cpu.h # 2004/09/24 18:26:27-04:00 len.brown@intel.com +4 -13 # Import patch topology.patch # # drivers/base/cpu.c # 2004/09/24 18:26:27-04:00 len.brown@intel.com +18 -2 # Import patch topology.patch # # arch/ia64/mm/numa.c # 2004/10/28 03:36:29-04:00 len.brown@intel.com +0 -36 # Import patch topology.patch # # arch/ia64/kernel/topology.c # 2004/09/24 18:26:27-04:00 len.brown@intel.com +70 -23 # Import patch topology.patch # # arch/ia64/kernel/Makefile # 2004/09/24 18:26:27-04:00 len.brown@intel.com +2 -1 # Import patch topology.patch # # arch/ia64/dig/Makefile # 2004/09/24 18:26:27-04:00 len.brown@intel.com +0 -5 # Import patch topology.patch # # arch/i386/mach-default/topology.c # 2004/09/24 18:26:27-04:00 len.brown@intel.com +31 -0 # Import patch topology.patch # # ChangeSet # 2004/10/28 03:28:17-04:00 len.brown@intel.com # [ACPI] IA64-specific support for mapping lsapic to cpu array. # analogous i386 and x86_64 code TBD # # Signed-off-by: Anil S Keshavamurthy # Signed-off-by: Len Brown # # include/linux/acpi.h # 2004/09/27 12:55:27-04:00 len.brown@intel.com +14 -0 # Import patch acpi_hotplug_arch.patch # # include/asm-ia64/acpi.h # 2004/09/27 13:00:17-04:00 len.brown@intel.com +1 -1 # Import patch acpi_hotplug_arch.patch # # drivers/acpi/numa.c # 2004/09/27 13:04:23-04:00 len.brown@intel.com +20 -1 # Import patch acpi_hotplug_arch.patch # # arch/ia64/kernel/acpi.c # 2004/10/28 03:26:31-04:00 len.brown@intel.com +106 -2 # Import patch acpi_hotplug_arch.patch # # arch/i386/kernel/acpi/boot.c # 2004/09/27 12:55:27-04:00 len.brown@intel.com +22 -0 # Import patch acpi_hotplug_arch.patch # # ChangeSet # 2004/10/28 03:14:52-04:00 len.brown@intel.com # [ACPI] create ACPI hotplug eject interface # # The kernel when it receives an hardware sci eject request it simply passes this # to user mode agent and the agent in turn will offline all the child devices and # then echo's 1 onto the eject file for that acpi device. # # This patch provides the sysfs "eject" interface for the user mode agent # to notify the core acpi so that the core acpi can trim its bus which # causes .remove function to be called for all child devices. # # For example for LSB0 which is an ejectable device, we will see # /sys/firmware/acpi/namespace/ACPI/_SB/LSB/eject. # # Signed-off-by: Anil S Keshavamurthy # Signed-off-by: Len Brown # # drivers/acpi/scan.c # 2004/09/24 18:26:20-04:00 len.brown@intel.com +153 -0 # Import patch acpi_core_eject.patch # # ChangeSet # 2004/10/28 02:59:39-04:00 len.brown@intel.com # [ACPI] Provide core hotplug support in ACPI # # Create acpi_bus_trim(), acpi_bus_remove() and acpi_pci_unbind(), # The reverse of of acpi_bus_scan(), acpi_bus_add() and acpi_pci_bind() # # Signed-off-by: Anil S Keshavamurthy # Signed-off-by: Len Brown # # include/acpi/acpi_drivers.h # 2004/09/24 18:26:17-04:00 len.brown@intel.com +2 -0 # Import patch acpi_core.patch # # include/acpi/acpi_bus.h # 2004/10/28 02:59:06-04:00 len.brown@intel.com +9 -1 # Import patch acpi_core.patch # # drivers/acpi/scan.c # 2004/09/24 18:26:17-04:00 len.brown@intel.com +122 -9 # Import patch acpi_core.patch # # drivers/acpi/pci_irq.c # 2004/09/24 18:26:17-04:00 len.brown@intel.com +39 -3 # Import patch acpi_core.patch # # drivers/acpi/pci_bind.c # 2004/09/24 18:26:17-04:00 len.brown@intel.com +45 -0 # Import patch acpi_core.patch # # drivers/acpi/bus.c # 2004/09/24 18:26:17-04:00 len.brown@intel.com +0 -4 # Import patch acpi_core.patch # # drivers/acpi/acpi_ksyms.c # 2004/09/24 18:26:17-04:00 len.brown@intel.com +3 -0 # Import patch acpi_core.patch # # ChangeSet # 2004/10/28 00:32:55-04:00 trini@kernel.crashing.org # [PATCH] IBM EMAC Kconfig changes: Add 'select CRC32' # # On Mon, Oct 25, 2004 at 09:12:03AM -0700, Tom Rini wrote: # # > In trying to build for IBM 440GP Eval with CRC32=n, I noticed two # > things. First, all of the IBM EMAC Kconfig bits are space, not tab # > indented, and that IBM EMAC doesn't select CRC32 like all of the other # > enet drivers that need it do. # # Add a 'select CRC32' # # Signed-off-by: Tom Rini # Signed-off-by: Jeff Garzik # # drivers/net/Kconfig # 2004/10/27 20:00:00-04:00 trini@kernel.crashing.org +1 -0 # IBM EMAC Kconfig changes: Add 'select CRC32' # # ChangeSet # 2004/10/28 00:32:45-04:00 trini@kernel.crashing.org # [PATCH] IBM EMAC Kconfig changes # # In trying to build for IBM 440GP Eval with CRC32=n, I noticed two # things. First, all of the IBM EMAC Kconfig bits are space, not tab # indented, and that IBM EMAC doesn't select CRC32 like all of the other # enet drivers that need it do. # # Fix spacing of IBM EMAC Kconfig options. # # Signed-off-by: Tom Rini # Signed-off-by: Jeff Garzik # # drivers/net/Kconfig # 2004/10/27 20:00:00-04:00 trini@kernel.crashing.org +21 -21 # IBM EMAC Kconfig changes # # ChangeSet # 2004/10/27 10:40:50-04:00 shemminger@osdl.org # [PATCH] via-velocity: get rid of unused global # # Get rid of unused global variable, name the enum instead. # # Signed-off-by: Stephen Hemminger # Signed-off-by: Jeff Garzik # # drivers/net/via-velocity.h # 2004/10/18 17:04:11-04:00 shemminger@osdl.org +2 -2 # via-velocity: get rid of unused global # # ChangeSet # 2004/10/27 22:33:20+10:00 airlied@starflyer.(none) # drm: device minor fixups and /proc fixups # # This patch fixes up the DRM to do better minor number accounting # and /proc directory creation, the old code was buggy in a number # of situations with multiple cards, and rather ugly. It is also # a step on the way to the drm_core module. # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_stub.h # 2004/10/27 22:33:12+10:00 airlied@starflyer.(none) +173 -135 # drm: device minor fixups and /proc fixups # # This patch fixes up the DRM to do better minor number accounting # and /proc directory creation, the old code was buggy in a number # of situations with multiple cards, and rather ugly. It is also # a step on the way to the drm_core module. # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_proc.h # 2004/10/27 22:33:12+10:00 airlied@starflyer.(none) +6 -14 # drm: device minor fixups and /proc fixups # # This patch fixes up the DRM to do better minor number accounting # and /proc directory creation, the old code was buggy in a number # of situations with multiple cards, and rather ugly. It is also # a step on the way to the drm_core module. # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_drv.h # 2004/10/27 22:33:12+10:00 airlied@starflyer.(none) +89 -97 # drm: device minor fixups and /proc fixups # # This patch fixes up the DRM to do better minor number accounting # and /proc directory creation, the old code was buggy in a number # of situations with multiple cards, and rather ugly. It is also # a step on the way to the drm_core module. # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # drivers/char/drm/drmP.h # 2004/10/27 22:33:12+10:00 airlied@starflyer.(none) +24 -5 # drm: device minor fixups and /proc fixups # # This patch fixes up the DRM to do better minor number accounting # and /proc directory creation, the old code was buggy in a number # of situations with multiple cards, and rather ugly. It is also # a step on the way to the drm_core module. # # From: Jon Smirl and Dave Airlie # Signed-off-by: Dave Airlie # # ChangeSet # 2004/10/27 12:09:04+02:00 vojtech@suse.cz # Manual merge # # drivers/input/serio/i8042-io.h # 2004/10/27 12:08:57+02:00 vojtech@suse.cz +2 -4 # Manual merge # # ChangeSet # 2004/10/27 01:11:44-05:00 dtor_core@ameritech.net # Input: parkbd - switch to using module_param. Parameter names are # parkbd.port and parkbd.mode # # Signed-off-by: Dmitry Torokhov # # drivers/input/serio/parkbd.c # 2004/10/27 01:10:52-05:00 dtor_core@ameritech.net +8 -11 # Switch to using module_param() # # Documentation/kernel-parameters.txt # 2004/10/27 01:10:52-05:00 dtor_core@ameritech.net +7 -0 # Document parkbd options. # # ChangeSet # 2004/10/26 17:14:34-04:00 akpm@osdl.org # [PATCH] ray_cs export cleanup # # From: Arjan van de Ven # # The ray_cs driver author seemed to have assumed that he needs to exports # functions he registers with the core kernel via function pointers, that of # course isn't the case so the cleanup below removes this; these functions # aren't used anywhere else nor meant to be (they're even static). # # Signed-off-by: Andrew Morton # Signed-off-by: Jeff Garzik # # drivers/net/wireless/ray_cs.c # 2004/10/24 05:01:51-04:00 akpm@osdl.org +0 -4 # ray_cs export cleanup # # ChangeSet # 2004/10/25 22:10:39-04:00 akpm@osdl.org # [PATCH] r8169 module_param build fix # # Signed-off-by: Andrew Morton # Signed-off-by: Jeff Garzik # # drivers/net/r8169.c # 2004/10/24 05:47:51-04:00 akpm@osdl.org +1 -1 # r8169-module_param-fix # # ChangeSet # 2004/10/25 21:22:35-04:00 jgarzik@pobox.com # Merge pobox.com:/garz/repo/linux-2.6 # into pobox.com:/garz/repo/netdev-2.6/r8169 # # drivers/net/Kconfig # 2004/10/25 21:22:31-04:00 jgarzik@pobox.com +0 -0 # Auto merged # # ChangeSet # 2004/10/24 16:48:01-05:00 jejb@mulgrave.(none) # scsi_debug v 1.75 # # From: Douglas Gilbert # # - fix highmem data transfers # - fix kunmap_atomic() argument # - disable clustering # - allow every_nth < 0 for error continuously once # count is reached # - minor sense buffer handling cleanup # # Signed-off-by: James Bottomley # # drivers/scsi/scsi_debug.c # 2004/10/24 16:47:49-05:00 jejb@mulgrave.(none) +265 -214 # scsi_debug v 1.75 # # ChangeSet # 2004/10/24 21:02:03+02:00 vojtech@suse.cz # Merge bk://dtor.bkbits.net/input/ into suse.cz:/home/vojtech/bk/input # # drivers/input/keyboard/lkkbd.c # 2004/10/24 21:01:51+02:00 vojtech@suse.cz +0 -0 # Auto merged # # ChangeSet # 2004/10/24 20:59:23+02:00 vojtech@suse.cz # Merge suse.cz:/home/vojtech/bk/linus into suse.cz:/home/vojtech/bk/input # # drivers/usb/input/hid-core.c # 2004/10/24 20:59:06+02:00 vojtech@suse.cz +0 -0 # Auto merged # # ChangeSet # 2004/10/24 16:44:56+10:00 airlied@starflyer.(none) # drm: memory allocation patch # # This removes some unnecessary macros for allocating DRM memory. # It doesn't change any functionality. # # From: Jon Smirl # Signed-off-by: Dave Airlie # # drivers/char/drm/radeon_state.c # 2004/10/24 16:44:47+10:00 airlied@starflyer.(none) +2 -1 # drm: memory allocation patch # # This removes some unnecessary macros for allocating DRM memory. # It doesn't change any functionality. # # From: Jon Smirl # Signed-off-by: Dave Airlie # # drivers/char/drm/radeon_mem.c # 2004/10/24 16:44:47+10:00 airlied@starflyer.(none) +10 -10 # drm: memory allocation patch # # This removes some unnecessary macros for allocating DRM memory. # It doesn't change any functionality. # # From: Jon Smirl # Signed-off-by: Dave Airlie # # drivers/char/drm/r128_state.c # 2004/10/24 16:44:47+10:00 airlied@starflyer.(none) +42 -42 # drm: memory allocation patch # # This removes some unnecessary macros for allocating DRM memory. # It doesn't change any functionality. # # From: Jon Smirl # Signed-off-by: Dave Airlie # # drivers/char/drm/i915_mem.c # 2004/10/24 16:44:47+10:00 airlied@starflyer.(none) +10 -10 # drm: memory allocation patch # # This removes some unnecessary macros for allocating DRM memory. # It doesn't change any functionality. # # From: Jon Smirl # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_os_linux.h # 2004/10/24 16:44:47+10:00 airlied@starflyer.(none) +0 -5 # drm: memory allocation patch # # This removes some unnecessary macros for allocating DRM memory. # It doesn't change any functionality. # # From: Jon Smirl # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_memory_debug.h # 2004/10/24 16:44:47+10:00 airlied@starflyer.(none) +1 -1 # drm: memory allocation patch # # This removes some unnecessary macros for allocating DRM memory. # It doesn't change any functionality. # # From: Jon Smirl # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_memory.h # 2004/10/24 16:44:47+10:00 airlied@starflyer.(none) +3 -17 # drm: memory allocation patch # # This removes some unnecessary macros for allocating DRM memory. # It doesn't change any functionality. # # From: Jon Smirl # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_irq.h # 2004/10/24 16:44:47+10:00 airlied@starflyer.(none) +2 -2 # drm: memory allocation patch # # This removes some unnecessary macros for allocating DRM memory. # It doesn't change any functionality. # # From: Jon Smirl # Signed-off-by: Dave Airlie # # drivers/char/drm/drmP.h # 2004/10/24 16:44:47+10:00 airlied@starflyer.(none) +20 -2 # drm: memory allocation patch # # This removes some unnecessary macros for allocating DRM memory. # It doesn't change any functionality. # # From: Jon Smirl # Signed-off-by: Dave Airlie # # ChangeSet # 2004/10/24 11:54:23+10:00 airlied@starflyer.(none) # drm: initial core move infrastructure change # # Initial infrastructure - move old H files to C files # also Kconfig and Makefile changes # # Signed-off-by: Dave Airlie # # drivers/char/drm/Makefile # 2004/10/24 11:54:11+10:00 airlied@starflyer.(none) +6 -0 # drm: initial core move infrastructure change # # Initial infrastructure - move old H files to C files # also Kconfig and Makefile changes # # Signed-off-by: Dave Airlie # # drivers/char/drm/Kconfig # 2004/10/24 11:54:11+10:00 airlied@starflyer.(none) +1 -1 # drm: initial core move infrastructure change # # Initial infrastructure - move old H files to C files # also Kconfig and Makefile changes # # Signed-off-by: Dave Airlie # # drivers/char/drm/drm_scatter.c # 2004/10/24 11:49:08+10:00 airlied@starflyer.(none) +0 -0 # Rename: drivers/char/drm/drm_scatter.h -> drivers/char/drm/drm_scatter.c # # drivers/char/drm/drm_agpsupport.c # 2004/10/24 11:49:02+10:00 airlied@starflyer.(none) +0 -0 # Rename: drivers/char/drm/drm_agpsupport.h -> drivers/char/drm/drm_agpsupport.c # # drivers/char/drm/drm_vm.c # 2004/10/24 11:48:49+10:00 airlied@starflyer.(none) +0 -0 # Rename: drivers/char/drm/drm_vm.h -> drivers/char/drm/drm_vm.c # # drivers/char/drm/drm_stub.c # 2004/10/24 11:48:41+10:00 airlied@starflyer.(none) +0 -0 # Rename: drivers/char/drm/drm_stub.h -> drivers/char/drm/drm_stub.c # # drivers/char/drm/drm_proc.c # 2004/10/24 11:48:34+10:00 airlied@starflyer.(none) +0 -0 # Rename: drivers/char/drm/drm_proc.h -> drivers/char/drm/drm_proc.c # # drivers/char/drm/drm_memory.c # 2004/10/24 11:48:27+10:00 airlied@starflyer.(none) +0 -0 # Rename: drivers/char/drm/drm_memory.h -> drivers/char/drm/drm_memory.c # # drivers/char/drm/drm_lock.c # 2004/10/24 11:48:21+10:00 airlied@starflyer.(none) +0 -0 # Rename: drivers/char/drm/drm_lock.h -> drivers/char/drm/drm_lock.c # # drivers/char/drm/drm_irq.c # 2004/10/24 11:48:14+10:00 airlied@starflyer.(none) +0 -0 # Rename: drivers/char/drm/drm_irq.h -> drivers/char/drm/drm_irq.c # # drivers/char/drm/drm_ioctl.c # 2004/10/24 11:48:08+10:00 airlied@starflyer.(none) +0 -0 # Rename: drivers/char/drm/drm_ioctl.h -> drivers/char/drm/drm_ioctl.c # # drivers/char/drm/drm_init.c # 2004/10/24 11:48:02+10:00 airlied@starflyer.(none) +0 -0 # Rename: drivers/char/drm/drm_init.h -> drivers/char/drm/drm_init.c # # drivers/char/drm/drm_fops.c # 2004/10/24 11:47:54+10:00 airlied@starflyer.(none) +0 -0 # Rename: drivers/char/drm/drm_fops.h -> drivers/char/drm/drm_fops.c # # drivers/char/drm/drm_drv.c # 2004/10/24 11:47:46+10:00 airlied@starflyer.(none) +0 -0 # Rename: drivers/char/drm/drm_drv.h -> drivers/char/drm/drm_drv.c # # drivers/char/drm/drm_drawable.c # 2004/10/24 11:47:39+10:00 airlied@starflyer.(none) +0 -0 # Rename: drivers/char/drm/drm_drawable.h -> drivers/char/drm/drm_drawable.c # # drivers/char/drm/drm_dma.c # 2004/10/24 11:47:32+10:00 airlied@starflyer.(none) +0 -0 # Rename: drivers/char/drm/drm_dma.h -> drivers/char/drm/drm_dma.c # # drivers/char/drm/drm_context.c # 2004/10/24 11:47:27+10:00 airlied@starflyer.(none) +0 -0 # Rename: drivers/char/drm/drm_context.h -> drivers/char/drm/drm_context.c # # drivers/char/drm/drm_bufs.c # 2004/10/24 11:47:19+10:00 airlied@starflyer.(none) +0 -0 # Rename: drivers/char/drm/drm_bufs.h -> drivers/char/drm/drm_bufs.c # # drivers/char/drm/drm_auth.c # 2004/10/24 11:46:56+10:00 airlied@starflyer.(none) +0 -0 # Rename: drivers/char/drm/drm_auth.h -> drivers/char/drm/drm_auth.c # # ChangeSet # 2004/10/21 23:57:49-05:00 dtor_core@ameritech.net # Input: gscps2 - remove unused statically allocated gscps2_serio_port # variable as the port is allocated dynamically. # # Signed-off-by: Dmitry Torokhov # # drivers/input/serio/gscps2.c # 2004/10/21 23:57:31-05:00 dtor_core@ameritech.net +0 -13 # Remove unused statically allocated gscps2_serio_port as the port is # allocated dynamically. # # ChangeSet # 2004/10/21 23:56:41-05:00 dtor_core@ameritech.net # Input: get rid of pm_dev in input core as it is deprecated and # nothing uses it anyway. # # Signed-off-by: Dmitry Torokhov # # include/linux/input.h # 2004/10/21 23:56:15-05:00 dtor_core@ameritech.net +0 -1 # Get rid of pm_dev in input core as it is deprecated and nothing # uses it anyway. # # drivers/input/touchscreen/h3600_ts_input.c # 2004/10/21 23:56:15-05:00 dtor_core@ameritech.net +3 -2 # Move pm_dev into h3600_dev structure (not that it works anyway). # # drivers/input/input.c # 2004/10/21 23:56:15-05:00 dtor_core@ameritech.net +0 -4 # Get rid of pm_dev in input core as it is deprecated and nothing # uses it anyway. # # ChangeSet # 2004/10/21 23:55:41-05:00 dtor_core@ameritech.net # Input: i8042 - get rid of reboot notifier as suspend method # should do the job. # # Signed-off-by: Dmitry Torokhov # # drivers/input/serio/i8042.c # 2004/10/21 23:55:20-05:00 dtor_core@ameritech.net +5 -28 # Get rid of reboot notifier as suspend method shoudl do the job. # # ChangeSet # 2004/10/21 23:53:52-05:00 dtor_core@ameritech.net # Input: i8042 - get rid of old style power management handler since # APM calls both pm_send and device_suspend. # # Signed-off-by: Dmitry Torokhov # # drivers/input/serio/i8042.c # 2004/10/21 23:53:26-05:00 dtor_core@ameritech.net +30 -59 # Get rid of old style power management handler since APM calls both # pm_send and device_suspend so in fact we were resuming everything # twice. # # ChangeSet # 2004/10/21 23:52:36-05:00 dtor_core@ameritech.net # Input: i8042 - allow turning debugging on and off "on-fly" # so people do not have to recompile their kernels to # provide debug info. # # Adds new parameter i8042.debug also accessible through # sysfs. # # Signed-off-by: Dmitry Torokhov # # drivers/input/serio/i8042.h # 2004/10/21 23:52:18-05:00 dtor_core@ameritech.net +6 -2 # Allow debugging to be turned on and off "on-fly" # # drivers/input/serio/i8042.c # 2004/10/21 23:52:18-05:00 dtor_core@ameritech.net +7 -1 # Allow debugging to be turned on and off "on-fly" # # ChangeSet # 2004/10/21 23:51:43-05:00 dtor_core@ameritech.net # Input: when creating input devices for hardware attached to # a serio port properly set input_device->dev pointer # so when corresponding class device is created it will # show proper links to parent device and driver in sysfs # hierarchy. # # Signed-off-by: Dmitry Torokhov # # drivers/input/mouse/vsxxxaa.c # 2004/10/21 23:51:23-05:00 dtor_core@ameritech.net +1 -0 # Link input device with serio's device so when class device is # registered appropriate links to device and driver are created. # # drivers/input/mouse/sermouse.c # 2004/10/21 23:51:23-05:00 dtor_core@ameritech.net +1 -0 # Link input device with serio's device so when class device is # registered appropriate links to device and driver are created. # # drivers/input/mouse/psmouse-base.c # 2004/10/21 23:51:23-05:00 dtor_core@ameritech.net +1 -0 # Link input device with serio's device so when class device is # registered appropriate links to device and driver are created. # # drivers/input/keyboard/xtkbd.c # 2004/10/21 23:51:23-05:00 dtor_core@ameritech.net +1 -0 # Link input device with serio's device so when class device is # registered appropriate links to device and driver are created. # # drivers/input/keyboard/sunkbd.c # 2004/10/21 23:51:23-05:00 dtor_core@ameritech.net +1 -0 # Link input device with serio's device so when class device is # registered appropriate links to device and driver are created. # # drivers/input/keyboard/newtonkbd.c # 2004/10/21 23:51:23-05:00 dtor_core@ameritech.net +1 -0 # Link input device with serio's device so when class device is # registered appropriate links to device and driver are created. # # drivers/input/keyboard/lkkbd.c # 2004/10/21 23:51:23-05:00 dtor_core@ameritech.net +1 -0 # Link input device with serio's device so when class device is # registered appropriate links to device and driver are created. # # drivers/input/keyboard/atkbd.c # 2004/10/21 23:51:23-05:00 dtor_core@ameritech.net +1 -0 # Link input device with serio's device so when class device is # registered appropriate links to device and driver are created. # # drivers/input/joystick/warrior.c # 2004/10/21 23:51:23-05:00 dtor_core@ameritech.net +1 -0 # Link input device with serio's device so when class device is # registered appropriate links to device and driver are created. # # drivers/input/joystick/twidjoy.c # 2004/10/21 23:51:23-05:00 dtor_core@ameritech.net +1 -0 # Link input device with serio's device so when class device is # registered appropriate links to device and driver are created. # # drivers/input/joystick/stinger.c # 2004/10/21 23:51:23-05:00 dtor_core@ameritech.net +1 -0 # Link input device with serio's device so when class device is # registered appropriate links to device and driver are created. # # drivers/input/joystick/spaceorb.c # 2004/10/21 23:51:23-05:00 dtor_core@ameritech.net +1 -0 # Link input device with serio's device so when class device is # registered appropriate links to device and driver are created. # # drivers/input/joystick/spaceball.c # 2004/10/21 23:51:23-05:00 dtor_core@ameritech.net +1 -0 # Link input device with serio's device so when class device is # registered appropriate links to device and driver are created. # # drivers/input/joystick/magellan.c # 2004/10/21 23:51:23-05:00 dtor_core@ameritech.net +1 -0 # Link input device with serio's device so when class device is # registered appropriate links to device and driver are created. # # drivers/input/joystick/iforce/iforce-main.c # 2004/10/21 23:51:23-05:00 dtor_core@ameritech.net +15 -1 # Link input device with serio's device so when class device is # registered appropriate links to device and driver are created. # # ChangeSet # 2004/10/21 23:50:25-05:00 dtor_core@ameritech.net # Input: evdev, joydev, mousedev, tsdev - remove class device and devfs # entry when hardware driver disconnects instead of waiting for # the last user to drop off. This way hardware drivers can be # unloaded at any time. # # Signed-off-by: Dmitry Torokhov # # drivers/input/tsdev.c # 2004/10/21 23:49:57-05:00 dtor_core@ameritech.net +5 -5 # Remove class device and devfs entry when hardware is disconncted; # do not wait till the last user drops off. # # drivers/input/mousedev.c # 2004/10/21 23:49:57-05:00 dtor_core@ameritech.net +2 -2 # Remove class device and devfs entry when hardware is disconncted; # do not wait till the last user drops off. # # drivers/input/joydev.c # 2004/10/21 23:49:57-05:00 dtor_core@ameritech.net +2 -2 # Remove class device and devfs entry when hardware is disconncted; # do not wait till the last user drops off. # # drivers/input/evdev.c # 2004/10/21 23:49:57-05:00 dtor_core@ameritech.net +2 -2 # Remove class device and devfs entry when hardware is disconncted; # do not wait till the last user drops off. # # ChangeSet # 2004/10/21 23:49:17-05:00 dtor_core@ameritech.net # Input: couple of whitespace fixes. # # Signed-off-by: Dmitry Torokhov # # drivers/input/mouse/vsxxxaa.c # 2004/10/21 23:48:57-05:00 dtor_core@ameritech.net +1 -1 # Whitespace fixes # # drivers/input/mouse/sermouse.c # 2004/10/21 23:48:57-05:00 dtor_core@ameritech.net +12 -12 # Whitespace fixes # # ChangeSet # 2004/10/21 18:41:34-04:00 viro@www.linux.org.uk # [PATCH] mace iomem annotations - trivial part # # Signed-off-by: Al Viro # # drivers/net/mace.c # 2004/10/21 10:48:48-04:00 viro@www.linux.org.uk +32 -34 # (17/18) mace iomem annotations - trivial part # # ChangeSet # 2004/10/21 18:40:03-04:00 viro@www.linux.org.uk # [PATCH] airo iomem annotations # # Signed-off-by: Al Viro # # drivers/net/wireless/airo.c # 2004/10/21 10:48:47-04:00 viro@www.linux.org.uk +21 -21 # (14/18) airo iomem annotations # # ChangeSet # 2004/10/21 18:39:52-04:00 viro@www.linux.org.uk # [PATCH] wavelan_cs iomem annotations # # Signed-off-by: Al Viro # # drivers/net/wireless/wavelan_cs.p.h # 2004/10/21 10:48:47-04:00 viro@www.linux.org.uk +1 -0 # (13/18) wavelan_cs iomem annotations # # drivers/net/wireless/wavelan_cs.c # 2004/10/21 10:48:47-04:00 viro@www.linux.org.uk +14 -11 # (13/18) wavelan_cs iomem annotations # # ChangeSet # 2004/10/21 18:28:58-04:00 viro@www.linux.org.uk # [PATCH] skfp iomem annotations, switch to io{read,write} # # Signed-off-by: Al Viro # # drivers/net/skfp/skfddi.c # 2004/10/21 10:48:45-04:00 viro@www.linux.org.uk +16 -9 # (8/18) skfp iomem annotations, switch to io{read,write} # # drivers/net/skfp/h/types.h # 2004/10/21 10:48:45-04:00 viro@www.linux.org.uk +6 -15 # (8/18) skfp iomem annotations, switch to io{read,write} # # drivers/net/skfp/h/targetos.h # 2004/10/21 10:48:45-04:00 viro@www.linux.org.uk +1 -1 # (8/18) skfp iomem annotations, switch to io{read,write} # # drivers/net/skfp/h/targethw.h # 2004/10/21 10:48:45-04:00 viro@www.linux.org.uk +1 -5 # (8/18) skfp iomem annotations, switch to io{read,write} # # drivers/net/skfp/h/fplustm.h # 2004/10/21 10:48:45-04:00 viro@www.linux.org.uk +1 -5 # (8/18) skfp iomem annotations, switch to io{read,write} # # ChangeSet # 2004/10/21 18:26:47-04:00 viro@www.linux.org.uk # [PATCH] olympic_open() cleanup and fixes # # Signed-off-by: Al Viro # # drivers/net/tokenring/olympic.c # 2004/10/21 10:48:44-04:00 viro@www.linux.org.uk +46 -48 # (6/18) olympic_open() cleanup and fixes # # ChangeSet # 2004/10/21 18:26:35-04:00 viro@www.linux.org.uk # [PATCH] sundance iomem annotations, switch to io{read,write} # # Signed-off-by: Al Viro # # drivers/net/sundance.c # 2004/10/21 10:56:28-04:00 viro@www.linux.org.uk +121 -138 # (3/18) sundance iomem annotations, switch to io{read,write} # # ChangeSet # 2004/10/21 18:25:51-04:00 viro@www.linux.org.uk # [PATCH] via-rhine iomem annotations, switch to io{read,write} # # Signed-off-by: Al Viro # # drivers/net/via-rhine.c # 2004/10/21 11:02:43-04:00 viro@www.linux.org.uk +127 -140 # (2/18) via-rhine iomem annotations, switch to io{read,write} # # ChangeSet # 2004/10/21 18:17:45-04:00 jgarzik@pobox.com # Merge pobox.com:/garz/repo/linux-2.6 # into pobox.com:/garz/repo/netdev-2.6/via-rhine # # drivers/net/via-rhine.c # 2004/10/21 18:17:40-04:00 jgarzik@pobox.com +0 -0 # Auto merged # # ChangeSet # 2004/10/21 18:14:03-04:00 jgarzik@pobox.com # Merge pobox.com:/garz/repo/linux-2.6 # into pobox.com:/garz/repo/netdev-2.6/viro-eth1 # # drivers/net/wireless/netwave_cs.c # 2004/10/21 18:14:00-04:00 jgarzik@pobox.com +0 -0 # Auto merged # # drivers/net/wireless/arlan.h # 2004/10/21 18:13:59-04:00 jgarzik@pobox.com +0 -0 # Auto merged # # drivers/net/tokenring/lanstreamer.c # 2004/10/21 18:13:59-04:00 jgarzik@pobox.com +0 -0 # Auto merged # # drivers/net/starfire.c # 2004/10/21 18:13:59-04:00 jgarzik@pobox.com +0 -0 # Auto merged # # ChangeSet # 2004/10/21 11:59:13+02:00 vojtech@suse.cz # Merge suse.cz:/data2/bk/linus into suse.cz:/data2/bk/input # # drivers/input/mouse/Kconfig # 2004/10/21 11:59:08+02:00 vojtech@suse.cz +0 -0 # Auto merged # # drivers/input/joystick/gamecon.c # 2004/10/21 11:59:08+02:00 vojtech@suse.cz +0 -0 # Auto merged # # Documentation/kernel-parameters.txt # 2004/10/21 11:59:08+02:00 vojtech@suse.cz +0 -0 # Auto merged # # ChangeSet # 2004/10/20 14:54:11+02:00 vojtech@suse.cz # Manual merge # # drivers/usb/input/hid-core.c # 2004/10/20 14:54:04+02:00 vojtech@suse.cz +5 -6 # Manual merge # # Documentation/kernel-parameters.txt # 2004/10/20 14:49:34+02:00 vojtech@suse.cz +0 -0 # Auto merged # # ChangeSet # 2004/10/20 10:13:15+02:00 vojtech@suse.cz # input: Increase ACK timeouts in libps2 in case the RESET_BAT command is used. # This should fix most Synaptics "reset failed" cases. Thanks to Keith # Packard for the report. # Also add some more keyboard IDs, so that unusual keyboards are accepted # by libps2 and atkbd. # # Signed-off-by: Vojtech Pavlik # # include/linux/libps2.h # 2004/10/20 10:13:08+02:00 vojtech@suse.cz +1 -1 # input: Increase ACK timeouts in libps2 in case the RESET_BAT command is used. # This should fix most Synaptics "reset failed" cases. Thanks to Keith # Packard for the report. # Also add some more keyboard IDs, so that unusual keyboards are accepted # by libps2 and atkbd. # # drivers/input/serio/libps2.c # 2004/10/20 10:13:08+02:00 vojtech@suse.cz +32 -10 # input: Increase ACK timeouts in libps2 in case the RESET_BAT command is used. # This should fix most Synaptics "reset failed" cases. Thanks to Keith # Packard for the report. # Also add some more keyboard IDs, so that unusual keyboards are accepted # by libps2 and atkbd. # # drivers/input/keyboard/atkbd.c # 2004/10/20 10:13:08+02:00 vojtech@suse.cz +4 -1 # input: Increase ACK timeouts in libps2 in case the RESET_BAT command is used. # This should fix most Synaptics "reset failed" cases. Thanks to Keith # Packard for the report. # Also add some more keyboard IDs, so that unusual keyboards are accepted # by libps2 and atkbd. # # ChangeSet # 2004/10/20 01:23:43-04:00 viro@www.linux.org.uk # [PATCH] netwave iomem annotations # # Signed-off-by: Al Viro # # drivers/net/wireless/netwave_cs.c # 2004/10/15 14:40:21-04:00 viro@www.linux.org.uk +23 -19 # (30/32) netwave iomem annotations # # ChangeSet # 2004/10/20 01:23:33-04:00 viro@www.linux.org.uk # [PATCH] arlan iomem annotations and cleanups # # iomem annotations + couple of bad implementations of offsetof() replaced with # the real thing. # # Signed-off-by: Al Viro # # drivers/net/wireless/arlan.h # 2004/10/15 14:35:50-04:00 viro@www.linux.org.uk +3 -5 # (28/32) arlan iomem annotations and cleanups # # drivers/net/wireless/arlan-proc.c # 2004/10/15 14:32:05-04:00 viro@www.linux.org.uk +5 -5 # (28/32) arlan iomem annotations and cleanups # # drivers/net/wireless/arlan-main.c # 2004/10/15 14:31:08-04:00 viro@www.linux.org.uk +21 -21 # (28/32) arlan iomem annotations and cleanups # # ChangeSet # 2004/10/20 01:23:23-04:00 viro@www.linux.org.uk # [PATCH] netdev_priv() in netwave_cs # # Signed-off-by: Al Viro # # drivers/net/wireless/netwave_cs.c # 2004/10/15 14:43:33-04:00 viro@www.linux.org.uk +18 -17 # (29/32) netdev_priv() in netwave_cs # # ChangeSet # 2004/10/20 01:23:12-04:00 viro@www.linux.org.uk # [PATCH] netdev_priv() in arlan # # Signed-off-by: Al Viro # # drivers/net/wireless/arlan.h # 2004/10/15 14:36:05-04:00 viro@www.linux.org.uk +10 -10 # (27/32) netdev_priv() in arlan # # drivers/net/wireless/arlan-proc.c # 2004/10/15 14:33:52-04:00 viro@www.linux.org.uk +10 -5 # (27/32) netdev_priv() in arlan # # drivers/net/wireless/arlan-main.c # 2004/10/15 14:26:22-04:00 viro@www.linux.org.uk +24 -24 # (27/32) netdev_priv() in arlan # # ChangeSet # 2004/10/20 01:18:24-04:00 viro@www.linux.org.uk # [PATCH] (25/32) lanstreamer iomem annotations # # Signed-off-by: Al Viro # # drivers/net/tokenring/lanstreamer.h # 2004/10/15 14:20:31-04:00 viro@www.linux.org.uk +1 -1 # (25/32) lanstreamer iomem annotations # # drivers/net/tokenring/lanstreamer.c # 2004/10/15 14:20:29-04:00 viro@www.linux.org.uk +12 -12 # (25/32) lanstreamer iomem annotations # # ChangeSet # 2004/10/20 00:51:07-04:00 viro@www.linux.org.uk # [PATCH] starfire iomem annotations # # Signed-off-by: Al Viro # # drivers/net/starfire.c # 2004/10/15 12:44:23-04:00 viro@www.linux.org.uk +40 -39 # (18/32) starfire iomem annotations # # ChangeSet # 2004/10/19 11:27:26-04:00 romieu@fr.zoreil.com # [PATCH] r8169: netconsole support # # netconsole support. # # Signed-off-by: John W. Linville # # drivers/net/r8169.c # 2004/10/18 17:56:27-04:00 romieu@fr.zoreil.com +21 -0 # r8169: netconsole support # # ChangeSet # 2004/10/19 11:27:11-04:00 romieu@fr.zoreil.com # [PATCH] r8169: unneeded synchronize_irq() # # synchronize_irq() is not needed as it is already issued by free_irq(). # # Signed-off-by: Francois Romieu # # drivers/net/r8169.c # 2004/10/18 17:37:58-04:00 romieu@fr.zoreil.com +0 -1 # r8169: unneeded synchronize_irq() # # ChangeSet # 2004/10/19 11:26:56-04:00 romieu@fr.zoreil.com # [PATCH] r8169: always clean Tx desc # # rtl8169_unmap_tx_skb() can not assume that a Tx ring descriptor belongs # to the host as it can be issued during rtl8169_tx_clear() as a part of # a recovery process (during Tx timeout for instance). # # Simple fix: always clean the relevant descriptor entry. # # Acked-by: Francois Romieu # Signed-off-by: Jon Mason # # drivers/net/r8169.c # 2004/10/18 17:31:21-04:00 romieu@fr.zoreil.com +1 -0 # r8169: always clean Tx desc # # ChangeSet # 2004/10/19 12:58:36+02:00 vojtech@suse.cz # Input: i8042 ACPI enumeration - add PNP IDs found in AMD64 laptops. # # Signed-off-by: Dmitry Torokhov # Signed-off-by: Andrew Morton # Signed-off-by: Vojtech Pavlik # # drivers/input/serio/i8042-x86ia64io.h # 2004/10/19 12:58:22+02:00 vojtech@suse.cz +2 -2 # Input: i8042 ACPI enumeration - add PNP IDs found in AMD64 laptops. # # Signed-off-by: Dmitry Torokhov # Signed-off-by: Andrew Morton # Signed-off-by: Vojtech Pavlik # # ChangeSet # 2004/10/19 10:02:20+02:00 vojtech@suse.cz # Merge suse.cz:/data2/bk/linus into suse.cz:/data2/bk/input # # drivers/usb/input/hid-core.c # 2004/10/19 10:02:15+02:00 vojtech@suse.cz +0 -0 # Auto merged # # drivers/input/joystick/Kconfig # 2004/10/19 10:02:15+02:00 vojtech@suse.cz +0 -1 # Auto merged # # ChangeSet # 2004/10/16 13:15:38+02:00 vojtech@suse.cz # input: Fix ssize_t prototype mismatch in psmouse and atkbd. # # Signed-off-by: Vojtech Pavlik # # drivers/input/mouse/psmouse.h # 2004/10/16 13:15:31+02:00 vojtech@suse.cz +1 -1 # input: Fix ssize_t prototype mismatch in psmouse and atkbd. # # drivers/input/keyboard/atkbd.c # 2004/10/16 13:15:31+02:00 vojtech@suse.cz +2 -2 # input: Fix ssize_t prototype mismatch in psmouse and atkbd. # # ChangeSet # 2004/10/15 19:49:50-04:00 shemminger@osdl.org # [PATCH] via-rhine: free_ring should be static # # free_ring is a local function # # Signed-off-by: Stephen Hemminger # # drivers/net/via-rhine.c # 2004/10/15 15:45:02-04:00 shemminger@osdl.org +1 -1 # via-rhine: free_ring should be static # # ChangeSet # 2004/10/15 19:49:38-04:00 shemminger@osdl.org # [PATCH] via-rhine: use module_param # # Signed-off-by: Stephen Hemminger # # drivers/net/via-rhine.c # 2004/10/15 15:27:28-04:00 shemminger@osdl.org +4 -3 # via-rhine: use module_param # # ChangeSet # 2004/10/15 19:22:45-04:00 shemminger@osdl.org # [PATCH] r8169: use netdev_priv # # Use netdev_priv in a couple of places in realtek 8169 # # Signed-off-by: Stephen Hemminger # # drivers/net/r8169.c # 2004/10/15 18:00:43-04:00 shemminger@osdl.org +2 -2 # r8169: use netdev_priv # # ChangeSet # 2004/10/15 19:22:14-04:00 shemminger@osdl.org # [PATCH] r8169: use module_param # # Use module_param instead of deprecated MDOULE_PARM # # Signed-off-by: Stephen Hemminger # # drivers/net/r8169.c # 2004/10/15 17:56:05-04:00 shemminger@osdl.org +5 -3 # r8169: use module_param # # ChangeSet # 2004/10/15 14:56:05-04:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] iomem annotations in r8169 # # Signed-off-by: Al Viro # # drivers/net/r8169.c # 2004/10/13 13:49:51-04:00 viro@parcelfarce.linux.theplanet.co.uk +42 -42 # annotations in r8169 # # ChangeSet # 2004/10/13 15:54:28+02:00 vojtech@suse.cz # Merge suse.cz:/data2/bk/linus into suse.cz:/data2/bk/input # # drivers/usb/input/hid-core.c # 2004/10/13 15:54:24+02:00 vojtech@suse.cz +0 -0 # Auto merged # # Documentation/kernel-parameters.txt # 2004/10/13 15:54:24+02:00 vojtech@suse.cz +0 -0 # Auto merged # # ChangeSet # 2004/10/04 16:46:51-04:00 romieu@fr.zoreil.com # [PATCH] r8169: cleanup # # Cleanup # - timeout message is redundant with net/sched/sch_generic::dev_watchdog; # - anti-bloat in rtl8169_get_rx_csum; # - format fix. # # Signed-off-by: Francois Romieu # Signed-off-by: Jon Mason # # drivers/net/r8169.c # 2004/10/04 15:27:47-04:00 romieu@fr.zoreil.com +3 -5 # r8169: cleanup # # ChangeSet # 2004/10/04 16:46:37-04:00 romieu@fr.zoreil.com # [PATCH] r8169: rtl8169_close() races # # - close the race with rtl8169_interrupt() which appears when rtl8169_close() # uses synchronize_irq()/free_irq(); # - netif_poll_disable() allows rtl8169_close() to wait for any pending # rtl8169_poll() to complete so it can safely clear the rings. # # Signed-off-by: Francois Romieu # # drivers/net/r8169.c # 2004/10/04 15:26:01-04:00 romieu@fr.zoreil.com +6 -0 # r8169: rtl8169_close() races # # ChangeSet # 2004/10/04 16:46:24-04:00 romieu@fr.zoreil.com # [PATCH] r8169: automatic pci dac step down # # Automatic adjustement of highmem dma feature. # # The first interruption encountered on systems where the 8169 does not # perform PCI DAC correctly seems to always be a PCI error one. # When DAC is enabled, the driver tries to issue a complete down/up # sequence as an addition to the usual halt of the device. # # Signed-off-by: Francois Romieu # # drivers/net/r8169.c # 2004/10/04 15:25:07-04:00 romieu@fr.zoreil.com +70 -7 # r8169: automatic pci dac step down # # ChangeSet # 2004/10/04 16:46:10-04:00 romieu@fr.zoreil.com # [PATCH] r8169: wrong advertisement of VLAN features # # Removal of an advertisement for VLAN features which is redundant with # rtl8169_init_one(). # # Signed-off-by: Jon Mason # # drivers/net/r8169.c # 2004/10/04 15:17:44-04:00 romieu@fr.zoreil.com +0 -2 # r8169: wrong advertisement of VLAN features # # ChangeSet # 2004/10/04 16:45:56-04:00 romieu@fr.zoreil.com # [PATCH] r8169: Tx timeout rework # # Tx timeout rework: # - the ring descriptors of the chipset and the ring index of the driver # are synced during a reset of the device; # - rtl8169_interrupt: rtl8169_hw_reset() replaces the previous stop code. # An implicit reset of the device is added but it makes no noticeable # difference with the former behavior (i.e.: stop the chipset). # # Signed-off-by: Francois Romieu # # drivers/net/r8169.c # 2004/10/04 15:15:41-04:00 romieu@fr.zoreil.com +65 -24 # r8169: Tx timeout rework # # ChangeSet # 2004/09/30 01:31:12-05:00 dtor_core@ameritech.net # Input: psmouse - explicitely specify packet size instead of relying # on protocol numbering scheme. Make protocol detection routines # return -1 on failure to keep them consistent with ther rest # of the code. Set mouse parameters right in detection routines # instead of doing it in psmouse_extensions. # # Signed-off-by: Dmitry Torokhov # # drivers/input/mouse/synaptics.h # 2004/09/30 01:30:53-05:00 dtor_core@ameritech.net +1 -1 # Adjust synaptics_detect prototype. # # drivers/input/mouse/synaptics.c # 2004/09/30 01:30:53-05:00 dtor_core@ameritech.net +12 -3 # Explicitely set up packet size and vendor/name, adjust detect # routine to return -1 on failure. # # drivers/input/mouse/psmouse.h # 2004/09/30 01:30:53-05:00 dtor_core@ameritech.net +1 -0 # Add packet size to psmouse structure. # # drivers/input/mouse/psmouse-base.c # 2004/09/30 01:30:53-05:00 dtor_core@ameritech.net +82 -74 # Explicitely set and check packet size and not rely on protocol # numbering scheme; rearrange detect methods to return -1 when # hardware is not detceted and also set psmouse properties instead # of duing it in psmouse_extensions. # # drivers/input/mouse/logips2pp.c # 2004/09/30 01:30:53-05:00 dtor_core@ameritech.net +3 -2 # Explicitely set up packet size, adjust ps2pp_init to return -1 # on failure. # # drivers/input/mouse/alps.h # 2004/09/30 01:30:53-05:00 dtor_core@ameritech.net +1 -1 # Adjust alps_detect prototype. # # drivers/input/mouse/alps.c # 2004/09/30 01:30:53-05:00 dtor_core@ameritech.net +10 -2 # Explicitely set up packet size and vendor/name, adjust alps_detect # to retrun -1 on failure. # # ChangeSet # 2004/09/30 01:30:25-05:00 dtor_core@ameritech.net # Input: psmouse - make logips2pp fully decode its protocol packets # and not rely on generic handler to finish job. # # Signed-off-by: Dmitry Torokhov # # drivers/input/mouse/psmouse-base.c # 2004/09/30 01:30:04-05:00 dtor_core@ameritech.net +0 -7 # Make logips2pp fully decode its protocol packets and not rely # on generic handler to finish job. # # drivers/input/mouse/logips2pp.h # 2004/09/30 01:30:04-05:00 dtor_core@ameritech.net +0 -1 # Make logips2pp fully decode its protocol packets and not rely # on generic handler to finish job. # # drivers/input/mouse/logips2pp.c # 2004/09/30 01:30:04-05:00 dtor_core@ameritech.net +33 -10 # Make logips2pp fully decode its protocol packets and not rely # on generic handler to finish job. # # ChangeSet # 2004/09/30 01:28:49-05:00 dtor_core@ameritech.net # Input: psmouse - drop PS2TPP protocol (it is handled exactly like # PS2PP) to free spot for THINKPS protocol and keep old protocol # numbers for binary compatibility with Synaptics/ALPS touchpad # driver for X. # # Signed-off-by: Dmitry Torokhov # # drivers/input/mouse/psmouse.h # 2004/09/30 01:28:32-05:00 dtor_core@ameritech.net +0 -1 # Remove PS2TPP protocol as it is handled exactly like PS2PP # # drivers/input/mouse/psmouse-base.c # 2004/09/30 01:28:32-05:00 dtor_core@ameritech.net +4 -7 # Remove PS2TPP protocol as it is handled exactly like PS2PP # # drivers/input/mouse/logips2pp.c # 2004/09/30 01:28:32-05:00 dtor_core@ameritech.net +28 -24 # Convert ps2pp_init to signal caller whether it supports # PS2PP protocol or not like other detection functions do. # # ChangeSet # 2004/09/30 01:28:03-05:00 dtor_core@ameritech.net # Input: psmouse - export rate, resolution, resetafter and smartscroll # (Logitech only) as individual mouse attributes (sysfs) and allow # them to be set/changed independently for each mouse: # # echo -n "100" > /sys/bus/serio/devices/serio0/rate # echo -n "200" > /sys/bus/serio/devices/serio0/resolution # # Signed-off-by: Dmitry Torokhov # # drivers/input/mouse/psmouse.h # 2004/09/30 01:27:48-05:00 dtor_core@ameritech.net +21 -1 # Add PSMOUSE_DEFINE_ATTR to help define psmouse sysfs attributes # # drivers/input/mouse/psmouse-base.c # 2004/09/30 01:27:48-05:00 dtor_core@ameritech.net +125 -2 # Export rate, resolution and resetafter as sysfs attributes. # # drivers/input/mouse/logips2pp.c # 2004/09/30 01:27:48-05:00 dtor_core@ameritech.net +39 -9 # Export smartscroll as a sysfs attribute. # # ChangeSet # 2004/09/30 01:27:24-05:00 dtor_core@ameritech.net # Input: psmouse - reset mouse before doing intellimouse/explorer # probes in case it got confused by earlier probes; switch # to streaming mode before setting scale and resolution, # otherwise some KVMs get confused. # # Patch-by: Marko Macek # Signed-off-by: Dmitry Torokhov # # drivers/input/mouse/psmouse-base.c # 2004/09/30 01:27:07-05:00 dtor_core@ameritech.net +11 -7 # Reset mouse before doing intellimouse/explorer probes in case it # got confused by earlier probes; switch to streaming mode before # setting scale and resolution, otherwise some KVMs may get confused. # # ChangeSet # 2004/09/30 01:26:43-05:00 dtor_core@ameritech.net # Input: synaptics - not only switch to 4-byte client protocol # but also revert to 3-byte mode if client selected lower # protocol. # # Signed-off-by: Dmitry Torokhov # # drivers/input/mouse/synaptics.c # 2004/09/30 01:26:27-05:00 dtor_core@ameritech.net +7 -3 # Not only switch to 4-byte client protocol but also disable it # if client switched to 3-byte protocol. # # ChangeSet # 2004/09/30 01:25:47-05:00 dtor_core@ameritech.net # Input: psmouse - add set_rate and set_resolution handlers to make # adding new protocols easier and remove special knowledge # from psmouse-base.c # # Signed-off-by: Dmitry Torokhov # # drivers/input/mouse/synaptics.h # 2004/09/30 01:25:30-05:00 dtor_core@ameritech.net +1 -0 # Add current mode byte to synaptics structure. # # drivers/input/mouse/synaptics.c # 2004/09/30 01:25:30-05:00 dtor_core@ameritech.net +27 -10 # Move rate switching code into separate synaptics_set_rate handler. # # drivers/input/mouse/psmouse.h # 2004/09/30 01:25:30-05:00 dtor_core@ameritech.net +7 -1 # Add set_rate and set_resolution handlers to make adding new # protocols easier and remove special knowledge from psmouse-base.c # # drivers/input/mouse/psmouse-base.c # 2004/09/30 01:25:30-05:00 dtor_core@ameritech.net +20 -23 # Add set_rate and set_resolution handlers to make adding new # protocols easier and remove special knowledge from psmouse-base.c # # drivers/input/mouse/logips2pp.h # 2004/09/30 01:25:30-05:00 dtor_core@ameritech.net +0 -1 # Remove ps2pp_set_800dpi from list of exported functions. # # drivers/input/mouse/logips2pp.c # 2004/09/30 01:25:30-05:00 dtor_core@ameritech.net +14 -8 # Add set_resultion handler. # # ChangeSet # 2004/09/30 01:24:59-05:00 dtor_core@ameritech.net # Input: add a new signature for ALPS DualPoint found in # Dell Inspiron 8500 # # Signed-off-by: Dmitry Torokhov # # drivers/input/mouse/alps.c # 2004/09/30 01:24:37-05:00 dtor_core@ameritech.net +1 -0 # Add a new signature for DualPoint found in Dell Inspiron 8500 # # ChangeSet # 2004/09/24 12:26:54+02:00 jbglaw@lug-owl.de # input: More comment fixes in lkkbd.c # # Signed-off-by: Jan-Benedict Glaw # Signed-off-by: Vojtech Pavlik # # drivers/input/keyboard/lkkbd.c # 2004/09/24 12:26:43+02:00 jbglaw@lug-owl.de +3 -3 # input: More comment fixes in lkkbd.c # # Signed-off-by: Jan-Benedict Glaw # Signed-off-by: Vojtech Pavlik # # ChangeSet # 2004/09/24 11:40:14+02:00 bjorn.helgaas@hp.com # Input: Add ACPI-based i8042 keyboard and aux controller enumeration; can be # disabled by passing i8042.noacpi as a boot parameter. # # Original code by Bjorn Helgaas , reworked by # Dmitry Torokhov , FixedIO support from Hans-Frieder Vogt # # # Signed-off-by: Bjorn Helgaas # Signed-off-by: Dmitry Torokhov # Signed-off-by: Andrew Morton # Signed-off-by: Vojtech Pavlik # # drivers/input/serio/i8042-x86ia64io.h # 2004/09/24 11:40:02+02:00 bjorn.helgaas@hp.com +308 -0 # # drivers/input/serio/i8042.h # 2004/09/24 11:40:02+02:00 bjorn.helgaas@hp.com +2 -0 # Input: Add ACPI-based i8042 keyboard and aux controller enumeration; can be # disabled by passing i8042.noacpi as a boot parameter. # # Original code by Bjorn Helgaas , reworked by # Dmitry Torokhov , FixedIO support from Hans-Frieder Vogt # # # Signed-off-by: Bjorn Helgaas # Signed-off-by: Dmitry Torokhov # Signed-off-by: Andrew Morton # Signed-off-by: Vojtech Pavlik # # drivers/input/serio/i8042.c # 2004/09/24 11:40:02+02:00 bjorn.helgaas@hp.com +6 -0 # Input: Add ACPI-based i8042 keyboard and aux controller enumeration; can be # disabled by passing i8042.noacpi as a boot parameter. # # Original code by Bjorn Helgaas , reworked by # Dmitry Torokhov , FixedIO support from Hans-Frieder Vogt # # # Signed-off-by: Bjorn Helgaas # Signed-off-by: Dmitry Torokhov # Signed-off-by: Andrew Morton # Signed-off-by: Vojtech Pavlik # # drivers/input/serio/i8042-x86ia64io.h # 2004/09/24 11:40:02+02:00 bjorn.helgaas@hp.com +0 -0 # BitKeeper file /home/vojtech/bk/input/drivers/input/serio/i8042-x86ia64io.h # # drivers/input/serio/i8042-io.h # 2004/09/24 11:40:02+02:00 bjorn.helgaas@hp.com +7 -44 # Input: Add ACPI-based i8042 keyboard and aux controller enumeration; can be # disabled by passing i8042.noacpi as a boot parameter. # # Original code by Bjorn Helgaas , reworked by # Dmitry Torokhov , FixedIO support from Hans-Frieder Vogt # # # Signed-off-by: Bjorn Helgaas # Signed-off-by: Dmitry Torokhov # Signed-off-by: Andrew Morton # Signed-off-by: Vojtech Pavlik # # Documentation/kernel-parameters.txt # 2004/09/24 11:40:00+02:00 bjorn.helgaas@hp.com +2 -0 # Input: Add ACPI-based i8042 keyboard and aux controller enumeration; can be # disabled by passing i8042.noacpi as a boot parameter. # # Original code by Bjorn Helgaas , reworked by # Dmitry Torokhov , FixedIO support from Hans-Frieder Vogt # # # Signed-off-by: Bjorn Helgaas # Signed-off-by: Dmitry Torokhov # Signed-off-by: Andrew Morton # Signed-off-by: Vojtech Pavlik # # ChangeSet # 2004/09/24 11:36:34+02:00 jbglaw@lug-owl.de # Input: correct the the wrong use of "DB9" to the correct name, "DE9". # Also, some comments/debugging output is fixed up. # # Signed-off-by: Jan-Benedict Glaw # Signed-off-by: Andrew Morton # Signed-off-by: Vojtech Pavlik # # drivers/input/mouse/vsxxxaa.c # 2004/09/24 11:36:22+02:00 jbglaw@lug-owl.de +29 -24 # Input: correct the the wrong use of "DB9" to the correct name, "DE9". # Also, some comments/debugging output is fixed up. # # Signed-off-by: Jan-Benedict Glaw # Signed-off-by: Andrew Morton # Signed-off-by: Vojtech Pavlik # # ChangeSet # 2004/09/24 10:30:25+02:00 lenz@cs.wisc.edu # input: Add LED definitions for PDAs. # # Signed-off-by: Vojtech Pavlik # Signed-off-by: John Lenz # # include/linux/input.h # 2004/09/24 10:30:14+02:00 lenz@cs.wisc.edu +2 -0 # input: Add LED definitions for PDAs. # # Signed-off-by: Vojtech Pavlik # Signed-off-by: John Lenz # # ChangeSet # 2004/09/23 13:01:47+02:00 mochel@digitalimplant.org # input: Remove calls to pm_access() and pm_dev_idle() from input.c, as # they're empty functions anyway. # # Signed-off-by: Vojtech Pavlik # Patch-by: Patrick Mochel # # drivers/input/input.c # 2004/09/23 13:01:41+02:00 mochel@digitalimplant.org +0 -7 # input: Remove calls to pm_access() and pm_dev_idle() from input.c, as # they're empty functions anyway. # # Signed-off-by: Vojtech Pavlik # Patch-by: Patrick Mochel # # ChangeSet # 2004/09/23 12:59:31+02:00 vojtech@suse.cz # input: Tidy up & fix the hid-input.c driver. Dual-wheel A4 mice don't report the phantom # button anymore, D-Pads are mapped to Hat-switches, debug can print HID->Input # mappings, more mappings added, devices with reports larger than MaxPacketSize # work again. # # Signed-off-by: Vojtech Pavlik # # include/linux/input.h # 2004/09/23 12:59:24+02:00 vojtech@suse.cz +3 -0 # input: Tidy up & fix the hid-input.c driver. Dual-wheel A4 mice don't report the phantom # button anymore, D-Pads are mapped to Hat-switches, debug can print HID->Input # mappings, more mappings added, devices with reports larger than MaxPacketSize # work again. # # Signed-off-by: Vojtech Pavlik # # drivers/usb/input/hid.h # 2004/09/23 12:59:24+02:00 vojtech@suse.cz +41 -3 # input: Tidy up & fix the hid-input.c driver. Dual-wheel A4 mice don't report the phantom # button anymore, D-Pads are mapped to Hat-switches, debug can print HID->Input # mappings, more mappings added, devices with reports larger than MaxPacketSize # work again. # # Signed-off-by: Vojtech Pavlik # # drivers/usb/input/hid-input.c # 2004/09/23 12:59:24+02:00 vojtech@suse.cz +217 -246 # input: Tidy up & fix the hid-input.c driver. Dual-wheel A4 mice don't report the phantom # button anymore, D-Pads are mapped to Hat-switches, debug can print HID->Input # mappings, more mappings added, devices with reports larger than MaxPacketSize # work again. # # Signed-off-by: Vojtech Pavlik # # drivers/usb/input/hid-debug.h # 2004/09/23 12:59:24+02:00 vojtech@suse.cz +263 -1 # input: Tidy up & fix the hid-input.c driver. Dual-wheel A4 mice don't report the phantom # button anymore, D-Pads are mapped to Hat-switches, debug can print HID->Input # mappings, more mappings added, devices with reports larger than MaxPacketSize # work again. # # Signed-off-by: Vojtech Pavlik # # drivers/usb/input/hid-core.c # 2004/09/23 12:59:24+02:00 vojtech@suse.cz +8 -9 # input: Tidy up & fix the hid-input.c driver. Dual-wheel A4 mice don't report the phantom # button anymore, D-Pads are mapped to Hat-switches, debug can print HID->Input # mappings, more mappings added, devices with reports larger than MaxPacketSize # work again. # # Signed-off-by: Vojtech Pavlik # # ChangeSet # 2004/09/22 22:35:49-05:00 dtor_core@ameritech.net # Input: clean up ALPS DualPoint logic # # Signed-off-by: Dmitry Torokhov # # drivers/input/mouse/alps.c # 2004/09/22 22:35:28-05:00 dtor_core@ameritech.net +22 -37 # Clean up DualPoint logic # # ChangeSet # 2004/09/22 10:46:32+02:00 vojtech@suse.cz # input: More IOWarrior blacklist entries in hid.c, rearranging the # blacklist back to alphabetic order. # # Signed-off-by: Vojtech Pavlik # # drivers/usb/input/hid-core.c # 2004/09/22 10:46:25+02:00 vojtech@suse.cz +9 -7 # input: More IOWarrior blacklist entries in hid.c, rearranging the # blacklist back to alphabetic order. # # Signed-off-by: Vojtech Pavlik # # ChangeSet # 2004/09/22 01:50:38-05:00 dtor_core@ameritech.net # Input: atkbd - export extra, scroll, set, softrepeat and softraw as individual # keyboard attributes (sysfs) and allow them to be set/changed independently # for each keyboard: # # echo -n "2" > /sys/bus/serio/devices/serio1/set # echo -n "1" > /sys/bus/serio/devices/serio1/softrepeat # # Signed-off-by: Dmitry Torokhov # # drivers/input/keyboard/atkbd.c # 2004/09/22 01:50:23-05:00 dtor_core@ameritech.net +365 -76 # Export extra, scroll, set, softrepeat and softraw as individual # sysfs keyboard attributes. # # ChangeSet # 2004/09/22 01:49:31-05:00 dtor_core@ameritech.net # Input: add serio_[un]pin_driver() functions so attribute handlers # can safely access driver bound to a serio port. # # Signed-off-by: Dmitry Torokhov # # include/linux/serio.h # 2004/09/22 01:49:13-05:00 dtor_core@ameritech.net +15 -1 # Add drv_sem to serio structure and serio_[un]pin_driver() so attribute # handlers can safely access driver bound to a serio port # # drivers/input/serio/serio.c # 2004/09/22 01:49:13-05:00 dtor_core@ameritech.net +12 -8 # Take drv_sem when binding/unbinding driver to a serio port # # ChangeSet # 2004/09/22 01:48:40-05:00 dtor_core@ameritech.net # Input: pull common code from psmouse and atkbd into libps2 module # # Signed-off-by: Dmitry Torokhov # # include/linux/libps2.h # 2004/09/22 01:48:17-05:00 dtor_core@ameritech.net +50 -0 # BitKeeper file /misc/arc/dtor/include/linux/libps2.h # # drivers/input/serio/Makefile # 2004/09/22 01:48:17-05:00 dtor_core@ameritech.net +1 -0 # Add libps2 # # drivers/input/serio/Kconfig # 2004/09/22 01:48:17-05:00 dtor_core@ameritech.net +10 -0 # Add libps2 # # drivers/input/mouse/synaptics.c # 2004/09/22 01:48:17-05:00 dtor_core@ameritech.net +15 -13 # Rename psmouse_coommand -> ps2_command # # drivers/input/mouse/psmouse.h # 2004/09/22 01:48:17-05:00 dtor_core@ameritech.net +1 -15 # Embed ps2dev into psmouse structure # # drivers/input/mouse/psmouse-base.c # 2004/09/22 01:48:17-05:00 dtor_core@ameritech.net +52 -187 # Switch to using libps2 to communicate with PS/2 port # # drivers/input/mouse/logips2pp.c # 2004/09/22 01:48:17-05:00 dtor_core@ameritech.net +23 -18 # Rename psmouse_coommand -> ps2_command # # drivers/input/mouse/alps.c # 2004/09/22 01:48:17-05:00 dtor_core@ameritech.net +38 -30 # Rename psmouse_coommand -> ps2_command # # drivers/input/mouse/Kconfig # 2004/09/22 01:48:17-05:00 dtor_core@ameritech.net +1 -0 # Automatically select libps2 when selecting psmouse # # include/linux/libps2.h # 2004/09/22 01:48:17-05:00 dtor_core@ameritech.net +0 -0 # BitKeeper file /usr/src/export/input/include/linux/libps2.h # # drivers/input/serio/libps2.c # 2004/09/22 01:48:17-05:00 dtor_core@ameritech.net +273 -0 # BitKeeper file /misc/arc/dtor/drivers/input/serio/libps2.c # # drivers/input/keyboard/atkbd.c # 2004/09/22 01:48:17-05:00 dtor_core@ameritech.net +52 -238 # Switch to using libps2 to communicate with PS/2 port # # drivers/input/keyboard/Kconfig # 2004/09/22 01:48:17-05:00 dtor_core@ameritech.net +1 -0 # Automatically select libps2 when selecting atkbd # # drivers/input/serio/libps2.c # 2004/09/22 01:48:17-05:00 dtor_core@ameritech.net +0 -0 # BitKeeper file /usr/src/export/input/drivers/input/serio/libps2.c # # ChangeSet # 2004/09/21 16:12:18+02:00 vojtech@suse.cz # input: Add AT-compatible rawmode generation for ARM. # # Signed-off-by: Vojtech Pavlik # Patch-by: Woody Suwalski # # drivers/char/keyboard.c # 2004/09/21 16:12:11+02:00 vojtech@suse.cz +4 -1 # input: Add AT-compatible rawmode generation for ARM. # # Signed-off-by: Vojtech Pavlik # Patch-by: Woody Suwalski # # ChangeSet # 2004/09/21 15:48:50+02:00 petero2@telia.com # input: Add ALPS touchpad driver, driver by Neil Brown, Peter Osterlund # and Dmitry Torokhov, some fixes by Vojtech Pavlik. # # Signed-off-by: Vojtech Pavlik # Patch-by: Peter Osterlund # # drivers/input/mouse/alps.h # 2004/09/21 15:48:43+02:00 petero2@telia.com +17 -0 # # drivers/input/mouse/alps.h # 2004/09/21 15:48:43+02:00 petero2@telia.com +0 -0 # BitKeeper file /data2/bk/input/drivers/input/mouse/alps.h # # drivers/input/mouse/alps.c # 2004/09/21 15:48:42+02:00 petero2@telia.com +422 -0 # # drivers/input/mousedev.c # 2004/09/21 15:48:42+02:00 petero2@telia.com +10 -4 # input: Add ALPS touchpad driver, driver by Neil Brown, Peter Osterlund # and Dmitry Torokhov, some fixes by Vojtech Pavlik. # # Signed-off-by: Vojtech Pavlik # Patch-by: Peter Osterlund # # drivers/input/mouse/psmouse.h # 2004/09/21 15:48:42+02:00 petero2@telia.com +3 -0 # input: Add ALPS touchpad driver, driver by Neil Brown, Peter Osterlund # and Dmitry Torokhov, some fixes by Vojtech Pavlik. # # Signed-off-by: Vojtech Pavlik # Patch-by: Peter Osterlund # # drivers/input/mouse/psmouse-base.c # 2004/09/21 15:48:42+02:00 petero2@telia.com +22 -1 # input: Add ALPS touchpad driver, driver by Neil Brown, Peter Osterlund # and Dmitry Torokhov, some fixes by Vojtech Pavlik. # # Signed-off-by: Vojtech Pavlik # Patch-by: Peter Osterlund # # drivers/input/mouse/alps.c # 2004/09/21 15:48:42+02:00 petero2@telia.com +0 -0 # BitKeeper file /data2/bk/input/drivers/input/mouse/alps.c # # drivers/input/mouse/Makefile # 2004/09/21 15:48:42+02:00 petero2@telia.com +1 -1 # input: Add ALPS touchpad driver, driver by Neil Brown, Peter Osterlund # and Dmitry Torokhov, some fixes by Vojtech Pavlik. # # Signed-off-by: Vojtech Pavlik # Patch-by: Peter Osterlund # # ChangeSet # 2004/09/21 15:27:54+02:00 pmaydell@chiark.greenend.org.uk # input: Add support for Kensington ThinkingMouse PS/2 protocol. # # Signed-off-by: Vojtech Pavlik # Patch-by: Peter Maydell # # drivers/input/mouse/psmouse.h # 2004/09/21 15:27:48+02:00 pmaydell@chiark.greenend.org.uk +11 -7 # input: Add support for Kensington ThinkingMouse PS/2 protocol. # # Signed-off-by: Vojtech Pavlik # Patch-by: Peter Maydell # # drivers/input/mouse/psmouse-base.c # 2004/09/21 15:27:48+02:00 pmaydell@chiark.greenend.org.uk +50 -5 # input: Add support for Kensington ThinkingMouse PS/2 protocol. # # Signed-off-by: Vojtech Pavlik # Patch-by: Peter Maydell # # ChangeSet # 2004/09/21 10:04:06+02:00 vojtech@suse.cz # input: Some HID devices have problems returning the HID class descriptor. # Try a few times before giving up. # # Signed-off-by: Vojtech Pavlik # # drivers/usb/input/hid-core.c # 2004/09/21 10:04:00+02:00 vojtech@suse.cz +8 -3 # input: Some HID devices have problems returning the HID class descriptor. # Try a few times before giving up. # # Signed-off-by: Vojtech Pavlik # # ChangeSet # 2004/09/21 09:24:21+02:00 pnelson@suse.cz # input: Fix oops in gamecon # # Signed-off-by: Vojtech Pavlik # Patch-by: Peter Nelson # # drivers/input/joystick/gamecon.c # 2004/09/21 09:24:14+02:00 pnelson@suse.cz +3 -3 # input: Fix oops in gamecon # # Signed-off-by: Vojtech Pavlik # Patch-by: Peter Nelson # # ChangeSet # 2004/09/20 18:37:18-04:00 jgarzik@pobox.com # Hand-merge upstream r8169 DAC changes. # # drivers/net/r8169.c # 2004/09/20 18:37:11-04:00 jgarzik@pobox.com +0 -14 # Hand-merge upstream r8169 DAC changes. # # drivers/net/Kconfig # 2004/09/20 18:35:32-04:00 jgarzik@pobox.com +0 -0 # Auto merged # # ChangeSet # 2004/09/20 14:06:35-04:00 romieu@fr.zoreil.com # [PATCH] r8169: default on disabling PCIDAC # # Default to disabling PCI DAC as this option appears unsafe on amd64 # (original suggestion by Hans-Frieder Vogt ). # # The driver will typically report PCI System error when something goes # wrong. The relevant interrupt is not masked any more and the driver # can thus be disabled. # # Signed-off-by: Francois Romieu # # drivers/net/r8169.c # 2004/09/19 18:16:02-04:00 romieu@fr.zoreil.com +15 -2 # r8169: default on disabling PCIDAC # # ChangeSet # 2004/09/19 13:46:50+02:00 olh@suse.de # input: Joydump depends on gameport # # Signed-off-by: Vojtech Pavlik # Patch-by: Olaf Hering # # drivers/input/joystick/Kconfig # 2004/09/19 13:46:33+02:00 olh@suse.de +1 -1 # input: Joydump depends on gameport # # Signed-off-by: Vojtech Pavlik # Patch-by: Olaf Hering # # ChangeSet # 2004/09/16 20:34:40-04:00 romieu@fr.zoreil.com # [PATCH] r8169: Mac identifier extracted from Realtek's driver v2.2 # # Mac identifier extracted from Realtek's driver v2.2. # # Signed-off-by: Francois Romieu # # drivers/net/r8169.c # 2004/09/08 17:31:09-04:00 romieu@fr.zoreil.com +3 -1 # r8169: Mac identifier extracted from Realtek's driver v2.2 # # ChangeSet # 2004/09/16 20:34:28-04:00 romieu@fr.zoreil.com # [PATCH] r8169: TSO support. # # TSO support. Suggestion of Jeff Garzik. # # Signed-off-by: Francois Romieu # # drivers/net/r8169.c # 2004/09/08 16:53:47-04:00 romieu@fr.zoreil.com +14 -3 # r8169: TSO support. # # ChangeSet # 2004/09/16 20:34:16-04:00 romieu@fr.zoreil.com # [PATCH] r8169: hint for Tx flow control # # return 1 in start_xmit() when the required descriptors are not available # and wait for more room. # # Signed-off-by: Francois Romieu # # drivers/net/r8169.c # 2004/09/08 16:04:04-04:00 romieu@fr.zoreil.com +7 -5 # r8169: hint for Tx flow control # # ChangeSet # 2004/09/16 20:34:04-04:00 romieu@fr.zoreil.com # [PATCH] r8169: miscalculation of available Tx descriptors # # The count of available entries in the Tx descriptors ring is badly wrong. # # Signed-off-by: Francois Romieu # # drivers/net/r8169.c # 2004/09/08 16:02:35-04:00 romieu@fr.zoreil.com +9 -5 # r8169: miscalculation of available Tx descriptors # # ChangeSet # 2004/09/16 20:27:36-04:00 jgarzik@pobox.com # Merge pobox.com:/spare/repo/linux-2.6 # into pobox.com:/spare/repo/netdev-2.6/r8169 # # drivers/net/Kconfig # 2004/09/16 20:27:32-04:00 jgarzik@pobox.com +0 -0 # Auto merged # # ChangeSet # 2004/08/31 03:18:42-04:00 jgarzik@pobox.com # Hand-merge upstream r8169 change. # # drivers/net/r8169.c # 2004/08/31 03:18:36-04:00 jgarzik@pobox.com +1 -2 # Hand-merge upstream r8169 change. # # ChangeSet # 2004/08/28 19:20:27-04:00 romieu@fr.zoreil.com # [PATCH] r8169: vlan support # # 802.1Q support. # Mostly stolen from the 8139cp.c driver. The relevant registers and # descriptors bits are identical for both chipsets. # # Signed-off-by: Francois Romieu # # drivers/net/r8169.c # 2004/08/23 17:31:33-04:00 romieu@fr.zoreil.com +94 -2 # r8169: vlan support # # drivers/net/Kconfig # 2004/08/23 17:31:33-04:00 romieu@fr.zoreil.com +9 -0 # r8169: vlan support # # ChangeSet # 2004/08/28 19:20:17-04:00 romieu@fr.zoreil.com # [PATCH] r8169: Rx checksum support # # Rx IP checksumming support. # # Signed-off-by: Francois Romieu # # drivers/net/r8169.c # 2004/08/23 17:30:08-04:00 romieu@fr.zoreil.com +58 -1 # r8169: Rx checksum support # # ChangeSet # 2004/08/28 19:20:06-04:00 romieu@fr.zoreil.com # [PATCH] r8169: advertise DMA to high memory # # Advertise the ability to DMA to high memory. # # Signed-off-by: Francois Romieu # # drivers/net/r8169.c # 2004/08/23 17:30:06-04:00 romieu@fr.zoreil.com +3 -4 # r8169: advertise DMA to high memory # # ChangeSet # 2004/08/28 19:19:56-04:00 romieu@fr.zoreil.com # [PATCH] r8169: Tx checksum offload # # SG and IP checksumming support on output. # # Signed-off-by: Francois Romieu # # drivers/net/r8169.c # 2004/08/23 17:30:04-04:00 romieu@fr.zoreil.com +153 -58 # r8169: Tx checksum offload # # ChangeSet # 2004/08/28 19:19:45-04:00 romieu@fr.zoreil.com # [PATCH] r8169: comment a gcc 2.95.x bug # # gcc 2.95.3 bug has been experienced on gcc 2.95.4. # # Signed-off-by: Francois Romieu # # drivers/net/r8169.c # 2004/08/23 17:30:03-04:00 romieu@fr.zoreil.com +1 -1 # r8169: comment a gcc 2.95.x bug # # ChangeSet # 2004/08/28 19:19:34-04:00 romieu@fr.zoreil.com # [PATCH] r8169: sync the names of a few bits with the 8139cp driver # # Sync the names of the descriptor with these which are used in the 8139cp # driver. Though not exactly identical the descriptors are forward compatible. # # Signed-off-by: Francois Romieu # # drivers/net/r8169.c # 2004/08/23 17:30:01-04:00 romieu@fr.zoreil.com +20 -20 # r8169: sync the names of a few bits with the 8139cp driver # # ChangeSet # 2004/08/28 19:19:23-04:00 romieu@fr.zoreil.com # [PATCH] r8169: bump version number # # Help reviewers realize that the in-kernel driver has evolved lately. # # Signed-off-by: Francois Romieu # # drivers/net/r8169.c # 2004/08/23 17:30:00-04:00 romieu@fr.zoreil.com +10 -1 # r8169: bump version number # # ChangeSet # 2004/08/28 19:19:13-04:00 romieu@fr.zoreil.com # [PATCH] r8169: enable MWI # # - enable Memory Write and Invalidate (disabled after reset); # - fix wrong goto. # # Signed-off-by: Francois Romieu # # drivers/net/r8169.c # 2004/08/23 17:30:00-04:00 romieu@fr.zoreil.com +11 -6 # r8169: enable MWI # # ChangeSet # 2004/08/28 19:19:03-04:00 romieu@fr.zoreil.com # [PATCH] r8169: code cleanup # # Cleanup/code removal: # - MAX_ETH_FRAME_SIZE is not used; # - removal of assertion for impossible condition (if it happens, it will _not_ # take long to notice anyway) # - introduce rtl8169_release_board() to factor out some code; # - rtl8169_init_board: # - some variables are not really needed nor do they help read the code; # - more explicit name for label; # - tp->{Rx/Tx}DescArray: no need to zeroize coherent DMA mapping. # # Signed-off-by: Francois Romieu # # drivers/net/r8169.c # 2004/08/23 17:29:59-04:00 romieu@fr.zoreil.com +26 -38 # r8169: code cleanup # # ChangeSet # 2004/08/28 19:18:52-04:00 romieu@fr.zoreil.com # [PATCH] r8169: per device receive buffer size # # Turn the Rx receive buffer size into a per device variable. # # Signed-off-by: Francois Romieu # # drivers/net/r8169.c # 2004/08/23 17:29:59-04:00 romieu@fr.zoreil.com +28 -23 # r8169: per device receive buffer size # # ChangeSet # 2004/08/28 19:18:40-04:00 romieu@fr.zoreil.com # [PATCH] r8169: add ethtool_ops.{get_regs_len/get_regs} # # - ethtool_ops.{get_regs_len/get_regs} for r8169; # - fix a dubious check: datasheet v1.21 claims on p.44 that io/memory space # is exactly 256 bytes wide; # - use SET_ETHTOOL_OPS(). # # Signed-off-by: Francois Romieu # # drivers/net/r8169.c # 2004/08/23 17:29:58-04:00 romieu@fr.zoreil.com +23 -3 # r8169: add ethtool_ops.{get_regs_len/get_regs} # diff -Nru a/CREDITS b/CREDITS --- a/CREDITS 2005-01-05 17:43:38 -08:00 +++ b/CREDITS 2005-01-05 17:43:38 -08:00 @@ -1893,7 +1893,7 @@ D: Bug fixes N: Paul Laufer -E: pelaufer@csupomona.edu +E: paul@laufernet.com D: Soundblaster driver fixes, ISAPnP quirk S: California, USA @@ -2021,6 +2021,15 @@ E: hjl@gnu.ai.mit.edu D: GCC + libraries hacker +N: Michal Ludvig +E: michal@logix.cz +W: http://www.logix.cz/michal +P: 1024D/C45B2218 1162 6471 D391 76E0 9F99 29DA 0C3A 2509 C45B 2218 +D: VIA PadLock driver +D: Netfilter pkttype module +S: Prague 4 +S: Czech Republic + N: Tuomas J. Lukka E: Tuomas.Lukka@Helsinki.FI D: Original dual-monitor patches @@ -3569,7 +3578,6 @@ N: David Woodhouse E: dwmw2@infradead.org -E: dwmw2@redhat.com D: ARCnet stuff, Applicom board driver, SO_BINDTODEVICE, D: some Alpha platform porting from 2.0, Memory Technology Devices, D: Acquire watchdog timer, PC speaker driver maintenance, diff -Nru a/Documentation/arm/IXP4xx b/Documentation/arm/IXP4xx --- a/Documentation/arm/IXP4xx 2005-01-05 17:43:35 -08:00 +++ b/Documentation/arm/IXP4xx 2005-01-05 17:43:35 -08:00 @@ -12,8 +12,11 @@ in industrial control and other areas due to low cost and power consumption. The IXP4xx family currently consists of several processors that support different network offload functions such as encryption, -routing, firewalling, etc. For more information on the various -versions of the CPU, see: +routing, firewalling, etc. The IXP46x family is an updated version which +supports faster speeds, new memory and flash configurations, and more +integration such as an on-chip I2C controller. + +For more information on the various versions of the CPU, see: http://developer.intel.com/design/network/products/npfamily/ixp4xx.htm @@ -27,7 +30,7 @@ - Dual serial ports - PCI interface - Flash access (MTD/JFFS) -- I2C through GPIO +- I2C through GPIO on IXP42x - GPIO for input/output/interrupts See include/asm-arm/arch-ixp4xx/platform.h for access functions. - Timers (watchdog, OS) @@ -122,6 +125,12 @@ also known as the Richfield board. It contains 4 PCI slots, 16MB of flash, two 10/100 ports and one ADSL port. +Intel IXDP465 Development Platform +http://developer.intel.com/design/network/products/npfamily/ixdp465.htm + + This is basically an IXDP425 with an IXP465 and 32M of flash instead + of just 16. + Intel IXDPG425 Development Platform This is basically and ADI Coyote board with a NEC EHCI controller @@ -154,6 +163,7 @@ The following people have contributed patches/comments/etc: +Lennerty Buytenhek Lutz Jaenicke Justin Mayfield Robert E. Ranslam @@ -161,4 +171,4 @@ ------------------------------------------------------------------------- -Last Update: 11/16/2004 +Last Update: 01/04/2005 diff -Nru a/Documentation/fujitsu/frv/README.txt b/Documentation/fujitsu/frv/README.txt --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/Documentation/fujitsu/frv/README.txt 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,51 @@ + ================================ + Fujitsu FR-V LINUX DOCUMENTATION + ================================ + +This directory contains documentation for the Fujitsu FR-V CPU architecture +port of Linux. + +The following documents are available: + + (*) features.txt + + A description of the basic features inherent in this architecture port. + + + (*) configuring.txt + + A summary of the configuration options particular to this architecture. + + + (*) booting.txt + + A description of how to boot the kernel image and a summary of the kernel + command line options. + + + (*) gdbstub.txt + + A description of how to debug the kernel using GDB attached by serial + port, and a summary of the services available. + + + (*) mmu-layout.txt + + A description of the virtual and physical memory layout used in the + MMU linux kernel, and the registers used to support it. + + + (*) gdbinit + + An example .gdbinit file for use with GDB. It includes macros for viewing + MMU state on the FR451. See mmu-layout.txt for more information. + + + (*) clock.txt + + A description of the CPU clock scaling interface. + + + (*) atomic-ops.txt + + A description of how the FR-V kernel's atomic operations work. diff -Nru a/Documentation/fujitsu/frv/atomic-ops.txt b/Documentation/fujitsu/frv/atomic-ops.txt --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/Documentation/fujitsu/frv/atomic-ops.txt 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,134 @@ + ===================================== + FUJITSU FR-V KERNEL ATOMIC OPERATIONS + ===================================== + +On the FR-V CPUs, there is only one atomic Read-Modify-Write operation: the SWAP/SWAPI +instruction. Unfortunately, this alone can't be used to implement the following operations: + + (*) Atomic add to memory + + (*) Atomic subtract from memory + + (*) Atomic bit modification (set, clear or invert) + + (*) Atomic compare and exchange + +On such CPUs, the standard way of emulating such operations in uniprocessor mode is to disable +interrupts, but on the FR-V CPUs, modifying the PSR takes a lot of clock cycles, and it has to be +done twice. This means the CPU runs for a relatively long time with interrupts disabled, +potentially having a great effect on interrupt latency. + + +============= +NEW ALGORITHM +============= + +To get around this, the following algorithm has been implemented. It operates in a way similar to +the LL/SC instruction pairs supported on a number of platforms. + + (*) The CCCR.CC3 register is reserved within the kernel to act as an atomic modify abort flag. + + (*) In the exception prologues run on kernel->kernel entry, CCCR.CC3 is set to 0 (Undefined + state). + + (*) All atomic operations can then be broken down into the following algorithm: + + (1) Set ICC3.Z to true and set CC3 to True (ORCC/CKEQ/ORCR). + + (2) Load the value currently in the memory to be modified into a register. + + (3) Make changes to the value. + + (4) If CC3 is still True, simultaneously and atomically (by VLIW packing): + + (a) Store the modified value back to memory. + + (b) Set ICC3.Z to false (CORCC on GR29 is sufficient for this - GR29 holds the current + task pointer in the kernel, and so is guaranteed to be non-zero). + + (5) If ICC3.Z is still true, go back to step (1). + +This works in a non-SMP environment because any interrupt or other exception that happens between +steps (1) and (4) will set CC3 to the Undefined, thus aborting the store in (4a), and causing the +condition in ICC3 to remain with the Z flag set, thus causing step (5) to loop back to step (1). + + +This algorithm suffers from two problems: + + (1) The condition CCCR.CC3 is cleared unconditionally by an exception, irrespective of whether or + not any changes were made to the target memory location during that exception. + + (2) The branch from step (5) back to step (1) may have to happen more than once until the store + manages to take place. In theory, this loop could cycle forever because there are too many + interrupts coming in, but it's unlikely. + + +======= +EXAMPLE +======= + +Taking an example from include/asm-frv/atomic.h: + + static inline int atomic_add_return(int i, atomic_t *v) + { + unsigned long val; + + asm("0: \n" + +It starts by setting ICC3.Z to true for later use, and also transforming that into CC3 being in the +True state. + + " orcc gr0,gr0,gr0,icc3 \n" <-- (1) + " ckeq icc3,cc7 \n" <-- (1) + +Then it does the load. Note that the final phase of step (1) is done at the same time as the +load. The VLIW packing ensures they are done simultaneously. The ".p" on the load must not be +removed without swapping the order of these two instructions. + + " ld.p %M0,%1 \n" <-- (2) + " orcr cc7,cc7,cc3 \n" <-- (1) + +Then the proposed modification is generated. Note that the old value can be retained if required +(such as in test_and_set_bit()). + + " add%I2 %1,%2,%1 \n" <-- (3) + +Then it attempts to store the value back, contingent on no exception having cleared CC3 since it +was set to True. + + " cst.p %1,%M0 ,cc3,#1 \n" <-- (4a) + +It simultaneously records the success or failure of the store in ICC3.Z. + + " corcc gr29,gr29,gr0 ,cc3,#1 \n" <-- (4b) + +Such that the branch can then be taken if the operation was aborted. + + " beq icc3,#0,0b \n" <-- (5) + : "+U"(v->counter), "=&r"(val) + : "NPr"(i) + : "memory", "cc7", "cc3", "icc3" + ); + + return val; + } + + +============= +CONFIGURATION +============= + +The atomic ops implementation can be made inline or out-of-line by changing the +CONFIG_FRV_OUTOFLINE_ATOMIC_OPS configuration variable. Making it out-of-line has a number of +advantages: + + - The resulting kernel image may be smaller + - Debugging is easier as atomic ops can just be stepped over and they can be breakpointed + +Keeping it inline also has a number of advantages: + + - The resulting kernel may be Faster + - no out-of-line function calls need to be made + - the compiler doesn't have half its registers clobbered by making a call + +The out-of-line implementations live in arch/frv/lib/atomic-ops.S. diff -Nru a/Documentation/fujitsu/frv/booting.txt b/Documentation/fujitsu/frv/booting.txt --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/Documentation/fujitsu/frv/booting.txt 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,181 @@ + ========================= + BOOTING FR-V LINUX KERNEL + ========================= + +====================== +PROVIDING A FILESYSTEM +====================== + +First of all, a root filesystem must be made available. This can be done in +one of two ways: + + (1) NFS Export + + A filesystem should be constructed in a directory on an NFS server that + the target board can reach. This directory should then be NFS exported + such that the target board can read and write into it as root. + + (2) Flash Filesystem (JFFS2 Recommended) + + In this case, the image must be stored or built up on flash before it + can be used. A complete image can be built using the mkfs.jffs2 or + similar program and then downloaded and stored into flash by RedBoot. + + +======================== +LOADING THE KERNEL IMAGE +======================== + +The kernel will need to be loaded into RAM by RedBoot (or by some alternative +boot loader) before it can be run. The kernel image (arch/frv/boot/Image) may +be loaded in one of three ways: + + (1) Load from Flash + + This is the simplest. RedBoot can store an image in the flash (see the + RedBoot documentation) and then load it back into RAM. RedBoot keeps + track of the load address, entry point and size, so the command to do + this is simply: + + fis load linux + + The image is then ready to be executed. + + (2) Load by TFTP + + The following command will download a raw binary kernel image from the + default server (as negotiated by BOOTP) and store it into RAM: + + load -b 0x00100000 -r /tftpboot/image.bin + + The image is then ready to be executed. + + (3) Load by Y-Modem + + The following command will download a raw binary kernel image across the + serial port that RedBoot is currently using: + + load -m ymodem -b 0x00100000 -r zImage + + The serial client (such as minicom) must then be told to transmit the + program by Y-Modem. + + When finished, the image will then be ready to be executed. + + +================== +BOOTING THE KERNEL +================== + +Boot the image with the following RedBoot command: + + exec -c "" 0x00100000 + +For example: + + exec -c "console=ttySM0,115200 ip=:::::dhcp root=/dev/mtdblock2 rw" + +This will start the kernel running. Note that if the GDB-stub is compiled in, +then the kernel will immediately wait for GDB to connect over serial before +doing anything else. See the section on kernel debugging with GDB. + +The kernel command line tells the kernel where its console is and +how to find its root filesystem. This is made up of the following components, +separated by spaces: + + (*) console=ttyS[,[[[]]]] + + This specifies that the system console should output through on-chip + serial port (which can be "0" or "1"). + + is a standard baud rate between 1200 and 115200 (default 9600). + + is a parity setting of "N", "O", "E", "M" or "S" for None, Odd, + Even, Mark or Space. "None" is the default. + + is "7" or "8" for the number of bits per character. "8" is the + default. + + is "r" to use flow control (XCTS on serial port 2 only). The + default is to not use flow control. + + For example: + + console=ttyS0,115200 + + To use the first on-chip serial port at baud rate 115200, no parity, 8 + bits, and no flow control. + + (*) root=/dev/ + + This specifies the device upon which the root filesystem resides. For + example: + + /dev/nfs NFS root filesystem + /dev/mtdblock3 Fourth RedBoot partition on the System Flash + + (*) rw + + Start with the root filesystem mounted Read/Write. + + The remaining components are all optional: + + (*) ip=:::::: + + Configure the network interface. If is "off" then should + specify the IP address for the network device . provide + the hostname for the device. + + If is "bootp" or "dhcp", then all of these parameters will be + discovered by consulting a BOOTP or DHCP server. + + For example, the following might be used: + + ip=192.168.73.12::::frv:eth0:off + + This sets the IP address on the VDK motherboard RTL8029 ethernet chipset + (eth0) to be 192.168.73.12, and sets the board's hostname to be "frv". + + (*) nfsroot=:[,v] + + This is mandatory if "root=/dev/nfs" is given as an option. It tells the + kernel the IP address of the NFS server providing its root filesystem, + and the pathname on that server of the filesystem. + + The NFS version to use can also be specified. v2 and v3 are supported by + Linux. + + For example: + + nfsroot=192.168.73.1:/nfsroot-frv + + (*) profile=1 + + Turns on the kernel profiler (accessible through /proc/profile). + + (*) console=gdb0 + + This can be used as an alternative to the "console=ttyS..." listed + above. I tells the kernel to pass the console output to GDB if the + gdbstub is compiled in to the kernel. + + If this is used, then the gdbstub passes the text to GDB, which then + simply dumps it to its standard output. + + (*) mem=M + + Normally the kernel will work out how much SDRAM it has by reading the + SDRAM controller registers. That can be overridden with this + option. This allows the kernel to be told that it has megabytes of + memory available. + + (*) init= [ [ [ ...]]] + + This tells the kernel what program to run initially. By default this is + /sbin/init, but /sbin/sash or /bin/sh are common alternatives. + + (*) vdc=... + + This option configures the MB93493 companion chip visual display + driver. Please see Documentation/fujitsu/mb93493/vdc.txt for more + information. diff -Nru a/Documentation/fujitsu/frv/clock.txt b/Documentation/fujitsu/frv/clock.txt --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/Documentation/fujitsu/frv/clock.txt 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,65 @@ +Clock scaling +------------- + +The kernel supports scaling of CLCK.CMODE, CLCK.CM and CLKC.P0 clock +registers. If built with CONFIG_PM and CONFIG_SYSCTL options enabled, four +extra files will appear in the directory /proc/sys/pm/. Reading these files +will show: + + p0 -- current value of the P0 bit in CLKC register. + cm -- current value of the CM bits in CLKC register. + cmode -- current value of the CMODE bits in CLKC register. + +On all boards, the 'p0' file should also be writable, and either '1' or '0' +can be rewritten, to set or clear the CLKC_P0 bit respectively, hence +controlling whether the resource bus rate clock is halved. + +The 'cm' file should also be available on all boards. '0' can be written to it +to shift the board into High-Speed mode (normal), and '1' can be written to +shift the board into Medium-Speed mode. Selecting Low-Speed mode is not +supported by this interface, even though some CPUs do support it. + +On the boards with FR405 CPU (i.e. CB60 and CB70), the 'cmode' file is also +writable, allowing the CPU core speed (and other clock speeds) to be +controlled from userspace. + + +Determining current and possible settings +----------------------------------------- + +The current state and the available masks can be found in /proc/cpuinfo. For +example, on the CB70: + + # cat /proc/cpuinfo + CPU-Series: fr400 + CPU-Core: fr405, gr0-31, BE, CCCR + CPU: mb93405 + MMU: Prot + FP-Media: fr0-31, Media + System: mb93091-cb70, mb93090-mb00 + PM-Controls: cmode=0xd31f, cm=0x3, p0=0x3, suspend=0x9 + PM-Status: cmode=3, cm=0, p0=0 + Clock-In: 50.00 MHz + Clock-Core: 300.00 MHz + Clock-SDRAM: 100.00 MHz + Clock-CBus: 100.00 MHz + Clock-Res: 50.00 MHz + Clock-Ext: 50.00 MHz + Clock-DSU: 25.00 MHz + BogoMips: 300.00 + +And on the PDK, the PM lines look like the following: + + PM-Controls: cm=0x3, p0=0x3, suspend=0x9 + PM-Status: cmode=9, cm=0, p0=0 + +The PM-Controls line, if present, will indicate which /proc/sys/pm files can +be set to what values. The specification values are bitmasks; so, for example, +"suspend=0x9" indicates that 0 and 3 can be written validly to +/proc/sys/pm/suspend. + +The PM-Controls line will only be present if CONFIG_PM is configured to Y. + +The PM-Status line indicates which clock controls are set to which value. If +the file can be read, then the suspend value must be 0, and so that's not +included. diff -Nru a/Documentation/fujitsu/frv/configuring.txt b/Documentation/fujitsu/frv/configuring.txt --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/Documentation/fujitsu/frv/configuring.txt 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,125 @@ + ======================================= + FUJITSU FR-V LINUX KERNEL CONFIGURATION + ======================================= + +===================== +CONFIGURATION OPTIONS +===================== + +The most important setting is in the "MMU support options" tab (the first +presented in the configuration tools available): + + (*) "Kernel Type" + + This options allows selection of normal, MMU-requiring linux, and uClinux + (which doesn't require an MMU and doesn't have inter-process protection). + +There are a number of settings in the "Processor type and features" section of +the kernel configuration that need to be considered. + + (*) "CPU" + + The register and instruction sets at the core of the processor. This can + only be set to "FR40x/45x/55x" at the moment - but this permits usage of + the kernel with MB93091 CB10, CB11, CB30, CB41, CB60, CB70 and CB451 + CPU boards, and with the MB93093 PDK board. + + (*) "System" + + This option allows a choice of basic system. This governs the peripherals + that are expected to be available. + + (*) "Motherboard" + + This specifies the type of motherboard being used, and the peripherals + upon it. Currently only "MB93090-MB00" can be set here. + + (*) "Default cache-write mode" + + This controls the initial data cache write management mode. By default + Write-Through is selected, but Write-Back (Copy-Back) can also be + selected. This can be changed dynamically once the kernel is running (see + features.txt). + +There are some architecture specific configuration options in the "General +Setup" section of the kernel configuration too: + + (*) "Reserve memory uncached for (PCI) DMA" + + This requests that a uClinux kernel set aside some memory in an uncached + window for the use as consistent DMA memory (mainly for PCI). At least a + megabyte will be allocated in this way, possibly more. Any memory so + reserved will not be available for normal allocations. + + (*) "Kernel support for ELF-FDPIC binaries" + + This enables the binary-format driver for the new FDPIC ELF binaries that + this platform normally uses. These binaries are totally relocatable - + their separate sections can relocated independently, allowing them to be + shared on uClinux where possible. This should normally be enabled. + + (*) "Kernel image protection" + + This makes the protection register governing access to the core kernel + image prohibit access by userspace programs. This option is available on + uClinux only. + +There are also a number of settings in the "Kernel Hacking" section of the +kernel configuration especially for debugging a kernel on this +architecture. See the "gdbstub.txt" file for information about those. + + +====================== +DEFAULT CONFIGURATIONS +====================== + +The kernel sources include a number of example default configurations: + + (*) defconfig-mb93091 + + Default configuration for the MB93091-VDK with both CPU board and + MB93090-MB00 motherboard running uClinux. + + + (*) defconfig-mb93091-fb + + Default configuration for the MB93091-VDK with CPU board, + MB93090-MB00 motherboard, and DAV board running uClinux. + Includes framebuffer driver. + + + (*) defconfig-mb93093 + + Default configuration for the MB93093-PDK board running uClinux. + + + (*) defconfig-cb70-standalone + + Default configuration for the MB93091-VDK with only CB70 CPU board + running uClinux. This will use the CB70's DM9000 for network access. + + + (*) defconfig-mmu + + Default configuration for the MB93091-VDK with both CB451 CPU board and + MB93090-MB00 motherboard running MMU linux. + + (*) defconfig-mmu-audio + + Default configuration for the MB93091-VDK with CB451 CPU board, DAV + board, and MB93090-MB00 motherboard running MMU linux. Includes + audio driver. + + (*) defconfig-mmu-fb + + Default configuration for the MB93091-VDK with CB451 CPU board, DAV + board, and MB93090-MB00 motherboard running MMU linux. Includes + framebuffer driver. + + (*) defconfig-mmu-standalone + + Default configuration for the MB93091-VDK with only CB451 CPU board + running MMU linux. + + + diff -Nru a/Documentation/fujitsu/frv/features.txt b/Documentation/fujitsu/frv/features.txt --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/Documentation/fujitsu/frv/features.txt 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,310 @@ + =========================== + FUJITSU FR-V LINUX FEATURES + =========================== + +This kernel port has a number of features of which the user should be aware: + + (*) Linux and uClinux + + The FR-V architecture port supports both normal MMU linux and uClinux out + of the same sources. + + + (*) CPU support + + Support for the FR401, FR403, FR405, FR451 and FR555 CPUs should work with + the same uClinux kernel configuration. + + In normal (MMU) Linux mode, only the FR451 CPU will work as that is the + only one with a suitably featured CPU. + + The kernel is written and compiled with the assumption that only the + bottom 32 GR registers and no FR registers will be used by the kernel + itself, however all extra userspace registers will be saved on context + switch. Note that since most CPUs can't support lazy switching, no attempt + is made to do lazy register saving where that would be possible (FR555 + only currently). + + + (*) Board support + + The board on which the kernel will run can be configured on the "Processor + type and features" configuration tab. + + Set the System to "MB93093-PDK" to boot from the MB93093 (FR403) PDK. + + Set the System to "MB93091-VDK" to boot from the CB11, CB30, CB41, CB60, + CB70 or CB451 VDK boards. Set the Motherboard setting to "MB93090-MB00" to + boot with the standard ATA90590B VDK motherboard, and set it to "None" to + boot without any motherboard. + + + (*) Binary Formats + + The only userspace binary format supported is FDPIC ELF. Normal ELF, FLAT + and AOUT binaries are not supported for this architecture. + + FDPIC ELF supports shared library and program interpreter facilities. + + + (*) Scheduler Speed + + The kernel scheduler runs at 100Hz irrespective of the clock speed on this + architecture. This value is set in asm/param.h (see the HZ macro defined + there). + + + (*) Normal (MMU) Linux Memory Layout. + + See mmu-layout.txt in this directory for a description of the normal linux + memory layout + + See include/asm-frv/mem-layout.h for constants pertaining to the memory + layout. + + See include/asm-frv/mb-regs.h for the constants pertaining to the I/O bus + controller configuration. + + + (*) uClinux Memory Layout + + The memory layout used by the uClinux kernel is as follows: + + 0x00000000 - 0x00000FFF Null pointer catch page + 0x20000000 - 0x200FFFFF CS2# [PDK] FPGA + 0xC0000000 - 0xCFFFFFFF SDRAM + 0xC0000000 Base of Linux kernel image + 0xE0000000 - 0xEFFFFFFF CS2# [VDK] SLBUS/PCI window + 0xF0000000 - 0xF0FFFFFF CS5# MB93493 CSC area (DAV daughter board) + 0xF1000000 - 0xF1FFFFFF CS7# [CB70/CB451] CPU-card PCMCIA port space + 0xFC000000 - 0xFC0FFFFF CS1# [VDK] MB86943 config space + 0xFC100000 - 0xFC1FFFFF CS6# [CB70/CB451] CPU-card DM9000 NIC space + 0xFC100000 - 0xFC1FFFFF CS6# [PDK] AX88796 NIC space + 0xFC200000 - 0xFC2FFFFF CS3# MB93493 CSR area (DAV daughter board) + 0xFD000000 - 0xFDFFFFFF CS4# [CB70/CB451] CPU-card extra flash space + 0xFE000000 - 0xFEFFFFFF Internal CPU peripherals + 0xFF000000 - 0xFF1FFFFF CS0# Flash 1 + 0xFF200000 - 0xFF3FFFFF CS0# Flash 2 + 0xFFC00000 - 0xFFC0001F CS0# [VDK] FPGA + + The kernel reads the size of the SDRAM from the memory bus controller + registers by default. + + The kernel initialisation code (1) adjusts the SDRAM base addresses to + move the SDRAM to desired address, (2) moves the kernel image down to the + bottom of SDRAM, (3) adjusts the bus controller registers to move I/O + windows, and (4) rearranges the protection registers to protect all of + this. + + The reasons for doing this are: (1) the page at address 0 should be + inaccessible so that NULL pointer errors can be caught; and (2) the bottom + three quarters are left unoccupied so that an FR-V CPU with an MMU can use + it for virtual userspace mappings. + + See include/asm-frv/mem-layout.h for constants pertaining to the memory + layout. + + See include/asm-frv/mb-regs.h for the constants pertaining to the I/O bus + controller configuration. + + + (*) uClinux Memory Protection + + A DAMPR register is used to cover the entire region used for I/O + (0xE0000000 - 0xFFFFFFFF). This permits the kernel to make uncached + accesses to this region. Userspace is not permitted to access it. + + The DAMPR/IAMPR protection registers not in use for any other purpose are + tiled over the top of the SDRAM such that: + + (1) The core kernel image is covered by as small a tile as possible + granting only the kernel access to the underlying data, whilst + making sure no SDRAM is actually made unavailable by this approach. + + (2) All other tiles are arranged to permit userspace access to the rest + of the SDRAM. + + Barring point (1), there is nothing to protect kernel data against + userspace damage - but this is uClinux. + + + (*) Exceptions and Fixups + + Since the FR40x and FR55x CPUs that do not have full MMUs generate + imprecise data error exceptions, there are currently no automatic fixup + services available in uClinux. This includes misaligned memory access + fixups. + + Userspace EFAULT errors can be trapped by issuing a MEMBAR instruction and + forcing the fault to happen there. + + On the FR451, however, data exceptions are mostly precise, and so + exception fixup handling is implemented as normal. + + + (*) Userspace Breakpoints + + The ptrace() system call supports the following userspace debugging + features: + + (1) Hardware assisted single step. + + (2) Breakpoint via the FR-V "BREAK" instruction. + + (3) Breakpoint via the FR-V "TIRA GR0, #1" instruction. + + (4) Syscall entry/exit trap. + + Each of the above generates a SIGTRAP. + + + (*) On-Chip Serial Ports + + The FR-V on-chip serial ports are made available as ttyS0 and ttyS1. Note + that if the GDB stub is compiled in, ttyS1 will not actually be available + as it will be being used for the GDB stub. + + These ports can be made by: + + mknod /dev/ttyS0 c 4 64 + mknod /dev/ttyS1 c 4 65 + + + (*) Maskable Interrupts + + Level 15 (Non-maskable) interrupts are dealt with by the GDB stub if + present, and cause a panic if not. If the GDB stub is present, ttyS1's + interrupts are rated at level 15. + + All other interrupts are distributed over the set of available priorities + so that no IRQs are shared where possible. The arch interrupt handling + routines attempt to disentangle the various sources available through the + CPU's own multiplexor, and those on off-CPU peripherals. + + + (*) Accessing PCI Devices + + Where PCI is available, care must be taken when dealing with drivers that + access PCI devices. PCI devices present their data in little-endian form, + but the CPU sees it in big-endian form. The macros in asm/io.h try to get + this right, but may not under all circumstances... + + + (*) Ax88796 Ethernet Driver + + The MB93093 PDK board has an Ax88796 ethernet chipset (an NE2000 clone). A + driver has been written to deal specifically with this. The driver + provides MII services for the card. + + The driver can be configured by running make xconfig, and going to: + + (*) Network device support + - turn on "Network device support" + (*) Ethernet (10 or 100Mbit) + - turn on "Ethernet (10 or 100Mbit)" + - turn on "AX88796 NE2000 compatible chipset" + + The driver can be found in: + + drivers/net/ax88796.c + include/asm/ax88796.h + + + (*) WorkRAM Driver + + This driver provides a character device that permits access to the WorkRAM + that can be found on the FR451 CPU. Each page is accessible through a + separate minor number, thereby permitting each page to have its own + filesystem permissions set on the device file. + + The device files should be: + + mknod /dev/frv/workram0 c 240 0 + mknod /dev/frv/workram1 c 240 1 + mknod /dev/frv/workram2 c 240 2 + ... + + The driver will not permit the opening of any device file that does not + correspond to at least a partial page of WorkRAM. So the first device file + is the only one available on the FR451. If any other CPU is detected, none + of the devices will be openable. + + The devices can be accessed with read, write and llseek, and can also be + mmapped. If they're mmapped, they will only map at the appropriate + 0x7e8nnnnn address on linux and at the 0xfe8nnnnn address on uClinux. If + MAP_FIXED is not specified, the appropriate address will be chosen anyway. + + The mappings must be MAP_SHARED not MAP_PRIVATE, and must not be + PROT_EXEC. They must also start at file offset 0, and must not be longer + than one page in size. + + This driver can be configured by running make xconfig, and going to: + + (*) Character devices + - turn on "Fujitsu FR-V CPU WorkRAM support" + + + (*) Dynamic data cache write mode changing + + It is possible to view and to change the data cache's write mode through + the /proc/sys/frv/cache-mode file while the kernel is running. There are + two modes available: + + NAME MEANING + ===== ========================================== + wthru Data cache is in Write-Through mode + wback Data cache is in Write-Back/Copy-Back mode + + To read the cache mode: + + # cat /proc/sys/frv/cache-mode + wthru + + To change the cache mode: + + # echo wback >/proc/sys/frv/cache-mode + # cat /proc/sys/frv/cache-mode + wback + + + (*) MMU Context IDs and Pinning + + On MMU Linux the CPU supports the concept of a context ID in its MMU to + make it more efficient (TLB entries are labelled with a context ID to link + them to specific tasks). + + Normally once a context ID is allocated, it will remain affixed to a task + or CLONE_VM'd group of tasks for as long as it exists. However, since the + kernel is capable of supporting more tasks than there are possible ID + numbers, the kernel will pass context IDs from one task to another if + there are insufficient available. + + The context ID currently in use by a task can be viewed in /proc: + + # grep CXNR /proc/1/status + CXNR: 1 + + Note that kernel threads do not have a userspace context, and so will not + show a CXNR entry in that file. + + Under some circumstances, however, it is desirable to pin a context ID on + a process such that the kernel won't pass it on. This can be done by + writing the process ID of the target process to a special file: + + # echo 17 >/proc/sys/frv/pin-cxnr + + Reading from the file will then show the context ID pinned. + + # cat /proc/sys/frv/pin-cxnr + 4 + + The context ID will remain pinned as long as any process is using that + context, i.e.: when the all the subscribing processes have exited or + exec'd; or when an unpinning request happens: + + # echo 0 >/proc/sys/frv/pin-cxnr + + When there isn't a pinned context, the file shows -1: + + # cat /proc/sys/frv/pin-cxnr + -1 diff -Nru a/Documentation/fujitsu/frv/gdbinit b/Documentation/fujitsu/frv/gdbinit --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/Documentation/fujitsu/frv/gdbinit 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,102 @@ +set remotebreak 1 + +define _amr + +printf "AMRx DAMR IAMR \n" +printf "==== ===================== =====================\n" +printf "amr0 : L:%08lx P:%08lx : L:%08lx P:%08lx\n",__debug_mmu.damr[0x0].L,__debug_mmu.damr[0x0].P,__debug_mmu.iamr[0x0].L,__debug_mmu.iamr[0x0].P +printf "amr1 : L:%08lx P:%08lx : L:%08lx P:%08lx\n",__debug_mmu.damr[0x1].L,__debug_mmu.damr[0x1].P,__debug_mmu.iamr[0x1].L,__debug_mmu.iamr[0x1].P +printf "amr2 : L:%08lx P:%08lx : L:%08lx P:%08lx\n",__debug_mmu.damr[0x2].L,__debug_mmu.damr[0x2].P,__debug_mmu.iamr[0x2].L,__debug_mmu.iamr[0x2].P +printf "amr3 : L:%08lx P:%08lx : L:%08lx P:%08lx\n",__debug_mmu.damr[0x3].L,__debug_mmu.damr[0x3].P,__debug_mmu.iamr[0x3].L,__debug_mmu.iamr[0x3].P +printf "amr4 : L:%08lx P:%08lx : L:%08lx P:%08lx\n",__debug_mmu.damr[0x4].L,__debug_mmu.damr[0x4].P,__debug_mmu.iamr[0x4].L,__debug_mmu.iamr[0x4].P +printf "amr5 : L:%08lx P:%08lx : L:%08lx P:%08lx\n",__debug_mmu.damr[0x5].L,__debug_mmu.damr[0x5].P,__debug_mmu.iamr[0x5].L,__debug_mmu.iamr[0x5].P +printf "amr6 : L:%08lx P:%08lx : L:%08lx P:%08lx\n",__debug_mmu.damr[0x6].L,__debug_mmu.damr[0x6].P,__debug_mmu.iamr[0x6].L,__debug_mmu.iamr[0x6].P +printf "amr7 : L:%08lx P:%08lx : L:%08lx P:%08lx\n",__debug_mmu.damr[0x7].L,__debug_mmu.damr[0x7].P,__debug_mmu.iamr[0x7].L,__debug_mmu.iamr[0x7].P + +printf "amr8 : L:%08lx P:%08lx\n",__debug_mmu.damr[0x8].L,__debug_mmu.damr[0x8].P +printf "amr9 : L:%08lx P:%08lx\n",__debug_mmu.damr[0x9].L,__debug_mmu.damr[0x9].P +printf "amr10: L:%08lx P:%08lx\n",__debug_mmu.damr[0xa].L,__debug_mmu.damr[0xa].P +printf "amr11: L:%08lx P:%08lx\n",__debug_mmu.damr[0xb].L,__debug_mmu.damr[0xb].P + +end + + +define _tlb +printf "tlb[0x00]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x0].L,__debug_mmu.tlb[0x0].P,__debug_mmu.tlb[0x40+0x0].L,__debug_mmu.tlb[0x40+0x0].P +printf "tlb[0x01]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x1].L,__debug_mmu.tlb[0x1].P,__debug_mmu.tlb[0x40+0x1].L,__debug_mmu.tlb[0x40+0x1].P +printf "tlb[0x02]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x2].L,__debug_mmu.tlb[0x2].P,__debug_mmu.tlb[0x40+0x2].L,__debug_mmu.tlb[0x40+0x2].P +printf "tlb[0x03]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x3].L,__debug_mmu.tlb[0x3].P,__debug_mmu.tlb[0x40+0x3].L,__debug_mmu.tlb[0x40+0x3].P +printf "tlb[0x04]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x4].L,__debug_mmu.tlb[0x4].P,__debug_mmu.tlb[0x40+0x4].L,__debug_mmu.tlb[0x40+0x4].P +printf "tlb[0x05]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x5].L,__debug_mmu.tlb[0x5].P,__debug_mmu.tlb[0x40+0x5].L,__debug_mmu.tlb[0x40+0x5].P +printf "tlb[0x06]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x6].L,__debug_mmu.tlb[0x6].P,__debug_mmu.tlb[0x40+0x6].L,__debug_mmu.tlb[0x40+0x6].P +printf "tlb[0x07]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x7].L,__debug_mmu.tlb[0x7].P,__debug_mmu.tlb[0x40+0x7].L,__debug_mmu.tlb[0x40+0x7].P +printf "tlb[0x08]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x8].L,__debug_mmu.tlb[0x8].P,__debug_mmu.tlb[0x40+0x8].L,__debug_mmu.tlb[0x40+0x8].P +printf "tlb[0x09]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x9].L,__debug_mmu.tlb[0x9].P,__debug_mmu.tlb[0x40+0x9].L,__debug_mmu.tlb[0x40+0x9].P +printf "tlb[0x0a]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0xa].L,__debug_mmu.tlb[0xa].P,__debug_mmu.tlb[0x40+0xa].L,__debug_mmu.tlb[0x40+0xa].P +printf "tlb[0x0b]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0xb].L,__debug_mmu.tlb[0xb].P,__debug_mmu.tlb[0x40+0xb].L,__debug_mmu.tlb[0x40+0xb].P +printf "tlb[0x0c]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0xc].L,__debug_mmu.tlb[0xc].P,__debug_mmu.tlb[0x40+0xc].L,__debug_mmu.tlb[0x40+0xc].P +printf "tlb[0x0d]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0xd].L,__debug_mmu.tlb[0xd].P,__debug_mmu.tlb[0x40+0xd].L,__debug_mmu.tlb[0x40+0xd].P +printf "tlb[0x0e]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0xe].L,__debug_mmu.tlb[0xe].P,__debug_mmu.tlb[0x40+0xe].L,__debug_mmu.tlb[0x40+0xe].P +printf "tlb[0x0f]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0xf].L,__debug_mmu.tlb[0xf].P,__debug_mmu.tlb[0x40+0xf].L,__debug_mmu.tlb[0x40+0xf].P +printf "tlb[0x10]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x10].L,__debug_mmu.tlb[0x10].P,__debug_mmu.tlb[0x40+0x10].L,__debug_mmu.tlb[0x40+0x10].P +printf "tlb[0x11]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x11].L,__debug_mmu.tlb[0x11].P,__debug_mmu.tlb[0x40+0x11].L,__debug_mmu.tlb[0x40+0x11].P +printf "tlb[0x12]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x12].L,__debug_mmu.tlb[0x12].P,__debug_mmu.tlb[0x40+0x12].L,__debug_mmu.tlb[0x40+0x12].P +printf "tlb[0x13]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x13].L,__debug_mmu.tlb[0x13].P,__debug_mmu.tlb[0x40+0x13].L,__debug_mmu.tlb[0x40+0x13].P +printf "tlb[0x14]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x14].L,__debug_mmu.tlb[0x14].P,__debug_mmu.tlb[0x40+0x14].L,__debug_mmu.tlb[0x40+0x14].P +printf "tlb[0x15]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x15].L,__debug_mmu.tlb[0x15].P,__debug_mmu.tlb[0x40+0x15].L,__debug_mmu.tlb[0x40+0x15].P +printf "tlb[0x16]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x16].L,__debug_mmu.tlb[0x16].P,__debug_mmu.tlb[0x40+0x16].L,__debug_mmu.tlb[0x40+0x16].P +printf "tlb[0x17]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x17].L,__debug_mmu.tlb[0x17].P,__debug_mmu.tlb[0x40+0x17].L,__debug_mmu.tlb[0x40+0x17].P +printf "tlb[0x18]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x18].L,__debug_mmu.tlb[0x18].P,__debug_mmu.tlb[0x40+0x18].L,__debug_mmu.tlb[0x40+0x18].P +printf "tlb[0x19]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x19].L,__debug_mmu.tlb[0x19].P,__debug_mmu.tlb[0x40+0x19].L,__debug_mmu.tlb[0x40+0x19].P +printf "tlb[0x1a]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x1a].L,__debug_mmu.tlb[0x1a].P,__debug_mmu.tlb[0x40+0x1a].L,__debug_mmu.tlb[0x40+0x1a].P +printf "tlb[0x1b]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x1b].L,__debug_mmu.tlb[0x1b].P,__debug_mmu.tlb[0x40+0x1b].L,__debug_mmu.tlb[0x40+0x1b].P +printf "tlb[0x1c]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x1c].L,__debug_mmu.tlb[0x1c].P,__debug_mmu.tlb[0x40+0x1c].L,__debug_mmu.tlb[0x40+0x1c].P +printf "tlb[0x1d]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x1d].L,__debug_mmu.tlb[0x1d].P,__debug_mmu.tlb[0x40+0x1d].L,__debug_mmu.tlb[0x40+0x1d].P +printf "tlb[0x1e]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x1e].L,__debug_mmu.tlb[0x1e].P,__debug_mmu.tlb[0x40+0x1e].L,__debug_mmu.tlb[0x40+0x1e].P +printf "tlb[0x1f]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x1f].L,__debug_mmu.tlb[0x1f].P,__debug_mmu.tlb[0x40+0x1f].L,__debug_mmu.tlb[0x40+0x1f].P +printf "tlb[0x20]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x20].L,__debug_mmu.tlb[0x20].P,__debug_mmu.tlb[0x40+0x20].L,__debug_mmu.tlb[0x40+0x20].P +printf "tlb[0x21]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x21].L,__debug_mmu.tlb[0x21].P,__debug_mmu.tlb[0x40+0x21].L,__debug_mmu.tlb[0x40+0x21].P +printf "tlb[0x22]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x22].L,__debug_mmu.tlb[0x22].P,__debug_mmu.tlb[0x40+0x22].L,__debug_mmu.tlb[0x40+0x22].P +printf "tlb[0x23]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x23].L,__debug_mmu.tlb[0x23].P,__debug_mmu.tlb[0x40+0x23].L,__debug_mmu.tlb[0x40+0x23].P +printf "tlb[0x24]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x24].L,__debug_mmu.tlb[0x24].P,__debug_mmu.tlb[0x40+0x24].L,__debug_mmu.tlb[0x40+0x24].P +printf "tlb[0x25]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x25].L,__debug_mmu.tlb[0x25].P,__debug_mmu.tlb[0x40+0x25].L,__debug_mmu.tlb[0x40+0x25].P +printf "tlb[0x26]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x26].L,__debug_mmu.tlb[0x26].P,__debug_mmu.tlb[0x40+0x26].L,__debug_mmu.tlb[0x40+0x26].P +printf "tlb[0x27]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x27].L,__debug_mmu.tlb[0x27].P,__debug_mmu.tlb[0x40+0x27].L,__debug_mmu.tlb[0x40+0x27].P +printf "tlb[0x28]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x28].L,__debug_mmu.tlb[0x28].P,__debug_mmu.tlb[0x40+0x28].L,__debug_mmu.tlb[0x40+0x28].P +printf "tlb[0x29]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x29].L,__debug_mmu.tlb[0x29].P,__debug_mmu.tlb[0x40+0x29].L,__debug_mmu.tlb[0x40+0x29].P +printf "tlb[0x2a]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x2a].L,__debug_mmu.tlb[0x2a].P,__debug_mmu.tlb[0x40+0x2a].L,__debug_mmu.tlb[0x40+0x2a].P +printf "tlb[0x2b]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x2b].L,__debug_mmu.tlb[0x2b].P,__debug_mmu.tlb[0x40+0x2b].L,__debug_mmu.tlb[0x40+0x2b].P +printf "tlb[0x2c]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x2c].L,__debug_mmu.tlb[0x2c].P,__debug_mmu.tlb[0x40+0x2c].L,__debug_mmu.tlb[0x40+0x2c].P +printf "tlb[0x2d]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x2d].L,__debug_mmu.tlb[0x2d].P,__debug_mmu.tlb[0x40+0x2d].L,__debug_mmu.tlb[0x40+0x2d].P +printf "tlb[0x2e]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x2e].L,__debug_mmu.tlb[0x2e].P,__debug_mmu.tlb[0x40+0x2e].L,__debug_mmu.tlb[0x40+0x2e].P +printf "tlb[0x2f]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x2f].L,__debug_mmu.tlb[0x2f].P,__debug_mmu.tlb[0x40+0x2f].L,__debug_mmu.tlb[0x40+0x2f].P +printf "tlb[0x30]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x30].L,__debug_mmu.tlb[0x30].P,__debug_mmu.tlb[0x40+0x30].L,__debug_mmu.tlb[0x40+0x30].P +printf "tlb[0x31]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x31].L,__debug_mmu.tlb[0x31].P,__debug_mmu.tlb[0x40+0x31].L,__debug_mmu.tlb[0x40+0x31].P +printf "tlb[0x32]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x32].L,__debug_mmu.tlb[0x32].P,__debug_mmu.tlb[0x40+0x32].L,__debug_mmu.tlb[0x40+0x32].P +printf "tlb[0x33]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x33].L,__debug_mmu.tlb[0x33].P,__debug_mmu.tlb[0x40+0x33].L,__debug_mmu.tlb[0x40+0x33].P +printf "tlb[0x34]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x34].L,__debug_mmu.tlb[0x34].P,__debug_mmu.tlb[0x40+0x34].L,__debug_mmu.tlb[0x40+0x34].P +printf "tlb[0x35]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x35].L,__debug_mmu.tlb[0x35].P,__debug_mmu.tlb[0x40+0x35].L,__debug_mmu.tlb[0x40+0x35].P +printf "tlb[0x36]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x36].L,__debug_mmu.tlb[0x36].P,__debug_mmu.tlb[0x40+0x36].L,__debug_mmu.tlb[0x40+0x36].P +printf "tlb[0x37]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x37].L,__debug_mmu.tlb[0x37].P,__debug_mmu.tlb[0x40+0x37].L,__debug_mmu.tlb[0x40+0x37].P +printf "tlb[0x38]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x38].L,__debug_mmu.tlb[0x38].P,__debug_mmu.tlb[0x40+0x38].L,__debug_mmu.tlb[0x40+0x38].P +printf "tlb[0x39]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x39].L,__debug_mmu.tlb[0x39].P,__debug_mmu.tlb[0x40+0x39].L,__debug_mmu.tlb[0x40+0x39].P +printf "tlb[0x3a]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x3a].L,__debug_mmu.tlb[0x3a].P,__debug_mmu.tlb[0x40+0x3a].L,__debug_mmu.tlb[0x40+0x3a].P +printf "tlb[0x3b]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x3b].L,__debug_mmu.tlb[0x3b].P,__debug_mmu.tlb[0x40+0x3b].L,__debug_mmu.tlb[0x40+0x3b].P +printf "tlb[0x3c]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x3c].L,__debug_mmu.tlb[0x3c].P,__debug_mmu.tlb[0x40+0x3c].L,__debug_mmu.tlb[0x40+0x3c].P +printf "tlb[0x3d]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x3d].L,__debug_mmu.tlb[0x3d].P,__debug_mmu.tlb[0x40+0x3d].L,__debug_mmu.tlb[0x40+0x3d].P +printf "tlb[0x3e]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x3e].L,__debug_mmu.tlb[0x3e].P,__debug_mmu.tlb[0x40+0x3e].L,__debug_mmu.tlb[0x40+0x3e].P +printf "tlb[0x3f]: %08lx %08lx %08lx %08lx\n",__debug_mmu.tlb[0x3f].L,__debug_mmu.tlb[0x3f].P,__debug_mmu.tlb[0x40+0x3f].L,__debug_mmu.tlb[0x40+0x3f].P +end + + +define _pgd +p (pgd_t[0x40])*(pgd_t*)(__debug_mmu.damr[0x3].L) +end + +define _ptd_i +p (pte_t[0x1000])*(pte_t*)(__debug_mmu.damr[0x4].L) +end + +define _ptd_d +p (pte_t[0x1000])*(pte_t*)(__debug_mmu.damr[0x5].L) +end diff -Nru a/Documentation/fujitsu/frv/gdbstub.txt b/Documentation/fujitsu/frv/gdbstub.txt --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/Documentation/fujitsu/frv/gdbstub.txt 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,130 @@ + ==================== + DEBUGGING FR-V LINUX + ==================== + + +The kernel contains a GDB stub that talks GDB remote protocol across a serial +port. This permits GDB to single step through the kernel, set breakpoints and +trap exceptions that happen in kernel space and interrupt execution. It also +permits the NMI interrupt button or serial port events to jump the kernel into +the debugger. + +On the CPUs that have on-chip UARTs (FR400, FR403, FR405, FR555), the +GDB stub hijacks a serial port for its own purposes, and makes it +generate level 15 interrupts (NMI). The kernel proper cannot see the serial +port in question under these conditions. + +On the MB93091-VDK CPU boards, the GDB stub uses UART1, which would otherwise +be /dev/ttyS1. On the MB93093-PDK, the GDB stub uses UART0. Therefore, on the +PDK there is no externally accessible serial port and the serial port to +which the touch screen is attached becomes /dev/ttyS0. + +Note that the GDB stub runs entirely within CPU debug mode, and so should not +incur any exceptions or interrupts whilst it is active. In particular, note +that the clock will lose time since it is implemented in software. + + +================== +KERNEL PREPARATION +================== + +Firstly, a debuggable kernel must be built. To do this, unpack the kernel tree +and copy the configuration that you wish to use to .config. Then reconfigure +the following things on the "Kernel Hacking" tab: + + (*) "Include debugging information" + + Set this to "Y". This causes all C and Assembly files to be compiled + to include debugging information. + + (*) "In-kernel GDB stub" + + Set this to "Y". This causes the GDB stub to be compiled into the + kernel. + + (*) "Immediate activation" + + Set this to "Y" if you want the GDB stub to activate as soon as possible + and wait for GDB to connect. This allows you to start tracing right from + the beginning of start_kernel() in init/main.c. + + (*) "Console through GDB stub" + + Set this to "Y" if you wish to be able to use "console=gdb0" on the + command line. That tells the kernel to pass system console messages to + GDB (which then prints them on its standard output). This is useful when + debugging the serial drivers that'd otherwise be used to pass console + messages to the outside world. + +Then build as usual, download to the board and execute. Note that if +"Immediate activation" was selected, then the kernel will wait for GDB to +attach. If not, then the kernel will boot immediately and GDB will have to +interupt it or wait for an exception to occur if before doing anything with +the kernel. + + +========================= +KERNEL DEBUGGING WITH GDB +========================= + +Set the serial port on the computer that's going to run GDB to the appropriate +baud rate. Assuming the board's debug port is connected to ttyS0/COM1 on the +computer doing the debugging: + + stty -F /dev/ttyS0 115200 + +Then start GDB in the base of the kernel tree: + + frv-uclinux-gdb linux [uClinux] + +Or: + + frv-uclinux-gdb vmlinux [MMU linux] + +When the prompt appears: + + GNU gdb frv-031024 + Copyright 2003 Free Software Foundation, Inc. + GDB is free software, covered by the GNU General Public License, and you are + welcome to change it and/or distribute copies of it under certain conditions. + Type "show copying" to see the conditions. + There is absolutely no warranty for GDB. Type "show warranty" for details. + This GDB was configured as "--host=i686-pc-linux-gnu --target=frv-uclinux"... + (gdb) + +Attach to the board like this: + + (gdb) target remote /dev/ttyS0 + Remote debugging using /dev/ttyS0 + start_kernel () at init/main.c:395 + (gdb) + +This should show the appropriate lines from the source too. The kernel can +then be debugged almost as if it's any other program. + + +=============================== +INTERRUPTING THE RUNNING KERNEL +=============================== + +The kernel can be interrupted whilst it is running, causing a jump back to the +GDB stub and the debugger: + + (*) Pressing Ctrl-C in GDB. This will cause GDB to try and interrupt the + kernel by sending an RS232 BREAK over the serial line to the GDB + stub. This will (mostly) immediately interrupt the kernel and return it + to the debugger. + + (*) Pressing the NMI button on the board will also cause a jump into the + debugger. + + (*) Setting a software breakpoint. This sets a break instruction at the + desired location which the GDB stub then traps the exception for. + + (*) Setting a hardware breakpoint. The GDB stub is capable of using the IBAR + and DBAR registers to assist debugging. + +Furthermore, the GDB stub will intercept a number of exceptions automatically +if they are caused by kernel execution. It will also intercept BUG() macro +invokation. + diff -Nru a/Documentation/fujitsu/frv/mmu-layout.txt b/Documentation/fujitsu/frv/mmu-layout.txt --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/Documentation/fujitsu/frv/mmu-layout.txt 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,306 @@ + ================================= + FR451 MMU LINUX MEMORY MANAGEMENT + ================================= + +============ +MMU HARDWARE +============ + +FR451 MMU Linux puts the MMU into EDAT mode whilst running. This means that it uses both the SAT +registers and the DAT TLB to perform address translation. + +There are 8 IAMLR/IAMPR register pairs and 16 DAMLR/DAMPR register pairs for SAT mode. + +In DAT mode, there is also a TLB organised in cache format as 64 lines x 2 ways. Each line spans a +16KB range of addresses, but can match a larger region. + + +=========================== +MEMORY MANAGEMENT REGISTERS +=========================== + +Certain control registers are used by the kernel memory management routines: + + REGISTERS USAGE + ====================== ================================================== + IAMR0, DAMR0 Kernel image and data mappings + IAMR1, DAMR1 First-chance TLB lookup mapping + DAMR2 Page attachment for cache flush by page + DAMR3 Current PGD mapping + SCR0, DAMR4 Instruction TLB PGE/PTD cache + SCR1, DAMR5 Data TLB PGE/PTD cache + DAMR6-10 kmap_atomic() mappings + DAMR11 I/O mapping + CXNR mm_struct context ID + TTBR Page directory (PGD) pointer (physical address) + + +===================== +GENERAL MEMORY LAYOUT +===================== + +The physical memory layout is as follows: + + PHYSICAL ADDRESS CONTROLLER DEVICE + =================== ============== ======================================= + 00000000 - BFFFFFFF SDRAM SDRAM area + E0000000 - EFFFFFFF L-BUS CS2# VDK SLBUS/PCI window + F0000000 - F0FFFFFF L-BUS CS5# MB93493 CSC area (DAV daughter board) + F1000000 - F1FFFFFF L-BUS CS7# (CB70 CPU-card PCMCIA port I/O space) + FC000000 - FC0FFFFF L-BUS CS1# VDK MB86943 config space + FC100000 - FC1FFFFF L-BUS CS6# DM9000 NIC I/O space + FC200000 - FC2FFFFF L-BUS CS3# MB93493 CSR area (DAV daughter board) + FD000000 - FDFFFFFF L-BUS CS4# (CB70 CPU-card extra flash space) + FE000000 - FEFFFFFF Internal CPU peripherals + FF000000 - FF1FFFFF L-BUS CS0# Flash 1 + FF200000 - FF3FFFFF L-BUS CS0# Flash 2 + FFC00000 - FFC0001F L-BUS CS0# FPGA + +The virtual memory layout is: + + VIRTUAL ADDRESS PHYSICAL TRANSLATOR FLAGS SIZE OCCUPATION + ================= ======== ============== ======= ======= =================================== + 00004000-BFFFFFFF various TLB,xAMR1 D-N-??V 3GB Userspace + C0000000-CFFFFFFF 00000000 xAMPR0 -L-S--V 256MB Kernel image and data + D0000000-D7FFFFFF various TLB,xAMR1 D-NS??V 128MB vmalloc area + D8000000-DBFFFFFF various TLB,xAMR1 D-NS??V 64MB kmap() area + DC000000-DCFFFFFF various TLB 1MB Secondary kmap_atomic() frame + DD000000-DD27FFFF various DAMR 160KB Primary kmap_atomic() frame + DD040000 DAMR2/IAMR2 -L-S--V page Page cache flush attachment point + DD080000 DAMR3 -L-SC-V page Page Directory (PGD) + DD0C0000 DAMR4 -L-SC-V page Cached insn TLB Page Table lookup + DD100000 DAMR5 -L-SC-V page Cached data TLB Page Table lookup + DD140000 DAMR6 -L-S--V page kmap_atomic(KM_BOUNCE_READ) + DD180000 DAMR7 -L-S--V page kmap_atomic(KM_SKB_SUNRPC_DATA) + DD1C0000 DAMR8 -L-S--V page kmap_atomic(KM_SKB_DATA_SOFTIRQ) + DD200000 DAMR9 -L-S--V page kmap_atomic(KM_USER0) + DD240000 DAMR10 -L-S--V page kmap_atomic(KM_USER1) + E0000000-FFFFFFFF E0000000 DAMR11 -L-SC-V 512MB I/O region + +IAMPR1 and DAMPR1 are used as an extension to the TLB. + + +==================== +KMAP AND KMAP_ATOMIC +==================== + +To access pages in the page cache (which may not be directly accessible if highmem is available), +the kernel calls kmap(), does the access and then calls kunmap(); or it calls kmap_atomic(), does +the access and then calls kunmap_atomic(). + +kmap() creates an attachment between an arbitrary inaccessible page and a range of virtual +addresses by installing a PTE in a special page table. The kernel can then access this page as it +wills. When it's finished, the kernel calls kunmap() to clear the PTE. + +kmap_atomic() does something slightly different. In the interests of speed, it chooses one of two +strategies: + + (1) If possible, kmap_atomic() attaches the requested page to one of DAMPR5 through DAMPR10 + register pairs; and the matching kunmap_atomic() clears the DAMPR. This makes high memory + support really fast as there's no need to flush the TLB or modify the page tables. The DAMLR + registers being used for this are preset during boot and don't change over the lifetime of the + process. There's a direct mapping between the first few kmap_atomic() types, DAMR number and + virtual address slot. + + However, there are more kmap_atomic() types defined than there are DAMR registers available, + so we fall back to: + + (2) kmap_atomic() uses a slot in the secondary frame (determined by the type parameter), and then + locks an entry in the TLB to translate that slot to the specified page. The number of slots is + obviously limited, and their positions are controlled such that each slot is matched by a + different line in the TLB. kunmap() ejects the entry from the TLB. + +Note that the first three kmap atomic types are really just declared as placeholders. The DAMPR +registers involved are actually modified directly. + +Also note that kmap() itself may sleep, kmap_atomic() may never sleep and both always succeed; +furthermore, a driver using kmap() may sleep before calling kunmap(), but may not sleep before +calling kunmap_atomic() if it had previously called kmap_atomic(). + + +=============================== +USING MORE THAN 256MB OF MEMORY +=============================== + +The kernel cannot access more than 256MB of memory directly. The physical layout, however, permits +up to 3GB of SDRAM (possibly 3.25GB) to be made available. By using CONFIG_HIGHMEM, the kernel can +allow userspace (by way of page tables) and itself (by way of kmap) to deal with the memory +allocation. + +External devices can, of course, still DMA to and from all of the SDRAM, even if the kernel can't +see it directly. The kernel translates page references into real addresses for communicating to the +devices. + + +=================== +PAGE TABLE TOPOLOGY +=================== + +The page tables are arranged in 2-layer format. There is a middle layer (PMD) that would be used in +3-layer format tables but that is folded into the top layer (PGD) and so consumes no extra memory +or processing power. + + +------+ PGD PMD + | TTBR |--->+-------------------+ + +------+ | | : STE | + | PGE0 | PME0 : STE | + | | : STE | + +-------------------+ Page Table + | | : STE -------------->+--------+ +0x0000 + | PGE1 | PME0 : STE -----------+ | PTE0 | + | | : STE -------+ | +--------+ + +-------------------+ | | | PTE63 | + | | : STE | | +-->+--------+ +0x0100 + | PGE2 | PME0 : STE | | | PTE64 | + | | : STE | | +--------+ + +-------------------+ | | PTE127 | + | | : STE | +------>+--------+ +0x0200 + | PGE3 | PME0 : STE | | PTE128 | + | | : STE | +--------+ + +-------------------+ | PTE191 | + +--------+ +0x0300 + +Each Page Directory (PGD) is 16KB (page size) in size and is divided into 64 entries (PGEs). Each +PGE contains one Page Mid Directory (PMD). + +Each PMD is 256 bytes in size and contains a single entry (PME). Each PME holds 64 FR451 MMU +segment table entries of 4 bytes apiece. Each PME "points to" a page table. In practice, each STE +points to a subset of the page table, the first to PT+0x0000, the second to PT+0x0100, the third to +PT+0x200, and so on. + +Each PGE and PME covers 64MB of the total virtual address space. + +Each Page Table (PTD) is 16KB (page size) in size, and is divided into 4096 entries (PTEs). Each +entry can point to one 16KB page. In practice, each Linux page table is subdivided into 64 FR451 +MMU page tables. But they are all grouped together to make management easier, in particular rmap +support is then trivial. + +Grouping page tables in this fashion makes PGE caching in SCR0/SCR1 more efficient because the +coverage of the cached item is greater. + +Page tables for the vmalloc area are allocated at boot time and shared between all mm_structs. + + +================= +USER SPACE LAYOUT +================= + +For MMU capable Linux, the regions userspace code are allowed to access are kept entirely separate +from those dedicated to the kernel: + + VIRTUAL ADDRESS SIZE PURPOSE + ================= ===== =================================== + 00000000-00003fff 4KB NULL pointer access trap + 00004000-01ffffff ~32MB lower mmap space (grows up) + 02000000-021fffff 2MB Stack space (grows down from top) + 02200000-nnnnnnnn Executable mapping + nnnnnnnn- brk space (grows up) + -bfffffff upper mmap space (grows down) + +This is so arranged so as to make best use of the 16KB page tables and the way in which PGEs/PMEs +are cached by the TLB handler. The lower mmap space is filled first, and then the upper mmap space +is filled. + + +=============================== +GDB-STUB MMU DEBUGGING SERVICES +=============================== + +The gdb-stub included in this kernel provides a number of services to aid in the debugging of MMU +related kernel services: + + (*) Every time the kernel stops, certain state information is dumped into __debug_mmu. This + variable is defined in arch/frv/kernel/gdb-stub.c. Note that the gdbinit file in this + directory has some useful macros for dealing with this. + + (*) __debug_mmu.tlb[] + + This receives the current TLB contents. This can be viewed with the _tlb GDB macro: + + (gdb) _tlb + tlb[0x00]: 01000005 00718203 01000002 00718203 + tlb[0x01]: 01004002 006d4201 01004005 006d4203 + tlb[0x02]: 01008002 006d0201 01008006 00004200 + tlb[0x03]: 0100c006 007f4202 0100c002 0064c202 + tlb[0x04]: 01110005 00774201 01110002 00774201 + tlb[0x05]: 01114005 00770201 01114002 00770201 + tlb[0x06]: 01118002 0076c201 01118005 0076c201 + ... + tlb[0x3d]: 010f4002 00790200 001f4002 0054ca02 + tlb[0x3e]: 010f8005 0078c201 010f8002 0078c201 + tlb[0x3f]: 001fc002 0056ca01 001fc005 00538a01 + + (*) __debug_mmu.iamr[] + (*) __debug_mmu.damr[] + + These receive the current IAMR and DAMR contents. These can be viewed with with the _amr + GDB macro: + + (gdb) _amr + AMRx DAMR IAMR + ==== ===================== ===================== + amr0 : L:c0000000 P:00000cb9 : L:c0000000 P:000004b9 + amr1 : L:01070005 P:006f9203 : L:0102c005 P:006a1201 + amr2 : L:d8d00000 P:00000000 : L:d8d00000 P:00000000 + amr3 : L:d8d04000 P:00534c0d : L:00000000 P:00000000 + amr4 : L:d8d08000 P:00554c0d : L:00000000 P:00000000 + amr5 : L:d8d0c000 P:00554c0d : L:00000000 P:00000000 + amr6 : L:d8d10000 P:00000000 : L:00000000 P:00000000 + amr7 : L:d8d14000 P:00000000 : L:00000000 P:00000000 + amr8 : L:d8d18000 P:00000000 + amr9 : L:d8d1c000 P:00000000 + amr10: L:d8d20000 P:00000000 + amr11: L:e0000000 P:e0000ccd + + (*) The current task's page directory is bound to DAMR3. + + This can be viewed with the _pgd GDB macro: + + (gdb) _pgd + $3 = {{pge = {{ste = {0x554001, 0x554101, 0x554201, 0x554301, 0x554401, + 0x554501, 0x554601, 0x554701, 0x554801, 0x554901, 0x554a01, + 0x554b01, 0x554c01, 0x554d01, 0x554e01, 0x554f01, 0x555001, + 0x555101, 0x555201, 0x555301, 0x555401, 0x555501, 0x555601, + 0x555701, 0x555801, 0x555901, 0x555a01, 0x555b01, 0x555c01, + 0x555d01, 0x555e01, 0x555f01, 0x556001, 0x556101, 0x556201, + 0x556301, 0x556401, 0x556501, 0x556601, 0x556701, 0x556801, + 0x556901, 0x556a01, 0x556b01, 0x556c01, 0x556d01, 0x556e01, + 0x556f01, 0x557001, 0x557101, 0x557201, 0x557301, 0x557401, + 0x557501, 0x557601, 0x557701, 0x557801, 0x557901, 0x557a01, + 0x557b01, 0x557c01, 0x557d01, 0x557e01, 0x557f01}}}}, {pge = {{ + ste = {0x0 }}}} , {pge = {{ste = { + 0x248001, 0x248101, 0x248201, 0x248301, 0x248401, 0x248501, + 0x248601, 0x248701, 0x248801, 0x248901, 0x248a01, 0x248b01, + 0x248c01, 0x248d01, 0x248e01, 0x248f01, 0x249001, 0x249101, + 0x249201, 0x249301, 0x249401, 0x249501, 0x249601, 0x249701, + 0x249801, 0x249901, 0x249a01, 0x249b01, 0x249c01, 0x249d01, + 0x249e01, 0x249f01, 0x24a001, 0x24a101, 0x24a201, 0x24a301, + 0x24a401, 0x24a501, 0x24a601, 0x24a701, 0x24a801, 0x24a901, + 0x24aa01, 0x24ab01, 0x24ac01, 0x24ad01, 0x24ae01, 0x24af01, + 0x24b001, 0x24b101, 0x24b201, 0x24b301, 0x24b401, 0x24b501, + 0x24b601, 0x24b701, 0x24b801, 0x24b901, 0x24ba01, 0x24bb01, + 0x24bc01, 0x24bd01, 0x24be01, 0x24bf01}}}}, {pge = {{ste = { + 0x0 }}}} } + + (*) The PTD last used by the instruction TLB miss handler is attached to DAMR4. + (*) The PTD last used by the data TLB miss handler is attached to DAMR5. + + These can be viewed with the _ptd_i and _ptd_d GDB macros: + + (gdb) _ptd_d + $5 = {{pte = 0x0} , {pte = 0x539b01}, { + pte = 0x0} , {pte = 0x719303}, {pte = 0x6d5303}, { + pte = 0x0}, {pte = 0x0}, {pte = 0x0}, {pte = 0x0}, {pte = 0x0}, { + pte = 0x0}, {pte = 0x0}, {pte = 0x0}, {pte = 0x0}, {pte = 0x6a1303}, { + pte = 0x0} , {pte = 0x709303}, {pte = 0x0}, {pte = 0x0}, + {pte = 0x6fd303}, {pte = 0x6f9303}, {pte = 0x6f5303}, {pte = 0x0}, { + pte = 0x6ed303}, {pte = 0x531b01}, {pte = 0x50db01}, { + pte = 0x0} , {pte = 0x5303}, {pte = 0x7f5303}, { + pte = 0x509b01}, {pte = 0x505b01}, {pte = 0x7c9303}, {pte = 0x7b9303}, { + pte = 0x7b5303}, {pte = 0x7b1303}, {pte = 0x7ad303}, {pte = 0x0}, { + pte = 0x0}, {pte = 0x7a1303}, {pte = 0x0}, {pte = 0x795303}, {pte = 0x0}, { + pte = 0x78d303}, {pte = 0x0}, {pte = 0x0}, {pte = 0x0}, {pte = 0x0}, { + pte = 0x0}, {pte = 0x775303}, {pte = 0x771303}, {pte = 0x76d303}, { + pte = 0x0}, {pte = 0x765303}, {pte = 0x7c5303}, {pte = 0x501b01}, { + pte = 0x4f1b01}, {pte = 0x4edb01}, {pte = 0x0}, {pte = 0x4f9b01}, { + pte = 0x4fdb01}, {pte = 0x0} } diff -Nru a/Documentation/i386/boot.txt b/Documentation/i386/boot.txt --- a/Documentation/i386/boot.txt 2005-01-05 17:43:38 -08:00 +++ b/Documentation/i386/boot.txt 2005-01-05 17:43:38 -08:00 @@ -173,6 +173,9 @@ 2 bootsect-loader 3 SYSLINUX 4 EtherBoot + 5 ELILO + 7 GRuB + 8 U-BOOT Please contact if you need a bootloader ID value assigned. diff -Nru a/Documentation/i386/zero-page.txt b/Documentation/i386/zero-page.txt --- a/Documentation/i386/zero-page.txt 2005-01-05 17:43:36 -08:00 +++ b/Documentation/i386/zero-page.txt 2005-01-05 17:43:36 -08:00 @@ -74,6 +74,10 @@ 0x21c unsigned long INITRD_SIZE, size in bytes of ramdisk image 0x220 4 bytes (setup.S) 0x224 unsigned short setup.S heap end pointer +0x226 unsigned short zero_pad +0x228 unsigned long cmd_line_ptr +0x22c unsigned long ramdisk_max +0x230 16 bytes trampoline 0x290 - 0x2cf EDD_MBR_SIG_BUFFER (edd.S) 0x2d0 - 0x600 E820MAP 0x600 - 0x7ff EDDBUF (edd.S) for disk signature read sector diff -Nru a/Documentation/ide.txt b/Documentation/ide.txt --- a/Documentation/ide.txt 2005-01-05 17:43:38 -08:00 +++ b/Documentation/ide.txt 2005-01-05 17:43:38 -08:00 @@ -297,6 +297,8 @@ "ide=reverse" : formerly called to pci sub-system, but now local. + "ide=nodma" : disable DMA globally for the IDE subsystem. + The following are valid ONLY on ide0, which usually corresponds to the first ATA interface found on the particular host, and the defaults for the base,ctl ports must not be altered. diff -Nru a/Documentation/infiniband/ipoib.txt b/Documentation/infiniband/ipoib.txt --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/Documentation/infiniband/ipoib.txt 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,56 @@ +IP OVER INFINIBAND + + The ib_ipoib driver is an implementation of the IP over InfiniBand + protocol as specified by the latest Internet-Drafts issued by the + IETF ipoib working group. It is a "native" implementation in the + sense of setting the interface type to ARPHRD_INFINIBAND and the + hardware address length to 20 (earlier proprietary implementations + masqueraded to the kernel as ethernet interfaces). + +Partitions and P_Keys + + When the IPoIB driver is loaded, it creates one interface for each + port using the P_Key at index 0. To create an interface with a + different P_Key, write the desired P_Key into the main interface's + /sys/class/net//create_child file. For example: + + echo 0x8001 > /sys/class/net/ib0/create_child + + This will create an interface named ib0.8001 with P_Key 0x8001. To + remove a subinterface, use the "delete_child" file: + + echo 0x8001 > /sys/class/net/ib0/delete_child + + The P_Key for any interface is given by the "pkey" file, and the + main interface for a subinterface is in "parent." + +Debugging Information + + By compiling the IPoIB driver with CONFIG_INFINIBAND_IPOIB_DEBUG set + to 'y', tracing messages are compiled into the driver. They are + turned on by setting the module parameters debug_level and + mcast_debug_level to 1. These parameters can be controlled at + runtime through files in /sys/module/ib_ipoib/. + + CONFIG_INFINIBAND_IPOIB_DEBUG also enables the "ipoib_debugfs" + virtual filesystem. By mounting this filesystem, for example with + + mkdir -p /ipoib_debugfs + mount -t ipoib_debugfs none /ipoib_debufs + + it is possible to get statistics about multicast groups from the + files /ipoib_debugfs/ib0_mcg and so on. + + The performance impact of this option is negligible, so it + is safe to enable this option with debug_level set to 0 for normal + operation. + + CONFIG_INFINIBAND_IPOIB_DEBUG_DATA enables even more debug output in + the data path when data_debug_level is set to 1. However, even with + the output disabled, enabling this configuration option will affect + performance, because it adds tests to the fast path. + +References + + IETF IP over InfiniBand (ipoib) Working Group + http://ietf.org/html.charters/ipoib-charter.html diff -Nru a/Documentation/infiniband/sysfs.txt b/Documentation/infiniband/sysfs.txt --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/Documentation/infiniband/sysfs.txt 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,64 @@ +SYSFS FILES + + For each InfiniBand device, the InfiniBand drivers create the + following files under /sys/class/infiniband/: + + node_guid - Node GUID + sys_image_guid - System image GUID + + In addition, there is a "ports" subdirectory, with one subdirectory + for each port. For example, if mthca0 is a 2-port HCA, there will + be two directories: + + /sys/class/infiniband/mthca0/ports/1 + /sys/class/infiniband/mthca0/ports/2 + + (A switch will only have a single "0" subdirectory for switch port + 0; no subdirectory is created for normal switch ports) + + In each port subdirectory, the following files are created: + + cap_mask - Port capability mask + lid - Port LID + lid_mask_count - Port LID mask count + rate - Port data rate (active width * active speed) + sm_lid - Subnet manager LID for port's subnet + sm_sl - Subnet manager SL for port's subnet + state - Port state (DOWN, INIT, ARMED, ACTIVE or ACTIVE_DEFER) + + There is also a "counters" subdirectory, with files + + VL15_dropped + excessive_buffer_overrun_errors + link_downed + link_error_recovery + local_link_integrity_errors + port_rcv_constraint_errors + port_rcv_data + port_rcv_errors + port_rcv_packets + port_rcv_remote_physical_errors + port_rcv_switch_relay_errors + port_xmit_constraint_errors + port_xmit_data + port_xmit_discards + port_xmit_packets + symbol_error + + Each of these files contains the corresponding value from the port's + Performance Management PortCounters attribute, as described in + section 16.1.3.5 of the InfiniBand Architecture Specification. + + The "pkeys" and "gids" subdirectories contain one file for each + entry in the port's P_Key or GID table respectively. For example, + ports/1/pkeys/10 contains the value at index 10 in port 1's P_Key + table. + +MTHCA + + The Mellanox HCA driver also creates the files: + + hw_rev - Hardware revision number + fw_ver - Firmware version + hca_type - HCA type: "MT23108", "MT25208 (MT23108 compat mode)", + or "MT25208" diff -Nru a/Documentation/infiniband/user_mad.txt b/Documentation/infiniband/user_mad.txt --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/Documentation/infiniband/user_mad.txt 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,81 @@ +USERSPACE MAD ACCESS + +Device files + + Each port of each InfiniBand device has a "umad" device attached. + For example, a two-port HCA will have two devices, while a switch + will have one device (for switch port 0). + +Creating MAD agents + + A MAD agent can be created by filling in a struct ib_user_mad_reg_req + and then calling the IB_USER_MAD_REGISTER_AGENT ioctl on a file + descriptor for the appropriate device file. If the registration + request succeeds, a 32-bit id will be returned in the structure. + For example: + + struct ib_user_mad_reg_req req = { /* ... */ }; + ret = ioctl(fd, IB_USER_MAD_REGISTER_AGENT, (char *) &req); + if (!ret) + my_agent = req.id; + else + perror("agent register"); + + Agents can be unregistered with the IB_USER_MAD_UNREGISTER_AGENT + ioctl. Also, all agents registered through a file descriptor will + be unregistered when the descriptor is closed. + +Receiving MADs + + MADs are received using read(). The buffer passed to read() must be + large enough to hold at least one struct ib_user_mad. For example: + + struct ib_user_mad mad; + ret = read(fd, &mad, sizeof mad); + if (ret != sizeof mad) + perror("read"); + + In addition to the actual MAD contents, the other struct ib_user_mad + fields will be filled in with information on the received MAD. For + example, the remote LID will be in mad.lid. + + If a send times out, a receive will be generated with mad.status set + to ETIMEDOUT. Otherwise when a MAD has been successfully received, + mad.status will be 0. + + poll()/select() may be used to wait until a MAD can be read. + +Sending MADs + + MADs are sent using write(). The agent ID for sending should be + filled into the id field of the MAD, the destination LID should be + filled into the lid field, and so on. For example: + + struct ib_user_mad mad; + + /* fill in mad.data */ + + mad.id = my_agent; /* req.id from agent registration */ + mad.lid = my_dest; /* in network byte order... */ + /* etc. */ + + ret = write(fd, &mad, sizeof mad); + if (ret != sizeof mad) + perror("write"); + +/dev files + + To create the appropriate character device files automatically with + udev, a rule like + + KERNEL="umad*", NAME="infiniband/%k" + + can be used. This will create a device node named + + /dev/infiniband/umad0 + + for the first port, and so on. The InfiniBand device and port + associated with this device can be determined from the files + + /sys/class/infiniband_mad/umad0/ibdev + /sys/class/infiniband_mad/umad0/port diff -Nru a/Documentation/ioctl-number.txt b/Documentation/ioctl-number.txt --- a/Documentation/ioctl-number.txt 2005-01-05 17:43:39 -08:00 +++ b/Documentation/ioctl-number.txt 2005-01-05 17:43:39 -08:00 @@ -72,6 +72,7 @@ 0x09 all linux/md.h 0x12 all linux/fs.h linux/blkpg.h +0x1b all InfiniBand Subsystem 0x20 all drivers/cdrom/cm206.h 0x22 all scsi/sg.h '#' 00-3F IEEE 1394 Subsystem Block for the entire subsystem diff -Nru a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt --- a/Documentation/kernel-parameters.txt 2005-01-05 17:43:39 -08:00 +++ b/Documentation/kernel-parameters.txt 2005-01-05 17:43:39 -08:00 @@ -29,6 +29,7 @@ CD Appropriate CD support is enabled. DEVFS devfs support is enabled. DRM Direct Rendering Management support is enabled. + EDD BIOS Enhanced Disk Drive Services (EDD) is enabled EFI EFI Partitioning (GPT) is enabled EIDE EIDE/ATAPI support is enabled. FB The frame buffer device is enabled. @@ -50,6 +51,7 @@ MOUSE Appropriate mouse support is enabled. MTD MTD support is enabled. NET Appropriate network support is enabled. + NUMA NUMA support is enabled. NFS Appropriate NFS support is enabled. OSS OSS sound support is enabled. PARIDE The ParIDE subsystem is enabled. @@ -150,6 +152,8 @@ debugging. After system has booted up, it can be set via /proc/acpi/debug_level. + acpi_fake_ecdt [HW,ACPI] Workaround failure due to BIOS lacking ECDT + ad1816= [HW,OSS] Format: ,,, See also Documentation/sound/oss/AD1816. @@ -408,6 +412,10 @@ edb= [HW,PS2] + edd= [EDD] + Format: {"of[f]" | "sk[ipmbr]"} + See comment in arch/i386/boot/edd.S + eicon= [HW,ISDN] Format: ,, @@ -474,6 +482,10 @@ gvp11= [HW,SCSI] + hashdist= [KNL,NUMA] Large hashes allocated during boot + are distributed across NUMA nodes. Defaults on + for IA-64, off otherwise. + hcl= [IA-64] SGI's Hardware Graph compatibility layer hd= [EIDE] (E)IDE hard drive subsystem geometry @@ -498,6 +510,8 @@ i8042.dumbkbd [HW] Pretend that controlled can only read data from keyboard and can not control its state (Don't attempt to blink the leds) + i8042.noacpi [HW] Don't use ACPI to discover KBD/AUX controller + settings i8042.noaux [HW] Don't check for auxiliary (== mouse) port i8042.nomux [HW] Don't check presence of an active multiplexing controller @@ -573,11 +587,13 @@ Format: , , , isolcpus= [KNL,SMP] Isolate CPUs from the general scheduler. - Format: , ..., + Format: ,..., This option can be used to specify one or more CPUs to isolate from the general SMP balancing and scheduling algorithms. The only way to move a process onto or off an "isolated" CPU is via the CPU affinity syscalls. + begins at 0 and the maximum value is + "number of CPUs in system - 1". This option is the preferred way to isolate CPUs. The alternative - manually setting the CPU mask of all tasks @@ -871,6 +887,13 @@ panic= [KNL] Kernel behaviour on panic Format: + + parkbd.port= [HW] Parallel port number the keyboard adapter is + connected to, default is 0. + Format: + parkbd.mode= [HW] Parallel port keyboard adapter mode of operation, + 0 for XT, 1 for AT (default is AT). + Format: parport=0 [HW,PPT] Specify parallel ports. 0 disables. parport=auto Use 'auto' to force the driver to use diff -Nru a/Documentation/powerpc/00-INDEX b/Documentation/powerpc/00-INDEX --- a/Documentation/powerpc/00-INDEX 2005-01-05 17:43:38 -08:00 +++ b/Documentation/powerpc/00-INDEX 2005-01-05 17:43:38 -08:00 @@ -5,6 +5,9 @@ 00-INDEX - this file +cpu_features.txt + - info on how we support a variety of CPUs with minimal compile-time + options. ppc_htab.txt - info about the Linux/PPC /proc/ppc_htab entry smp.txt diff -Nru a/Documentation/powerpc/cpu_features.txt b/Documentation/powerpc/cpu_features.txt --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/Documentation/powerpc/cpu_features.txt 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,56 @@ +Hollis Blanchard +5 Jun 2002 + +This document describes the system (including self-modifying code) used in the +PPC Linux kernel to support a variety of PowerPC CPUs without requiring +compile-time selection. + +Early in the boot process the ppc32 kernel detects the current CPU type and +chooses a set of features accordingly. Some examples include Altivec support, +split instruction and data caches, and if the CPU supports the DOZE and NAP +sleep modes. + +Detection of the feature set is simple. A list of processors can be found in +arch/ppc/kernel/cputable.c. The PVR register is masked and compared with each +value in the list. If a match is found, the cpu_features of cur_cpu_spec is +assigned to the feature bitmask for this processor and a __setup_cpu function +is called. + +C code may test 'cur_cpu_spec[smp_processor_id()]->cpu_features' for a +particular feature bit. This is done in quite a few places, for example +in ppc_setup_l2cr(). + +Implementing cpufeatures in assembly is a little more involved. There are +several paths that are performance-critical and would suffer if an array +index, structure dereference, and conditional branch were added. To avoid the +performance penalty but still allow for runtime (rather than compile-time) CPU +selection, unused code is replaced by 'nop' instructions. This nop'ing is +based on CPU 0's capabilities, so a multi-processor system with non-identical +processors will not work (but such a system would likely have other problems +anyways). + +After detecting the processor type, the kernel patches out sections of code +that shouldn't be used by writing nop's over it. Using cpufeatures requires +just 2 macros (found in include/asm-ppc/cputable.h), as seen in head.S +transfer_to_handler: + + #ifdef CONFIG_ALTIVEC + BEGIN_FTR_SECTION + mfspr r22,SPRN_VRSAVE /* if G4, save vrsave register value */ + stw r22,THREAD_VRSAVE(r23) + END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC) + #endif /* CONFIG_ALTIVEC */ + +If CPU 0 supports Altivec, the code is left untouched. If it doesn't, both +instructions are replaced with nop's. + +The END_FTR_SECTION macro has two simpler variations: END_FTR_SECTION_IFSET +and END_FTR_SECTION_IFCLR. These simply test if a flag is set (in +cur_cpu_spec[0]->cpu_features) or is cleared, respectively. These two macros +should be used in the majority of cases. + +The END_FTR_SECTION macros are implemented by storing information about this +code in the '__ftr_fixup' ELF section. When do_cpu_ftr_fixups +(arch/ppc/kernel/misc.S) is invoked, it will iterate over the records in +__ftr_fixup, and if the required feature is not present it will loop writing +nop's from each BEGIN_FTR_SECTION to END_FTR_SECTION. diff -Nru a/Documentation/scsi/ChangeLog b/Documentation/scsi/ChangeLog --- a/Documentation/scsi/ChangeLog 2005-01-05 17:43:36 -08:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,2023 +0,0 @@ -Sat Jan 18 15:51:45 1997 Richard Henderson - - * Don't play with usage_count directly, instead hand around - the module header and use the module macros. - -Fri May 17 00:00:00 1996 Leonard N. Zubkoff - - * BusLogic Driver Version 2.0.3 Released. - -Tue Apr 16 21:00:00 1996 Leonard N. Zubkoff - - * BusLogic Driver Version 1.3.2 Released. - -Sun Dec 31 23:26:00 1995 Leonard N. Zubkoff - - * BusLogic Driver Version 1.3.1 Released. - -Fri Nov 10 15:29:49 1995 Leonard N. Zubkoff - - * Released new BusLogic driver. - -Wed Aug 9 22:37:04 1995 Andries Brouwer - - As a preparation for new device code, separated the various - functions the request->dev field had into the device proper, - request->rq_dev and a status field request->rq_status. - - The 2nd argument of bios_param is now a kdev_t. - -Wed Jul 19 10:43:15 1995 Michael Neuffer - - * scsi.c (scsi_proc_info): /proc/scsi/scsi now also lists all - attached devices. - - * scsi_proc.c (proc_print_scsidevice): Added. Used by scsi.c and - eata_dma_proc.c to produce some device info for /proc/scsi. - - * eata_dma.c (eata_queue)(eata_int_handler)(eata_scsi_done): - Changed handling of internal SCSI commands send to the HBA. - - -Wed Jul 19 10:09:17 1995 Michael Neuffer - - * Linux 1.3.11 released. - - * eata_dma.c (eata_queue)(eata_int_handler): Added code to do - command latency measurements if requested by root through - /proc/scsi interface. - Throughout Use HZ constant for time references. - - * eata_pio.c: Use HZ constant for time references. - - * aic7xxx.c, aic7xxx.h, aic7xxx_asm.c: Changed copyright from BSD - to GNU style. - - * scsi.h: Added READ_12 command opcode constant - -Wed Jul 19 09:25:30 1995 Michael Neuffer - - * Linux 1.3.10 released. - - * scsi_proc.c (dispatch_scsi_info): Removed unused variable. - -Wed Jul 19 09:25:30 1995 Michael Neuffer - - * Linux 1.3.9 released. - - * scsi.c Blacklist concept expanded to 'support' more device - deficiencies. blacklist[] renamed to device_list[] - (scan_scsis): Code cleanup. - - * scsi_debug.c (scsi_debug_proc_info): Added support to control - device lockup simulation via /proc/scsi interface. - - -Wed Jul 19 09:22:34 1995 Michael Neuffer - - * Linux 1.3.7 released. - - * scsi_proc.c: Fixed a number of bugs in directory handling - -Wed Jul 19 09:18:28 1995 Michael Neuffer - - * Linux 1.3.5 released. - - * Native wide, multichannel and /proc/scsi support now in official - kernel distribution. - - * scsi.c/h, hosts.c/h et al reindented to increase readability - (especially on 80 column wide terminals). - - * scsi.c, scsi_proc.c, ../../fs/proc/inode.c: Added - /proc/scsi/scsi which allows root to scan for hotplugged devices. - - * scsi.c (scsi_proc_info): Added, to support /proc/scsi/scsi. - (scan_scsis): Added some 'spaghetti' code to allow scanning for - single devices. - - -Thu Jun 20 15:20:27 1995 Michael Neuffer - - * proc.c: Renamed to scsi_proc.c - -Mon Jun 12 20:32:45 1995 Michael Neuffer - - * Linux 1.3.0 released. - -Mon May 15 19:33:14 1995 Michael Neuffer - - * scsi.c: Added native multichannel and wide scsi support. - - * proc.c (dispatch_scsi_info) (build_proc_dir_hba_entries): - Updated /proc/scsi interface. - -Thu May 4 17:58:48 1995 Michael Neuffer - - * sd.c (requeue_sd_request): Zero out the scatterlist only if - scsi_malloc returned memory for it. - - * eata_dma.c (register_HBA) (eata_queue): Add support for - large scatter/gather tables and set use_clustering accordingly - - * hosts.c: Make use_clustering changeable in the Scsi_Host structure. - -Wed Apr 12 15:25:52 1995 Eric Youngdale (eric@andante) - - * Linux 1.2.5 released. - - * buslogic.c: Update to version 1.15 (From Leonard N. Zubkoff). - Fixed interrupt routine to avoid races when handling multiple - complete commands per interrupt. Seems to come up with faster - cards. - - * eata_dma.c: Update to 2.3.5r. Modularize. Improved error handling - throughout and fixed bug interrupt routine which resulted in shifted - status bytes. Added blink LED state checks for ISA and EISA HBAs. - Memory management bug seems to have disappeared ==> increasing - C_P_L_CURRENT_MAX to 16 for now. Decreasing C_P_L_DIV to 3 for - performance reasons. - - * scsi.c: If we get a FMK, EOM, or ILI when attempting to scan - the bus, assume that it was just noise on the bus, and ignore - the device. - - * scsi.h: Update and add a bunch of missing commands which we - were never using. - - * sd.c: Use restore_flags in do_sd_request - this may result in - latency conditions, but it gets rid of races and crashes. - Do not save flags again when searching for a second command to - queue. - - * st.c: Use bytes, not STP->buffer->buffer_size when reading - from tape. - - -Tue Apr 4 09:42:08 1995 Eric Youngdale (eric@andante) - - * Linux 1.2.4 released. - - * st.c: Fix typo - restoring wrong flags. - -Wed Mar 29 06:55:12 1995 Eric Youngdale (eric@andante) - - * Linux 1.2.3 released. - - * st.c: Perform some waiting operations with interrupts off. - Is this correct??? - -Wed Mar 22 10:34:26 1995 Eric Youngdale (eric@andante) - - * Linux 1.2.2 released. - - * aha152x.c: Modularize. Add support for PCMCIA. - - * eata.c: Update to version 2.0. Fixed bug preventing media - detection. If scsi_register_host returns NULL, fail gracefully. - - * scsi.c: Detect as NEC (for photo-cd purposes) for the 84 - and 25 models as "NEC_OLDCDR". - - * scsi.h: Add define for NEC_OLDCDR - - * sr.c: Add handling for NEC_OLDCDR. Treat as unknown. - - * u14-34f.c: Update to version 2.0. Fixed same bug as in - eata.c. - - -Mon Mar 6 11:11:20 1995 Eric Youngdale (eric@andante) - - * Linux 1.2.0 released. Yeah!!! - - * Minor spelling/punctuation changes throughout. Nothing - substantive. - -Mon Feb 20 21:33:03 1995 Eric Youngdale (eric@andante) - - * Linux 1.1.95 released. - - * qlogic.c: Update to version 0.41. - - * seagate.c: Change some message to be more descriptive about what - we detected. - - * sr.c: spelling/whitespace changes. - -Mon Feb 20 21:33:03 1995 Eric Youngdale (eric@andante) - - * Linux 1.1.94 released. - -Mon Feb 20 08:57:17 1995 Eric Youngdale (eric@andante) - - * Linux 1.1.93 released. - - * hosts.h: Change io_port to long int from short. - - * 53c7,8xx.c: crash on AEN fixed, SCSI reset is no longer a NOP, - NULL pointer panic on odd UDCs fixed, two bugs in diagnostic output - fixed, should initialize correctly if left running, now loadable, - new memory allocation, extraneous diagnostic output suppressed, - splx() replaced with save/restore flags. [ Drew ] - - * hosts.c, hosts.h, scsi_ioctl.c, sd.c, sd_ioctl.c, sg.c, sr.c, - sr_ioctl.c: Add special junk at end that Emacs will use for - formatting the file. - - * qlogic.c: Update to v0.40a. Improve parity handling. - - * scsi.c: Add Hitachi DK312C to blacklist. Change "};" to "}" in - many places. Use scsi_init_malloc to get command block - may - need this to be dma compatible for some host adapters. - Restore interrupts after unregistering a host. - - * sd.c: Use sti instead of restore flags - causes latency problems. - - * seagate.c: Use controller_type to determine string used when - registering irq. - - * sr.c: More photo-cd hacks to make sure we get the xa stuff right. - * sr.h, sr.c: Change is_xa to xa_flags field. - - * st.c: Disable retries for write operations. - -Wed Feb 15 10:52:56 1995 Eric Youngdale (eric@andante) - - * Linux 1.1.92 released. - - * eata.c: Update to 1.17. - - * eata_dma.c: Update to 2.31a. Add more support for /proc/scsi. - Continuing modularization. Less crashes because of the bug in the - memory management ==> increase C_P_L_CURRENT_MAX to 10 - and decrease C_P_L_DIV to 4. - - * hosts.c: If we remove last host registered, reuse host number. - When freeing memory from host being deregistered, free extra_bytes - too. - - * scsi.c (scan_scsis): memset(SDpnt, 0) and set SCmd.device to SDpnt. - Change memory allocation to work around bugs in __get_dma_pages. - Do not free host if usage count is not zero (for modules). - - * sr_ioctl.c: Increase IOCTL_TIMEOUT to 3000. - - * st.c: Allow for ST_EXTRA_DEVS in st data structures. - - * u14-34f.c: Update to 1.17. - -Thu Feb 9 10:11:16 1995 Eric Youngdale (eric@andante) - - * Linux 1.1.91 released. - - * eata.c: Update to 1.16. Use wish_block instead of host->block. - - * hosts.c: Initialize wish_block to 0. - - * hosts.h: Add wish_block. - - * scsi.c: Use wish_block as indicator that the host should be added - to block list. - - * sg.c: Add SG_EXTRA_DEVS to number of slots. - - * u14-34f.c: Use wish_block. - -Tue Feb 7 11:46:04 1995 Eric Youngdale (eric@andante) - - * Linux 1.1.90 released. - - * eata.c: Change naming from eata_* to eata2x_*. Now at vers 1.15. - Update interrupt handler to take pt_regs as arg. Allow blocking - even if loaded as module. Initialize target_time_out array. - Do not put sti(); in timing loop. - - * hosts.c: Do not reuse host numbers. - Use scsi_make_blocked_list to generate blocking list. - - * script_asm.pl: Beats me. Don't know perl. Something to do with - phase index. - - * scsi.c (scsi_make_blocked_list): New function - code copied from - hosts.c. - - * scsi.c: Update code to disable photo CD for Toshiba cdroms. - Use just manufacturer name, not model number. - - * sr.c: Fix setting density for Toshiba drives. - - * u14-34f.c: Clear target_time_out array during reset. - -Wed Feb 1 09:20:45 1995 Eric Youngdale (eric@andante) - - * Linux 1.1.89 released. - - * Makefile, u14-34f.c: Modularize. - - * Makefile, eata.c: Modularize. Now version 1.14 - - * NCR5380.c: Update interrupt handler with new arglist. Minor - cleanups. - - * eata_dma.c: Begin to modularize. Add hooks for /proc/scsi. - New version 2.3.0a. Add code in interrupt handler to allow - certain CDROM drivers to be detected which return a - CHECK_CONDITION during SCSI bus scan. Add opcode check to get - all DATA IN and DATA OUT phases right. Utilize HBA_interpret flag. - Improvements in HBA identification. Various other minor stuff. - - * hosts.c: Initialize ->dma_channel and ->io_port when registering - a new host. - - * qlogic.c: Modularize and add PCMCIA support. - - * scsi.c: Add Hitachi to blacklist. - - * scsi.c: Change default to no lun scan (too many problem devices). - - * scsi.h: Define QUEUE_FULL condition. - - * sd.c: Do not check for non-existent partition until after - new media check. - - * sg.c: Undo previous change which was wrong. - - * sr_ioctl.c: Increase IOCTL_TIMEOUT to 2000. - - * st.c: Patches from Kai - improve filemark handling. - -Tue Jan 31 17:32:12 1995 Eric Youngdale (eric@andante) - - * Linux 1.1.88 released. - - * Throughout - spelling/grammar fixups. - - * scsi.c: Make sure that all buffers are 16 byte aligned - some - drivers (buslogic) need this. - - * scsi.c (scan_scsis): Remove message printed. - - * scsi.c (scsi_init): Move message here. - -Mon Jan 30 06:40:25 1995 Eric Youngdale (eric@andante) - - * Linux 1.1.87 released. - - * sr.c: Photo-cd related changes. (Gerd Knorr??). - - * st.c: Changes from Kai related to EOM detection. - -Mon Jan 23 23:53:10 1995 Eric Youngdale (eric@andante) - - * Linux 1.1.86 released. - - * 53c7,8xx.h: Change SG size to 127. - - * eata_dma: Update to version 2.10i. Remove bug in the registration - of multiple HBAs and channels. Minor other improvements and stylistic - changes. - - * scsi.c: Test for Toshiba XM-3401TA and exclude from detection - as toshiba drive - photo cd does not work with this drive. - - * sr.c: Update photocd code. - -Mon Jan 23 23:53:10 1995 Eric Youngdale (eric@andante) - - * Linux 1.1.85 released. - - * st.c, st_ioctl.c, sg.c, sd_ioctl.c, scsi_ioctl.c, hosts.c: - include linux/mm.h - - * qlogic.c, buslogic.c, aha1542.c: Include linux/module.h. - -Sun Jan 22 22:08:46 1995 Eric Youngdale (eric@andante) - - * Linux 1.1.84 released. - - * Makefile: Support for loadable QLOGIC boards. - - * aha152x.c: Update to version 1.8 from Juergen. - - * eata_dma.c: Update from Michael Neuffer. - Remove hard limit of 2 commands per lun and make it better - configurable. Improvements in HBA identification. - - * in2000.c: Fix biosparam to support large disks. - - * qlogic.c: Minor changes (change sti -> restore_flags). - -Wed Jan 18 23:33:09 1995 Eric Youngdale (eric@andante) - - * Linux 1.1.83 released. - - * aha1542.c(aha1542_intr_handle): Use arguments handed down to find - which irq. - - * buslogic.c: Likewise. - - * eata_dma.c: Use min of 2 cmd_per_lun for OCS_enabled boards. - - * scsi.c: Make RECOVERED_ERROR a SUGGEST_IS_OK. - - * sd.c: Fail if we are opening a non-existent partition. - - * sr.c: Bump SR_TIMEOUT to 15000. - Do not probe for media size at boot time(hard on changers). - Flag device as needing sector size instead. - - * sr_ioctl.c: Remove CDROMMULTISESSION_SYS ioctl. - - * ultrastor.c: Fix bug in call to ultrastor_interrupt (wrong #args). - -Mon Jan 16 07:18:23 1995 Eric Youngdale (eric@andante) - - * Linux 1.1.82 released. - - Throughout. - - Change all interrupt handlers to accept new calling convention. - In particular, we now receive the irq number as one of the arguments. - - * More minor spelling corrections in some of the new files. - - * aha1542.c, buslogic.c: Clean up interrupt handler a little now - that we receive the irq as an arg. - - * aha274x.c: s/snarf_region/request_region/ - - * eata.c: Update to version 1.12. Fix some comments and display a - message if we cannot reserve the port addresses. - - * u14-34f.c: Update to version 1.13. Fix some comments and display a - message if we cannot reserve the port addresses. - - * eata_dma.c: Define get_board_data function (send INQUIRY command). - Use to improve detection of variants of different DPT boards. Change - version subnumber to "0g". - - * fdomain.c: Update to version 5.26. Improve detection of some boards - repackaged by IBM. - - * scsi.c (scsi_register_host): Change "name" to const char *. - - * sr.c: Fix problem in set mode command for Toshiba drives. - - * sr.c: Fix typo from patch 81. - -Fri Jan 13 12:54:46 1995 Eric Youngdale (eric@andante) - - * Linux 1.1.81 released. Codefreeze for 1.2 release announced. - - Big changes here. - - * eata_dma.*: New files from Michael Neuffer. - (neuffer@goofy.zdv.uni-mainz.de). Should support - all eata/dpt cards. - - * hosts.c, Makefile: Add eata_dma. - - * README.st: Document MTEOM. - - Patches from me (ERY) to finish support for low-level loadable scsi. - It now works, and is actually useful. - - * Throughout - add new argument to scsi_init_malloc that takes an - additional parameter. This is used as a priority to kmalloc, - and you can specify the GFP_DMA flag if you need DMA-able memory. - - * Makefile: For source files that are loadable, always add name - to SCSI_SRCS. Fill in modules: target. - - * hosts.c: Change next_host to next_scsi_host, and make global. - Print hosts after we have identified all of them. Use info() - function if present, otherwise use name field. - - * hosts.h: Change attach function to return int, not void. - Define number of device slots to allow for loadable devices. - Define tags to tell scsi module code what type of module we - are loading. - - * scsi.c: Fix scan_scsis so that it can be run by a user process. - Do not use waiting loops - use up and down mechanism as long - as current != task[0]. - - * scsi.c(scan_scsis): Do not use stack variables for I/O - this - could be > 16Mb if we are loading a module at runtime (i.e. use - scsi_init_malloc to get some memory we know will be safe). - - * scsi.c: Change dma freelist to be a set of pages. This allows - us to dynamically adjust the size of the list by adding more pages - to the pagelist. Fix scsi_malloc and scsi_free accordingly. - - * scsi_module.c: Fix include. - - * sd.c: Declare detach function. Increment/decrement module usage - count as required. Fix init functions to allow loaded devices. - Revalidate all new disks so we get the partition tables. Define - detach function. - - * sr.c: Likewise. - - * sg.c: Declare detach function. Allow attachment of devices on - loaded drivers. - - * st.c: Declare detach function. Increment/decrement module usage - count as required. - -Tue Jan 10 10:09:58 1995 Eric Youngdale (eric@andante) - - * Linux 1.1.79 released. - - Patch from some undetermined individual who needs to get a life :-). - - * sr.c: Attacked by spelling bee... - - Patches from Gerd Knorr: - - * sr.c: make printk messages for photoCD a little more informative. - - * sr_ioctl.c: Fix CDROMMULTISESSION_SYS ioctl. - -Mon Jan 9 10:01:37 1995 Eric Youngdale (eric@andante) - - * Linux 1.1.78 released. - - * Makefile: Add empty modules: target. - - * Wheee. Now change register_iomem to request_region. - - * in2000.c: Bugfix - apparently this is the fix that we have - all been waiting for. It fixes a problem whereby the driver - is not stable under heavy load. Race condition and all that. - Patch from Peter Lu. - -Wed Jan 4 21:17:40 1995 Eric Youngdale (eric@andante) - - * Linux 1.1.77 released. - - * 53c7,8xx.c: Fix from Linus - emulate splx. - - Throughout: - - Change "snarf_region" with "register_iomem". - - * scsi_module.c: New file. Contains support for low-level loadable - scsi drivers. [ERY]. - - * sd.c: More s/int/long/ changes. - - * seagate.c: Explicitly include linux/config.h - - * sg.c: Increment/decrement module usage count on open/close. - - * sg.c: Be a bit more careful about the user not supplying enough - information for a valid command. Pass correct size down to - scsi_do_cmd. - - * sr.c: More changes for Photo-CD. This apparently breaks NEC drives. - - * sr_ioctl.c: Support CDROMMULTISESSION ioctl. - - -Sun Jan 1 19:55:21 1995 Eric Youngdale (eric@andante) - - * Linux 1.1.76 released. - - * constants.c: Add type cast in switch statement. - - * scsi.c (scsi_free): Change datatype of "offset" to long. - (scsi_malloc): Change a few more variables to long. Who - did this and why was it important? 64 bit machines? - - - Lots of changes to use save_state/restore_state instead of cli/sti. - Files changed include: - - * aha1542.c: - * aha1740.c: - * buslogic.c: - * in2000.c: - * scsi.c: - * scsi_debug.c: - * sd.c: - * sr.c: - * st.c: - -Wed Dec 28 16:38:29 1994 Eric Youngdale (eric@andante) - - * Linux 1.1.75 released. - - * buslogic.c: Spelling fix. - - * scsi.c: Add HP C1790A and C2500A scanjet to blacklist. - - * scsi.c: Spelling fixup. - - * sd.c: Add support for sd_hardsizes (hard sector sizes). - - * ultrastor.c: Use save_flags/restore_flags instead of cli/sti. - -Fri Dec 23 13:36:25 1994 Eric Youngdale (eric@andante) - - * Linux 1.1.74 released. - - * README.st: Update from Kai Makisara. - - * eata.c: New version from Dario - version 1.11. - use scsicam bios_param routine. Add support for 2011 - and 2021 boards. - - * hosts.c: Add support for blocking. Linked list automatically - generated when shpnt->block is set. - - * scsi.c: Add sankyo & HP scanjet to blacklist. Add support for - kicking things loose when we deadlock. - - * scsi.c: Recognize scanners and processors in scan_scsis. - - * scsi_ioctl.h: Increase timeout to 9 seconds. - - * st.c: New version from Kai - add better support for backspace. - - * u14-34f.c: New version from Dario. Supports blocking. - -Wed Dec 14 14:46:30 1994 Eric Youngdale (eric@andante) - - * Linux 1.1.73 released. - - * buslogic.c: Update from Dave Gentzel. Version 1.14. - Add module related stuff. More fault tolerant if out of - DMA memory. - - * fdomain.c: New version from Rik Faith - version 5.22. Add support - for ISA-200S SCSI adapter. - - * hosts.c: Spelling. - - * qlogic.c: Update to version 0.38a. Add more support for PCMCIA. - - * scsi.c: Mask device type with 0x1f during scan_scsis. - Add support for deadlocking, err, make that getting out of - deadlock situations that are created when we allow the user - to limit requests to one host adapter at a time. - - * scsi.c: Bugfix - pass pid, not SCpnt as second arg to - scsi_times_out. - - * scsi.c: Restore interrupt state to previous value instead of using - cli/sti pairs. - - * scsi.c: Add a bunch of module stuff (all commented out for now). - - * scsi.c: Clean up scsi_dump_status. - -Tue Dec 6 12:34:20 1994 Eric Youngdale (eric@andante) - - * Linux 1.1.72 released. - - * sg.c: Bugfix - always use sg_free, since we might have big buff. - -Fri Dec 2 11:24:53 1994 Eric Youngdale (eric@andante) - - * Linux 1.1.71 released. - - * sg.c: Clear buff field when not in use. Only call scsi_free if - non-null. - - * scsi.h: Call wake_up(&wait_for_request) when done with a - command. - - * scsi.c (scsi_times_out): Pass pid down so that we can protect - against race conditions. - - * scsi.c (scsi_abort): Zero timeout field if we get the - NOT_RUNNING message back from low-level driver. - - - * scsi.c (scsi_done): Restore cmd_len, use_sg here. - - * scsi.c (request_sense): Not here. - - * hosts.h: Add new forbidden_addr, forbidden_size fields. Who - added these and why???? - - * hosts.c (scsi_mem_init): Mark pages as reserved if they fall in - the forbidden regions. I am not sure - I think this is so that - we can deal with boards that do incomplete decoding of their - address lines for the bios chips, but I am not entirely sure. - - * buslogic.c: Set forbidden_addr stuff if using a buggy board. - - * aha1740.c: Test for NULL pointer in SCtmp. This should not - occur, but a nice message is better than a kernel segfault. - - * 53c7,8xx.c: Add new PCI chip ID for 815. - -Fri Dec 2 11:24:53 1994 Eric Youngdale (eric@andante) - - * Linux 1.1.70 released. - - * ChangeLog, st.c: Spelling. - -Tue Nov 29 18:48:42 1994 Eric Youngdale (eric@andante) - - * Linux 1.1.69 released. - - * u14-34f.h: Non-functional change. [Dario]. - - * u14-34f.c: Use block field in Scsi_Host to prevent commands from - being queued to more than one host at the same time (used when - motherboard does not deal with multiple bus-masters very well). - Only when SINGLE_HOST_OPERATIONS is defined. - Use new cmd_per_lun field. [Dario] - - * eata.c: Likewise. - - * st.c: More changes from Kai. Add ready flag to indicate drive - status. - - * README.st: Document this. - - * sr.c: Bugfix (do not subtract CD_BLOCK_OFFSET) for photo-cd - code. - - * sg.c: Bugfix - fix problem where opcode is not correctly set up. - - * seagate.[c,h]: Use #defines to set driver name. - - * scsi_ioctl.c: Zero buffer before executing command. - - * scsi.c: Use new cmd_per_lun field in Scsi_Hosts as appropriate. - Add Sony CDU55S to blacklist. - - * hosts.h: Add new cmd_per_lun field to Scsi_Hosts. - - * hosts.c: Initialize cmd_per_lun in Scsi_Hosts from template. - - * buslogic.c: Use cmd_per_lun field - initialize to different - values depending upon bus type (i.e. use 1 if ISA, so we do not - hog memory). Use other patches which got lost from 1.1.68. - - * aha1542.c: Spelling. - -Tue Nov 29 15:43:50 1994 Eric Youngdale (eric@andante.aib.com) - - * Linux 1.1.68 released. - - Add support for 12 byte vendor specific commands in scsi-generics, - more (i.e. the last mandatory) low-level changes to support - loadable modules, plus a few other changes people have requested - lately. Changes by me (ERY) unless otherwise noted. Spelling - changes appear from some unknown corner of the universe. - - * Throughout: Change COMMAND_SIZE() to use SCpnt->cmd_len. - - * Throughout: Change info() low level function to take a Scsi_Host - pointer. This way the info function can return specific - information about the host in question, if desired. - - * All low-level drivers: Add NULL in initializer for the - usage_count field added to Scsi_Host_Template. - - * aha152x.[c,h]: Remove redundant info() function. - - * aha1542.[c,h]: Likewise. - - * aha1740.[c,h]: Likewise. - - * aha274x.[c,h]: Likewise. - - * eata.[c,h]: Likewise. - - * pas16.[c,h]: Likewise. - - * scsi_debug.[c,h]: Likewise. - - * t128.[c,h]: Likewise. - - * u14-34f.[c,h]: Likewise. - - * ultrastor.[c,h]: Likewise. - - * wd7000.[c,h]: Likewise. - - * aha1542.c: Add support for command line options with lilo to set - DMA parameters, I/O port. From Matt Aarnio. - - * buslogic.[c,h]: New version (1.13) from Dave Gentzel. - - * hosts.h: Add new field to Scsi_Hosts "block" to allow blocking - all I/O to certain other cards. Helps prevent problems with some - ISA motherboards. - - * hosts.h: Add usage_count to Scsi_Host_Template. - - * hosts.h: Add n_io_port to Scsi_Host (used when releasing module). - - * hosts.c: Initialize block field. - - * in2000.c: Remove "static" declarations from exported functions. - - * in2000.h: Likewise. - - * scsi.c: Correctly set cmd_len field as required. Save and - change setting when doing a request_sense, restore when done. - Move abort timeout message. Fix panic in request_queueable to - print correct function name. - - * scsi.c: When incrementing usage count, walk block linked list - for host, and or in SCSI_HOST_BLOCK bit. When decrementing usage - count to 0, clear this bit to allow usage to continue, wake up - processes waiting. - - - * scsi_ioctl.c: If we have an info() function, call it, otherwise - if we have a "name" field, use it, else do nothing. - - * sd.c, sr.c: Clear cmd_len field prior to each command we - generate. - - * sd.h: Add "has_part_table" bit to rscsi_disks. - - * sg.[c,h]: Add support for vendor specific 12 byte commands (i.e. - override command length in COMMAND_SIZE). - - * sr.c: Bugfix from Gerd in photocd code. - - * sr.c: Bugfix in get_sectorsize - always use scsi_malloc buffer - - we cannot guarantee that the stack is < 16Mb. - -Tue Nov 22 15:40:46 1994 Eric Youngdale (eric@andante.aib.com) - - * Linux 1.1.67 released. - - * sr.c: Change spelling of manufactor to manufacturer. - - * scsi.h: Likewise. - - * scsi.c: Likewise. - - * qlogic.c: Spelling corrections. - - * in2000.h: Spelling corrections. - - * in2000.c: Update from Bill Earnest, change from - jshiffle@netcom.com. Support new bios versions. - - * README.qlogic: Spelling correction. - -Tue Nov 22 15:40:46 1994 Eric Youngdale (eric@andante.aib.com) - - * Linux 1.1.66 released. - - * u14-34f.c: Spelling corrections. - - * sr.[h,c]: Add support for multi-session CDs from Gerd Knorr. - - * scsi.h: Add manufactor field for keeping track of device - manufacturer. - - * scsi.c: More spelling corrections. - - * qlogic.h, qlogic.c, README.qlogic: New driver from Tom Zerucha. - - * in2000.c, in2000.h: New driver from Brad McLean/Bill Earnest. - - * fdomain.c: Spelling correction. - - * eata.c: Spelling correction. - -Fri Nov 18 15:22:44 1994 Eric Youngdale (eric@andante.aib.com) - - * Linux 1.1.65 released. - - * eata.h: Update version string to 1.08.00. - - * eata.c: Set sg_tablesize correctly for DPT PM2012 boards. - - * aha274x.seq: Spell checking. - - * README.st: Likewise. - - * README.aha274x: Likewise. - - * ChangeLog: Likewise. - -Tue Nov 15 15:35:08 1994 Eric Youngdale (eric@andante.aib.com) - - * Linux 1.1.64 released. - - * u14-34f.h: Update version number to 1.10.01. - - * u14-34f.c: Use Scsi_Host can_queue variable instead of one from template. - - * eata.[c,h]: New driver for DPT boards from Dario Ballabio. - - * buslogic.c: Use can_queue field. - -Wed Nov 30 12:09:09 1994 Eric Youngdale (eric@andante.aib.com) - - * Linux 1.1.63 released. - - * sd.c: Give I/O error if we attempt 512 byte I/O to a disk with - 1024 byte sectors. - - * scsicam.c: Make sure we do read from whole disk (mask off - partition). - - * scsi.c: Use can_queue in Scsi_Host structure. - Fix panic message about invalid host. - - * hosts.c: Initialize can_queue from template. - - * hosts.h: Add can_queue to Scsi_Host structure. - - * aha1740.c: Print out warning about NULL ecbptr. - -Fri Nov 4 12:40:30 1994 Eric Youngdale (eric@andante.aib.com) - - * Linux 1.1.62 released. - - * fdomain.c: Update to version 5.20. (From Rik Faith). Support - BIOS version 3.5. - - * st.h: Add ST_EOD symbol. - - * st.c: Patches from Kai Makisara - support additional densities, - add support for MTFSS, MTBSS, MTWSM commands. - - * README.st: Update to document new commands. - - * scsi.c: Add Mediavision CDR-H93MV to blacklist. - -Sat Oct 29 20:57:36 1994 Eric Youngdale (eric@andante.aib.com) - - * Linux 1.1.60 released. - - * u14-34f.[c,h]: New driver from Dario Ballabio. - - * aic7770.c, aha274x_seq.h, aha274x.seq, aha274x.h, aha274x.c, - README.aha274x: New files, new driver from John Aycock. - - -Tue Oct 11 08:47:39 1994 Eric Youngdale (eric@andante) - - * Linux 1.1.54 released. - - * Add third PCI chip id. [Drew] - - * buslogic.c: Set BUSLOGIC_CMDLUN back to 1 [Eric]. - - * ultrastor.c: Fix asm directives for new GCC. - - * sr.c, sd.c: Use new end_scsi_request function. - - * scsi.h(end_scsi_request): Return pointer to block if still - active, else return NULL if inactive. Fixes race condition. - -Sun Oct 9 20:23:14 1994 Eric Youngdale (eric@andante) - - * Linux 1.1.53 released. - - * scsi.c: Do not allocate dma bounce buffers if we have exactly - 16Mb. - -Fri Sep 9 05:35:30 1994 Eric Youngdale (eric@andante) - - * Linux 1.1.51 released. - - * aha152x.c: Add support for disabling the parity check. Update - to version 1.4. [Juergen]. - - * seagate.c: Tweak debugging message. - -Wed Aug 31 10:15:55 1994 Eric Youngdale (eric@andante) - - * Linux 1.1.50 released. - - * aha152x.c: Add eb800 for Vtech Platinum SMP boards. [Juergen]. - - * scsi.c: Add Quantum PD1225S to blacklist. - -Fri Aug 26 09:38:45 1994 Eric Youngdale (eric@andante) - - * Linux 1.1.49 released. - - * sd.c: Fix bug when we were deleting the wrong entry if we - get an unsupported sector size device. - - * sr.c: Another spelling patch. - -Thu Aug 25 09:15:27 1994 Eric Youngdale (eric@andante) - - * Linux 1.1.48 released. - - * Throughout: Use new semantics for request_dma, as appropriate. - - * sr.c: Print correct device number. - -Sun Aug 21 17:49:23 1994 Eric Youngdale (eric@andante) - - * Linux 1.1.47 released. - - * NCR5380.c: Add support for LIMIT_TRANSFERSIZE. - - * constants.h: Add prototype for print_Scsi_Cmnd. - - * pas16.c: Some more minor tweaks. Test for Mediavision board. - Allow for disks > 1Gb. [Drew??] - - * sr.c: Set SCpnt->transfersize. - -Tue Aug 16 17:29:35 1994 Eric Youngdale (eric@andante) - - * Linux 1.1.46 released. - - * Throughout: More spelling fixups. - - * buslogic.c: Add a few more fixups from Dave. Disk translation - mainly. - - * pas16.c: Add a few patches (Drew?). - - -Thu Aug 11 20:45:15 1994 Eric Youngdale (eric@andante) - - * Linux 1.1.44 released. - - * hosts.c: Add type casts for scsi_init_malloc. - - * scsicam.c: Add type cast. - -Wed Aug 10 19:23:01 1994 Eric Youngdale (eric@andante) - - * Linux 1.1.43 released. - - * Throughout: Spelling cleanups. [??] - - * aha152x.c, NCR53*.c, fdomain.c, g_NCR5380.c, pas16.c, seagate.c, - t128.c: Use request_irq, not irqaction. [??] - - * aha1542.c: Move test for shost before we start to use shost. - - * aha1542.c, aha1740.c, ultrastor.c, wd7000.c: Use new - calling sequence for request_irq. - - * buslogic.c: Update from Dave Gentzel. - -Tue Aug 9 09:32:59 1994 Eric Youngdale (eric@andante) - - * Linux 1.1.42 released. - - * NCR5380.c: Change NCR5380_print_status to static. - - * seagate.c: A few more bugfixes. Only Drew knows what they are - for. - - * ultrastor.c: Tweak some __asm__ directives so that it works - with newer compilers. [??] - -Sat Aug 6 21:29:36 1994 Eric Youngdale (eric@andante) - - * Linux 1.1.40 released. - - * NCR5380.c: Return SCSI_RESET_WAKEUP from reset function. - - * aha1542.c: Reset mailbox status after a bus device reset. - - * constants.c: Fix typo (;;). - - * g_NCR5380.c: - * pas16.c: Correct usage of NCR5380_init. - - * scsi.c: Remove redundant (and unused variables). - - * sd.c: Use memset to clear all of rscsi_disks before we use it. - - * sg.c: Ditto, except for scsi_generics. - - * sr.c: Ditto, except for scsi_CDs. - - * st.c: Initialize STp->device. - - * seagate.c: Fix bug. [Drew] - -Thu Aug 4 08:47:27 1994 Eric Youngdale (eric@andante) - - * Linux 1.1.39 released. - - * Makefile: Fix typo in NCR53C7xx. - - * st.c: Print correct number for device. - -Tue Aug 2 11:29:14 1994 Eric Youngdale (eric@esp22) - - * Linux 1.1.38 released. - - Lots of changes in 1.1.38. All from Drew unless otherwise noted. - - * 53c7,8xx.c: New file from Drew. PCI driver. - - * 53c7,8xx.h: Likewise. - - * 53c7,8xx.scr: Likewise. - - * 53c8xx_d.h, 53c8xx_u.h, script_asm.pl: Likewise. - - * scsicam.c: New file from Drew. Read block 0 on the disk and - read the partition table. Attempt to deduce the geometry from - the partition table if possible. Only used by 53c[7,8]xx right - now, but could be used by any device for which we have no way - of identifying the geometry. - - * sd.c: Use device letters instead of sd%d in a lot of messages. - - * seagate.c: Fix bug that resulted in lockups with some devices. - - * sr.c (sr_open): Return -EROFS, not -EACCES if we attempt to open - device for write. - - * hosts.c, Makefile: Update for new driver. - - * NCR5380.c, NCR5380.h, g_NCR5380.h: Update from Drew to support - 53C400 chip. - - * constants.c: Define CONST_CMND and CONST_MSG. Other minor - cleanups along the way. Improve handling of CONST_MSG. - - * fdomain.c, fdomain.h: New version from Rik Faith. Update to - 5.18. Should now support TMC-3260 PCI card with 18C30 chip. - - * pas16.c: Update with new irq initialization. - - * t128.c: Update with minor cleanups. - - * scsi.c (scsi_pid): New variable - gives each command a unique - id. Add Quantum LPS5235S to blacklist. Change in_scan to - in_scan_scsis and make global. - - * scsi.h: Add some defines for extended message handling, - INITIATE/RELEASE_RECOVERY. Add a few new fields to support sync - transfers. - - * scsi_ioctl.h: Add ioctl to request synchronous transfers. - - -Tue Jul 26 21:36:58 1994 Eric Youngdale (eric@esp22) - - * Linux 1.1.37 released. - - * aha1542.c: Always call aha1542_mbenable, use new udelay - mechanism so we do not wait a long time if the board does not - implement this command. - - * g_NCR5380.c: Remove #include and #if - defined(CONFIG_SCSI_*). - - * seagate.c: Likewise. - - Next round of changes to support loadable modules. Getting closer - now, still not possible to do anything remotely usable. - - hosts.c: Create a linked list of detected high level devices. - (scsi_register_device): New function to insert into this list. - (scsi_init): Call scsi_register_device for each of the known high - level drivers. - - hosts.h: Add prototype for linked list header. Add structure - definition for device template structure which defines the linked - list. - - scsi.c: (scan_scsis): Use linked list instead of knowledge about - existing high level device drivers. - (scsi_dev_init): Use init functions for drivers on linked list - instead of explicit list to initialize and attach devices to high - level drivers. - - scsi.h: Add new field "attached" to scsi_device - count of number - of high level devices attached. - - sd.c, sr.c, sg.c, st.c: Adjust init/attach functions to use new - scheme. - -Sat Jul 23 13:03:17 1994 Eric Youngdale (eric@esp22) - - * Linux 1.1.35 released. - - * ultrastor.c: Change constraint on asm() operand so that it works - with gcc 2.6.0. - -Thu Jul 21 10:37:39 1994 Eric Youngdale (eric@esp22) - - * Linux 1.1.33 released. - - * sr.c(sr_open): Do not allow opens with write access. - -Mon Jul 18 09:51:22 1994 1994 Eric Youngdale (eric@esp22) - - * Linux 1.1.31 released. - - * sd.c: Increase SD_TIMEOUT from 300 to 600. - - * sr.c: Remove stray task_struct* variable that was no longer - used. - - * sr_ioctl.c: Fix typo in up() call. - -Sun Jul 17 16:25:29 1994 Eric Youngdale (eric@esp22) - - * Linux 1.1.30 released. - - * scsi.c (scan_scsis): Fix detection of some Toshiba CDROM drives - that report themselves as disk drives. - - * (Throughout): Use request.sem instead of request.waiting. - Should fix swap problem with fdomain. - -Thu Jul 14 10:51:42 1994 Eric Youngdale (eric@esp22) - - * Linux 1.1.29 released. - - * scsi.c (scan_scsis): Add new devices to end of linked list, not - to the beginning. - - * scsi.h (SCSI_SLEEP): Remove brain dead hack to try to save - the task state before sleeping. - -Sat Jul 9 15:01:03 1994 Eric Youngdale (eric@esp22) - - More changes to eventually support loadable modules. Mainly - we want to use linked lists instead of arrays because it is easier - to dynamically add and remove things this way. - - Quite a bit more work is needed before loadable modules are - possible (and usable) with scsi, but this is most of the grunge - work. - - * Linux 1.1.28 released. - - * scsi.c, scsi.h (allocate_device, request_queueable): Change - argument from index into scsi_devices to a pointer to the - Scsi_Device struct. - - * Throughout: Change all calls to allocate_device, - request_queueable to use new calling sequence. - - * Throughout: Use SCpnt->device instead of - scsi_devices[SCpnt->index]. Ugh - the pointer was there all along - - much cleaner this way. - - * scsi.c (scsi_init_malloc, scsi_free_malloc): New functions - - allow us to pretend that we have a working malloc when we - initialize. Use this instead of passing memory_start, memory_end - around all over the place. - - * scsi.h, st.c, sr.c, sd.c, sg.c: Change *_init1 functions to use - scsi_init_malloc, remove all arguments, no return value. - - * scsi.h: Remove index field from Scsi_Device and Scsi_Cmnd - structs. - - * scsi.c (scsi_dev_init): Set up for scsi_init_malloc. - (scan_scsis): Get SDpnt from scsi_init_malloc, and refresh - when we discover a device. Free pointer before returning. - Change scsi_devices into a linked list. - - * scsi.c (scan_scsis): Change to only scan one host. - (scsi_dev_init): Loop over all detected hosts, and scan them. - - * hosts.c (scsi_init_free): Change so that number of extra bytes - is stored in struct, and we do not have to pass it each time. - - * hosts.h: Change Scsi_Host_Template struct to include "next" and - "release" functions. Initialize to NULL in all low level - adapters. - - * hosts.c: Rename scsi_hosts to builtin_scsi_hosts, create linked - list scsi_hosts, linked together with the new "next" field. - -Wed Jul 6 05:45:02 1994 Eric Youngdale (eric@esp22) - - * Linux 1.1.25 released. - - * aha152x.c: Changes from Juergen - cleanups and updates. - - * sd.c, sr.c: Use new check_media_change and revalidate - file_operations fields. - - * st.c, st.h: Add changes from Kai Makisara, dated Jun 22. - - * hosts.h: Change SG_ALL back to 0xff. Apparently soft error - in /dev/brain resulted in having this bumped up. - Change first parameter in bios_param function to be Disk * instead - of index into rscsi_disks. - - * sd_ioctl.c: Pass pointer to rscsi_disks element instead of index - to array. - - * sd.h: Add struct name "scsi_disk" to typedef for Scsi_Disk. - - * scsi.c: Remove redundant Maxtor XT8760S from blacklist. - In scsi_reset, add printk when DEBUG defined. - - * All low level drivers: Modify definitions of bios_param in - appropriate way. - -Thu Jun 16 10:31:59 1994 Eric Youngdale (eric@esp22) - - * Linux 1.1.20 released. - - * scsi_ioctl.c: Only pass down the actual number of characters - required to scsi_do_cmd, not the one rounded up to a even number - of sectors. - - * ultrastor.c: Changes from Caleb Epstein for 24f cards. Support - larger SG lists. - - * ultrastor.c: Changes from me - use scsi_register to register - host. Add some consistency checking, - -Wed Jun 1 21:12:13 1994 Eric Youngdale (eric@esp22) - - * Linux 1.1.19 released. - - * scsi.h: Add new return code for reset() function: - SCSI_RESET_PUNT. - - * scsi.c: Make SCSI_RESET_PUNT the same as SCSI_RESET_WAKEUP for - now. - - * aha1542.c: If the command responsible for the reset is not - pending, return SCSI_RESET_PUNT. - - * aha1740.c, buslogic.c, wd7000.c, ultrastor.c: Return - SCSI_RESET_PUNT instead of SCSI_RESET_SNOOZE. - -Tue May 31 19:36:01 1994 Eric Youngdale (eric@esp22) - - * buslogic.c: Do not print out message about "must be Adaptec" - if we have detected a buslogic card. Print out a warning message - if we are configuring for >16Mb, since the 445S at board level - D or earlier does not work right. The "D" level board can be made - to work by flipping an undocumented switch, but this is too subtle. - - Changes based upon patches in Yggdrasil distribution. - - * sg.c, sg.h: Return sense data to user. - - * aha1542.c, aha1740.c, buslogic.c: Do not panic if - sense buffer is wrong size. - - * hosts.c: Test for ultrastor card before any of the others. - - * scsi.c: Allow boot-time option for max_scsi_luns=? so that - buggy firmware has an easy work-around. - -Sun May 15 20:24:34 1994 Eric Youngdale (eric@esp22) - - * Linux 1.1.15 released. - - Post-codefreeze thaw... - - * buslogic.[c,h]: New driver from David Gentzel. - - * hosts.h: Add use_clustering field to explicitly say whether - clustering should be used for devices attached to this host - adapter. The buslogic board apparently supports large SG lists, - but it is apparently faster if sd.c condenses this into a smaller - list. - - * sd.c: Use this field instead of heuristic. - - * All host adapter include files: Add appropriate initializer for - use_clustering field. - - * scsi.h: Add #defines for return codes for the abort and reset - functions. There are now a specific set of return codes to fully - specify all of the possible things that the low-level adapter - could do. - - * scsi.c: Act based upon return codes from abort/reset functions. - - * All host adapter abort/reset functions: Return new return code. - - * Add code in scsi.c to help debug timeouts. Use #define - DEBUG_TIMEOUT to enable this. - - * scsi.c: If the host->irq field is set, use - disable_irq/enable_irq before calling queuecommand if we - are not already in an interrupt. Reduce races, and we - can be sloppier about cli/sti in the interrupt routines now - (reduce interrupt latency). - - * constants.c: Fix some things to eliminate warnings. Add some - sense descriptions that were omitted before. - - * aha1542.c: Watch for SCRD from host adapter - if we see it, set - a flag. Currently we only print out the number of pending - commands that might need to be restarted. - - * aha1542.c (aha1542_abort): Look for lost interrupts, OGMB still - full, and attempt to recover. Otherwise give up. - - * aha1542.c (aha1542_reset): Try BUS DEVICE RESET, and then pass - DID_RESET back up to the upper level code for all commands running - on this target (even on different LUNs). - -Sat May 7 14:54:01 1994 - - * Linux 1.1.12 released. - - * st.c, st.h: New version from Kai. Supports boot time - specification of number of buffers. - - * wd7000.[c,h]: Updated driver from John Boyd. Now supports - more than one wd7000 board in machine at one time, among other things. - -Wed Apr 20 22:20:35 1994 - - * Linux 1.1.8 released. - - * sd.c: Add a few type casts where scsi_malloc is called. - -Wed Apr 13 12:53:29 1994 - - * Linux 1.1.4 released. - - * scsi.c: Clean up a few printks (use %p to print pointers). - -Wed Apr 13 11:33:02 1994 - - * Linux 1.1.3 released. - - * fdomain.c: Update to version 5.16 (Handle different FIFO sizes - better). - -Fri Apr 8 08:57:19 1994 - - * Linux 1.1.2 released. - - * Throughout: SCSI portion of cluster diffs added. - -Tue Apr 5 07:41:50 1994 - - * Linux 1.1 development tree initiated. - - * The linux 1.0 development tree is now effectively frozen except - for obvious bugfixes. - -****************************************************************** -****************************************************************** -****************************************************************** -****************************************************************** - -Sun Apr 17 00:17:39 1994 - - * Linux 1.0, patchlevel 9 released. - - * fdomain.c: Update to version 5.16 (Handle different FIFO sizes - better). - -Thu Apr 7 08:36:20 1994 - - * Linux 1.0, patchlevel8 released. - - * fdomain.c: Update to version 5.15 from 5.9. Handles 3.4 bios. - -Sun Apr 3 14:43:03 1994 - - * Linux 1.0, patchlevel6 released. - - * wd7000.c: Make stab at fixing race condition. - -Sat Mar 26 14:14:50 1994 - - * Linux 1.0, patchlevel5 released. - - * aha152x.c, Makefile: Fix a few bugs (too much data message). - Add a few more bios signatures. (Patches from Juergen). - - * aha1542.c: Fix race condition in aha1542_out. - -Mon Mar 21 16:36:20 1994 - - * Linux 1.0, patchlevel3 released. - - * sd.c, st.c, sr.c, sg.c: Return -ENXIO, not -ENODEV if we attempt - to open a non-existent device. - - * scsi.c: Add Chinon cdrom to blacklist. - - * sr_ioctl.c: Check return status of verify_area. - -Sat Mar 6 16:06:19 1994 - - * Linux 1.0 released (technically a pre-release). - - * scsi.c: Add IMS CDD521, Maxtor XT-8760S to blacklist. - -Tue Feb 15 10:58:20 1994 - - * pl15e released. - - * aha1542.c: For 1542C, allow dynamic device scan with >1Gb turned - off. - - * constants.c: Fix typo in definition of CONSTANTS. - - * pl15d released. - -Fri Feb 11 10:10:16 1994 - - * pl15c released. - - * scsi.c: Add Maxtor XT-3280 and Rodime RO3000S to blacklist. - - * scsi.c: Allow tagged queueing for scsi 3 devices as well. - Some really old devices report a version number of 0. Disallow - LUN != 0 for these. - -Thu Feb 10 09:48:57 1994 - - * pl15b released. - -Sun Feb 6 12:19:46 1994 - - * pl15a released. - -Fri Feb 4 09:02:17 1994 - - * scsi.c: Add Teac cdrom to blacklist. - -Thu Feb 3 14:16:43 1994 - - * pl15 released. - -Tue Feb 1 15:47:43 1994 - - * pl14w released. - - * wd7000.c (wd_bases): Fix typo in last change. - -Mon Jan 24 17:37:23 1994 - - * pl14u released. - - * aha1542.c: Support 1542CF/extended bios. Different from 1542C - - * wd7000.c: Allow bios at 0xd8000 as well. - - * ultrastor.c: Do not truncate cylinders to 1024. - - * fdomain.c: Update to version 5.9 (add new bios signature). - - * NCR5380.c: Update from Drew - should work a lot better now. - -Sat Jan 8 15:13:10 1994 - - * pl14o released. - - * sr_ioctl.c: Zero reserved field before trying to set audio volume. - -Wed Jan 5 13:21:10 1994 - - * pl14m released. - - * fdomain.c: Update to version 5.8. No functional difference??? - -Tue Jan 4 14:26:13 1994 - - * pl14l released. - - * ultrastor.c: Remove outl, inl functions (now provided elsewhere). - -Mon Jan 3 12:27:25 1994 - - * pl14k released. - - * aha152x.c: Remove insw and outsw functions. - - * fdomain.c: Ditto. - -Wed Dec 29 09:47:20 1993 - - * pl14i released. - - * scsi.c: Support RECOVERED_ERROR for tape drives. - - * st.c: Update of tape driver from Kai. - -Tue Dec 21 09:18:30 1993 - - * pl14g released. - - * aha1542.[c,h]: Support extended BIOS stuff. - - * scsi.c: Clean up messages about disks, so they are displayed as - sda, sdb, etc instead of sd0, sd1, etc. - - * sr.c: Force reread of capacity if disk was changed. - Clear buffer before asking for capacity/sectorsize (some drives - do not report this properly). Set needs_sector_size flag if - drive did not return sensible sector size. - -Mon Dec 13 12:13:47 1993 - - * aha152x.c: Update to version .101 from Juergen. - -Mon Nov 29 03:03:00 1993 - - * linux 0.99.14 released. - - * All scsi stuff moved from kernel/blk_drv/scsi to drivers/scsi. - - * Throughout: Grammatical corrections to various comments. - - * Makefile: fix so that we do not need to compile things we are - not going to use. - - * NCR5380.c, NCR5380.h, g_NCR5380.c, g_NCR5380.h, pas16.c, - pas16.h, t128.c, t128.h: New files from Drew. - - * aha152x.c, aha152x.h: New files from Juergen Fischer. - - * aha1542.c: Support for more than one 1542 in the machine - at the same time. Make functions static that do not need - visibility. - - * aha1740.c: Set NEEDS_JUMPSTART flag in reset function, so we - know to restart the command. Change prototype of aha1740_reset - to take a command pointer. - - * constants.c: Clean up a few things. - - * fdomain.c: Update to version 5.6. Move snarf_region. Allow - board to be set at different SCSI ids. Remove support for - reselection (did not work well). Set JUMPSTART flag in reset - code. - - * hosts.c: Support new low-level adapters. Allow for more than - one adapter of a given type. - - * hosts.h: Allow for more than one adapter of a given type. - - * scsi.c: Add scsi_device_types array, if NEEDS_JUMPSTART is set - after a low-level reset, start the command again. Sort blacklist, - and add Maxtor MXT-1240S, XT-4170S, NEC CDROM 84, Seagate ST157N. - - * scsi.h: Add constants for tagged queueing. - - * Throughout: Use constants from major.h instead of hardcoded - numbers for major numbers. - - * scsi_ioctl.c: Fix bug in buffer length in ioctl_command. Use - verify_area in GET_IDLUN ioctl. Add new ioctls for - TAGGED_QUEUE_ENABLE, DISABLE. Only allow IOCTL_SEND_COMMAND by - superuser. - - * sd.c: Only pay attention to UNIT_ATTENTION for removable disks. - Fix bug where sometimes portions of blocks would get lost - resulting in processes hanging. Add messages when we spin up a - disk, and fix a bug in the timing. Increase read-ahead for disks - that are on a scatter-gather capable host adapter. - - * seagate.c: Fix so that some parameters can be set from the lilo - prompt. Supply jumpstart flag if we are resetting and need the - command restarted. Fix so that we return 1 if we detect a card - so that multiple card detection works correctly. Add yet another - signature for FD cards (950). Add another signature for ST0x. - - * sg.c, sg.h: New files from Lawrence Foard for generic scsi - access. - - * sr.c: Add type casts for (void*) so that we can do pointer - arithmetic. Works with GCC without this, but it is not strictly - correct. Same bugfix as was in sd.c. Increase read-ahead a la - disk driver. - - * sr_ioctl.c: Use scsi_malloc buffer instead of buffer from stack - since we cannot guarantee that the stack is < 16Mb. - - ultrastor.c: Update to support 24f properly (JFC's driver). - - wd7000.c: Supply jumpstart flag for reset. Do not round up - number of cylinders in biosparam function. - -Sat Sep 4 20:49:56 1993 - - * 0.99pl13 released. - - * Throughout: Use check_region/snarf_region for all low-level - drivers. - - * aha1542.c: Do hard reset instead of soft (some ethercard probes - screw us up). - - * scsi.c: Add new flag ASKED_FOR_SENSE so that we can tell if we are - in a loop whereby the device returns null sense data. - - * sd.c: Add code to spin up a drive if it is not already spinning. - Do this one at a time to make it easier on power supplies. - - * sd_ioctl.c: Use sync_dev instead of fsync_dev in BLKFLSBUF ioctl. - - * seagate.c: Switch around DATA/CONTROL lines. - - * st.c: Change sense to unsigned. - -Thu Aug 5 11:59:18 1993 - - * 0.99pl12 released. - - * constants.c, constants.h: New files with ascii descriptions of - various conditions. - - * Makefile: Do not try to count the number of low-level drivers, - just generate the list of .o files. - - * aha1542.c: Replace 16 with sizeof(SCpnt->sense_buffer). Add tests - for addresses > 16Mb, panic if we find one. - - * aha1740.c: Ditto with sizeof(). - - * fdomain.c: Update to version 3.18. Add new signature, register IRQ - with irqaction. Use ID 7 for new board. Be more intelligent about - obtaining the h/s/c numbers for biosparam. - - * hosts.c: Do not depend upon Makefile generated count of the number - of low-level host adapters. - - * scsi.c: Use array for scsi_command_size instead of a function. Add - Texel cdrom and Maxtor XT-4380S to blacklist. Allow compile time - option for no-multi lun scan. Add semaphore for possible problems - with handshaking, assume device is faulty until we know it not to be - the case. Add DEBUG_INIT symbol to dump info as we scan for devices. - Zero sense buffer so we can tell if we need to request it. When - examining sense information, request sense if buffer is all zero. - If RESET, request sense information to see what to do next. - - * scsi_debug.c: Change some constants to use symbols like INT_MAX. - - * scsi_ioctl.c (kernel_scsi_ioctl): New function -for making ioctl - calls from kernel space. - - * sd.c: Increase timeout to 300. Use functions in constants.h to - display info. Use scsi_malloc buffer for READ_CAPACITY, since - we cannot guarantee that a stack based buffer is < 16Mb. - - * sd_ioctl.c: Add BLKFLSBUF ioctl. - - * seagate.c: Add new compile time options for ARBITRATE, - SLOW_HANDSHAKE, and SLOW_RATE. Update assembly loops for transferring - data. Use kernel_scsi_ioctl to request mode page with geometry. - - * sr.c: Use functions in constants.c to display messages. - - * st.c: Support for variable block size. - - * ultrastor.c: Do not use cache for tape drives. Set - unchecked_isa_dma flag, even though this may not be needed (gets set - later). - -Sat Jul 17 18:32:44 1993 - - * 0.99pl11 released. C++ compilable. - - * Throughout: Add type casts all over the place, and use "ip" instead - of "info" in the various biosparam functions. - - * Makefile: Compile seagate.c with C++ compiler. - - * aha1542.c: Always set ccb pointer as this gets trashed somehow on - some systems. Add a few type casts. Update biosparam function a little. - - * aha1740.c: Add a few type casts. - - * fdomain.c: Update to version 3.17 from 3.6. Now works with - TMC-18C50. - - * scsi.c: Minor changes here and there with datatypes. Save use_sg - when requesting sense information so that this can properly be - restored if we retry the command. Set aside dma buffers assuming each - block is 1 page, not 1Kb minix block. - - * scsi_ioctl.c: Add a few type casts. Other minor changes. - - * sd.c: Correctly free all scsi_malloc'd memory if we run out of - dma_pool. Store blocksize information for each partition. - - * seagate.c: Minor cleanups here and there. - - * sr.c: Set up blocksize array for all discs. Fix bug in freeing - buffers if we run out of dma pool. - -Thu Jun 2 17:58:11 1993 - - * 0.99pl10 released. - - * aha1542.c: Support for BT 445S (VL-bus board with no dma channel). - - * fdomain.c: Upgrade to version 3.6. Preliminary support for TNC-18C50. - - * scsi.c: First attempt to fix problem with old_use_sg. Change - NOT_READY to a SUGGEST_ABORT. Fix timeout race where time might - get decremented past zero. - - * sd.c: Add block_fsync function to dispatch table. - - * sr.c: Increase timeout to 500 from 250. Add entry for sync in - dispatch table (supply NULL). If we do not have a sectorsize, - try to get it in the sd_open function. Add new function just to - obtain sectorsize. - - * sr.h: Add needs_sector_size semaphore. - - * st.c: Add NULL for fsync in dispatch table. - - * wd7000.c: Allow another condition for power on that are normal - and do not require a panic. - -Thu Apr 22 23:10:11 1993 - - * 0.99pl9 released. - - * aha1542.c: Use (void) instead of () in setup_mailboxes. - - * scsi.c: Initialize transfersize and underflow fields in SCmd to 0. - Do not panic for unsupported message bytes. - - * scsi.h: Allocate 12 bytes instead of 10 for commands. Add - transfersize and underflow fields. - - * scsi_ioctl.c: Further bugfix to ioctl_probe. - - * sd.c: Use long instead of int for last parameter in sd_ioctl. - Initialize transfersize and underflow fields. - - * sd_ioctl.c: Ditto for sd_ioctl(,,,,); - - * seagate.c: New version from Drew. Includes new signatures for FD - cards. Support for 0ws jumper. Correctly initialize - scsi_hosts[hostnum].this_id. Improved handing of - disconnect/reconnect, and support command linking. Use - transfersize and underflow fields. Support scatter-gather. - - * sr.c, sr_ioctl.c: Use long instead of int for last parameter in sr_ioctl. - Use buffer and buflength in do_ioctl. Patches from Chris Newbold for - scsi-2 audio commands. - - * ultrastor.c: Comment out in_byte (compiler warning). - - * wd7000.c: Change () to (void) in wd7000_enable_dma. - -Wed Mar 31 16:36:25 1993 - - * 0.99pl8 released. - - * aha1542.c: Handle mailboxes better for 1542C. - Do not truncate number of cylinders at 1024 for biosparam call. - - * aha1740.c: Fix a few minor bugs for multiple devices. - Same as above for biosparam. - - * scsi.c: Add lockable semaphore for removable devices that can have - media removal prevented. Add another signature for flopticals. - (allocate_device): Fix race condition. Allow more space in dma pool - for blocksizes of up to 4Kb. - - * scsi.h: Define COMMAND_SIZE. Define a SCSI specific version of - INIT_REQUEST that can run with interrupts off. - - * scsi_ioctl.c: Make ioctl_probe function more idiot-proof. If - a removable device says ILLEGAL REQUEST to a door-locking command, - clear lockable flag. Add SCSI_IOCTL_GET_IDLUN ioctl. Do not attempt - to lock door for devices that do not have lockable semaphore set. - - * sd.c: Fix race condition for multiple disks. Use INIT_SCSI_REQUEST - instead of INIT_REQUEST. Allow sector sizes of 1024 and 256. For - removable disks that are not ready, mark them as having a media change - (some drives do not report this later). - - * seagate.c: Use volatile keyword for memory-mapped register pointers. - - * sr.c: Fix race condition, a la sd.c. Increase the number of retries - to 1. Use INIT_SCSI_REQUEST. Allow 512 byte sector sizes. Do a - read_capacity when we init the device so we know the size and - sectorsize. - - * st.c: If ioctl not found in st.c, try scsi_ioctl for others. - - * ultrastor.c: Do not truncate number of cylinders at 1024 for - biosparam call. - - * wd7000.c: Ditto. - Throughout: Use COMMAND_SIZE macro to determine length of scsi - command. - - - -Sat Mar 13 17:31:29 1993 - - * 0.99pl7 released. - - Throughout: Improve punctuation in some messages, and use new - verify_area syntax. - - * aha1542.c: Handle unexpected interrupts better. - - * scsi.c: Ditto. Handle reset conditions a bit better, asking for - sense information and retrying if required. - - * scsi_ioctl.c: Allow for 12 byte scsi commands. - - * ultrastor.c: Update to use scatter-gather. - -Sat Feb 20 17:57:15 1993 - - * 0.99pl6 released. - - * fdomain.c: Update to version 3.5. Handle spurious interrupts - better. - - * sd.c: Use register_blkdev function. - - * sr.c: Ditto. - - * st.c: Use register_chrdev function. - - * wd7000.c: Undo previous change. - -Sat Feb 6 11:20:43 1993 - - * 0.99pl5 released. - - * scsi.c: Fix bug in testing for UNIT_ATTENTION. - - * wd7000.c: Check at more addresses for bios. Fix bug in biosparam - (heads & sectors turned around). - -Wed Jan 20 18:13:59 1993 - - * 0.99pl4 released. - - * scsi.c: Ignore leading spaces when looking for blacklisted devices. - - * seagate.c: Add a few new signatures for FD cards. Another patch - with SCint to fix race condition. Use recursion_depth to keep track - of how many times we have been recursively called, and do not start - another command unless we are on the outer level. Fixes bug - with Syquest cartridge drives (used to crash kernel), because - they do not disconnect with large data transfers. - -Tue Jan 12 14:33:36 1993 - - * 0.99pl3 released. - - * fdomain.c: Update to version 3.3 (a few new signatures). - - * scsi.c: Add CDU-541, Denon DRD-25X to blacklist. - (allocate_request, request_queueable): Init request.waiting to NULL if - non-buffer type of request. - - * seagate.c: Allow controller to be overridden with CONTROLLER symbol. - Set SCint=NULL when we are done, to remove race condition. - - * st.c: Changes from Kai. - -Wed Dec 30 20:03:47 1992 - - * 0.99pl2 released. - - * scsi.c: Blacklist back in. Remove Newbury drive as other bugfix - eliminates need for it here. - - * sd.c: Return ENODEV instead of EACCES if no such device available. - (sd_init) Init blkdev_fops earlier so that sd_open is available sooner. - - * sr.c: Same as above for sd.c. - - * st.c: Return ENODEV instead of ENXIO if no device. Init chrdev_fops - sooner, so that it is always there even if no tapes. - - * seagate.c (controller_type): New variable to keep track of ST0x or - FD. Modify signatures list to indicate controller type, and init - controller_type once we find a match. - - * wd7000.c (wd7000_set_sync): Remove redundant function. - -Sun Dec 20 16:26:24 1992 - - * 0.99pl1 released. - - * scsi_ioctl.c: Bugfix - check dev->index, not dev->id against - NR_SCSI_DEVICES. - - * sr_ioctl.c: Verify that device exists before allowing an ioctl. - - * st.c: Patches from Kai - change timeout values, improve end of tape - handling. - -Sun Dec 13 18:15:23 1992 - - * 0.99 kernel released. Baseline for this ChangeLog. diff -Nru a/Documentation/scsi/ChangeLog.1992-1997 b/Documentation/scsi/ChangeLog.1992-1997 --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/Documentation/scsi/ChangeLog.1992-1997 2005-01-05 17:43:36 -08:00 @@ -0,0 +1,2023 @@ +Sat Jan 18 15:51:45 1997 Richard Henderson + + * Don't play with usage_count directly, instead hand around + the module header and use the module macros. + +Fri May 17 00:00:00 1996 Leonard N. Zubkoff + + * BusLogic Driver Version 2.0.3 Released. + +Tue Apr 16 21:00:00 1996 Leonard N. Zubkoff + + * BusLogic Driver Version 1.3.2 Released. + +Sun Dec 31 23:26:00 1995 Leonard N. Zubkoff + + * BusLogic Driver Version 1.3.1 Released. + +Fri Nov 10 15:29:49 1995 Leonard N. Zubkoff + + * Released new BusLogic driver. + +Wed Aug 9 22:37:04 1995 Andries Brouwer + + As a preparation for new device code, separated the various + functions the request->dev field had into the device proper, + request->rq_dev and a status field request->rq_status. + + The 2nd argument of bios_param is now a kdev_t. + +Wed Jul 19 10:43:15 1995 Michael Neuffer + + * scsi.c (scsi_proc_info): /proc/scsi/scsi now also lists all + attached devices. + + * scsi_proc.c (proc_print_scsidevice): Added. Used by scsi.c and + eata_dma_proc.c to produce some device info for /proc/scsi. + + * eata_dma.c (eata_queue)(eata_int_handler)(eata_scsi_done): + Changed handling of internal SCSI commands send to the HBA. + + +Wed Jul 19 10:09:17 1995 Michael Neuffer + + * Linux 1.3.11 released. + + * eata_dma.c (eata_queue)(eata_int_handler): Added code to do + command latency measurements if requested by root through + /proc/scsi interface. + Throughout Use HZ constant for time references. + + * eata_pio.c: Use HZ constant for time references. + + * aic7xxx.c, aic7xxx.h, aic7xxx_asm.c: Changed copyright from BSD + to GNU style. + + * scsi.h: Added READ_12 command opcode constant + +Wed Jul 19 09:25:30 1995 Michael Neuffer + + * Linux 1.3.10 released. + + * scsi_proc.c (dispatch_scsi_info): Removed unused variable. + +Wed Jul 19 09:25:30 1995 Michael Neuffer + + * Linux 1.3.9 released. + + * scsi.c Blacklist concept expanded to 'support' more device + deficiencies. blacklist[] renamed to device_list[] + (scan_scsis): Code cleanup. + + * scsi_debug.c (scsi_debug_proc_info): Added support to control + device lockup simulation via /proc/scsi interface. + + +Wed Jul 19 09:22:34 1995 Michael Neuffer + + * Linux 1.3.7 released. + + * scsi_proc.c: Fixed a number of bugs in directory handling + +Wed Jul 19 09:18:28 1995 Michael Neuffer + + * Linux 1.3.5 released. + + * Native wide, multichannel and /proc/scsi support now in official + kernel distribution. + + * scsi.c/h, hosts.c/h et al reindented to increase readability + (especially on 80 column wide terminals). + + * scsi.c, scsi_proc.c, ../../fs/proc/inode.c: Added + /proc/scsi/scsi which allows root to scan for hotplugged devices. + + * scsi.c (scsi_proc_info): Added, to support /proc/scsi/scsi. + (scan_scsis): Added some 'spaghetti' code to allow scanning for + single devices. + + +Thu Jun 20 15:20:27 1995 Michael Neuffer + + * proc.c: Renamed to scsi_proc.c + +Mon Jun 12 20:32:45 1995 Michael Neuffer + + * Linux 1.3.0 released. + +Mon May 15 19:33:14 1995 Michael Neuffer + + * scsi.c: Added native multichannel and wide scsi support. + + * proc.c (dispatch_scsi_info) (build_proc_dir_hba_entries): + Updated /proc/scsi interface. + +Thu May 4 17:58:48 1995 Michael Neuffer + + * sd.c (requeue_sd_request): Zero out the scatterlist only if + scsi_malloc returned memory for it. + + * eata_dma.c (register_HBA) (eata_queue): Add support for + large scatter/gather tables and set use_clustering accordingly + + * hosts.c: Make use_clustering changeable in the Scsi_Host structure. + +Wed Apr 12 15:25:52 1995 Eric Youngdale (eric@andante) + + * Linux 1.2.5 released. + + * buslogic.c: Update to version 1.15 (From Leonard N. Zubkoff). + Fixed interrupt routine to avoid races when handling multiple + complete commands per interrupt. Seems to come up with faster + cards. + + * eata_dma.c: Update to 2.3.5r. Modularize. Improved error handling + throughout and fixed bug interrupt routine which resulted in shifted + status bytes. Added blink LED state checks for ISA and EISA HBAs. + Memory management bug seems to have disappeared ==> increasing + C_P_L_CURRENT_MAX to 16 for now. Decreasing C_P_L_DIV to 3 for + performance reasons. + + * scsi.c: If we get a FMK, EOM, or ILI when attempting to scan + the bus, assume that it was just noise on the bus, and ignore + the device. + + * scsi.h: Update and add a bunch of missing commands which we + were never using. + + * sd.c: Use restore_flags in do_sd_request - this may result in + latency conditions, but it gets rid of races and crashes. + Do not save flags again when searching for a second command to + queue. + + * st.c: Use bytes, not STP->buffer->buffer_size when reading + from tape. + + +Tue Apr 4 09:42:08 1995 Eric Youngdale (eric@andante) + + * Linux 1.2.4 released. + + * st.c: Fix typo - restoring wrong flags. + +Wed Mar 29 06:55:12 1995 Eric Youngdale (eric@andante) + + * Linux 1.2.3 released. + + * st.c: Perform some waiting operations with interrupts off. + Is this correct??? + +Wed Mar 22 10:34:26 1995 Eric Youngdale (eric@andante) + + * Linux 1.2.2 released. + + * aha152x.c: Modularize. Add support for PCMCIA. + + * eata.c: Update to version 2.0. Fixed bug preventing media + detection. If scsi_register_host returns NULL, fail gracefully. + + * scsi.c: Detect as NEC (for photo-cd purposes) for the 84 + and 25 models as "NEC_OLDCDR". + + * scsi.h: Add define for NEC_OLDCDR + + * sr.c: Add handling for NEC_OLDCDR. Treat as unknown. + + * u14-34f.c: Update to version 2.0. Fixed same bug as in + eata.c. + + +Mon Mar 6 11:11:20 1995 Eric Youngdale (eric@andante) + + * Linux 1.2.0 released. Yeah!!! + + * Minor spelling/punctuation changes throughout. Nothing + substantive. + +Mon Feb 20 21:33:03 1995 Eric Youngdale (eric@andante) + + * Linux 1.1.95 released. + + * qlogic.c: Update to version 0.41. + + * seagate.c: Change some message to be more descriptive about what + we detected. + + * sr.c: spelling/whitespace changes. + +Mon Feb 20 21:33:03 1995 Eric Youngdale (eric@andante) + + * Linux 1.1.94 released. + +Mon Feb 20 08:57:17 1995 Eric Youngdale (eric@andante) + + * Linux 1.1.93 released. + + * hosts.h: Change io_port to long int from short. + + * 53c7,8xx.c: crash on AEN fixed, SCSI reset is no longer a NOP, + NULL pointer panic on odd UDCs fixed, two bugs in diagnostic output + fixed, should initialize correctly if left running, now loadable, + new memory allocation, extraneous diagnostic output suppressed, + splx() replaced with save/restore flags. [ Drew ] + + * hosts.c, hosts.h, scsi_ioctl.c, sd.c, sd_ioctl.c, sg.c, sr.c, + sr_ioctl.c: Add special junk at end that Emacs will use for + formatting the file. + + * qlogic.c: Update to v0.40a. Improve parity handling. + + * scsi.c: Add Hitachi DK312C to blacklist. Change "};" to "}" in + many places. Use scsi_init_malloc to get command block - may + need this to be dma compatible for some host adapters. + Restore interrupts after unregistering a host. + + * sd.c: Use sti instead of restore flags - causes latency problems. + + * seagate.c: Use controller_type to determine string used when + registering irq. + + * sr.c: More photo-cd hacks to make sure we get the xa stuff right. + * sr.h, sr.c: Change is_xa to xa_flags field. + + * st.c: Disable retries for write operations. + +Wed Feb 15 10:52:56 1995 Eric Youngdale (eric@andante) + + * Linux 1.1.92 released. + + * eata.c: Update to 1.17. + + * eata_dma.c: Update to 2.31a. Add more support for /proc/scsi. + Continuing modularization. Less crashes because of the bug in the + memory management ==> increase C_P_L_CURRENT_MAX to 10 + and decrease C_P_L_DIV to 4. + + * hosts.c: If we remove last host registered, reuse host number. + When freeing memory from host being deregistered, free extra_bytes + too. + + * scsi.c (scan_scsis): memset(SDpnt, 0) and set SCmd.device to SDpnt. + Change memory allocation to work around bugs in __get_dma_pages. + Do not free host if usage count is not zero (for modules). + + * sr_ioctl.c: Increase IOCTL_TIMEOUT to 3000. + + * st.c: Allow for ST_EXTRA_DEVS in st data structures. + + * u14-34f.c: Update to 1.17. + +Thu Feb 9 10:11:16 1995 Eric Youngdale (eric@andante) + + * Linux 1.1.91 released. + + * eata.c: Update to 1.16. Use wish_block instead of host->block. + + * hosts.c: Initialize wish_block to 0. + + * hosts.h: Add wish_block. + + * scsi.c: Use wish_block as indicator that the host should be added + to block list. + + * sg.c: Add SG_EXTRA_DEVS to number of slots. + + * u14-34f.c: Use wish_block. + +Tue Feb 7 11:46:04 1995 Eric Youngdale (eric@andante) + + * Linux 1.1.90 released. + + * eata.c: Change naming from eata_* to eata2x_*. Now at vers 1.15. + Update interrupt handler to take pt_regs as arg. Allow blocking + even if loaded as module. Initialize target_time_out array. + Do not put sti(); in timing loop. + + * hosts.c: Do not reuse host numbers. + Use scsi_make_blocked_list to generate blocking list. + + * script_asm.pl: Beats me. Don't know perl. Something to do with + phase index. + + * scsi.c (scsi_make_blocked_list): New function - code copied from + hosts.c. + + * scsi.c: Update code to disable photo CD for Toshiba cdroms. + Use just manufacturer name, not model number. + + * sr.c: Fix setting density for Toshiba drives. + + * u14-34f.c: Clear target_time_out array during reset. + +Wed Feb 1 09:20:45 1995 Eric Youngdale (eric@andante) + + * Linux 1.1.89 released. + + * Makefile, u14-34f.c: Modularize. + + * Makefile, eata.c: Modularize. Now version 1.14 + + * NCR5380.c: Update interrupt handler with new arglist. Minor + cleanups. + + * eata_dma.c: Begin to modularize. Add hooks for /proc/scsi. + New version 2.3.0a. Add code in interrupt handler to allow + certain CDROM drivers to be detected which return a + CHECK_CONDITION during SCSI bus scan. Add opcode check to get + all DATA IN and DATA OUT phases right. Utilize HBA_interpret flag. + Improvements in HBA identification. Various other minor stuff. + + * hosts.c: Initialize ->dma_channel and ->io_port when registering + a new host. + + * qlogic.c: Modularize and add PCMCIA support. + + * scsi.c: Add Hitachi to blacklist. + + * scsi.c: Change default to no lun scan (too many problem devices). + + * scsi.h: Define QUEUE_FULL condition. + + * sd.c: Do not check for non-existent partition until after + new media check. + + * sg.c: Undo previous change which was wrong. + + * sr_ioctl.c: Increase IOCTL_TIMEOUT to 2000. + + * st.c: Patches from Kai - improve filemark handling. + +Tue Jan 31 17:32:12 1995 Eric Youngdale (eric@andante) + + * Linux 1.1.88 released. + + * Throughout - spelling/grammar fixups. + + * scsi.c: Make sure that all buffers are 16 byte aligned - some + drivers (buslogic) need this. + + * scsi.c (scan_scsis): Remove message printed. + + * scsi.c (scsi_init): Move message here. + +Mon Jan 30 06:40:25 1995 Eric Youngdale (eric@andante) + + * Linux 1.1.87 released. + + * sr.c: Photo-cd related changes. (Gerd Knorr??). + + * st.c: Changes from Kai related to EOM detection. + +Mon Jan 23 23:53:10 1995 Eric Youngdale (eric@andante) + + * Linux 1.1.86 released. + + * 53c7,8xx.h: Change SG size to 127. + + * eata_dma: Update to version 2.10i. Remove bug in the registration + of multiple HBAs and channels. Minor other improvements and stylistic + changes. + + * scsi.c: Test for Toshiba XM-3401TA and exclude from detection + as toshiba drive - photo cd does not work with this drive. + + * sr.c: Update photocd code. + +Mon Jan 23 23:53:10 1995 Eric Youngdale (eric@andante) + + * Linux 1.1.85 released. + + * st.c, st_ioctl.c, sg.c, sd_ioctl.c, scsi_ioctl.c, hosts.c: + include linux/mm.h + + * qlogic.c, buslogic.c, aha1542.c: Include linux/module.h. + +Sun Jan 22 22:08:46 1995 Eric Youngdale (eric@andante) + + * Linux 1.1.84 released. + + * Makefile: Support for loadable QLOGIC boards. + + * aha152x.c: Update to version 1.8 from Juergen. + + * eata_dma.c: Update from Michael Neuffer. + Remove hard limit of 2 commands per lun and make it better + configurable. Improvements in HBA identification. + + * in2000.c: Fix biosparam to support large disks. + + * qlogic.c: Minor changes (change sti -> restore_flags). + +Wed Jan 18 23:33:09 1995 Eric Youngdale (eric@andante) + + * Linux 1.1.83 released. + + * aha1542.c(aha1542_intr_handle): Use arguments handed down to find + which irq. + + * buslogic.c: Likewise. + + * eata_dma.c: Use min of 2 cmd_per_lun for OCS_enabled boards. + + * scsi.c: Make RECOVERED_ERROR a SUGGEST_IS_OK. + + * sd.c: Fail if we are opening a non-existent partition. + + * sr.c: Bump SR_TIMEOUT to 15000. + Do not probe for media size at boot time(hard on changers). + Flag device as needing sector size instead. + + * sr_ioctl.c: Remove CDROMMULTISESSION_SYS ioctl. + + * ultrastor.c: Fix bug in call to ultrastor_interrupt (wrong #args). + +Mon Jan 16 07:18:23 1995 Eric Youngdale (eric@andante) + + * Linux 1.1.82 released. + + Throughout. + - Change all interrupt handlers to accept new calling convention. + In particular, we now receive the irq number as one of the arguments. + + * More minor spelling corrections in some of the new files. + + * aha1542.c, buslogic.c: Clean up interrupt handler a little now + that we receive the irq as an arg. + + * aha274x.c: s/snarf_region/request_region/ + + * eata.c: Update to version 1.12. Fix some comments and display a + message if we cannot reserve the port addresses. + + * u14-34f.c: Update to version 1.13. Fix some comments and display a + message if we cannot reserve the port addresses. + + * eata_dma.c: Define get_board_data function (send INQUIRY command). + Use to improve detection of variants of different DPT boards. Change + version subnumber to "0g". + + * fdomain.c: Update to version 5.26. Improve detection of some boards + repackaged by IBM. + + * scsi.c (scsi_register_host): Change "name" to const char *. + + * sr.c: Fix problem in set mode command for Toshiba drives. + + * sr.c: Fix typo from patch 81. + +Fri Jan 13 12:54:46 1995 Eric Youngdale (eric@andante) + + * Linux 1.1.81 released. Codefreeze for 1.2 release announced. + + Big changes here. + + * eata_dma.*: New files from Michael Neuffer. + (neuffer@goofy.zdv.uni-mainz.de). Should support + all eata/dpt cards. + + * hosts.c, Makefile: Add eata_dma. + + * README.st: Document MTEOM. + + Patches from me (ERY) to finish support for low-level loadable scsi. + It now works, and is actually useful. + + * Throughout - add new argument to scsi_init_malloc that takes an + additional parameter. This is used as a priority to kmalloc, + and you can specify the GFP_DMA flag if you need DMA-able memory. + + * Makefile: For source files that are loadable, always add name + to SCSI_SRCS. Fill in modules: target. + + * hosts.c: Change next_host to next_scsi_host, and make global. + Print hosts after we have identified all of them. Use info() + function if present, otherwise use name field. + + * hosts.h: Change attach function to return int, not void. + Define number of device slots to allow for loadable devices. + Define tags to tell scsi module code what type of module we + are loading. + + * scsi.c: Fix scan_scsis so that it can be run by a user process. + Do not use waiting loops - use up and down mechanism as long + as current != task[0]. + + * scsi.c(scan_scsis): Do not use stack variables for I/O - this + could be > 16Mb if we are loading a module at runtime (i.e. use + scsi_init_malloc to get some memory we know will be safe). + + * scsi.c: Change dma freelist to be a set of pages. This allows + us to dynamically adjust the size of the list by adding more pages + to the pagelist. Fix scsi_malloc and scsi_free accordingly. + + * scsi_module.c: Fix include. + + * sd.c: Declare detach function. Increment/decrement module usage + count as required. Fix init functions to allow loaded devices. + Revalidate all new disks so we get the partition tables. Define + detach function. + + * sr.c: Likewise. + + * sg.c: Declare detach function. Allow attachment of devices on + loaded drivers. + + * st.c: Declare detach function. Increment/decrement module usage + count as required. + +Tue Jan 10 10:09:58 1995 Eric Youngdale (eric@andante) + + * Linux 1.1.79 released. + + Patch from some undetermined individual who needs to get a life :-). + + * sr.c: Attacked by spelling bee... + + Patches from Gerd Knorr: + + * sr.c: make printk messages for photoCD a little more informative. + + * sr_ioctl.c: Fix CDROMMULTISESSION_SYS ioctl. + +Mon Jan 9 10:01:37 1995 Eric Youngdale (eric@andante) + + * Linux 1.1.78 released. + + * Makefile: Add empty modules: target. + + * Wheee. Now change register_iomem to request_region. + + * in2000.c: Bugfix - apparently this is the fix that we have + all been waiting for. It fixes a problem whereby the driver + is not stable under heavy load. Race condition and all that. + Patch from Peter Lu. + +Wed Jan 4 21:17:40 1995 Eric Youngdale (eric@andante) + + * Linux 1.1.77 released. + + * 53c7,8xx.c: Fix from Linus - emulate splx. + + Throughout: + + Change "snarf_region" with "register_iomem". + + * scsi_module.c: New file. Contains support for low-level loadable + scsi drivers. [ERY]. + + * sd.c: More s/int/long/ changes. + + * seagate.c: Explicitly include linux/config.h + + * sg.c: Increment/decrement module usage count on open/close. + + * sg.c: Be a bit more careful about the user not supplying enough + information for a valid command. Pass correct size down to + scsi_do_cmd. + + * sr.c: More changes for Photo-CD. This apparently breaks NEC drives. + + * sr_ioctl.c: Support CDROMMULTISESSION ioctl. + + +Sun Jan 1 19:55:21 1995 Eric Youngdale (eric@andante) + + * Linux 1.1.76 released. + + * constants.c: Add type cast in switch statement. + + * scsi.c (scsi_free): Change datatype of "offset" to long. + (scsi_malloc): Change a few more variables to long. Who + did this and why was it important? 64 bit machines? + + + Lots of changes to use save_state/restore_state instead of cli/sti. + Files changed include: + + * aha1542.c: + * aha1740.c: + * buslogic.c: + * in2000.c: + * scsi.c: + * scsi_debug.c: + * sd.c: + * sr.c: + * st.c: + +Wed Dec 28 16:38:29 1994 Eric Youngdale (eric@andante) + + * Linux 1.1.75 released. + + * buslogic.c: Spelling fix. + + * scsi.c: Add HP C1790A and C2500A scanjet to blacklist. + + * scsi.c: Spelling fixup. + + * sd.c: Add support for sd_hardsizes (hard sector sizes). + + * ultrastor.c: Use save_flags/restore_flags instead of cli/sti. + +Fri Dec 23 13:36:25 1994 Eric Youngdale (eric@andante) + + * Linux 1.1.74 released. + + * README.st: Update from Kai Makisara. + + * eata.c: New version from Dario - version 1.11. + use scsicam bios_param routine. Add support for 2011 + and 2021 boards. + + * hosts.c: Add support for blocking. Linked list automatically + generated when shpnt->block is set. + + * scsi.c: Add sankyo & HP scanjet to blacklist. Add support for + kicking things loose when we deadlock. + + * scsi.c: Recognize scanners and processors in scan_scsis. + + * scsi_ioctl.h: Increase timeout to 9 seconds. + + * st.c: New version from Kai - add better support for backspace. + + * u14-34f.c: New version from Dario. Supports blocking. + +Wed Dec 14 14:46:30 1994 Eric Youngdale (eric@andante) + + * Linux 1.1.73 released. + + * buslogic.c: Update from Dave Gentzel. Version 1.14. + Add module related stuff. More fault tolerant if out of + DMA memory. + + * fdomain.c: New version from Rik Faith - version 5.22. Add support + for ISA-200S SCSI adapter. + + * hosts.c: Spelling. + + * qlogic.c: Update to version 0.38a. Add more support for PCMCIA. + + * scsi.c: Mask device type with 0x1f during scan_scsis. + Add support for deadlocking, err, make that getting out of + deadlock situations that are created when we allow the user + to limit requests to one host adapter at a time. + + * scsi.c: Bugfix - pass pid, not SCpnt as second arg to + scsi_times_out. + + * scsi.c: Restore interrupt state to previous value instead of using + cli/sti pairs. + + * scsi.c: Add a bunch of module stuff (all commented out for now). + + * scsi.c: Clean up scsi_dump_status. + +Tue Dec 6 12:34:20 1994 Eric Youngdale (eric@andante) + + * Linux 1.1.72 released. + + * sg.c: Bugfix - always use sg_free, since we might have big buff. + +Fri Dec 2 11:24:53 1994 Eric Youngdale (eric@andante) + + * Linux 1.1.71 released. + + * sg.c: Clear buff field when not in use. Only call scsi_free if + non-null. + + * scsi.h: Call wake_up(&wait_for_request) when done with a + command. + + * scsi.c (scsi_times_out): Pass pid down so that we can protect + against race conditions. + + * scsi.c (scsi_abort): Zero timeout field if we get the + NOT_RUNNING message back from low-level driver. + + + * scsi.c (scsi_done): Restore cmd_len, use_sg here. + + * scsi.c (request_sense): Not here. + + * hosts.h: Add new forbidden_addr, forbidden_size fields. Who + added these and why???? + + * hosts.c (scsi_mem_init): Mark pages as reserved if they fall in + the forbidden regions. I am not sure - I think this is so that + we can deal with boards that do incomplete decoding of their + address lines for the bios chips, but I am not entirely sure. + + * buslogic.c: Set forbidden_addr stuff if using a buggy board. + + * aha1740.c: Test for NULL pointer in SCtmp. This should not + occur, but a nice message is better than a kernel segfault. + + * 53c7,8xx.c: Add new PCI chip ID for 815. + +Fri Dec 2 11:24:53 1994 Eric Youngdale (eric@andante) + + * Linux 1.1.70 released. + + * ChangeLog, st.c: Spelling. + +Tue Nov 29 18:48:42 1994 Eric Youngdale (eric@andante) + + * Linux 1.1.69 released. + + * u14-34f.h: Non-functional change. [Dario]. + + * u14-34f.c: Use block field in Scsi_Host to prevent commands from + being queued to more than one host at the same time (used when + motherboard does not deal with multiple bus-masters very well). + Only when SINGLE_HOST_OPERATIONS is defined. + Use new cmd_per_lun field. [Dario] + + * eata.c: Likewise. + + * st.c: More changes from Kai. Add ready flag to indicate drive + status. + + * README.st: Document this. + + * sr.c: Bugfix (do not subtract CD_BLOCK_OFFSET) for photo-cd + code. + + * sg.c: Bugfix - fix problem where opcode is not correctly set up. + + * seagate.[c,h]: Use #defines to set driver name. + + * scsi_ioctl.c: Zero buffer before executing command. + + * scsi.c: Use new cmd_per_lun field in Scsi_Hosts as appropriate. + Add Sony CDU55S to blacklist. + + * hosts.h: Add new cmd_per_lun field to Scsi_Hosts. + + * hosts.c: Initialize cmd_per_lun in Scsi_Hosts from template. + + * buslogic.c: Use cmd_per_lun field - initialize to different + values depending upon bus type (i.e. use 1 if ISA, so we do not + hog memory). Use other patches which got lost from 1.1.68. + + * aha1542.c: Spelling. + +Tue Nov 29 15:43:50 1994 Eric Youngdale (eric@andante.aib.com) + + * Linux 1.1.68 released. + + Add support for 12 byte vendor specific commands in scsi-generics, + more (i.e. the last mandatory) low-level changes to support + loadable modules, plus a few other changes people have requested + lately. Changes by me (ERY) unless otherwise noted. Spelling + changes appear from some unknown corner of the universe. + + * Throughout: Change COMMAND_SIZE() to use SCpnt->cmd_len. + + * Throughout: Change info() low level function to take a Scsi_Host + pointer. This way the info function can return specific + information about the host in question, if desired. + + * All low-level drivers: Add NULL in initializer for the + usage_count field added to Scsi_Host_Template. + + * aha152x.[c,h]: Remove redundant info() function. + + * aha1542.[c,h]: Likewise. + + * aha1740.[c,h]: Likewise. + + * aha274x.[c,h]: Likewise. + + * eata.[c,h]: Likewise. + + * pas16.[c,h]: Likewise. + + * scsi_debug.[c,h]: Likewise. + + * t128.[c,h]: Likewise. + + * u14-34f.[c,h]: Likewise. + + * ultrastor.[c,h]: Likewise. + + * wd7000.[c,h]: Likewise. + + * aha1542.c: Add support for command line options with lilo to set + DMA parameters, I/O port. From Matt Aarnio. + + * buslogic.[c,h]: New version (1.13) from Dave Gentzel. + + * hosts.h: Add new field to Scsi_Hosts "block" to allow blocking + all I/O to certain other cards. Helps prevent problems with some + ISA motherboards. + + * hosts.h: Add usage_count to Scsi_Host_Template. + + * hosts.h: Add n_io_port to Scsi_Host (used when releasing module). + + * hosts.c: Initialize block field. + + * in2000.c: Remove "static" declarations from exported functions. + + * in2000.h: Likewise. + + * scsi.c: Correctly set cmd_len field as required. Save and + change setting when doing a request_sense, restore when done. + Move abort timeout message. Fix panic in request_queueable to + print correct function name. + + * scsi.c: When incrementing usage count, walk block linked list + for host, and or in SCSI_HOST_BLOCK bit. When decrementing usage + count to 0, clear this bit to allow usage to continue, wake up + processes waiting. + + + * scsi_ioctl.c: If we have an info() function, call it, otherwise + if we have a "name" field, use it, else do nothing. + + * sd.c, sr.c: Clear cmd_len field prior to each command we + generate. + + * sd.h: Add "has_part_table" bit to rscsi_disks. + + * sg.[c,h]: Add support for vendor specific 12 byte commands (i.e. + override command length in COMMAND_SIZE). + + * sr.c: Bugfix from Gerd in photocd code. + + * sr.c: Bugfix in get_sectorsize - always use scsi_malloc buffer - + we cannot guarantee that the stack is < 16Mb. + +Tue Nov 22 15:40:46 1994 Eric Youngdale (eric@andante.aib.com) + + * Linux 1.1.67 released. + + * sr.c: Change spelling of manufactor to manufacturer. + + * scsi.h: Likewise. + + * scsi.c: Likewise. + + * qlogic.c: Spelling corrections. + + * in2000.h: Spelling corrections. + + * in2000.c: Update from Bill Earnest, change from + jshiffle@netcom.com. Support new bios versions. + + * README.qlogic: Spelling correction. + +Tue Nov 22 15:40:46 1994 Eric Youngdale (eric@andante.aib.com) + + * Linux 1.1.66 released. + + * u14-34f.c: Spelling corrections. + + * sr.[h,c]: Add support for multi-session CDs from Gerd Knorr. + + * scsi.h: Add manufactor field for keeping track of device + manufacturer. + + * scsi.c: More spelling corrections. + + * qlogic.h, qlogic.c, README.qlogic: New driver from Tom Zerucha. + + * in2000.c, in2000.h: New driver from Brad McLean/Bill Earnest. + + * fdomain.c: Spelling correction. + + * eata.c: Spelling correction. + +Fri Nov 18 15:22:44 1994 Eric Youngdale (eric@andante.aib.com) + + * Linux 1.1.65 released. + + * eata.h: Update version string to 1.08.00. + + * eata.c: Set sg_tablesize correctly for DPT PM2012 boards. + + * aha274x.seq: Spell checking. + + * README.st: Likewise. + + * README.aha274x: Likewise. + + * ChangeLog: Likewise. + +Tue Nov 15 15:35:08 1994 Eric Youngdale (eric@andante.aib.com) + + * Linux 1.1.64 released. + + * u14-34f.h: Update version number to 1.10.01. + + * u14-34f.c: Use Scsi_Host can_queue variable instead of one from template. + + * eata.[c,h]: New driver for DPT boards from Dario Ballabio. + + * buslogic.c: Use can_queue field. + +Wed Nov 30 12:09:09 1994 Eric Youngdale (eric@andante.aib.com) + + * Linux 1.1.63 released. + + * sd.c: Give I/O error if we attempt 512 byte I/O to a disk with + 1024 byte sectors. + + * scsicam.c: Make sure we do read from whole disk (mask off + partition). + + * scsi.c: Use can_queue in Scsi_Host structure. + Fix panic message about invalid host. + + * hosts.c: Initialize can_queue from template. + + * hosts.h: Add can_queue to Scsi_Host structure. + + * aha1740.c: Print out warning about NULL ecbptr. + +Fri Nov 4 12:40:30 1994 Eric Youngdale (eric@andante.aib.com) + + * Linux 1.1.62 released. + + * fdomain.c: Update to version 5.20. (From Rik Faith). Support + BIOS version 3.5. + + * st.h: Add ST_EOD symbol. + + * st.c: Patches from Kai Makisara - support additional densities, + add support for MTFSS, MTBSS, MTWSM commands. + + * README.st: Update to document new commands. + + * scsi.c: Add Mediavision CDR-H93MV to blacklist. + +Sat Oct 29 20:57:36 1994 Eric Youngdale (eric@andante.aib.com) + + * Linux 1.1.60 released. + + * u14-34f.[c,h]: New driver from Dario Ballabio. + + * aic7770.c, aha274x_seq.h, aha274x.seq, aha274x.h, aha274x.c, + README.aha274x: New files, new driver from John Aycock. + + +Tue Oct 11 08:47:39 1994 Eric Youngdale (eric@andante) + + * Linux 1.1.54 released. + + * Add third PCI chip id. [Drew] + + * buslogic.c: Set BUSLOGIC_CMDLUN back to 1 [Eric]. + + * ultrastor.c: Fix asm directives for new GCC. + + * sr.c, sd.c: Use new end_scsi_request function. + + * scsi.h(end_scsi_request): Return pointer to block if still + active, else return NULL if inactive. Fixes race condition. + +Sun Oct 9 20:23:14 1994 Eric Youngdale (eric@andante) + + * Linux 1.1.53 released. + + * scsi.c: Do not allocate dma bounce buffers if we have exactly + 16Mb. + +Fri Sep 9 05:35:30 1994 Eric Youngdale (eric@andante) + + * Linux 1.1.51 released. + + * aha152x.c: Add support for disabling the parity check. Update + to version 1.4. [Juergen]. + + * seagate.c: Tweak debugging message. + +Wed Aug 31 10:15:55 1994 Eric Youngdale (eric@andante) + + * Linux 1.1.50 released. + + * aha152x.c: Add eb800 for Vtech Platinum SMP boards. [Juergen]. + + * scsi.c: Add Quantum PD1225S to blacklist. + +Fri Aug 26 09:38:45 1994 Eric Youngdale (eric@andante) + + * Linux 1.1.49 released. + + * sd.c: Fix bug when we were deleting the wrong entry if we + get an unsupported sector size device. + + * sr.c: Another spelling patch. + +Thu Aug 25 09:15:27 1994 Eric Youngdale (eric@andante) + + * Linux 1.1.48 released. + + * Throughout: Use new semantics for request_dma, as appropriate. + + * sr.c: Print correct device number. + +Sun Aug 21 17:49:23 1994 Eric Youngdale (eric@andante) + + * Linux 1.1.47 released. + + * NCR5380.c: Add support for LIMIT_TRANSFERSIZE. + + * constants.h: Add prototype for print_Scsi_Cmnd. + + * pas16.c: Some more minor tweaks. Test for Mediavision board. + Allow for disks > 1Gb. [Drew??] + + * sr.c: Set SCpnt->transfersize. + +Tue Aug 16 17:29:35 1994 Eric Youngdale (eric@andante) + + * Linux 1.1.46 released. + + * Throughout: More spelling fixups. + + * buslogic.c: Add a few more fixups from Dave. Disk translation + mainly. + + * pas16.c: Add a few patches (Drew?). + + +Thu Aug 11 20:45:15 1994 Eric Youngdale (eric@andante) + + * Linux 1.1.44 released. + + * hosts.c: Add type casts for scsi_init_malloc. + + * scsicam.c: Add type cast. + +Wed Aug 10 19:23:01 1994 Eric Youngdale (eric@andante) + + * Linux 1.1.43 released. + + * Throughout: Spelling cleanups. [??] + + * aha152x.c, NCR53*.c, fdomain.c, g_NCR5380.c, pas16.c, seagate.c, + t128.c: Use request_irq, not irqaction. [??] + + * aha1542.c: Move test for shost before we start to use shost. + + * aha1542.c, aha1740.c, ultrastor.c, wd7000.c: Use new + calling sequence for request_irq. + + * buslogic.c: Update from Dave Gentzel. + +Tue Aug 9 09:32:59 1994 Eric Youngdale (eric@andante) + + * Linux 1.1.42 released. + + * NCR5380.c: Change NCR5380_print_status to static. + + * seagate.c: A few more bugfixes. Only Drew knows what they are + for. + + * ultrastor.c: Tweak some __asm__ directives so that it works + with newer compilers. [??] + +Sat Aug 6 21:29:36 1994 Eric Youngdale (eric@andante) + + * Linux 1.1.40 released. + + * NCR5380.c: Return SCSI_RESET_WAKEUP from reset function. + + * aha1542.c: Reset mailbox status after a bus device reset. + + * constants.c: Fix typo (;;). + + * g_NCR5380.c: + * pas16.c: Correct usage of NCR5380_init. + + * scsi.c: Remove redundant (and unused variables). + + * sd.c: Use memset to clear all of rscsi_disks before we use it. + + * sg.c: Ditto, except for scsi_generics. + + * sr.c: Ditto, except for scsi_CDs. + + * st.c: Initialize STp->device. + + * seagate.c: Fix bug. [Drew] + +Thu Aug 4 08:47:27 1994 Eric Youngdale (eric@andante) + + * Linux 1.1.39 released. + + * Makefile: Fix typo in NCR53C7xx. + + * st.c: Print correct number for device. + +Tue Aug 2 11:29:14 1994 Eric Youngdale (eric@esp22) + + * Linux 1.1.38 released. + + Lots of changes in 1.1.38. All from Drew unless otherwise noted. + + * 53c7,8xx.c: New file from Drew. PCI driver. + + * 53c7,8xx.h: Likewise. + + * 53c7,8xx.scr: Likewise. + + * 53c8xx_d.h, 53c8xx_u.h, script_asm.pl: Likewise. + + * scsicam.c: New file from Drew. Read block 0 on the disk and + read the partition table. Attempt to deduce the geometry from + the partition table if possible. Only used by 53c[7,8]xx right + now, but could be used by any device for which we have no way + of identifying the geometry. + + * sd.c: Use device letters instead of sd%d in a lot of messages. + + * seagate.c: Fix bug that resulted in lockups with some devices. + + * sr.c (sr_open): Return -EROFS, not -EACCES if we attempt to open + device for write. + + * hosts.c, Makefile: Update for new driver. + + * NCR5380.c, NCR5380.h, g_NCR5380.h: Update from Drew to support + 53C400 chip. + + * constants.c: Define CONST_CMND and CONST_MSG. Other minor + cleanups along the way. Improve handling of CONST_MSG. + + * fdomain.c, fdomain.h: New version from Rik Faith. Update to + 5.18. Should now support TMC-3260 PCI card with 18C30 chip. + + * pas16.c: Update with new irq initialization. + + * t128.c: Update with minor cleanups. + + * scsi.c (scsi_pid): New variable - gives each command a unique + id. Add Quantum LPS5235S to blacklist. Change in_scan to + in_scan_scsis and make global. + + * scsi.h: Add some defines for extended message handling, + INITIATE/RELEASE_RECOVERY. Add a few new fields to support sync + transfers. + + * scsi_ioctl.h: Add ioctl to request synchronous transfers. + + +Tue Jul 26 21:36:58 1994 Eric Youngdale (eric@esp22) + + * Linux 1.1.37 released. + + * aha1542.c: Always call aha1542_mbenable, use new udelay + mechanism so we do not wait a long time if the board does not + implement this command. + + * g_NCR5380.c: Remove #include and #if + defined(CONFIG_SCSI_*). + + * seagate.c: Likewise. + + Next round of changes to support loadable modules. Getting closer + now, still not possible to do anything remotely usable. + + hosts.c: Create a linked list of detected high level devices. + (scsi_register_device): New function to insert into this list. + (scsi_init): Call scsi_register_device for each of the known high + level drivers. + + hosts.h: Add prototype for linked list header. Add structure + definition for device template structure which defines the linked + list. + + scsi.c: (scan_scsis): Use linked list instead of knowledge about + existing high level device drivers. + (scsi_dev_init): Use init functions for drivers on linked list + instead of explicit list to initialize and attach devices to high + level drivers. + + scsi.h: Add new field "attached" to scsi_device - count of number + of high level devices attached. + + sd.c, sr.c, sg.c, st.c: Adjust init/attach functions to use new + scheme. + +Sat Jul 23 13:03:17 1994 Eric Youngdale (eric@esp22) + + * Linux 1.1.35 released. + + * ultrastor.c: Change constraint on asm() operand so that it works + with gcc 2.6.0. + +Thu Jul 21 10:37:39 1994 Eric Youngdale (eric@esp22) + + * Linux 1.1.33 released. + + * sr.c(sr_open): Do not allow opens with write access. + +Mon Jul 18 09:51:22 1994 1994 Eric Youngdale (eric@esp22) + + * Linux 1.1.31 released. + + * sd.c: Increase SD_TIMEOUT from 300 to 600. + + * sr.c: Remove stray task_struct* variable that was no longer + used. + + * sr_ioctl.c: Fix typo in up() call. + +Sun Jul 17 16:25:29 1994 Eric Youngdale (eric@esp22) + + * Linux 1.1.30 released. + + * scsi.c (scan_scsis): Fix detection of some Toshiba CDROM drives + that report themselves as disk drives. + + * (Throughout): Use request.sem instead of request.waiting. + Should fix swap problem with fdomain. + +Thu Jul 14 10:51:42 1994 Eric Youngdale (eric@esp22) + + * Linux 1.1.29 released. + + * scsi.c (scan_scsis): Add new devices to end of linked list, not + to the beginning. + + * scsi.h (SCSI_SLEEP): Remove brain dead hack to try to save + the task state before sleeping. + +Sat Jul 9 15:01:03 1994 Eric Youngdale (eric@esp22) + + More changes to eventually support loadable modules. Mainly + we want to use linked lists instead of arrays because it is easier + to dynamically add and remove things this way. + + Quite a bit more work is needed before loadable modules are + possible (and usable) with scsi, but this is most of the grunge + work. + + * Linux 1.1.28 released. + + * scsi.c, scsi.h (allocate_device, request_queueable): Change + argument from index into scsi_devices to a pointer to the + Scsi_Device struct. + + * Throughout: Change all calls to allocate_device, + request_queueable to use new calling sequence. + + * Throughout: Use SCpnt->device instead of + scsi_devices[SCpnt->index]. Ugh - the pointer was there all along + - much cleaner this way. + + * scsi.c (scsi_init_malloc, scsi_free_malloc): New functions - + allow us to pretend that we have a working malloc when we + initialize. Use this instead of passing memory_start, memory_end + around all over the place. + + * scsi.h, st.c, sr.c, sd.c, sg.c: Change *_init1 functions to use + scsi_init_malloc, remove all arguments, no return value. + + * scsi.h: Remove index field from Scsi_Device and Scsi_Cmnd + structs. + + * scsi.c (scsi_dev_init): Set up for scsi_init_malloc. + (scan_scsis): Get SDpnt from scsi_init_malloc, and refresh + when we discover a device. Free pointer before returning. + Change scsi_devices into a linked list. + + * scsi.c (scan_scsis): Change to only scan one host. + (scsi_dev_init): Loop over all detected hosts, and scan them. + + * hosts.c (scsi_init_free): Change so that number of extra bytes + is stored in struct, and we do not have to pass it each time. + + * hosts.h: Change Scsi_Host_Template struct to include "next" and + "release" functions. Initialize to NULL in all low level + adapters. + + * hosts.c: Rename scsi_hosts to builtin_scsi_hosts, create linked + list scsi_hosts, linked together with the new "next" field. + +Wed Jul 6 05:45:02 1994 Eric Youngdale (eric@esp22) + + * Linux 1.1.25 released. + + * aha152x.c: Changes from Juergen - cleanups and updates. + + * sd.c, sr.c: Use new check_media_change and revalidate + file_operations fields. + + * st.c, st.h: Add changes from Kai Makisara, dated Jun 22. + + * hosts.h: Change SG_ALL back to 0xff. Apparently soft error + in /dev/brain resulted in having this bumped up. + Change first parameter in bios_param function to be Disk * instead + of index into rscsi_disks. + + * sd_ioctl.c: Pass pointer to rscsi_disks element instead of index + to array. + + * sd.h: Add struct name "scsi_disk" to typedef for Scsi_Disk. + + * scsi.c: Remove redundant Maxtor XT8760S from blacklist. + In scsi_reset, add printk when DEBUG defined. + + * All low level drivers: Modify definitions of bios_param in + appropriate way. + +Thu Jun 16 10:31:59 1994 Eric Youngdale (eric@esp22) + + * Linux 1.1.20 released. + + * scsi_ioctl.c: Only pass down the actual number of characters + required to scsi_do_cmd, not the one rounded up to a even number + of sectors. + + * ultrastor.c: Changes from Caleb Epstein for 24f cards. Support + larger SG lists. + + * ultrastor.c: Changes from me - use scsi_register to register + host. Add some consistency checking, + +Wed Jun 1 21:12:13 1994 Eric Youngdale (eric@esp22) + + * Linux 1.1.19 released. + + * scsi.h: Add new return code for reset() function: + SCSI_RESET_PUNT. + + * scsi.c: Make SCSI_RESET_PUNT the same as SCSI_RESET_WAKEUP for + now. + + * aha1542.c: If the command responsible for the reset is not + pending, return SCSI_RESET_PUNT. + + * aha1740.c, buslogic.c, wd7000.c, ultrastor.c: Return + SCSI_RESET_PUNT instead of SCSI_RESET_SNOOZE. + +Tue May 31 19:36:01 1994 Eric Youngdale (eric@esp22) + + * buslogic.c: Do not print out message about "must be Adaptec" + if we have detected a buslogic card. Print out a warning message + if we are configuring for >16Mb, since the 445S at board level + D or earlier does not work right. The "D" level board can be made + to work by flipping an undocumented switch, but this is too subtle. + + Changes based upon patches in Yggdrasil distribution. + + * sg.c, sg.h: Return sense data to user. + + * aha1542.c, aha1740.c, buslogic.c: Do not panic if + sense buffer is wrong size. + + * hosts.c: Test for ultrastor card before any of the others. + + * scsi.c: Allow boot-time option for max_scsi_luns=? so that + buggy firmware has an easy work-around. + +Sun May 15 20:24:34 1994 Eric Youngdale (eric@esp22) + + * Linux 1.1.15 released. + + Post-codefreeze thaw... + + * buslogic.[c,h]: New driver from David Gentzel. + + * hosts.h: Add use_clustering field to explicitly say whether + clustering should be used for devices attached to this host + adapter. The buslogic board apparently supports large SG lists, + but it is apparently faster if sd.c condenses this into a smaller + list. + + * sd.c: Use this field instead of heuristic. + + * All host adapter include files: Add appropriate initializer for + use_clustering field. + + * scsi.h: Add #defines for return codes for the abort and reset + functions. There are now a specific set of return codes to fully + specify all of the possible things that the low-level adapter + could do. + + * scsi.c: Act based upon return codes from abort/reset functions. + + * All host adapter abort/reset functions: Return new return code. + + * Add code in scsi.c to help debug timeouts. Use #define + DEBUG_TIMEOUT to enable this. + + * scsi.c: If the host->irq field is set, use + disable_irq/enable_irq before calling queuecommand if we + are not already in an interrupt. Reduce races, and we + can be sloppier about cli/sti in the interrupt routines now + (reduce interrupt latency). + + * constants.c: Fix some things to eliminate warnings. Add some + sense descriptions that were omitted before. + + * aha1542.c: Watch for SCRD from host adapter - if we see it, set + a flag. Currently we only print out the number of pending + commands that might need to be restarted. + + * aha1542.c (aha1542_abort): Look for lost interrupts, OGMB still + full, and attempt to recover. Otherwise give up. + + * aha1542.c (aha1542_reset): Try BUS DEVICE RESET, and then pass + DID_RESET back up to the upper level code for all commands running + on this target (even on different LUNs). + +Sat May 7 14:54:01 1994 + + * Linux 1.1.12 released. + + * st.c, st.h: New version from Kai. Supports boot time + specification of number of buffers. + + * wd7000.[c,h]: Updated driver from John Boyd. Now supports + more than one wd7000 board in machine at one time, among other things. + +Wed Apr 20 22:20:35 1994 + + * Linux 1.1.8 released. + + * sd.c: Add a few type casts where scsi_malloc is called. + +Wed Apr 13 12:53:29 1994 + + * Linux 1.1.4 released. + + * scsi.c: Clean up a few printks (use %p to print pointers). + +Wed Apr 13 11:33:02 1994 + + * Linux 1.1.3 released. + + * fdomain.c: Update to version 5.16 (Handle different FIFO sizes + better). + +Fri Apr 8 08:57:19 1994 + + * Linux 1.1.2 released. + + * Throughout: SCSI portion of cluster diffs added. + +Tue Apr 5 07:41:50 1994 + + * Linux 1.1 development tree initiated. + + * The linux 1.0 development tree is now effectively frozen except + for obvious bugfixes. + +****************************************************************** +****************************************************************** +****************************************************************** +****************************************************************** + +Sun Apr 17 00:17:39 1994 + + * Linux 1.0, patchlevel 9 released. + + * fdomain.c: Update to version 5.16 (Handle different FIFO sizes + better). + +Thu Apr 7 08:36:20 1994 + + * Linux 1.0, patchlevel8 released. + + * fdomain.c: Update to version 5.15 from 5.9. Handles 3.4 bios. + +Sun Apr 3 14:43:03 1994 + + * Linux 1.0, patchlevel6 released. + + * wd7000.c: Make stab at fixing race condition. + +Sat Mar 26 14:14:50 1994 + + * Linux 1.0, patchlevel5 released. + + * aha152x.c, Makefile: Fix a few bugs (too much data message). + Add a few more bios signatures. (Patches from Juergen). + + * aha1542.c: Fix race condition in aha1542_out. + +Mon Mar 21 16:36:20 1994 + + * Linux 1.0, patchlevel3 released. + + * sd.c, st.c, sr.c, sg.c: Return -ENXIO, not -ENODEV if we attempt + to open a non-existent device. + + * scsi.c: Add Chinon cdrom to blacklist. + + * sr_ioctl.c: Check return status of verify_area. + +Sat Mar 6 16:06:19 1994 + + * Linux 1.0 released (technically a pre-release). + + * scsi.c: Add IMS CDD521, Maxtor XT-8760S to blacklist. + +Tue Feb 15 10:58:20 1994 + + * pl15e released. + + * aha1542.c: For 1542C, allow dynamic device scan with >1Gb turned + off. + + * constants.c: Fix typo in definition of CONSTANTS. + + * pl15d released. + +Fri Feb 11 10:10:16 1994 + + * pl15c released. + + * scsi.c: Add Maxtor XT-3280 and Rodime RO3000S to blacklist. + + * scsi.c: Allow tagged queueing for scsi 3 devices as well. + Some really old devices report a version number of 0. Disallow + LUN != 0 for these. + +Thu Feb 10 09:48:57 1994 + + * pl15b released. + +Sun Feb 6 12:19:46 1994 + + * pl15a released. + +Fri Feb 4 09:02:17 1994 + + * scsi.c: Add Teac cdrom to blacklist. + +Thu Feb 3 14:16:43 1994 + + * pl15 released. + +Tue Feb 1 15:47:43 1994 + + * pl14w released. + + * wd7000.c (wd_bases): Fix typo in last change. + +Mon Jan 24 17:37:23 1994 + + * pl14u released. + + * aha1542.c: Support 1542CF/extended bios. Different from 1542C + + * wd7000.c: Allow bios at 0xd8000 as well. + + * ultrastor.c: Do not truncate cylinders to 1024. + + * fdomain.c: Update to version 5.9 (add new bios signature). + + * NCR5380.c: Update from Drew - should work a lot better now. + +Sat Jan 8 15:13:10 1994 + + * pl14o released. + + * sr_ioctl.c: Zero reserved field before trying to set audio volume. + +Wed Jan 5 13:21:10 1994 + + * pl14m released. + + * fdomain.c: Update to version 5.8. No functional difference??? + +Tue Jan 4 14:26:13 1994 + + * pl14l released. + + * ultrastor.c: Remove outl, inl functions (now provided elsewhere). + +Mon Jan 3 12:27:25 1994 + + * pl14k released. + + * aha152x.c: Remove insw and outsw functions. + + * fdomain.c: Ditto. + +Wed Dec 29 09:47:20 1993 + + * pl14i released. + + * scsi.c: Support RECOVERED_ERROR for tape drives. + + * st.c: Update of tape driver from Kai. + +Tue Dec 21 09:18:30 1993 + + * pl14g released. + + * aha1542.[c,h]: Support extended BIOS stuff. + + * scsi.c: Clean up messages about disks, so they are displayed as + sda, sdb, etc instead of sd0, sd1, etc. + + * sr.c: Force reread of capacity if disk was changed. + Clear buffer before asking for capacity/sectorsize (some drives + do not report this properly). Set needs_sector_size flag if + drive did not return sensible sector size. + +Mon Dec 13 12:13:47 1993 + + * aha152x.c: Update to version .101 from Juergen. + +Mon Nov 29 03:03:00 1993 + + * linux 0.99.14 released. + + * All scsi stuff moved from kernel/blk_drv/scsi to drivers/scsi. + + * Throughout: Grammatical corrections to various comments. + + * Makefile: fix so that we do not need to compile things we are + not going to use. + + * NCR5380.c, NCR5380.h, g_NCR5380.c, g_NCR5380.h, pas16.c, + pas16.h, t128.c, t128.h: New files from Drew. + + * aha152x.c, aha152x.h: New files from Juergen Fischer. + + * aha1542.c: Support for more than one 1542 in the machine + at the same time. Make functions static that do not need + visibility. + + * aha1740.c: Set NEEDS_JUMPSTART flag in reset function, so we + know to restart the command. Change prototype of aha1740_reset + to take a command pointer. + + * constants.c: Clean up a few things. + + * fdomain.c: Update to version 5.6. Move snarf_region. Allow + board to be set at different SCSI ids. Remove support for + reselection (did not work well). Set JUMPSTART flag in reset + code. + + * hosts.c: Support new low-level adapters. Allow for more than + one adapter of a given type. + + * hosts.h: Allow for more than one adapter of a given type. + + * scsi.c: Add scsi_device_types array, if NEEDS_JUMPSTART is set + after a low-level reset, start the command again. Sort blacklist, + and add Maxtor MXT-1240S, XT-4170S, NEC CDROM 84, Seagate ST157N. + + * scsi.h: Add constants for tagged queueing. + + * Throughout: Use constants from major.h instead of hardcoded + numbers for major numbers. + + * scsi_ioctl.c: Fix bug in buffer length in ioctl_command. Use + verify_area in GET_IDLUN ioctl. Add new ioctls for + TAGGED_QUEUE_ENABLE, DISABLE. Only allow IOCTL_SEND_COMMAND by + superuser. + + * sd.c: Only pay attention to UNIT_ATTENTION for removable disks. + Fix bug where sometimes portions of blocks would get lost + resulting in processes hanging. Add messages when we spin up a + disk, and fix a bug in the timing. Increase read-ahead for disks + that are on a scatter-gather capable host adapter. + + * seagate.c: Fix so that some parameters can be set from the lilo + prompt. Supply jumpstart flag if we are resetting and need the + command restarted. Fix so that we return 1 if we detect a card + so that multiple card detection works correctly. Add yet another + signature for FD cards (950). Add another signature for ST0x. + + * sg.c, sg.h: New files from Lawrence Foard for generic scsi + access. + + * sr.c: Add type casts for (void*) so that we can do pointer + arithmetic. Works with GCC without this, but it is not strictly + correct. Same bugfix as was in sd.c. Increase read-ahead a la + disk driver. + + * sr_ioctl.c: Use scsi_malloc buffer instead of buffer from stack + since we cannot guarantee that the stack is < 16Mb. + + ultrastor.c: Update to support 24f properly (JFC's driver). + + wd7000.c: Supply jumpstart flag for reset. Do not round up + number of cylinders in biosparam function. + +Sat Sep 4 20:49:56 1993 + + * 0.99pl13 released. + + * Throughout: Use check_region/snarf_region for all low-level + drivers. + + * aha1542.c: Do hard reset instead of soft (some ethercard probes + screw us up). + + * scsi.c: Add new flag ASKED_FOR_SENSE so that we can tell if we are + in a loop whereby the device returns null sense data. + + * sd.c: Add code to spin up a drive if it is not already spinning. + Do this one at a time to make it easier on power supplies. + + * sd_ioctl.c: Use sync_dev instead of fsync_dev in BLKFLSBUF ioctl. + + * seagate.c: Switch around DATA/CONTROL lines. + + * st.c: Change sense to unsigned. + +Thu Aug 5 11:59:18 1993 + + * 0.99pl12 released. + + * constants.c, constants.h: New files with ascii descriptions of + various conditions. + + * Makefile: Do not try to count the number of low-level drivers, + just generate the list of .o files. + + * aha1542.c: Replace 16 with sizeof(SCpnt->sense_buffer). Add tests + for addresses > 16Mb, panic if we find one. + + * aha1740.c: Ditto with sizeof(). + + * fdomain.c: Update to version 3.18. Add new signature, register IRQ + with irqaction. Use ID 7 for new board. Be more intelligent about + obtaining the h/s/c numbers for biosparam. + + * hosts.c: Do not depend upon Makefile generated count of the number + of low-level host adapters. + + * scsi.c: Use array for scsi_command_size instead of a function. Add + Texel cdrom and Maxtor XT-4380S to blacklist. Allow compile time + option for no-multi lun scan. Add semaphore for possible problems + with handshaking, assume device is faulty until we know it not to be + the case. Add DEBUG_INIT symbol to dump info as we scan for devices. + Zero sense buffer so we can tell if we need to request it. When + examining sense information, request sense if buffer is all zero. + If RESET, request sense information to see what to do next. + + * scsi_debug.c: Change some constants to use symbols like INT_MAX. + + * scsi_ioctl.c (kernel_scsi_ioctl): New function -for making ioctl + calls from kernel space. + + * sd.c: Increase timeout to 300. Use functions in constants.h to + display info. Use scsi_malloc buffer for READ_CAPACITY, since + we cannot guarantee that a stack based buffer is < 16Mb. + + * sd_ioctl.c: Add BLKFLSBUF ioctl. + + * seagate.c: Add new compile time options for ARBITRATE, + SLOW_HANDSHAKE, and SLOW_RATE. Update assembly loops for transferring + data. Use kernel_scsi_ioctl to request mode page with geometry. + + * sr.c: Use functions in constants.c to display messages. + + * st.c: Support for variable block size. + + * ultrastor.c: Do not use cache for tape drives. Set + unchecked_isa_dma flag, even though this may not be needed (gets set + later). + +Sat Jul 17 18:32:44 1993 + + * 0.99pl11 released. C++ compilable. + + * Throughout: Add type casts all over the place, and use "ip" instead + of "info" in the various biosparam functions. + + * Makefile: Compile seagate.c with C++ compiler. + + * aha1542.c: Always set ccb pointer as this gets trashed somehow on + some systems. Add a few type casts. Update biosparam function a little. + + * aha1740.c: Add a few type casts. + + * fdomain.c: Update to version 3.17 from 3.6. Now works with + TMC-18C50. + + * scsi.c: Minor changes here and there with datatypes. Save use_sg + when requesting sense information so that this can properly be + restored if we retry the command. Set aside dma buffers assuming each + block is 1 page, not 1Kb minix block. + + * scsi_ioctl.c: Add a few type casts. Other minor changes. + + * sd.c: Correctly free all scsi_malloc'd memory if we run out of + dma_pool. Store blocksize information for each partition. + + * seagate.c: Minor cleanups here and there. + + * sr.c: Set up blocksize array for all discs. Fix bug in freeing + buffers if we run out of dma pool. + +Thu Jun 2 17:58:11 1993 + + * 0.99pl10 released. + + * aha1542.c: Support for BT 445S (VL-bus board with no dma channel). + + * fdomain.c: Upgrade to version 3.6. Preliminary support for TNC-18C50. + + * scsi.c: First attempt to fix problem with old_use_sg. Change + NOT_READY to a SUGGEST_ABORT. Fix timeout race where time might + get decremented past zero. + + * sd.c: Add block_fsync function to dispatch table. + + * sr.c: Increase timeout to 500 from 250. Add entry for sync in + dispatch table (supply NULL). If we do not have a sectorsize, + try to get it in the sd_open function. Add new function just to + obtain sectorsize. + + * sr.h: Add needs_sector_size semaphore. + + * st.c: Add NULL for fsync in dispatch table. + + * wd7000.c: Allow another condition for power on that are normal + and do not require a panic. + +Thu Apr 22 23:10:11 1993 + + * 0.99pl9 released. + + * aha1542.c: Use (void) instead of () in setup_mailboxes. + + * scsi.c: Initialize transfersize and underflow fields in SCmd to 0. + Do not panic for unsupported message bytes. + + * scsi.h: Allocate 12 bytes instead of 10 for commands. Add + transfersize and underflow fields. + + * scsi_ioctl.c: Further bugfix to ioctl_probe. + + * sd.c: Use long instead of int for last parameter in sd_ioctl. + Initialize transfersize and underflow fields. + + * sd_ioctl.c: Ditto for sd_ioctl(,,,,); + + * seagate.c: New version from Drew. Includes new signatures for FD + cards. Support for 0ws jumper. Correctly initialize + scsi_hosts[hostnum].this_id. Improved handing of + disconnect/reconnect, and support command linking. Use + transfersize and underflow fields. Support scatter-gather. + + * sr.c, sr_ioctl.c: Use long instead of int for last parameter in sr_ioctl. + Use buffer and buflength in do_ioctl. Patches from Chris Newbold for + scsi-2 audio commands. + + * ultrastor.c: Comment out in_byte (compiler warning). + + * wd7000.c: Change () to (void) in wd7000_enable_dma. + +Wed Mar 31 16:36:25 1993 + + * 0.99pl8 released. + + * aha1542.c: Handle mailboxes better for 1542C. + Do not truncate number of cylinders at 1024 for biosparam call. + + * aha1740.c: Fix a few minor bugs for multiple devices. + Same as above for biosparam. + + * scsi.c: Add lockable semaphore for removable devices that can have + media removal prevented. Add another signature for flopticals. + (allocate_device): Fix race condition. Allow more space in dma pool + for blocksizes of up to 4Kb. + + * scsi.h: Define COMMAND_SIZE. Define a SCSI specific version of + INIT_REQUEST that can run with interrupts off. + + * scsi_ioctl.c: Make ioctl_probe function more idiot-proof. If + a removable device says ILLEGAL REQUEST to a door-locking command, + clear lockable flag. Add SCSI_IOCTL_GET_IDLUN ioctl. Do not attempt + to lock door for devices that do not have lockable semaphore set. + + * sd.c: Fix race condition for multiple disks. Use INIT_SCSI_REQUEST + instead of INIT_REQUEST. Allow sector sizes of 1024 and 256. For + removable disks that are not ready, mark them as having a media change + (some drives do not report this later). + + * seagate.c: Use volatile keyword for memory-mapped register pointers. + + * sr.c: Fix race condition, a la sd.c. Increase the number of retries + to 1. Use INIT_SCSI_REQUEST. Allow 512 byte sector sizes. Do a + read_capacity when we init the device so we know the size and + sectorsize. + + * st.c: If ioctl not found in st.c, try scsi_ioctl for others. + + * ultrastor.c: Do not truncate number of cylinders at 1024 for + biosparam call. + + * wd7000.c: Ditto. + Throughout: Use COMMAND_SIZE macro to determine length of scsi + command. + + + +Sat Mar 13 17:31:29 1993 + + * 0.99pl7 released. + + Throughout: Improve punctuation in some messages, and use new + verify_area syntax. + + * aha1542.c: Handle unexpected interrupts better. + + * scsi.c: Ditto. Handle reset conditions a bit better, asking for + sense information and retrying if required. + + * scsi_ioctl.c: Allow for 12 byte scsi commands. + + * ultrastor.c: Update to use scatter-gather. + +Sat Feb 20 17:57:15 1993 + + * 0.99pl6 released. + + * fdomain.c: Update to version 3.5. Handle spurious interrupts + better. + + * sd.c: Use register_blkdev function. + + * sr.c: Ditto. + + * st.c: Use register_chrdev function. + + * wd7000.c: Undo previous change. + +Sat Feb 6 11:20:43 1993 + + * 0.99pl5 released. + + * scsi.c: Fix bug in testing for UNIT_ATTENTION. + + * wd7000.c: Check at more addresses for bios. Fix bug in biosparam + (heads & sectors turned around). + +Wed Jan 20 18:13:59 1993 + + * 0.99pl4 released. + + * scsi.c: Ignore leading spaces when looking for blacklisted devices. + + * seagate.c: Add a few new signatures for FD cards. Another patch + with SCint to fix race condition. Use recursion_depth to keep track + of how many times we have been recursively called, and do not start + another command unless we are on the outer level. Fixes bug + with Syquest cartridge drives (used to crash kernel), because + they do not disconnect with large data transfers. + +Tue Jan 12 14:33:36 1993 + + * 0.99pl3 released. + + * fdomain.c: Update to version 3.3 (a few new signatures). + + * scsi.c: Add CDU-541, Denon DRD-25X to blacklist. + (allocate_request, request_queueable): Init request.waiting to NULL if + non-buffer type of request. + + * seagate.c: Allow controller to be overridden with CONTROLLER symbol. + Set SCint=NULL when we are done, to remove race condition. + + * st.c: Changes from Kai. + +Wed Dec 30 20:03:47 1992 + + * 0.99pl2 released. + + * scsi.c: Blacklist back in. Remove Newbury drive as other bugfix + eliminates need for it here. + + * sd.c: Return ENODEV instead of EACCES if no such device available. + (sd_init) Init blkdev_fops earlier so that sd_open is available sooner. + + * sr.c: Same as above for sd.c. + + * st.c: Return ENODEV instead of ENXIO if no device. Init chrdev_fops + sooner, so that it is always there even if no tapes. + + * seagate.c (controller_type): New variable to keep track of ST0x or + FD. Modify signatures list to indicate controller type, and init + controller_type once we find a match. + + * wd7000.c (wd7000_set_sync): Remove redundant function. + +Sun Dec 20 16:26:24 1992 + + * 0.99pl1 released. + + * scsi_ioctl.c: Bugfix - check dev->index, not dev->id against + NR_SCSI_DEVICES. + + * sr_ioctl.c: Verify that device exists before allowing an ioctl. + + * st.c: Patches from Kai - change timeout values, improve end of tape + handling. + +Sun Dec 13 18:15:23 1992 + + * 0.99 kernel released. Baseline for this ChangeLog. diff -Nru a/Documentation/scsi/scsi_mid_low_api.txt b/Documentation/scsi/scsi_mid_low_api.txt --- a/Documentation/scsi/scsi_mid_low_api.txt 2005-01-05 17:43:38 -08:00 +++ b/Documentation/scsi/scsi_mid_low_api.txt 2005-01-05 17:43:38 -08:00 @@ -363,8 +363,8 @@ Mid level supplied functions ============================ These functions are supplied by the SCSI mid level for use by LLDs. -The names (i.e. entry points) of these functions are exported (mainly in -scsi_syms.c) so an LLD that is a module can access them. The kernel will +The names (i.e. entry points) of these functions are exported +so an LLD that is a module can access them. The kernel will arrange for the SCSI mid level to be loaded and initialized before any LLD is initialized. The functions below are listed alphabetically and their names all start with "scsi_". diff -Nru a/Documentation/x86_64/mm.txt b/Documentation/x86_64/mm.txt --- a/Documentation/x86_64/mm.txt 2005-01-05 17:43:39 -08:00 +++ b/Documentation/x86_64/mm.txt 2005-01-05 17:43:39 -08:00 @@ -1,148 +1,24 @@ -The paging design used on the x86-64 linux kernel port in 2.4.x provides: -o per process virtual address space limit of 512 Gigabytes -o top of userspace stack located at address 0x0000007fffffffff -o PAGE_OFFSET = 0xffff800000000000 -o start of the kernel = 0xffffffff800000000 -o global RAM per system 2^64-PAGE_OFFSET-sizeof(kernel) = 128 Terabytes - 2 Gigabytes -o no need of any common code change -o no need to use highmem to handle the 128 Terabytes of RAM - -Description: - - Userspace is able to modify and it sees only the 3rd/2nd/1st level - pagetables (pgd_offset() implicitly walks the 1st slot of the 4th - level pagetable and it returns an entry into the 3rd level pagetable). - This is where the per-process 512 Gigabytes limit cames from. - - The common code pgd is the PDPE, the pmd is the PDE, the - pte is the PTE. The PML4E remains invisible to the common - code. - - The kernel uses all the first 47 bits of the negative half - of the virtual address space to build the direct mapping using - 2 Mbytes page size. The kernel virtual addresses have bit number - 47 always set to 1 (and in turn also bits 48-63 are set to 1 too, - due the sign extension). This is where the 128 Terabytes - 2 Gigabytes global - limit of RAM cames from. - - Since the per-process limit is 512 Gigabytes (due to kernel common - code 3 level pagetable limitation), the higher virtual address mapped - into userspace is 0x7fffffffff and it makes sense to use it - as the top of the userspace stack to allow the stack to grow as - much as possible. - - Setting the PAGE_OFFSET to 2^39 (after the last userspace - virtual address) wouldn't make much difference compared to - setting PAGE_OFFSET to 0xffff800000000000 because we have an - hole into the virtual address space. The last byte mapped by the - 255th slot in the 4th level pagetable is at virtual address - 0x00007fffffffffff and the first byte mapped by the 256th slot in the - 4th level pagetable is at address 0xffff800000000000. Due to this - hole we can't trivially build a direct mapping across all the - 512 slots of the 4th level pagetable, so we simply use only the - second (negative) half of the 4th level pagetable for that purpose - (that provides us 128 Terabytes of contigous virtual addresses). - Strictly speaking we could build a direct mapping also across the hole - using some DISCONTIGMEM trick, but we don't need such a large - direct mapping right now. - -Future: - - During 2.5.x we can break the 512 Gigabytes per-process limit - possibly by removing from the common code any knowledge about the - architectural dependent physical layout of the virtual to physical - mapping. - - Once the 512 Gigabytes limit will be removed the kernel stack will - be moved (most probably to virtual address 0x00007fffffffffff). - Nothing will break in userspace due that move, as nothing breaks - in IA32 compiling the kernel with CONFIG_2G. - -Linus agreed on not breaking common code and to live with the 512 Gigabytes -per-process limitation for the 2.4.x timeframe and he has given me and Andi -some very useful hints... (thanks! :) - -Thanks also to H. Peter Anvin for his interesting and useful suggestions on -the x86-64-discuss lists! - -Other memory management related issues follows: - -PAGE_SIZE: - - If somebody is wondering why these days we still have a so small - 4k pagesize (16 or 32 kbytes would be much better for performance - of course), the PAGE_SIZE have to remain 4k for 32bit apps to - provide 100% backwards compatible IA32 API (we can't allow silent - fs corruption or as best a loss of coherency with the page cache - by allocating MAP_SHARED areas in MAP_ANONYMOUS memory with a - do_mmap_fake). I think it could be possible to have a dynamic page - size between 32bit and 64bit apps but it would need extremely - intrusive changes in the common code as first for page cache and - we sure don't want to depend on them right now even if the - hardware would support that. - -PAGETABLE SIZE: - - In turn we can't afford to have pagetables larger than 4k because - we could not be able to allocate them due physical memory - fragmentation, and failing to allocate the kernel stack is a minor - issue compared to failing the allocation of a pagetable. If we - fail the allocation of a pagetable the only thing we can do is to - sched_yield polling the freelist (deadlock prone) or to segfault - the task (not even the sighandler would be sure to run). - -KERNEL STACK: - - 1st stage: - - The kernel stack will be at first allocated with an order 2 allocation - (16k) (the utilization of the stack for a 64bit platform really - isn't exactly the double of a 32bit platform because the local - variables may not be all 64bit wide, but not much less). This will - make things even worse than they are right now on IA32 with - respect of failing fork/clone due memory fragmentation. - - 2nd stage: - - We'll benchmark if reserving one register as task_struct - pointer will improve performance of the kernel (instead of - recalculating the task_struct pointer starting from the stack - pointer each time). My guess is that recalculating will be faster - but it worth a try. - - If reserving one register for the task_struct pointer - will be faster we can as well split task_struct and kernel - stack. task_struct can be a slab allocation or a - PAGE_SIZEd allocation, and the kernel stack can then be - allocated in a order 1 allocation. Really this is risky, - since 8k on a 64bit platform is going to be less than 7k - on a 32bit platform but we could try it out. This would - reduce the fragmentation problem of an order of magnitude - making it equal to the current IA32. - - We must also consider the x86-64 seems to provide in hardware a - per-irq stack that could allow us to remove the irq handler - footprint from the regular per-process-stack, so it could allow - us to live with a smaller kernel stack compared to the other - linux architectures. - - 3rd stage: - - Before going into production if we still have the order 2 - allocation we can add a sysctl that allows the kernel stack to be - allocated with vmalloc during memory fragmentation. This have to - remain turned off during benchmarks :) but it should be ok in real - life. - -Order of PAGE_CACHE_SIZE and other allocations: - - On the long run we can increase the PAGE_CACHE_SIZE to be - an order 2 allocations and also the slab/buffercache etc.ec.. - could be all done with order 2 allocations. To make the above - to work we should change lots of common code thus it can be done - only once the basic port will be in a production state. Having - a working PAGE_CACHE_SIZE would be a benefit also for - IA32 and other architectures of course. + -Andrea SuSE +Virtual memory map with 4 level page tables: + +0000000000000000 - 00007fffffffffff (=47bits) user space, different per mm +hole caused by [48:63] sign extension +ffff800000000000 - ffff80ffffffffff (=40bits) guard hole +ffff810000000000 - ffffc0ffffffffff (=46bits) direct mapping of phys. memory +ffffc10000000000 - ffffc1ffffffffff (=40bits) hole +ffffc20000000000 - ffffe1ffffffffff (=45bits) vmalloc/ioremap space +... unused hole ... +ffffffff80000000 - ffffffff82800000 (=40MB) kernel text mapping, from phys 0 +... unused hole ... +ffffffff88000000 - fffffffffff00000 (=1919MB) module mapping space + +vmalloc space is lazily synchronized into the different PML4 pages of +the processes using the page fault handler, with init_level4_pgt as +reference. + +Current X86-64 implementations only support 40 bit of address space, +but we support upto 46bits. This expands into MBZ space in the page tables. + +-Andi Kleen, Jul 2004 diff -Nru a/MAINTAINERS b/MAINTAINERS --- a/MAINTAINERS 2005-01-05 17:43:37 -08:00 +++ b/MAINTAINERS 2005-01-05 17:43:37 -08:00 @@ -313,6 +313,20 @@ W: http://www.arm.linux.org.uk/ S: Maintained +ARM/S3C2410 ARM ARCHITECTURE +P: Ben Dooks +M: ben-s3c2410@fluff.org +L: linux-arm-kernel@lists.arm.linux.org.uk +W: http://www.fluff.org/ben/linux/ +S: Maintained + +ARM/S3C2440 ARM ARCHITECTURE +P: Ben Dooks +M: ben-s3c2440@fluff.org +L: linux-arm-kernel@lists.arm.linux.org.uk +W: http://www.fluff.org/ben/linux/ +S: Maintained + ARPD SUPPORT P: Jonathan Layes L: linux-net@vger.kernel.org @@ -862,6 +876,11 @@ W: ftp://ftp.openlinux.org/pub/people/hch/vxfs S: Maintained +FUJITSU FR-V PORT +P: David Howells +M: dhowells@redhat.com +S: Maintained + FTAPE/QIC-117 L: linux-tape@vger.kernel.org W: http://sourceforge.net/projects/ftape @@ -1081,6 +1100,17 @@ L: linux-fbdev-devel@lists.sourceforge.net S: Maintained +INFINIBAND SUBSYSTEM +P: Roland Dreier +M: roland@topspin.com +P: Sean Hefty +M: mshefty@ichips.intel.com +P: Hal Rosenstock +M: halr@voltaire.com +L: openib-general@openib.org +W: http://www.openib.org/ +S: Supported + INPUT (KEYBOARD, MOUSE, JOYSTICK) DRIVERS P: Vojtech Pavlik M: vojtech@suse.cz @@ -1439,7 +1469,7 @@ MEMORY TECHNOLOGY DEVICES P: David Woodhouse -M: dwmw2@redhat.com +M: dwmw2@infradead.org W: http://www.linux-mtd.infradead.org/ L: linux-mtd@lists.infradead.org S: Maintained @@ -1568,7 +1598,6 @@ M: wensong@linux-vs.org P: Julian Anastasov M: ja@ssi.bg -L: lvs-users@linuxvirtualserver.org S: Maintained NFS CLIENT diff -Nru a/Makefile b/Makefile --- a/Makefile 2005-01-05 17:43:38 -08:00 +++ b/Makefile 2005-01-05 17:43:38 -08:00 @@ -149,14 +149,13 @@ # careful not to include files twice if building in the source # directory. LOCALVERSION from the command line override all of this -ifeq ($(objtree),$(srctree)) -localversion-files := $(wildcard $(srctree)/localversion*) -else -localversion-files := $(wildcard $(objtree)/localversion* $(srctree)/localversion*) -endif +localver := $(objtree)/localversion* $(srctree)/localversion* +localver := $(sort $(wildcard $(localver))) +# skip backup files (containing '~') +localver := $(foreach f, $(localver), $(if $(findstring ~, $(f)),,$(f))) LOCALVERSION = $(subst $(space),, \ - $(shell cat /dev/null $(localversion-files:%~=)) \ + $(shell cat /dev/null $(localver)) \ $(patsubst "%",%,$(CONFIG_LOCALVERSION))) KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)$(LOCALVERSION) @@ -291,7 +290,7 @@ $(call cc-option, $(1),$(2)) # cc-option-yn -# Usage: flag := $(call gcc-option-yn, -march=winchip-c6) +# Usage: flag := $(call cc-option-yn, -march=winchip-c6) cc-option-yn = $(shell if $(CC) $(CFLAGS) $(1) -S -o /dev/null -xc /dev/null \ > /dev/null 2>&1; then echo "y"; else echo "n"; fi;) @@ -331,7 +330,10 @@ KALLSYMS = scripts/kallsyms PERL = perl CHECK = sparse + +NOSTDINC_FLAGS := -nostdinc -isystem $(shell $(CC) -print-file-name=include) CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ +CHECKFLAGS += $(NOSTDINC_FLAGS) MODFLAGS = -DMODULE CFLAGS_MODULE = $(MODFLAGS) AFLAGS_MODULE = $(MODFLAGS) @@ -339,7 +341,6 @@ CFLAGS_KERNEL = AFLAGS_KERNEL = -NOSTDINC_FLAGS = -nostdinc -iwithprefix include # Use LINUXINCLUDE when you must reference the include/ directory. # Needed to be compatible with the O= option @@ -349,7 +350,8 @@ CPPFLAGS := -D__KERNEL__ $(LINUXINCLUDE) CFLAGS := -Wall -Wstrict-prototypes -Wno-trigraphs \ - -fno-strict-aliasing -fno-common + -fno-strict-aliasing -fno-common \ + -ffreestanding AFLAGS := -D__ASSEMBLY__ export VERSION PATCHLEVEL SUBLEVEL EXTRAVERSION LOCALVERSION KERNELRELEASE \ @@ -389,7 +391,7 @@ # using a seperate output directory. This allows convinient use # of make in output directory outputmakefile: - $(Q)if /usr/bin/env test ! $(srctree) -ef $(objtree); then \ + $(Q)if test ! $(srctree) -ef $(objtree); then \ $(CONFIG_SHELL) $(srctree)/scripts/mkmakefile \ $(srctree) $(objtree) $(VERSION) $(PATCHLEVEL) \ > $(objtree)/Makefile; \ @@ -1209,6 +1211,9 @@ checkstack: $(OBJDUMP) -d vmlinux $$(find . -name '*.ko') | \ $(PERL) $(src)/scripts/checkstack.pl $(ARCH) + +kernelrelease: + @echo $(KERNELRELEASE) # FIXME Should go into a make.lib or something # =========================================================================== diff -Nru a/arch/alpha/Kconfig b/arch/alpha/Kconfig --- a/arch/alpha/Kconfig 2005-01-05 17:43:40 -08:00 +++ b/arch/alpha/Kconfig 2005-01-05 17:43:40 -08:00 @@ -28,6 +28,10 @@ bool default y +config GENERIC_CALIBRATE_DELAY + bool + default y + config GENERIC_ISA_DMA bool default y diff -Nru a/arch/alpha/defconfig b/arch/alpha/defconfig --- a/arch/alpha/defconfig 2005-01-05 17:43:37 -08:00 +++ b/arch/alpha/defconfig 2005-01-05 17:43:37 -08:00 @@ -411,7 +411,6 @@ # CONFIG_IP_NF_TARGET_REDIRECT is not set # CONFIG_IP_NF_TARGET_NETMAP is not set # CONFIG_IP_NF_TARGET_SAME is not set -# CONFIG_IP_NF_NAT_LOCAL is not set # CONFIG_IP_NF_NAT_SNMP_BASIC is not set CONFIG_IP_NF_NAT_IRC=m CONFIG_IP_NF_NAT_FTP=m diff -Nru a/arch/alpha/kernel/proto.h b/arch/alpha/kernel/proto.h --- a/arch/alpha/kernel/proto.h 2005-01-05 17:43:36 -08:00 +++ b/arch/alpha/kernel/proto.h 2005-01-05 17:43:36 -08:00 @@ -167,9 +167,6 @@ extern void entUna(void); extern void entDbg(void); -/* process.c */ -extern void cpu_idle(void) __attribute__((noreturn)); - /* ptrace.c */ extern int ptrace_set_bpt (struct task_struct *child); extern int ptrace_cancel_bpt (struct task_struct *child); diff -Nru a/arch/alpha/mm/init.c b/arch/alpha/mm/init.c --- a/arch/alpha/mm/init.c 2005-01-05 17:43:39 -08:00 +++ b/arch/alpha/mm/init.c 2005-01-05 17:43:39 -08:00 @@ -42,10 +42,9 @@ { pgd_t *ret, *init; - ret = (pgd_t *)__get_free_page(GFP_KERNEL); + ret = (pgd_t *)__get_free_page(GFP_KERNEL | __GFP_ZERO); init = pgd_offset(&init_mm, 0UL); if (ret) { - clear_page(ret); #ifdef CONFIG_ALPHA_LARGE_VMALLOC memcpy (ret + USER_PTRS_PER_PGD, init + USER_PTRS_PER_PGD, (PTRS_PER_PGD - USER_PTRS_PER_PGD - 1)*sizeof(pgd_t)); @@ -63,9 +62,7 @@ pte_t * pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address) { - pte_t *pte = (pte_t *)__get_free_page(GFP_KERNEL|__GFP_REPEAT); - if (pte) - clear_page(pte); + pte_t *pte = (pte_t *)__get_free_page(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO); return pte; } diff -Nru a/arch/alpha/oprofile/common.c b/arch/alpha/oprofile/common.c --- a/arch/alpha/oprofile/common.c 2005-01-05 17:43:35 -08:00 +++ b/arch/alpha/oprofile/common.c 2005-01-05 17:43:35 -08:00 @@ -138,17 +138,8 @@ return 0; } -static struct oprofile_operations oprof_axp_ops = { - .create_files = op_axp_create_files, - .setup = op_axp_setup, - .shutdown = op_axp_shutdown, - .start = op_axp_start, - .stop = op_axp_stop, - .cpu_type = NULL /* To be filled in below. */ -}; - -int __init -oprofile_arch_init(struct oprofile_operations **ops) +void __init +oprofile_arch_init(struct oprofile_operations *ops) { struct op_axp_model *lmodel = NULL; @@ -175,16 +166,18 @@ } if (!lmodel) - return -ENODEV; + return; model = lmodel; - oprof_axp_ops.cpu_type = lmodel->cpu_type; - *ops = &oprof_axp_ops; + ops->create_files = op_axp_create_files; + ops->setup = op_axp_setup; + ops->shutdown = op_axp_shutdown; + ops->start = op_axp_start; + ops->stop = op_axp_stop; + ops->cpu_type = lmodel->cpu_type; printk(KERN_INFO "oprofile: using %s performance monitoring.\n", lmodel->cpu_type); - - return 0; } diff -Nru a/arch/alpha/oprofile/op_model_ev4.c b/arch/alpha/oprofile/op_model_ev4.c --- a/arch/alpha/oprofile/op_model_ev4.c 2005-01-05 17:43:37 -08:00 +++ b/arch/alpha/oprofile/op_model_ev4.c 2005-01-05 17:43:37 -08:00 @@ -101,8 +101,7 @@ return; /* Record the sample. */ - oprofile_add_sample(regs->pc, !user_mode(regs), - which, smp_processor_id()); + oprofile_add_sample(regs, which); } diff -Nru a/arch/alpha/oprofile/op_model_ev5.c b/arch/alpha/oprofile/op_model_ev5.c --- a/arch/alpha/oprofile/op_model_ev5.c 2005-01-05 17:43:37 -08:00 +++ b/arch/alpha/oprofile/op_model_ev5.c 2005-01-05 17:43:37 -08:00 @@ -186,8 +186,7 @@ struct op_counter_config *ctr) { /* Record the sample. */ - oprofile_add_sample(regs->pc, !user_mode(regs), - which, smp_processor_id()); + oprofile_add_sample(regs, which); } diff -Nru a/arch/alpha/oprofile/op_model_ev6.c b/arch/alpha/oprofile/op_model_ev6.c --- a/arch/alpha/oprofile/op_model_ev6.c 2005-01-05 17:43:37 -08:00 +++ b/arch/alpha/oprofile/op_model_ev6.c 2005-01-05 17:43:37 -08:00 @@ -88,8 +88,7 @@ struct op_counter_config *ctr) { /* Record the sample. */ - oprofile_add_sample(regs->pc, !user_mode(regs), - which, smp_processor_id()); + oprofile_add_sample(regs, which); } diff -Nru a/arch/alpha/oprofile/op_model_ev67.c b/arch/alpha/oprofile/op_model_ev67.c --- a/arch/alpha/oprofile/op_model_ev67.c 2005-01-05 17:43:39 -08:00 +++ b/arch/alpha/oprofile/op_model_ev67.c 2005-01-05 17:43:39 -08:00 @@ -138,8 +138,7 @@ if (counter == 1) fake_counter += PM_NUM_COUNTERS; if (ctr[fake_counter].enabled) - oprofile_add_sample(pc, kern, fake_counter, - smp_processor_id()); + oprofile_add_pc(pc, kern, fake_counter); } static void @@ -197,8 +196,7 @@ to PALcode. Recognize ITB miss by PALcode offset address, and get actual PC from EXC_ADDR. */ - oprofile_add_sample(regs->pc, kern, which, - smp_processor_id()); + oprofile_add_pc(regs->pc, kern, which); if ((pmpc & ((1 << 15) - 1)) == 581) op_add_pm(regs->pc, kern, which, ctr, PM_ITB_MISS); @@ -241,7 +239,7 @@ } } - oprofile_add_sample(pmpc, kern, which, smp_processor_id()); + oprofile_add_pc(pmpc, kern, which); pctr_ctl = wrperfmon(5, 0); if (pctr_ctl & (1UL << 27)) diff -Nru a/arch/arm/Kconfig b/arch/arm/Kconfig --- a/arch/arm/Kconfig 2005-01-05 17:43:37 -08:00 +++ b/arch/arm/Kconfig 2005-01-05 17:43:37 -08:00 @@ -57,6 +57,10 @@ config RWSEM_XCHGADD_ALGORITHM bool +config GENERIC_CALIBRATE_DELAY + bool + default y + config GENERIC_BUST_SPINLOCK bool @@ -609,7 +613,7 @@ system, but the driver will do nothing. config LEDS_TIMER - bool "Timer LED" if LEDS && (ARCH_NETWINDER || ARCH_EBSA285 || ARCH_SHARK || MACH_MAINSTONE || ARCH_CO285 || ARCH_SA1100 || ARCH_LUBBOCK || ARCH_PXA_IDP || ARCH_INTEGRATOR || ARCH_P720T || ARCH_VERSATILE || ARCH_IMX) + bool "Timer LED" if LEDS && (ARCH_NETWINDER || ARCH_EBSA285 || ARCH_SHARK || MACH_MAINSTONE || ARCH_CO285 || ARCH_SA1100 || ARCH_LUBBOCK || ARCH_PXA_IDP || ARCH_INTEGRATOR || ARCH_P720T || ARCH_VERSATILE || ARCH_IMX || MACH_OMAP_H2 || MACH_OMAP_PERSEUS2) depends on ARCH_NETWINDER || ARCH_EBSA110 || ARCH_EBSA285 || ARCH_SHARK || ARCH_CO285 || ARCH_SA1100 || ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_PXA_IDP || ARCH_INTEGRATOR || ARCH_CDB89712 || ARCH_P720T || ARCH_OMAP || ARCH_VERSATILE || ARCH_IMX default y if ARCH_EBSA110 help @@ -625,7 +629,7 @@ config LEDS_CPU bool "CPU usage LED" - depends on LEDS && (ARCH_NETWINDER || ARCH_EBSA285 || ARCH_SHARK || ARCH_CO285 || ARCH_SA1100 || ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_PXA_IDP || ARCH_INTEGRATOR || ARCH_P720T || ARCH_VERSATILE || ARCH_IMX) + depends on LEDS && (ARCH_NETWINDER || ARCH_EBSA285 || ARCH_SHARK || ARCH_CO285 || ARCH_SA1100 || ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_PXA_IDP || ARCH_INTEGRATOR || ARCH_P720T || ARCH_VERSATILE || ARCH_IMX || MACH_OMAP_H2 || MACH_OMAP_PERSEUS2) help If you say Y here, the red LED will be used to give a good real time indication of CPU usage, by lighting whenever the idle task diff -Nru a/arch/arm/configs/ebsa110_defconfig b/arch/arm/configs/ebsa110_defconfig --- a/arch/arm/configs/ebsa110_defconfig 2005-01-05 17:43:35 -08:00 +++ b/arch/arm/configs/ebsa110_defconfig 2005-01-05 17:43:35 -08:00 @@ -239,7 +239,6 @@ CONFIG_IP_NF_TARGET_REDIRECT=y CONFIG_IP_NF_TARGET_NETMAP=y CONFIG_IP_NF_TARGET_SAME=y -# CONFIG_IP_NF_NAT_LOCAL is not set # CONFIG_IP_NF_NAT_SNMP_BASIC is not set CONFIG_IP_NF_NAT_IRC=y CONFIG_IP_NF_NAT_FTP=y diff -Nru a/arch/arm/configs/ixp4xx_defconfig b/arch/arm/configs/ixp4xx_defconfig --- a/arch/arm/configs/ixp4xx_defconfig 2005-01-05 17:43:36 -08:00 +++ b/arch/arm/configs/ixp4xx_defconfig 2005-01-05 17:43:36 -08:00 @@ -399,7 +399,6 @@ CONFIG_IP_NF_TARGET_REDIRECT=m # CONFIG_IP_NF_TARGET_NETMAP is not set # CONFIG_IP_NF_TARGET_SAME is not set -CONFIG_IP_NF_NAT_LOCAL=y CONFIG_IP_NF_NAT_SNMP_BASIC=m CONFIG_IP_NF_NAT_IRC=m CONFIG_IP_NF_NAT_FTP=m diff -Nru a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S --- a/arch/arm/kernel/entry-armv.S 2005-01-05 17:43:36 -08:00 +++ b/arch/arm/kernel/entry-armv.S 2005-01-05 17:43:36 -08:00 @@ -23,1000 +23,6 @@ #include "entry-header.S" -#ifdef IOC_BASE -/* IOC / IOMD based hardware */ -#include - - .equ ioc_base_high, IOC_BASE & 0xff000000 - .equ ioc_base_low, IOC_BASE & 0x00ff0000 - .macro disable_fiq - mov r12, #ioc_base_high - .if ioc_base_low - orr r12, r12, #ioc_base_low - .endif - strb r12, [r12, #0x38] @ Disable FIQ register - .endm - - .macro get_irqnr_and_base, irqnr, irqstat, base, tmp - mov r4, #ioc_base_high @ point at IOC - .if ioc_base_low - orr r4, r4, #ioc_base_low - .endif - ldrb \irqstat, [r4, #IOMD_IRQREQB] @ get high priority first - ldr \base, =irq_prio_h - teq \irqstat, #0 -#ifdef IOMD_BASE - ldreqb \irqstat, [r4, #IOMD_DMAREQ] @ get dma - addeq \base, \base, #256 @ irq_prio_h table size - teqeq \irqstat, #0 - bne 2406f -#endif - ldreqb \irqstat, [r4, #IOMD_IRQREQA] @ get low priority - addeq \base, \base, #256 @ irq_prio_d table size - teqeq \irqstat, #0 -#ifdef IOMD_IRQREQC - ldreqb \irqstat, [r4, #IOMD_IRQREQC] - addeq \base, \base, #256 @ irq_prio_l table size - teqeq \irqstat, #0 -#endif -#ifdef IOMD_IRQREQD - ldreqb \irqstat, [r4, #IOMD_IRQREQD] - addeq \base, \base, #256 @ irq_prio_lc table size - teqeq \irqstat, #0 -#endif -2406: ldrneb \irqnr, [\base, \irqstat] @ get IRQ number - .endm - -/* - * Interrupt table (incorporates priority). Please note that we - * rely on the order of these tables (see above code). - */ - .macro irq_prio_table -irq_prio_h: .byte 0, 8, 9, 8,10,10,10,10,11,11,11,11,10,10,10,10 - .byte 12, 8, 9, 8,10,10,10,10,11,11,11,11,10,10,10,10 - .byte 13,13,13,13,10,10,10,10,11,11,11,11,10,10,10,10 - .byte 13,13,13,13,10,10,10,10,11,11,11,11,10,10,10,10 - .byte 14,14,14,14,10,10,10,10,11,11,11,11,10,10,10,10 - .byte 14,14,14,14,10,10,10,10,11,11,11,11,10,10,10,10 - .byte 13,13,13,13,10,10,10,10,11,11,11,11,10,10,10,10 - .byte 13,13,13,13,10,10,10,10,11,11,11,11,10,10,10,10 - .byte 15,15,15,15,10,10,10,10,11,11,11,11,10,10,10,10 - .byte 15,15,15,15,10,10,10,10,11,11,11,11,10,10,10,10 - .byte 13,13,13,13,10,10,10,10,11,11,11,11,10,10,10,10 - .byte 13,13,13,13,10,10,10,10,11,11,11,11,10,10,10,10 - .byte 15,15,15,15,10,10,10,10,11,11,11,11,10,10,10,10 - .byte 15,15,15,15,10,10,10,10,11,11,11,11,10,10,10,10 - .byte 13,13,13,13,10,10,10,10,11,11,11,11,10,10,10,10 - .byte 13,13,13,13,10,10,10,10,11,11,11,11,10,10,10,10 -#ifdef IOMD_BASE -irq_prio_d: .byte 0,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16 - .byte 20,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16 - .byte 21,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16 - .byte 21,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16 - .byte 22,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16 - .byte 22,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16 - .byte 21,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16 - .byte 21,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16 - .byte 23,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16 - .byte 23,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16 - .byte 21,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16 - .byte 21,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16 - .byte 22,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16 - .byte 22,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16 - .byte 21,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16 - .byte 21,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16 -#endif -irq_prio_l: .byte 0, 0, 1, 0, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3 - .byte 4, 0, 1, 0, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3 - .byte 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 - .byte 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 - .byte 6, 6, 6, 6, 6, 6, 6, 6, 3, 3, 3, 3, 3, 3, 3, 3 - .byte 6, 6, 6, 6, 6, 6, 6, 6, 3, 3, 3, 3, 3, 3, 3, 3 - .byte 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 - .byte 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 - .byte 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 - .byte 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 - .byte 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 - .byte 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 - .byte 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 - .byte 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 - .byte 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 - .byte 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 -#ifdef IOMD_IRQREQC -irq_prio_lc: .byte 24,24,25,24,26,26,26,26,27,27,27,27,27,27,27,27 - .byte 28,24,25,24,26,26,26,26,27,27,27,27,27,27,27,27 - .byte 29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29 - .byte 29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29 - .byte 30,30,30,30,30,30,30,30,27,27,27,27,27,27,27,27 - .byte 30,30,30,30,30,30,30,30,27,27,27,27,27,27,27,27 - .byte 29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29 - .byte 29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29 - .byte 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31 - .byte 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31 - .byte 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31 - .byte 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31 - .byte 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31 - .byte 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31 - .byte 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31 - .byte 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31 -#endif -#ifdef IOMD_IRQREQD -irq_prio_ld: .byte 40,40,41,40,42,42,42,42,43,43,43,43,43,43,43,43 - .byte 44,40,41,40,42,42,42,42,43,43,43,43,43,43,43,43 - .byte 45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45 - .byte 45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45 - .byte 46,46,46,46,46,46,46,46,43,43,43,43,43,43,43,43 - .byte 46,46,46,46,46,46,46,46,43,43,43,43,43,43,43,43 - .byte 45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45 - .byte 45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45 - .byte 47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47 - .byte 47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47 - .byte 47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47 - .byte 47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47 - .byte 47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47 - .byte 47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47 - .byte 47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47 - .byte 47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47 -#endif - .endm - -#elif defined(CONFIG_ARCH_EBSA110) - -#define IRQ_STAT 0xff000000 /* read */ - - .macro disable_fiq - .endm - - .macro get_irqnr_and_base, irqnr, stat, base, tmp - mov \base, #IRQ_STAT - ldrb \stat, [\base] @ get interrupts - mov \irqnr, #0 - tst \stat, #15 - addeq \irqnr, \irqnr, #4 - moveq \stat, \stat, lsr #4 - tst \stat, #3 - addeq \irqnr, \irqnr, #2 - moveq \stat, \stat, lsr #2 - tst \stat, #1 - addeq \irqnr, \irqnr, #1 - moveq \stat, \stat, lsr #1 - tst \stat, #1 @ bit 0 should be set - .endm - - .macro irq_prio_table - .endm - -#elif defined(CONFIG_ARCH_SHARK) - - .macro disable_fiq - .endm - - .macro get_irqnr_and_base, irqnr, irqstat, base, tmp - mov r4, #0xe0000000 - - mov \irqstat, #0x0C - strb \irqstat, [r4, #0x20] @outb(0x0C, 0x20) /* Poll command */ - ldrb \irqnr, [r4, #0x20] @irq = inb(0x20) & 7 - and \irqstat, \irqnr, #0x80 - teq \irqstat, #0 - beq 43f - and \irqnr, \irqnr, #7 - teq \irqnr, #2 - bne 44f -43: mov \irqstat, #0x0C - strb \irqstat, [r4, #0xa0] @outb(0x0C, 0xA0) /* Poll command */ - ldrb \irqnr, [r4, #0xa0] @irq = (inb(0xA0) & 7) + 8 - and \irqstat, \irqnr, #0x80 - teq \irqstat, #0 - beq 44f - and \irqnr, \irqnr, #7 - add \irqnr, \irqnr, #8 -44: teq \irqstat, #0 - .endm - - .macro irq_prio_table - .endm - -#elif defined(CONFIG_FOOTBRIDGE) -#include - - .macro disable_fiq - .endm - - .equ dc21285_high, ARMCSR_BASE & 0xff000000 - .equ dc21285_low, ARMCSR_BASE & 0x00ffffff - - .macro get_irqnr_and_base, irqnr, irqstat, base, tmp - mov r4, #dc21285_high - .if dc21285_low - orr r4, r4, #dc21285_low - .endif - ldr \irqstat, [r4, #0x180] @ get interrupts - - mov \irqnr, #IRQ_SDRAMPARITY - tst \irqstat, #IRQ_MASK_SDRAMPARITY - bne 1001f - - tst \irqstat, #IRQ_MASK_UART_RX - movne \irqnr, #IRQ_CONRX - bne 1001f - - tst \irqstat, #IRQ_MASK_DMA1 - movne \irqnr, #IRQ_DMA1 - bne 1001f - - tst \irqstat, #IRQ_MASK_DMA2 - movne \irqnr, #IRQ_DMA2 - bne 1001f - - tst \irqstat, #IRQ_MASK_IN0 - movne \irqnr, #IRQ_IN0 - bne 1001f - - tst \irqstat, #IRQ_MASK_IN1 - movne \irqnr, #IRQ_IN1 - bne 1001f - - tst \irqstat, #IRQ_MASK_IN2 - movne \irqnr, #IRQ_IN2 - bne 1001f - - tst \irqstat, #IRQ_MASK_IN3 - movne \irqnr, #IRQ_IN3 - bne 1001f - - tst \irqstat, #IRQ_MASK_PCI - movne \irqnr, #IRQ_PCI - bne 1001f - - tst \irqstat, #IRQ_MASK_DOORBELLHOST - movne \irqnr, #IRQ_DOORBELLHOST - bne 1001f - - tst \irqstat, #IRQ_MASK_I2OINPOST - movne \irqnr, #IRQ_I2OINPOST - bne 1001f - - tst \irqstat, #IRQ_MASK_TIMER1 - movne \irqnr, #IRQ_TIMER1 - bne 1001f - - tst \irqstat, #IRQ_MASK_TIMER2 - movne \irqnr, #IRQ_TIMER2 - bne 1001f - - tst \irqstat, #IRQ_MASK_TIMER3 - movne \irqnr, #IRQ_TIMER3 - bne 1001f - - tst \irqstat, #IRQ_MASK_UART_TX - movne \irqnr, #IRQ_CONTX - bne 1001f - - tst \irqstat, #IRQ_MASK_PCI_ABORT - movne \irqnr, #IRQ_PCI_ABORT - bne 1001f - - tst \irqstat, #IRQ_MASK_PCI_SERR - movne \irqnr, #IRQ_PCI_SERR - bne 1001f - - tst \irqstat, #IRQ_MASK_DISCARD_TIMER - movne \irqnr, #IRQ_DISCARD_TIMER - bne 1001f - - tst \irqstat, #IRQ_MASK_PCI_DPERR - movne \irqnr, #IRQ_PCI_DPERR - bne 1001f - - tst \irqstat, #IRQ_MASK_PCI_PERR - movne \irqnr, #IRQ_PCI_PERR -1001: - .endm - - .macro irq_prio_table - .endm - -#elif defined(CONFIG_ARCH_NEXUSPCI) - - .macro disable_fiq - .endm - - .macro get_irqnr_and_base, irqnr, irqstat, base, tmp - ldr \irqstat, =INTCONT_BASE - ldr \base, =soft_irq_mask - ldr \irqstat, [\irqstat] @ get interrupts - ldr \base, [\base] - mov \irqnr, #0 - and \irqstat, \irqstat, \base @ mask out disabled ones -1001: tst \irqstat, #1 - addeq \irqnr, \irqnr, #1 - moveq \irqstat, \irqstat, lsr #1 - tsteq \irqnr, #32 - beq 1001b - teq \irqnr, #32 - .endm - - .macro irq_prio_table - .ltorg - .bss -ENTRY(soft_irq_mask) - .word 0 - .text - .endm - -#elif defined(CONFIG_ARCH_TBOX) - - .macro disable_fiq - .endm - - .macro get_irqnr_and_base, irqnr, irqstat, base, tmp - ldr \irqstat, =0xffff7000 - ldr \irqstat, [\irqstat] @ get interrupts - ldr \base, =soft_irq_mask - ldr \base, [\base] - mov \irqnr, #0 - and \irqstat, \irqstat, \base @ mask out disabled ones -1001: tst \irqstat, #1 - addeq \irqnr, \irqnr, #1 - moveq \irqstat, \irqstat, lsr #1 - tsteq \irqnr, #32 - beq 1001b - teq \irqnr, #32 - .endm - - .macro irq_prio_table - .ltorg - .bss -ENTRY(soft_irq_mask) - .word 0 - .text - .endm - -#elif defined(CONFIG_ARCH_SA1100) - - .macro disable_fiq - .endm - - .macro get_irqnr_and_base, irqnr, irqstat, base, tmp - mov r4, #0xfa000000 @ ICIP = 0xfa050000 - add r4, r4, #0x00050000 - ldr \irqstat, [r4] @ get irqs - ldr \irqnr, [r4, #4] @ ICMR = 0xfa050004 - ands \irqstat, \irqstat, \irqnr - mov \irqnr, #0 - beq 1001f - tst \irqstat, #0xff - moveq \irqstat, \irqstat, lsr #8 - addeq \irqnr, \irqnr, #8 - tsteq \irqstat, #0xff - moveq \irqstat, \irqstat, lsr #8 - addeq \irqnr, \irqnr, #8 - tsteq \irqstat, #0xff - moveq \irqstat, \irqstat, lsr #8 - addeq \irqnr, \irqnr, #8 - tst \irqstat, #0x0f - moveq \irqstat, \irqstat, lsr #4 - addeq \irqnr, \irqnr, #4 - tst \irqstat, #0x03 - moveq \irqstat, \irqstat, lsr #2 - addeq \irqnr, \irqnr, #2 - tst \irqstat, #0x01 - addeqs \irqnr, \irqnr, #1 -1001: - .endm - - .macro irq_prio_table - .endm - -#elif defined(CONFIG_ARCH_L7200) -#include - - .equ irq_base_addr, IO_BASE_2 - - .macro disable_fiq - .endm - - .macro get_irqnr_and_base, irqnr, irqstat, base, tmp - mov \irqstat, #irq_base_addr @ Virt addr IRQ regs - add \irqstat, \irqstat, #0x00001000 @ Status reg - ldr \irqstat, [\irqstat, #0] @ get interrupts - mov \irqnr, #0 -1001: tst \irqstat, #1 - addeq \irqnr, \irqnr, #1 - moveq \irqstat, \irqstat, lsr #1 - tsteq \irqnr, #32 - beq 1001b - teq \irqnr, #32 - .endm - - .macro irq_prio_table - .endm - -#elif defined(CONFIG_ARCH_INTEGRATOR) - - .macro disable_fiq - .endm - - .macro get_irqnr_and_base, irqnr, irqstat, base, tmp -/* FIXME: should not be using soo many LDRs here */ - ldr \base, =IO_ADDRESS(INTEGRATOR_IC_BASE) - mov \irqnr, #IRQ_PIC_START - ldr \irqstat, [\base, #IRQ_STATUS] @ get masked status - ldr \base, =IO_ADDRESS(INTEGRATOR_HDR_BASE) - teq \irqstat, #0 - ldreq \irqstat, [\base, #(INTEGRATOR_HDR_IC_OFFSET+IRQ_STATUS)] - moveq \irqnr, #IRQ_CIC_START - -1001: tst \irqstat, #15 - bne 1002f - add \irqnr, \irqnr, #4 - movs \irqstat, \irqstat, lsr #4 - bne 1001b -1002: tst \irqstat, #1 - bne 1003f - add \irqnr, \irqnr, #1 - movs \irqstat, \irqstat, lsr #1 - bne 1002b -1003: /* EQ will be set if no irqs pending */ - .endm - - .macro irq_prio_table - .endm - -#elif defined(CONFIG_ARCH_VERSATILE) - - .macro disable_fiq - .endm - - .macro get_irqnr_and_base, irqnr, irqstat, base, tmp - ldr \base, =IO_ADDRESS(VERSATILE_VIC_BASE) - ldr \irqstat, [\base, #VIC_IRQ_STATUS] @ get masked status - mov \irqnr, #0 - teq \irqstat, #0 - beq 1003f - -1001: tst \irqstat, #15 - bne 1002f - add \irqnr, \irqnr, #4 - movs \irqstat, \irqstat, lsr #4 - bne 1001b -1002: tst \irqstat, #1 - bne 1003f - add \irqnr, \irqnr, #1 - movs \irqstat, \irqstat, lsr #1 - bne 1002b -1003: /* EQ will be set if no irqs pending */ - -@ clz \irqnr, \irqstat -@1003: /* EQ will be set if we reach MAXIRQNUM */ - .endm - - .macro irq_prio_table - .endm - -#elif defined(CONFIG_ARCH_CLPS711X) - -#include - - .macro disable_fiq - .endm - -#if (INTSR2 - INTSR1) != (INTMR2 - INTMR1) -#error INTSR stride != INTMR stride -#endif - - .macro get_irqnr_and_base, irqnr, stat, base, mask - mov \base, #CLPS7111_BASE - ldr \stat, [\base, #INTSR1] - ldr \mask, [\base, #INTMR1] - mov \irqnr, #4 - mov \mask, \mask, lsl #16 - and \stat, \stat, \mask, lsr #16 - movs \stat, \stat, lsr #4 - bne 1001f - - add \base, \base, #INTSR2 - INTSR1 - ldr \stat, [\base, #INTSR1] - ldr \mask, [\base, #INTMR1] - mov \irqnr, #16 - mov \mask, \mask, lsl #16 - and \stat, \stat, \mask, lsr #16 - -1001: tst \stat, #255 - addeq \irqnr, \irqnr, #8 - moveq \stat, \stat, lsr #8 - tst \stat, #15 - addeq \irqnr, \irqnr, #4 - moveq \stat, \stat, lsr #4 - tst \stat, #3 - addeq \irqnr, \irqnr, #2 - moveq \stat, \stat, lsr #2 - tst \stat, #1 - addeq \irqnr, \irqnr, #1 - moveq \stat, \stat, lsr #1 - tst \stat, #1 @ bit 0 should be set - .endm - - .macro irq_prio_table - .endm - -#elif defined (CONFIG_ARCH_CAMELOT) -#include -#undef IRQ_MODE /* same name defined in asm/proc/ptrace.h */ -#include - - .macro disable_fiq - .endm - - .macro get_irqnr_and_base, irqnr, irqstat, base, tmp - - ldr \irqstat, =INT_ID(IO_ADDRESS(EXC_INT_CTRL00_BASE)) - ldr \irqnr,[\irqstat] - cmp \irqnr,#0 - subne \irqnr,\irqnr,#1 - - - .endm - - .macro irq_prio_table - .endm - -#elif defined(CONFIG_ARCH_IOP321) - .macro disable_fiq - .endm - - /* - * Note: only deal with normal interrupts, not FIQ - */ - .macro get_irqnr_and_base, irqnr, irqstat, base, tmp - mov \irqnr, #0 - mrc p6, 0, \irqstat, c8, c0, 0 @ Read IINTSRC - cmp \irqstat, #0 - beq 1001f - clz \irqnr, \irqstat - mov \base, #31 - subs \irqnr,\base,\irqnr - add \irqnr,\irqnr,#IRQ_IOP321_DMA0_EOT -1001: - .endm - - .macro irq_prio_table - .endm - -#elif defined(CONFIG_ARCH_IOP331) - .macro disable_fiq - .endm - - /* - * Note: only deal with normal interrupts, not FIQ - */ - .macro get_irqnr_and_base, irqnr, irqstat, base, tmp - mov \irqnr, #0 - mrc p6, 0, \irqstat, c4, c0, 0 @ Read IINTSRC0 - cmp \irqstat, #0 - bne 1002f - mrc p6, 0, \irqstat, c5, c0, 0 @ Read IINTSRC1 - cmp \irqstat, #0 - beq 1001f - clz \irqnr, \irqstat -/* - * mov \base, #31 - * subs \irqnr,\base,\irqnr - */ - rsbs \irqnr,\irqnr,#31 @ recommend by RMK - add \irqnr,\irqnr,#IRQ_IOP331_XINT8 - b 1001f -1002: clz \irqnr, \irqstat - mov \base, #31 - subs \irqnr,\base,\irqnr - add \irqnr,\irqnr,#IRQ_IOP331_DMA0_EOT -1001: - .endm - - .macro irq_prio_table - .endm - -#elif defined(CONFIG_ARCH_PXA) - - .macro disable_fiq - .endm - - .macro get_irqnr_and_base, irqnr, irqstat, base, tmp -#ifdef CONFIG_PXA27x - mrc p6, 0, \irqstat, c0, c0, 0 @ ICIP - mrc p6, 0, \irqnr, c1, c0, 0 @ ICMR -#else - mov \base, #io_p2v(0x40000000) @ IIR Ctl = 0x40d00000 - add \base, \base, #0x00d00000 - ldr \irqstat, [\base, #0] @ ICIP - ldr \irqnr, [\base, #4] @ ICMR -#endif - ands \irqnr, \irqstat, \irqnr - beq 1001f - rsb \irqstat, \irqnr, #0 - and \irqstat, \irqstat, \irqnr - clz \irqnr, \irqstat - rsb \irqnr, \irqnr, #(31 - PXA_IRQ_SKIP) -1001: - .endm - - .macro irq_prio_table - .endm - -#elif defined(CONFIG_ARCH_IXP2000) - - .macro disable_fiq - .endm - - .macro get_irqnr_and_base, irqnr, irqstat, base, tmp - - mov \irqnr, #0x0 @clear out irqnr as default - mov \base, #0xfe000000 - orr \base, \base, #0x00ff0000 - orr \base, \base, #0x0000a000 - orr \base, \base, #0x08 - ldr \irqstat, [\base] @ get interrupts - mov \tmp, #IXP2000_VALID_IRQ_MASK & 0xff000000 - orr \tmp, \tmp, #IXP2000_VALID_IRQ_MASK & 0x00ff0000 - orr \tmp, \tmp, #IXP2000_VALID_IRQ_MASK & 0x0000ff00 - orr \tmp, \tmp, #IXP2000_VALID_IRQ_MASK & 0x000000ff - and \irqstat, \irqstat, \tmp - - cmp \irqstat, #0 - beq 1001f - - clz \irqnr, \irqstat - mov \base, #31 - subs \irqnr, \base, \irqnr - - /* - * We handle PCIA and PCIB here so we don't have an - * extra layer of code just to check these two bits. - */ - cmp \irqnr, #IRQ_IXP2000_PCI - bne 1001f - - mov \base, #0xfe000000 - orr \base, \base, #0x00fd0000 - orr \base, \base, #0x0000e100 - orr \base, \base, #0x00000058 - ldr \irqstat, [\base] - - mov \tmp, #(1<<26) - tst \irqstat, \tmp - movne \irqnr, #IRQ_IXP2000_PCIA - bne 1001f - - mov \tmp, #(1<<27) - tst \irqstat, \tmp - movne \irqnr, #IRQ_IXP2000_PCIB - -1001: - .endm - - .macro irq_prio_table - .endm - -#elif defined (CONFIG_ARCH_IXP4XX) - - .macro disable_fiq - .endm - - .macro get_irqnr_and_base, irqnr, irqstat, base, tmp - ldr \irqstat, =(IXP4XX_INTC_BASE_VIRT+IXP4XX_ICIP_OFFSET) - ldr \irqstat, [\irqstat] @ get interrupts - cmp \irqstat, #0 - beq 1002f - clz \irqnr, \irqstat - mov \base, #31 - subs \irqnr, \base, \irqnr - -/* -1001: tst \irqstat, #1 - addeq \irqnr, \irqnr, #1 - moveq \irqstat, \irqstat, lsr #1 - tsteq \irqnr, #32 - beq 1001b - teq \irqnr, #32 -*/ -1002: - .endm - - .macro irq_prio_table - .endm - -#elif defined(CONFIG_ARCH_OMAP) - - .macro disable_fiq - .endm - - .macro get_irqnr_and_base, irqnr, irqstat, base, tmp - ldr \base, =IO_ADDRESS(OMAP_IH1_BASE) - ldr \irqnr, [\base, #IRQ_ITR_REG_OFFSET] - ldr \tmp, [\base, #IRQ_MIR_REG_OFFSET] - mov \irqstat, #0xffffffff - bic \tmp, \irqstat, \tmp - tst \irqnr, \tmp - beq 1510f - - ldr \irqnr, [\base, #IRQ_SIR_FIQ_REG_OFFSET] - cmp \irqnr, #0 - ldreq \irqnr, [\base, #IRQ_SIR_IRQ_REG_OFFSET] - cmpeq \irqnr, #INT_IH2_IRQ - ldreq \base, =IO_ADDRESS(OMAP_IH2_BASE) - ldreq \irqnr, [\base, #IRQ_SIR_IRQ_REG_OFFSET] - addeqs \irqnr, \irqnr, #32 -1510: - .endm - - .macro irq_prio_table - .endm - -#elif defined(CONFIG_ARCH_S3C2410) - /* S3C2410X IRQ Handler, */ - - .macro get_irqnr_and_base, irqnr, irqstat, base, tmp - -30000: - mov \tmp, #S3C2410_VA_IRQ - ldr \irqnr, [ \tmp, #0x14 ] @ get irq no - teq \irqnr, #4 - teqne \irqnr, #5 - beq 1002f @ external irq reg - teq \irqnr, #16 - beq 1003f @ lcd controller - - @ debug check to see if interrupt reported is the same - @ as the offset.... - - teq \irqnr, #0 - beq 20002f - ldr \irqstat, [ \tmp, #0x10 ] @ INTPND - mov \irqstat, \irqstat, lsr \irqnr - tst \irqstat, #1 - bne 20002f - -#if 1 - stmfd r13!, { r0 - r4 , r14 } - ldr r1, [ \tmp, #0x14 ] @ intoffset - ldr r2, [ \tmp, #0x10 ] @ INTPND - ldr r3, [ \tmp, #0x00 ] @ SRCPND - adr r0, 20003f - bl printk - b 20004f -#endif -20003: - .ascii "<7>irq: err - bad offset %d, intpnd=%08x, srcpnd=%08x\n" - .byte 0 - .align 4 -20004: - mov r1, #1 - mov \tmp, #S3C2410_VA_IRQ - ldmfd r13!, { r0 - r4 , r14 } - - @ try working out interript number for ourselves - mov \irqnr, #0 - ldr \irqstat, [ \tmp, #0x10 ] @ INTPND -10021: - movs \irqstat, \irqstat, lsr#1 - bcs 30000b @ try and re-start the proccess - add \irqnr, \irqnr, #1 - cmp \irqnr, #32 - ble 10021b - - @ found no interrupt, set Z flag and leave - movs \irqnr, #0 - b 1001f - -20005: -20002: @ exit - @ we base the s3c2410x interrupts at 16 and above to allow - @ isa peripherals to have their standard interrupts, also - @ ensure that Z flag is un-set on exit - - @ note, we cannot be sure if we get IRQ_EINT0 (0) that - @ there is simply no interrupt pending, so in all other - @ cases we jump to say we have found something, otherwise - @ we check to see if the interrupt really is assrted - adds \irqnr, \irqnr, #IRQ_EINT0 - teq \irqnr, #IRQ_EINT0 - bne 1001f @ exit - ldr \irqstat, [ \tmp, #0x10 ] @ INTPND - teq \irqstat, #0 - moveq \irqnr, #0 - b 1001f - - @ we get here from no main or external interrupts pending -1002: - add \tmp, \tmp, #S3C2410_VA_GPIO - S3C2410_VA_IRQ - ldr \irqstat, [ \tmp, # 0xa8 ] @ EXTINTPEND - ldr \irqnr, [ \tmp, # 0xa4 ] @ EXTINTMASK - - bic \irqstat, \irqstat, \irqnr @ clear masked irqs - - mov \irqnr, #IRQ_EINT4 @ start extint nos - mov \irqstat, \irqstat, lsr#4 @ ignore bottom 4 bits -10021: - movs \irqstat, \irqstat, lsr#1 - bcs 1004f - add \irqnr, \irqnr, #1 - cmp \irqnr, #IRQ_EINT23 - ble 10021b - - @ found no interrupt, set Z flag and leave - movs \irqnr, #0 - b 1001f - -1003: - @ lcd interrupt has been asserted... - add \tmp, \tmp, #S3C2410_VA_LCD - S3C2410_VA_IRQ - ldr \irqstat, [ \tmp, # 0x54 ] @ lcd int pending - - tst \irqstat, #2 - movne \irqnr, #IRQ_LCD_FRAME - tst \irqstat, #1 - movne \irqnr, #IRQ_LCD_FIFO - - @ fall through to exit with flags updated - -1004: @ ensure Z flag clear in case our MOVS shifted out the last bit - teq \irqnr, #0 -1001: - @ exit irq routine - .endm - - - /* currently don't need an disable_fiq macro */ - - .macro disable_fiq - .endm - - /* we don't have an irq priority table */ - .macro irq_prio_table - .endm - -#elif defined(CONFIG_ARCH_LH7A400) - -# if defined (CONFIG_ARCH_LH7A404) -# error "LH7A400 and LH7A404 are mutually exclusive" -# endif - .macro disable_fiq - .endm - - .macro get_irqnr_and_base, irqnr, irqstat, base, tmp - mov \irqnr, #0 - mov \base, #io_p2v(0x80000000) @ APB registers - ldr \irqstat, [\base, #0x500] @ PIC INTSR - -1001: movs \irqstat, \irqstat, lsr #1 @ Shift into carry - bcs 1008f @ Bit set; irq found - add \irqnr, \irqnr, #1 - bne 1001b @ Until no bits - b 1009f @ Nothing? Hmm. -1008: movs \irqstat, #1 @ Force !Z -1009: - .endm - - .macro irq_prio_table - .endm - -#elif defined(CONFIG_ARCH_LH7A404) - - .macro disable_fiq - .endm - - .macro get_irqnr_and_base, irqnr, irqstat, base, tmp - mov \irqnr, #0 @ VIC1 irq base - mov \base, #io_p2v(0x80000000) @ APB registers - add \base, \base, #0x8000 - ldr \tmp, [\base, #0x0030] @ VIC1_VECTADDR - tst \tmp, #VA_VECTORED @ Direct vectored - bne 1002f - tst \tmp, #VA_VIC1DEFAULT @ Default vectored VIC1 - ldrne \irqstat, [\base, #0] @ VIC1_IRQSTATUS - bne 1001f - add \base, \base, #(0xa000 - 0x8000) - ldr \tmp, [\base, #0x0030] @ VIC2_VECTADDR - tst \tmp, #VA_VECTORED @ Direct vectored - bne 1002f - ldr \irqstat, [\base, #0] @ VIC2_IRQSTATUS - mov \irqnr, #32 @ VIC2 irq base - -1001: movs \irqstat, \irqstat, lsr #1 @ Shift into carry - bcs 1008f @ Bit set; irq found - add \irqnr, \irqnr, #1 - bne 1001b @ Until no bits - b 1009f @ Nothing? Hmm. -1002: and \irqnr, \tmp, #0x3f @ Mask for valid bits -1008: movs \irqstat, #1 @ Force !Z - str \tmp, [\base, #0x0030] @ Clear vector -1009: - .endm - - .macro irq_prio_table - .endm - -#elif defined(CONFIG_ARCH_IMX) - - .macro disable_fiq - .endm -#define AITC_NIVECSR 0x40 - .macro get_irqnr_and_base, irqnr, irqstat, base, tmp - ldr \irqstat, =IO_ADDRESS(IMX_AITC_BASE) - @ Load offset & priority of the highest priority - @ interrupt pending. - ldr \irqnr, [\irqstat, #AITC_NIVECSR] - @ Shift off the priority leaving the offset or - @ "interrupt number" - mov \irqnr, \irqnr, lsr #16 - ldr \irqstat, =1 @ dummy compare - ldr \base, =0xFFFF // invalid interrupt - cmp \irqnr, \base - bne 1001f - ldr \irqstat, =0 -1001: - tst \irqstat, #1 @ to make the condition code = TRUE - .endm - - .macro irq_prio_table - .endm - -#elif defined(CONFIG_ARCH_H720X) - - .macro disable_fiq - .endm - - .macro get_irqnr_and_base, irqnr, irqstat, base, tmp -#if defined (CONFIG_CPU_H7201) || defined (CONFIG_CPU_H7202) - @ we could use the id register on H7202, but this is not - @ properly updated when we come back from asm_do_irq - @ without a previous return from interrupt - @ (see loops below in irq_svc, irq_usr) - @ We see unmasked pending ints only, as the masked pending ints - @ are not visible here - - mov \base, #0xf0000000 @ base register - orr \base, \base, #0x24000 @ irqbase - ldr \irqstat, [\base, #0x04] @ get interrupt status -#if defined (CONFIG_CPU_H7201) - ldr \tmp, =0x001fffff -#else - mvn \tmp, #0xc0000000 -#endif - and \irqstat, \irqstat, \tmp @ mask out unused ints - mov \irqnr, #0 - - mov \tmp, #0xff00 - orr \tmp, \tmp, #0xff - tst \irqstat, \tmp - addeq \irqnr, \irqnr, #16 - moveq \irqstat, \irqstat, lsr #16 - tst \irqstat, #255 - addeq \irqnr, \irqnr, #8 - moveq \irqstat, \irqstat, lsr #8 - tst \irqstat, #15 - addeq \irqnr, \irqnr, #4 - moveq \irqstat, \irqstat, lsr #4 - tst \irqstat, #3 - addeq \irqnr, \irqnr, #2 - moveq \irqstat, \irqstat, lsr #2 - tst \irqstat, #1 - addeq \irqnr, \irqnr, #1 - moveq \irqstat, \irqstat, lsr #1 - tst \irqstat, #1 @ bit 0 should be set - .endm - - .macro irq_prio_table - .endm - -#else -#error hynix processor selection missmatch -#endif -#else -#error Unknown architecture -#endif - /* * Invalid mode handlers */ @@ -1195,8 +201,6 @@ #ifdef CONFIG_PREEMPT .LCirq_stat: .word irq_stat #endif - - irq_prio_table /* * User mode handlers diff -Nru a/arch/arm/kernel/entry-header.S b/arch/arm/kernel/entry-header.S --- a/arch/arm/kernel/entry-header.S 2005-01-05 17:43:37 -08:00 +++ b/arch/arm/kernel/entry-header.S 2005-01-05 17:43:37 -08:00 @@ -6,6 +6,7 @@ #include #include #include +#include #ifndef MODE_SVC #define MODE_SVC 0x13 diff -Nru a/arch/arm/mach-integrator/integrator_ap.c b/arch/arm/mach-integrator/integrator_ap.c --- a/arch/arm/mach-integrator/integrator_ap.c 2005-01-05 17:43:39 -08:00 +++ b/arch/arm/mach-integrator/integrator_ap.c 2005-01-05 17:43:39 -08:00 @@ -68,7 +68,6 @@ * f1200000 12000000 EBI registers * f1300000 13000000 Counter/Timer * f1400000 14000000 Interrupt controller - * f1500000 15000000 RTC * f1600000 16000000 UART 0 * f1700000 17000000 UART 1 * f1a00000 1a000000 Debug LEDs @@ -81,7 +80,6 @@ { IO_ADDRESS(INTEGRATOR_EBI_BASE), INTEGRATOR_EBI_BASE, SZ_4K, MT_DEVICE }, { IO_ADDRESS(INTEGRATOR_CT_BASE), INTEGRATOR_CT_BASE, SZ_4K, MT_DEVICE }, { IO_ADDRESS(INTEGRATOR_IC_BASE), INTEGRATOR_IC_BASE, SZ_4K, MT_DEVICE }, - { IO_ADDRESS(INTEGRATOR_RTC_BASE), INTEGRATOR_RTC_BASE, SZ_4K, MT_DEVICE }, { IO_ADDRESS(INTEGRATOR_UART0_BASE), INTEGRATOR_UART0_BASE, SZ_4K, MT_DEVICE }, { IO_ADDRESS(INTEGRATOR_UART1_BASE), INTEGRATOR_UART1_BASE, SZ_4K, MT_DEVICE }, { IO_ADDRESS(INTEGRATOR_DBG_BASE), INTEGRATOR_DBG_BASE, SZ_4K, MT_DEVICE }, diff -Nru a/arch/arm/mach-integrator/time.c b/arch/arm/mach-integrator/time.c --- a/arch/arm/mach-integrator/time.c 2005-01-05 17:43:37 -08:00 +++ b/arch/arm/mach-integrator/time.c 2005-01-05 17:43:37 -08:00 @@ -1,46 +1,213 @@ /* * linux/arch/arm/mach-integrator/time.c * - * Copyright (C) 2000-2001 Deep Blue Solutions + * Copyright (C) 2000-2001 Deep Blue Solutions Ltd. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ +#include #include #include +#include +#include #include +#include +#include #include #include +#include +#include -#define RTC_DR (IO_ADDRESS(INTEGRATOR_RTC_BASE) + 0) -#define RTC_MR (IO_ADDRESS(INTEGRATOR_RTC_BASE) + 4) -#define RTC_STAT (IO_ADDRESS(INTEGRATOR_RTC_BASE) + 8) -#define RTC_EOI (IO_ADDRESS(INTEGRATOR_RTC_BASE) + 8) -#define RTC_LR (IO_ADDRESS(INTEGRATOR_RTC_BASE) + 12) -#define RTC_CR (IO_ADDRESS(INTEGRATOR_RTC_BASE) + 16) +#include -#define RTC_CR_MIE 0x00000001 +#define RTC_DR (0) +#define RTC_MR (4) +#define RTC_STAT (8) +#define RTC_EOI (8) +#define RTC_LR (12) +#define RTC_CR (16) +#define RTC_CR_MIE (1 << 0) extern int (*set_rtc)(void); +static void *rtc_base; static int integrator_set_rtc(void) { - __raw_writel(xtime.tv_sec, RTC_LR); + __raw_writel(xtime.tv_sec, rtc_base + RTC_LR); return 1; } -static int integrator_rtc_init(void) +static void rtc_read_alarm(struct rtc_wkalrm *alrm) { - __raw_writel(0, RTC_CR); - __raw_writel(0, RTC_EOI); + rtc_time_to_tm(readl(rtc_base + RTC_MR), &alrm->time); +} + +static int rtc_set_alarm(struct rtc_wkalrm *alrm) +{ + unsigned long time; + int ret; - xtime.tv_sec = __raw_readl(RTC_DR); + ret = rtc_tm_to_time(&alrm->time, &time); + if (ret == 0) + writel(time, rtc_base + RTC_MR); + return ret; +} + +static void rtc_read_time(struct rtc_time *tm) +{ + rtc_time_to_tm(readl(rtc_base + RTC_DR), tm); +} + +/* + * Set the RTC time. Unfortunately, we can't accurately set + * the point at which the counter updates. + * + * Also, since RTC_LR is transferred to RTC_CR on next rising + * edge of the 1Hz clock, we must write the time one second + * in advance. + */ +static int rtc_set_time(struct rtc_time *tm) +{ + unsigned long time; + int ret; + + ret = rtc_tm_to_time(tm, &time); + if (ret == 0) + writel(time + 1, rtc_base + RTC_LR); + + return ret; +} + +static struct rtc_ops rtc_ops = { + .owner = THIS_MODULE, + .read_time = rtc_read_time, + .set_time = rtc_set_time, + .read_alarm = rtc_read_alarm, + .set_alarm = rtc_set_alarm, +}; + +static irqreturn_t rtc_interrupt(int irq, void *dev_id, struct pt_regs *regs) +{ + writel(0, rtc_base + RTC_EOI); + return IRQ_HANDLED; +} + +static int rtc_probe(struct amba_device *dev, void *id) +{ + int ret; + + if (rtc_base) + return -EBUSY; + + ret = amba_request_regions(dev, NULL); + if (ret) + goto out; + + rtc_base = ioremap(dev->res.start, SZ_4K); + if (!rtc_base) { + ret = -ENOMEM; + goto res_out; + } + + __raw_writel(0, rtc_base + RTC_CR); + __raw_writel(0, rtc_base + RTC_EOI); + + xtime.tv_sec = __raw_readl(rtc_base + RTC_DR); + + ret = request_irq(dev->irq[0], rtc_interrupt, SA_INTERRUPT, + "rtc-pl030", rtc_base); + if (ret) + goto map_out; + + ret = register_rtc(&rtc_ops); + if (ret) + goto irq_out; set_rtc = integrator_set_rtc; + return 0; + + irq_out: + free_irq(dev->irq[0], rtc_base); + map_out: + iounmap(rtc_base); + rtc_base = NULL; + res_out: + amba_release_regions(dev); + out: + return ret; +} + +static int rtc_remove(struct amba_device *dev) +{ + set_rtc = NULL; + + writel(0, rtc_base + RTC_CR); + + free_irq(dev->irq[0], rtc_base); + unregister_rtc(&rtc_ops); + + iounmap(rtc_base); + rtc_base = NULL; + amba_release_regions(dev); return 0; } -__initcall(integrator_rtc_init); +static struct timespec rtc_delta; + +static int rtc_suspend(struct amba_device *dev, u32 state) +{ + struct timespec rtc; + + rtc.tv_sec = readl(rtc_base + RTC_DR); + rtc.tv_nsec = 0; + save_time_delta(&rtc_delta, &rtc); + + return 0; +} + +static int rtc_resume(struct amba_device *dev) +{ + struct timespec rtc; + + rtc.tv_sec = readl(rtc_base + RTC_DR); + rtc.tv_nsec = 0; + restore_time_delta(&rtc_delta, &rtc); + + return 0; +} + +static struct amba_id rtc_ids[] = { + { + .id = 0x00041030, + .mask = 0x000fffff, + }, + { 0, 0 }, +}; + +static struct amba_driver rtc_driver = { + .drv = { + .name = "rtc-pl030", + }, + .probe = rtc_probe, + .remove = rtc_remove, + .suspend = rtc_suspend, + .resume = rtc_resume, + .id_table = rtc_ids, +}; + +static int __init integrator_rtc_init(void) +{ + return amba_driver_register(&rtc_driver); +} + +static void __exit integrator_rtc_exit(void) +{ + amba_driver_unregister(&rtc_driver); +} + +module_init(integrator_rtc_init); +module_exit(integrator_rtc_exit); diff -Nru a/arch/arm/mach-ixp2000/core.c b/arch/arm/mach-ixp2000/core.c --- a/arch/arm/mach-ixp2000/core.c 2005-01-05 17:43:39 -08:00 +++ b/arch/arm/mach-ixp2000/core.c 2005-01-05 17:43:39 -08:00 @@ -167,15 +167,28 @@ *************************************************************************/ static unsigned ticks_per_jiffy; static unsigned ticks_per_usec; +static unsigned next_jiffy_time; unsigned long ixp2000_gettimeoffset (void) { - unsigned long elapsed; + unsigned long elapsed1, elapsed2, pending; + unsigned long offset; - /* Get ticks since last perfect jiffy */ - elapsed = ticks_per_jiffy - *IXP2000_T1_CSR; + elapsed1 = *IXP2000_T1_CSR; + pending = (*IXP2000_IRQ_STATUS & IRQ_MASK_TIMER1); + elapsed2 = *IXP2000_T1_CSR; + + offset = ticks_per_jiffy - elapsed2; + + /* + * We have two cases to cover, one where we were pending + * already, and another where it overflowed while we were + * checking the timers. + */ + if ((elapsed2 > elapsed1) || pending) + offset += ticks_per_jiffy; - return elapsed / ticks_per_usec; + return offset / ticks_per_usec; } static int ixp2000_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) @@ -185,7 +198,10 @@ /* clear timer 1 */ ixp2000_reg_write(IXP2000_T1_CLR, 1); - timer_tick(regs); + while ((next_jiffy_time - *IXP2000_T4_CSR) > ticks_per_jiffy) { + timer_tick(regs); + next_jiffy_time -= ticks_per_jiffy; + } write_sequnlock(&xtime_lock); @@ -201,13 +217,20 @@ void __init ixp2000_init_time(unsigned long tick_rate) { ixp2000_reg_write(IXP2000_T1_CLR, 0); - ixp2000_reg_write(IXP2000_T2_CLR, 0); + ixp2000_reg_write(IXP2000_T4_CLR, 0); ticks_per_jiffy = (tick_rate + HZ/2) / HZ; ticks_per_usec = tick_rate / 1000000; ixp2000_reg_write(IXP2000_T1_CLD, ticks_per_jiffy); ixp2000_reg_write(IXP2000_T1_CTL, (1 << 7)); + + /* + * We use T4 as a monotonic counter to track missed jiffies + */ + ixp2000_reg_write(IXP2000_T4_CLD, -1); + ixp2000_reg_write(IXP2000_T4_CTL, (1 << 7)); + next_jiffy_time = 0xffffffff - ticks_per_jiffy; /* register for interrupt */ setup_irq(IRQ_IXP2000_TIMER1, &ixp2000_timer_irq); diff -Nru a/arch/arm/mach-ixp4xx/Kconfig b/arch/arm/mach-ixp4xx/Kconfig --- a/arch/arm/mach-ixp4xx/Kconfig 2005-01-05 17:43:36 -08:00 +++ b/arch/arm/mach-ixp4xx/Kconfig 2005-01-05 17:43:36 -08:00 @@ -36,6 +36,14 @@ IXDPG425 Development Platform (Also known as Montajade). For more information on this platform, see Documentation/arm/IXP4xx. +config MACH_IXDP465 + bool "IXDP465" + help + Say 'Y' here if you want your kernel to support Intel's + IXDP465 Development Platform (Also known as BMP). + For more information on this platform, see Documentation/arm/IXP4xx. + + # # IXCDP1100 is the exact same HW as IXDP425, but with a different machine # number from the bootloader due to marketing monkeys, so we just enable it @@ -58,7 +66,15 @@ # config ARCH_IXDP4XX bool - depends on ARCH_IXDP425 || ARCH_AVILA + depends on ARCH_IXDP425 || ARCH_AVILA || MACH_IXDP465 + default y + +# +# Certain registers and IRQs are only enabled if supporting IXP465 CPUs +# +config CPU_IXP46X + bool + depends on MACH_IXDP465 default y comment "IXP4xx Options" diff -Nru a/arch/arm/mach-ixp4xx/common-pci.c b/arch/arm/mach-ixp4xx/common-pci.c --- a/arch/arm/mach-ixp4xx/common-pci.c 2005-01-05 17:43:39 -08:00 +++ b/arch/arm/mach-ixp4xx/common-pci.c 2005-01-05 17:43:39 -08:00 @@ -348,10 +348,11 @@ asm("mrc p15, 0, %0, cr0, cr0, 0;" : "=r"(processor_id) :); /* - * Determine which PCI read method to use + * Determine which PCI read method to use. + * Rev 0 IXP425 requires workaround. */ - if (!(processor_id & 0xf)) { - printk("PCI: IXP4xx A0 silicon detected - " + if (!(processor_id & 0xf) && !cpu_is_ixp46x()) { + printk("PCI: IXP42x A0 silicon detected - " "PCI Non-Prefetch Workaround Enabled\n"); ixp4xx_pci_read = ixp4xx_pci_read_errata; } else diff -Nru a/arch/arm/mach-ixp4xx/common.c b/arch/arm/mach-ixp4xx/common.c --- a/arch/arm/mach-ixp4xx/common.c 2005-01-05 17:43:37 -08:00 +++ b/arch/arm/mach-ixp4xx/common.c 2005-01-05 17:43:37 -08:00 @@ -145,7 +145,10 @@ **************************************************************************/ static void ixp4xx_irq_mask(unsigned int irq) { - *IXP4XX_ICMR &= ~(1 << irq); + if (cpu_is_ixp46x() && irq >= 32) + *IXP4XX_ICMR2 &= ~(1 << (irq - 32)); + else + *IXP4XX_ICMR &= ~(1 << irq); } static void ixp4xx_irq_mask_ack(unsigned int irq) @@ -155,13 +158,13 @@ static void ixp4xx_irq_unmask(unsigned int irq) { - static int irq2gpio[NR_IRQS] = { + static int irq2gpio[32] = { -1, -1, -1, -1, -1, -1, 0, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, }; - int line = irq2gpio[irq]; + int line = (irq < 32) ? irq2gpio[irq] : -1; /* * This only works for LEVEL gpio IRQs as per the IXP4xx developer's @@ -171,7 +174,10 @@ if (line >= 0) gpio_line_isr_clear(line); - *IXP4XX_ICMR |= (1 << irq); + if (cpu_is_ixp46x() && irq >= 32) + *IXP4XX_ICMR2 |= (1 << (irq - 32)); + else + *IXP4XX_ICMR |= (1 << irq); } static struct irqchip ixp4xx_irq_chip = { @@ -189,6 +195,14 @@ /* Disable all interrupt */ *IXP4XX_ICMR = 0x0; + + if (cpu_is_ixp46x()) { + /* Route upper 32 sources to IRQ instead of FIQ */ + *IXP4XX_ICLR2 = 0x00; + + /* Disable upper 32 interrupts */ + *IXP4XX_ICMR2 = 0x00; + } for(i = 0; i < NR_IRQS; i++) { diff -Nru a/arch/arm/mach-ixp4xx/ixdp425-pci.c b/arch/arm/mach-ixp4xx/ixdp425-pci.c --- a/arch/arm/mach-ixp4xx/ixdp425-pci.c 2005-01-05 17:43:37 -08:00 +++ b/arch/arm/mach-ixp4xx/ixdp425-pci.c 2005-01-05 17:43:37 -08:00 @@ -73,9 +73,8 @@ int __init ixdp425_pci_init(void) { - if (machine_is_ixdp425() || - machine_is_ixcdp1100() || - machine_is_avila()) + if (machine_is_ixdp425() || machine_is_ixcdp1100() || + machine_is_avila() || machine_is_ixdp465()) pci_common_init(&ixdp425_pci); return 0; } diff -Nru a/arch/arm/mach-ixp4xx/ixdp425-setup.c b/arch/arm/mach-ixp4xx/ixdp425-setup.c --- a/arch/arm/mach-ixp4xx/ixdp425-setup.c 2005-01-05 17:43:37 -08:00 +++ b/arch/arm/mach-ixp4xx/ixdp425-setup.c 2005-01-05 17:43:37 -08:00 @@ -108,10 +108,28 @@ static void __init ixdp425_init(void) { + /* + * IXP465 has 32MB window + */ + if (machine_is_ixdp465()) { + ixdp425_flash_resource.end += IXDP425_FLASH_SIZE; + } + platform_add_devices(&ixdp425_devices, ARRAY_SIZE(ixdp425_devices)); } MACHINE_START(IXDP425, "Intel IXDP425 Development Platform") + MAINTAINER("MontaVista Software, Inc.") + BOOT_MEM(PHYS_OFFSET, IXP4XX_PERIPHERAL_BASE_PHYS, + IXP4XX_PERIPHERAL_BASE_VIRT) + MAPIO(ixdp425_map_io) + INITIRQ(ixp4xx_init_irq) + .timer = &ixp4xx_timer, + BOOT_PARAMS(0x0100) + INIT_MACHINE(ixdp425_init) +MACHINE_END + +MACHINE_START(IXDP465, "Intel IXDP465 Development Platform") MAINTAINER("MontaVista Software, Inc.") BOOT_MEM(PHYS_OFFSET, IXP4XX_PERIPHERAL_BASE_PHYS, IXP4XX_PERIPHERAL_BASE_VIRT) diff -Nru a/arch/arm/mach-omap/board-h2.c b/arch/arm/mach-omap/board-h2.c --- a/arch/arm/mach-omap/board-h2.c 2005-01-05 17:43:40 -08:00 +++ b/arch/arm/mach-omap/board-h2.c 2005-01-05 17:43:40 -08:00 @@ -32,10 +32,11 @@ #include #include #include -#include #include "common.h" +extern int omap_gpio_init(void); + static int __initdata h2_serial_ports[OMAP_MAX_NR_PORTS] = {1, 1, 1}; static struct resource h2_smc91x_resources[] = { @@ -45,8 +46,8 @@ .flags = IORESOURCE_MEM, }, [1] = { - .start = 0, /* Really GPIO 0 */ - .end = 0, + .start = OMAP_GPIO_IRQ(0), + .end = OMAP_GPIO_IRQ(0), .flags = IORESOURCE_IRQ, }, }; @@ -62,9 +63,20 @@ &h2_smc91x_device, }; +static void __init h2_init_smc91x(void) +{ + if ((omap_request_gpio(0)) < 0) { + printk("Error requesting gpio 0 for smc91x irq\n"); + return; + } + omap_set_gpio_edge_ctrl(0, OMAP_GPIO_FALLING_EDGE); +} + void h2_init_irq(void) { omap_init_irq(); + omap_gpio_init(); + h2_init_smc91x(); } static struct omap_usb_config h2_usb_config __initdata = { diff -Nru a/arch/arm/mach-omap/board-h3.c b/arch/arm/mach-omap/board-h3.c --- a/arch/arm/mach-omap/board-h3.c 2005-01-05 17:43:35 -08:00 +++ b/arch/arm/mach-omap/board-h3.c 2005-01-05 17:43:35 -08:00 @@ -28,16 +28,13 @@ #include #include #include +#include #include #include -#include #include "common.h" -void h3_init_irq(void) -{ - omap_init_irq(); -} +extern int omap_gpio_init(void); static int __initdata h3_serial_ports[OMAP_MAX_NR_PORTS] = {1, 1, 1}; @@ -48,8 +45,8 @@ .flags = IORESOURCE_MEM, }, [1] = { - .start = 0, - .end = 0, + .start = OMAP_GPIO_IRQ(40), + .end = OMAP_GPIO_IRQ(40), .flags = IORESOURCE_IRQ, }, }; @@ -68,6 +65,23 @@ static void __init h3_init(void) { (void) platform_add_devices(devices, ARRAY_SIZE(devices)); +} + +static void __init h3_init_smc91x(void) +{ + omap_cfg_reg(W15_1710_GPIO40); + if (omap_request_gpio(40) < 0) { + printk("Error requesting gpio 40 for smc91x irq\n"); + return; + } + omap_set_gpio_edge_ctrl(40, OMAP_GPIO_FALLING_EDGE); +} + +void h3_init_irq(void) +{ + omap_init_irq(); + omap_gpio_init(); + h3_init_smc91x(); } static void __init h3_map_io(void) diff -Nru a/arch/arm/mach-omap/board-innovator.c b/arch/arm/mach-omap/board-innovator.c --- a/arch/arm/mach-omap/board-innovator.c 2005-01-05 17:43:35 -08:00 +++ b/arch/arm/mach-omap/board-innovator.c 2005-01-05 17:43:35 -08:00 @@ -30,13 +30,12 @@ #include #include #include -#include #include "common.h" -#ifdef CONFIG_ARCH_OMAP1510 +static int __initdata innovator_serial_ports[OMAP_MAX_NR_PORTS] = {1, 1, 1}; -extern int omap_gpio_init(void); +#ifdef CONFIG_ARCH_OMAP1510 /* Only FPGA needs to be mapped here. All others are done with ioremap */ static struct map_desc innovator1510_io_desc[] __initdata = { @@ -44,8 +43,6 @@ MT_DEVICE }, }; -static int __initdata innovator_serial_ports[OMAP_MAX_NR_PORTS] = {1, 1, 1}; - static struct resource innovator1510_smc91x_resources[] = { [0] = { .start = OMAP1510_FPGA_ETHR_START, /* Physical */ @@ -81,8 +78,8 @@ .flags = IORESOURCE_MEM, }, [1] = { - .start = 0, /* Really GPIO 0 */ - .end = 0, + .start = OMAP_GPIO_IRQ(0), + .end = OMAP_GPIO_IRQ(0), .flags = IORESOURCE_IRQ, }, }; @@ -100,15 +97,31 @@ #endif /* CONFIG_ARCH_OMAP16XX */ +static void __init innovator_init_smc91x(void) +{ + if (cpu_is_omap1510()) { + fpga_write(fpga_read(OMAP1510_FPGA_RST) & ~1, + OMAP1510_FPGA_RST); + udelay(750); + } else { + if ((omap_request_gpio(0)) < 0) { + printk("Error requesting gpio 0 for smc91x irq\n"); + return; + } + omap_set_gpio_edge_ctrl(0, OMAP_GPIO_RISING_EDGE); + } +} + void innovator_init_irq(void) { omap_init_irq(); + omap_gpio_init(); #ifdef CONFIG_ARCH_OMAP1510 if (cpu_is_omap1510()) { - omap_gpio_init(); omap1510_fpga_init_irq(); } #endif + innovator_init_smc91x(); } #ifdef CONFIG_ARCH_OMAP1510 diff -Nru a/arch/arm/mach-omap/board-osk.c b/arch/arm/mach-omap/board-osk.c --- a/arch/arm/mach-omap/board-osk.c 2005-01-05 17:43:39 -08:00 +++ b/arch/arm/mach-omap/board-osk.c 2005-01-05 17:43:39 -08:00 @@ -39,7 +39,6 @@ #include #include #include -#include #include "common.h" @@ -57,8 +56,8 @@ .flags = IORESOURCE_MEM, }, [1] = { - .start = 0, /* Really GPIO 0 */ - .end = 0, + .start = OMAP_GPIO_IRQ(0), + .end = OMAP_GPIO_IRQ(0), .flags = IORESOURCE_IRQ, }, }; @@ -74,9 +73,20 @@ &osk5912_smc91x_device, }; +static void __init osk_init_smc91x(void) +{ + if ((omap_request_gpio(0)) < 0) { + printk("Error requesting gpio 0 for smc91x irq\n"); + return; + } + omap_set_gpio_edge_ctrl(0, OMAP_GPIO_RISING_EDGE); +} + void osk_init_irq(void) { omap_init_irq(); + omap_gpio_init(); + osk_init_smc91x(); } static struct omap_usb_config osk_usb_config __initdata = { diff -Nru a/arch/arm/mach-omap/board-perseus2.c b/arch/arm/mach-omap/board-perseus2.c --- a/arch/arm/mach-omap/board-perseus2.c 2005-01-05 17:43:38 -08:00 +++ b/arch/arm/mach-omap/board-perseus2.c 2005-01-05 17:43:38 -08:00 @@ -14,6 +14,7 @@ #include #include #include +#include #include #include @@ -28,11 +29,6 @@ #include "common.h" -void omap_perseus2_init_irq(void) -{ - omap_init_irq(); -} - static struct resource smc91x_resources[] = { [0] = { .start = H2P2_DBG_FPGA_ETHR_START, /* Physical */ @@ -62,6 +58,22 @@ static void __init omap_perseus2_init(void) { (void) platform_add_devices(devices, ARRAY_SIZE(devices)); +} + +static void __init perseus2_init_smc91x(void) +{ + fpga_write(1, H2P2_DBG_FPGA_LAN_RESET); + mdelay(50); + fpga_write(fpga_read(H2P2_DBG_FPGA_LAN_RESET) & ~1, + H2P2_DBG_FPGA_LAN_RESET); + mdelay(50); +} + +void omap_perseus2_init_irq(void) +{ + omap_init_irq(); + omap_gpio_init(); + perseus2_init_smc91x(); } /* Only FPGA needs to be mapped here. All others are done with ioremap */ diff -Nru a/arch/arm/mach-omap/common.c b/arch/arm/mach-omap/common.c --- a/arch/arm/mach-omap/common.c 2005-01-05 17:43:39 -08:00 +++ b/arch/arm/mach-omap/common.c 2005-01-05 17:43:39 -08:00 @@ -30,8 +30,6 @@ #include #include #include -#include - #include "clock.h" @@ -307,14 +305,14 @@ _omap_map_io(); } -static inline unsigned int omap_serial_in(struct plat_serial8250_port *up, +static inline unsigned int omap_serial_in(struct plat_serial8250_port *up, int offset) { offset <<= up->regshift; return (unsigned int)__raw_readb(up->membase + offset); } -static inline void omap_serial_outp(struct plat_serial8250_port *p, int offset, +static inline void omap_serial_outp(struct plat_serial8250_port *p, int offset, int value) { offset <<= p->regshift; @@ -323,12 +321,14 @@ /* * Internal UARTs need to be initialized for the 8250 autoconfig to work - * properly. + * properly. Note that the TX watermark initialization may not be needed + * once the 8250.c watermark handling code is merged. */ static void __init omap_serial_reset(struct plat_serial8250_port *p) { - omap_serial_outp(p, UART_OMAP_MDR1, 0x07); /* disable UART */ - omap_serial_outp(p, UART_OMAP_MDR1, 0x00); /* enable UART */ + omap_serial_outp(p, UART_OMAP_MDR1, 0x07); /* disable UART */ + omap_serial_outp(p, UART_OMAP_SCR, 0x08); /* TX watermark */ + omap_serial_outp(p, UART_OMAP_MDR1, 0x00); /* enable UART */ if (!cpu_is_omap1510()) { omap_serial_outp(p, UART_OMAP_SYSC, 0x01); diff -Nru a/arch/arm/mach-omap/dma.c b/arch/arm/mach-omap/dma.c --- a/arch/arm/mach-omap/dma.c 2005-01-05 17:43:39 -08:00 +++ b/arch/arm/mach-omap/dma.c 2005-01-05 17:43:39 -08:00 @@ -6,6 +6,7 @@ * DMA channel linking for 1610 by Samuel Ortiz * Graphics DMA and LCD DMA graphics tranformations * by Imre Deak + * Some functions based on earlier dma-omap.c Copyright (C) 2001 RidgeRun, Inc. * * Support functions for the OMAP internal DMA channels. * @@ -477,10 +478,6 @@ if (dev_id == 0) break; } - if (dev_id != 0 && dma_chan[ch].dev_id == dev_id) { - spin_unlock_irqrestore(&dma_chan_lock, flags); - return -EAGAIN; - } } if (free_ch == -1) { spin_unlock_irqrestore(&dma_chan_lock, flags); @@ -931,6 +928,50 @@ OMAP1610_DMA_LCD_CCR); } +/* + * Clears any DMA state so the DMA engine is ready to restart with new buffers + * through omap_start_dma(). Any buffers in flight are discarded. + */ +void omap_clear_dma(int lch) +{ + unsigned long flags; + int status; + + local_irq_save(flags); + omap_writew(omap_readw(OMAP_DMA_CCR(lch)) & ~OMAP_DMA_CCR_EN, + OMAP_DMA_CCR(lch)); + status = OMAP_DMA_CSR(lch); /* clear pending interrupts */ + local_irq_restore(flags); +} + +/* + * Returns current physical source address for the given DMA channel. + * If the channel is running the caller must disable interrupts prior calling + * this function and process the returned value before re-enabling interrupt to + * prevent races with the interrupt handler. Note that in continuous mode there + * is a chance for CSSA_L register overflow inbetween the two reads resulting + * in incorrect return value. + */ +dma_addr_t omap_get_dma_src_pos(int lch) +{ + return (dma_addr_t) (OMAP_DMA_CSSA_L(lch) | + (OMAP_DMA_CSSA_U(lch) << 16)); +} + +/* + * Returns current physical destination address for the given DMA channel. + * If the channel is running the caller must disable interrupts prior calling + * this function and process the returned value before re-enabling interrupt to + * prevent races with the interrupt handler. Note that in continuous mode there + * is a chance for CDSA_L register overflow inbetween the two reads resulting + * in incorrect return value. + */ +dma_addr_t omap_get_dma_dst_pos(int lch) +{ + return (dma_addr_t) (OMAP_DMA_CDSA_L(lch) | + (OMAP_DMA_CDSA_U(lch) << 16)); +} + static int __init omap_init_dma(void) { int ch, r; @@ -999,9 +1040,13 @@ } return 0; } + arch_initcall(omap_init_dma); +EXPORT_SYMBOL(omap_get_dma_src_pos); +EXPORT_SYMBOL(omap_get_dma_dst_pos); +EXPORT_SYMBOL(omap_clear_dma); EXPORT_SYMBOL(omap_set_dma_priority); EXPORT_SYMBOL(omap_request_dma); EXPORT_SYMBOL(omap_free_dma); diff -Nru a/arch/arm/mach-omap/pm.c b/arch/arm/mach-omap/pm.c --- a/arch/arm/mach-omap/pm.c 2005-01-05 17:43:36 -08:00 +++ b/arch/arm/mach-omap/pm.c 2005-01-05 17:43:36 -08:00 @@ -81,6 +81,12 @@ mask32 = omap_readl(ARM_SYSST); local_fiq_enable(); local_irq_enable(); + +#if defined(CONFIG_OMAP_32K_TIMER) && defined(CONFIG_NO_IDLE_HZ) + /* Override timer to use VST for the next cycle */ + omap_32k_timer_next_vst_interrupt(); +#endif + if ((mask32 & DSP_IDLE) == 0) { __asm__ volatile ("mcr p15, 0, r0, c7, c0, 4"); } else { @@ -508,7 +514,7 @@ */ //#include -static int omap_pm_prepare(u32 state) +static int omap_pm_prepare(suspend_state_t state) { int error = 0; @@ -535,7 +541,7 @@ * */ -static int omap_pm_enter(u32 state) +static int omap_pm_enter(suspend_state_t state) { switch (state) { @@ -563,7 +569,7 @@ * failed). */ -static int omap_pm_finish(u32 state) +static int omap_pm_finish(suspend_state_t state) { return 0; } diff -Nru a/arch/arm/mach-pxa/generic.c b/arch/arm/mach-pxa/generic.c --- a/arch/arm/mach-pxa/generic.c 2005-01-05 17:43:36 -08:00 +++ b/arch/arm/mach-pxa/generic.c 2005-01-05 17:43:36 -08:00 @@ -92,7 +92,7 @@ */ static struct map_desc standard_io_desc[] __initdata = { /* virtual physical length type */ - { 0xf2000000, 0x40000000, 0x01800000, MT_DEVICE }, /* Devs */ + { 0xf2000000, 0x40000000, 0x02000000, MT_DEVICE }, /* Devs */ { 0xf4000000, 0x44000000, 0x00100000, MT_DEVICE }, /* LCD */ { 0xf6000000, 0x48000000, 0x00100000, MT_DEVICE }, /* Mem Ctl */ { 0xf8000000, 0x4c000000, 0x00100000, MT_DEVICE }, /* USB host */ diff -Nru a/arch/arm/mach-pxa/ssp.c b/arch/arm/mach-pxa/ssp.c --- a/arch/arm/mach-pxa/ssp.c 2005-01-05 17:43:39 -08:00 +++ b/arch/arm/mach-pxa/ssp.c 2005-01-05 17:43:39 -08:00 @@ -17,7 +17,8 @@ * * Revision history: * 22nd Aug 2003 Initial version. - * + * 20th Dec 2004 Added ssp_config for changing port config without + * closing the port. */ #include @@ -34,6 +35,11 @@ #include #include +#define PXA_SSP_PORTS 3 + +static DECLARE_MUTEX(sem); +static int use_count[PXA_SSP_PORTS] = {0, 0, 0}; + static irqreturn_t ssp_interrupt(int irq, void *dev_id, struct pt_regs *regs) { struct ssp_dev *dev = (struct ssp_dev*) dev_id; @@ -171,6 +177,30 @@ } /** + * ssp_config - configure SSP port settings + * @mode: port operating mode + * @flags: port config flags + * @psp_flags: port PSP config flags + * @speed: port speed + * + * Port MUST be disabled by ssp_disable before making any config changes. + */ +int ssp_config(struct ssp_dev *dev, u32 mode, u32 flags, u32 psp_flags, u32 speed) +{ + dev->mode = mode; + dev->flags = flags; + dev->psp_flags = psp_flags; + dev->speed = speed; + + /* set up port type, speed, port settings */ + SSCR0_P(dev->port) = (dev->speed | dev->mode); + SSCR1_P(dev->port) = dev->flags; + SSPSP_P(dev->port) = dev->psp_flags; + + return 0; +} + +/** * ssp_init - setup the SSP port * * initialise and claim resources for the SSP port. @@ -180,12 +210,23 @@ * %-EBUSY if the resources are already in use * %0 on success */ -int ssp_init(struct ssp_dev *dev, u32 port, u32 mode, u32 flags, u32 psp_flags, - u32 speed) +int ssp_init(struct ssp_dev *dev, u32 port) { int ret, irq; + if (port > PXA_SSP_PORTS || port == 0) + return -ENODEV; + + down(&sem); + if (use_count[port - 1]) { + up(&sem); + return -EBUSY; + } + use_count[port - 1]++; + if (!request_mem_region(__PREG(SSCR0_P(port)), 0x2c, "SSP")) { + use_count[port - 1]--; + up(&sem); return -EBUSY; } @@ -213,15 +254,6 @@ } dev->port = port; - dev->mode = mode; - dev->flags = flags; - dev->psp_flags = psp_flags; - dev->speed = speed; - - /* set up port type, speed, port settings */ - SSCR0_P(dev->port) = (dev->speed | dev->mode); - SSCR1_P(dev->port) = dev->flags; - SSPSP_P(dev->port) = dev->psp_flags; ret = request_irq(irq, ssp_interrupt, 0, "SSP", dev); if (ret) @@ -252,10 +284,13 @@ #endif } + up(&sem); return 0; out_region: - release_mem_region(__PREG(SSCR0_P(dev->port)), 0x2c); + release_mem_region(__PREG(SSCR0_P(port)), 0x2c); + use_count[port - 1]--; + up(&sem); return ret; } @@ -268,6 +303,7 @@ { int irq; + down(&sem); SSCR0_P(dev->port) &= ~SSCR0_SSE; /* find irq, save power and turn off SSP port clock */ @@ -306,6 +342,8 @@ free_irq(irq, dev); release_mem_region(__PREG(SSCR0_P(dev->port)), 0x2c); + use_count[dev->port - 1]--; + up(&sem); } EXPORT_SYMBOL(ssp_write_word); @@ -317,3 +355,9 @@ EXPORT_SYMBOL(ssp_restore_state); EXPORT_SYMBOL(ssp_init); EXPORT_SYMBOL(ssp_exit); +EXPORT_SYMBOL(ssp_config); + +MODULE_DESCRIPTION("PXA SSP driver"); +MODULE_AUTHOR("Liam Girdwood"); +MODULE_LICENSE("GPL"); + diff -Nru a/arch/arm/mach-s3c2410/cpu.c b/arch/arm/mach-s3c2410/cpu.c --- a/arch/arm/mach-s3c2410/cpu.c 2005-01-05 17:43:37 -08:00 +++ b/arch/arm/mach-s3c2410/cpu.c 2005-01-05 17:43:37 -08:00 @@ -46,6 +46,7 @@ unsigned long idcode; unsigned long idmask; void (*map_io)(struct map_desc *mach_desc, int size); + void (*init_uarts)(struct s3c2410_uartcfg *cfg, int no); int (*init)(void); const char *name; }; @@ -59,32 +60,36 @@ static struct cpu_table cpu_ids[] __initdata = { { - .idcode = 0x32410000, - .idmask = 0xffffffff, - .map_io = s3c2410_map_io, - .init = s3c2410_init, - .name = name_s3c2410 + .idcode = 0x32410000, + .idmask = 0xffffffff, + .map_io = s3c2410_map_io, + .init_uarts = s3c2410_init_uarts, + .init = s3c2410_init, + .name = name_s3c2410 }, { - .idcode = 0x32410002, - .idmask = 0xffffffff, - .map_io = s3c2410_map_io, - .init = s3c2410_init, - .name = name_s3c2410a + .idcode = 0x32410002, + .idmask = 0xffffffff, + .map_io = s3c2410_map_io, + .init_uarts = s3c2410_init_uarts, + .init = s3c2410_init, + .name = name_s3c2410a }, { - .idcode = 0x32440000, - .idmask = 0xffffffff, - .map_io = s3c2440_map_io, - .init = s3c2440_init, - .name = name_s3c2440 + .idcode = 0x32440000, + .idmask = 0xffffffff, + .map_io = s3c2440_map_io, + .init_uarts = s3c2440_init_uarts, + .init = s3c2440_init, + .name = name_s3c2440 }, { - .idcode = 0x32440001, - .idmask = 0xffffffff, - .map_io = s3c2440_map_io, - .init = s3c2440_init, - .name = name_s3c2440a + .idcode = 0x32440001, + .idmask = 0xffffffff, + .map_io = s3c2440_map_io, + .init_uarts = s3c2440_init_uarts, + .init = s3c2440_init, + .name = name_s3c2440a } }; @@ -160,6 +165,16 @@ (cpu->map_io)(mach_desc, size); } +void __init s3c24xx_init_uarts(struct s3c2410_uartcfg *cfg, int no) +{ + if (cpu == NULL) + return; + + if (cpu->init_uarts == NULL) { + printk(KERN_ERR "s3c24xx_init_uarts: cpu has no uart init\n"); + } else + (cpu->init_uarts)(cfg, no); +} static int __init s3c_arch_init(void) { int ret; diff -Nru a/arch/arm/mach-s3c2410/cpu.h b/arch/arm/mach-s3c2410/cpu.h --- a/arch/arm/mach-s3c2410/cpu.h 2005-01-05 17:43:35 -08:00 +++ b/arch/arm/mach-s3c2410/cpu.h 2005-01-05 17:43:35 -08:00 @@ -1,7 +1,7 @@ /* arch/arm/mach-s3c2410/cpu.h * - * Copyright (c) 2004 Simtec Electronics - * Ben Dooks + * Copyright (c) 2004-2005 Simtec Electronics + * Ben Dooks * * Header file for S3C24XX CPU support * @@ -12,6 +12,7 @@ * Modifications: * 24-Aug-2004 BJD Start of generic S3C24XX support * 18-Oct-2004 BJD Moved board struct into this file + * 04-Jan-2005 BJD New uart initialisation */ #define IODESC_ENT(x) { S3C2410_VA_##x, S3C2410_PA_##x, S3C2410_SZ_##x, MT_DEVICE } @@ -22,10 +23,15 @@ #define print_mhz(m) ((m) / MHZ), ((m / 1000) % 1000) +/* forward declaration */ +struct s3c2410_uartcfg; + #ifdef CONFIG_CPU_S3C2410 extern int s3c2410_init(void); extern void s3c2410_map_io(struct map_desc *mach_desc, int size); +extern void s3c2410_init_uarts(struct s3c2410_uartcfg *cfg, int no); #else +#define s3c2410_init_uarts NULL #define s3c2410_map_io NULL #define s3c2410_init NULL #endif @@ -33,13 +39,17 @@ #ifdef CONFIG_CPU_S3C2440 extern int s3c2440_init(void); extern void s3c2440_map_io(struct map_desc *mach_desc, int size); +extern void s3c2440_init_uarts(struct s3c2410_uartcfg *cfg, int no); #else +#define s3c2440_init_uarts NULL #define s3c2440_map_io NULL #define s3c2440_init NULL #endif extern void s3c24xx_init_io(struct map_desc *mach_desc, int size); +extern void s3c24xx_init_uarts(struct s3c2410_uartcfg *cfg, int no); + /* the board structure is used at first initialsation time * to get info such as the devices to register for this * board. This is done because platfrom_add_devices() cannot @@ -55,5 +65,3 @@ }; extern void s3c24xx_set_board(struct s3c24xx_board *board); - - diff -Nru a/arch/arm/mach-s3c2410/mach-bast.c b/arch/arm/mach-s3c2410/mach-bast.c --- a/arch/arm/mach-s3c2410/mach-bast.c 2005-01-05 17:43:37 -08:00 +++ b/arch/arm/mach-s3c2410/mach-bast.c 2005-01-05 17:43:37 -08:00 @@ -1,6 +1,6 @@ /* linux/arch/arm/mach-s3c2410/mach-bast.c * - * Copyright (c) 2003,2004 Simtec Electronics + * Copyright (c) 2003-2005 Simtec Electronics * Ben Dooks * * http://www.simtec.co.uk/products/EB2410ITX/ @@ -20,6 +20,7 @@ * 18-Jan-2003 BJD Added serial port configuration * 05-Oct-2004 BJD Power management code * 04-Nov-2004 BJD Updated serial port clocks + * 04-Jan-2004 BJD New uart init call */ #include @@ -262,7 +263,7 @@ s3c24xx_uclk.parent = &s3c24xx_clkout1; s3c24xx_init_io(bast_iodesc, ARRAY_SIZE(bast_iodesc)); - s3c2410_init_uarts(bast_uartcfgs, ARRAY_SIZE(bast_uartcfgs)); + s3c24xx_init_uarts(bast_uartcfgs, ARRAY_SIZE(bast_uartcfgs)); s3c24xx_set_board(&bast_board); usb_simtec_init(); } diff -Nru a/arch/arm/mach-s3c2410/mach-h1940.c b/arch/arm/mach-s3c2410/mach-h1940.c --- a/arch/arm/mach-s3c2410/mach-h1940.c 2005-01-05 17:43:38 -08:00 +++ b/arch/arm/mach-s3c2410/mach-h1940.c 2005-01-05 17:43:38 -08:00 @@ -1,6 +1,6 @@ /* linux/arch/arm/mach-s3c2410/mach-h1940.c * - * Copyright (c) 2003,2004 Simtec Electronics + * Copyright (c) 2003-2005 Simtec Electronics * Ben Dooks * * http://www.handhelds.org/projects/h1940.html @@ -20,6 +20,7 @@ * 04-Sep-2004 BJD Changed uart init, renamed ipaq_ -> h1940_ * 18-Oct-2004 BJD Updated new board structure name * 04-Nov-2004 BJD Change for new serial clock + * 04-Jan-2005 BJD Updated uart init call */ #include @@ -102,7 +103,7 @@ void __init h1940_map_io(void) { s3c24xx_init_io(h1940_iodesc, ARRAY_SIZE(h1940_iodesc)); - s3c2410_init_uarts(h1940_uartcfgs, ARRAY_SIZE(h1940_uartcfgs)); + s3c24xx_init_uarts(h1940_uartcfgs, ARRAY_SIZE(h1940_uartcfgs)); s3c24xx_set_board(&h1940_board); } diff -Nru a/arch/arm/mach-s3c2410/mach-rx3715.c b/arch/arm/mach-s3c2410/mach-rx3715.c --- a/arch/arm/mach-s3c2410/mach-rx3715.c 2005-01-05 17:43:38 -08:00 +++ b/arch/arm/mach-s3c2410/mach-rx3715.c 2005-01-05 17:43:38 -08:00 @@ -95,7 +95,7 @@ s3c24xx_xtal = 16934000; s3c24xx_init_io(rx3715_iodesc, ARRAY_SIZE(rx3715_iodesc)); - s3c2440_init_uarts(rx3715_uartcfgs, ARRAY_SIZE(rx3715_uartcfgs)); + s3c24xx_init_uarts(rx3715_uartcfgs, ARRAY_SIZE(rx3715_uartcfgs)); s3c24xx_set_board(&rx3715_board); } diff -Nru a/arch/arm/mach-s3c2410/mach-smdk2410.c b/arch/arm/mach-s3c2410/mach-smdk2410.c --- a/arch/arm/mach-s3c2410/mach-smdk2410.c 2005-01-05 17:43:40 -08:00 +++ b/arch/arm/mach-s3c2410/mach-smdk2410.c 2005-01-05 17:43:40 -08:00 @@ -98,7 +98,7 @@ void __init smdk2410_map_io(void) { s3c24xx_init_io(smdk2410_iodesc, ARRAY_SIZE(smdk2410_iodesc)); - s3c2410_init_uarts(smdk2410_uartcfgs, ARRAY_SIZE(smdk2410_uartcfgs)); + s3c24xx_init_uarts(smdk2410_uartcfgs, ARRAY_SIZE(smdk2410_uartcfgs)); s3c24xx_set_board(&smdk2410_board); } diff -Nru a/arch/arm/mach-s3c2410/mach-vr1000.c b/arch/arm/mach-s3c2410/mach-vr1000.c --- a/arch/arm/mach-s3c2410/mach-vr1000.c 2005-01-05 17:43:38 -08:00 +++ b/arch/arm/mach-s3c2410/mach-vr1000.c 2005-01-05 17:43:38 -08:00 @@ -18,6 +18,7 @@ * 05-Apr-2004 BJD Copied to make mach-vr1000.c * 18-Oct-2004 BJD Updated board struct * 04-Nov-2004 BJD Clock and serial configuration update + * 04-Jan-2004 BJD Updated uart init call */ #include @@ -204,7 +205,7 @@ s3c24xx_uclk.parent = &s3c24xx_clkout1; s3c24xx_init_io(vr1000_iodesc, ARRAY_SIZE(vr1000_iodesc)); - s3c2410_init_uarts(vr1000_uartcfgs, ARRAY_SIZE(vr1000_uartcfgs)); + s3c24xx_init_uarts(vr1000_uartcfgs, ARRAY_SIZE(vr1000_uartcfgs)); s3c24xx_set_board(&vr1000_board); usb_simtec_init(); } diff -Nru a/arch/arm/mach-s3c2410/s3c2410.h b/arch/arm/mach-s3c2410/s3c2410.h --- a/arch/arm/mach-s3c2410/s3c2410.h 2005-01-05 17:43:37 -08:00 +++ b/arch/arm/mach-s3c2410/s3c2410.h 2005-01-05 17:43:37 -08:00 @@ -14,17 +14,14 @@ * 20-Aug-2004 BJD Added s3c2410_board struct * 04-Sep-2004 BJD Added s3c2410_init_uarts() call * 17-Oct-2004 BJD Moved board out to cpu + * 04-Jan-2005 BJD Changed uart init */ -struct s3c2410_uartcfg; - extern void s3c2410_map_io(struct map_desc *, int count); -extern void s3c2410_init_uarts(struct s3c2410_uartcfg *, int no); - extern void s3c2410_init_irq(void); struct sys_timer; extern struct sys_timer s3c2410_timer; -extern void s3c2410_init_uarts(struct s3c2410_uartcfg *cfg, int no); + diff -Nru a/arch/arm/mach-s3c2410/s3c2440.c b/arch/arm/mach-s3c2410/s3c2440.c --- a/arch/arm/mach-s3c2410/s3c2440.c 2005-01-05 17:43:35 -08:00 +++ b/arch/arm/mach-s3c2410/s3c2440.c 2005-01-05 17:43:35 -08:00 @@ -59,6 +59,7 @@ IODESC_ENT(LCD), IODESC_ENT(TIMER), IODESC_ENT(ADC), + IODESC_ENT(WATCHDOG), }; static struct resource s3c_uart0_resource[] = { @@ -243,7 +244,7 @@ s3c24xx_hclk = s3c24xx_fclk / s3c2440_hdiv; s3c24xx_pclk = s3c24xx_hclk / ((clkdiv & S3C2440_CLKDIVN_PDIVN)? 2:1); - /* print brieft summary of clocks, etc */ + /* print brief summary of clocks, etc */ printk("S3C2440: core %ld.%03ld MHz, memory %ld.%03ld MHz, peripheral %ld.%03ld MHz\n", print_mhz(s3c24xx_fclk), print_mhz(s3c24xx_hclk), diff -Nru a/arch/arm/mach-s3c2410/s3c2440.h b/arch/arm/mach-s3c2410/s3c2440.h --- a/arch/arm/mach-s3c2410/s3c2440.h 2005-01-05 17:43:38 -08:00 +++ b/arch/arm/mach-s3c2410/s3c2440.h 2005-01-05 17:43:38 -08:00 @@ -12,12 +12,9 @@ * Modifications: * 24-Aug-2004 BJD Start of S3C2440 CPU support * 04-Nov-2004 BJD Added s3c2440_init_uarts() + * 04-Jan-2004 BJD Moved uart init to cpu code */ -struct s3c2410_uartcfg; - extern void s3c2440_init_irq(void); extern void s3c2440_init_time(void); - -extern void s3c2440_init_uarts(struct s3c2410_uartcfg *cfg, int no); diff -Nru a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig --- a/arch/arm/mm/Kconfig 2005-01-05 17:43:40 -08:00 +++ b/arch/arm/mm/Kconfig 2005-01-05 17:43:40 -08:00 @@ -82,9 +82,9 @@ # ARM922T config CPU_ARM922T - bool - depends on ARCH_CAMELOT || ARCH_LH7A40X - default y + bool "Support ARM922T processor" if ARCH_INTEGRATOR + depends on ARCH_CAMELOT || ARCH_LH7A40X || ARCH_INTEGRATOR + default y if ARCH_CAMELOT || ARCH_LH7A40X select CPU_32v4 select CPU_ABRT_EV4T select CPU_CACHE_V4WT @@ -101,9 +101,9 @@ # ARM925T config CPU_ARM925T - bool + bool "Support ARM925T processor" if ARCH_OMAP depends on ARCH_OMAP1510 - default y + default y if ARCH_OMAP1510 select CPU_32v4 select CPU_ABRT_EV4T select CPU_CACHE_V4WT @@ -121,8 +121,8 @@ # ARM926T config CPU_ARM926T bool "Support ARM926T processor" if ARCH_INTEGRATOR - depends on ARCH_INTEGRATOR || ARCH_VERSATILE_PB || MACH_VERSATILE_AB || ARCH_OMAP730 || ARCH_OMAP1610 || ARCH_OMAP5912 - default y if ARCH_VERSATILE_PB || MACH_VERSATILE_AB + depends on ARCH_INTEGRATOR || ARCH_VERSATILE_PB || MACH_VERSATILE_AB || ARCH_OMAP730 || ARCH_OMAP16XX + default y if ARCH_VERSATILE_PB || MACH_VERSATILE_AB || ARCH_OMAP730 || ARCH_OMAP16XX select CPU_32v5 select CPU_ABRT_EV5TJ select CPU_CACHE_VIVT @@ -392,6 +392,7 @@ config CPU_DCACHE_WRITETHROUGH bool "Force write through D-cache" depends on (CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020) && !CPU_DISABLE_DCACHE + default y if CPU_ARM925T help Say Y here to use the data cache in writethough mode. Unless you specifically require this or are unsure, say N. diff -Nru a/arch/arm/mm/alignment.c b/arch/arm/mm/alignment.c --- a/arch/arm/mm/alignment.c 2005-01-05 17:43:35 -08:00 +++ b/arch/arm/mm/alignment.c 2005-01-05 17:43:35 -08:00 @@ -3,6 +3,9 @@ * * Copyright (C) 1995 Linus Torvalds * Modifications for ARM processor (c) 1995-2001 Russell King + * Thumb aligment fault fixups (c) 2004 MontaVista Software, Inc. + * - Adapted from gdb/sim/arm/thumbemu.c -- Thumb instruction emulation. + * Copyright (C) 1996, Cygnus Software Technologies Ltd. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as @@ -449,16 +452,146 @@ return TYPE_ERROR; } +/* + * Convert Thumb ld/st instruction forms to equivalent ARM instructions so + * we can reuse ARM userland alignment fault fixups for Thumb. + * + * This implementation was initially based on the algorithm found in + * gdb/sim/arm/thumbemu.c. It is basically just a code reduction of same + * to convert only Thumb ld/st instruction forms to equivalent ARM forms. + * + * NOTES: + * 1. Comments below refer to ARM ARM DDI0100E Thumb Instruction sections. + * 2. If for some reason we're passed an non-ld/st Thumb instruction to + * decode, we return 0xdeadc0de. This should never happen under normal + * circumstances but if it does, we've got other problems to deal with + * elsewhere and we obviously can't fix those problems here. + */ + +static unsigned long +thumb2arm(u16 tinstr) +{ + u32 L = (tinstr & (1<<11)) >> 11; + + switch ((tinstr & 0xf800) >> 11) { + /* 6.5.1 Format 1: */ + case 0x6000 >> 11: /* 7.1.52 STR(1) */ + case 0x6800 >> 11: /* 7.1.26 LDR(1) */ + case 0x7000 >> 11: /* 7.1.55 STRB(1) */ + case 0x7800 >> 11: /* 7.1.30 LDRB(1) */ + return 0xe5800000 | + ((tinstr & (1<<12)) << (22-12)) | /* fixup */ + (L<<20) | /* L==1? */ + ((tinstr & (7<<0)) << (12-0)) | /* Rd */ + ((tinstr & (7<<3)) << (16-3)) | /* Rn */ + ((tinstr & (31<<6)) >> /* immed_5 */ + (6 - ((tinstr & (1<<12)) ? 0 : 2))); + case 0x8000 >> 11: /* 7.1.57 STRH(1) */ + case 0x8800 >> 11: /* 7.1.32 LDRH(1) */ + return 0xe1c000b0 | + (L<<20) | /* L==1? */ + ((tinstr & (7<<0)) << (12-0)) | /* Rd */ + ((tinstr & (7<<3)) << (16-3)) | /* Rn */ + ((tinstr & (7<<6)) >> (6-1)) | /* immed_5[2:0] */ + ((tinstr & (3<<9)) >> (9-8)); /* immed_5[4:3] */ + + /* 6.5.1 Format 2: */ + case 0x5000 >> 11: + case 0x5800 >> 11: + { + static const u32 subset[8] = { + 0xe7800000, /* 7.1.53 STR(2) */ + 0xe18000b0, /* 7.1.58 STRH(2) */ + 0xe7c00000, /* 7.1.56 STRB(2) */ + 0xe19000d0, /* 7.1.34 LDRSB */ + 0xe7900000, /* 7.1.27 LDR(2) */ + 0xe19000b0, /* 7.1.33 LDRH(2) */ + 0xe7d00000, /* 7.1.31 LDRB(2) */ + 0xe19000f0 /* 7.1.35 LDRSH */ + }; + return subset[(tinstr & (7<<9)) >> 9] | + ((tinstr & (7<<0)) << (12-0)) | /* Rd */ + ((tinstr & (7<<3)) << (16-3)) | /* Rn */ + ((tinstr & (7<<6)) >> (6-0)); /* Rm */ + } + + /* 6.5.1 Format 3: */ + case 0x4800 >> 11: /* 7.1.28 LDR(3) */ + /* NOTE: This case is not technically possible. We're + * loading 32-bit memory data via PC relative + * addressing mode. So we can and should eliminate + * this case. But I'll leave it here for now. + */ + return 0xe59f0000 | + ((tinstr & (7<<8)) << (12-8)) | /* Rd */ + ((tinstr & 255) << (2-0)); /* immed_8 */ + + /* 6.5.1 Format 4: */ + case 0x9000 >> 11: /* 7.1.54 STR(3) */ + case 0x9800 >> 11: /* 7.1.29 LDR(4) */ + return 0xe58d0000 | + (L<<20) | /* L==1? */ + ((tinstr & (7<<8)) << (12-8)) | /* Rd */ + ((tinstr & 255) << 2); /* immed_8 */ + + /* 6.6.1 Format 1: */ + case 0xc000 >> 11: /* 7.1.51 STMIA */ + case 0xc800 >> 11: /* 7.1.25 LDMIA */ + { + u32 Rn = (tinstr & (7<<8)) >> 8; + u32 W = ((L<> 11: /* 7.1.48 PUSH */ + case 0xb800 >> 11: /* 7.1.47 POP */ + if ((tinstr & (3 << 9)) == 0x0400) { + static const u32 subset[4] = { + 0xe92d0000, /* STMDB sp!,{registers} */ + 0xe92d4000, /* STMDB sp!,{registers,lr} */ + 0xe8bd0000, /* LDMIA sp!,{registers} */ + 0xe8bd8000 /* LDMIA sp!,{registers,pc} */ + }; + return subset[(L<<1) | ((tinstr & (1<<8)) >> 8)] | + (tinstr & 255); /* register_list */ + } + /* Else fall through for illegal instruction case */ + + default: + return 0xdeadc0de; + } +} + static int do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs) { union offset_union offset; - unsigned long instr, instrptr; + unsigned long instr = 0, instrptr; int (*handler)(unsigned long addr, unsigned long instr, struct pt_regs *regs); unsigned int type; + mm_segment_t fs; + unsigned int fault; + u16 tinstr = 0; instrptr = instruction_pointer(regs); - instr = *(unsigned long *)instrptr; + + fs = get_fs(); + set_fs(KERNEL_DS); + if thumb_mode(regs) { + fault = __get_user(tinstr, (u16 *)(instrptr & ~1)); + if (!(fault)) + instr = thumb2arm(tinstr); + } else + fault = __get_user(instr, (u32 *)instrptr); + set_fs(fs); + + if (fault) { + type = TYPE_FAULT; + goto bad_or_fault; + } if (user_mode(regs)) goto user; @@ -467,7 +600,7 @@ fixup: - regs->ARM_pc += 4; + regs->ARM_pc += thumb_mode(regs) ? 2 : 4; switch (CODING_BITS(instr)) { case 0x00000000: /* ldrh or strh */ @@ -537,7 +670,7 @@ bad_or_fault: if (type == TYPE_ERROR) goto bad; - regs->ARM_pc -= 4; + regs->ARM_pc -= thumb_mode(regs) ? 2 : 4; /* * We got a fault - fix it up, or die. */ @@ -549,7 +682,9 @@ * Oops, we didn't handle the instruction. */ printk(KERN_ERR "Alignment trap: not handling instruction " - "%08lx at [<%08lx>]\n", instr, instrptr); + "%0*lx at [<%08lx>]\n", + thumb_mode(regs) ? 4 : 8, + thumb_mode(regs) ? tinstr : instr, instrptr); ai_skipped += 1; return 1; @@ -557,9 +692,12 @@ ai_user += 1; if (ai_usermode & 1) - printk("Alignment trap: %s (%d) PC=0x%08lx Instr=0x%08lx " + printk("Alignment trap: %s (%d) PC=0x%08lx Instr=0x%0*lx " "Address=0x%08lx FSR 0x%03x\n", current->comm, - current->pid, instrptr, instr, addr, fsr); + current->pid, instrptr, + thumb_mode(regs) ? 4 : 8, + thumb_mode(regs) ? tinstr : instr, + addr, fsr); if (ai_usermode & 2) goto fixup; diff -Nru a/arch/arm/mm/mm-armv.c b/arch/arm/mm/mm-armv.c --- a/arch/arm/mm/mm-armv.c 2005-01-05 17:43:38 -08:00 +++ b/arch/arm/mm/mm-armv.c 2005-01-05 17:43:38 -08:00 @@ -239,7 +239,8 @@ /* * Create a SECTION PGD between VIRT and PHYS in domain - * DOMAIN with protection PROT + * DOMAIN with protection PROT. This operates on half- + * pgdir entry increments. */ static inline void alloc_init_section(unsigned long virt, unsigned long phys, int prot) @@ -481,6 +482,9 @@ length -= PAGE_SIZE; } + /* + * A section mapping covers half a "pgdir" entry. + */ while (length >= (PGDIR_SIZE / 2)) { alloc_init_section(virt, virt + off, prot_sect); @@ -522,6 +526,7 @@ pmdval |= PMD_BIT4; pmd = pmd_offset(pgd + i, i << PGDIR_SHIFT); set_pmd(pmd, __pmd(pmdval)); + set_pmd(pmd + 1, __pmd(pmdval + 1 << (PGDIR_SHIFT - 1))); } } diff -Nru a/arch/arm/mm/proc-arm1020.S b/arch/arm/mm/proc-arm1020.S --- a/arch/arm/mm/proc-arm1020.S 2005-01-05 17:43:35 -08:00 +++ b/arch/arm/mm/proc-arm1020.S 2005-01-05 17:43:35 -08:00 @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -432,7 +433,10 @@ mcr p15, 0, r0, c7, c10, 4 @ drain write buffer on v4 mcr p15, 0, r0, c8, c7 @ invalidate I,D TLBs on v4 mcr p15, 0, r4, c2, c0 @ load page table pointer - mov r0, #0x1f @ Domains 0, 1 = client + mov r0, #(domain_val(DOMAIN_USER, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_TABLE, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_IO, DOMAIN_CLIENT)) mcr p15, 0, r0, c3, c0 @ load domain access register mrc p15, 0, r0, c1, c0 @ get control register v4 /* @@ -522,7 +526,9 @@ __arm1020_proc_info: .long 0x4104a200 @ ARM 1020T (Architecture v5T) .long 0xff0ffff0 - .long 0x00000c02 @ mmuflags + .long PMD_TYPE_SECT | \ + PMD_SECT_AP_WRITE | \ + PMD_SECT_AP_READ b __arm1020_setup .long cpu_arch_name .long cpu_elf_name diff -Nru a/arch/arm/mm/proc-arm1020e.S b/arch/arm/mm/proc-arm1020e.S --- a/arch/arm/mm/proc-arm1020e.S 2005-01-05 17:43:37 -08:00 +++ b/arch/arm/mm/proc-arm1020e.S 2005-01-05 17:43:37 -08:00 @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -414,7 +415,11 @@ mcr p15, 0, r0, c7, c10, 4 @ drain write buffer on v4 mcr p15, 0, r0, c8, c7 @ invalidate I,D TLBs on v4 mcr p15, 0, r4, c2, c0 @ load page table pointer - mov r0, #0x1f @ Domains 0, 1 = client + mov r0, #(domain_val(DOMAIN_USER, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_TABLE, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_IO, DOMAIN_CLIENT)) + mcr p15, 0, r0, c3, c0 @ load domain access register mrc p15, 0, r0, c1, c0 @ get control register v4 /* @@ -504,7 +509,10 @@ __arm1020e_proc_info: .long 0x4105a200 @ ARM 1020TE (Architecture v5TE) .long 0xff0ffff0 - .long 0x00000c12 @ mmuflags + .long PMD_TYPE_SECT | \ + PMD_BIT4 | \ + PMD_SECT_AP_WRITE | \ + PMD_SECT_AP_READ b __arm1020e_setup .long cpu_arch_name .long cpu_elf_name diff -Nru a/arch/arm/mm/proc-arm1022.S b/arch/arm/mm/proc-arm1022.S --- a/arch/arm/mm/proc-arm1022.S 2005-01-05 17:43:39 -08:00 +++ b/arch/arm/mm/proc-arm1022.S 2005-01-05 17:43:39 -08:00 @@ -19,6 +19,7 @@ #include #include #include +#include #include #include @@ -395,7 +396,10 @@ mcr p15, 0, r0, c7, c10, 4 @ drain write buffer on v4 mcr p15, 0, r0, c8, c7 @ invalidate I,D TLBs on v4 mcr p15, 0, r4, c2, c0 @ load page table pointer - mov r0, #0x1f @ Domains 0, 1 = client + mov r0, #(domain_val(DOMAIN_USER, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_TABLE, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_IO, DOMAIN_CLIENT)) mcr p15, 0, r0, c3, c0 @ load domain access register mrc p15, 0, r0, c1, c0 @ get control register v4 /* @@ -485,7 +489,10 @@ __arm1022_proc_info: .long 0x4105a220 @ ARM 1022E (v5TE) .long 0xff0ffff0 - .long 0x00000c12 @ mmuflags + .long PMD_TYPE_SECT | \ + PMD_BIT4 | \ + PMD_SECT_AP_WRITE | \ + PMD_SECT_AP_READ b __arm1022_setup .long cpu_arch_name .long cpu_elf_name diff -Nru a/arch/arm/mm/proc-arm1026.S b/arch/arm/mm/proc-arm1026.S --- a/arch/arm/mm/proc-arm1026.S 2005-01-05 17:43:37 -08:00 +++ b/arch/arm/mm/proc-arm1026.S 2005-01-05 17:43:37 -08:00 @@ -19,6 +19,7 @@ #include #include #include +#include #include #include @@ -389,7 +390,10 @@ mov r0, #4 @ explicitly disable writeback mcr p15, 7, r0, c15, c0, 0 #endif - mov r0, #0x1f @ Domains 0, 1 = client + mov r0, #(domain_val(DOMAIN_USER, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_TABLE, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_IO, DOMAIN_CLIENT)) mcr p15, 0, r0, c3, c0 @ load domain access register mrc p15, 0, r0, c1, c0 @ get control register v4 /* @@ -480,7 +484,10 @@ __arm1026_proc_info: .long 0x4106a260 @ ARM 1026EJ-S (v5TEJ) .long 0xff0ffff0 - .long 0x00000c12 @ mmuflags + .long PMD_TYPE_SECT | \ + PMD_BIT4 | \ + PMD_SECT_AP_WRITE | \ + PMD_SECT_AP_READ b __arm1026_setup .long cpu_arch_name .long cpu_elf_name diff -Nru a/arch/arm/mm/proc-arm6_7.S b/arch/arm/mm/proc-arm6_7.S --- a/arch/arm/mm/proc-arm6_7.S 2005-01-05 17:43:40 -08:00 +++ b/arch/arm/mm/proc-arm6_7.S 2005-01-05 17:43:40 -08:00 @@ -15,6 +15,7 @@ #include #include #include +#include #include #include @@ -254,7 +255,10 @@ mcr p15, 0, r0, c7, c0 @ flush caches on v3 mcr p15, 0, r0, c5, c0 @ flush TLBs on v3 mcr p15, 0, r4, c2, c0 @ load page table pointer - mov r0, #0x1f @ Domains 0, 1 = client + mov r0, #(domain_val(DOMAIN_USER, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_TABLE, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_IO, DOMAIN_CLIENT)) mcr p15, 0, r0, c3, c0 @ load domain access register mov r0, #0x3d @ . ..RS BLDP WCAM orr r0, r0, #0x100 @ . ..01 0011 1101 @@ -266,7 +270,10 @@ mcr p15, 0, r0, c7, c0 @ flush caches on v3 mcr p15, 0, r0, c5, c0 @ flush TLBs on v3 mcr p15, 0, r4, c2, c0 @ load page table pointer - mov r0, #0x1f @ Domains 0, 1 = client + mov r0, #(domain_val(DOMAIN_IO, DOMAIN_CLIENT) | \ + domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_TABLE, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_USER, DOMAIN_MANAGER)) mcr p15, 0, r0, c3, c0 @ load domain access register mov r0, #0x7d @ . ..RS BLDP WCAM orr r0, r0, #0x100 @ . ..01 0111 1101 @@ -391,7 +398,12 @@ __arm710_proc_info: .long 0x41007100 .long 0xfff8ff00 - .long 0x00000c1e + .long PMD_TYPE_SECT | \ + PMD_SECT_BUFFERABLE | \ + PMD_SECT_CACHEABLE | \ + PMD_BIT4 | \ + PMD_SECT_AP_WRITE | \ + PMD_SECT_AP_READ b __arm7_setup .long cpu_arch_name .long cpu_elf_name diff -Nru a/arch/arm/mm/proc-arm720.S b/arch/arm/mm/proc-arm720.S --- a/arch/arm/mm/proc-arm720.S 2005-01-05 17:43:38 -08:00 +++ b/arch/arm/mm/proc-arm720.S 2005-01-05 17:43:38 -08:00 @@ -35,6 +35,7 @@ #include #include #include +#include #include #include #include @@ -131,7 +132,10 @@ mcr p15, 0, r0, c7, c7, 0 @ invalidate caches mcr p15, 0, r0, c8, c7, 0 @ flush TLB (v4) mcr p15, 0, r4, c2, c0 @ load page table pointer - mov r0, #0x1f @ Domains 0, 1 = client + mov r0, #(domain_val(DOMAIN_USER, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_TABLE, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_IO, DOMAIN_CLIENT)) mcr p15, 0, r0, c3, c0 @ load domain access register mrc p15, 0, r0, c1, c0 @ get control register @@ -146,7 +150,10 @@ mcr p15, 0, r0, c7, c7, 0 @ invalidate caches mcr p15, 0, r0, c8, c7, 0 @ flush TLB (v4) mcr p15, 0, r4, c2, c0 @ load page table pointer - mov r0, #0x1f @ Domains 0, 1 = client + mov r0, #(domain_val(DOMAIN_USER, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_TABLE, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_IO, DOMAIN_CLIENT)) mcr p15, 0, r0, c3, c0 @ load domain access register mrc p15, 0, r0, c1, c0 @ get control register @@ -206,7 +213,12 @@ __arm710_proc_info: .long 0x41807100 @ cpu_val .long 0xffffff00 @ cpu_mask - .long 0x00000c1e @ section_mmu_flags + .long PMD_TYPE_SECT | \ + PMD_SECT_BUFFERABLE | \ + PMD_SECT_CACHEABLE | \ + PMD_BIT4 | \ + PMD_SECT_AP_WRITE | \ + PMD_SECT_AP_READ b __arm710_setup @ cpu_flush .long cpu_arch_name @ arch_name .long cpu_elf_name @ elf_name @@ -222,7 +234,12 @@ __arm720_proc_info: .long 0x41807200 @ cpu_val .long 0xffffff00 @ cpu_mask - .long 0x00000c1e @ section_mmu_flags + .long PMD_TYPE_SECT | \ + PMD_SECT_BUFFERABLE | \ + PMD_SECT_CACHEABLE | \ + PMD_BIT4 | \ + PMD_SECT_AP_WRITE | \ + PMD_SECT_AP_READ b __arm720_setup @ cpu_flush .long cpu_arch_name @ arch_name .long cpu_elf_name @ elf_name diff -Nru a/arch/arm/mm/proc-arm920.S b/arch/arm/mm/proc-arm920.S --- a/arch/arm/mm/proc-arm920.S 2005-01-05 17:43:35 -08:00 +++ b/arch/arm/mm/proc-arm920.S 2005-01-05 17:43:35 -08:00 @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include @@ -383,7 +384,10 @@ mcr p15, 0, r0, c7, c10, 4 @ drain write buffer on v4 mcr p15, 0, r0, c8, c7 @ invalidate I,D TLBs on v4 mcr p15, 0, r4, c2, c0 @ load page table pointer - mov r0, #0x1f @ Domains 0, 1 = client + mov r0, #(domain_val(DOMAIN_USER, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_TABLE, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_IO, DOMAIN_CLIENT)) mcr p15, 0, r0, c3, c0 @ load domain access register mrc p15, 0, r0, c1, c0 @ get control register v4 /* @@ -464,7 +468,12 @@ __arm920_proc_info: .long 0x41009200 .long 0xff00fff0 - .long 0x00000c1e @ mmuflags + .long PMD_TYPE_SECT | \ + PMD_SECT_BUFFERABLE | \ + PMD_SECT_CACHEABLE | \ + PMD_BIT4 | \ + PMD_SECT_AP_WRITE | \ + PMD_SECT_AP_READ b __arm920_setup .long cpu_arch_name .long cpu_elf_name diff -Nru a/arch/arm/mm/proc-arm922.S b/arch/arm/mm/proc-arm922.S --- a/arch/arm/mm/proc-arm922.S 2005-01-05 17:43:39 -08:00 +++ b/arch/arm/mm/proc-arm922.S 2005-01-05 17:43:39 -08:00 @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -387,7 +388,10 @@ mcr p15, 0, r0, c7, c10, 4 @ drain write buffer on v4 mcr p15, 0, r0, c8, c7 @ invalidate I,D TLBs on v4 mcr p15, 0, r4, c2, c0 @ load page table pointer - mov r0, #0x1f @ Domains 0, 1 = client + mov r0, #(domain_val(DOMAIN_USER, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_TABLE, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_IO, DOMAIN_CLIENT)) mcr p15, 0, r0, c3, c0 @ load domain access register mrc p15, 0, r0, c1, c0 @ get control register v4 /* @@ -468,7 +472,12 @@ __arm922_proc_info: .long 0x41009220 .long 0xff00fff0 - .long 0x00000c1e @ mmuflags + .long PMD_TYPE_SECT | \ + PMD_SECT_BUFFERABLE | \ + PMD_SECT_CACHEABLE | \ + PMD_BIT4 | \ + PMD_SECT_AP_WRITE | \ + PMD_SECT_AP_READ b __arm922_setup .long cpu_arch_name .long cpu_elf_name diff -Nru a/arch/arm/mm/proc-arm925.S b/arch/arm/mm/proc-arm925.S --- a/arch/arm/mm/proc-arm925.S 2005-01-05 17:43:37 -08:00 +++ b/arch/arm/mm/proc-arm925.S 2005-01-05 17:43:37 -08:00 @@ -52,6 +52,7 @@ #include #include #include +#include #include #include #include @@ -446,7 +447,10 @@ mcr p15, 7, r0, c15, c0, 0 #endif - mov r0, #0x1f @ Domains 0, 1 = client + mov r0, #(domain_val(DOMAIN_USER, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_TABLE, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_IO, DOMAIN_CLIENT)) mcr p15, 0, r0, c3, c0 @ load domain access register mrc p15, 0, r0, c1, c0 @ get control register v4 /* @@ -536,7 +540,10 @@ __arm925_proc_info: .long 0x54029250 .long 0xfffffff0 - .long 0x00000c12 @ mmuflags + .long PMD_TYPE_SECT | \ + PMD_BIT4 | \ + PMD_SECT_AP_WRITE | \ + PMD_SECT_AP_READ b __arm925_setup .long cpu_arch_name .long cpu_elf_name @@ -552,7 +559,10 @@ __arm915_proc_info: .long 0x54029150 .long 0xfffffff0 - .long 0x00000c12 @ mmuflags + .long PMD_TYPE_SECT | \ + PMD_BIT4 | \ + PMD_SECT_AP_WRITE | \ + PMD_SECT_AP_READ b __arm925_setup .long cpu_arch_name .long cpu_elf_name diff -Nru a/arch/arm/mm/proc-arm926.S b/arch/arm/mm/proc-arm926.S --- a/arch/arm/mm/proc-arm926.S 2005-01-05 17:43:37 -08:00 +++ b/arch/arm/mm/proc-arm926.S 2005-01-05 17:43:37 -08:00 @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include @@ -396,7 +397,10 @@ mcr p15, 7, r0, c15, c0, 0 #endif - mov r0, #0x1f @ Domains 0, 1 = client + mov r0, #(domain_val(DOMAIN_USER, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_TABLE, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_IO, DOMAIN_CLIENT)) mcr p15, 0, r0, c3, c0 @ load domain access register mrc p15, 0, r0, c1, c0 @ get control register v4 /* @@ -483,7 +487,12 @@ __arm926_proc_info: .long 0x41069260 @ ARM926EJ-S (v5TEJ) .long 0xff0ffff0 - .long 0x00000c1e @ mmuflags + .long PMD_TYPE_SECT | \ + PMD_SECT_BUFFERABLE | \ + PMD_SECT_CACHEABLE | \ + PMD_BIT4 | \ + PMD_SECT_AP_WRITE | \ + PMD_SECT_AP_READ b __arm926_setup .long cpu_arch_name .long cpu_elf_name diff -Nru a/arch/arm/mm/proc-sa110.S b/arch/arm/mm/proc-sa110.S --- a/arch/arm/mm/proc-sa110.S 2005-01-05 17:43:37 -08:00 +++ b/arch/arm/mm/proc-sa110.S 2005-01-05 17:43:37 -08:00 @@ -19,6 +19,7 @@ #include #include #include +#include #include /* @@ -196,7 +197,10 @@ mcr p15, 0, r10, c7, c10, 4 @ drain write buffer on v4 mcr p15, 0, r10, c8, c7 @ invalidate I,D TLBs on v4 mcr p15, 0, r4, c2, c0 @ load page table pointer - mov r10, #0x1f @ Domains 0, 1 = client + mov r10, #(domain_val(DOMAIN_USER, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_TABLE, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_IO, DOMAIN_CLIENT)) mcr p15, 0, r10, c3, c0 @ load domain access register mov pc, lr .size __sa110_setup, . - __sa110_setup @@ -245,7 +249,11 @@ __sa110_proc_info: .long 0x4401a100 .long 0xfffffff0 - .long 0x00000c0e + .long PMD_TYPE_SECT | \ + PMD_SECT_BUFFERABLE | \ + PMD_SECT_CACHEABLE | \ + PMD_SECT_AP_WRITE | \ + PMD_SECT_AP_READ b __sa110_setup .long cpu_arch_name .long cpu_elf_name diff -Nru a/arch/arm/mm/proc-sa1100.S b/arch/arm/mm/proc-sa1100.S --- a/arch/arm/mm/proc-sa1100.S 2005-01-05 17:43:38 -08:00 +++ b/arch/arm/mm/proc-sa1100.S 2005-01-05 17:43:38 -08:00 @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -213,7 +214,10 @@ mcr p15, 0, r10, c7, c7 @ invalidate I,D caches on v4 mcr p15, 0, r10, c7, c10, 4 @ drain write buffer on v4 mcr p15, 0, r10, c8, c7 @ invalidate I,D TLBs on v4 - mov r0, #0x1f @ Domains 0, 1 = client + mov r0, #(domain_val(DOMAIN_USER, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_TABLE, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_IO, DOMAIN_CLIENT)) mcr p15, 0, r0, c3, c0 @ load domain access register mcr p15, 0, r4, c2, c0 @ load page table pointer mrc p15, 0, r0, c1, c0 @ get control register v4 @@ -276,7 +280,11 @@ __sa1100_proc_info: .long 0x4401a110 .long 0xfffffff0 - .long 0x00000c0e + .long PMD_TYPE_SECT | \ + PMD_SECT_BUFFERABLE | \ + PMD_SECT_CACHEABLE | \ + PMD_SECT_AP_WRITE | \ + PMD_SECT_AP_READ b __sa1100_setup .long cpu_arch_name .long cpu_elf_name @@ -292,7 +300,11 @@ __sa1110_proc_info: .long 0x6901b110 .long 0xfffffff0 - .long 0x00000c0e + .long PMD_TYPE_SECT | \ + PMD_SECT_BUFFERABLE | \ + PMD_SECT_CACHEABLE | \ + PMD_SECT_AP_WRITE | \ + PMD_SECT_AP_READ b __sa1100_setup .long cpu_arch_name .long cpu_elf_name diff -Nru a/arch/arm/mm/proc-v6.S b/arch/arm/mm/proc-v6.S --- a/arch/arm/mm/proc-v6.S 2005-01-05 17:43:35 -08:00 +++ b/arch/arm/mm/proc-v6.S 2005-01-05 17:43:35 -08:00 @@ -14,6 +14,7 @@ #include #include #include +#include #include "proc-macros.S" @@ -198,7 +199,10 @@ mcr p15, 0, r10, c2, c0, 2 @ TTB control register mcr p15, 0, r4, c2, c0, 0 @ load TTB0 mcr p15, 0, r4, c2, c0, 1 @ load TTB1 - mov r10, #0x1f @ domains 0, 1 = manager + mov r10, #(domain_val(DOMAIN_USER, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_TABLE, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_IO, DOMAIN_CLIENT)) mcr p15, 0, r10, c3, c0, 0 @ load domain access register mrc p15, 0, r0, c1, c0, 0 @ read control register #ifdef CONFIG_VFP @@ -257,7 +261,11 @@ __v6_proc_info: .long 0x0007b000 .long 0x0007f000 - .long 0x00000c0e + .long PMD_TYPE_SECT | \ + PMD_SECT_BUFFERABLE | \ + PMD_SECT_CACHEABLE | \ + PMD_SECT_AP_WRITE | \ + PMD_SECT_AP_READ b __v6_setup .long cpu_arch_name .long cpu_elf_name diff -Nru a/arch/arm/mm/proc-xscale.S b/arch/arm/mm/proc-xscale.S --- a/arch/arm/mm/proc-xscale.S 2005-01-05 17:43:39 -08:00 +++ b/arch/arm/mm/proc-xscale.S 2005-01-05 17:43:39 -08:00 @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include "proc-macros.S" @@ -600,7 +601,10 @@ mcr p15, 0, ip, c7, c10, 4 @ Drain Write (& Fill) Buffer mcr p15, 0, ip, c8, c7, 0 @ invalidate I, D TLBs mcr p15, 0, r4, c2, c0, 0 @ load page table pointer - mov r0, #0x1f @ Domains 0, 1 = client + mov r0, #(domain_val(DOMAIN_USER, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_TABLE, DOMAIN_MANAGER) | \ + domain_val(DOMAIN_IO, DOMAIN_CLIENT)) mcr p15, 0, r0, c3, c0, 0 @ load domain access register #ifdef CONFIG_IWMMXT mov r0, #0 @ initially disallow access to CP0/CP1 @@ -712,7 +716,11 @@ __80200_proc_info: .long 0x69052000 .long 0xfffffff0 - .long 0x00000c0e + .long PMD_TYPE_SECT | \ + PMD_SECT_BUFFERABLE | \ + PMD_SECT_CACHEABLE | \ + PMD_SECT_AP_WRITE | \ + PMD_SECT_AP_READ b __xscale_setup .long cpu_arch_name .long cpu_elf_name @@ -728,7 +736,11 @@ __8032x_proc_info: .long 0x69052420 .long 0xfffff5e0 @ mask should accomodate IOP80219 also - .long 0x00000c0e + .long PMD_TYPE_SECT | \ + PMD_SECT_BUFFERABLE | \ + PMD_SECT_CACHEABLE | \ + PMD_SECT_AP_WRITE | \ + PMD_SECT_AP_READ b __xscale_setup .long cpu_arch_name .long cpu_elf_name @@ -744,7 +756,11 @@ __8033x_proc_info: .long 0x69054090 .long 0xffffffb0 - .long 0x00000c0e + .long PMD_TYPE_SECT | \ + PMD_SECT_BUFFERABLE | \ + PMD_SECT_CACHEABLE | \ + PMD_SECT_AP_WRITE | \ + PMD_SECT_AP_READ b __xscale_setup .long cpu_arch_name .long cpu_elf_name @@ -760,7 +776,11 @@ __pxa250_proc_info: .long 0x69052100 .long 0xfffff7f0 - .long 0x00000c0e + .long PMD_TYPE_SECT | \ + PMD_SECT_BUFFERABLE | \ + PMD_SECT_CACHEABLE | \ + PMD_SECT_AP_WRITE | \ + PMD_SECT_AP_READ b __xscale_setup .long cpu_arch_name .long cpu_elf_name @@ -776,7 +796,11 @@ __pxa210_proc_info: .long 0x69052120 .long 0xfffff3f0 - .long 0x00000c0e + .long PMD_TYPE_SECT | \ + PMD_SECT_BUFFERABLE | \ + PMD_SECT_CACHEABLE | \ + PMD_SECT_AP_WRITE | \ + PMD_SECT_AP_READ b __xscale_setup .long cpu_arch_name .long cpu_elf_name @@ -792,7 +816,11 @@ __ixp2400_proc_info: .long 0x69054190 .long 0xfffffff0 - .long 0x00000c0e + .long PMD_TYPE_SECT | \ + PMD_SECT_BUFFERABLE | \ + PMD_SECT_CACHEABLE | \ + PMD_SECT_AP_WRITE | \ + PMD_SECT_AP_READ b __xscale_setup .long cpu_arch_name .long cpu_elf_name @@ -808,7 +836,11 @@ __ixp2800_proc_info: .long 0x690541a0 .long 0xfffffff0 - .long 0x00000c0e + .long PMD_TYPE_SECT | \ + PMD_SECT_BUFFERABLE | \ + PMD_SECT_CACHEABLE | \ + PMD_SECT_AP_WRITE | \ + PMD_SECT_AP_READ b __xscale_setup .long cpu_arch_name .long cpu_elf_name @@ -824,7 +856,11 @@ __ixp42x_proc_info: .long 0x690541c0 .long 0xffffffc0 - .long 0x00000c0e + .long PMD_TYPE_SECT | \ + PMD_SECT_BUFFERABLE | \ + PMD_SECT_CACHEABLE | \ + PMD_SECT_AP_WRITE | \ + PMD_SECT_AP_READ b __xscale_setup .long cpu_arch_name .long cpu_elf_name @@ -856,7 +892,11 @@ __pxa255_proc_info: .long 0x69052d00 .long 0xfffffff0 - .long 0x00000c0e + .long PMD_TYPE_SECT | \ + PMD_SECT_BUFFERABLE | \ + PMD_SECT_CACHEABLE | \ + PMD_SECT_AP_WRITE | \ + PMD_SECT_AP_READ b __xscale_setup .long cpu_arch_name .long cpu_elf_name @@ -872,7 +912,11 @@ __pxa270_proc_info: .long 0x69054110 .long 0xfffffff0 - .long 0x00000c0e + .long PMD_TYPE_SECT | \ + PMD_SECT_BUFFERABLE | \ + PMD_SECT_CACHEABLE | \ + PMD_SECT_AP_WRITE | \ + PMD_SECT_AP_READ b __xscale_setup .long cpu_arch_name .long cpu_elf_name diff -Nru a/arch/arm/oprofile/common.c b/arch/arm/oprofile/common.c --- a/arch/arm/oprofile/common.c 2005-01-05 17:43:39 -08:00 +++ b/arch/arm/oprofile/common.c 2005-01-05 17:43:39 -08:00 @@ -24,14 +24,6 @@ static void pmu_stop(void); static int pmu_create_files(struct super_block *, struct dentry *); -static struct oprofile_operations pmu_ops = { - .create_files = pmu_create_files, - .setup = pmu_setup, - .shutdown = pmu_stop, - .start = pmu_start, - .stop = pmu_stop, -}; - #ifdef CONFIG_PM static struct sys_device device_oprofile = { .id = 0, @@ -113,19 +105,22 @@ up(&pmu_sem); } -int __init pmu_init(struct oprofile_operations **ops, struct op_arm_model_spec *spec) +void __init pmu_init(struct oprofile_operations *ops, struct op_arm_model_spec *spec) { init_MUTEX(&pmu_sem); if (spec->init() < 0) - return -ENODEV; + return; pmu_model = spec; init_driverfs(); - *ops = &pmu_ops; - pmu_ops.cpu_type = pmu_model->name; + ops->create_files = pmu_create_files; + ops->setup = pmu_setup; + ops->shutdown = pmu_stop; + ops->start = pmu_start; + ops->stop = pmu_stop; + ops->cpu_type = pmu_model->name; printk(KERN_INFO "oprofile: using %s PMU\n", spec->name); - return 0; } void pmu_exit(void) diff -Nru a/arch/arm/oprofile/init.c b/arch/arm/oprofile/init.c --- a/arch/arm/oprofile/init.c 2005-01-05 17:43:36 -08:00 +++ b/arch/arm/oprofile/init.c 2005-01-05 17:43:36 -08:00 @@ -12,14 +12,11 @@ #include #include "op_arm_model.h" -int __init oprofile_arch_init(struct oprofile_operations **ops) +void __init oprofile_arch_init(struct oprofile_operations *ops) { - int ret = -ENODEV; - #ifdef CONFIG_CPU_XSCALE - ret = pmu_init(ops, &op_xscale_spec); + pmu_init(ops, &op_xscale_spec); #endif - return ret; } void oprofile_arch_exit(void) diff -Nru a/arch/arm/oprofile/op_model_xscale.c b/arch/arm/oprofile/op_model_xscale.c --- a/arch/arm/oprofile/op_model_xscale.c 2005-01-05 17:43:37 -08:00 +++ b/arch/arm/oprofile/op_model_xscale.c 2005-01-05 17:43:37 -08:00 @@ -343,8 +343,7 @@ static irqreturn_t xscale_pmu_interrupt(int irq, void *arg, struct pt_regs *regs) { - unsigned long pc = profile_pc(regs); - int i, is_kernel = !user_mode(regs); + int i; u32 pmnc; if (pmu->id == PMU_XSC1) @@ -357,7 +356,7 @@ continue; write_counter(i, -(u32)results[i].reset_counter); - oprofile_add_sample(pc, is_kernel, i, smp_processor_id()); + oprofile_add_sample(regs, i); results[i].ovf--; } diff -Nru a/arch/arm26/ACKNOWLEDGEMENTS b/arch/arm26/ACKNOWLEDGEMENTS --- a/arch/arm26/ACKNOWLEDGEMENTS 2005-01-05 17:43:39 -08:00 +++ b/arch/arm26/ACKNOWLEDGEMENTS 2005-01-05 17:43:39 -08:00 @@ -15,6 +15,8 @@ Russell King Keith Owens +also thanks to Nicholas Pitre for hints, and for the basis or our XIP support. + Currently maintaing the code are Ian Molton (Maintainer / Archimedes) diff -Nru a/arch/arm26/Kconfig b/arch/arm26/Kconfig --- a/arch/arm26/Kconfig 2005-01-05 17:43:37 -08:00 +++ b/arch/arm26/Kconfig 2005-01-05 17:43:37 -08:00 @@ -45,6 +45,10 @@ config RWSEM_XCHGADD_ALGORITHM bool +config GENERIC_CALIBRATE_DELAY + bool + default y + config GENERIC_BUST_SPINLOCK bool diff -Nru a/arch/arm26/Makefile b/arch/arm26/Makefile --- a/arch/arm26/Makefile 2005-01-05 17:43:37 -08:00 +++ b/arch/arm26/Makefile 2005-01-05 17:43:37 -08:00 @@ -6,6 +6,7 @@ # for more details. # # Copyright (C) 1995-2001 by Russell King +# Copyright (c) 2004 Ian Molton LDFLAGS_vmlinux :=-p -X CPPFLAGS_vmlinux.lds = -DTEXTADDR=$(TEXTADDR) -DDATAADDR=$(DATAADDR) @@ -20,13 +21,9 @@ CFLAGS +=-g endif -# Force -mno-fpu to be passed to the assembler. Some versions of gcc don't -# do this with -msoft-float -CFLAGS_BOOT :=-mapcs-26 -mcpu=arm3 -mshort-load-bytes -msoft-float -Wa,-mno-fpu -Uarm -CFLAGS +=-mapcs-26 -mcpu=arm3 -mshort-load-bytes -msoft-float -Wa,-mno-fpu -Uarm -AFLAGS +=-mapcs-26 -mcpu=arm3 -mno-fpu -msoft-float -Wa,-mno-fpu - -head-y := arch/arm26/machine/head.o arch/arm26/kernel/init_task.o +CFLAGS_BOOT :=-mapcs-26 -mcpu=arm3 -msoft-float -Uarm +CFLAGS +=-mapcs-26 -mcpu=arm3 -msoft-float -Uarm +AFLAGS +=-mapcs-26 -mcpu=arm3 -msoft-float ifeq ($(CONFIG_XIP_KERNEL),y) TEXTADDR := 0x03880000 @@ -36,6 +33,8 @@ DATAADDR := . endif +head-y := arch/arm26/kernel/head.o arch/arm26/kernel/init_task.o + ifeq ($(incdir-y),) incdir-y := endif @@ -109,6 +108,7 @@ echo '* zImage - Compressed kernel image (arch/$(ARCH)/boot/zImage)' echo ' Image - Uncompressed kernel image (arch/$(ARCH)/boot/Image)' echo ' bootpImage - Combined zImage and initial RAM disk' + echo ' xipImage - eXecute In Place capable image for ROM use (arch/$(ARCH)/boot/xipImage)' echo ' initrd - Create an initial image' echo ' install - Install uncompressed kernel' echo ' zinstall - Install compressed kernel' diff -Nru a/arch/arm26/boot/Makefile b/arch/arm26/boot/Makefile --- a/arch/arm26/boot/Makefile 2005-01-05 17:43:39 -08:00 +++ b/arch/arm26/boot/Makefile 2005-01-05 17:43:39 -08:00 @@ -1,5 +1,5 @@ # -# arch/arm/boot/Makefile +# arch/arm26/boot/Makefile # # This file is subject to the terms and conditions of the GNU General Public # License. See the file "COPYING" in the main directory of this archive @@ -51,8 +51,10 @@ ifeq ($(CONFIG_XIP_KERNEL),y) $(obj)/xipImage: vmlinux FORCE - $(OBJCOPY) -S -O binary -R .data -R .comment vmlinux vmlinux-text.bin - $(OBJCOPY) -S -O binary -R .init -R .text -R .comment -R __ex_table -R __ksymtab vmlinux vmlinux-data.bin +# $(OBJCOPY) -S -O binary -R .data -R .comment vmlinux vmlinux-text.bin +# FIXME - where has .pci_fixup crept in from? + $(OBJCOPY) -S -O binary -R .data -R .pci_fixup -R .comment vmlinux vmlinux-text.bin + $(OBJCOPY) -S -O binary -R .init -R .text -R __ex_table -R .pci_fixup -R __ksymtab -R __ksymtab_gpl -R __kcrctab -R __kcrctab_gpl -R __param -R .comment vmlinux vmlinux-data.bin cat vmlinux-text.bin vmlinux-data.bin > $@ $(RM) -f vmlinux-text.bin vmlinux-data.bin @echo ' Kernel: $@ is ready' diff -Nru a/arch/arm26/boot/compressed/head.S b/arch/arm26/boot/compressed/head.S --- a/arch/arm26/boot/compressed/head.S 2005-01-05 17:43:38 -08:00 +++ b/arch/arm26/boot/compressed/head.S 2005-01-05 17:43:38 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/boot/compressed/head.S + * linux/arch/arm26/boot/compressed/head.S * * Copyright (C) 1996-2002 Russell King * diff -Nru a/arch/arm26/boot/compressed/ll_char_wr.S b/arch/arm26/boot/compressed/ll_char_wr.S --- a/arch/arm26/boot/compressed/ll_char_wr.S 2005-01-05 17:43:35 -08:00 +++ b/arch/arm26/boot/compressed/ll_char_wr.S 2005-01-05 17:43:35 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/lib/ll_char_wr.S + * linux/arch/arm26/lib/ll_char_wr.S * * Copyright (C) 1995, 1996 Russell King. * diff -Nru a/arch/arm26/boot/compressed/ofw-shark.c b/arch/arm26/boot/compressed/ofw-shark.c --- a/arch/arm26/boot/compressed/ofw-shark.c 2005-01-05 17:43:40 -08:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,258 +0,0 @@ -/* - * linux/arch/arm/boot/compressed/ofw-shark.c - * - * by Alexander Schulz - * - * This file is used to get some basic information - * about the memory layout of the shark we are running - * on. Memory is usually divided in blocks a 8 MB. - * And bootargs are copied from OpenFirmware. - */ - - -#include -#include -#include -#include - - -asmlinkage void -create_params (unsigned long *buffer) -{ - /* Is there a better address? Also change in mach-shark/core.c */ - struct tag *tag = (struct tag *) 0x08003000; - int j,i,m,k,nr_banks,size; - unsigned char *c; - - /* Head of the taglist */ - tag->hdr.tag = ATAG_CORE; - tag->hdr.size = tag_size(tag_core); - tag->u.core.flags = FLAG_READONLY; - tag->u.core.pagesize = PAGE_SIZE; - tag->u.core.rootdev = 0; - - /* Build up one tagged block for each memory region */ - size=0; - nr_banks=(unsigned int) buffer[0]; - for (j=0;jhdr.tag = ATAG_MEM; - tag->hdr.size = tag_size(tag_mem32); - tag->u.mem.size = buffer[2*k+2]; - tag->u.mem.start = buffer[2*k+1]; - - size += buffer[2*k+2]; - - buffer[2*k+1]=0xffffffff; /* mark as copied */ - } - - /* The command line */ - tag = tag_next(tag); - tag->hdr.tag = ATAG_CMDLINE; - - c=(unsigned char *)(&buffer[34]); - j=0; - while (*c) tag->u.cmdline.cmdline[j++]=*c++; - - tag->u.cmdline.cmdline[j]=0; - tag->hdr.size = (j + 7 + sizeof(struct tag_header)) >> 2; - - /* Hardware revision */ - tag = tag_next(tag); - tag->hdr.tag = ATAG_REVISION; - tag->hdr.size = tag_size(tag_revision); - tag->u.revision.rev = ((unsigned char) buffer[33])-'0'; - - /* End of the taglist */ - tag = tag_next(tag); - tag->hdr.tag = 0; - tag->hdr.size = 0; -} - - -typedef int (*ofw_handle_t)(void *); - -/* Everything below is called with a wrong MMU setting. - * This means: no string constants, no initialization of - * arrays, no global variables! This is ugly but I didn't - * want to write this in assembler :-) - */ - -int -of_decode_int(const unsigned char *p) -{ - unsigned int i = *p++ << 8; - i = (i + *p++) << 8; - i = (i + *p++) << 8; - return (i + *p); -} - -int -OF_finddevice(ofw_handle_t openfirmware, char *name) -{ - unsigned int args[8]; - char service[12]; - - service[0]='f'; - service[1]='i'; - service[2]='n'; - service[3]='d'; - service[4]='d'; - service[5]='e'; - service[6]='v'; - service[7]='i'; - service[8]='c'; - service[9]='e'; - service[10]='\0'; - - args[0]=(unsigned int)service; - args[1]=1; - args[2]=1; - args[3]=(unsigned int)name; - - if (openfirmware(args) == -1) - return -1; - return args[4]; -} - -int -OF_getproplen(ofw_handle_t openfirmware, int handle, char *prop) -{ - unsigned int args[8]; - char service[12]; - - service[0]='g'; - service[1]='e'; - service[2]='t'; - service[3]='p'; - service[4]='r'; - service[5]='o'; - service[6]='p'; - service[7]='l'; - service[8]='e'; - service[9]='n'; - service[10]='\0'; - - args[0] = (unsigned int)service; - args[1] = 2; - args[2] = 1; - args[3] = (unsigned int)handle; - args[4] = (unsigned int)prop; - - if (openfirmware(args) == -1) - return -1; - return args[5]; -} - -int -OF_getprop(ofw_handle_t openfirmware, int handle, char *prop, void *buf, unsigned int buflen) -{ - unsigned int args[8]; - char service[8]; - - service[0]='g'; - service[1]='e'; - service[2]='t'; - service[3]='p'; - service[4]='r'; - service[5]='o'; - service[6]='p'; - service[7]='\0'; - - args[0] = (unsigned int)service; - args[1] = 4; - args[2] = 1; - args[3] = (unsigned int)handle; - args[4] = (unsigned int)prop; - args[5] = (unsigned int)buf; - args[6] = buflen; - - if (openfirmware(args) == -1) - return -1; - return args[7]; -} - -asmlinkage void ofw_init(ofw_handle_t o, int *nomr, int *pointer) -{ - int phandle,i,mem_len,buffer[32]; - char temp[15]; - - temp[0]='/'; - temp[1]='m'; - temp[2]='e'; - temp[3]='m'; - temp[4]='o'; - temp[5]='r'; - temp[6]='y'; - temp[7]='\0'; - - phandle=OF_finddevice(o,temp); - - temp[0]='r'; - temp[1]='e'; - temp[2]='g'; - temp[3]='\0'; - - mem_len = OF_getproplen(o,phandle, temp); - OF_getprop(o,phandle, temp, buffer, mem_len); - *nomr=mem_len >> 3; - - for (i=0; i<=mem_len/4; i++) pointer[i]=of_decode_int((const unsigned char *)&buffer[i]); - - temp[0]='/'; - temp[1]='c'; - temp[2]='h'; - temp[3]='o'; - temp[4]='s'; - temp[5]='e'; - temp[6]='n'; - temp[7]='\0'; - - phandle=OF_finddevice(o,temp); - - temp[0]='b'; - temp[1]='o'; - temp[2]='o'; - temp[3]='t'; - temp[4]='a'; - temp[5]='r'; - temp[6]='g'; - temp[7]='s'; - temp[8]='\0'; - - mem_len = OF_getproplen(o,phandle, temp); - OF_getprop(o,phandle, temp, buffer, mem_len); - if (mem_len > 128) mem_len=128; - for (i=0; i<=mem_len/4; i++) pointer[i+33]=buffer[i]; - pointer[i+33]=0; - - temp[0]='/'; - temp[1]='\0'; - phandle=OF_finddevice(o,temp); - temp[0]='b'; - temp[1]='a'; - temp[2]='n'; - temp[3]='n'; - temp[4]='e'; - temp[5]='r'; - temp[6]='-'; - temp[7]='n'; - temp[8]='a'; - temp[9]='m'; - temp[10]='e'; - temp[11]='\0'; - mem_len = OF_getproplen(o,phandle, temp); - OF_getprop(o,phandle, temp, buffer, mem_len); - (unsigned char) pointer[32] = ((unsigned char *) buffer)[mem_len-2]; -} diff -Nru a/arch/arm26/boot/compressed/uncompress.h b/arch/arm26/boot/compressed/uncompress.h --- a/arch/arm26/boot/compressed/uncompress.h 2005-01-05 17:43:37 -08:00 +++ b/arch/arm26/boot/compressed/uncompress.h 2005-01-05 17:43:37 -08:00 @@ -1,5 +1,4 @@ /* - * linux/include/asm-arm/arch-arc/uncompress.h * * Copyright (C) 1996 Russell King * diff -Nru a/arch/arm26/boot/compressed/vmlinux.lds.in b/arch/arm26/boot/compressed/vmlinux.lds.in --- a/arch/arm26/boot/compressed/vmlinux.lds.in 2005-01-05 17:43:35 -08:00 +++ b/arch/arm26/boot/compressed/vmlinux.lds.in 2005-01-05 17:43:35 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/boot/compressed/vmlinux.lds.in + * linux/arch/arm26/boot/compressed/vmlinux.lds.in * * Copyright (C) 2000 Russell King * diff -Nru a/arch/arm26/boot/install.sh b/arch/arm26/boot/install.sh --- a/arch/arm26/boot/install.sh 2005-01-05 17:43:39 -08:00 +++ b/arch/arm26/boot/install.sh 2005-01-05 17:43:39 -08:00 @@ -1,6 +1,6 @@ #!/bin/sh # -# arch/arm/boot/install.sh +# arch/arm26/boot/install.sh # # This file is subject to the terms and conditions of the GNU General Public # License. See the file "COPYING" in the main directory of this archive @@ -10,7 +10,7 @@ # # Adapted from code in arch/i386/boot/Makefile by H. Peter Anvin # Adapted from code in arch/i386/boot/install.sh by Russell King -# Stolen from arch/arm/boot/install.sh by Ian Molton +# Stolen from arm32 by Ian Molton # # "make install" script for arm architecture # diff -Nru a/arch/arm26/kernel/Makefile b/arch/arm26/kernel/Makefile --- a/arch/arm26/kernel/Makefile 2005-01-05 17:43:37 -08:00 +++ b/arch/arm26/kernel/Makefile 2005-01-05 17:43:37 -08:00 @@ -2,17 +2,16 @@ # Makefile for the linux kernel. # -ENTRY_OBJ = entry.o - # Object file lists. -obj-y := compat.o dma.o entry.o irq.o \ - process.o ptrace.o semaphore.o setup.o signal.o sys_arm.o \ - time.o traps.o ecard.o time-acorn.o dma.o \ - ecard.o fiq.o time.o +AFLAGS_head.o := -DTEXTADDR=$(TEXTADDR) + +obj-y := compat.o dma.o entry.o irq.o process.o ptrace.o \ + semaphore.o setup.o signal.o sys_arm.o time.o traps.o \ + ecard.o dma.o ecard.o fiq.o time.o + +extra-y := head.o init_task.o vmlinux.lds obj-$(CONFIG_FIQ) += fiq.o obj-$(CONFIG_MODULES) += armksyms.o - -extra-y := init_task.o vmlinux.lds diff -Nru a/arch/arm26/kernel/armksyms.c b/arch/arm26/kernel/armksyms.c --- a/arch/arm26/kernel/armksyms.c 2005-01-05 17:43:36 -08:00 +++ b/arch/arm26/kernel/armksyms.c 2005-01-05 17:43:36 -08:00 @@ -7,6 +7,7 @@ * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ +#include #include #include #include @@ -27,8 +28,6 @@ #include #include #include -#include -//#include #include #include #include @@ -69,8 +68,9 @@ /* * This has a special calling convention; it doesn't * modify any of the usual registers, except for LR. + * FIXME - we used to use our own local version - looks to be in kernel/softirq now */ -extern void __do_softirq(void); +//extern void __do_softirq(void); #define EXPORT_SYMBOL_ALIAS(sym,orig) \ const char __kstrtab_##sym[] \ @@ -95,7 +95,7 @@ EXPORT_SYMBOL(kd_mksound); #endif -EXPORT_SYMBOL(__do_softirq); +//EXPORT_SYMBOL(__do_softirq); /* platform dependent support */ EXPORT_SYMBOL(dump_thread); @@ -212,12 +212,6 @@ EXPORT_SYMBOL(sys_open); EXPORT_SYMBOL(sys_exit); EXPORT_SYMBOL(sys_wait4); - - /* semaphores */ -EXPORT_SYMBOL(__down_failed); -EXPORT_SYMBOL(__down_interruptible_failed); -EXPORT_SYMBOL(__down_trylock_failed); -EXPORT_SYMBOL(__up_wakeup); EXPORT_SYMBOL(get_wchan); diff -Nru a/arch/arm26/kernel/calls.S b/arch/arm26/kernel/calls.S --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/arm26/kernel/calls.S 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,265 @@ +/* + * linux/arch/arm26/kernel/calls.S + * + * Copyright (C) 2003 Ian Molton + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * FIXME + * This file is included twice in entry.S which may not be necessary + */ + +//FIXME - clearly NR_syscalls is never defined here + +#ifndef NR_syscalls +#define NR_syscalls 256 +#else + +__syscall_start: +/* 0 */ .long sys_ni_syscall + .long sys_exit + .long sys_fork_wrapper + .long sys_read + .long sys_write +/* 5 */ .long sys_open + .long sys_close + .long sys_ni_syscall /* was sys_waitpid */ + .long sys_creat + .long sys_link +/* 10 */ .long sys_unlink + .long sys_execve_wrapper + .long sys_chdir + .long sys_time /* used by libc4 */ + .long sys_mknod +/* 15 */ .long sys_chmod + .long sys_lchown16 + .long sys_ni_syscall /* was sys_break */ + .long sys_ni_syscall /* was sys_stat */ + .long sys_lseek +/* 20 */ .long sys_getpid + .long sys_mount + .long sys_oldumount /* used by libc4 */ + .long sys_setuid16 + .long sys_getuid16 +/* 25 */ .long sys_stime + .long sys_ptrace + .long sys_alarm /* used by libc4 */ + .long sys_ni_syscall /* was sys_fstat */ + .long sys_pause +/* 30 */ .long sys_utime /* used by libc4 */ + .long sys_ni_syscall /* was sys_stty */ + .long sys_ni_syscall /* was sys_getty */ + .long sys_access + .long sys_nice +/* 35 */ .long sys_ni_syscall /* was sys_ftime */ + .long sys_sync + .long sys_kill + .long sys_rename + .long sys_mkdir +/* 40 */ .long sys_rmdir + .long sys_dup + .long sys_pipe + .long sys_times + .long sys_ni_syscall /* was sys_prof */ +/* 45 */ .long sys_brk + .long sys_setgid16 + .long sys_getgid16 + .long sys_ni_syscall /* was sys_signal */ + .long sys_geteuid16 +/* 50 */ .long sys_getegid16 + .long sys_acct + .long sys_umount + .long sys_ni_syscall /* was sys_lock */ + .long sys_ioctl +/* 55 */ .long sys_fcntl + .long sys_ni_syscall /* was sys_mpx */ + .long sys_setpgid + .long sys_ni_syscall /* was sys_ulimit */ + .long sys_ni_syscall /* was sys_olduname */ +/* 60 */ .long sys_umask + .long sys_chroot + .long sys_ustat + .long sys_dup2 + .long sys_getppid +/* 65 */ .long sys_getpgrp + .long sys_setsid + .long sys_sigaction + .long sys_ni_syscall /* was sys_sgetmask */ + .long sys_ni_syscall /* was sys_ssetmask */ +/* 70 */ .long sys_setreuid16 + .long sys_setregid16 + .long sys_sigsuspend_wrapper + .long sys_sigpending + .long sys_sethostname +/* 75 */ .long sys_setrlimit + .long sys_old_getrlimit /* used by libc4 */ + .long sys_getrusage + .long sys_gettimeofday + .long sys_settimeofday +/* 80 */ .long sys_getgroups16 + .long sys_setgroups16 + .long old_select /* used by libc4 */ + .long sys_symlink + .long sys_ni_syscall /* was sys_lstat */ +/* 85 */ .long sys_readlink + .long sys_uselib + .long sys_swapon + .long sys_reboot + .long old_readdir /* used by libc4 */ +/* 90 */ .long old_mmap /* used by libc4 */ + .long sys_munmap + .long sys_truncate + .long sys_ftruncate + .long sys_fchmod +/* 95 */ .long sys_fchown16 + .long sys_getpriority + .long sys_setpriority + .long sys_ni_syscall /* was sys_profil */ + .long sys_statfs +/* 100 */ .long sys_fstatfs + .long sys_ni_syscall + .long sys_socketcall + .long sys_syslog + .long sys_setitimer +/* 105 */ .long sys_getitimer + .long sys_newstat + .long sys_newlstat + .long sys_newfstat + .long sys_ni_syscall /* was sys_uname */ +/* 110 */ .long sys_ni_syscall /* was sys_iopl */ + .long sys_vhangup + .long sys_ni_syscall + .long sys_syscall /* call a syscall */ + .long sys_wait4 +/* 115 */ .long sys_swapoff + .long sys_sysinfo + .long sys_ipc + .long sys_fsync + .long sys_sigreturn_wrapper +/* 120 */ .long sys_clone_wapper + .long sys_setdomainname + .long sys_newuname + .long sys_ni_syscall + .long sys_adjtimex +/* 125 */ .long sys_mprotect + .long sys_sigprocmask + .long sys_ni_syscall /* WAS: sys_create_module */ + .long sys_init_module + .long sys_delete_module +/* 130 */ .long sys_ni_syscall /* WAS: sys_get_kernel_syms */ + .long sys_quotactl + .long sys_getpgid + .long sys_fchdir + .long sys_bdflush +/* 135 */ .long sys_sysfs + .long sys_personality + .long sys_ni_syscall /* .long _sys_afs_syscall */ + .long sys_setfsuid16 + .long sys_setfsgid16 +/* 140 */ .long sys_llseek + .long sys_getdents + .long sys_select + .long sys_flock + .long sys_msync +/* 145 */ .long sys_readv + .long sys_writev + .long sys_getsid + .long sys_fdatasync + .long sys_sysctl +/* 150 */ .long sys_mlock + .long sys_munlock + .long sys_mlockall + .long sys_munlockall + .long sys_sched_setparam +/* 155 */ .long sys_sched_getparam + .long sys_sched_setscheduler + .long sys_sched_getscheduler + .long sys_sched_yield + .long sys_sched_get_priority_max +/* 160 */ .long sys_sched_get_priority_min + .long sys_sched_rr_get_interval + .long sys_nanosleep + .long sys_arm_mremap + .long sys_setresuid16 +/* 165 */ .long sys_getresuid16 + .long sys_ni_syscall + .long sys_ni_syscall /* WAS: sys_query_module */ + .long sys_poll + .long sys_nfsservctl +/* 170 */ .long sys_setresgid16 + .long sys_getresgid16 + .long sys_prctl + .long sys_rt_sigreturn_wrapper + .long sys_rt_sigaction +/* 175 */ .long sys_rt_sigprocmask + .long sys_rt_sigpending + .long sys_rt_sigtimedwait + .long sys_rt_sigqueueinfo + .long sys_rt_sigsuspend_wrapper +/* 180 */ .long sys_pread64 + .long sys_pwrite64 + .long sys_chown16 + .long sys_getcwd + .long sys_capget +/* 185 */ .long sys_capset + .long sys_sigaltstack_wrapper + .long sys_sendfile + .long sys_ni_syscall + .long sys_ni_syscall +/* 190 */ .long sys_vfork_wrapper + .long sys_getrlimit + .long sys_mmap2 + .long sys_truncate64 + .long sys_ftruncate64 +/* 195 */ .long sys_stat64 + .long sys_lstat64 + .long sys_fstat64 + .long sys_lchown + .long sys_getuid +/* 200 */ .long sys_getgid + .long sys_geteuid + .long sys_getegid + .long sys_setreuid + .long sys_setregid +/* 205 */ .long sys_getgroups + .long sys_setgroups + .long sys_fchown + .long sys_setresuid + .long sys_getresuid +/* 210 */ .long sys_setresgid + .long sys_getresgid + .long sys_chown + .long sys_setuid + .long sys_setgid +/* 215 */ .long sys_setfsuid + .long sys_setfsgid + .long sys_getdents64 + .long sys_pivot_root + .long sys_mincore +/* 220 */ .long sys_madvise + .long sys_fcntl64 + .long sys_ni_syscall /* TUX */ + .long sys_ni_syscall /* WAS: sys_security */ + .long sys_gettid +/* 225 */ .long sys_readahead + .long sys_setxattr + .long sys_lsetxattr + .long sys_fsetxattr + .long sys_getxattr +/* 230 */ .long sys_lgetxattr + .long sys_fgetxattr + .long sys_listxattr + .long sys_llistxattr + .long sys_flistxattr +/* 235 */ .long sys_removexattr + .long sys_lremovexattr + .long sys_fremovexattr + .long sys_tkill +__syscall_end: + + .rept NR_syscalls - (__syscall_end - __syscall_start) / 4 + .long sys_ni_syscall + .endr +#endif diff -Nru a/arch/arm26/kernel/compat.c b/arch/arm26/kernel/compat.c --- a/arch/arm26/kernel/compat.c 2005-01-05 17:43:38 -08:00 +++ b/arch/arm26/kernel/compat.c 2005-01-05 17:43:38 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/kernel/compat.c + * linux/arch/arm26/kernel/compat.c * * Copyright (C) 2001 Russell King * 2003 Ian Molton diff -Nru a/arch/arm26/kernel/dma.c b/arch/arm26/kernel/dma.c --- a/arch/arm26/kernel/dma.c 2005-01-05 17:43:40 -08:00 +++ b/arch/arm26/kernel/dma.c 2005-01-05 17:43:40 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/kernel/dma.c + * linux/arch/arm26/kernel/dma.c * * Copyright (C) 1995-2000 Russell King * 2003 Ian Molton @@ -24,8 +24,6 @@ spinlock_t dma_spin_lock = SPIN_LOCK_UNLOCKED; -#if MAX_DMA_CHANNELS > 0 - static dma_t dma_chan[MAX_DMA_CHANNELS]; /* @@ -259,33 +257,6 @@ { arch_dma_init(dma_chan); } - -#else - -int request_dma(dmach_t channel, const char *device_id) -{ - return -EINVAL; -} - -int get_dma_residue(dmach_t channel) -{ - return 0; -} - -#define GLOBAL_ALIAS(_a,_b) asm (".set " #_a "," #_b "; .globl " #_a) -GLOBAL_ALIAS(disable_dma, get_dma_residue); -GLOBAL_ALIAS(enable_dma, get_dma_residue); -GLOBAL_ALIAS(free_dma, get_dma_residue); -GLOBAL_ALIAS(get_dma_list, get_dma_residue); -GLOBAL_ALIAS(set_dma_mode, get_dma_residue); -GLOBAL_ALIAS(set_dma_page, get_dma_residue); -GLOBAL_ALIAS(set_dma_count, get_dma_residue); -GLOBAL_ALIAS(set_dma_addr, get_dma_residue); -GLOBAL_ALIAS(set_dma_sg, get_dma_residue); -GLOBAL_ALIAS(set_dma_speed, get_dma_residue); -GLOBAL_ALIAS(init_dma, get_dma_residue); - -#endif EXPORT_SYMBOL(request_dma); EXPORT_SYMBOL(free_dma); diff -Nru a/arch/arm26/kernel/ecard.c b/arch/arm26/kernel/ecard.c --- a/arch/arm26/kernel/ecard.c 2005-01-05 17:43:39 -08:00 +++ b/arch/arm26/kernel/ecard.c 2005-01-05 17:43:39 -08:00 @@ -42,9 +42,7 @@ #include #include #include -#include #include -#include #include #include @@ -137,65 +135,23 @@ unsigned int len = req->length; unsigned int off = req->address; - if (req->ec->slot_no == 8) { - /* - * The card maintains an index which increments the address - * into a 4096-byte page on each access. We need to keep - * track of the counter. - */ - static unsigned int index; - unsigned int page; - - page = (off >> 12) * 4; - if (page > 256 * 4) - return; - - off &= 4095; - - /* - * If we are reading offset 0, or our current index is - * greater than the offset, reset the hardware index counter. - */ - if (off == 0 || index > off) { - *base_addr = 0; - index = 0; - } - - /* - * Increment the hardware index counter until we get to the - * required offset. The read bytes are discarded. - */ - while (index < off) { - unsigned char byte; - byte = base_addr[page]; - index += 1; - } - + if (!req->use_loader || !req->ec->loader) { + off *= 4; while (len--) { - *buf++ = base_addr[page]; - index += 1; + *buf++ = base_addr[off]; + off += 4; } } else { - - if (!req->use_loader || !req->ec->loader) { - off *= 4; - while (len--) { - *buf++ = base_addr[off]; - off += 4; - } - } else { - while(len--) { - /* - * The following is required by some - * expansion card loader programs. - */ - *(unsigned long *)0x108 = 0; - *buf++ = ecard_loader_read(off++, base_addr, - req->ec->loader); - } + while(len--) { + /* + * The following is required by some + * expansion card loader programs. + */ + *(unsigned long *)0x108 = 0; + *buf++ = ecard_loader_read(off++, base_addr, + req->ec->loader); } } - } static void ecard_do_request(struct ecard_request *req) @@ -466,7 +422,7 @@ for (ec = cards; ec; ec = ec->next) { int pending; - if (!ec->claimed || ec->irq == NO_IRQ || ec->slot_no == 8) + if (!ec->claimed || ec->irq == NO_IRQ) continue; if (ec->ops && ec->ops->irqpending) @@ -494,22 +450,15 @@ unsigned long address = 0; int slot = ec->slot_no; - if (ec->slot_no == 8) - return 0; - ectcr &= ~(1 << slot); switch (type) { case ECARD_MEMC: - if (slot < 4) - address = IO_EC_MEMC_BASE + (slot << 12); + address = IO_EC_MEMC_BASE + (slot << 12); break; case ECARD_IOC: - if (slot < 4) - address = IO_EC_IOC_BASE + (slot << 12); - if (address) - address += speed << 17; + address = IO_EC_IOC_BASE + (slot << 12) + (speed << 17); break; default: @@ -592,11 +541,9 @@ unsigned int slot = ec->slot_no; int i; - if (slot < 4) { - ec_set_resource(ec, ECARD_RES_MEMC, - PODSLOT_MEMC_BASE + (slot << 14), - PODSLOT_MEMC_SIZE, IORESOURCE_MEM); - } + ec_set_resource(ec, ECARD_RES_MEMC, + PODSLOT_MEMC_BASE + (slot << 14), + PODSLOT_MEMC_SIZE, IORESOURCE_MEM); for (i = 0; i < ECARD_RES_IOCSYNC - ECARD_RES_IOCSLOW; i++) { ec_set_resource(ec, i + ECARD_RES_IOCSLOW, @@ -739,12 +686,10 @@ /* * hook the interrupt handlers */ - if (slot < 8) { - ec->irq = 32 + slot; - set_irq_chip(ec->irq, &ecard_chip); - set_irq_handler(ec->irq, do_level_IRQ); - set_irq_flags(ec->irq, IRQF_VALID); - } + ec->irq = 32 + slot; + set_irq_chip(ec->irq, &ecard_chip); + set_irq_handler(ec->irq, do_level_IRQ); + set_irq_flags(ec->irq, IRQF_VALID); for (ecp = &cards; *ecp; ecp = &(*ecp)->next); @@ -777,7 +722,7 @@ printk("Probing expansion cards\n"); - for (slot = 0; slot < 4; slot ++) { + for (slot = 0; slot < MAX_ECARDS; slot ++) { ecard_probe(slot, ECARD_IOC); } diff -Nru a/arch/arm26/kernel/entry.S b/arch/arm26/kernel/entry.S --- a/arch/arm26/kernel/entry.S 2005-01-05 17:43:35 -08:00 +++ b/arch/arm26/kernel/entry.S 2005-01-05 17:43:35 -08:00 @@ -3,10 +3,10 @@ * Assembled from chunks of code in arch/arm * * Copyright (C) 2003 Ian Molton + * Based on the work of RMK. * */ -#include /* for CONFIG_ARCH_xxxx */ #include #include @@ -35,8 +35,6 @@ #define BAD_IRQ 3 #define BAD_UNDEFINSTR 4 -#define PT_TRACESYS 0x00000002 - @ OS version number used in SWIs @ RISC OS is 0 @ RISC iX is 8 @@ -46,10 +44,12 @@ @ @ Stack format (ensured by USER_* and SVC_*) +@ PSR and PC are comined on arm26 @ -#define S_FRAME_SIZE 72 @ FIXME: Really? + +#define S_OFF 8 + #define S_OLD_R0 64 -#define S_PSR 60 #define S_PC 60 #define S_LR 56 #define S_SP 52 @@ -66,19 +66,18 @@ #define S_R2 8 #define S_R1 4 #define S_R0 0 -#define S_OFF 8 .macro save_user_regs - str r0, [sp, #-4]! - str lr, [sp, #-4]! + str r0, [sp, #-4]! @ Store SVC r0 + str lr, [sp, #-4]! @ Store user mode PC sub sp, sp, #15*4 - stmia sp, {r0 - lr}^ + stmia sp, {r0 - lr}^ @ Store the other user-mode regs mov r0, r0 .endm .macro slow_restore_user_regs - ldmia sp, {r0 - lr}^ @ restore the user regs - mov r0, r0 @ no-op + ldmia sp, {r0 - lr}^ @ restore the user regs not including PC + mov r0, r0 ldr lr, [sp, #15*4] @ get user PC add sp, sp, #15*4+8 @ free stack movs pc, lr @ return @@ -93,6 +92,32 @@ movs pc, lr .endm + .macro save_svc_regs + str sp, [sp, #-16]! + str lr, [sp, #8] + str lr, [sp, #4] + stmfd sp!, {r0 - r12} + mov r0, #-1 + str r0, [sp, #S_OLD_R0] + zero_fp + .endm + + .macro save_svc_regs_irq + str sp, [sp, #-16]! + str lr, [sp, #4] + ldr lr, .LCirq + ldr lr, [lr] + str lr, [sp, #8] + stmfd sp!, {r0 - r12} + mov r0, #-1 + str r0, [sp, #S_OLD_R0] + zero_fp + .endm + + .macro restore_svc_regs + ldmfd sp, {r0 - pc}^ + .endm + .macro mask_pc, rd, rm bic \rd, \rm, #PCMASK .endm @@ -117,21 +142,10 @@ mov \rd, \rd, lsl #13 .endm - /* - * Like adr, but force SVC mode (if required) - */ - .macro adrsvc, cond, reg, label - adr\cond \reg, \label - orr\cond \reg, \reg, #PSR_I_BIT | MODE_SVC26 - .endm - - /* * These are the registers used in the syscall handler, and allow us to * have in theory up to 7 arguments to a function - r0 to r6. * - * r7 is reserved for the system call number for thumb mode. - * * Note that tbl == why is intentional. * * We must set at least "tsk" and "why" when calling ret_with_reschedule. @@ -161,17 +175,6 @@ #endif /* - * Our do_softirq out of line code. See include/asm-arm26/hardirq.h for - * the calling assembly. - */ -ENTRY(__do_softirq) - stmfd sp!, {r0 - r3, ip, lr} - bl do_softirq - ldmfd sp!, {r0 - r3, ip, pc} - - .align 5 - -/* * This is the fast syscall return path. We do as little as * possible here, and this includes saving r0 back into the SVC * stack. @@ -228,7 +231,8 @@ bl syscall_trace b ret_slow_syscall -#include +// FIXME - is this strictly necessary? +#include "calls.S" /*============================================================================= * SWI handler @@ -258,7 +262,8 @@ tst ip, #_TIF_SYSCALL_TRACE @ are we tracing syscalls? bne __sys_trace - adrsvc al, lr, ret_fast_syscall @ return address + adral lr, ret_fast_syscall @ set return address + orral lr, lr, #PSR_I_BIT | MODE_SVC26 @ Force SVC mode on return cmp scno, #NR_syscalls @ check upper syscall limit ldrcc pc, [tbl, scno, lsl #2] @ call sys_* routine @@ -278,7 +283,8 @@ mov r0, #0 @ trace entry [IP = 0] bl syscall_trace - adrsvc al, lr, __sys_trace_return @ return address + adral lr, __sys_trace_return @ set return address + orral lr, lr, #PSR_I_BIT | MODE_SVC26 @ Force SVC mode on return add r1, sp, #S_R0 + S_OFF @ pointer to regs cmp scno, #NR_syscalls @ check upper syscall limit ldmccia r1, {r0 - r3} @ have to reload r0 - r3 @@ -301,7 +307,7 @@ .type sys_call_table, #object ENTRY(sys_call_table) -#include +#include "calls.S" /*============================================================================ * Special system call wrappers @@ -387,27 +393,22 @@ .text - .equ ioc_base_high, IOC_BASE & 0xff000000 - .equ ioc_base_low, IOC_BASE & 0x00ff0000 - .macro disable_fiq - mov r12, #ioc_base_high - .if ioc_base_low - orr r12, r12, #ioc_base_low - .endif - strb r12, [r12, #0x38] @ Disable FIQ register + .macro handle_irq +1: mov r4, #IOC_BASE + ldrb r6, [r4, #0x24] @ get high priority first + adr r5, irq_prio_h + teq r6, #0 + ldreqb r6, [r4, #0x14] @ get low priority + adreq r5, irq_prio_l + + teq r6, #0 @ If an IRQ happened... + ldrneb r0, [r5, r6] @ get IRQ number + movne r1, sp @ get struct pt_regs + adrne lr, 1b @ Set return address to 1b + orrne lr, lr, #PSR_I_BIT | MODE_SVC26 @ (and force SVC mode) + bne asm_do_IRQ @ process IRQ (if asserted) .endm - .macro get_irqnr_and_base, irqnr, base - mov r4, #ioc_base_high @ point at IOC - .if ioc_base_low - orr r4, r4, #ioc_base_low - .endif - ldrb \irqnr, [r4, #0x24] @ get high priority first - adr \base, irq_prio_h - teq \irqnr, #0 - ldreqb \irqnr, [r4, #0x14] @ get low priority - adreq \base, irq_prio_l - .endm /* * Interrupt table (incorporates priority) @@ -448,9 +449,9 @@ .endm #if 1 -/* FIXME (well, ok, dont - but its easy to grep for :) */ /* * Uncomment these if you wish to get more debugging into about data aborts. + * FIXME - I bet we can find a way to encode these and keep performance. */ #define FAULT_CODE_LDRSTRPOST 0x80 #define FAULT_CODE_LDRSTRPRE 0x40 @@ -462,29 +463,6 @@ #define FAULT_CODE_WRITE 0x02 #define FAULT_CODE_FORCECOW 0x01 -#define SVC_SAVE_ALL \ - str sp, [sp, #-16]! ;\ - str lr, [sp, #8] ;\ - str lr, [sp, #4] ;\ - stmfd sp!, {r0 - r12} ;\ - mov r0, #-1 ;\ - str r0, [sp, #S_OLD_R0] ;\ - zero_fp - -#define SVC_IRQ_SAVE_ALL \ - str sp, [sp, #-16]! ;\ - str lr, [sp, #4] ;\ - ldr lr, .LCirq ;\ - ldr lr, [lr] ;\ - str lr, [sp, #8] ;\ - stmfd sp!, {r0 - r12} ;\ - mov r0, #-1 ;\ - str r0, [sp, #S_OLD_R0] ;\ - zero_fp - -#define SVC_RESTORE_ALL \ - ldmfd sp, {r0 - pc}^ - /*============================================================================= * Undefined FIQs *----------------------------------------------------------------------------- @@ -526,13 +504,13 @@ /* FIXME - should we trap for a null pointer here? */ /* The SVC mode case */ -__und_svc: SVC_SAVE_ALL @ Non-user mode +__und_svc: save_svc_regs @ Non-user mode mask_pc r0, lr and r2, lr, #3 sub r0, r0, #4 mov r1, sp bl do_undefinstr - SVC_RESTORE_ALL + restore_svc_regs /* We get here if the FP emulator doesnt handle the undef instr. * If the insn WAS handled, the emulator jumps to ret_from_exception by itself/ @@ -614,7 +592,7 @@ ldr lr, [sp,#S_PC] @ FIXME program to test this on. I think its b .Lbug_undef @ broken at the moment though!) -__pabt_invalid: SVC_SAVE_ALL +__pabt_invalid: save_svc_regs mov r0, sp @ Prefetch aborts are definitely *not* mov r1, #BAD_PREFETCH @ allowed in non-user modes. We cant and r2, lr, #3 @ recover from this problem. @@ -648,7 +626,7 @@ b ret_from_exception Laddrexcptn_not_user: - SVC_SAVE_ALL + save_svc_regs and r2, lr, #3 teq r2, #3 bne Laddrexcptn_illegal_mode @@ -686,56 +664,50 @@ /*============================================================================= * Interrupt (IRQ) handler *----------------------------------------------------------------------------- - * Note: if in user mode, then *no* kernel routine is running, so do not have - * to save svc lr - * (r13 points to irq temp save area) + * Note: if the IRQ was taken whilst in user mode, then *no* kernel routine + * is running, so do not have to save svc lr. + * + * Entered in IRQ mode. */ -vector_IRQ: ldr r13, .LCirq @ I will leave this one in just in case... - sub lr, lr, #4 - str lr, [r13] - tst lr, #3 - bne __irq_svc - teqp pc, #PSR_I_BIT | MODE_SVC26 +vector_IRQ: ldr sp, .LCirq @ Setup some temporary stack + sub lr, lr, #4 + str lr, [sp] @ push return address + + tst lr, #3 + bne __irq_non_usr + +__irq_usr: teqp pc, #PSR_I_BIT | MODE_SVC26 @ Enter SVC mode mov r0, r0 + ldr lr, .LCirq - ldr lr, [lr] + ldr lr, [lr] @ Restore lr for jump back to USR + save_user_regs -1: get_irqnr_and_base r6, r5 - teq r6, #0 - ldrneb r0, [r5, r6] @ get IRQ number - movne r1, sp - @ - @ routine called with r0 = irq number, r1 = struct pt_regs * - @ - adr lr, 1b - orr lr, lr, #PSR_I_BIT | MODE_SVC26 @ Force SVC - bne asm_do_IRQ + handle_irq mov why, #0 - get_thread_info tsk @ FIXME - was r5, but seemed wrong. + get_thread_info tsk b ret_to_user +@ Place the IRQ priority table here so that the handle_irq macros above +@ and below here can access it. + irq_prio_table -__irq_svc: teqp pc, #PSR_I_BIT | MODE_SVC26 +__irq_non_usr: teqp pc, #PSR_I_BIT | MODE_SVC26 @ Enter SVC mode mov r0, r0 - SVC_IRQ_SAVE_ALL + + save_svc_regs_irq + and r2, lr, #3 teq r2, #3 - bne __irq_invalid -1: get_irqnr_and_base r6, r5 - teq r6, #0 - ldrneb r0, [r5, r6] @ get IRQ number - movne r1, sp - @ - @ routine called with r0 = irq number, r1 = struct pt_regs * - @ - adr lr, 1b - orr lr, lr, #PSR_I_BIT | MODE_SVC26 @ Force SVC - bne asm_do_IRQ @ Returns to 1b - SVC_RESTORE_ALL + bne __irq_invalid @ IRQ not from SVC mode + + handle_irq + + restore_svc_regs __irq_invalid: mov r0, sp mov r1, #BAD_IRQ @@ -762,7 +734,7 @@ b ret_from_exception Ldata_not_user: - SVC_SAVE_ALL + save_svc_regs and r2, lr, #3 teq r2, #3 bne Ldata_illegal_mode @@ -770,7 +742,7 @@ teqeqp pc, #MODE_SVC26 mask_pc r0, lr bl Ldata_do - SVC_RESTORE_ALL + restore_svc_regs Ldata_illegal_mode: mov r0, sp diff -Nru a/arch/arm26/kernel/head.S b/arch/arm26/kernel/head.S --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/arm26/kernel/head.S 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,113 @@ +/* + * linux/arch/arm26/kernel/head.S + * + * Copyright (C) 1994-2000 Russell King + * Copyright (C) 2003 Ian Molton + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * 26-bit kernel startup code + */ +#include +#include +#include + + .globl swapper_pg_dir + .equ swapper_pg_dir, 0x0207d000 + +/* + * Entry point. + */ + .section ".init.text",#alloc,#execinstr +ENTRY(stext) + +__entry: + cmp pc, #0x02000000 + ldrlt pc, LC0 @ if 0x01800000, call at 0x02080000 + teq r0, #0 @ Check for old calling method + blne oldparams @ Move page if old + + adr r0, LC0 + ldmib r0, {r2-r5, sp} @ Setup stack (and fetch other values) + + mov r0, #0 @ Clear BSS +1: cmp r2, r3 + strcc r0, [r2], #4 + bcc 1b + + bl detect_proc_type + str r0, [r4] + bl detect_arch_type + str r0, [r5] + +#ifdef CONFIG_XIP_KERNEL + ldr r3, ETEXT @ data section copy + ldr r4, SDATA + ldr r5, EDATA +1: + ldr r6, [r3], #4 + str r6, [r4], #4 + cmp r4, r5 + blt 1b +#endif + mov fp, #0 + b start_kernel + +LC0: .word _stext + .word __bss_start @ r2 + .word _end @ r3 + .word processor_id @ r4 + .word __machine_arch_type @ r5 + .word init_thread_union+8192 @ sp +#ifdef CONFIG_XIP_KERNEL +ETEXT: .word _endtext +SDATA: .word _sdata +EDATA: .word __bss_start +#endif + +arm2_id: .long 0x41560200 @ ARM2 and 250 dont have a CPUID +arm250_id: .long 0x41560250 @ So we create some after probing for them + .align + +oldparams: mov r4, #0x02000000 + add r3, r4, #0x00080000 + add r4, r4, #0x0007c000 +1: ldmia r0!, {r5 - r12} + stmia r4!, {r5 - r12} + cmp r4, r3 + blt 1b + mov pc, lr + +/* + * We need some way to automatically detect the difference between + * these two machines. Unfortunately, it is not possible to detect + * the presence of the SuperIO chip, because that will hang the old + * Archimedes machines solid. + */ +/* DAG: Outdated, these have been combined !!!!!!! */ +detect_arch_type: +#if defined(CONFIG_ARCH_ARC) + mov r0, #MACH_TYPE_ARCHIMEDES +#elif defined(CONFIG_ARCH_A5K) + mov r0, #MACH_TYPE_A5K +#endif + mov pc, lr + +detect_proc_type: + mov ip, lr + mov r2, #0xea000000 @ Point undef instr to continuation + adr r0, continue - 12 + orr r0, r2, r0, lsr #2 + mov r1, #0 + str r0, [r1, #4] + ldr r0, arm2_id + swp r2, r2, [r1] @ check for swp (ARM2 cant) + ldr r0, arm250_id + mrc 15, 0, r3, c0, c0 @ check for CP#15 (ARM250 cant) + mov r0, r3 +continue: mov r2, #0xeb000000 @ Make undef vector loop + sub r2, r2, #2 + str r2, [r1, #4] + mov pc, ip diff -Nru a/arch/arm26/kernel/init_task.c b/arch/arm26/kernel/init_task.c --- a/arch/arm26/kernel/init_task.c 2005-01-05 17:43:36 -08:00 +++ b/arch/arm26/kernel/init_task.c 2005-01-05 17:43:36 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/kernel/init_task.c + * linux/arch/arm26/kernel/init_task.c * * Copyright (C) 2003 Ian Molton * @@ -29,7 +29,9 @@ * We need to make sure that this is 8192-byte aligned due to the * way process stacks are handled. This is done by making sure * the linker maps this in the .text segment right after head.S, - * and making head.S ensure the proper alignment. + * and making the linker scripts ensure the proper alignment. + * + * FIXME - should this be 32K alignment on arm26? * * The things we do for performance... */ diff -Nru a/arch/arm26/kernel/process.c b/arch/arm26/kernel/process.c --- a/arch/arm26/kernel/process.c 2005-01-05 17:43:39 -08:00 +++ b/arch/arm26/kernel/process.c 2005-01-05 17:43:39 -08:00 @@ -68,41 +68,21 @@ __setup("hlt", hlt_setup); /* - * The following aren't currently used. - */ -void (*pm_idle)(void); -void (*pm_power_off)(void); - -/* * This is our default idle handler. We need to disable * interrupts here to ensure we don't miss a wakeup call. */ -void default_idle(void) -{ - local_irq_disable(); - if (!need_resched() && !hlt_counter) - local_irq_enable(); -} - -/* - * The idle thread. We try to conserve power, while trying to keep - * overall latency low. The architecture specific idle is passed - * a value to indicate the level of "idleness" of the system. - */ void cpu_idle(void) { /* endless idle loop with no priority at all */ preempt_disable(); while (1) { - void (*idle)(void) = pm_idle; - if (!idle) - idle = default_idle; - leds_event(led_idle_start); - while (!need_resched()) - idle(); - leds_event(led_idle_end); - schedule(); + while (!need_resched()) { + local_irq_disable(); + if (!need_resched() && !hlt_counter) + local_irq_enable(); + } } + schedule(); } static char reboot_mode = 'h'; @@ -115,20 +95,15 @@ __setup("reboot=", reboot_setup); +/* ARM26 cant do these but we still need to define them. */ void machine_halt(void) { - leds_event(led_halted); } - -EXPORT_SYMBOL(machine_halt); - void machine_power_off(void) { - leds_event(led_halted); - if (pm_power_off) - pm_power_off(); } +EXPORT_SYMBOL(machine_halt); EXPORT_SYMBOL(machine_power_off); void machine_restart(char * __unused) @@ -306,7 +281,7 @@ asmlinkage void ret_from_fork(void) __asm__("ret_from_fork"); int -copy_thread(int nr, unsigned long clone_flags, unsigned long esp, +copy_thread(int nr, unsigned long clone_flags, unsigned long stack_start, unsigned long unused, struct task_struct *p, struct pt_regs *regs) { struct thread_info *thread = p->thread_info; @@ -315,7 +290,7 @@ childregs = __get_user_regs(thread); *childregs = *regs; childregs->ARM_r0 = 0; - childregs->ARM_sp = esp; + childregs->ARM_sp = stack_start; memset(&thread->cpu_context, 0, sizeof(struct cpu_context_save)); thread->cpu_context.sp = (unsigned long)childregs; @@ -367,35 +342,42 @@ } /* - * This is the mechanism for creating a new kernel thread. - * - * NOTE! Only a kernel-only process(ie the swapper or direct descendants - * who haven't done an "execve()") should use this: it will work within - * a system call from a "real" process, but the process memory space will - * not be free'd until both the parent and the child have exited. - * FIXME - taken from arm32 + * Shuffle the argument into the correct register before calling the + * thread function. r1 is the thread argument, r2 is the pointer to + * the thread function, and r3 points to the exit function. + * FIXME - make sure this is right - the older code used to zero fp + * and cause the parent to call sys_exit (do_exit in this version) + */ +extern void kernel_thread_helper(void); + +asm( ".section .text\n" +" .align\n" +" .type kernel_thread_helper, #function\n" +"kernel_thread_helper:\n" +" mov r0, r1\n" +" mov lr, r3\n" +" mov pc, r2\n" +" .size kernel_thread_helper, . - kernel_thread_helper\n" +" .previous"); + +/* + * Create a kernel thread. */ pid_t kernel_thread(int (*fn)(void *), void *arg, unsigned long flags) { - register unsigned int r0 asm("r0") = flags | CLONE_VM | CLONE_UNTRACED; - register unsigned int r1 asm("r1") = 0; - register pid_t __ret asm("r0"); - - __asm__ __volatile__( - __syscall(clone)" @ kernel_thread sys_clone \n\ - movs %0, r0 @ if we are the child \n\ - bne 1f \n\ - mov fp, #0 @ ensure that fp is zero \n\ - mov r0, %4 \n\ - mov lr, pc \n\ - mov pc, %3 \n\ - b sys_exit \n\ -1: " - : "=r" (__ret) - : "0" (r0), "r" (r1), "r" (fn), "r" (arg) - : "lr"); - return __ret; + struct pt_regs regs; + + memset(®s, 0, sizeof(regs)); + + regs.ARM_r1 = (unsigned long)arg; + regs.ARM_r2 = (unsigned long)fn; + regs.ARM_r3 = (unsigned long)do_exit; + regs.ARM_pc = (unsigned long)kernel_thread_helper | MODE_SVC26; + + return do_fork(flags|CLONE_VM|CLONE_UNTRACED, 0, ®s, 0, NULL, NULL); } +EXPORT_SYMBOL(kernel_thread); + unsigned long get_wchan(struct task_struct *p) { diff -Nru a/arch/arm26/kernel/semaphore.c b/arch/arm26/kernel/semaphore.c --- a/arch/arm26/kernel/semaphore.c 2005-01-05 17:43:36 -08:00 +++ b/arch/arm26/kernel/semaphore.c 2005-01-05 17:43:36 -08:00 @@ -12,6 +12,7 @@ * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ +#include #include #include #include @@ -179,7 +180,7 @@ * registers (r0 to r3 and lr), but not ip, as we use it as a return * value in some cases.. */ -asm(" .section .sched.text \n\ +asm(" .section .sched.text , #alloc, #execinstr \n\ .align 5 \n\ .globl __down_failed \n\ __down_failed: \n\ @@ -214,4 +215,9 @@ bl __up \n\ ldmfd sp!, {r0 - r3, pc}^ \n\ "); + +EXPORT_SYMBOL(__down_failed); +EXPORT_SYMBOL(__down_interruptible_failed); +EXPORT_SYMBOL(__down_trylock_failed); +EXPORT_SYMBOL(__up_wakeup); diff -Nru a/arch/arm26/kernel/setup.c b/arch/arm26/kernel/setup.c --- a/arch/arm26/kernel/setup.c 2005-01-05 17:43:36 -08:00 +++ b/arch/arm26/kernel/setup.c 2005-01-05 17:43:36 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/kernel/setup.c + * linux/arch/arm26/kernel/setup.c * * Copyright (C) 1995-2001 Russell King * Copyright (C) 2003 Ian Molton @@ -119,7 +119,7 @@ /* * locate processor in the list of supported processor * types. The linker builds this table for us from the - * entries in arch/arm/mm/proc-*.S + * entries in arch/arm26/mm/proc-*.S */ for (list = &__proc_info_begin; list < &__proc_info_end ; list++) if ((processor_id & list->cpu_mask) == list->cpu_val) diff -Nru a/arch/arm26/kernel/sys_arm.c b/arch/arm26/kernel/sys_arm.c --- a/arch/arm26/kernel/sys_arm.c 2005-01-05 17:43:37 -08:00 +++ b/arch/arm26/kernel/sys_arm.c 2005-01-05 17:43:37 -08:00 @@ -13,6 +13,7 @@ * have a non-standard calling sequence on the Linux/arm * platform. */ +#include #include #include #include @@ -281,3 +282,43 @@ out: return error; } + +/* FIXME - see if this is correct for arm26 */ +long execve(const char *filename, char **argv, char **envp) +{ + struct pt_regs regs; + int ret; + memset(®s, 0, sizeof(struct pt_regs)); + ret = do_execve((char *)filename, (char __user * __user *)argv, (char __user * __user *)envp, ®s); + if (ret < 0) + goto out; + + /* + * Save argc to the register structure for userspace. + */ + regs.ARM_r0 = ret; + + /* + * We were successful. We won't be returning to our caller, but + * instead to user space by manipulating the kernel stack. + */ + asm( "add r0, %0, %1\n\t" + "mov r1, %2\n\t" + "mov r2, %3\n\t" + "bl memmove\n\t" /* copy regs to top of stack */ + "mov r8, #0\n\t" /* not a syscall */ + "mov r9, %0\n\t" /* thread structure */ + "mov sp, r0\n\t" /* reposition stack pointer */ + "b ret_to_user" + : + : "r" (current_thread_info()), + "Ir" (THREAD_SIZE - 8 - sizeof(regs)), + "r" (®s), + "Ir" (sizeof(regs)) + : "r0", "r1", "r2", "r3", "ip", "memory"); + + out: + return ret; +} + +EXPORT_SYMBOL(execve); diff -Nru a/arch/arm26/kernel/time-acorn.c b/arch/arm26/kernel/time-acorn.c --- a/arch/arm26/kernel/time-acorn.c 2005-01-05 17:43:36 -08:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,69 +0,0 @@ -/* - * linux/arch/arm/kernel/time-acorn.c - * - * Copyright (c) 1996-2000 Russell King. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * Changelog: - * 24-Sep-1996 RMK Created - * 10-Oct-1996 RMK Brought up to date with arch-sa110eval - * 04-Dec-1997 RMK Updated for new arch/arm/time.c - * 13-May-2003 IM Brought over to ARM26 - */ -#include -#include -#include - -#include -#include -#include -#include - -extern unsigned long (*gettimeoffset)(void); - -static unsigned long ioctime_gettimeoffset(void) -{ - unsigned int count1, count2, status; - long offset; - - ioc_writeb (0, IOC_T0LATCH); - barrier (); - count1 = ioc_readb(IOC_T0CNTL) | (ioc_readb(IOC_T0CNTH) << 8); - barrier (); - status = ioc_readb(IOC_IRQREQA); - barrier (); - ioc_writeb (0, IOC_T0LATCH); - barrier (); - count2 = ioc_readb(IOC_T0CNTL) | (ioc_readb(IOC_T0CNTH) << 8); - - offset = count2; - if (count2 < count1) { - /* - * We have not had an interrupt between reading count1 - * and count2. - */ - if (status & (1 << 5)) - offset -= LATCH; - } else if (count2 > count1) { - /* - * We have just had another interrupt between reading - * count1 and count2. - */ - offset -= LATCH; - } - - offset = (LATCH - offset) * (tick_nsec / 1000); - return (offset + LATCH/2) / LATCH; -} - -void __init ioctime_init(void) -{ - ioc_writeb(LATCH & 255, IOC_T0LTCHL); - ioc_writeb(LATCH >> 8, IOC_T0LTCHH); - ioc_writeb(0, IOC_T0GO); - - gettimeoffset = ioctime_gettimeoffset; -} diff -Nru a/arch/arm26/kernel/time.c b/arch/arm26/kernel/time.c --- a/arch/arm26/kernel/time.c 2005-01-05 17:43:38 -08:00 +++ b/arch/arm26/kernel/time.c 2005-01-05 17:43:38 -08:00 @@ -32,7 +32,7 @@ #include #include #include -#include +#include u64 jiffies_64 = INITIAL_JIFFIES; @@ -56,16 +56,53 @@ */ int (*set_rtc)(void) = dummy_set_rtc; -static unsigned long dummy_gettimeoffset(void) +/* + * Get time offset based on IOCs timer. + * FIXME - if this is called with interrutps off, why the shennanigans + * below ? + */ +static unsigned long gettimeoffset(void) { - return 0; + unsigned int count1, count2, status; + long offset; + + ioc_writeb (0, IOC_T0LATCH); + barrier (); + count1 = ioc_readb(IOC_T0CNTL) | (ioc_readb(IOC_T0CNTH) << 8); + barrier (); + status = ioc_readb(IOC_IRQREQA); + barrier (); + ioc_writeb (0, IOC_T0LATCH); + barrier (); + count2 = ioc_readb(IOC_T0CNTL) | (ioc_readb(IOC_T0CNTH) << 8); + + offset = count2; + if (count2 < count1) { + /* + * We have not had an interrupt between reading count1 + * and count2. + */ + if (status & (1 << 5)) + offset -= LATCH; + } else if (count2 > count1) { + /* + * We have just had another interrupt between reading + * count1 and count2. + */ + offset -= LATCH; + } + + offset = (LATCH - offset) * (tick_nsec / 1000); + return (offset + LATCH/2) / LATCH; } /* - * hook for getting the time offset. Note that it is - * always called with interrupts disabled. + * Scheduler clock - returns current time in nanosec units. */ -unsigned long (*gettimeoffset)(void) = dummy_gettimeoffset; +unsigned long long sched_clock(void) +{ + return (unsigned long long)jiffies * (1000000000 / HZ); +} static unsigned long next_rtc_update; @@ -187,7 +224,10 @@ */ void __init time_init(void) { - ioctime_init(); + ioc_writeb(LATCH & 255, IOC_T0LTCHL); + ioc_writeb(LATCH >> 8, IOC_T0LTCHH); + ioc_writeb(0, IOC_T0GO); + setup_irq(IRQ_TIMER, &timer_irq); } diff -Nru a/arch/arm26/kernel/traps.c b/arch/arm26/kernel/traps.c --- a/arch/arm26/kernel/traps.c 2005-01-05 17:43:38 -08:00 +++ b/arch/arm26/kernel/traps.c 2005-01-05 17:43:38 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/kernel/traps.c + * linux/arch/arm26/kernel/traps.c * * Copyright (C) 1995-2002 Russell King * Fragments that appear the same as linux/arch/i386/kernel/traps.c (C) Linus Torvalds @@ -10,9 +10,11 @@ * published by the Free Software Foundation. * * 'traps.c' handles hardware exceptions after we have saved some state in - * 'linux/arch/arm/lib/traps.S'. Mostly a debugging aid, but will probably + * 'linux/arch/arm26/lib/traps.S'. Mostly a debugging aid, but will probably * kill the offending process. */ + +#include #include #include #include @@ -28,7 +30,6 @@ #include #include -#include #include #include #include @@ -134,8 +135,6 @@ dump_mem("Stack: ", sp, 8192+(unsigned long)tsk->thread_info); } -EXPORT_SYMBOL(dump_stack); - void dump_stack(void) { #ifdef CONFIG_DEBUG_ERRORS @@ -143,6 +142,8 @@ #endif } +EXPORT_SYMBOL(dump_stack); + //FIXME - was a static fn void dump_backtrace(struct pt_regs *regs, struct task_struct *tsk) { @@ -425,7 +426,6 @@ return 0; case NR(usr26): - case NR(usr32): break; default: diff -Nru a/arch/arm26/kernel/vmlinux-arm26-xip.lds.in b/arch/arm26/kernel/vmlinux-arm26-xip.lds.in --- a/arch/arm26/kernel/vmlinux-arm26-xip.lds.in 2005-01-05 17:43:39 -08:00 +++ b/arch/arm26/kernel/vmlinux-arm26-xip.lds.in 2005-01-05 17:43:39 -08:00 @@ -64,6 +64,7 @@ _text = .; /* Text and read-only data */ *(.text) SCHED_TEXT + LOCK_TEXT /* FIXME - borrowed from arm32 - check*/ *(.fixup) *(.gnu.warning) *(.rodata) @@ -91,9 +92,11 @@ _sdata = .; .data : { + . = ALIGN(8192); /* * first, the init thread union, aligned - * to an 8192 byte boundary. + * to an 8192 byte boundary. (see arm26/kernel/init_task.c) + * FIXME - sould this be 32K aligned on arm26? */ *(.init.task) diff -Nru a/arch/arm26/kernel/vmlinux-arm26.lds.in b/arch/arm26/kernel/vmlinux-arm26.lds.in --- a/arch/arm26/kernel/vmlinux-arm26.lds.in 2005-01-05 17:43:35 -08:00 +++ b/arch/arm26/kernel/vmlinux-arm26.lds.in 2005-01-05 17:43:35 -08:00 @@ -65,6 +65,7 @@ _text = .; /* Text and read-only data */ *(.text) SCHED_TEXT + LOCK_TEXT *(.fixup) *(.gnu.warning) *(.rodata) @@ -90,7 +91,7 @@ .data : { /* * first, the init task union, aligned - * to an 8192 byte boundary. + * to an 8192 byte boundary. (see arm26/kernel/init_task.c) */ *(.init.task) diff -Nru a/arch/arm26/lib/Makefile b/arch/arm26/lib/Makefile --- a/arch/arm26/lib/Makefile 2005-01-05 17:43:38 -08:00 +++ b/arch/arm26/lib/Makefile 2005-01-05 17:43:38 -08:00 @@ -1,5 +1,5 @@ # -# linux/arch/arm/lib/Makefile +# linux/arch/arm26/lib/Makefile # # Copyright (C) 1995-2000 Russell King # @@ -7,15 +7,15 @@ lib-y := backtrace.o changebit.o csumipv6.o csumpartial.o \ csumpartialcopy.o csumpartialcopyuser.o clearbit.o \ copy_page.o delay.o findbit.o memchr.o memcpy.o \ - memset.o memzero.o setbit.o \ - strchr.o strrchr.o testchangebit.o \ + memset.o memzero.o setbit.o \ + strchr.o strrchr.o testchangebit.o \ testclearbit.o testsetbit.o getuser.o \ putuser.o ashldi3.o ashrdi3.o lshrdi3.o muldi3.o \ ucmpdi2.o udivdi3.o lib1funcs.o ecard.o io-acorn.o \ floppydma.o io-readsb.o io-writesb.o io-writesl.o \ - uaccess-kernel.o uaccess-user.o io-readsw-armv3.o \ - io-writesw-armv3.o io-readsl-armv3.o ecard.o \ - io-acorn.o floppydma.o + uaccess-kernel.o uaccess-user.o io-readsw.o \ + io-writesw.o io-readsl.o ecard.o io-acorn.o \ + floppydma.o lib-n := diff -Nru a/arch/arm26/lib/backtrace.S b/arch/arm26/lib/backtrace.S --- a/arch/arm26/lib/backtrace.S 2005-01-05 17:43:38 -08:00 +++ b/arch/arm26/lib/backtrace.S 2005-01-05 17:43:38 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/lib/backtrace.S + * linux/arch/arm26/lib/backtrace.S * * Copyright (C) 1995, 1996 Russell King * diff -Nru a/arch/arm26/lib/changebit.S b/arch/arm26/lib/changebit.S --- a/arch/arm26/lib/changebit.S 2005-01-05 17:43:38 -08:00 +++ b/arch/arm26/lib/changebit.S 2005-01-05 17:43:38 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/lib/changebit.S + * linux/arch/arm26/lib/changebit.S * * Copyright (C) 1995-1996 Russell King * diff -Nru a/arch/arm26/lib/clearbit.S b/arch/arm26/lib/clearbit.S --- a/arch/arm26/lib/clearbit.S 2005-01-05 17:43:35 -08:00 +++ b/arch/arm26/lib/clearbit.S 2005-01-05 17:43:35 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/lib/clearbit.S + * linux/arch/arm26/lib/clearbit.S * * Copyright (C) 1995-1996 Russell King * diff -Nru a/arch/arm26/lib/copy_page.S b/arch/arm26/lib/copy_page.S --- a/arch/arm26/lib/copy_page.S 2005-01-05 17:43:35 -08:00 +++ b/arch/arm26/lib/copy_page.S 2005-01-05 17:43:35 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/lib/copypage.S + * linux/arch/arm26/lib/copypage.S * * Copyright (C) 1995-1999 Russell King * diff -Nru a/arch/arm26/lib/csumipv6.S b/arch/arm26/lib/csumipv6.S --- a/arch/arm26/lib/csumipv6.S 2005-01-05 17:43:39 -08:00 +++ b/arch/arm26/lib/csumipv6.S 2005-01-05 17:43:39 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/lib/csumipv6.S + * linux/arch/arm26/lib/csumipv6.S * * Copyright (C) 1995-1998 Russell King * diff -Nru a/arch/arm26/lib/csumpartial.S b/arch/arm26/lib/csumpartial.S --- a/arch/arm26/lib/csumpartial.S 2005-01-05 17:43:35 -08:00 +++ b/arch/arm26/lib/csumpartial.S 2005-01-05 17:43:35 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/lib/csumpartial.S + * linux/arch/arm26/lib/csumpartial.S * * Copyright (C) 1995-1998 Russell King * diff -Nru a/arch/arm26/lib/csumpartialcopy.S b/arch/arm26/lib/csumpartialcopy.S --- a/arch/arm26/lib/csumpartialcopy.S 2005-01-05 17:43:37 -08:00 +++ b/arch/arm26/lib/csumpartialcopy.S 2005-01-05 17:43:37 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/lib/csumpartialcopy.S + * linux/arch/arm26/lib/csumpartialcopy.S * * Copyright (C) 1995-1998 Russell King * diff -Nru a/arch/arm26/lib/csumpartialcopygeneric.S b/arch/arm26/lib/csumpartialcopygeneric.S --- a/arch/arm26/lib/csumpartialcopygeneric.S 2005-01-05 17:43:37 -08:00 +++ b/arch/arm26/lib/csumpartialcopygeneric.S 2005-01-05 17:43:37 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/lib/csumpartialcopygeneric.S + * linux/arch/arm26/lib/csumpartialcopygeneric.S * * Copyright (C) 1995-2001 Russell King * diff -Nru a/arch/arm26/lib/delay.S b/arch/arm26/lib/delay.S --- a/arch/arm26/lib/delay.S 2005-01-05 17:43:39 -08:00 +++ b/arch/arm26/lib/delay.S 2005-01-05 17:43:39 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/lib/delay.S + * linux/arch/arm26/lib/delay.S * * Copyright (C) 1995, 1996 Russell King * diff -Nru a/arch/arm26/lib/ecard.S b/arch/arm26/lib/ecard.S --- a/arch/arm26/lib/ecard.S 2005-01-05 17:43:38 -08:00 +++ b/arch/arm26/lib/ecard.S 2005-01-05 17:43:38 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/lib/ecard.S + * linux/arch/arm26/lib/ecard.S * * Copyright (C) 1995, 1996 Russell King * diff -Nru a/arch/arm26/lib/floppydma.S b/arch/arm26/lib/floppydma.S --- a/arch/arm26/lib/floppydma.S 2005-01-05 17:43:35 -08:00 +++ b/arch/arm26/lib/floppydma.S 2005-01-05 17:43:35 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/lib/floppydma.S + * linux/arch/arm26/lib/floppydma.S * * Copyright (C) 1995, 1996 Russell King * diff -Nru a/arch/arm26/lib/getuser.S b/arch/arm26/lib/getuser.S --- a/arch/arm26/lib/getuser.S 2005-01-05 17:43:39 -08:00 +++ b/arch/arm26/lib/getuser.S 2005-01-05 17:43:39 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/lib/getuser.S + * linux/arch/arm26/lib/getuser.S * * Copyright (C) 2001 Russell King * @@ -28,6 +28,7 @@ */ #include #include +#include .global __get_user_1 __get_user_1: @@ -98,7 +99,7 @@ mov r2, #0 __get_user_bad: mov r1, #0 - mov r0, #-14 + mov r0, #-EFAULT ldmfd sp!, {pc}^ .section __ex_table, "a" diff -Nru a/arch/arm26/lib/io-acorn.S b/arch/arm26/lib/io-acorn.S --- a/arch/arm26/lib/io-acorn.S 2005-01-05 17:43:39 -08:00 +++ b/arch/arm26/lib/io-acorn.S 2005-01-05 17:43:39 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/lib/io-acorn.S + * linux/arch/arm26/lib/io-acorn.S * * Copyright (C) 1995, 1996 Russell King * diff -Nru a/arch/arm26/lib/io-readsb.S b/arch/arm26/lib/io-readsb.S --- a/arch/arm26/lib/io-readsb.S 2005-01-05 17:43:38 -08:00 +++ b/arch/arm26/lib/io-readsb.S 2005-01-05 17:43:38 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/lib/io-readsb.S + * linux/arch/arm26/lib/io-readsb.S * * Copyright (C) 1995-2000 Russell King * diff -Nru a/arch/arm26/lib/io-readsl-armv3.S b/arch/arm26/lib/io-readsl-armv3.S --- a/arch/arm26/lib/io-readsl-armv3.S 2005-01-05 17:43:38 -08:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,78 +0,0 @@ -/* - * linux/arch/arm/lib/io-readsl-armv3.S - * - * Copyright (C) 1995-2000 Russell King - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#include -#include -#include - -/* - * Note that some reads can be aligned on half-word boundaries. - */ -ENTRY(__raw_readsl) - teq r2, #0 @ do we have to check for the zero len? - moveq pc, lr - ands ip, r1, #3 - bne 2f - -1: ldr r3, [r0] - str r3, [r1], #4 - subs r2, r2, #1 - bne 1b - mov pc, lr - -2: cmp ip, #2 - ldr ip, [r0] - blt 4f - bgt 6f - - strb ip, [r1], #1 - mov ip, ip, lsr #8 - strb ip, [r1], #1 - mov ip, ip, lsr #8 -3: subs r2, r2, #1 - ldrne r3, [r0] - orrne ip, ip, r3, lsl #16 - strne ip, [r1], #4 - movne ip, r3, lsr #16 - bne 3b - strb ip, [r1], #1 - mov ip, ip, lsr #8 - strb ip, [r1], #1 - mov pc, lr - -4: strb ip, [r1], #1 - mov ip, ip, lsr #8 - strb ip, [r1], #1 - mov ip, ip, lsr #8 - strb ip, [r1], #1 - mov ip, ip, lsr #8 -5: subs r2, r2, #1 - ldrne r3, [r0] - orrne ip, ip, r3, lsl #8 - strne ip, [r1], #4 - movne ip, r3, lsr #24 - bne 5b - strb ip, [r1], #1 - mov pc, lr - -6: strb ip, [r1], #1 - mov ip, ip, lsr #8 -7: subs r2, r2, #1 - ldrne r3, [r0] - orrne ip, ip, r3, lsl #24 - strne ip, [r1], #4 - movne ip, r3, lsr #8 - bne 7b - strb ip, [r1], #1 - mov ip, ip, lsr #8 - strb ip, [r1], #1 - mov ip, ip, lsr #8 - strb ip, [r1], #1 - mov pc, lr - diff -Nru a/arch/arm26/lib/io-readsl.S b/arch/arm26/lib/io-readsl.S --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/arm26/lib/io-readsl.S 2005-01-05 17:43:38 -08:00 @@ -0,0 +1,78 @@ +/* + * linux/arch/arm26/lib/io-readsl.S + * + * Copyright (C) 1995-2000 Russell King + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +#include +#include +#include + +/* + * Note that some reads can be aligned on half-word boundaries. + */ +ENTRY(__raw_readsl) + teq r2, #0 @ do we have to check for the zero len? + moveq pc, lr + ands ip, r1, #3 + bne 2f + +1: ldr r3, [r0] + str r3, [r1], #4 + subs r2, r2, #1 + bne 1b + mov pc, lr + +2: cmp ip, #2 + ldr ip, [r0] + blt 4f + bgt 6f + + strb ip, [r1], #1 + mov ip, ip, lsr #8 + strb ip, [r1], #1 + mov ip, ip, lsr #8 +3: subs r2, r2, #1 + ldrne r3, [r0] + orrne ip, ip, r3, lsl #16 + strne ip, [r1], #4 + movne ip, r3, lsr #16 + bne 3b + strb ip, [r1], #1 + mov ip, ip, lsr #8 + strb ip, [r1], #1 + mov pc, lr + +4: strb ip, [r1], #1 + mov ip, ip, lsr #8 + strb ip, [r1], #1 + mov ip, ip, lsr #8 + strb ip, [r1], #1 + mov ip, ip, lsr #8 +5: subs r2, r2, #1 + ldrne r3, [r0] + orrne ip, ip, r3, lsl #8 + strne ip, [r1], #4 + movne ip, r3, lsr #24 + bne 5b + strb ip, [r1], #1 + mov pc, lr + +6: strb ip, [r1], #1 + mov ip, ip, lsr #8 +7: subs r2, r2, #1 + ldrne r3, [r0] + orrne ip, ip, r3, lsl #24 + strne ip, [r1], #4 + movne ip, r3, lsr #8 + bne 7b + strb ip, [r1], #1 + mov ip, ip, lsr #8 + strb ip, [r1], #1 + mov ip, ip, lsr #8 + strb ip, [r1], #1 + mov pc, lr + diff -Nru a/arch/arm26/lib/io-readsw-armv3.S b/arch/arm26/lib/io-readsw-armv3.S --- a/arch/arm26/lib/io-readsw-armv3.S 2005-01-05 17:43:35 -08:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,107 +0,0 @@ -/* - * linux/arch/arm/lib/io-readsw-armv3.S - * - * Copyright (C) 1995-2000 Russell King - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#include -#include -#include - -.insw_bad_alignment: - adr r0, .insw_bad_align_msg - mov r2, lr - b panic -.insw_bad_align_msg: - .asciz "insw: bad buffer alignment (0x%p, lr=0x%08lX)\n" - .align - -.insw_align: tst r1, #1 - bne .insw_bad_alignment - - ldr r3, [r0] - strb r3, [r1], #1 - mov r3, r3, lsr #8 - strb r3, [r1], #1 - - subs r2, r2, #1 - RETINSTR(moveq, pc, lr) - -ENTRY(__raw_readsw) - teq r2, #0 @ do we have to check for the zero len? - moveq pc, lr - tst r1, #3 - bne .insw_align - -.insw_aligned: mov ip, #0xff - orr ip, ip, ip, lsl #8 - stmfd sp!, {r4, r5, r6, lr} - - subs r2, r2, #8 - bmi .no_insw_8 - -.insw_8_lp: ldr r3, [r0] - and r3, r3, ip - ldr r4, [r0] - orr r3, r3, r4, lsl #16 - - ldr r4, [r0] - and r4, r4, ip - ldr r5, [r0] - orr r4, r4, r5, lsl #16 - - ldr r5, [r0] - and r5, r5, ip - ldr r6, [r0] - orr r5, r5, r6, lsl #16 - - ldr r6, [r0] - and r6, r6, ip - ldr lr, [r0] - orr r6, r6, lr, lsl #16 - - stmia r1!, {r3 - r6} - - subs r2, r2, #8 - bpl .insw_8_lp - - tst r2, #7 - LOADREGS(eqfd, sp!, {r4, r5, r6, pc}) - -.no_insw_8: tst r2, #4 - beq .no_insw_4 - - ldr r3, [r0] - and r3, r3, ip - ldr r4, [r0] - orr r3, r3, r4, lsl #16 - - ldr r4, [r0] - and r4, r4, ip - ldr r5, [r0] - orr r4, r4, r5, lsl #16 - - stmia r1!, {r3, r4} - -.no_insw_4: tst r2, #2 - beq .no_insw_2 - - ldr r3, [r0] - and r3, r3, ip - ldr r4, [r0] - orr r3, r3, r4, lsl #16 - - str r3, [r1], #4 - -.no_insw_2: tst r2, #1 - ldrne r3, [r0] - strneb r3, [r1], #1 - movne r3, r3, lsr #8 - strneb r3, [r1] - - LOADREGS(fd, sp!, {r4, r5, r6, pc}) - - diff -Nru a/arch/arm26/lib/io-readsw.S b/arch/arm26/lib/io-readsw.S --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/arm26/lib/io-readsw.S 2005-01-05 17:43:35 -08:00 @@ -0,0 +1,107 @@ +/* + * linux/arch/arm26/lib/io-readsw.S + * + * Copyright (C) 1995-2000 Russell King + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +#include +#include +#include + +.insw_bad_alignment: + adr r0, .insw_bad_align_msg + mov r2, lr + b panic +.insw_bad_align_msg: + .asciz "insw: bad buffer alignment (0x%p, lr=0x%08lX)\n" + .align + +.insw_align: tst r1, #1 + bne .insw_bad_alignment + + ldr r3, [r0] + strb r3, [r1], #1 + mov r3, r3, lsr #8 + strb r3, [r1], #1 + + subs r2, r2, #1 + RETINSTR(moveq, pc, lr) + +ENTRY(__raw_readsw) + teq r2, #0 @ do we have to check for the zero len? + moveq pc, lr + tst r1, #3 + bne .insw_align + +.insw_aligned: mov ip, #0xff + orr ip, ip, ip, lsl #8 + stmfd sp!, {r4, r5, r6, lr} + + subs r2, r2, #8 + bmi .no_insw_8 + +.insw_8_lp: ldr r3, [r0] + and r3, r3, ip + ldr r4, [r0] + orr r3, r3, r4, lsl #16 + + ldr r4, [r0] + and r4, r4, ip + ldr r5, [r0] + orr r4, r4, r5, lsl #16 + + ldr r5, [r0] + and r5, r5, ip + ldr r6, [r0] + orr r5, r5, r6, lsl #16 + + ldr r6, [r0] + and r6, r6, ip + ldr lr, [r0] + orr r6, r6, lr, lsl #16 + + stmia r1!, {r3 - r6} + + subs r2, r2, #8 + bpl .insw_8_lp + + tst r2, #7 + LOADREGS(eqfd, sp!, {r4, r5, r6, pc}) + +.no_insw_8: tst r2, #4 + beq .no_insw_4 + + ldr r3, [r0] + and r3, r3, ip + ldr r4, [r0] + orr r3, r3, r4, lsl #16 + + ldr r4, [r0] + and r4, r4, ip + ldr r5, [r0] + orr r4, r4, r5, lsl #16 + + stmia r1!, {r3, r4} + +.no_insw_4: tst r2, #2 + beq .no_insw_2 + + ldr r3, [r0] + and r3, r3, ip + ldr r4, [r0] + orr r3, r3, r4, lsl #16 + + str r3, [r1], #4 + +.no_insw_2: tst r2, #1 + ldrne r3, [r0] + strneb r3, [r1], #1 + movne r3, r3, lsr #8 + strneb r3, [r1] + + LOADREGS(fd, sp!, {r4, r5, r6, pc}) + + diff -Nru a/arch/arm26/lib/io-writesb.S b/arch/arm26/lib/io-writesb.S --- a/arch/arm26/lib/io-writesb.S 2005-01-05 17:43:36 -08:00 +++ b/arch/arm26/lib/io-writesb.S 2005-01-05 17:43:36 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/lib/io-writesb.S + * linux/arch/arm26/lib/io-writesb.S * * Copyright (C) 1995-2000 Russell King * diff -Nru a/arch/arm26/lib/io-writesl.S b/arch/arm26/lib/io-writesl.S --- a/arch/arm26/lib/io-writesl.S 2005-01-05 17:43:39 -08:00 +++ b/arch/arm26/lib/io-writesl.S 2005-01-05 17:43:39 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/lib/io-writesl.S + * linux/arch/arm26/lib/io-writesl.S * * Copyright (C) 1995-2000 Russell King * diff -Nru a/arch/arm26/lib/io-writesw-armv3.S b/arch/arm26/lib/io-writesw-armv3.S --- a/arch/arm26/lib/io-writesw-armv3.S 2005-01-05 17:43:35 -08:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,127 +0,0 @@ -/* - * linux/arch/arm/lib/io-writesw-armv3.S - * - * Copyright (C) 1995-2000 Russell King - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ -#include -#include -#include - -.outsw_bad_alignment: - adr r0, .outsw_bad_align_msg - mov r2, lr - b panic -.outsw_bad_align_msg: - .asciz "outsw: bad buffer alignment (0x%p, lr=0x%08lX)\n" - .align - -.outsw_align: tst r1, #1 - bne .outsw_bad_alignment - - add r1, r1, #2 - - ldr r3, [r1, #-4] - mov r3, r3, lsr #16 - orr r3, r3, r3, lsl #16 - str r3, [r0] - subs r2, r2, #1 - RETINSTR(moveq, pc, lr) - -ENTRY(__raw_writesw) - teq r2, #0 @ do we have to check for the zero len? - moveq pc, lr - tst r1, #3 - bne .outsw_align - -.outsw_aligned: stmfd sp!, {r4, r5, r6, lr} - - subs r2, r2, #8 - bmi .no_outsw_8 - -.outsw_8_lp: ldmia r1!, {r3, r4, r5, r6} - - mov ip, r3, lsl #16 - orr ip, ip, ip, lsr #16 - str ip, [r0] - - mov ip, r3, lsr #16 - orr ip, ip, ip, lsl #16 - str ip, [r0] - - mov ip, r4, lsl #16 - orr ip, ip, ip, lsr #16 - str ip, [r0] - - mov ip, r4, lsr #16 - orr ip, ip, ip, lsl #16 - str ip, [r0] - - mov ip, r5, lsl #16 - orr ip, ip, ip, lsr #16 - str ip, [r0] - - mov ip, r5, lsr #16 - orr ip, ip, ip, lsl #16 - str ip, [r0] - - mov ip, r6, lsl #16 - orr ip, ip, ip, lsr #16 - str ip, [r0] - - mov ip, r6, lsr #16 - orr ip, ip, ip, lsl #16 - str ip, [r0] - - subs r2, r2, #8 - bpl .outsw_8_lp - - tst r2, #7 - LOADREGS(eqfd, sp!, {r4, r5, r6, pc}) - -.no_outsw_8: tst r2, #4 - beq .no_outsw_4 - - ldmia r1!, {r3, r4} - - mov ip, r3, lsl #16 - orr ip, ip, ip, lsr #16 - str ip, [r0] - - mov ip, r3, lsr #16 - orr ip, ip, ip, lsl #16 - str ip, [r0] - - mov ip, r4, lsl #16 - orr ip, ip, ip, lsr #16 - str ip, [r0] - - mov ip, r4, lsr #16 - orr ip, ip, ip, lsl #16 - str ip, [r0] - -.no_outsw_4: tst r2, #2 - beq .no_outsw_2 - - ldr r3, [r1], #4 - - mov ip, r3, lsl #16 - orr ip, ip, ip, lsr #16 - str ip, [r0] - - mov ip, r3, lsr #16 - orr ip, ip, ip, lsl #16 - str ip, [r0] - -.no_outsw_2: tst r2, #1 - - ldrne r3, [r1] - - movne ip, r3, lsl #16 - orrne ip, ip, ip, lsr #16 - strne ip, [r0] - - LOADREGS(fd, sp!, {r4, r5, r6, pc}) diff -Nru a/arch/arm26/lib/io-writesw.S b/arch/arm26/lib/io-writesw.S --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/arm26/lib/io-writesw.S 2005-01-05 17:43:35 -08:00 @@ -0,0 +1,127 @@ +/* + * linux/arch/arm26/lib/io-writesw.S + * + * Copyright (C) 1995-2000 Russell King + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +#include +#include +#include + +.outsw_bad_alignment: + adr r0, .outsw_bad_align_msg + mov r2, lr + b panic +.outsw_bad_align_msg: + .asciz "outsw: bad buffer alignment (0x%p, lr=0x%08lX)\n" + .align + +.outsw_align: tst r1, #1 + bne .outsw_bad_alignment + + add r1, r1, #2 + + ldr r3, [r1, #-4] + mov r3, r3, lsr #16 + orr r3, r3, r3, lsl #16 + str r3, [r0] + subs r2, r2, #1 + RETINSTR(moveq, pc, lr) + +ENTRY(__raw_writesw) + teq r2, #0 @ do we have to check for the zero len? + moveq pc, lr + tst r1, #3 + bne .outsw_align + +.outsw_aligned: stmfd sp!, {r4, r5, r6, lr} + + subs r2, r2, #8 + bmi .no_outsw_8 + +.outsw_8_lp: ldmia r1!, {r3, r4, r5, r6} + + mov ip, r3, lsl #16 + orr ip, ip, ip, lsr #16 + str ip, [r0] + + mov ip, r3, lsr #16 + orr ip, ip, ip, lsl #16 + str ip, [r0] + + mov ip, r4, lsl #16 + orr ip, ip, ip, lsr #16 + str ip, [r0] + + mov ip, r4, lsr #16 + orr ip, ip, ip, lsl #16 + str ip, [r0] + + mov ip, r5, lsl #16 + orr ip, ip, ip, lsr #16 + str ip, [r0] + + mov ip, r5, lsr #16 + orr ip, ip, ip, lsl #16 + str ip, [r0] + + mov ip, r6, lsl #16 + orr ip, ip, ip, lsr #16 + str ip, [r0] + + mov ip, r6, lsr #16 + orr ip, ip, ip, lsl #16 + str ip, [r0] + + subs r2, r2, #8 + bpl .outsw_8_lp + + tst r2, #7 + LOADREGS(eqfd, sp!, {r4, r5, r6, pc}) + +.no_outsw_8: tst r2, #4 + beq .no_outsw_4 + + ldmia r1!, {r3, r4} + + mov ip, r3, lsl #16 + orr ip, ip, ip, lsr #16 + str ip, [r0] + + mov ip, r3, lsr #16 + orr ip, ip, ip, lsl #16 + str ip, [r0] + + mov ip, r4, lsl #16 + orr ip, ip, ip, lsr #16 + str ip, [r0] + + mov ip, r4, lsr #16 + orr ip, ip, ip, lsl #16 + str ip, [r0] + +.no_outsw_4: tst r2, #2 + beq .no_outsw_2 + + ldr r3, [r1], #4 + + mov ip, r3, lsl #16 + orr ip, ip, ip, lsr #16 + str ip, [r0] + + mov ip, r3, lsr #16 + orr ip, ip, ip, lsl #16 + str ip, [r0] + +.no_outsw_2: tst r2, #1 + + ldrne r3, [r1] + + movne ip, r3, lsl #16 + orrne ip, ip, ip, lsr #16 + strne ip, [r0] + + LOADREGS(fd, sp!, {r4, r5, r6, pc}) diff -Nru a/arch/arm26/lib/memchr.S b/arch/arm26/lib/memchr.S --- a/arch/arm26/lib/memchr.S 2005-01-05 17:43:39 -08:00 +++ b/arch/arm26/lib/memchr.S 2005-01-05 17:43:39 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/lib/memchr.S + * linux/arch/arm26/lib/memchr.S * * Copyright (C) 1995-2000 Russell King * diff -Nru a/arch/arm26/lib/memcpy.S b/arch/arm26/lib/memcpy.S --- a/arch/arm26/lib/memcpy.S 2005-01-05 17:43:39 -08:00 +++ b/arch/arm26/lib/memcpy.S 2005-01-05 17:43:39 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/lib/memcpy.S + * linux/arch/arm26/lib/memcpy.S * * Copyright (C) 1995-1999 Russell King * diff -Nru a/arch/arm26/lib/memset.S b/arch/arm26/lib/memset.S --- a/arch/arm26/lib/memset.S 2005-01-05 17:43:38 -08:00 +++ b/arch/arm26/lib/memset.S 2005-01-05 17:43:38 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/lib/memset.S + * linux/arch/arm26/lib/memset.S * * Copyright (C) 1995-2000 Russell King * diff -Nru a/arch/arm26/lib/memzero.S b/arch/arm26/lib/memzero.S --- a/arch/arm26/lib/memzero.S 2005-01-05 17:43:37 -08:00 +++ b/arch/arm26/lib/memzero.S 2005-01-05 17:43:37 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/lib/memzero.S + * linux/arch/arm26/lib/memzero.S * * Copyright (C) 1995-2000 Russell King * diff -Nru a/arch/arm26/lib/putuser.S b/arch/arm26/lib/putuser.S --- a/arch/arm26/lib/putuser.S 2005-01-05 17:43:37 -08:00 +++ b/arch/arm26/lib/putuser.S 2005-01-05 17:43:37 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/lib/putuser.S + * linux/arch/arm26/lib/putuser.S * * Copyright (C) 2001 Russell King * @@ -28,6 +28,7 @@ */ #include #include +#include .global __put_user_1 __put_user_1: @@ -95,7 +96,7 @@ ldmfd sp!, {pc}^ __put_user_bad: - mov r0, #-14 + mov r0, #-EFAULT mov pc, lr .section __ex_table, "a" diff -Nru a/arch/arm26/lib/setbit.S b/arch/arm26/lib/setbit.S --- a/arch/arm26/lib/setbit.S 2005-01-05 17:43:35 -08:00 +++ b/arch/arm26/lib/setbit.S 2005-01-05 17:43:35 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/lib/setbit.S + * linux/arch/arm26/lib/setbit.S * * Copyright (C) 1995-1996 Russell King * diff -Nru a/arch/arm26/lib/strchr.S b/arch/arm26/lib/strchr.S --- a/arch/arm26/lib/strchr.S 2005-01-05 17:43:35 -08:00 +++ b/arch/arm26/lib/strchr.S 2005-01-05 17:43:35 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/lib/strchr.S + * linux/arch/arm26/lib/strchr.S * * Copyright (C) 1995-2000 Russell King * diff -Nru a/arch/arm26/lib/strrchr.S b/arch/arm26/lib/strrchr.S --- a/arch/arm26/lib/strrchr.S 2005-01-05 17:43:38 -08:00 +++ b/arch/arm26/lib/strrchr.S 2005-01-05 17:43:38 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/lib/strrchr.S + * linux/arch/arm26/lib/strrchr.S * * Copyright (C) 1995-2000 Russell King * diff -Nru a/arch/arm26/lib/testchangebit.S b/arch/arm26/lib/testchangebit.S --- a/arch/arm26/lib/testchangebit.S 2005-01-05 17:43:36 -08:00 +++ b/arch/arm26/lib/testchangebit.S 2005-01-05 17:43:36 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/lib/testchangebit.S + * linux/arch/arm26/lib/testchangebit.S * * Copyright (C) 1995-1996 Russell King * diff -Nru a/arch/arm26/lib/testclearbit.S b/arch/arm26/lib/testclearbit.S --- a/arch/arm26/lib/testclearbit.S 2005-01-05 17:43:39 -08:00 +++ b/arch/arm26/lib/testclearbit.S 2005-01-05 17:43:39 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/lib/testclearbit.S + * linux/arch/arm26/lib/testclearbit.S * * Copyright (C) 1995-1996 Russell King * diff -Nru a/arch/arm26/lib/testsetbit.S b/arch/arm26/lib/testsetbit.S --- a/arch/arm26/lib/testsetbit.S 2005-01-05 17:43:37 -08:00 +++ b/arch/arm26/lib/testsetbit.S 2005-01-05 17:43:37 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/lib/testsetbit.S + * linux/arch/arm26/lib/testsetbit.S * * Copyright (C) 1995-1996 Russell King * diff -Nru a/arch/arm26/machine/Makefile b/arch/arm26/machine/Makefile --- a/arch/arm26/machine/Makefile 2005-01-05 17:43:37 -08:00 +++ b/arch/arm26/machine/Makefile 2005-01-05 17:43:37 -08:00 @@ -4,9 +4,5 @@ # Object file lists. -obj-y := dma.o irq.o oldlatches.o \ - small_page.o +obj-y := dma.o irq.o latches.o -extra-y := head.o - -AFLAGS_head.o := -DTEXTADDR=$(TEXTADDR) diff -Nru a/arch/arm26/machine/dma.c b/arch/arm26/machine/dma.c --- a/arch/arm26/machine/dma.c 2005-01-05 17:43:38 -08:00 +++ b/arch/arm26/machine/dma.c 2005-01-05 17:43:38 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/kernel/dma-arc.c + * linux/arch/arm26/kernel/dma.c * * Copyright (C) 1998-1999 Dave Gilbert / Russell King * Copyright (C) 2003 Ian Molton diff -Nru a/arch/arm26/machine/head.S b/arch/arm26/machine/head.S --- a/arch/arm26/machine/head.S 2005-01-05 17:43:40 -08:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,111 +0,0 @@ -/* - * linux/arch/arm/kernel/head-armo.S - * - * Copyright (C) 1994-2000 Russell King - * Copyright (C) 2003 Ian Molton - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * 26-bit kernel startup code - */ -#include -#include -#include - - .globl swapper_pg_dir - .equ swapper_pg_dir, 0x0207d000 - -/* - * Entry point. - */ - .section ".init.text",#alloc,#execinstr -ENTRY(stext) -__entry: cmp pc, #0x02000000 - ldrlt pc, LC0 @ if 0x01800000, call at 0x02080000 - teq r0, #0 @ Check for old calling method - blne oldparams @ Move page if old - adr r0, LC0 - ldmib r0, {r2-r5, sp} @ Setup stack (and fetch other values) - - mov r0, #0 @ Clear BSS -1: cmp r2, r3 - strcc r0, [r2], #4 - bcc 1b - - bl detect_proc_type - str r0, [r4] - bl detect_arch_type - str r0, [r5] - -#ifdef CONFIG_XIP_KERNEL - ldr r3, ETEXT @ data section copy - ldr r4, SDATA - ldr r5, EDATA -1: - ldr r6, [r3], #4 - str r6, [r4], #4 - cmp r4, r5 - blt 1b -#endif - - mov fp, #0 - b start_kernel - -LC0: .word _stext - .word __bss_start @ r2 - .word _end @ r3 - .word processor_id @ r4 - .word __machine_arch_type @ r5 - .word init_thread_union+8192 @ sp -#ifdef CONFIG_XIP_KERNEL -ETEXT: .word _endtext -SDATA: .word _sdata -EDATA: .word __bss_start -#endif - -arm2_id: .long 0x41560200 @ ARM2 and 250 dont have a CPUID -arm250_id: .long 0x41560250 @ So we create some after probing for them - .align - -oldparams: mov r4, #0x02000000 - add r3, r4, #0x00080000 - add r4, r4, #0x0007c000 -1: ldmia r0!, {r5 - r12} - stmia r4!, {r5 - r12} - cmp r4, r3 - blt 1b - mov pc, lr - -/* - * We need some way to automatically detect the difference between - * these two machines. Unfortunately, it is not possible to detect - * the presence of the SuperIO chip, because that will hang the old - * Archimedes machines solid. - */ -/* DAG: Outdated, these have been combined !!!!!!! */ -detect_arch_type: -#if defined(CONFIG_ARCH_ARC) - mov r0, #MACH_TYPE_ARCHIMEDES -#elif defined(CONFIG_ARCH_A5K) - mov r0, #MACH_TYPE_A5K -#endif - mov pc, lr - -detect_proc_type: - mov ip, lr - mov r2, #0xea000000 @ Point undef instr to continuation - adr r0, continue - 12 - orr r0, r2, r0, lsr #2 - mov r1, #0 - str r0, [r1, #4] - ldr r0, arm2_id - swp r2, r2, [r1] @ check for swp (ARM2 cant) - ldr r0, arm250_id - mrc 15, 0, r3, c0, c0 @ check for CP#15 (ARM250 cant) - mov r0, r3 -continue: mov r2, #0xeb000000 @ Make undef vector loop - sub r2, r2, #2 - str r2, [r1, #4] - mov pc, ip diff -Nru a/arch/arm26/machine/irq.c b/arch/arm26/machine/irq.c --- a/arch/arm26/machine/irq.c 2005-01-05 17:43:36 -08:00 +++ b/arch/arm26/machine/irq.c 2005-01-05 17:43:36 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/mach-arc/irq.c + * linux/arch/arm26/mach-arc/irq.c * * Copyright (C) 1996 Russell King * diff -Nru a/arch/arm26/machine/latches.c b/arch/arm26/machine/latches.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/arm26/machine/latches.c 2005-01-05 17:43:36 -08:00 @@ -0,0 +1,72 @@ +/* + * linux/arch/arm26/kernel/latches.c + * + * Copyright (C) David Alan Gilbert 1995/1996,2000 + * Copyright (C) Ian Molton 2003 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * Support for the latches on the old Archimedes which control the floppy, + * hard disc and printer + */ +#include +#include +#include +#include + +#include +#include +#include +#include + +static unsigned char latch_a_copy; +static unsigned char latch_b_copy; + +/* newval=(oldval & ~mask)|newdata */ +void oldlatch_aupdate(unsigned char mask,unsigned char newdata) +{ + unsigned long flags; + + BUG_ON(!machine_is_archimedes()); + + local_irq_save(flags); //FIXME: was local_save_flags + latch_a_copy = (latch_a_copy & ~mask) | newdata; + __raw_writeb(latch_a_copy, LATCHA_BASE); + local_irq_restore(flags); + + printk("Latch: A = 0x%02x\n", latch_a_copy); +} + + +/* newval=(oldval & ~mask)|newdata */ +void oldlatch_bupdate(unsigned char mask,unsigned char newdata) +{ + unsigned long flags; + + BUG_ON(!machine_is_archimedes()); + + + local_irq_save(flags);//FIXME: was local_save_flags + latch_b_copy = (latch_b_copy & ~mask) | newdata; + __raw_writeb(latch_b_copy, LATCHB_BASE); + local_irq_restore(flags); + + printk("Latch: B = 0x%02x\n", latch_b_copy); +} + +static int __init oldlatch_init(void) +{ + if (machine_is_archimedes()) { + oldlatch_aupdate(0xff, 0xff); + /* Thats no FDC reset...*/ + oldlatch_bupdate(0xff, LATCHB_FDCRESET); + } + return 0; +} + +arch_initcall(oldlatch_init); + +EXPORT_SYMBOL(oldlatch_aupdate); +EXPORT_SYMBOL(oldlatch_bupdate); diff -Nru a/arch/arm26/machine/oldlatches.c b/arch/arm26/machine/oldlatches.c --- a/arch/arm26/machine/oldlatches.c 2005-01-05 17:43:36 -08:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,72 +0,0 @@ -/* - * linux/arch/arm/kernel/oldlatches.c - * - * Copyright (C) David Alan Gilbert 1995/1996,2000 - * Copyright (C) Ian Molton 2003 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * Support for the latches on the old Archimedes which control the floppy, - * hard disc and printer - */ -#include -#include -#include -#include - -#include -#include -#include -#include - -static unsigned char latch_a_copy; -static unsigned char latch_b_copy; - -/* newval=(oldval & ~mask)|newdata */ -void oldlatch_aupdate(unsigned char mask,unsigned char newdata) -{ - unsigned long flags; - - BUG_ON(!machine_is_archimedes()); - - local_irq_save(flags); //FIXME: was local_save_flags - latch_a_copy = (latch_a_copy & ~mask) | newdata; - __raw_writeb(latch_a_copy, LATCHA_BASE); - local_irq_restore(flags); - - printk("Latch: A = 0x%02x\n", latch_a_copy); -} - - -/* newval=(oldval & ~mask)|newdata */ -void oldlatch_bupdate(unsigned char mask,unsigned char newdata) -{ - unsigned long flags; - - BUG_ON(!machine_is_archimedes()); - - - local_irq_save(flags);//FIXME: was local_save_flags - latch_b_copy = (latch_b_copy & ~mask) | newdata; - __raw_writeb(latch_b_copy, LATCHB_BASE); - local_irq_restore(flags); - - printk("Latch: B = 0x%02x\n", latch_b_copy); -} - -static int __init oldlatch_init(void) -{ - if (machine_is_archimedes()) { - oldlatch_aupdate(0xff, 0xff); - /* Thats no FDC reset...*/ - oldlatch_bupdate(0xff, LATCHB_FDCRESET); - } - return 0; -} - -arch_initcall(oldlatch_init); - -EXPORT_SYMBOL(oldlatch_aupdate); -EXPORT_SYMBOL(oldlatch_bupdate); diff -Nru a/arch/arm26/machine/small_page.c b/arch/arm26/machine/small_page.c --- a/arch/arm26/machine/small_page.c 2005-01-05 17:43:39 -08:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,191 +0,0 @@ -/* - * linux/arch/arm/mm/small_page.c - * - * Copyright (C) 1996 Russell King - * Copyright (C) 2003 Ian Molton - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * Changelog: - * 26/01/1996 RMK Cleaned up various areas to make little more generic - * 07/02/1999 RMK Support added for 16K and 32K page sizes - * containing 8K blocks - */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#define PEDANTIC - -/* - * Requirement: - * We need to be able to allocate naturally aligned memory of finer - * granularity than the page size. This is typically used for the - * second level page tables on 32-bit ARMs. - * - * Theory: - * We "misuse" the Linux memory management system. We use alloc_page - * to allocate a page and then mark it as reserved. The Linux memory - * management system will then ignore the "offset", "next_hash" and - * "pprev_hash" entries in the mem_map for this page. - * - * We then use a bitstring in the "offset" field to mark which segments - * of the page are in use, and manipulate this as required during the - * allocation and freeing of these small pages. - * - * We also maintain a queue of pages being used for this purpose using - * the "next_hash" and "pprev_hash" entries of mem_map; - */ - -struct order { - struct list_head queue; - unsigned int mask; /* (1 << shift) - 1 */ - unsigned int shift; /* (1 << shift) size of page */ - unsigned int block_mask; /* nr_blocks - 1 */ - unsigned int all_used; /* (1 << nr_blocks) - 1 */ -}; - - -static struct order orders[] = { -#if PAGE_SIZE == 32768 - { LIST_HEAD_INIT(orders[0].queue), 2047, 11, 15, 0x0000ffff }, - { LIST_HEAD_INIT(orders[1].queue), 8191, 13, 3, 0x0000000f } -#else -#error unsupported page size (ARGH!) -#endif -}; - -#define USED_MAP(pg) ((pg)->index) -#define TEST_AND_CLEAR_USED(pg,off) (test_and_clear_bit(off, &USED_MAP(pg))) -#define SET_USED(pg,off) (set_bit(off, &USED_MAP(pg))) - -static spinlock_t small_page_lock = SPIN_LOCK_UNLOCKED; - -static unsigned long __get_small_page(int priority, struct order *order) -{ - unsigned long flags; - struct page *page; - int offset; - - do { - spin_lock_irqsave(&small_page_lock, flags); - - if (list_empty(&order->queue)) - goto need_new_page; - - page = list_entry(order->queue.next, struct page, list); -again: -#ifdef PEDANTIC - if (USED_MAP(page) & ~order->all_used) - PAGE_BUG(page); -#endif - offset = ffz(USED_MAP(page)); - SET_USED(page, offset); - if (USED_MAP(page) == order->all_used) - list_del_init(&page->lru); - spin_unlock_irqrestore(&small_page_lock, flags); - - return (unsigned long) page_address(page) + (offset << order->shift); - -need_new_page: - spin_unlock_irqrestore(&small_page_lock, flags); - page = alloc_page(priority); - spin_lock_irqsave(&small_page_lock, flags); - - if (list_empty(&order->queue)) { - if (!page) - goto no_page; - SetPageReserved(page); - USED_MAP(page) = 0; - list_add(&page->lru, &order->queue); - goto again; - } - - spin_unlock_irqrestore(&small_page_lock, flags); - __free_page(page); - } while (1); - -no_page: - spin_unlock_irqrestore(&small_page_lock, flags); - return 0; -} - -static void __free_small_page(unsigned long spage, struct order *order) -{ - unsigned long flags; - struct page *page; - - if (virt_addr_valid(spage)) { - page = virt_to_page(spage); - - /* - * The container-page must be marked Reserved - */ - if (!PageReserved(page) || spage & order->mask) - goto non_small; - -#ifdef PEDANTIC - if (USED_MAP(page) & ~order->all_used) - PAGE_BUG(page); -#endif - - spage = spage >> order->shift; - spage &= order->block_mask; - - /* - * the following must be atomic wrt get_page - */ - spin_lock_irqsave(&small_page_lock, flags); - - if (USED_MAP(page) == order->all_used) - list_add(&page->lru, &order->queue); - - if (!TEST_AND_CLEAR_USED(page, spage)) - goto already_free; - - if (USED_MAP(page) == 0) - goto free_page; - - spin_unlock_irqrestore(&small_page_lock, flags); - } - return; - -free_page: - /* - * unlink the page from the small page queue and free it - */ - list_del_init(&page->lru); - spin_unlock_irqrestore(&small_page_lock, flags); - ClearPageReserved(page); - __free_page(page); - return; - -non_small: - printk("Trying to free non-small page from %p\n", __builtin_return_address(0)); - return; -already_free: - printk("Trying to free free small page from %p\n", __builtin_return_address(0)); -} - -unsigned long get_page_8k(int priority) -{ - return __get_small_page(priority, orders+1); -} - -void free_page_8k(unsigned long spage) -{ - __free_small_page(spage, orders+1); -} diff -Nru a/arch/arm26/mm/Makefile b/arch/arm26/mm/Makefile --- a/arch/arm26/mm/Makefile 2005-01-05 17:43:36 -08:00 +++ b/arch/arm26/mm/Makefile 2005-01-05 17:43:36 -08:00 @@ -2,4 +2,5 @@ # Makefile for the linux arm26-specific parts of the memory manager. # -obj-y := init.o extable.o proc-funcs.o mm-memc.o fault.o +obj-y := init.o extable.o proc-funcs.o memc.o fault.o \ + small_page.o diff -Nru a/arch/arm26/mm/extable.c b/arch/arm26/mm/extable.c --- a/arch/arm26/mm/extable.c 2005-01-05 17:43:37 -08:00 +++ b/arch/arm26/mm/extable.c 2005-01-05 17:43:37 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/mm/extable.c + * linux/arch/arm26/mm/extable.c */ #include @@ -11,6 +11,12 @@ const struct exception_table_entry *fixup; fixup = search_exception_tables(instruction_pointer(regs)); + + /* + * The kernel runs in SVC mode - make sure we keep running in SVC mode + * by frobbing the PSR appropriately (PSR and PC are in the same reg. + * on ARM26) + */ if (fixup) regs->ARM_pc = fixup->fixup | PSR_I_BIT | MODE_SVC26; diff -Nru a/arch/arm26/mm/fault.c b/arch/arm26/mm/fault.c --- a/arch/arm26/mm/fault.c 2005-01-05 17:43:36 -08:00 +++ b/arch/arm26/mm/fault.c 2005-01-05 17:43:36 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/mm/fault-common.c + * linux/arch/arm26/mm/fault.c * * Copyright (C) 1995 Linus Torvalds * Modifications for ARM processor (c) 1995-2001 Russell King @@ -212,7 +212,6 @@ tsk = current; mm = tsk->mm; - printk("do_page_fault: pid: %d %08x\n", tsk->pid, addr); /* * If we're in an interrupt or have no user * context, we must not take the fault.. diff -Nru a/arch/arm26/mm/init.c b/arch/arm26/mm/init.c --- a/arch/arm26/mm/init.c 2005-01-05 17:43:39 -08:00 +++ b/arch/arm26/mm/init.c 2005-01-05 17:43:39 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/mm/init.c + * linux/arch/arm26/mm/init.c * * Copyright (C) 1995-2002 Russell King * @@ -26,7 +26,6 @@ #include #include -#include #include #include #include @@ -84,7 +83,7 @@ else if (!page_count(page)) free++; else - shared += atomic_read(&page->count) - 1; + shared += page_count(page) - 1; page++; } while (page < end); diff -Nru a/arch/arm26/mm/memc.c b/arch/arm26/mm/memc.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/arm26/mm/memc.c 2005-01-05 17:43:39 -08:00 @@ -0,0 +1,202 @@ +/* + * linux/arch/arm26/mm/memc.c + * + * Copyright (C) 1998-2000 Russell King + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * Page table sludge for older ARM processor architectures. + */ +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include + +#define MEMC_TABLE_SIZE (256*sizeof(unsigned long)) + +kmem_cache_t *pte_cache, *pgd_cache; +int page_nr; + +/* + * Allocate space for a page table and a MEMC table. + * Note that we place the MEMC + * table before the page directory. This means we can + * easily get to both tightly-associated data structures + * with a single pointer. + */ +static inline pgd_t *alloc_pgd_table(void) +{ + void *pg2k = kmem_cache_alloc(pgd_cache, GFP_KERNEL); + + if (pg2k) + pg2k += MEMC_TABLE_SIZE; + + return (pgd_t *)pg2k; +} + +/* + * Free a page table. this function is the counterpart to get_pgd_slow + * below, not alloc_pgd_table above. + */ +void free_pgd_slow(pgd_t *pgd) +{ + unsigned long tbl = (unsigned long)pgd; + + tbl -= MEMC_TABLE_SIZE; + + kmem_cache_free(pgd_cache, (void *)tbl); +} + +/* + * Allocate a new pgd and fill it in ready for use + * + * A new tasks pgd is completely empty (all pages !present) except for: + * + * o The machine vectors at virtual address 0x0 + * o The vmalloc region at the top of address space + * + */ +#define FIRST_KERNEL_PGD_NR (FIRST_USER_PGD_NR + USER_PTRS_PER_PGD) + +pgd_t *get_pgd_slow(struct mm_struct *mm) +{ + pgd_t *new_pgd, *init_pgd; + pmd_t *new_pmd, *init_pmd; + pte_t *new_pte, *init_pte; + + new_pgd = alloc_pgd_table(); + if (!new_pgd) + goto no_pgd; + + /* + * This lock is here just to satisfy pmd_alloc and pte_lock + * FIXME: I bet we could avoid taking it pretty much altogether + */ + spin_lock(&mm->page_table_lock); + + /* + * On ARM, first page must always be allocated since it contains + * the machine vectors. + */ + new_pmd = pmd_alloc(mm, new_pgd, 0); + if (!new_pmd) + goto no_pmd; + + new_pte = pte_alloc_kernel(mm, new_pmd, 0); + if (!new_pte) + goto no_pte; + + init_pgd = pgd_offset(&init_mm, 0); + init_pmd = pmd_offset(init_pgd, 0); + init_pte = pte_offset(init_pmd, 0); + + set_pte(new_pte, *init_pte); + + /* + * the page table entries are zeroed + * when the table is created. (see the cache_ctor functions below) + * Now we need to plonk the kernel (vmalloc) area at the end of + * the address space. We copy this from the init thread, just like + * the init_pte we copied above... + */ + memcpy(new_pgd + FIRST_KERNEL_PGD_NR, init_pgd + FIRST_KERNEL_PGD_NR, + (PTRS_PER_PGD - FIRST_KERNEL_PGD_NR) * sizeof(pgd_t)); + + spin_unlock(&mm->page_table_lock); + + /* update MEMC tables */ + cpu_memc_update_all(new_pgd); + return new_pgd; + +no_pte: + spin_unlock(&mm->page_table_lock); + pmd_free(new_pmd); + free_pgd_slow(new_pgd); + return NULL; + +no_pmd: + spin_unlock(&mm->page_table_lock); + free_pgd_slow(new_pgd); + return NULL; + +no_pgd: + return NULL; +} + +/* + * No special code is required here. + */ +void setup_mm_for_reboot(char mode) +{ +} + +/* + * This contains the code to setup the memory map on an ARM2/ARM250/ARM3 + * o swapper_pg_dir = 0x0207d000 + * o kernel proper starts at 0x0208000 + * o create (allocate) a pte to contain the machine vectors + * o populate the pte (points to 0x02078000) (FIXME - is it zeroed?) + * o populate the init tasks page directory (pgd) with the new pte + * o zero the rest of the init tasks pgdir (FIXME - what about vmalloc?!) + */ +void __init memtable_init(struct meminfo *mi) +{ + pte_t *pte; + int i; + + page_nr = max_low_pfn; + + pte = alloc_bootmem_low_pages(PTRS_PER_PTE * sizeof(pte_t)); + pte[0] = mk_pte_phys(PAGE_OFFSET + SCREEN_SIZE, PAGE_READONLY); + pmd_populate(&init_mm, pmd_offset(swapper_pg_dir, 0), pte); + + for (i = 1; i < PTRS_PER_PGD; i++) + pgd_val(swapper_pg_dir[i]) = 0; +} + +void __init iotable_init(struct map_desc *io_desc) +{ + /* nothing to do */ +} + +/* + * We never have holes in the memmap + */ +void __init create_memmap_holes(struct meminfo *mi) +{ +} + +static void pte_cache_ctor(void *pte, kmem_cache_t *cache, unsigned long flags) +{ + memzero(pte, sizeof(pte_t) * PTRS_PER_PTE); +} + +static void pgd_cache_ctor(void *pgd, kmem_cache_t *cache, unsigned long flags) +{ + memzero(pgd + MEMC_TABLE_SIZE, USER_PTRS_PER_PGD * sizeof(pgd_t)); +} + +void __init pgtable_cache_init(void) +{ + pte_cache = kmem_cache_create("pte-cache", + sizeof(pte_t) * PTRS_PER_PTE, + 0, 0, pte_cache_ctor, NULL); + if (!pte_cache) + BUG(); + + pgd_cache = kmem_cache_create("pgd-cache", MEMC_TABLE_SIZE + + sizeof(pgd_t) * PTRS_PER_PGD, + 0, 0, pgd_cache_ctor, NULL); + if (!pgd_cache) + BUG(); +} diff -Nru a/arch/arm26/mm/mm-memc.c b/arch/arm26/mm/mm-memc.c --- a/arch/arm26/mm/mm-memc.c 2005-01-05 17:43:39 -08:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,202 +0,0 @@ -/* - * linux/arch/arm/mm/mm-armo.c - * - * Copyright (C) 1998-2000 Russell King - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * Page table sludge for older ARM processor architectures. - */ -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include - -#define MEMC_TABLE_SIZE (256*sizeof(unsigned long)) - -kmem_cache_t *pte_cache, *pgd_cache; -int page_nr; - -/* - * Allocate space for a page table and a MEMC table. - * Note that we place the MEMC - * table before the page directory. This means we can - * easily get to both tightly-associated data structures - * with a single pointer. - */ -static inline pgd_t *alloc_pgd_table(void) -{ - void *pg2k = kmem_cache_alloc(pgd_cache, GFP_KERNEL); - - if (pg2k) - pg2k += MEMC_TABLE_SIZE; - - return (pgd_t *)pg2k; -} - -/* - * Free a page table. this function is the counterpart to get_pgd_slow - * below, not alloc_pgd_table above. - */ -void free_pgd_slow(pgd_t *pgd) -{ - unsigned long tbl = (unsigned long)pgd; - - tbl -= MEMC_TABLE_SIZE; - - kmem_cache_free(pgd_cache, (void *)tbl); -} - -/* - * Allocate a new pgd and fill it in ready for use - * - * A new tasks pgd is completely empty (all pages !present) except for: - * - * o The machine vectors at virtual address 0x0 - * o The vmalloc region at the top of address space - * - */ -#define FIRST_KERNEL_PGD_NR (FIRST_USER_PGD_NR + USER_PTRS_PER_PGD) - -pgd_t *get_pgd_slow(struct mm_struct *mm) -{ - pgd_t *new_pgd, *init_pgd; - pmd_t *new_pmd, *init_pmd; - pte_t *new_pte, *init_pte; - - new_pgd = alloc_pgd_table(); - if (!new_pgd) - goto no_pgd; - - /* - * This lock is here just to satisfy pmd_alloc and pte_lock - * FIXME: I bet we could avoid taking it pretty much altogether - */ - spin_lock(&mm->page_table_lock); - - /* - * On ARM, first page must always be allocated since it contains - * the machine vectors. - */ - new_pmd = pmd_alloc(mm, new_pgd, 0); - if (!new_pmd) - goto no_pmd; - - new_pte = pte_alloc_kernel(mm, new_pmd, 0); - if (!new_pte) - goto no_pte; - - init_pgd = pgd_offset(&init_mm, 0); - init_pmd = pmd_offset(init_pgd, 0); - init_pte = pte_offset(init_pmd, 0); - - set_pte(new_pte, *init_pte); - - /* - * the page table entries are zeroed - * when the table is created. (see the cache_ctor functions below) - * Now we need to plonk the kernel (vmalloc) area at the end of - * the address space. We copy this from the init thread, just like - * the init_pte we copied above... - */ - memcpy(new_pgd + FIRST_KERNEL_PGD_NR, init_pgd + FIRST_KERNEL_PGD_NR, - (PTRS_PER_PGD - FIRST_KERNEL_PGD_NR) * sizeof(pgd_t)); - - spin_unlock(&mm->page_table_lock); - - /* update MEMC tables */ - cpu_memc_update_all(new_pgd); - return new_pgd; - -no_pte: - spin_unlock(&mm->page_table_lock); - pmd_free(new_pmd); - free_pgd_slow(new_pgd); - return NULL; - -no_pmd: - spin_unlock(&mm->page_table_lock); - free_pgd_slow(new_pgd); - return NULL; - -no_pgd: - return NULL; -} - -/* - * No special code is required here. - */ -void setup_mm_for_reboot(char mode) -{ -} - -/* - * This contains the code to setup the memory map on an ARM2/ARM250/ARM3 - * o swapper_pg_dir = 0x0207d000 - * o kernel proper starts at 0x0208000 - * o create (allocate) a pte to contain the machine vectors - * o populate the pte (points to 0x02078000) (FIXME - is it zeroed?) - * o populate the init tasks page directory (pgd) with the new pte - * o zero the rest of the init tasks pgdir (FIXME - what about vmalloc?!) - */ -void __init memtable_init(struct meminfo *mi) -{ - pte_t *pte; - int i; - - page_nr = max_low_pfn; - - pte = alloc_bootmem_low_pages(PTRS_PER_PTE * sizeof(pte_t)); - pte[0] = mk_pte_phys(PAGE_OFFSET + SCREEN_SIZE, PAGE_READONLY); - pmd_populate(&init_mm, pmd_offset(swapper_pg_dir, 0), pte); - - for (i = 1; i < PTRS_PER_PGD; i++) - pgd_val(swapper_pg_dir[i]) = 0; -} - -void __init iotable_init(struct map_desc *io_desc) -{ - /* nothing to do */ -} - -/* - * We never have holes in the memmap - */ -void __init create_memmap_holes(struct meminfo *mi) -{ -} - -static void pte_cache_ctor(void *pte, kmem_cache_t *cache, unsigned long flags) -{ - memzero(pte, sizeof(pte_t) * PTRS_PER_PTE); -} - -static void pgd_cache_ctor(void *pgd, kmem_cache_t *cache, unsigned long flags) -{ - memzero(pgd + MEMC_TABLE_SIZE, USER_PTRS_PER_PGD * sizeof(pgd_t)); -} - -void __init pgtable_cache_init(void) -{ - pte_cache = kmem_cache_create("pte-cache", - sizeof(pte_t) * PTRS_PER_PTE, - 0, 0, pte_cache_ctor, NULL); - if (!pte_cache) - BUG(); - - pgd_cache = kmem_cache_create("pgd-cache", MEMC_TABLE_SIZE + - sizeof(pgd_t) * PTRS_PER_PGD, - 0, 0, pgd_cache_ctor, NULL); - if (!pgd_cache) - BUG(); -} diff -Nru a/arch/arm26/mm/proc-funcs.S b/arch/arm26/mm/proc-funcs.S --- a/arch/arm26/mm/proc-funcs.S 2005-01-05 17:43:39 -08:00 +++ b/arch/arm26/mm/proc-funcs.S 2005-01-05 17:43:39 -08:00 @@ -1,5 +1,5 @@ /* - * linux/arch/arm/mm/proc-arm2,3.S + * linux/arch/arm26/mm/proc-arm2,3.S * * Copyright (C) 1997-1999 Russell King * diff -Nru a/arch/arm26/mm/small_page.c b/arch/arm26/mm/small_page.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/arm26/mm/small_page.c 2005-01-05 17:43:39 -08:00 @@ -0,0 +1,194 @@ +/* + * linux/arch/arm26/mm/small_page.c + * + * Copyright (C) 1996 Russell King + * Copyright (C) 2003 Ian Molton + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * Changelog: + * 26/01/1996 RMK Cleaned up various areas to make little more generic + * 07/02/1999 RMK Support added for 16K and 32K page sizes + * containing 8K blocks + * 23/05/2004 IM Fixed to use struct page->lru (thanks wli) + * + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#define PEDANTIC + +/* + * Requirement: + * We need to be able to allocate naturally aligned memory of finer + * granularity than the page size. This is typically used for the + * second level page tables on 32-bit ARMs. + * + * FIXME - this comment is *out of date* + * Theory: + * We "misuse" the Linux memory management system. We use alloc_page + * to allocate a page and then mark it as reserved. The Linux memory + * management system will then ignore the "offset", "next_hash" and + * "pprev_hash" entries in the mem_map for this page. + * + * We then use a bitstring in the "offset" field to mark which segments + * of the page are in use, and manipulate this as required during the + * allocation and freeing of these small pages. + * + * We also maintain a queue of pages being used for this purpose using + * the "next_hash" and "pprev_hash" entries of mem_map; + */ + +struct order { + struct list_head queue; + unsigned int mask; /* (1 << shift) - 1 */ + unsigned int shift; /* (1 << shift) size of page */ + unsigned int block_mask; /* nr_blocks - 1 */ + unsigned int all_used; /* (1 << nr_blocks) - 1 */ +}; + + +static struct order orders[] = { +#if PAGE_SIZE == 32768 + { LIST_HEAD_INIT(orders[0].queue), 2047, 11, 15, 0x0000ffff }, + { LIST_HEAD_INIT(orders[1].queue), 8191, 13, 3, 0x0000000f } +#else +#error unsupported page size (ARGH!) +#endif +}; + +#define USED_MAP(pg) ((pg)->index) +#define TEST_AND_CLEAR_USED(pg,off) (test_and_clear_bit(off, &USED_MAP(pg))) +#define SET_USED(pg,off) (set_bit(off, &USED_MAP(pg))) + +static spinlock_t small_page_lock = SPIN_LOCK_UNLOCKED; + +static unsigned long __get_small_page(int priority, struct order *order) +{ + unsigned long flags; + struct page *page; + int offset; + + do { + spin_lock_irqsave(&small_page_lock, flags); + + if (list_empty(&order->queue)) + goto need_new_page; + + page = list_entry(order->queue.next, struct page, lru); +again: +#ifdef PEDANTIC + if (USED_MAP(page) & ~order->all_used) + PAGE_BUG(page); +#endif + offset = ffz(USED_MAP(page)); + SET_USED(page, offset); + if (USED_MAP(page) == order->all_used) + list_del_init(&page->lru); + spin_unlock_irqrestore(&small_page_lock, flags); + + return (unsigned long) page_address(page) + (offset << order->shift); + +need_new_page: + spin_unlock_irqrestore(&small_page_lock, flags); + page = alloc_page(priority); + spin_lock_irqsave(&small_page_lock, flags); + + if (list_empty(&order->queue)) { + if (!page) + goto no_page; + SetPageReserved(page); + USED_MAP(page) = 0; + list_add(&page->lru, &order->queue); + goto again; + } + + spin_unlock_irqrestore(&small_page_lock, flags); + __free_page(page); + } while (1); + +no_page: + spin_unlock_irqrestore(&small_page_lock, flags); + return 0; +} + +static void __free_small_page(unsigned long spage, struct order *order) +{ + unsigned long flags; + struct page *page; + + if (virt_addr_valid(spage)) { + page = virt_to_page(spage); + + /* + * The container-page must be marked Reserved + */ + if (!PageReserved(page) || spage & order->mask) + goto non_small; + +#ifdef PEDANTIC + if (USED_MAP(page) & ~order->all_used) + PAGE_BUG(page); +#endif + + spage = spage >> order->shift; + spage &= order->block_mask; + + /* + * the following must be atomic wrt get_page + */ + spin_lock_irqsave(&small_page_lock, flags); + + if (USED_MAP(page) == order->all_used) + list_add(&page->lru, &order->queue); + + if (!TEST_AND_CLEAR_USED(page, spage)) + goto already_free; + + if (USED_MAP(page) == 0) + goto free_page; + + spin_unlock_irqrestore(&small_page_lock, flags); + } + return; + +free_page: + /* + * unlink the page from the small page queue and free it + */ + list_del_init(&page->lru); + spin_unlock_irqrestore(&small_page_lock, flags); + ClearPageReserved(page); + __free_page(page); + return; + +non_small: + printk("Trying to free non-small page from %p\n", __builtin_return_address(0)); + return; +already_free: + printk("Trying to free free small page from %p\n", __builtin_return_address(0)); +} + +unsigned long get_page_8k(int priority) +{ + return __get_small_page(priority, orders+1); +} + +void free_page_8k(unsigned long spage) +{ + __free_small_page(spage, orders+1); +} diff -Nru a/arch/cris/Kconfig b/arch/cris/Kconfig --- a/arch/cris/Kconfig 2005-01-05 17:43:39 -08:00 +++ b/arch/cris/Kconfig 2005-01-05 17:43:39 -08:00 @@ -20,6 +20,10 @@ config RWSEM_XCHGADD_ALGORITHM bool +config GENERIC_CALIBRATE_DELAY + bool + default y + config CRIS bool default y diff -Nru a/arch/frv/Kconfig b/arch/frv/Kconfig --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/Kconfig 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,501 @@ +# +# For a description of the syntax of this configuration file, +# see Documentation/kbuild/kconfig-language.txt. +# +config FRV + bool + default y + +config UID16 + bool + default y + +config RWSEM_GENERIC_SPINLOCK + bool + default y + +config RWSEM_XCHGADD_ALGORITHM + bool + +config GENERIC_FIND_NEXT_BIT + bool + default y + +config GENERIC_CALIBRATE_DELAY + bool + default n + +config GENERIC_HARDIRQS + bool + default n + +mainmenu "Fujitsu FR-V Kernel Configuration" + +source "init/Kconfig" + + +menu "Fujitsu FR-V system setup" + +config MMU + bool "MMU support" + help + This options switches on and off support for the FR-V MMU + (effectively switching between vmlinux and uClinux). Not all FR-V + CPUs support this. Currently only the FR451 has a sufficiently + featured MMU. + +config FRV_OUTOFLINE_ATOMIC_OPS + bool "Out-of-line the FRV atomic operations" + default n + help + Setting this option causes the FR-V atomic operations to be mostly + implemented out-of-line. + + See Documentation/fujitsu/frv/atomic-ops.txt for more information. + +config HIGHMEM + bool "High memory support" + depends on MMU + default y + help + If you wish to use more than 256MB of memory with your MMU based + system, you will need to select this option. The kernel can only see + the memory between 0xC0000000 and 0xD0000000 directly... everything + else must be kmapped. + + The arch is, however, capable of supporting up to 3GB of SDRAM. + +config HIGHPTE + bool "Allocate page tables in highmem" + depends on HIGHMEM + default y + help + The VM uses one page of memory for each page table. For systems + with a lot of RAM, this can be wasteful of precious low memory. + Setting this option will put user-space page tables in high memory. + +choice + prompt "uClinux kernel load address" + depends on !MMU + default UCPAGE_OFFSET_C0000000 + help + This option sets the base address for the uClinux kernel. The kernel + will rearrange the SDRAM layout to start at this address, and move + itself to start there. It must be greater than 0, and it must be + sufficiently less than 0xE0000000 that the SDRAM does not intersect + the I/O region. + + The base address must also be aligned such that the SDRAM controller + can decode it. For instance, a 512MB SDRAM bank must be 512MB aligned. + +config UCPAGE_OFFSET_20000000 + bool "0x20000000" + +config UCPAGE_OFFSET_40000000 + bool "0x40000000" + +config UCPAGE_OFFSET_60000000 + bool "0x60000000" + +config UCPAGE_OFFSET_80000000 + bool "0x80000000" + +config UCPAGE_OFFSET_A0000000 + bool "0xA0000000" + +config UCPAGE_OFFSET_C0000000 + bool "0xC0000000 (Recommended)" + +endchoice + +config PROTECT_KERNEL + bool "Protect core kernel against userspace" + depends on !MMU + default y + help + Selecting this option causes the uClinux kernel to change the + permittivity of DAMPR register covering the core kernel image to + prevent userspace accessing the underlying memory directly. + +choice + prompt "CPU Caching mode" + default FRV_DEFL_CACHE_WBACK + help + This option determines the default caching mode for the kernel. + + Write-Back caching mode involves the all reads and writes causing + the affected cacheline to be read into the cache first before being + operated upon. Memory is not then updated by a write until the cache + is filled and a cacheline needs to be displaced from the cache to + make room. Only at that point is it written back. + + Write-Behind caching is similar to Write-Back caching, except that a + write won't fetch a cacheline into the cache if there isn't already + one there; it will write directly to memory instead. + + Write-Through caching only fetches cachelines from memory on a + read. Writes always get written directly to memory. If the affected + cacheline is also in cache, it will be updated too. + + The final option is to turn of caching entirely. + + Note that not all CPUs support Write-Behind caching. If the CPU on + which the kernel is running doesn't, it'll fall back to Write-Back + caching. + +config FRV_DEFL_CACHE_WBACK + bool "Write-Back" + +config FRV_DEFL_CACHE_WBEHIND + bool "Write-Behind" + +config FRV_DEFL_CACHE_WTHRU + bool "Write-Through" + +config FRV_DEFL_CACHE_DISABLED + bool "Disabled" + +endchoice + +menu "CPU core support" + +config CPU_FR401 + bool "Include FR401 core support" + depends on !MMU + default y + help + This enables support for the FR401, FR401A and FR403 CPUs + +config CPU_FR405 + bool "Include FR405 core support" + depends on !MMU + default y + help + This enables support for the FR405 CPU + +config CPU_FR451 + bool "Include FR451 core support" + default y + help + This enables support for the FR451 CPU + +config CPU_FR451_COMPILE + bool "Specifically compile for FR451 core" + depends on CPU_FR451 && !CPU_FR401 && !CPU_FR405 && !CPU_FR551 + default y + help + This causes appropriate flags to be passed to the compiler to + optimise for the FR451 CPU + +config CPU_FR551 + bool "Include FR551 core support" + depends on !MMU + default y + help + This enables support for the FR555 CPU + +config CPU_FR551_COMPILE + bool "Specifically compile for FR551 core" + depends on CPU_FR551 && !CPU_FR401 && !CPU_FR405 && !CPU_FR451 + default y + help + This causes appropriate flags to be passed to the compiler to + optimise for the FR555 CPU + +config FRV_L1_CACHE_SHIFT + int + default "5" if CPU_FR401 || CPU_FR405 || CPU_FR451 + default "6" if CPU_FR551 + +endmenu + +choice + prompt "System support" + default MB93091_VDK + +config MB93091_VDK + bool "MB93091 CPU board with or without motherboard" + +config MB93093_PDK + bool "MB93093 PDK unit" + +endchoice + +if MB93091_VDK +choice + prompt "Motherboard support" + default MB93090_MB00 + +config MB93090_MB00 + bool "Use the MB93090-MB00 motherboard" + help + Select this option if the MB93091 CPU board is going to be used with + a MB93090-MB00 VDK motherboard + +config MB93091_NO_MB + bool "Use standalone" + help + Select this option if the MB93091 CPU board is going to be used + without a motherboard + +endchoice +endif + +choice + prompt "GP-Relative data support" + default GPREL_DATA_8 + help + This option controls what data, if any, should be placed in the GP + relative data sections. Using this means that the compiler can + generate accesses to the data using GR16-relative addressing which + is faster than absolute instructions and saves space (2 instructions + per access). + + However, the GPREL region is limited in size because the immediate + value used in the load and store instructions is limited to a 12-bit + signed number. + + So if the linker starts complaining that accesses to GPREL data are + out of range, try changing this option from the default. + + Note that modules will always be compiled with this feature disabled + as the module data will not be in range of the GP base address. + +config GPREL_DATA_8 + bool "Put data objects of up to 8 bytes into GP-REL" + +config GPREL_DATA_4 + bool "Put data objects of up to 4 bytes into GP-REL" + +config GPREL_DATA_NONE + bool "Don't use GP-REL" + +endchoice + +config PCI + bool "Use PCI" + depends on MB93090_MB00 + default y + help + Some FR-V systems (such as the MB93090-MB00 VDK) have PCI + onboard. If you have one of these boards and you wish to use the PCI + facilities, say Y here. + + The PCI-HOWTO, available from + , contains valuable + information about which PCI hardware does work under Linux and which + doesn't. + +config RESERVE_DMA_COHERENT + bool "Reserve DMA coherent memory" + depends on PCI && !MMU + default y + help + Many PCI drivers require access to uncached memory for DMA device + communications (such as is done with some Ethernet buffer rings). If + a fully featured MMU is available, this can be done through page + table settings, but if not, a region has to be set aside and marked + with a special DAMPR register. + + Setting this option causes uClinux to set aside a portion of the + available memory for use in this manner. The memory will then be + unavailable for normal kernel use. + +source "drivers/pci/Kconfig" + +config PCMCIA + tristate "Use PCMCIA" + help + Say Y here if you want to attach PCMCIA- or PC-cards to your FR-V + board. These are credit-card size devices such as network cards, + modems or hard drives often used with laptops computers. There are + actually two varieties of these cards: the older 16 bit PCMCIA cards + and the newer 32 bit CardBus cards. If you want to use CardBus + cards, you need to say Y here and also to "CardBus support" below. + + To use your PC-cards, you will need supporting software from David + Hinds pcmcia-cs package (see the file + for location). Please also read the PCMCIA-HOWTO, available from + . + + To compile this driver as modules, choose M here: the + modules will be called pcmcia_core and ds. + +#config MATH_EMULATION +# bool "Math emulation support (EXPERIMENTAL)" +# depends on EXPERIMENTAL +# help +# At some point in the future, this will cause floating-point math +# instructions to be emulated by the kernel on machines that lack a +# floating-point math coprocessor. Thrill-seekers and chronically +# sleep-deprived psychotic hacker types can say Y now, everyone else +# should probably wait a while. + +menu "Power management options" +source kernel/power/Kconfig +endmenu + +endmenu + + +menu "Executable formats" + +source "fs/Kconfig.binfmt" + +endmenu + +source "drivers/Kconfig" + +source "fs/Kconfig" + +menu "Kernel hacking" + +config DEBUG_KERNEL + bool "Kernel debugging" + help + Say Y here if you are developing drivers or trying to debug and + identify kernel problems. + +config EARLY_PRINTK + bool "Early printk" + depends on EMBEDDED && DEBUG_KERNEL + default n + help + Write kernel log output directly into the VGA buffer or to a serial + port. + + This is useful for kernel debugging when your machine crashes very + early before the console code is initialized. For normal operation + it is not recommended because it looks ugly and doesn't cooperate + with klogd/syslogd or the X server. You should normally N here, + unless you want to debug such a crash. + +config DEBUG_STACKOVERFLOW + bool "Check for stack overflows" + depends on DEBUG_KERNEL + +config DEBUG_SLAB + bool "Debug memory allocations" + depends on DEBUG_KERNEL + help + Say Y here to have the kernel do limited verification on memory + allocation as well as poisoning memory on free to catch use of freed + memory. + +config MAGIC_SYSRQ + bool "Magic SysRq key" + depends on DEBUG_KERNEL + help + If you say Y here, you will have some control over the system even + if the system crashes for example during kernel debugging (e.g., you + will be able to flush the buffer cache to disk, reboot the system + immediately or dump some status information). This is accomplished + by pressing various keys while holding SysRq (Alt+PrintScreen). It + also works on a serial console (on PC hardware at least), if you + send a BREAK and then within 5 seconds a command keypress. The + keys are documented in . Don't say Y + unless you really know what this hack does. + +config DEBUG_SPINLOCK + bool "Spinlock debugging" + depends on DEBUG_KERNEL + help + Say Y here and build SMP to catch missing spinlock initialization + and certain other kinds of spinlock errors commonly made. This is + best used in conjunction with the NMI watchdog so that spinlock + deadlocks are also debuggable. + +config DEBUG_SPINLOCK_SLEEP + bool "Sleep-inside-spinlock checking" + depends on DEBUG_KERNEL + help + If you say Y here, various routines which may sleep will become very + noisy if they are called with a spinlock held. + +config DEBUG_PAGEALLOC + bool "Page alloc debugging" + depends on DEBUG_KERNEL + help + Unmap pages from the kernel linear mapping after free_pages(). + This results in a large slowdown, but helps to find certain types + of memory corruptions. + +config DEBUG_HIGHMEM + bool "Highmem debugging" + depends on DEBUG_KERNEL && HIGHMEM + help + This options enables addition error checking for high memory systems. + Disable for production systems. + +config DEBUG_INFO + bool "Compile the kernel with debug info" + depends on DEBUG_KERNEL + help + If you say Y here the resulting kernel image will include + debugging info resulting in a larger kernel image. + Say Y here only if you plan to use gdb to debug the kernel. + If you don't debug the kernel, you can say N. + +config DEBUG_BUGVERBOSE + bool "Verbose BUG() reporting" + depends on DEBUG_KERNEL + +config FRAME_POINTER + bool "Compile the kernel with frame pointers" + depends on DEBUG_KERNEL + help + If you say Y here the resulting kernel image will be slightly larger + and slower, but it will give very useful debugging information. + If you don't debug the kernel, you can say N, but we may not be able + to solve problems without frame pointers. + +config GDBSTUB + bool "Remote GDB kernel debugging" + depends on DEBUG_KERNEL + select DEBUG_INFO + select FRAME_POINTER + help + If you say Y here, it will be possible to remotely debug the kernel + using gdb. This enlarges your kernel ELF image disk size by several + megabytes and requires a machine with more than 16 MB, better 32 MB + RAM to avoid excessive linking time. This is only useful for kernel + hackers. If unsure, say N. + +choice + prompt "GDB stub port" + default GDBSTUB_UART1 + depends on GDBSTUB + help + Select the on-CPU port used for GDB-stub + +config GDBSTUB_UART0 + bool "/dev/ttyS0" + +config GDBSTUB_UART1 + bool "/dev/ttyS1" + +endchoice + +config GDBSTUB_IMMEDIATE + bool "Break into GDB stub immediately" + depends on GDBSTUB + help + If you say Y here, GDB stub will break into the program as soon as + possible, leaving the program counter at the beginning of + start_kernel() in init/main.c. + +config GDB_CONSOLE + bool "Console output to GDB" + depends on KGDB + help + If you are using GDB for remote debugging over a serial port and + would like kernel messages to be formatted into GDB $O packets so + that GDB prints them as program output, say 'Y'. + +endmenu + +source "security/Kconfig" + +source "crypto/Kconfig" + +source "lib/Kconfig" diff -Nru a/arch/frv/Makefile b/arch/frv/Makefile --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/Makefile 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,118 @@ +# +# frv/Makefile +# +# This file is included by the global makefile so that you can add your own +# architecture-specific flags and dependencies. Remember to do have actions +# for "archclean" and "archdep" for cleaning up and making dependencies for +# this architecture +# +# This file is subject to the terms and conditions of the GNU General Public +# License. See the file "COPYING" in the main directory of this archive +# for more details. +# +# Copyright (c) 2003, 2004 Red Hat Inc. +# - Written by David Howells +# - Derived from arch/m68knommu/Makefile, +# Copyright (c) 1999,2001 D. Jeff Dionne , +# Rt-Control Inc. / Lineo, Inc. +# +# Copyright (C) 1998,1999 D. Jeff Dionne , +# Kenneth Albanowski , +# +# Based on arch/m68k/Makefile: +# Copyright (C) 1994 by Hamish Macdonald +# + +CCSPECS := $(shell $(CC) -v 2>&1 | grep "^Reading specs from " | head -1 | cut -c20-) +CCDIR := $(strip $(patsubst %/specs,%,$(CCSPECS))) +CPUCLASS := fr400 + +# test for cross compiling +COMPILE_ARCH = $(shell uname -m) + +ifdef CONFIG_MMU +UTS_SYSNAME = -DUTS_SYSNAME=\"Linux\" +else +UTS_SYSNAME = -DUTS_SYSNAME=\"uClinux\" +endif + +ARCHMODFLAGS += -G0 -mlong-calls + +ifdef CONFIG_GPREL_DATA_8 +CFLAGS += -G8 +else +ifdef CONFIG_GPREL_DATA_4 +CFLAGS += -G4 +else +ifdef CONFIG_GPREL_DATA_NONE +CFLAGS += -G0 +endif +endif +endif + +#LDFLAGS_vmlinux := -Map linkmap.txt + +ifdef CONFIG_GC_SECTIONS +CFLAGS += -ffunction-sections -fdata-sections +LINKFLAGS += --gc-sections +endif + +ifndef CONFIG_FRAME_POINTER +CFLAGS += -mno-linked-fp +endif + +ifdef CONFIG_CPU_FR451_COMPILE +CFLAGS += -mcpu=fr450 +AFLAGS += -mcpu=fr450 +ASFLAGS += -mcpu=fr450 +else +ifdef CONFIG_CPU_FR551_COMPILE +CFLAGS += -mcpu=fr550 +AFLAGS += -mcpu=fr550 +ASFLAGS += -mcpu=fr550 +else +CFLAGS += -mcpu=fr400 +AFLAGS += -mcpu=fr400 +ASFLAGS += -mcpu=fr400 +endif +endif + +# pretend the kernel is going to run on an FR400 with no media-fp unit +# - reserve CC3 for use with atomic ops +# - all the extra registers are dealt with only at context switch time +CFLAGS += -mno-fdpic -mgpr-32 -msoft-float -mno-media +CFLAGS += -ffixed-fcc3 -ffixed-cc3 -ffixed-gr15 +AFLAGS += -mno-fdpic +ASFLAGS += -mno-fdpic + +# make sure the .S files get compiled with debug info +# and disable optimisations that are unhelpful whilst debugging +ifdef CONFIG_DEBUG_INFO +CFLAGS += -O1 +AFLAGS += -Wa,--gdwarf2 +ASFLAGS += -Wa,--gdwarf2 +endif + +head-y := arch/frv/kernel/head.o arch/frv/kernel/init_task.o + +core-y += arch/frv/kernel/ arch/frv/mm/ +libs-y += arch/frv/lib/ + +core-$(CONFIG_MB93090_MB00) += arch/frv/mb93090-mb00/ + +all: Image + +Image: vmlinux + $(Q)$(MAKE) $(build)=arch/frv/boot $@ + +bootstrap: + $(Q)$(MAKEBOOT) bootstrap + +archmrproper: + $(Q)$(MAKE) -C arch/frv/boot mrproper + +archclean: + $(Q)$(MAKE) -C arch/frv/boot clean + +archdep: scripts/mkdep symlinks + $(Q)$(MAKE) -C arch/frv/boot dep diff -Nru a/arch/frv/boot/Makefile b/arch/frv/boot/Makefile --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/boot/Makefile 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,73 @@ +# +# arch/arm/boot/Makefile +# +# This file is subject to the terms and conditions of the GNU General Public +# License. See the file "COPYING" in the main directory of this archive +# for more details. +# +# Copyright (C) 1995-2000 Russell King +# + +SYSTEM =$(TOPDIR)/$(LINUX) + +ZTEXTADDR = 0x02080000 +PARAMS_PHYS = 0x0207c000 +INITRD_PHYS = 0x02180000 +INITRD_VIRT = 0x02180000 + +# +# If you don't define ZRELADDR above, +# then it defaults to ZTEXTADDR +# +ifeq ($(ZRELADDR),) +ZRELADDR = $(ZTEXTADDR) +endif + +export SYSTEM ZTEXTADDR ZBSSADDR ZRELADDR INITRD_PHYS INITRD_VIRT PARAMS_PHYS + +Image: $(obj)/Image + +targets: $(obj)/Image + +$(obj)/Image: vmlinux FORCE + $(OBJCOPY) -O binary -R .note -R .comment -S vmlinux $@ + +#$(obj)/Image: $(CONFIGURE) $(SYSTEM) +# $(OBJCOPY) -O binary -R .note -R .comment -g -S $(SYSTEM) $@ + +bzImage: zImage + +zImage: $(CONFIGURE) compressed/$(LINUX) + $(OBJCOPY) -O binary -R .note -R .comment -S compressed/$(LINUX) $@ + +bootpImage: bootp/bootp + $(OBJCOPY) -O binary -R .note -R .comment -S bootp/bootp $@ + +compressed/$(LINUX): $(TOPDIR)/$(LINUX) dep + @$(MAKE) -C compressed $(LINUX) + +bootp/bootp: zImage initrd + @$(MAKE) -C bootp bootp + +initrd: + @test "$(INITRD_VIRT)" != "" || (echo This architecture does not support INITRD; exit -1) + @test "$(INITRD)" != "" || (echo You must specify INITRD; exit -1) + +# +# installation +# +install: $(CONFIGURE) Image + sh ./install.sh $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) Image $(TOPDIR)/System.map "$(INSTALL_PATH)" + +zinstall: $(CONFIGURE) zImage + sh ./install.sh $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) zImage $(TOPDIR)/System.map "$(INSTALL_PATH)" + +# +# miscellany +# +mrproper clean: + $(RM) Image zImage bootpImage +# @$(MAKE) -C compressed clean +# @$(MAKE) -C bootp clean + +dep: diff -Nru a/arch/frv/kernel/Makefile b/arch/frv/kernel/Makefile --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/Makefile 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,22 @@ +# +# Makefile for the linux kernel. +# + +heads-y := head-uc-fr401.o head-uc-fr451.o head-uc-fr555.o +heads-$(CONFIG_MMU) := head-mmu-fr451.o + +extra-y:= head.o init_task.o vmlinux.lds + +obj-y := $(heads-y) entry.o entry-table.o break.o switch_to.o kernel_thread.o \ + process.o traps.o ptrace.o signal.o dma.o \ + sys_frv.o time.o semaphore.o setup.o frv_ksyms.o \ + debug-stub.o irq.o irq-routing.o sleep.o uaccess.o + +obj-$(CONFIG_GDBSTUB) += gdb-stub.o gdb-io.o + +obj-$(CONFIG_MB93091_VDK) += irq-mb93091.o +obj-$(CONFIG_MB93093_PDK) += irq-mb93093.o +obj-$(CONFIG_FUJITSU_MB93493) += irq-mb93493.o +obj-$(CONFIG_PM) += pm.o cmode.o +obj-$(CONFIG_MB93093_PDK) += pm-mb93093.o +obj-$(CONFIG_SYSCTL) += sysctl.o diff -Nru a/arch/frv/kernel/break.S b/arch/frv/kernel/break.S --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/break.S 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,720 @@ +/* break.S: Break interrupt handling (kept separate from entry.S) + * + * Copyright (C) 2003 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include + +# +# the break handler has its own stack +# + .section .bss.stack + .globl __break_user_context + .balign 8192 +__break_stack: + .space (8192 - (USER_CONTEXT_SIZE + REG__DEBUG_XTRA)) & ~7 +__break_stack_tos: + .space REG__DEBUG_XTRA +__break_user_context: + .space USER_CONTEXT_SIZE + +# +# miscellaneous variables +# + .section .bss +#ifdef CONFIG_MMU + .globl __break_tlb_miss_real_return_info +__break_tlb_miss_real_return_info: + .balign 8 + .space 2*4 /* saved PCSR, PSR for TLB-miss handler fixup */ +#endif + +__break_trace_through_exceptions: + .space 4 + +#define CS2_ECS1 0xe1200000 +#define CS2_USERLED 0x4 + +.macro LEDS val,reg +# sethi.p %hi(CS2_ECS1+CS2_USERLED),gr30 +# setlo %lo(CS2_ECS1+CS2_USERLED),gr30 +# setlos #~\val,\reg +# st \reg,@(gr30,gr0) +# setlos #0x5555,\reg +# sethi.p %hi(0xffc00100),gr30 +# setlo %lo(0xffc00100),gr30 +# sth \reg,@(gr30,gr0) +# membar +.endm + +############################################################################### +# +# entry point for Break Exceptions/Interrupts +# +############################################################################### + .text + .balign 4 + .globl __entry_break +__entry_break: +#ifdef CONFIG_MMU + movgs gr31,scr3 +#endif + LEDS 0x1001,gr31 + + sethi.p %hi(__break_user_context),gr31 + setlo %lo(__break_user_context),gr31 + + stdi gr2,@(gr31,#REG_GR(2)) + movsg ccr,gr3 + sti gr3,@(gr31,#REG_CCR) + + # catch the return from a TLB-miss handler that had single-step disabled + # traps will be enabled, so we have to do this now +#ifdef CONFIG_MMU + movsg bpcsr,gr3 + sethi.p %hi(__break_tlb_miss_return_breaks_here),gr2 + setlo %lo(__break_tlb_miss_return_breaks_here),gr2 + subcc gr2,gr3,gr0,icc0 + beq icc0,#2,__break_return_singlestep_tlbmiss +#endif + + # determine whether we have stepped through into an exception + # - we need to take special action to suspend h/w single stepping if we've done + # that, so that the gdbstub doesn't get bogged down endlessly stepping through + # external interrupt handling + movsg bpsr,gr3 + andicc gr3,#BPSR_BET,gr0,icc0 + bne icc0,#2,__break_maybe_userspace /* jump if PSR.ET was 1 */ + + LEDS 0x1003,gr2 + + movsg brr,gr3 + andicc gr3,#BRR_ST,gr0,icc0 + andicc.p gr3,#BRR_SB,gr0,icc1 + bne icc0,#2,__break_step /* jump if single-step caused break */ + beq icc1,#2,__break_continue /* jump if BREAK didn't cause break */ + + LEDS 0x1007,gr2 + + # handle special breaks + movsg bpcsr,gr3 + + sethi.p %hi(__entry_return_singlestep_breaks_here),gr2 + setlo %lo(__entry_return_singlestep_breaks_here),gr2 + subcc gr2,gr3,gr0,icc0 + beq icc0,#2,__break_return_singlestep + + bra __break_continue + + +############################################################################### +# +# handle BREAK instruction in kernel-mode exception epilogue +# +############################################################################### +__break_return_singlestep: + LEDS 0x100f,gr2 + + # special break insn requests single-stepping to be turned back on + # HERE RETT + # PSR.ET 0 0 + # PSR.PS old PSR.S ? + # PSR.S 1 1 + # BPSR.ET 0 1 (can't have caused orig excep otherwise) + # BPSR.BS 1 old PSR.S + movsg dcr,gr2 + sethi.p %hi(DCR_SE),gr3 + setlo %lo(DCR_SE),gr3 + or gr2,gr3,gr2 + movgs gr2,dcr + + movsg psr,gr2 + andi gr2,#PSR_PS,gr2 + slli gr2,#11,gr2 /* PSR.PS -> BPSR.BS */ + ori gr2,#BPSR_BET,gr2 /* 1 -> BPSR.BET */ + movgs gr2,bpsr + + # return to the invoker of the original kernel exception + movsg pcsr,gr2 + movgs gr2,bpcsr + + LEDS 0x101f,gr2 + + ldi @(gr31,#REG_CCR),gr3 + movgs gr3,ccr + lddi.p @(gr31,#REG_GR(2)),gr2 + xor gr31,gr31,gr31 + movgs gr0,brr +#ifdef CONFIG_MMU + movsg scr3,gr31 +#endif + rett #1 + +############################################################################### +# +# handle BREAK instruction in TLB-miss handler return path +# +############################################################################### +#ifdef CONFIG_MMU +__break_return_singlestep_tlbmiss: + LEDS 0x1100,gr2 + + sethi.p %hi(__break_tlb_miss_real_return_info),gr3 + setlo %lo(__break_tlb_miss_real_return_info),gr3 + lddi @(gr3,#0),gr2 + movgs gr2,pcsr + movgs gr3,psr + + bra __break_return_singlestep +#endif + + +############################################################################### +# +# handle single stepping into an exception prologue from kernel mode +# - we try and catch it whilst it is still in the main vector table +# - if we catch it there, we have to jump to the fixup handler +# - there is a fixup table that has a pointer for every 16b slot in the trap +# table +# +############################################################################### +__break_step: + LEDS 0x2003,gr2 + + # external interrupts seem to escape from the trap table before single + # step catches up with them + movsg bpcsr,gr2 + sethi.p %hi(__entry_kernel_external_interrupt),gr3 + setlo %lo(__entry_kernel_external_interrupt),gr3 + subcc gr2,gr3,gr0,icc0 + beq icc0,#2,__break_step_kernel_external_interrupt + sethi.p %hi(__entry_uspace_external_interrupt),gr3 + setlo %lo(__entry_uspace_external_interrupt),gr3 + subcc gr2,gr3,gr0,icc0 + beq icc0,#2,__break_step_uspace_external_interrupt + + LEDS 0x2007,gr2 + + # the two main vector tables are adjacent on one 8Kb slab + movsg bpcsr,gr2 + setlos #0xffffe000,gr3 + and gr2,gr3,gr2 + sethi.p %hi(__trap_tables),gr3 + setlo %lo(__trap_tables),gr3 + subcc gr2,gr3,gr0,icc0 + bne icc0,#2,__break_continue + + LEDS 0x200f,gr2 + + # skip workaround if so requested by GDB + sethi.p %hi(__break_trace_through_exceptions),gr3 + setlo %lo(__break_trace_through_exceptions),gr3 + ld @(gr3,gr0),gr3 + subcc gr3,gr0,gr0,icc0 + bne icc0,#0,__break_continue + + LEDS 0x201f,gr2 + + # access the fixup table - there's a 1:1 mapping between the slots in the trap tables and + # the slots in the trap fixup tables allowing us to simply divide the offset into the + # former by 4 to access the latter + sethi.p %hi(__trap_tables),gr3 + setlo %lo(__trap_tables),gr3 + movsg bpcsr,gr2 + sub gr2,gr3,gr2 + srli.p gr2,#2,gr2 + + sethi %hi(__trap_fixup_tables),gr3 + setlo.p %lo(__trap_fixup_tables),gr3 + andi gr2,#~3,gr2 + ld @(gr2,gr3),gr2 + jmpil @(gr2,#0) + +# step through an internal exception from kernel mode + .globl __break_step_kernel_softprog_interrupt +__break_step_kernel_softprog_interrupt: + sethi.p %hi(__entry_kernel_softprog_interrupt_reentry),gr3 + setlo %lo(__entry_kernel_softprog_interrupt_reentry),gr3 + bra __break_return_as_kernel_prologue + +# step through an external interrupt from kernel mode + .globl __break_step_kernel_external_interrupt +__break_step_kernel_external_interrupt: + sethi.p %hi(__entry_kernel_external_interrupt_reentry),gr3 + setlo %lo(__entry_kernel_external_interrupt_reentry),gr3 + +__break_return_as_kernel_prologue: + LEDS 0x203f,gr2 + + movgs gr3,bpcsr + + # do the bit we had to skip +#ifdef CONFIG_MMU + movsg ear0,gr2 /* EAR0 can get clobbered by gdb-stub (ICI/ICEI) */ + movgs gr2,scr2 +#endif + + or.p sp,gr0,gr2 /* set up the stack pointer */ + subi sp,#REG__END,sp + sti.p gr2,@(sp,#REG_SP) + + setlos #REG__STATUS_STEP,gr2 + sti gr2,@(sp,#REG__STATUS) /* record single step status */ + + # cancel single-stepping mode + movsg dcr,gr2 + sethi.p %hi(~DCR_SE),gr3 + setlo %lo(~DCR_SE),gr3 + and gr2,gr3,gr2 + movgs gr2,dcr + + LEDS 0x207f,gr2 + + ldi @(gr31,#REG_CCR),gr3 + movgs gr3,ccr + lddi.p @(gr31,#REG_GR(2)),gr2 + xor gr31,gr31,gr31 + movgs gr0,brr +#ifdef CONFIG_MMU + movsg scr3,gr31 +#endif + rett #1 + +# step through an internal exception from uspace mode + .globl __break_step_uspace_softprog_interrupt +__break_step_uspace_softprog_interrupt: + sethi.p %hi(__entry_uspace_softprog_interrupt_reentry),gr3 + setlo %lo(__entry_uspace_softprog_interrupt_reentry),gr3 + bra __break_return_as_uspace_prologue + +# step through an external interrupt from kernel mode + .globl __break_step_uspace_external_interrupt +__break_step_uspace_external_interrupt: + sethi.p %hi(__entry_uspace_external_interrupt_reentry),gr3 + setlo %lo(__entry_uspace_external_interrupt_reentry),gr3 + +__break_return_as_uspace_prologue: + LEDS 0x20ff,gr2 + + movgs gr3,bpcsr + + # do the bit we had to skip + sethi.p %hi(__kernel_frame0_ptr),gr28 + setlo %lo(__kernel_frame0_ptr),gr28 + ldi.p @(gr28,#0),gr28 + + setlos #REG__STATUS_STEP,gr2 + sti gr2,@(gr28,#REG__STATUS) /* record single step status */ + + # cancel single-stepping mode + movsg dcr,gr2 + sethi.p %hi(~DCR_SE),gr3 + setlo %lo(~DCR_SE),gr3 + and gr2,gr3,gr2 + movgs gr2,dcr + + LEDS 0x20fe,gr2 + + ldi @(gr31,#REG_CCR),gr3 + movgs gr3,ccr + lddi.p @(gr31,#REG_GR(2)),gr2 + xor gr31,gr31,gr31 + movgs gr0,brr +#ifdef CONFIG_MMU + movsg scr3,gr31 +#endif + rett #1 + +#ifdef CONFIG_MMU +# step through an ITLB-miss handler from user mode + .globl __break_user_insn_tlb_miss +__break_user_insn_tlb_miss: + # we'll want to try the trap stub again + sethi.p %hi(__trap_user_insn_tlb_miss),gr2 + setlo %lo(__trap_user_insn_tlb_miss),gr2 + movgs gr2,bpcsr + +__break_tlb_miss_common: + LEDS 0x2101,gr2 + + # cancel single-stepping mode + movsg dcr,gr2 + sethi.p %hi(~DCR_SE),gr3 + setlo %lo(~DCR_SE),gr3 + and gr2,gr3,gr2 + movgs gr2,dcr + + # we'll swap the real return address for one with a BREAK insn so that we can re-enable + # single stepping on return + movsg pcsr,gr2 + sethi.p %hi(__break_tlb_miss_real_return_info),gr3 + setlo %lo(__break_tlb_miss_real_return_info),gr3 + sti gr2,@(gr3,#0) + + sethi.p %hi(__break_tlb_miss_return_break),gr2 + setlo %lo(__break_tlb_miss_return_break),gr2 + movgs gr2,pcsr + + # we also have to fudge PSR because the return BREAK is in kernel space and we want + # to get a BREAK fault not an access violation should the return be to userspace + movsg psr,gr2 + sti.p gr2,@(gr3,#4) + ori gr2,#PSR_PS,gr2 + movgs gr2,psr + + LEDS 0x2102,gr2 + + ldi @(gr31,#REG_CCR),gr3 + movgs gr3,ccr + lddi @(gr31,#REG_GR(2)),gr2 + movsg scr3,gr31 + movgs gr0,brr + rett #1 + +# step through a DTLB-miss handler from user mode + .globl __break_user_data_tlb_miss +__break_user_data_tlb_miss: + # we'll want to try the trap stub again + sethi.p %hi(__trap_user_data_tlb_miss),gr2 + setlo %lo(__trap_user_data_tlb_miss),gr2 + movgs gr2,bpcsr + bra __break_tlb_miss_common + +# step through an ITLB-miss handler from kernel mode + .globl __break_kernel_insn_tlb_miss +__break_kernel_insn_tlb_miss: + # we'll want to try the trap stub again + sethi.p %hi(__trap_kernel_insn_tlb_miss),gr2 + setlo %lo(__trap_kernel_insn_tlb_miss),gr2 + movgs gr2,bpcsr + bra __break_tlb_miss_common + +# step through a DTLB-miss handler from kernel mode + .globl __break_kernel_data_tlb_miss +__break_kernel_data_tlb_miss: + # we'll want to try the trap stub again + sethi.p %hi(__trap_kernel_data_tlb_miss),gr2 + setlo %lo(__trap_kernel_data_tlb_miss),gr2 + movgs gr2,bpcsr + bra __break_tlb_miss_common +#endif + +############################################################################### +# +# handle debug events originating with userspace +# +############################################################################### +__break_maybe_userspace: + LEDS 0x3003,gr2 + + setlos #BPSR_BS,gr2 + andcc gr3,gr2,gr0,icc0 + bne icc0,#0,__break_continue /* skip if PSR.S was 1 */ + + movsg brr,gr2 + andicc gr2,#BRR_ST|BRR_SB,gr0,icc0 + beq icc0,#0,__break_continue /* jump if not BREAK or single-step */ + + LEDS 0x3007,gr2 + + # do the first part of the exception prologue here + sethi.p %hi(__kernel_frame0_ptr),gr28 + setlo %lo(__kernel_frame0_ptr),gr28 + ldi @(gr28,#0),gr28 + andi gr28,#~7,gr28 + + # set up the kernel stack pointer + sti sp ,@(gr28,#REG_SP) + ori gr28,0,sp + sti gr0 ,@(gr28,#REG_GR(28)) + + stdi gr20,@(gr28,#REG_GR(20)) + stdi gr22,@(gr28,#REG_GR(22)) + + movsg tbr,gr20 + movsg bpcsr,gr21 + movsg psr,gr22 + + # determine the exception type and cancel single-stepping mode + or gr0,gr0,gr23 + + movsg dcr,gr2 + sethi.p %hi(DCR_SE),gr3 + setlo %lo(DCR_SE),gr3 + andcc gr2,gr3,gr0,icc0 + beq icc0,#0,__break_no_user_sstep /* must have been a BREAK insn */ + + not gr3,gr3 + and gr2,gr3,gr2 + movgs gr2,dcr + ori gr23,#REG__STATUS_STEP,gr23 + +__break_no_user_sstep: + LEDS 0x300f,gr2 + + movsg brr,gr2 + andi gr2,#BRR_ST|BRR_SB,gr2 + slli gr2,#1,gr2 + or gr23,gr2,gr23 + sti.p gr23,@(gr28,#REG__STATUS) /* record single step status */ + + # adjust the value acquired from TBR - this indicates the exception + setlos #~TBR_TT,gr2 + and.p gr20,gr2,gr20 + setlos #TBR_TT_BREAK,gr2 + or.p gr20,gr2,gr20 + + # fudge PSR.PS and BPSR.BS to return to kernel mode through the trap + # table as trap 126 + andi gr22,#~PSR_PS,gr22 /* PSR.PS should be 0 */ + movgs gr22,psr + + setlos #BPSR_BS,gr2 /* BPSR.BS should be 1 and BPSR.BET 0 */ + movgs gr2,bpsr + + # return through remainder of the exception prologue + # - need to load gr23 with return handler address + sethi.p %hi(__entry_return_from_user_exception),gr23 + setlo %lo(__entry_return_from_user_exception),gr23 + sethi.p %hi(__entry_common),gr3 + setlo %lo(__entry_common),gr3 + movgs gr3,bpcsr + + LEDS 0x301f,gr2 + + ldi @(gr31,#REG_CCR),gr3 + movgs gr3,ccr + lddi.p @(gr31,#REG_GR(2)),gr2 + xor gr31,gr31,gr31 + movgs gr0,brr +#ifdef CONFIG_MMU + movsg scr3,gr31 +#endif + rett #1 + +############################################################################### +# +# resume normal debug-mode entry +# +############################################################################### +__break_continue: + LEDS 0x4003,gr2 + + # set up the kernel stack pointer + sti sp,@(gr31,#REG_SP) + + sethi.p %hi(__break_stack_tos),sp + setlo %lo(__break_stack_tos),sp + + # finish building the exception frame + stdi gr4 ,@(gr31,#REG_GR(4)) + stdi gr6 ,@(gr31,#REG_GR(6)) + stdi gr8 ,@(gr31,#REG_GR(8)) + stdi gr10,@(gr31,#REG_GR(10)) + stdi gr12,@(gr31,#REG_GR(12)) + stdi gr14,@(gr31,#REG_GR(14)) + stdi gr16,@(gr31,#REG_GR(16)) + stdi gr18,@(gr31,#REG_GR(18)) + stdi gr20,@(gr31,#REG_GR(20)) + stdi gr22,@(gr31,#REG_GR(22)) + stdi gr24,@(gr31,#REG_GR(24)) + stdi gr26,@(gr31,#REG_GR(26)) + sti gr0 ,@(gr31,#REG_GR(28)) /* NULL frame pointer */ + sti gr29,@(gr31,#REG_GR(29)) + sti gr30,@(gr31,#REG_GR(30)) + sti gr8 ,@(gr31,#REG_ORIG_GR8) + +#ifdef CONFIG_MMU + movsg scr3,gr19 + sti gr19,@(gr31,#REG_GR(31)) +#endif + + movsg bpsr ,gr19 + movsg tbr ,gr20 + movsg bpcsr,gr21 + movsg psr ,gr22 + movsg isr ,gr23 + movsg cccr ,gr25 + movsg lr ,gr26 + movsg lcr ,gr27 + + andi.p gr22,#~(PSR_S|PSR_ET),gr5 /* rebuild PSR */ + andi gr19,#PSR_ET,gr4 + or.p gr4,gr5,gr5 + srli gr19,#10,gr4 + andi gr4,#PSR_S,gr4 + or.p gr4,gr5,gr5 + + setlos #-1,gr6 + sti gr20,@(gr31,#REG_TBR) + sti gr21,@(gr31,#REG_PC) + sti gr5 ,@(gr31,#REG_PSR) + sti gr23,@(gr31,#REG_ISR) + sti gr25,@(gr31,#REG_CCCR) + stdi gr26,@(gr31,#REG_LR) + sti gr6 ,@(gr31,#REG_SYSCALLNO) + + # store CPU-specific regs + movsg iacc0h,gr4 + movsg iacc0l,gr5 + stdi gr4,@(gr31,#REG_IACC0) + + movsg gner0,gr4 + movsg gner1,gr5 + stdi gr4,@(gr31,#REG_GNER0) + + # build the debug register frame + movsg brr,gr4 + movgs gr0,brr + movsg nmar,gr5 + movsg dcr,gr6 + + stdi gr4 ,@(gr31,#REG_BRR) + sti gr19,@(gr31,#REG_BPSR) + sti.p gr6 ,@(gr31,#REG_DCR) + + # trap exceptions during break handling and disable h/w breakpoints/watchpoints + sethi %hi(DCR_EBE),gr5 + setlo.p %lo(DCR_EBE),gr5 + sethi %hi(__entry_breaktrap_table),gr4 + setlo %lo(__entry_breaktrap_table),gr4 + movgs gr5,dcr + movgs gr4,tbr + + # set up kernel global registers + sethi.p %hi(__kernel_current_task),gr5 + setlo %lo(__kernel_current_task),gr5 + ld @(gr5,gr0),gr29 + ldi.p @(gr29,#4),gr15 ; __current_thread_info = current->thread_info + + sethi %hi(_gp),gr16 + setlo.p %lo(_gp),gr16 + + # make sure we (the kernel) get div-zero and misalignment exceptions + setlos #ISR_EDE|ISR_DTT_DIVBYZERO|ISR_EMAM_EXCEPTION,gr5 + movgs gr5,isr + + # enter the GDB stub + LEDS 0x4007,gr2 + + or.p gr0,gr0,fp + call debug_stub + + LEDS 0x403f,gr2 + + # return from break + lddi @(gr31,#REG_IACC0),gr4 + movgs gr4,iacc0h + movgs gr5,iacc0l + + lddi @(gr31,#REG_GNER0),gr4 + movgs gr4,gner0 + movgs gr5,gner1 + + lddi @(gr31,#REG_LR) ,gr26 + lddi @(gr31,#REG_CCR) ,gr24 + lddi @(gr31,#REG_PSR) ,gr22 + ldi @(gr31,#REG_PC) ,gr21 + ldi @(gr31,#REG_TBR) ,gr20 + ldi.p @(gr31,#REG_DCR) ,gr6 + + andi gr22,#PSR_S,gr19 /* rebuild BPSR */ + andi.p gr22,#PSR_ET,gr5 + slli gr19,#10,gr19 + or gr5,gr19,gr19 + + movgs gr6 ,dcr + movgs gr19,bpsr + movgs gr20,tbr + movgs gr21,bpcsr + movgs gr23,isr + movgs gr24,ccr + movgs gr25,cccr + movgs gr26,lr + movgs gr27,lcr + + LEDS 0x407f,gr2 + +#ifdef CONFIG_MMU + ldi @(gr31,#REG_GR(31)),gr2 + movgs gr2,scr3 +#endif + + ldi @(gr31,#REG_GR(30)),gr30 + ldi @(gr31,#REG_GR(29)),gr29 + lddi @(gr31,#REG_GR(26)),gr26 + lddi @(gr31,#REG_GR(24)),gr24 + lddi @(gr31,#REG_GR(22)),gr22 + lddi @(gr31,#REG_GR(20)),gr20 + lddi @(gr31,#REG_GR(18)),gr18 + lddi @(gr31,#REG_GR(16)),gr16 + lddi @(gr31,#REG_GR(14)),gr14 + lddi @(gr31,#REG_GR(12)),gr12 + lddi @(gr31,#REG_GR(10)),gr10 + lddi @(gr31,#REG_GR(8)) ,gr8 + lddi @(gr31,#REG_GR(6)) ,gr6 + lddi @(gr31,#REG_GR(4)) ,gr4 + lddi @(gr31,#REG_GR(2)) ,gr2 + ldi.p @(gr31,#REG_SP) ,sp + + xor gr31,gr31,gr31 + movgs gr0,brr +#ifdef CONFIG_MMU + movsg scr3,gr31 +#endif + rett #1 + +################################################################################################### +# +# GDB stub "system calls" +# +################################################################################################### + +#ifdef CONFIG_GDBSTUB + # void gdbstub_console_write(struct console *con, const char *p, unsigned n) + .globl gdbstub_console_write +gdbstub_console_write: + break + bralr +#endif + + # GDB stub BUG() trap + # GR8 is the proposed signal number + .globl __debug_bug_trap +__debug_bug_trap: + break + bralr + + # transfer kernel exeception to GDB for handling + .globl __break_hijack_kernel_event +__break_hijack_kernel_event: + break + .globl __break_hijack_kernel_event_breaks_here +__break_hijack_kernel_event_breaks_here: + nop + +#ifdef CONFIG_MMU + # handle a return from TLB-miss that requires single-step reactivation + .globl __break_tlb_miss_return_break +__break_tlb_miss_return_break: + break +__break_tlb_miss_return_breaks_here: + nop +#endif + + # guard the first .text label in the next file from confusion + nop diff -Nru a/arch/frv/kernel/cmode.S b/arch/frv/kernel/cmode.S --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/cmode.S 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,190 @@ +/* cmode.S: clock mode management + * + * Copyright (C) 2004 Red Hat, Inc. All Rights Reserved. + * Written by David Woodhouse (dwmw2@redhat.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define __addr_MASK 0xfeff9820 /* interrupt controller mask */ + +#define __addr_SDRAMC 0xfe000400 /* SDRAM controller regs */ +#define SDRAMC_DSTS 0x28 /* SDRAM status */ +#define SDRAMC_DSTS_SSI 0x00000001 /* indicates that the SDRAM is in self-refresh mode */ +#define SDRAMC_DRCN 0x30 /* SDRAM refresh control */ +#define SDRAMC_DRCN_SR 0x00000001 /* transition SDRAM into self-refresh mode */ +#define __addr_CLKC 0xfeff9a00 +#define CLKC_SWCMODE 0x00000008 +#define __addr_LEDS 0xe1200004 + +.macro li v r + sethi.p %hi(\v),\r + setlo %lo(\v),\r +.endm + + .text + .balign 4 + + +############################################################################### +# +# Change CMODE +# - void frv_change_cmode(int cmode) +# +############################################################################### + .globl frv_change_cmode + .type frv_change_cmode,@function + +.macro LEDS v +#ifdef DEBUG_CMODE + setlos #~\v,gr10 + sti gr10,@(gr11,#0) + membar +#endif +.endm + +frv_change_cmode: + movsg lr,gr9 +#ifdef DEBUG_CMODE + li __addr_LEDS,gr11 +#endif + dcef @(gr0,gr0),#1 + + # Shift argument left by 24 bits to fit in SWCMODE register later. + slli gr8,#24,gr8 + + # (1) Set '0' in the PSR.ET bit, and prohibit interrupts. + movsg psr,gr14 + andi gr14,#~PSR_ET,gr3 + movgs gr3,psr + +#if 0 // Fujitsu recommend to skip this and will update docs. + # (2) Set '0' to all bits of the MASK register of the interrupt + # controller, and mask interrupts. + li __addr_MASK,gr12 + ldi @(gr12,#0),gr13 + li 0xffff0000,gr4 + sti gr4,@(gr12,#0) +#endif + + # (3) Stop the transfer function of DMAC. Stop all the bus masters + # to access SDRAM and the internal resources. + + # (already done by caller) + + # (4) Preload a series of following instructions to the instruction + # cache. + li #__cmode_icache_lock_start,gr3 + li #__cmode_icache_lock_end,gr4 + +1: icpl gr3,gr0,#1 + addi gr3,#L1_CACHE_BYTES,gr3 + cmp gr4,gr3,icc0 + bhi icc0,#0,1b + + # Set up addresses in regs for later steps. + setlos SDRAMC_DRCN_SR,gr3 + li __addr_SDRAMC,gr4 + li __addr_CLKC,gr5 + ldi @(gr5,#0),gr6 + li #0x80000000,gr7 + or gr6,gr7,gr6 + + bra __cmode_icache_lock_start + + .balign L1_CACHE_BYTES +__cmode_icache_lock_start: + + # (5) Flush the content of all caches by the DCEF instruction. + dcef @(gr0,gr0),#1 + + # (6) Execute loading the dummy for SDRAM. + ldi @(gr9,#0),gr0 + + # (7) Set '1' to the DRCN.SR bit, and change SDRAM to the + # self-refresh mode. Execute the dummy load to all memory + # devices set to cacheable on the external bus side in parallel + # with this. + sti gr3,@(gr4,#SDRAMC_DRCN) + + # (8) Execute memory barrier instruction (MEMBAR). + membar + + # (9) Read the DSTS register repeatedly until '1' stands in the + # DSTS.SSI field. +1: ldi @(gr4,#SDRAMC_DSTS),gr3 + andicc gr3,#SDRAMC_DSTS_SSI,gr3,icc0 + beq icc0,#0,1b + + # (10) Execute memory barrier instruction (MEMBAR). + membar + +#if 1 + # (11) Set the value of CMODE that you want to change to + # SWCMODE.SWCM[3:0]. + sti gr8,@(gr5,#CLKC_SWCMODE) + + # (12) Set '1' to the CLKC.SWEN bit. In that case, do not change + # fields other than SWEN of the CLKC register. + sti gr6,@(gr5,#0) +#endif + # (13) Execute the instruction just after the memory barrier + # instruction that executes the self-loop 256 times. (Meanwhile, + # the CMODE switch is done.) + membar + setlos #256,gr7 +2: subicc gr7,#1,gr7,icc0 + bne icc0,#2,2b + + LEDS 0x36 + + # (14) Release the self-refresh of SDRAM. + sti gr0,@(gr4,#SDRAMC_DRCN) + + # Wait for it... +3: ldi @(gr4,#SDRAMC_DSTS),gr3 + andicc gr3,#SDRAMC_DSTS_SSI,gr3,icc0 + bne icc0,#2,3b + +#if 0 + li 0x0100000,gr10 +4: subicc gr10,#1,gr10,icc0 + + bne icc0,#0,4b +#endif + +__cmode_icache_lock_end: + + li #__cmode_icache_lock_start,gr3 + li #__cmode_icache_lock_end,gr4 + +4: icul gr3 + addi gr3,#L1_CACHE_BYTES,gr3 + cmp gr4,gr3,icc0 + bhi icc0,#0,4b + +#if 0 // Fujitsu recommend to skip this and will update docs. + # (15) Release the interrupt mask setting of the MASK register of + # the interrupt controller if necessary. + sti gr13,@(gr12,#0) +#endif + # (16) Set 1' in the PSR.ET bit, and permit interrupt. + movgs gr14,psr + + bralr + + .size frv_change_cmode, .-frv_change_cmode diff -Nru a/arch/frv/kernel/debug-stub.c b/arch/frv/kernel/debug-stub.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/debug-stub.c 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,259 @@ +/* debug-stub.c: debug-mode stub + * + * Copyright (C) 2004 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include "gdb-io.h" + +/* CPU board CON5 */ +#define __UART0(X) (*(volatile uint8_t *)(UART0_BASE + (UART_##X))) + +#define LSR_WAIT_FOR0(STATE) \ +do { \ +} while (!(__UART0(LSR) & UART_LSR_##STATE)) + +#define FLOWCTL_QUERY0(LINE) ({ __UART0(MSR) & UART_MSR_##LINE; }) +#define FLOWCTL_CLEAR0(LINE) do { __UART0(MCR) &= ~UART_MCR_##LINE; } while (0) +#define FLOWCTL_SET0(LINE) do { __UART0(MCR) |= UART_MCR_##LINE; } while (0) + +#define FLOWCTL_WAIT_FOR0(LINE) \ +do { \ + gdbstub_do_rx(); \ +} while(!FLOWCTL_QUERY(LINE)) + +static void __init debug_stub_init(void); + +extern asmlinkage void __break_hijack_kernel_event(void); +extern asmlinkage void __break_hijack_kernel_event_breaks_here(void); + +/*****************************************************************************/ +/* + * debug mode handler stub + * - we come here with the CPU in debug mode and with exceptions disabled + * - handle debugging services for userspace + */ +asmlinkage void debug_stub(void) +{ + unsigned long hsr0; + int type = 0; + + static u8 inited = 0; + if (!inited) { + debug_stub_init(); + type = -1; + inited = 1; + } + + hsr0 = __get_HSR(0); + if (hsr0 & HSR0_ETMD) + __set_HSR(0, hsr0 & ~HSR0_ETMD); + + /* disable single stepping */ + __debug_regs->dcr &= ~DCR_SE; + + /* kernel mode can propose an exception be handled in debug mode by jumping to a special + * location */ + if (__debug_frame->pc == (unsigned long) __break_hijack_kernel_event_breaks_here) { + /* replace the debug frame with the kernel frame and discard + * the top kernel context */ + *__debug_frame = *__frame; + __frame = __debug_frame->next_frame; + __debug_regs->brr = (__debug_frame->tbr & TBR_TT) << 12; + __debug_regs->brr |= BRR_EB; + } + + if (__debug_frame->pc == (unsigned long) __debug_bug_trap + 4) { + __debug_frame->pc = __debug_frame->lr; + type = __debug_frame->gr8; + } + +#ifdef CONFIG_GDBSTUB + gdbstub(type); +#endif + + if (hsr0 & HSR0_ETMD) + __set_HSR(0, __get_HSR(0) | HSR0_ETMD); + +} /* end debug_stub() */ + +/*****************************************************************************/ +/* + * debug stub initialisation + */ +static void __init debug_stub_init(void) +{ + __set_IRR(6, 0xff000000); /* map ERRs to NMI */ + __set_IITMR(1, 0x20000000); /* ERR0/1, UART0/1 IRQ detect levels */ + + asm volatile(" movgs gr0,ibar0 \n" + " movgs gr0,ibar1 \n" + " movgs gr0,ibar2 \n" + " movgs gr0,ibar3 \n" + " movgs gr0,dbar0 \n" + " movgs gr0,dbmr00 \n" + " movgs gr0,dbmr01 \n" + " movgs gr0,dbdr00 \n" + " movgs gr0,dbdr01 \n" + " movgs gr0,dbar1 \n" + " movgs gr0,dbmr10 \n" + " movgs gr0,dbmr11 \n" + " movgs gr0,dbdr10 \n" + " movgs gr0,dbdr11 \n" + ); + + /* deal with debugging stub initialisation and initial pause */ + if (__debug_frame->pc == (unsigned long) __debug_stub_init_break) + __debug_frame->pc = (unsigned long) start_kernel; + + /* enable the debug events we want to trap */ + __debug_regs->dcr = DCR_EBE; + +#ifdef CONFIG_GDBSTUB + gdbstub_init(); +#endif + + __clr_MASK_all(); + __clr_MASK(15); + __clr_RC(15); + +} /* end debug_stub_init() */ + +/*****************************************************************************/ +/* + * kernel "exit" trap for gdb stub + */ +void debug_stub_exit(int status) +{ + +#ifdef CONFIG_GDBSTUB + gdbstub_exit(status); +#endif + +} /* end debug_stub_exit() */ + +/*****************************************************************************/ +/* + * send string to serial port + */ +void debug_to_serial(const char *p, int n) +{ + char ch; + + for (; n > 0; n--) { + ch = *p++; + FLOWCTL_SET0(DTR); + LSR_WAIT_FOR0(THRE); + // FLOWCTL_WAIT_FOR(CTS); + + if (ch == 0x0a) { + __UART0(TX) = 0x0d; + mb(); + LSR_WAIT_FOR0(THRE); + // FLOWCTL_WAIT_FOR(CTS); + } + __UART0(TX) = ch; + mb(); + + FLOWCTL_CLEAR0(DTR); + } + +} /* end debug_to_serial() */ + +/*****************************************************************************/ +/* + * send string to serial port + */ +void debug_to_serial2(const char *fmt, ...) +{ + va_list va; + char buf[64]; + int n; + + va_start(va, fmt); + n = vsprintf(buf, fmt, va); + va_end(va); + + debug_to_serial(buf, n); + +} /* end debug_to_serial2() */ + +/*****************************************************************************/ +/* + * set up the ttyS0 serial port baud rate timers + */ +void __init console_set_baud(unsigned baud) +{ + unsigned value, high, low; + u8 lcr; + + /* work out the divisor to give us the nearest higher baud rate */ + value = __serial_clock_speed_HZ / 16 / baud; + + /* determine the baud rate range */ + high = __serial_clock_speed_HZ / 16 / value; + low = __serial_clock_speed_HZ / 16 / (value + 1); + + /* pick the nearest bound */ + if (low + (high - low) / 2 > baud) + value++; + + lcr = __UART0(LCR); + __UART0(LCR) |= UART_LCR_DLAB; + mb(); + __UART0(DLL) = value & 0xff; + __UART0(DLM) = (value >> 8) & 0xff; + mb(); + __UART0(LCR) = lcr; + mb(); + +} /* end console_set_baud() */ + +/*****************************************************************************/ +/* + * + */ +int __init console_get_baud(void) +{ + unsigned value; + u8 lcr; + + lcr = __UART0(LCR); + __UART0(LCR) |= UART_LCR_DLAB; + mb(); + value = __UART0(DLM) << 8; + value |= __UART0(DLL); + __UART0(LCR) = lcr; + mb(); + + return value; +} /* end console_get_baud() */ + +/*****************************************************************************/ +/* + * display BUG() info + */ +#ifndef CONFIG_NO_KERNEL_MSG +void __debug_bug_printk(const char *file, unsigned line) +{ + printk("kernel BUG at %s:%d!\n", file, line); + +} /* end __debug_bug_printk() */ +#endif diff -Nru a/arch/frv/kernel/dma.c b/arch/frv/kernel/dma.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/dma.c 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,464 @@ +/* dma.c: DMA controller management on FR401 and the like + * + * Copyright (C) 2004 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +struct frv_dma_channel { + uint8_t flags; +#define FRV_DMA_FLAGS_RESERVED 0x01 +#define FRV_DMA_FLAGS_INUSE 0x02 +#define FRV_DMA_FLAGS_PAUSED 0x04 + uint8_t cap; /* capabilities available */ + int irq; /* completion IRQ */ + uint32_t dreqbit; + uint32_t dackbit; + uint32_t donebit; + const unsigned long ioaddr; /* DMA controller regs addr */ + const char *devname; + dma_irq_handler_t handler; + void *data; +}; + + +#define __get_DMAC(IO,X) ({ *(volatile unsigned long *)((IO) + DMAC_##X##x); }) + +#define __set_DMAC(IO,X,V) \ +do { \ + *(volatile unsigned long *)((IO) + DMAC_##X##x) = (V); \ + mb(); \ +} while(0) + +#define ___set_DMAC(IO,X,V) \ +do { \ + *(volatile unsigned long *)((IO) + DMAC_##X##x) = (V); \ +} while(0) + + +static struct frv_dma_channel frv_dma_channels[FRV_DMA_NCHANS] = { + [0] = { + .cap = FRV_DMA_CAP_DREQ | FRV_DMA_CAP_DACK | FRV_DMA_CAP_DONE, + .irq = IRQ_CPU_DMA0, + .dreqbit = SIR_DREQ0_INPUT, + .dackbit = SOR_DACK0_OUTPUT, + .donebit = SOR_DONE0_OUTPUT, + .ioaddr = 0xfe000900, + }, + [1] = { + .cap = FRV_DMA_CAP_DREQ | FRV_DMA_CAP_DACK | FRV_DMA_CAP_DONE, + .irq = IRQ_CPU_DMA1, + .dreqbit = SIR_DREQ1_INPUT, + .dackbit = SOR_DACK1_OUTPUT, + .donebit = SOR_DONE1_OUTPUT, + .ioaddr = 0xfe000980, + }, + [2] = { + .cap = FRV_DMA_CAP_DREQ | FRV_DMA_CAP_DACK, + .irq = IRQ_CPU_DMA2, + .dreqbit = SIR_DREQ2_INPUT, + .dackbit = SOR_DACK2_OUTPUT, + .ioaddr = 0xfe000a00, + }, + [3] = { + .cap = FRV_DMA_CAP_DREQ | FRV_DMA_CAP_DACK, + .irq = IRQ_CPU_DMA3, + .dreqbit = SIR_DREQ3_INPUT, + .dackbit = SOR_DACK3_OUTPUT, + .ioaddr = 0xfe000a80, + }, + [4] = { + .cap = FRV_DMA_CAP_DREQ, + .irq = IRQ_CPU_DMA4, + .dreqbit = SIR_DREQ4_INPUT, + .ioaddr = 0xfe001000, + }, + [5] = { + .cap = FRV_DMA_CAP_DREQ, + .irq = IRQ_CPU_DMA5, + .dreqbit = SIR_DREQ5_INPUT, + .ioaddr = 0xfe001080, + }, + [6] = { + .cap = FRV_DMA_CAP_DREQ, + .irq = IRQ_CPU_DMA6, + .dreqbit = SIR_DREQ6_INPUT, + .ioaddr = 0xfe001100, + }, + [7] = { + .cap = FRV_DMA_CAP_DREQ, + .irq = IRQ_CPU_DMA7, + .dreqbit = SIR_DREQ7_INPUT, + .ioaddr = 0xfe001180, + }, +}; + +static rwlock_t frv_dma_channels_lock = RW_LOCK_UNLOCKED; + +unsigned long frv_dma_inprogress; + +#define frv_clear_dma_inprogress(channel) \ + atomic_clear_mask(1 << (channel), &frv_dma_inprogress); + +#define frv_set_dma_inprogress(channel) \ + atomic_set_mask(1 << (channel), &frv_dma_inprogress); + +/*****************************************************************************/ +/* + * DMA irq handler - determine channel involved, grab status and call real handler + */ +static irqreturn_t dma_irq_handler(int irq, void *_channel, struct pt_regs *regs) +{ + struct frv_dma_channel *channel = _channel; + + frv_clear_dma_inprogress(channel - frv_dma_channels); + return channel->handler(channel - frv_dma_channels, + __get_DMAC(channel->ioaddr, CSTR), + channel->data, + regs); + +} /* end dma_irq_handler() */ + +/*****************************************************************************/ +/* + * Determine which DMA controllers are present on this CPU + */ +void __init frv_dma_init(void) +{ + unsigned long psr = __get_PSR(); + int num_dma, i; + + /* First, determine how many DMA channels are available */ + switch (PSR_IMPLE(psr)) { + case PSR_IMPLE_FR405: + case PSR_IMPLE_FR451: + case PSR_IMPLE_FR501: + case PSR_IMPLE_FR551: + num_dma = FRV_DMA_8CHANS; + break; + + case PSR_IMPLE_FR401: + default: + num_dma = FRV_DMA_4CHANS; + break; + } + + /* Now mark all of the non-existent channels as reserved */ + for(i = num_dma; i < FRV_DMA_NCHANS; i++) + frv_dma_channels[i].flags = FRV_DMA_FLAGS_RESERVED; + +} /* end frv_dma_init() */ + +/*****************************************************************************/ +/* + * allocate a DMA controller channel and the IRQ associated with it + */ +int frv_dma_open(const char *devname, + unsigned long dmamask, + int dmacap, + dma_irq_handler_t handler, + unsigned long irq_flags, + void *data) +{ + struct frv_dma_channel *channel; + int dma, ret; + uint32_t val; + + write_lock(&frv_dma_channels_lock); + + ret = -ENOSPC; + + for (dma = FRV_DMA_NCHANS - 1; dma >= 0; dma--) { + channel = &frv_dma_channels[dma]; + + if (!test_bit(dma, &dmamask)) + continue; + + if ((channel->cap & dmacap) != dmacap) + continue; + + if (!frv_dma_channels[dma].flags) + goto found; + } + + goto out; + + found: + ret = request_irq(channel->irq, dma_irq_handler, irq_flags, devname, channel); + if (ret < 0) + goto out; + + /* okay, we've allocated all the resources */ + channel = &frv_dma_channels[dma]; + + channel->flags |= FRV_DMA_FLAGS_INUSE; + channel->devname = devname; + channel->handler = handler; + channel->data = data; + + /* Now make sure we are set up for DMA and not GPIO */ + /* SIR bit must be set for DMA to work */ + __set_SIR(channel->dreqbit | __get_SIR()); + /* SOR bits depend on what the caller requests */ + val = __get_SOR(); + if(dmacap & FRV_DMA_CAP_DACK) + val |= channel->dackbit; + else + val &= ~channel->dackbit; + if(dmacap & FRV_DMA_CAP_DONE) + val |= channel->donebit; + else + val &= ~channel->donebit; + __set_SOR(val); + + ret = dma; + out: + write_unlock(&frv_dma_channels_lock); + return ret; +} /* end frv_dma_open() */ + +EXPORT_SYMBOL(frv_dma_open); + +/*****************************************************************************/ +/* + * close a DMA channel and its associated interrupt + */ +void frv_dma_close(int dma) +{ + struct frv_dma_channel *channel = &frv_dma_channels[dma]; + unsigned long flags; + + write_lock_irqsave(&frv_dma_channels_lock, flags); + + free_irq(channel->irq, channel); + frv_dma_stop(dma); + + channel->flags &= ~FRV_DMA_FLAGS_INUSE; + + write_unlock_irqrestore(&frv_dma_channels_lock, flags); +} /* end frv_dma_close() */ + +EXPORT_SYMBOL(frv_dma_close); + +/*****************************************************************************/ +/* + * set static configuration on a DMA channel + */ +void frv_dma_config(int dma, unsigned long ccfr, unsigned long cctr, unsigned long apr) +{ + unsigned long ioaddr = frv_dma_channels[dma].ioaddr; + + ___set_DMAC(ioaddr, CCFR, ccfr); + ___set_DMAC(ioaddr, CCTR, cctr); + ___set_DMAC(ioaddr, APR, apr); + mb(); + +} /* end frv_dma_config() */ + +EXPORT_SYMBOL(frv_dma_config); + +/*****************************************************************************/ +/* + * start a DMA channel + */ +void frv_dma_start(int dma, + unsigned long sba, unsigned long dba, + unsigned long pix, unsigned long six, unsigned long bcl) +{ + unsigned long ioaddr = frv_dma_channels[dma].ioaddr; + + ___set_DMAC(ioaddr, SBA, sba); + ___set_DMAC(ioaddr, DBA, dba); + ___set_DMAC(ioaddr, PIX, pix); + ___set_DMAC(ioaddr, SIX, six); + ___set_DMAC(ioaddr, BCL, bcl); + ___set_DMAC(ioaddr, CSTR, 0); + mb(); + + __set_DMAC(ioaddr, CCTR, __get_DMAC(ioaddr, CCTR) | DMAC_CCTRx_ACT); + frv_set_dma_inprogress(dma); + +} /* end frv_dma_start() */ + +EXPORT_SYMBOL(frv_dma_start); + +/*****************************************************************************/ +/* + * restart a DMA channel that's been stopped in circular addressing mode by comparison-end + */ +void frv_dma_restart_circular(int dma, unsigned long six) +{ + unsigned long ioaddr = frv_dma_channels[dma].ioaddr; + + ___set_DMAC(ioaddr, SIX, six); + ___set_DMAC(ioaddr, CSTR, __get_DMAC(ioaddr, CSTR) & ~DMAC_CSTRx_CE); + mb(); + + __set_DMAC(ioaddr, CCTR, __get_DMAC(ioaddr, CCTR) | DMAC_CCTRx_ACT); + frv_set_dma_inprogress(dma); + +} /* end frv_dma_restart_circular() */ + +EXPORT_SYMBOL(frv_dma_restart_circular); + +/*****************************************************************************/ +/* + * stop a DMA channel + */ +void frv_dma_stop(int dma) +{ + unsigned long ioaddr = frv_dma_channels[dma].ioaddr; + uint32_t cctr; + + ___set_DMAC(ioaddr, CSTR, 0); + cctr = __get_DMAC(ioaddr, CCTR); + cctr &= ~(DMAC_CCTRx_IE | DMAC_CCTRx_ACT); + cctr |= DMAC_CCTRx_FC; /* fifo clear */ + __set_DMAC(ioaddr, CCTR, cctr); + __set_DMAC(ioaddr, BCL, 0); + frv_clear_dma_inprogress(dma); +} /* end frv_dma_stop() */ + +EXPORT_SYMBOL(frv_dma_stop); + +/*****************************************************************************/ +/* + * test interrupt status of DMA channel + */ +int is_frv_dma_interrupting(int dma) +{ + unsigned long ioaddr = frv_dma_channels[dma].ioaddr; + + return __get_DMAC(ioaddr, CSTR) & (1 << 23); + +} /* end is_frv_dma_interrupting() */ + +EXPORT_SYMBOL(is_frv_dma_interrupting); + +/*****************************************************************************/ +/* + * dump data about a DMA channel + */ +void frv_dma_dump(int dma) +{ + unsigned long ioaddr = frv_dma_channels[dma].ioaddr; + unsigned long cstr, pix, six, bcl; + + cstr = __get_DMAC(ioaddr, CSTR); + pix = __get_DMAC(ioaddr, PIX); + six = __get_DMAC(ioaddr, SIX); + bcl = __get_DMAC(ioaddr, BCL); + + printk("DMA[%d] cstr=%lx pix=%lx six=%lx bcl=%lx\n", dma, cstr, pix, six, bcl); + +} /* end frv_dma_dump() */ + +EXPORT_SYMBOL(frv_dma_dump); + +/*****************************************************************************/ +/* + * pause all DMA controllers + * - called by clock mangling routines + * - caller must be holding interrupts disabled + */ +void frv_dma_pause_all(void) +{ + struct frv_dma_channel *channel; + unsigned long ioaddr; + unsigned long cstr, cctr; + int dma; + + write_lock(&frv_dma_channels_lock); + + for (dma = FRV_DMA_NCHANS - 1; dma >= 0; dma--) { + channel = &frv_dma_channels[dma]; + + if (!(channel->flags & FRV_DMA_FLAGS_INUSE)) + continue; + + ioaddr = channel->ioaddr; + cctr = __get_DMAC(ioaddr, CCTR); + if (cctr & DMAC_CCTRx_ACT) { + cctr &= ~DMAC_CCTRx_ACT; + __set_DMAC(ioaddr, CCTR, cctr); + + do { + cstr = __get_DMAC(ioaddr, CSTR); + } while (cstr & DMAC_CSTRx_BUSY); + + if (cstr & DMAC_CSTRx_FED) + channel->flags |= FRV_DMA_FLAGS_PAUSED; + frv_clear_dma_inprogress(dma); + } + } + +} /* end frv_dma_pause_all() */ + +EXPORT_SYMBOL(frv_dma_pause_all); + +/*****************************************************************************/ +/* + * resume paused DMA controllers + * - called by clock mangling routines + * - caller must be holding interrupts disabled + */ +void frv_dma_resume_all(void) +{ + struct frv_dma_channel *channel; + unsigned long ioaddr; + unsigned long cstr, cctr; + int dma; + + for (dma = FRV_DMA_NCHANS - 1; dma >= 0; dma--) { + channel = &frv_dma_channels[dma]; + + if (!(channel->flags & FRV_DMA_FLAGS_PAUSED)) + continue; + + ioaddr = channel->ioaddr; + cstr = __get_DMAC(ioaddr, CSTR); + cstr &= ~(DMAC_CSTRx_FED | DMAC_CSTRx_INT); + __set_DMAC(ioaddr, CSTR, cstr); + + cctr = __get_DMAC(ioaddr, CCTR); + cctr |= DMAC_CCTRx_ACT; + __set_DMAC(ioaddr, CCTR, cctr); + + channel->flags &= ~FRV_DMA_FLAGS_PAUSED; + frv_set_dma_inprogress(dma); + } + + write_unlock(&frv_dma_channels_lock); + +} /* end frv_dma_resume_all() */ + +EXPORT_SYMBOL(frv_dma_resume_all); + +/*****************************************************************************/ +/* + * dma status clear + */ +void frv_dma_status_clear(int dma) +{ + unsigned long ioaddr = frv_dma_channels[dma].ioaddr; + uint32_t cctr; + ___set_DMAC(ioaddr, CSTR, 0); + + cctr = __get_DMAC(ioaddr, CCTR); +} /* end frv_dma_status_clear() */ + +EXPORT_SYMBOL(frv_dma_status_clear); diff -Nru a/arch/frv/kernel/entry-table.S b/arch/frv/kernel/entry-table.S --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/entry-table.S 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,295 @@ +/* entry-table.S: main trap vector tables and exception jump table + * + * Copyright (C) 2003 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + * + */ + +#include +#include +#include +#include + +############################################################################### +# +# Declare the main trap and vector tables +# +# There are six tables: +# +# (1) The trap table for debug mode +# (2) The trap table for kernel mode +# (3) The trap table for user mode +# +# The CPU jumps to an appropriate slot in the appropriate table to perform +# exception processing. We have three different tables for the three +# different CPU modes because there is no hardware differentiation between +# stack pointers for these three modes, and so we have to invent one when +# crossing mode boundaries. +# +# (4) The exception handler vector table +# +# The user and kernel trap tables use the same prologue for normal +# exception processing. The prologue then jumps to the handler in this +# table, as indexed by the exception ID from the TBR. +# +# (5) The fixup table for kernel-trap single-step +# (6) The fixup table for user-trap single-step +# +# Due to the way single-stepping works on this CPU (single-step is not +# disabled when crossing exception boundaries, only when in debug mode), +# we have to catch the single-step event in break.S and jump to the fixup +# routine pointed to by this table. +# +# The linker script places the user mode and kernel mode trap tables on to +# the same 8Kb page, so that break.S can be more efficient when performing +# single-step bypass management +# +############################################################################### + + # trap table for entry from debug mode + .section .trap.break,"ax" + .balign 256*16 + .globl __entry_breaktrap_table +__entry_breaktrap_table: + + # trap table for entry from user mode + .section .trap.user,"ax" + .balign 256*16 + .globl __entry_usertrap_table +__entry_usertrap_table: + + # trap table for entry from kernel mode + .section .trap.kernel,"ax" + .balign 256*16 + .globl __entry_kerneltrap_table +__entry_kerneltrap_table: + + # exception handler jump table + .section .trap.vector,"ax" + .balign 256*4 + .globl __entry_vector_table +__entry_vector_table: + + # trap fixup table for single-stepping in user mode + .section .trap.fixup.user,"a" + .balign 256*4 + .globl __break_usertrap_fixup_table +__break_usertrap_fixup_table: + + # trap fixup table for single-stepping in user mode + .section .trap.fixup.kernel,"a" + .balign 256*4 + .globl __break_kerneltrap_fixup_table +__break_kerneltrap_fixup_table: + + # handler declaration for a sofware or program interrupt +.macro VECTOR_SOFTPROG tbr_tt, vec + .section .trap.user + .org \tbr_tt + bra __entry_uspace_softprog_interrupt + .section .trap.fixup.user + .org \tbr_tt >> 2 + .long __break_step_uspace_softprog_interrupt + .section .trap.kernel + .org \tbr_tt + bra __entry_kernel_softprog_interrupt + .section .trap.fixup.kernel + .org \tbr_tt >> 2 + .long __break_step_kernel_softprog_interrupt + .section .trap.vector + .org \tbr_tt >> 2 + .long \vec +.endm + + # handler declaration for a maskable external interrupt +.macro VECTOR_IRQ tbr_tt, vec + .section .trap.user + .org \tbr_tt + bra __entry_uspace_external_interrupt + .section .trap.fixup.user + .org \tbr_tt >> 2 + .long __break_step_uspace_external_interrupt + .section .trap.kernel + .org \tbr_tt + bra __entry_kernel_external_interrupt + .section .trap.fixup.kernel + .org \tbr_tt >> 2 + .long __break_step_kernel_external_interrupt + .section .trap.vector + .org \tbr_tt >> 2 + .long \vec +.endm + + # handler declaration for an NMI external interrupt +.macro VECTOR_NMI tbr_tt, vec + .section .trap.user + .org \tbr_tt + break + break + break + break + .section .trap.kernel + .org \tbr_tt + break + break + break + break + .section .trap.vector + .org \tbr_tt >> 2 + .long \vec +.endm + + # handler declaration for an MMU only sofware or program interrupt +.macro VECTOR_SP_MMU tbr_tt, vec +#ifdef CONFIG_MMU + VECTOR_SOFTPROG \tbr_tt, \vec +#else + VECTOR_NMI \tbr_tt, 0 +#endif +.endm + + +############################################################################### +# +# specification of the vectors +# - note: each macro inserts code into multiple sections +# +############################################################################### + VECTOR_SP_MMU TBR_TT_INSTR_MMU_MISS, __entry_insn_mmu_miss + VECTOR_SOFTPROG TBR_TT_INSTR_ACC_ERROR, __entry_insn_access_error + VECTOR_SOFTPROG TBR_TT_INSTR_ACC_EXCEP, __entry_insn_access_exception + VECTOR_SOFTPROG TBR_TT_PRIV_INSTR, __entry_privileged_instruction + VECTOR_SOFTPROG TBR_TT_ILLEGAL_INSTR, __entry_illegal_instruction + VECTOR_SOFTPROG TBR_TT_FP_EXCEPTION, __entry_media_exception + VECTOR_SOFTPROG TBR_TT_MP_EXCEPTION, __entry_media_exception + VECTOR_SOFTPROG TBR_TT_DATA_ACC_ERROR, __entry_data_access_error + VECTOR_SP_MMU TBR_TT_DATA_MMU_MISS, __entry_data_mmu_miss + VECTOR_SOFTPROG TBR_TT_DATA_ACC_EXCEP, __entry_data_access_exception + VECTOR_SOFTPROG TBR_TT_DATA_STR_ERROR, __entry_data_store_error + VECTOR_SOFTPROG TBR_TT_DIVISION_EXCEP, __entry_division_exception + +#ifdef CONFIG_MMU + .section .trap.user + .org TBR_TT_INSTR_TLB_MISS + .globl __trap_user_insn_tlb_miss +__trap_user_insn_tlb_miss: + movsg ear0,gr28 /* faulting address */ + movsg scr0,gr31 /* get mapped PTD coverage start address */ + xor.p gr28,gr31,gr31 /* compare addresses */ + bra __entry_user_insn_tlb_miss + + .org TBR_TT_DATA_TLB_MISS + .globl __trap_user_data_tlb_miss +__trap_user_data_tlb_miss: + movsg ear0,gr28 /* faulting address */ + movsg scr1,gr31 /* get mapped PTD coverage start address */ + xor.p gr28,gr31,gr31 /* compare addresses */ + bra __entry_user_data_tlb_miss + + .section .trap.kernel + .org TBR_TT_INSTR_TLB_MISS + .globl __trap_kernel_insn_tlb_miss +__trap_kernel_insn_tlb_miss: + movsg ear0,gr29 /* faulting address */ + movsg scr0,gr31 /* get mapped PTD coverage start address */ + xor.p gr29,gr31,gr31 /* compare addresses */ + bra __entry_kernel_insn_tlb_miss + + .org TBR_TT_DATA_TLB_MISS + .globl __trap_kernel_data_tlb_miss +__trap_kernel_data_tlb_miss: + movsg ear0,gr29 /* faulting address */ + movsg scr1,gr31 /* get mapped PTD coverage start address */ + xor.p gr29,gr31,gr31 /* compare addresses */ + bra __entry_kernel_data_tlb_miss + + .section .trap.fixup.user + .org TBR_TT_INSTR_TLB_MISS >> 2 + .globl __trap_fixup_user_insn_tlb_miss +__trap_fixup_user_insn_tlb_miss: + .long __break_user_insn_tlb_miss + .org TBR_TT_DATA_TLB_MISS >> 2 + .globl __trap_fixup_user_data_tlb_miss +__trap_fixup_user_data_tlb_miss: + .long __break_user_data_tlb_miss + + .section .trap.fixup.kernel + .org TBR_TT_INSTR_TLB_MISS >> 2 + .globl __trap_fixup_kernel_insn_tlb_miss +__trap_fixup_kernel_insn_tlb_miss: + .long __break_kernel_insn_tlb_miss + .org TBR_TT_DATA_TLB_MISS >> 2 + .globl __trap_fixup_kernel_data_tlb_miss +__trap_fixup_kernel_data_tlb_miss: + .long __break_kernel_data_tlb_miss + + .section .trap.vector + .org TBR_TT_INSTR_TLB_MISS >> 2 + .long __entry_insn_mmu_fault + .org TBR_TT_DATA_TLB_MISS >> 2 + .long __entry_data_mmu_fault +#endif + + VECTOR_SP_MMU TBR_TT_DATA_DAT_EXCEP, __entry_data_dat_fault + VECTOR_NMI TBR_TT_DECREMENT_TIMER, __entry_do_NMI + VECTOR_SOFTPROG TBR_TT_COMPOUND_EXCEP, __entry_compound_exception + VECTOR_IRQ TBR_TT_INTERRUPT_1, __entry_do_IRQ + VECTOR_IRQ TBR_TT_INTERRUPT_2, __entry_do_IRQ + VECTOR_IRQ TBR_TT_INTERRUPT_3, __entry_do_IRQ + VECTOR_IRQ TBR_TT_INTERRUPT_4, __entry_do_IRQ + VECTOR_IRQ TBR_TT_INTERRUPT_5, __entry_do_IRQ + VECTOR_IRQ TBR_TT_INTERRUPT_6, __entry_do_IRQ + VECTOR_IRQ TBR_TT_INTERRUPT_7, __entry_do_IRQ + VECTOR_IRQ TBR_TT_INTERRUPT_8, __entry_do_IRQ + VECTOR_IRQ TBR_TT_INTERRUPT_9, __entry_do_IRQ + VECTOR_IRQ TBR_TT_INTERRUPT_10, __entry_do_IRQ + VECTOR_IRQ TBR_TT_INTERRUPT_11, __entry_do_IRQ + VECTOR_IRQ TBR_TT_INTERRUPT_12, __entry_do_IRQ + VECTOR_IRQ TBR_TT_INTERRUPT_13, __entry_do_IRQ + VECTOR_IRQ TBR_TT_INTERRUPT_14, __entry_do_IRQ + VECTOR_NMI TBR_TT_INTERRUPT_15, __entry_do_NMI + + # miscellaneous user mode entry points + .section .trap.user + .org TBR_TT_TRAP0 + .rept 127 + bra __entry_uspace_softprog_interrupt + bra __break_step_uspace_softprog_interrupt + .long 0,0 + .endr + .org TBR_TT_BREAK + bra __entry_break + .long 0,0,0 + + # miscellaneous kernel mode entry points + .section .trap.kernel + .org TBR_TT_TRAP0 + .rept 127 + bra __entry_kernel_softprog_interrupt + bra __break_step_kernel_softprog_interrupt + .long 0,0 + .endr + .org TBR_TT_BREAK + bra __entry_break + .long 0,0,0 + + # miscellaneous debug mode entry points + .section .trap.break + .org TBR_TT_BREAK + movsg bpcsr,gr30 + jmpl @(gr30,gr0) + + # miscellaneous vectors + .section .trap.vector + .org TBR_TT_TRAP0 >> 2 + .long system_call + .rept 126 + .long __entry_unsupported_trap + .endr + .org TBR_TT_BREAK >> 2 + .long __entry_debug_exception diff -Nru a/arch/frv/kernel/entry.S b/arch/frv/kernel/entry.S --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/entry.S 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,1431 @@ +/* entry.S: FR-V entry + * + * Copyright (C) 2003 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + * + * + * Entry to the kernel is "interesting": + * (1) There are no stack pointers, not even for the kernel + * (2) General Registers should not be clobbered + * (3) There are no kernel-only data registers + * (4) Since all addressing modes are wrt to a General Register, no global + * variables can be reached + * + * We deal with this by declaring that we shall kill GR28 on entering the + * kernel from userspace + * + * However, since break interrupts can interrupt the CPU even when PSR.ET==0, + * they can't rely on GR28 to be anything useful, and so need to clobber a + * separate register (GR31). Break interrupts are managed in break.S + * + * GR29 _is_ saved, and holds the current task pointer globally + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define nr_syscalls ((syscall_table_size)/4) + + .text + .balign 4 + +.macro LEDS val +# sethi.p %hi(0xe1200004),gr30 +# setlo %lo(0xe1200004),gr30 +# setlos #~\val,gr31 +# st gr31,@(gr30,gr0) +# sethi.p %hi(0xffc00100),gr30 +# setlo %lo(0xffc00100),gr30 +# sth gr0,@(gr30,gr0) +# membar +.endm + +.macro LEDS32 +# not gr31,gr31 +# sethi.p %hi(0xe1200004),gr30 +# setlo %lo(0xe1200004),gr30 +# st.p gr31,@(gr30,gr0) +# srli gr31,#16,gr31 +# sethi.p %hi(0xffc00100),gr30 +# setlo %lo(0xffc00100),gr30 +# sth gr31,@(gr30,gr0) +# membar +.endm + +############################################################################### +# +# entry point for External interrupts received whilst executing userspace code +# +############################################################################### + .globl __entry_uspace_external_interrupt + .type __entry_uspace_external_interrupt,@function +__entry_uspace_external_interrupt: + LEDS 0x6200 + sethi.p %hi(__kernel_frame0_ptr),gr28 + setlo %lo(__kernel_frame0_ptr),gr28 + ldi @(gr28,#0),gr28 + + # handle h/w single-step through exceptions + sti gr0,@(gr28,#REG__STATUS) + + .globl __entry_uspace_external_interrupt_reentry +__entry_uspace_external_interrupt_reentry: + LEDS 0x6201 + + setlos #REG__END,gr30 + dcpl gr28,gr30,#0 + + # finish building the exception frame + sti sp, @(gr28,#REG_SP) + stdi gr2, @(gr28,#REG_GR(2)) + stdi gr4, @(gr28,#REG_GR(4)) + stdi gr6, @(gr28,#REG_GR(6)) + stdi gr8, @(gr28,#REG_GR(8)) + stdi gr10,@(gr28,#REG_GR(10)) + stdi gr12,@(gr28,#REG_GR(12)) + stdi gr14,@(gr28,#REG_GR(14)) + stdi gr16,@(gr28,#REG_GR(16)) + stdi gr18,@(gr28,#REG_GR(18)) + stdi gr20,@(gr28,#REG_GR(20)) + stdi gr22,@(gr28,#REG_GR(22)) + stdi gr24,@(gr28,#REG_GR(24)) + stdi gr26,@(gr28,#REG_GR(26)) + sti gr0, @(gr28,#REG_GR(28)) + sti gr29,@(gr28,#REG_GR(29)) + stdi.p gr30,@(gr28,#REG_GR(30)) + + # set up the kernel stack pointer + ori gr28,0,sp + + movsg tbr ,gr20 + movsg psr ,gr22 + movsg pcsr,gr21 + movsg isr ,gr23 + movsg ccr ,gr24 + movsg cccr,gr25 + movsg lr ,gr26 + movsg lcr ,gr27 + + setlos.p #-1,gr4 + andi gr22,#PSR_PS,gr5 /* try to rebuild original PSR value */ + andi.p gr22,#~(PSR_PS|PSR_S),gr6 + slli gr5,#1,gr5 + or gr6,gr5,gr5 + andi gr5,#~PSR_ET,gr5 + + sti gr20,@(gr28,#REG_TBR) + sti gr21,@(gr28,#REG_PC) + sti gr5 ,@(gr28,#REG_PSR) + sti gr23,@(gr28,#REG_ISR) + stdi gr24,@(gr28,#REG_CCR) + stdi gr26,@(gr28,#REG_LR) + sti gr4 ,@(gr28,#REG_SYSCALLNO) + + movsg iacc0h,gr4 + movsg iacc0l,gr5 + stdi gr4,@(gr28,#REG_IACC0) + + movsg gner0,gr4 + movsg gner1,gr5 + stdi gr4,@(gr28,#REG_GNER0) + + # set up kernel global registers + sethi.p %hi(__kernel_current_task),gr5 + setlo %lo(__kernel_current_task),gr5 + sethi.p %hi(_gp),gr16 + setlo %lo(_gp),gr16 + ldi @(gr5,#0),gr29 + ldi.p @(gr29,#4),gr15 ; __current_thread_info = current->thread_info + + # make sure we (the kernel) get div-zero and misalignment exceptions + setlos #ISR_EDE|ISR_DTT_DIVBYZERO|ISR_EMAM_EXCEPTION,gr5 + movgs gr5,isr + + # switch to the kernel trap table + sethi.p %hi(__entry_kerneltrap_table),gr6 + setlo %lo(__entry_kerneltrap_table),gr6 + movgs gr6,tbr + + # set the return address + sethi.p %hi(__entry_return_from_user_interrupt),gr4 + setlo %lo(__entry_return_from_user_interrupt),gr4 + movgs gr4,lr + + # raise the minimum interrupt priority to 15 (NMI only) and enable exceptions + movsg psr,gr4 + + ori gr4,#PSR_PIL_14,gr4 + movgs gr4,psr + ori gr4,#PSR_PIL_14|PSR_ET,gr4 + movgs gr4,psr + + LEDS 0x6202 + bra do_IRQ + + .size __entry_uspace_external_interrupt,.-__entry_uspace_external_interrupt + +############################################################################### +# +# entry point for External interrupts received whilst executing kernel code +# - on arriving here, the following registers should already be set up: +# GR15 - current thread_info struct pointer +# GR16 - kernel GP-REL pointer +# GR29 - current task struct pointer +# TBR - kernel trap vector table +# ISR - kernel's preferred integer controls +# +############################################################################### + .globl __entry_kernel_external_interrupt + .type __entry_kernel_external_interrupt,@function +__entry_kernel_external_interrupt: + LEDS 0x6210 + + sub sp,gr15,gr31 + LEDS32 + + # set up the stack pointer + or.p sp,gr0,gr30 + subi sp,#REG__END,sp + sti gr30,@(sp,#REG_SP) + + # handle h/w single-step through exceptions + sti gr0,@(sp,#REG__STATUS) + + .globl __entry_kernel_external_interrupt_reentry +__entry_kernel_external_interrupt_reentry: + LEDS 0x6211 + + # set up the exception frame + setlos #REG__END,gr30 + dcpl sp,gr30,#0 + + sti.p gr28,@(sp,#REG_GR(28)) + ori sp,0,gr28 + + # finish building the exception frame + stdi gr2,@(gr28,#REG_GR(2)) + stdi gr4,@(gr28,#REG_GR(4)) + stdi gr6,@(gr28,#REG_GR(6)) + stdi gr8,@(gr28,#REG_GR(8)) + stdi gr10,@(gr28,#REG_GR(10)) + stdi gr12,@(gr28,#REG_GR(12)) + stdi gr14,@(gr28,#REG_GR(14)) + stdi gr16,@(gr28,#REG_GR(16)) + stdi gr18,@(gr28,#REG_GR(18)) + stdi gr20,@(gr28,#REG_GR(20)) + stdi gr22,@(gr28,#REG_GR(22)) + stdi gr24,@(gr28,#REG_GR(24)) + stdi gr26,@(gr28,#REG_GR(26)) + sti gr29,@(gr28,#REG_GR(29)) + stdi gr30,@(gr28,#REG_GR(30)) + + movsg tbr ,gr20 + movsg psr ,gr22 + movsg pcsr,gr21 + movsg isr ,gr23 + movsg ccr ,gr24 + movsg cccr,gr25 + movsg lr ,gr26 + movsg lcr ,gr27 + + setlos.p #-1,gr4 + andi gr22,#PSR_PS,gr5 /* try to rebuild original PSR value */ + andi.p gr22,#~(PSR_PS|PSR_S),gr6 + slli gr5,#1,gr5 + or gr6,gr5,gr5 + andi.p gr5,#~PSR_ET,gr5 + + # set CCCR.CC3 to Undefined to abort atomic-modify completion inside the kernel + # - for an explanation of how it works, see: Documentation/fujitsu/frv/atomic-ops.txt + andi gr25,#~0xc0,gr25 + + sti gr20,@(gr28,#REG_TBR) + sti gr21,@(gr28,#REG_PC) + sti gr5 ,@(gr28,#REG_PSR) + sti gr23,@(gr28,#REG_ISR) + stdi gr24,@(gr28,#REG_CCR) + stdi gr26,@(gr28,#REG_LR) + sti gr4 ,@(gr28,#REG_SYSCALLNO) + + movsg iacc0h,gr4 + movsg iacc0l,gr5 + stdi gr4,@(gr28,#REG_IACC0) + + movsg gner0,gr4 + movsg gner1,gr5 + stdi gr4,@(gr28,#REG_GNER0) + + # set the return address + sethi.p %hi(__entry_return_from_kernel_interrupt),gr4 + setlo %lo(__entry_return_from_kernel_interrupt),gr4 + movgs gr4,lr + + # clear power-saving mode flags + movsg hsr0,gr4 + andi gr4,#~HSR0_PDM,gr4 + movgs gr4,hsr0 + + # raise the minimum interrupt priority to 15 (NMI only) and enable exceptions + movsg psr,gr4 + ori gr4,#PSR_PIL_14,gr4 + movgs gr4,psr + ori gr4,#PSR_ET,gr4 + movgs gr4,psr + + LEDS 0x6212 + bra do_IRQ + + .size __entry_kernel_external_interrupt,.-__entry_kernel_external_interrupt + + +############################################################################### +# +# entry point for Software and Progam interrupts generated whilst executing userspace code +# +############################################################################### + .globl __entry_uspace_softprog_interrupt + .type __entry_uspace_softprog_interrupt,@function + .globl __entry_uspace_handle_mmu_fault +__entry_uspace_softprog_interrupt: + LEDS 0x6000 +#ifdef CONFIG_MMU + movsg ear0,gr28 +__entry_uspace_handle_mmu_fault: + movgs gr28,scr2 +#endif + sethi.p %hi(__kernel_frame0_ptr),gr28 + setlo %lo(__kernel_frame0_ptr),gr28 + ldi @(gr28,#0),gr28 + + # handle h/w single-step through exceptions + sti gr0,@(gr28,#REG__STATUS) + + .globl __entry_uspace_softprog_interrupt_reentry +__entry_uspace_softprog_interrupt_reentry: + LEDS 0x6001 + + setlos #REG__END,gr30 + dcpl gr28,gr30,#0 + + # set up the kernel stack pointer + sti.p sp,@(gr28,#REG_SP) + ori gr28,0,sp + sti gr0,@(gr28,#REG_GR(28)) + + stdi gr20,@(gr28,#REG_GR(20)) + stdi gr22,@(gr28,#REG_GR(22)) + + movsg tbr,gr20 + movsg pcsr,gr21 + movsg psr,gr22 + + sethi.p %hi(__entry_return_from_user_exception),gr23 + setlo %lo(__entry_return_from_user_exception),gr23 + bra __entry_common + + .size __entry_uspace_softprog_interrupt,.-__entry_uspace_softprog_interrupt + + # single-stepping was disabled on entry to a TLB handler that then faulted +#ifdef CONFIG_MMU + .globl __entry_uspace_handle_mmu_fault_sstep +__entry_uspace_handle_mmu_fault_sstep: + movgs gr28,scr2 + sethi.p %hi(__kernel_frame0_ptr),gr28 + setlo %lo(__kernel_frame0_ptr),gr28 + ldi @(gr28,#0),gr28 + + # flag single-step re-enablement + sti gr0,@(gr28,#REG__STATUS) + bra __entry_uspace_softprog_interrupt_reentry +#endif + + +############################################################################### +# +# entry point for Software and Progam interrupts generated whilst executing kernel code +# +############################################################################### + .globl __entry_kernel_softprog_interrupt + .type __entry_kernel_softprog_interrupt,@function +__entry_kernel_softprog_interrupt: + LEDS 0x6004 + +#ifdef CONFIG_MMU + movsg ear0,gr30 + movgs gr30,scr2 +#endif + + .globl __entry_kernel_handle_mmu_fault +__entry_kernel_handle_mmu_fault: + # set up the stack pointer + subi sp,#REG__END,sp + sti sp,@(sp,#REG_SP) + sti sp,@(sp,#REG_SP-4) + andi sp,#~7,sp + + # handle h/w single-step through exceptions + sti gr0,@(sp,#REG__STATUS) + + .globl __entry_kernel_softprog_interrupt_reentry +__entry_kernel_softprog_interrupt_reentry: + LEDS 0x6005 + + setlos #REG__END,gr30 + dcpl sp,gr30,#0 + + # set up the exception frame + sti.p gr28,@(sp,#REG_GR(28)) + ori sp,0,gr28 + + stdi gr20,@(gr28,#REG_GR(20)) + stdi gr22,@(gr28,#REG_GR(22)) + + ldi @(sp,#REG_SP),gr22 /* reconstruct the old SP */ + addi gr22,#REG__END,gr22 + sti gr22,@(sp,#REG_SP) + + # set CCCR.CC3 to Undefined to abort atomic-modify completion inside the kernel + # - for an explanation of how it works, see: Documentation/fujitsu/frv/atomic-ops.txt + movsg cccr,gr20 + andi gr20,#~0xc0,gr20 + movgs gr20,cccr + + movsg tbr,gr20 + movsg pcsr,gr21 + movsg psr,gr22 + + sethi.p %hi(__entry_return_from_kernel_exception),gr23 + setlo %lo(__entry_return_from_kernel_exception),gr23 + bra __entry_common + + .size __entry_kernel_softprog_interrupt,.-__entry_kernel_softprog_interrupt + + # single-stepping was disabled on entry to a TLB handler that then faulted +#ifdef CONFIG_MMU + .globl __entry_kernel_handle_mmu_fault_sstep +__entry_kernel_handle_mmu_fault_sstep: + # set up the stack pointer + subi sp,#REG__END,sp + sti sp,@(sp,#REG_SP) + sti sp,@(sp,#REG_SP-4) + andi sp,#~7,sp + + # flag single-step re-enablement + sethi #REG__STATUS_STEP,gr30 + sti gr30,@(sp,#REG__STATUS) + bra __entry_kernel_softprog_interrupt_reentry +#endif + + +############################################################################### +# +# the rest of the kernel entry point code +# - on arriving here, the following registers should be set up: +# GR1 - kernel stack pointer +# GR7 - syscall number (trap 0 only) +# GR8-13 - syscall args (trap 0 only) +# GR20 - saved TBR +# GR21 - saved PC +# GR22 - saved PSR +# GR23 - return handler address +# GR28 - exception frame on stack +# SCR2 - saved EAR0 where applicable (clobbered by ICI & ICEF insns on FR451) +# PSR - PSR.S 1, PSR.ET 0 +# +############################################################################### + .globl __entry_common + .type __entry_common,@function +__entry_common: + LEDS 0x6008 + + # finish building the exception frame + stdi gr2,@(gr28,#REG_GR(2)) + stdi gr4,@(gr28,#REG_GR(4)) + stdi gr6,@(gr28,#REG_GR(6)) + stdi gr8,@(gr28,#REG_GR(8)) + stdi gr10,@(gr28,#REG_GR(10)) + stdi gr12,@(gr28,#REG_GR(12)) + stdi gr14,@(gr28,#REG_GR(14)) + stdi gr16,@(gr28,#REG_GR(16)) + stdi gr18,@(gr28,#REG_GR(18)) + stdi gr24,@(gr28,#REG_GR(24)) + stdi gr26,@(gr28,#REG_GR(26)) + sti gr29,@(gr28,#REG_GR(29)) + stdi gr30,@(gr28,#REG_GR(30)) + + movsg lcr ,gr27 + movsg lr ,gr26 + movgs gr23,lr + movsg cccr,gr25 + movsg ccr ,gr24 + movsg isr ,gr23 + + setlos.p #-1,gr4 + andi gr22,#PSR_PS,gr5 /* try to rebuild original PSR value */ + andi.p gr22,#~(PSR_PS|PSR_S),gr6 + slli gr5,#1,gr5 + or gr6,gr5,gr5 + andi gr5,#~PSR_ET,gr5 + + sti gr20,@(gr28,#REG_TBR) + sti gr21,@(gr28,#REG_PC) + sti gr5 ,@(gr28,#REG_PSR) + sti gr23,@(gr28,#REG_ISR) + stdi gr24,@(gr28,#REG_CCR) + stdi gr26,@(gr28,#REG_LR) + sti gr4 ,@(gr28,#REG_SYSCALLNO) + + movsg iacc0h,gr4 + movsg iacc0l,gr5 + stdi gr4,@(gr28,#REG_IACC0) + + movsg gner0,gr4 + movsg gner1,gr5 + stdi gr4,@(gr28,#REG_GNER0) + + # set up kernel global registers + sethi.p %hi(__kernel_current_task),gr5 + setlo %lo(__kernel_current_task),gr5 + sethi.p %hi(_gp),gr16 + setlo %lo(_gp),gr16 + ldi @(gr5,#0),gr29 + ldi @(gr29,#4),gr15 ; __current_thread_info = current->thread_info + + # switch to the kernel trap table + sethi.p %hi(__entry_kerneltrap_table),gr6 + setlo %lo(__entry_kerneltrap_table),gr6 + movgs gr6,tbr + + # make sure we (the kernel) get div-zero and misalignment exceptions + setlos #ISR_EDE|ISR_DTT_DIVBYZERO|ISR_EMAM_EXCEPTION,gr5 + movgs gr5,isr + + # clear power-saving mode flags + movsg hsr0,gr4 + andi gr4,#~HSR0_PDM,gr4 + movgs gr4,hsr0 + + # multiplex again using old TBR as a guide + setlos.p #TBR_TT,gr3 + sethi %hi(__entry_vector_table),gr6 + and.p gr20,gr3,gr5 + setlo %lo(__entry_vector_table),gr6 + srli gr5,#2,gr5 + ld @(gr5,gr6),gr5 + + LEDS 0x6009 + jmpl @(gr5,gr0) + + + .size __entry_common,.-__entry_common + +############################################################################### +# +# handle instruction MMU fault +# +############################################################################### +#ifdef CONFIG_MMU + .globl __entry_insn_mmu_fault +__entry_insn_mmu_fault: + LEDS 0x6010 + setlos #0,gr8 + movsg esr0,gr9 + movsg scr2,gr10 + + # now that we've accessed the exception regs, we can enable exceptions + movsg psr,gr4 + ori gr4,#PSR_ET,gr4 + movgs gr4,psr + + sethi.p %hi(do_page_fault),gr5 + setlo %lo(do_page_fault),gr5 + jmpl @(gr5,gr0) ; call do_page_fault(0,esr0,ear0) +#endif + + +############################################################################### +# +# handle instruction access error +# +############################################################################### + .globl __entry_insn_access_error +__entry_insn_access_error: + LEDS 0x6011 + sethi.p %hi(insn_access_error),gr5 + setlo %lo(insn_access_error),gr5 + movsg esfr1,gr8 + movsg epcr0,gr9 + movsg esr0,gr10 + + # now that we've accessed the exception regs, we can enable exceptions + movsg psr,gr4 + ori gr4,#PSR_ET,gr4 + movgs gr4,psr + jmpl @(gr5,gr0) ; call insn_access_error(esfr1,epcr0,esr0) + +############################################################################### +# +# handle various instructions of dubious legality +# +############################################################################### + .globl __entry_unsupported_trap + .globl __entry_illegal_instruction + .globl __entry_privileged_instruction + .globl __entry_debug_exception +__entry_unsupported_trap: + subi gr21,#4,gr21 + sti gr21,@(gr28,#REG_PC) +__entry_illegal_instruction: +__entry_privileged_instruction: +__entry_debug_exception: + LEDS 0x6012 + sethi.p %hi(illegal_instruction),gr5 + setlo %lo(illegal_instruction),gr5 + movsg esfr1,gr8 + movsg epcr0,gr9 + movsg esr0,gr10 + + # now that we've accessed the exception regs, we can enable exceptions + movsg psr,gr4 + ori gr4,#PSR_ET,gr4 + movgs gr4,psr + jmpl @(gr5,gr0) ; call ill_insn(esfr1,epcr0,esr0) + +############################################################################### +# +# handle media exception +# +############################################################################### + .globl __entry_media_exception +__entry_media_exception: + LEDS 0x6013 + sethi.p %hi(media_exception),gr5 + setlo %lo(media_exception),gr5 + movsg msr0,gr8 + movsg msr1,gr9 + + # now that we've accessed the exception regs, we can enable exceptions + movsg psr,gr4 + ori gr4,#PSR_ET,gr4 + movgs gr4,psr + jmpl @(gr5,gr0) ; call media_excep(msr0,msr1) + +############################################################################### +# +# handle data MMU fault +# handle data DAT fault (write-protect exception) +# +############################################################################### +#ifdef CONFIG_MMU + .globl __entry_data_mmu_fault +__entry_data_mmu_fault: + .globl __entry_data_dat_fault +__entry_data_dat_fault: + LEDS 0x6014 + setlos #1,gr8 + movsg esr0,gr9 + movsg scr2,gr10 ; saved EAR0 + + # now that we've accessed the exception regs, we can enable exceptions + movsg psr,gr4 + ori gr4,#PSR_ET,gr4 + movgs gr4,psr + + sethi.p %hi(do_page_fault),gr5 + setlo %lo(do_page_fault),gr5 + jmpl @(gr5,gr0) ; call do_page_fault(1,esr0,ear0) +#endif + +############################################################################### +# +# handle data and instruction access exceptions +# +############################################################################### + .globl __entry_insn_access_exception + .globl __entry_data_access_exception +__entry_insn_access_exception: +__entry_data_access_exception: + LEDS 0x6016 + sethi.p %hi(memory_access_exception),gr5 + setlo %lo(memory_access_exception),gr5 + movsg esr0,gr8 + movsg scr2,gr9 ; saved EAR0 + movsg epcr0,gr10 + + # now that we've accessed the exception regs, we can enable exceptions + movsg psr,gr4 + ori gr4,#PSR_ET,gr4 + movgs gr4,psr + jmpl @(gr5,gr0) ; call memory_access_error(esr0,ear0,epcr0) + +############################################################################### +# +# handle data access error +# +############################################################################### + .globl __entry_data_access_error +__entry_data_access_error: + LEDS 0x6016 + sethi.p %hi(data_access_error),gr5 + setlo %lo(data_access_error),gr5 + movsg esfr1,gr8 + movsg esr15,gr9 + movsg ear15,gr10 + + # now that we've accessed the exception regs, we can enable exceptions + movsg psr,gr4 + ori gr4,#PSR_ET,gr4 + movgs gr4,psr + jmpl @(gr5,gr0) ; call data_access_error(esfr1,esr15,ear15) + +############################################################################### +# +# handle data store error +# +############################################################################### + .globl __entry_data_store_error +__entry_data_store_error: + LEDS 0x6017 + sethi.p %hi(data_store_error),gr5 + setlo %lo(data_store_error),gr5 + movsg esfr1,gr8 + movsg esr14,gr9 + + # now that we've accessed the exception regs, we can enable exceptions + movsg psr,gr4 + ori gr4,#PSR_ET,gr4 + movgs gr4,psr + jmpl @(gr5,gr0) ; call data_store_error(esfr1,esr14) + +############################################################################### +# +# handle division exception +# +############################################################################### + .globl __entry_division_exception +__entry_division_exception: + LEDS 0x6018 + sethi.p %hi(division_exception),gr5 + setlo %lo(division_exception),gr5 + movsg esfr1,gr8 + movsg esr0,gr9 + movsg isr,gr10 + + # now that we've accessed the exception regs, we can enable exceptions + movsg psr,gr4 + ori gr4,#PSR_ET,gr4 + movgs gr4,psr + jmpl @(gr5,gr0) ; call div_excep(esfr1,esr0,isr) + +############################################################################### +# +# handle compound exception +# +############################################################################### + .globl __entry_compound_exception +__entry_compound_exception: + LEDS 0x6019 + sethi.p %hi(compound_exception),gr5 + setlo %lo(compound_exception),gr5 + movsg esfr1,gr8 + movsg esr0,gr9 + movsg esr14,gr10 + movsg esr15,gr11 + movsg msr0,gr12 + movsg msr1,gr13 + + # now that we've accessed the exception regs, we can enable exceptions + movsg psr,gr4 + ori gr4,#PSR_ET,gr4 + movgs gr4,psr + jmpl @(gr5,gr0) ; call comp_excep(esfr1,esr0,esr14,esr15,msr0,msr1) + +############################################################################### +# +# handle interrupts and NMIs +# +############################################################################### + .globl __entry_do_IRQ +__entry_do_IRQ: + LEDS 0x6020 + + # we can enable exceptions + movsg psr,gr4 + ori gr4,#PSR_ET,gr4 + movgs gr4,psr + bra do_IRQ + + .globl __entry_do_NMI +__entry_do_NMI: + LEDS 0x6021 + + # we can enable exceptions + movsg psr,gr4 + ori gr4,#PSR_ET,gr4 + movgs gr4,psr + bra do_NMI + +############################################################################### +# +# the return path for a newly forked child process +# - __switch_to() saved the old current pointer in GR27 for us +# +############################################################################### + .globl ret_from_fork +ret_from_fork: + LEDS 0x6100 + ori.p gr27,0,gr8 + call schedule_tail + + # fork & co. return 0 to child + setlos.p #0,gr8 + bra __syscall_exit + +################################################################################################### +# +# Return to user mode is not as complex as all this looks, +# but we want the default path for a system call return to +# go as quickly as possible which is why some of this is +# less clear than it otherwise should be. +# +################################################################################################### + .balign L1_CACHE_BYTES + .globl system_call +system_call: + LEDS 0x6101 + movsg psr,gr4 ; enable exceptions + ori gr4,#PSR_ET,gr4 + movgs gr4,psr + + sti gr7,@(gr28,#REG_SYSCALLNO) + sti.p gr8,@(gr28,#REG_ORIG_GR8) + + subicc gr7,#nr_syscalls,gr0,icc0 + bnc icc0,#0,__syscall_badsys + + ldi @(gr15,#TI_FLAGS),gr4 + ori gr4,#_TIF_SYSCALL_TRACE,gr4 + andicc gr4,#_TIF_SYSCALL_TRACE,gr0,icc0 + bne icc0,#0,__syscall_trace_entry + bra __syscall_trace_entry + +__syscall_call: + slli.p gr7,#2,gr7 + sethi %hi(sys_call_table),gr5 + setlo %lo(sys_call_table),gr5 + ld @(gr5,gr7),gr4 + calll @(gr4,gr0) + + +############################################################################### +# +# return to interrupted process +# +############################################################################### +__syscall_exit: + LEDS 0x6300 + + sti gr8,@(gr28,#REG_GR(8)) ; save return value + + # rebuild saved psr - execve will change it for init/main.c + ldi @(gr28,#REG_PSR),gr22 + srli gr22,#1,gr5 + andi.p gr22,#~PSR_PS,gr22 + andi gr5,#PSR_PS,gr5 + or gr5,gr22,gr22 + ori gr22,#PSR_S,gr22 + + # keep current PSR in GR23 + movsg psr,gr23 + + # make sure we don't miss an interrupt setting need_resched or sigpending between + # sampling and the RETT + ori gr23,#PSR_PIL_14,gr23 + movgs gr23,psr + + ldi @(gr15,#TI_FLAGS),gr4 +// ori gr4,#_TIF_SYSCALL_TRACE,gr4 ///////////////////////////////// + sethi.p %hi(_TIF_ALLWORK_MASK),gr5 + setlo %lo(_TIF_ALLWORK_MASK),gr5 + andcc gr4,gr5,gr0,icc0 + bne icc0,#0,__syscall_exit_work + + # restore all registers and return +__entry_return_direct: + LEDS 0x6301 + + andi gr22,#~PSR_ET,gr22 + movgs gr22,psr + + ldi @(gr28,#REG_ISR),gr23 + lddi @(gr28,#REG_CCR),gr24 + lddi @(gr28,#REG_LR) ,gr26 + ldi @(gr28,#REG_PC) ,gr21 + ldi @(gr28,#REG_TBR),gr20 + + movgs gr20,tbr + movgs gr21,pcsr + movgs gr23,isr + movgs gr24,ccr + movgs gr25,cccr + movgs gr26,lr + movgs gr27,lcr + + lddi @(gr28,#REG_GNER0),gr4 + movgs gr4,gner0 + movgs gr5,gner1 + + lddi @(gr28,#REG_IACC0),gr4 + movgs gr4,iacc0h + movgs gr5,iacc0l + + lddi @(gr28,#REG_GR(4)) ,gr4 + lddi @(gr28,#REG_GR(6)) ,gr6 + lddi @(gr28,#REG_GR(8)) ,gr8 + lddi @(gr28,#REG_GR(10)),gr10 + lddi @(gr28,#REG_GR(12)),gr12 + lddi @(gr28,#REG_GR(14)),gr14 + lddi @(gr28,#REG_GR(16)),gr16 + lddi @(gr28,#REG_GR(18)),gr18 + lddi @(gr28,#REG_GR(20)),gr20 + lddi @(gr28,#REG_GR(22)),gr22 + lddi @(gr28,#REG_GR(24)),gr24 + lddi @(gr28,#REG_GR(26)),gr26 + ldi @(gr28,#REG_GR(29)),gr29 + lddi @(gr28,#REG_GR(30)),gr30 + + # check to see if a debugging return is required + LEDS 0x67f0 + movsg ccr,gr2 + ldi @(gr28,#REG__STATUS),gr3 + andicc gr3,#REG__STATUS_STEP,gr0,icc0 + bne icc0,#0,__entry_return_singlestep + movgs gr2,ccr + + ldi @(gr28,#REG_SP) ,sp + lddi @(gr28,#REG_GR(2)) ,gr2 + ldi @(gr28,#REG_GR(28)),gr28 + + LEDS 0x67fe +// movsg pcsr,gr31 +// LEDS32 + +#if 0 + # store the current frame in the workram on the FR451 + movgs gr28,scr2 + sethi.p %hi(0xfe800000),gr28 + setlo %lo(0xfe800000),gr28 + + stdi gr2,@(gr28,#REG_GR(2)) + stdi gr4,@(gr28,#REG_GR(4)) + stdi gr6,@(gr28,#REG_GR(6)) + stdi gr8,@(gr28,#REG_GR(8)) + stdi gr10,@(gr28,#REG_GR(10)) + stdi gr12,@(gr28,#REG_GR(12)) + stdi gr14,@(gr28,#REG_GR(14)) + stdi gr16,@(gr28,#REG_GR(16)) + stdi gr18,@(gr28,#REG_GR(18)) + stdi gr24,@(gr28,#REG_GR(24)) + stdi gr26,@(gr28,#REG_GR(26)) + sti gr29,@(gr28,#REG_GR(29)) + stdi gr30,@(gr28,#REG_GR(30)) + + movsg tbr ,gr30 + sti gr30,@(gr28,#REG_TBR) + movsg pcsr,gr30 + sti gr30,@(gr28,#REG_PC) + movsg psr ,gr30 + sti gr30,@(gr28,#REG_PSR) + movsg isr ,gr30 + sti gr30,@(gr28,#REG_ISR) + movsg ccr ,gr30 + movsg cccr,gr31 + stdi gr30,@(gr28,#REG_CCR) + movsg lr ,gr30 + movsg lcr ,gr31 + stdi gr30,@(gr28,#REG_LR) + sti gr0 ,@(gr28,#REG_SYSCALLNO) + movsg scr2,gr28 +#endif + + rett #0 + + # return via break.S +__entry_return_singlestep: + movgs gr2,ccr + lddi @(gr28,#REG_GR(2)) ,gr2 + ldi @(gr28,#REG_SP) ,sp + ldi @(gr28,#REG_GR(28)),gr28 + LEDS 0x67ff + break + .globl __entry_return_singlestep_breaks_here +__entry_return_singlestep_breaks_here: + nop + + +############################################################################### +# +# return to a process interrupted in kernel space +# - we need to consider preemption if that is enabled +# +############################################################################### + .balign L1_CACHE_BYTES +__entry_return_from_kernel_exception: + LEDS 0x6302 + movsg psr,gr23 + ori gr23,#PSR_PIL_14,gr23 + movgs gr23,psr + bra __entry_return_direct + + .balign L1_CACHE_BYTES +__entry_return_from_kernel_interrupt: + LEDS 0x6303 + movsg psr,gr23 + ori gr23,#PSR_PIL_14,gr23 + movgs gr23,psr + +#ifdef CONFIG_PREEMPT + ldi @(gr15,#TI_PRE_COUNT),gr5 + subicc gr5,#0,gr0,icc0 + beq icc0,#0,__entry_return_direct + +__entry_preempt_need_resched: + ldi @(gr15,#TI_FLAGS),gr4 + andicc gr4,#_TIF_NEED_RESCHED,gr0,icc0 + beq icc0,#1,__entry_return_direct + + setlos #PREEMPT_ACTIVE,gr5 + sti gr5,@(gr15,#TI_FLAGS) + + andi gr23,#~PSR_PIL,gr23 + movgs gr23,psr + + call schedule + sti gr0,@(gr15,#TI_PRE_COUNT) + + movsg psr,gr23 + ori gr23,#PSR_PIL_14,gr23 + movgs gr23,psr + bra __entry_preempt_need_resched +#else + bra __entry_return_direct +#endif + + +############################################################################### +# +# perform work that needs to be done immediately before resumption +# +############################################################################### + .globl __entry_return_from_user_exception + .balign L1_CACHE_BYTES +__entry_return_from_user_exception: + LEDS 0x6501 + +__entry_resume_userspace: + # make sure we don't miss an interrupt setting need_resched or sigpending between + # sampling and the RETT + movsg psr,gr23 + ori gr23,#PSR_PIL_14,gr23 + movgs gr23,psr + +__entry_return_from_user_interrupt: + LEDS 0x6402 + ldi @(gr15,#TI_FLAGS),gr4 + sethi.p %hi(_TIF_WORK_MASK),gr5 + setlo %lo(_TIF_WORK_MASK),gr5 + andcc gr4,gr5,gr0,icc0 + beq icc0,#1,__entry_return_direct + +__entry_work_pending: + LEDS 0x6404 + andicc gr4,#_TIF_NEED_RESCHED,gr0,icc0 + beq icc0,#1,__entry_work_notifysig + +__entry_work_resched: + LEDS 0x6408 + movsg psr,gr23 + andi gr23,#~PSR_PIL,gr23 + movgs gr23,psr + call schedule + movsg psr,gr23 + ori gr23,#PSR_PIL_14,gr23 + movgs gr23,psr + + LEDS 0x6401 + ldi @(gr15,#TI_FLAGS),gr4 + sethi.p %hi(_TIF_WORK_MASK),gr5 + setlo %lo(_TIF_WORK_MASK),gr5 + andcc gr4,gr5,gr0,icc0 + beq icc0,#1,__entry_return_direct + andicc gr4,#_TIF_NEED_RESCHED,gr0,icc0 + bne icc0,#1,__entry_work_resched + + __entry_work_notifysig: + LEDS 0x6410 + ori.p gr4,#0,gr8 + call do_notify_resume + bra __entry_return_direct + + # perform syscall entry tracing +__syscall_trace_entry: + LEDS 0x6320 + setlos.p #0,gr8 + call do_syscall_trace + + ldi @(gr28,#REG_SYSCALLNO),gr7 + lddi @(gr28,#REG_GR(8)) ,gr8 + lddi @(gr28,#REG_GR(10)),gr10 + lddi.p @(gr28,#REG_GR(12)),gr12 + + subicc gr7,#nr_syscalls,gr0,icc0 + bnc icc0,#0,__syscall_badsys + bra __syscall_call + + # perform syscall exit tracing +__syscall_exit_work: + LEDS 0x6340 + andicc gr4,#_TIF_SYSCALL_TRACE,gr0,icc0 + beq icc0,#1,__entry_work_pending + + movsg psr,gr23 + andi gr23,#~PSR_PIL,gr23 ; could let do_syscall_trace() call schedule() + movgs gr23,psr + + setlos.p #1,gr8 + call do_syscall_trace + bra __entry_resume_userspace + +__syscall_badsys: + LEDS 0x6380 + setlos #-ENOSYS,gr8 + sti gr8,@(gr28,#REG_GR(8)) ; save return value + bra __entry_resume_userspace + + +############################################################################### +# +# syscall vector table +# +############################################################################### +#ifdef CONFIG_MMU +#define __MMU(X) X +#else +#define __MMU(X) sys_ni_syscall +#endif + + .section .rodata +ALIGN + .globl sys_call_table +sys_call_table: + .long sys_restart_syscall /* 0 - old "setup()" system call, used for restarting */ + .long sys_exit + .long sys_fork + .long sys_read + .long sys_write + .long sys_open /* 5 */ + .long sys_close + .long sys_waitpid + .long sys_creat + .long sys_link + .long sys_unlink /* 10 */ + .long sys_execve + .long sys_chdir + .long sys_time + .long sys_mknod + .long sys_chmod /* 15 */ + .long sys_lchown16 + .long sys_ni_syscall /* old break syscall holder */ + .long sys_stat + .long sys_lseek + .long sys_getpid /* 20 */ + .long sys_mount + .long sys_oldumount + .long sys_setuid16 + .long sys_getuid16 + .long sys_ni_syscall // sys_stime /* 25 */ + .long sys_ptrace + .long sys_alarm + .long sys_fstat + .long sys_pause + .long sys_utime /* 30 */ + .long sys_ni_syscall /* old stty syscall holder */ + .long sys_ni_syscall /* old gtty syscall holder */ + .long sys_access + .long sys_nice + .long sys_ni_syscall /* 35 */ /* old ftime syscall holder */ + .long sys_sync + .long sys_kill + .long sys_rename + .long sys_mkdir + .long sys_rmdir /* 40 */ + .long sys_dup + .long sys_pipe + .long sys_times + .long sys_ni_syscall /* old prof syscall holder */ + .long sys_brk /* 45 */ + .long sys_setgid16 + .long sys_getgid16 + .long sys_ni_syscall // sys_signal + .long sys_geteuid16 + .long sys_getegid16 /* 50 */ + .long sys_acct + .long sys_umount /* recycled never used phys( */ + .long sys_ni_syscall /* old lock syscall holder */ + .long sys_ioctl + .long sys_fcntl /* 55 */ + .long sys_ni_syscall /* old mpx syscall holder */ + .long sys_setpgid + .long sys_ni_syscall /* old ulimit syscall holder */ + .long sys_ni_syscall /* old old uname syscall */ + .long sys_umask /* 60 */ + .long sys_chroot + .long sys_ustat + .long sys_dup2 + .long sys_getppid + .long sys_getpgrp /* 65 */ + .long sys_setsid + .long sys_sigaction + .long sys_ni_syscall // sys_sgetmask + .long sys_ni_syscall // sys_ssetmask + .long sys_setreuid16 /* 70 */ + .long sys_setregid16 + .long sys_sigsuspend + .long sys_ni_syscall // sys_sigpending + .long sys_sethostname + .long sys_setrlimit /* 75 */ + .long sys_ni_syscall // sys_old_getrlimit + .long sys_getrusage + .long sys_gettimeofday + .long sys_settimeofday + .long sys_getgroups16 /* 80 */ + .long sys_setgroups16 + .long sys_ni_syscall /* old_select slot */ + .long sys_symlink + .long sys_lstat + .long sys_readlink /* 85 */ + .long sys_uselib + .long sys_swapon + .long sys_reboot + .long sys_ni_syscall // old_readdir + .long sys_ni_syscall /* 90 */ /* old_mmap slot */ + .long sys_munmap + .long sys_truncate + .long sys_ftruncate + .long sys_fchmod + .long sys_fchown16 /* 95 */ + .long sys_getpriority + .long sys_setpriority + .long sys_ni_syscall /* old profil syscall holder */ + .long sys_statfs + .long sys_fstatfs /* 100 */ + .long sys_ni_syscall /* ioperm for i386 */ + .long sys_socketcall + .long sys_syslog + .long sys_setitimer + .long sys_getitimer /* 105 */ + .long sys_newstat + .long sys_newlstat + .long sys_newfstat + .long sys_ni_syscall /* obsolete olduname( syscall */ + .long sys_ni_syscall /* iopl for i386 */ /* 110 */ + .long sys_vhangup + .long sys_ni_syscall /* obsolete idle( syscall */ + .long sys_ni_syscall /* vm86old for i386 */ + .long sys_wait4 + .long sys_swapoff /* 115 */ + .long sys_sysinfo + .long sys_ipc + .long sys_fsync + .long sys_sigreturn + .long sys_clone /* 120 */ + .long sys_setdomainname + .long sys_newuname + .long sys_ni_syscall /* old "cacheflush" */ + .long sys_adjtimex + .long __MMU(sys_mprotect) /* 125 */ + .long sys_sigprocmask + .long sys_ni_syscall /* old "create_module" */ + .long sys_init_module + .long sys_delete_module + .long sys_ni_syscall /* old "get_kernel_syms" */ + .long sys_quotactl + .long sys_getpgid + .long sys_fchdir + .long sys_bdflush + .long sys_sysfs /* 135 */ + .long sys_personality + .long sys_ni_syscall /* for afs_syscall */ + .long sys_setfsuid16 + .long sys_setfsgid16 + .long sys_llseek /* 140 */ + .long sys_getdents + .long sys_select + .long sys_flock + .long __MMU(sys_msync) + .long sys_readv /* 145 */ + .long sys_writev + .long sys_getsid + .long sys_fdatasync + .long sys_sysctl + .long __MMU(sys_mlock) /* 150 */ + .long __MMU(sys_munlock) + .long __MMU(sys_mlockall) + .long __MMU(sys_munlockall) + .long sys_sched_setparam + .long sys_sched_getparam /* 155 */ + .long sys_sched_setscheduler + .long sys_sched_getscheduler + .long sys_sched_yield + .long sys_sched_get_priority_max + .long sys_sched_get_priority_min /* 160 */ + .long sys_sched_rr_get_interval + .long sys_nanosleep + .long __MMU(sys_mremap) + .long sys_setresuid16 + .long sys_getresuid16 /* 165 */ + .long sys_ni_syscall /* for vm86 */ + .long sys_ni_syscall /* Old sys_query_module */ + .long sys_poll + .long sys_nfsservctl + .long sys_setresgid16 /* 170 */ + .long sys_getresgid16 + .long sys_prctl + .long sys_rt_sigreturn + .long sys_rt_sigaction + .long sys_rt_sigprocmask /* 175 */ + .long sys_rt_sigpending + .long sys_rt_sigtimedwait + .long sys_rt_sigqueueinfo + .long sys_rt_sigsuspend + .long sys_pread64 /* 180 */ + .long sys_pwrite64 + .long sys_chown16 + .long sys_getcwd + .long sys_capget + .long sys_capset /* 185 */ + .long sys_sigaltstack + .long sys_sendfile + .long sys_ni_syscall /* streams1 */ + .long sys_ni_syscall /* streams2 */ + .long sys_vfork /* 190 */ + .long sys_getrlimit + .long sys_mmap2 + .long sys_truncate64 + .long sys_ftruncate64 + .long sys_stat64 /* 195 */ + .long sys_lstat64 + .long sys_fstat64 + .long sys_lchown + .long sys_getuid + .long sys_getgid /* 200 */ + .long sys_geteuid + .long sys_getegid + .long sys_setreuid + .long sys_setregid + .long sys_getgroups /* 205 */ + .long sys_setgroups + .long sys_fchown + .long sys_setresuid + .long sys_getresuid + .long sys_setresgid /* 210 */ + .long sys_getresgid + .long sys_chown + .long sys_setuid + .long sys_setgid + .long sys_setfsuid /* 215 */ + .long sys_setfsgid + .long sys_pivot_root + .long __MMU(sys_mincore) + .long __MMU(sys_madvise) + .long sys_getdents64 /* 220 */ + .long sys_fcntl64 + .long sys_ni_syscall /* reserved for TUX */ + .long sys_ni_syscall /* Reserved for Security */ + .long sys_gettid + .long sys_readahead /* 225 */ + .long sys_setxattr + .long sys_lsetxattr + .long sys_fsetxattr + .long sys_getxattr + .long sys_lgetxattr /* 230 */ + .long sys_fgetxattr + .long sys_listxattr + .long sys_llistxattr + .long sys_flistxattr + .long sys_removexattr /* 235 */ + .long sys_lremovexattr + .long sys_fremovexattr + .long sys_tkill + .long sys_sendfile64 + .long sys_futex /* 240 */ + .long sys_sched_setaffinity + .long sys_sched_getaffinity + .long sys_ni_syscall //sys_set_thread_area + .long sys_ni_syscall //sys_get_thread_area + .long sys_io_setup /* 245 */ + .long sys_io_destroy + .long sys_io_getevents + .long sys_io_submit + .long sys_io_cancel + .long sys_fadvise64 /* 250 */ + .long sys_ni_syscall + .long sys_exit_group + .long sys_lookup_dcookie + .long sys_epoll_create + .long sys_epoll_ctl /* 255 */ + .long sys_epoll_wait + .long __MMU(sys_remap_file_pages) + .long sys_set_tid_address + .long sys_timer_create + .long sys_timer_settime /* 260 */ + .long sys_timer_gettime + .long sys_timer_getoverrun + .long sys_timer_delete + .long sys_clock_settime + .long sys_clock_gettime /* 265 */ + .long sys_clock_getres + .long sys_clock_nanosleep + .long sys_statfs64 + .long sys_fstatfs64 + .long sys_tgkill /* 270 */ + .long sys_utimes + .long sys_fadvise64_64 + .long sys_ni_syscall /* sys_vserver */ + .long sys_mbind + .long sys_get_mempolicy + .long sys_set_mempolicy + .long sys_mq_open + .long sys_mq_unlink + .long sys_mq_timedsend + .long sys_mq_timedreceive /* 280 */ + .long sys_mq_notify + .long sys_mq_getsetattr + .long sys_ni_syscall /* reserved for kexec */ + .long sys_waitid + .long sys_ni_syscall /* 285 */ /* available */ + .long sys_add_key + .long sys_request_key + .long sys_keyctl + .long sys_ni_syscall // sys_vperfctr_open + .long sys_ni_syscall // sys_vperfctr_control /* 290 */ + .long sys_ni_syscall // sys_vperfctr_unlink + .long sys_ni_syscall // sys_vperfctr_iresume + .long sys_ni_syscall // sys_vperfctr_read + + +syscall_table_size = (. - sys_call_table) diff -Nru a/arch/frv/kernel/frv_ksyms.c b/arch/frv/kernel/frv_ksyms.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/frv_ksyms.c 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,124 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +extern void dump_thread(struct pt_regs *, struct user *); +extern long __memcpy_user(void *dst, const void *src, size_t count); + +/* platform dependent support */ + +EXPORT_SYMBOL(__ioremap); +EXPORT_SYMBOL(iounmap); + +EXPORT_SYMBOL(dump_thread); +EXPORT_SYMBOL(strnlen); +EXPORT_SYMBOL(strrchr); +EXPORT_SYMBOL(strstr); +EXPORT_SYMBOL(strchr); +EXPORT_SYMBOL(strcat); +EXPORT_SYMBOL(strlen); +EXPORT_SYMBOL(strcmp); +EXPORT_SYMBOL(strncmp); +EXPORT_SYMBOL(strncpy); + +EXPORT_SYMBOL(ip_fast_csum); + +#if 0 +EXPORT_SYMBOL(local_irq_count); +EXPORT_SYMBOL(local_bh_count); +#endif +EXPORT_SYMBOL(kernel_thread); + +EXPORT_SYMBOL(enable_irq); +EXPORT_SYMBOL(disable_irq); +EXPORT_SYMBOL(__res_bus_clock_speed_HZ); +EXPORT_SYMBOL(__page_offset); +EXPORT_SYMBOL(__memcpy_user); +EXPORT_SYMBOL(flush_dcache_page); + +#ifndef CONFIG_MMU +EXPORT_SYMBOL(memory_start); +EXPORT_SYMBOL(memory_end); +#endif + +EXPORT_SYMBOL(__debug_bug_trap); + +/* Networking helper routines. */ +EXPORT_SYMBOL(csum_partial_copy); + +/* The following are special because they're not called + explicitly (the C compiler generates them). Fortunately, + their interface isn't gonna change any time soon now, so + it's OK to leave it out of version control. */ +EXPORT_SYMBOL(memcpy); +EXPORT_SYMBOL(memset); +EXPORT_SYMBOL(memcmp); +EXPORT_SYMBOL(memscan); +EXPORT_SYMBOL(memmove); +EXPORT_SYMBOL(strtok); + +EXPORT_SYMBOL(get_wchan); + +#ifdef CONFIG_FRV_OUTOFLINE_ATOMIC_OPS +EXPORT_SYMBOL(atomic_test_and_ANDNOT_mask); +EXPORT_SYMBOL(atomic_test_and_OR_mask); +EXPORT_SYMBOL(atomic_test_and_XOR_mask); +EXPORT_SYMBOL(atomic_add_return); +EXPORT_SYMBOL(atomic_sub_return); +EXPORT_SYMBOL(__xchg_8); +EXPORT_SYMBOL(__xchg_16); +EXPORT_SYMBOL(__xchg_32); +EXPORT_SYMBOL(__cmpxchg_8); +EXPORT_SYMBOL(__cmpxchg_16); +EXPORT_SYMBOL(__cmpxchg_32); +#endif + +/* + * libgcc functions - functions that are used internally by the + * compiler... (prototypes are not correct though, but that + * doesn't really matter since they're not versioned). + */ +extern void __gcc_bcmp(void); +extern void __ashldi3(void); +extern void __ashrdi3(void); +extern void __cmpdi2(void); +extern void __divdi3(void); +extern void __lshrdi3(void); +extern void __moddi3(void); +extern void __muldi3(void); +extern void __negdi2(void); +extern void __ucmpdi2(void); +extern void __udivdi3(void); +extern void __udivmoddi4(void); +extern void __umoddi3(void); + + /* gcc lib functions */ +//EXPORT_SYMBOL(__gcc_bcmp); +EXPORT_SYMBOL(__ashldi3); +EXPORT_SYMBOL(__ashrdi3); +//EXPORT_SYMBOL(__cmpdi2); +//EXPORT_SYMBOL(__divdi3); +EXPORT_SYMBOL(__lshrdi3); +//EXPORT_SYMBOL(__moddi3); +EXPORT_SYMBOL(__muldi3); +EXPORT_SYMBOL(__negdi2); +//EXPORT_SYMBOL(__ucmpdi2); +//EXPORT_SYMBOL(__udivdi3); +//EXPORT_SYMBOL(__udivmoddi4); +//EXPORT_SYMBOL(__umoddi3); diff -Nru a/arch/frv/kernel/gdb-io.c b/arch/frv/kernel/gdb-io.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/gdb-io.c 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,216 @@ +/* gdb-io.c: FR403 GDB stub I/O + * + * Copyright (C) 2003 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include "gdb-io.h" + +#ifdef CONFIG_GDBSTUB_UART0 +#define __UART(X) (*(volatile uint8_t *)(UART0_BASE + (UART_##X))) +#define __UART_IRR_NMI 0xff0f0000 +#else /* CONFIG_GDBSTUB_UART1 */ +#define __UART(X) (*(volatile uint8_t *)(UART1_BASE + (UART_##X))) +#define __UART_IRR_NMI 0xfff00000 +#endif + +#define LSR_WAIT_FOR(STATE) \ +do { \ + gdbstub_do_rx(); \ +} while (!(__UART(LSR) & UART_LSR_##STATE)) + +#define FLOWCTL_QUERY(LINE) ({ __UART(MSR) & UART_MSR_##LINE; }) +#define FLOWCTL_CLEAR(LINE) do { __UART(MCR) &= ~UART_MCR_##LINE; mb(); } while (0) +#define FLOWCTL_SET(LINE) do { __UART(MCR) |= UART_MCR_##LINE; mb(); } while (0) + +#define FLOWCTL_WAIT_FOR(LINE) \ +do { \ + gdbstub_do_rx(); \ +} while(!FLOWCTL_QUERY(LINE)) + +/*****************************************************************************/ +/* + * initialise the GDB stub + * - called with PSR.ET==0, so can't incur external interrupts + */ +void gdbstub_io_init(void) +{ + /* set up the serial port */ + __UART(LCR) = UART_LCR_WLEN8; /* 1N8 */ + __UART(FCR) = + UART_FCR_ENABLE_FIFO | + UART_FCR_CLEAR_RCVR | + UART_FCR_CLEAR_XMIT | + UART_FCR_TRIGGER_1; + + FLOWCTL_CLEAR(DTR); + FLOWCTL_SET(RTS); + +// gdbstub_set_baud(115200); + + /* we want to get serial receive interrupts */ + __UART(IER) = UART_IER_RDI | UART_IER_RLSI; + mb(); + + __set_IRR(6, __UART_IRR_NMI); /* map ERRs and UARTx to NMI */ + +} /* end gdbstub_io_init() */ + +/*****************************************************************************/ +/* + * set up the GDB stub serial port baud rate timers + */ +void gdbstub_set_baud(unsigned baud) +{ + unsigned value, high, low; + u8 lcr; + + /* work out the divisor to give us the nearest higher baud rate */ + value = __serial_clock_speed_HZ / 16 / baud; + + /* determine the baud rate range */ + high = __serial_clock_speed_HZ / 16 / value; + low = __serial_clock_speed_HZ / 16 / (value + 1); + + /* pick the nearest bound */ + if (low + (high - low) / 2 > baud) + value++; + + lcr = __UART(LCR); + __UART(LCR) |= UART_LCR_DLAB; + mb(); + __UART(DLL) = value & 0xff; + __UART(DLM) = (value >> 8) & 0xff; + mb(); + __UART(LCR) = lcr; + mb(); + +} /* end gdbstub_set_baud() */ + +/*****************************************************************************/ +/* + * receive characters into the receive FIFO + */ +void gdbstub_do_rx(void) +{ + unsigned ix, nix; + + ix = gdbstub_rx_inp; + + while (__UART(LSR) & UART_LSR_DR) { + nix = (ix + 2) & 0xfff; + if (nix == gdbstub_rx_outp) + break; + + gdbstub_rx_buffer[ix++] = __UART(LSR); + gdbstub_rx_buffer[ix++] = __UART(RX); + ix = nix; + } + + gdbstub_rx_inp = ix; + + __clr_RC(15); + __clr_IRL(); + +} /* end gdbstub_do_rx() */ + +/*****************************************************************************/ +/* + * wait for a character to come from the debugger + */ +int gdbstub_rx_char(unsigned char *_ch, int nonblock) +{ + unsigned ix; + u8 ch, st; + + *_ch = 0xff; + + if (gdbstub_rx_unget) { + *_ch = gdbstub_rx_unget; + gdbstub_rx_unget = 0; + return 0; + } + + try_again: + gdbstub_do_rx(); + + /* pull chars out of the buffer */ + ix = gdbstub_rx_outp; + if (ix == gdbstub_rx_inp) { + if (nonblock) + return -EAGAIN; + //watchdog_alert_counter = 0; + goto try_again; + } + + st = gdbstub_rx_buffer[ix++]; + ch = gdbstub_rx_buffer[ix++]; + gdbstub_rx_outp = ix & 0x00000fff; + + if (st & UART_LSR_BI) { + gdbstub_proto("### GDB Rx Break Detected ###\n"); + return -EINTR; + } + else if (st & (UART_LSR_FE|UART_LSR_OE|UART_LSR_PE)) { + gdbstub_proto("### GDB Rx Error (st=%02x) ###\n",st); + return -EIO; + } + else { + gdbstub_proto("### GDB Rx %02x (st=%02x) ###\n",ch,st); + *_ch = ch & 0x7f; + return 0; + } + +} /* end gdbstub_rx_char() */ + +/*****************************************************************************/ +/* + * send a character to the debugger + */ +void gdbstub_tx_char(unsigned char ch) +{ + FLOWCTL_SET(DTR); + LSR_WAIT_FOR(THRE); +// FLOWCTL_WAIT_FOR(CTS); + + if (ch == 0x0a) { + __UART(TX) = 0x0d; + mb(); + LSR_WAIT_FOR(THRE); +// FLOWCTL_WAIT_FOR(CTS); + } + __UART(TX) = ch; + mb(); + + FLOWCTL_CLEAR(DTR); +} /* end gdbstub_tx_char() */ + +/*****************************************************************************/ +/* + * send a character to the debugger + */ +void gdbstub_tx_flush(void) +{ + LSR_WAIT_FOR(TEMT); + LSR_WAIT_FOR(THRE); + FLOWCTL_CLEAR(DTR); +} /* end gdbstub_tx_flush() */ diff -Nru a/arch/frv/kernel/gdb-io.h b/arch/frv/kernel/gdb-io.h --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/gdb-io.h 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,55 @@ +/* gdb-io.h: FR403 GDB I/O port defs + * + * Copyright (C) 2003 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#ifndef _GDB_IO_H +#define _GDB_IO_H + +#include + +#undef UART_RX +#undef UART_TX +#undef UART_DLL +#undef UART_DLM +#undef UART_IER +#undef UART_IIR +#undef UART_FCR +#undef UART_LCR +#undef UART_MCR +#undef UART_LSR +#undef UART_MSR +#undef UART_SCR + +#define UART_RX 0*8 /* In: Receive buffer (DLAB=0) */ +#define UART_TX 0*8 /* Out: Transmit buffer (DLAB=0) */ +#define UART_DLL 0*8 /* Out: Divisor Latch Low (DLAB=1) */ +#define UART_DLM 1*8 /* Out: Divisor Latch High (DLAB=1) */ +#define UART_IER 1*8 /* Out: Interrupt Enable Register */ +#define UART_IIR 2*8 /* In: Interrupt ID Register */ +#define UART_FCR 2*8 /* Out: FIFO Control Register */ +#define UART_LCR 3*8 /* Out: Line Control Register */ +#define UART_MCR 4*8 /* Out: Modem Control Register */ +#define UART_LSR 5*8 /* In: Line Status Register */ +#define UART_MSR 6*8 /* In: Modem Status Register */ +#define UART_SCR 7*8 /* I/O: Scratch Register */ + +#define UART_LCR_DLAB 0x80 /* Divisor latch access bit */ +#define UART_LCR_SBC 0x40 /* Set break control */ +#define UART_LCR_SPAR 0x20 /* Stick parity (?) */ +#define UART_LCR_EPAR 0x10 /* Even parity select */ +#define UART_LCR_PARITY 0x08 /* Parity Enable */ +#define UART_LCR_STOP 0x04 /* Stop bits: 0=1 stop bit, 1= 2 stop bits */ +#define UART_LCR_WLEN5 0x00 /* Wordlength: 5 bits */ +#define UART_LCR_WLEN6 0x01 /* Wordlength: 6 bits */ +#define UART_LCR_WLEN7 0x02 /* Wordlength: 7 bits */ +#define UART_LCR_WLEN8 0x03 /* Wordlength: 8 bits */ + + +#endif /* _GDB_IO_H */ diff -Nru a/arch/frv/kernel/gdb-stub.c b/arch/frv/kernel/gdb-stub.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/gdb-stub.c 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,2084 @@ +/* gdb-stub.c: FRV GDB stub + * + * Copyright (C) 2003,4 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * - Derived from Linux/MIPS version, Copyright (C) 1995 Andreas Busse + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +/* + * To enable debugger support, two things need to happen. One, a + * call to set_debug_traps() is necessary in order to allow any breakpoints + * or error conditions to be properly intercepted and reported to gdb. + * Two, a breakpoint needs to be generated to begin communication. This + * is most easily accomplished by a call to breakpoint(). Breakpoint() + * simulates a breakpoint by executing a BREAK instruction. + * + * + * The following gdb commands are supported: + * + * command function Return value + * + * g return the value of the CPU registers hex data or ENN + * G set the value of the CPU registers OK or ENN + * + * mAA..AA,LLLL Read LLLL bytes at address AA..AA hex data or ENN + * MAA..AA,LLLL: Write LLLL bytes at address AA.AA OK or ENN + * + * c Resume at current address SNN ( signal NN) + * cAA..AA Continue at address AA..AA SNN + * + * s Step one instruction SNN + * sAA..AA Step one instruction from AA..AA SNN + * + * k kill + * + * ? What was the last sigval ? SNN (signal NN) + * + * bBB..BB Set baud rate to BB..BB OK or BNN, then sets + * baud rate + * + * All commands and responses are sent with a packet which includes a + * checksum. A packet consists of + * + * $#. + * + * where + * :: + * :: < two hex digits computed as modulo 256 sum of > + * + * When a packet is received, it is first acknowledged with either '+' or '-'. + * '+' indicates a successful transfer. '-' indicates a failed transfer. + * + * Example: + * + * Host: Reply: + * $m0,10#2a +$00010203040506070809101112131415#42 + * + * + * ============== + * MORE EXAMPLES: + * ============== + * + * For reference -- the following are the steps that one + * company took (RidgeRun Inc) to get remote gdb debugging + * going. In this scenario the host machine was a PC and the + * target platform was a Galileo EVB64120A MIPS evaluation + * board. + * + * Step 1: + * First download gdb-5.0.tar.gz from the internet. + * and then build/install the package. + * + * Example: + * $ tar zxf gdb-5.0.tar.gz + * $ cd gdb-5.0 + * $ ./configure --target=frv-elf-gdb + * $ make + * $ frv-elf-gdb + * + * Step 2: + * Configure linux for remote debugging and build it. + * + * Example: + * $ cd ~/linux + * $ make menuconfig + * $ make dep; make vmlinux + * + * Step 3: + * Download the kernel to the remote target and start + * the kernel running. It will promptly halt and wait + * for the host gdb session to connect. It does this + * since the "Kernel Hacking" option has defined + * CONFIG_REMOTE_DEBUG which in turn enables your calls + * to: + * set_debug_traps(); + * breakpoint(); + * + * Step 4: + * Start the gdb session on the host. + * + * Example: + * $ frv-elf-gdb vmlinux + * (gdb) set remotebaud 115200 + * (gdb) target remote /dev/ttyS1 + * ...at this point you are connected to + * the remote target and can use gdb + * in the normal fasion. Setting + * breakpoints, single stepping, + * printing variables, etc. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#define LEDS(x) do { /* *(u32*)0xe1200004 = ~(x); mb(); */ } while(0) + +#undef GDBSTUB_DEBUG_PROTOCOL + +extern void debug_to_serial(const char *p, int n); +extern void gdbstub_console_write(struct console *co, const char *p, unsigned n); + +extern volatile uint32_t __break_error_detect[3]; /* ESFR1, ESR15, EAR15 */ +extern struct user_context __break_user_context; + +struct __debug_amr { + unsigned long L, P; +} __attribute__((aligned(8))); + +struct __debug_mmu { + struct { + unsigned long hsr0, pcsr, esr0, ear0, epcr0; +#ifdef CONFIG_MMU + unsigned long tplr, tppr, tpxr, cxnr; +#endif + } regs; + + struct __debug_amr iamr[16]; + struct __debug_amr damr[16]; + +#ifdef CONFIG_MMU + struct __debug_amr tlb[64*2]; +#endif +}; + +static struct __debug_mmu __debug_mmu; + +/* + * BUFMAX defines the maximum number of characters in inbound/outbound buffers + * at least NUMREGBYTES*2 are needed for register packets + */ +#define BUFMAX 2048 + +#define BREAK_INSN 0x801000c0 /* use "break" as bkpt */ + +static const char gdbstub_banner[] = "Linux/FR-V GDB Stub (c) RedHat 2003\n"; + +volatile u8 gdbstub_rx_buffer[PAGE_SIZE] __attribute__((aligned(PAGE_SIZE))); +volatile u32 gdbstub_rx_inp = 0; +volatile u32 gdbstub_rx_outp = 0; +volatile u8 gdbstub_rx_overflow = 0; +u8 gdbstub_rx_unget = 0; + +/* set with GDB whilst running to permit step through exceptions */ +extern volatile u32 __attribute__((section(".bss"))) gdbstub_trace_through_exceptions; + +static char input_buffer[BUFMAX]; +static char output_buffer[BUFMAX]; + +static const char hexchars[] = "0123456789abcdef"; + +static const char *regnames[] = { + "PSR ", "ISR ", "CCR ", "CCCR", + "LR ", "LCR ", "PC ", "_stt", + "sys ", "GR8*", "GNE0", "GNE1", + "IACH", "IACL", + "TBR ", "SP ", "FP ", "GR3 ", + "GR4 ", "GR5 ", "GR6 ", "GR7 ", + "GR8 ", "GR9 ", "GR10", "GR11", + "GR12", "GR13", "GR14", "GR15", + "GR16", "GR17", "GR18", "GR19", + "GR20", "GR21", "GR22", "GR23", + "GR24", "GR25", "GR26", "GR27", + "EFRM", "CURR", "GR30", "BFRM" +}; + +struct gdbstub_bkpt { + unsigned long addr; /* address of breakpoint */ + unsigned len; /* size of breakpoint */ + uint32_t originsns[7]; /* original instructions */ +}; + +static struct gdbstub_bkpt gdbstub_bkpts[256]; + +/* + * local prototypes + */ + +static void gdbstub_recv_packet(char *buffer); +static int gdbstub_send_packet(char *buffer); +static int gdbstub_compute_signal(unsigned long tbr); +static int hex(unsigned char ch); +static int hexToInt(char **ptr, unsigned long *intValue); +static unsigned char *mem2hex(const void *mem, char *buf, int count, int may_fault); +static char *hex2mem(const char *buf, void *_mem, int count); + +/* + * Convert ch from a hex digit to an int + */ +static int hex(unsigned char ch) +{ + if (ch >= 'a' && ch <= 'f') + return ch-'a'+10; + if (ch >= '0' && ch <= '9') + return ch-'0'; + if (ch >= 'A' && ch <= 'F') + return ch-'A'+10; + return -1; +} + +void gdbstub_printk(const char *fmt, ...) +{ + static char buf[1024]; + va_list args; + int len; + + /* Emit the output into the temporary buffer */ + va_start(args, fmt); + len = vsnprintf(buf, sizeof(buf), fmt, args); + va_end(args); + debug_to_serial(buf, len); +} + +static inline char *gdbstub_strcpy(char *dst, const char *src) +{ + int loop = 0; + while ((dst[loop] = src[loop])) + loop++; + return dst; +} + +static void gdbstub_purge_cache(void) +{ + asm volatile(" dcef @(gr0,gr0),#1 \n" + " icei @(gr0,gr0),#1 \n" + " membar \n" + " bar \n" + ); +} + +/*****************************************************************************/ +/* + * scan for the sequence $# + */ +static void gdbstub_recv_packet(char *buffer) +{ + unsigned char checksum; + unsigned char xmitcsum; + unsigned char ch; + int count, i, ret, error; + + for (;;) { + /* wait around for the start character, ignore all other characters */ + do { + gdbstub_rx_char(&ch, 0); + } while (ch != '$'); + + checksum = 0; + xmitcsum = -1; + count = 0; + error = 0; + + /* now, read until a # or end of buffer is found */ + while (count < BUFMAX) { + ret = gdbstub_rx_char(&ch, 0); + if (ret < 0) + error = ret; + + if (ch == '#') + break; + checksum += ch; + buffer[count] = ch; + count++; + } + + if (error == -EIO) { + gdbstub_proto("### GDB Rx Error - Skipping packet ###\n"); + gdbstub_proto("### GDB Tx NAK\n"); + gdbstub_tx_char('-'); + continue; + } + + if (count >= BUFMAX || error) + continue; + + buffer[count] = 0; + + /* read the checksum */ + ret = gdbstub_rx_char(&ch, 0); + if (ret < 0) + error = ret; + xmitcsum = hex(ch) << 4; + + ret = gdbstub_rx_char(&ch, 0); + if (ret < 0) + error = ret; + xmitcsum |= hex(ch); + + if (error) { + if (error == -EIO) + gdbstub_proto("### GDB Rx Error - Skipping packet\n"); + gdbstub_proto("### GDB Tx NAK\n"); + gdbstub_tx_char('-'); + continue; + } + + /* check the checksum */ + if (checksum != xmitcsum) { + gdbstub_proto("### GDB Tx NAK\n"); + gdbstub_tx_char('-'); /* failed checksum */ + continue; + } + + gdbstub_proto("### GDB Rx '$%s#%02x' ###\n", buffer, checksum); + gdbstub_proto("### GDB Tx ACK\n"); + gdbstub_tx_char('+'); /* successful transfer */ + + /* if a sequence char is present, reply the sequence ID */ + if (buffer[2] == ':') { + gdbstub_tx_char(buffer[0]); + gdbstub_tx_char(buffer[1]); + + /* remove sequence chars from buffer */ + count = 0; + while (buffer[count]) count++; + for (i=3; i <= count; i++) + buffer[i - 3] = buffer[i]; + } + + break; + } +} /* end gdbstub_recv_packet() */ + +/*****************************************************************************/ +/* + * send the packet in buffer. + * - return 0 if successfully ACK'd + * - return 1 if abandoned due to new incoming packet + */ +static int gdbstub_send_packet(char *buffer) +{ + unsigned char checksum; + int count; + unsigned char ch; + + /* $# */ + gdbstub_proto("### GDB Tx '%s' ###\n", buffer); + + do { + gdbstub_tx_char('$'); + checksum = 0; + count = 0; + + while ((ch = buffer[count]) != 0) { + gdbstub_tx_char(ch); + checksum += ch; + count += 1; + } + + gdbstub_tx_char('#'); + gdbstub_tx_char(hexchars[checksum >> 4]); + gdbstub_tx_char(hexchars[checksum & 0xf]); + + } while (gdbstub_rx_char(&ch,0), +#ifdef GDBSTUB_DEBUG_PROTOCOL + ch=='-' && (gdbstub_proto("### GDB Rx NAK\n"),0), + ch!='-' && ch!='+' && (gdbstub_proto("### GDB Rx ??? %02x\n",ch),0), +#endif + ch!='+' && ch!='$'); + + if (ch=='+') { + gdbstub_proto("### GDB Rx ACK\n"); + return 0; + } + + gdbstub_proto("### GDB Tx Abandoned\n"); + gdbstub_rx_unget = ch; + return 1; +} /* end gdbstub_send_packet() */ + +/* + * While we find nice hex chars, build an int. + * Return number of chars processed. + */ +static int hexToInt(char **ptr, unsigned long *_value) +{ + int count = 0, ch; + + *_value = 0; + while (**ptr) { + ch = hex(**ptr); + if (ch < 0) + break; + + *_value = (*_value << 4) | ((uint8_t) ch & 0xf); + count++; + + (*ptr)++; + } + + return count; +} + +/*****************************************************************************/ +/* + * probe an address to see whether it maps to anything + */ +static inline int gdbstub_addr_probe(const void *vaddr) +{ +#ifdef CONFIG_MMU + unsigned long paddr; + + asm("lrad %1,%0,#1,#0,#0" : "=r"(paddr) : "r"(vaddr)); + if (!(paddr & xAMPRx_V)) + return 0; +#endif + + return 1; +} /* end gdbstub_addr_probe() */ + +#ifdef CONFIG_MMU +static unsigned long __saved_dampr, __saved_damlr; + +static inline unsigned long gdbstub_virt_to_pte(unsigned long vaddr) +{ + pgd_t *pgd; + pud_t *pud; + pmd_t *pmd; + pte_t *pte; + unsigned long val, dampr5; + + pgd = (pgd_t *) __get_DAMLR(3) + pgd_index(vaddr); + pud = pud_offset(pgd, vaddr); + pmd = pmd_offset(pud, vaddr); + + if (pmd_bad(*pmd) || !pmd_present(*pmd)) + return 0; + + /* make sure dampr5 maps to the correct pmd */ + dampr5 = __get_DAMPR(5); + val = pmd_val(*pmd); + __set_DAMPR(5, val | xAMPRx_L | xAMPRx_SS_16Kb | xAMPRx_S | xAMPRx_C | xAMPRx_V); + + /* now its safe to access pmd */ + pte = (pte_t *)__get_DAMLR(5) + __pte_index(vaddr); + if (pte_present(*pte)) + val = pte_val(*pte); + else + val = 0; + + /* restore original dampr5 */ + __set_DAMPR(5, dampr5); + + return val; +} +#endif + +static inline int gdbstub_addr_map(const void *vaddr) +{ +#ifdef CONFIG_MMU + unsigned long pte; + + __saved_dampr = __get_DAMPR(2); + __saved_damlr = __get_DAMLR(2); +#endif + if (gdbstub_addr_probe(vaddr)) + return 1; +#ifdef CONFIG_MMU + pte = gdbstub_virt_to_pte((unsigned long) vaddr); + if (pte) { + __set_DAMPR(2, pte); + __set_DAMLR(2, (unsigned long) vaddr & PAGE_MASK); + return 1; + } +#endif + return 0; +} + +static inline void gdbstub_addr_unmap(void) +{ +#ifdef CONFIG_MMU + __set_DAMPR(2, __saved_dampr); + __set_DAMLR(2, __saved_damlr); +#endif +} + +/* + * access potentially dodgy memory through a potentially dodgy pointer + */ +static inline int gdbstub_read_dword(const void *addr, uint32_t *_res) +{ + unsigned long brr; + uint32_t res; + + if (!gdbstub_addr_map(addr)) + return 0; + + asm volatile(" movgs gr0,brr \n" + " ld%I2 %M2,%0 \n" + " movsg brr,%1 \n" + : "=r"(res), "=r"(brr) + : "m"(*(uint32_t *) addr)); + *_res = res; + gdbstub_addr_unmap(); + return likely(!brr); +} + +static inline int gdbstub_write_dword(void *addr, uint32_t val) +{ + unsigned long brr; + + if (!gdbstub_addr_map(addr)) + return 0; + + asm volatile(" movgs gr0,brr \n" + " st%I2 %1,%M2 \n" + " movsg brr,%0 \n" + : "=r"(brr) + : "r"(val), "m"(*(uint32_t *) addr)); + gdbstub_addr_unmap(); + return likely(!brr); +} + +static inline int gdbstub_read_word(const void *addr, uint16_t *_res) +{ + unsigned long brr; + uint16_t res; + + if (!gdbstub_addr_map(addr)) + return 0; + + asm volatile(" movgs gr0,brr \n" + " lduh%I2 %M2,%0 \n" + " movsg brr,%1 \n" + : "=r"(res), "=r"(brr) + : "m"(*(uint16_t *) addr)); + *_res = res; + gdbstub_addr_unmap(); + return likely(!brr); +} + +static inline int gdbstub_write_word(void *addr, uint16_t val) +{ + unsigned long brr; + + if (!gdbstub_addr_map(addr)) + return 0; + + asm volatile(" movgs gr0,brr \n" + " sth%I2 %1,%M2 \n" + " movsg brr,%0 \n" + : "=r"(brr) + : "r"(val), "m"(*(uint16_t *) addr)); + gdbstub_addr_unmap(); + return likely(!brr); +} + +static inline int gdbstub_read_byte(const void *addr, uint8_t *_res) +{ + unsigned long brr; + uint8_t res; + + if (!gdbstub_addr_map(addr)) + return 0; + + asm volatile(" movgs gr0,brr \n" + " ldub%I2 %M2,%0 \n" + " movsg brr,%1 \n" + : "=r"(res), "=r"(brr) + : "m"(*(uint8_t *) addr)); + *_res = res; + gdbstub_addr_unmap(); + return likely(!brr); +} + +static inline int gdbstub_write_byte(void *addr, uint8_t val) +{ + unsigned long brr; + + if (!gdbstub_addr_map(addr)) + return 0; + + asm volatile(" movgs gr0,brr \n" + " stb%I2 %1,%M2 \n" + " movsg brr,%0 \n" + : "=r"(brr) + : "r"(val), "m"(*(uint8_t *) addr)); + gdbstub_addr_unmap(); + return likely(!brr); +} + +static void __gdbstub_console_write(struct console *co, const char *p, unsigned n) +{ + char outbuf[26]; + int qty; + + outbuf[0] = 'O'; + + while (n > 0) { + qty = 1; + + while (n > 0 && qty < 20) { + mem2hex(p, outbuf + qty, 2, 0); + qty += 2; + if (*p == 0x0a) { + outbuf[qty++] = '0'; + outbuf[qty++] = 'd'; + } + p++; + n--; + } + + outbuf[qty] = 0; + gdbstub_send_packet(outbuf); + } +} + +#if 0 +void debug_to_serial(const char *p, int n) +{ + gdbstub_console_write(NULL,p,n); +} +#endif + +#ifdef CONFIG_GDBSTUB_CONSOLE + +static kdev_t gdbstub_console_dev(struct console *con) +{ + return MKDEV(1,3); /* /dev/null */ +} + +static struct console gdbstub_console = { + .name = "gdb", + .write = gdbstub_console_write, /* in break.S */ + .device = gdbstub_console_dev, + .flags = CON_PRINTBUFFER, + .index = -1, +}; + +#endif + +/*****************************************************************************/ +/* + * Convert the memory pointed to by mem into hex, placing result in buf. + * - if successful, return a pointer to the last char put in buf (NUL) + * - in case of mem fault, return NULL + * may_fault is non-zero if we are reading from arbitrary memory, but is currently + * not used. + */ +static unsigned char *mem2hex(const void *_mem, char *buf, int count, int may_fault) +{ + const uint8_t *mem = _mem; + uint8_t ch[4] __attribute__((aligned(4))); + + if ((uint32_t)mem&1 && count>=1) { + if (!gdbstub_read_byte(mem,ch)) + return NULL; + *buf++ = hexchars[ch[0] >> 4]; + *buf++ = hexchars[ch[0] & 0xf]; + mem++; + count--; + } + + if ((uint32_t)mem&3 && count>=2) { + if (!gdbstub_read_word(mem,(uint16_t *)ch)) + return NULL; + *buf++ = hexchars[ch[0] >> 4]; + *buf++ = hexchars[ch[0] & 0xf]; + *buf++ = hexchars[ch[1] >> 4]; + *buf++ = hexchars[ch[1] & 0xf]; + mem += 2; + count -= 2; + } + + while (count>=4) { + if (!gdbstub_read_dword(mem,(uint32_t *)ch)) + return NULL; + *buf++ = hexchars[ch[0] >> 4]; + *buf++ = hexchars[ch[0] & 0xf]; + *buf++ = hexchars[ch[1] >> 4]; + *buf++ = hexchars[ch[1] & 0xf]; + *buf++ = hexchars[ch[2] >> 4]; + *buf++ = hexchars[ch[2] & 0xf]; + *buf++ = hexchars[ch[3] >> 4]; + *buf++ = hexchars[ch[3] & 0xf]; + mem += 4; + count -= 4; + } + + if (count>=2) { + if (!gdbstub_read_word(mem,(uint16_t *)ch)) + return NULL; + *buf++ = hexchars[ch[0] >> 4]; + *buf++ = hexchars[ch[0] & 0xf]; + *buf++ = hexchars[ch[1] >> 4]; + *buf++ = hexchars[ch[1] & 0xf]; + mem += 2; + count -= 2; + } + + if (count>=1) { + if (!gdbstub_read_byte(mem,ch)) + return NULL; + *buf++ = hexchars[ch[0] >> 4]; + *buf++ = hexchars[ch[0] & 0xf]; + } + + *buf = 0; + + return buf; +} /* end mem2hex() */ + +/*****************************************************************************/ +/* + * convert the hex array pointed to by buf into binary to be placed in mem + * return a pointer to the character AFTER the last byte of buffer consumed + */ +static char *hex2mem(const char *buf, void *_mem, int count) +{ + uint8_t *mem = _mem; + union { + uint32_t l; + uint16_t w; + uint8_t b[4]; + } ch; + + if ((u32)mem&1 && count>=1) { + ch.b[0] = hex(*buf++) << 4; + ch.b[0] |= hex(*buf++); + if (!gdbstub_write_byte(mem,ch.b[0])) + return NULL; + mem++; + count--; + } + + if ((u32)mem&3 && count>=2) { + ch.b[0] = hex(*buf++) << 4; + ch.b[0] |= hex(*buf++); + ch.b[1] = hex(*buf++) << 4; + ch.b[1] |= hex(*buf++); + if (!gdbstub_write_word(mem,ch.w)) + return NULL; + mem += 2; + count -= 2; + } + + while (count>=4) { + ch.b[0] = hex(*buf++) << 4; + ch.b[0] |= hex(*buf++); + ch.b[1] = hex(*buf++) << 4; + ch.b[1] |= hex(*buf++); + ch.b[2] = hex(*buf++) << 4; + ch.b[2] |= hex(*buf++); + ch.b[3] = hex(*buf++) << 4; + ch.b[3] |= hex(*buf++); + if (!gdbstub_write_dword(mem,ch.l)) + return NULL; + mem += 4; + count -= 4; + } + + if (count>=2) { + ch.b[0] = hex(*buf++) << 4; + ch.b[0] |= hex(*buf++); + ch.b[1] = hex(*buf++) << 4; + ch.b[1] |= hex(*buf++); + if (!gdbstub_write_word(mem,ch.w)) + return NULL; + mem += 2; + count -= 2; + } + + if (count>=1) { + ch.b[0] = hex(*buf++) << 4; + ch.b[0] |= hex(*buf++); + if (!gdbstub_write_byte(mem,ch.b[0])) + return NULL; + } + + return (char *) buf; +} /* end hex2mem() */ + +/*****************************************************************************/ +/* + * This table contains the mapping between FRV TBR.TT exception codes, + * and signals, which are primarily what GDB understands. It also + * indicates which hardware traps we need to commandeer when + * initializing the stub. + */ +static const struct brr_to_sig_map { + unsigned long brr_mask; /* BRR bitmask */ + unsigned long tbr_tt; /* TBR.TT code (in BRR.EBTT) */ + unsigned int signo; /* Signal that we map this into */ +} brr_to_sig_map[] = { + { BRR_EB, TBR_TT_INSTR_ACC_ERROR, SIGSEGV }, + { BRR_EB, TBR_TT_ILLEGAL_INSTR, SIGILL }, + { BRR_EB, TBR_TT_PRIV_INSTR, SIGILL }, + { BRR_EB, TBR_TT_MP_EXCEPTION, SIGFPE }, + { BRR_EB, TBR_TT_DATA_ACC_ERROR, SIGSEGV }, + { BRR_EB, TBR_TT_DATA_STR_ERROR, SIGSEGV }, + { BRR_EB, TBR_TT_DIVISION_EXCEP, SIGFPE }, + { BRR_EB, TBR_TT_COMPOUND_EXCEP, SIGSEGV }, + { BRR_EB, TBR_TT_INTERRUPT_13, SIGALRM }, /* watchdog */ + { BRR_EB, TBR_TT_INTERRUPT_14, SIGINT }, /* GDB serial */ + { BRR_EB, TBR_TT_INTERRUPT_15, SIGQUIT }, /* NMI */ + { BRR_CB, 0, SIGUSR1 }, + { BRR_TB, 0, SIGUSR2 }, + { BRR_DBNEx, 0, SIGTRAP }, + { BRR_DBx, 0, SIGTRAP }, /* h/w watchpoint */ + { BRR_IBx, 0, SIGTRAP }, /* h/w breakpoint */ + { BRR_CBB, 0, SIGTRAP }, + { BRR_SB, 0, SIGTRAP }, + { BRR_ST, 0, SIGTRAP }, /* single step */ + { 0, 0, SIGHUP } /* default */ +}; + +/*****************************************************************************/ +/* + * convert the FRV BRR register contents into a UNIX signal number + */ +static inline int gdbstub_compute_signal(unsigned long brr) +{ + const struct brr_to_sig_map *map; + unsigned long tbr = (brr & BRR_EBTT) >> 12; + + for (map = brr_to_sig_map; map->brr_mask; map++) + if (map->brr_mask & brr) + if (!map->tbr_tt || map->tbr_tt == tbr) + break; + + return map->signo; +} /* end gdbstub_compute_signal() */ + +/*****************************************************************************/ +/* + * set a software breakpoint or a hardware breakpoint or watchpoint + */ +static int gdbstub_set_breakpoint(unsigned long type, unsigned long addr, unsigned long len) +{ + unsigned long tmp; + int bkpt, loop, xloop; + + union { + struct { + unsigned long mask0, mask1; + }; + uint8_t bytes[8]; + } dbmr; + + //gdbstub_printk("setbkpt(%ld,%08lx,%ld)\n", type, addr, len); + + switch (type) { + /* set software breakpoint */ + case 0: + if (addr & 3 || len > 7*4) + return -EINVAL; + + for (bkpt = 255; bkpt >= 0; bkpt--) + if (!gdbstub_bkpts[bkpt].addr) + break; + if (bkpt < 0) + return -ENOSPC; + + for (loop = 0; loop < len/4; loop++) + if (!gdbstub_read_dword(&((uint32_t *) addr)[loop], + &gdbstub_bkpts[bkpt].originsns[loop])) + return -EFAULT; + + for (loop = 0; loop < len/4; loop++) + if (!gdbstub_write_dword(&((uint32_t *) addr)[loop], + BREAK_INSN) + ) { + /* need to undo the changes if possible */ + for (xloop = 0; xloop < loop; xloop++) + gdbstub_write_dword(&((uint32_t *) addr)[xloop], + gdbstub_bkpts[bkpt].originsns[xloop]); + return -EFAULT; + } + + gdbstub_bkpts[bkpt].addr = addr; + gdbstub_bkpts[bkpt].len = len; + +#if 0 + gdbstub_printk("Set BKPT[%02x]: %08lx #%d {%04x, %04x} -> { %04x, %04x }\n", + bkpt, + gdbstub_bkpts[bkpt].addr, + gdbstub_bkpts[bkpt].len, + gdbstub_bkpts[bkpt].originsns[0], + gdbstub_bkpts[bkpt].originsns[1], + ((uint32_t *) addr)[0], + ((uint32_t *) addr)[1] + ); +#endif + return 0; + + /* set hardware breakpoint */ + case 1: + if (addr & 3 || len != 4) + return -EINVAL; + + if (!(__debug_regs->dcr & DCR_IBE0)) { + //gdbstub_printk("set h/w break 0: %08lx\n", addr); + __debug_regs->dcr |= DCR_IBE0; + asm volatile("movgs %0,ibar0" : : "r"(addr)); + return 0; + } + + if (!(__debug_regs->dcr & DCR_IBE1)) { + //gdbstub_printk("set h/w break 1: %08lx\n", addr); + __debug_regs->dcr |= DCR_IBE1; + asm volatile("movgs %0,ibar1" : : "r"(addr)); + return 0; + } + + if (!(__debug_regs->dcr & DCR_IBE2)) { + //gdbstub_printk("set h/w break 2: %08lx\n", addr); + __debug_regs->dcr |= DCR_IBE2; + asm volatile("movgs %0,ibar2" : : "r"(addr)); + return 0; + } + + if (!(__debug_regs->dcr & DCR_IBE3)) { + //gdbstub_printk("set h/w break 3: %08lx\n", addr); + __debug_regs->dcr |= DCR_IBE3; + asm volatile("movgs %0,ibar3" : : "r"(addr)); + return 0; + } + + return -ENOSPC; + + /* set data read/write/access watchpoint */ + case 2: + case 3: + case 4: + if ((addr & ~7) != ((addr + len - 1) & ~7)) + return -EINVAL; + + tmp = addr & 7; + + memset(dbmr.bytes, 0xff, sizeof(dbmr.bytes)); + for (loop = 0; loop < len; loop++) + dbmr.bytes[tmp + loop] = 0; + + addr &= ~7; + + if (!(__debug_regs->dcr & (DCR_DRBE0|DCR_DWBE0))) { + //gdbstub_printk("set h/w watchpoint 0 type %ld: %08lx\n", type, addr); + tmp = type==2 ? DCR_DWBE0 : type==3 ? DCR_DRBE0 : DCR_DRBE0|DCR_DWBE0; + __debug_regs->dcr |= tmp; + asm volatile(" movgs %0,dbar0 \n" + " movgs %1,dbmr00 \n" + " movgs %2,dbmr01 \n" + " movgs gr0,dbdr00 \n" + " movgs gr0,dbdr01 \n" + : : "r"(addr), "r"(dbmr.mask0), "r"(dbmr.mask1)); + return 0; + } + + if (!(__debug_regs->dcr & (DCR_DRBE1|DCR_DWBE1))) { + //gdbstub_printk("set h/w watchpoint 1 type %ld: %08lx\n", type, addr); + tmp = type==2 ? DCR_DWBE1 : type==3 ? DCR_DRBE1 : DCR_DRBE1|DCR_DWBE1; + __debug_regs->dcr |= tmp; + asm volatile(" movgs %0,dbar1 \n" + " movgs %1,dbmr10 \n" + " movgs %2,dbmr11 \n" + " movgs gr0,dbdr10 \n" + " movgs gr0,dbdr11 \n" + : : "r"(addr), "r"(dbmr.mask0), "r"(dbmr.mask1)); + return 0; + } + + return -ENOSPC; + + default: + return -EINVAL; + } + +} /* end gdbstub_set_breakpoint() */ + +/*****************************************************************************/ +/* + * clear a breakpoint or watchpoint + */ +int gdbstub_clear_breakpoint(unsigned long type, unsigned long addr, unsigned long len) +{ + unsigned long tmp; + int bkpt, loop; + + union { + struct { + unsigned long mask0, mask1; + }; + uint8_t bytes[8]; + } dbmr; + + //gdbstub_printk("clearbkpt(%ld,%08lx,%ld)\n", type, addr, len); + + switch (type) { + /* clear software breakpoint */ + case 0: + for (bkpt = 255; bkpt >= 0; bkpt--) + if (gdbstub_bkpts[bkpt].addr == addr && gdbstub_bkpts[bkpt].len == len) + break; + if (bkpt < 0) + return -ENOENT; + + gdbstub_bkpts[bkpt].addr = 0; + + for (loop = 0; loop < len/4; loop++) + if (!gdbstub_write_dword(&((uint32_t *) addr)[loop], + gdbstub_bkpts[bkpt].originsns[loop])) + return -EFAULT; + return 0; + + /* clear hardware breakpoint */ + case 1: + if (addr & 3 || len != 4) + return -EINVAL; + +#define __get_ibar(X) ({ unsigned long x; asm volatile("movsg ibar"#X",%0" : "=r"(x)); x; }) + + if (__debug_regs->dcr & DCR_IBE0 && __get_ibar(0) == addr) { + //gdbstub_printk("clear h/w break 0: %08lx\n", addr); + __debug_regs->dcr &= ~DCR_IBE0; + asm volatile("movgs gr0,ibar0"); + return 0; + } + + if (__debug_regs->dcr & DCR_IBE1 && __get_ibar(1) == addr) { + //gdbstub_printk("clear h/w break 1: %08lx\n", addr); + __debug_regs->dcr &= ~DCR_IBE1; + asm volatile("movgs gr0,ibar1"); + return 0; + } + + if (__debug_regs->dcr & DCR_IBE2 && __get_ibar(2) == addr) { + //gdbstub_printk("clear h/w break 2: %08lx\n", addr); + __debug_regs->dcr &= ~DCR_IBE2; + asm volatile("movgs gr0,ibar2"); + return 0; + } + + if (__debug_regs->dcr & DCR_IBE3 && __get_ibar(3) == addr) { + //gdbstub_printk("clear h/w break 3: %08lx\n", addr); + __debug_regs->dcr &= ~DCR_IBE3; + asm volatile("movgs gr0,ibar3"); + return 0; + } + + return -EINVAL; + + /* clear data read/write/access watchpoint */ + case 2: + case 3: + case 4: + if ((addr & ~7) != ((addr + len - 1) & ~7)) + return -EINVAL; + + tmp = addr & 7; + + memset(dbmr.bytes, 0xff, sizeof(dbmr.bytes)); + for (loop = 0; loop < len; loop++) + dbmr.bytes[tmp + loop] = 0; + + addr &= ~7; + +#define __get_dbar(X) ({ unsigned long x; asm volatile("movsg dbar"#X",%0" : "=r"(x)); x; }) +#define __get_dbmr0(X) ({ unsigned long x; asm volatile("movsg dbmr"#X"0,%0" : "=r"(x)); x; }) +#define __get_dbmr1(X) ({ unsigned long x; asm volatile("movsg dbmr"#X"1,%0" : "=r"(x)); x; }) + + /* consider DBAR 0 */ + tmp = type==2 ? DCR_DWBE0 : type==3 ? DCR_DRBE0 : DCR_DRBE0|DCR_DWBE0; + + if ((__debug_regs->dcr & (DCR_DRBE0|DCR_DWBE0)) != tmp || + __get_dbar(0) != addr || + __get_dbmr0(0) != dbmr.mask0 || + __get_dbmr1(0) != dbmr.mask1) + goto skip_dbar0; + + //gdbstub_printk("clear h/w watchpoint 0 type %ld: %08lx\n", type, addr); + __debug_regs->dcr &= ~(DCR_DRBE0|DCR_DWBE0); + asm volatile(" movgs gr0,dbar0 \n" + " movgs gr0,dbmr00 \n" + " movgs gr0,dbmr01 \n" + " movgs gr0,dbdr00 \n" + " movgs gr0,dbdr01 \n"); + return 0; + + skip_dbar0: + /* consider DBAR 0 */ + tmp = type==2 ? DCR_DWBE1 : type==3 ? DCR_DRBE1 : DCR_DRBE1|DCR_DWBE1; + + if ((__debug_regs->dcr & (DCR_DRBE1|DCR_DWBE1)) != tmp || + __get_dbar(1) != addr || + __get_dbmr0(1) != dbmr.mask0 || + __get_dbmr1(1) != dbmr.mask1) + goto skip_dbar1; + + //gdbstub_printk("clear h/w watchpoint 1 type %ld: %08lx\n", type, addr); + __debug_regs->dcr &= ~(DCR_DRBE1|DCR_DWBE1); + asm volatile(" movgs gr0,dbar1 \n" + " movgs gr0,dbmr10 \n" + " movgs gr0,dbmr11 \n" + " movgs gr0,dbdr10 \n" + " movgs gr0,dbdr11 \n"); + return 0; + + skip_dbar1: + return -ENOSPC; + + default: + return -EINVAL; + } +} /* end gdbstub_clear_breakpoint() */ + +/*****************************************************************************/ +/* + * check a for an internal software breakpoint, and wind the PC back if necessary + */ +static void gdbstub_check_breakpoint(void) +{ + unsigned long addr = __debug_frame->pc - 4; + int bkpt; + + for (bkpt = 255; bkpt >= 0; bkpt--) + if (gdbstub_bkpts[bkpt].addr == addr) + break; + if (bkpt >= 0) + __debug_frame->pc = addr; + + //gdbstub_printk("alter pc [%d] %08lx\n", bkpt, __debug_frame->pc); + +} /* end gdbstub_check_breakpoint() */ + +/*****************************************************************************/ +/* + * + */ +static void __attribute__((unused)) gdbstub_show_regs(void) +{ + uint32_t *reg; + int loop; + + gdbstub_printk("\n"); + + gdbstub_printk("Frame: @%p [%s]\n", + __debug_frame, + __debug_frame->psr & PSR_S ? "kernel" : "user"); + + reg = (uint32_t *) __debug_frame; + for (loop = 0; loop < REG__END; loop++) { + printk("%s %08x", regnames[loop + 0], reg[loop + 0]); + + if (loop == REG__END - 1 || loop % 5 == 4) + printk("\n"); + else + printk(" | "); + } + + gdbstub_printk("Process %s (pid: %d)\n", current->comm, current->pid); +} /* end gdbstub_show_regs() */ + +/*****************************************************************************/ +/* + * dump debugging regs + */ +static void __attribute__((unused)) gdbstub_dump_debugregs(void) +{ + unsigned long x; + + x = __debug_regs->dcr; + gdbstub_printk("DCR %08lx ", x); + + x = __debug_regs->brr; + gdbstub_printk("BRR %08lx\n", x); + + gdbstub_printk("IBAR0 %08lx ", __get_ibar(0)); + gdbstub_printk("IBAR1 %08lx ", __get_ibar(1)); + gdbstub_printk("IBAR2 %08lx ", __get_ibar(2)); + gdbstub_printk("IBAR3 %08lx\n", __get_ibar(3)); + + gdbstub_printk("DBAR0 %08lx ", __get_dbar(0)); + gdbstub_printk("DBMR00 %08lx ", __get_dbmr0(0)); + gdbstub_printk("DBMR01 %08lx\n", __get_dbmr1(0)); + + gdbstub_printk("DBAR1 %08lx ", __get_dbar(1)); + gdbstub_printk("DBMR10 %08lx ", __get_dbmr0(1)); + gdbstub_printk("DBMR11 %08lx\n", __get_dbmr1(1)); + + gdbstub_printk("\n"); +} /* end gdbstub_dump_debugregs() */ + +/*****************************************************************************/ +/* + * dump the MMU state into a structure so that it can be accessed with GDB + */ +void gdbstub_get_mmu_state(void) +{ + asm volatile("movsg hsr0,%0" : "=r"(__debug_mmu.regs.hsr0)); + asm volatile("movsg pcsr,%0" : "=r"(__debug_mmu.regs.pcsr)); + asm volatile("movsg esr0,%0" : "=r"(__debug_mmu.regs.esr0)); + asm volatile("movsg ear0,%0" : "=r"(__debug_mmu.regs.ear0)); + asm volatile("movsg epcr0,%0" : "=r"(__debug_mmu.regs.epcr0)); + + /* read the protection / SAT registers */ + __debug_mmu.iamr[0].L = __get_IAMLR(0); + __debug_mmu.iamr[0].P = __get_IAMPR(0); + __debug_mmu.iamr[1].L = __get_IAMLR(1); + __debug_mmu.iamr[1].P = __get_IAMPR(1); + __debug_mmu.iamr[2].L = __get_IAMLR(2); + __debug_mmu.iamr[2].P = __get_IAMPR(2); + __debug_mmu.iamr[3].L = __get_IAMLR(3); + __debug_mmu.iamr[3].P = __get_IAMPR(3); + __debug_mmu.iamr[4].L = __get_IAMLR(4); + __debug_mmu.iamr[4].P = __get_IAMPR(4); + __debug_mmu.iamr[5].L = __get_IAMLR(5); + __debug_mmu.iamr[5].P = __get_IAMPR(5); + __debug_mmu.iamr[6].L = __get_IAMLR(6); + __debug_mmu.iamr[6].P = __get_IAMPR(6); + __debug_mmu.iamr[7].L = __get_IAMLR(7); + __debug_mmu.iamr[7].P = __get_IAMPR(7); + __debug_mmu.iamr[8].L = __get_IAMLR(8); + __debug_mmu.iamr[8].P = __get_IAMPR(8); + __debug_mmu.iamr[9].L = __get_IAMLR(9); + __debug_mmu.iamr[9].P = __get_IAMPR(9); + __debug_mmu.iamr[10].L = __get_IAMLR(10); + __debug_mmu.iamr[10].P = __get_IAMPR(10); + __debug_mmu.iamr[11].L = __get_IAMLR(11); + __debug_mmu.iamr[11].P = __get_IAMPR(11); + __debug_mmu.iamr[12].L = __get_IAMLR(12); + __debug_mmu.iamr[12].P = __get_IAMPR(12); + __debug_mmu.iamr[13].L = __get_IAMLR(13); + __debug_mmu.iamr[13].P = __get_IAMPR(13); + __debug_mmu.iamr[14].L = __get_IAMLR(14); + __debug_mmu.iamr[14].P = __get_IAMPR(14); + __debug_mmu.iamr[15].L = __get_IAMLR(15); + __debug_mmu.iamr[15].P = __get_IAMPR(15); + + __debug_mmu.damr[0].L = __get_DAMLR(0); + __debug_mmu.damr[0].P = __get_DAMPR(0); + __debug_mmu.damr[1].L = __get_DAMLR(1); + __debug_mmu.damr[1].P = __get_DAMPR(1); + __debug_mmu.damr[2].L = __get_DAMLR(2); + __debug_mmu.damr[2].P = __get_DAMPR(2); + __debug_mmu.damr[3].L = __get_DAMLR(3); + __debug_mmu.damr[3].P = __get_DAMPR(3); + __debug_mmu.damr[4].L = __get_DAMLR(4); + __debug_mmu.damr[4].P = __get_DAMPR(4); + __debug_mmu.damr[5].L = __get_DAMLR(5); + __debug_mmu.damr[5].P = __get_DAMPR(5); + __debug_mmu.damr[6].L = __get_DAMLR(6); + __debug_mmu.damr[6].P = __get_DAMPR(6); + __debug_mmu.damr[7].L = __get_DAMLR(7); + __debug_mmu.damr[7].P = __get_DAMPR(7); + __debug_mmu.damr[8].L = __get_DAMLR(8); + __debug_mmu.damr[8].P = __get_DAMPR(8); + __debug_mmu.damr[9].L = __get_DAMLR(9); + __debug_mmu.damr[9].P = __get_DAMPR(9); + __debug_mmu.damr[10].L = __get_DAMLR(10); + __debug_mmu.damr[10].P = __get_DAMPR(10); + __debug_mmu.damr[11].L = __get_DAMLR(11); + __debug_mmu.damr[11].P = __get_DAMPR(11); + __debug_mmu.damr[12].L = __get_DAMLR(12); + __debug_mmu.damr[12].P = __get_DAMPR(12); + __debug_mmu.damr[13].L = __get_DAMLR(13); + __debug_mmu.damr[13].P = __get_DAMPR(13); + __debug_mmu.damr[14].L = __get_DAMLR(14); + __debug_mmu.damr[14].P = __get_DAMPR(14); + __debug_mmu.damr[15].L = __get_DAMLR(15); + __debug_mmu.damr[15].P = __get_DAMPR(15); + +#ifdef CONFIG_MMU + do { + /* read the DAT entries from the TLB */ + struct __debug_amr *p; + int loop; + + asm volatile("movsg tplr,%0" : "=r"(__debug_mmu.regs.tplr)); + asm volatile("movsg tppr,%0" : "=r"(__debug_mmu.regs.tppr)); + asm volatile("movsg tpxr,%0" : "=r"(__debug_mmu.regs.tpxr)); + asm volatile("movsg cxnr,%0" : "=r"(__debug_mmu.regs.cxnr)); + + p = __debug_mmu.tlb; + + /* way 0 */ + asm volatile("movgs %0,tpxr" :: "r"(0 << TPXR_WAY_SHIFT)); + for (loop = 0; loop < 64; loop++) { + asm volatile("tlbpr %0,gr0,#1,#0" :: "r"(loop << PAGE_SHIFT)); + asm volatile("movsg tplr,%0" : "=r"(p->L)); + asm volatile("movsg tppr,%0" : "=r"(p->P)); + p++; + } + + /* way 1 */ + asm volatile("movgs %0,tpxr" :: "r"(1 << TPXR_WAY_SHIFT)); + for (loop = 0; loop < 64; loop++) { + asm volatile("tlbpr %0,gr0,#1,#0" :: "r"(loop << PAGE_SHIFT)); + asm volatile("movsg tplr,%0" : "=r"(p->L)); + asm volatile("movsg tppr,%0" : "=r"(p->P)); + p++; + } + + asm volatile("movgs %0,tplr" :: "r"(__debug_mmu.regs.tplr)); + asm volatile("movgs %0,tppr" :: "r"(__debug_mmu.regs.tppr)); + asm volatile("movgs %0,tpxr" :: "r"(__debug_mmu.regs.tpxr)); + } while(0); +#endif + +} /* end gdbstub_get_mmu_state() */ + +/*****************************************************************************/ +/* + * handle event interception and GDB remote protocol processing + * - on entry: + * PSR.ET==0, PSR.S==1 and the CPU is in debug mode + * __debug_frame points to the saved registers + * __frame points to the kernel mode exception frame, if it was in kernel + * mode when the break happened + */ +void gdbstub(int sigval) +{ + unsigned long addr, length, loop, dbar, temp, temp2, temp3; + uint32_t zero; + char *ptr; + int flush_cache = 0; + + LEDS(0x5000); + + if (sigval < 0) { +#ifndef CONFIG_GDBSTUB_IMMEDIATE + /* return immediately if GDB immediate activation option not set */ + return; +#else + sigval = SIGINT; +#endif + } + + save_user_regs(&__break_user_context); + +#if 0 + gdbstub_printk("--> gdbstub() %08x %p %08x %08x\n", + __debug_frame->pc, + __debug_frame, + __debug_regs->brr, + __debug_regs->bpsr); +// gdbstub_show_regs(); +#endif + + LEDS(0x5001); + + /* if we were interrupted by input on the serial gdbstub serial port, + * restore the context prior to the interrupt so that we return to that + * directly + */ + temp = (unsigned long) __entry_kerneltrap_table; + temp2 = (unsigned long) __entry_usertrap_table; + temp3 = __debug_frame->pc & ~15; + + if (temp3 == temp + TBR_TT_INTERRUPT_15 || + temp3 == temp2 + TBR_TT_INTERRUPT_15 + ) { + asm volatile("movsg pcsr,%0" : "=r"(__debug_frame->pc)); + __debug_frame->psr |= PSR_ET; + __debug_frame->psr &= ~PSR_S; + if (__debug_frame->psr & PSR_PS) + __debug_frame->psr |= PSR_S; + __debug_regs->brr = (__debug_frame->tbr & TBR_TT) << 12; + __debug_regs->brr |= BRR_EB; + sigval = SIGINT; + } + + /* handle the decrement timer going off (FR451 only) */ + if (temp3 == temp + TBR_TT_DECREMENT_TIMER || + temp3 == temp2 + TBR_TT_DECREMENT_TIMER + ) { + asm volatile("movgs %0,timerd" :: "r"(10000000)); + asm volatile("movsg pcsr,%0" : "=r"(__debug_frame->pc)); + __debug_frame->psr |= PSR_ET; + __debug_frame->psr &= ~PSR_S; + if (__debug_frame->psr & PSR_PS) + __debug_frame->psr |= PSR_S; + __debug_regs->brr = (__debug_frame->tbr & TBR_TT) << 12; + __debug_regs->brr |= BRR_EB; + sigval = SIGXCPU;; + } + + LEDS(0x5002); + + /* after a BREAK insn, the PC lands on the far side of it */ + if (__debug_regs->brr & BRR_SB) + gdbstub_check_breakpoint(); + + LEDS(0x5003); + + /* handle attempts to write console data via GDB "O" commands */ + if (__debug_frame->pc == (unsigned long) gdbstub_console_write + 4) { + __gdbstub_console_write((struct console *) __debug_frame->gr8, + (const char *) __debug_frame->gr9, + (unsigned) __debug_frame->gr10); + goto done; + } + + if (gdbstub_rx_unget) { + sigval = SIGINT; + goto packet_waiting; + } + + if (!sigval) + sigval = gdbstub_compute_signal(__debug_regs->brr); + + LEDS(0x5004); + + /* send a message to the debugger's user saying what happened if it may + * not be clear cut (we can't map exceptions onto signals properly) + */ + if (sigval != SIGINT && sigval != SIGTRAP && sigval != SIGILL) { + static const char title[] = "Break "; + static const char crlf[] = "\r\n"; + unsigned long brr = __debug_regs->brr; + char hx; + + ptr = output_buffer; + *ptr++ = 'O'; + ptr = mem2hex(title, ptr, sizeof(title) - 1,0); + + hx = hexchars[(brr & 0xf0000000) >> 28]; + *ptr++ = hexchars[hx >> 4]; *ptr++ = hexchars[hx & 0xf]; + hx = hexchars[(brr & 0x0f000000) >> 24]; + *ptr++ = hexchars[hx >> 4]; *ptr++ = hexchars[hx & 0xf]; + hx = hexchars[(brr & 0x00f00000) >> 20]; + *ptr++ = hexchars[hx >> 4]; *ptr++ = hexchars[hx & 0xf]; + hx = hexchars[(brr & 0x000f0000) >> 16]; + *ptr++ = hexchars[hx >> 4]; *ptr++ = hexchars[hx & 0xf]; + hx = hexchars[(brr & 0x0000f000) >> 12]; + *ptr++ = hexchars[hx >> 4]; *ptr++ = hexchars[hx & 0xf]; + hx = hexchars[(brr & 0x00000f00) >> 8]; + *ptr++ = hexchars[hx >> 4]; *ptr++ = hexchars[hx & 0xf]; + hx = hexchars[(brr & 0x000000f0) >> 4]; + *ptr++ = hexchars[hx >> 4]; *ptr++ = hexchars[hx & 0xf]; + hx = hexchars[(brr & 0x0000000f)]; + *ptr++ = hexchars[hx >> 4]; *ptr++ = hexchars[hx & 0xf]; + + ptr = mem2hex(crlf, ptr, sizeof(crlf) - 1, 0); + *ptr = 0; + gdbstub_send_packet(output_buffer); /* send it off... */ + } + + LEDS(0x5005); + + /* tell the debugger that an exception has occurred */ + ptr = output_buffer; + + /* Send trap type (converted to signal) */ + *ptr++ = 'T'; + *ptr++ = hexchars[sigval >> 4]; + *ptr++ = hexchars[sigval & 0xf]; + + /* Send Error PC */ + *ptr++ = hexchars[GDB_REG_PC >> 4]; + *ptr++ = hexchars[GDB_REG_PC & 0xf]; + *ptr++ = ':'; + ptr = mem2hex(&__debug_frame->pc, ptr, 4, 0); + *ptr++ = ';'; + + /* + * Send frame pointer + */ + *ptr++ = hexchars[GDB_REG_FP >> 4]; + *ptr++ = hexchars[GDB_REG_FP & 0xf]; + *ptr++ = ':'; + ptr = mem2hex(&__debug_frame->fp, ptr, 4, 0); + *ptr++ = ';'; + + /* + * Send stack pointer + */ + *ptr++ = hexchars[GDB_REG_SP >> 4]; + *ptr++ = hexchars[GDB_REG_SP & 0xf]; + *ptr++ = ':'; + ptr = mem2hex(&__debug_frame->sp, ptr, 4, 0); + *ptr++ = ';'; + + *ptr++ = 0; + gdbstub_send_packet(output_buffer); /* send it off... */ + + LEDS(0x5006); + + packet_waiting: + gdbstub_get_mmu_state(); + + /* wait for input from remote GDB */ + while (1) { + output_buffer[0] = 0; + + LEDS(0x5007); + gdbstub_recv_packet(input_buffer); + LEDS(0x5600 | input_buffer[0]); + + switch (input_buffer[0]) { + /* request repeat of last signal number */ + case '?': + output_buffer[0] = 'S'; + output_buffer[1] = hexchars[sigval >> 4]; + output_buffer[2] = hexchars[sigval & 0xf]; + output_buffer[3] = 0; + break; + + case 'd': + /* toggle debug flag */ + break; + + /* return the value of the CPU registers + * - GR0, GR1, GR2, GR3, GR4, GR5, GR6, GR7, + * - GR8, GR9, GR10, GR11, GR12, GR13, GR14, GR15, + * - GR16, GR17, GR18, GR19, GR20, GR21, GR22, GR23, + * - GR24, GR25, GR26, GR27, GR28, GR29, GR30, GR31, + * - GR32, GR33, GR34, GR35, GR36, GR37, GR38, GR39, + * - GR40, GR41, GR42, GR43, GR44, GR45, GR46, GR47, + * - GR48, GR49, GR50, GR51, GR52, GR53, GR54, GR55, + * - GR56, GR57, GR58, GR59, GR60, GR61, GR62, GR63, + * - FP0, FP1, FP2, FP3, FP4, FP5, FP6, FP7, + * - FP8, FP9, FP10, FP11, FP12, FP13, FP14, FP15, + * - FP16, FP17, FP18, FP19, FP20, FP21, FP22, FP23, + * - FP24, FP25, FP26, FP27, FP28, FP29, FP30, FP31, + * - FP32, FP33, FP34, FP35, FP36, FP37, FP38, FP39, + * - FP40, FP41, FP42, FP43, FP44, FP45, FP46, FP47, + * - FP48, FP49, FP50, FP51, FP52, FP53, FP54, FP55, + * - FP56, FP57, FP58, FP59, FP60, FP61, FP62, FP63, + * - PC, PSR, CCR, CCCR, + * - _X132, _X133, _X134 + * - TBR, BRR, DBAR0, DBAR1, DBAR2, DBAR3, + * - _X141, _X142, _X143, _X144, + * - LR, LCR + */ + case 'g': + zero = 0; + ptr = output_buffer; + + /* deal with GR0, GR1-GR27, GR28-GR31, GR32-GR63 */ + ptr = mem2hex(&zero, ptr, 4, 0); + + for (loop = 1; loop <= 27; loop++) + ptr = mem2hex((unsigned long *)__debug_frame + REG_GR(loop), + ptr, 4, 0); + temp = (unsigned long) __frame; + ptr = mem2hex(&temp, ptr, 4, 0); + ptr = mem2hex((unsigned long *)__debug_frame + REG_GR(29), ptr, 4, 0); + ptr = mem2hex((unsigned long *)__debug_frame + REG_GR(30), ptr, 4, 0); +#ifdef CONFIG_MMU + ptr = mem2hex((unsigned long *)__debug_frame + REG_GR(31), ptr, 4, 0); +#else + temp = (unsigned long) __debug_frame; + ptr = mem2hex(&temp, ptr, 4, 0); +#endif + + for (loop = 32; loop <= 63; loop++) + ptr = mem2hex((unsigned long *)__debug_frame + REG_GR(loop), + ptr, 4, 0); + + /* deal with FR0-FR63 */ + for (loop = 0; loop <= 63; loop++) + ptr = mem2hex((unsigned long *)&__break_user_context + + __FPMEDIA_FR(loop), + ptr, 4, 0); + + /* deal with special registers */ + ptr = mem2hex(&__debug_frame->pc, ptr, 4, 0); + ptr = mem2hex(&__debug_frame->psr, ptr, 4, 0); + ptr = mem2hex(&__debug_frame->ccr, ptr, 4, 0); + ptr = mem2hex(&__debug_frame->cccr, ptr, 4, 0); + ptr = mem2hex(&zero, ptr, 4, 0); + ptr = mem2hex(&zero, ptr, 4, 0); + ptr = mem2hex(&zero, ptr, 4, 0); + ptr = mem2hex(&__debug_frame->tbr, ptr, 4, 0); + ptr = mem2hex(&__debug_regs->brr , ptr, 4, 0); + + asm volatile("movsg dbar0,%0" : "=r"(dbar)); + ptr = mem2hex(&dbar, ptr, 4, 0); + asm volatile("movsg dbar1,%0" : "=r"(dbar)); + ptr = mem2hex(&dbar, ptr, 4, 0); + asm volatile("movsg dbar2,%0" : "=r"(dbar)); + ptr = mem2hex(&dbar, ptr, 4, 0); + asm volatile("movsg dbar3,%0" : "=r"(dbar)); + ptr = mem2hex(&dbar, ptr, 4, 0); + + asm volatile("movsg scr0,%0" : "=r"(dbar)); + ptr = mem2hex(&dbar, ptr, 4, 0); + asm volatile("movsg scr1,%0" : "=r"(dbar)); + ptr = mem2hex(&dbar, ptr, 4, 0); + asm volatile("movsg scr2,%0" : "=r"(dbar)); + ptr = mem2hex(&dbar, ptr, 4, 0); + asm volatile("movsg scr3,%0" : "=r"(dbar)); + ptr = mem2hex(&dbar, ptr, 4, 0); + + ptr = mem2hex(&__debug_frame->lr, ptr, 4, 0); + ptr = mem2hex(&__debug_frame->lcr, ptr, 4, 0); + + ptr = mem2hex(&__debug_frame->iacc0, ptr, 8, 0); + + ptr = mem2hex(&__break_user_context.f.fsr[0], ptr, 4, 0); + + for (loop = 0; loop <= 7; loop++) + ptr = mem2hex(&__break_user_context.f.acc[loop], ptr, 4, 0); + + ptr = mem2hex(&__break_user_context.f.accg, ptr, 8, 0); + + for (loop = 0; loop <= 1; loop++) + ptr = mem2hex(&__break_user_context.f.msr[loop], ptr, 4, 0); + + ptr = mem2hex(&__debug_frame->gner0, ptr, 4, 0); + ptr = mem2hex(&__debug_frame->gner1, ptr, 4, 0); + + ptr = mem2hex(&__break_user_context.f.fner[0], ptr, 4, 0); + ptr = mem2hex(&__break_user_context.f.fner[1], ptr, 4, 0); + + break; + + /* set the values of the CPU registers */ + case 'G': + ptr = &input_buffer[1]; + + /* deal with GR0, GR1-GR27, GR28-GR31, GR32-GR63 */ + ptr = hex2mem(ptr, &temp, 4); + + for (loop = 1; loop <= 27; loop++) + ptr = hex2mem(ptr, (unsigned long *)__debug_frame + REG_GR(loop), + 4); + + ptr = hex2mem(ptr, &temp, 4); + __frame = (struct pt_regs *) temp; + ptr = hex2mem(ptr, &__debug_frame->gr29, 4); + ptr = hex2mem(ptr, &__debug_frame->gr30, 4); +#ifdef CONFIG_MMU + ptr = hex2mem(ptr, &__debug_frame->gr31, 4); +#else + ptr = hex2mem(ptr, &temp, 4); +#endif + + for (loop = 32; loop <= 63; loop++) + ptr = hex2mem(ptr, (unsigned long *)__debug_frame + REG_GR(loop), + 4); + + /* deal with FR0-FR63 */ + for (loop = 0; loop <= 63; loop++) + ptr = mem2hex((unsigned long *)&__break_user_context + + __FPMEDIA_FR(loop), + ptr, 4, 0); + + /* deal with special registers */ + ptr = hex2mem(ptr, &__debug_frame->pc, 4); + ptr = hex2mem(ptr, &__debug_frame->psr, 4); + ptr = hex2mem(ptr, &__debug_frame->ccr, 4); + ptr = hex2mem(ptr, &__debug_frame->cccr,4); + + for (loop = 132; loop <= 140; loop++) + ptr = hex2mem(ptr, &temp, 4); + + ptr = hex2mem(ptr, &temp, 4); + asm volatile("movgs %0,scr0" :: "r"(temp)); + ptr = hex2mem(ptr, &temp, 4); + asm volatile("movgs %0,scr1" :: "r"(temp)); + ptr = hex2mem(ptr, &temp, 4); + asm volatile("movgs %0,scr2" :: "r"(temp)); + ptr = hex2mem(ptr, &temp, 4); + asm volatile("movgs %0,scr3" :: "r"(temp)); + + ptr = hex2mem(ptr, &__debug_frame->lr, 4); + ptr = hex2mem(ptr, &__debug_frame->lcr, 4); + + ptr = hex2mem(ptr, &__debug_frame->iacc0, 8); + + ptr = hex2mem(ptr, &__break_user_context.f.fsr[0], 4); + + for (loop = 0; loop <= 7; loop++) + ptr = hex2mem(ptr, &__break_user_context.f.acc[loop], 4); + + ptr = hex2mem(ptr, &__break_user_context.f.accg, 8); + + for (loop = 0; loop <= 1; loop++) + ptr = hex2mem(ptr, &__break_user_context.f.msr[loop], 4); + + ptr = hex2mem(ptr, &__debug_frame->gner0, 4); + ptr = hex2mem(ptr, &__debug_frame->gner1, 4); + + ptr = hex2mem(ptr, &__break_user_context.f.fner[0], 4); + ptr = hex2mem(ptr, &__break_user_context.f.fner[1], 4); + + gdbstub_strcpy(output_buffer,"OK"); + break; + + /* mAA..AA,LLLL Read LLLL bytes at address AA..AA */ + case 'm': + ptr = &input_buffer[1]; + + if (hexToInt(&ptr, &addr) && + *ptr++ == ',' && + hexToInt(&ptr, &length) + ) { + if (mem2hex((char *)addr, output_buffer, length, 1)) + break; + gdbstub_strcpy (output_buffer, "E03"); + } + else { + gdbstub_strcpy(output_buffer,"E01"); + } + break; + + /* MAA..AA,LLLL: Write LLLL bytes at address AA.AA return OK */ + case 'M': + ptr = &input_buffer[1]; + + if (hexToInt(&ptr, &addr) && + *ptr++ == ',' && + hexToInt(&ptr, &length) && + *ptr++ == ':' + ) { + if (hex2mem(ptr, (char *)addr, length)) { + gdbstub_strcpy(output_buffer, "OK"); + } + else { + gdbstub_strcpy(output_buffer, "E03"); + } + } + else + gdbstub_strcpy(output_buffer, "E02"); + + flush_cache = 1; + break; + + /* PNN,=RRRRRRRR: Write value R to reg N return OK */ + case 'P': + ptr = &input_buffer[1]; + + if (!hexToInt(&ptr, &addr) || + *ptr++ != '=' || + !hexToInt(&ptr, &temp) + ) { + gdbstub_strcpy(output_buffer, "E01"); + break; + } + + temp2 = 1; + switch (addr) { + case GDB_REG_GR(0): + break; + case GDB_REG_GR(1) ... GDB_REG_GR(63): + __break_user_context.i.gr[addr - GDB_REG_GR(0)] = temp; + break; + case GDB_REG_FR(0) ... GDB_REG_FR(63): + __break_user_context.f.fr[addr - GDB_REG_FR(0)] = temp; + break; + case GDB_REG_PC: + __break_user_context.i.pc = temp; + break; + case GDB_REG_PSR: + __break_user_context.i.psr = temp; + break; + case GDB_REG_CCR: + __break_user_context.i.ccr = temp; + break; + case GDB_REG_CCCR: + __break_user_context.i.cccr = temp; + break; + case GDB_REG_BRR: + __debug_regs->brr = temp; + break; + case GDB_REG_LR: + __break_user_context.i.lr = temp; + break; + case GDB_REG_LCR: + __break_user_context.i.lcr = temp; + break; + case GDB_REG_FSR0: + __break_user_context.f.fsr[0] = temp; + break; + case GDB_REG_ACC(0) ... GDB_REG_ACC(7): + __break_user_context.f.acc[addr - GDB_REG_ACC(0)] = temp; + break; + case GDB_REG_ACCG(0): + *(uint32_t *) &__break_user_context.f.accg[0] = temp; + break; + case GDB_REG_ACCG(4): + *(uint32_t *) &__break_user_context.f.accg[4] = temp; + break; + case GDB_REG_MSR(0) ... GDB_REG_MSR(1): + __break_user_context.f.msr[addr - GDB_REG_MSR(0)] = temp; + break; + case GDB_REG_GNER(0) ... GDB_REG_GNER(1): + __break_user_context.i.gner[addr - GDB_REG_GNER(0)] = temp; + break; + case GDB_REG_FNER(0) ... GDB_REG_FNER(1): + __break_user_context.f.fner[addr - GDB_REG_FNER(0)] = temp; + break; + default: + temp2 = 0; + break; + } + + if (temp2) { + gdbstub_strcpy(output_buffer, "OK"); + } + else { + gdbstub_strcpy(output_buffer, "E02"); + } + break; + + /* cAA..AA Continue at address AA..AA(optional) */ + case 'c': + /* try to read optional parameter, pc unchanged if no parm */ + ptr = &input_buffer[1]; + if (hexToInt(&ptr, &addr)) + __debug_frame->pc = addr; + goto done; + + /* kill the program */ + case 'k' : + goto done; /* just continue */ + + + /* reset the whole machine (FIXME: system dependent) */ + case 'r': + break; + + + /* step to next instruction */ + case 's': + __debug_regs->dcr |= DCR_SE; + goto done; + + /* set baud rate (bBB) */ + case 'b': + ptr = &input_buffer[1]; + if (!hexToInt(&ptr, &temp)) { + gdbstub_strcpy(output_buffer,"B01"); + break; + } + + if (temp) { + /* ack before changing speed */ + gdbstub_send_packet("OK"); + gdbstub_set_baud(temp); + } + break; + + /* set breakpoint */ + case 'Z': + ptr = &input_buffer[1]; + + if (!hexToInt(&ptr,&temp) || *ptr++ != ',' || + !hexToInt(&ptr,&addr) || *ptr++ != ',' || + !hexToInt(&ptr,&length) + ) { + gdbstub_strcpy(output_buffer,"E01"); + break; + } + + if (temp >= 5) { + gdbstub_strcpy(output_buffer,"E03"); + break; + } + + if (gdbstub_set_breakpoint(temp, addr, length) < 0) { + gdbstub_strcpy(output_buffer,"E03"); + break; + } + + if (temp == 0) + flush_cache = 1; /* soft bkpt by modified memory */ + + gdbstub_strcpy(output_buffer,"OK"); + break; + + /* clear breakpoint */ + case 'z': + ptr = &input_buffer[1]; + + if (!hexToInt(&ptr,&temp) || *ptr++ != ',' || + !hexToInt(&ptr,&addr) || *ptr++ != ',' || + !hexToInt(&ptr,&length) + ) { + gdbstub_strcpy(output_buffer,"E01"); + break; + } + + if (temp >= 5) { + gdbstub_strcpy(output_buffer,"E03"); + break; + } + + if (gdbstub_clear_breakpoint(temp, addr, length) < 0) { + gdbstub_strcpy(output_buffer,"E03"); + break; + } + + if (temp == 0) + flush_cache = 1; /* soft bkpt by modified memory */ + + gdbstub_strcpy(output_buffer,"OK"); + break; + + default: + gdbstub_proto("### GDB Unsupported Cmd '%s'\n",input_buffer); + break; + } + + /* reply to the request */ + LEDS(0x5009); + gdbstub_send_packet(output_buffer); + } + + done: + restore_user_regs(&__break_user_context); + + //gdbstub_dump_debugregs(); + //gdbstub_printk("<-- gdbstub() %08x\n", __debug_frame->pc); + + /* need to flush the instruction cache before resuming, as we may have + * deposited a breakpoint, and the icache probably has no way of + * knowing that a data ref to some location may have changed something + * that is in the instruction cache. NB: We flush both caches, just to + * be sure... + */ + + /* note: flushing the icache will clobber EAR0 on the FR451 */ + if (flush_cache) + gdbstub_purge_cache(); + + LEDS(0x5666); + +} /* end gdbstub() */ + +/*****************************************************************************/ +/* + * initialise the GDB stub + */ +void __init gdbstub_init(void) +{ +#ifdef CONFIG_GDBSTUB_IMMEDIATE + unsigned char ch; + int ret; +#endif + + gdbstub_printk("%s", gdbstub_banner); + gdbstub_printk("DCR: %x\n", __debug_regs->dcr); + + gdbstub_io_init(); + + /* try to talk to GDB (or anyone insane enough to want to type GDB protocol by hand) */ + gdbstub_proto("### GDB Tx ACK\n"); + gdbstub_tx_char('+'); /* 'hello world' */ + +#ifdef CONFIG_GDBSTUB_IMMEDIATE + gdbstub_printk("GDB Stub waiting for packet\n"); + + /* + * In case GDB is started before us, ack any packets + * (presumably "$?#xx") sitting there. + */ + do { gdbstub_rx_char(&ch, 0); } while (ch != '$'); + do { gdbstub_rx_char(&ch, 0); } while (ch != '#'); + do { ret = gdbstub_rx_char(&ch, 0); } while (ret != 0); /* eat first csum byte */ + do { ret = gdbstub_rx_char(&ch, 0); } while (ret != 0); /* eat second csum byte */ + + gdbstub_proto("### GDB Tx NAK\n"); + gdbstub_tx_char('-'); /* nak it */ + +#else + gdbstub_printk("GDB Stub set\n"); +#endif + +#if 0 + /* send banner */ + ptr = output_buffer; + *ptr++ = 'O'; + ptr = mem2hex(gdbstub_banner, ptr, sizeof(gdbstub_banner) - 1, 0); + gdbstub_send_packet(output_buffer); +#endif +#if defined(CONFIG_GDBSTUB_CONSOLE) && defined(CONFIG_GDBSTUB_IMMEDIATE) + register_console(&gdbstub_console); +#endif + +} /* end gdbstub_init() */ + +/*****************************************************************************/ +/* + * register the console at a more appropriate time + */ +#if defined (CONFIG_GDBSTUB_CONSOLE) && !defined(CONFIG_GDBSTUB_IMMEDIATE) +static int __init gdbstub_postinit(void) +{ + printk("registering console\n"); + register_console(&gdbstub_console); + return 0; +} /* end gdbstub_postinit() */ + +__initcall(gdbstub_postinit); +#endif + +/*****************************************************************************/ +/* + * send an exit message to GDB + */ +void gdbstub_exit(int status) +{ + unsigned char checksum; + int count; + unsigned char ch; + + sprintf(output_buffer,"W%02x",status&0xff); + + gdbstub_tx_char('$'); + checksum = 0; + count = 0; + + while ((ch = output_buffer[count]) != 0) { + gdbstub_tx_char(ch); + checksum += ch; + count += 1; + } + + gdbstub_tx_char('#'); + gdbstub_tx_char(hexchars[checksum >> 4]); + gdbstub_tx_char(hexchars[checksum & 0xf]); + + /* make sure the output is flushed, or else RedBoot might clobber it */ + gdbstub_tx_char('-'); + gdbstub_tx_flush(); + +} /* end gdbstub_exit() */ + +/*****************************************************************************/ +/* + * GDB wants to call malloc() and free() to allocate memory for calling kernel + * functions directly from its command line + */ +static void *malloc(size_t size) __attribute__((unused)); +static void *malloc(size_t size) +{ + return kmalloc(size, GFP_ATOMIC); +} + +static void free(void *p) __attribute__((unused)); +static void free(void *p) +{ + kfree(p); +} + +static uint32_t ___get_HSR0(void) __attribute__((unused)); +static uint32_t ___get_HSR0(void) +{ + return __get_HSR(0); +} + +static uint32_t ___set_HSR0(uint32_t x) __attribute__((unused)); +static uint32_t ___set_HSR0(uint32_t x) +{ + __set_HSR(0, x); + return __get_HSR(0); +} diff -Nru a/arch/frv/kernel/head-mmu-fr451.S b/arch/frv/kernel/head-mmu-fr451.S --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/head-mmu-fr451.S 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,374 @@ +/* head-mmu-fr451.S: FR451 mmu-linux specific bits of initialisation + * + * Copyright (C) 2004 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include "head.inc" + + +#define __400_DBR0 0xfe000e00 +#define __400_DBR1 0xfe000e08 +#define __400_DBR2 0xfe000e10 +#define __400_DBR3 0xfe000e18 +#define __400_DAM0 0xfe000f00 +#define __400_DAM1 0xfe000f08 +#define __400_DAM2 0xfe000f10 +#define __400_DAM3 0xfe000f18 +#define __400_LGCR 0xfe000010 +#define __400_LCR 0xfe000100 +#define __400_LSBR 0xfe000c00 + + .section .text.init,"ax" + .balign 4 + +############################################################################### +# +# describe the position and layout of the SDRAM controller registers +# +# ENTRY: EXIT: +# GR5 - cacheline size +# GR11 - displacement of 2nd SDRAM addr reg from GR14 +# GR12 - displacement of 3rd SDRAM addr reg from GR14 +# GR13 - displacement of 4th SDRAM addr reg from GR14 +# GR14 - address of 1st SDRAM addr reg +# GR15 - amount to shift address by to match SDRAM addr reg +# GR26 &__head_reference [saved] +# GR30 LED address [saved] +# CC0 - T if DBR0 is present +# CC1 - T if DBR1 is present +# CC2 - T if DBR2 is present +# CC3 - T if DBR3 is present +# +############################################################################### + .globl __head_fr451_describe_sdram +__head_fr451_describe_sdram: + sethi.p %hi(__400_DBR0),gr14 + setlo %lo(__400_DBR0),gr14 + setlos.p #__400_DBR1-__400_DBR0,gr11 + setlos #__400_DBR2-__400_DBR0,gr12 + setlos.p #__400_DBR3-__400_DBR0,gr13 + setlos #32,gr5 ; cacheline size + setlos.p #0,gr15 ; amount to shift addr reg by + setlos #0x00ff,gr4 + movgs gr4,cccr ; extant DARS/DAMK regs + bralr + +############################################################################### +# +# rearrange the bus controller registers +# +# ENTRY: EXIT: +# GR26 &__head_reference [saved] +# GR30 LED address revised LED address +# +############################################################################### + .globl __head_fr451_set_busctl +__head_fr451_set_busctl: + sethi.p %hi(__400_LGCR),gr4 + setlo %lo(__400_LGCR),gr4 + sethi.p %hi(__400_LSBR),gr10 + setlo %lo(__400_LSBR),gr10 + sethi.p %hi(__400_LCR),gr11 + setlo %lo(__400_LCR),gr11 + + # set the bus controller + ldi @(gr4,#0),gr5 + ori gr5,#0xff,gr5 ; make sure all chip-selects are enabled + sti gr5,@(gr4,#0) + + sethi.p %hi(__region_CS1),gr4 + setlo %lo(__region_CS1),gr4 + sethi.p %hi(__region_CS1_M),gr5 + setlo %lo(__region_CS1_M),gr5 + sethi.p %hi(__region_CS1_C),gr6 + setlo %lo(__region_CS1_C),gr6 + sti gr4,@(gr10,#1*0x08) + sti gr5,@(gr10,#1*0x08+0x100) + sti gr6,@(gr11,#1*0x08) + sethi.p %hi(__region_CS2),gr4 + setlo %lo(__region_CS2),gr4 + sethi.p %hi(__region_CS2_M),gr5 + setlo %lo(__region_CS2_M),gr5 + sethi.p %hi(__region_CS2_C),gr6 + setlo %lo(__region_CS2_C),gr6 + sti gr4,@(gr10,#2*0x08) + sti gr5,@(gr10,#2*0x08+0x100) + sti gr6,@(gr11,#2*0x08) + sethi.p %hi(__region_CS3),gr4 + setlo %lo(__region_CS3),gr4 + sethi.p %hi(__region_CS3_M),gr5 + setlo %lo(__region_CS3_M),gr5 + sethi.p %hi(__region_CS3_C),gr6 + setlo %lo(__region_CS3_C),gr6 + sti gr4,@(gr10,#3*0x08) + sti gr5,@(gr10,#3*0x08+0x100) + sti gr6,@(gr11,#3*0x08) + sethi.p %hi(__region_CS4),gr4 + setlo %lo(__region_CS4),gr4 + sethi.p %hi(__region_CS4_M),gr5 + setlo %lo(__region_CS4_M),gr5 + sethi.p %hi(__region_CS4_C),gr6 + setlo %lo(__region_CS4_C),gr6 + sti gr4,@(gr10,#4*0x08) + sti gr5,@(gr10,#4*0x08+0x100) + sti gr6,@(gr11,#4*0x08) + sethi.p %hi(__region_CS5),gr4 + setlo %lo(__region_CS5),gr4 + sethi.p %hi(__region_CS5_M),gr5 + setlo %lo(__region_CS5_M),gr5 + sethi.p %hi(__region_CS5_C),gr6 + setlo %lo(__region_CS5_C),gr6 + sti gr4,@(gr10,#5*0x08) + sti gr5,@(gr10,#5*0x08+0x100) + sti gr6,@(gr11,#5*0x08) + sethi.p %hi(__region_CS6),gr4 + setlo %lo(__region_CS6),gr4 + sethi.p %hi(__region_CS6_M),gr5 + setlo %lo(__region_CS6_M),gr5 + sethi.p %hi(__region_CS6_C),gr6 + setlo %lo(__region_CS6_C),gr6 + sti gr4,@(gr10,#6*0x08) + sti gr5,@(gr10,#6*0x08+0x100) + sti gr6,@(gr11,#6*0x08) + sethi.p %hi(__region_CS7),gr4 + setlo %lo(__region_CS7),gr4 + sethi.p %hi(__region_CS7_M),gr5 + setlo %lo(__region_CS7_M),gr5 + sethi.p %hi(__region_CS7_C),gr6 + setlo %lo(__region_CS7_C),gr6 + sti gr4,@(gr10,#7*0x08) + sti gr5,@(gr10,#7*0x08+0x100) + sti gr6,@(gr11,#7*0x08) + membar + bar + + # adjust LED bank address +#ifdef CONFIG_MB93091_VDK + sethi.p %hi(__region_CS2 + 0x01200004),gr30 + setlo %lo(__region_CS2 + 0x01200004),gr30 +#endif + bralr + +############################################################################### +# +# determine the total SDRAM size +# +# ENTRY: EXIT: +# GR25 - SDRAM size +# GR26 &__head_reference [saved] +# GR30 LED address [saved] +# +############################################################################### + .globl __head_fr451_survey_sdram +__head_fr451_survey_sdram: + sethi.p %hi(__400_DAM0),gr11 + setlo %lo(__400_DAM0),gr11 + sethi.p %hi(__400_DBR0),gr12 + setlo %lo(__400_DBR0),gr12 + + sethi.p %hi(0xfe000000),gr17 ; unused SDRAM DBR value + setlo %lo(0xfe000000),gr17 + setlos #0,gr25 + + ldi @(gr12,#0x00),gr4 ; DAR0 + subcc gr4,gr17,gr0,icc0 + beq icc0,#0,__head_no_DCS0 + ldi @(gr11,#0x00),gr6 ; DAM0: bits 31:20 match addr 31:20 + add gr25,gr6,gr25 + addi gr25,#1,gr25 +__head_no_DCS0: + + ldi @(gr12,#0x08),gr4 ; DAR1 + subcc gr4,gr17,gr0,icc0 + beq icc0,#0,__head_no_DCS1 + ldi @(gr11,#0x08),gr6 ; DAM1: bits 31:20 match addr 31:20 + add gr25,gr6,gr25 + addi gr25,#1,gr25 +__head_no_DCS1: + + ldi @(gr12,#0x10),gr4 ; DAR2 + subcc gr4,gr17,gr0,icc0 + beq icc0,#0,__head_no_DCS2 + ldi @(gr11,#0x10),gr6 ; DAM2: bits 31:20 match addr 31:20 + add gr25,gr6,gr25 + addi gr25,#1,gr25 +__head_no_DCS2: + + ldi @(gr12,#0x18),gr4 ; DAR3 + subcc gr4,gr17,gr0,icc0 + beq icc0,#0,__head_no_DCS3 + ldi @(gr11,#0x18),gr6 ; DAM3: bits 31:20 match addr 31:20 + add gr25,gr6,gr25 + addi gr25,#1,gr25 +__head_no_DCS3: + bralr + +############################################################################### +# +# set the protection map with the I/DAMPR registers +# +# ENTRY: EXIT: +# GR25 SDRAM size [saved] +# GR26 &__head_reference [saved] +# GR30 LED address [saved] +# +# +# Using this map: +# REGISTERS ADDRESS RANGE VIEW +# =============== ====================== =============================== +# IAMPR0/DAMPR0 0xC0000000-0xCFFFFFFF Cached kernel RAM Window +# DAMPR11 0xE0000000-0xFFFFFFFF Uncached I/O +# +############################################################################### + .globl __head_fr451_set_protection +__head_fr451_set_protection: + movsg lr,gr27 + + # set the I/O region protection registers for FR451 in MMU mode +#define PGPROT_IO xAMPRx_L|xAMPRx_M|xAMPRx_S_KERNEL|xAMPRx_C|xAMPRx_V + + sethi.p %hi(__region_IO),gr5 + setlo %lo(__region_IO),gr5 + setlos #PGPROT_IO|xAMPRx_SS_512Mb,gr4 + or gr4,gr5,gr4 + movgs gr5,damlr11 ; General I/O tile + movgs gr4,dampr11 + + # need to open a window onto at least part of the RAM for the kernel's use + sethi.p %hi(__sdram_base),gr8 + setlo %lo(__sdram_base),gr8 ; physical address + sethi.p %hi(__page_offset),gr9 + setlo %lo(__page_offset),gr9 ; virtual address + + setlos #xAMPRx_L|xAMPRx_M|xAMPRx_SS_256Mb|xAMPRx_S_KERNEL|xAMPRx_V,gr11 + or gr8,gr11,gr8 + + movgs gr9,iamlr0 ; mapped from real address 0 + movgs gr8,iampr0 ; cached kernel memory at 0xC0000000 + movgs gr9,damlr0 + movgs gr8,dampr0 + + # set a temporary mapping for the kernel running at address 0 until we've turned on the MMU + sethi.p %hi(__sdram_base),gr9 + setlo %lo(__sdram_base),gr9 ; virtual address + + and.p gr4,gr11,gr4 + and gr5,gr11,gr5 + or.p gr4,gr11,gr4 + or gr5,gr11,gr5 + + movgs gr9,iamlr1 ; mapped from real address 0 + movgs gr8,iampr1 ; cached kernel memory at 0x00000000 + movgs gr9,damlr1 + movgs gr8,dampr1 + + # we use DAMR2-10 for kmap_atomic(), cache flush and TLB management + # since the DAMLR regs are not going to change, we can set them now + # also set up IAMLR2 to the same as DAMLR5 + sethi.p %hi(KMAP_ATOMIC_PRIMARY_FRAME),gr4 + setlo %lo(KMAP_ATOMIC_PRIMARY_FRAME),gr4 + sethi.p %hi(PAGE_SIZE),gr5 + setlo %lo(PAGE_SIZE),gr5 + + movgs gr4,damlr2 + movgs gr4,iamlr2 + add gr4,gr5,gr4 + movgs gr4,damlr3 + add gr4,gr5,gr4 + movgs gr4,damlr4 + add gr4,gr5,gr4 + movgs gr4,damlr5 + add gr4,gr5,gr4 + movgs gr4,damlr6 + add gr4,gr5,gr4 + movgs gr4,damlr7 + add gr4,gr5,gr4 + movgs gr4,damlr8 + add gr4,gr5,gr4 + movgs gr4,damlr9 + add gr4,gr5,gr4 + movgs gr4,damlr10 + + movgs gr0,dampr2 + movgs gr0,dampr4 + movgs gr0,dampr5 + movgs gr0,dampr6 + movgs gr0,dampr7 + movgs gr0,dampr8 + movgs gr0,dampr9 + movgs gr0,dampr10 + + movgs gr0,iamlr3 + movgs gr0,iamlr4 + movgs gr0,iamlr5 + movgs gr0,iamlr6 + movgs gr0,iamlr7 + + movgs gr0,iampr2 + movgs gr0,iampr3 + movgs gr0,iampr4 + movgs gr0,iampr5 + movgs gr0,iampr6 + movgs gr0,iampr7 + + # start in TLB context 0 with the swapper's page tables + movgs gr0,cxnr + + sethi.p %hi(swapper_pg_dir),gr4 + setlo %lo(swapper_pg_dir),gr4 + sethi.p %hi(__page_offset),gr5 + setlo %lo(__page_offset),gr5 + sub gr4,gr5,gr4 + movgs gr4,ttbr + setlos #xAMPRx_L|xAMPRx_M|xAMPRx_SS_16Kb|xAMPRx_S|xAMPRx_C|xAMPRx_V,gr5 + or gr4,gr5,gr4 + movgs gr4,dampr3 + + # the FR451 also has an extra trap base register + movsg tbr,gr4 + movgs gr4,btbr + + LEDS 0x3300 + jmpl @(gr27,gr0) + +############################################################################### +# +# finish setting up the protection registers +# +############################################################################### + .globl __head_fr451_finalise_protection +__head_fr451_finalise_protection: + # turn on the timers as appropriate + movgs gr0,timerh + movgs gr0,timerl + movgs gr0,timerd + movsg hsr0,gr4 + sethi.p %hi(HSR0_ETMI),gr5 + setlo %lo(HSR0_ETMI),gr5 + or gr4,gr5,gr4 + movgs gr4,hsr0 + + # clear the TLB entry cache + movgs gr0,iamlr1 + movgs gr0,iampr1 + movgs gr0,damlr1 + movgs gr0,dampr1 + + # clear the PGE cache + sethi.p %hi(__flush_tlb_all),gr4 + setlo %lo(__flush_tlb_all),gr4 + jmpl @(gr4,gr0) diff -Nru a/arch/frv/kernel/head-uc-fr401.S b/arch/frv/kernel/head-uc-fr401.S --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/head-uc-fr401.S 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,311 @@ +/* head-uc-fr401.S: FR401/3/5 uc-linux specific bits of initialisation + * + * Copyright (C) 2004 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#include +#include +#include +#include +#include +#include +#include +#include "head.inc" + + +#define __400_DBR0 0xfe000e00 +#define __400_DBR1 0xfe000e08 +#define __400_DBR2 0xfe000e10 /* not on FR401 */ +#define __400_DBR3 0xfe000e18 /* not on FR401 */ +#define __400_DAM0 0xfe000f00 +#define __400_DAM1 0xfe000f08 +#define __400_DAM2 0xfe000f10 /* not on FR401 */ +#define __400_DAM3 0xfe000f18 /* not on FR401 */ +#define __400_LGCR 0xfe000010 +#define __400_LCR 0xfe000100 +#define __400_LSBR 0xfe000c00 + + .section .text.init,"ax" + .balign 4 + +############################################################################### +# +# describe the position and layout of the SDRAM controller registers +# +# ENTRY: EXIT: +# GR5 - cacheline size +# GR11 - displacement of 2nd SDRAM addr reg from GR14 +# GR12 - displacement of 3rd SDRAM addr reg from GR14 +# GR13 - displacement of 4th SDRAM addr reg from GR14 +# GR14 - address of 1st SDRAM addr reg +# GR15 - amount to shift address by to match SDRAM addr reg +# GR26 &__head_reference [saved] +# GR30 LED address [saved] +# CC0 - T if DBR0 is present +# CC1 - T if DBR1 is present +# CC2 - T if DBR2 is present (not FR401/FR401A) +# CC3 - T if DBR3 is present (not FR401/FR401A) +# +############################################################################### + .globl __head_fr401_describe_sdram +__head_fr401_describe_sdram: + sethi.p %hi(__400_DBR0),gr14 + setlo %lo(__400_DBR0),gr14 + setlos.p #__400_DBR1-__400_DBR0,gr11 + setlos #__400_DBR2-__400_DBR0,gr12 + setlos.p #__400_DBR3-__400_DBR0,gr13 + setlos #32,gr5 ; cacheline size + setlos.p #0,gr15 ; amount to shift addr reg by + + # specify which DBR regs are present + setlos #0x00ff,gr4 + movgs gr4,cccr + movsg psr,gr3 ; check for FR401/FR401A + srli gr3,#25,gr3 + subicc gr3,#0x20>>1,gr0,icc0 + bnelr icc0,#1 + setlos #0x000f,gr4 + movgs gr4,cccr + bralr + +############################################################################### +# +# rearrange the bus controller registers +# +# ENTRY: EXIT: +# GR26 &__head_reference [saved] +# GR30 LED address revised LED address +# +############################################################################### + .globl __head_fr401_set_busctl +__head_fr401_set_busctl: + sethi.p %hi(__400_LGCR),gr4 + setlo %lo(__400_LGCR),gr4 + sethi.p %hi(__400_LSBR),gr10 + setlo %lo(__400_LSBR),gr10 + sethi.p %hi(__400_LCR),gr11 + setlo %lo(__400_LCR),gr11 + + # set the bus controller + ldi @(gr4,#0),gr5 + ori gr5,#0xff,gr5 ; make sure all chip-selects are enabled + sti gr5,@(gr4,#0) + + sethi.p %hi(__region_CS1),gr4 + setlo %lo(__region_CS1),gr4 + sethi.p %hi(__region_CS1_M),gr5 + setlo %lo(__region_CS1_M),gr5 + sethi.p %hi(__region_CS1_C),gr6 + setlo %lo(__region_CS1_C),gr6 + sti gr4,@(gr10,#1*0x08) + sti gr5,@(gr10,#1*0x08+0x100) + sti gr6,@(gr11,#1*0x08) + sethi.p %hi(__region_CS2),gr4 + setlo %lo(__region_CS2),gr4 + sethi.p %hi(__region_CS2_M),gr5 + setlo %lo(__region_CS2_M),gr5 + sethi.p %hi(__region_CS2_C),gr6 + setlo %lo(__region_CS2_C),gr6 + sti gr4,@(gr10,#2*0x08) + sti gr5,@(gr10,#2*0x08+0x100) + sti gr6,@(gr11,#2*0x08) + sethi.p %hi(__region_CS3),gr4 + setlo %lo(__region_CS3),gr4 + sethi.p %hi(__region_CS3_M),gr5 + setlo %lo(__region_CS3_M),gr5 + sethi.p %hi(__region_CS3_C),gr6 + setlo %lo(__region_CS3_C),gr6 + sti gr4,@(gr10,#3*0x08) + sti gr5,@(gr10,#3*0x08+0x100) + sti gr6,@(gr11,#3*0x08) + sethi.p %hi(__region_CS4),gr4 + setlo %lo(__region_CS4),gr4 + sethi.p %hi(__region_CS4_M),gr5 + setlo %lo(__region_CS4_M),gr5 + sethi.p %hi(__region_CS4_C),gr6 + setlo %lo(__region_CS4_C),gr6 + sti gr4,@(gr10,#4*0x08) + sti gr5,@(gr10,#4*0x08+0x100) + sti gr6,@(gr11,#4*0x08) + sethi.p %hi(__region_CS5),gr4 + setlo %lo(__region_CS5),gr4 + sethi.p %hi(__region_CS5_M),gr5 + setlo %lo(__region_CS5_M),gr5 + sethi.p %hi(__region_CS5_C),gr6 + setlo %lo(__region_CS5_C),gr6 + sti gr4,@(gr10,#5*0x08) + sti gr5,@(gr10,#5*0x08+0x100) + sti gr6,@(gr11,#5*0x08) + sethi.p %hi(__region_CS6),gr4 + setlo %lo(__region_CS6),gr4 + sethi.p %hi(__region_CS6_M),gr5 + setlo %lo(__region_CS6_M),gr5 + sethi.p %hi(__region_CS6_C),gr6 + setlo %lo(__region_CS6_C),gr6 + sti gr4,@(gr10,#6*0x08) + sti gr5,@(gr10,#6*0x08+0x100) + sti gr6,@(gr11,#6*0x08) + sethi.p %hi(__region_CS7),gr4 + setlo %lo(__region_CS7),gr4 + sethi.p %hi(__region_CS7_M),gr5 + setlo %lo(__region_CS7_M),gr5 + sethi.p %hi(__region_CS7_C),gr6 + setlo %lo(__region_CS7_C),gr6 + sti gr4,@(gr10,#7*0x08) + sti gr5,@(gr10,#7*0x08+0x100) + sti gr6,@(gr11,#7*0x08) + membar + bar + + # adjust LED bank address + sethi.p %hi(LED_ADDR - 0x20000000 +__region_CS2),gr30 + setlo %lo(LED_ADDR - 0x20000000 +__region_CS2),gr30 + bralr + +############################################################################### +# +# determine the total SDRAM size +# +# ENTRY: EXIT: +# GR25 - SDRAM size +# GR26 &__head_reference [saved] +# GR30 LED address [saved] +# +############################################################################### + .globl __head_fr401_survey_sdram +__head_fr401_survey_sdram: + sethi.p %hi(__400_DAM0),gr11 + setlo %lo(__400_DAM0),gr11 + sethi.p %hi(__400_DBR0),gr12 + setlo %lo(__400_DBR0),gr12 + + sethi.p %hi(0xfe000000),gr17 ; unused SDRAM DBR value + setlo %lo(0xfe000000),gr17 + setlos #0,gr25 + + ldi @(gr12,#0x00),gr4 ; DAR0 + subcc gr4,gr17,gr0,icc0 + beq icc0,#0,__head_no_DCS0 + ldi @(gr11,#0x00),gr6 ; DAM0: bits 31:20 match addr 31:20 + add gr25,gr6,gr25 + addi gr25,#1,gr25 +__head_no_DCS0: + + ldi @(gr12,#0x08),gr4 ; DAR1 + subcc gr4,gr17,gr0,icc0 + beq icc0,#0,__head_no_DCS1 + ldi @(gr11,#0x08),gr6 ; DAM1: bits 31:20 match addr 31:20 + add gr25,gr6,gr25 + addi gr25,#1,gr25 +__head_no_DCS1: + + # FR401/FR401A does not have DCS2/3 + movsg psr,gr3 + srli gr3,#25,gr3 + subicc gr3,#0x20>>1,gr0,icc0 + beq icc0,#0,__head_no_DCS3 + + ldi @(gr12,#0x10),gr4 ; DAR2 + subcc gr4,gr17,gr0,icc0 + beq icc0,#0,__head_no_DCS2 + ldi @(gr11,#0x10),gr6 ; DAM2: bits 31:20 match addr 31:20 + add gr25,gr6,gr25 + addi gr25,#1,gr25 +__head_no_DCS2: + + ldi @(gr12,#0x18),gr4 ; DAR3 + subcc gr4,gr17,gr0,icc0 + beq icc0,#0,__head_no_DCS3 + ldi @(gr11,#0x18),gr6 ; DAM3: bits 31:20 match addr 31:20 + add gr25,gr6,gr25 + addi gr25,#1,gr25 +__head_no_DCS3: + bralr + +############################################################################### +# +# set the protection map with the I/DAMPR registers +# +# ENTRY: EXIT: +# GR25 SDRAM size [saved] +# GR26 &__head_reference [saved] +# GR30 LED address [saved] +# +############################################################################### + .globl __head_fr401_set_protection +__head_fr401_set_protection: + movsg lr,gr27 + + # set the I/O region protection registers for FR401/3/5 + sethi.p %hi(__region_IO),gr5 + setlo %lo(__region_IO),gr5 + ori gr5,#xAMPRx_SS_512Mb|xAMPRx_S_KERNEL|xAMPRx_C|xAMPRx_V,gr5 + movgs gr0,iampr7 + movgs gr5,dampr7 ; General I/O tile + + # need to tile the remaining IAMPR/DAMPR registers to cover as much of the RAM as possible + # - start with the highest numbered registers + sethi.p %hi(__kernel_image_end),gr8 + setlo %lo(__kernel_image_end),gr8 + sethi.p %hi(32768),gr4 ; allow for a maximal allocator bitmap + setlo %lo(32768),gr4 + add gr8,gr4,gr8 + sethi.p %hi(1024*2048-1),gr4 ; round up to nearest 2MiB + setlo %lo(1024*2048-1),gr4 + add.p gr8,gr4,gr8 + not gr4,gr4 + and gr8,gr4,gr8 + + sethi.p %hi(__page_offset),gr9 + setlo %lo(__page_offset),gr9 + add gr9,gr25,gr9 + + # GR8 = base of uncovered RAM + # GR9 = top of uncovered RAM + +#ifdef CONFIG_MB93093_PDK + sethi.p %hi(__region_CS2),gr4 + setlo %lo(__region_CS2),gr4 + ori gr4,#xAMPRx_SS_1Mb|xAMPRx_S_KERNEL|xAMPRx_C|xAMPRx_V,gr4 + movgs gr4,dampr6 + movgs gr0,iampr6 +#else + call __head_split_region + movgs gr4,iampr6 + movgs gr5,dampr6 +#endif + call __head_split_region + movgs gr4,iampr5 + movgs gr5,dampr5 + call __head_split_region + movgs gr4,iampr4 + movgs gr5,dampr4 + call __head_split_region + movgs gr4,iampr3 + movgs gr5,dampr3 + call __head_split_region + movgs gr4,iampr2 + movgs gr5,dampr2 + call __head_split_region + movgs gr4,iampr1 + movgs gr5,dampr1 + + # cover kernel core image with kernel-only segment + sethi.p %hi(__page_offset),gr8 + setlo %lo(__page_offset),gr8 + call __head_split_region + +#ifdef CONFIG_PROTECT_KERNEL + ori.p gr4,#xAMPRx_S_KERNEL,gr4 + ori gr5,#xAMPRx_S_KERNEL,gr5 +#endif + + movgs gr4,iampr0 + movgs gr5,dampr0 + jmpl @(gr27,gr0) diff -Nru a/arch/frv/kernel/head-uc-fr451.S b/arch/frv/kernel/head-uc-fr451.S --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/head-uc-fr451.S 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,174 @@ +/* head-uc-fr451.S: FR451 uc-linux specific bits of initialisation + * + * Copyright (C) 2004 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#include +#include +#include +#include +#include +#include +#include +#include "head.inc" + + +#define __400_DBR0 0xfe000e00 +#define __400_DBR1 0xfe000e08 +#define __400_DBR2 0xfe000e10 +#define __400_DBR3 0xfe000e18 +#define __400_DAM0 0xfe000f00 +#define __400_DAM1 0xfe000f08 +#define __400_DAM2 0xfe000f10 +#define __400_DAM3 0xfe000f18 +#define __400_LGCR 0xfe000010 +#define __400_LCR 0xfe000100 +#define __400_LSBR 0xfe000c00 + + .section .text.init,"ax" + .balign 4 + +############################################################################### +# +# set the protection map with the I/DAMPR registers +# +# ENTRY: EXIT: +# GR25 SDRAM size [saved] +# GR26 &__head_reference [saved] +# GR30 LED address [saved] +# +############################################################################### + .globl __head_fr451_set_protection +__head_fr451_set_protection: + movsg lr,gr27 + + movgs gr0,dampr10 + movgs gr0,damlr10 + movgs gr0,dampr9 + movgs gr0,damlr9 + movgs gr0,dampr8 + movgs gr0,damlr8 + + # set the I/O region protection registers for FR401/3/5 + sethi.p %hi(__region_IO),gr5 + setlo %lo(__region_IO),gr5 + sethi.p %hi(0x1fffffff),gr7 + setlo %lo(0x1fffffff),gr7 + ori gr5,#xAMPRx_SS_512Mb|xAMPRx_S_KERNEL|xAMPRx_C|xAMPRx_V,gr5 + movgs gr5,dampr11 ; General I/O tile + movgs gr7,damlr11 + + # need to tile the remaining IAMPR/DAMPR registers to cover as much of the RAM as possible + # - start with the highest numbered registers + sethi.p %hi(__kernel_image_end),gr8 + setlo %lo(__kernel_image_end),gr8 + sethi.p %hi(32768),gr4 ; allow for a maximal allocator bitmap + setlo %lo(32768),gr4 + add gr8,gr4,gr8 + sethi.p %hi(1024*2048-1),gr4 ; round up to nearest 2MiB + setlo %lo(1024*2048-1),gr4 + add.p gr8,gr4,gr8 + not gr4,gr4 + and gr8,gr4,gr8 + + sethi.p %hi(__page_offset),gr9 + setlo %lo(__page_offset),gr9 + add gr9,gr25,gr9 + + sethi.p %hi(0xffffc000),gr11 + setlo %lo(0xffffc000),gr11 + + # GR8 = base of uncovered RAM + # GR9 = top of uncovered RAM + # GR11 = xAMLR mask + LEDS 0x3317 + call __head_split_region + movgs gr4,iampr7 + movgs gr6,iamlr7 + movgs gr5,dampr7 + movgs gr7,damlr7 + + LEDS 0x3316 + call __head_split_region + movgs gr4,iampr6 + movgs gr6,iamlr6 + movgs gr5,dampr6 + movgs gr7,damlr6 + + LEDS 0x3315 + call __head_split_region + movgs gr4,iampr5 + movgs gr6,iamlr5 + movgs gr5,dampr5 + movgs gr7,damlr5 + + LEDS 0x3314 + call __head_split_region + movgs gr4,iampr4 + movgs gr6,iamlr4 + movgs gr5,dampr4 + movgs gr7,damlr4 + + LEDS 0x3313 + call __head_split_region + movgs gr4,iampr3 + movgs gr6,iamlr3 + movgs gr5,dampr3 + movgs gr7,damlr3 + + LEDS 0x3312 + call __head_split_region + movgs gr4,iampr2 + movgs gr6,iamlr2 + movgs gr5,dampr2 + movgs gr7,damlr2 + + LEDS 0x3311 + call __head_split_region + movgs gr4,iampr1 + movgs gr6,iamlr1 + movgs gr5,dampr1 + movgs gr7,damlr1 + + # cover kernel core image with kernel-only segment + LEDS 0x3310 + sethi.p %hi(__page_offset),gr8 + setlo %lo(__page_offset),gr8 + call __head_split_region + +#ifdef CONFIG_PROTECT_KERNEL + ori.p gr4,#xAMPRx_S_KERNEL,gr4 + ori gr5,#xAMPRx_S_KERNEL,gr5 +#endif + + movgs gr4,iampr0 + movgs gr6,iamlr0 + movgs gr5,dampr0 + movgs gr7,damlr0 + + # start in TLB context 0 with no page tables + movgs gr0,cxnr + movgs gr0,ttbr + + # the FR451 also has an extra trap base register + movsg tbr,gr4 + movgs gr4,btbr + + # turn on the timers as appropriate + movgs gr0,timerh + movgs gr0,timerl + movgs gr0,timerd + movsg hsr0,gr4 + sethi.p %hi(HSR0_ETMI),gr5 + setlo %lo(HSR0_ETMI),gr5 + or gr4,gr5,gr4 + movgs gr4,hsr0 + + LEDS 0x3300 + jmpl @(gr27,gr0) diff -Nru a/arch/frv/kernel/head-uc-fr555.S b/arch/frv/kernel/head-uc-fr555.S --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/head-uc-fr555.S 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,347 @@ +/* head-uc-fr555.S: FR555 uc-linux specific bits of initialisation + * + * Copyright (C) 2004 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#include +#include +#include +#include +#include +#include +#include +#include "head.inc" + + +#define __551_DARS0 0xfeff0100 +#define __551_DARS1 0xfeff0104 +#define __551_DARS2 0xfeff0108 +#define __551_DARS3 0xfeff010c +#define __551_DAMK0 0xfeff0110 +#define __551_DAMK1 0xfeff0114 +#define __551_DAMK2 0xfeff0118 +#define __551_DAMK3 0xfeff011c +#define __551_LCR 0xfeff1100 +#define __551_LSBR 0xfeff1c00 + + .section .text.init,"ax" + .balign 4 + +############################################################################### +# +# describe the position and layout of the SDRAM controller registers +# +# ENTRY: EXIT: +# GR5 - cacheline size +# GR11 - displacement of 2nd SDRAM addr reg from GR14 +# GR12 - displacement of 3rd SDRAM addr reg from GR14 +# GR13 - displacement of 4th SDRAM addr reg from GR14 +# GR14 - address of 1st SDRAM addr reg +# GR15 - amount to shift address by to match SDRAM addr reg +# GR26 &__head_reference [saved] +# GR30 LED address [saved] +# CC0 - T if DARS0 is present +# CC1 - T if DARS1 is present +# CC2 - T if DARS2 is present +# CC3 - T if DARS3 is present +# +############################################################################### + .globl __head_fr555_describe_sdram +__head_fr555_describe_sdram: + sethi.p %hi(__551_DARS0),gr14 + setlo %lo(__551_DARS0),gr14 + setlos.p #__551_DARS1-__551_DARS0,gr11 + setlos #__551_DARS2-__551_DARS0,gr12 + setlos.p #__551_DARS3-__551_DARS0,gr13 + setlos #64,gr5 ; cacheline size + setlos #20,gr15 ; amount to shift addr by + setlos #0x00ff,gr4 + movgs gr4,cccr ; extant DARS/DAMK regs + bralr + +############################################################################### +# +# rearrange the bus controller registers +# +# ENTRY: EXIT: +# GR26 &__head_reference [saved] +# GR30 LED address revised LED address +# +############################################################################### + .globl __head_fr555_set_busctl +__head_fr555_set_busctl: + LEDS 0x100f + sethi.p %hi(__551_LSBR),gr10 + setlo %lo(__551_LSBR),gr10 + sethi.p %hi(__551_LCR),gr11 + setlo %lo(__551_LCR),gr11 + + # set the bus controller + sethi.p %hi(__region_CS1),gr4 + setlo %lo(__region_CS1),gr4 + sethi.p %hi(__region_CS1_M),gr5 + setlo %lo(__region_CS1_M),gr5 + sethi.p %hi(__region_CS1_C),gr6 + setlo %lo(__region_CS1_C),gr6 + sti gr4,@(gr10,#1*0x08) + sti gr5,@(gr10,#1*0x08+0x100) + sti gr6,@(gr11,#1*0x08) + sethi.p %hi(__region_CS2),gr4 + setlo %lo(__region_CS2),gr4 + sethi.p %hi(__region_CS2_M),gr5 + setlo %lo(__region_CS2_M),gr5 + sethi.p %hi(__region_CS2_C),gr6 + setlo %lo(__region_CS2_C),gr6 + sti gr4,@(gr10,#2*0x08) + sti gr5,@(gr10,#2*0x08+0x100) + sti gr6,@(gr11,#2*0x08) + sethi.p %hi(__region_CS3),gr4 + setlo %lo(__region_CS3),gr4 + sethi.p %hi(__region_CS3_M),gr5 + setlo %lo(__region_CS3_M),gr5 + sethi.p %hi(__region_CS3_C),gr6 + setlo %lo(__region_CS3_C),gr6 + sti gr4,@(gr10,#3*0x08) + sti gr5,@(gr10,#3*0x08+0x100) + sti gr6,@(gr11,#3*0x08) + sethi.p %hi(__region_CS4),gr4 + setlo %lo(__region_CS4),gr4 + sethi.p %hi(__region_CS4_M),gr5 + setlo %lo(__region_CS4_M),gr5 + sethi.p %hi(__region_CS4_C),gr6 + setlo %lo(__region_CS4_C),gr6 + sti gr4,@(gr10,#4*0x08) + sti gr5,@(gr10,#4*0x08+0x100) + sti gr6,@(gr11,#4*0x08) + sethi.p %hi(__region_CS5),gr4 + setlo %lo(__region_CS5),gr4 + sethi.p %hi(__region_CS5_M),gr5 + setlo %lo(__region_CS5_M),gr5 + sethi.p %hi(__region_CS5_C),gr6 + setlo %lo(__region_CS5_C),gr6 + sti gr4,@(gr10,#5*0x08) + sti gr5,@(gr10,#5*0x08+0x100) + sti gr6,@(gr11,#5*0x08) + sethi.p %hi(__region_CS6),gr4 + setlo %lo(__region_CS6),gr4 + sethi.p %hi(__region_CS6_M),gr5 + setlo %lo(__region_CS6_M),gr5 + sethi.p %hi(__region_CS6_C),gr6 + setlo %lo(__region_CS6_C),gr6 + sti gr4,@(gr10,#6*0x08) + sti gr5,@(gr10,#6*0x08+0x100) + sti gr6,@(gr11,#6*0x08) + sethi.p %hi(__region_CS7),gr4 + setlo %lo(__region_CS7),gr4 + sethi.p %hi(__region_CS7_M),gr5 + setlo %lo(__region_CS7_M),gr5 + sethi.p %hi(__region_CS7_C),gr6 + setlo %lo(__region_CS7_C),gr6 + sti gr4,@(gr10,#7*0x08) + sti gr5,@(gr10,#7*0x08+0x100) + sti gr6,@(gr11,#7*0x08) + membar + bar + + # adjust LED bank address +#ifdef CONFIG_MB93091_VDK + sethi.p %hi(LED_ADDR - 0x20000000 +__region_CS2),gr30 + setlo %lo(LED_ADDR - 0x20000000 +__region_CS2),gr30 +#endif + bralr + +############################################################################### +# +# determine the total SDRAM size +# +# ENTRY: EXIT: +# GR25 - SDRAM size +# GR26 &__head_reference [saved] +# GR30 LED address [saved] +# +############################################################################### + .globl __head_fr555_survey_sdram +__head_fr555_survey_sdram: + sethi.p %hi(__551_DAMK0),gr11 + setlo %lo(__551_DAMK0),gr11 + sethi.p %hi(__551_DARS0),gr12 + setlo %lo(__551_DARS0),gr12 + + sethi.p %hi(0xfff),gr17 ; unused SDRAM AMK value + setlo %lo(0xfff),gr17 + setlos #0,gr25 + + ldi @(gr11,#0x00),gr6 ; DAMK0: bits 11:0 match addr 11:0 + subcc gr6,gr17,gr0,icc0 + beq icc0,#0,__head_no_DCS0 + ldi @(gr12,#0x00),gr4 ; DARS0 + add gr25,gr6,gr25 + addi gr25,#1,gr25 +__head_no_DCS0: + + ldi @(gr11,#0x04),gr6 ; DAMK1: bits 11:0 match addr 11:0 + subcc gr6,gr17,gr0,icc0 + beq icc0,#0,__head_no_DCS1 + ldi @(gr12,#0x04),gr4 ; DARS1 + add gr25,gr6,gr25 + addi gr25,#1,gr25 +__head_no_DCS1: + + ldi @(gr11,#0x8),gr6 ; DAMK2: bits 11:0 match addr 11:0 + subcc gr6,gr17,gr0,icc0 + beq icc0,#0,__head_no_DCS2 + ldi @(gr12,#0x8),gr4 ; DARS2 + add gr25,gr6,gr25 + addi gr25,#1,gr25 +__head_no_DCS2: + + ldi @(gr11,#0xc),gr6 ; DAMK3: bits 11:0 match addr 11:0 + subcc gr6,gr17,gr0,icc0 + beq icc0,#0,__head_no_DCS3 + ldi @(gr12,#0xc),gr4 ; DARS3 + add gr25,gr6,gr25 + addi gr25,#1,gr25 +__head_no_DCS3: + + slli gr25,#20,gr25 ; shift [11:0] -> [31:20] + bralr + +############################################################################### +# +# set the protection map with the I/DAMPR registers +# +# ENTRY: EXIT: +# GR25 SDRAM size saved +# GR30 LED address saved +# +############################################################################### + .globl __head_fr555_set_protection +__head_fr555_set_protection: + movsg lr,gr27 + + sethi.p %hi(0xfff00000),gr11 + setlo %lo(0xfff00000),gr11 + + # set the I/O region protection registers for FR555 + sethi.p %hi(__region_IO),gr7 + setlo %lo(__region_IO),gr7 + ori gr7,#xAMPRx_SS_512Mb|xAMPRx_S_KERNEL|xAMPRx_C|xAMPRx_V,gr5 + movgs gr0,iampr15 + movgs gr0,iamlr15 + movgs gr5,dampr15 + movgs gr7,damlr15 + + # need to tile the remaining IAMPR/DAMPR registers to cover as much of the RAM as possible + # - start with the highest numbered registers + sethi.p %hi(__kernel_image_end),gr8 + setlo %lo(__kernel_image_end),gr8 + sethi.p %hi(32768),gr4 ; allow for a maximal allocator bitmap + setlo %lo(32768),gr4 + add gr8,gr4,gr8 + sethi.p %hi(1024*2048-1),gr4 ; round up to nearest 2MiB + setlo %lo(1024*2048-1),gr4 + add.p gr8,gr4,gr8 + not gr4,gr4 + and gr8,gr4,gr8 + + sethi.p %hi(__page_offset),gr9 + setlo %lo(__page_offset),gr9 + add gr9,gr25,gr9 + + # GR8 = base of uncovered RAM + # GR9 = top of uncovered RAM + # GR11 - mask for DAMLR/IAMLR regs + # + call __head_split_region + movgs gr4,iampr14 + movgs gr6,iamlr14 + movgs gr5,dampr14 + movgs gr7,damlr14 + call __head_split_region + movgs gr4,iampr13 + movgs gr6,iamlr13 + movgs gr5,dampr13 + movgs gr7,damlr13 + call __head_split_region + movgs gr4,iampr12 + movgs gr6,iamlr12 + movgs gr5,dampr12 + movgs gr7,damlr12 + call __head_split_region + movgs gr4,iampr11 + movgs gr6,iamlr11 + movgs gr5,dampr11 + movgs gr7,damlr11 + call __head_split_region + movgs gr4,iampr10 + movgs gr6,iamlr10 + movgs gr5,dampr10 + movgs gr7,damlr10 + call __head_split_region + movgs gr4,iampr9 + movgs gr6,iamlr9 + movgs gr5,dampr9 + movgs gr7,damlr9 + call __head_split_region + movgs gr4,iampr8 + movgs gr6,iamlr8 + movgs gr5,dampr8 + movgs gr7,damlr8 + + call __head_split_region + movgs gr4,iampr7 + movgs gr6,iamlr7 + movgs gr5,dampr7 + movgs gr7,damlr7 + call __head_split_region + movgs gr4,iampr6 + movgs gr6,iamlr6 + movgs gr5,dampr6 + movgs gr7,damlr6 + call __head_split_region + movgs gr4,iampr5 + movgs gr6,iamlr5 + movgs gr5,dampr5 + movgs gr7,damlr5 + call __head_split_region + movgs gr4,iampr4 + movgs gr6,iamlr4 + movgs gr5,dampr4 + movgs gr7,damlr4 + call __head_split_region + movgs gr4,iampr3 + movgs gr6,iamlr3 + movgs gr5,dampr3 + movgs gr7,damlr3 + call __head_split_region + movgs gr4,iampr2 + movgs gr6,iamlr2 + movgs gr5,dampr2 + movgs gr7,damlr2 + call __head_split_region + movgs gr4,iampr1 + movgs gr6,iamlr1 + movgs gr5,dampr1 + movgs gr7,damlr1 + + # cover kernel core image with kernel-only segment + sethi.p %hi(__page_offset),gr8 + setlo %lo(__page_offset),gr8 + call __head_split_region + +#ifdef CONFIG_PROTECT_KERNEL + ori.p gr4,#xAMPRx_S_KERNEL,gr4 + ori gr5,#xAMPRx_S_KERNEL,gr5 +#endif + + movgs gr4,iampr0 + movgs gr6,iamlr0 + movgs gr5,dampr0 + movgs gr7,damlr0 + jmpl @(gr27,gr0) diff -Nru a/arch/frv/kernel/head.S b/arch/frv/kernel/head.S --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/head.S 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,639 @@ +/* head.S: kernel entry point for FR-V kernel + * + * Copyright (C) 2003, 2004 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include "head.inc" + +############################################################################### +# +# void _boot(unsigned long magic, char *command_line) __attribute__((noreturn)) +# +# - if magic is 0xdead1eaf, then command_line is assumed to point to the kernel +# command line string +# +############################################################################### + .section .text.head,"ax" + .balign 4 + + .globl _boot, __head_reference + .type _boot,@function +_boot: +__head_reference: + sethi.p %hi(LED_ADDR),gr30 + setlo %lo(LED_ADDR),gr30 + + LEDS 0x0000 + + # calculate reference address for PC-relative stuff + call 0f +0: movsg lr,gr26 + addi gr26,#__head_reference-0b,gr26 + + # invalidate and disable both of the caches and turn off the memory access checking + dcef @(gr0,gr0),1 + bar + + sethi.p %hi(~(HSR0_ICE|HSR0_DCE|HSR0_CBM|HSR0_EIMMU|HSR0_EDMMU)),gr4 + setlo %lo(~(HSR0_ICE|HSR0_DCE|HSR0_CBM|HSR0_EIMMU|HSR0_EDMMU)),gr4 + movsg hsr0,gr5 + and gr4,gr5,gr5 + movgs gr5,hsr0 + movsg hsr0,gr5 + + LEDS 0x0001 + + icei @(gr0,gr0),1 + dcei @(gr0,gr0),1 + bar + + # turn the instruction cache back on + sethi.p %hi(HSR0_ICE),gr4 + setlo %lo(HSR0_ICE),gr4 + movsg hsr0,gr5 + or gr4,gr5,gr5 + movgs gr5,hsr0 + movsg hsr0,gr5 + + bar + + LEDS 0x0002 + + # retrieve the parameters (including command line) before we overwrite them + sethi.p %hi(0xdead1eaf),gr7 + setlo %lo(0xdead1eaf),gr7 + subcc gr7,gr8,gr0,icc0 + bne icc0,#0,__head_no_parameters + + sethi.p %hi(redboot_command_line-1),gr6 + setlo %lo(redboot_command_line-1),gr6 + sethi.p %hi(__head_reference),gr4 + setlo %lo(__head_reference),gr4 + sub gr6,gr4,gr6 + add.p gr6,gr26,gr6 + subi gr9,#1,gr9 + setlos.p #511,gr4 + setlos #1,gr5 + +__head_copy_cmdline: + ldubu.p @(gr9,gr5),gr16 + subicc gr4,#1,gr4,icc0 + stbu.p gr16,@(gr6,gr5) + subicc gr16,#0,gr0,icc1 + bls icc0,#0,__head_end_cmdline + bne icc1,#1,__head_copy_cmdline +__head_end_cmdline: + stbu gr0,@(gr6,gr5) +__head_no_parameters: + +############################################################################### +# +# we need to relocate the SDRAM to 0x00000000 (linux) or 0xC0000000 (uClinux) +# - note that we're going to have to run entirely out of the icache whilst +# fiddling with the SDRAM controller registers +# +############################################################################### +#ifdef CONFIG_MMU + call __head_fr451_describe_sdram + +#else + movsg psr,gr5 + srli gr5,#28,gr5 + subicc gr5,#3,gr0,icc0 + beq icc0,#0,__head_fr551_sdram + + call __head_fr401_describe_sdram + bra __head_do_sdram + +__head_fr551_sdram: + call __head_fr555_describe_sdram + LEDS 0x000d + +__head_do_sdram: +#endif + + # preload the registers with invalid values in case any DBR/DARS are marked not present + sethi.p %hi(0xfe000000),gr17 ; unused SDRAM DBR value + setlo %lo(0xfe000000),gr17 + or.p gr17,gr0,gr20 + or gr17,gr0,gr21 + or.p gr17,gr0,gr22 + or gr17,gr0,gr23 + + # consult the SDRAM controller CS address registers + cld @(gr14,gr0 ),gr20, cc0,#1 ; DBR0 / DARS0 + cld @(gr14,gr11),gr21, cc1,#1 ; DBR1 / DARS1 + cld @(gr14,gr12),gr22, cc2,#1 ; DBR2 / DARS2 + cld.p @(gr14,gr13),gr23, cc3,#1 ; DBR3 / DARS3 + + sll gr20,gr15,gr20 ; shift values up for FR551 + sll gr21,gr15,gr21 + sll gr22,gr15,gr22 + sll gr23,gr15,gr23 + + LEDS 0x0003 + + # assume the lowest valid CS line to be the SDRAM base and get its address + subcc gr20,gr17,gr0,icc0 + subcc.p gr21,gr17,gr0,icc1 + subcc gr22,gr17,gr0,icc2 + subcc.p gr23,gr17,gr0,icc3 + ckne icc0,cc4 ; T if DBR0 != 0xfe000000 + ckne icc1,cc5 + ckne icc2,cc6 + ckne icc3,cc7 + cor gr23,gr0,gr24, cc7,#1 ; GR24 = SDRAM base + cor gr22,gr0,gr24, cc6,#1 + cor gr21,gr0,gr24, cc5,#1 + cor gr20,gr0,gr24, cc4,#1 + + # calculate the displacement required to get the SDRAM into the right place in memory + sethi.p %hi(__sdram_base),gr16 + setlo %lo(__sdram_base),gr16 + sub gr16,gr24,gr16 ; delta = __sdram_base - DBRx + + # calculate the new values to go in the controller regs + cadd.p gr20,gr16,gr20, cc4,#1 ; DCS#0 (new) = DCS#0 (old) + delta + cadd gr21,gr16,gr21, cc5,#1 + cadd.p gr22,gr16,gr22, cc6,#1 + cadd gr23,gr16,gr23, cc7,#1 + + srl gr20,gr15,gr20 ; shift values down for FR551 + srl gr21,gr15,gr21 + srl gr22,gr15,gr22 + srl gr23,gr15,gr23 + + # work out the address at which the reg updater resides and lock it into icache + # also work out the address the updater will jump to when finished + sethi.p %hi(__head_move_sdram-__head_reference),gr18 + setlo %lo(__head_move_sdram-__head_reference),gr18 + sethi.p %hi(__head_sdram_moved-__head_reference),gr19 + setlo %lo(__head_sdram_moved-__head_reference),gr19 + add.p gr18,gr26,gr18 + add gr19,gr26,gr19 + add.p gr19,gr16,gr19 ; moved = addr + (__sdram_base - DBRx) + add gr18,gr5,gr4 ; two cachelines probably required + + icpl gr18,gr0,#1 ; load and lock the cachelines + icpl gr4,gr0,#1 + LEDS 0x0004 + membar + bar + jmpl @(gr18,gr0) + + .balign L1_CACHE_BYTES +__head_move_sdram: + cst gr20,@(gr14,gr0 ), cc4,#1 + cst gr21,@(gr14,gr11), cc5,#1 + cst gr22,@(gr14,gr12), cc6,#1 + cst gr23,@(gr14,gr13), cc7,#1 + cld @(gr14,gr0 ),gr20, cc4,#1 + cld @(gr14,gr11),gr21, cc5,#1 + cld @(gr14,gr12),gr22, cc4,#1 + cld @(gr14,gr13),gr23, cc7,#1 + bar + membar + jmpl @(gr19,gr0) + + .balign L1_CACHE_BYTES +__head_sdram_moved: + icul gr18 + add gr18,gr5,gr4 + icul gr4 + icei @(gr0,gr0),1 + dcei @(gr0,gr0),1 + + LEDS 0x0005 + + # recalculate reference address + call 0f +0: movsg lr,gr26 + addi gr26,#__head_reference-0b,gr26 + + +############################################################################### +# +# move the kernel image down to the bottom of the SDRAM +# +############################################################################### + sethi.p %hi(__kernel_image_size_no_bss+15),gr4 + setlo %lo(__kernel_image_size_no_bss+15),gr4 + srli.p gr4,#4,gr4 ; count + or gr26,gr26,gr16 ; source + + sethi.p %hi(__sdram_base),gr17 ; destination + setlo %lo(__sdram_base),gr17 + + setlos #8,gr5 + sub.p gr16,gr5,gr16 ; adjust src for LDDU + sub gr17,gr5,gr17 ; adjust dst for LDDU + + sethi.p %hi(__head_move_kernel-__head_reference),gr18 + setlo %lo(__head_move_kernel-__head_reference),gr18 + sethi.p %hi(__head_kernel_moved-__head_reference+__sdram_base),gr19 + setlo %lo(__head_kernel_moved-__head_reference+__sdram_base),gr19 + add gr18,gr26,gr18 + icpl gr18,gr0,#1 + jmpl @(gr18,gr0) + + .balign 32 +__head_move_kernel: + lddu @(gr16,gr5),gr10 + lddu @(gr16,gr5),gr12 + stdu.p gr10,@(gr17,gr5) + subicc gr4,#1,gr4,icc0 + stdu.p gr12,@(gr17,gr5) + bhi icc0,#0,__head_move_kernel + jmpl @(gr19,gr0) + + .balign 32 +__head_kernel_moved: + icul gr18 + icei @(gr0,gr0),1 + dcei @(gr0,gr0),1 + + LEDS 0x0006 + + # recalculate reference address + call 0f +0: movsg lr,gr26 + addi gr26,#__head_reference-0b,gr26 + + +############################################################################### +# +# rearrange the iomem map and set the protection registers +# +############################################################################### + +#ifdef CONFIG_MMU + LEDS 0x3301 + call __head_fr451_set_busctl + LEDS 0x3303 + call __head_fr451_survey_sdram + LEDS 0x3305 + call __head_fr451_set_protection + +#else + movsg psr,gr5 + srli gr5,#PSR_IMPLE_SHIFT,gr5 + subicc gr5,#PSR_IMPLE_FR551,gr0,icc0 + beq icc0,#0,__head_fr555_memmap + subicc gr5,#PSR_IMPLE_FR451,gr0,icc0 + beq icc0,#0,__head_fr451_memmap + + LEDS 0x3101 + call __head_fr401_set_busctl + LEDS 0x3103 + call __head_fr401_survey_sdram + LEDS 0x3105 + call __head_fr401_set_protection + bra __head_done_memmap + +__head_fr451_memmap: + LEDS 0x3301 + call __head_fr401_set_busctl + LEDS 0x3303 + call __head_fr401_survey_sdram + LEDS 0x3305 + call __head_fr451_set_protection + bra __head_done_memmap + +__head_fr555_memmap: + LEDS 0x3501 + call __head_fr555_set_busctl + LEDS 0x3503 + call __head_fr555_survey_sdram + LEDS 0x3505 + call __head_fr555_set_protection + +__head_done_memmap: +#endif + LEDS 0x0007 + +############################################################################### +# +# turn the data cache and MMU on +# - for the FR451 this'll mean that the window through which the kernel is +# viewed will change +# +############################################################################### + +#ifdef CONFIG_MMU +#define MMUMODE HSR0_EIMMU|HSR0_EDMMU|HSR0_EXMMU|HSR0_EDAT|HSR0_XEDAT +#else +#define MMUMODE HSR0_EIMMU|HSR0_EDMMU +#endif + + movsg hsr0,gr5 + + sethi.p %hi(MMUMODE),gr4 + setlo %lo(MMUMODE),gr4 + or gr4,gr5,gr5 + +#if defined(CONFIG_FRV_DEFL_CACHE_WTHRU) + sethi.p %hi(HSR0_DCE|HSR0_CBM_WRITE_THRU),gr4 + setlo %lo(HSR0_DCE|HSR0_CBM_WRITE_THRU),gr4 +#elif defined(CONFIG_FRV_DEFL_CACHE_WBACK) + sethi.p %hi(HSR0_DCE|HSR0_CBM_COPY_BACK),gr4 + setlo %lo(HSR0_DCE|HSR0_CBM_COPY_BACK),gr4 +#elif defined(CONFIG_FRV_DEFL_CACHE_WBEHIND) + sethi.p %hi(HSR0_DCE|HSR0_CBM_COPY_BACK),gr4 + setlo %lo(HSR0_DCE|HSR0_CBM_COPY_BACK),gr4 + + movsg psr,gr6 + srli gr6,#24,gr6 + cmpi gr6,#0x50,icc0 // FR451 + beq icc0,#0,0f + cmpi gr6,#0x40,icc0 // FR405 + bne icc0,#0,1f +0: + # turn off write-allocate + sethi.p %hi(HSR0_NWA),gr6 + setlo %lo(HSR0_NWA),gr6 + or gr4,gr6,gr4 +1: + +#else +#error No default cache configuration set +#endif + + or gr4,gr5,gr5 + movgs gr5,hsr0 + bar + + LEDS 0x0008 + + sethi.p %hi(__head_mmu_enabled),gr19 + setlo %lo(__head_mmu_enabled),gr19 + jmpl @(gr19,gr0) + +__head_mmu_enabled: + icei @(gr0,gr0),#1 + dcei @(gr0,gr0),#1 + + LEDS 0x0009 + +#ifdef CONFIG_MMU + call __head_fr451_finalise_protection +#endif + + LEDS 0x000a + +############################################################################### +# +# set up the runtime environment +# +############################################################################### + + # clear the BSS area + sethi.p %hi(__bss_start),gr4 + setlo %lo(__bss_start),gr4 + sethi.p %hi(_end),gr5 + setlo %lo(_end),gr5 + or.p gr0,gr0,gr18 + or gr0,gr0,gr19 + +0: + stdi gr18,@(gr4,#0) + stdi gr18,@(gr4,#8) + stdi gr18,@(gr4,#16) + stdi.p gr18,@(gr4,#24) + addi gr4,#24,gr4 + subcc gr5,gr4,gr0,icc0 + bhi icc0,#2,0b + + LEDS 0x000b + + # save the SDRAM details + sethi.p %hi(__sdram_old_base),gr4 + setlo %lo(__sdram_old_base),gr4 + st gr24,@(gr4,gr0) + + sethi.p %hi(__sdram_base),gr5 + setlo %lo(__sdram_base),gr5 + sethi.p %hi(memory_start),gr4 + setlo %lo(memory_start),gr4 + st gr5,@(gr4,gr0) + + add gr25,gr5,gr25 + sethi.p %hi(memory_end),gr4 + setlo %lo(memory_end),gr4 + st gr25,@(gr4,gr0) + + # point the TBR at the kernel trap table + sethi.p %hi(__entry_kerneltrap_table),gr4 + setlo %lo(__entry_kerneltrap_table),gr4 + movgs gr4,tbr + + # set up the exception frame for init + sethi.p %hi(__kernel_frame0_ptr),gr28 + setlo %lo(__kernel_frame0_ptr),gr28 + sethi.p %hi(_gp),gr16 + setlo %lo(_gp),gr16 + sethi.p %hi(__entry_usertrap_table),gr4 + setlo %lo(__entry_usertrap_table),gr4 + + lddi @(gr28,#0),gr28 ; load __frame & current + ldi.p @(gr29,#4),gr15 ; set current_thread + + or gr0,gr0,fp + or gr28,gr0,sp + + sti.p gr4,@(gr28,REG_TBR) + setlos #ISR_EDE|ISR_DTT_DIVBYZERO|ISR_EMAM_EXCEPTION,gr5 + movgs gr5,isr + + # turn on and off various CPU services + movsg psr,gr22 + sethi.p %hi(#PSR_EM|PSR_EF|PSR_CM|PSR_NEM),gr4 + setlo %lo(#PSR_EM|PSR_EF|PSR_CM|PSR_NEM),gr4 + or gr22,gr4,gr22 + movgs gr22,psr + + andi gr22,#~(PSR_PIL|PSR_PS|PSR_S),gr22 + ori gr22,#PSR_ET,gr22 + sti gr22,@(gr28,REG_PSR) + + +############################################################################### +# +# set up the registers and jump into the kernel +# +############################################################################### + + LEDS 0x000c + + # initialise the processor and the peripherals + #call SYMBOL_NAME(processor_init) + #call SYMBOL_NAME(unit_init) + #LEDS 0x0aff + + sethi.p #0xe5e5,gr3 + setlo #0xe5e5,gr3 + or.p gr3,gr0,gr4 + or gr3,gr0,gr5 + or.p gr3,gr0,gr6 + or gr3,gr0,gr7 + or.p gr3,gr0,gr8 + or gr3,gr0,gr9 + or.p gr3,gr0,gr10 + or gr3,gr0,gr11 + or.p gr3,gr0,gr12 + or gr3,gr0,gr13 + or.p gr3,gr0,gr14 + or gr3,gr0,gr17 + or.p gr3,gr0,gr18 + or gr3,gr0,gr19 + or.p gr3,gr0,gr20 + or gr3,gr0,gr21 + or.p gr3,gr0,gr23 + or gr3,gr0,gr24 + or.p gr3,gr0,gr25 + or gr3,gr0,gr26 + or.p gr3,gr0,gr27 +# or gr3,gr0,gr30 + or gr3,gr0,gr31 + movgs gr0,lr + movgs gr0,lcr + movgs gr0,ccr + movgs gr0,cccr + +#ifdef CONFIG_MMU + movgs gr3,scr2 + movgs gr3,scr3 +#endif + + LEDS 0x0fff + + # invoke the debugging stub if present + # - arch/frv/kernel/debug-stub.c will shift control directly to init/main.c + # (it will not return here) + break + .globl __debug_stub_init_break +__debug_stub_init_break: + + # however, if you need to use an ICE, and don't care about using any userspace + # debugging tools (such as the ptrace syscall), you can just step over the break + # above and get to the kernel this way + # look at arch/frv/kernel/debug-stub.c: debug_stub_init() to see what you've missed + call start_kernel + + .globl __head_end +__head_end: + .size _boot, .-_boot + + # provide a point for GDB to place a break + .section .text.start,"ax" + .globl _start + .balign 4 +_start: + call _boot + + .previous +############################################################################### +# +# split a tile off of the region defined by GR8-GR9 +# +# ENTRY: EXIT: +# GR4 - IAMPR value representing tile +# GR5 - DAMPR value representing tile +# GR6 - IAMLR value representing tile +# GR7 - DAMLR value representing tile +# GR8 region base pointer [saved] +# GR9 region top pointer updated to exclude new tile +# GR11 xAMLR mask [saved] +# GR25 SDRAM size [saved] +# GR30 LED address [saved] +# +# - GR8 and GR9 should be rounded up/down to the nearest megabyte before calling +# +############################################################################### + .globl __head_split_region + .type __head_split_region,@function +__head_split_region: + subcc.p gr9,gr8,gr4,icc0 + setlos #31,gr5 + scan.p gr4,gr0,gr6 + beq icc0,#0,__head_region_empty + sub.p gr5,gr6,gr6 ; bit number of highest set bit (1MB=>20) + setlos #1,gr4 + sll.p gr4,gr6,gr4 ; size of region (1 << bitno) + subi gr6,#17,gr6 ; 1MB => 0x03 + slli.p gr6,#4,gr6 ; 1MB => 0x30 + sub gr9,gr4,gr9 ; move uncovered top down + + or gr9,gr6,gr4 + ori gr4,#xAMPRx_S_USER|xAMPRx_C_CACHED|xAMPRx_V,gr4 + or.p gr4,gr0,gr5 + + and gr4,gr11,gr6 + and.p gr5,gr11,gr7 + bralr + +__head_region_empty: + or.p gr0,gr0,gr4 + or gr0,gr0,gr5 + or.p gr0,gr0,gr6 + or gr0,gr0,gr7 + bralr + .size __head_split_region, .-__head_split_region + +############################################################################### +# +# write the 32-bit hex number in GR8 to ttyS0 +# +############################################################################### +#if 0 + .globl __head_write_to_ttyS0 + .type __head_write_to_ttyS0,@function +__head_write_to_ttyS0: + sethi.p %hi(0xfeff9c00),gr31 + setlo %lo(0xfeff9c00),gr31 + setlos #8,gr20 + +0: ldubi @(gr31,#5*8),gr21 + andi gr21,#0x60,gr21 + subicc gr21,#0x60,gr21,icc0 + bne icc0,#0,0b + +1: srli gr8,#28,gr21 + slli gr8,#4,gr8 + + addi gr21,#'0',gr21 + subicc gr21,#'9',gr0,icc0 + bls icc0,#2,2f + addi gr21,#'A'-'0'-10,gr21 +2: + stbi gr21,@(gr31,#0*8) + subicc gr20,#1,gr20,icc0 + bhi icc0,#2,1b + + setlos #'\r',gr21 + stbi gr21,@(gr31,#0*8) + + setlos #'\n',gr21 + stbi gr21,@(gr31,#0*8) + +3: ldubi @(gr31,#5*8),gr21 + andi gr21,#0x60,gr21 + subicc gr21,#0x60,gr21,icc0 + bne icc0,#0,3b + bralr + + .size __head_write_to_ttyS0, .-__head_write_to_ttyS0 +#endif diff -Nru a/arch/frv/kernel/head.inc b/arch/frv/kernel/head.inc --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/head.inc 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,50 @@ +/* head.inc: head common definitions -*- asm -*- + * + * Copyright (C) 2004 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + + +#if defined(CONFIG_MB93090_MB00) +#define LED_ADDR (0x21200000+4) + +.macro LEDS val + sethi.p %hi(0xFFC00030),gr3 + setlo %lo(0xFFC00030),gr3 + lduh @(gr3,gr0),gr3 + andicc gr3,#0x100,gr0,icc0 + bne icc0,0,999f + + setlos #~\val,gr3 + st gr3,@(gr30,gr0) + membar + dcf @(gr30,gr0) + 999: +.endm + +#elif defined(CONFIG_MB93093_PDK) +#define LED_ADDR (0x20000023) + +.macro LEDS val + setlos #\val,gr3 + stb gr3,@(gr30,gr0) + membar +.endm + +#else +#define LED_ADDR 0 + +.macro LEDS val +.endm +#endif + +#ifdef CONFIG_MMU +__sdram_base = 0x00000000 /* base address to which SDRAM relocated */ +#else +__sdram_base = 0xc0000000 /* base address to which SDRAM relocated */ +#endif diff -Nru a/arch/frv/kernel/init_task.c b/arch/frv/kernel/init_task.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/init_task.c 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,39 @@ +#include +#include +#include +#include +#include +#include +#include + +#include +#include + + +static struct fs_struct init_fs = INIT_FS; +static struct files_struct init_files = INIT_FILES; +static struct signal_struct init_signals = INIT_SIGNALS(init_signals); +static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand); +struct mm_struct init_mm = INIT_MM(init_mm); + +EXPORT_SYMBOL(init_mm); + +/* + * Initial thread structure. + * + * We need to make sure that this is THREAD_SIZE aligned due to the + * way process stacks are handled. This is done by having a special + * "init_task" linker map entry.. + */ +union thread_union init_thread_union + __attribute__((__section__(".data.init_task"))) = + { INIT_THREAD_INFO(init_task) }; + +/* + * Initial task structure. + * + * All other task structs will be allocated on slabs in fork.c + */ +struct task_struct init_task = INIT_TASK(init_task); + +EXPORT_SYMBOL(init_task); diff -Nru a/arch/frv/kernel/irq-mb93091.c b/arch/frv/kernel/irq-mb93091.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/irq-mb93091.c 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,116 @@ +/* irq-mb93091.c: MB93091 FPGA interrupt handling + * + * Copyright (C) 2003 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#define __reg16(ADDR) (*(volatile unsigned short *)(ADDR)) + +#define __get_IMR() ({ __reg16(0xffc00004); }) +#define __set_IMR(M) do { __reg16(0xffc00004) = (M); wmb(); } while(0) +#define __get_IFR() ({ __reg16(0xffc0000c); }) +#define __clr_IFR(M) do { __reg16(0xffc0000c) = ~(M); wmb(); } while(0) + +static void frv_fpga_doirq(struct irq_source *source); +static void frv_fpga_control(struct irq_group *group, int irq, int on); + +/*****************************************************************************/ +/* + * FPGA IRQ multiplexor + */ +static struct irq_source frv_fpga[4] = { +#define __FPGA(X, M) \ + [X] = { \ + .muxname = "fpga."#X, \ + .irqmask = M, \ + .doirq = frv_fpga_doirq, \ + } + + __FPGA(0, 0x0028), + __FPGA(1, 0x0050), + __FPGA(2, 0x1c00), + __FPGA(3, 0x6386), +}; + +static struct irq_group frv_fpga_irqs = { + .first_irq = IRQ_BASE_FPGA, + .control = frv_fpga_control, + .sources = { + [ 1] = &frv_fpga[3], + [ 2] = &frv_fpga[3], + [ 3] = &frv_fpga[0], + [ 4] = &frv_fpga[1], + [ 5] = &frv_fpga[0], + [ 6] = &frv_fpga[1], + [ 7] = &frv_fpga[3], + [ 8] = &frv_fpga[3], + [ 9] = &frv_fpga[3], + [10] = &frv_fpga[2], + [11] = &frv_fpga[2], + [12] = &frv_fpga[2], + [13] = &frv_fpga[3], + [14] = &frv_fpga[3], + }, +}; + + +static void frv_fpga_control(struct irq_group *group, int index, int on) +{ + uint16_t imr = __get_IMR(); + + if (on) + imr &= ~(1 << index); + else + imr |= 1 << index; + + __set_IMR(imr); +} + +static void frv_fpga_doirq(struct irq_source *source) +{ + uint16_t mask, imr; + + imr = __get_IMR(); + mask = source->irqmask & ~imr & __get_IFR(); + if (mask) { + __set_IMR(imr | mask); + __clr_IFR(mask); + distribute_irqs(&frv_fpga_irqs, mask); + __set_IMR(imr); + } +} + +void __init fpga_init(void) +{ + __set_IMR(0x7ffe); + __clr_IFR(0x0000); + + frv_irq_route_external(&frv_fpga[0], IRQ_CPU_EXTERNAL0); + frv_irq_route_external(&frv_fpga[1], IRQ_CPU_EXTERNAL1); + frv_irq_route_external(&frv_fpga[2], IRQ_CPU_EXTERNAL2); + frv_irq_route_external(&frv_fpga[3], IRQ_CPU_EXTERNAL3); + frv_irq_set_group(&frv_fpga_irqs); +} diff -Nru a/arch/frv/kernel/irq-mb93093.c b/arch/frv/kernel/irq-mb93093.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/irq-mb93093.c 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,99 @@ +/* irq-mb93093.c: MB93093 FPGA interrupt handling + * + * Copyright (C) 2004 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#define __reg16(ADDR) (*(volatile unsigned short *)(__region_CS2 + (ADDR))) + +#define __get_IMR() ({ __reg16(0x0a); }) +#define __set_IMR(M) do { __reg16(0x0a) = (M); wmb(); } while(0) +#define __get_IFR() ({ __reg16(0x02); }) +#define __clr_IFR(M) do { __reg16(0x02) = ~(M); wmb(); } while(0) + +static void frv_fpga_doirq(struct irq_source *source); +static void frv_fpga_control(struct irq_group *group, int irq, int on); + +/*****************************************************************************/ +/* + * FPGA IRQ multiplexor + */ +static struct irq_source frv_fpga[4] = { +#define __FPGA(X, M) \ + [X] = { \ + .muxname = "fpga."#X, \ + .irqmask = M, \ + .doirq = frv_fpga_doirq, \ + } + + __FPGA(0, 0x0700), +}; + +static struct irq_group frv_fpga_irqs = { + .first_irq = IRQ_BASE_FPGA, + .control = frv_fpga_control, + .sources = { + [ 8] = &frv_fpga[0], + [ 9] = &frv_fpga[0], + [10] = &frv_fpga[0], + }, +}; + + +static void frv_fpga_control(struct irq_group *group, int index, int on) +{ + uint16_t imr = __get_IMR(); + + if (on) + imr &= ~(1 << index); + else + imr |= 1 << index; + + __set_IMR(imr); +} + +static void frv_fpga_doirq(struct irq_source *source) +{ + uint16_t mask, imr; + + imr = __get_IMR(); + mask = source->irqmask & ~imr & __get_IFR(); + if (mask) { + __set_IMR(imr | mask); + __clr_IFR(mask); + distribute_irqs(&frv_fpga_irqs, mask); + __set_IMR(imr); + } +} + +void __init fpga_init(void) +{ + __set_IMR(0x0700); + __clr_IFR(0x0000); + + frv_irq_route_external(&frv_fpga[0], IRQ_CPU_EXTERNAL2); + frv_irq_set_group(&frv_fpga_irqs); +} diff -Nru a/arch/frv/kernel/irq-mb93493.c b/arch/frv/kernel/irq-mb93493.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/irq-mb93493.c 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,108 @@ +/* irq-mb93493.c: MB93493 companion chip interrupt handler + * + * Copyright (C) 2004 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +static void frv_mb93493_doirq(struct irq_source *source); + +/*****************************************************************************/ +/* + * MB93493 companion chip IRQ multiplexor + */ +static struct irq_source frv_mb93493[2] = { + [0] = { + .muxname = "mb93493.0", + .muxdata = __region_CS3 + 0x3d0, + .doirq = frv_mb93493_doirq, + .irqmask = 0x0000, + }, + [1] = { + .muxname = "mb93493.1", + .muxdata = __region_CS3 + 0x3d4, + .doirq = frv_mb93493_doirq, + .irqmask = 0x0000, + }, +}; + +static void frv_mb93493_control(struct irq_group *group, int index, int on) +{ + struct irq_source *source; + uint32_t iqsr; + + if ((frv_mb93493[0].irqmask & (1 << index))) + source = &frv_mb93493[0]; + else + source = &frv_mb93493[1]; + + iqsr = readl(source->muxdata); + if (on) + iqsr |= 1 << (index + 16); + else + iqsr &= ~(1 << (index + 16)); + + writel(iqsr, source->muxdata); +} + +static struct irq_group frv_mb93493_irqs = { + .first_irq = IRQ_BASE_MB93493, + .control = frv_mb93493_control, +}; + +static void frv_mb93493_doirq(struct irq_source *source) +{ + uint32_t mask = readl(source->muxdata); + mask = mask & (mask >> 16) & 0xffff; + + if (mask) + distribute_irqs(&frv_mb93493_irqs, mask); +} + +static void __init mb93493_irq_route(int irq, int source) +{ + frv_mb93493[source].irqmask |= 1 << (irq - IRQ_BASE_MB93493); + frv_mb93493_irqs.sources[irq - IRQ_BASE_MB93493] = &frv_mb93493[source]; +} + +void __init route_mb93493_irqs(void) +{ + frv_irq_route_external(&frv_mb93493[0], IRQ_CPU_MB93493_0); + frv_irq_route_external(&frv_mb93493[1], IRQ_CPU_MB93493_1); + + frv_irq_set_group(&frv_mb93493_irqs); + + mb93493_irq_route(IRQ_MB93493_VDC, IRQ_MB93493_VDC_ROUTE); + mb93493_irq_route(IRQ_MB93493_VCC, IRQ_MB93493_VCC_ROUTE); + mb93493_irq_route(IRQ_MB93493_AUDIO_IN, IRQ_MB93493_AUDIO_IN_ROUTE); + mb93493_irq_route(IRQ_MB93493_I2C_0, IRQ_MB93493_I2C_0_ROUTE); + mb93493_irq_route(IRQ_MB93493_I2C_1, IRQ_MB93493_I2C_1_ROUTE); + mb93493_irq_route(IRQ_MB93493_USB, IRQ_MB93493_USB_ROUTE); + mb93493_irq_route(IRQ_MB93493_LOCAL_BUS, IRQ_MB93493_LOCAL_BUS_ROUTE); + mb93493_irq_route(IRQ_MB93493_PCMCIA, IRQ_MB93493_PCMCIA_ROUTE); + mb93493_irq_route(IRQ_MB93493_GPIO, IRQ_MB93493_GPIO_ROUTE); + mb93493_irq_route(IRQ_MB93493_AUDIO_OUT, IRQ_MB93493_AUDIO_OUT_ROUTE); +} diff -Nru a/arch/frv/kernel/irq-routing.c b/arch/frv/kernel/irq-routing.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/irq-routing.c 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,291 @@ +/* irq-routing.c: IRQ routing + * + * Copyright (C) 2004 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +struct irq_level frv_irq_levels[16] = { + [0 ... 15] = { + .lock = SPIN_LOCK_UNLOCKED, + } +}; + +struct irq_group *irq_groups[NR_IRQ_GROUPS]; + +extern struct irq_group frv_cpu_irqs; + +void __init frv_irq_route(struct irq_source *source, int irqlevel) +{ + source->level = &frv_irq_levels[irqlevel]; + source->next = frv_irq_levels[irqlevel].sources; + frv_irq_levels[irqlevel].sources = source; +} + +void __init frv_irq_route_external(struct irq_source *source, int irq) +{ + int irqlevel = 0; + + switch (irq) { + case IRQ_CPU_EXTERNAL0: irqlevel = IRQ_XIRQ0_LEVEL; break; + case IRQ_CPU_EXTERNAL1: irqlevel = IRQ_XIRQ1_LEVEL; break; + case IRQ_CPU_EXTERNAL2: irqlevel = IRQ_XIRQ2_LEVEL; break; + case IRQ_CPU_EXTERNAL3: irqlevel = IRQ_XIRQ3_LEVEL; break; + case IRQ_CPU_EXTERNAL4: irqlevel = IRQ_XIRQ4_LEVEL; break; + case IRQ_CPU_EXTERNAL5: irqlevel = IRQ_XIRQ5_LEVEL; break; + case IRQ_CPU_EXTERNAL6: irqlevel = IRQ_XIRQ6_LEVEL; break; + case IRQ_CPU_EXTERNAL7: irqlevel = IRQ_XIRQ7_LEVEL; break; + default: BUG(); + } + + source->level = &frv_irq_levels[irqlevel]; + source->next = frv_irq_levels[irqlevel].sources; + frv_irq_levels[irqlevel].sources = source; +} + +void __init frv_irq_set_group(struct irq_group *group) +{ + irq_groups[group->first_irq >> NR_IRQ_LOG2_ACTIONS_PER_GROUP] = group; +} + +void distribute_irqs(struct irq_group *group, unsigned long irqmask) +{ + struct irqaction *action; + int irq; + + while (irqmask) { + asm("scan %1,gr0,%0" : "=r"(irq) : "r"(irqmask)); + if (irq < 0 || irq > 31) + asm volatile("break"); + irq = 31 - irq; + + irqmask &= ~(1 << irq); + action = group->actions[irq]; + + irq += group->first_irq; + + if (action) { + int status = 0; + +// if (!(action->flags & SA_INTERRUPT)) +// sti(); + + do { + status |= action->flags; + action->handler(irq, action->dev_id, __frame); + action = action->next; + } while (action); + + if (status & SA_SAMPLE_RANDOM) + add_interrupt_randomness(irq); + cli(); + } + } +} + +/*****************************************************************************/ +/* + * CPU UART interrupts + */ +static void frv_cpuuart_doirq(struct irq_source *source) +{ +// uint8_t iir = readb(source->muxdata + UART_IIR * 8); +// if ((iir & 0x0f) != UART_IIR_NO_INT) + distribute_irqs(&frv_cpu_irqs, source->irqmask); +} + +struct irq_source frv_cpuuart[2] = { +#define __CPUUART(X, A) \ + [X] = { \ + .muxname = "uart", \ + .muxdata = (volatile void __iomem *) A, \ + .irqmask = 1 << IRQ_CPU_UART##X, \ + .doirq = frv_cpuuart_doirq, \ + } + + __CPUUART(0, UART0_BASE), + __CPUUART(1, UART1_BASE), +}; + +/*****************************************************************************/ +/* + * CPU DMA interrupts + */ +static void frv_cpudma_doirq(struct irq_source *source) +{ + uint32_t cstr = readl(source->muxdata + DMAC_CSTRx); + if (cstr & DMAC_CSTRx_INT) + distribute_irqs(&frv_cpu_irqs, source->irqmask); +} + +struct irq_source frv_cpudma[8] = { +#define __CPUDMA(X, A) \ + [X] = { \ + .muxname = "dma", \ + .muxdata = (volatile void __iomem *) A, \ + .irqmask = 1 << IRQ_CPU_DMA##X, \ + .doirq = frv_cpudma_doirq, \ + } + + __CPUDMA(0, 0xfe000900), + __CPUDMA(1, 0xfe000980), + __CPUDMA(2, 0xfe000a00), + __CPUDMA(3, 0xfe000a80), + __CPUDMA(4, 0xfe001000), + __CPUDMA(5, 0xfe001080), + __CPUDMA(6, 0xfe001100), + __CPUDMA(7, 0xfe001180), +}; + +/*****************************************************************************/ +/* + * CPU timer interrupts - can't tell whether they've generated an interrupt or not + */ +static void frv_cputimer_doirq(struct irq_source *source) +{ + distribute_irqs(&frv_cpu_irqs, source->irqmask); +} + +struct irq_source frv_cputimer[3] = { +#define __CPUTIMER(X) \ + [X] = { \ + .muxname = "timer", \ + .muxdata = 0, \ + .irqmask = 1 << IRQ_CPU_TIMER##X, \ + .doirq = frv_cputimer_doirq, \ + } + + __CPUTIMER(0), + __CPUTIMER(1), + __CPUTIMER(2), +}; + +/*****************************************************************************/ +/* + * external CPU interrupts - can't tell directly whether they've generated an interrupt or not + */ +static void frv_cpuexternal_doirq(struct irq_source *source) +{ + distribute_irqs(&frv_cpu_irqs, source->irqmask); +} + +struct irq_source frv_cpuexternal[8] = { +#define __CPUEXTERNAL(X) \ + [X] = { \ + .muxname = "ext", \ + .muxdata = 0, \ + .irqmask = 1 << IRQ_CPU_EXTERNAL##X, \ + .doirq = frv_cpuexternal_doirq, \ + } + + __CPUEXTERNAL(0), + __CPUEXTERNAL(1), + __CPUEXTERNAL(2), + __CPUEXTERNAL(3), + __CPUEXTERNAL(4), + __CPUEXTERNAL(5), + __CPUEXTERNAL(6), + __CPUEXTERNAL(7), +}; + +#define set_IRR(N,A,B,C,D) __set_IRR(N, (A << 28) | (B << 24) | (C << 20) | (D << 16)) + +struct irq_group frv_cpu_irqs = { + .sources = { + [IRQ_CPU_UART0] = &frv_cpuuart[0], + [IRQ_CPU_UART1] = &frv_cpuuart[1], + [IRQ_CPU_TIMER0] = &frv_cputimer[0], + [IRQ_CPU_TIMER1] = &frv_cputimer[1], + [IRQ_CPU_TIMER2] = &frv_cputimer[2], + [IRQ_CPU_DMA0] = &frv_cpudma[0], + [IRQ_CPU_DMA1] = &frv_cpudma[1], + [IRQ_CPU_DMA2] = &frv_cpudma[2], + [IRQ_CPU_DMA3] = &frv_cpudma[3], + [IRQ_CPU_DMA4] = &frv_cpudma[4], + [IRQ_CPU_DMA5] = &frv_cpudma[5], + [IRQ_CPU_DMA6] = &frv_cpudma[6], + [IRQ_CPU_DMA7] = &frv_cpudma[7], + [IRQ_CPU_EXTERNAL0] = &frv_cpuexternal[0], + [IRQ_CPU_EXTERNAL1] = &frv_cpuexternal[1], + [IRQ_CPU_EXTERNAL2] = &frv_cpuexternal[2], + [IRQ_CPU_EXTERNAL3] = &frv_cpuexternal[3], + [IRQ_CPU_EXTERNAL4] = &frv_cpuexternal[4], + [IRQ_CPU_EXTERNAL5] = &frv_cpuexternal[5], + [IRQ_CPU_EXTERNAL6] = &frv_cpuexternal[6], + [IRQ_CPU_EXTERNAL7] = &frv_cpuexternal[7], + }, +}; + +/*****************************************************************************/ +/* + * route the CPU's interrupt sources + */ +void __init route_cpu_irqs(void) +{ + frv_irq_set_group(&frv_cpu_irqs); + + __set_IITMR(0, 0x003f0000); /* DMA0-3, TIMER0-2 IRQ detect levels */ + __set_IITMR(1, 0x20000000); /* ERR0-1, UART0-1, DMA4-7 IRQ detect levels */ + + /* route UART and error interrupts */ + frv_irq_route(&frv_cpuuart[0], IRQ_UART0_LEVEL); + frv_irq_route(&frv_cpuuart[1], IRQ_UART1_LEVEL); + + set_IRR(6, IRQ_GDBSTUB_LEVEL, IRQ_GDBSTUB_LEVEL, IRQ_UART1_LEVEL, IRQ_UART0_LEVEL); + + /* route DMA channel interrupts */ + frv_irq_route(&frv_cpudma[0], IRQ_DMA0_LEVEL); + frv_irq_route(&frv_cpudma[1], IRQ_DMA1_LEVEL); + frv_irq_route(&frv_cpudma[2], IRQ_DMA2_LEVEL); + frv_irq_route(&frv_cpudma[3], IRQ_DMA3_LEVEL); + frv_irq_route(&frv_cpudma[4], IRQ_DMA4_LEVEL); + frv_irq_route(&frv_cpudma[5], IRQ_DMA5_LEVEL); + frv_irq_route(&frv_cpudma[6], IRQ_DMA6_LEVEL); + frv_irq_route(&frv_cpudma[7], IRQ_DMA7_LEVEL); + + set_IRR(4, IRQ_DMA3_LEVEL, IRQ_DMA2_LEVEL, IRQ_DMA1_LEVEL, IRQ_DMA0_LEVEL); + set_IRR(7, IRQ_DMA7_LEVEL, IRQ_DMA6_LEVEL, IRQ_DMA5_LEVEL, IRQ_DMA4_LEVEL); + + /* route timer interrupts */ + frv_irq_route(&frv_cputimer[0], IRQ_TIMER0_LEVEL); + frv_irq_route(&frv_cputimer[1], IRQ_TIMER1_LEVEL); + frv_irq_route(&frv_cputimer[2], IRQ_TIMER2_LEVEL); + + set_IRR(5, 0, IRQ_TIMER2_LEVEL, IRQ_TIMER1_LEVEL, IRQ_TIMER0_LEVEL); + + /* route external interrupts */ + frv_irq_route(&frv_cpuexternal[0], IRQ_XIRQ0_LEVEL); + frv_irq_route(&frv_cpuexternal[1], IRQ_XIRQ1_LEVEL); + frv_irq_route(&frv_cpuexternal[2], IRQ_XIRQ2_LEVEL); + frv_irq_route(&frv_cpuexternal[3], IRQ_XIRQ3_LEVEL); + frv_irq_route(&frv_cpuexternal[4], IRQ_XIRQ4_LEVEL); + frv_irq_route(&frv_cpuexternal[5], IRQ_XIRQ5_LEVEL); + frv_irq_route(&frv_cpuexternal[6], IRQ_XIRQ6_LEVEL); + frv_irq_route(&frv_cpuexternal[7], IRQ_XIRQ7_LEVEL); + + set_IRR(2, IRQ_XIRQ7_LEVEL, IRQ_XIRQ6_LEVEL, IRQ_XIRQ5_LEVEL, IRQ_XIRQ4_LEVEL); + set_IRR(3, IRQ_XIRQ3_LEVEL, IRQ_XIRQ2_LEVEL, IRQ_XIRQ1_LEVEL, IRQ_XIRQ0_LEVEL); + +#if defined(CONFIG_MB93091_VDK) + __set_TM1(0x55550000); /* XIRQ7-0 all active low */ +#elif defined(CONFIG_MB93093_PDK) + __set_TM1(0x15550000); /* XIRQ7 active high, 6-0 all active low */ +#else +#error dont know external IRQ trigger levels for this setup +#endif + +} /* end route_cpu_irqs() */ diff -Nru a/arch/frv/kernel/irq.c b/arch/frv/kernel/irq.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/irq.c 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,764 @@ +/* irq.c: FRV IRQ handling + * + * Copyright (C) 2003, 2004 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +/* + * (mostly architecture independent, will move to kernel/irq.c in 2.5.) + * + * IRQs are in fact implemented a bit like signal handlers for the kernel. + * Naturally it's not a 1:1 relation, but there are similarities. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +extern void __init fpga_init(void); +extern void __init route_mb93493_irqs(void); + +static void register_irq_proc (unsigned int irq); + +/* + * Special irq handlers. + */ + +irqreturn_t no_action(int cpl, void *dev_id, struct pt_regs *regs) { return IRQ_HANDLED; } + +atomic_t irq_err_count; + +/* + * Generic, controller-independent functions: + */ +int show_interrupts(struct seq_file *p, void *v) +{ + struct irqaction *action; + struct irq_group *group; + unsigned long flags; + int level, grp, ix, i, j; + + i = *(loff_t *) v; + + switch (i) { + case 0: + seq_printf(p, " "); + for (j = 0; j < NR_CPUS; j++) + if (cpu_online(j)) + seq_printf(p, "CPU%d ",j); + + seq_putc(p, '\n'); + break; + + case 1 ... NR_IRQ_GROUPS * NR_IRQ_ACTIONS_PER_GROUP: + local_irq_save(flags); + + grp = (i - 1) / NR_IRQ_ACTIONS_PER_GROUP; + group = irq_groups[grp]; + if (!group) + goto skip; + + ix = (i - 1) % NR_IRQ_ACTIONS_PER_GROUP; + action = group->actions[ix]; + if (!action) + goto skip; + + seq_printf(p, "%3d: ", i - 1); + +#ifndef CONFIG_SMP + seq_printf(p, "%10u ", kstat_irqs(i)); +#else + for (j = 0; j < NR_CPUS; j++) + if (cpu_online(j)) + seq_printf(p, "%10u ", kstat_cpu(j).irqs[i - 1]); +#endif + + level = group->sources[ix]->level - frv_irq_levels; + + seq_printf(p, " %12s@%x", group->sources[ix]->muxname, level); + seq_printf(p, " %s", action->name); + + for (action = action->next; action; action = action->next) + seq_printf(p, ", %s", action->name); + + seq_putc(p, '\n'); +skip: + local_irq_restore(flags); + break; + + case NR_IRQ_GROUPS * NR_IRQ_ACTIONS_PER_GROUP + 1: + seq_printf(p, "ERR: %10u\n", atomic_read(&irq_err_count)); + break; + + default: + break; + } + + return 0; +} + + +/* + * Generic enable/disable code: this just calls + * down into the PIC-specific version for the actual + * hardware disable after having gotten the irq + * controller lock. + */ + +/** + * disable_irq_nosync - disable an irq without waiting + * @irq: Interrupt to disable + * + * Disable the selected interrupt line. Disables and Enables are + * nested. + * Unlike disable_irq(), this function does not ensure existing + * instances of the IRQ handler have completed before returning. + * + * This function may be called from IRQ context. + */ + +void disable_irq_nosync(unsigned int irq) +{ + struct irq_source *source; + struct irq_group *group; + struct irq_level *level; + unsigned long flags; + int idx = irq & (NR_IRQ_ACTIONS_PER_GROUP - 1); + + group = irq_groups[irq >> NR_IRQ_LOG2_ACTIONS_PER_GROUP]; + if (!group) + BUG(); + + source = group->sources[idx]; + if (!source) + BUG(); + + level = source->level; + + spin_lock_irqsave(&level->lock, flags); + + if (group->control) { + if (!group->disable_cnt[idx]++) + group->control(group, idx, 0); + } else if (!level->disable_count++) { + __set_MASK(level - frv_irq_levels); + } + + spin_unlock_irqrestore(&level->lock, flags); +} + +/** + * disable_irq - disable an irq and wait for completion + * @irq: Interrupt to disable + * + * Disable the selected interrupt line. Enables and Disables are + * nested. + * This function waits for any pending IRQ handlers for this interrupt + * to complete before returning. If you use this function while + * holding a resource the IRQ handler may need you will deadlock. + * + * This function may be called - with care - from IRQ context. + */ + +void disable_irq(unsigned int irq) +{ + disable_irq_nosync(irq); + +#ifdef CONFIG_SMP + if (!local_irq_count(smp_processor_id())) { + do { + barrier(); + } while (irq_desc[irq].status & IRQ_INPROGRESS); + } +#endif +} + +/** + * enable_irq - enable handling of an irq + * @irq: Interrupt to enable + * + * Undoes the effect of one call to disable_irq(). If this + * matches the last disable, processing of interrupts on this + * IRQ line is re-enabled. + * + * This function may be called from IRQ context. + */ + +void enable_irq(unsigned int irq) +{ + struct irq_source *source; + struct irq_group *group; + struct irq_level *level; + unsigned long flags; + int idx = irq & (NR_IRQ_ACTIONS_PER_GROUP - 1); + int count; + + group = irq_groups[irq >> NR_IRQ_LOG2_ACTIONS_PER_GROUP]; + if (!group) + BUG(); + + source = group->sources[idx]; + if (!source) + BUG(); + + level = source->level; + + spin_lock_irqsave(&level->lock, flags); + + if (group->control) + count = group->disable_cnt[idx]; + else + count = level->disable_count; + + switch (count) { + case 1: + if (group->control) { + if (group->actions[idx]) + group->control(group, idx, 1); + } else { + if (level->usage) + __clr_MASK(level - frv_irq_levels); + } + /* fall-through */ + + default: + count--; + break; + + case 0: + printk("enable_irq(%u) unbalanced from %p\n", irq, __builtin_return_address(0)); + } + + if (group->control) + group->disable_cnt[idx] = count; + else + level->disable_count = count; + + spin_unlock_irqrestore(&level->lock, flags); +} + +/*****************************************************************************/ +/* + * handles all normal device IRQ's + * - registers are referred to by the __frame variable (GR28) + * - IRQ distribution is complicated in this arch because of the many PICs, the + * way they work and the way they cascade + */ +asmlinkage void do_IRQ(void) +{ + struct irq_source *source; + int level, cpu; + + level = (__frame->tbr >> 4) & 0xf; + cpu = smp_processor_id(); + +#if 0 + { + static u32 irqcount; + *(volatile u32 *) 0xe1200004 = ~((irqcount++ << 8) | level); + *(volatile u16 *) 0xffc00100 = (u16) ~0x9999; + mb(); + } +#endif + + if ((unsigned long) __frame - (unsigned long) (current + 1) < 512) + BUG(); + + __set_MASK(level); + __clr_RC(level); + __clr_IRL(); + + kstat_this_cpu.irqs[level]++; + + irq_enter(); + + for (source = frv_irq_levels[level].sources; source; source = source->next) + source->doirq(source); + + irq_exit(); + + __clr_MASK(level); + + /* only process softirqs if we didn't interrupt another interrupt handler */ + if ((__frame->psr & PSR_PIL) == PSR_PIL_0) + if (softirq_pending(cpu)) + do_softirq(); + +#ifdef CONFIG_PREEMPT + cli(); + while (--current->preempt_count == 0) { + if (!(__frame->psr & PSR_S) + || (current->need_resched == 0) + || in_interrupt()) + break; + current->preempt_count++; + sti(); + preempt_schedule(); + cli(); + } +#endif + +#if 0 + { + *(volatile u16 *) 0xffc00100 = (u16) ~0x6666; + mb(); + } +#endif + +} /* end do_IRQ() */ + +/*****************************************************************************/ +/* + * handles all NMIs when not co-opted by the debugger + * - registers are referred to by the __frame variable (GR28) + */ +asmlinkage void do_NMI(void) +{ +} /* end do_NMI() */ + +/*****************************************************************************/ +/** + * request_irq - allocate an interrupt line + * @irq: Interrupt line to allocate + * @handler: Function to be called when the IRQ occurs + * @irqflags: Interrupt type flags + * @devname: An ascii name for the claiming device + * @dev_id: A cookie passed back to the handler function + * + * This call allocates interrupt resources and enables the + * interrupt line and IRQ handling. From the point this + * call is made your handler function may be invoked. Since + * your handler function must clear any interrupt the board + * raises, you must take care both to initialise your hardware + * and to set up the interrupt handler in the right order. + * + * Dev_id must be globally unique. Normally the address of the + * device data structure is used as the cookie. Since the handler + * receives this value it makes sense to use it. + * + * If your interrupt is shared you must pass a non NULL dev_id + * as this is required when freeing the interrupt. + * + * Flags: + * + * SA_SHIRQ Interrupt is shared + * + * SA_INTERRUPT Disable local interrupts while processing + * + * SA_SAMPLE_RANDOM The interrupt can be used for entropy + * + */ + +int request_irq(unsigned int irq, + irqreturn_t (*handler)(int, void *, struct pt_regs *), + unsigned long irqflags, + const char * devname, + void *dev_id) +{ + int retval; + struct irqaction *action; + +#if 1 + /* + * Sanity-check: shared interrupts should REALLY pass in + * a real dev-ID, otherwise we'll have trouble later trying + * to figure out which interrupt is which (messes up the + * interrupt freeing logic etc). + */ + if (irqflags & SA_SHIRQ) { + if (!dev_id) + printk("Bad boy: %s (at 0x%x) called us without a dev_id!\n", + devname, (&irq)[-1]); + } +#endif + + if ((irq >> NR_IRQ_LOG2_ACTIONS_PER_GROUP) >= NR_IRQ_GROUPS) + return -EINVAL; + if (!handler) + return -EINVAL; + + action = (struct irqaction *) kmalloc(sizeof(struct irqaction), GFP_KERNEL); + if (!action) + return -ENOMEM; + + action->handler = handler; + action->flags = irqflags; + action->mask = CPU_MASK_NONE; + action->name = devname; + action->next = NULL; + action->dev_id = dev_id; + + retval = setup_irq(irq, action); + if (retval) + kfree(action); + return retval; +} + +/** + * free_irq - free an interrupt + * @irq: Interrupt line to free + * @dev_id: Device identity to free + * + * Remove an interrupt handler. The handler is removed and if the + * interrupt line is no longer in use by any driver it is disabled. + * On a shared IRQ the caller must ensure the interrupt is disabled + * on the card it drives before calling this function. The function + * does not return until any executing interrupts for this IRQ + * have completed. + * + * This function may be called from interrupt context. + * + * Bugs: Attempting to free an irq in a handler for the same irq hangs + * the machine. + */ + +void free_irq(unsigned int irq, void *dev_id) +{ + struct irq_source *source; + struct irq_group *group; + struct irq_level *level; + struct irqaction **p, **pp; + unsigned long flags; + + if ((irq >> NR_IRQ_LOG2_ACTIONS_PER_GROUP) >= NR_IRQ_GROUPS) + return; + + group = irq_groups[irq >> NR_IRQ_LOG2_ACTIONS_PER_GROUP]; + if (!group) + BUG(); + + source = group->sources[irq & (NR_IRQ_ACTIONS_PER_GROUP - 1)]; + if (!source) + BUG(); + + level = source->level; + p = &group->actions[irq & (NR_IRQ_ACTIONS_PER_GROUP - 1)]; + + spin_lock_irqsave(&level->lock, flags); + + for (pp = p; *pp; pp = &(*pp)->next) { + struct irqaction *action = *pp; + + if (action->dev_id != dev_id) + continue; + + /* found it - remove from the list of entries */ + *pp = action->next; + + level->usage--; + + if (p == pp && group->control) + group->control(group, irq & (NR_IRQ_ACTIONS_PER_GROUP - 1), 0); + + if (level->usage == 0) + __set_MASK(level - frv_irq_levels); + + spin_unlock_irqrestore(&level->lock,flags); + +#ifdef CONFIG_SMP + /* Wait to make sure it's not being used on another CPU */ + while (desc->status & IRQ_INPROGRESS) + barrier(); +#endif + kfree(action); + return; + } +} + +/* + * IRQ autodetection code.. + * + * This depends on the fact that any interrupt that comes in on to an + * unassigned IRQ will cause GxICR_DETECT to be set + */ + +static DECLARE_MUTEX(probe_sem); + +/** + * probe_irq_on - begin an interrupt autodetect + * + * Commence probing for an interrupt. The interrupts are scanned + * and a mask of potential interrupt lines is returned. + * + */ + +unsigned long probe_irq_on(void) +{ + down(&probe_sem); + return 0; +} + +/* + * Return a mask of triggered interrupts (this + * can handle only legacy ISA interrupts). + */ + +/** + * probe_irq_mask - scan a bitmap of interrupt lines + * @val: mask of interrupts to consider + * + * Scan the ISA bus interrupt lines and return a bitmap of + * active interrupts. The interrupt probe logic state is then + * returned to its previous value. + * + * Note: we need to scan all the irq's even though we will + * only return ISA irq numbers - just so that we reset them + * all to a known state. + */ +unsigned int probe_irq_mask(unsigned long xmask) +{ + up(&probe_sem); + return 0; +} + +/* + * Return the one interrupt that triggered (this can + * handle any interrupt source). + */ + +/** + * probe_irq_off - end an interrupt autodetect + * @xmask: mask of potential interrupts (unused) + * + * Scans the unused interrupt lines and returns the line which + * appears to have triggered the interrupt. If no interrupt was + * found then zero is returned. If more than one interrupt is + * found then minus the first candidate is returned to indicate + * their is doubt. + * + * The interrupt probe logic state is returned to its previous + * value. + * + * BUGS: When used in a module (which arguably shouldnt happen) + * nothing prevents two IRQ probe callers from overlapping. The + * results of this are non-optimal. + */ + +int probe_irq_off(unsigned long xmask) +{ + up(&probe_sem); + return -1; +} + +/* this was setup_x86_irq but it seems pretty generic */ +int setup_irq(unsigned int irq, struct irqaction *new) +{ + struct irq_source *source; + struct irq_group *group; + struct irq_level *level; + struct irqaction **p, **pp; + unsigned long flags; + + group = irq_groups[irq >> NR_IRQ_LOG2_ACTIONS_PER_GROUP]; + if (!group) + BUG(); + + source = group->sources[irq & (NR_IRQ_ACTIONS_PER_GROUP - 1)]; + if (!source) + BUG(); + + level = source->level; + + p = &group->actions[irq & (NR_IRQ_ACTIONS_PER_GROUP - 1)]; + + /* + * Some drivers like serial.c use request_irq() heavily, + * so we have to be careful not to interfere with a + * running system. + */ + if (new->flags & SA_SAMPLE_RANDOM) { + /* + * This function might sleep, we want to call it first, + * outside of the atomic block. + * Yes, this might clear the entropy pool if the wrong + * driver is attempted to be loaded, without actually + * installing a new handler, but is this really a problem, + * only the sysadmin is able to do this. + */ + rand_initialize_irq(irq); + } + + /* must juggle the interrupt processing stuff with interrupts disabled */ + spin_lock_irqsave(&level->lock, flags); + + /* can't share interrupts unless all parties agree to */ + if (level->usage != 0 && !(level->flags & new->flags & SA_SHIRQ)) { + spin_unlock_irqrestore(&level->lock,flags); + return -EBUSY; + } + + /* add new interrupt at end of irq queue */ + pp = p; + while (*pp) + pp = &(*pp)->next; + + *pp = new; + + level->usage++; + level->flags = new->flags; + + /* turn the interrupts on */ + if (level->usage == 1) + __clr_MASK(level - frv_irq_levels); + + if (p == pp && group->control) + group->control(group, irq & (NR_IRQ_ACTIONS_PER_GROUP - 1), 1); + + spin_unlock_irqrestore(&level->lock, flags); + register_irq_proc(irq); + return 0; +} + +static struct proc_dir_entry * root_irq_dir; +static struct proc_dir_entry * irq_dir [NR_IRQS]; + +#define HEX_DIGITS 8 + +static unsigned int parse_hex_value (const char *buffer, + unsigned long count, unsigned long *ret) +{ + unsigned char hexnum [HEX_DIGITS]; + unsigned long value; + int i; + + if (!count) + return -EINVAL; + if (count > HEX_DIGITS) + count = HEX_DIGITS; + if (copy_from_user(hexnum, buffer, count)) + return -EFAULT; + + /* + * Parse the first 8 characters as a hex string, any non-hex char + * is end-of-string. '00e1', 'e1', '00E1', 'E1' are all the same. + */ + value = 0; + + for (i = 0; i < count; i++) { + unsigned int c = hexnum[i]; + + switch (c) { + case '0' ... '9': c -= '0'; break; + case 'a' ... 'f': c -= 'a'-10; break; + case 'A' ... 'F': c -= 'A'-10; break; + default: + goto out; + } + value = (value << 4) | c; + } +out: + *ret = value; + return 0; +} + + +static int prof_cpu_mask_read_proc (char *page, char **start, off_t off, + int count, int *eof, void *data) +{ + unsigned long *mask = (unsigned long *) data; + if (count < HEX_DIGITS+1) + return -EINVAL; + return sprintf (page, "%08lx\n", *mask); +} + +static int prof_cpu_mask_write_proc (struct file *file, const char *buffer, + unsigned long count, void *data) +{ + unsigned long *mask = (unsigned long *) data, full_count = count, err; + unsigned long new_value; + + show_state(); + err = parse_hex_value(buffer, count, &new_value); + if (err) + return err; + + *mask = new_value; + return full_count; +} + +#define MAX_NAMELEN 10 + +static void register_irq_proc (unsigned int irq) +{ + char name [MAX_NAMELEN]; + + if (!root_irq_dir || irq_dir[irq]) + return; + + memset(name, 0, MAX_NAMELEN); + sprintf(name, "%d", irq); + + /* create /proc/irq/1234 */ + irq_dir[irq] = proc_mkdir(name, root_irq_dir); +} + +unsigned long prof_cpu_mask = -1; + +void init_irq_proc (void) +{ + struct proc_dir_entry *entry; + int i; + + /* create /proc/irq */ + root_irq_dir = proc_mkdir("irq", 0); + + /* create /proc/irq/prof_cpu_mask */ + entry = create_proc_entry("prof_cpu_mask", 0600, root_irq_dir); + if (!entry) + return; + + entry->nlink = 1; + entry->data = (void *)&prof_cpu_mask; + entry->read_proc = prof_cpu_mask_read_proc; + entry->write_proc = prof_cpu_mask_write_proc; + + /* + * Create entries for all existing IRQs. + */ + for (i = 0; i < NR_IRQS; i++) + register_irq_proc(i); +} + +/*****************************************************************************/ +/* + * initialise the interrupt system + */ +void __init init_IRQ(void) +{ + route_cpu_irqs(); + fpga_init(); +#ifdef CONFIG_FUJITSU_MB93493 + route_mb93493_irqs(); +#endif +} /* end init_IRQ() */ diff -Nru a/arch/frv/kernel/kernel_thread.S b/arch/frv/kernel/kernel_thread.S --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/kernel_thread.S 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,77 @@ +/* kernel_thread.S: kernel thread creation + * + * Copyright (C) 2003 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#include +#include + +#define CLONE_VM 0x00000100 /* set if VM shared between processes */ +#define KERN_ERR "<3>" + + .section .rodata +kernel_thread_emsg: + .asciz KERN_ERR "failed to create kernel thread: error=%d\n" + + .text + .balign 4 + +############################################################################### +# +# Create a kernel thread +# +# int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) +# +############################################################################### + .globl kernel_thread + .type kernel_thread,@function +kernel_thread: + or.p gr8,gr0,gr4 + or gr9,gr0,gr5 + + # start by forking the current process, but with shared VM + setlos.p #__NR_clone,gr7 ; syscall number + ori gr10,#CLONE_VM,gr8 ; first syscall arg [clone_flags] + sethi.p #0xe4e4,gr9 ; second syscall arg [newsp] + setlo #0xe4e4,gr9 + setlos.p #0,gr10 ; third syscall arg [parent_tidptr] + setlos #0,gr11 ; fourth syscall arg [child_tidptr] + tira gr0,#0 + setlos.p #4095,gr7 + andcc gr8,gr8,gr0,icc0 + addcc.p gr8,gr7,gr0,icc1 + bnelr icc0,#2 + bc icc1,#0,kernel_thread_error + + # now invoke the work function + or gr5,gr0,gr8 + calll @(gr4,gr0) + + # and finally exit the thread + setlos #__NR_exit,gr7 ; syscall number + tira gr0,#0 + +kernel_thread_error: + subi sp,#8,sp + movsg lr,gr4 + sti gr8,@(sp,#0) + sti.p gr4,@(sp,#4) + + or gr8,gr0,gr9 + sethi.p %hi(kernel_thread_emsg),gr8 + setlo %lo(kernel_thread_emsg),gr8 + + call printk + + ldi @(sp,#4),gr4 + ldi @(sp,#0),gr8 + subi sp,#8,sp + jmpl @(gr4,gr0) + + .size kernel_thread,.-kernel_thread diff -Nru a/arch/frv/kernel/local.h b/arch/frv/kernel/local.h --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/local.h 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,56 @@ +/* local.h: local definitions + * + * Copyright (C) 2004 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#ifndef _FRV_LOCAL_H +#define _FRV_LOCAL_H + +#include + +#ifndef __ASSEMBLY__ + +/* dma.c */ +extern unsigned long frv_dma_inprogress; + +extern void frv_dma_pause_all(void); +extern void frv_dma_resume_all(void); + +/* sleep.S */ +extern asmlinkage void frv_cpu_suspend(unsigned long); +extern asmlinkage void frv_cpu_core_sleep(void); + +/* setup.c */ +extern unsigned long __nongprelbss pdm_suspend_mode; +extern void determine_clocks(int verbose); +extern int __nongprelbss clock_p0_current; +extern int __nongprelbss clock_cm_current; +extern int __nongprelbss clock_cmode_current; + +#ifdef CONFIG_PM +extern int __nongprelbss clock_cmodes_permitted; +extern unsigned long __nongprelbss clock_bits_settable; +#define CLOCK_BIT_CM 0x0000000f +#define CLOCK_BIT_CM_H 0x00000001 /* CLKC.CM can be set to 0 */ +#define CLOCK_BIT_CM_M 0x00000002 /* CLKC.CM can be set to 1 */ +#define CLOCK_BIT_CM_L 0x00000004 /* CLKC.CM can be set to 2 */ +#define CLOCK_BIT_P0 0x00000010 /* CLKC.P0 can be changed */ +#define CLOCK_BIT_CMODE 0x00000020 /* CLKC.CMODE can be changed */ + +extern void (*__power_switch_wake_setup)(void); +extern int (*__power_switch_wake_check)(void); +extern void (*__power_switch_wake_cleanup)(void); +#endif + +/* time.c */ +extern void time_divisor_init(void); + + +#endif /* __ASSEMBLY__ */ +#endif /* _FRV_LOCAL_H */ diff -Nru a/arch/frv/kernel/pm-mb93093.c b/arch/frv/kernel/pm-mb93093.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/pm-mb93093.c 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,66 @@ +/* + * FR-V MB93093 Power Management Routines + * + * Copyright (c) 2004 Red Hat, Inc. + * + * Written by: msalter@redhat.com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "local.h" + +static unsigned long imask; +/* + * Setup interrupt masks, etc to enable wakeup by power switch + */ +static void mb93093_power_switch_setup(void) +{ + /* mask all but FPGA interrupt sources. */ + imask = *(volatile unsigned long *)0xfeff9820; + *(volatile unsigned long *)0xfeff9820 = ~(1 << (IRQ_XIRQ2_LEVEL + 16)) & 0xfffe0000; +} + +/* + * Cleanup interrupt masks, etc after wakeup by power switch + */ +static void mb93093_power_switch_cleanup(void) +{ + *(volatile unsigned long *)0xfeff9820 = imask; +} + +/* + * Return non-zero if wakeup irq was caused by power switch + */ +static int mb93093_power_switch_check(void) +{ + return 1; +} + +/* + * Initialize power interface + */ +static int __init mb93093_pm_init(void) +{ + __power_switch_wake_setup = mb93093_power_switch_setup; + __power_switch_wake_check = mb93093_power_switch_check; + __power_switch_wake_cleanup = mb93093_power_switch_cleanup; + return 0; +} + +__initcall(mb93093_pm_init); + diff -Nru a/arch/frv/kernel/pm.c b/arch/frv/kernel/pm.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/pm.c 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,432 @@ +/* + * FR-V Power Management Routines + * + * Copyright (c) 2004 Red Hat, Inc. + * + * Based on SA1100 version: + * Copyright (c) 2001 Cliff Brake + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "local.h" + +void (*pm_power_off)(void); + +extern void frv_change_cmode(int); + +/* + * Debug macros + */ +#define DEBUG + +int pm_do_suspend(void) +{ + cli(); + + __set_LEDS(0xb1); + + /* go zzz */ + frv_cpu_suspend(pdm_suspend_mode); + + __set_LEDS(0xb2); + + sti(); + + return 0; +} + +static unsigned long __irq_mask; + +/* + * Setup interrupt masks, etc to enable wakeup by power switch + */ +static void __default_power_switch_setup(void) +{ + /* default is to mask all interrupt sources. */ + __irq_mask = *(unsigned long *)0xfeff9820; + *(unsigned long *)0xfeff9820 = 0xfffe0000; +} + +/* + * Cleanup interrupt masks, etc after wakeup by power switch + */ +static void __default_power_switch_cleanup(void) +{ + *(unsigned long *)0xfeff9820 = __irq_mask; +} + +/* + * Return non-zero if wakeup irq was caused by power switch + */ +static int __default_power_switch_check(void) +{ + return 1; +} + +void (*__power_switch_wake_setup)(void) = __default_power_switch_setup; +int (*__power_switch_wake_check)(void) = __default_power_switch_check; +void (*__power_switch_wake_cleanup)(void) = __default_power_switch_cleanup; + +int pm_do_bus_sleep(void) +{ + cli(); + + /* + * Here is where we need some platform-dependent setup + * of the interrupt state so that appropriate wakeup + * sources are allowed and all others are masked. + */ + __power_switch_wake_setup(); + + __set_LEDS(0xa1); + + /* go zzz + * + * This is in a loop in case power switch shares an irq with other + * devices. The wake_check() tells us if we need to finish waking + * or go back to sleep. + */ + do { + frv_cpu_suspend(HSR0_PDM_BUS_SLEEP); + } while (__power_switch_wake_check && !__power_switch_wake_check()); + + __set_LEDS(0xa2); + + /* + * Here is where we need some platform-dependent restore + * of the interrupt state prior to being called. + */ + __power_switch_wake_cleanup(); + + sti(); + + return 0; +} + +unsigned long sleep_phys_sp(void *sp) +{ + return virt_to_phys(sp); +} + +#ifdef CONFIG_SYSCTL +/* + * Use a temporary sysctl number. Horrid, but will be cleaned up in 2.6 + * when all the PM interfaces exist nicely. + */ +#define CTL_PM 9899 +#define CTL_PM_SUSPEND 1 +#define CTL_PM_CMODE 2 +#define CTL_PM_P0 4 +#define CTL_PM_CM 5 + +static int user_atoi(char *ubuf, int len) +{ + char buf[16]; + unsigned long ret; + + if (len > 15) + return -EINVAL; + + if (copy_from_user(buf, ubuf, len)) + return -EFAULT; + + buf[len] = 0; + ret = simple_strtoul(buf, NULL, 0); + if (ret > INT_MAX) + return -ERANGE; + return ret; +} + +/* + * Send us to sleep. + */ +static int sysctl_pm_do_suspend(ctl_table *ctl, int write, struct file *filp, + void *buffer, size_t *lenp, loff_t *fpos) +{ + int retval, mode; + + if (*lenp <= 0) + return -EIO; + + mode = user_atoi(buffer, *lenp); + if ((mode != 1) && (mode != 5)) + return -EINVAL; + + retval = pm_send_all(PM_SUSPEND, (void *)3); + + if (retval == 0) { + if (mode == 5) + retval = pm_do_bus_sleep(); + else + retval = pm_do_suspend(); + pm_send_all(PM_RESUME, (void *)0); + } + + return retval; +} + +static int try_set_cmode(int new_cmode) +{ + if (new_cmode > 15) + return -EINVAL; + if (!(clock_cmodes_permitted & (1< 1) + return -EINVAL; + + local_irq_save(flags); + __set_PSR(flags & ~PSR_ET); + + frv_dma_pause_all(); + + clkc = __get_CLKC(); + if (new_p0) + clkc |= CLKC_P0; + else + clkc &= ~CLKC_P0; + __set_CLKC(clkc); + + determine_clocks(0); + time_divisor_init(); + +#ifdef DEBUG + determine_clocks(1); +#endif + frv_dma_resume_all(); + local_irq_restore(flags); + return 0; +} + +static int try_set_cm(int new_cm) +{ + unsigned long flags, clkc; + + if (new_cm < 0 || new_cm > 1) + return -EINVAL; + + local_irq_save(flags); + __set_PSR(flags & ~PSR_ET); + + frv_dma_pause_all(); + + clkc = __get_CLKC(); + clkc &= ~CLKC_CM; + clkc |= new_cm; + __set_CLKC(clkc); + + determine_clocks(0); + time_divisor_init(); + +#if 1 //def DEBUG + determine_clocks(1); +#endif + + frv_dma_resume_all(); + local_irq_restore(flags); + return 0; +} + +static int p0_procctl(ctl_table *ctl, int write, struct file *filp, + void *buffer, size_t *lenp, loff_t *fpos) +{ + int new_p0; + + if (!write) + return proc_dointvec(ctl, write, filp, buffer, lenp, fpos); + + new_p0 = user_atoi(buffer, *lenp); + + return try_set_p0(new_p0)?:*lenp; +} + +static int p0_sysctl(ctl_table *table, int *name, int nlen, + void *oldval, size_t *oldlenp, + void *newval, size_t newlen, void **context) +{ + if (oldval && oldlenp) { + size_t oldlen; + + if (get_user(oldlen, oldlenp)) + return -EFAULT; + + if (oldlen != sizeof(int)) + return -EINVAL; + + if (put_user(clock_p0_current, (unsigned int *)oldval) || + put_user(sizeof(int), oldlenp)) + return -EFAULT; + } + if (newval && newlen) { + int new_p0; + + if (newlen != sizeof(int)) + return -EINVAL; + + if (get_user(new_p0, (int *)newval)) + return -EFAULT; + + return try_set_p0(new_p0)?:1; + } + return 1; +} + +static int cm_procctl(ctl_table *ctl, int write, struct file *filp, + void *buffer, size_t *lenp, loff_t *fpos) +{ + int new_cm; + + if (!write) + return proc_dointvec(ctl, write, filp, buffer, lenp, fpos); + + new_cm = user_atoi(buffer, *lenp); + + return try_set_cm(new_cm)?:*lenp; +} + +static int cm_sysctl(ctl_table *table, int *name, int nlen, + void *oldval, size_t *oldlenp, + void *newval, size_t newlen, void **context) +{ + if (oldval && oldlenp) { + size_t oldlen; + + if (get_user(oldlen, oldlenp)) + return -EFAULT; + + if (oldlen != sizeof(int)) + return -EINVAL; + + if (put_user(clock_cm_current, (unsigned int *)oldval) || + put_user(sizeof(int), oldlenp)) + return -EFAULT; + } + if (newval && newlen) { + int new_cm; + + if (newlen != sizeof(int)) + return -EINVAL; + + if (get_user(new_cm, (int *)newval)) + return -EFAULT; + + return try_set_cm(new_cm)?:1; + } + return 1; +} + + +static struct ctl_table pm_table[] = +{ + {CTL_PM_SUSPEND, "suspend", NULL, 0, 0200, NULL, &sysctl_pm_do_suspend}, + {CTL_PM_CMODE, "cmode", &clock_cmode_current, sizeof(int), 0644, NULL, &cmode_procctl, &cmode_sysctl, NULL}, + {CTL_PM_P0, "p0", &clock_p0_current, sizeof(int), 0644, NULL, &p0_procctl, &p0_sysctl, NULL}, + {CTL_PM_CM, "cm", &clock_cm_current, sizeof(int), 0644, NULL, &cm_procctl, &cm_sysctl, NULL}, + {0} +}; + +static struct ctl_table pm_dir_table[] = +{ + {CTL_PM, "pm", NULL, 0, 0555, pm_table}, + {0} +}; + +/* + * Initialize power interface + */ +static int __init pm_init(void) +{ + register_sysctl_table(pm_dir_table, 1); + return 0; +} + +__initcall(pm_init); + +#endif diff -Nru a/arch/frv/kernel/process.c b/arch/frv/kernel/process.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/process.c 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,388 @@ +/* process.c: FRV specific parts of process handling + * + * Copyright (C) 2003-5 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * - Derived from arch/m68k/kernel/process.c + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include "local.h" + +asmlinkage void ret_from_fork(void); + +#include + +struct task_struct *alloc_task_struct(void) +{ + struct task_struct *p = kmalloc(THREAD_SIZE, GFP_KERNEL); + if (p) + atomic_set((atomic_t *)(p+1), 1); + return p; +} + +void free_task_struct(struct task_struct *p) +{ + if (atomic_dec_and_test((atomic_t *)(p+1))) + kfree(p); +} + +static void core_sleep_idle(void) +{ +#ifdef LED_DEBUG_SLEEP + /* Show that we're sleeping... */ + __set_LEDS(0x55aa); +#endif + frv_cpu_core_sleep(); +#ifdef LED_DEBUG_SLEEP + /* ... and that we woke up */ + __set_LEDS(0); +#endif + mb(); +} + +void (*idle)(void) = core_sleep_idle; + +/* + * The idle thread. There's no useful work to be + * done, so just try to conserve power and have a + * low exit latency (ie sit in a loop waiting for + * somebody to say that they'd like to reschedule) + */ +void cpu_idle(void) +{ + /* endless idle loop with no priority at all */ + while (1) { + while (!need_resched()) { + irq_stat[smp_processor_id()].idle_timestamp = jiffies; + + if (!frv_dma_inprogress && idle) + idle(); + } + + schedule(); + } +} + +void machine_restart(char * __unused) +{ + unsigned long reset_addr; +#ifdef CONFIG_GDBSTUB + gdbstub_exit(0); +#endif + + if (PSR_IMPLE(__get_PSR()) == PSR_IMPLE_FR551) + reset_addr = 0xfefff500; + else + reset_addr = 0xfeff0500; + + /* Software reset. */ + asm volatile(" dcef @(gr0,gr0),1 ! membar !" + " sti %1,@(%0,0) !" + " nop ! nop ! nop ! nop ! nop ! " + " nop ! nop ! nop ! nop ! nop ! " + " nop ! nop ! nop ! nop ! nop ! " + " nop ! nop ! nop ! nop ! nop ! " + : : "r" (reset_addr), "r" (1) ); + + for (;;) + ; +} + +void machine_halt(void) +{ +#ifdef CONFIG_GDBSTUB + gdbstub_exit(0); +#endif + + for (;;); +} + +void machine_power_off(void) +{ +#ifdef CONFIG_GDBSTUB + gdbstub_exit(0); +#endif + + for (;;); +} + +void flush_thread(void) +{ +#if 0 //ndef NO_FPU + unsigned long zero = 0; +#endif + set_fs(USER_DS); +} + +inline unsigned long user_stack(const struct pt_regs *regs) +{ + while (regs->next_frame) + regs = regs->next_frame; + return user_mode(regs) ? regs->sp : 0; +} + +asmlinkage int sys_fork(void) +{ +#ifndef CONFIG_MMU + /* fork almost works, enough to trick you into looking elsewhere:-( */ + return -EINVAL; +#else + return do_fork(SIGCHLD, user_stack(__frame), __frame, 0, NULL, NULL); +#endif +} + +asmlinkage int sys_vfork(void) +{ + return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, user_stack(__frame), __frame, 0, + NULL, NULL); +} + +/*****************************************************************************/ +/* + * clone a process + * - tlsptr is retrieved by copy_thread() + */ +asmlinkage int sys_clone(unsigned long clone_flags, unsigned long newsp, + int __user *parent_tidptr, int __user *child_tidptr, + int __user *tlsptr) +{ + if (!newsp) + newsp = user_stack(__frame); + return do_fork(clone_flags, newsp, __frame, 0, parent_tidptr, child_tidptr); +} /* end sys_clone() */ + +/*****************************************************************************/ +/* + * This gets called before we allocate a new thread and copy + * the current task into it. + */ +void prepare_to_copy(struct task_struct *tsk) +{ + //unlazy_fpu(tsk); +} /* end prepare_to_copy() */ + +/*****************************************************************************/ +/* + * set up the kernel stack and exception frames for a new process + */ +int copy_thread(int nr, unsigned long clone_flags, + unsigned long usp, unsigned long topstk, + struct task_struct *p, struct pt_regs *regs) +{ + struct pt_regs *childregs0, *childregs, *regs0; + + regs0 = __kernel_frame0_ptr; + childregs0 = (struct pt_regs *) + ((unsigned long) p->thread_info + THREAD_SIZE - USER_CONTEXT_SIZE); + childregs = childregs0; + + /* set up the userspace frame (the only place that the USP is stored) */ + *childregs0 = *regs0; + + childregs0->gr8 = 0; + childregs0->sp = usp; + childregs0->next_frame = NULL; + + /* set up the return kernel frame if called from kernel_thread() */ + if (regs != regs0) { + childregs--; + *childregs = *regs; + childregs->sp = (unsigned long) childregs0; + childregs->next_frame = childregs0; + childregs->gr15 = (unsigned long) p->thread_info; + childregs->gr29 = (unsigned long) p; + } + + p->set_child_tid = p->clear_child_tid = NULL; + + p->thread.frame = childregs; + p->thread.curr = p; + p->thread.sp = (unsigned long) childregs; + p->thread.fp = 0; + p->thread.lr = 0; + p->thread.pc = (unsigned long) ret_from_fork; + p->thread.frame0 = childregs0; + + /* the new TLS pointer is passed in as arg #5 to sys_clone() */ + if (clone_flags & CLONE_SETTLS) + childregs->gr29 = childregs->gr12; + + save_user_regs(p->thread.user); + + return 0; +} /* end copy_thread() */ + +/* + * fill in the user structure for a core dump.. + */ +void dump_thread(struct pt_regs *regs, struct user *dump) +{ +#if 0 + /* changed the size calculations - should hopefully work better. lbt */ + dump->magic = CMAGIC; + dump->start_code = 0; + dump->start_stack = user_stack(regs) & ~(PAGE_SIZE - 1); + dump->u_tsize = ((unsigned long) current->mm->end_code) >> PAGE_SHIFT; + dump->u_dsize = ((unsigned long) (current->mm->brk + (PAGE_SIZE-1))) >> PAGE_SHIFT; + dump->u_dsize -= dump->u_tsize; + dump->u_ssize = 0; + + if (dump->start_stack < TASK_SIZE) + dump->u_ssize = ((unsigned long) (TASK_SIZE - dump->start_stack)) >> PAGE_SHIFT; + + dump->regs = *(struct user_context *) regs; +#endif +} + +/* + * sys_execve() executes a new program. + */ +asmlinkage int sys_execve(char *name, char **argv, char **envp) +{ + int error; + char * filename; + + lock_kernel(); + filename = getname(name); + error = PTR_ERR(filename); + if (IS_ERR(filename)) + goto out; + error = do_execve(filename, argv, envp, __frame); + putname(filename); + out: + unlock_kernel(); + return error; +} + +unsigned long get_wchan(struct task_struct *p) +{ + struct pt_regs *regs0; + unsigned long fp, pc; + unsigned long stack_limit; + int count = 0; + if (!p || p == current || p->state == TASK_RUNNING) + return 0; + + stack_limit = (unsigned long) (p + 1); + fp = p->thread.fp; + regs0 = p->thread.frame0; + + do { + if (fp < stack_limit || fp >= (unsigned long) regs0 || fp & 3) + return 0; + + pc = ((unsigned long *) fp)[2]; + + /* FIXME: This depends on the order of these functions. */ + if (!in_sched_functions(pc)) + return pc; + + fp = *(unsigned long *) fp; + } while (count++ < 16); + + return 0; +} + +unsigned long thread_saved_pc(struct task_struct *tsk) +{ + /* Check whether the thread is blocked in resume() */ + if (in_sched_functions(tsk->thread.pc)) + return ((unsigned long *)tsk->thread.fp)[2]; + else + return tsk->thread.pc; +} + +int elf_check_arch(const struct elf32_hdr *hdr) +{ + unsigned long hsr0 = __get_HSR(0); + unsigned long psr = __get_PSR(); + + if (hdr->e_machine != EM_FRV) + return 0; + + switch (hdr->e_flags & EF_FRV_GPR_MASK) { + case EF_FRV_GPR64: + if ((hsr0 & HSR0_GRN) == HSR0_GRN_32) + return 0; + case EF_FRV_GPR32: + case 0: + break; + default: + return 0; + } + + switch (hdr->e_flags & EF_FRV_FPR_MASK) { + case EF_FRV_FPR64: + if ((hsr0 & HSR0_FRN) == HSR0_FRN_32) + return 0; + case EF_FRV_FPR32: + case EF_FRV_FPR_NONE: + case 0: + break; + default: + return 0; + } + + if ((hdr->e_flags & EF_FRV_MULADD) == EF_FRV_MULADD) + if (PSR_IMPLE(psr) != PSR_IMPLE_FR405 && + PSR_IMPLE(psr) != PSR_IMPLE_FR451) + return 0; + + switch (hdr->e_flags & EF_FRV_CPU_MASK) { + case EF_FRV_CPU_GENERIC: + break; + case EF_FRV_CPU_FR300: + case EF_FRV_CPU_SIMPLE: + case EF_FRV_CPU_TOMCAT: + default: + return 0; + case EF_FRV_CPU_FR400: + if (PSR_IMPLE(psr) != PSR_IMPLE_FR401 && + PSR_IMPLE(psr) != PSR_IMPLE_FR405 && + PSR_IMPLE(psr) != PSR_IMPLE_FR451 && + PSR_IMPLE(psr) != PSR_IMPLE_FR551) + return 0; + break; + case EF_FRV_CPU_FR450: + if (PSR_IMPLE(psr) != PSR_IMPLE_FR451) + return 0; + break; + case EF_FRV_CPU_FR500: + if (PSR_IMPLE(psr) != PSR_IMPLE_FR501) + return 0; + break; + case EF_FRV_CPU_FR550: + if (PSR_IMPLE(psr) != PSR_IMPLE_FR551) + return 0; + break; + } + + return 1; +} diff -Nru a/arch/frv/kernel/ptrace.c b/arch/frv/kernel/ptrace.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/ptrace.c 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,764 @@ +/* ptrace.c: FRV specific parts of process tracing + * + * Copyright (C) 2003-5 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * - Derived from arch/m68k/kernel/ptrace.c + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +/* + * does not yet catch signals sent when the child dies. + * in exit.c or in signal.c. + */ + +/* + * Get contents of register REGNO in task TASK. + */ +static inline long get_reg(struct task_struct *task, int regno) +{ + struct user_context *user = task->thread.user; + + if (regno < 0 || regno >= PT__END) + return 0; + + return ((unsigned long *) user)[regno]; +} + +/* + * Write contents of register REGNO in task TASK. + */ +static inline int put_reg(struct task_struct *task, int regno, + unsigned long data) +{ + struct user_context *user = task->thread.user; + + if (regno < 0 || regno >= PT__END) + return -EIO; + + switch (regno) { + case PT_GR(0): + return 0; + case PT_PSR: + case PT__STATUS: + return -EIO; + default: + ((unsigned long *) user)[regno] = data; + return 0; + } +} + +/* + * check that an address falls within the bounds of the target process's memory mappings + */ +static inline int is_user_addr_valid(struct task_struct *child, + unsigned long start, unsigned long len) +{ +#ifdef CONFIG_MMU + if (start >= PAGE_OFFSET || len > PAGE_OFFSET - start) + return -EIO; + return 0; +#else + struct vm_list_struct *vml; + + for (vml = child->mm->context.vmlist; vml; vml = vml->next) + if (start >= vml->vma->vm_start && start + len <= vml->vma->vm_end) + return 0; + + return -EIO; +#endif +} + +/* + * Called by kernel/ptrace.c when detaching.. + * + * Control h/w single stepping + */ +void ptrace_disable(struct task_struct *child) +{ + child->thread.frame0->__status &= ~REG__STATUS_STEP; +} + +void ptrace_enable(struct task_struct *child) +{ + child->thread.frame0->__status |= REG__STATUS_STEP; +} + +asmlinkage int sys_ptrace(long request, long pid, long addr, long data) +{ + struct task_struct *child; + unsigned long tmp; + int ret; + + lock_kernel(); + ret = -EPERM; + if (request == PTRACE_TRACEME) { + /* are we already being traced? */ + if (current->ptrace & PT_PTRACED) + goto out; + ret = security_ptrace(current->parent, current); + if (ret) + goto out; + /* set the ptrace bit in the process flags. */ + current->ptrace |= PT_PTRACED; + ret = 0; + goto out; + } + ret = -ESRCH; + read_lock(&tasklist_lock); + child = find_task_by_pid(pid); + if (child) + get_task_struct(child); + read_unlock(&tasklist_lock); + if (!child) + goto out; + + ret = -EPERM; + if (pid == 1) /* you may not mess with init */ + goto out_tsk; + + if (request == PTRACE_ATTACH) { + ret = ptrace_attach(child); + goto out_tsk; + } + + ret = ptrace_check_attach(child, request == PTRACE_KILL); + if (ret < 0) + goto out_tsk; + + switch (request) { + /* when I and D space are separate, these will need to be fixed. */ + case PTRACE_PEEKTEXT: /* read word at location addr. */ + case PTRACE_PEEKDATA: { + int copied; + + ret = -EIO; + if (is_user_addr_valid(child, addr, sizeof(tmp)) < 0) + break; + + copied = access_process_vm(child, addr, &tmp, sizeof(tmp), 0); + if (copied != sizeof(tmp)) + break; + + ret = put_user(tmp,(unsigned long *) data); + break; + } + + /* read the word at location addr in the USER area. */ + case PTRACE_PEEKUSR: { + tmp = 0; + ret = -EIO; + if ((addr & 3) || addr < 0) + break; + + ret = 0; + switch (addr >> 2) { + case 0 ... PT__END - 1: + tmp = get_reg(child, addr >> 2); + break; + + case PT__END + 0: + tmp = child->mm->end_code - child->mm->start_code; + break; + + case PT__END + 1: + tmp = child->mm->end_data - child->mm->start_data; + break; + + case PT__END + 2: + tmp = child->mm->start_stack - child->mm->start_brk; + break; + + case PT__END + 3: + tmp = child->mm->start_code; + break; + + case PT__END + 4: + tmp = child->mm->start_stack; + break; + + default: + ret = -EIO; + break; + } + + if (ret == 0) + ret = put_user(tmp, (unsigned long *) data); + break; + } + + /* when I and D space are separate, this will have to be fixed. */ + case PTRACE_POKETEXT: /* write the word at location addr. */ + case PTRACE_POKEDATA: + ret = -EIO; + if (is_user_addr_valid(child, addr, sizeof(tmp)) < 0) + break; + if (access_process_vm(child, addr, &data, sizeof(data), 1) != sizeof(data)) + break; + ret = 0; + break; + + case PTRACE_POKEUSR: /* write the word at location addr in the USER area */ + ret = -EIO; + if ((addr & 3) || addr < 0) + break; + + ret = 0; + switch (addr >> 2) { + case 0 ... PT__END-1: + ret = put_reg(child, addr >> 2, data); + break; + + default: + ret = -EIO; + break; + } + break; + + case PTRACE_SYSCALL: /* continue and stop at next (return from) syscall */ + case PTRACE_CONT: /* restart after signal. */ + ret = -EIO; + if ((unsigned long) data > _NSIG) + break; + if (request == PTRACE_SYSCALL) + set_tsk_thread_flag(child, TIF_SYSCALL_TRACE); + else + clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE); + child->exit_code = data; + ptrace_disable(child); + wake_up_process(child); + ret = 0; + break; + + /* make the child exit. Best I can do is send it a sigkill. + * perhaps it should be put in the status that it wants to + * exit. + */ + case PTRACE_KILL: + ret = 0; + if (child->exit_state == EXIT_ZOMBIE) /* already dead */ + break; + child->exit_code = SIGKILL; + clear_tsk_thread_flag(child, TIF_SINGLESTEP); + ptrace_disable(child); + wake_up_process(child); + break; + + case PTRACE_SINGLESTEP: /* set the trap flag. */ + ret = -EIO; + if ((unsigned long) data > _NSIG) + break; + clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE); + ptrace_enable(child); + child->exit_code = data; + wake_up_process(child); + ret = 0; + break; + + case PTRACE_DETACH: /* detach a process that was attached. */ + ret = ptrace_detach(child, data); + break; + + case PTRACE_GETREGS: { /* Get all integer regs from the child. */ + int i; + for (i = 0; i < PT__GPEND; i++) { + tmp = get_reg(child, i); + if (put_user(tmp, (unsigned long *) data)) { + ret = -EFAULT; + break; + } + data += sizeof(long); + } + ret = 0; + break; + } + + case PTRACE_SETREGS: { /* Set all integer regs in the child. */ + int i; + for (i = 0; i < PT__GPEND; i++) { + if (get_user(tmp, (unsigned long *) data)) { + ret = -EFAULT; + break; + } + put_reg(child, i, tmp); + data += sizeof(long); + } + ret = 0; + break; + } + + case PTRACE_GETFPREGS: { /* Get the child FP/Media state. */ + ret = 0; + if (copy_to_user((void *) data, + &child->thread.user->f, + sizeof(child->thread.user->f))) + ret = -EFAULT; + break; + } + + case PTRACE_SETFPREGS: { /* Set the child FP/Media state. */ + ret = 0; + if (copy_from_user(&child->thread.user->f, + (void *) data, + sizeof(child->thread.user->f))) + ret = -EFAULT; + break; + } + + case PTRACE_GETFDPIC: + tmp = 0; + switch (addr) { + case PTRACE_GETFDPIC_EXEC: + tmp = child->mm->context.exec_fdpic_loadmap; + break; + case PTRACE_GETFDPIC_INTERP: + tmp = child->mm->context.interp_fdpic_loadmap; + break; + default: + break; + } + + ret = 0; + if (put_user(tmp, (unsigned long *) data)) { + ret = -EFAULT; + break; + } + break; + + default: + ret = -EIO; + break; + } +out_tsk: + put_task_struct(child); +out: + unlock_kernel(); + return ret; +} + +int __nongprelbss kstrace; + +static const struct { + const char *name; + unsigned argmask; +} __syscall_name_table[NR_syscalls] = { + [0] = { "restart_syscall" }, + [1] = { "exit", 0x000001 }, + [2] = { "fork", 0xffffff }, + [3] = { "read", 0x000141 }, + [4] = { "write", 0x000141 }, + [5] = { "open", 0x000235 }, + [6] = { "close", 0x000001 }, + [7] = { "waitpid", 0x000141 }, + [8] = { "creat", 0x000025 }, + [9] = { "link", 0x000055 }, + [10] = { "unlink", 0x000005 }, + [11] = { "execve", 0x000445 }, + [12] = { "chdir", 0x000005 }, + [13] = { "time", 0x000004 }, + [14] = { "mknod", 0x000325 }, + [15] = { "chmod", 0x000025 }, + [16] = { "lchown", 0x000025 }, + [17] = { "break" }, + [18] = { "oldstat", 0x000045 }, + [19] = { "lseek", 0x000131 }, + [20] = { "getpid", 0xffffff }, + [21] = { "mount", 0x043555 }, + [22] = { "umount", 0x000005 }, + [23] = { "setuid", 0x000001 }, + [24] = { "getuid", 0xffffff }, + [25] = { "stime", 0x000004 }, + [26] = { "ptrace", 0x004413 }, + [27] = { "alarm", 0x000001 }, + [28] = { "oldfstat", 0x000041 }, + [29] = { "pause", 0xffffff }, + [30] = { "utime", 0x000045 }, + [31] = { "stty" }, + [32] = { "gtty" }, + [33] = { "access", 0x000025 }, + [34] = { "nice", 0x000001 }, + [35] = { "ftime" }, + [36] = { "sync", 0xffffff }, + [37] = { "kill", 0x000011 }, + [38] = { "rename", 0x000055 }, + [39] = { "mkdir", 0x000025 }, + [40] = { "rmdir", 0x000005 }, + [41] = { "dup", 0x000001 }, + [42] = { "pipe", 0x000004 }, + [43] = { "times", 0x000004 }, + [44] = { "prof" }, + [45] = { "brk", 0x000004 }, + [46] = { "setgid", 0x000001 }, + [47] = { "getgid", 0xffffff }, + [48] = { "signal", 0x000041 }, + [49] = { "geteuid", 0xffffff }, + [50] = { "getegid", 0xffffff }, + [51] = { "acct", 0x000005 }, + [52] = { "umount2", 0x000035 }, + [53] = { "lock" }, + [54] = { "ioctl", 0x000331 }, + [55] = { "fcntl", 0x000331 }, + [56] = { "mpx" }, + [57] = { "setpgid", 0x000011 }, + [58] = { "ulimit" }, + [60] = { "umask", 0x000002 }, + [61] = { "chroot", 0x000005 }, + [62] = { "ustat", 0x000043 }, + [63] = { "dup2", 0x000011 }, + [64] = { "getppid", 0xffffff }, + [65] = { "getpgrp", 0xffffff }, + [66] = { "setsid", 0xffffff }, + [67] = { "sigaction" }, + [68] = { "sgetmask" }, + [69] = { "ssetmask" }, + [70] = { "setreuid" }, + [71] = { "setregid" }, + [72] = { "sigsuspend" }, + [73] = { "sigpending" }, + [74] = { "sethostname" }, + [75] = { "setrlimit" }, + [76] = { "getrlimit" }, + [77] = { "getrusage" }, + [78] = { "gettimeofday" }, + [79] = { "settimeofday" }, + [80] = { "getgroups" }, + [81] = { "setgroups" }, + [82] = { "select" }, + [83] = { "symlink" }, + [84] = { "oldlstat" }, + [85] = { "readlink" }, + [86] = { "uselib" }, + [87] = { "swapon" }, + [88] = { "reboot" }, + [89] = { "readdir" }, + [91] = { "munmap", 0x000034 }, + [92] = { "truncate" }, + [93] = { "ftruncate" }, + [94] = { "fchmod" }, + [95] = { "fchown" }, + [96] = { "getpriority" }, + [97] = { "setpriority" }, + [99] = { "statfs" }, + [100] = { "fstatfs" }, + [102] = { "socketcall" }, + [103] = { "syslog" }, + [104] = { "setitimer" }, + [105] = { "getitimer" }, + [106] = { "stat" }, + [107] = { "lstat" }, + [108] = { "fstat" }, + [111] = { "vhangup" }, + [114] = { "wait4" }, + [115] = { "swapoff" }, + [116] = { "sysinfo" }, + [117] = { "ipc" }, + [118] = { "fsync" }, + [119] = { "sigreturn" }, + [120] = { "clone" }, + [121] = { "setdomainname" }, + [122] = { "uname" }, + [123] = { "modify_ldt" }, + [123] = { "cacheflush" }, + [124] = { "adjtimex" }, + [125] = { "mprotect" }, + [126] = { "sigprocmask" }, + [127] = { "create_module" }, + [128] = { "init_module" }, + [129] = { "delete_module" }, + [130] = { "get_kernel_syms" }, + [131] = { "quotactl" }, + [132] = { "getpgid" }, + [133] = { "fchdir" }, + [134] = { "bdflush" }, + [135] = { "sysfs" }, + [136] = { "personality" }, + [137] = { "afs_syscall" }, + [138] = { "setfsuid" }, + [139] = { "setfsgid" }, + [140] = { "_llseek", 0x014331 }, + [141] = { "getdents" }, + [142] = { "_newselect", 0x000141 }, + [143] = { "flock" }, + [144] = { "msync" }, + [145] = { "readv" }, + [146] = { "writev" }, + [147] = { "getsid", 0x000001 }, + [148] = { "fdatasync", 0x000001 }, + [149] = { "_sysctl", 0x000004 }, + [150] = { "mlock" }, + [151] = { "munlock" }, + [152] = { "mlockall" }, + [153] = { "munlockall" }, + [154] = { "sched_setparam" }, + [155] = { "sched_getparam" }, + [156] = { "sched_setscheduler" }, + [157] = { "sched_getscheduler" }, + [158] = { "sched_yield" }, + [159] = { "sched_get_priority_max" }, + [160] = { "sched_get_priority_min" }, + [161] = { "sched_rr_get_interval" }, + [162] = { "nanosleep", 0x000044 }, + [163] = { "mremap" }, + [164] = { "setresuid" }, + [165] = { "getresuid" }, + [166] = { "vm86" }, + [167] = { "query_module" }, + [168] = { "poll" }, + [169] = { "nfsservctl" }, + [170] = { "setresgid" }, + [171] = { "getresgid" }, + [172] = { "prctl", 0x333331 }, + [173] = { "rt_sigreturn", 0xffffff }, + [174] = { "rt_sigaction", 0x001441 }, + [175] = { "rt_sigprocmask", 0x001441 }, + [176] = { "rt_sigpending", 0x000014 }, + [177] = { "rt_sigtimedwait", 0x001444 }, + [178] = { "rt_sigqueueinfo", 0x000411 }, + [179] = { "rt_sigsuspend", 0x000014 }, + [180] = { "pread", 0x003341 }, + [181] = { "pwrite", 0x003341 }, + [182] = { "chown", 0x000115 }, + [183] = { "getcwd" }, + [184] = { "capget" }, + [185] = { "capset" }, + [186] = { "sigaltstack" }, + [187] = { "sendfile" }, + [188] = { "getpmsg" }, + [189] = { "putpmsg" }, + [190] = { "vfork", 0xffffff }, + [191] = { "ugetrlimit" }, + [192] = { "mmap2", 0x313314 }, + [193] = { "truncate64" }, + [194] = { "ftruncate64" }, + [195] = { "stat64", 0x000045 }, + [196] = { "lstat64", 0x000045 }, + [197] = { "fstat64", 0x000041 }, + [198] = { "lchown32" }, + [199] = { "getuid32", 0xffffff }, + [200] = { "getgid32", 0xffffff }, + [201] = { "geteuid32", 0xffffff }, + [202] = { "getegid32", 0xffffff }, + [203] = { "setreuid32" }, + [204] = { "setregid32" }, + [205] = { "getgroups32" }, + [206] = { "setgroups32" }, + [207] = { "fchown32" }, + [208] = { "setresuid32" }, + [209] = { "getresuid32" }, + [210] = { "setresgid32" }, + [211] = { "getresgid32" }, + [212] = { "chown32" }, + [213] = { "setuid32" }, + [214] = { "setgid32" }, + [215] = { "setfsuid32" }, + [216] = { "setfsgid32" }, + [217] = { "pivot_root" }, + [218] = { "mincore" }, + [219] = { "madvise" }, + [220] = { "getdents64" }, + [221] = { "fcntl64" }, + [223] = { "security" }, + [224] = { "gettid" }, + [225] = { "readahead" }, + [226] = { "setxattr" }, + [227] = { "lsetxattr" }, + [228] = { "fsetxattr" }, + [229] = { "getxattr" }, + [230] = { "lgetxattr" }, + [231] = { "fgetxattr" }, + [232] = { "listxattr" }, + [233] = { "llistxattr" }, + [234] = { "flistxattr" }, + [235] = { "removexattr" }, + [236] = { "lremovexattr" }, + [237] = { "fremovexattr" }, + [238] = { "tkill" }, + [239] = { "sendfile64" }, + [240] = { "futex" }, + [241] = { "sched_setaffinity" }, + [242] = { "sched_getaffinity" }, + [243] = { "set_thread_area" }, + [244] = { "get_thread_area" }, + [245] = { "io_setup" }, + [246] = { "io_destroy" }, + [247] = { "io_getevents" }, + [248] = { "io_submit" }, + [249] = { "io_cancel" }, + [250] = { "fadvise64" }, + [252] = { "exit_group", 0x000001 }, + [253] = { "lookup_dcookie" }, + [254] = { "epoll_create" }, + [255] = { "epoll_ctl" }, + [256] = { "epoll_wait" }, + [257] = { "remap_file_pages" }, + [258] = { "set_tid_address" }, + [259] = { "timer_create" }, + [260] = { "timer_settime" }, + [261] = { "timer_gettime" }, + [262] = { "timer_getoverrun" }, + [263] = { "timer_delete" }, + [264] = { "clock_settime" }, + [265] = { "clock_gettime" }, + [266] = { "clock_getres" }, + [267] = { "clock_nanosleep" }, + [268] = { "statfs64" }, + [269] = { "fstatfs64" }, + [270] = { "tgkill" }, + [271] = { "utimes" }, + [272] = { "fadvise64_64" }, + [273] = { "vserver" }, + [274] = { "mbind" }, + [275] = { "get_mempolicy" }, + [276] = { "set_mempolicy" }, + [277] = { "mq_open" }, + [278] = { "mq_unlink" }, + [279] = { "mq_timedsend" }, + [280] = { "mq_timedreceive" }, + [281] = { "mq_notify" }, + [282] = { "mq_getsetattr" }, + [283] = { "sys_kexec_load" }, +}; + +asmlinkage void do_syscall_trace(int leaving) +{ +#if 0 + unsigned long *argp; + const char *name; + unsigned argmask; + char buffer[16]; + + if (!kstrace) + return; + + if (!current->mm) + return; + + if (__frame->gr7 == __NR_close) + return; + +#if 0 + if (__frame->gr7 != __NR_mmap2 && + __frame->gr7 != __NR_vfork && + __frame->gr7 != __NR_execve && + __frame->gr7 != __NR_exit) + return; +#endif + + argmask = 0; + name = NULL; + if (__frame->gr7 < NR_syscalls) { + name = __syscall_name_table[__frame->gr7].name; + argmask = __syscall_name_table[__frame->gr7].argmask; + } + if (!name) { + sprintf(buffer, "sys_%lx", __frame->gr7); + name = buffer; + } + + if (!leaving) { + if (!argmask) { + printk(KERN_CRIT "[%d] %s(%lx,%lx,%lx,%lx,%lx,%lx)\n", + current->pid, + name, + __frame->gr8, + __frame->gr9, + __frame->gr10, + __frame->gr11, + __frame->gr12, + __frame->gr13); + } + else if (argmask == 0xffffff) { + printk(KERN_CRIT "[%d] %s()\n", + current->pid, + name); + } + else { + printk(KERN_CRIT "[%d] %s(", + current->pid, + name); + + argp = &__frame->gr8; + + do { + switch (argmask & 0xf) { + case 1: + printk("%ld", (long) *argp); + break; + case 2: + printk("%lo", *argp); + break; + case 3: + printk("%lx", *argp); + break; + case 4: + printk("%p", (void *) *argp); + break; + case 5: + printk("\"%s\"", (char *) *argp); + break; + } + + argp++; + argmask >>= 4; + if (argmask) + printk(","); + + } while (argmask); + + printk(")\n"); + } + } + else { + if ((int)__frame->gr8 > -4096 && (int)__frame->gr8 < 4096) + printk(KERN_CRIT "[%d] %s() = %ld\n", current->pid, name, __frame->gr8); + else + printk(KERN_CRIT "[%d] %s() = %lx\n", current->pid, name, __frame->gr8); + } + return; +#endif + + if (!test_thread_flag(TIF_SYSCALL_TRACE)) + return; + + if (!(current->ptrace & PT_PTRACED)) + return; + + /* we need to indicate entry or exit to strace */ + if (leaving) + __frame->__status |= REG__STATUS_SYSC_EXIT; + else + __frame->__status |= REG__STATUS_SYSC_ENTRY; + + ptrace_notify(SIGTRAP); + + /* + * this isn't the same as continuing with a signal, but it will do + * for normal use. strace only continues with a signal if the + * stopping signal is not SIGTRAP. -brl + */ + if (current->exit_code) { + send_sig(current->exit_code, current, 1); + current->exit_code = 0; + } +} diff -Nru a/arch/frv/kernel/semaphore.c b/arch/frv/kernel/semaphore.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/semaphore.c 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,142 @@ +/* semaphore.c: FR-V semaphores + * + * Copyright (C) 2003 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * - Derived from lib/rwsem-spinlock.c + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#include +#include +#include +#include + +struct sem_waiter { + struct list_head list; + struct task_struct *task; +}; + +#if SEM_DEBUG +void semtrace(struct semaphore *sem, const char *str) +{ + if (sem->debug) + printk("[%d] %s({%d,%d})\n", + current->pid, + str, + sem->counter, + list_empty(&sem->wait_list) ? 0 : 1); +} +#else +#define semtrace(SEM,STR) do { } while(0) +#endif + +/* + * wait for a token to be granted from a semaphore + * - entered with lock held and interrupts disabled + */ +void __down(struct semaphore *sem, unsigned long flags) +{ + struct task_struct *tsk = current; + struct sem_waiter waiter; + + semtrace(sem,"Entering __down"); + + /* set up my own style of waitqueue */ + waiter.task = tsk; + + list_add_tail(&waiter.list, &sem->wait_list); + + /* we don't need to touch the semaphore struct anymore */ + spin_unlock_irqrestore(&sem->wait_lock, flags); + + /* wait to be given the lock */ + set_task_state(tsk, TASK_UNINTERRUPTIBLE); + + for (;;) { + if (list_empty(&waiter.list)) + break; + schedule(); + set_task_state(tsk, TASK_UNINTERRUPTIBLE); + } + + tsk->state = TASK_RUNNING; + semtrace(sem,"Leaving __down"); +} + +EXPORT_SYMBOL(__down); + +/* + * interruptibly wait for a token to be granted from a semaphore + * - entered with lock held and interrupts disabled + */ +int __down_interruptible(struct semaphore *sem, unsigned long flags) +{ + struct task_struct *tsk = current; + struct sem_waiter waiter; + int ret; + + semtrace(sem,"Entering __down_interruptible"); + + /* set up my own style of waitqueue */ + waiter.task = tsk; + + list_add_tail(&waiter.list, &sem->wait_list); + + /* we don't need to touch the semaphore struct anymore */ + set_task_state(tsk, TASK_INTERRUPTIBLE); + + spin_unlock_irqrestore(&sem->wait_lock, flags); + + /* wait to be given the lock */ + ret = 0; + for (;;) { + if (list_empty(&waiter.list)) + break; + if (unlikely(signal_pending(current))) + goto interrupted; + schedule(); + set_task_state(tsk, TASK_INTERRUPTIBLE); + } + + out: + tsk->state = TASK_RUNNING; + semtrace(sem, "Leaving __down_interruptible"); + return ret; + + interrupted: + spin_lock_irqsave(&sem->wait_lock, flags); + + if (!list_empty(&waiter.list)) { + list_del(&waiter.list); + ret = -EINTR; + } + + spin_unlock_irqrestore(&sem->wait_lock, flags); + goto out; +} + +EXPORT_SYMBOL(__down_interruptible); + +/* + * release a single token back to a semaphore + * - entered with lock held and interrupts disabled + */ +void __up(struct semaphore *sem) +{ + struct sem_waiter *waiter; + + semtrace(sem,"Entering __up"); + + /* grant the token to the process at the front of the queue */ + waiter = list_entry(sem->wait_list.next, struct sem_waiter, list); + list_del_init(&waiter->list); + wake_up_process(waiter->task); + + semtrace(sem,"Leaving __up"); +} + +EXPORT_SYMBOL(__up); diff -Nru a/arch/frv/kernel/setup.c b/arch/frv/kernel/setup.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/setup.c 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,1197 @@ +/* setup.c: FRV specific setup + * + * Copyright (C) 2003-5 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * - Derived from arch/m68k/kernel/setup.c + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef CONFIG_BLK_DEV_INITRD +#include +#include +#endif + +#include "local.h" + +#ifdef CONFIG_MB93090_MB00 +static void __init mb93090_display(void); +#endif +#ifdef CONFIG_MMU +static void __init setup_linux_memory(void); +#else +static void __init setup_uclinux_memory(void); +#endif + +#ifdef CONFIG_CONSOLE +extern struct consw *conswitchp; +#ifdef CONFIG_FRAMEBUFFER +extern struct consw fb_con; +#endif +#endif + +#ifdef CONFIG_MB93090_MB00 +static char __initdata mb93090_banner[] = "FJ/RH FR-V Linux"; +static char __initdata mb93090_version[] = UTS_RELEASE; + +int __nongprelbss mb93090_mb00_detected; +#endif + +const char __frv_unknown_system[] = "unknown"; +const char __frv_mb93091_cb10[] = "mb93091-cb10"; +const char __frv_mb93091_cb11[] = "mb93091-cb11"; +const char __frv_mb93091_cb30[] = "mb93091-cb30"; +const char __frv_mb93091_cb41[] = "mb93091-cb41"; +const char __frv_mb93091_cb60[] = "mb93091-cb60"; +const char __frv_mb93091_cb70[] = "mb93091-cb70"; +const char __frv_mb93091_cb451[] = "mb93091-cb451"; +const char __frv_mb93090_mb00[] = "mb93090-mb00"; + +const char __frv_mb93493[] = "mb93493"; + +const char __frv_mb93093[] = "mb93093"; + +static const char *__nongprelbss cpu_series; +static const char *__nongprelbss cpu_core; +static const char *__nongprelbss cpu_silicon; +static const char *__nongprelbss cpu_mmu; +static const char *__nongprelbss cpu_system; +static const char *__nongprelbss cpu_board1; +static const char *__nongprelbss cpu_board2; + +static unsigned long __nongprelbss cpu_psr_all; +static unsigned long __nongprelbss cpu_hsr0_all; + +unsigned long __nongprelbss pdm_suspend_mode; + +unsigned long __nongprelbss rom_length; +unsigned long __nongprelbss memory_start; +unsigned long __nongprelbss memory_end; + +unsigned long __nongprelbss dma_coherent_mem_start; +unsigned long __nongprelbss dma_coherent_mem_end; + +unsigned long __initdata __sdram_old_base; +unsigned long __initdata num_mappedpages; + +struct cpuinfo_frv __nongprelbss boot_cpu_data; + +char command_line[COMMAND_LINE_SIZE]; +char __initdata redboot_command_line[COMMAND_LINE_SIZE]; + +#ifdef CONFIG_PM +#define __pminit +#define __pminitdata +#else +#define __pminit __init +#define __pminitdata __initdata +#endif + +struct clock_cmode { + uint8_t xbus, sdram, corebus, core, dsu; +}; + +#define _frac(N,D) ((N)<<4 | (D)) +#define _x0_16 _frac(1,6) +#define _x0_25 _frac(1,4) +#define _x0_33 _frac(1,3) +#define _x0_375 _frac(3,8) +#define _x0_5 _frac(1,2) +#define _x0_66 _frac(2,3) +#define _x0_75 _frac(3,4) +#define _x1 _frac(1,1) +#define _x1_5 _frac(3,2) +#define _x2 _frac(2,1) +#define _x3 _frac(3,1) +#define _x4 _frac(4,1) +#define _x4_5 _frac(9,2) +#define _x6 _frac(6,1) +#define _x8 _frac(8,1) +#define _x9 _frac(9,1) + +int __nongprelbss clock_p0_current; +int __nongprelbss clock_cm_current; +int __nongprelbss clock_cmode_current; +#ifdef CONFIG_PM +int __nongprelbss clock_cmodes_permitted; +unsigned long __nongprelbss clock_bits_settable; +#endif + +static struct clock_cmode __pminitdata undef_clock_cmode = { _x1, _x1, _x1, _x1, _x1 }; + +static struct clock_cmode __pminitdata clock_cmodes_fr401_fr403[16] = { + [4] = { _x1, _x1, _x2, _x2, _x0_25 }, + [5] = { _x1, _x2, _x4, _x4, _x0_5 }, + [8] = { _x1, _x1, _x1, _x2, _x0_25 }, + [9] = { _x1, _x2, _x2, _x4, _x0_5 }, + [11] = { _x1, _x4, _x4, _x8, _x1 }, + [12] = { _x1, _x1, _x2, _x4, _x0_5 }, + [13] = { _x1, _x2, _x4, _x8, _x1 }, +}; + +static struct clock_cmode __pminitdata clock_cmodes_fr405[16] = { + [0] = { _x1, _x1, _x1, _x1, _x0_5 }, + [1] = { _x1, _x1, _x1, _x3, _x0_25 }, + [2] = { _x1, _x1, _x2, _x6, _x0_5 }, + [3] = { _x1, _x2, _x2, _x6, _x0_5 }, + [4] = { _x1, _x1, _x2, _x2, _x0_16 }, + [8] = { _x1, _x1, _x1, _x2, _x0_16 }, + [9] = { _x1, _x2, _x2, _x4, _x0_33 }, + [12] = { _x1, _x1, _x2, _x4, _x0_33 }, + [14] = { _x1, _x3, _x3, _x9, _x0_75 }, + [15] = { _x1, _x1_5, _x1_5, _x4_5, _x0_375 }, + +#define CLOCK_CMODES_PERMITTED_FR405 0xd31f +}; + +static struct clock_cmode __pminitdata clock_cmodes_fr555[16] = { + [0] = { _x1, _x2, _x2, _x4, _x0_33 }, + [1] = { _x1, _x3, _x3, _x6, _x0_5 }, + [2] = { _x1, _x2, _x4, _x8, _x0_66 }, + [3] = { _x1, _x1_5, _x3, _x6, _x0_5 }, + [4] = { _x1, _x3, _x3, _x9, _x0_75 }, + [5] = { _x1, _x2, _x2, _x6, _x0_5 }, + [6] = { _x1, _x1_5, _x1_5, _x4_5, _x0_375 }, +}; + +static const struct clock_cmode __pminitdata *clock_cmodes; +static int __pminitdata clock_doubled; + +static struct uart_port __initdata __frv_uart0 = { + .uartclk = 0, + .membase = (char *) UART0_BASE, + .irq = IRQ_CPU_UART0, + .regshift = 3, + .iotype = UPIO_MEM, + .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST, +}; + +static struct uart_port __initdata __frv_uart1 = { + .uartclk = 0, + .membase = (char *) UART1_BASE, + .irq = IRQ_CPU_UART1, + .regshift = 3, + .iotype = UPIO_MEM, + .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST, +}; + +#if 0 +static void __init printk_xampr(unsigned long ampr, unsigned long amlr, char i_d, int n) +{ + unsigned long phys, virt, cxn, size; + +#ifdef CONFIG_MMU + virt = amlr & 0xffffc000; + cxn = amlr & 0x3fff; +#else + virt = ampr & 0xffffc000; + cxn = 0; +#endif + phys = ampr & xAMPRx_PPFN; + size = 1 << (((ampr & xAMPRx_SS) >> 4) + 17); + + printk("%cAMPR%d: va %08lx-%08lx [pa %08lx] %c%c%c%c [cxn:%04lx]\n", + i_d, n, + virt, virt + size - 1, + phys, + ampr & xAMPRx_S ? 'S' : '-', + ampr & xAMPRx_C ? 'C' : '-', + ampr & DAMPRx_WP ? 'W' : '-', + ampr & xAMPRx_V ? 'V' : '-', + cxn + ); +} +#endif + +/*****************************************************************************/ +/* + * dump the memory map + */ +static void __init dump_memory_map(void) +{ + +#if 0 + /* dump the protection map */ + printk_xampr(__get_IAMPR(0), __get_IAMLR(0), 'I', 0); + printk_xampr(__get_IAMPR(1), __get_IAMLR(1), 'I', 1); + printk_xampr(__get_IAMPR(2), __get_IAMLR(2), 'I', 2); + printk_xampr(__get_IAMPR(3), __get_IAMLR(3), 'I', 3); + printk_xampr(__get_IAMPR(4), __get_IAMLR(4), 'I', 4); + printk_xampr(__get_IAMPR(5), __get_IAMLR(5), 'I', 5); + printk_xampr(__get_IAMPR(6), __get_IAMLR(6), 'I', 6); + printk_xampr(__get_IAMPR(7), __get_IAMLR(7), 'I', 7); + printk_xampr(__get_IAMPR(8), __get_IAMLR(8), 'I', 8); + printk_xampr(__get_IAMPR(9), __get_IAMLR(9), 'i', 9); + printk_xampr(__get_IAMPR(10), __get_IAMLR(10), 'I', 10); + printk_xampr(__get_IAMPR(11), __get_IAMLR(11), 'I', 11); + printk_xampr(__get_IAMPR(12), __get_IAMLR(12), 'I', 12); + printk_xampr(__get_IAMPR(13), __get_IAMLR(13), 'I', 13); + printk_xampr(__get_IAMPR(14), __get_IAMLR(14), 'I', 14); + printk_xampr(__get_IAMPR(15), __get_IAMLR(15), 'I', 15); + + printk_xampr(__get_DAMPR(0), __get_DAMLR(0), 'D', 0); + printk_xampr(__get_DAMPR(1), __get_DAMLR(1), 'D', 1); + printk_xampr(__get_DAMPR(2), __get_DAMLR(2), 'D', 2); + printk_xampr(__get_DAMPR(3), __get_DAMLR(3), 'D', 3); + printk_xampr(__get_DAMPR(4), __get_DAMLR(4), 'D', 4); + printk_xampr(__get_DAMPR(5), __get_DAMLR(5), 'D', 5); + printk_xampr(__get_DAMPR(6), __get_DAMLR(6), 'D', 6); + printk_xampr(__get_DAMPR(7), __get_DAMLR(7), 'D', 7); + printk_xampr(__get_DAMPR(8), __get_DAMLR(8), 'D', 8); + printk_xampr(__get_DAMPR(9), __get_DAMLR(9), 'D', 9); + printk_xampr(__get_DAMPR(10), __get_DAMLR(10), 'D', 10); + printk_xampr(__get_DAMPR(11), __get_DAMLR(11), 'D', 11); + printk_xampr(__get_DAMPR(12), __get_DAMLR(12), 'D', 12); + printk_xampr(__get_DAMPR(13), __get_DAMLR(13), 'D', 13); + printk_xampr(__get_DAMPR(14), __get_DAMLR(14), 'D', 14); + printk_xampr(__get_DAMPR(15), __get_DAMLR(15), 'D', 15); +#endif + +#if 0 + /* dump the bus controller registers */ + printk("LGCR: %08lx\n", __get_LGCR()); + printk("Master: %08lx-%08lx CR=%08lx\n", + __get_LEMBR(), __get_LEMBR() + __get_LEMAM(), + __get_LMAICR()); + + int loop; + for (loop = 1; loop <= 7; loop++) { + unsigned long lcr = __get_LCR(loop), lsbr = __get_LSBR(loop); + printk("CS#%d: %08lx-%08lx %c%c%c%c%c%c%c%c%c\n", + loop, + lsbr, lsbr + __get_LSAM(loop), + lcr & 0x80000000 ? 'r' : '-', + lcr & 0x40000000 ? 'w' : '-', + lcr & 0x08000000 ? 'b' : '-', + lcr & 0x04000000 ? 'B' : '-', + lcr & 0x02000000 ? 'C' : '-', + lcr & 0x01000000 ? 'D' : '-', + lcr & 0x00800000 ? 'W' : '-', + lcr & 0x00400000 ? 'R' : '-', + (lcr & 0x00030000) == 0x00000000 ? '4' : + (lcr & 0x00030000) == 0x00010000 ? '2' : + (lcr & 0x00030000) == 0x00020000 ? '1' : + '-' + ); + } +#endif + +#if 0 + printk("\n"); +#endif +} /* end dump_memory_map() */ + +/*****************************************************************************/ +/* + * attempt to detect a VDK motherboard and DAV daughter board on an MB93091 system + */ +#ifdef CONFIG_MB93091_VDK +static void __init detect_mb93091(void) +{ +#ifdef CONFIG_MB93090_MB00 + /* Detect CB70 without motherboard */ + if (!(cpu_system == __frv_mb93091_cb70 && ((*(unsigned short *)0xffc00030) & 0x100))) { + cpu_board1 = __frv_mb93090_mb00; + mb93090_mb00_detected = 1; + } +#endif + +#ifdef CONFIG_FUJITSU_MB93493 + cpu_board2 = __frv_mb93493; +#endif + +} /* end detect_mb93091() */ +#endif + +/*****************************************************************************/ +/* + * determine the CPU type and set appropriate parameters + * + * Family Series CPU Core Silicon Imple Vers + * ---------------------------------------------------------- + * FR-V --+-> FR400 --+-> FR401 --+-> MB93401 02 00 [1] + * | | | + * | | +-> MB93401/A 02 01 + * | | | + * | | +-> MB93403 02 02 + * | | + * | +-> FR405 ----> MB93405 04 00 + * | + * +-> FR450 ----> FR451 ----> MB93451 05 00 + * | + * +-> FR500 ----> FR501 --+-> MB93501 01 01 [2] + * | | + * | +-> MB93501/A 01 02 + * | + * +-> FR550 --+-> FR551 ----> MB93555 03 01 + * + * [1] The MB93401 is an obsolete CPU replaced by the MB93401A + * [2] The MB93501 is an obsolete CPU replaced by the MB93501A + * + * Imple is PSR(Processor Status Register)[31:28]. + * Vers is PSR(Processor Status Register)[27:24]. + * + * A "Silicon" consists of CPU core and some on-chip peripherals. + */ +static void __init determine_cpu(void) +{ + unsigned long hsr0 = __get_HSR(0); + unsigned long psr = __get_PSR(); + + /* work out what selectable services the CPU supports */ + __set_PSR(psr | PSR_EM | PSR_EF | PSR_CM | PSR_NEM); + cpu_psr_all = __get_PSR(); + __set_PSR(psr); + + __set_HSR(0, hsr0 | HSR0_GRLE | HSR0_GRHE | HSR0_FRLE | HSR0_FRHE); + cpu_hsr0_all = __get_HSR(0); + __set_HSR(0, hsr0); + + /* derive other service specs from the CPU type */ + cpu_series = "unknown"; + cpu_core = "unknown"; + cpu_silicon = "unknown"; + cpu_mmu = "Prot"; + cpu_system = __frv_unknown_system; + clock_cmodes = NULL; + clock_doubled = 0; +#ifdef CONFIG_PM + clock_bits_settable = CLOCK_BIT_CM_H | CLOCK_BIT_CM_M | CLOCK_BIT_P0; +#endif + + switch (PSR_IMPLE(psr)) { + case PSR_IMPLE_FR401: + cpu_series = "fr400"; + cpu_core = "fr401"; + pdm_suspend_mode = HSR0_PDM_PLL_RUN; + + switch (PSR_VERSION(psr)) { + case PSR_VERSION_FR401_MB93401: + cpu_silicon = "mb93401"; + cpu_system = __frv_mb93091_cb10; + clock_cmodes = clock_cmodes_fr401_fr403; + clock_doubled = 1; + break; + case PSR_VERSION_FR401_MB93401A: + cpu_silicon = "mb93401/A"; + cpu_system = __frv_mb93091_cb11; + clock_cmodes = clock_cmodes_fr401_fr403; + break; + case PSR_VERSION_FR401_MB93403: + cpu_silicon = "mb93403"; +#ifndef CONFIG_MB93093_PDK + cpu_system = __frv_mb93091_cb30; +#else + cpu_system = __frv_mb93093; +#endif + clock_cmodes = clock_cmodes_fr401_fr403; + break; + default: + break; + } + break; + + case PSR_IMPLE_FR405: + cpu_series = "fr400"; + cpu_core = "fr405"; + pdm_suspend_mode = HSR0_PDM_PLL_STOP; + + switch (PSR_VERSION(psr)) { + case PSR_VERSION_FR405_MB93405: + cpu_silicon = "mb93405"; + cpu_system = __frv_mb93091_cb60; + clock_cmodes = clock_cmodes_fr405; +#ifdef CONFIG_PM + clock_bits_settable |= CLOCK_BIT_CMODE; + clock_cmodes_permitted = CLOCK_CMODES_PERMITTED_FR405; +#endif + + /* the FPGA on the CB70 has extra registers + * - it has 0x0046 in the VDK_ID FPGA register at 0x1a0, which is + * how we tell the difference between it and a CB60 + */ + if (*(volatile unsigned short *) 0xffc001a0 == 0x0046) + cpu_system = __frv_mb93091_cb70; + break; + default: + break; + } + break; + + case PSR_IMPLE_FR451: + cpu_series = "fr450"; + cpu_core = "fr451"; + pdm_suspend_mode = HSR0_PDM_PLL_STOP; +#ifdef CONFIG_PM + clock_bits_settable |= CLOCK_BIT_CMODE; + clock_cmodes_permitted = CLOCK_CMODES_PERMITTED_FR405; +#endif + switch (PSR_VERSION(psr)) { + case PSR_VERSION_FR451_MB93451: + cpu_silicon = "mb93451"; + cpu_mmu = "Prot, SAT, xSAT, DAT"; + cpu_system = __frv_mb93091_cb451; + clock_cmodes = clock_cmodes_fr405; + break; + default: + break; + } + break; + + case PSR_IMPLE_FR501: + cpu_series = "fr500"; + cpu_core = "fr501"; + pdm_suspend_mode = HSR0_PDM_PLL_STOP; + + switch (PSR_VERSION(psr)) { + case PSR_VERSION_FR501_MB93501: cpu_silicon = "mb93501"; break; + case PSR_VERSION_FR501_MB93501A: cpu_silicon = "mb93501/A"; break; + default: + break; + } + break; + + case PSR_IMPLE_FR551: + cpu_series = "fr550"; + cpu_core = "fr551"; + pdm_suspend_mode = HSR0_PDM_PLL_RUN; + + switch (PSR_VERSION(psr)) { + case PSR_VERSION_FR551_MB93555: + cpu_silicon = "mb93555"; + cpu_mmu = "Prot, SAT"; + cpu_system = __frv_mb93091_cb41; + clock_cmodes = clock_cmodes_fr555; + clock_doubled = 1; + break; + default: + break; + } + break; + + default: + break; + } + + printk("- Series:%s CPU:%s Silicon:%s\n", + cpu_series, cpu_core, cpu_silicon); + +#ifdef CONFIG_MB93091_VDK + detect_mb93091(); +#endif + +#if defined(CONFIG_MB93093_PDK) && defined(CONFIG_FUJITSU_MB93493) + cpu_board2 = __frv_mb93493; +#endif + +} /* end determine_cpu() */ + +/*****************************************************************************/ +/* + * calculate the bus clock speed + */ +void __pminit determine_clocks(int verbose) +{ + const struct clock_cmode *mode, *tmode; + unsigned long clkc, psr, quot; + + clkc = __get_CLKC(); + psr = __get_PSR(); + + clock_p0_current = !!(clkc & CLKC_P0); + clock_cm_current = clkc & CLKC_CM; + clock_cmode_current = (clkc & CLKC_CMODE) >> CLKC_CMODE_s; + + if (verbose) + printk("psr=%08lx hsr0=%08lx clkc=%08lx\n", psr, __get_HSR(0), clkc); + + /* the CB70 has some alternative ways of setting the clock speed through switches accessed + * through the FPGA. */ + if (cpu_system == __frv_mb93091_cb70) { + unsigned short clkswr = *(volatile unsigned short *) 0xffc00104UL & 0x1fffUL; + + if (clkswr & 0x1000) + __clkin_clock_speed_HZ = 60000000UL; + else + __clkin_clock_speed_HZ = + ((clkswr >> 8) & 0xf) * 10000000 + + ((clkswr >> 4) & 0xf) * 1000000 + + ((clkswr ) & 0xf) * 100000; + } + /* the FR451 is currently fixed at 24MHz */ + else if (cpu_system == __frv_mb93091_cb451) { + //__clkin_clock_speed_HZ = 24000000UL; // CB451-FPGA + unsigned short clkswr = *(volatile unsigned short *) 0xffc00104UL & 0x1fffUL; + + if (clkswr & 0x1000) + __clkin_clock_speed_HZ = 60000000UL; + else + __clkin_clock_speed_HZ = + ((clkswr >> 8) & 0xf) * 10000000 + + ((clkswr >> 4) & 0xf) * 1000000 + + ((clkswr ) & 0xf) * 100000; + } + /* otherwise determine the clockspeed from VDK or other registers */ + else { + __clkin_clock_speed_HZ = __get_CLKIN(); + } + + /* look up the appropriate clock relationships table entry */ + mode = &undef_clock_cmode; + if (clock_cmodes) { + tmode = &clock_cmodes[(clkc & CLKC_CMODE) >> CLKC_CMODE_s]; + if (tmode->xbus) + mode = tmode; + } + +#define CLOCK(SRC,RATIO) ((SRC) * (((RATIO) >> 4) & 0x0f) / ((RATIO) & 0x0f)) + + if (clock_doubled) + __clkin_clock_speed_HZ <<= 1; + + __ext_bus_clock_speed_HZ = CLOCK(__clkin_clock_speed_HZ, mode->xbus); + __sdram_clock_speed_HZ = CLOCK(__clkin_clock_speed_HZ, mode->sdram); + __dsu_clock_speed_HZ = CLOCK(__clkin_clock_speed_HZ, mode->dsu); + + switch (clkc & CLKC_CM) { + case 0: /* High */ + __core_bus_clock_speed_HZ = CLOCK(__clkin_clock_speed_HZ, mode->corebus); + __core_clock_speed_HZ = CLOCK(__clkin_clock_speed_HZ, mode->core); + break; + case 1: /* Medium */ + __core_bus_clock_speed_HZ = CLOCK(__clkin_clock_speed_HZ, mode->sdram); + __core_clock_speed_HZ = CLOCK(__clkin_clock_speed_HZ, mode->sdram); + break; + case 2: /* Low; not supported */ + case 3: /* UNDEF */ + printk("Unsupported CLKC CM %ld\n", clkc & CLKC_CM); + panic("Bye"); + } + + __res_bus_clock_speed_HZ = __ext_bus_clock_speed_HZ; + if (clkc & CLKC_P0) + __res_bus_clock_speed_HZ >>= 1; + + if (verbose) { + printk("CLKIN: %lu.%3.3luMHz\n", + __clkin_clock_speed_HZ / 1000000, + (__clkin_clock_speed_HZ / 1000) % 1000); + + printk("CLKS:" + " ext=%luMHz res=%luMHz sdram=%luMHz cbus=%luMHz core=%luMHz dsu=%luMHz\n", + __ext_bus_clock_speed_HZ / 1000000, + __res_bus_clock_speed_HZ / 1000000, + __sdram_clock_speed_HZ / 1000000, + __core_bus_clock_speed_HZ / 1000000, + __core_clock_speed_HZ / 1000000, + __dsu_clock_speed_HZ / 1000000 + ); + } + + /* calculate the number of __delay() loop iterations per sec (2 insn loop) */ + __delay_loops_MHz = __core_clock_speed_HZ / (1000000 * 2); + + /* set the serial prescaler */ + __serial_clock_speed_HZ = __res_bus_clock_speed_HZ; + quot = 1; + while (__serial_clock_speed_HZ / quot / 16 / 65536 > 3000) + quot += 1; + + /* double the divisor if P0 is clear, so that if/when P0 is set, it's still achievable + * - we have to be careful - dividing too much can mean we can't get 115200 baud + */ + if (__serial_clock_speed_HZ > 32000000 && !(clkc & CLKC_P0)) + quot <<= 1; + + __serial_clock_speed_HZ /= quot; + __frv_uart0.uartclk = __serial_clock_speed_HZ; + __frv_uart1.uartclk = __serial_clock_speed_HZ; + + if (verbose) + printk(" uart=%luMHz\n", __serial_clock_speed_HZ / 1000000 * quot); + + while (!(__get_UART0_LSR() & UART_LSR_TEMT)) + continue; + + while (!(__get_UART1_LSR() & UART_LSR_TEMT)) + continue; + + __set_UCPVR(quot); + __set_UCPSR(0); +} /* end determine_clocks() */ + +/*****************************************************************************/ +/* + * reserve some DMA consistent memory + */ +#ifdef CONFIG_RESERVE_DMA_COHERENT +static void __init reserve_dma_coherent(void) +{ + unsigned long ampr; + + /* find the first non-kernel memory tile and steal it */ +#define __steal_AMPR(r) \ + if (__get_DAMPR(r) & xAMPRx_V) { \ + ampr = __get_DAMPR(r); \ + __set_DAMPR(r, ampr | xAMPRx_S | xAMPRx_C); \ + __set_IAMPR(r, 0); \ + goto found; \ + } + + __steal_AMPR(1); + __steal_AMPR(2); + __steal_AMPR(3); + __steal_AMPR(4); + __steal_AMPR(5); + __steal_AMPR(6); + + if (PSR_IMPLE(__get_PSR()) == PSR_IMPLE_FR551) { + __steal_AMPR(7); + __steal_AMPR(8); + __steal_AMPR(9); + __steal_AMPR(10); + __steal_AMPR(11); + __steal_AMPR(12); + __steal_AMPR(13); + __steal_AMPR(14); + } + + /* unable to grant any DMA consistent memory */ + printk("No DMA consistent memory reserved\n"); + return; + + found: + dma_coherent_mem_start = ampr & xAMPRx_PPFN; + ampr &= xAMPRx_SS; + ampr >>= 4; + ampr = 1 << (ampr - 3 + 20); + dma_coherent_mem_end = dma_coherent_mem_start + ampr; + + printk("DMA consistent memory reserved %lx-%lx\n", + dma_coherent_mem_start, dma_coherent_mem_end); + +} /* end reserve_dma_coherent() */ +#endif + +/*****************************************************************************/ +/* + * calibrate the delay loop + */ +void __init calibrate_delay(void) +{ + loops_per_jiffy = __delay_loops_MHz * (1000000 / HZ); + + printk("Calibrating delay loop... %lu.%02lu BogoMIPS\n", + loops_per_jiffy / (500000 / HZ), + (loops_per_jiffy / (5000 / HZ)) % 100); + +} /* end calibrate_delay() */ + +/*****************************************************************************/ +/* + * look through the command line for some things we need to know immediately + */ +static void __init parse_cmdline_early(char *cmdline) +{ + if (!cmdline) + return; + + while (*cmdline) { + if (*cmdline == ' ') + cmdline++; + + /* "mem=XXX[kKmM]" sets SDRAM size to , overriding the value we worked + * out from the SDRAM controller mask register + */ + if (!memcmp(cmdline, "mem=", 4)) { + unsigned long long mem_size; + + mem_size = memparse(cmdline + 4, &cmdline); + memory_end = memory_start + mem_size; + } + + while (*cmdline && *cmdline != ' ') + cmdline++; + } + +} /* end parse_cmdline_early() */ + +/*****************************************************************************/ +/* + * + */ +void __init setup_arch(char **cmdline_p) +{ +#ifdef CONFIG_MMU + printk("Linux FR-V port done by Red Hat Inc \n"); +#else + printk("uClinux FR-V port done by Red Hat Inc \n"); +#endif + + memcpy(saved_command_line, redboot_command_line, COMMAND_LINE_SIZE); + + determine_cpu(); + determine_clocks(1); + + /* For printk-directly-beats-on-serial-hardware hack */ + console_set_baud(115200); +#ifdef CONFIG_GDBSTUB + gdbstub_set_baud(115200); +#endif + +#ifdef CONFIG_RESERVE_DMA_COHERENT + reserve_dma_coherent(); +#endif + dump_memory_map(); + +#ifdef CONFIG_MB93090_MB00 + if (mb93090_mb00_detected) + mb93090_display(); +#endif + + /* register those serial ports that are available */ +#ifndef CONFIG_GDBSTUB_UART0 + __reg(UART0_BASE + UART_IER * 8) = 0; + early_serial_setup(&__frv_uart0); +// register_serial(&__frv_uart0); +#endif +#ifndef CONFIG_GDBSTUB_UART1 + __reg(UART1_BASE + UART_IER * 8) = 0; + early_serial_setup(&__frv_uart1); +// register_serial(&__frv_uart1); +#endif + +#if defined(CONFIG_CHR_DEV_FLASH) || defined(CONFIG_BLK_DEV_FLASH) + /* we need to initialize the Flashrom device here since we might + * do things with flash early on in the boot + */ + flash_probe(); +#endif + + /* deal with the command line - RedBoot may have passed one to the kernel */ + memcpy(command_line, saved_command_line, sizeof(command_line)); + *cmdline_p = &command_line[0]; + parse_cmdline_early(command_line); + + /* set up the memory description + * - by now the stack is part of the init task */ + printk("Memory %08lx-%08lx\n", memory_start, memory_end); + + if (memory_start == memory_end) BUG(); + + init_mm.start_code = (unsigned long) &_stext; + init_mm.end_code = (unsigned long) &_etext; + init_mm.end_data = (unsigned long) &_edata; +#if 0 /* DAVIDM - don't set brk just incase someone decides to use it */ + init_mm.brk = (unsigned long) &_end; +#else + init_mm.brk = (unsigned long) 0; +#endif + +#ifdef DEBUG + printk("KERNEL -> TEXT=0x%06x-0x%06x DATA=0x%06x-0x%06x BSS=0x%06x-0x%06x\n", + (int) &_stext, (int) &_etext, + (int) &_sdata, (int) &_edata, + (int) &_sbss, (int) &_ebss); +#endif + +#ifdef CONFIG_VT +#if defined(CONFIG_VGA_CONSOLE) + conswitchp = &vga_con; +#elif defined(CONFIG_DUMMY_CONSOLE) + conswitchp = &dummy_con; +#endif +#endif + +#ifdef CONFIG_BLK_DEV_BLKMEM + ROOT_DEV = MKDEV(BLKMEM_MAJOR,0); +#endif + /*rom_length = (unsigned long)&_flashend - (unsigned long)&_romvec;*/ + +#ifdef CONFIG_MMU + setup_linux_memory(); +#else + setup_uclinux_memory(); +#endif + + /* get kmalloc into gear */ + paging_init(); + + /* init DMA */ + frv_dma_init(); +#ifdef DEBUG + printk("Done setup_arch\n"); +#endif + + /* start the decrement timer running */ +// asm volatile("movgs %0,timerd" :: "r"(10000000)); +// __set_HSR(0, __get_HSR(0) | HSR0_ETMD); + +} /* end setup_arch() */ + +#if 0 +/*****************************************************************************/ +/* + * + */ +static int __devinit setup_arch_serial(void) +{ + /* register those serial ports that are available */ +#ifndef CONFIG_GDBSTUB_UART0 + early_serial_setup(&__frv_uart0); +#endif +#ifndef CONFIG_GDBSTUB_UART1 + early_serial_setup(&__frv_uart1); +#endif + + return 0; +} /* end setup_arch_serial() */ + +late_initcall(setup_arch_serial); +#endif + +/*****************************************************************************/ +/* + * set up the memory map for normal MMU linux + */ +#ifdef CONFIG_MMU +static void __init setup_linux_memory(void) +{ + unsigned long bootmap_size, low_top_pfn, kstart, kend, high_mem; + + kstart = (unsigned long) &__kernel_image_start - PAGE_OFFSET; + kend = (unsigned long) &__kernel_image_end - PAGE_OFFSET; + + kstart = kstart & PAGE_MASK; + kend = (kend + PAGE_SIZE - 1) & PAGE_MASK; + + /* give all the memory to the bootmap allocator, tell it to put the + * boot mem_map immediately following the kernel image + */ + bootmap_size = init_bootmem_node(NODE_DATA(0), + kend >> PAGE_SHIFT, /* map addr */ + memory_start >> PAGE_SHIFT, /* start of RAM */ + memory_end >> PAGE_SHIFT /* end of RAM */ + ); + + /* pass the memory that the kernel can immediately use over to the bootmem allocator */ + max_mapnr = num_physpages = (memory_end - memory_start) >> PAGE_SHIFT; + low_top_pfn = (KERNEL_LOWMEM_END - KERNEL_LOWMEM_START) >> PAGE_SHIFT; + high_mem = 0; + + if (num_physpages > low_top_pfn) { +#ifdef CONFIG_HIGHMEM + high_mem = num_physpages - low_top_pfn; +#else + max_mapnr = num_physpages = low_top_pfn; +#endif + } + else { + low_top_pfn = num_physpages; + } + + min_low_pfn = memory_start >> PAGE_SHIFT; + max_low_pfn = low_top_pfn; + max_pfn = memory_end >> PAGE_SHIFT; + + num_mappedpages = low_top_pfn; + + printk(KERN_NOTICE "%ldMB LOWMEM available.\n", low_top_pfn >> (20 - PAGE_SHIFT)); + + free_bootmem(memory_start, low_top_pfn << PAGE_SHIFT); + +#ifdef CONFIG_HIGHMEM + if (high_mem) + printk(KERN_NOTICE "%ldMB HIGHMEM available.\n", high_mem >> (20 - PAGE_SHIFT)); +#endif + + /* take back the memory occupied by the kernel image and the bootmem alloc map */ + reserve_bootmem(kstart, kend - kstart + bootmap_size); + + /* reserve the memory occupied by the initial ramdisk */ +#ifdef CONFIG_BLK_DEV_INITRD + if (LOADER_TYPE && INITRD_START) { + if (INITRD_START + INITRD_SIZE <= (low_top_pfn << PAGE_SHIFT)) { + reserve_bootmem(INITRD_START, INITRD_SIZE); + initrd_start = INITRD_START ? INITRD_START + PAGE_OFFSET : 0; + initrd_end = initrd_start + INITRD_SIZE; + } + else { + printk(KERN_ERR + "initrd extends beyond end of memory (0x%08lx > 0x%08lx)\n" + "disabling initrd\n", + INITRD_START + INITRD_SIZE, + low_top_pfn << PAGE_SHIFT); + initrd_start = 0; + } + } +#endif + +} /* end setup_linux_memory() */ +#endif + +/*****************************************************************************/ +/* + * set up the memory map for uClinux + */ +#ifndef CONFIG_MMU +static void __init setup_uclinux_memory(void) +{ +#ifdef CONFIG_PROTECT_KERNEL + unsigned long dampr; +#endif + unsigned long kend; + int bootmap_size; + + kend = (unsigned long) &__kernel_image_end; + kend = (kend + PAGE_SIZE - 1) & PAGE_MASK; + + /* give all the memory to the bootmap allocator, tell it to put the + * boot mem_map immediately following the kernel image + */ + bootmap_size = init_bootmem_node(NODE_DATA(0), + kend >> PAGE_SHIFT, /* map addr */ + memory_start >> PAGE_SHIFT, /* start of RAM */ + memory_end >> PAGE_SHIFT /* end of RAM */ + ); + + /* free all the usable memory */ + free_bootmem(memory_start, memory_end - memory_start); + + high_memory = (void *) (memory_end & PAGE_MASK); + max_mapnr = num_physpages = ((unsigned long) high_memory - PAGE_OFFSET) >> PAGE_SHIFT; + + min_low_pfn = memory_start >> PAGE_SHIFT; + max_low_pfn = memory_end >> PAGE_SHIFT; + max_pfn = max_low_pfn; + + /* now take back the bits the core kernel is occupying */ +#ifndef CONFIG_PROTECT_KERNEL + reserve_bootmem(kend, bootmap_size); + reserve_bootmem((unsigned long) &__kernel_image_start, + kend - (unsigned long) &__kernel_image_start); + +#else + dampr = __get_DAMPR(0); + dampr &= xAMPRx_SS; + dampr = (dampr >> 4) + 17; + dampr = 1 << dampr; + + reserve_bootmem(__get_DAMPR(0) & xAMPRx_PPFN, dampr); +#endif + + /* reserve some memory to do uncached DMA through if requested */ +#ifdef CONFIG_RESERVE_DMA_COHERENT + if (dma_coherent_mem_start) + reserve_bootmem(dma_coherent_mem_start, + dma_coherent_mem_end - dma_coherent_mem_start); +#endif + +} /* end setup_uclinux_memory() */ +#endif + +/*****************************************************************************/ +/* + * get CPU information for use by procfs + */ +static int show_cpuinfo(struct seq_file *m, void *v) +{ + const char *gr, *fr, *fm, *fp, *cm, *nem, *ble; +#ifdef CONFIG_PM + const char *sep; +#endif + + gr = cpu_hsr0_all & HSR0_GRHE ? "gr0-63" : "gr0-31"; + fr = cpu_hsr0_all & HSR0_FRHE ? "fr0-63" : "fr0-31"; + fm = cpu_psr_all & PSR_EM ? ", Media" : ""; + fp = cpu_psr_all & PSR_EF ? ", FPU" : ""; + cm = cpu_psr_all & PSR_CM ? ", CCCR" : ""; + nem = cpu_psr_all & PSR_NEM ? ", NE" : ""; + ble = cpu_psr_all & PSR_BE ? "BE" : "LE"; + + seq_printf(m, + "CPU-Series:\t%s\n" + "CPU-Core:\t%s, %s, %s%s%s\n" + "CPU:\t\t%s\n" + "MMU:\t\t%s\n" + "FP-Media:\t%s%s%s\n" + "System:\t\t%s", + cpu_series, + cpu_core, gr, ble, cm, nem, + cpu_silicon, + cpu_mmu, + fr, fm, fp, + cpu_system); + + if (cpu_board1) + seq_printf(m, ", %s", cpu_board1); + + if (cpu_board2) + seq_printf(m, ", %s", cpu_board2); + + seq_printf(m, "\n"); + +#ifdef CONFIG_PM + seq_printf(m, "PM-Controls:"); + sep = "\t"; + + if (clock_bits_settable & CLOCK_BIT_CMODE) { + seq_printf(m, "%scmode=0x%04hx", sep, clock_cmodes_permitted); + sep = ", "; + } + + if (clock_bits_settable & CLOCK_BIT_CM) { + seq_printf(m, "%scm=0x%lx", sep, clock_bits_settable & CLOCK_BIT_CM); + sep = ", "; + } + + if (clock_bits_settable & CLOCK_BIT_P0) { + seq_printf(m, "%sp0=0x3", sep); + sep = ", "; + } + + seq_printf(m, "%ssuspend=0x22\n", sep); +#endif + + seq_printf(m, + "PM-Status:\tcmode=%d, cm=%d, p0=%d\n", + clock_cmode_current, clock_cm_current, clock_p0_current); + +#define print_clk(TAG, VAR) \ + seq_printf(m, "Clock-" TAG ":\t%lu.%2.2lu MHz\n", VAR / 1000000, (VAR / 10000) % 100) + + print_clk("In", __clkin_clock_speed_HZ); + print_clk("Core", __core_clock_speed_HZ); + print_clk("SDRAM", __sdram_clock_speed_HZ); + print_clk("CBus", __core_bus_clock_speed_HZ); + print_clk("Res", __res_bus_clock_speed_HZ); + print_clk("Ext", __ext_bus_clock_speed_HZ); + print_clk("DSU", __dsu_clock_speed_HZ); + + seq_printf(m, + "BogoMips:\t%lu.%02lu\n", + (loops_per_jiffy * HZ) / 500000, ((loops_per_jiffy * HZ) / 5000) % 100); + + return 0; +} /* end show_cpuinfo() */ + +static void *c_start(struct seq_file *m, loff_t *pos) +{ + return *pos < NR_CPUS ? (void *) 0x12345678 : NULL; +} + +static void *c_next(struct seq_file *m, void *v, loff_t *pos) +{ + ++*pos; + return c_start(m, pos); +} + +static void c_stop(struct seq_file *m, void *v) +{ +} + +struct seq_operations cpuinfo_op = { + .start = c_start, + .next = c_next, + .stop = c_stop, + .show = show_cpuinfo, +}; + +void arch_gettod(int *year, int *mon, int *day, int *hour, + int *min, int *sec) +{ + *year = *mon = *day = *hour = *min = *sec = 0; +} + +/*****************************************************************************/ +/* + * + */ +#ifdef CONFIG_MB93090_MB00 +static void __init mb93090_sendlcdcmd(uint32_t cmd) +{ + unsigned long base = __addr_LCD(); + int loop; + + /* request reading of the busy flag */ + __set_LCD(base, LCD_CMD_READ_BUSY); + __set_LCD(base, LCD_CMD_READ_BUSY & ~LCD_E); + + /* wait for the busy flag to become clear */ + for (loop = 10000; loop > 0; loop--) + if (!(__get_LCD(base) & 0x80)) + break; + + /* send the command */ + __set_LCD(base, cmd); + __set_LCD(base, cmd & ~LCD_E); + +} /* end mb93090_sendlcdcmd() */ + +/*****************************************************************************/ +/* + * write to the MB93090 LEDs and LCD + */ +static void __init mb93090_display(void) +{ + const char *p; + + __set_LEDS(0); + + /* set up the LCD */ + mb93090_sendlcdcmd(LCD_CMD_CLEAR); + mb93090_sendlcdcmd(LCD_CMD_FUNCSET(1,1,0)); + mb93090_sendlcdcmd(LCD_CMD_ON(0,0)); + mb93090_sendlcdcmd(LCD_CMD_HOME); + + mb93090_sendlcdcmd(LCD_CMD_SET_DD_ADDR(0)); + for (p = mb93090_banner; *p; p++) + mb93090_sendlcdcmd(LCD_DATA_WRITE(*p)); + + mb93090_sendlcdcmd(LCD_CMD_SET_DD_ADDR(64)); + for (p = mb93090_version; *p; p++) + mb93090_sendlcdcmd(LCD_DATA_WRITE(*p)); + +} /* end mb93090_display() */ + +#endif // CONFIG_MB93090_MB00 diff -Nru a/arch/frv/kernel/signal.c b/arch/frv/kernel/signal.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/signal.c 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,598 @@ +/* signal.c: FRV specific bits of signal handling + * + * Copyright (C) 2003-5 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * - Derived from arch/m68k/kernel/signal.c + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define DEBUG_SIG 0 + +#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) + +struct fdpic_func_descriptor { + unsigned long text; + unsigned long GOT; +}; + +asmlinkage int do_signal(struct pt_regs *regs, sigset_t *oldset); + +/* + * Atomically swap in the new signal mask, and wait for a signal. + */ +asmlinkage int sys_sigsuspend(int history0, int history1, old_sigset_t mask) +{ + sigset_t saveset; + + mask &= _BLOCKABLE; + spin_lock_irq(¤t->sighand->siglock); + saveset = current->blocked; + siginitset(¤t->blocked, mask); + recalc_sigpending(); + spin_unlock_irq(¤t->sighand->siglock); + + __frame->gr8 = -EINTR; + while (1) { + current->state = TASK_INTERRUPTIBLE; + schedule(); + if (do_signal(__frame, &saveset)) + /* return the signal number as the return value of this function + * - this is an utterly evil hack. syscalls should not invoke do_signal() + * as entry.S sets regs->gr8 to the return value of the system call + * - we can't just use sigpending() as we'd have to discard SIG_IGN signals + * and call waitpid() if SIGCHLD needed discarding + * - this only works on the i386 because it passes arguments to the signal + * handler on the stack, and the return value in EAX is effectively + * discarded + */ + return __frame->gr8; + } +} + +asmlinkage int sys_rt_sigsuspend(sigset_t __user *unewset, size_t sigsetsize) +{ + sigset_t saveset, newset; + + /* XXX: Don't preclude handling different sized sigset_t's. */ + if (sigsetsize != sizeof(sigset_t)) + return -EINVAL; + + if (copy_from_user(&newset, unewset, sizeof(newset))) + return -EFAULT; + sigdelsetmask(&newset, ~_BLOCKABLE); + + spin_lock_irq(¤t->sighand->siglock); + saveset = current->blocked; + current->blocked = newset; + recalc_sigpending(); + spin_unlock_irq(¤t->sighand->siglock); + + __frame->gr8 = -EINTR; + while (1) { + current->state = TASK_INTERRUPTIBLE; + schedule(); + if (do_signal(__frame, &saveset)) + /* return the signal number as the return value of this function + * - this is an utterly evil hack. syscalls should not invoke do_signal() + * as entry.S sets regs->gr8 to the return value of the system call + * - we can't just use sigpending() as we'd have to discard SIG_IGN signals + * and call waitpid() if SIGCHLD needed discarding + * - this only works on the i386 because it passes arguments to the signal + * handler on the stack, and the return value in EAX is effectively + * discarded + */ + return __frame->gr8; + } +} + +asmlinkage int sys_sigaction(int sig, + const struct old_sigaction __user *act, + struct old_sigaction __user *oact) +{ + struct k_sigaction new_ka, old_ka; + int ret; + + if (act) { + old_sigset_t mask; + if (verify_area(VERIFY_READ, act, sizeof(*act)) || + __get_user(new_ka.sa.sa_handler, &act->sa_handler) || + __get_user(new_ka.sa.sa_restorer, &act->sa_restorer)) + return -EFAULT; + __get_user(new_ka.sa.sa_flags, &act->sa_flags); + __get_user(mask, &act->sa_mask); + siginitset(&new_ka.sa.sa_mask, mask); + } + + ret = do_sigaction(sig, act ? &new_ka : NULL, oact ? &old_ka : NULL); + + if (!ret && oact) { + if (verify_area(VERIFY_WRITE, oact, sizeof(*oact)) || + __put_user(old_ka.sa.sa_handler, &oact->sa_handler) || + __put_user(old_ka.sa.sa_restorer, &oact->sa_restorer)) + return -EFAULT; + __put_user(old_ka.sa.sa_flags, &oact->sa_flags); + __put_user(old_ka.sa.sa_mask.sig[0], &oact->sa_mask); + } + + return ret; +} + +asmlinkage +int sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss) +{ + return do_sigaltstack(uss, uoss, __frame->sp); +} + + +/* + * Do a signal return; undo the signal stack. + */ + +struct sigframe +{ + void (*pretcode)(void); + int sig; + struct sigcontext sc; + unsigned long extramask[_NSIG_WORDS-1]; + uint32_t retcode[2]; +}; + +struct rt_sigframe +{ + void (*pretcode)(void); + int sig; + struct siginfo *pinfo; + void *puc; + struct siginfo info; + struct ucontext uc; + uint32_t retcode[2]; +}; + +static int restore_sigcontext(struct sigcontext __user *sc, int *_gr8) +{ + struct user_context *user = current->thread.user; + unsigned long tbr, psr; + + tbr = user->i.tbr; + psr = user->i.psr; + if (copy_from_user(user, &sc->sc_context, sizeof(sc->sc_context))) + goto badframe; + user->i.tbr = tbr; + user->i.psr = psr; + + restore_user_regs(user); + + user->i.syscallno = -1; /* disable syscall checks */ + + *_gr8 = user->i.gr[8]; + return 0; + + badframe: + return 1; +} + +asmlinkage int sys_sigreturn(void) +{ + struct sigframe __user *frame = (struct sigframe __user *) __frame->sp; + sigset_t set; + int gr8; + + if (verify_area(VERIFY_READ, frame, sizeof(*frame))) + goto badframe; + if (__get_user(set.sig[0], &frame->sc.sc_oldmask)) + goto badframe; + + if (_NSIG_WORDS > 1 && + __copy_from_user(&set.sig[1], &frame->extramask, sizeof(frame->extramask))) + goto badframe; + + sigdelsetmask(&set, ~_BLOCKABLE); + spin_lock_irq(¤t->sighand->siglock); + current->blocked = set; + recalc_sigpending(); + spin_unlock_irq(¤t->sighand->siglock); + + if (restore_sigcontext(&frame->sc, &gr8)) + goto badframe; + return gr8; + + badframe: + force_sig(SIGSEGV, current); + return 0; +} + +asmlinkage int sys_rt_sigreturn(void) +{ + struct rt_sigframe __user *frame = (struct rt_sigframe __user *) __frame->sp; + sigset_t set; + stack_t st; + int gr8; + + if (verify_area(VERIFY_READ, frame, sizeof(*frame))) + goto badframe; + if (__copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set))) + goto badframe; + + sigdelsetmask(&set, ~_BLOCKABLE); + spin_lock_irq(¤t->sighand->siglock); + current->blocked = set; + recalc_sigpending(); + spin_unlock_irq(¤t->sighand->siglock); + + if (restore_sigcontext(&frame->uc.uc_mcontext, &gr8)) + goto badframe; + + if (__copy_from_user(&st, &frame->uc.uc_stack, sizeof(st))) + goto badframe; + + /* It is more difficult to avoid calling this function than to + * call it and ignore errors. */ + /* + * THIS CANNOT WORK! "&st" is a kernel address, and "do_sigaltstack()" + * takes a user address (and verifies that it is a user address). End + * result: it does exactly _nothing_. + */ + do_sigaltstack(&st, NULL, __frame->sp); + + return gr8; + +badframe: + force_sig(SIGSEGV, current); + return 0; +} + +/* + * Set up a signal frame + */ +static int setup_sigcontext(struct sigcontext __user *sc, unsigned long mask) +{ + save_user_regs(current->thread.user); + + if (copy_to_user(&sc->sc_context, current->thread.user, sizeof(sc->sc_context)) != 0) + goto badframe; + + /* non-iBCS2 extensions.. */ + if (__put_user(mask, &sc->sc_oldmask) < 0) + goto badframe; + + return 0; + + badframe: + return 1; +} + +/*****************************************************************************/ +/* + * Determine which stack to use.. + */ +static inline void __user *get_sigframe(struct k_sigaction *ka, + struct pt_regs *regs, + size_t frame_size) +{ + unsigned long sp; + + /* Default to using normal stack */ + sp = regs->sp; + + /* This is the X/Open sanctioned signal stack switching. */ + if (ka->sa.sa_flags & SA_ONSTACK) { + if (! on_sig_stack(sp)) + sp = current->sas_ss_sp + current->sas_ss_size; + } + + return (void __user *) ((sp - frame_size) & ~7UL); +} /* end get_sigframe() */ + +/*****************************************************************************/ +/* + * + */ +static void setup_frame(int sig, struct k_sigaction *ka, sigset_t *set, struct pt_regs * regs) +{ + struct sigframe __user *frame; + int rsig; + + frame = get_sigframe(ka, regs, sizeof(*frame)); + + if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) + goto give_sigsegv; + + rsig = sig; + if (sig < 32 && + __current_thread_info->exec_domain && + __current_thread_info->exec_domain->signal_invmap) + rsig = __current_thread_info->exec_domain->signal_invmap[sig]; + + if (__put_user(rsig, &frame->sig) < 0) + goto give_sigsegv; + + if (setup_sigcontext(&frame->sc, set->sig[0])) + goto give_sigsegv; + + if (_NSIG_WORDS > 1) { + if (__copy_to_user(frame->extramask, &set->sig[1], + sizeof(frame->extramask))) + goto give_sigsegv; + } + + /* Set up to return from userspace. If provided, use a stub + * already in userspace. */ + if (ka->sa.sa_flags & SA_RESTORER) { + if (__put_user(ka->sa.sa_restorer, &frame->pretcode) < 0) + goto give_sigsegv; + } + else { + /* Set up the following code on the stack: + * setlos #__NR_sigreturn,gr7 + * tira gr0,0 + */ + if (__put_user((void (*)(void))frame->retcode, &frame->pretcode) || + __put_user(0x8efc0000|__NR_sigreturn, &frame->retcode[0]) || + __put_user(0xc0700000, &frame->retcode[1])) + goto give_sigsegv; + + flush_icache_range((unsigned long) frame->retcode, + (unsigned long) (frame->retcode + 2)); + } + + /* set up registers for signal handler */ + regs->sp = (unsigned long) frame; + regs->lr = (unsigned long) &frame->retcode; + regs->gr8 = sig; + + if (get_personality & FDPIC_FUNCPTRS) { + struct fdpic_func_descriptor __user *funcptr = + (struct fdpic_func_descriptor *) ka->sa.sa_handler; + __get_user(regs->pc, &funcptr->text); + __get_user(regs->gr15, &funcptr->GOT); + } else { + regs->pc = (unsigned long) ka->sa.sa_handler; + regs->gr15 = 0; + } + + set_fs(USER_DS); + +#if DEBUG_SIG + printk("SIG deliver %d (%s:%d): sp=%p pc=%lx ra=%p\n", + sig, current->comm, current->pid, frame, regs->pc, frame->pretcode); +#endif + + return; + +give_sigsegv: + if (sig == SIGSEGV) + ka->sa.sa_handler = SIG_DFL; + + force_sig(SIGSEGV, current); +} /* end setup_frame() */ + +/*****************************************************************************/ +/* + * + */ +static void setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, + sigset_t *set, struct pt_regs * regs) +{ + struct rt_sigframe __user *frame; + int rsig; + + frame = get_sigframe(ka, regs, sizeof(*frame)); + + if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) + goto give_sigsegv; + + rsig = sig; + if (sig < 32 && + __current_thread_info->exec_domain && + __current_thread_info->exec_domain->signal_invmap) + rsig = __current_thread_info->exec_domain->signal_invmap[sig]; + + if (__put_user(rsig, &frame->sig) || + __put_user(&frame->info, &frame->pinfo) || + __put_user(&frame->uc, &frame->puc)) + goto give_sigsegv; + + if (copy_siginfo_to_user(&frame->info, info)) + goto give_sigsegv; + + /* Create the ucontext. */ + if (__put_user(0, &frame->uc.uc_flags) || + __put_user(0, &frame->uc.uc_link) || + __put_user((void*)current->sas_ss_sp, &frame->uc.uc_stack.ss_sp) || + __put_user(sas_ss_flags(regs->sp), &frame->uc.uc_stack.ss_flags) || + __put_user(current->sas_ss_size, &frame->uc.uc_stack.ss_size)) + goto give_sigsegv; + + if (setup_sigcontext(&frame->uc.uc_mcontext, set->sig[0])) + goto give_sigsegv; + + if (__copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set))) + goto give_sigsegv; + + /* Set up to return from userspace. If provided, use a stub + * already in userspace. */ + if (ka->sa.sa_flags & SA_RESTORER) { + if (__put_user(ka->sa.sa_restorer, &frame->pretcode)) + goto give_sigsegv; + } + else { + /* Set up the following code on the stack: + * setlos #__NR_sigreturn,gr7 + * tira gr0,0 + */ + if (__put_user((void (*)(void))frame->retcode, &frame->pretcode) || + __put_user(0x8efc0000|__NR_rt_sigreturn, &frame->retcode[0]) || + __put_user(0xc0700000, &frame->retcode[1])) + goto give_sigsegv; + + flush_icache_range((unsigned long) frame->retcode, + (unsigned long) (frame->retcode + 2)); + } + + /* Set up registers for signal handler */ + regs->sp = (unsigned long) frame; + regs->lr = (unsigned long) &frame->retcode; + regs->gr8 = sig; + regs->gr9 = (unsigned long) &frame->info; + + if (get_personality & FDPIC_FUNCPTRS) { + struct fdpic_func_descriptor *funcptr = + (struct fdpic_func_descriptor __user *) ka->sa.sa_handler; + __get_user(regs->pc, &funcptr->text); + __get_user(regs->gr15, &funcptr->GOT); + } else { + regs->pc = (unsigned long) ka->sa.sa_handler; + regs->gr15 = 0; + } + + set_fs(USER_DS); + +#if DEBUG_SIG + printk("SIG deliver %d (%s:%d): sp=%p pc=%lx ra=%p\n", + sig, current->comm, current->pid, frame, regs->pc, frame->pretcode); +#endif + + return; + +give_sigsegv: + if (sig == SIGSEGV) + ka->sa.sa_handler = SIG_DFL; + force_sig(SIGSEGV, current); + +} /* end setup_rt_frame() */ + +/*****************************************************************************/ +/* + * OK, we're invoking a handler + */ +static void handle_signal(unsigned long sig, siginfo_t *info, + struct k_sigaction *ka, sigset_t *oldset, + struct pt_regs *regs) +{ + /* Are we from a system call? */ + if (in_syscall(regs)) { + /* If so, check system call restarting.. */ + switch (regs->gr8) { + case -ERESTART_RESTARTBLOCK: + case -ERESTARTNOHAND: + regs->gr8 = -EINTR; + break; + + case -ERESTARTSYS: + if (!(ka->sa.sa_flags & SA_RESTART)) { + regs->gr8 = -EINTR; + break; + } + /* fallthrough */ + case -ERESTARTNOINTR: + regs->gr8 = regs->orig_gr8; + regs->pc -= 4; + } + } + + /* Set up the stack frame */ + if (ka->sa.sa_flags & SA_SIGINFO) + setup_rt_frame(sig, ka, info, oldset, regs); + else + setup_frame(sig, ka, oldset, regs); + + if (!(ka->sa.sa_flags & SA_NODEFER)) { + spin_lock_irq(¤t->sighand->siglock); + sigorsets(¤t->blocked, ¤t->blocked, &ka->sa.sa_mask); + sigaddset(¤t->blocked, sig); + recalc_sigpending(); + spin_unlock_irq(¤t->sighand->siglock); + } +} /* end handle_signal() */ + +/*****************************************************************************/ +/* + * Note that 'init' is a special process: it doesn't get signals it doesn't + * want to handle. Thus you cannot kill init even with a SIGKILL even by + * mistake. + */ +int do_signal(struct pt_regs *regs, sigset_t *oldset) +{ + struct k_sigaction ka; + siginfo_t info; + int signr; + + /* + * We want the common case to go fast, which + * is why we may in certain cases get here from + * kernel mode. Just return without doing anything + * if so. + */ + if (!user_mode(regs)) + return 1; + + if (current->flags & PF_FREEZE) { + refrigerator(0); + goto no_signal; + } + + if (!oldset) + oldset = ¤t->blocked; + + signr = get_signal_to_deliver(&info, &ka, regs, NULL); + if (signr > 0) { + handle_signal(signr, &info, &ka, oldset, regs); + return 1; + } + + no_signal: + /* Did we come from a system call? */ + if (regs->syscallno >= 0) { + /* Restart the system call - no handlers present */ + if (regs->gr8 == -ERESTARTNOHAND || + regs->gr8 == -ERESTARTSYS || + regs->gr8 == -ERESTARTNOINTR) { + regs->gr8 = regs->orig_gr8; + regs->pc -= 4; + } + + if (regs->gr8 == -ERESTART_RESTARTBLOCK){ + regs->gr8 = __NR_restart_syscall; + regs->pc -= 4; + } + } + + return 0; +} /* end do_signal() */ + +/*****************************************************************************/ +/* + * notification of userspace execution resumption + * - triggered by current->work.notify_resume + */ +asmlinkage void do_notify_resume(__u32 thread_info_flags) +{ + /* pending single-step? */ + if (thread_info_flags & _TIF_SINGLESTEP) + clear_thread_flag(TIF_SINGLESTEP); + + /* deal with pending signal delivery */ + if (thread_info_flags & _TIF_SIGPENDING) + do_signal(__frame, NULL); + +} /* end do_notify_resume() */ diff -Nru a/arch/frv/kernel/sleep.S b/arch/frv/kernel/sleep.S --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/sleep.S 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,374 @@ +/* sleep.S: power saving mode entry + * + * Copyright (C) 2004 Red Hat, Inc. All Rights Reserved. + * Written by David Woodhouse (dwmw2@redhat.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define __addr_MASK 0xfeff9820 /* interrupt controller mask */ + +#define __addr_FR55X_DRCN 0xfeff0218 /* Address of DRCN register */ +#define FR55X_DSTS_OFFSET -4 /* Offset from DRCN to DSTS */ +#define FR55X_SDRAMC_DSTS_SSI 0x00000002 /* indicates that the SDRAM is in self-refresh mode */ + +#define __addr_FR4XX_DRCN 0xfe000430 /* Address of DRCN register */ +#define FR4XX_DSTS_OFFSET -8 /* Offset from DRCN to DSTS */ +#define FR4XX_SDRAMC_DSTS_SSI 0x00000001 /* indicates that the SDRAM is in self-refresh mode */ + +#define SDRAMC_DRCN_SR 0x00000001 /* transition SDRAM into self-refresh mode */ + + .section .bss + .balign 8 + .globl __sleep_save_area +__sleep_save_area: + .space 16 + + + .text + .balign 4 + +.macro li v r + sethi.p %hi(\v),\r + setlo %lo(\v),\r +.endm + +#ifdef CONFIG_PM +############################################################################### +# +# CPU suspension routine +# - void frv_cpu_suspend(unsigned long pdm_mode) +# +############################################################################### + .globl frv_cpu_suspend + .type frv_cpu_suspend,@function +frv_cpu_suspend: + + #---------------------------------------------------- + # save hsr0, psr, isr, and lr for resume code + #---------------------------------------------------- + li __sleep_save_area,gr11 + + movsg hsr0,gr4 + movsg psr,gr5 + movsg isr,gr6 + movsg lr,gr7 + stdi gr4,@(gr11,#0) + stdi gr6,@(gr11,#8) + + # store the return address from sleep in GR14, and its complement in GR13 as a check + li __ramboot_resume,gr14 +#ifdef CONFIG_MMU + # Resume via RAMBOOT# will turn MMU off, so bootloader needs a physical address. + sethi.p %hi(__page_offset),gr13 + setlo %lo(__page_offset),gr13 + sub gr14,gr13,gr14 +#endif + not gr14,gr13 + + #---------------------------------------------------- + # preload and lock into icache that code which may have to run + # when dram is in self-refresh state. + #---------------------------------------------------- + movsg hsr0, gr3 + li HSR0_ICE,gr4 + or gr3,gr4,gr3 + movgs gr3,hsr0 + or gr3,gr8,gr7 // add the sleep bits for later + + li #__icache_lock_start,gr3 + li #__icache_lock_end,gr4 +1: icpl gr3,gr0,#1 + addi gr3,#L1_CACHE_BYTES,gr3 + cmp gr4,gr3,icc0 + bhi icc0,#0,1b + + # disable exceptions + movsg psr,gr8 + andi.p gr8,#~PSR_PIL,gr8 + andi gr8,~PSR_ET,gr8 + movgs gr8,psr + ori gr8,#PSR_ET,gr8 + + srli gr8,#28,gr4 + subicc gr4,#3,gr0,icc0 + beq icc0,#0,1f + # FR4xx + li __addr_FR4XX_DRCN,gr4 + li FR4XX_SDRAMC_DSTS_SSI,gr5 + li FR4XX_DSTS_OFFSET,gr6 + bra __icache_lock_start +1: + # FR5xx + li __addr_FR55X_DRCN,gr4 + li FR55X_SDRAMC_DSTS_SSI,gr5 + li FR55X_DSTS_OFFSET,gr6 + bra __icache_lock_start + + .size frv_cpu_suspend, .-frv_cpu_suspend + +# +# the final part of the sleep sequence... +# - we want it to be be cacheline aligned so we can lock it into the icache easily +# On entry: gr7 holds desired hsr0 sleep value +# gr8 holds desired psr sleep value +# + .balign L1_CACHE_BYTES + .type __icache_lock_start,@function +__icache_lock_start: + + #---------------------------------------------------- + # put SDRAM in self-refresh mode + #---------------------------------------------------- + + # Flush all data in the cache using the DCEF instruction. + dcef @(gr0,gr0),#1 + + # Stop DMAC transfer + + # Execute dummy load from SDRAM + ldi @(gr11,#0),gr11 + + # put the SDRAM into self-refresh mode + ld @(gr4,gr0),gr11 + ori gr11,#SDRAMC_DRCN_SR,gr11 + st gr11,@(gr4,gr0) + membar + + # wait for SDRAM to reach self-refresh mode +1: ld @(gr4,gr6),gr11 + andcc gr11,gr5,gr11,icc0 + beq icc0,#0,1b + + # Set the GPIO register so that the IRQ[3:0] pins become valid, as required. + # Set the clock mode (CLKC register) as required. + # - At this time, also set the CLKC register P0 bit. + + # Set the HSR0 register PDM field. + movgs gr7,hsr0 + + # Execute NOP 32 times. + .rept 32 + nop + .endr + +#if 0 // Fujitsu recommend to skip this and will update docs. + # Release the interrupt mask setting of the MASK register of the + # interrupt controller if necessary. + sti gr10,@(gr9,#0) + membar +#endif + + # Set the PSR register ET bit to 1 to enable interrupts. + movgs gr8,psr + + ################################################### + # this is only reached if waking up via interrupt + ################################################### + + # Execute NOP 32 times. + .rept 32 + nop + .endr + + #---------------------------------------------------- + # wake SDRAM from self-refresh mode + #---------------------------------------------------- + ld @(gr4,gr0),gr11 + andi gr11,#~SDRAMC_DRCN_SR,gr11 + st gr11,@(gr4,gr0) + membar +2: + ld @(gr4,gr6),gr11 // Wait for it to come back... + andcc gr11,gr5,gr0,icc0 + bne icc0,0,2b + + # wait for the SDRAM to stabilise + li 0x0100000,gr3 +3: subicc gr3,#1,gr3,icc0 + bne icc0,#0,3b + + # now that DRAM is back, this is the end of the code which gets + # locked in icache. +__icache_lock_end: + .size __icache_lock_start, .-__icache_lock_start + + # Fall-through to the RAMBOOT# wakeup path + +############################################################################### +# +# resume from suspend re-entry point reached via RAMBOOT# and bootloader +# +############################################################################### +__ramboot_resume: + + #---------------------------------------------------- + # restore hsr0, psr, isr, and leave saved lr in gr7 + #---------------------------------------------------- + li __sleep_save_area,gr11 +#ifdef CONFIG_MMU + movsg hsr0,gr4 + sethi.p %hi(HSR0_EXMMU),gr3 + setlo %lo(HSR0_EXMMU),gr3 + andcc gr3,gr4,gr0,icc0 + bne icc0,#0,2f + + # need to use physical address + sethi.p %hi(__page_offset),gr3 + setlo %lo(__page_offset),gr3 + sub gr11,gr3,gr11 + + # flush all tlb entries + setlos #64,gr4 + setlos.p #PAGE_SIZE,gr5 + setlos #0,gr6 +1: + tlbpr gr6,gr0,#6,#0 + subicc.p gr4,#1,gr4,icc0 + add gr6,gr5,gr6 + bne icc0,#2,1b + + # need a temporary mapping for the current physical address we are + # using between time MMU is enabled and jump to virtual address is + # made. + sethi.p %hi(0x00000000),gr4 + setlo %lo(0x00000000),gr4 ; physical address + setlos #xAMPRx_L|xAMPRx_M|xAMPRx_SS_256Mb|xAMPRx_S_KERNEL|xAMPRx_V,gr5 + or gr4,gr5,gr5 + + movsg cxnr,gr13 + or gr4,gr13,gr4 + + movgs gr4,iamlr1 ; mapped from real address 0 + movgs gr5,iampr1 ; cached kernel memory at 0x00000000 +2: +#endif + + lddi @(gr11,#0),gr4 ; hsr0, psr + lddi @(gr11,#8),gr6 ; isr, lr + movgs gr4,hsr0 + bar + +#ifdef CONFIG_MMU + sethi.p %hi(1f),gr11 + setlo %lo(1f),gr11 + jmpl @(gr11,gr0) +1: + movgs gr0,iampr1 ; get rid of temporary mapping +#endif + movgs gr5,psr + movgs gr6,isr + + #---------------------------------------------------- + # unlock the icache which was locked before going to sleep + #---------------------------------------------------- + li __icache_lock_start,gr3 + li __icache_lock_end,gr4 +1: icul gr3 + addi gr3,#L1_CACHE_BYTES,gr3 + cmp gr4,gr3,icc0 + bhi icc0,#0,1b + + #---------------------------------------------------- + # back to business as usual + #---------------------------------------------------- + jmpl @(gr7,gr0) ; + +#endif /* CONFIG_PM */ + +############################################################################### +# +# CPU core sleep mode routine +# +############################################################################### + .globl frv_cpu_core_sleep + .type frv_cpu_core_sleep,@function +frv_cpu_core_sleep: + + # Preload into icache. + li #__core_sleep_icache_lock_start,gr3 + li #__core_sleep_icache_lock_end,gr4 + +1: icpl gr3,gr0,#1 + addi gr3,#L1_CACHE_BYTES,gr3 + cmp gr4,gr3,icc0 + bhi icc0,#0,1b + + bra __core_sleep_icache_lock_start + + .balign L1_CACHE_BYTES +__core_sleep_icache_lock_start: + + # (1) Set the PSR register ET bit to 0 to disable interrupts. + movsg psr,gr8 + andi.p gr8,#~(PSR_PIL),gr8 + andi gr8,#~(PSR_ET),gr4 + movgs gr4,psr + +#if 0 // Fujitsu recommend to skip this and will update docs. + # (2) Set '1' to all bits in the MASK register of the interrupt + # controller and mask interrupts. + sethi.p %hi(__addr_MASK),gr9 + setlo %lo(__addr_MASK),gr9 + sethi.p %hi(0xffff0000),gr4 + setlo %lo(0xffff0000),gr4 + ldi @(gr9,#0),gr10 + sti gr4,@(gr9,#0) +#endif + # (3) Flush all data in the cache using the DCEF instruction. + dcef @(gr0,gr0),#1 + + # (4) Execute the memory barrier instruction + membar + + # (5) Set the GPIO register so that the IRQ[3:0] pins become valid, as required. + # (6) Set the clock mode (CLKC register) as required. + # - At this time, also set the CLKC register P0 bit. + # (7) Set the HSR0 register PDM field to 001 . + movsg hsr0,gr4 + ori gr4,HSR0_PDM_CORE_SLEEP,gr4 + movgs gr4,hsr0 + + # (8) Execute NOP 32 times. + .rept 32 + nop + .endr + +#if 0 // Fujitsu recommend to skip this and will update docs. + # (9) Release the interrupt mask setting of the MASK register of the + # interrupt controller if necessary. + sti gr10,@(gr9,#0) + membar +#endif + + # (10) Set the PSR register ET bit to 1 to enable interrupts. + movgs gr8,psr + +__core_sleep_icache_lock_end: + + # Unlock from icache + li __core_sleep_icache_lock_start,gr3 + li __core_sleep_icache_lock_end,gr4 +1: icul gr3 + addi gr3,#L1_CACHE_BYTES,gr3 + cmp gr4,gr3,icc0 + bhi icc0,#0,1b + + bralr + + .size frv_cpu_core_sleep, .-frv_cpu_core_sleep diff -Nru a/arch/frv/kernel/switch_to.S b/arch/frv/kernel/switch_to.S --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/switch_to.S 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,486 @@ +############################################################################### +# +# switch_to.S: context switch operation +# +# Copyright (C) 2003 Red Hat, Inc. All Rights Reserved. +# Written by David Howells (dhowells@redhat.com) +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version +# 2 of the License, or (at your option) any later version. +# +############################################################################### +#include +#include +#include +#include +#include +#include + +.macro LEDS val + setlos #~\val,gr27 + st gr27,@(gr30,gr0) + membar + dcf @(gr30,gr0) +.endm + + .section .sdata + .balign 8 + + # address of frame 0 (userspace) on current kernel stack + .globl __kernel_frame0_ptr +__kernel_frame0_ptr: + .long init_thread_union + THREAD_SIZE - USER_CONTEXT_SIZE + + # address of current task + .globl __kernel_current_task +__kernel_current_task: + .long init_task + + .section .text + .balign 4 + +############################################################################### +# +# struct task_struct *__switch_to(struct thread_struct *prev, struct thread_struct *next) +# +############################################################################### + .globl __switch_to +__switch_to: + # save outgoing process's context + sethi.p %hi(__switch_back),gr11 + setlo %lo(__switch_back),gr11 + movsg lr,gr10 + + stdi gr28,@(gr8,#__THREAD_FRAME) + sti sp ,@(gr8,#__THREAD_SP) + sti fp ,@(gr8,#__THREAD_FP) + stdi gr10,@(gr8,#__THREAD_LR) + stdi gr16,@(gr8,#__THREAD_GR(16)) + stdi gr18,@(gr8,#__THREAD_GR(18)) + stdi gr20,@(gr8,#__THREAD_GR(20)) + stdi gr22,@(gr8,#__THREAD_GR(22)) + stdi gr24,@(gr8,#__THREAD_GR(24)) + stdi.p gr26,@(gr8,#__THREAD_GR(26)) + + or gr8,gr8,gr22 + ldi.p @(gr8,#__THREAD_USER),gr8 + call save_user_regs + or gr22,gr22,gr8 + + # retrieve the new context + sethi.p %hi(__kernel_frame0_ptr),gr6 + setlo %lo(__kernel_frame0_ptr),gr6 + movsg psr,gr4 + + lddi.p @(gr9,#__THREAD_FRAME),gr10 + or gr29,gr29,gr27 ; ret_from_fork needs to know old current + + ldi @(gr11,#4),gr19 ; get new_current->thread_info + + lddi @(gr9,#__THREAD_SP),gr12 + ldi @(gr9,#__THREAD_LR),gr14 + ldi @(gr9,#__THREAD_PC),gr18 + ldi.p @(gr9,#__THREAD_FRAME0),gr7 + + # actually switch kernel contexts with ordinary exceptions disabled + andi gr4,#~PSR_ET,gr5 + movgs gr5,psr + + or.p gr10,gr0,gr28 + or gr11,gr0,gr29 + or.p gr12,gr0,sp + or gr13,gr0,fp + or gr19,gr0,gr15 ; set __current_thread_info + + sti gr7,@(gr6,#0) ; set __kernel_frame0_ptr + sti gr29,@(gr6,#4) ; set __kernel_current_task + + movgs gr14,lr + bar + + srli gr15,#28,gr5 + subicc gr5,#0xc,gr0,icc0 + beq icc0,#0,111f + break + nop +111: + + # jump to __switch_back or ret_from_fork as appropriate + movgs gr4,psr + jmpl @(gr18,gr0) + +############################################################################### +# +# restore incoming process's context +# - on entry: +# - SP, FP, LR, GR15, GR28 and GR29 will have been set up appropriately +# - GR9 will point to the incoming thread_struct +# +############################################################################### +__switch_back: + lddi @(gr9,#__THREAD_GR(16)),gr16 + lddi @(gr9,#__THREAD_GR(18)),gr18 + lddi @(gr9,#__THREAD_GR(20)),gr20 + lddi @(gr9,#__THREAD_GR(22)),gr22 + lddi @(gr9,#__THREAD_GR(24)),gr24 + lddi @(gr9,#__THREAD_GR(26)),gr26 + + # fall through into restore_user_regs() + ldi @(gr9,#__THREAD_USER),gr8 + +############################################################################### +# +# restore extra general regs and FP/Media regs +# - void restore_user_regs(const struct user_context *target) +# +############################################################################### + .globl restore_user_regs +restore_user_regs: + movsg hsr0,gr6 + ori gr6,#HSR0_GRHE|HSR0_FRLE|HSR0_FRHE,gr6 + movgs gr6,hsr0 + movsg hsr0,gr6 + + movsg psr,gr7 + ori gr7,#PSR_EF|PSR_EM,gr7 + movgs gr7,psr + movsg psr,gr7 + srli gr7,#24,gr7 + bar + + lddi @(gr8,#__FPMEDIA_MSR(0)),gr4 + + movgs gr4,msr0 + movgs gr5,msr1 + + lddfi @(gr8,#__FPMEDIA_ACC(0)),fr16 + lddfi @(gr8,#__FPMEDIA_ACC(2)),fr18 + ldbfi @(gr8,#__FPMEDIA_ACCG(0)),fr20 + ldbfi @(gr8,#__FPMEDIA_ACCG(1)),fr21 + ldbfi @(gr8,#__FPMEDIA_ACCG(2)),fr22 + ldbfi @(gr8,#__FPMEDIA_ACCG(3)),fr23 + + mwtacc fr16,acc0 + mwtacc fr17,acc1 + mwtacc fr18,acc2 + mwtacc fr19,acc3 + mwtaccg fr20,accg0 + mwtaccg fr21,accg1 + mwtaccg fr22,accg2 + mwtaccg fr23,accg3 + + # some CPUs have extra ACCx and ACCGx regs and maybe FSRx regs + subicc.p gr7,#0x50,gr0,icc0 + subicc gr7,#0x31,gr0,icc1 + beq icc0,#0,__restore_acc_fr451 + beq icc1,#0,__restore_acc_fr555 +__restore_acc_cont: + + # some CPU's have GR32-GR63 + setlos #HSR0_FRHE,gr4 + andcc gr6,gr4,gr0,icc0 + beq icc0,#1,__restore_skip_gr32_gr63 + + lddi @(gr8,#__INT_GR(32)),gr32 + lddi @(gr8,#__INT_GR(34)),gr34 + lddi @(gr8,#__INT_GR(36)),gr36 + lddi @(gr8,#__INT_GR(38)),gr38 + lddi @(gr8,#__INT_GR(40)),gr40 + lddi @(gr8,#__INT_GR(42)),gr42 + lddi @(gr8,#__INT_GR(44)),gr44 + lddi @(gr8,#__INT_GR(46)),gr46 + lddi @(gr8,#__INT_GR(48)),gr48 + lddi @(gr8,#__INT_GR(50)),gr50 + lddi @(gr8,#__INT_GR(52)),gr52 + lddi @(gr8,#__INT_GR(54)),gr54 + lddi @(gr8,#__INT_GR(56)),gr56 + lddi @(gr8,#__INT_GR(58)),gr58 + lddi @(gr8,#__INT_GR(60)),gr60 + lddi @(gr8,#__INT_GR(62)),gr62 +__restore_skip_gr32_gr63: + + # all CPU's have FR0-FR31 + lddfi @(gr8,#__FPMEDIA_FR( 0)),fr0 + lddfi @(gr8,#__FPMEDIA_FR( 2)),fr2 + lddfi @(gr8,#__FPMEDIA_FR( 4)),fr4 + lddfi @(gr8,#__FPMEDIA_FR( 6)),fr6 + lddfi @(gr8,#__FPMEDIA_FR( 8)),fr8 + lddfi @(gr8,#__FPMEDIA_FR(10)),fr10 + lddfi @(gr8,#__FPMEDIA_FR(12)),fr12 + lddfi @(gr8,#__FPMEDIA_FR(14)),fr14 + lddfi @(gr8,#__FPMEDIA_FR(16)),fr16 + lddfi @(gr8,#__FPMEDIA_FR(18)),fr18 + lddfi @(gr8,#__FPMEDIA_FR(20)),fr20 + lddfi @(gr8,#__FPMEDIA_FR(22)),fr22 + lddfi @(gr8,#__FPMEDIA_FR(24)),fr24 + lddfi @(gr8,#__FPMEDIA_FR(26)),fr26 + lddfi @(gr8,#__FPMEDIA_FR(28)),fr28 + lddfi.p @(gr8,#__FPMEDIA_FR(30)),fr30 + + # some CPU's have FR32-FR63 + setlos #HSR0_FRHE,gr4 + andcc gr6,gr4,gr0,icc0 + beq icc0,#1,__restore_skip_fr32_fr63 + + lddfi @(gr8,#__FPMEDIA_FR(32)),fr32 + lddfi @(gr8,#__FPMEDIA_FR(34)),fr34 + lddfi @(gr8,#__FPMEDIA_FR(36)),fr36 + lddfi @(gr8,#__FPMEDIA_FR(38)),fr38 + lddfi @(gr8,#__FPMEDIA_FR(40)),fr40 + lddfi @(gr8,#__FPMEDIA_FR(42)),fr42 + lddfi @(gr8,#__FPMEDIA_FR(44)),fr44 + lddfi @(gr8,#__FPMEDIA_FR(46)),fr46 + lddfi @(gr8,#__FPMEDIA_FR(48)),fr48 + lddfi @(gr8,#__FPMEDIA_FR(50)),fr50 + lddfi @(gr8,#__FPMEDIA_FR(52)),fr52 + lddfi @(gr8,#__FPMEDIA_FR(54)),fr54 + lddfi @(gr8,#__FPMEDIA_FR(56)),fr56 + lddfi @(gr8,#__FPMEDIA_FR(58)),fr58 + lddfi @(gr8,#__FPMEDIA_FR(60)),fr60 + lddfi @(gr8,#__FPMEDIA_FR(62)),fr62 +__restore_skip_fr32_fr63: + + lddi @(gr8,#__FPMEDIA_FNER(0)),gr4 + movsg fner0,gr4 + movsg fner1,gr5 + bralr + + # the FR451 also has ACC8-11/ACCG8-11 regs (but not 4-7...) +__restore_acc_fr451: + lddfi @(gr8,#__FPMEDIA_ACC(4)),fr16 + lddfi @(gr8,#__FPMEDIA_ACC(6)),fr18 + ldbfi @(gr8,#__FPMEDIA_ACCG(4)),fr20 + ldbfi @(gr8,#__FPMEDIA_ACCG(5)),fr21 + ldbfi @(gr8,#__FPMEDIA_ACCG(6)),fr22 + ldbfi @(gr8,#__FPMEDIA_ACCG(7)),fr23 + + mwtacc fr16,acc8 + mwtacc fr17,acc9 + mwtacc fr18,acc10 + mwtacc fr19,acc11 + mwtaccg fr20,accg8 + mwtaccg fr21,accg9 + mwtaccg fr22,accg10 + mwtaccg fr23,accg11 + bra __restore_acc_cont + + # the FR555 also has ACC4-7/ACCG4-7 regs and an FSR0 reg +__restore_acc_fr555: + lddfi @(gr8,#__FPMEDIA_ACC(4)),fr16 + lddfi @(gr8,#__FPMEDIA_ACC(6)),fr18 + ldbfi @(gr8,#__FPMEDIA_ACCG(4)),fr20 + ldbfi @(gr8,#__FPMEDIA_ACCG(5)),fr21 + ldbfi @(gr8,#__FPMEDIA_ACCG(6)),fr22 + ldbfi @(gr8,#__FPMEDIA_ACCG(7)),fr23 + + mnop.p + mwtacc fr16,acc4 + mnop.p + mwtacc fr17,acc5 + mnop.p + mwtacc fr18,acc6 + mnop.p + mwtacc fr19,acc7 + mnop.p + mwtaccg fr20,accg4 + mnop.p + mwtaccg fr21,accg5 + mnop.p + mwtaccg fr22,accg6 + mnop.p + mwtaccg fr23,accg7 + + ldi @(gr8,#__FPMEDIA_FSR(0)),gr4 + movgs gr4,fsr0 + + bra __restore_acc_cont + + +############################################################################### +# +# save extra general regs and FP/Media regs +# - void save_user_regs(struct user_context *target) +# +############################################################################### + .globl save_user_regs +save_user_regs: + movsg hsr0,gr6 + ori gr6,#HSR0_GRHE|HSR0_FRLE|HSR0_FRHE,gr6 + movgs gr6,hsr0 + movsg hsr0,gr6 + + movsg psr,gr7 + ori gr7,#PSR_EF|PSR_EM,gr7 + movgs gr7,psr + movsg psr,gr7 + srli gr7,#24,gr7 + bar + + movsg fner0,gr4 + movsg fner1,gr5 + stdi.p gr4,@(gr8,#__FPMEDIA_FNER(0)) + + # some CPU's have GR32-GR63 + setlos #HSR0_GRHE,gr4 + andcc gr6,gr4,gr0,icc0 + beq icc0,#1,__save_skip_gr32_gr63 + + stdi gr32,@(gr8,#__INT_GR(32)) + stdi gr34,@(gr8,#__INT_GR(34)) + stdi gr36,@(gr8,#__INT_GR(36)) + stdi gr38,@(gr8,#__INT_GR(38)) + stdi gr40,@(gr8,#__INT_GR(40)) + stdi gr42,@(gr8,#__INT_GR(42)) + stdi gr44,@(gr8,#__INT_GR(44)) + stdi gr46,@(gr8,#__INT_GR(46)) + stdi gr48,@(gr8,#__INT_GR(48)) + stdi gr50,@(gr8,#__INT_GR(50)) + stdi gr52,@(gr8,#__INT_GR(52)) + stdi gr54,@(gr8,#__INT_GR(54)) + stdi gr56,@(gr8,#__INT_GR(56)) + stdi gr58,@(gr8,#__INT_GR(58)) + stdi gr60,@(gr8,#__INT_GR(60)) + stdi gr62,@(gr8,#__INT_GR(62)) +__save_skip_gr32_gr63: + + # all CPU's have FR0-FR31 + stdfi fr0 ,@(gr8,#__FPMEDIA_FR( 0)) + stdfi fr2 ,@(gr8,#__FPMEDIA_FR( 2)) + stdfi fr4 ,@(gr8,#__FPMEDIA_FR( 4)) + stdfi fr6 ,@(gr8,#__FPMEDIA_FR( 6)) + stdfi fr8 ,@(gr8,#__FPMEDIA_FR( 8)) + stdfi fr10,@(gr8,#__FPMEDIA_FR(10)) + stdfi fr12,@(gr8,#__FPMEDIA_FR(12)) + stdfi fr14,@(gr8,#__FPMEDIA_FR(14)) + stdfi fr16,@(gr8,#__FPMEDIA_FR(16)) + stdfi fr18,@(gr8,#__FPMEDIA_FR(18)) + stdfi fr20,@(gr8,#__FPMEDIA_FR(20)) + stdfi fr22,@(gr8,#__FPMEDIA_FR(22)) + stdfi fr24,@(gr8,#__FPMEDIA_FR(24)) + stdfi fr26,@(gr8,#__FPMEDIA_FR(26)) + stdfi fr28,@(gr8,#__FPMEDIA_FR(28)) + stdfi.p fr30,@(gr8,#__FPMEDIA_FR(30)) + + # some CPU's have FR32-FR63 + setlos #HSR0_FRHE,gr4 + andcc gr6,gr4,gr0,icc0 + beq icc0,#1,__save_skip_fr32_fr63 + + stdfi fr32,@(gr8,#__FPMEDIA_FR(32)) + stdfi fr34,@(gr8,#__FPMEDIA_FR(34)) + stdfi fr36,@(gr8,#__FPMEDIA_FR(36)) + stdfi fr38,@(gr8,#__FPMEDIA_FR(38)) + stdfi fr40,@(gr8,#__FPMEDIA_FR(40)) + stdfi fr42,@(gr8,#__FPMEDIA_FR(42)) + stdfi fr44,@(gr8,#__FPMEDIA_FR(44)) + stdfi fr46,@(gr8,#__FPMEDIA_FR(46)) + stdfi fr48,@(gr8,#__FPMEDIA_FR(48)) + stdfi fr50,@(gr8,#__FPMEDIA_FR(50)) + stdfi fr52,@(gr8,#__FPMEDIA_FR(52)) + stdfi fr54,@(gr8,#__FPMEDIA_FR(54)) + stdfi fr56,@(gr8,#__FPMEDIA_FR(56)) + stdfi fr58,@(gr8,#__FPMEDIA_FR(58)) + stdfi fr60,@(gr8,#__FPMEDIA_FR(60)) + stdfi fr62,@(gr8,#__FPMEDIA_FR(62)) +__save_skip_fr32_fr63: + + mrdacc acc0 ,fr4 + mrdacc acc1 ,fr5 + + stdfi.p fr4 ,@(gr8,#__FPMEDIA_ACC(0)) + + mrdacc acc2 ,fr6 + mrdacc acc3 ,fr7 + + stdfi.p fr6 ,@(gr8,#__FPMEDIA_ACC(2)) + + mrdaccg accg0,fr4 + stbfi.p fr4 ,@(gr8,#__FPMEDIA_ACCG(0)) + + mrdaccg accg1,fr5 + stbfi.p fr5 ,@(gr8,#__FPMEDIA_ACCG(1)) + + mrdaccg accg2,fr6 + stbfi.p fr6 ,@(gr8,#__FPMEDIA_ACCG(2)) + + mrdaccg accg3,fr7 + stbfi fr7 ,@(gr8,#__FPMEDIA_ACCG(3)) + + movsg msr0 ,gr4 + movsg msr1 ,gr5 + + stdi gr4 ,@(gr8,#__FPMEDIA_MSR(0)) + + # some CPUs have extra ACCx and ACCGx regs and maybe FSRx regs + subicc.p gr7,#0x50,gr0,icc0 + subicc gr7,#0x31,gr0,icc1 + beq icc0,#0,__save_acc_fr451 + beq icc1,#0,__save_acc_fr555 +__save_acc_cont: + + lddfi @(gr8,#__FPMEDIA_FR(4)),fr4 + lddfi.p @(gr8,#__FPMEDIA_FR(6)),fr6 + bralr + + # the FR451 also has ACC8-11/ACCG8-11 regs (but not 4-7...) +__save_acc_fr451: + mrdacc acc8 ,fr4 + mrdacc acc9 ,fr5 + + stdfi.p fr4 ,@(gr8,#__FPMEDIA_ACC(4)) + + mrdacc acc10,fr6 + mrdacc acc11,fr7 + + stdfi.p fr6 ,@(gr8,#__FPMEDIA_ACC(6)) + + mrdaccg accg8,fr4 + stbfi.p fr4 ,@(gr8,#__FPMEDIA_ACCG(4)) + + mrdaccg accg9,fr5 + stbfi.p fr5 ,@(gr8,#__FPMEDIA_ACCG(5)) + + mrdaccg accg10,fr6 + stbfi.p fr6 ,@(gr8,#__FPMEDIA_ACCG(6)) + + mrdaccg accg11,fr7 + stbfi fr7 ,@(gr8,#__FPMEDIA_ACCG(7)) + bra __save_acc_cont + + # the FR555 also has ACC4-7/ACCG4-7 regs and an FSR0 reg +__save_acc_fr555: + mnop.p + mrdacc acc4 ,fr4 + mnop.p + mrdacc acc5 ,fr5 + + stdfi fr4 ,@(gr8,#__FPMEDIA_ACC(4)) + + mnop.p + mrdacc acc6 ,fr6 + mnop.p + mrdacc acc7 ,fr7 + + stdfi fr6 ,@(gr8,#__FPMEDIA_ACC(6)) + + mnop.p + mrdaccg accg4,fr4 + stbfi fr4 ,@(gr8,#__FPMEDIA_ACCG(4)) + + mnop.p + mrdaccg accg5,fr5 + stbfi fr5 ,@(gr8,#__FPMEDIA_ACCG(5)) + + mnop.p + mrdaccg accg6,fr6 + stbfi fr6 ,@(gr8,#__FPMEDIA_ACCG(6)) + + mnop.p + mrdaccg accg7,fr7 + stbfi fr7 ,@(gr8,#__FPMEDIA_ACCG(7)) + + movsg fsr0 ,gr4 + sti gr4 ,@(gr8,#__FPMEDIA_FSR(0)) + bra __save_acc_cont diff -Nru a/arch/frv/kernel/sys_frv.c b/arch/frv/kernel/sys_frv.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/sys_frv.c 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,214 @@ +/* sys_frv.c: FRV arch-specific syscall wrappers + * + * Copyright (C) 2003-5 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * - Derived from arch/m68k/kernel/sys_m68k.c + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +/* + * sys_pipe() is the normal C calling standard for creating + * a pipe. It's not the way unix traditionally does this, though. + */ +asmlinkage long sys_pipe(unsigned long * fildes) +{ + int fd[2]; + int error; + + error = do_pipe(fd); + if (!error) { + if (copy_to_user(fildes, fd, 2*sizeof(int))) + error = -EFAULT; + } + return error; +} + +asmlinkage long sys_mmap2(unsigned long addr, unsigned long len, + unsigned long prot, unsigned long flags, + unsigned long fd, unsigned long pgoff) +{ + int error = -EBADF; + struct file * file = NULL; + + flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE); + if (!(flags & MAP_ANONYMOUS)) { + file = fget(fd); + if (!file) + goto out; + } + + /* As with sparc32, make sure the shift for mmap2 is constant + (12), no matter what PAGE_SIZE we have.... */ + + /* But unlike sparc32, don't just silently break if we're + trying to map something we can't */ + if (pgoff & ((1<<(PAGE_SHIFT-12))-1)) + return -EINVAL; + + pgoff >>= (PAGE_SHIFT - 12); + + down_write(¤t->mm->mmap_sem); + error = do_mmap_pgoff(file, addr, len, prot, flags, pgoff); + up_write(¤t->mm->mmap_sem); + + if (file) + fput(file); +out: + return error; +} + +#if 0 /* DAVIDM - do we want this */ +struct mmap_arg_struct64 { + __u32 addr; + __u32 len; + __u32 prot; + __u32 flags; + __u64 offset; /* 64 bits */ + __u32 fd; +}; + +asmlinkage long sys_mmap64(struct mmap_arg_struct64 *arg) +{ + int error = -EFAULT; + struct file * file = NULL; + struct mmap_arg_struct64 a; + unsigned long pgoff; + + if (copy_from_user(&a, arg, sizeof(a))) + return -EFAULT; + + if ((long)a.offset & ~PAGE_MASK) + return -EINVAL; + + pgoff = a.offset >> PAGE_SHIFT; + if ((a.offset >> PAGE_SHIFT) != pgoff) + return -EINVAL; + + if (!(a.flags & MAP_ANONYMOUS)) { + error = -EBADF; + file = fget(a.fd); + if (!file) + goto out; + } + a.flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE); + + down_write(¤t->mm->mmap_sem); + error = do_mmap_pgoff(file, a.addr, a.len, a.prot, a.flags, pgoff); + up_write(¤t->mm->mmap_sem); + if (file) + fput(file); +out: + return error; +} +#endif + +/* + * sys_ipc() is the de-multiplexer for the SysV IPC calls.. + * + * This is really horribly ugly. + */ +asmlinkage long sys_ipc(unsigned long call, + unsigned long first, + unsigned long second, + unsigned long third, + void __user *ptr, + unsigned long fifth) +{ + int version, ret; + + version = call >> 16; /* hack for backward compatibility */ + call &= 0xffff; + + switch (call) { + case SEMOP: + return sys_semtimedop(first, (struct sembuf __user *)ptr, second, NULL); + case SEMTIMEDOP: + return sys_semtimedop(first, (struct sembuf __user *)ptr, second, + (const struct timespec __user *)fifth); + + case SEMGET: + return sys_semget (first, second, third); + case SEMCTL: { + union semun fourth; + if (!ptr) + return -EINVAL; + if (get_user(fourth.__pad, (void * __user *) ptr)) + return -EFAULT; + return sys_semctl (first, second, third, fourth); + } + + case MSGSND: + return sys_msgsnd (first, (struct msgbuf __user *) ptr, + second, third); + case MSGRCV: + switch (version) { + case 0: { + struct ipc_kludge tmp; + if (!ptr) + return -EINVAL; + + if (copy_from_user(&tmp, + (struct ipc_kludge __user *) ptr, + sizeof (tmp))) + return -EFAULT; + return sys_msgrcv (first, tmp.msgp, second, + tmp.msgtyp, third); + } + default: + return sys_msgrcv (first, + (struct msgbuf __user *) ptr, + second, fifth, third); + } + case MSGGET: + return sys_msgget ((key_t) first, second); + case MSGCTL: + return sys_msgctl (first, second, (struct msqid_ds __user *) ptr); + + case SHMAT: + switch (version) { + default: { + ulong raddr; + ret = do_shmat (first, (char __user *) ptr, second, &raddr); + if (ret) + return ret; + return put_user (raddr, (ulong __user *) third); + } + case 1: /* iBCS2 emulator entry point */ + if (!segment_eq(get_fs(), get_ds())) + return -EINVAL; + /* The "(ulong *) third" is valid _only_ because of the kernel segment thing */ + return do_shmat (first, (char __user *) ptr, second, (ulong *) third); + } + case SHMDT: + return sys_shmdt ((char __user *)ptr); + case SHMGET: + return sys_shmget (first, second, third); + case SHMCTL: + return sys_shmctl (first, second, + (struct shmid_ds __user *) ptr); + default: + return -ENOSYS; + } +} diff -Nru a/arch/frv/kernel/sysctl.c b/arch/frv/kernel/sysctl.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/sysctl.c 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,206 @@ +/* sysctl.c: implementation of /proc/sys files relating to FRV specifically + * + * Copyright (C) 2004 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#include +#include +#include +#include +#include +#include + +static const char frv_cache_wback[] = "wback"; +static const char frv_cache_wthru[] = "wthru"; + +static void frv_change_dcache_mode(unsigned long newmode) +{ + unsigned long flags, hsr0; + + local_irq_save(flags); + + hsr0 = __get_HSR(0); + hsr0 &= ~HSR0_DCE; + __set_HSR(0, hsr0); + + asm volatile(" dcef @(gr0,gr0),#1 \n" + " membar \n" + : : : "memory" + ); + + hsr0 = (hsr0 & ~HSR0_CBM) | newmode; + __set_HSR(0, hsr0); + hsr0 |= HSR0_DCE; + __set_HSR(0, hsr0); + + local_irq_restore(flags); + + //printk("HSR0 now %08lx\n", hsr0); +} + +/*****************************************************************************/ +/* + * handle requests to dynamically switch the write caching mode delivered by /proc + */ +static int procctl_frv_cachemode(ctl_table *table, int write, struct file *filp, + void *buffer, size_t *lenp, loff_t *ppos) +{ + unsigned long hsr0; + char buff[8]; + int len; + + len = *lenp; + + if (write) { + /* potential state change */ + if (len <= 1 || len > sizeof(buff) - 1) + return -EINVAL; + + if (copy_from_user(buff, buffer, len) != 0) + return -EFAULT; + + if (buff[len - 1] == '\n') + buff[len - 1] = '\0'; + else + buff[len] = '\0'; + + if (strcmp(buff, frv_cache_wback) == 0) { + /* switch dcache into write-back mode */ + frv_change_dcache_mode(HSR0_CBM_COPY_BACK); + return 0; + } + + if (strcmp(buff, frv_cache_wthru) == 0) { + /* switch dcache into write-through mode */ + frv_change_dcache_mode(HSR0_CBM_WRITE_THRU); + return 0; + } + + return -EINVAL; + } + + /* read the state */ + if (filp->f_pos > 0) { + *lenp = 0; + return 0; + } + + hsr0 = __get_HSR(0); + switch (hsr0 & HSR0_CBM) { + case HSR0_CBM_WRITE_THRU: + memcpy(buff, frv_cache_wthru, sizeof(frv_cache_wthru) - 1); + buff[sizeof(frv_cache_wthru) - 1] = '\n'; + len = sizeof(frv_cache_wthru); + break; + default: + memcpy(buff, frv_cache_wback, sizeof(frv_cache_wback) - 1); + buff[sizeof(frv_cache_wback) - 1] = '\n'; + len = sizeof(frv_cache_wback); + break; + } + + if (len > *lenp) + len = *lenp; + + if (copy_to_user(buffer, buff, len) != 0) + return -EFAULT; + + *lenp = len; + filp->f_pos = len; + return 0; + +} /* end procctl_frv_cachemode() */ + +/*****************************************************************************/ +/* + * permit the mm_struct the nominated process is using have its MMU context ID pinned + */ +#ifdef CONFIG_MMU +static int procctl_frv_pin_cxnr(ctl_table *table, int write, struct file *filp, + void *buffer, size_t *lenp, loff_t *ppos) +{ + pid_t pid; + char buff[16], *p; + int len; + + len = *lenp; + + if (write) { + /* potential state change */ + if (len <= 1 || len > sizeof(buff) - 1) + return -EINVAL; + + if (copy_from_user(buff, buffer, len) != 0) + return -EFAULT; + + if (buff[len - 1] == '\n') + buff[len - 1] = '\0'; + else + buff[len] = '\0'; + + pid = simple_strtoul(buff, &p, 10); + if (*p) + return -EINVAL; + + return cxn_pin_by_pid(pid); + } + + /* read the currently pinned CXN */ + if (filp->f_pos > 0) { + *lenp = 0; + return 0; + } + + len = snprintf(buff, sizeof(buff), "%d\n", cxn_pinned); + if (len > *lenp) + len = *lenp; + + if (copy_to_user(buffer, buff, len) != 0) + return -EFAULT; + + *lenp = len; + filp->f_pos = len; + return 0; + +} /* end procctl_frv_pin_cxnr() */ +#endif + +/* + * FR-V specific sysctls + */ +static struct ctl_table frv_table[] = +{ + { 1, "cache-mode", NULL, 0, 0644, NULL, &procctl_frv_cachemode }, +#ifdef CONFIG_MMU + { 2, "pin-cxnr", NULL, 0, 0644, NULL, &procctl_frv_pin_cxnr }, +#endif + { 0 } +}; + +/* + * Use a temporary sysctl number. Horrid, but will be cleaned up in 2.6 + * when all the PM interfaces exist nicely. + */ +#define CTL_FRV 9898 +static struct ctl_table frv_dir_table[] = +{ + {CTL_FRV, "frv", NULL, 0, 0555, frv_table}, + {0} +}; + +/* + * Initialize power interface + */ +static int __init frv_sysctl_init(void) +{ + register_sysctl_table(frv_dir_table, 1); + return 0; +} + +__initcall(frv_sysctl_init); diff -Nru a/arch/frv/kernel/time.c b/arch/frv/kernel/time.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/time.c 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,234 @@ +/* time.c: FRV arch-specific time handling + * + * Copyright (C) 2003-5 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * - Derived from arch/m68k/kernel/time.c + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#include /* CONFIG_HEARTBEAT */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include + +#define TICK_SIZE (tick_nsec / 1000) + +extern unsigned long wall_jiffies; + +u64 jiffies_64 = INITIAL_JIFFIES; +EXPORT_SYMBOL(jiffies_64); + +unsigned long __nongprelbss __clkin_clock_speed_HZ; +unsigned long __nongprelbss __ext_bus_clock_speed_HZ; +unsigned long __nongprelbss __res_bus_clock_speed_HZ; +unsigned long __nongprelbss __sdram_clock_speed_HZ; +unsigned long __nongprelbss __core_bus_clock_speed_HZ; +unsigned long __nongprelbss __core_clock_speed_HZ; +unsigned long __nongprelbss __dsu_clock_speed_HZ; +unsigned long __nongprelbss __serial_clock_speed_HZ; +unsigned long __delay_loops_MHz; + +static irqreturn_t timer_interrupt(int irq, void *dummy, struct pt_regs *regs); + +static struct irqaction timer_irq = { + timer_interrupt, SA_INTERRUPT, CPU_MASK_NONE, "timer", NULL, NULL +}; + +static inline int set_rtc_mmss(unsigned long nowtime) +{ + return -1; +} + +/* + * timer_interrupt() needs to keep up the real-time clock, + * as well as call the "do_timer()" routine every clocktick + */ +static irqreturn_t timer_interrupt(int irq, void *dummy, struct pt_regs * regs) +{ + /* last time the cmos clock got updated */ + static long last_rtc_update = 0; + + /* + * Here we are in the timer irq handler. We just have irqs locally + * disabled but we don't know if the timer_bh is running on the other + * CPU. We need to avoid to SMP race with it. NOTE: we don' t need + * the irq version of write_lock because as just said we have irq + * locally disabled. -arca + */ + write_seqlock(&xtime_lock); + + do_timer(regs); + update_process_times(user_mode(regs)); + profile_tick(CPU_PROFILING, regs); + + /* + * If we have an externally synchronized Linux clock, then update + * CMOS clock accordingly every ~11 minutes. Set_rtc_mmss() has to be + * called as close as possible to 500 ms before the new second starts. + */ + if ((time_status & STA_UNSYNC) == 0 && + xtime.tv_sec > last_rtc_update + 660 && + (xtime.tv_nsec / 1000) >= 500000 - ((unsigned) TICK_SIZE) / 2 && + (xtime.tv_nsec / 1000) <= 500000 + ((unsigned) TICK_SIZE) / 2 + ) { + if (set_rtc_mmss(xtime.tv_sec) == 0) + last_rtc_update = xtime.tv_sec; + else + last_rtc_update = xtime.tv_sec - 600; /* do it again in 60 s */ + } + +#ifdef CONFIG_HEARTBEAT + static unsigned short n; + n++; + __set_LEDS(n); +#endif /* CONFIG_HEARTBEAT */ + + write_sequnlock(&xtime_lock); + return IRQ_HANDLED; +} + +void time_divisor_init(void) +{ + unsigned short base, pre, prediv; + + /* set the scheduling timer going */ + pre = 1; + prediv = 4; + base = __res_bus_clock_speed_HZ / pre / HZ / (1 << prediv); + + __set_TPRV(pre); + __set_TxCKSL_DATA(0, prediv); + __set_TCTR(TCTR_SC_CTR0 | TCTR_RL_RW_LH8 | TCTR_MODE_2); + __set_TCSR_DATA(0, base & 0xff); + __set_TCSR_DATA(0, base >> 8); +} + +void time_init(void) +{ + unsigned int year, mon, day, hour, min, sec; + + extern void arch_gettod(int *year, int *mon, int *day, int *hour, int *min, int *sec); + + /* FIX by dqg : Set to zero for platforms that don't have tod */ + /* without this time is undefined and can overflow time_t, causing */ + /* very stange errors */ + year = 1980; + mon = day = 1; + hour = min = sec = 0; + arch_gettod (&year, &mon, &day, &hour, &min, &sec); + + if ((year += 1900) < 1970) + year += 100; + xtime.tv_sec = mktime(year, mon, day, hour, min, sec); + xtime.tv_nsec = 0; + + /* install scheduling interrupt handler */ + setup_irq(IRQ_CPU_TIMER0, &timer_irq); + + time_divisor_init(); +} + +/* + * This version of gettimeofday has near microsecond resolution. + */ +void do_gettimeofday(struct timeval *tv) +{ + unsigned long seq; + unsigned long usec, sec; + unsigned long max_ntp_tick; + + do { + unsigned long lost; + + seq = read_seqbegin(&xtime_lock); + + usec = 0; + lost = jiffies - wall_jiffies; + + /* + * If time_adjust is negative then NTP is slowing the clock + * so make sure not to go into next possible interval. + * Better to lose some accuracy than have time go backwards.. + */ + if (unlikely(time_adjust < 0)) { + max_ntp_tick = (USEC_PER_SEC / HZ) - tickadj; + usec = min(usec, max_ntp_tick); + + if (lost) + usec += lost * max_ntp_tick; + } + else if (unlikely(lost)) + usec += lost * (USEC_PER_SEC / HZ); + + sec = xtime.tv_sec; + usec += (xtime.tv_nsec / 1000); + } while (read_seqretry(&xtime_lock, seq)); + + while (usec >= 1000000) { + usec -= 1000000; + sec++; + } + + tv->tv_sec = sec; + tv->tv_usec = usec; +} + +int do_settimeofday(struct timespec *tv) +{ + time_t wtm_sec, sec = tv->tv_sec; + long wtm_nsec, nsec = tv->tv_nsec; + + if ((unsigned long)tv->tv_nsec >= NSEC_PER_SEC) + return -EINVAL; + + write_seqlock_irq(&xtime_lock); + /* + * This is revolting. We need to set "xtime" correctly. However, the + * value in this location is the value at the most recent update of + * wall time. Discover what correction gettimeofday() would have + * made, and then undo it! + */ + nsec -= 0 * NSEC_PER_USEC; + nsec -= (jiffies - wall_jiffies) * TICK_NSEC; + + wtm_sec = wall_to_monotonic.tv_sec + (xtime.tv_sec - sec); + wtm_nsec = wall_to_monotonic.tv_nsec + (xtime.tv_nsec - nsec); + + set_normalized_timespec(&xtime, sec, nsec); + set_normalized_timespec(&wall_to_monotonic, wtm_sec, wtm_nsec); + + time_adjust = 0; /* stop active adjtime() */ + time_status |= STA_UNSYNC; + time_maxerror = NTP_PHASE_LIMIT; + time_esterror = NTP_PHASE_LIMIT; + write_sequnlock_irq(&xtime_lock); + clock_was_set(); + return 0; +} + +/* + * Scheduler clock - returns current time in nanosec units. + */ +unsigned long long sched_clock(void) +{ + return jiffies_64 * (1000000000 / HZ); +} diff -Nru a/arch/frv/kernel/traps.c b/arch/frv/kernel/traps.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/traps.c 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,431 @@ +/* traps.c: high-level exception handler for FR-V + * + * Copyright (C) 2003 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +void show_backtrace(struct pt_regs *, unsigned long); + +extern asmlinkage void __break_hijack_kernel_event(void); + +/*****************************************************************************/ +/* + * instruction access error + */ +asmlinkage void insn_access_error(unsigned long esfr1, unsigned long epcr0, unsigned long esr0) +{ + siginfo_t info; + + die_if_kernel("-- Insn Access Error --\n" + "EPCR0 : %08lx\n" + "ESR0 : %08lx\n", + epcr0, esr0); + + info.si_signo = SIGSEGV; + info.si_code = SEGV_ACCERR; + info.si_errno = 0; + info.si_addr = (void *) ((epcr0 & EPCR0_V) ? (epcr0 & EPCR0_PC) : __frame->pc); + + force_sig_info(info.si_signo, &info, current); +} /* end insn_access_error() */ + +/*****************************************************************************/ +/* + * handler for: + * - illegal instruction + * - privileged instruction + * - unsupported trap + * - debug exceptions + */ +asmlinkage void illegal_instruction(unsigned long esfr1, unsigned long epcr0, unsigned long esr0) +{ + siginfo_t info; + + die_if_kernel("-- Illegal Instruction --\n" + "EPCR0 : %08lx\n" + "ESR0 : %08lx\n" + "ESFR1 : %08lx\n", + epcr0, esr0, esfr1); + + info.si_errno = 0; + info.si_addr = (void *) ((epcr0 & EPCR0_PC) ? (epcr0 & EPCR0_PC) : __frame->pc); + + switch (__frame->tbr & TBR_TT) { + case TBR_TT_ILLEGAL_INSTR: + info.si_signo = SIGILL; + info.si_code = ILL_ILLOPC; + break; + case TBR_TT_PRIV_INSTR: + info.si_signo = SIGILL; + info.si_code = ILL_PRVOPC; + break; + case TBR_TT_TRAP2 ... TBR_TT_TRAP126: + info.si_signo = SIGILL; + info.si_code = ILL_ILLTRP; + break; + /* GDB uses "tira gr0, #1" as a breakpoint instruction. */ + case TBR_TT_TRAP1: + case TBR_TT_BREAK: + info.si_signo = SIGTRAP; + info.si_code = + (__frame->__status & REG__STATUS_STEPPED) ? TRAP_TRACE : TRAP_BRKPT; + break; + } + + force_sig_info(info.si_signo, &info, current); +} /* end illegal_instruction() */ + +/*****************************************************************************/ +/* + * + */ +asmlinkage void media_exception(unsigned long msr0, unsigned long msr1) +{ + siginfo_t info; + + die_if_kernel("-- Media Exception --\n" + "MSR0 : %08lx\n" + "MSR1 : %08lx\n", + msr0, msr1); + + info.si_signo = SIGFPE; + info.si_code = FPE_MDAOVF; + info.si_errno = 0; + info.si_addr = (void *) __frame->pc; + + force_sig_info(info.si_signo, &info, current); +} /* end media_exception() */ + +/*****************************************************************************/ +/* + * instruction or data access exception + */ +asmlinkage void memory_access_exception(unsigned long esr0, + unsigned long ear0, + unsigned long epcr0) +{ + siginfo_t info; + +#ifdef CONFIG_MMU + unsigned long fixup; + + if ((esr0 & ESRx_EC) == ESRx_EC_DATA_ACCESS) + if (handle_misalignment(esr0, ear0, epcr0) == 0) + return; + + if ((fixup = search_exception_table(__frame->pc)) != 0) { + __frame->pc = fixup; + return; + } +#endif + + die_if_kernel("-- Memory Access Exception --\n" + "ESR0 : %08lx\n" + "EAR0 : %08lx\n" + "EPCR0 : %08lx\n", + esr0, ear0, epcr0); + + info.si_signo = SIGSEGV; + info.si_code = SEGV_ACCERR; + info.si_errno = 0; + info.si_addr = NULL; + + if ((esr0 & (ESRx_VALID | ESR0_EAV)) == (ESRx_VALID | ESR0_EAV)) + info.si_addr = (void *) ear0; + + force_sig_info(info.si_signo, &info, current); + +} /* end memory_access_exception() */ + +/*****************************************************************************/ +/* + * data access error + * - double-word data load from CPU control area (0xFExxxxxx) + * - read performed on inactive or self-refreshing SDRAM + * - error notification from slave device + * - misaligned address + * - access to out of bounds memory region + * - user mode accessing privileged memory region + * - write to R/O memory region + */ +asmlinkage void data_access_error(unsigned long esfr1, unsigned long esr15, unsigned long ear15) +{ + siginfo_t info; + + die_if_kernel("-- Data Access Error --\n" + "ESR15 : %08lx\n" + "EAR15 : %08lx\n", + esr15, ear15); + + info.si_signo = SIGSEGV; + info.si_code = SEGV_ACCERR; + info.si_errno = 0; + info.si_addr = (void *) + (((esr15 & (ESRx_VALID|ESR15_EAV)) == (ESRx_VALID|ESR15_EAV)) ? ear15 : 0); + + force_sig_info(info.si_signo, &info, current); +} /* end data_access_error() */ + +/*****************************************************************************/ +/* + * data store error - should only happen if accessing inactive or self-refreshing SDRAM + */ +asmlinkage void data_store_error(unsigned long esfr1, unsigned long esr15) +{ + die_if_kernel("-- Data Store Error --\n" + "ESR15 : %08lx\n", + esr15); + BUG(); +} /* end data_store_error() */ + +/*****************************************************************************/ +/* + * + */ +asmlinkage void division_exception(unsigned long esfr1, unsigned long esr0, unsigned long isr) +{ + siginfo_t info; + + die_if_kernel("-- Division Exception --\n" + "ESR0 : %08lx\n" + "ISR : %08lx\n", + esr0, isr); + + info.si_signo = SIGFPE; + info.si_code = FPE_INTDIV; + info.si_errno = 0; + info.si_addr = (void *) __frame->pc; + + force_sig_info(info.si_signo, &info, current); +} /* end division_exception() */ + +/*****************************************************************************/ +/* + * + */ +asmlinkage void compound_exception(unsigned long esfr1, + unsigned long esr0, unsigned long esr14, unsigned long esr15, + unsigned long msr0, unsigned long msr1) +{ + die_if_kernel("-- Compound Exception --\n" + "ESR0 : %08lx\n" + "ESR15 : %08lx\n" + "ESR15 : %08lx\n" + "MSR0 : %08lx\n" + "MSR1 : %08lx\n", + esr0, esr14, esr15, msr0, msr1); + BUG(); +} /* end compound_exception() */ + +/*****************************************************************************/ +/* + * The architecture-independent backtrace generator + */ +void dump_stack(void) +{ + show_stack(NULL, NULL); +} + +void show_stack(struct task_struct *task, unsigned long *sp) +{ +} + +void show_trace_task(struct task_struct *tsk) +{ + printk("CONTEXT: stack=0x%lx frame=0x%p LR=0x%lx RET=0x%lx\n", + tsk->thread.sp, tsk->thread.frame, tsk->thread.lr, tsk->thread.sched_lr); +} + +static const char *regnames[] = { + "PSR ", "ISR ", "CCR ", "CCCR", + "LR ", "LCR ", "PC ", "_stt", + "sys ", "GR8*", "GNE0", "GNE1", + "IACH", "IACL", + "TBR ", "SP ", "FP ", "GR3 ", + "GR4 ", "GR5 ", "GR6 ", "GR7 ", + "GR8 ", "GR9 ", "GR10", "GR11", + "GR12", "GR13", "GR14", "GR15", + "GR16", "GR17", "GR18", "GR19", + "GR20", "GR21", "GR22", "GR23", + "GR24", "GR25", "GR26", "GR27", + "EFRM", "CURR", "GR30", "BFRM" +}; + +void show_regs(struct pt_regs *regs) +{ + uint32_t *reg; + int loop; + + printk("\n"); + + printk("Frame: @%08x [%s]\n", + (uint32_t) regs, + regs->psr & PSR_S ? "kernel" : "user"); + + reg = (uint32_t *) regs; + for (loop = 0; loop < REG__END; loop++) { + printk("%s %08x", regnames[loop + 0], reg[loop + 0]); + + if (loop == REG__END - 1 || loop % 5 == 4) + printk("\n"); + else + printk(" | "); + } + + printk("Process %s (pid: %d)\n", current->comm, current->pid); +} + +void die_if_kernel(const char *str, ...) +{ + char buffer[256]; + va_list va; + + if (user_mode(__frame)) + return; + + va_start(va, str); + vsprintf(buffer, str, va); + va_end(va); + + console_verbose(); + printk("\n===================================\n"); + printk("%s\n", buffer); + show_backtrace(__frame, 0); + + __break_hijack_kernel_event(); + do_exit(SIGSEGV); +} + +/*****************************************************************************/ +/* + * dump the contents of an exception frame + */ +static void show_backtrace_regs(struct pt_regs *frame) +{ + uint32_t *reg; + int loop; + + /* print the registers for this frame */ + printk("<-- %s Frame: @%p -->\n", + frame->psr & PSR_S ? "Kernel Mode" : "User Mode", + frame); + + reg = (uint32_t *) frame; + for (loop = 0; loop < REG__END; loop++) { + printk("%s %08x", regnames[loop + 0], reg[loop + 0]); + + if (loop == REG__END - 1 || loop % 5 == 4) + printk("\n"); + else + printk(" | "); + } + + printk("--------\n"); +} /* end show_backtrace_regs() */ + +/*****************************************************************************/ +/* + * generate a backtrace of the kernel stack + */ +void show_backtrace(struct pt_regs *frame, unsigned long sp) +{ + struct pt_regs *frame0; + unsigned long tos = 0, stop = 0, base; + int format; + + base = ((((unsigned long) frame) + 8191) & ~8191) - sizeof(struct user_context); + frame0 = (struct pt_regs *) base; + + if (sp) { + tos = sp; + stop = (unsigned long) frame; + } + + printk("\nProcess %s (pid: %d)\n\n", current->comm, current->pid); + + for (;;) { + /* dump stack segment between frames */ + //printk("%08lx -> %08lx\n", tos, stop); + format = 0; + while (tos < stop) { + if (format == 0) + printk(" %04lx :", tos & 0xffff); + + printk(" %08lx", *(unsigned long *) tos); + + tos += 4; + format++; + if (format == 8) { + printk("\n"); + format = 0; + } + } + + if (format > 0) + printk("\n"); + + /* dump frame 0 outside of the loop */ + if (frame == frame0) + break; + + tos = frame->sp; + if (((unsigned long) frame) + sizeof(*frame) != tos) { + printk("-- TOS %08lx does not follow frame %p --\n", + tos, frame); + break; + } + + show_backtrace_regs(frame); + + /* dump the stack between this frame and the next */ + stop = (unsigned long) frame->next_frame; + if (stop != base && + (stop < tos || + stop > base || + (stop < base && stop + sizeof(*frame) > base) || + stop & 3)) { + printk("-- next_frame %08lx is invalid (range %08lx-%08lx) --\n", + stop, tos, base); + break; + } + + /* move to next frame */ + frame = frame->next_frame; + } + + /* we can always dump frame 0, even if the rest of the stack is corrupt */ + show_backtrace_regs(frame0); + +} /* end show_backtrace() */ + +/*****************************************************************************/ +/* + * initialise traps + */ +void __init trap_init (void) +{ +} /* end trap_init() */ diff -Nru a/arch/frv/kernel/uaccess.c b/arch/frv/kernel/uaccess.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/uaccess.c 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,95 @@ +/* uaccess.c: userspace access functions + * + * Copyright (C) 2004 Red Hat, Inc. All Rights Reserved. + * Written by David Howells (dhowells@redhat.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#include +#include + +/*****************************************************************************/ +/* + * copy a null terminated string from userspace + */ +long strncpy_from_user(char *dst, const char *src, long count) +{ + unsigned long max; + char *p, ch; + long err = -EFAULT; + + if (count < 0) + BUG(); + + p = dst; + +#ifndef CONFIG_MMU + if ((unsigned long) src < memory_start) + goto error; +#endif + + if ((unsigned long) src >= get_addr_limit()) + goto error; + + max = get_addr_limit() - (unsigned long) src; + if ((unsigned long) count > max) { + memset(dst + max, 0, count - max); + count = max; + } + + err = 0; + for (; count > 0; count--, p++, src++) { + __get_user_asm(err, ch, src, "ub", "=r"); + if (err < 0) + goto error; + if (!ch) + break; + *p = ch; + } + + err = p - dst; /* return length excluding NUL */ + + error: + if (count > 0) + memset(p, 0, count); /* clear remainder of buffer [security] */ + + return err; +} /* end strncpy_from_user() */ + +/*****************************************************************************/ +/* + * Return the size of a string (including the ending 0) + * + * Return 0 on exception, a value greater than N if too long + */ +long strnlen_user(const char *src, long count) +{ + const char *p; + long err = 0; + char ch; + + if (count < 0) + BUG(); + +#ifndef CONFIG_MMU + if ((unsigned long) src < memory_start) + return 0; +#endif + + if ((unsigned long) src >= get_addr_limit()) + return 0; + + for (p = src; count > 0; count--, p++) { + __get_user_asm(err, ch, p, "ub", "=r"); + if (err < 0) + return 0; + if (!ch) + break; + } + + return p - src + 1; /* return length including NUL */ +} /* end strnlen_user() */ diff -Nru a/arch/frv/kernel/vmlinux.lds.S b/arch/frv/kernel/vmlinux.lds.S --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/frv/kernel/vmlinux.lds.S 2005-01-05 17:43:40 -08:00 @@ -0,0 +1,187 @@ +/* ld script to make FRV Linux kernel -*- c -*- + * Written by Martin Mares ; + */ +OUTPUT_FORMAT("elf32-frv", "elf32-frv", "elf32-frv") +OUTPUT_ARCH(frv) +ENTRY(_start) + +#include +#include +#include +#include +#include + +jiffies = jiffies_64 + 4; + +__page_offset = 0xc0000000; /* start of area covered by struct pages */ +__kernel_image_start = __page_offset; /* address at which kernel image resides */ + +SECTIONS +{ + . = __kernel_image_start; + + /* discardable initialisation code and data */ + . = ALIGN(PAGE_SIZE); /* Init code and data */ + __init_begin = .; + + _sinittext = .; + .init.text : { + *(.text.head) +#ifndef CONFIG_DEBUG_INFO + *(.init.text) + *(.exit.text) + *(.exit.data) + *(.exitcall.exit) +#endif + } + _einittext = .; + .init.data : { *(.init.data) } + + . = ALIGN(8); + __setup_start = .; + .setup.init : { KEEP(*(.init.setup)) } + __setup_end = .; + + __initcall_start = .; + .initcall.init : { + *(.initcall1.init) + *(.initcall2.init) + *(.initcall3.init) + *(.initcall4.init) + *(.initcall5.init) + *(.initcall6.init) + *(.initcall7.init) + } + __initcall_end = .; + __con_initcall_start = .; + .con_initcall.init : { *(.con_initcall.init) } + __con_initcall_end = .; + SECURITY_INIT + . = ALIGN(4); + __alt_instructions = .; + .altinstructions : { *(.altinstructions) } + __alt_instructions_end = .; + .altinstr_replacement : { *(.altinstr_replacement) } + + __per_cpu_start = .; + .data.percpu : { *(.data.percpu) } +