http://linux.bkbits.net/linux-2.5 torvalds@ppc970.osdl.org|ChangeSet|20040628213904|49311 torvalds # This is a BitKeeper generated diff -Nru style patch. # # drivers/scsi/scsiiom.c # 2004/06/24 17:28:19-05:00 g.liakhovetski@gmx.de +153 -154 # kill obsolete typedefs and wrappers from tmscsim # # drivers/scsi/scsiiom.c # 2004/06/23 09:40:08-05:00 hch@lst.de +0 -40 # some tmscsim consolidation # # drivers/scsi/scsiiom.c # 2004/06/18 18:03:38-05:00 g.liakhovetski@gmx.de +35 -17 # tmscsim: host_lock use in LLD # # drivers/scsi/scsiiom.c # 2021/06/14 15:59:00-05:00 g.liakhovetski@gmx.de +1 -1 # tmscsim: 64-bit cleanup # # drivers/pci/hotplug/rpaphp_vio.c # 2004/06/08 15:53:59-07:00 lxiep@us.ibm.com +3 -3 # PCI Hotplug: rpaphp.patch -- multi-function devices not handled correctly # # drivers/pci/hotplug/rpaphp_slot.c # 2004/06/08 15:53:59-07:00 lxiep@us.ibm.com +113 -23 # PCI Hotplug: rpaphp.patch -- multi-function devices not handled correctly # # drivers/pci/hotplug/rpaphp_pci.c # 2004/06/08 15:53:59-07:00 lxiep@us.ibm.com +228 -100 # PCI Hotplug: rpaphp.patch -- multi-function devices not handled correctly # # net/core/dev.c # 2004/06/23 08:05:38-07:00 davem@nuts.davemloft.net +0 -0 # SCCS merged # # net/core/dev.c # 2004/06/22 10:05:28-07:00 torvalds@ppc970.osdl.org +0 -3 # Auto merged # # net/core/dev.c # 2004/06/22 09:28:45-07:00 torvalds@ppc970.osdl.org +3 -4 # Fix C99'ism that breaks older gcc's. # # Also clean it all up - use get_cpu()/put_cpu() instead of # playing games by hand with preemption. # # net/core/dev.c # 2004/06/21 09:32:30-07:00 akm@osdl.org +3 -4 # [NET]: Fix dev_queue_xmit build with older gcc. # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # net/core/dev.c # 2004/06/20 17:35:52-07:00 akepner@sgi.com +40 -15 # [NET]: Lockless loopback patch (version 2). # # net/core/dev.c # 2004/06/15 20:37:18-07:00 hadi@znyx.com +81 -0 # [NET]: Add tc extensions infrastructure. # # Signed-off-by: Jamal Hadi Salim # Signed-off-by: David S. Miller # # net/core/dev.c # 2004/06/17 12:11:17-07:00 davem@nuts.davemloft.net +2 -0 # [NET]: In unregister_netdevice(), do synchronize_net() before final dev_put(). # # This way we make sure that all destination cache updates # to remove references to this device are seen by entire # system before final destruction of the device. # # include/linux/sysfs.h # 2004/06/03 10:27:09-07:00 mochel@digitalimplant.org +1 -1 # [sysfs] Add attr_name() macro # # include/linux/sysfs.h # 2004/06/02 17:01:56-07:00 mochel@digitalimplant.org +21 -0 # [Driver Model] Consolidate object attribute definition. # # drivers/base/class.c # 2004/06/10 02:35:56-07:00 greg@kroah.com +18 -18 # Driver Core: more whitespace fixups # # This catches the files I had to do by hand as Dmitry's patch differed from my tree. # # Signed-off-by: Dmitry Torokhov # Signed-off-by: Greg Kroah-Hartman # # drivers/base/class.c # 2004/06/03 10:41:22-07:00 mochel@digitalimplant.org +75 -6 # [Driver Model] Add default attributes for classes class devices. # # ChangeSet # 2004/06/28 14:31:48-07:00 nico@cam.org # [PATCH] move prototype for __get_vm_area() to a sane location # # There are currently two files besides mm/vmalloc.c that make use of that # function: # # - arch/sh/kernel/cpu/sh4/sq.c # which defined its own prototype locally risking not being in sync with # the real function, and # # - arch/arm/kernel/module.c which has no prototype at all and cause # build warnings. # # This fixes those issues # # include/linux/vmalloc.h # 2004/06/28 12:48:16-07:00 nico@cam.org +2 -0 # move prototype for __get_vm_area() to a sane location # # arch/sh/kernel/cpu/sh4/sq.c # 2004/06/28 12:43:18-07:00 nico@cam.org +0 -2 # move prototype for __get_vm_area() to a sane location # # ChangeSet # 2004/06/28 14:30:53-07:00 chrisw@osdl.org # [PATCH] remove extraneous security_inode_setattr call in hugetlbfs # # remove extraneous security_inode_setattr call in hugetlbfs, it's already # done by VFS. # # Signed-off-by: Chris Wright # Signed-off-by: Linus Torvalds # # fs/hugetlbfs/inode.c # 2004/06/25 19:37:34-07:00 chrisw@osdl.org +0 -3 # remove extraneous security_inode_setattr call in hugetlbfs # # ChangeSet # 2004/06/28 14:30:18-07:00 noll@mathematik.tu-darmstadt.de # [PATCH] nfs oops fix # # Al's current changes to struct nameidata broke nfsroot for my discless # clients (oops in nfs_fill_super). The patch below fixes this problem # for me. # # Cc: Trond Myklebust # Cc: # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # net/sunrpc/rpc_pipe.c # 2004/06/28 14:24:40-07:00 noll@mathematik.tu-darmstadt.de +1 -0 # nfs oops fix # # fs/nfsctl.c # 2004/06/28 14:25:04-07:00 noll@mathematik.tu-darmstadt.de +1 -0 # nfs oops fix # # ChangeSet # 2004/06/28 13:15:54-07:00 kdesler@soohrt.org # [NET]: Fix typos in pktgen docs. # # Documentation/networking/pktgen.txt # 2004/06/28 13:15:39-07:00 kdesler@soohrt.org +2 -2 # [NET]: Fix typos in pktgen docs. # # ChangeSet # 2004/06/28 13:14:35-07:00 olh@suse.de # [DECNET]: Fix signed bug in net/decnet/dn_nsp_in.c:dn_nsp_linkservice() # # char can be either signed or unsigned, depending on the target system. # # Signed-off-by: Olaf Hering # Signed-off-by: David S. Miller # # net/decnet/dn_nsp_in.c # 2004/06/28 13:14:20-07:00 olh@suse.de +1 -1 # [DECNET]: Fix signed bug in net/decnet/dn_nsp_in.c:dn_nsp_linkservice() # # char can be either signed or unsigned, depending on the target system. # # Signed-off-by: Olaf Hering # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/28 13:10:38-07:00 wli@holomorphy.com # [AIO]: kiocb->private is too large for kiocb's on-stack. # # sizeof(struct kiocb) is dangerously large for a structure commonly # allocated on-stack. This patch converts the 24*sizeof(long) field, # ->private, to a void pointer for use by file_operations entrypoints. # A ->dtor() method is added to the kiocb in order to support the release # of dynamically allocated structures referred to by ->private. # # The sole in-tree users of ->private are async network read/write, # which are not, in fact, async, and so need not handle preallocated # ->private as they would need to if ->ki_retry were ever used. The sole # truly async operations are direct IO pread()/pwrite() which do not # now use ->ki_retry(). All they would need to do in that case is to # check for ->private already being allocated for async kiocbs. # # This rips 88B off the stack on 32-bit in the common case. # # Signed-off-by: William Lee Irwin III # Signed-off-by: David S. Miller # # net/socket.c # 2004/06/28 13:10:23-07:00 wli@holomorphy.com +31 -2 # [AIO]: kiocb->private is too large for kiocb's on-stack. # # sizeof(struct kiocb) is dangerously large for a structure commonly # allocated on-stack. This patch converts the 24*sizeof(long) field, # ->private, to a void pointer for use by file_operations entrypoints. # A ->dtor() method is added to the kiocb in order to support the release # of dynamically allocated structures referred to by ->private. # # The sole in-tree users of ->private are async network read/write, # which are not, in fact, async, and so need not handle preallocated # ->private as they would need to if ->ki_retry were ever used. The sole # truly async operations are direct IO pread()/pwrite() which do not # now use ->ki_retry(). All they would need to do in that case is to # check for ->private already being allocated for async kiocbs. # # This rips 88B off the stack on 32-bit in the common case. # # Signed-off-by: William Lee Irwin III # Signed-off-by: David S. Miller # # include/net/sock.h # 2004/06/28 13:10:23-07:00 wli@holomorphy.com +2 -2 # [AIO]: kiocb->private is too large for kiocb's on-stack. # # sizeof(struct kiocb) is dangerously large for a structure commonly # allocated on-stack. This patch converts the 24*sizeof(long) field, # ->private, to a void pointer for use by file_operations entrypoints. # A ->dtor() method is added to the kiocb in order to support the release # of dynamically allocated structures referred to by ->private. # # The sole in-tree users of ->private are async network read/write, # which are not, in fact, async, and so need not handle preallocated # ->private as they would need to if ->ki_retry were ever used. The sole # truly async operations are direct IO pread()/pwrite() which do not # now use ->ki_retry(). All they would need to do in that case is to # check for ->private already being allocated for async kiocbs. # # This rips 88B off the stack on 32-bit in the common case. # # Signed-off-by: William Lee Irwin III # Signed-off-by: David S. Miller # # include/linux/aio.h # 2004/06/28 13:10:23-07:00 wli@holomorphy.com +3 -4 # [AIO]: kiocb->private is too large for kiocb's on-stack. # # sizeof(struct kiocb) is dangerously large for a structure commonly # allocated on-stack. This patch converts the 24*sizeof(long) field, # ->private, to a void pointer for use by file_operations entrypoints. # A ->dtor() method is added to the kiocb in order to support the release # of dynamically allocated structures referred to by ->private. # # The sole in-tree users of ->private are async network read/write, # which are not, in fact, async, and so need not handle preallocated # ->private as they would need to if ->ki_retry were ever used. The sole # truly async operations are direct IO pread()/pwrite() which do not # now use ->ki_retry(). All they would need to do in that case is to # check for ->private already being allocated for async kiocbs. # # This rips 88B off the stack on 32-bit in the common case. # # Signed-off-by: William Lee Irwin III # Signed-off-by: David S. Miller # # fs/aio.c # 2004/06/28 13:10:23-07:00 wli@holomorphy.com +6 -0 # [AIO]: kiocb->private is too large for kiocb's on-stack. # # sizeof(struct kiocb) is dangerously large for a structure commonly # allocated on-stack. This patch converts the 24*sizeof(long) field, # ->private, to a void pointer for use by file_operations entrypoints. # A ->dtor() method is added to the kiocb in order to support the release # of dynamically allocated structures referred to by ->private. # # The sole in-tree users of ->private are async network read/write, # which are not, in fact, async, and so need not handle preallocated # ->private as they would need to if ->ki_retry were ever used. The sole # truly async operations are direct IO pread()/pwrite() which do not # now use ->ki_retry(). All they would need to do in that case is to # check for ->private already being allocated for async kiocbs. # # This rips 88B off the stack on 32-bit in the common case. # # Signed-off-by: William Lee Irwin III # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/28 09:06:26-07:00 torvalds@ppc970.osdl.org # ppc64: fix silly typo ("1" vs "i"). # # arch/ppc64/kernel/irq.c # 2004/06/28 09:06:20-07:00 torvalds@ppc970.osdl.org +1 -1 # ppc64: fix silly typo ("1" vs "i"). # # ChangeSet # 2004/06/27 23:35:45-07:00 Andries.Brouwer@cwi.nl # [PATCH] minor CAP_DAC_OVERRIDE fix # # CAP_DAC_OVERRIDE fails to give search permission in a directory with # mode 0. # # Patch acked by Chris Wright # Signed-off-by: Andries Brouwer # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/namei.c # 2004/06/27 17:29:12-07:00 Andries.Brouwer@cwi.nl +4 -1 # minor CAP_DAC_OVERRIDE fix # # ChangeSet # 2004/06/27 23:35:33-07:00 adobriyan@mail.ru # [PATCH] Remove include/asm-*/init.h # # There's no reason to keep files that # a) nobody #include's # b) produce #error # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # BitKeeper/deleted/.del-init.h~d2f5aa73a3689575 # 2004/06/27 23:35:27-07:00 adobriyan@mail.ru +0 -0 # Delete: include/asm-ppc64/init.h # # BitKeeper/deleted/.del-init.h~b601d9fd4e166cbb # 2004/06/27 23:35:27-07:00 adobriyan@mail.ru +0 -0 # Delete: include/asm-sparc64/init.h # # BitKeeper/deleted/.del-init.h~85574c439cccabb7 # 2004/06/27 23:35:27-07:00 adobriyan@mail.ru +0 -0 # Delete: include/asm-x86_64/init.h # # BitKeeper/deleted/.del-init.h~77924f83ab9c5f56 # 2004/06/27 23:35:27-07:00 adobriyan@mail.ru +0 -0 # Delete: include/asm-um/init.h # # BitKeeper/deleted/.del-init.h~3ada8d53346d53fa # 2004/06/27 23:35:27-07:00 adobriyan@mail.ru +0 -0 # Delete: include/asm-sh/init.h # # BitKeeper/deleted/.del-init.h~31dca489833bfd91 # 2004/06/27 23:35:27-07:00 adobriyan@mail.ru +0 -0 # Delete: include/asm-s390/init.h # # BitKeeper/deleted/.del-init.h~2c79ebe3a59969e7 # 2004/06/27 23:35:27-07:00 adobriyan@mail.ru +0 -0 # Delete: include/asm-sparc/init.h # # BitKeeper/deleted/.del-init.h~f7dd363ce0fe0c1b # 2004/06/27 23:35:26-07:00 adobriyan@mail.ru +0 -0 # Delete: include/asm-alpha/init.h # # BitKeeper/deleted/.del-init.h~ed623d0b830c6661 # 2004/06/27 23:35:26-07:00 adobriyan@mail.ru +0 -0 # Delete: include/asm-m68k/init.h # # BitKeeper/deleted/.del-init.h~64db9b111d26e8b5 # 2004/06/27 23:35:26-07:00 adobriyan@mail.ru +0 -0 # Delete: include/asm-mips/init.h # # BitKeeper/deleted/.del-init.h~5af7d8f296f7f145 # 2004/06/27 23:35:26-07:00 adobriyan@mail.ru +0 -0 # Delete: include/asm-m68knommu/init.h # # BitKeeper/deleted/.del-init.h~5727f9e190135cef # 2004/06/27 23:35:26-07:00 adobriyan@mail.ru +0 -0 # Delete: include/asm-h8300/init.h # # BitKeeper/deleted/.del-init.h~26411ad8e76d231d # 2004/06/27 23:35:26-07:00 adobriyan@mail.ru +0 -0 # Delete: include/asm-i386/init.h # # ChangeSet # 2004/06/27 23:35:21-07:00 apw@shadowen.org # [PATCH] fix GFP zone modifier interators # # For each node there are a defined list of MAX_NR_ZONES zones. These are # selected as a result of the __GFP_DMA and __GFP_HIGHMEM zone modifier flags # being passed to the memory allocator as part of the GFP mask. Each node # has a set of zone lists, node_zonelists, which defines the list and order # of zones to scan for each flag combination. When initialising these lists # we iterate over modifier combinations 0 .. MAX_NR_ZONES. However, this is # only correct when there are at most ZONES_SHIFT flags. If another flag is # introduced zonelists for it would not be initialised. # # This patch introduces GFP_ZONETYPES (based on GFP_ZONEMASK) as a bound for # the number of modifier combinations. # # Signed-off-by: Andy Whitcroft # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/page_alloc.c # 2004/06/27 17:28:54-07:00 apw@shadowen.org +4 -4 # fix GFP zone modifier interators # # include/linux/mmzone.h # 2004/06/27 17:28:54-07:00 apw@shadowen.org +28 -1 # fix GFP zone modifier interators # # ChangeSet # 2004/06/27 23:35:10-07:00 alan@redhat.com # [PATCH] vc locking # # Like a few other drivers the vc driver is doing unlocked careless # references to file offsets. Its got kind of 2.2 locking that hasnt been # updated in the lseek function so someone at least tried. # # Fortunately we have a real lock for this and can just make lseek use that # too. # # The 'assume 64bit load is atomic' bug seems to be very widely spread # # akpm@osdl.org: # # Move declarations to vt_kern.h # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/vt_kern.h # 2004/06/27 17:28:39-07:00 alan@redhat.com +9 -0 # vc locking # # drivers/char/vt.c # 2004/06/27 17:28:39-07:00 alan@redhat.com +0 -1 # vc locking # # drivers/char/vc_screen.c # 2004/06/27 17:28:39-07:00 alan@redhat.com +10 -13 # vc locking # # ChangeSet # 2004/06/27 23:34:58-07:00 eger@havoc.gtf.org # [PATCH] radeonfb accel capabilities # # Here's the accel capabilities patch for radeonfb. It updates radeonfb to # advertise its acceleration capabilities via fbinfo.flags. I've tested this # on my box, and it gives me a nice fast console. # # defect: "$ fbset -accel 0" doesn't work for radeonfb -- disabling accel # will only work from the kernel command line :-/ # # Cc: Benjamin Herrenschmidt # Signed-off-by: David Eger # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/video/aty/radeonfb.h # 2004/06/27 17:28:36-07:00 eger@havoc.gtf.org +0 -6 # radeonfb accel capabilities # # drivers/video/aty/radeon_pm.c # 2004/06/27 17:28:36-07:00 eger@havoc.gtf.org +1 -1 # radeonfb accel capabilities # # drivers/video/aty/radeon_base.c # 2004/06/27 17:28:36-07:00 eger@havoc.gtf.org +14 -21 # radeonfb accel capabilities # # drivers/video/aty/radeon_accel.c # 2004/06/27 17:28:36-07:00 eger@havoc.gtf.org +2 -2 # radeonfb accel capabilities # # ChangeSet # 2004/06/27 23:34:47-07:00 zwane@linuxpower.ca # [PATCH] Fix smbfs readdir oops # # This has been reported a couple of times and is consistently causing some # folks grief, so Urban, would you mind terribly if i send this patch to at # least clear current bug reports. If there is additional stuff you want # ontop of this let me know and i can send a follow up patch. # # The bug is that at times we haven't completed setting up the smb_ops so we # have a temporary 'null' ops in place until the connection is completely up. # With this setup it's possible to hit ->readdir() whilst the null ops are # still in place, so we put the process to sleep until the connection setup # is complete and then call the real ->readdir(). # # This patch addresses the bugzilla report at # http://bugzilla.kernel.org/show_bug.cgi?id=1671 # # Signed-off-by: Zwane Mwaikambo # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/smb_fs_sb.h # 2004/06/27 17:28:36-07:00 zwane@linuxpower.ca +2 -1 # Fix smbfs readdir oops # # fs/smbfs/proc.c # 2004/06/27 17:28:36-07:00 zwane@linuxpower.ca +42 -2 # Fix smbfs readdir oops # # fs/smbfs/inode.c # 2004/06/27 17:28:36-07:00 zwane@linuxpower.ca +1 -0 # Fix smbfs readdir oops # # ChangeSet # 2004/06/27 23:34:36-07:00 akpm@osdl.org # [PATCH] x86 stack dump fixes # # - Fix the !CONFIG_FRAME_POINTER && !CONFIG_KALLSYMS output formatting. # # - Make print_context_stack() static # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/kernel/traps.c # 2004/06/27 17:27:21-07:00 akpm@osdl.org +5 -4 # x86 stack dump fixes # # ChangeSet # 2004/06/27 23:34:24-07:00 apw@shadowen.org # [PATCH] ia32: fix deadlocks when oopsing while mmap_sem is held # # If a fault in the kernel leads to an unexpected protection fault whilst in # a code path which holds mmap_sem we will deadlock in do_page_fault() while # trying to classify the fault. By carefully testing the source of the fault # we can detect and OOPS on the vast majority of these, greatly enhancing # diagnosis of such bugs. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/mm/fault.c # 2004/06/27 17:27:20-07:00 apw@shadowen.org +21 -1 # ia32: fix deadlocks when oopsing while mmap_sem is held # # ChangeSet # 2004/06/27 23:34:13-07:00 jhf@rivenstone.net # [PATCH] ppc32: command_line_size build fix # # We need setup.h for COMMAND_LINE_SIZE. # # Signed-off-by: Joseph Fannin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ppc/machdep.h # 2004/06/27 17:27:18-07:00 jhf@rivenstone.net +2 -0 # ppc32: command_line_size build fix # # ChangeSet # 2004/06/27 20:37:27-07:00 davem@nuts.davemloft.net # [NET]: Fix SO_{RCV,SND}TIMEO getsockopt handling. # # A microsecond is 1 millionth of a second not # 1 thousandth of a second. # # Noticed by Markus Mottl # # Signed-off-by: David S. Miller # # net/core/sock.c # 2004/06/27 20:37:01-07:00 davem@nuts.davemloft.net +2 -2 # [NET]: Fix SO_{RCV,SND}TIMEO getsockopt handling. # # A microsecond is 1 millionth of a second not # 1 thousandth of a second. # # Noticed by Markus Mottl # # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/27 20:34:23-07:00 bunk@fs.tum.de # [NET]: Kill spurious ifndef in net/ip.h # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # include/net/ip.h # 2004/06/27 20:34:09-07:00 bunk@fs.tum.de +0 -3 # [NET]: Kill spurious ifndef in net/ip.h # # Signed-off-by: Adrian Bunk # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/27 14:20:23-07:00 davem@nuts.davemloft.net # [SPARC64]: No longer set WANT_PAGE_VIRTUAL. # # Also uninline pfn_to_page and page_to_pfn. # Struct page is now 8 bytes smaller. # # include/asm-sparc64/page.h # 2004/06/27 14:19:58-07:00 davem@nuts.davemloft.net +6 -9 # [SPARC64]: No longer set WANT_PAGE_VIRTUAL. # # Also uninline pfn_to_page and page_to_pfn. # Struct page is now 8 bytes smaller. # # include/asm-sparc64/io.h # 2004/06/27 14:19:58-07:00 davem@nuts.davemloft.net +2 -2 # [SPARC64]: No longer set WANT_PAGE_VIRTUAL. # # Also uninline pfn_to_page and page_to_pfn. # Struct page is now 8 bytes smaller. # # arch/sparc64/mm/init.c # 2004/06/27 14:19:58-07:00 davem@nuts.davemloft.net +12 -2 # [SPARC64]: No longer set WANT_PAGE_VIRTUAL. # # Also uninline pfn_to_page and page_to_pfn. # Struct page is now 8 bytes smaller. # # arch/sparc64/kernel/sparc64_ksyms.c # 2004/06/27 14:19:58-07:00 davem@nuts.davemloft.net +2 -0 # [SPARC64]: No longer set WANT_PAGE_VIRTUAL. # # Also uninline pfn_to_page and page_to_pfn. # Struct page is now 8 bytes smaller. # # arch/sparc64/kernel/smp.c # 2004/06/27 14:19:58-07:00 davem@nuts.davemloft.net +10 -8 # [SPARC64]: No longer set WANT_PAGE_VIRTUAL. # # Also uninline pfn_to_page and page_to_pfn. # Struct page is now 8 bytes smaller. # # ChangeSet # 2004/06/27 11:17:10-07:00 sfr@canb.auug.org.au # [PATCH] PPC64 iSeries fails to boot # # Jeremy Katz of Red Hat reported that his iSeries machine would not boot # with 2.6.7 based kernels. # # It appears that with the inclusion of Paul Mackerras' patch "Optimize # exception/syscall entry/exit" a small previous patch got reverted. Here # is that patch again. The lack of this patch does not stop all iSeries # machines booting, but it does stop some. # # Signed-off-by: Stephen Rothwell # Signed-off-by: Linus Torvalds # # arch/ppc64/kernel/head.S # 2004/06/27 03:22:13-07:00 sfr@canb.auug.org.au +3 -0 # PPC64 iSeries fails to boot # # ChangeSet # 2004/06/27 11:04:19-07:00 akpm@osdl.org # [PATCH] affs_setattr() retval fix # # affs is failing to propagate the inode_setattr() return value. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/affs/inode.c # 2004/06/27 00:19:40-07:00 akpm@osdl.org +1 -1 # affs_setattr() retval fix # # ChangeSet # 2004/06/27 11:04:07-07:00 akpm@osdl.org # [PATCH] ncpfs_setattr() retval fix # # ncpfs is failing to propagate the inode_setattr return value. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/ncpfs/inode.c # 2004/06/27 00:19:40-07:00 akpm@osdl.org +8 -2 # ncpfs_setattr() retval fix # # ChangeSet # 2004/06/27 11:03:56-07:00 akpm@osdl.org # [PATCH] cifs_setattr() retval fix # # CIFS is failing to propagate the inode_setattr() return value. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/cifs/inode.c # 2004/06/27 00:19:39-07:00 akpm@osdl.org +2 -1 # cifs_setattr() retval fix # # ChangeSet # 2004/06/27 11:03:45-07:00 akpm@osdl.org # [PATCH] jfs_setattr() fix # # jfs is dropping inode_setattr()'s return value. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/jfs/acl.c # 2004/06/27 00:19:39-07:00 akpm@osdl.org +2 -2 # jfs_setattr() fix # # ChangeSet # 2004/06/27 11:03:33-07:00 akpm@osdl.org # [PATCH] reiserfs_setattr retval fix # # reiserfs() is also dropping inode_setattr() retvals on the floor. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/reiserfs/inode.c # 2004/06/27 00:19:39-07:00 akpm@osdl.org +1 -1 # reiserfs_setattr retval fix # # ChangeSet # 2004/06/27 11:03:22-07:00 akpm@osdl.org # [PATCH] ext2_setattr retval fix # # ext2_setattr() drops the inode_setattr() return value on the floor. This is # very bad - I/O errors during truncate are lost. # # The patch changes ext2_setattr() so that we no longer call ext2_acl_chmod() if # inode_setattr(), which is what ext3 does. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/ext2/inode.c # 2004/06/27 00:19:39-07:00 akpm@osdl.org +2 -2 # ext2_setattr retval fix # # ChangeSet # 2004/06/27 11:03:11-07:00 hugh@veritas.com # [PATCH] Don't hold i_sem on swapfiles # # We permanently hold the i_sem of swapfiles so that nobody can addidentally # ftruncate them, causing subsequent filesystem destruction. # # Problem is, it's fairly easy for things like backup applications to get # stuck onthe swapfile, sleeping until someone does a swapoff. # # So take all that out again and add a new S_SWAPFILE inode flag. Test that # in the truncate path and refuse to truncate an in-use swapfile. # # Synchronisation between swapon and truncate is via i_sem. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/swapfile.c # 2004/06/27 00:19:38-07:00 hugh@veritas.com +15 -4 # Don't hold i_sem on swapfiles # # mm/memory.c # 2004/06/27 00:19:38-07:00 hugh@veritas.com +10 -2 # Don't hold i_sem on swapfiles # # include/linux/fs.h # 2004/06/27 00:19:38-07:00 hugh@veritas.com +2 -0 # Don't hold i_sem on swapfiles # # ChangeSet # 2004/06/27 11:03:00-07:00 rmk+lkml@arm.linux.org.uk # [PATCH] ARM COMMAND_LINE_SIZE build fix # # Rework the declaration, sizing and memcpying of saved_command_line[] so # that ARM doesn't need to implement unwelcome header file nestings. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # init/main.c # 2004/06/27 00:19:38-07:00 rmk+lkml@arm.linux.org.uk +1 -0 # ARM COMMAND_LINE_SIZE build fix # # include/linux/init.h # 2004/06/27 00:19:38-07:00 rmk+lkml@arm.linux.org.uk +1 -2 # ARM COMMAND_LINE_SIZE build fix # # arch/x86_64/kernel/setup.c # 2004/06/27 00:19:38-07:00 rmk+lkml@arm.linux.org.uk +1 -0 # ARM COMMAND_LINE_SIZE build fix # # arch/x86_64/kernel/head64.c # 2004/06/27 00:19:38-07:00 rmk+lkml@arm.linux.org.uk +1 -0 # ARM COMMAND_LINE_SIZE build fix # # arch/v850/kernel/setup.c # 2004/06/27 00:19:38-07:00 rmk+lkml@arm.linux.org.uk +3 -2 # ARM COMMAND_LINE_SIZE build fix # # arch/sparc64/kernel/setup.c # 2004/06/27 00:19:38-07:00 rmk+lkml@arm.linux.org.uk +1 -0 # ARM COMMAND_LINE_SIZE build fix # # arch/sparc/kernel/setup.c # 2004/06/27 00:19:38-07:00 rmk+lkml@arm.linux.org.uk +1 -0 # ARM COMMAND_LINE_SIZE build fix # # arch/sh/kernel/setup.c # 2004/06/27 00:19:38-07:00 rmk+lkml@arm.linux.org.uk +1 -0 # ARM COMMAND_LINE_SIZE build fix # # arch/ppc64/kernel/setup.c # 2004/06/27 00:19:38-07:00 rmk+lkml@arm.linux.org.uk +2 -1 # ARM COMMAND_LINE_SIZE build fix # # arch/ppc/kernel/setup.c # 2004/06/27 00:19:38-07:00 rmk+lkml@arm.linux.org.uk +1 -1 # ARM COMMAND_LINE_SIZE build fix # # arch/parisc/kernel/setup.c # 2004/06/27 00:19:38-07:00 rmk+lkml@arm.linux.org.uk +1 -0 # ARM COMMAND_LINE_SIZE build fix # # arch/mips/kernel/setup.c # 2004/06/27 00:19:38-07:00 rmk+lkml@arm.linux.org.uk +2 -1 # ARM COMMAND_LINE_SIZE build fix # # arch/m68knommu/kernel/setup.c # 2004/06/27 00:19:38-07:00 rmk+lkml@arm.linux.org.uk +2 -2 # ARM COMMAND_LINE_SIZE build fix # # arch/ia64/kernel/setup.c # 2004/06/27 00:19:38-07:00 rmk+lkml@arm.linux.org.uk +2 -1 # ARM COMMAND_LINE_SIZE build fix # # arch/h8300/kernel/setup.c # 2004/06/27 00:19:38-07:00 rmk+lkml@arm.linux.org.uk +2 -2 # ARM COMMAND_LINE_SIZE build fix # # arch/cris/kernel/setup.c # 2004/06/27 00:19:38-07:00 rmk+lkml@arm.linux.org.uk +2 -0 # ARM COMMAND_LINE_SIZE build fix # # arch/alpha/kernel/setup.c # 2004/06/27 00:19:38-07:00 rmk+lkml@arm.linux.org.uk +1 -0 # ARM COMMAND_LINE_SIZE build fix # # ChangeSet # 2004/06/27 11:02:48-07:00 akpm@osdl.org # [PATCH] ext3: direct-io transaction extending fix # # ext3_direct_io_get_blocks() is misinterpreting the return value from # ext3_journal_extend(), and is consequently running out of buffer credits and # going BUG on tremendously large direct-io writes. Fix that up. # # Also, I note that the really large direct-io writes can hold a transaction # open for the entire duration, which can be minutes. This violates ext3's # attempt to commit data at regular intervals. Fix that up by looking at the # transaction state: if it's T_LOCKED, shut off the current handle so the # pending commit can complete. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/ext3/inode.c # 2004/06/27 00:19:38-07:00 akpm@osdl.org +22 -6 # ext3: direct-io transaction extending fix # # ChangeSet # 2004/06/27 11:02:37-07:00 akpm@osdl.org # [PATCH] lock ordering comment update # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/filemap.c # 2004/06/27 00:19:37-07:00 akpm@osdl.org +8 -0 # lock ordering comment update # # ChangeSet # 2004/06/27 11:02:26-07:00 juhl-lkml@dif.dk # [PATCH] cpufreq_delayed_get() inlining fix # # Here's a patch to reorder timer_tsc.c so gcc 3.4 does not fail to inline # and thus fix the warning "arch/i386/kernel/timers/timer_tsc.c:30: warning: # inlining failed in call to 'cpufreq_delayed_get': function body not # available" # # Signed-off-by: Jesper Juhl # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/kernel/timers/timer_tsc.c # 2004/06/27 00:19:37-07:00 juhl-lkml@dif.dk +117 -115 # cpufreq_delayed_get() inlining fix # # ChangeSet # 2004/06/27 11:02:14-07:00 hugh@veritas.com # [PATCH] anon_vma list locking bug # # Vladimir Saveliev reported anon_vma_unlink list_del BUG (LKML 24 June). # His testing is still in progress, but we believe it comes from a nasty # locking deficiency I introduced in 2.6.7's anon_vma_prepare. # # Andrea's original anon_vma_prepare was fine, it needed no anon_vma lock # because it was always linking a freshly allocated structure; but my # find_mergeable enhancement let it adopt a neighbouring anon_vma, which of # course needs locking against a racing linkage from another mm - which the # earlier adjust_vma fix seems to have made more likely. # # Does anon_vma->lock nest inside or outside page_table_lock? Inside, but # that's not obvious without a lock ordering list: instead of listing the # order here, update the list in filemap.c; but a separate patch because # that's less urgent and more likely to get wrong or provoke controversy. # # (Could do it with anon_vma lock after dropping page_table_lock, but a long # comment explaining why some code is safe suggests it's not.) # # Signed-off-by: Hugh Dickins # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/rmap.c # 2004/06/27 00:19:37-07:00 hugh@veritas.com +8 -7 # anon_vma list locking bug # # ChangeSet # 2004/06/27 11:02:03-07:00 lcapitulino@prefeitura.sp.gov.br # [PATCH] drivers/char/ipmi/ipmi_si_intf.c warnings # # drivers/char/ipmi/ipmi_si_intf.c: In function `acpi_gpe_irq_setup': # drivers/char/ipmi/ipmi_si_intf.c:1173: warning: passing arg 4 of `acpi_install_gpe_handler' from incompatible pointer type # drivers/char/ipmi/ipmi_si_intf.c: In function `acpi_gpe_irq_cleanup': # drivers/char/ipmi/ipmi_si_intf.c:1193: warning: passing arg 3 of `acpi_remove_gpe_handler' from incompatible pointer type # # Signed-off-by: Luiz Capitulino # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/char/ipmi/ipmi_si_intf.c # 2004/06/27 00:19:37-07:00 lcapitulino@prefeitura.sp.gov.br +2 -1 # drivers/char/ipmi/ipmi_si_intf.c warnings # # ChangeSet # 2004/06/27 11:01:52-07:00 pavel@ucw.cz # [PATCH] swsusp.S: meaningful assembly labels # # This introduces meaningfull labels instead of .L1234, meaning code is # readable, kills alignment where unneccessary, and kills TLB flush that was # only pure paranoia (and slows it down a lot on emulated systems). # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/power/swsusp.S # 2004/06/27 00:19:37-07:00 pavel@ucw.cz +12 -15 # swsusp.S: meaningful assembly labels # # ChangeSet # 2004/06/27 11:01:41-07:00 bart@samwel.tk # [PATCH] Laptop mode control script improvements # # From: Herve Eychenne # # Clean up the script. This also makes it two times faster. (Thanks to # Herve Eychenne.) # # - moved variable definitions to the top, for easier configuration # - the script contains bashisms, so make it /bin/bash # - use sed -e'...' -e '...' instead of sed | sed # - avoid subshells: () changed to {} # - various other minor optimizations and improvements # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # Documentation/laptop-mode.txt # 2004/06/27 00:19:36-07:00 bart@samwel.tk +118 -123 # Laptop mode control script improvements # # ChangeSet # 2004/06/27 11:01:30-07:00 akpm@osdl.org # [PATCH] inodes_stat.nr_unused fix # # __sync_single_inode() is forgetting to increment inodes_stat.nr_unused when # moving a previously-dirty inode onto the inode_unused list. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/fs-writeback.c # 2004/06/27 00:19:36-07:00 akpm@osdl.org +1 -0 # inodes_stat.nr_unused fix # # ChangeSet # 2004/06/27 11:01:19-07:00 bart@samwel.tk # [PATCH] laptop-mode documentation update # # The laptop mode docs don't say that no kernel configuration changes are # needed to use laptop mode. That's caused some people to look for the # option. This patch makes the doc explicitly mention the lack of an option. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # Documentation/laptop-mode.txt # 2004/06/27 00:19:36-07:00 bart@samwel.tk +10 -8 # laptop-mode documentation update # # ChangeSet # 2004/06/27 11:01:08-07:00 paulkf@microgate.com # [PATCH] ppp_generic.c get_filter made conditional # # Add #ifdef CONFIG_PPP_FILTER around get_filter implementation which is only # used when this option is enabled. This prevents compiler warning (unused # function) when CONFIG_PPP_FILTER is not defined. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/net/ppp_generic.c # 2004/06/27 00:19:36-07:00 paulkf@microgate.com +2 -0 # ppp_generic.c get_filter made conditional # # ChangeSet # 2004/06/27 11:00:57-07:00 dhowells@redhat.com # [PATCH] missing semicolon in 2.6.7 VIODASD driver # # There appears to be a missing semicolon in the VIODASD driver in 2.6.7. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/block/viodasd.c # 2004/06/27 00:19:35-07:00 dhowells@redhat.com +1 -1 # missing semicolon in 2.6.7 VIODASD driver # # ChangeSet # 2004/06/27 11:00:45-07:00 mbligh@aracnet.com # [PATCH] fix NUMA boundaray between ZONE_NORMAL and HIGHMEM # # From: Andy Whitcroft # # This patch eliminates the false hole which can form between ZONE_NORMAL and # ZONE_HIGHMEM. This is most easily seen when 4g/4g split is enabled, but # it's always broken, and we just happen not to hit it most of the time. # Basically, the patch changes the allocation of the numa remaps regions (the # source of the holes) such that they officially fall within VMALLOC space, # where they belong. # # Tested in -mjb for a couple of months, and again against 2.6.7-mm1. # # Signed-off-by: Andy Whitcroft # Signed-off-by: Martin J. Bligh # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/memory.c # 2004/06/27 00:19:35-07:00 mbligh@aracnet.com +9 -0 # fix NUMA boundaray between ZONE_NORMAL and HIGHMEM # # include/linux/mm.h # 2004/06/27 00:19:35-07:00 mbligh@aracnet.com +1 -0 # fix NUMA boundaray between ZONE_NORMAL and HIGHMEM # # include/asm-i386/pgtable.h # 2004/06/27 00:19:35-07:00 mbligh@aracnet.com +2 -2 # fix NUMA boundaray between ZONE_NORMAL and HIGHMEM # # arch/i386/mm/discontig.c # 2004/06/27 00:19:35-07:00 mbligh@aracnet.com +14 -4 # fix NUMA boundaray between ZONE_NORMAL and HIGHMEM # # ChangeSet # 2004/06/27 11:00:34-07:00 kenneth.w.chen@intel.com # [PATCH] Fix direct I/O into hugetlb page # # Hit a kernel oops on 2.6.7 kernel when doing direct I/O to hugetlb page. # # The destructor of compound page was moved into page->mapping since 2.6.6. # It got interfered with set_page_dirty() for hugetlb page: an O_DIRECT read # into first tail page of the compound page will fool set_page_dirty() to # deference page->mapping->a_ops and then kernel oops. Patch to fix the # oops. We do just like what bio_set_pages_dirty() does. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/direct-io.c # 2004/06/27 00:19:35-07:00 kenneth.w.chen@intel.com +1 -1 # Fix direct I/O into hugetlb page # # ChangeSet # 2004/06/27 11:00:23-07:00 pazke@donpac.ru # [PATCH] crc: use it in AX.25 drivers # # This patch makes AX.25 drivers use common crc16 code. # # Signed-off-by: Andrey Panin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/net/hamradio/hdlcdrv.c # 2004/06/27 00:19:35-07:00 pazke@donpac.ru +3 -44 # crc: use it in AX.25 drivers # # drivers/net/hamradio/baycom_epp.c # 2004/06/27 00:19:35-07:00 pazke@donpac.ru +3 -45 # crc: use it in AX.25 drivers # # drivers/net/hamradio/Kconfig # 2004/06/27 00:19:35-07:00 pazke@donpac.ru +4 -0 # crc: use it in AX.25 drivers # # ChangeSet # 2004/06/27 11:00:12-07:00 pazke@donpac.ru # [PATCH] crc: use it in ISDN drivers # # This patch makes various ISDN drivers use common crc16 code. # # Signed-off-by: Andrey Panin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/isdn/tpam/tpam_crcpc.c # 2004/06/27 00:19:34-07:00 pazke@donpac.ru +4 -38 # crc: use it in ISDN drivers # # drivers/isdn/tpam/Kconfig # 2004/06/27 00:19:34-07:00 pazke@donpac.ru +1 -0 # crc: use it in ISDN drivers # # drivers/isdn/hisax/st5481_hdlc.c # 2004/06/27 00:19:34-07:00 pazke@donpac.ru +4 -44 # crc: use it in ISDN drivers # # drivers/isdn/hisax/netjet.c # 2004/06/27 00:19:34-07:00 pazke@donpac.ru +0 -36 # crc: use it in ISDN drivers # # drivers/isdn/hisax/isdnhdlc.c # 2004/06/27 00:19:34-07:00 pazke@donpac.ru +4 -45 # crc: use it in ISDN drivers # # drivers/isdn/hisax/Kconfig # 2004/06/27 00:19:34-07:00 pazke@donpac.ru +2 -0 # crc: use it in ISDN drivers # # ChangeSet # 2004/06/27 11:00:01-07:00 pazke@donpac.ru # [PATCH] crc: use it in IRDA drivers # # This patch makes IRDA subsystem use common crc16 code. # # Signed-off-by: Andrey Panin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # net/irda/Makefile # 2004/06/27 00:19:34-07:00 pazke@donpac.ru +1 -1 # crc: use it in IRDA drivers # # net/irda/Kconfig # 2004/06/27 00:19:34-07:00 pazke@donpac.ru +1 -0 # crc: use it in IRDA drivers # # include/net/irda/crc.h # 2004/06/27 00:19:34-07:00 pazke@donpac.ru +3 -7 # crc: use it in IRDA drivers # # BitKeeper/deleted/.del-crc.c~90b65866f46ddb3d # 2004/06/27 10:59:55-07:00 pazke@donpac.ru +0 -0 # Delete: net/irda/crc.c # # ChangeSet # 2004/06/27 10:59:49-07:00 pazke@donpac.ru # [PATCH] crc: use it in async PPP driver # # This patch makes async PPP driver use common crc16 code. # # Signed-off-by: Andrey Panin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/ppp_defs.h # 2004/06/27 00:19:34-07:00 pazke@donpac.ru +3 -1 # crc: use it in async PPP driver # # drivers/net/ppp_async.c # 2004/06/27 00:19:34-07:00 pazke@donpac.ru +1 -37 # crc: use it in async PPP driver # # drivers/net/Kconfig # 2004/06/27 00:19:34-07:00 pazke@donpac.ru +1 -0 # crc: use it in async PPP driver # # ChangeSet # 2004/06/27 10:59:38-07:00 pazke@donpac.ru # [PATCH] crc: add common CRC16 module # # Currently we have 8 copies of CRC16 calculation table in different device # drivers, this patch creates common crc16.c module to replace them. # # Signed-off-by: Andrey Panin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # lib/crc16.c # 2004/06/27 00:19:34-07:00 pazke@donpac.ru +69 -0 # crc: add common CRC16 module # # include/linux/crc16.h # 2004/06/27 00:19:34-07:00 pazke@donpac.ru +15 -0 # crc: add common CRC16 module # # lib/crc16.c # 2004/06/27 00:19:34-07:00 pazke@donpac.ru +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/lib/crc16.c # # lib/Makefile # 2004/06/27 00:19:34-07:00 pazke@donpac.ru +1 -0 # crc: add common CRC16 module # # lib/Kconfig # 2004/06/27 00:19:34-07:00 pazke@donpac.ru +9 -0 # crc: add common CRC16 module # # include/linux/crc16.h # 2004/06/27 00:19:34-07:00 pazke@donpac.ru +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/linux/crc16.h # # ChangeSet # 2004/06/27 10:59:26-07:00 arjanv@redhat.com # [PATCH] Permit root to choose vfat policy to UTF8 # # Right now the kernel detects the sysadmin trying to set the iocharset of # vfat to UTF8 and prevents this with an error. While I can see that this is # not recommended, enforcing this is policy that probably doesn't belong in # the kernel. The patch below makes this situation a warning and a # recommendation instead of a strong blockage. # # https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=126641 # # is an example of a sysadmin disliking this policy enforcement. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/fat/inode.c # 2004/06/27 00:19:33-07:00 arjanv@redhat.com +2 -3 # Permit root to choose vfat policy to UTF8 # # ChangeSet # 2004/06/27 10:59:15-07:00 juhl-lkml@dif.dk # [PATCH] tidy up the identify_cpu() output # # Here's a patch to line up the "CPU: After * identify, caps:" messages # produced by printk's in arch/i386/kernel/cpu/common.c # # Signed-off-by: Jesper Juhl # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/kernel/cpu/common.c # 2004/06/27 00:19:33-07:00 juhl-lkml@dif.dk +3 -3 # tidy up the identify_cpu() output # # ChangeSet # 2004/06/27 10:59:04-07:00 sds@epoch.ncsc.mil # [PATCH] SELinux: fix build with CONFIG_SECURITY_NETWORK=n # # SELinux should just drop out the socket and netfilter hooks when that is # disabled. # # The problem was introduced because of the fine-grained netlink patches, # which made the selinux_netlink_send/recv hook functions depend on # CONFIG_SECURITY_NETWORK but the netlink_send/recv hooks themselves are not # dependent on it. # # Need to move selinux_netlink_send/recv back out of the conditional block, # and provide a static inline stub for selinux_nlmsg_perm if # CONFIG_SECURITY_NETWORK is not defined. # # Signed-off-by: Stephen Smalley # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # security/selinux/hooks.c # 2004/06/27 00:19:33-07:00 sds@epoch.ncsc.mil +29 -22 # SELinux: fix build with CONFIG_SECURITY_NETWORK=n # # ChangeSet # 2004/06/27 10:58:53-07:00 akpm@osdl.org # [PATCH] i386: uninline memmove # # Using current gcc CVS I hit a piece of code in which the compiler was emitting # a memmove() call. The kernel link failed. # # Uninline it. # # Also, move the memcpy and memset exports into memcpy.c. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-i386/string.h # 2004/06/27 00:19:33-07:00 akpm@osdl.org +1 -18 # i386: uninline memmove # # arch/i386/lib/memcpy.c # 2004/06/27 00:19:33-07:00 akpm@osdl.org +27 -2 # i386: uninline memmove # # arch/i386/kernel/i386_ksyms.c # 2004/06/27 00:19:33-07:00 akpm@osdl.org +1 -7 # i386: uninline memmove # # ChangeSet # 2004/06/27 10:58:41-07:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: allow user to set NFSv4 lease time. # # Allow the lease to be set from /proc/fs/nfs/nfsv4leasetime. # # To comply with rfc3530, this appears as a server reboot from the point of view # of the client, which must reclaim state with the grace period. # # From: Andy Adamson # Signed-off-by: J. Bruce Fields # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/nfsd/state.h # 2004/06/27 00:19:33-07:00 neilb@cse.unsw.edu.au +14 -1 # knfsd: allow user to set NFSv4 lease time. # # include/linux/nfsd/nfsd.h # 2004/06/27 00:19:33-07:00 neilb@cse.unsw.edu.au +5 -1 # knfsd: allow user to set NFSv4 lease time. # # fs/nfsd/nfsctl.c # 2004/06/27 00:19:33-07:00 neilb@cse.unsw.edu.au +30 -1 # knfsd: allow user to set NFSv4 lease time. # # fs/nfsd/nfs4state.c # 2004/06/27 00:19:33-07:00 neilb@cse.unsw.edu.au +209 -13 # knfsd: allow user to set NFSv4 lease time. # # fs/nfsd/nfs4proc.c # 2004/06/27 00:19:33-07:00 neilb@cse.unsw.edu.au +5 -4 # knfsd: allow user to set NFSv4 lease time. # # ChangeSet # 2004/06/27 10:58:30-07:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: improve cleaning up of nfsd4 requests # # Currently nfs4_arg->to_free keeps a list of void ptrs on which kfree is called # when freeing the nfs4_arg. This allows us to do cleanup on e.g. xdr decode # failures. To allow more complicated objects to be freed (in particular, # acls), we add a "void (*release)(void *)" to allow us to request something # other than kfree be called when freeing. # # Signed-off-by: J. Bruce Fields # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/nfsd/xdr4.h # 2004/06/27 00:19:32-07:00 neilb@cse.unsw.edu.au +2 -0 # knfsd: improve cleaning up of nfsd4 requests # # fs/nfsd/nfs4xdr.c # 2004/06/27 00:19:32-07:00 neilb@cse.unsw.edu.au +43 -25 # knfsd: improve cleaning up of nfsd4 requests # # fs/nfsd/nfs4proc.c # 2004/06/27 00:19:32-07:00 neilb@cse.unsw.edu.au +1 -14 # knfsd: improve cleaning up of nfsd4 requests # # ChangeSet # 2004/06/27 10:58:19-07:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: parse nsfd4 callback information # # Preparation for delegations: parse callback information provided in # setclientid request. # # From: Andy Adamson # Signed-off-by: J. Bruce Fields # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/nfsd/state.h # 2004/06/27 00:19:32-07:00 neilb@cse.unsw.edu.au +18 -0 # knfsd: parse nsfd4 callback information # # fs/nfsd/nfs4state.c # 2004/06/27 00:19:32-07:00 neilb@cse.unsw.edu.au +93 -1 # knfsd: parse nsfd4 callback information # # ChangeSet # 2004/06/27 10:58:08-07:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: nfsd4 lockowner fixes # # Insist that the first time a client presents a new lockowner, the seqid should # be 0. (RFC 3530 section 8.1.5) # # Also, return an error if the client presents a previously-used lockowner as if # it were new. # # From: 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/nfs4state.c # 2004/06/27 00:19:32-07:00 neilb@cse.unsw.edu.au +14 -8 # knfsd: nfsd4 lockowner fixes # # ChangeSet # 2004/06/27 10:57:57-07:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: reduce stack usage in nfsd4 # # nfsd4_proc_compound is using over a thousand bytes of stack. # # This is partly because it declares two local svc_fh's, partly because of a big # switch statement which calls a bunch of functions which may be inlined. # # Signed-off-by: J. Bruce Fields # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/nfsd/nfs4proc.c # 2004/06/27 00:19:32-07:00 neilb@cse.unsw.edu.au +48 -37 # knfsd: reduce stack usage in nfsd4 # # ChangeSet # 2004/06/27 10:57:46-07:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: delete an obsolete comment from nfsd rpc code # # Signed-off-by: J. Bruce Fields # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # net/sunrpc/svcsock.c # 2004/06/27 00:19:31-07:00 neilb@cse.unsw.edu.au +0 -1 # knfsd: delete an obsolete comment from nfsd rpc code # # ChangeSet # 2004/06/27 10:57:35-07:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: simplify nfsd4_release_lockowner # # Simplify nfsd4_release_lockowner a bit, factor out code that we need for # another patch. # # Signed-off-by: J. Bruce Fields # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/nfsd/nfs4state.c # 2004/06/27 00:19:31-07:00 neilb@cse.unsw.edu.au +33 -22 # knfsd: simplify nfsd4_release_lockowner # # ChangeSet # 2004/06/27 10:57:23-07:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: simplify nfsd4 name encoding. # # Use opaque xdr encoding routines from xdr.c instead of rolling our own. # # 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 # 2004/06/27 00:19:31-07:00 neilb@cse.unsw.edu.au +2 -12 # knfsd: simplify nfsd4 name encoding. # # ChangeSet # 2004/06/27 10:57:12-07:00 neilb@cse.unsw.edu.au # [PATCH] knfsd: mark NFS/TCP server not EXPERIMENTAL # # From: Greg Banks # # NFS/TCP has been used widely for a long time now, and is now enabled by many # distros and typically recommended for lossy or congested networks. This patch # removes the EXPERIMENTAL tag, updates the help text, and changes arch # defconfigs to set it by default (note that several already did so). # # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/Kconfig # 2004/06/27 00:19:31-07:00 neilb@cse.unsw.edu.au +6 -4 # knfsd: mark NFS/TCP server not EXPERIMENTAL # # arch/s390/defconfig # 2004/06/27 00:19:31-07:00 neilb@cse.unsw.edu.au +1 -1 # knfsd: mark NFS/TCP server not EXPERIMENTAL # # arch/ppc/defconfig # 2004/06/27 00:19:31-07:00 neilb@cse.unsw.edu.au +1 -1 # knfsd: mark NFS/TCP server not EXPERIMENTAL # # arch/ia64/defconfig # 2004/06/27 00:19:31-07:00 neilb@cse.unsw.edu.au +1 -1 # knfsd: mark NFS/TCP server not EXPERIMENTAL # # arch/i386/defconfig # 2004/06/27 00:19:31-07:00 neilb@cse.unsw.edu.au +1 -1 # knfsd: mark NFS/TCP server not EXPERIMENTAL # # arch/alpha/defconfig # 2004/06/27 00:19:31-07:00 neilb@cse.unsw.edu.au +1 -1 # knfsd: mark NFS/TCP server not EXPERIMENTAL # # ChangeSet # 2004/06/27 10:57:00-07:00 kenneth.w.chen@intel.com # [PATCH] per node huge page stats in sysfs # # It adds per node huge page stats in sysfs. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/hugetlb.c # 2004/06/27 00:19:31-07:00 kenneth.w.chen@intel.com +27 -9 # per node huge page stats in sysfs # # include/linux/hugetlb.h # 2004/06/27 00:19:31-07:00 kenneth.w.chen@intel.com +2 -0 # per node huge page stats in sysfs # # drivers/base/node.c # 2004/06/27 00:19:31-07:00 kenneth.w.chen@intel.com +1 -6 # per node huge page stats in sysfs # # ChangeSet # 2004/06/27 10:56:49-07:00 Robert.Picco@hp.com # [PATCH] hpet fixes # # I eliminated the request_irq brain damage, chopped off procfs support # (didn't care for it too much in the first place and it was adopted from # rtc.c), made the check for FMODE_WRITE in hpet_open and responded to a few # other suggestions. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/miscdevice.h # 2004/06/27 00:19:30-07:00 Robert.Picco@hp.com +1 -1 # hpet fixes # # include/linux/hpet.h # 2004/06/27 00:19:30-07:00 Robert.Picco@hp.com +2 -0 # hpet fixes # # drivers/char/hpet.c # 2004/06/27 00:19:30-07:00 Robert.Picco@hp.com +14 -91 # hpet fixes # # arch/i386/kernel/time_hpet.c # 2004/06/27 00:19:30-07:00 Robert.Picco@hp.com +3 -4 # hpet fixes # # Documentation/hpet.txt # 2004/06/27 00:19:30-07:00 Robert.Picco@hp.com +3 -3 # hpet fixes # # Documentation/filesystems/proc.txt # 2004/06/27 00:19:30-07:00 Robert.Picco@hp.com +1 -1 # hpet fixes # # Documentation/devices.txt # 2004/06/27 00:19:30-07:00 Robert.Picco@hp.com +1 -0 # hpet fixes # # ChangeSet # 2004/06/27 10:56:37-07:00 pazke@donpac.ru # [PATCH] dmi_scan: port APM BIOS driver to new DMI probing # # This patch ports APM BIOS driver to new DMI probing API. # # Signed-off-by: Andrey Panin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/kernel/dmi_scan.c # 2004/06/27 00:19:30-07:00 pazke@donpac.ru +0 -324 # dmi_scan: port APM BIOS driver to new DMI probing # # arch/i386/kernel/apm.c # 2004/06/27 00:19:30-07:00 pazke@donpac.ru +316 -0 # dmi_scan: port APM BIOS driver to new DMI probing # # ChangeSet # 2004/06/27 10:56:26-07:00 pazke@donpac.ru # [PATCH] dmi_scan: remove unused ASUS K7V-RM DMI quirk # # BROKEN_ACPI_Sx flag doesn't seem to be used anywhere in the kernel, so ASUS # K7V-RM can be removed. # # Signed-off-by: Andrey Panin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/kernel/dmi_scan.c # 2004/06/27 00:19:30-07:00 pazke@donpac.ru +0 -17 # dmi_scan: remove unused ASUS K7V-RM DMI quirk # # ChangeSet # 2004/06/27 10:56:15-07:00 pazke@donpac.ru # [PATCH] dmi_scan: port powernow-k7 driver to new DMI probing # # This patch ports powernow-k7 driver to new DMI probing API. # # Signed-off-by: Andrey Panin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/kernel/dmi_scan.c # 2004/06/27 00:19:29-07:00 pazke@donpac.ru +0 -20 # dmi_scan: port powernow-k7 driver to new DMI probing # # arch/i386/kernel/cpu/cpufreq/powernow-k7.c # 2004/06/27 00:19:29-07:00 pazke@donpac.ru +27 -1 # dmi_scan: port powernow-k7 driver to new DMI probing # # ChangeSet # 2004/06/27 10:56:03-07:00 pazke@donpac.ru # [PATCH] dmi_scan: port PIIX4 SMBUS driver to new DMI probing # # This patch ports sonypi driver to new DMI probing API and removes # is_unsafe_smbus global variable. # # Signed-off-by: Andrey Panin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/i2c/busses/i2c-piix4.c # 2004/06/27 00:19:29-07:00 pazke@donpac.ru +11 -13 # dmi_scan: port PIIX4 SMBUS driver to new DMI probing # # arch/i386/kernel/dmi_scan.c # 2004/06/27 00:19:29-07:00 pazke@donpac.ru +0 -25 # dmi_scan: port PIIX4 SMBUS driver to new DMI probing # # ChangeSet # 2004/06/27 10:55:52-07:00 pazke@donpac.ru # [PATCH] dmi_scan: port sonypi driver to new DMI probing # # This patch ports sonypi driver to new DMI probing API and removes # is_sony_vaio_laptop global variable. # # Signed-off-by: Andrey Panin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-i386/system.h # 2004/06/27 00:19:29-07:00 pazke@donpac.ru +0 -1 # dmi_scan: port sonypi driver to new DMI probing # # drivers/char/sonypi.c # 2004/06/27 00:19:29-07:00 pazke@donpac.ru +15 -3 # dmi_scan: port sonypi driver to new DMI probing # # arch/i386/kernel/i386_ksyms.c # 2004/06/27 00:19:29-07:00 pazke@donpac.ru +0 -3 # dmi_scan: port sonypi driver to new DMI probing # # arch/i386/kernel/dmi_scan.c # 2004/06/27 00:19:29-07:00 pazke@donpac.ru +0 -24 # dmi_scan: port sonypi driver to new DMI probing # # ChangeSet # 2004/06/27 10:55:41-07:00 pazke@donpac.ru # [PATCH] dmi_scan: port PnP BIOS driver to new DMI probing # # This patch ports PnP BIOS driver to new DMI probing API. # # Signed-off-by: Andrey Panin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/pnp/pnpbios/core.c # 2004/06/27 00:19:29-07:00 pazke@donpac.ru +31 -1 # dmi_scan: port PnP BIOS driver to new DMI probing # # arch/i386/kernel/dmi_scan.c # 2004/06/27 00:19:29-07:00 pazke@donpac.ru +0 -24 # dmi_scan: port PnP BIOS driver to new DMI probing # # ChangeSet # 2004/06/27 10:55:31-07:00 pazke@donpac.ru # [PATCH] dmi_scan: port Acer laptop irq routing workaround to new DMI probing # # This patch moves PCI IRQ routing workaround for Acer TravelMate 360 laptop to # arch/i386/pci/irq.c and makes acer_tm360_irqrouting variable static. It also # fixes VisWs build error caused by this workaround code. # # Signed-off-by: Andrey Panin # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/pci/irq.c # 2004/06/27 00:19:28-07:00 pazke@donpac.ru +22 -1 # dmi_scan: port Acer laptop irq routing workaround to new DMI probing # # arch/i386/kernel/dmi_scan.c # 2004/06/27 00:19:28-07:00 pazke@donpac.ru +0 -22 # dmi_scan: port Acer laptop irq routing workaround to new DMI probing # # ChangeSet # 2004/06/27 10:55:19-07:00 rusty@rustcorp.com.au # [PATCH] Fix race between CONFIG_DEBUG_SLABALLOC and modules # # store_stackinfo() does an unlocked module list walk during normal runtime # which opens up a race with the module load/unload code. This can be # triggered by simply unloading and loading a module in a loop with # CONFIG_DEBUG_PAGEALLOC resulting in store_stackinfo() tripping over bad # list pointers. # # kernel_text_address doesn't take any locks, because during an OOPS we don't # want to deadlock. Rename that to __kernel_text_address, and make # kernel_text_address take the lock. # # Signed-off-by: Zwane Mwaikambo # Signed-off-by: Rusty Russell (modified) # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/module.c # 2004/06/27 00:19:28-07:00 rusty@rustcorp.com.au +13 -1 # Fix race between CONFIG_DEBUG_SLABALLOC and modules # # kernel/extable.c # 2004/06/27 00:19:28-07:00 rusty@rustcorp.com.au +14 -1 # Fix race between CONFIG_DEBUG_SLABALLOC and modules # # include/linux/module.h # 2004/06/27 00:19:28-07:00 rusty@rustcorp.com.au +8 -1 # Fix race between CONFIG_DEBUG_SLABALLOC and modules # # include/linux/kernel.h # 2004/06/27 00:19:28-07:00 rusty@rustcorp.com.au +1 -0 # Fix race between CONFIG_DEBUG_SLABALLOC and modules # # arch/x86_64/kernel/traps.c # 2004/06/27 00:19:28-07:00 rusty@rustcorp.com.au +3 -3 # Fix race between CONFIG_DEBUG_SLABALLOC and modules # # arch/um/kernel/sysrq.c # 2004/06/27 00:19:28-07:00 rusty@rustcorp.com.au +1 -1 # Fix race between CONFIG_DEBUG_SLABALLOC and modules # # arch/parisc/kernel/traps.c # 2004/06/27 00:19:28-07:00 rusty@rustcorp.com.au +1 -1 # Fix race between CONFIG_DEBUG_SLABALLOC and modules # # arch/mips/kernel/traps.c # 2004/06/27 00:19:28-07:00 rusty@rustcorp.com.au +1 -1 # Fix race between CONFIG_DEBUG_SLABALLOC and modules # # arch/m68k/kernel/traps.c # 2004/06/27 00:19:28-07:00 rusty@rustcorp.com.au +1 -1 # Fix race between CONFIG_DEBUG_SLABALLOC and modules # # arch/i386/kernel/traps.c # 2004/06/27 00:19:28-07:00 rusty@rustcorp.com.au +1 -1 # Fix race between CONFIG_DEBUG_SLABALLOC and modules # # ChangeSet # 2004/06/27 10:55:07-07:00 mbligh@aracnet.com # [PATCH] make __free_pages_bulk more comprehensible # # I find __free_pages_bulk very hard to understand ... (I was trying to mod # it for the non MAX_ORDER aligned zones, and cleaned it up first). This # should make it much more comprehensible to mortal man ... I benchmarked # the changes on the big 16x and it's no slower (actually it's about 0.5% # faster, but that's within experimental error). # # I moved the creation of mask into __free_pages_bulk from the caller - it # seems to really belong inside there. Then instead of doing wierd limbo # dances with mask, I made it use order instead where it's more intuitive. # Personally I find this makes the whole thing a damned sight easier to # understand. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/page_alloc.c # 2004/06/27 00:19:28-07:00 mbligh@aracnet.com +11 -14 # make __free_pages_bulk more comprehensible # # ChangeSet # 2004/06/27 10:54:56-07:00 coywolf@greatcn.org # [PATCH] kbuild: distclean srctree fix # # I just find a bug that ``make distclean'' cannot remove the editor backup # files and the like when using build directory. That is because the find # command is improperly searching the build directory instead of the # $(srctree) it should. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # Makefile # 2004/06/27 00:19:27-07:00 coywolf@greatcn.org +1 -1 # kbuild: distclean srctree fix # # ChangeSet # 2004/06/27 10:54:45-07:00 kaos@sgi.com # [PATCH] kallsyms: verify that System.map is stable # # Verify that linking kallsyms into vmlinux generates a stable System.map, # instead of assuming that it is stable. # # Add CONFIG_KALLSYMS_EXTRA_PASS as a temporary workaround for unstable maps, # so users can proceed while waiting for kallsyms to be fixed. # # Signed-off-by: Keith Owens # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # init/Kconfig # 2004/06/27 00:19:27-07:00 kaos@sgi.com +11 -0 # kallsyms: verify that System.map is stable # # Makefile # 2004/06/27 00:19:27-07:00 kaos@sgi.com +32 -8 # kallsyms: verify that System.map is stable # # ChangeSet # 2004/06/27 10:54:33-07:00 kaos@sgi.com # [PATCH] kallsyms: exclude kallsyms-generated symbols # # Exclude symbols added by kallsyms itself, so .tmp_kallsyms[12].S have # the same list of symbols. # # Signed-off-by: Keith Owens # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # scripts/kallsyms.c # 2004/06/27 00:19:27-07:00 kaos@sgi.com +9 -1 # kallsyms: exclude kallsyms-generated symbols # # ChangeSet # 2004/06/27 10:54:22-07:00 zwane@linuxpower.ca # [PATCH] Remove smbfs server->rcls/err # # This is a small cleanup requested by Urban, use the rcls/err in smb_request # as opposed to smb_sb_info. # # Signed-off-by: Zwane Mwaikambo # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/smb_fs_sb.h # 2004/06/27 00:19:27-07:00 zwane@linuxpower.ca +0 -3 # Remove smbfs server->rcls/err # # fs/smbfs/proc.c # 2004/06/27 00:19:27-07:00 zwane@linuxpower.ca +6 -6 # Remove smbfs server->rcls/err # # ChangeSet # 2004/06/27 10:54:11-07:00 akpm@osdl.org # [PATCH] sysfs: fill_read_buffer() fix # # This BUG_ON() triggers for `count = -EFOO' due to PAGE_SIZE being unsigned. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/sysfs/file.c # 2004/06/27 00:19:27-07:00 akpm@osdl.org +1 -1 # sysfs: fill_read_buffer() fix # # ChangeSet # 2004/06/27 10:54:00-07:00 mingo@elte.hu # [PATCH] NX (No eXecute) support for x86 # # we'd like to announce the availability of the following kernel patch: # # http://redhat.com/~mingo/nx-patches/nx-2.6.7-rc2-bk2-AE # # which makes use of the 'NX' x86 feature pioneered in AMD64 CPUs and for # which support has also been announced by Intel. (other x86 CPU vendors, # Transmeta and VIA announced support as well. Windows support for NX has # also been announced by Microsoft, for their next service pack.) The NX # feature is also being marketed as 'Enhanced Virus Protection'. This # patch makes sure Linux has full support for this hardware feature on x86 # too. # # What does this patch do? The pagetable format of current x86 CPUs does # not have an 'execute' bit. This means that even if an application maps a # memory area without PROT_EXEC, the CPU will still allow code to be # executed in this memory. This property is often abused by exploits when # they manage to inject hostile code into this memory, for example via a # buffer overflow. # # The NX feature changes this and adds a 'dont execute' bit to the PAE # pagetable format. But since the flag defaults to zero (for compatibility # reasons), all pages are executable by default and the kernel has to be # taught to make use of this bit. # # If the NX feature is supported by the CPU then the patched kernel turns # on NX and it will enforce userspace executability constraints such as a # no-exec stack and no-exec mmap and data areas. This means less chance # for stack overflows and buffer-overflows to cause exploits. # # furthermore, the patch also implements 'NX protection' for kernelspace # code: only the kernel code and modules are executable - so even # kernel-space overflows are harder (in some cases, impossible) to # exploit. Here is how kernel code that tries to execute off the stack is # stopped: # # kernel tried to access NX-protected page - exploit attempt? (uid: 500) # Unable to handle kernel paging request at virtual address f78d0f40 # printing eip: # ... # # The patch is based on a prototype NX patch written for 2.4 by Intel - # special thanks go to Suresh Siddha and Jun Nakajima @ Intel. The # existing NX support in the 64-bit x86_64 kernels has been written by # Andi Kleen and this patch is modeled after his code. # # Arjan van de Ven has also provided lots of feedback and he has # integrated the patch into the Fedora Core 2 kernel. Test rpms are # available for download at: # # http://redhat.com/~arjanv/2.6/RPMS.kernel/ # # the kernel-2.6.6-1.411 rpms have the NX patch applied. # # here's a quickstart to recompile the vanilla kernel from source with the # NX patch: # # http://redhat.com/~mingo/nx-patches/QuickStart-NX.txt # # update: # # - make the heap non-executable on PT_GNU_STACK binaries. # # - make all data mmap()s (and the heap) executable on !PT_GNU_STACK # (legacy) binaries. This has no effect on non-NX CPUs, but should be # much more compatible on NX CPUs. The only effect it has it has on # non-NX CPUs is the extra 'x' bit displayed in /proc/PID/maps. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/vmalloc.c # 2004/06/27 00:19:26-07:00 mingo@elte.hu +22 -0 # NX (No eXecute) support for x86 # # include/linux/vmalloc.h # 2004/06/27 00:19:26-07:00 mingo@elte.hu +1 -0 # NX (No eXecute) support for x86 # # include/asm-x86_64/pgtable.h # 2004/06/27 00:19:26-07:00 mingo@elte.hu +2 -2 # NX (No eXecute) support for x86 # # include/asm-i386/pgtable.h # 2004/06/27 00:19:26-07:00 mingo@elte.hu +49 -16 # NX (No eXecute) support for x86 # # include/asm-i386/pgtable-3level.h # 2004/06/27 00:19:26-07:00 mingo@elte.hu +9 -3 # NX (No eXecute) support for x86 # # include/asm-i386/page.h # 2004/06/27 00:19:26-07:00 mingo@elte.hu +4 -2 # NX (No eXecute) support for x86 # # include/asm-i386/msr.h # 2004/06/27 00:19:26-07:00 mingo@elte.hu +9 -0 # NX (No eXecute) support for x86 # # include/asm-i386/cpufeature.h # 2004/06/27 00:19:26-07:00 mingo@elte.hu +2 -0 # NX (No eXecute) support for x86 # # fs/exec.c # 2004/06/27 00:19:26-07:00 mingo@elte.hu +1 -0 # NX (No eXecute) support for x86 # # fs/binfmt_elf.c # 2004/06/27 00:19:26-07:00 mingo@elte.hu +5 -0 # NX (No eXecute) support for x86 # # arch/x86_64/mm/pageattr.c # 2004/06/27 00:19:26-07:00 mingo@elte.hu +1 -1 # NX (No eXecute) support for x86 # # arch/x86_64/kernel/module.c # 2004/06/27 00:19:26-07:00 mingo@elte.hu +1 -1 # NX (No eXecute) support for x86 # # arch/i386/mm/init.c # 2004/06/27 00:19:26-07:00 mingo@elte.hu +77 -5 # NX (No eXecute) support for x86 # # arch/i386/mm/fault.c # 2004/06/27 00:19:26-07:00 mingo@elte.hu +15 -0 # NX (No eXecute) support for x86 # # arch/i386/kernel/sysenter.c # 2004/06/27 00:19:26-07:00 mingo@elte.hu +1 -1 # NX (No eXecute) support for x86 # # arch/i386/kernel/module.c # 2004/06/27 00:19:26-07:00 mingo@elte.hu +1 -1 # NX (No eXecute) support for x86 # # arch/i386/kernel/head.S # 2004/06/27 00:19:26-07:00 mingo@elte.hu +26 -0 # NX (No eXecute) support for x86 # # arch/i386/kernel/cpu/proc.c # 2004/06/27 00:19:26-07:00 mingo@elte.hu +1 -1 # NX (No eXecute) support for x86 # # ChangeSet # 2004/06/27 10:53:48-07:00 stsp@aknet.ru # [PATCH] larger IO bitmaps # # The previous discussion was started here: # http://www.uwsg.iu.edu/hypermail/linux/kernel/0211.0/0477.html but in 2.4 # times this was kind of problematic. # # Now, with the lazy bitmap allocation and per-CPU TSS, this will really not # drain any resources I think. 8K TSS increase and 8K per process *that does # ioperm()* - I think it is not very bad. # # The reasons why I need that, are described in the URL above. Basically this # will allow to use full-screen VESA under dosemu (without LFB though), and this # may be also helpfull for the XFree project and some other projects: # # http://www.uwsg.iu.edu/hypermail/linux/kernel/9807.1/1079.html # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-x86_64/processor.h # 2004/06/27 00:19:26-07:00 stsp@aknet.ru +2 -2 # larger IO bitmaps # # include/asm-mips/processor.h # 2004/06/27 00:19:26-07:00 stsp@aknet.ru +2 -2 # larger IO bitmaps # # include/asm-i386/processor.h # 2004/06/27 00:19:26-07:00 stsp@aknet.ru +3 -3 # larger IO bitmaps # # include/asm-i386/desc.h # 2004/06/27 00:19:26-07:00 stsp@aknet.ru +2 -1 # larger IO bitmaps # # ChangeSet # 2004/06/27 10:53:37-07:00 anton@samba.org # [PATCH] __alloc_bootmem_node should not panic when it fails # # __alloc_bootmem_node currently panics if it cant satisfy an allocation for # a particular node. Thats rather antisocial, we should at the very least # return NULL and allow the caller to proceed (eg try another node). # # A quick look at alloc_bootmem_node usage suggests we should fall back to # allocating from other nodes if it fails (as arch/alpha/kernel/pci_iommu.c # and arch/x86_64/kernel/setup64.c do). # # The following patch does that. We fall back to the regular __alloc_bootmem # when __alloc_bootmem_node fails, which means all other nodes are checked # for available memory. # # Signed-off-by: Anton Blanchard # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/bootmem.c # 2004/06/27 00:19:26-07:00 anton@samba.org +1 -6 # __alloc_bootmem_node should not panic when it fails # # ChangeSet # 2004/06/27 10:53:26-07:00 dhowells@redhat.com # [PATCH] ppc64: fix usage of cpumask_t on iSeries # # This fixes a bit of iSeries code that hadn't been changed to reflect that # cpumask_t is now a struct and not an integer type. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/ppc64/kernel/irq.c # 2004/06/27 00:19:25-07:00 dhowells@redhat.com +1 -2 # ppc64: fix usage of cpumask_t on iSeries # # ChangeSet # 2004/06/27 10:53:15-07:00 anton@samba.org # [PATCH] ppc64: remove a stale comment in rtas.c # # rtas.c doesn't call reloc_offset # # remove comment from rtas.c and extern function declaration # # Signed-off-by: Anton Blanchard # Signed-off-by: Milton Miller # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/ppc64/kernel/rtas.c # 2004/06/27 00:19:25-07:00 anton@samba.org +0 -23 # ppc64: remove a stale comment in rtas.c # # ChangeSet # 2004/06/27 10:53:04-07:00 anton@samba.org # [PATCH] ppc64: udbg fix # # Some udbg.c cleanups: # # - remove some old comments # - clean up formatting # - remove unused udbg_puthex and udbg_printSP # # Signed-off-by: Anton Blanchard # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ppc64/udbg.h # 2004/06/27 00:19:25-07:00 anton@samba.org +0 -3 # ppc64: udbg fix # # arch/ppc64/kernel/udbg.c # 2004/06/27 00:19:25-07:00 anton@samba.org +23 -62 # ppc64: udbg fix # # ChangeSet # 2004/06/27 10:52:52-07:00 anton@samba.org # [PATCH] ppc64: another udbg fix # # udbg_read would lock up if ppc_md.udbg_putc didnt exist. Just return 0 and # dont lock up instead. # # Signed-off-by: Anton Blanchard # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/ppc64/kernel/udbg.c # 2004/06/27 00:19:25-07:00 anton@samba.org +2 -1 # ppc64: another udbg fix # # ChangeSet # 2004/06/27 10:52:41-07:00 anton@samba.org # [PATCH] ppc64: udbg should use snprintf # # Use vsnprintf/snprintf in udbg.c # # Signed-off-by: Anton Blanchard # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/ppc64/kernel/udbg.c # 2004/06/27 00:19:25-07:00 anton@samba.org +8 -10 # ppc64: udbg should use snprintf # # ChangeSet # 2004/06/27 10:52:30-07:00 anton@samba.org # [PATCH] ppc64: fix oprofile on 970 # # - Use 970/970FX instead of GPUL # - Add POWER5 and 970FX to systemcfg.h # - Create new cpu feature CPU_FTR_MMCRA_SIHV and use it # # Signed-off-by: Anton Blanchard # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ppc64/systemcfg.h # 2004/06/27 00:19:24-07:00 anton@samba.org +2 -0 # ppc64: fix oprofile on 970 # # include/asm-ppc64/processor.h # 2004/06/27 00:19:24-07:00 anton@samba.org +2 -2 # ppc64: fix oprofile on 970 # # include/asm-ppc64/cputable.h # 2004/06/27 00:19:24-07:00 anton@samba.org +1 -0 # ppc64: fix oprofile on 970 # # arch/ppc64/oprofile/op_model_power4.c # 2004/06/27 00:19:24-07:00 anton@samba.org +1 -1 # ppc64: fix oprofile on 970 # # arch/ppc64/oprofile/common.c # 2004/06/27 00:19:24-07:00 anton@samba.org +2 -2 # ppc64: fix oprofile on 970 # # arch/ppc64/kernel/cputable.c # 2004/06/27 00:19:24-07:00 anton@samba.org +4 -2 # ppc64: fix oprofile on 970 # # ChangeSet # 2004/06/27 10:52:19-07:00 akpm@osdl.org # [PATCH] ppc64: COMMAND_LINE_SIZE fix # # In file included from arch/ppc64/kernel/setup.c:37: # include/asm/machdep.h:116: `COMMAND_LINE_SIZE' undeclared here (not in a function) # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ppc64/machdep.h # 2004/06/27 00:19:24-07:00 akpm@osdl.org +2 -0 # ppc64: COMMAND_LINE_SIZE fix # # ChangeSet # 2004/06/27 10:52:08-07:00 bjorn.helgaas@hp.com # [PATCH] Add PCDP console detection support # # Add support for the EFI/DIG PCDP console discovery table (see # http://www.dig64.org/specifications/DIG64_HCDPv20_042804.pdf). # # This moves the code from drivers/serial/8250_hcdp.[ch] to # drivers/firmware/pcdp.[ch], since it's no longer 8250-specific. It also # obsoletes CONFIG_SERIAL_8250_HCDP, replacing it with CONFIG_EFI_PCDP (which # defaults to Y for ia64). # # In a nutshell, HCDP tells us "these UARTs are available for use as a # console," and it's up to the user to explicitly specify the console device. # The kernel can guess in some cases, but not all. # # The PCDP (aka HCDP v2) tells us what we really want to know, namely, "this # UART or VGA device is the console device." (It also has provision for # support for new device types.) # # Signed-off-by: Bjorn Helgaas # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/firmware/pcdp.h # 2004/06/27 10:52:01-07:00 bjorn.helgaas@hp.com +80 -0 # # drivers/firmware/pcdp.c # 2004/06/27 10:52:01-07:00 bjorn.helgaas@hp.com +206 -0 # # include/linux/efi.h # 2004/06/27 00:19:24-07:00 bjorn.helgaas@hp.com +4 -0 # Add PCDP console detection support # # drivers/serial/Makefile # 2004/06/27 00:19:24-07:00 bjorn.helgaas@hp.com +0 -1 # Add PCDP console detection support # # drivers/serial/Kconfig # 2004/06/27 00:19:24-07:00 bjorn.helgaas@hp.com +0 -9 # Add PCDP console detection support # # drivers/firmware/pcdp.h # 2004/06/27 10:52:01-07:00 bjorn.helgaas@hp.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/firmware/pcdp.h # # drivers/firmware/pcdp.c # 2004/06/27 10:52:01-07:00 bjorn.helgaas@hp.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/firmware/pcdp.c # # drivers/firmware/Makefile # 2004/06/27 00:19:24-07:00 bjorn.helgaas@hp.com +1 -0 # Add PCDP console detection support # # drivers/firmware/Kconfig # 2004/06/27 00:19:24-07:00 bjorn.helgaas@hp.com +19 -0 # Add PCDP console detection support # # arch/ia64/kernel/setup.c # 2004/06/27 00:19:24-07:00 bjorn.helgaas@hp.com +14 -15 # Add PCDP console detection support # # BitKeeper/deleted/.del-8250_hcdp.h~dabb20cf55dab0cb # 2004/06/27 10:52:01-07:00 bjorn.helgaas@hp.com +0 -0 # Delete: drivers/serial/8250_hcdp.h # # BitKeeper/deleted/.del-8250_hcdp.c~7385106462a6872b # 2004/06/27 10:52:01-07:00 bjorn.helgaas@hp.com +0 -0 # Delete: drivers/serial/8250_hcdp.c # # ChangeSet # 2004/06/27 09:08:50-05:00 stern@rowland.harvard.edu # [PATCH] PATCH: (as333) BLIST flag for non-lockable devices # # On Wed, 23 Jun 2004, Mike Anderson wrote: # > Since SCSI already has the device list it would seem like we would # > possibly add a new flag like was done for mode sense. As this is not a # > transport issue I would assume we would not want to add flags in # > usb/storage, but handle it in the mid-layer as a SCSI protocol # > non-compliance. # # Here is a patch that implements this suggestion. It's rather similar to # the one that Javier Marcet wrote back in January, in # # http://marc.theaimsgroup.com/?l=linux-usb-users&m=107345268526718&w=2 # # Signed-off-by: Alan Stern # Signed-off-by: James Bottomley # # include/scsi/scsi_devinfo.h # 2004/06/25 06:53:20-05:00 stern@rowland.harvard.edu +1 -0 # PATCH: (as333) BLIST flag for non-lockable devices # # drivers/scsi/scsi_scan.c # 2004/06/25 06:56:28-05:00 stern@rowland.harvard.edu +3 -0 # PATCH: (as333) BLIST flag for non-lockable devices # # drivers/scsi/scsi_devinfo.c # 2004/06/25 07:07:06-05:00 stern@rowland.harvard.edu +3 -0 # PATCH: (as333) BLIST flag for non-lockable devices # # ChangeSet # 2004/06/27 09:03:55-05:00 g.liakhovetski@gmx.de # [PATCH] kill obsolete typedefs and wrappers from tmscsim # # Signed-off-by: James Bottomley # # drivers/scsi/tmscsim.h # 2004/06/24 16:33:43-05:00 g.liakhovetski@gmx.de +114 -162 # kill obsolete typedefs and wrappers from tmscsim # # drivers/scsi/tmscsim.c # 2004/06/24 17:26:35-05:00 g.liakhovetski@gmx.de +196 -239 # kill obsolete typedefs and wrappers from tmscsim # # ChangeSet # 2004/06/27 09:00:47-05:00 hch@lst.de # [PATCH] some tmscsim consolidation # # On Sun, Jun 06, 2004 at 02:41:56PM +0200, Christoph Hellwig wrote: # > I've looked through my old tmscsim patch queue and found this one: # > # > - merge dc390_initDCB into dc390_slave_alloc # > - merge DC390_release and dc390_shutdown into dc390_remove_one, # > use del_timer_sync to make sure the timer is really deleted on # > removal, adjust locking accordingly # > - some tiny related cleanups # # Okay, here's a resend vs current scsi-misc-2.6 that has your three # outstanding merged. Additionally I've also killed dc390_freeDCBs() # as all dcbs are removed in ->slave_destroy. # # Signed-off-by: James Bottomley # # drivers/scsi/tmscsim.c # 2004/06/23 10:48:00-05:00 hch@lst.de +95 -157 # some tmscsim consolidation # # ChangeSet # 2004/06/26 22:49:04-05:00 jejb@raven.il.steeleye.com # ncr53c8xx turn on clustering # # Since the driver now supports multiple virtual segments # in an iommu situation, it can also support clustering # for non-iommu systems. # # Signed-off-by: James Bottomley # # drivers/scsi/ncr53c8xx.c # 2004/06/26 22:48:17-05:00 jejb@raven.il.steeleye.com +1 -1 # ncr53c8xx turn on clustering # # ChangeSet # 2004/06/26 22:01:14-05:00 akpm@osdl.org # [PATCH] mptbase.c build fix # # drivers/message/fusion/mptbase.c: In function `procmpt_summary_read': # drivers/message/fusion/mptbase.c:5160: parse error before `int' # # Signed-off-by: Andrew Morton # Signed-off-by: James Bottomley # # drivers/message/fusion/mptbase.c # 2004/06/26 21:26:07-05:00 akpm@osdl.org +2 -2 # mptbase.c build fix # # ChangeSet # 2004/06/26 22:00:04-05:00 jejb@raven.il.steeleye.com # Fix up fdomain after mismerge # # Signed-off-by: James Bottomley # # drivers/scsi/fdomain.h # 2004/06/26 21:59:18-05:00 jejb@raven.il.steeleye.com +3 -3 # Fix up fdomain after mismerge # # drivers/scsi/fdomain.c # 2004/06/26 21:59:17-05:00 jejb@raven.il.steeleye.com +1 -3 # Fix up fdomain after mismerge # # ChangeSet # 2004/06/26 16:22:25-07:00 chas@cmf.nrl.navy.mil # [ATM]: fix sparse checker warnings (by Stephen Hemminger ) # # net/atm/svc.c # 2004/06/26 16:22:03-07:00 chas@cmf.nrl.navy.mil +1 -1 # [ATM]: fix sparse checker warnings (by Stephen Hemminger ) # # net/atm/lec.c # 2004/06/26 16:22:03-07:00 chas@cmf.nrl.navy.mil +3 -3 # [ATM]: fix sparse checker warnings (by Stephen Hemminger ) # # net/atm/common.c # 2004/06/26 16:22:03-07:00 chas@cmf.nrl.navy.mil +1 -1 # [ATM]: fix sparse checker warnings (by Stephen Hemminger ) # # net/atm/clip.c # 2004/06/26 16:22:03-07:00 chas@cmf.nrl.navy.mil +1 -1 # [ATM]: fix sparse checker warnings (by Stephen Hemminger ) # # net/atm/br2684.c # 2004/06/26 16:22:03-07:00 chas@cmf.nrl.navy.mil +1 -1 # [ATM]: fix sparse checker warnings (by Stephen Hemminger ) # # ChangeSet # 2004/06/26 17:44:51-05:00 jejb@raven.il.steeleye.com # Merge # # drivers/message/fusion/mptctl.c # 2004/06/26 17:44:19-05:00 jejb@raven.il.steeleye.com +0 -0 # SCCS merged # # include/scsi/scsi_host.h # 2004/06/26 17:40:26-05:00 jejb@raven.il.steeleye.com +0 -0 # Auto merged # # drivers/scsi/pcmcia/nsp_cs.c # 2004/06/26 17:40:25-05:00 jejb@raven.il.steeleye.com +0 -0 # Auto merged # # drivers/scsi/scsi_sysfs.c # 2004/06/26 17:40:24-05:00 jejb@raven.il.steeleye.com +0 -0 # Auto merged # # drivers/scsi/scsi_syms.c # 2004/06/26 17:40:24-05:00 jejb@raven.il.steeleye.com +0 -0 # Auto merged # # drivers/scsi/scsi_ioctl.c # 2004/06/26 17:40:24-05:00 jejb@raven.il.steeleye.com +0 -0 # Auto merged # # drivers/scsi/fdomain.c # 2004/06/26 17:40:23-05:00 jejb@raven.il.steeleye.com +0 -0 # Auto merged # # drivers/scsi/Makefile # 2004/06/26 17:40:23-05:00 jejb@raven.il.steeleye.com +0 -0 # Auto merged # # drivers/scsi/Kconfig # 2004/06/26 17:40:22-05:00 jejb@raven.il.steeleye.com +0 -0 # Auto merged # # ChangeSet # 2004/06/26 17:21:33-05:00 James.Bottomley@steeleye.com # [PATCH] fix aic7xxx probing # # aic7xxx probing routines are still wrong on eisa. # # Fix eisa by incrementing found if it returns successfully # Also make all the various incarnations of the pci probing routine # consistently return the number of found cards (or 1 for the later # generic device model probing). # # Signed-off-by: James Bottomley # # drivers/scsi/aic7xxx/aic7xxx_osm_pci.c # 2004/06/25 08:24:54-05:00 James.Bottomley@steeleye.com +2 -1 # fix aic7xxx probing # # drivers/scsi/aic7xxx/aic7xxx_osm.h # 2004/06/24 17:41:49-05:00 James.Bottomley@steeleye.com +1 -1 # fix aic7xxx probing # # drivers/scsi/aic7xxx/aic7xxx_osm.c # 2004/06/25 09:50:05-05:00 James.Bottomley@steeleye.com +4 -9 # fix aic7xxx probing # # ChangeSet # 2004/06/26 17:16:16-05:00 jejb@raven.il.steeleye.com # Merge # # drivers/scsi/fdomain.c # 2004/06/26 17:15:53-05:00 jejb@raven.il.steeleye.com +1 -2 # SCCS merged # # ChangeSet # 2004/06/26 17:07:04-05:00 randy.dunlap@verizon.net # [PATCH] fdomain screwup # # | From: Andrew Morton # | To: linux-scsi@vger.kernel.org # | Subject: fdomain screwup # | # | - fdomain_setup() is marked __init, but is called from non-__init # | fdomain_16x0_detect() # | # | - fdomain_setup() is declared in drivers/scsi/pcmcia/fdomain_stub.c as # | taking two arguments, but is implemented in fdomain_setup() taking a # | single argument. # | # | Please, never ever ever put extern function declarations in .c files. # | Put it in a header file which is visible to the definition and to all # | callsites. # | # | - fdomain_setup() is declared static, hence the linkage fails. # | # | - fdomain_16x0_bus_reset() is implemented in drivers/scsi/fdomain.c but # | has static scope, so the call from drivers/scsi/pcmcia/fdomain_stub.c # | doesn't work. # # [I didn't find this to be the case, so I didn't fix it.] # # | - fdomain_16x0_bus_reset() has an extern declaration in # | drivers/scsi/pcmcia/fdomain_stub.c. This should be moved to a header # | file which is visible to etc... # # Builds and loads. No hardware to test. # # Signed-off-by: Randy Dunlap # Signed-off-by: James Bottomley # # drivers/scsi/pcmcia/fdomain_stub.c # 2004/06/24 00:24:01-05:00 randy.dunlap@verizon.net +3 -9 # fdomain screwup # # drivers/scsi/fdomain.c # 2004/06/24 00:10:32-05:00 randy.dunlap@verizon.net +3 -2 # fdomain screwup # # drivers/scsi/fdomain.h # 2004/06/24 00:22:39-05:00 randy.dunlap@verizon.net +24 -0 # fdomain screwup # # drivers/scsi/fdomain.h # 2004/06/24 00:22:39-05:00 randy.dunlap@verizon.net +0 -0 # BitKeeper file /home/jejb/BK/scsi-misc-2.6/drivers/scsi/fdomain.h # # ChangeSet # 2004/06/26 14:16:14-07:00 torvalds@ppc970.osdl.org # Merge new serial additions # # include/linux/serial_core.h # 2004/06/26 14:16:08-07:00 torvalds@ppc970.osdl.org +1 -1 # Merge new serial additions # # drivers/serial/Kconfig # 2004/06/26 14:16:08-07:00 torvalds@ppc970.osdl.org +0 -0 # Merge new serial additions # # drivers/serial/Makefile # 2004/06/26 14:10:12-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # arch/ppc/Makefile # 2004/06/26 14:10:12-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # arch/ppc/Kconfig # 2004/06/26 14:10:12-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # ChangeSet # 2004/06/26 11:34:31-07:00 herbert@gondor.apana.org.au # [IPSEC]: Move common code out of udp_encap_rcv(). # # Signed-off-by: Herbert Xu # Signed-off-by: David S. Miller # # net/ipv4/udp.c # 2004/06/26 11:34:16-07:00 herbert@gondor.apana.org.au +27 -29 # [IPSEC]: Move common code out of udp_encap_rcv(). # # Signed-off-by: Herbert Xu # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/26 11:32:52-07:00 hadi@zynx.com # [PKT_SCHED]: In tca_action_flush, don't pass NULL netlink callback into ops->walk(). # # Signed-off-by: Jamal Hadi Salim # Signed-off-by: David S. Miller # # net/sched/act_api.c # 2004/06/26 11:32:37-07:00 hadi@zynx.com +2 -1 # [PKT_SCHED]: In tca_action_flush, don't pass NULL netlink callback into ops->walk(). # # Signed-off-by: Jamal Hadi Salim # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/26 11:31:01-07:00 herbert@gondor.apana.org.au # [IPSEC]: Drop bogus NAT-T printks in esp_input. # # Here is the patch to drop the packet if encap_type is unknown. # I've also removed the other two bogus printk's as they cannot # occur (printing a message is the last thing you want to do even # if they did occur :). # # Signed-off-by: Herbert Xu # Signed-off-by: David S. Miller # # net/ipv4/esp4.c # 2004/06/26 11:30:46-07:00 herbert@gondor.apana.org.au +1 -15 # [IPSEC]: Drop bogus NAT-T printks in esp_input. # # Here is the patch to drop the packet if encap_type is unknown. # I've also removed the other two bogus printk's as they cannot # occur (printing a message is the last thing you want to do even # if they did occur :). # # Signed-off-by: Herbert Xu # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/26 11:30:21-07:00 herbert@gondor.apana.org.au # [IPSEC]: Remove run-time encap_type checks in esp4. # # This allows us to remove all the per-packet checks on x->encap->encap_type. # I've left the check in esp_input just in case someone adds a non-ESP encap # type in future. # # However, printing a warning and then continuing is definitely wrong. # So expect a follow-up patch to drop the packet when encap_type is # unknown in esp_input. # # Signed-off-by: Herbert Xu # Signed-off-by: David S. Miller # # net/ipv4/esp4.c # 2004/06/26 11:30:06-07:00 herbert@gondor.apana.org.au +13 -37 # [IPSEC]: Remove run-time encap_type checks in esp4. # # This allows us to remove all the per-packet checks on x->encap->encap_type. # I've left the check in esp_input just in case someone adds a non-ESP encap # type in future. # # However, printing a warning and then continuing is definitely wrong. # So expect a follow-up patch to drop the packet when encap_type is # unknown in esp_input. # # Signed-off-by: Herbert Xu # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/26 11:28:56-07:00 herbert@gondor.apana.org.au # [IPSEC]: Fix alen calcs in non-IKE encapsulation. # # Signed-off-by: Herbert Xu # Signed-off-by: David S. Miller # # net/ipv4/esp4.c # 2004/06/26 11:28:41-07:00 herbert@gondor.apana.org.au +0 -2 # [IPSEC]: Fix alen calcs in non-IKE encapsulation. # # Signed-off-by: Herbert Xu # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/26 11:31:31-05:00 hch@infradead.org # [PATCH] MPT Fusion driver 3.01.09 update # # On Mon, Jun 21, 2004 at 12:16:08PM -0400, Moore, Eric Dean wrote: # > We are pleased to announce the MPT Fusion release candidate for lk 2.6 # # I've worked with Eric offline to resolve the issue we had and get some # more changes in, but he has left for his vacation today. He send me # a patch though and left it to me whether we'd merged it despite only # moderate testing. Given 2.6.7 was just done and he'll certainly be # back before 2.6.8 I'd go for it. Below is the patch rediffed against # scsi-misc-2.6: # # Signed-off-by: James Bottomley # # drivers/message/fusion/mptscsih.c # 2004/06/23 09:48:44-05:00 hch@infradead.org +120 -245 # MPT Fusion driver 3.01.09 update # # drivers/message/fusion/mptlan.c # 2004/06/23 09:48:44-05:00 hch@infradead.org +8 -8 # MPT Fusion driver 3.01.09 update # # drivers/message/fusion/mptctl.c # 2004/06/23 09:57:56-05:00 hch@infradead.org +79 -90 # MPT Fusion driver 3.01.09 update # # drivers/message/fusion/mptbase.h # 2004/06/23 09:48:43-05:00 hch@infradead.org +39 -33 # MPT Fusion driver 3.01.09 update # # drivers/message/fusion/mptbase.c # 2004/06/23 09:48:43-05:00 hch@infradead.org +401 -751 # MPT Fusion driver 3.01.09 update # # drivers/message/fusion/linux_compat.h # 2004/06/23 09:48:43-05:00 hch@infradead.org +10 -0 # MPT Fusion driver 3.01.09 update # # ChangeSet # 2004/06/26 09:06:27-07:00 hch@lst.de # [PATCH] ppc32: fix compilation # # PPC has an out of line and exported abs() that gives lots of nice and # wierd compilation erorrs. Also kill the duplicate cpu_online() in # asm-ppc/smp.h. # # include/asm-ppc/system.h # 2004/06/25 05:51:29-07:00 hch@lst.de +0 -1 # ppc32: fix compilation # # include/asm-ppc/smp.h # 2004/06/25 05:51:47-07:00 hch@lst.de +0 -2 # ppc32: fix compilation # # arch/ppc/kernel/ppc_ksyms.c # 2004/06/25 05:52:53-07:00 hch@lst.de +0 -3 # ppc32: fix compilation # # ChangeSet # 2004/06/26 08:52:06-07:00 torvalds@ppc970.osdl.org # Merge bk://bk.arm.linux.org.uk/linux-2.6-pcmcia # into ppc970.osdl.org:/home/torvalds/v2.6/linux # # drivers/pcmcia/yenta_socket.c # 2004/06/26 08:52:02-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # drivers/pcmcia/i82365.c # 2004/06/26 08:52:02-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # drivers/ide/legacy/ide-cs.c # 2004/06/26 08:52:02-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # ChangeSet # 2004/06/26 10:50:12-05:00 jejb@mulgrave.(none) # advansys: add warning and convert #includes # # The DMA conversion of the advansys driver is still # broken. Add a #warning to the driver and a comment # above it explaining what needs to be done. # # Mark the driver as BROKEN because of the warning # # Also remove the #include "scsi.h" # # Signed-off-by: James Bottomley # # drivers/scsi/advansys.h # 2004/06/26 10:49:45-05:00 jejb@mulgrave.(none) +4 -4 # advansys: add warning and convert #includes # # drivers/scsi/advansys.c # 2004/06/26 10:49:45-05:00 jejb@mulgrave.(none) +59 -43 # advansys: add warning and convert #includes # # drivers/scsi/Kconfig # 2004/06/26 10:49:45-05:00 jejb@mulgrave.(none) +1 -1 # advansys: add warning and convert #includes # # ChangeSet # 2004/06/26 10:39:47-05:00 dougg@torque.net # [PATCH] More advansys fixes # # - fix PCI wide "use_sg > 0" problem introduced in lk 2.6.7-bk2 # - fix ISA oops (present in all versions of the lk 2.6 series to date) # - bump version to "3.3K" and add comments # - fix compilation error when ADVANSYS_DEBUG defined # # Signed-off-by: James Bottomley # # drivers/scsi/advansys.c # 2004/06/24 06:25:34-05:00 dougg@torque.net +15 -9 # More advansys fixes # # ChangeSet # 2004/06/26 14:26:09+01:00 rmk@flint.arm.linux.org.uk # [ARM] Fix SA1100 build after timer changes. # # arch/arm/mach-sa1100/time.c # 2004/06/26 14:23:05+01:00 rmk@flint.arm.linux.org.uk +8 -1 # Add includes for time.c # # arch/arm/mach-sa1100/Makefile # 2004/06/26 14:23:05+01:00 rmk@flint.arm.linux.org.uk +1 -1 # Add time.o # # ChangeSet # 2004/06/26 09:31:02+01:00 rmk@flint.arm.linux.org.uk # [PCMCIA] Fix bogus align value # # 0 is not a valid alignment value for allocate_resource() # # drivers/pcmcia/rsrc_mgr.c # 2004/06/26 09:25:50+01:00 rmk@flint.arm.linux.org.uk +3 -3 # Fix bogus align value # # ChangeSet # 2004/06/25 14:55:04-07:00 miles@mctpc71.ucom.lsi.nec.co.jp # [PATCH] make CONFIG_SYSVIPC depend on CONFIG_MMU # # The sysv-ipc code uses mm/shmem.o, which in turn uses VM stuff and is # only compiled on MMU systems. # # Signed-off-by: Miles Bader # Signed-off-by: Linus Torvalds # # init/Kconfig # 2004/06/24 22:47:26-07:00 miles@mctpc71.ucom.lsi.nec.co.jp +1 -0 # make CONFIG_SYSVIPC depend on CONFIG_MMU # # ChangeSet # 2004/06/25 14:54:53-07:00 miles@mctpc71.ucom.lsi.nec.co.jp # [PATCH] v850: remove bogus __ARCH_WANT_ macro defs # # Signed-off-by: Miles Bader # Signed-off-by: Linus Torvalds # # include/asm-v850/unistd.h # 2004/06/24 21:56:41-07:00 miles@mctpc71.ucom.lsi.nec.co.jp +2 -4 # v850: remove bogus __ARCH_WANT_ macro defs # # ChangeSet # 2004/06/25 14:54:42-07:00 miles@mctpc71.ucom.lsi.nec.co.jp # [PATCH] v850: add find_next_bit # # [Since many archs use the same implementation of find_next_bit, it might # be nice to have `generic_find_next_bit' or something.] # # Signed-off-by: Miles Bader # Signed-off-by: Linus Torvalds # # include/asm-v850/bitops.h # 2004/06/24 22:24:08-07:00 miles@mctpc71.ucom.lsi.nec.co.jp +76 -0 # v850: add find_next_bit # # ChangeSet # 2004/06/25 14:54:31-07:00 miles@mctpc71.ucom.lsi.nec.co.jp # [PATCH] v850: add missing end-of-line backslash to vmlinux.lds.S # # Signed-off-by: Miles Bader # Signed-off-by: Linus Torvalds # # arch/v850/kernel/vmlinux.lds.S # 2004/06/24 01:20:36-07:00 miles@mctpc71.ucom.lsi.nec.co.jp +3 -3 # v850: add missing end-of-line backslash to vmlinux.lds.S # # ChangeSet # 2004/06/25 14:54:20-07:00 miles@mctpc71.ucom.lsi.nec.co.jp # [PATCH] v850: guard declaration of handle_IRQ_event with #ifdef !__ASSEMBLY__ # # Signed-off-by: Miles Bader # Signed-off-by: Linus Torvalds # # include/asm-v850/irq.h # 2004/06/24 01:20:36-07:00 miles@mctpc71.ucom.lsi.nec.co.jp +3 -6 # v850: guard declaration of handle_IRQ_event with #ifdef !__ASSEMBLY__ # # ChangeSet # 2004/06/25 11:34:10-07:00 B.Zolnierkiewicz@elka.pw.edu.pl # [PATCH] ide: limit max_sectors to 256 for PDC20265 # # PDC20265 seems to not like large LBA48 requests. # # Thanks to Adolfo Gonzalez Blazquez for help in debugging this problem. # # Signed-off-by: Bartlomiej Zolnierkiewicz # Signed-off-by: Linus Torvalds # # drivers/ide/pci/pdc202xx_old.c # 2004/06/25 10:03:57-07:00 B.Zolnierkiewicz@elka.pw.edu.pl +6 -0 # ide: limit max_sectors to 256 for PDC20265 # # ChangeSet # 2004/06/25 11:33:59-07:00 B.Zolnierkiewicz@elka.pw.edu.pl # [PATCH] ide: idle disk on resume # # From: Jens Axboe # # I need this patch to survive suspend on my powerbook, if the drive is # sleeping when suspend is entered. Otherwise it freezes on resume when it # tries to read from the drive. # # Acked by Ben. # # Signed-off-by: Bartlomiej Zolnierkiewicz # Signed-off-by: Linus Torvalds # # drivers/ide/ide-disk.c # 2004/06/25 09:49:26-07:00 B.Zolnierkiewicz@elka.pw.edu.pl +13 -2 # ide: idle disk on resume # # ChangeSet # 2004/06/25 11:06:18-07:00 Andries.Brouwer@cwi.nl # [PATCH] isofs fixes # # This fixes two things. # # On the one hand we have the old "cruft" mount option, that sometimes was # enabled automatically, for ridiculously large files or CDROMs. But what # was ridiculous ten years ago, no longer is. So, only decide that # something is cruft when the user said so. # # On the other hand, sometimes we get negative sizes. That is caused by # assignments inode->i_size = isonum_733(), where the latter was declared # integer. I made it unsigned int, as the standard also does. # # (Someone with problems replied: # >> Could you test the below? # > Ok I did, the patch seems to work great! Thanks! # ) # # include/linux/iso_fs.h # 2004/06/24 09:13:00-07:00 Andries.Brouwer@cwi.nl +6 -6 # isofs fixes # # fs/isofs/inode.c # 2004/06/24 09:20:41-07:00 Andries.Brouwer@cwi.nl +3 -20 # isofs fixes # # ChangeSet # 2004/06/25 10:34:15-07:00 herbert@gondor.apana.org.au # [IPSEC]: Check encap_type at config time, in user API code. # # Here is the patch to check encap_type at the earliest possible # opportunity in xfrm_user/af_key. # # This will allow us to assume in esp4 that the encap_type from x->encap # is always valid. # # Signed-off-by: Herbert Xu # Signed-off-by: David S. Miller # # net/xfrm/xfrm_user.c # 2004/06/25 10:34:00-07:00 herbert@gondor.apana.org.au +9 -0 # [IPSEC]: Check encap_type at config time, in user API code. # # Here is the patch to check encap_type at the earliest possible # opportunity in xfrm_user/af_key. # # This will allow us to assume in esp4 that the encap_type from x->encap # is always valid. # # Signed-off-by: Herbert Xu # Signed-off-by: David S. Miller # # net/key/af_key.c # 2004/06/25 10:34:00-07:00 herbert@gondor.apana.org.au +9 -0 # [IPSEC]: Check encap_type at config time, in user API code. # # Here is the patch to check encap_type at the earliest possible # opportunity in xfrm_user/af_key. # # This will allow us to assume in esp4 that the encap_type from x->encap # is always valid. # # Signed-off-by: Herbert Xu # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/25 10:32:33-07:00 herbert@gondor.apana.org.au # [IPSEC]: Check encap_type at config time. # # The following patch moves the udp->encap_type check from the per-packet # hot-path into udp_setsockopt(). # # As a consequence, this allows user space to detect whether the kernel # actually supports the encap type that they're requesting. Pity no one # did this before the NON-IKE patch was applied. As it is there is no # easy way to detect whether NON-IKE support is present. # # Signed-off-by: Herbert Xu # # Signed-off-by: David S. Miller # # net/ipv6/udp.c # 2004/06/25 10:32:18-07:00 herbert@gondor.apana.org.au +8 -1 # [IPSEC]: Check encap_type at config time. # # The following patch moves the udp->encap_type check from the per-packet # hot-path into udp_setsockopt(). # # As a consequence, this allows user space to detect whether the kernel # actually supports the encap type that they're requesting. Pity no one # did this before the NON-IKE patch was applied. As it is there is no # easy way to detect whether NON-IKE support is present. # # Signed-off-by: Herbert Xu # # Signed-off-by: David S. Miller # # net/ipv4/udp.c # 2004/06/25 10:32:18-07:00 herbert@gondor.apana.org.au +11 -7 # [IPSEC]: Check encap_type at config time. # # The following patch moves the udp->encap_type check from the per-packet # hot-path into udp_setsockopt(). # # As a consequence, this allows user space to detect whether the kernel # actually supports the encap type that they're requesting. Pity no one # did this before the NON-IKE patch was applied. As it is there is no # easy way to detect whether NON-IKE support is present. # # Signed-off-by: Herbert Xu # # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/25 10:30:07-07:00 davem@nuts.davemloft.net # [SPARC64]: Update defconfig. # # arch/sparc64/defconfig # 2004/06/25 10:29:50-07:00 davem@nuts.davemloft.net +59 -40 # [SPARC64]: Update defconfig. # # ChangeSet # 2004/06/25 10:27:24-07:00 akpm@osdl.org # [SPARC64]: Make ___arch_swapXp() take a const pointer. # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # include/asm-sparc64/byteorder.h # 2004/06/25 10:27:10-07:00 akpm@osdl.org +3 -3 # [SPARC64]: Make ___arch_swapXp() take a const pointer. # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/25 10:26:12-07:00 akpm@osdl.org # [SPARC64]: Make find_next_bit take a const pointer. # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # include/asm-sparc64/bitops.h # 2004/06/25 10:25:58-07:00 akpm@osdl.org +2 -1 # [SPARC64]: Make find_next_bit take a const pointer. # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # arch/sparc64/lib/find_bit.c # 2004/06/25 10:25:58-07:00 akpm@osdl.org +3 -2 # [SPARC64]: Make find_next_bit take a const pointer. # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/25 02:56:52-03:00 acme@conectiva.com.br # [NET] share tcp_v4_destroy_sock with tcpv6 # # tcp_v6_destroy_sock just extends tcp_v4_destroy_sock, so reuse the # tcp_v4_destroy_sock instead of cut'n'pasting it into tcpv6. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv6/tcp_ipv6.c # 2004/06/25 02:56:38-03:00 acme@conectiva.com.br +2 -18 # [NET] share tcp_v4_destroy_sock with tcpv6 # # tcp_v6_destroy_sock just extends tcp_v4_destroy_sock, so reuse the # tcp_v4_destroy_sock instead of cut'n'pasting it into tcpv6. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv4/tcp_ipv4.c # 2004/06/25 02:56:38-03:00 acme@conectiva.com.br +3 -1 # [NET] share tcp_v4_destroy_sock with tcpv6 # # tcp_v6_destroy_sock just extends tcp_v4_destroy_sock, so reuse the # tcp_v4_destroy_sock instead of cut'n'pasting it into tcpv6. # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/25 02:18:48-03:00 acme@conectiva.com.br # [NET] move already shared functions from inet to core # # inet_recvmsg, inet_setsockopt, inet_getsockopt and inet_sock_release are # already shared with ipv6 and sctp, will be used as well by the poor cousins, # so reflect this properly renaming them to sock_common_NAME and move them to # net/core/sock.c # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/sctp/socket.c # 2004/06/25 02:18:34-03:00 acme@conectiva.com.br +2 -2 # [NET] move already shared functions from inet to core # # inet_recvmsg, inet_setsockopt, inet_getsockopt and inet_sock_release are # already shared with ipv6 and sctp, will be used as well by the poor cousins, # so reflect this properly renaming them to sock_common_NAME and move them to # net/core/sock.c # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/sctp/protocol.c # 2004/06/25 02:18:34-03:00 acme@conectiva.com.br +4 -4 # [NET] move already shared functions from inet to core # # inet_recvmsg, inet_setsockopt, inet_getsockopt and inet_sock_release are # already shared with ipv6 and sctp, will be used as well by the poor cousins, # so reflect this properly renaming them to sock_common_NAME and move them to # net/core/sock.c # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/sctp/ipv6.c # 2004/06/25 02:18:34-03:00 acme@conectiva.com.br +4 -4 # [NET] move already shared functions from inet to core # # inet_recvmsg, inet_setsockopt, inet_getsockopt and inet_sock_release are # already shared with ipv6 and sctp, will be used as well by the poor cousins, # so reflect this properly renaming them to sock_common_NAME and move them to # net/core/sock.c # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv6/udp.c # 2004/06/25 02:18:34-03:00 acme@conectiva.com.br +1 -1 # [NET] move already shared functions from inet to core # # inet_recvmsg, inet_setsockopt, inet_getsockopt and inet_sock_release are # already shared with ipv6 and sctp, will be used as well by the poor cousins, # so reflect this properly renaming them to sock_common_NAME and move them to # net/core/sock.c # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv6/raw.c # 2004/06/25 02:18:34-03:00 acme@conectiva.com.br +1 -1 # [NET] move already shared functions from inet to core # # inet_recvmsg, inet_setsockopt, inet_getsockopt and inet_sock_release are # already shared with ipv6 and sctp, will be used as well by the poor cousins, # so reflect this properly renaming them to sock_common_NAME and move them to # net/core/sock.c # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv6/af_inet6.c # 2004/06/25 02:18:34-03:00 acme@conectiva.com.br +7 -7 # [NET] move already shared functions from inet to core # # inet_recvmsg, inet_setsockopt, inet_getsockopt and inet_sock_release are # already shared with ipv6 and sctp, will be used as well by the poor cousins, # so reflect this properly renaming them to sock_common_NAME and move them to # net/core/sock.c # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv4/udp.c # 2004/06/25 02:18:34-03:00 acme@conectiva.com.br +1 -1 # [NET] move already shared functions from inet to core # # inet_recvmsg, inet_setsockopt, inet_getsockopt and inet_sock_release are # already shared with ipv6 and sctp, will be used as well by the poor cousins, # so reflect this properly renaming them to sock_common_NAME and move them to # net/core/sock.c # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv4/raw.c # 2004/06/25 02:18:34-03:00 acme@conectiva.com.br +1 -1 # [NET] move already shared functions from inet to core # # inet_recvmsg, inet_setsockopt, inet_getsockopt and inet_sock_release are # already shared with ipv6 and sctp, will be used as well by the poor cousins, # so reflect this properly renaming them to sock_common_NAME and move them to # net/core/sock.c # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv4/af_inet.c # 2004/06/25 02:18:34-03:00 acme@conectiva.com.br +8 -95 # [NET] move already shared functions from inet to core # # inet_recvmsg, inet_setsockopt, inet_getsockopt and inet_sock_release are # already shared with ipv6 and sctp, will be used as well by the poor cousins, # so reflect this properly renaming them to sock_common_NAME and move them to # net/core/sock.c # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/core/sock.c # 2004/06/25 02:18:34-03:00 acme@conectiva.com.br +88 -0 # [NET] move already shared functions from inet to core # # inet_recvmsg, inet_setsockopt, inet_getsockopt and inet_sock_release are # already shared with ipv6 and sctp, will be used as well by the poor cousins, # so reflect this properly renaming them to sock_common_NAME and move them to # net/core/sock.c # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # include/net/sock.h # 2004/06/25 02:18:34-03:00 acme@conectiva.com.br +13 -0 # [NET] move already shared functions from inet to core # # inet_recvmsg, inet_setsockopt, inet_getsockopt and inet_sock_release are # already shared with ipv6 and sctp, will be used as well by the poor cousins, # so reflect this properly renaming them to sock_common_NAME and move them to # net/core/sock.c # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # include/net/inet_common.h # 2004/06/25 02:18:33-03:00 acme@conectiva.com.br +0 -13 # [NET] move already shared functions from inet to core # # inet_recvmsg, inet_setsockopt, inet_getsockopt and inet_sock_release are # already shared with ipv6 and sctp, will be used as well by the poor cousins, # so reflect this properly renaming them to sock_common_NAME and move them to # net/core/sock.c # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/24 16:37:46-07:00 akpm@osdl.org # [PATCH] x86: fix up cpumask breakage # # We can't do # # &some_inline_function(); # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/kernel/smpboot.c # 2004/06/24 07:22:55-07:00 akpm@osdl.org +6 -2 # x86: fix up cpumask breakage # # ChangeSet # 2004/06/24 23:07:01+01:00 nico@org.rmk.(none) # [ARM PATCH] 1942/1: basic LCD support for the PXA270/Mainstone board # # Patch from Nicolas Pitre # # This is only basic support so the LCD pannel becomes usable # on Mainstone. No PXA270 specific capabilities were added. # The Mainstone defconfig also updated to enable LCD by default. # # arch/arm/mach-pxa/mainstone.c # 2004/06/22 22:48:10+01:00 nico@org.rmk.(none) +59 -0 # [PATCH] 1942/1: basic LCD support for the PXA270/Mainstone board # # arch/arm/configs/mainstone_defconfig # 2004/06/22 22:50:23+01:00 nico@org.rmk.(none) +27 -56 # [PATCH] 1942/1: basic LCD support for the PXA270/Mainstone board # # ChangeSet # 2004/06/24 13:44:11-07:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] symlink: fix missing 'depth' initialization # # Now we always care about one part of nameidata --- ->depth. And we need # to make sure it's always initialized. # # generic_readlink() was missing that part. # # fs/namei.c # 2004/06/24 09:07:24-07:00 viro@parcelfarce.linux.theplanet.co.uk +3 -1 # symlink: fix missing 'depth' initialization # # ChangeSet # 2004/06/24 12:45:29-07:00 greg@kroah.com # Merge kroah.com:/home/greg/linux/BK/bleed-2.6 # into kroah.com:/home/greg/linux/BK/pci-2.6 # # include/linux/pci_ids.h # 2004/06/24 12:45:23-07:00 greg@kroah.com +0 -0 # Auto merged # # arch/i386/pci/irq.c # 2004/06/24 12:45:23-07:00 greg@kroah.com +0 -0 # Auto merged # # ChangeSet # 2004/06/24 12:42:24-07:00 davem@nuts.davemloft.net # [PKT_SCHED]: Fix typo in config help text, noticed by Geert. # # net/sched/Kconfig # 2004/06/24 12:42:06-07:00 davem@nuts.davemloft.net +2 -2 # [PKT_SCHED]: Fix typo in config help text, noticed by Geert. # # ChangeSet # 2004/06/24 12:40:07-07:00 akpm@osdl.org # [PKT_SCHED]: Fix pkt_sched.h warnings. # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # net/sched/sch_tbf.c # 2004/06/24 12:39:52-07:00 akpm@osdl.org +1 -1 # [PKT_SCHED]: Fix pkt_sched.h warnings. # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # net/sched/sch_red.c # 2004/06/24 12:39:52-07:00 akpm@osdl.org +1 -1 # [PKT_SCHED]: Fix pkt_sched.h warnings. # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # net/sched/sch_htb.c # 2004/06/24 12:39:52-07:00 akpm@osdl.org +3 -3 # [PKT_SCHED]: Fix pkt_sched.h warnings. # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # net/sched/sch_gred.c # 2004/06/24 12:39:52-07:00 akpm@osdl.org +2 -2 # [PKT_SCHED]: Fix pkt_sched.h warnings. # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # net/sched/police.c # 2004/06/24 12:39:52-07:00 akpm@osdl.org +2 -2 # [PKT_SCHED]: Fix pkt_sched.h warnings. # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/24 12:38:34-07:00 akpm@osdl.org # [NETFILTER]: ip_fw_compat_masq.c needs net/ip.h for IP_OFFSET. # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # net/ipv4/netfilter/ip_fw_compat_masq.c # 2004/06/24 12:38:19-07:00 akpm@osdl.org +1 -0 # [NETFILTER]: ip_fw_compat_masq.c needs net/ip.h for IP_OFFSET. # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/24 12:37:50-07:00 akpm@osdl.org # [NET]: Fix warning in fc.c # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # net/802/fc.c # 2004/06/24 12:37:35-07:00 akpm@osdl.org +1 -1 # [NET]: Fix warning in fc.c # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/24 12:37:07-07:00 akpm@osdl.org # [NET]: Fix warning in tr.c # # A few things popped up when using current gcc cvs. # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # net/802/tr.c # 2004/06/24 12:36:53-07:00 akpm@osdl.org +1 -1 # [NET]: Fix warning in tr.c # # A few things popped up when using current gcc cvs. # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/24 12:14:03-07:00 davem@nuts.davemloft.net # Merge bk://kernel.bkbits.net/acme/net-2.6 # into nuts.davemloft.net:/disk1/BK/net-2.6 # # net/ipv6/tcp_ipv6.c # 2004/06/24 12:13:54-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/tcp_input.c # 2004/06/24 12:13:54-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/tcp.c # 2004/06/24 12:13:53-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # ChangeSet # 2004/06/24 11:57:36-07:00 torvalds@ppc970.osdl.org # Make bitops/cpumask functions be "const" where appropriate. # # include/linux/cpumask.h # 2004/06/24 11:57:31-07:00 torvalds@ppc970.osdl.org +7 -7 # Make bitops/cpumask functions be "const" where appropriate. # # include/linux/byteorder/swab.h # 2004/06/24 11:57:31-07:00 torvalds@ppc970.osdl.org +3 -3 # Make bitops/cpumask functions be "const" where appropriate. # # include/asm-s390/byteorder.h # 2004/06/24 11:57:31-07:00 torvalds@ppc970.osdl.org +3 -3 # Make bitops/cpumask functions be "const" where appropriate. # # include/asm-ppc64/bitops.h # 2004/06/24 11:57:31-07:00 torvalds@ppc970.osdl.org +3 -3 # Make bitops/cpumask functions be "const" where appropriate. # # arch/ppc64/kernel/bitops.c # 2004/06/24 11:57:30-07:00 torvalds@ppc970.osdl.org +6 -6 # Make bitops/cpumask functions be "const" where appropriate. # # ChangeSet # 2004/06/24 12:27:50-05:00 jejb@mulgrave.(none) # qla2xxx: Remove qla_os.h # # From: Andrew Vasquez # # Instead make all files do the proper includes. # Signed-off-by: James Bottomley # # drivers/scsi/qla2xxx/qla_sup.c # 2004/06/24 12:27:23-05:00 jejb@mulgrave.(none) +3 -1 # qla2xxx: Remove qla_os.h # # drivers/scsi/qla2xxx/qla_rscn.c # 2004/06/24 12:27:23-05:00 jejb@mulgrave.(none) +0 -2 # qla2xxx: Remove qla_os.h # # drivers/scsi/qla2xxx/qla_os.c # 2004/06/24 12:27:23-05:00 jejb@mulgrave.(none) +9 -2 # qla2xxx: Remove qla_os.h # # drivers/scsi/qla2xxx/qla_mbx.c # 2004/06/24 12:27:23-05:00 jejb@mulgrave.(none) +1 -3 # qla2xxx: Remove qla_os.h # # drivers/scsi/qla2xxx/qla_isr.c # 2004/06/24 12:27:23-05:00 jejb@mulgrave.(none) +0 -3 # qla2xxx: Remove qla_os.h # # drivers/scsi/qla2xxx/qla_iocb.c # 2004/06/24 12:27:23-05:00 jejb@mulgrave.(none) +3 -1 # qla2xxx: Remove qla_os.h # # drivers/scsi/qla2xxx/qla_init.c # 2004/06/24 12:27:23-05:00 jejb@mulgrave.(none) +3 -1 # qla2xxx: Remove qla_os.h # # drivers/scsi/qla2xxx/qla_gs.c # 2004/06/24 12:27:23-05:00 jejb@mulgrave.(none) +0 -2 # qla2xxx: Remove qla_os.h # # drivers/scsi/qla2xxx/qla_gbl.h # 2004/06/24 12:27:22-05:00 jejb@mulgrave.(none) +2 -0 # qla2xxx: Remove qla_os.h # # drivers/scsi/qla2xxx/qla_def.h # 2004/06/24 12:27:22-05:00 jejb@mulgrave.(none) +31 -0 # qla2xxx: Remove qla_os.h # # drivers/scsi/qla2xxx/qla_dbg.c # 2004/06/24 12:27:22-05:00 jejb@mulgrave.(none) +2 -2 # qla2xxx: Remove qla_os.h # # drivers/scsi/qla2xxx/ql6322.c # 2004/06/24 12:27:22-05:00 jejb@mulgrave.(none) +0 -1 # qla2xxx: Remove qla_os.h # # drivers/scsi/qla2xxx/ql6312.c # 2004/06/24 12:27:22-05:00 jejb@mulgrave.(none) +0 -1 # qla2xxx: Remove qla_os.h # # drivers/scsi/qla2xxx/ql2322.c # 2004/06/24 12:27:22-05:00 jejb@mulgrave.(none) +0 -1 # qla2xxx: Remove qla_os.h # # drivers/scsi/qla2xxx/ql2300.c # 2004/06/24 12:27:22-05:00 jejb@mulgrave.(none) +0 -1 # qla2xxx: Remove qla_os.h # # drivers/scsi/qla2xxx/ql2200.c # 2004/06/24 12:27:22-05:00 jejb@mulgrave.(none) +0 -1 # qla2xxx: Remove qla_os.h # # drivers/scsi/qla2xxx/ql2100.c # 2004/06/24 12:27:22-05:00 jejb@mulgrave.(none) +0 -1 # qla2xxx: Remove qla_os.h # # BitKeeper/deleted/.del-qla_os.h~9fad2d6c29be0b63 # 2004/06/24 12:25:17-05:00 jejb@mulgrave.(none) +0 -0 # Delete: drivers/scsi/qla2xxx/qla_os.h # # ChangeSet # 2004/06/24 10:19:27-07:00 viro@www.linux.org.uk # [PATCH] symlink 9/9: jff2 # # jffs2 switched; leaks plugged. # # fs/jffs2/symlink.c # 2004/06/22 08:13:12-07:00 viro@www.linux.org.uk +14 -26 # symlink 9/9: jff2 # # ChangeSet # 2004/06/24 10:19:16-07:00 viro@www.linux.org.uk # [PATCH] symlink 8/9: befs # # befs switched; leaks plugged. # # fs/befs/linuxvfs.c # 2004/06/22 08:13:11-07:00 viro@www.linux.org.uk +18 -47 # symlink 8/9: befs # # ChangeSet # 2004/06/24 10:19:06-07:00 viro@www.linux.org.uk # [PATCH] symlink 7/9: shmfs # # shm switched (it almost belongs to SL3, but it does some extra stuff # after the link traversal). # # mm/shmem.c # 2004/06/22 08:13:11-07:00 viro@www.linux.org.uk +21 -26 # symlink 7/9: shmfs # # ChangeSet # 2004/06/24 10:18:55-07:00 viro@www.linux.org.uk # [PATCH] symlink 6/9: xfs # # xfs switched to new scheme; leaks plugged. # # fs/xfs/linux-2.6/xfs_iops.c # 2004/06/22 08:13:11-07:00 viro@www.linux.org.uk +20 -11 # symlink 6/9: xfs # # ChangeSet # 2004/06/24 10:18:44-07:00 viro@www.linux.org.uk # [PATCH] symlink 5/9: smbfs # # smbfs - switched from on-stack allocation of buffer for link body (!) to # __getname()/putname(); switched to new scheme. # # fs/smbfs/symlink.c # 2004/06/22 08:13:11-07:00 viro@www.linux.org.uk +25 -24 # symlink 5/9: smbfs # # fs/smbfs/proto.h # 2004/06/22 08:13:11-07:00 viro@www.linux.org.uk +0 -2 # symlink 5/9: smbfs # # ChangeSet # 2004/06/24 10:18:33-07:00 viro@www.linux.org.uk # [PATCH] symlink 4/9: simple filesystems # # cases that can simply reuse ext2 helpers (page_follow_link_light() and # page_put_link()). # # fs/sysv/inode.c # 2004/06/22 08:13:10-07:00 viro@www.linux.org.uk +3 -2 # symlink 4/9: simple filesystems # # fs/reiserfs/namei.c # 2004/06/22 08:13:10-07:00 viro@www.linux.org.uk +3 -2 # symlink 4/9: simple filesystems # # fs/minix/inode.c # 2004/06/22 08:13:10-07:00 viro@www.linux.org.uk +3 -2 # symlink 4/9: simple filesystems # # fs/ext3/symlink.c # 2004/06/22 08:13:10-07:00 viro@www.linux.org.uk +8 -12 # symlink 4/9: simple filesystems # # fs/coda/cnode.c # 2004/06/22 08:13:10-07:00 viro@www.linux.org.uk +3 -2 # symlink 4/9: simple filesystems # # fs/affs/symlink.c # 2004/06/22 08:13:10-07:00 viro@www.linux.org.uk +3 -2 # symlink 4/9: simple filesystems # # ChangeSet # 2004/06/24 10:18:21-07:00 viro@www.linux.org.uk # [PATCH] symlink 3/9: trivial filesystems # # trivial cases - ones where we have no need to clean up after pathname # traversal (link body embedded into inode, etc.). # # Plugged leak in devfs_follow_link(), while we are at it. # # fs/ufs/symlink.c # 2004/06/22 08:13:10-07:00 viro@www.linux.org.uk +4 -8 # symlink 3/9: trivial filesystems # # fs/sysv/symlink.c # 2004/06/22 08:13:10-07:00 viro@www.linux.org.uk +4 -9 # symlink 3/9: trivial filesystems # # fs/proc/generic.c # 2004/06/22 08:13:10-07:00 viro@www.linux.org.uk +4 -10 # symlink 3/9: trivial filesystems # # fs/jfs/symlink.c # 2004/06/22 08:13:10-07:00 viro@www.linux.org.uk +4 -8 # symlink 3/9: trivial filesystems # # fs/freevxfs/vxfs_immed.c # 2004/06/22 08:13:10-07:00 viro@www.linux.org.uk +4 -26 # symlink 3/9: trivial filesystems # # fs/devfs/base.c # 2004/06/22 08:17:02-07:00 viro@www.linux.org.uk +4 -22 # symlink 3/9: trivial filesystems # # fs/bad_inode.c # 2004/06/22 08:13:10-07:00 viro@www.linux.org.uk +3 -1 # symlink 3/9: trivial filesystems # # fs/autofs4/symlink.c # 2004/06/22 08:13:10-07:00 viro@www.linux.org.uk +3 -10 # symlink 3/9: trivial filesystems # # fs/autofs/symlink.c # 2004/06/22 08:13:10-07:00 viro@www.linux.org.uk +3 -8 # symlink 3/9: trivial filesystems # # ChangeSet # 2004/06/24 10:18:10-07:00 viro@www.linux.org.uk # [PATCH] symlink 2/9: ext2 conversion and helper functions # # ext2 conversion (helper functions for that one will be actually # used a lot by other filesystems, so to fs/namei.c they go) # # include/linux/fs.h # 2004/06/22 08:13:10-07:00 viro@www.linux.org.uk +3 -0 # symlink 2/9: ext2 conversion and helper functions # # fs/namei.c # 2004/06/22 08:13:10-07:00 viro@www.linux.org.uk +47 -2 # symlink 2/9: ext2 conversion and helper functions # # fs/ext2/symlink.c # 2004/06/22 08:13:10-07:00 viro@www.linux.org.uk +7 -11 # symlink 2/9: ext2 conversion and helper functions # # ChangeSet # 2004/06/24 10:17:59-07:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] symlink 1/9: infrastructure and explanation # # This patch-kit gets past the limit on nested symlinks, without # incompatible API changes _and_ with killing code duplication in most of # the readlink/follow_link pairs. And no, it's not the old ->getlink() # crap - procfs et.al. are not special-cased there. # # Here's how it works: # * ->follow_link() still does what it used to do - replaces # vfsmount/dentry in the nameidata it got from caller. However, it can # also leave a pathname to be resolved by caller. # * we add an array of char * into nameidata; we always work with # nd->saved_names[current->link_count]. nd_set_link() sets it, # nd_get_link() returns it. # * callers of ->follow_link() (all two of them) check if ->follow_link() # had left us something to do. If it had (return value was zero and # nd_get_link() is non-NULL), they do __vfs_follow_link() on that name. # Then they call a new method (->put_link()) that frees whatever has to # be freed, etc. # # Note that absolute majority of symlinks have "resolve a pathname" as # part of their ->follow_link(); they can do something else and some don't # do that at all, but having that pathname resolution is very, very # common. # # With that change we allow them to shift pathname resolution part to # caller. They don't have to - it's perfectly OK to do all work in # ->follow_link(). However, leaving the pathname resolution to caller # will # a) exclude foo_follow_link() stack frame from the picture # b) kill 2 stack frames - all callers are in fs/namei.c # and they can use inlined variant of vfs_follow_link(). # # That reduction of stack use is enough to push the limit on nested # symlinks from 5 to 8 (actually, even beyond that, but since 8 is common # for other Unices it will do fine). # # For those who have "pure" ->follow_link() (i.e. "find a string that # would be symlink contents and say nd_set_link(nd, string)") we also get # a common helper implementing ->readlink() - it just calls # ->follow_link() on a dummy nameidata, calls vfs_readlink() on result of # nd_get_link() and does ->put_link(). Using (or not using) it is up to # filesystem; it's a helper that can be used as a ->readlink() for many # filesystems, not a reimplementation of sys_readlink(). However, that's # _MANY_ filesystems - practically all of them. # # Note that we don't put any crap like "if this is a normal symlink, do # this; otherwise call ->follow_link() and let it do its magic" into # callers - all symlinks are handled the same way. Which was the main # problem with getlink proposal back then. # # That covers almost everything; the only cases left are nfs, ncpfs and # cifs. Those will go later - we are backwards compatible, so it's not a # problem. # # First patch: infrastructure - helpers allowing ->follow_link() to leave # a pathname to be traversed by caller + corresponding code in callers. # # include/linux/namei.h # 2004/06/22 08:13:10-07:00 viro@parcelfarce.linux.theplanet.co.uk +14 -0 # symlink 1/9: infrastructure and explanation # # include/linux/fs.h # 2004/06/22 08:13:10-07:00 viro@parcelfarce.linux.theplanet.co.uk +1 -0 # symlink 1/9: infrastructure and explanation # # fs/namei.c # 2004/06/22 08:13:10-07:00 viro@parcelfarce.linux.theplanet.co.uk +26 -3 # symlink 1/9: infrastructure and explanation # # ChangeSet # 2004/06/24 10:03:58-07:00 B.Zolnierkiewicz@elka.pw.edu.pl # [PATCH] ide: check_region removal - trm290.c # # Signed-off-by: Jesper Juhl # Signed-off-by: Bartlomiej Zolnierkiewicz # Signed-off-by: Linus Torvalds # # drivers/ide/pci/trm290.c # 2004/06/23 15:55:00-07:00 B.Zolnierkiewicz@elka.pw.edu.pl +4 -10 # ide: check_region removal - trm290.c # # ChangeSet # 2004/06/24 10:03:47-07:00 B.Zolnierkiewicz@elka.pw.edu.pl # [PATCH] ide: hpt36x/37x tuning fix # # From: Jonas Thornblad # # There is a problem in the hpt366.c driver where the function # ide_config_drive_speed(drive, speed) is called without using the correct # speed variable. The speed variable should use the value returned by # hpt3xx_ratefilter which decides the speed after checking against the bad # drives list. # # I believe the following patch fixes the problem. # # Slightly reworked by me - Bart. # # Signed-off-by: Bartlomiej Zolnierkiewicz # Signed-off-by: Linus Torvalds # # drivers/ide/pci/hpt366.c # 2004/06/23 15:55:55-07:00 B.Zolnierkiewicz@elka.pw.edu.pl +12 -20 # ide: hpt36x/37x tuning fix # # ChangeSet # 2004/06/24 10:03:36-07:00 B.Zolnierkiewicz@elka.pw.edu.pl # [PATCH] ide: reduce > 3kb call path in ide-cs # # - Reduce large stack usage in ide_config() by using kmalloc(), down # from 0x4a4 bytes to 0x64 bytes (x86-32). # - Little whitespace cleanup. # - Move function comment block to immediately above the function. # # Module loaded and unloaded, otherwise not tested (no hardware). # # Signed-off-by: Randy Dunlap # Signed-off-by: Bartlomiej Zolnierkiewicz # Signed-off-by: Linus Torvalds # # drivers/ide/legacy/ide-cs.c # 2004/06/23 15:11:32-07:00 B.Zolnierkiewicz@elka.pw.edu.pl +73 -57 # ide: reduce > 3kb call path in ide-cs # # ChangeSet # 2004/06/24 10:03:24-07:00 B.Zolnierkiewicz@elka.pw.edu.pl # [PATCH] ide: PIO-out setup fixes (CONFIG_IDE_TASKFILE_IO=n) # # - setup hwgroup->handler/timer in ->prehandler() (after checking # drive status) and in do_rw_taskfile() only send a command # - make pre_task_mulout_intr() transfer first data block itself # instead of calling ->handler() so we don't have to play tricks # with hwgroup->handler/timer in task_mulout_intr() # # Signed-off-by: Bartlomiej Zolnierkiewicz # Signed-off-by: Linus Torvalds # # drivers/ide/ide-taskfile.c # 2004/06/18 18:18:10-07:00 B.Zolnierkiewicz@elka.pw.edu.pl +10 -29 # ide: PIO-out setup fixes (CONFIG_IDE_TASKFILE_IO=n) # # ChangeSet # 2004/06/24 10:03:13-07:00 B.Zolnierkiewicz@elka.pw.edu.pl # [PATCH] ide: use task_buffer[_multi]_sectors() in ide-taskfile.c # # - update rq counters directly in task_buffer_sectors() # - use task_buffer[_multi]_sectors() in taskfile PIO # handlers (CONFIG_IDE_TASKFILE_IO=n and flagged ones) so: # (a) rq->hard_cur_sectors is used for rq mapping # (b) in case of error valid rq->sector is reported # (c) we can s/rq->current_nr_sectors/rq->nr_sectors/ later # - uninline task_buffer_sectors() # - remove not needed !rq->bio code from ide_[un]map_buffer() # (it is used only for fs requests which are always bio based) # - remove no longer needed task_rq_offset() # # Signed-off-by: Bartlomiej Zolnierkiewicz # Signed-off-by: Linus Torvalds # # include/linux/ide.h # 2004/06/18 18:03:39-07:00 B.Zolnierkiewicz@elka.pw.edu.pl +2 -18 # ide: use task_buffer[_multi]_sectors() in ide-taskfile.c # # drivers/ide/ide-taskfile.c # 2004/06/18 18:11:58-07:00 B.Zolnierkiewicz@elka.pw.edu.pl +24 -78 # ide: use task_buffer[_multi]_sectors() in ide-taskfile.c # # ChangeSet # 2004/06/24 10:03:02-07:00 B.Zolnierkiewicz@elka.pw.edu.pl # [PATCH] ide: don't clear rq->errors for REQ_DRIVE_TASKFILE requests # # REQ_DRIVE_TASKFILE requests aren't retried so don't clear rq->errors # in CONFIG_IDE_TASKFILE_IO=n PIO handlers and in CONFIG_IDE_TASKFILE_IO=y # PIO handlers clear rq->errors only for fs requests, flagged_* PIO # handlers were already okay. # # Signed-off-by: Bartlomiej Zolnierkiewicz # Signed-off-by: Linus Torvalds # # drivers/ide/ide-taskfile.c # 2004/06/18 18:01:41-07:00 B.Zolnierkiewicz@elka.pw.edu.pl +6 -11 # ide: don't clear rq->errors for REQ_DRIVE_TASKFILE requests # # ChangeSet # 2004/06/24 10:02:51-07:00 B.Zolnierkiewicz@elka.pw.edu.pl # [PATCH] ide: split task_sectors() and task_multi_sectors() # # - split __task_sectors() out of task_sectors() # - add bio and buffer versions of task[_multi]_sectors() # - use task_bio_sectors() instead of task_sectors() in pdc4030.c # - move task[_buffer]_sectors() to ide-taskfile.c # - uninline task[_multi]_sectors() # # Signed-off-by: Bartlomiej Zolnierkiewicz # Signed-off-by: Linus Torvalds # # include/linux/ide.h # 2004/06/23 16:28:10-07:00 B.Zolnierkiewicz@elka.pw.edu.pl +13 -23 # ide: split task_sectors() and task_multi_sectors() # # drivers/ide/legacy/pdc4030.c # 2004/06/23 16:08:35-07:00 B.Zolnierkiewicz@elka.pw.edu.pl +2 -2 # ide: split task_sectors() and task_multi_sectors() # # drivers/ide/ide-taskfile.c # 2004/06/23 16:29:20-07:00 B.Zolnierkiewicz@elka.pw.edu.pl +42 -3 # ide: split task_sectors() and task_multi_sectors() # # ChangeSet # 2004/06/24 10:02:40-07:00 B.Zolnierkiewicz@elka.pw.edu.pl # [PATCH] ide: add task_multi_sectors() to ide-taskfile.c # # Move common code from task_mulin_intr() and task_mulout_intr() # (CONFIG_IDE_TASKFILE_IO=y) to a task_multi_sectors() helper. # # Signed-off-by: Bartlomiej Zolnierkiewicz # Signed-off-by: Linus Torvalds # # drivers/ide/ide-taskfile.c # 2004/06/18 17:58:42-07:00 B.Zolnierkiewicz@elka.pw.edu.pl +22 -31 # ide: add task_multi_sectors() to ide-taskfile.c # # ChangeSet # 2004/06/24 10:02:29-07:00 B.Zolnierkiewicz@elka.pw.edu.pl # [PATCH] ide: remove DTF() debugging printks from ide-taskfile.c # # They are off by default and conflict with the future changes. # # Signed-off-by: Bartlomiej Zolnierkiewicz # Signed-off-by: Linus Torvalds # # drivers/ide/ide-taskfile.c # 2004/06/18 17:57:52-07:00 B.Zolnierkiewicz@elka.pw.edu.pl +0 -34 # ide: remove DTF() debugging printks from ide-taskfile.c # # ChangeSet # 2004/06/24 10:02:18-07:00 B.Zolnierkiewicz@elka.pw.edu.pl # [PATCH] ide: last IRQ fix for task_mulout_intr() (CONFIG_IDE_TASKFILE_IO=n) # # We should wait for the last IRQ after all data is sent. # # Signed-off-by: Bartlomiej Zolnierkiewicz # Signed-off-by: Linus Torvalds # # drivers/ide/ide-taskfile.c # 2004/06/18 17:57:14-07:00 B.Zolnierkiewicz@elka.pw.edu.pl +0 -7 # ide: last IRQ fix for task_mulout_intr() (CONFIG_IDE_TASKFILE_IO=n) # # ChangeSet # 2004/06/24 10:02:07-07:00 B.Zolnierkiewicz@elka.pw.edu.pl # [PATCH] ide: check drive->mult_count in flagged_taskfile() # # Check drive->mult_count in flagged_taskfile() and fail request early # if necessary so there is no need to do it later in the PIO handlers. # # Signed-off-by: Bartlomiej Zolnierkiewicz # Signed-off-by: Linus Torvalds # # drivers/ide/ide-taskfile.c # 2004/06/18 17:56:06-07:00 B.Zolnierkiewicz@elka.pw.edu.pl +8 -8 # ide: check drive->mult_count in flagged_taskfile() # # ChangeSet # 2004/06/24 10:01:56-07:00 B.Zolnierkiewicz@elka.pw.edu.pl # [PATCH] ide: PIO-in drive busy fix (CONFIG_IDE_TASKFILE_IO=y) # # If the drive times out the final status check we should fail the request # instead of setting another handler for the next IRQ. # # Signed-off-by: Bartlomiej Zolnierkiewicz # Signed-off-by: Linus Torvalds # # drivers/ide/ide-taskfile.c # 2004/06/18 17:55:05-07:00 B.Zolnierkiewicz@elka.pw.edu.pl +12 -16 # ide: PIO-in drive busy fix (CONFIG_IDE_TASKFILE_IO=y) # # ChangeSet # 2004/06/24 10:01:45-07:00 B.Zolnierkiewicz@elka.pw.edu.pl # [PATCH] ide: end request fix for CONFIG_IDE_TASKFILE_IO=y PIO handlers # # ide_end_drive_cmd() should only be called for "flagged" taskfiles # which have separate PIO handlers so use driver->end_request() instead. # # Signed-off-by: Bartlomiej Zolnierkiewicz # Signed-off-by: Linus Torvalds # # drivers/ide/ide-taskfile.c # 2004/06/18 17:41:30-07:00 B.Zolnierkiewicz@elka.pw.edu.pl +4 -4 # ide: end request fix for CONFIG_IDE_TASKFILE_IO=y PIO handlers # # ChangeSet # 2004/06/24 10:01:34-07:00 B.Zolnierkiewicz@elka.pw.edu.pl # [PATCH] ide: remove redundant hwgroup->handler checks from ide-taskfile.c # # Remove checks for hwgroup->handler == NULL from task_[in,mulin,out]_intr() # (CONFIG_IDE_TASKFILE_IO=n versions). These functions can be called only from # ide_intr() or ide_timer_expiry() and both set hwgroup->handler to NULL first. # # Signed-off-by: Bartlomiej Zolnierkiewicz # Signed-off-by: Linus Torvalds # # drivers/ide/ide-taskfile.c # 2004/06/18 17:40:55-07:00 B.Zolnierkiewicz@elka.pw.edu.pl +5 -14 # ide: remove redundant hwgroup->handler checks from ide-taskfile.c # # ChangeSet # 2004/06/24 09:56:16-07:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] sparse: scsi ->ioctl() annotation # # Low-level drivers' ->ioctl() gets a userland pointer from scsi_ioctl(); # prototype annotated, so is scsi_debug instance. # # include/scsi/scsi_host.h # 2004/06/22 07:53:36-07:00 viro@parcelfarce.linux.theplanet.co.uk +1 -1 # sparse: scsi ->ioctl() annotation # # drivers/scsi/scsi_debug.h # 2004/06/22 07:53:16-07:00 viro@parcelfarce.linux.theplanet.co.uk +1 -1 # sparse: scsi ->ioctl() annotation # # drivers/scsi/scsi_debug.c # 2004/06/22 07:53:21-07:00 viro@parcelfarce.linux.theplanet.co.uk +1 -1 # sparse: scsi ->ioctl() annotation # # ChangeSet # 2004/06/24 09:56:05-07:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] sparse: trivial i2o annotations # # include/linux/i2o-dev.h # 2004/06/22 07:51:41-07:00 viro@parcelfarce.linux.theplanet.co.uk +13 -13 # sparse: trivial i2o annotations # # drivers/message/i2o/i2o_config.c # 2004/06/22 07:51:18-07:00 viro@parcelfarce.linux.theplanet.co.uk +25 -24 # sparse: trivial i2o annotations # # drivers/message/i2o/i2o_block.c # 2004/06/22 07:51:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +4 -3 # sparse: trivial i2o annotations # # ChangeSet # 2004/06/24 09:55:54-07:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] sparse: i2o fixed # # Fixes for direct dereferencing of userland pointers in i2o_config.c # # drivers/message/i2o/i2o_config.c # 2004/06/22 07:50:24-07:00 viro@parcelfarce.linux.theplanet.co.uk +6 -2 # sparse: i2o fixed # # ChangeSet # 2004/06/24 09:55:42-07:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] sparse: trivial drivers/isdn/* annotations # # drivers/isdn/i4l/isdn_x25iface.c # 2004/06/22 07:44:03-07:00 viro@parcelfarce.linux.theplanet.co.uk +2 -3 # sparse: trivial drivers/isdn/* annotations # # drivers/isdn/i4l/isdn_tty.c # 2004/06/22 07:44:03-07:00 viro@parcelfarce.linux.theplanet.co.uk +4 -4 # sparse: trivial drivers/isdn/* annotations # # drivers/isdn/i4l/isdn_net.h # 2004/06/22 07:44:03-07:00 viro@parcelfarce.linux.theplanet.co.uk +2 -2 # sparse: trivial drivers/isdn/* annotations # # drivers/isdn/i4l/isdn_net.c # 2004/06/22 07:44:03-07:00 viro@parcelfarce.linux.theplanet.co.uk +10 -11 # sparse: trivial drivers/isdn/* annotations # # drivers/isdn/i4l/isdn_common.c # 2004/06/22 07:44:03-07:00 viro@parcelfarce.linux.theplanet.co.uk +39 -39 # sparse: trivial drivers/isdn/* annotations # # drivers/isdn/capi/capi.c # 2004/06/22 07:44:03-07:00 viro@parcelfarce.linux.theplanet.co.uk +20 -22 # sparse: trivial drivers/isdn/* annotations # # ChangeSet # 2004/06/24 09:55:31-07:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] isdn_writebuf_stub() sanitized # # isdn_writebuf_stub() was always called for userland pointers. # # Killed the argument telling whether it's kernel or userland pointer, # killed dead code, updated callers. # # drivers/isdn/i4l/isdn_common.c # 2004/06/22 07:42:24-07:00 viro@parcelfarce.linux.theplanet.co.uk +3 -7 # isdn_writebuf_stub() sanitized # # ChangeSet # 2004/06/24 09:55:20-07:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] sparse: trivial annotations in drivers/char/* # # drivers/char/tipar.c # 2004/06/22 07:40:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +3 -3 # sparse: trivial annotations in drivers/char/* # # drivers/char/rocket.c # 2004/06/22 07:40:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +13 -12 # sparse: trivial annotations in drivers/char/* # # drivers/char/n_r3964.c # 2004/06/22 07:40:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +7 -7 # sparse: trivial annotations in drivers/char/* # # drivers/char/n_hdlc.c # 2004/06/22 07:40:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +6 -6 # sparse: trivial annotations in drivers/char/* # # drivers/char/hpet.c # 2004/06/22 07:40:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +3 -3 # sparse: trivial annotations in drivers/char/* # # drivers/char/genrtc.c # 2004/06/22 07:40:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +8 -9 # sparse: trivial annotations in drivers/char/* # # drivers/char/dtlk.c # 2004/06/22 07:40:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +7 -7 # sparse: trivial annotations in drivers/char/* # # ChangeSet # 2004/06/24 09:55:09-07:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] sparse: trivial drivers/char/* annotation and format fixes # # - trivial annotation in several places in drivers/mtd # - a bunch of debugging printks switched from %x to %llx (they get 64bit # values) # - in doc200[01].c fixed type of (unused) last argument in their # doc_read_ecc(). # # include/linux/mtd/mtd.h # 2004/06/22 07:39:32-07:00 viro@parcelfarce.linux.theplanet.co.uk +1 -1 # sparse: trivial drivers/char/* annotation and format fixes # # drivers/mtd/mtdchar.c # 2004/06/22 07:39:20-07:00 viro@parcelfarce.linux.theplanet.co.uk +19 -23 # sparse: trivial drivers/char/* annotation and format fixes # # drivers/mtd/mtd_blkdevs.c # 2004/06/22 07:39:20-07:00 viro@parcelfarce.linux.theplanet.co.uk +1 -1 # sparse: trivial drivers/char/* annotation and format fixes # # drivers/mtd/devices/doc2001.c # 2004/06/22 07:39:20-07:00 viro@parcelfarce.linux.theplanet.co.uk +9 -4 # sparse: trivial drivers/char/* annotation and format fixes # # drivers/mtd/devices/doc2000.c # 2004/06/22 07:39:20-07:00 viro@parcelfarce.linux.theplanet.co.uk +8 -4 # sparse: trivial drivers/char/* annotation and format fixes # # drivers/mtd/chips/cfi_cmdset_0020.c # 2004/06/22 07:39:20-07:00 viro@parcelfarce.linux.theplanet.co.uk +4 -4 # sparse: trivial drivers/char/* annotation and format fixes # # drivers/mtd/chips/cfi_cmdset_0002.c # 2004/06/22 07:39:20-07:00 viro@parcelfarce.linux.theplanet.co.uk +4 -4 # sparse: trivial drivers/char/* annotation and format fixes # # drivers/mtd/chips/cfi_cmdset_0001.c # 2004/06/22 07:39:20-07:00 viro@parcelfarce.linux.theplanet.co.uk +2 -2 # sparse: trivial drivers/char/* annotation and format fixes # # ChangeSet # 2004/06/24 09:54:58-07:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] sparse: trivial drivers/net/* annotations # # drivers/net/wireless/strip.c # 2004/06/22 07:36:18-07:00 viro@parcelfarce.linux.theplanet.co.uk +9 -9 # sparse: trivial drivers/net/* annotations # # drivers/net/wireless/ray_cs.c # 2004/06/22 07:36:18-07:00 viro@parcelfarce.linux.theplanet.co.uk +2 -2 # sparse: trivial drivers/net/* annotations # # drivers/net/wireless/orinoco_tmd.c # 2004/06/22 07:36:18-07:00 viro@parcelfarce.linux.theplanet.co.uk +1 -1 # sparse: trivial drivers/net/* annotations # # drivers/net/wireless/orinoco_plx.c # 2004/06/22 07:36:18-07:00 viro@parcelfarce.linux.theplanet.co.uk +1 -1 # sparse: trivial drivers/net/* annotations # # drivers/net/wireless/orinoco_pci.c # 2004/06/22 07:36:18-07:00 viro@parcelfarce.linux.theplanet.co.uk +1 -1 # sparse: trivial drivers/net/* annotations # # drivers/net/wireless/atmel.c # 2004/06/22 07:36:18-07:00 viro@parcelfarce.linux.theplanet.co.uk +1 -1 # sparse: trivial drivers/net/* annotations # # drivers/net/wireless/arlan-proc.c # 2004/06/22 07:36:18-07:00 viro@parcelfarce.linux.theplanet.co.uk +7 -7 # sparse: trivial drivers/net/* annotations # # drivers/net/sunhme.c # 2004/06/22 07:37:13-07:00 viro@parcelfarce.linux.theplanet.co.uk +4 -2 # sparse: trivial drivers/net/* annotations # # drivers/net/sk98lin/h/skdrv2nd.h # 2004/06/22 07:36:50-07:00 viro@parcelfarce.linux.theplanet.co.uk +1 -1 # sparse: trivial drivers/net/* annotations # # drivers/net/pppox.c # 2004/06/22 07:37:13-07:00 viro@parcelfarce.linux.theplanet.co.uk +1 -1 # sparse: trivial drivers/net/* annotations # # drivers/net/pppoe.c # 2004/06/22 07:37:13-07:00 viro@parcelfarce.linux.theplanet.co.uk +4 -4 # sparse: trivial drivers/net/* annotations # # drivers/net/ppp_synctty.c # 2004/06/22 07:37:13-07:00 viro@parcelfarce.linux.theplanet.co.uk +18 -15 # sparse: trivial drivers/net/* annotations # # drivers/net/ppp_async.c # 2004/06/22 07:37:13-07:00 viro@parcelfarce.linux.theplanet.co.uk +18 -15 # sparse: trivial drivers/net/* annotations # # drivers/net/dgrs.h # 2004/06/22 07:37:13-07:00 viro@parcelfarce.linux.theplanet.co.uk +1 -1 # sparse: trivial drivers/net/* annotations # # ChangeSet # 2004/06/24 09:54:48-07:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] make DVD ioctls that can legitimately fail quiet # # DVD_LU_SEND_{AGID,TITLE_KEY} can be legitimately rejected; in that case # we should not spew into logs. # # drivers/cdrom/cdrom.c # 2004/06/23 09:08:01-07:00 viro@parcelfarce.linux.theplanet.co.uk +2 -0 # make DVD ioctls that can legitimately fail quiet # # ChangeSet # 2004/06/24 09:50:56-07:00 Andries.Brouwer@cwi.nl # [PATCH] revert partition nonsense # # Updating my source to 2.6.7 I see that you applied some # nonsense garbage patch. Please undo. # # [ Note by Linus: the fact that DOS_EXTENDED_PARTITION is 5, and we're # iterating over slots 1-4 in the partition table, are two totally # unrelated things. Using the symbolic constant does indeed not make # any sense at all here, as Andries so eloquently points out. ] # # fs/partitions/msdos.c # 2004/05/22 10:38:00-07:00 Andries.Brouwer@cwi.nl +3 -3 # revert partition nonsense # # ChangeSet # 2004/06/24 09:50:46-07:00 benh@kernel.crashing.org # [PATCH] ppc64: Fix booting on LPAR machines with more than 1 CPU # # The exception rewrite contains a small bug that prevents bring up of CPUs # on logically partitioned machines. # # The kernel is trying to zero the backlink on the new stack while running # with relocation disabled, which potentially cause it to try to access an # address outside of the region allowed in real mode. This seem to be a # leftover from previous code as we also zero the backlink later after # turning off the MMU. # # This patch removes the offending bit. # # arch/ppc64/kernel/head.S # 2004/06/24 09:25:41-07:00 benh@kernel.crashing.org +0 -2 # ppc64: Fix booting on LPAR machines with more than 1 CPU # # ChangeSet # 2004/06/24 09:50:35-07:00 paulus@samba.org # [PATCH] Clean up head.S whitespace # # The whitespace in arch/ppc64/kernel/head.S is a bit all over the place. # This patch fixes it up. This patch changes nothing other than # whitespace. # # Signed-off-by: Paul Mackerras # Signed-off-by: Linus Torvalds # # arch/ppc64/kernel/head.S # 2004/06/06 20:35:10-07:00 paulus@samba.org +240 -240 # Clean up head.S whitespace # # ChangeSet # 2004/06/24 09:50:24-07:00 paulus@samba.org # [PATCH] Better memset # # Anton noticed in some traces that we were spending an awfully long time # doing a memset. The ppc64 memset is basically unchanged from the ppc32 # version, and it only does 4-byte stores and doesn't unroll the loop. # Here's a memset that performs a bit better. # # I have been using it for 3 weeks now, and Anton has tested it on a # variety of machines, without problems. # # Signed-off-by: Paul Mackerras # Signed-off-by: Linus Torvalds # # arch/ppc64/lib/string.S # 2004/05/29 04:39:26-07:00 paulus@samba.org +60 -19 # Better memset # # ChangeSet # 2004/06/24 09:50:13-07:00 paulus@samba.org # [PATCH] ppc64: clean up prom.c and related files # # Somebody back in the mists of time decided that call_prom and rtas_call # should return longs even though both of those bits of firmware run in # 32-bit mode and produce a 32-bit result. To make life more interesting, # the 32-bit result gets zero-extended to 64 bits, which makes checking # for a -1 return value more complicated than it should be. # # This patch changes call_prom and rtas_call to return an int, and makes # the corresponding changes to use ints for the variables used to hold # those return values. # # While I was doing this I finally got annoyed enough with the strings of # prom_print() and prom_print_hex() calls that we do to write a simple # prom_printf. I deliberately didn't use snprintf because the execution # environment is weird at this point - we aren't running at the address we # are linked at just yet - and I didn't want to inflict that on any code # outside this file. I also did a prom_debug() macro, which eliminated a # few ifdefs. # # There are also a bunch of other minor cleanups. This patch makes very # few algorithmic changes but does get rid of a lot of casts. :) # # I have been running with this patch for a couple of weeks, and Anton has # tested it too. # # Signed-off-by: Paul Mackerras # Signed-off-by: Linus Torvalds # # include/asm-ppc64/rtas.h # 2004/05/27 22:21:20-07:00 paulus@samba.org +2 -2 # ppc64: clean up prom.c and related files # # include/asm-ppc64/prom.h # 2004/05/27 18:37:20-07:00 paulus@samba.org +1 -1 # ppc64: clean up prom.c and related files # # arch/ppc64/kernel/xics.c # 2004/05/27 22:34:39-07:00 paulus@samba.org +18 -19 # ppc64: clean up prom.c and related files # # arch/ppc64/kernel/traps.c # 2004/06/07 22:31:36-07:00 paulus@samba.org +2 -2 # ppc64: clean up prom.c and related files # # arch/ppc64/kernel/smp.c # 2004/06/07 21:52:06-07:00 paulus@samba.org +1 -1 # ppc64: clean up prom.c and related files # # arch/ppc64/kernel/setup.c # 2004/05/27 21:02:20-07:00 paulus@samba.org +4 -5 # ppc64: clean up prom.c and related files # # arch/ppc64/kernel/scanlog.c # 2004/05/27 21:02:20-07:00 paulus@samba.org +6 -6 # ppc64: clean up prom.c and related files # # arch/ppc64/kernel/rtc.c # 2004/05/27 21:02:20-07:00 paulus@samba.org +4 -4 # ppc64: clean up prom.c and related files # # arch/ppc64/kernel/rtas_flash.c # 2004/05/27 21:02:21-07:00 paulus@samba.org +6 -6 # ppc64: clean up prom.c and related files # # arch/ppc64/kernel/rtas.c # 2004/06/07 22:55:07-07:00 paulus@samba.org +17 -35 # ppc64: clean up prom.c and related files # # arch/ppc64/kernel/rtas-proc.c # 2004/05/27 21:02:21-07:00 paulus@samba.org +2 -5 # ppc64: clean up prom.c and related files # # arch/ppc64/kernel/prom.c # 2004/06/03 16:10:15-07:00 paulus@samba.org +349 -539 # ppc64: clean up prom.c and related files # # arch/ppc64/kernel/pSeries_pci.c # 2004/05/27 21:02:22-07:00 paulus@samba.org +3 -2 # ppc64: clean up prom.c and related files # # arch/ppc64/kernel/pSeries_nvram.c # 2004/05/27 21:02:22-07:00 paulus@samba.org +4 -2 # ppc64: clean up prom.c and related files # # arch/ppc64/kernel/eeh.c # 2004/06/24 04:40:36-07:00 paulus@samba.org +4 -3 # ppc64: clean up prom.c and related files # # ChangeSet # 2004/06/24 09:50:02-07:00 roland@redhat.com # [PATCH] fix x86-64 ptrace access to 32-bit vsyscall page # # When I made get_user_pages support looking up a pte for the "gate" area, I # assumed it would be part of the kernel's fixed mappings. On x86-64 running # a 32-bit task, the 32-bit vsyscall DSO page still has no vma but has its # pte allocated in the user mm in the normal fashion. This patch makes it # use the generic page-table lookup calls rather than the shortcuts. # With this, ptrace on x86-64 can access a 32-bit process's vsyscall page. # # The behavior on x86 is unchanged. # # Signed-off-by: Roland McGrath # Signed-off-by: Linus Torvalds # # mm/memory.c # 2004/06/24 03:37:12-07:00 roland@redhat.com +8 -3 # fix x86-64 ptrace access to 32-bit vsyscall page # # ChangeSet # 2004/06/24 09:37:38-07:00 akpm@osdl.org # [PATCH] fix broken alpha build ptrace.c error # # From: Darren Williams # # include/asm/checksum.h:75: warning: `struct in6_addr' declared inside parameter list include/asm/checksum.h:75 # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-alpha/checksum.h # 2004/06/24 01:56:14-07:00 akpm@osdl.org +1 -0 # fix broken alpha build ptrace.c error # # ChangeSet # 2004/06/24 09:37:26-07:00 akpm@osdl.org # [PATCH] balanced_irq warning fix # # arch/i386/kernel/io_apic.c: In function `balanced_irq': # arch/i386/kernel/io_apic.c:582: warning: no return statement in function returning non-void # # and clean things up a bit # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/kernel/io_apic.c # 2004/06/24 01:56:14-07:00 akpm@osdl.org +11 -11 # balanced_irq warning fix # # ChangeSet # 2004/06/24 09:37:15-07:00 akpm@osdl.org # [PATCH] kswapd warning fix # # mm/vmscan.c: In function `kswapd': # mm/vmscan.c:1139: warning: no return statement in function returning non-void # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/vmscan.c # 2004/06/24 01:56:14-07:00 akpm@osdl.org +2 -1 # kswapd warning fix # # ChangeSet # 2004/06/24 09:37:04-07:00 akpm@osdl.org # [PATCH] md: XOR template selection redo # # From: NeilBrown # # From: Josh Litherland # # The XOR routine selection process is often confusing as it often doesn't # choose the routine that measures the fastest, as sometime one routine is # known to have better cache performance. # # This patch avoids the comparison when there is a known best choice, and # makes the report more meaningful. # # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/md/xor.c # 2004/06/24 01:56:14-07:00 akpm@osdl.org +25 -14 # md: XOR template selection redo # # ChangeSet # 2004/06/24 09:36:53-07:00 akpm@osdl.org # [PATCH] md: Fix up handling for read error in raid1. # # From: NeilBrown # # There is severe bit-rot in this code, which is to say that it doesn't work # at all: an io error during read will do bad things. It should work better # with this patch. # # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/md/raid1.c # 2004/06/24 01:56:14-07:00 akpm@osdl.org +7 -3 # md: Fix up handling for read error in raid1. # # ChangeSet # 2004/06/24 09:36:42-07:00 akpm@osdl.org # [PATCH] sh: Consolidate SystemH with other Renesas boards. # # From: Paul Mundt # # Nothing really interesting here, with the addition of several other Renesas # boards, we just move the systemh directory to the renesas one to fit in # better with the directory structure. # # Signed-off-by: Paul Mundt # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/sh/boards/renesas/systemh/setup.c # 2004/06/24 01:56:13-07:00 akpm@osdl.org +1 -1 # sh: Consolidate SystemH with other Renesas boards. # # arch/sh/boards/renesas/systemh/irq.c # 2004/06/24 01:56:13-07:00 akpm@osdl.org +2 -2 # sh: Consolidate SystemH with other Renesas boards. # # arch/sh/boards/renesas/systemh/io.c # 2004/06/24 01:56:13-07:00 akpm@osdl.org +6 -6 # sh: Consolidate SystemH with other Renesas boards. # # arch/sh/boards/renesas/systemh/Makefile # 2004/06/24 01:56:13-07:00 akpm@osdl.org +1 -1 # sh: Consolidate SystemH with other Renesas boards. # # ChangeSet # 2004/06/24 09:27:35-07:00 akpm@osdl.org # [PATCH] sh: merge. # # From: Paul Mundt # # This merges the remaining sh changes, random bug fixes, added syscalls, cache # fixups, etc. Nothing really eventful. # # Signed-off-by: Paul Mundt # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-sh/bus-sh.h # 2004/06/24 01:56:13-07:00 akpm@osdl.org +65 -0 # sh: merge. # # arch/sh/ramdisk/ld.script # 2004/06/24 01:56:13-07:00 akpm@osdl.org +9 -0 # sh: merge. # # arch/sh/ramdisk/Makefile # 2004/06/24 01:56:13-07:00 akpm@osdl.org +19 -0 # sh: merge. # # arch/sh/kernel/cpu/bus.c # 2004/06/24 01:56:13-07:00 akpm@osdl.org +195 -0 # sh: merge. # # include/asm-sh/unistd.h # 2004/06/24 01:56:13-07:00 akpm@osdl.org +11 -1 # sh: merge. # # include/asm-sh/sigcontext.h # 2004/06/24 01:56:13-07:00 akpm@osdl.org +21 -1 # sh: merge. # # include/asm-sh/serial.h # 2004/06/24 01:56:13-07:00 akpm@osdl.org +0 -3 # sh: merge. # # include/asm-sh/processor.h # 2004/06/24 01:56:13-07:00 akpm@osdl.org +2 -1 # sh: merge. # # include/asm-sh/cpu-sh3/dac.h # 2004/06/24 01:56:13-07:00 akpm@osdl.org +3 -4 # sh: merge. # # include/asm-sh/cache.h # 2004/06/24 01:56:13-07:00 akpm@osdl.org +2 -1 # sh: merge. # # include/asm-sh/bus-sh.h # 2004/06/24 01:56:13-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-sh/bus-sh.h # # arch/sh/tools/mach-types # 2004/06/24 01:56:13-07:00 akpm@osdl.org +3 -0 # sh: merge. # # arch/sh/ramdisk/ld.script # 2004/06/24 01:56:13-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/ramdisk/ld.script # # arch/sh/ramdisk/Makefile # 2004/06/24 01:56:13-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/ramdisk/Makefile # # arch/sh/mm/tlb-sh3.c # 2004/06/24 01:56:13-07:00 akpm@osdl.org +1 -1 # sh: merge. # # arch/sh/mm/cache-sh4.c # 2004/06/24 01:56:13-07:00 akpm@osdl.org +25 -31 # sh: merge. # # arch/sh/mm/cache-sh3.c # 2004/06/24 01:56:13-07:00 akpm@osdl.org +7 -7 # sh: merge. # # arch/sh/lib/delay.c # 2004/06/24 01:56:13-07:00 akpm@osdl.org +6 -0 # sh: merge. # # arch/sh/kernel/vmlinux.lds.S # 2004/06/24 01:56:13-07:00 akpm@osdl.org +8 -0 # sh: merge. # # arch/sh/kernel/traps.c # 2004/06/24 01:56:13-07:00 akpm@osdl.org +3 -3 # sh: merge. # # arch/sh/kernel/sh_ksyms.c # 2004/06/24 01:56:13-07:00 akpm@osdl.org +4 -0 # sh: merge. # # arch/sh/kernel/setup.c # 2004/06/24 01:56:13-07:00 akpm@osdl.org +19 -140 # sh: merge. # # arch/sh/kernel/ptrace.c # 2004/06/24 01:56:13-07:00 akpm@osdl.org +1 -8 # sh: merge. # # arch/sh/kernel/process.c # 2004/06/24 01:56:13-07:00 akpm@osdl.org +31 -4 # sh: merge. # # arch/sh/kernel/irq.c # 2004/06/24 01:56:13-07:00 akpm@osdl.org +43 -0 # sh: merge. # # arch/sh/kernel/io_generic.c # 2004/06/24 01:56:13-07:00 akpm@osdl.org +51 -7 # sh: merge. # # arch/sh/kernel/entry.S # 2004/06/24 01:56:13-07:00 akpm@osdl.org +9 -1 # sh: merge. # # arch/sh/kernel/cpu/init.c # 2004/06/24 01:56:13-07:00 akpm@osdl.org +34 -26 # sh: merge. # # arch/sh/kernel/cpu/bus.c # 2004/06/24 01:56:13-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/kernel/cpu/bus.c # # arch/sh/kernel/cpu/Makefile # 2004/06/24 01:56:13-07:00 akpm@osdl.org +1 -1 # sh: merge. # # arch/sh/boot/compressed/misc.c # 2004/06/24 01:56:13-07:00 akpm@osdl.org +18 -16 # sh: merge. # # arch/sh/boot/compressed/Makefile # 2004/06/24 01:56:13-07:00 akpm@osdl.org +4 -0 # sh: merge. # # arch/sh/Makefile # 2004/06/24 01:56:13-07:00 akpm@osdl.org +22 -6 # sh: merge. # # arch/sh/Kconfig # 2004/06/24 01:56:13-07:00 akpm@osdl.org +114 -12 # sh: merge. # # Documentation/sh/new-machine.txt # 2004/06/24 01:56:13-07:00 akpm@osdl.org +1 -7 # sh: merge. # # ChangeSet # 2004/06/24 09:27:23-07:00 akpm@osdl.org # [PATCH] sh: VoyagerGX companion chip support. # # From: Paul Mundt # # This adds support for the SM501/VoyagerGX companion chip, used by the # RTS7751R2D. # # Signed-off-by: Paul Mundt # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/sh/cchips/voyagergx/setup.c # 2004/06/24 01:56:12-07:00 akpm@osdl.org +37 -0 # sh: VoyagerGX companion chip support. # # arch/sh/cchips/voyagergx/irq.c # 2004/06/24 01:56:12-07:00 akpm@osdl.org +194 -0 # sh: VoyagerGX companion chip support. # # arch/sh/cchips/voyagergx/consistent.c # 2004/06/24 01:56:12-07:00 akpm@osdl.org +126 -0 # sh: VoyagerGX companion chip support. # # arch/sh/cchips/voyagergx/Makefile # 2004/06/24 01:56:12-07:00 akpm@osdl.org +8 -0 # sh: VoyagerGX companion chip support. # # arch/sh/cchips/voyagergx/setup.c # 2004/06/24 01:56:12-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/cchips/voyagergx/setup.c # # arch/sh/cchips/voyagergx/irq.c # 2004/06/24 01:56:12-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/cchips/voyagergx/irq.c # # arch/sh/cchips/voyagergx/consistent.c # 2004/06/24 01:56:12-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/cchips/voyagergx/consistent.c # # arch/sh/cchips/voyagergx/Makefile # 2004/06/24 01:56:12-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/cchips/voyagergx/Makefile # # arch/sh/cchips/Kconfig # 2004/06/24 01:56:12-07:00 akpm@osdl.org +13 -0 # sh: VoyagerGX companion chip support. # # ChangeSet # 2004/06/24 09:27:11-07:00 akpm@osdl.org # [PATCH] sh: SH7705/SH7300 subtype support, ST40 updates. # # From: Paul Mundt # # This adds support for the SH7705 and SH7300 subtypes and also updates some # ST40-specific FRQCR handling code. # # Signed-off-by: Alex Bennee # Signed-off-by: Hiroshi DOYU # Signed-off-by: Paul Mundt # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-sh/ubc.h # 2004/06/24 01:56:12-07:00 akpm@osdl.org +2 -1 # sh: SH7705/SH7300 subtype support, ST40 updates. # # include/asm-sh/processor.h # 2004/06/24 01:56:12-07:00 akpm@osdl.org +2 -2 # sh: SH7705/SH7300 subtype support, ST40 updates. # # include/asm-sh/irq.h # 2004/06/24 01:56:12-07:00 akpm@osdl.org +270 -20 # sh: SH7705/SH7300 subtype support, ST40 updates. # # include/asm-sh/bugs.h # 2004/06/24 01:56:12-07:00 akpm@osdl.org +1 -1 # sh: SH7705/SH7300 subtype support, ST40 updates. # # arch/sh/kernel/time.c # 2004/06/24 01:56:12-07:00 akpm@osdl.org +175 -7 # sh: SH7705/SH7300 subtype support, ST40 updates. # # arch/sh/kernel/entry.S # 2004/06/24 01:56:12-07:00 akpm@osdl.org +3 -2 # sh: SH7705/SH7300 subtype support, ST40 updates. # # arch/sh/kernel/cpu/sh3/ex.S # 2004/06/24 01:56:12-07:00 akpm@osdl.org +77 -2 # sh: SH7705/SH7300 subtype support, ST40 updates. # # arch/sh/kernel/cpu/irq_ipr.c # 2004/06/24 01:56:12-07:00 akpm@osdl.org +30 -9 # sh: SH7705/SH7300 subtype support, ST40 updates. # # ChangeSet # 2004/06/24 09:27:00-07:00 akpm@osdl.org # [PATCH] sh: PCI updates # # From: Paul Mundt # # This updates the pci-auto code, as well as adding ops and fixups for the # RTS7751R2D board. # # Signed-off-by: Paul Mundt # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/sh/drivers/pci/ops-rts7751r2d.c # 2004/06/24 01:56:12-07:00 akpm@osdl.org +74 -0 # sh: PCI updates # # arch/sh/drivers/pci/fixups-rts7751r2d.c # 2004/06/24 01:56:12-07:00 akpm@osdl.org +32 -0 # sh: PCI updates # # arch/sh/drivers/pci/pci.c # 2004/06/24 01:56:12-07:00 akpm@osdl.org +1 -1 # sh: PCI updates # # arch/sh/drivers/pci/pci-sh7751.h # 2004/06/24 01:56:12-07:00 akpm@osdl.org +7 -0 # sh: PCI updates # # arch/sh/drivers/pci/pci-sh7751.c # 2004/06/24 01:56:12-07:00 akpm@osdl.org +23 -14 # sh: PCI updates # # arch/sh/drivers/pci/pci-auto.c # 2004/06/24 01:56:12-07:00 akpm@osdl.org +119 -100 # sh: PCI updates # # arch/sh/drivers/pci/ops-snapgear.c # 2004/06/24 01:56:12-07:00 akpm@osdl.org +2 -0 # sh: PCI updates # # arch/sh/drivers/pci/ops-rts7751r2d.c # 2004/06/24 01:56:12-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/drivers/pci/ops-rts7751r2d.c # # arch/sh/drivers/pci/fixups-rts7751r2d.c # 2004/06/24 01:56:12-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/drivers/pci/fixups-rts7751r2d.c # # arch/sh/drivers/pci/Makefile # 2004/06/24 01:56:12-07:00 akpm@osdl.org +1 -0 # sh: PCI updates # # ChangeSet # 2004/06/24 09:26:49-07:00 akpm@osdl.org # [PATCH] sh: Renesas RTS7751R2D board support. # # From: Paul Mundt # # This adds support for the Renesas Technology Sales RTS7751R2D board. # # Signed-off-by: Paul Mundt # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-sh/rts7751r2d/voyagergx_reg.h # 2004/06/24 01:56:11-07:00 akpm@osdl.org +313 -0 # sh: Renesas RTS7751R2D board support. # # include/asm-sh/rts7751r2d/rts7751r2d.h # 2004/06/24 01:56:11-07:00 akpm@osdl.org +73 -0 # sh: Renesas RTS7751R2D board support. # # include/asm-sh/rts7751r2d/io.h # 2004/06/24 01:56:11-07:00 akpm@osdl.org +37 -0 # sh: Renesas RTS7751R2D board support. # # include/asm-sh/rts7751r2d/ide.h # 2004/06/24 01:56:11-07:00 akpm@osdl.org +8 -0 # sh: Renesas RTS7751R2D board support. # # arch/sh/configs/rts7751r2d_defconfig # 2004/06/24 01:56:11-07:00 akpm@osdl.org +809 -0 # sh: Renesas RTS7751R2D board support. # # arch/sh/boards/renesas/rts7751r2d/setup.c # 2004/06/24 01:56:11-07:00 akpm@osdl.org +31 -0 # sh: Renesas RTS7751R2D board support. # # arch/sh/boards/renesas/rts7751r2d/mach.c # 2004/06/24 01:56:11-07:00 akpm@osdl.org +68 -0 # sh: Renesas RTS7751R2D board support. # # arch/sh/boards/renesas/rts7751r2d/led.c # 2004/06/24 01:56:11-07:00 akpm@osdl.org +67 -0 # sh: Renesas RTS7751R2D board support. # # arch/sh/boards/renesas/rts7751r2d/irq.c # 2004/06/24 01:56:11-07:00 akpm@osdl.org +135 -0 # sh: Renesas RTS7751R2D board support. # # arch/sh/boards/renesas/rts7751r2d/Makefile # 2004/06/24 01:56:11-07:00 akpm@osdl.org +10 -0 # sh: Renesas RTS7751R2D board support. # # include/asm-sh/rts7751r2d/voyagergx_reg.h # 2004/06/24 01:56:11-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-sh/rts7751r2d/voyagergx_reg.h # # include/asm-sh/rts7751r2d/rts7751r2d.h # 2004/06/24 01:56:11-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-sh/rts7751r2d/rts7751r2d.h # # include/asm-sh/rts7751r2d/io.h # 2004/06/24 01:56:11-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-sh/rts7751r2d/io.h # # include/asm-sh/rts7751r2d/ide.h # 2004/06/24 01:56:11-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-sh/rts7751r2d/ide.h # # arch/sh/configs/rts7751r2d_defconfig # 2004/06/24 01:56:11-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/configs/rts7751r2d_defconfig # # arch/sh/boards/renesas/rts7751r2d/setup.c # 2004/06/24 01:56:11-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/boards/renesas/rts7751r2d/setup.c # # arch/sh/boards/renesas/rts7751r2d/mach.c # 2004/06/24 01:56:11-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/boards/renesas/rts7751r2d/mach.c # # arch/sh/boards/renesas/rts7751r2d/led.c # 2004/06/24 01:56:11-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/boards/renesas/rts7751r2d/led.c # # arch/sh/boards/renesas/rts7751r2d/irq.c # 2004/06/24 01:56:11-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/boards/renesas/rts7751r2d/irq.c # # arch/sh/boards/renesas/rts7751r2d/io.c # 2004/06/24 01:56:11-07:00 akpm@osdl.org +319 -0 # sh: Renesas RTS7751R2D board support. # # arch/sh/boards/renesas/rts7751r2d/Makefile # 2004/06/24 01:56:11-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/boards/renesas/rts7751r2d/Makefile # # arch/sh/boards/renesas/rts7751r2d/io.c # 2004/06/24 01:56:11-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/boards/renesas/rts7751r2d/io.c # # ChangeSet # 2004/06/24 09:26:37-07:00 akpm@osdl.org # [PATCH] sh: SolutionEngine 7300 board support. # # From: Paul Mundt # # This adds support for the SH7300 solution engine board (a forward port of the # 2.4 code). # # Signed-off-by: Hiroshi DOYU # Signed-off-by: Paul Mundt # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-sh/se7300/se7300.h # 2004/06/24 01:56:11-07:00 akpm@osdl.org +61 -0 # sh: SolutionEngine 7300 board support. # # include/asm-sh/se7300/io.h # 2004/06/24 01:56:11-07:00 akpm@osdl.org +29 -0 # sh: SolutionEngine 7300 board support. # # arch/sh/configs/se7300_defconfig # 2004/06/24 01:56:11-07:00 akpm@osdl.org +461 -0 # sh: SolutionEngine 7300 board support. # # arch/sh/boards/se/7300/setup.c # 2004/06/24 01:56:11-07:00 akpm@osdl.org +66 -0 # sh: SolutionEngine 7300 board support. # # arch/sh/boards/se/7300/led.c # 2004/06/24 01:56:11-07:00 akpm@osdl.org +69 -0 # sh: SolutionEngine 7300 board support. # # arch/sh/boards/se/7300/irq.c # 2004/06/24 01:56:11-07:00 akpm@osdl.org +37 -0 # sh: SolutionEngine 7300 board support. # # arch/sh/boards/se/7300/io.c # 2004/06/24 01:56:11-07:00 akpm@osdl.org +261 -0 # sh: SolutionEngine 7300 board support. # # arch/sh/boards/se/7300/Makefile # 2004/06/24 01:56:11-07:00 akpm@osdl.org +7 -0 # sh: SolutionEngine 7300 board support. # # include/asm-sh/se7300/se7300.h # 2004/06/24 01:56:11-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-sh/se7300/se7300.h # # include/asm-sh/se7300/io.h # 2004/06/24 01:56:11-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-sh/se7300/io.h # # arch/sh/configs/se7300_defconfig # 2004/06/24 01:56:11-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/configs/se7300_defconfig # # arch/sh/boards/se/7300/setup.c # 2004/06/24 01:56:11-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/boards/se/7300/setup.c # # arch/sh/boards/se/7300/led.c # 2004/06/24 01:56:11-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/boards/se/7300/led.c # # arch/sh/boards/se/7300/irq.c # 2004/06/24 01:56:11-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/boards/se/7300/irq.c # # arch/sh/boards/se/7300/io.c # 2004/06/24 01:56:11-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/boards/se/7300/io.c # # arch/sh/boards/se/7300/Makefile # 2004/06/24 01:56:11-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/boards/se/7300/Makefile # # ChangeSet # 2004/06/24 09:26:25-07:00 akpm@osdl.org # [PATCH] sh: sh-sci updates. # # From: Paul Mundt # # This adds support for the SH7300 as well as the SH5-101/103 processors as well # as specific board support for the RTS7751R2D. # # In addition to this, the sh early printk code is gutted so that we use the # generic CONFIG_EARLY_PRINTK interfaces instead. # # Signed-off-by: Hiroshi DOYU # Signed-off-by: Paul Mundt # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/serial/sh-sci.h # 2004/06/24 01:56:11-07:00 akpm@osdl.org +94 -4 # sh: sh-sci updates. # # drivers/serial/sh-sci.c # 2004/06/24 01:56:11-07:00 akpm@osdl.org +131 -32 # sh: sh-sci updates. # # ChangeSet # 2004/06/24 09:26:14-07:00 akpm@osdl.org # [PATCH] sh: ptep_get_and_clear() compile fix. # # From: Paul Mundt # # This fixes up a compile error occuring with ptep_get_and_clear() existing in # pgalloc.h. We move it to a somewhat more sensible location instead, and take # this opportunity to make some cleanups for use of generic code in the SH-3 # case, etc. # # Signed-off-by: Paul Mundt # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-sh/pgtable.h # 2004/06/24 01:56:10-07:00 akpm@osdl.org +19 -25 # sh: ptep_get_and_clear() compile fix. # # include/asm-sh/pgalloc.h # 2004/06/24 01:56:10-07:00 akpm@osdl.org +3 -64 # sh: ptep_get_and_clear() compile fix. # # arch/sh/mm/pg-sh4.c # 2004/06/24 01:56:10-07:00 akpm@osdl.org +23 -4 # sh: ptep_get_and_clear() compile fix. # # ChangeSet # 2004/06/24 09:26:04-07:00 akpm@osdl.org # [PATCH] sh: IDE cleanup. # # From: Paul Mundt # # This does a bit of IDE cleanup (in preparation for the SuperH generic IDE host # driver). This also adds SuperH to the list of platforms that are interested # in CONFIG_IDE_MAX_HWIFS. # # Signed-off-by: Paul Mundt # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-sh/ide.h # 2004/06/24 01:56:10-07:00 akpm@osdl.org +2 -63 # sh: IDE cleanup. # # include/asm-sh/hp6xx/ide.h # 2004/06/24 01:56:10-07:00 akpm@osdl.org +8 -0 # sh: IDE cleanup. # # drivers/ide/Kconfig # 2004/06/24 01:56:10-07:00 akpm@osdl.org +1 -1 # sh: IDE cleanup. # # include/asm-sh/hp6xx/ide.h # 2004/06/24 01:56:10-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-sh/hp6xx/ide.h # # ChangeSet # 2004/06/24 09:25:52-07:00 akpm@osdl.org # [PATCH] sh: Renesas HS7751RVoIP board support. # # From: Paul Mundt # # This adds support for the Renesas Technology Sales HS7751RVoIP board. # # Signed-off-by: Paul Mundt # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-sh/hs7751rvoip/io.h # 2004/06/24 01:56:10-07:00 akpm@osdl.org +39 -0 # sh: Renesas HS7751RVoIP board support. # # include/asm-sh/hs7751rvoip/ide.h # 2004/06/24 01:56:10-07:00 akpm@osdl.org +8 -0 # sh: Renesas HS7751RVoIP board support. # # include/asm-sh/hs7751rvoip/hs7751rvoip.h # 2004/06/24 01:56:10-07:00 akpm@osdl.org +47 -0 # sh: Renesas HS7751RVoIP board support. # # arch/sh/boards/renesas/hs7751rvoip/setup.c # 2004/06/24 01:56:10-07:00 akpm@osdl.org +89 -0 # sh: Renesas HS7751RVoIP board support. # # arch/sh/boards/renesas/hs7751rvoip/pci.c # 2004/06/24 01:56:10-07:00 akpm@osdl.org +150 -0 # sh: Renesas HS7751RVoIP board support. # # arch/sh/boards/renesas/hs7751rvoip/mach.c # 2004/06/24 01:56:10-07:00 akpm@osdl.org +55 -0 # sh: Renesas HS7751RVoIP board support. # # arch/sh/boards/renesas/hs7751rvoip/led.c # 2004/06/24 01:56:10-07:00 akpm@osdl.org +27 -0 # sh: Renesas HS7751RVoIP board support. # # arch/sh/boards/renesas/hs7751rvoip/irq.c # 2004/06/24 01:56:10-07:00 akpm@osdl.org +122 -0 # sh: Renesas HS7751RVoIP board support. # # arch/sh/boards/renesas/hs7751rvoip/io.c # 2004/06/24 01:56:10-07:00 akpm@osdl.org +310 -0 # sh: Renesas HS7751RVoIP board support. # # arch/sh/boards/renesas/hs7751rvoip/Makefile # 2004/06/24 01:56:10-07:00 akpm@osdl.org +12 -0 # sh: Renesas HS7751RVoIP board support. # # include/asm-sh/hs7751rvoip/io.h # 2004/06/24 01:56:10-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-sh/hs7751rvoip/io.h # # include/asm-sh/hs7751rvoip/ide.h # 2004/06/24 01:56:10-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-sh/hs7751rvoip/ide.h # # include/asm-sh/hs7751rvoip/hs7751rvoip.h # 2004/06/24 01:56:10-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-sh/hs7751rvoip/hs7751rvoip.h # # arch/sh/boards/renesas/hs7751rvoip/setup.c # 2004/06/24 01:56:10-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/boards/renesas/hs7751rvoip/setup.c # # arch/sh/boards/renesas/hs7751rvoip/pci.c # 2004/06/24 01:56:10-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/boards/renesas/hs7751rvoip/pci.c # # arch/sh/boards/renesas/hs7751rvoip/mach.c # 2004/06/24 01:56:10-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/boards/renesas/hs7751rvoip/mach.c # # arch/sh/boards/renesas/hs7751rvoip/led.c # 2004/06/24 01:56:10-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/boards/renesas/hs7751rvoip/led.c # # arch/sh/boards/renesas/hs7751rvoip/irq.c # 2004/06/24 01:56:10-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/boards/renesas/hs7751rvoip/irq.c # # arch/sh/boards/renesas/hs7751rvoip/io.c # 2004/06/24 01:56:10-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/boards/renesas/hs7751rvoip/io.c # # arch/sh/boards/renesas/hs7751rvoip/Makefile # 2004/06/24 01:56:10-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/boards/renesas/hs7751rvoip/Makefile # # ChangeSet # 2004/06/24 09:25:41-07:00 akpm@osdl.org # [PATCH] sh: fixmap support. # # From: Paul Mundt # # This adds fixmap support for sh. # # Signed-off-by: Paul Mundt # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-sh/pgtable.h # 2004/06/24 01:56:09-07:00 akpm@osdl.org +3 -2 # sh: fixmap support. # # include/asm-sh/fixmap.h # 2004/06/24 01:56:09-07:00 akpm@osdl.org +111 -0 # sh: fixmap support. # # arch/sh/mm/init.c # 2004/06/24 01:56:09-07:00 akpm@osdl.org +61 -1 # sh: fixmap support. # # include/asm-sh/fixmap.h # 2004/06/24 01:56:09-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-sh/fixmap.h # # ChangeSet # 2004/06/24 09:25:29-07:00 akpm@osdl.org # [PATCH] sh: early printk() cleanup. # # From: Paul Mundt # # sh was using its own CONFIG_SH_EARLY_PRINTK, this is no longer necessary as we # can easily work with the generic CONFIG_EARLY_PRINTK. # # Signed-off-by: Paul Mundt # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/sh/kernel/early_printk.c # 2004/06/24 01:56:09-07:00 akpm@osdl.org +135 -0 # sh: early printk() cleanup. # # arch/sh/kernel/early_printk.c # 2004/06/24 01:56:09-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/kernel/early_printk.c # # arch/sh/kernel/Makefile # 2004/06/24 01:56:09-07:00 akpm@osdl.org +1 -0 # sh: early printk() cleanup. # # arch/sh/defconfig # 2004/06/24 01:56:09-07:00 akpm@osdl.org +1 -1 # sh: early printk() cleanup. # # ChangeSet # 2004/06/24 09:25:17-07:00 akpm@osdl.org # [PATCH] sh: DMA driver updates. # # From: Paul Mundt # # This updates the SuperH DMA driver, as well as cleaning up the registration # interface. # # We also drop the use of bitfields in dma-sh since things like the SH4-202, # 7751R, 7760, etc. all have a completely different set of register # definitions. # # Signed-off-by: Paul Mundt # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-sh/dma.h # 2004/06/24 01:56:09-07:00 akpm@osdl.org +53 -18 # sh: DMA driver updates. # # include/asm-sh/cpu-sh4/dma.h # 2004/06/24 01:56:09-07:00 akpm@osdl.org +10 -0 # sh: DMA driver updates. # # arch/sh/drivers/dma/dma-sysfs.c # 2004/06/24 01:56:09-07:00 akpm@osdl.org +133 -0 # sh: DMA driver updates. # # arch/sh/drivers/dma/dma-sh.c # 2004/06/24 01:56:09-07:00 akpm@osdl.org +86 -78 # sh: DMA driver updates. # # arch/sh/drivers/dma/dma-isa.c # 2004/06/24 01:56:09-07:00 akpm@osdl.org +21 -8 # sh: DMA driver updates. # # arch/sh/drivers/dma/dma-api.c # 2004/06/24 01:56:09-07:00 akpm@osdl.org +134 -41 # sh: DMA driver updates. # # arch/sh/drivers/dma/Makefile # 2004/06/24 01:56:09-07:00 akpm@osdl.org +1 -0 # sh: DMA driver updates. # # arch/sh/drivers/dma/dma-sysfs.c # 2004/06/24 01:56:09-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/drivers/dma/dma-sysfs.c # # ChangeSet # 2004/06/24 09:25:06-07:00 akpm@osdl.org # [PATCH] sh: dma-mapping updates. # # From: Paul Mundt # # This updates the sh dma-mapping code, as well as doing some cleanup in the # consistent API. We also add a consistent_{alloc,free} to the machvec for # platforms that need special handling. # # Signed-off-by: Paul Mundt # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-sh/machvec.h # 2004/06/24 01:56:09-07:00 akpm@osdl.org +4 -0 # sh: dma-mapping updates. # # include/asm-sh/dma-mapping.h # 2004/06/24 01:56:09-07:00 akpm@osdl.org +32 -0 # sh: dma-mapping updates. # # arch/sh/mm/consistent.c # 2004/06/24 01:56:09-07:00 akpm@osdl.org +21 -19 # sh: dma-mapping updates. # # ChangeSet # 2004/06/24 09:24:55-07:00 akpm@osdl.org # [PATCH] sh: SH-3 On-Chip ADC support # # From: Paul Mundt # # This adds support for the SH-3's on-chip ADC (which is needed by things like # the touchscreen, etc.). # # Signed-off-by: Andriy Skulysh # Signed-off-by: Paul Mundt # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-sh/cpu-sh3/adc.h # 2004/06/24 01:56:08-07:00 akpm@osdl.org +28 -0 # sh: SH-3 On-Chip ADC support # # include/asm-sh/adc.h # 2004/06/24 01:56:08-07:00 akpm@osdl.org +12 -0 # sh: SH-3 On-Chip ADC support # # include/asm-sh/hp6xx/hp6xx.h # 2004/06/24 01:56:08-07:00 akpm@osdl.org +15 -3 # sh: SH-3 On-Chip ADC support # # include/asm-sh/cpu-sh3/adc.h # 2004/06/24 01:56:08-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-sh/cpu-sh3/adc.h # # include/asm-sh/adc.h # 2004/06/24 01:56:08-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-sh/adc.h # # arch/sh/kernel/cpu/adc.c # 2004/06/24 01:56:08-07:00 akpm@osdl.org +36 -0 # sh: SH-3 On-Chip ADC support # # arch/sh/kernel/cpu/Makefile # 2004/06/24 01:56:08-07:00 akpm@osdl.org +1 -0 # sh: SH-3 On-Chip ADC support # # arch/sh/kernel/cpu/adc.c # 2004/06/24 01:56:08-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/sh/kernel/cpu/adc.c # # ChangeSet # 2004/06/24 09:24:44-07:00 akpm@osdl.org # [PATCH] oom killer: ignore free swapspace # # From: William Lee Irwin III # # During stress testing at Oracle to determine the maximum number of clients # 2.6 can service, it was discovered that the failure mode of excessive # numbers of clients was kernel deadlock. The following patch removes the # check if (nr_swap_pages > 0) from out_of_memory() as this heuristic fails # to detect memory exhaustion due to pinned allocations, directly causing the # aforementioned deadlock. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/oom_kill.c # 2004/06/24 01:56:08-07:00 akpm@osdl.org +0 -6 # oom killer: ignore free swapspace # # ChangeSet # 2004/06/24 09:24:33-07:00 akpm@osdl.org # [PATCH] hugetlb.c - fix try_to_free_low() # # From: "Chen, Kenneth W" # # Turn on CONFIG_HIGHMEM and CONFIG_HUGETLBFS. Try to config the hugetlb # pool: # # [root@quokka]# echo 100 > /proc/sys/vm/nr_hugepages # [root@quokka]# grep HugePage /proc/meminfo # HugePages_Total: 100 # HugePages_Free: 100 # # [root@quokka]# echo 20 > /proc/sys/vm/nr_hugepages # [root@quokka]# grep HugePage /proc/meminfo # HugePages_Total: 0 # HugePages_Free: 0 # # [root@quokka]# echo 100 > /proc/sys/vm/nr_hugepages # [root@quokka]# grep HugePage /proc/meminfo # HugePages_Total: 100 # HugePages_Free: 100 # # [root@quokka]# echo 0 > /proc/sys/vm/nr_hugepages # [root@quokka]# grep HugePage /proc/meminfo # HugePages_Total: 31 # HugePages_Free: 31 # # The argument "count" passed to try_to_free_low() is the config parameter # for desired hugetlb page pool size. But the implementation took that input # argument as number of pages to free. It also decrement the config # parameter as well. All give random behavior depend on how many hugetlb # pages are in normal/highmem zone. # # A two line fix in try_to_free_low() would be: # # - if (!--count) # - return 0; # + if (count >= nr_huge_pages) # + return count; # # But more appropriately, that function shouldn't return anything. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/hugetlb.c # 2004/06/24 01:56:08-07:00 akpm@osdl.org +6 -7 # hugetlb.c - fix try_to_free_low() # # ChangeSet # 2004/06/24 09:24:22-07:00 akpm@osdl.org # [PATCH] sparse: fixes for "assignment expression in conditional" in fs/* # # From: Mika Kukkonen # # Fix various sparse "assignment expression in conditional" warnings in fs/ # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/quota.c # 2004/06/24 01:56:07-07:00 akpm@osdl.org +1 -1 # sparse: fixes for "assignment expression in conditional" in fs/* # # fs/lockd/svcshare.c # 2004/06/24 01:56:07-07:00 akpm@osdl.org +1 -1 # sparse: fixes for "assignment expression in conditional" in fs/* # # fs/lockd/svclock.c # 2004/06/24 01:56:07-07:00 akpm@osdl.org +5 -5 # sparse: fixes for "assignment expression in conditional" in fs/* # # fs/lockd/host.c # 2004/06/24 01:56:07-07:00 akpm@osdl.org +2 -2 # sparse: fixes for "assignment expression in conditional" in fs/* # # fs/jfs/jfs_txnmgr.c # 2004/06/24 01:56:07-07:00 akpm@osdl.org +1 -1 # sparse: fixes for "assignment expression in conditional" in fs/* # # fs/jfs/jfs_logmgr.c # 2004/06/24 01:56:07-07:00 akpm@osdl.org +1 -1 # sparse: fixes for "assignment expression in conditional" in fs/* # # fs/jfs/jfs_extent.c # 2004/06/24 01:56:07-07:00 akpm@osdl.org +1 -1 # sparse: fixes for "assignment expression in conditional" in fs/* # # fs/hpfs/alloc.c # 2004/06/24 01:56:07-07:00 akpm@osdl.org +2 -2 # sparse: fixes for "assignment expression in conditional" in fs/* # # fs/hfsplus/wrapper.c # 2004/06/24 01:56:07-07:00 akpm@osdl.org +1 -1 # sparse: fixes for "assignment expression in conditional" in fs/* # # fs/hfsplus/bnode.c # 2004/06/24 01:56:07-07:00 akpm@osdl.org +5 -5 # sparse: fixes for "assignment expression in conditional" in fs/* # # fs/hfs/super.c # 2004/06/24 01:56:07-07:00 akpm@osdl.org +1 -1 # sparse: fixes for "assignment expression in conditional" in fs/* # # fs/eventpoll.c # 2004/06/24 01:56:07-07:00 akpm@osdl.org +1 -1 # sparse: fixes for "assignment expression in conditional" in fs/* # # fs/autofs4/waitq.c # 2004/06/24 01:56:07-07:00 akpm@osdl.org +1 -1 # sparse: fixes for "assignment expression in conditional" in fs/* # # fs/autofs/waitq.c # 2004/06/24 01:56:07-07:00 akpm@osdl.org +1 -1 # sparse: fixes for "assignment expression in conditional" in fs/* # # fs/afs/super.c # 2004/06/24 01:56:07-07:00 akpm@osdl.org +1 -1 # sparse: fixes for "assignment expression in conditional" in fs/* # # fs/affs/amigaffs.c # 2004/06/24 01:56:07-07:00 akpm@osdl.org +1 -1 # sparse: fixes for "assignment expression in conditional" in fs/* # # ChangeSet # 2004/06/24 09:24:10-07:00 akpm@osdl.org # [PATCH] consolidate in-kernel configuration # # From: Andy Whitcroft # # Being able to recover the configuration from a kernel is very useful and it # would be nice to default this option to Yes. Currently, to have the config # available both from the image (using extract-ikconfig) and via /proc we # keep two copies of the original .config in the kernel. One in plain text # and one gzip compressed. This is not optimal. # # This patch removes the plain text version of the configuration and updates # the extraction tools to locate and use the gzip'd version of the file. # This has the added bonus of providing us with the exact same results in # both cases, the original .config; including the comments. # # Signed-off-by: Andy Whitcroft # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # scripts/extract-ikconfig # 2004/06/24 01:56:07-07:00 akpm@osdl.org +49 -38 # consolidate in-kernel configuration # # kernel/configs.c # 2004/06/24 01:56:07-07:00 akpm@osdl.org +19 -6 # consolidate in-kernel configuration # # kernel/Makefile # 2004/06/24 01:56:07-07:00 akpm@osdl.org +1 -17 # consolidate in-kernel configuration # # ChangeSet # 2004/06/24 09:23:59-07:00 akpm@osdl.org # [PATCH] swsusp: shuffle cpu.c to make it usable for smp suspend # # From: Pavel Machek # # This moves fix_processor_context() so that additional prototype is not # needed, and adds context * to processor state saving functions, so that # they can be used on SMP. It should be done this way from the beggining. # # Signed-off-by: Pavel Machek # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/power/cpu.c # 2004/06/24 01:56:07-07:00 akpm@osdl.org +60 -49 # swsusp: shuffle cpu.c to make it usable for smp suspend # # ChangeSet # 2004/06/24 09:23:48-07:00 akpm@osdl.org # [PATCH] Prepare for SMP suspend # # From: Pavel Machek # # Its very bad idea to freeze migration threads, as it crashes machine upon # next call to "schedule()". In refrigerator, I had one "wake_up_process()" # too many. This fixes it. # # Signed-off-by: Pavel Machek # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/sched.c # 2004/06/24 01:56:07-07:00 akpm@osdl.org +1 -0 # Prepare for SMP suspend # # kernel/power/process.c # 2004/06/24 01:56:07-07:00 akpm@osdl.org +0 -1 # Prepare for SMP suspend # # ChangeSet # 2004/06/24 09:23:37-07:00 akpm@osdl.org # [PATCH] swsusp minor docs updates # # From: Pavel Machek # # I shot myself in the foot with swsusp, so I guess documenting that # particular trap is right thing to do (tm). Somehow two copies of "radeon # hint" crept in; fix that, too. # # Signed-off-by: Pavel Machek # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # Documentation/power/video.txt # 2004/06/24 01:56:06-07:00 akpm@osdl.org +0 -4 # swsusp minor docs updates # # Documentation/power/swsusp.txt # 2004/06/24 01:56:06-07:00 akpm@osdl.org +3 -0 # swsusp minor docs updates # # ChangeSet # 2004/06/24 09:23:26-07:00 akpm@osdl.org # [PATCH] hugetlb.c: use safe iterator # # From: "Chen, Kenneth W" # # With list poisoning on by default from linux-2.6.7, it's easier than ever to # trigger the bug in try_to_free_low(). It ought to use the safe version of # list iterater. # # Signed-off-by: Ken Chen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/hugetlb.c # 2004/06/24 01:56:06-07:00 akpm@osdl.org +2 -2 # hugetlb.c: use safe iterator # # ChangeSet # 2004/06/24 09:23:15-07:00 akpm@osdl.org # [PATCH] update ikconfig generator script # # From: "Randy.Dunlap" # # http://bugme.osdl.org/show_bug.cgi?id=2701 # # Current script has problems with some shells and utilities. Remove use of # 'echo' in the script. # # From: Roman Zippel # Signed-off-by: Randy Dunlap # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # scripts/mkconfigs # 2004/06/24 01:56:06-07:00 akpm@osdl.org +11 -11 # update ikconfig generator script # # ChangeSet # 2004/06/24 09:23:04-07:00 akpm@osdl.org # [PATCH] update ikconfig help text # # From: "Randy.Dunlap" # # Some elements of ikconfig have been removed, but the help text wasn't # updated to reflect those changes. # # Signed-off-by: Randy Dunlap # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # init/Kconfig # 2004/06/24 01:56:06-07:00 akpm@osdl.org +4 -10 # update ikconfig help text # # ChangeSet # 2004/06/24 09:22:53-07:00 akpm@osdl.org # [PATCH] cirrusfb: major update # # From: David Eger # # This patch brings the cirrusfb driver up to date with 2.6. cirrusfb has # suffered bit rot like you wouldn't believe (last updated... 2.3.x era?). # The driver will now compile again, and you can change to a high resolution # text mode with stty. Known defects: doesn't play nice with X, nor fbset. # # C = Cosmetic change # L = Logical change # A = API change # W = register Writing change # # (1-CA) fb_info and cirrusfb_info: # - mostly cosmetic, but a lot less confusing, and no more nasty casting. # # It used to be stylish to embed struct fb_info_gen (now struct fb_info) # as the first member of struct clgenfb_info (now struct cirrusfb_info), # and then you'd cast to the deisred struct. # Now we pass the size of our data structure to framebuffer_alloc(), # and we make fb_info and cirrusfb_info reference each other with # pointers (as in radeonfb). # # In the old code, there two declarations were common: # # clgenfb_info *fb_info; # clgenfb_info *info; # # since there's also a 'struct fb_info' now, I found this really confusing, # and unified usage as: # # cirrusfb_info *cinfo; # fb_info *info; # # This accounts for a lot of the search and replace cosmetic upgrade. # # (2-A) All of the FB knowledge of FB internals is gone in 2.6 # # (3-LW) revised maxclock numbers (cirrusfb_board_info_rec.maxclock[5]) # # In my quest to get fbset to work, I borrowed some maxclock data # from the X.Org tree for various chipsets. It didn't really seem # to help. oh well. # # (3-LA) upgraded PCI registration # # Instead of doing PCI walking from the driver, we hand off a # pci_device_id table to the PCI subsystem and just get called when # it finds a relevant board. # # (4-L) striking lots of __init and __initdata specifiers # # I was running into some things not working when I moved the call to # init_vgachip() from the driver registration to set_par(). I thought # perhaps this was due to some things being marked __init accidentally # so I axed said annotations. Turns out it was something else. See 5. # # (5-LA) delayed chip initialization, nasty double-set_par() pseudo-bug # # Tony says that the fb drivers shouldn't do any chipset initialization # until they get a set_par() call. This way, fb modules can be safely # unloaded if no one gets around to using them, and the vga_con -> fbcon # hand off is smoother, as fbcon can still grab the back-scroll data from # vga_con... # # In any case, moving the calls to init_vgachip() and fbgen_do_set_var() # from driver initialization to set_par() revealed that the cirrus # register-writing function needs to be called twice for a mode change to # work. I don't understand why. # # (6-LA) split clgen_decode_var() into the bits that check the var and the # bits that actually generate register information (par/regs) to write # # Adding modedb hooks here might actually fix fbset, i think... # # (7-LW) No longer write the palette in init_vgachip() nor in set_par(). # Someone else (fbcon?) seems to be making its own calls to setcolreg() # for us. # # (8-LW) setcolreg() -- while removing all of the console cruft, I had # to try to reconstitute the palette code. I think I got this right, # but I could be off -- the penguin boots in the correct colors at least ;-) # # (9-L) pan_display() - we don't do wrap, silly. that's only on the amiga. # # (10-L) pan+BLT - to make pan play nicely with copyarea()/fillrect() # I had to add a couple of calls to cirrusfb_WaitBLT() to make sure # the engine is idle. # # (11-LW) cirrusfb_blank() - I upgraded the switch here to use the new # VESA_* blanking mode constants. I think I translated the right # logic for the right blanking levels. # # # Signed-off-by: David Eger # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/video/fbmem.c # 2004/06/24 01:56:05-07:00 akpm@osdl.org +4 -4 # cirrusfb: major update # # drivers/video/cirrusfb.c # 2004/06/24 01:56:05-07:00 akpm@osdl.org +1228 -1556 # cirrusfb: major update # # drivers/video/Makefile # 2004/06/24 01:56:05-07:00 akpm@osdl.org +1 -1 # cirrusfb: major update # # drivers/video/Kconfig # 2004/06/24 01:56:05-07:00 akpm@osdl.org +1 -1 # cirrusfb: major update # # ChangeSet # 2004/06/24 09:22:42-07:00 akpm@osdl.org # [PATCH] h8300: delete obsolute header # # From: Yoshinori Sato # # - delete obsolute(unused) header file # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # BitKeeper/deleted/.del-h8300_ne.h~b7511d0a22156c44 # 2004/06/24 09:22:36-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-h8300/h8300_ne.h # # ChangeSet # 2004/06/24 09:22:31-07:00 akpm@osdl.org # [PATCH] zap_pte_range speedup # # From: Hugh Dickins # # zap_pte_range is wasting time marking anon pages accessed: its original # !PageSwapCache test should have been reinstated when page_mapping was # changed to return swapper_space; or more simply, just check !PageAnon. # # Signed-off-by: Hugh Dickins # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/memory.c # 2004/06/24 01:56:05-07:00 akpm@osdl.org +1 -1 # zap_pte_range speedup # # ChangeSet # 2004/06/24 09:22:20-07:00 akpm@osdl.org # [PATCH] drivers/media/video/tda9840.c: honour return code of i2c_add_driver() # # From: Michael Hunold # # i2c_add_driver() may actually fail, but my driver returns 0 regardless. # Thanks to Arthur Othieno for this obviously correct # patch. # # Signed-off-by: Michael Hunold # Signed-off-by: Arthur Othieno # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/media/video/tda9840.c # 2004/06/24 01:56:05-07:00 akpm@osdl.org +3 -5 # drivers/media/video/tda9840.c: honour return code of i2c_add_driver() # # ChangeSet # 2004/06/24 09:22:08-07:00 akpm@osdl.org # [PATCH] fix allocate_pgdat comments # # From: "Martin J. Bligh" # # From: Andy Whitcroft # # The comments for i386 allocate_pgdat indicate that the routine should be # modified to place the pgdat into node local memory. However, this has # already been done as the pgdat is placed at node_remap_start_vaddr. This # patch updates the comments to reflect this reality. # # Signed-off-by: Andy Whitcroft # Signed-off-by: Martin J. Bligh # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/mm/discontig.c # 2004/06/24 01:56:04-07:00 akpm@osdl.org +5 -2 # fix allocate_pgdat comments # # ChangeSet # 2004/06/24 09:21:57-07:00 akpm@osdl.org # [PATCH] SELinux: Extend and revise calls to secondary module # # From: Stephen Smalley # # This patch extends the set of calls to the secondary security module by # SELinux as well as revising a few existing calls to support other security # modules and to more cleanly stack with the capability module. Please # apply. # # Signed-off-by: Stephen Smalley # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # security/selinux/hooks.c # 2004/06/24 01:56:04-07:00 akpm@osdl.org +85 -9 # SELinux: Extend and revise calls to secondary module # # ChangeSet # 2004/06/24 09:21:46-07:00 akpm@osdl.org # [PATCH] (o)profile Documentation/basic_profiling.txt updates # # From: bert hubert # # Signed-off-by: bert hubert # Signed-off-by: John Levon # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # Documentation/basic_profiling.txt # 2004/06/24 01:56:04-07:00 akpm@osdl.org +22 -18 # (o)profile Documentation/basic_profiling.txt updates # # ChangeSet # 2004/06/24 09:21:35-07:00 akpm@osdl.org # [PATCH] Add PPC85xx MAINTAINERS entry # # From: Kumar Gala # # Added myself to the MAINTAINERS file for 85xx. Added an entry into the # CREDITS file for me. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # MAINTAINERS # 2004/06/24 01:56:04-07:00 akpm@osdl.org +7 -0 # Add PPC85xx MAINTAINERS entry # # CREDITS # 2004/06/24 01:56:04-07:00 akpm@osdl.org +6 -0 # Add PPC85xx MAINTAINERS entry # # ChangeSet # 2004/06/24 09:21:24-07:00 akpm@osdl.org # [PATCH] ppc64: fix POWER3 NUMA init # # From: Anton Blanchard # # We were passing in the hole size as kB not pages to free_area_init which # made the VM misbehave. This only hit on POWER3 because POWER4 and newer # places IO above all memory and so doesnt have a hole. # # Signed-off-by: Anton Blanchard # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/ppc64/mm/numa.c # 2004/06/24 01:56:03-07:00 akpm@osdl.org +1 -1 # ppc64: fix POWER3 NUMA init # # ChangeSet # 2004/06/24 09:21:13-07:00 akpm@osdl.org # [PATCH] fbdev: video mode change notify (fbset) # # From: "Antonino A. Daplas" # # This patch allows fbset to change the video mode and the console window # size via the notifier call chain. It will only notify fbcon of mode # changes from user space. Changes coming from upstream will be ignored. # # The code will only update the current console. # # Signed-off-by: Antonino Daplas # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/fb.h # 2004/06/24 01:56:03-07:00 akpm@osdl.org +2 -0 # fbdev: video mode change notify (fbset) # # drivers/video/fbmem.c # 2004/06/24 01:56:03-07:00 akpm@osdl.org +7 -1 # fbdev: video mode change notify (fbset) # # drivers/video/console/fbcon.c # 2004/06/24 01:56:03-07:00 akpm@osdl.org +53 -0 # fbdev: video mode change notify (fbset) # # ChangeSet # 2004/06/24 09:21:01-07:00 akpm@osdl.org # [PATCH] Core fbcon fixes # # From: "Antonino A. Daplas" # # This patch fixes the following bugs/regressions for fbcon: # # 1. Initialize and update global arrays used by fbcon during # initialization and and by set_con2fbmap code. # # 2. Fixed screen corruption (white rectangle) at initial mode setting # plaguing cards with VGA cores and with VGA console enabled. (vga16fb, # however, still shows remnants of previous text if boot logo is enabled) # # 3. Improved fbcon_startup/fbcon_init code. # # 4. Fixed set_con2fbmap code -- should support multiple devices mapped to # # Signed-off-by: Antonino A. Daplas # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/fb.h # 2004/06/24 01:56:03-07:00 akpm@osdl.org +1 -0 # Core fbcon fixes # # drivers/video/fbmem.c # 2004/06/24 01:56:03-07:00 akpm@osdl.org +11 -5 # Core fbcon fixes # # drivers/video/console/fbcon.c # 2004/06/24 01:56:03-07:00 akpm@osdl.org +260 -72 # Core fbcon fixes # # ChangeSet # 2004/06/24 09:20:50-07:00 akpm@osdl.org # [PATCH] SubmittingDrivers fix # # From: Jesper Juhl # # Here's a small patch that lists X.Org as well as XFree86 in # Documentation/SubmittingDrivers in the section talking about video drivers. # # Signed-off-by: Jesper Juhl # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # Documentation/SubmittingDrivers # 2004/06/24 01:56:03-07:00 akpm@osdl.org +2 -1 # SubmittingDrivers fix # # ChangeSet # 2004/06/24 09:20:39-07:00 akpm@osdl.org # [PATCH] OProfile: allow normal user to trigger sample dumps # # From: John Levon # # In 2.4, OProfile allowed normal users to trigger sample dumps (useful under # low sample load). The patch below, by Will Cohen, allows this for 2.6 too. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/oprofile.h # 2004/06/24 01:56:02-07:00 akpm@osdl.org +3 -0 # OProfile: allow normal user to trigger sample dumps # # drivers/oprofile/oprofilefs.c # 2004/06/24 01:56:02-07:00 akpm@osdl.org +19 -6 # OProfile: allow normal user to trigger sample dumps # # drivers/oprofile/oprofile_files.c # 2004/06/24 01:56:02-07:00 akpm@osdl.org +1 -1 # OProfile: allow normal user to trigger sample dumps # # ChangeSet # 2004/06/24 09:20:28-07:00 akpm@osdl.org # [PATCH] Fix early CPU vendor detection for non intel cpus # # From: Andi Kleen # # Early CPU detect can only work after the various sub CPU drivers have # registered their devices. # # Currently the vendor would be always 0, which is Intel. # # This prevents Athlons from being recognized as buggy PPros and fixes some # other workarounds for non Intel CPUs too. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/kernel/cpu/common.c # 2004/06/24 01:56:02-07:00 akpm@osdl.org +1 -1 # Fix early CPU vendor detection for non intel cpus # # ChangeSet # 2004/06/24 09:20:17-07:00 akpm@osdl.org # [PATCH] fix linker trouble with CONFIG_FB_RIVA_I2C=y and modular I2C # # From: Adrian Bunk # # > This version causes linker trouble with # > CONFIG_I2C=m # > CONFIG_I2C_ALGOBIT=m # > CONFIG_FB_RIVA_I2C=y # > # > CC init/version.o # > LD init/built-in.o # > LD .tmp_vmlinux1 # > drivers/built-in.o(.text+0xda101): In function `riva_setup_i2c_bus': # > : undefined reference to `i2c_bit_add_bus' # > drivers/built-in.o(.text+0xda218): In function `riva_delete_i2c_busses': # > : undefined reference to `i2c_bit_del_bus' # > drivers/built-in.o(.text+0xda237): In function `riva_delete_i2c_busses': # > : undefined reference to `i2c_bit_del_bus' # > drivers/built-in.o(.text+0xda2c9): In function `riva_do_probe_i2c_edid': # > : undefined reference to `i2c_transfer' # > make: *** [.tmp_vmlinux1] Error 1 # >... # # The problem is: # FB_RIVA=y # FB_RIVA_I2C=y # I2C=m # I2C_ALGOBIT=m # # The patch below fixes this. # # Besides this, it contains: # - help text by Antonino A. Daplas # - converted spaces to tabs # - it was forgotten that FB_RIVA_I2C requires I2C_ALGOBIT # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/video/Kconfig # 2004/06/24 01:56:02-07:00 akpm@osdl.org +3 -1 # fix linker trouble with CONFIG_FB_RIVA_I2C=y and modular I2C # # ChangeSet # 2004/06/24 09:20:06-07:00 akpm@osdl.org # [PATCH] Indydog update # # From: Ralf Baechle # # Forward port of the 2.4 driver with changes required for 2.6. # # Signed-off-by: Ralf Baechle # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/char/watchdog/indydog.c # 2004/06/24 01:56:02-07:00 akpm@osdl.org +45 -72 # Indydog update # # ChangeSet # 2004/06/24 09:19:53-07:00 akpm@osdl.org # [PATCH] MIPS Update # # From: Ralf Baechle # # MIPS update: # # - Further conversion of MIPS kernel configuration to reverse dependencies. # - Support for the PMC-Sierra Yosemite evaluation board. # - Merge arch/mips/mm-32 and arch/mips/mm-32 into arch/mips/mm. # - Partial support for the R8000 now that I finally have clearance for the # documentation previously covered by NDA. # - Make distclean fixes. # - Regenerate default configuration files against latest Kconfig files. # - Fix handling of data bus errors in modules. # - Make R4000 bug probing more bullet proof. # - Rewrite semaphore code folloing the PPC implementation to no longer # manipulate 2 32-bit quantities atomically using 64-bit instructions. # Occasionally this did cause problems due to struct semaphore not having # sufficient alignment. # - Make sys_pipe() code bullet proof against gcc 3.5 over-optimization. # - Fix possibly exploitable bug in IRIX compatibility statvfs(2). # - Make sched_clock() an outline function. # - Support for the MIPS 24K and 25K processors. # - Make functions static that aren't needed anywhere else. # - Factor out some more generic MIPS SMP code. # - Factor out common part of the GT-64240 code. # - Ocelot C now uses the generic MV-64340 interrupt handler code. # - Factor out common board support code # - More cleanup and bug fixes for the NEC VR41xx code. # - Start cleanup of hazard handling as required for MIPS32/64 V2 processors. # - Enforce minimal kmalloc alignment of 8 byte so 64-bit registers can be # stored into fields without exceptions. # - Speeling and warning fixes. # # Signed-off-by: Ralf Baechle # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-mips/vr41xx/vrc4173.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +43 -35 # MIPS Update # # include/asm-mips/vr41xx/vr41xx.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +127 -17 # MIPS Update # # include/asm-mips/vr41xx/tb0226.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +14 -40 # MIPS Update # # include/asm-mips/vr41xx/tb0219.h # 2004/06/24 09:19:45-07:00 akpm@osdl.org +42 -0 # # include/asm-mips/vr41xx/mpc30x.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +14 -40 # MIPS Update # # include/asm-mips/vr41xx/capcella.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +14 -40 # MIPS Update # # include/asm-mips/unistd.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +9 -6 # MIPS Update # # include/asm-mips/titan_dep.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +175 -6 # MIPS Update # # include/asm-mips/thread_info.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +3 -0 # MIPS Update # # include/asm-mips/system.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +9 -12 # MIPS Update # # include/asm-mips/stackframe.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +3 -0 # MIPS Update # # include/asm-mips/smp.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +0 -8 # MIPS Update # # include/asm-mips/serial.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +0 -19 # MIPS Update # # include/asm-mips/semaphore.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +60 -205 # MIPS Update # # include/asm-mips/processor.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +0 -9 # MIPS Update # # include/asm-mips/pmon.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +3 -0 # MIPS Update # # include/asm-mips/pgtable.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +0 -2 # MIPS Update # # include/asm-mips/pgtable-bits.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +17 -1 # MIPS Update # # include/asm-mips/pgtable-64.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +22 -11 # MIPS Update # # include/asm-mips/pgtable-32.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +37 -35 # MIPS Update # # include/asm-mips/pci.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +3 -0 # MIPS Update # # include/asm-mips/page.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +5 -1 # MIPS Update # # include/asm-mips/module.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +17 -2 # MIPS Update # # include/asm-mips/mmu_context.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +8 -4 # MIPS Update # # include/asm-mips/mipsregs.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +1 -1 # MIPS Update # # include/asm-mips/mach-yosemite/cpu-feature-overrides.h # 2004/06/24 09:19:45-07:00 akpm@osdl.org +38 -0 # # include/asm-mips/hazards.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +113 -4 # MIPS Update # # include/asm-mips/gt64240.h # 2004/06/24 09:19:45-07:00 akpm@osdl.org +1264 -0 # # include/asm-mips/cache.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +2 -0 # MIPS Update # # include/asm-mips/atomic.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +119 -11 # MIPS Update # # include/asm-mips/asmmacro.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +3 -1 # MIPS Update # # arch/mips/vr41xx/zao-capcella/setup.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +1 -60 # MIPS Update # # arch/mips/vr41xx/victor-mpc30x/setup.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +1 -60 # MIPS Update # # arch/mips/vr41xx/tanbac-tb0229/tb0219.c # 2004/06/24 09:19:45-07:00 akpm@osdl.org +44 -0 # # arch/mips/vr41xx/tanbac-tb0229/setup.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +1 -65 # MIPS Update # # arch/mips/vr41xx/tanbac-tb0229/Makefile # 2004/06/24 01:55:59-07:00 akpm@osdl.org +1 -1 # MIPS Update # # arch/mips/vr41xx/tanbac-tb0226/setup.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +1 -60 # MIPS Update # # arch/mips/vr41xx/common/vrc4173.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +307 -97 # MIPS Update # # arch/mips/vr41xx/common/serial.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +1 -1 # MIPS Update # # arch/mips/vr41xx/common/rtc.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +6 -2 # MIPS Update # # arch/mips/vr41xx/common/pmu.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +6 -2 # MIPS Update # # arch/mips/vr41xx/common/ksyms.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +0 -2 # MIPS Update # # arch/mips/vr41xx/common/init.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +0 -15 # MIPS Update # # arch/mips/vr41xx/common/icu.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +315 -178 # MIPS Update # # arch/mips/vr41xx/common/giu.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +200 -42 # MIPS Update # # arch/mips/vr41xx/common/cmu.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +5 -1 # MIPS Update # # arch/mips/vr41xx/common/bcu.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +30 -30 # MIPS Update # # arch/mips/sgi-ip22/ip22-setup.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +3 -0 # MIPS Update # # arch/mips/ramdisk/Makefile # 2004/06/24 01:55:59-07:00 akpm@osdl.org +1 -1 # MIPS Update # # arch/mips/pmc-sierra/yosemite/setup.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +1 -17 # MIPS Update # # arch/mips/pmc-sierra/yosemite/setup.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +110 -67 # MIPS Update # # arch/mips/pmc-sierra/yosemite/py-console.c # 2004/06/24 09:19:45-07:00 akpm@osdl.org +130 -0 # # arch/mips/pmc-sierra/yosemite/prom.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +45 -99 # MIPS Update # # arch/mips/pmc-sierra/yosemite/irq.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +78 -169 # MIPS Update # # arch/mips/pmc-sierra/yosemite/irq-handler.S # 2004/06/24 01:55:59-07:00 akpm@osdl.org +36 -51 # MIPS Update # # arch/mips/pmc-sierra/yosemite/i2c-yosemite.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +26 -26 # MIPS Update # # arch/mips/pmc-sierra/yosemite/i2c-yosemite.c # 2004/06/24 09:19:45-07:00 akpm@osdl.org +188 -0 # # arch/mips/pmc-sierra/yosemite/dbg_io.c # 2004/06/24 09:19:45-07:00 akpm@osdl.org +184 -0 # # arch/mips/pmc-sierra/yosemite/Makefile # 2004/06/24 01:55:59-07:00 akpm@osdl.org +3 -4 # MIPS Update # # arch/mips/pci/pci-yosemite.c # 2004/06/24 09:19:45-07:00 akpm@osdl.org +37 -0 # # arch/mips/pci/pci-vr41xx.h # 2004/06/24 01:55:59-07:00 akpm@osdl.org +137 -150 # MIPS Update # # arch/mips/pci/pci-vr41xx.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +232 -174 # MIPS Update # # arch/mips/pci/ops-vr41xx.c # 2004/06/24 09:19:45-07:00 akpm@osdl.org +126 -0 # # arch/mips/pci/ops-titan-ht.c # 2004/06/24 09:19:45-07:00 akpm@osdl.org +125 -0 # # arch/mips/pci/ops-gt64240.c # 2004/06/24 09:19:45-07:00 akpm@osdl.org +149 -0 # # arch/mips/pci/fixup-tb0219.c # 2004/06/24 09:19:45-07:00 akpm@osdl.org +64 -0 # # arch/mips/pci/fixup-ocelot-g.c # 2004/06/24 09:19:45-07:00 akpm@osdl.org +35 -0 # # arch/mips/pci/fixup-ocelot-c.c # 2004/06/24 09:19:45-07:00 akpm@osdl.org +39 -0 # # arch/mips/pci/fixup-mpc30x.c # 2004/06/24 09:19:45-07:00 akpm@osdl.org +48 -0 # # arch/mips/pci/fixup-jaguar.c # 2004/06/24 09:19:45-07:00 akpm@osdl.org +42 -0 # # arch/mips/mm/tlb-r8k.c # 2004/06/24 09:19:45-07:00 akpm@osdl.org +253 -0 # # arch/mips/kernel/module.c # 2004/06/24 09:19:45-07:00 akpm@osdl.org +53 -0 # # include/asm-mips/vr41xx/tb0219.h # 2004/06/24 09:19:45-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-mips/vr41xx/tb0219.h # # include/asm-mips/mach-yosemite/cpu-feature-overrides.h # 2004/06/24 09:19:45-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-mips/mach-yosemite/cpu-feature-overrides.h # # include/asm-mips/gt64240.h # 2004/06/24 09:19:45-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-mips/gt64240.h # # arch/mips/vr41xx/tanbac-tb0229/tb0219.c # 2004/06/24 09:19:45-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/mips/vr41xx/tanbac-tb0229/tb0219.c # # arch/mips/pmc-sierra/yosemite/py-console.c # 2004/06/24 09:19:45-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/mips/pmc-sierra/yosemite/py-console.c # # arch/mips/pmc-sierra/yosemite/i2c-yosemite.c # 2004/06/24 09:19:45-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/mips/pmc-sierra/yosemite/i2c-yosemite.c # # arch/mips/pmc-sierra/yosemite/dbg_io.c # 2004/06/24 09:19:45-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/mips/pmc-sierra/yosemite/dbg_io.c # # arch/mips/pci/pci.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +1 -1 # MIPS Update # # arch/mips/pci/pci-yosemite.c # 2004/06/24 09:19:45-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/mips/pci/pci-yosemite.c # # arch/mips/pci/pci-ocelot-g.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +63 -433 # MIPS Update # # arch/mips/pci/pci-ocelot-c.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +119 -40 # MIPS Update # # arch/mips/pci/ops-vr41xx.c # 2004/06/24 09:19:45-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/mips/pci/ops-vr41xx.c # # arch/mips/pci/ops-titan.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +16 -16 # MIPS Update # # arch/mips/pci/ops-titan-ht.c # 2004/06/24 09:19:45-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/mips/pci/ops-titan-ht.c # # arch/mips/pci/ops-msc.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +5 -1 # MIPS Update # # arch/mips/pci/ops-gt64240.c # 2004/06/24 09:19:45-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/mips/pci/ops-gt64240.c # # arch/mips/pci/fixup-yosemite.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +4 -13 # MIPS Update # # arch/mips/pci/fixup-tb0226.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +61 -56 # MIPS Update # # arch/mips/pci/fixup-tb0219.c # 2004/06/24 09:19:45-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/mips/pci/fixup-tb0219.c # # arch/mips/pci/fixup-ocelot-g.c # 2004/06/24 09:19:45-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/mips/pci/fixup-ocelot-g.c # # arch/mips/pci/fixup-ocelot-c.c # 2004/06/24 09:19:45-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/mips/pci/fixup-ocelot-c.c # # arch/mips/pci/fixup-mpc30x.c # 2004/06/24 09:19:45-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/mips/pci/fixup-mpc30x.c # # arch/mips/pci/fixup-jaguar.c # 2004/06/24 09:19:45-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/mips/pci/fixup-jaguar.c # # arch/mips/pci/fixup-capcella.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +18 -10 # MIPS Update # # arch/mips/pci/Makefile # 2004/06/24 01:55:59-07:00 akpm@osdl.org +9 -8 # MIPS Update # # arch/mips/momentum/ocelot_g/setup.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +58 -58 # MIPS Update # # arch/mips/momentum/ocelot_g/prom.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +2 -6 # MIPS Update # # arch/mips/momentum/ocelot_g/gt-irq.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +7 -89 # MIPS Update # # arch/mips/momentum/ocelot_g/Makefile # 2004/06/24 01:55:59-07:00 akpm@osdl.org +1 -2 # MIPS Update # # arch/mips/momentum/ocelot_c/setup.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +1 -1 # MIPS Update # # arch/mips/momentum/ocelot_c/prom.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +2 -1 # MIPS Update # # arch/mips/momentum/ocelot_c/irq.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +2 -1 # MIPS Update # # arch/mips/momentum/ocelot_c/Makefile # 2004/06/24 01:55:59-07:00 akpm@osdl.org +2 -2 # MIPS Update # # arch/mips/momentum/jaguar_atx/setup.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +1 -1 # MIPS Update # # arch/mips/momentum/jaguar_atx/prom.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +0 -14 # MIPS Update # # arch/mips/mm/tlbex64-r4k.S # 2004/06/24 01:55:59-07:00 akpm@osdl.org +0 -0 # MIPS Update # # arch/mips/mm/tlbex32-r4k.S # 2004/06/24 01:55:59-07:00 akpm@osdl.org +0 -0 # MIPS Update # # arch/mips/mm/tlbex32-r3k.S # 2004/06/24 01:55:59-07:00 akpm@osdl.org +0 -0 # MIPS Update # # arch/mips/mm/tlb64-glue-sb1.S # 2004/06/24 01:55:59-07:00 akpm@osdl.org +0 -0 # MIPS Update # # arch/mips/mm/tlb64-glue-r4k.S # 2004/06/24 01:55:59-07:00 akpm@osdl.org +0 -0 # MIPS Update # # arch/mips/mm/tlb-sb1.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +1 -1 # MIPS Update # # arch/mips/mm/tlb-r8k.c # 2004/06/24 09:19:45-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/mips/mm/tlb-r8k.c # # arch/mips/mm/Makefile # 2004/06/24 01:55:59-07:00 akpm@osdl.org +37 -2 # MIPS Update # # arch/mips/mips-boards/generic/printf.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +2 -32 # MIPS Update # # arch/mips/mips-boards/generic/cmdline.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +4 -2 # MIPS Update # # arch/mips/lib-64/Makefile # 2004/06/24 01:55:59-07:00 akpm@osdl.org +17 -5 # MIPS Update # # arch/mips/lib-32/Makefile # 2004/06/24 01:55:59-07:00 akpm@osdl.org +17 -5 # MIPS Update # # arch/mips/kernel/traps.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +17 -42 # MIPS Update # # arch/mips/kernel/time.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +5 -0 # MIPS Update # # arch/mips/kernel/sysirix.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +1 -1 # MIPS Update # # arch/mips/kernel/syscall.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +1 -1 # MIPS Update # # arch/mips/kernel/setup.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +10 -4 # MIPS Update # # arch/mips/kernel/semaphore.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +109 -217 # MIPS Update # # arch/mips/kernel/scall64-o32.S # 2004/06/24 01:55:59-07:00 akpm@osdl.org +1 -0 # MIPS Update # # arch/mips/kernel/scall64-n32.S # 2004/06/24 01:55:59-07:00 akpm@osdl.org +1 -0 # MIPS Update # # arch/mips/kernel/scall64-64.S # 2004/06/24 01:55:59-07:00 akpm@osdl.org +1 -0 # MIPS Update # # arch/mips/kernel/scall32-o32.S # 2004/06/24 01:55:59-07:00 akpm@osdl.org +1 -0 # MIPS Update # # arch/mips/kernel/module.c # 2004/06/24 09:19:45-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/mips/kernel/module.c # # arch/mips/kernel/module-elf64.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +0 -11 # MIPS Update # # arch/mips/kernel/module-elf32.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +0 -11 # MIPS Update # # arch/mips/kernel/cpu-probe.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +23 -23 # MIPS Update # # arch/mips/kernel/cpu-bugs64.c # 2004/06/24 01:55:59-07:00 akpm@osdl.org +24 -16 # MIPS Update # # arch/mips/kernel/Makefile # 2004/06/24 01:55:59-07:00 akpm@osdl.org +2 -1 # MIPS Update # # arch/mips/defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +3 -2 # MIPS Update # # arch/mips/configs/yosemite_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +71 -110 # MIPS Update # # arch/mips/configs/xxs1500_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +6 -1 # MIPS Update # # arch/mips/configs/workpad_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +3 -2 # MIPS Update # # arch/mips/configs/tb0229_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +5 -5 # MIPS Update # # arch/mips/configs/tb0226_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +4 -4 # MIPS Update # # arch/mips/configs/sead_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +2 -1 # MIPS Update # # arch/mips/configs/sb1250-swarm_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +28 -6 # MIPS Update # # arch/mips/configs/rm200_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +13 -4 # MIPS Update # # arch/mips/configs/pb1550_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +8 -4 # MIPS Update # # arch/mips/configs/pb1500_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +8 -4 # MIPS Update # # arch/mips/configs/pb1100_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +6 -1 # MIPS Update # # arch/mips/configs/pb1000_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +6 -1 # MIPS Update # # arch/mips/configs/osprey_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +2 -2 # MIPS Update # # arch/mips/configs/ocelot_g_defconfig # 2004/06/24 09:19:44-07:00 akpm@osdl.org +587 -0 # # arch/mips/configs/ocelot_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +3 -1 # MIPS Update # # arch/mips/configs/ocelot_c_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +44 -6 # MIPS Update # # arch/mips/configs/mtx1_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +6 -1 # MIPS Update # # arch/mips/configs/mpc30x_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +5 -4 # MIPS Update # # arch/mips/configs/mirage_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +6 -1 # MIPS Update # # arch/mips/configs/malta_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +3 -3 # MIPS Update # # arch/mips/configs/lasat200_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +4 -4 # MIPS Update # # arch/mips/configs/jmr3927_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +4 -3 # MIPS Update # # arch/mips/configs/jaguar-atx_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +3 -1 # MIPS Update # # arch/mips/configs/ivr_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +4 -4 # MIPS Update # # arch/mips/configs/it8172_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +4 -2 # MIPS Update # # arch/mips/configs/ip32_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +5 -3 # MIPS Update # # arch/mips/configs/ip27_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +6 -3 # MIPS Update # # arch/mips/configs/ip22_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +3 -2 # MIPS Update # # arch/mips/configs/ev96100_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +3 -1 # MIPS Update # # arch/mips/configs/ev64120_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +3 -3 # MIPS Update # # arch/mips/configs/eagle_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +6 -5 # MIPS Update # # arch/mips/configs/e55_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +3 -3 # MIPS Update # # arch/mips/configs/decstation_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +2 -2 # MIPS Update # # arch/mips/configs/ddb5477_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +3 -4 # MIPS Update # # arch/mips/configs/ddb5476_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +5 -4 # MIPS Update # # arch/mips/configs/db1500_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +8 -2 # MIPS Update # # arch/mips/configs/db1100_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +6 -1 # MIPS Update # # arch/mips/configs/db1000_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +7 -1 # MIPS Update # # arch/mips/configs/cobalt_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +4 -4 # MIPS Update # # arch/mips/configs/capcella_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +6 -6 # MIPS Update # # arch/mips/configs/bosporus_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +6 -1 # MIPS Update # # arch/mips/configs/atlas_defconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +5 -4 # MIPS Update # # arch/mips/boot/Makefile # 2004/06/24 01:55:59-07:00 akpm@osdl.org +1 -1 # MIPS Update # # arch/mips/Makefile # 2004/06/24 01:55:59-07:00 akpm@osdl.org +7 -2 # MIPS Update # # arch/mips/Kconfig # 2004/06/24 01:55:59-07:00 akpm@osdl.org +62 -16 # MIPS Update # # arch/mips/configs/ocelot_g_defconfig # 2004/06/24 09:19:44-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/mips/configs/ocelot_g_defconfig # # BitKeeper/deleted/.del-tb0229.h~777eebdad95f784 # 2004/06/24 09:19:44-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-mips/vr41xx/tb0229.h # # BitKeeper/deleted/.del-reboot.c~c1d87dd8c206b546 # 2004/06/24 09:19:44-07:00 akpm@osdl.org +0 -0 # Delete: arch/mips/vr41xx/tanbac-tb0229/reboot.c # # BitKeeper/deleted/.del-pci-irq.c~30beb0d11c7eaa53 # 2004/06/24 09:19:44-07:00 akpm@osdl.org +0 -0 # Delete: arch/mips/momentum/ocelot_g/pci-irq.c # # BitKeeper/deleted/.del-gt64240.h~4ef5103c279a209 # 2004/06/24 09:19:44-07:00 akpm@osdl.org +0 -0 # Delete: arch/mips/momentum/ocelot_g/gt64240.h # # BitKeeper/deleted/.del-fixup-victor-mpc30x.c~c0792ffcde8ca687 # 2004/06/24 09:19:44-07:00 akpm@osdl.org +0 -0 # Delete: arch/mips/pci/fixup-victor-mpc30x.c # # BitKeeper/deleted/.del-fixup-tb0229.c~1fd3a246de94ddf1 # 2004/06/24 09:19:44-07:00 akpm@osdl.org +0 -0 # Delete: arch/mips/pci/fixup-tb0229.c # # BitKeeper/deleted/.del-fixup-mv64340.c~9f2f088dc300e2cc # 2004/06/24 09:19:44-07:00 akpm@osdl.org +0 -0 # Delete: arch/mips/pci/fixup-mv64340.c # # BitKeeper/deleted/.del-tlb-dbg-r4k.c~7ba420eaa5a312da # 2004/06/24 09:19:43-07:00 akpm@osdl.org +0 -0 # Delete: arch/mips/mm-64/tlb-dbg-r4k.c # # BitKeeper/deleted/.del-pci-irq.c~d5be00f093b1363a # 2004/06/24 09:19:43-07:00 akpm@osdl.org +0 -0 # Delete: arch/mips/momentum/ocelot_c/pci-irq.c # # BitKeeper/deleted/.del-gt64240_dep.h~6bf32fd1dcbb485c # 2004/06/24 09:19:43-07:00 akpm@osdl.org +0 -0 # Delete: arch/mips/momentum/ocelot_g/gt64240_dep.h # # BitKeeper/deleted/.del-Makefile~a1f1375a6d4de637 # 2004/06/24 09:19:43-07:00 akpm@osdl.org +0 -0 # Delete: arch/mips/mm-64/Makefile # # BitKeeper/deleted/.del-Makefile~864ffc0fb6b0fff # 2004/06/24 09:19:43-07:00 akpm@osdl.org +0 -0 # Delete: arch/mips/mm-32/Makefile # # ChangeSet # 2004/06/24 08:56:30-07:00 akpm@osdl.org # [PATCH] Dell laptop lockup fix for ALSA # # From: Alan Cox # # OSS avoids the Dell lockup by not hitting the problem register (which # apparently breaks resume on a Sony laptop). ALSA keeps a flag and uses pci # subvendor info to clear it for problem Dell laptops. Unfortunately there # is at least one other Dell laptop which is affected. This adds its sub # id's # # [Patch from Dan Williams @ Red Hat slightly reformatted by me] # # Signed-off-by: Alan Cox # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # sound/pci/nm256/nm256.c # 2004/06/24 01:55:58-07:00 akpm@osdl.org +4 -0 # Dell laptop lockup fix for ALSA # # ChangeSet # 2004/06/24 08:56:19-07:00 akpm@osdl.org # [PATCH] mips: SGI A2 audio rewrite and 2.6 fixes # # From: Ralf Baechle # # Fix HAL2 audio driver for the SGI A2 audio subsystem and rewrite large # parts of it to finally work. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # sound/oss/hal2.h # 2004/06/24 01:55:58-07:00 akpm@osdl.org +40 -120 # mips: SGI A2 audio rewrite and 2.6 fixes # # sound/oss/hal2.c # 2004/06/24 01:55:58-07:00 akpm@osdl.org +612 -549 # mips: SGI A2 audio rewrite and 2.6 fixes # # sound/oss/Kconfig # 2004/06/24 01:55:58-07:00 akpm@osdl.org +4 -1 # mips: SGI A2 audio rewrite and 2.6 fixes # # ChangeSet # 2004/06/24 08:56:08-07:00 akpm@osdl.org # [PATCH] make total_swap_pages a long # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/swapfile.c # 2004/06/24 01:55:58-07:00 akpm@osdl.org +1 -1 # make total_swap_pages a long # # include/linux/swap.h # 2004/06/24 01:55:58-07:00 akpm@osdl.org +1 -1 # make total_swap_pages a long # # ChangeSet # 2004/06/24 08:55:56-07:00 akpm@osdl.org # [PATCH] Make nr_swap_pages a long # # From: Anton Blanchard # # ../include/linux/swap.h:extern int nr_swap_pages; /* XXX: shouldn't this be ulong? --hch */ # # Sounds like it should be too me. Some of the code checks for nr_swap_pages # < 0 so I made it a long instead. I had to fix up the ppc64 show_mem() (Im # guessing there will be other trivial changes required in other 64bit archs, # I can find and fix those if you want). # # I also noticed that the ppc64 show_mem() used ints to store page counts. # We can overflow that, so make them unsigned long. # # Signed-off-by: Anton Blanchard # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/page_alloc.c # 2004/06/24 01:55:57-07:00 akpm@osdl.org +1 -1 # Make nr_swap_pages a long # # include/linux/swap.h # 2004/06/24 01:55:57-07:00 akpm@osdl.org +1 -1 # Make nr_swap_pages a long # # arch/x86_64/mm/init.c # 2004/06/24 01:55:57-07:00 akpm@osdl.org +1 -1 # Make nr_swap_pages a long # # arch/um/kernel/mem.c # 2004/06/24 01:55:57-07:00 akpm@osdl.org +1 -1 # Make nr_swap_pages a long # # arch/sparc64/mm/init.c # 2004/06/24 01:55:57-07:00 akpm@osdl.org +1 -1 # Make nr_swap_pages a long # # arch/sparc/mm/init.c # 2004/06/24 01:55:57-07:00 akpm@osdl.org +1 -1 # Make nr_swap_pages a long # # arch/sh/mm/init.c # 2004/06/24 01:55:57-07:00 akpm@osdl.org +1 -1 # Make nr_swap_pages a long # # arch/s390/mm/init.c # 2004/06/24 01:55:57-07:00 akpm@osdl.org +1 -1 # Make nr_swap_pages a long # # arch/ppc64/mm/init.c # 2004/06/24 01:55:57-07:00 akpm@osdl.org +7 -7 # Make nr_swap_pages a long # # arch/ppc/mm/init.c # 2004/06/24 01:55:57-07:00 akpm@osdl.org +1 -1 # Make nr_swap_pages a long # # arch/parisc/mm/init.c # 2004/06/24 01:55:57-07:00 akpm@osdl.org +2 -1 # Make nr_swap_pages a long # # arch/mips/mm/pgtable.c # 2004/06/24 01:55:57-07:00 akpm@osdl.org +1 -1 # Make nr_swap_pages a long # # arch/m68k/mm/init.c # 2004/06/24 01:55:57-07:00 akpm@osdl.org +1 -1 # Make nr_swap_pages a long # # arch/m68k/atari/stram.c # 2004/06/24 01:55:57-07:00 akpm@osdl.org +2 -2 # Make nr_swap_pages a long # # arch/ia64/mm/discontig.c # 2004/06/24 01:55:57-07:00 akpm@osdl.org +1 -1 # Make nr_swap_pages a long # # arch/ia64/mm/contig.c # 2004/06/24 01:55:57-07:00 akpm@osdl.org +1 -1 # Make nr_swap_pages a long # # arch/i386/mm/pgtable.c # 2004/06/24 01:55:57-07:00 akpm@osdl.org +1 -1 # Make nr_swap_pages a long # # arch/cris/mm/init.c # 2004/06/24 01:55:57-07:00 akpm@osdl.org +1 -1 # Make nr_swap_pages a long # # arch/arm26/mm/init.c # 2004/06/24 01:55:57-07:00 akpm@osdl.org +1 -1 # Make nr_swap_pages a long # # arch/arm/mm/init.c # 2004/06/24 01:55:57-07:00 akpm@osdl.org +1 -1 # Make nr_swap_pages a long # # arch/alpha/mm/numa.c # 2004/06/24 01:55:57-07:00 akpm@osdl.org +1 -1 # Make nr_swap_pages a long # # arch/alpha/mm/init.c # 2004/06/24 01:55:57-07:00 akpm@osdl.org +1 -1 # Make nr_swap_pages a long # # ChangeSet # 2004/06/24 08:55:44-07:00 akpm@osdl.org # [PATCH] nr_pagecache can go negative # # We use per-cpu counters for the system-wide pagecache accounting. The # counters spill into the global nr_pagecache atomic_t when they underflow or # overflow. # # Hence it is possible, under weird circumstances, for nr_pagecache to go # negative. Anton says he has hit this. # # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/pagemap.h # 2004/06/24 01:55:57-07:00 akpm@osdl.org +5 -1 # nr_pagecache can go negative # # ChangeSet # 2004/06/24 08:55:33-07:00 akpm@osdl.org # [PATCH] help text for FB_RIVA_I2C # # From: "Antonino A. Daplas" # # Signed-off-by: Antonino Daplas # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/video/Kconfig # 2004/06/24 01:55:57-07:00 akpm@osdl.org +7 -0 # help text for FB_RIVA_I2C # # ChangeSet # 2004/06/24 08:55:22-07:00 akpm@osdl.org # [PATCH] Support NetMOS based PCI cards providing serial and parallel ports # # From: Christoph Lameter # # Attached a patch to support a variety of PCI based serial and parallel port # I/O ports (typically labeled 222N-2 or 9835). # # I think this should go into 2.6.0 since it has been out there for a long # time and is just some additional driver support that somehow fell through # the cracks in 2.4.X. Tim Waugh submitted it in the 2.4.X series. # # See also http://winterwolf.co.uk/pciio # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/pci_ids.h # 2004/06/24 01:55:57-07:00 akpm@osdl.org +4 -0 # Support NetMOS based PCI cards providing serial and parallel ports # # drivers/parport/parport_serial.c # 2004/06/24 01:55:57-07:00 akpm@osdl.org +10 -0 # Support NetMOS based PCI cards providing serial and parallel ports # # drivers/parport/parport_pc.c # 2004/06/24 01:55:57-07:00 akpm@osdl.org +17 -0 # Support NetMOS based PCI cards providing serial and parallel ports # # drivers/parport/ChangeLog # 2004/06/24 01:55:57-07:00 akpm@osdl.org +4 -0 # Support NetMOS based PCI cards providing serial and parallel ports # # ChangeSet # 2004/06/24 08:55:11-07:00 akpm@osdl.org # [PATCH] abs() fixes # # OK, the pending abs() disaster has hit: # # drivers/usb/class/audio.c:404: warning: static declaration of 'abs' follows non-static declaration # # This is due to the declaration in kernel.h. AFAIK there's not even a matching # definition for that. # # The patch implements abs() as a macro in kernel.h and kills off various # private implementations. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/kernel.h # 2004/06/24 01:55:56-07:00 akpm@osdl.org +10 -1 # abs() fixes # # include/asm-ppc64/system.h # 2004/06/24 01:55:56-07:00 akpm@osdl.org +0 -2 # abs() fixes # # drivers/usb/class/audio.c # 2004/06/24 01:55:56-07:00 akpm@osdl.org +0 -14 # abs() fixes # # arch/ppc64/kernel/ppc_ksyms.c # 2004/06/24 01:55:56-07:00 akpm@osdl.org +0 -4 # abs() fixes # # ChangeSet # 2004/06/24 08:55:00-07:00 akpm@osdl.org # [PATCH] reduce function inlining in slab.c # # From: Manfred Spraul # # slab.c contains too many inline functions: # # - some functions that are not performance critical were inlined. Waste # of text size. # # - The debug code relies on __builtin_return_address(0) to keep track of # the callers. According to rmk, gcc didn't inline some functions as # expected and that resulted in useless debug output. This was probably # caused by the large debug-only inline functions. # # The attached patche removes most inline functions: # # - the empty on release/huge on debug inline functions were replaced with # empty macros on release/normal functions on debug. # # - spurious inline statements were removed. # # The code is down to 6 inline functions: three one-liners for struct # abstractions, one for a might_sleep_if test and two for the performance # critical __cache_alloc / __cache_free functions. # # Note: If an embedded arch wants to save a few bytes by uninlining # __cache_{free,alloc}: The right way to do that is to fold the functions # into kmem_cache_xy and then replace kmalloc with # kmem_cache_alloc(kmem_find_general_cachep(),). # # Signed-Off: Manfred Spraul # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/slab.c # 2004/06/24 01:55:56-07:00 akpm@osdl.org +37 -47 # reduce function inlining in slab.c # # ChangeSet # 2004/06/24 08:54:49-07:00 akpm@osdl.org # [PATCH] hwcache align kmalloc caches # # From: Manfred Spraul # # Reversing the patches that made all caches hw cacheline aligned had an # unintended side effect on the kmalloc caches: Before they had the # SLAB_HWCACHE_ALIGN flag set, now it's clear. This breaks one sgi driver - # it expects aligned caches. Additionally I think it's the right thing to # do: It costs virtually nothing (the caches are power-of-two sized) and # could reduce false sharing. # # Additionally, the patch adds back the documentation for the # SLAB_HWCACHE_ALIGN flag. # # Signed-Off: Manfred Spraul # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/slab.c # 2004/06/24 01:55:56-07:00 akpm@osdl.org +10 -4 # hwcache align kmalloc caches # # ChangeSet # 2004/06/24 08:54:38-07:00 akpm@osdl.org # [PATCH] tweak the buddy allocator for better I/O merging # # From: William Lee Irwin III # # Based on Arjan van de Ven's idea, with guidance and testing from James # Bottomley. # # The physical ordering of pages delivered to the IO subsystem is strongly # related to the order in which fragments are subdivided from larger blocks # of memory tracked by the page allocator. # # Consider a single MAX_ORDER block of memory in isolation acted on by a # sequence of order 0 allocations in an otherwise empty buddy system. # Subdividing the block beginning at the highest addresses will yield all the # pages of the block in reverse, and subdividing the block begining at the # lowest addresses will yield all the pages of the block in physical address # order. # # Empirical tests demonstrate this ordering is preserved, and that changing # the order of subdivision so that the lowest page is split off first # resolves the sglist merging difficulties encountered by driver authors at # Adaptec and others in James Bottomley's testing. # # James found that before this patch, there were 40 merges out of about 32K # segments. Afterward, there were 24007 merges out of 19513 segments, for a # merge rate of about 55%. Merges of 128 segments, the maximum allowed, were # observed afterward, where beforehand they never occurred. It also improves # dbench on my workstation and works fine there. # # Signed-off-by: William Lee Irwin III # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/page_alloc.c # 2004/06/24 01:55:56-07:00 akpm@osdl.org +17 -5 # tweak the buddy allocator for better I/O merging # # ChangeSet # 2004/06/24 08:54:26-07:00 akpm@osdl.org # [PATCH] Use fancy wakeups in wait.h # # Use the more SMP-friendly prepare_to_wait()/finish_wait() in wait_event() and # friends. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/wait.h # 2004/06/24 01:55:55-07:00 akpm@osdl.org +13 -24 # Use fancy wakeups in wait.h # # ChangeSet # 2004/06/24 08:54:15-07:00 akpm@osdl.org # [PATCH] dnotify.c: use inode->i_lock in place of dn_lock # # From: "Adam J. Richter" # # Replace the use of a global spinlock with the per-inode ->i_lock. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/dnotify.c # 2004/06/24 01:55:55-07:00 akpm@osdl.org +10 -10 # dnotify.c: use inode->i_lock in place of dn_lock # # ChangeSet # 2004/06/24 08:54:04-07:00 akpm@osdl.org # [PATCH] vm: vfs shrinkage tuning # # Some people want the dentry and inode caches shrink harder, others want them # shrunk more reluctantly. # # The patch adds /proc/sys/vm/vfs_cache_pressure, which tunes the vfs cache # versus pagecache scanning pressure. # # - at vfs_cache_pressure=0 we don't shrink dcache and icache at all. # # - at vfs_cache_pressure=100 there is no change in behaviour. # # - at vfs_cache_pressure > 100 we reclaim dentries and inodes harder. # # # The number of megabytes of slab left after a slocate.cron on my 256MB test # box: # # vfs_cache_pressure=100000 33480 # vfs_cache_pressure=10000 61996 # vfs_cache_pressure=1000 104056 # vfs_cache_pressure=200 166340 # vfs_cache_pressure=100 190200 # vfs_cache_pressure=50 206168 # # Of course, this just left more directory and inode pagecache behind instead of # vfs cache. Interestingly, on this machine the entire slocate run fits into # pagecache, but not into VFS caches. # # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/sysctl.c # 2004/06/24 01:55:55-07:00 akpm@osdl.org +12 -0 # vm: vfs shrinkage tuning # # include/linux/sysctl.h # 2004/06/24 01:55:55-07:00 akpm@osdl.org +1 -0 # vm: vfs shrinkage tuning # # include/linux/dcache.h # 2004/06/24 01:55:55-07:00 akpm@osdl.org +2 -0 # vm: vfs shrinkage tuning # # fs/inode.c # 2004/06/24 01:55:55-07:00 akpm@osdl.org +1 -1 # vm: vfs shrinkage tuning # # fs/dcache.c # 2004/06/24 01:55:55-07:00 akpm@osdl.org +3 -2 # vm: vfs shrinkage tuning # # Documentation/sysctl/vm.txt # 2004/06/24 01:55:55-07:00 akpm@osdl.org +1 -1 # vm: vfs shrinkage tuning # # Documentation/filesystems/proc.txt # 2004/06/24 01:55:55-07:00 akpm@osdl.org +12 -0 # vm: vfs shrinkage tuning # # ChangeSet # 2004/06/24 08:53:52-07:00 akpm@osdl.org # [PATCH] vmscan.c: dont reclaim too many pages # # The shrink_zone() logic can, under some circumstances, cause far too many # pages to be reclaimed. Say, we're scanning at high priority and suddenly hit # a large number of reclaimable pages on the LRU. # # Change things so we bale out when SWAP_CLUSTER_MAX pages have been reclaimed. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/vmscan.c # 2004/06/24 01:55:55-07:00 akpm@osdl.org +8 -0 # vmscan.c: dont reclaim too many pages # # ChangeSet # 2004/06/24 08:53:40-07:00 akpm@osdl.org # [PATCH] vmscan.c scan rate fixes # # We've been futzing with the scan rates of the inactive and active lists far # too much, and it's still not right (Anton reports interrupt-off times of over # a second). # # - We have this logic in there from 2.4.early (at least) which tries to keep # the inactive list 1/3rd the size of the active list. Or something. # # I really cannot see any logic behind this, so toss it out and change the # arithmetic in there so that all pages on both lists have equal scan rates. # # - Chunk the work up so we never hold interrupts off for more that 32 pages # worth of scanning. # # - Make the per-zone scan-count accumulators unsigned long rather than # atomic_t. # # Mainly because atomic_t's could conceivably overflow, but also because # access to these counters is racy-by-design anyway. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/vmscan.c # 2004/06/24 01:55:54-07:00 akpm@osdl.org +32 -40 # vmscan.c scan rate fixes # # mm/page_alloc.c # 2004/06/24 01:55:54-07:00 akpm@osdl.org +2 -2 # vmscan.c scan rate fixes # # include/linux/mmzone.h # 2004/06/24 01:55:54-07:00 akpm@osdl.org +2 -2 # vmscan.c scan rate fixes # # ChangeSet # 2004/06/24 08:53:29-07:00 akpm@osdl.org # [PATCH] vmscan.c: shuffle things around # # Move all the data structure declarations, macros and variable definitions to # less surprising places. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/vmscan.c # 2004/06/24 01:55:54-07:00 akpm@osdl.org +45 -47 # vmscan.c: shuffle things around # # ChangeSet # 2004/06/24 08:53:18-07:00 akpm@osdl.org # [PATCH] Fix and Reenable MSI Support on x86_64 # # From: long # # MSI support for x86_64 is currently disabled in the kernel 2.6.x. Below is # the patch, which provides a fix and reenable it. # # In addition, the patch provides a info message during kernel boot if # configuring vector-base indexing. # # Cc: Andi Kleen # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-x86_64/msi.h # 2004/06/24 01:55:54-07:00 akpm@osdl.org +1 -6 # Fix and Reenable MSI Support on x86_64 # # include/asm-x86_64/hw_irq.h # 2004/06/24 01:55:54-07:00 akpm@osdl.org +1 -0 # Fix and Reenable MSI Support on x86_64 # # drivers/pci/Kconfig # 2004/06/24 01:55:54-07:00 akpm@osdl.org +1 -1 # Fix and Reenable MSI Support on x86_64 # # arch/x86_64/kernel/io_apic.c # 2004/06/24 01:55:54-07:00 akpm@osdl.org +18 -8 # Fix and Reenable MSI Support on x86_64 # # arch/x86_64/kernel/i8259.c # 2004/06/24 01:55:54-07:00 akpm@osdl.org +24 -0 # Fix and Reenable MSI Support on x86_64 # # arch/i386/kernel/io_apic.c # 2004/06/24 01:55:54-07:00 akpm@osdl.org +6 -1 # Fix and Reenable MSI Support on x86_64 # # ChangeSet # 2004/06/24 08:53:08-07:00 akpm@osdl.org # [PATCH] make irqaction use a cpu mask # # From: William Lee Irwin III # # The following patch makes irqaction's ->mask a cpumask as it was intended # to be and wraps up the rest of the sweep. Only struct irqaction is # usefully greppable, so there may be some assignments to ->mask missing # still. This removes more code than it adds. # # From: William Lee Irwin III # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/interrupt.h # 2004/06/24 01:55:53-07:00 akpm@osdl.org +2 -1 # make irqaction use a cpu mask # # arch/x86_64/kernel/time.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/x86_64/kernel/irq.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/x86_64/kernel/i8259.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/v850/kernel/time.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/v850/kernel/irq.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/v850/kernel/fpga85e2c.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/um/kernel/irq.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/sparc64/kernel/smp.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +0 -3 # make irqaction use a cpu mask # # arch/sparc64/kernel/irq.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +10 -58 # make irqaction use a cpu mask # # arch/sparc/kernel/sun4d_irq.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/sparc/kernel/irq.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +2 -2 # make irqaction use a cpu mask # # arch/sh/kernel/time.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/sh/kernel/irq.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/sh/cchips/hd6446x/hd64465/setup.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/sh/cchips/hd6446x/hd64461/setup.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/ppc64/kernel/irq.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/ppc/kernel/irq.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/parisc/kernel/irq.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/mips/vr41xx/common/icu.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/mips/vr41xx/common/giu.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/mips/vr4181/common/irq.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +2 -2 # make irqaction use a cpu mask # # arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_irq.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +2 -2 # make irqaction use a cpu mask # # arch/mips/tx4927/common/tx4927_irq.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/mips/sibyte/sb1250/irq.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/mips/sgi-ip32/ip32-irq.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +2 -2 # make irqaction use a cpu mask # # arch/mips/momentum/ocelot_c/irq.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +2 -2 # make irqaction use a cpu mask # # arch/mips/momentum/jaguar_atx/irq.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/mips/kernel/irq.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/mips/jmr3927/rbhma3100/irq.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +4 -4 # make irqaction use a cpu mask # # arch/mips/gt64120/common/time.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/mips/ddb5xxx/ddb5477/irq.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/mips/ddb5xxx/ddb5476/irq.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +2 -2 # make irqaction use a cpu mask # # arch/mips/ddb5xxx/ddb5074/irq.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/mips/baget/time.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/mips/baget/irq.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +2 -2 # make irqaction use a cpu mask # # arch/ia64/kernel/irq.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/i386/mach-voyager/setup.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +2 -2 # make irqaction use a cpu mask # # arch/i386/mach-default/setup.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +2 -2 # make irqaction use a cpu mask # # arch/i386/kernel/irq.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/i386/kernel/i8259.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/cris/kernel/irq.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/cris/arch-v10/kernel/time.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/arm26/kernel/irq.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/arm/mach-clps7500/core.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/arm/kernel/irq.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # arch/alpha/kernel/irq.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -1 # make irqaction use a cpu mask # # ChangeSet # 2004/06/24 08:52:55-07:00 akpm@osdl.org # [PATCH] alpha: cpumask fixups # # From: William Lee Irwin III # # The cpumask patches broke alpha's build, even without the irqaction # patch, largely centering around cpu_possible_map. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-alpha/smp.h # 2004/06/24 01:55:53-07:00 akpm@osdl.org +1 -3 # alpha: cpumask fixups # # arch/alpha/kernel/sys_dp264.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +8 -9 # alpha: cpumask fixups # # arch/alpha/kernel/smp.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +17 -22 # alpha: cpumask fixups # # arch/alpha/kernel/setup.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +2 -2 # alpha: cpumask fixups # # arch/alpha/kernel/process.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +2 -2 # alpha: cpumask fixups # # arch/alpha/kernel/irq.c # 2004/06/24 01:55:53-07:00 akpm@osdl.org +11 -52 # alpha: cpumask fixups # # ChangeSet # 2004/06/24 08:52:44-07:00 akpm@osdl.org # [PATCH] clean up cpumask_t temporaries # # From: Rusty Russell # # Paul Jackson's cpumask tour-de-force allows us to get rid of those stupid # temporaries which we used to hold CPU_MASK_ALL to hand them to functions. # This used to break NR_CPUS > BITS_PER_LONG. # # Signed-off-by: Rusty Russell # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/sched.c # 2004/06/24 01:55:52-07:00 akpm@osdl.org +2 -3 # clean up cpumask_t temporaries # # kernel/kthread.c # 2004/06/24 01:55:52-07:00 akpm@osdl.org +1 -2 # clean up cpumask_t temporaries # # kernel/kmod.c # 2004/06/24 01:55:52-07:00 akpm@osdl.org +1 -2 # clean up cpumask_t temporaries # # include/asm-i386/mach-summit/mach_apic.h # 2004/06/24 01:55:52-07:00 akpm@osdl.org +1 -2 # clean up cpumask_t temporaries # # include/asm-i386/mach-numaq/mach_apic.h # 2004/06/24 01:55:52-07:00 akpm@osdl.org +1 -2 # clean up cpumask_t temporaries # # arch/ppc64/kernel/xics.c # 2004/06/24 01:55:52-07:00 akpm@osdl.org +2 -4 # clean up cpumask_t temporaries # # arch/ppc64/kernel/rtasd.c # 2004/06/24 01:55:52-07:00 akpm@osdl.org +1 -2 # clean up cpumask_t temporaries # # arch/ppc64/kernel/irq.c # 2004/06/24 01:55:52-07:00 akpm@osdl.org +1 -2 # clean up cpumask_t temporaries # # ChangeSet # 2004/06/24 08:52:33-07:00 akpm@osdl.org # [PATCH] cpumask: comment, spacing tweaks # # From: Paul Jackson # # Tweak cpumask.h comments, spacing: # # - Add comments for cpu_present_map macros: num_present_cpus() and # cpu_present() # # - Remove comments for obsolete macros: cpu_set_online(), # cpu_set_offline() # # - Reorder a few comment lines, to match the code and confuse readers of # this patch # # - Tabify one chunk of code # # Signed-off-by: Paul Jackson # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/cpumask.h # 2004/06/24 01:55:52-07:00 akpm@osdl.org +19 -15 # cpumask: comment, spacing tweaks # # ChangeSet # 2004/06/24 08:52:21-07:00 akpm@osdl.org # [PATCH] cpumask: optimize various uses of new cpumasks # # From: Paul Jackson # # Make use of for_each_cpu_mask() macro to simplify and optimize a couple of # sparc64 per-CPU loops. # # Optimize a bit of cpumask code for asm-i386/mach-es7000 # # Convert physids_complement() to use both args in the files # include/asm-i386/mpspec.h, include/asm-x86_64/mpspec.h. # # Remove cpumask hack from asm-x86_64/topology.h routine pcibus_to_cpumask(). # # Clarify and slightly optimize several cpumask manipulations in kernel/sched.c # # Signed-off-by: Paul Jackson # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/sched.c # 2004/06/24 01:55:52-07:00 akpm@osdl.org +7 -11 # cpumask: optimize various uses of new cpumasks # # include/asm-x86_64/topology.h # 2004/06/24 01:55:52-07:00 akpm@osdl.org +4 -2 # cpumask: optimize various uses of new cpumasks # # include/asm-x86_64/mpspec.h # 2004/06/24 01:55:52-07:00 akpm@osdl.org +1 -1 # cpumask: optimize various uses of new cpumasks # # include/asm-i386/mpspec.h # 2004/06/24 01:55:52-07:00 akpm@osdl.org +1 -1 # cpumask: optimize various uses of new cpumasks # # include/asm-i386/mach-es7000/mach_ipi.h # 2004/06/24 01:55:52-07:00 akpm@osdl.org +2 -3 # cpumask: optimize various uses of new cpumasks # # arch/sparc64/kernel/smp.c # 2004/06/24 01:55:52-07:00 akpm@osdl.org +24 -42 # cpumask: optimize various uses of new cpumasks # # ChangeSet # 2004/06/24 08:52:10-07:00 akpm@osdl.org # [PATCH] cpumask: Remove no longer used obsolete macro emulation # # From: Paul Jackson # # Now that the emulation of the obsolete cpumask macros is no longer needed, # remove it from cpumask.h # # Signed-off-by: Paul Jackson # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/cpumask.h # 2004/06/24 01:55:51-07:00 akpm@osdl.org +0 -12 # cpumask: Remove no longer used obsolete macro emulation # # ChangeSet # 2004/06/24 08:51:59-07:00 akpm@osdl.org # [PATCH] ppc64: cpu_online fix # # include/asm/smp.h:55:1: warning: "cpu_possible" redefined # include/asm/smp.h:54:1: warning: "cpu_online" redefined # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ppc64/smp.h # 2004/06/24 01:55:51-07:00 akpm@osdl.org +0 -2 # ppc64: cpu_online fix # # ChangeSet # 2004/06/24 08:51:48-07:00 akpm@osdl.org # [PATCH] x86_64: cpu_online fix # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-x86_64/smp.h # 2004/06/24 01:55:51-07:00 akpm@osdl.org +0 -1 # x86_64: cpu_online fix # # ChangeSet # 2004/06/24 08:51:37-07:00 akpm@osdl.org # [PATCH] cpumask: remove obsolete cpumask macro uses - other archs # # From: Paul Jackson # # Remove by recoding other uses of the obsolete cpumask const, coerce and # promote macros. # # Signed-off-by: Paul Jackson # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-x86_64/smp.h # 2004/06/24 01:55:51-07:00 akpm@osdl.org +2 -3 # cpumask: remove obsolete cpumask macro uses - other archs # # arch/x86_64/kernel/smp.c # 2004/06/24 01:55:51-07:00 akpm@osdl.org +1 -1 # cpumask: remove obsolete cpumask macro uses - other archs # # arch/x86_64/kernel/pci-gart.c # 2004/06/24 01:55:51-07:00 akpm@osdl.org +2 -2 # cpumask: remove obsolete cpumask macro uses - other archs # # arch/x86_64/kernel/io_apic.c # 2004/06/24 01:55:51-07:00 akpm@osdl.org +1 -1 # cpumask: remove obsolete cpumask macro uses - other archs # # arch/ppc64/kernel/rtasd.c # 2004/06/24 01:55:51-07:00 akpm@osdl.org +3 -3 # cpumask: remove obsolete cpumask macro uses - other archs # # arch/ppc64/kernel/open_pic.c # 2004/06/24 01:55:51-07:00 akpm@osdl.org +4 -4 # cpumask: remove obsolete cpumask macro uses - other archs # # ChangeSet # 2004/06/24 08:51:25-07:00 akpm@osdl.org # [PATCH] cpumask: remove obsolete cpumask macro uses - i386 arch # # From: Paul Jackson # # Remove by recoding i386 uses of the obsolete cpumask const, coerce and promote # macros. # # Signed-off-by: Paul Jackson # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-i386/mach-visws/mach_apic.h # 2004/06/24 01:55:50-07:00 akpm@osdl.org +2 -2 # cpumask: remove obsolete cpumask macro uses - i386 arch # # include/asm-i386/mach-summit/mach_apic.h # 2004/06/24 01:55:50-07:00 akpm@osdl.org +4 -4 # cpumask: remove obsolete cpumask macro uses - i386 arch # # include/asm-i386/mach-numaq/mach_apic.h # 2004/06/24 01:55:50-07:00 akpm@osdl.org +1 -1 # cpumask: remove obsolete cpumask macro uses - i386 arch # # include/asm-i386/mach-es7000/mach_apic.h # 2004/06/24 01:55:50-07:00 akpm@osdl.org +5 -5 # cpumask: remove obsolete cpumask macro uses - i386 arch # # include/asm-i386/mach-default/mach_apic.h # 2004/06/24 01:55:50-07:00 akpm@osdl.org +5 -5 # cpumask: remove obsolete cpumask macro uses - i386 arch # # include/asm-i386/mach-bigsmp/mach_apic.h # 2004/06/24 01:55:50-07:00 akpm@osdl.org +5 -5 # cpumask: remove obsolete cpumask macro uses - i386 arch # # include/asm-i386/genapic.h # 2004/06/24 01:55:50-07:00 akpm@osdl.org +1 -1 # cpumask: remove obsolete cpumask macro uses - i386 arch # # arch/i386/mach-voyager/voyager_smp.c # 2004/06/24 01:55:50-07:00 akpm@osdl.org +15 -15 # cpumask: remove obsolete cpumask macro uses - i386 arch # # arch/i386/kernel/smp.c # 2004/06/24 01:55:50-07:00 akpm@osdl.org +1 -1 # cpumask: remove obsolete cpumask macro uses - i386 arch # # arch/i386/kernel/io_apic.c # 2004/06/24 01:55:50-07:00 akpm@osdl.org +1 -1 # cpumask: remove obsolete cpumask macro uses - i386 arch # # ChangeSet # 2004/06/24 08:51:14-07:00 akpm@osdl.org # [PATCH] cpumask: remove 26 no longer used cpumask*.h files # # From: Paul Jackson # # With the cpumask rewrite in the previous patch, these various # include/asm-*/cpumask*.h headers are no longer used. # # Signed-off-by: Paul Jackson # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # BitKeeper/deleted/.del-cpumask.h~a5bbafe984f5d0e6 # 2004/06/24 08:51:08-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-sparc/cpumask.h # # BitKeeper/deleted/.del-cpumask.h~745e0907bd87604e # 2004/06/24 08:51:08-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-ppc/cpumask.h # # BitKeeper/deleted/.del-cpumask.h~6ec2788c63d1687b # 2004/06/24 08:51:08-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-x86_64/cpumask.h # # BitKeeper/deleted/.del-cpumask.h~580452f41482fe23 # 2004/06/24 08:51:08-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-sparc64/cpumask.h # # BitKeeper/deleted/.del-cpumask.h~3b3abff5bcf38cc9 # 2004/06/24 08:51:08-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-sh/cpumask.h # # BitKeeper/deleted/.del-cpumask.h~387b5d1b6127111b # 2004/06/24 08:51:08-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-um/cpumask.h # # BitKeeper/deleted/.del-cpumask.h~1ed7ae938e67370 # 2004/06/24 08:51:08-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-v850/cpumask.h # # BitKeeper/deleted/.del-cpumask.h~12d20004ea3a06a9 # 2004/06/24 08:51:08-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-s390/cpumask.h # # BitKeeper/deleted/.del-cpumask_up.h~5ae8a8bbe33655aa # 2004/06/24 08:51:07-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-generic/cpumask_up.h # # BitKeeper/deleted/.del-cpumask_const_value.h~37c848f3b2549e56 # 2004/06/24 08:51:07-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-generic/cpumask_const_value.h # # BitKeeper/deleted/.del-cpumask_const_reference.h~a6bcb3d0a8cd5572 # 2004/06/24 08:51:07-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-generic/cpumask_const_reference.h # # BitKeeper/deleted/.del-cpumask_array.h~d8dbb4ef332b6641 # 2004/06/24 08:51:07-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-generic/cpumask_array.h # # BitKeeper/deleted/.del-cpumask.h~ef85c5f62cd09ecc # 2004/06/24 08:51:07-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-ia64/cpumask.h # # BitKeeper/deleted/.del-cpumask.h~d00e324a21611d5e # 2004/06/24 08:51:07-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-h8300/cpumask.h # # BitKeeper/deleted/.del-cpumask.h~9c3000d85a9eb2c3 # 2004/06/24 08:51:07-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-m68knommu/cpumask.h # # BitKeeper/deleted/.del-cpumask.h~95753b8b1b5eadfd # 2004/06/24 08:51:07-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-mips/cpumask.h # # BitKeeper/deleted/.del-cpumask.h~8f5805a145d3479 # 2004/06/24 08:51:07-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-ppc64/cpumask.h # # BitKeeper/deleted/.del-cpumask.h~691fe59423e88649 # 2004/06/24 08:51:07-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-m68k/cpumask.h # # BitKeeper/deleted/.del-cpumask.h~36e5486b7d611984 # 2004/06/24 08:51:07-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-i386/cpumask.h # # BitKeeper/deleted/.del-cpumask.h~3651679af4088f3f # 2004/06/24 08:51:07-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-generic/cpumask.h # # BitKeeper/deleted/.del-cpumask.h~19435a516253afde # 2004/06/24 08:51:07-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-parisc/cpumask.h # # BitKeeper/deleted/.del-cpumask_arith.h~60abfed510eafce # 2004/06/24 08:51:06-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-generic/cpumask_arith.h # # BitKeeper/deleted/.del-cpumask.h~e7ecd1e7ac7c6566 # 2004/06/24 08:51:06-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-cris/cpumask.h # # BitKeeper/deleted/.del-cpumask.h~cb61c8489d907dae # 2004/06/24 08:51:06-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-alpha/cpumask.h # # BitKeeper/deleted/.del-cpumask.h~2e2628a36ae6cbb # 2004/06/24 08:51:06-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-arm/cpumask.h # # BitKeeper/deleted/.del-cpumask.h~2c95bed74d074fe0 # 2004/06/24 08:51:06-07:00 akpm@osdl.org +0 -0 # Delete: include/asm-arm26/cpumask.h # # ChangeSet # 2004/06/24 08:51:00-07:00 akpm@osdl.org # [PATCH] cpumask: rewrite cpumask.h - single bitmap based implementation # # From: Paul Jackson # # Major rewrite of cpumask to use a single implementation, as a struct-wrapped # bitmap. # # This patch leaves some 26 include/asm-*/cpumask*.h header files orphaned - to # be removed next patch. # # Some nine cpumask macros for const variants and to coerce and promote between # an unsigned long and a cpumask are obsolete. Simple emulation wrappers are # provided in this patch for these obsolete macros, which can be removed once # each of the 3 archs (i386, ppc64, x86_64) using them are recoded in follow-on # patches to not need them. # # The CPU_MASK_ALL macro now avoids leaving possible garbage one bits in any # unused portion of the high word. # # An inproved comment lists all available operators, for convenient browsing. # # From: Mikael Pettersson # # 2.6.7-rc3-mm1 changed CPU_MASK_NONE into something that isn't a valid # rvalue (it only works inside struct initializers). This caused compile-time # errors in perfctr in UP x86 builds. # # From: Arnd Bergmann # # cpumask-5-10-rewrite-cpumaskh-single-bitmap-based from 2.6.7-rc3-mm1 # causes include2/asm/smp.h:54:1: warning: "cpu_online" redefined # # Signed-off-by: Paul Jackson # Signed-off-by: Mikael Pettersson # Signed-off-by: Arnd Bergmann # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/sched.c # 2004/06/24 01:55:50-07:00 akpm@osdl.org +5 -0 # cpumask: rewrite cpumask.h - single bitmap based implementation # # kernel/rcupdate.c # 2004/06/24 01:55:50-07:00 akpm@osdl.org +2 -5 # cpumask: rewrite cpumask.h - single bitmap based implementation # # include/linux/cpumask.h # 2004/06/24 01:55:50-07:00 akpm@osdl.org +360 -34 # cpumask: rewrite cpumask.h - single bitmap based implementation # # include/asm-s390/smp.h # 2004/06/24 01:55:50-07:00 akpm@osdl.org +0 -6 # cpumask: rewrite cpumask.h - single bitmap based implementation # # arch/sparc64/kernel/irq.c # 2004/06/24 01:55:50-07:00 akpm@osdl.org +4 -2 # cpumask: rewrite cpumask.h - single bitmap based implementation # # ChangeSet # 2004/06/24 08:50:51-07:00 akpm@osdl.org # [PATCH] cpumask: bitmap inlining and optimizations # # From: Paul Jackson # # These bitmap improvements make it a suitable basis for fully supporting # cpumask_t and nodemask_t. Inline macros with compile-time checks enable # generating tight code on both small and large systems (large meaning cpumask_t # requires more than one unsigned long's worth of bits). # # The existing bitmap_ macros in lib/bitmap.c are renamed to __bitmap_, # and wrappers for each bitmap_ are exposed in include/linux/bitmap.h # # This patch _includes_ Bill Irwins rewrite of the bitmap_shift operators to not # require a fixed length intermediate bitmap. # # Improved comments list each available operator for easy browsing. # # Signed-off-by: Paul Jackson # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # lib/bitmap.c # 2004/06/24 01:55:49-07:00 akpm@osdl.org +47 -44 # cpumask: bitmap inlining and optimizations # # include/linux/bitmap.h # 2004/06/24 01:55:49-07:00 akpm@osdl.org +228 -36 # cpumask: bitmap inlining and optimizations # # ChangeSet # 2004/06/24 08:50:40-07:00 akpm@osdl.org # [PATCH] cpumask: bitmap cleanup preparation for cpumask overhaul # # From: Paul Jackson # # Document the bitmap bit model and handling of unused bits. # # Tighten up bitmap so it does not generate nonzero bits in the unused tail if # it is not given any on input. # # Add intersects, subset, xor and andnot operators. Change bitmap_complement to # take two operands. # # Add a couple of missing 'const' qualifiers on bitops test_bit and bitmap_equal # args. # # Signed-off-by: Paul Jackson # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/mempolicy.c # 2004/06/24 01:55:49-07:00 akpm@osdl.org +5 -7 # cpumask: bitmap cleanup preparation for cpumask overhaul # # lib/bitmap.c # 2004/06/24 01:55:49-07:00 akpm@osdl.org +81 -6 # cpumask: bitmap cleanup preparation for cpumask overhaul # # include/linux/bitmap.h # 2004/06/24 01:55:49-07:00 akpm@osdl.org +10 -2 # cpumask: bitmap cleanup preparation for cpumask overhaul # # include/asm-x86_64/mpspec.h # 2004/06/24 01:55:49-07:00 akpm@osdl.org +1 -1 # cpumask: bitmap cleanup preparation for cpumask overhaul # # include/asm-i386/mpspec.h # 2004/06/24 01:55:49-07:00 akpm@osdl.org +1 -1 # cpumask: bitmap cleanup preparation for cpumask overhaul # # include/asm-generic/cpumask_array.h # 2004/06/24 01:55:49-07:00 akpm@osdl.org +1 -1 # cpumask: bitmap cleanup preparation for cpumask overhaul # # include/asm-generic/bitops.h # 2004/06/24 01:55:49-07:00 akpm@osdl.org +1 -1 # cpumask: bitmap cleanup preparation for cpumask overhaul # # arch/x86_64/kernel/smpboot.c # 2004/06/24 01:55:49-07:00 akpm@osdl.org +1 -1 # cpumask: bitmap cleanup preparation for cpumask overhaul # # ChangeSet # 2004/06/24 08:50:29-07:00 akpm@osdl.org # [PATCH] cpumask: make cpu_present_map real even on non-smp # # From: Paul Jackson # # This patch makes cpu_present_map a real map for all configurations, instead of # a constant for non-SMP. It also moves the definition of cpu_present_map out # of kernel/cpu.c into kernel/sched.c, because cpu.c isn't compiled into non-SMP # kernels. # # The pattern is that each of the possible, present and online cpu maps are # actual kernel global cpumask_t variables, for all configurations. They are # documented in include/linux/cpumask.h. Some of the UP (NR_CPUS=1) code # cheats, and hardcodes the assumption that the single bit position of these # maps is always set, as an optimization. # # Signed-off-by: Paul Jackson # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/sched.c # 2004/06/24 01:55:49-07:00 akpm@osdl.org +10 -0 # cpumask: make cpu_present_map real even on non-smp # # kernel/cpu.c # 2004/06/24 01:55:49-07:00 akpm@osdl.org +0 -8 # cpumask: make cpu_present_map real even on non-smp # # include/linux/cpumask.h # 2004/06/24 01:55:49-07:00 akpm@osdl.org +5 -8 # cpumask: make cpu_present_map real even on non-smp # # ChangeSet # 2004/06/24 08:50:18-07:00 akpm@osdl.org # [PATCH] rcu: avoid passing an argument to the callback function # # From: Dipankar Sarma # # This patch changes the call_rcu() API and avoids passing an argument to the # callback function as suggested by Rusty. Instead, it is assumed that the # user has embedded the rcu head into a structure that is useful in the # callback and the rcu_head pointer is passed to the callback. The callback # can use container_of() to get the pointer to its structure and work with # it. Together with the rcu-singly-link patch, it reduces the rcu_head size # by 50%. Considering that we use these in things like struct dentry and # struct dst_entry, this is good savings in space. # # An example : # # struct my_struct { # struct rcu_head rcu; # int x; # int y; # }; # # void my_rcu_callback(struct rcu_head *head) # { # struct my_struct *p = container_of(head, struct my_struct, rcu); # free(p); # } # # void my_delete(struct my_struct *p) # { # ... # call_rcu(&p->rcu, my_rcu_callback); # ... # } # # Signed-Off-By: Dipankar Sarma # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # security/selinux/netif.c # 2004/06/24 01:55:48-07:00 akpm@osdl.org +3 -3 # rcu: avoid passing an argument to the callback function # # net/sched/sch_generic.c # 2004/06/24 01:55:48-07:00 akpm@osdl.org +3 -3 # rcu: avoid passing an argument to the callback function # # net/ipv4/route.c # 2004/06/24 01:55:48-07:00 akpm@osdl.org +2 -2 # rcu: avoid passing an argument to the callback function # # net/decnet/dn_route.c # 2004/06/24 01:55:48-07:00 akpm@osdl.org +2 -2 # rcu: avoid passing an argument to the callback function # # net/bridge/br_if.c # 2004/06/24 01:55:48-07:00 akpm@osdl.org +9 -3 # rcu: avoid passing an argument to the callback function # # kernel/rcupdate.c # 2004/06/24 01:55:48-07:00 akpm@osdl.org +16 -10 # rcu: avoid passing an argument to the callback function # # kernel/auditsc.c # 2004/06/24 01:55:48-07:00 akpm@osdl.org +4 -3 # rcu: avoid passing an argument to the callback function # # ipc/util.c # 2004/06/24 01:55:48-07:00 akpm@osdl.org +20 -5 # rcu: avoid passing an argument to the callback function # # include/net/dst.h # 2004/06/24 01:55:48-07:00 akpm@osdl.org +6 -0 # rcu: avoid passing an argument to the callback function # # include/linux/rcupdate.h # 2004/06/24 01:55:48-07:00 akpm@osdl.org +4 -6 # rcu: avoid passing an argument to the callback function # # fs/dcache.c # 2004/06/24 01:55:48-07:00 akpm@osdl.org +3 -3 # rcu: avoid passing an argument to the callback function # # arch/ppc64/mm/tlb.c # 2004/06/24 01:55:48-07:00 akpm@osdl.org +4 -3 # rcu: avoid passing an argument to the callback function # # ChangeSet # 2004/06/24 08:50:06-07:00 akpm@osdl.org # [PATCH] reduce rcu_head size - core # # From: Dipankar Sarma # # This reduces the RCU head size by using a singly linked to maintain them. # The ordering of the callbacks is still maintained as before by using a tail # pointer for the next list. # # Signed-Off-By : Dipankar Sarma # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/rcupdate.c # 2004/06/24 01:55:48-07:00 akpm@osdl.org +21 -21 # reduce rcu_head size - core # # include/linux/rcupdate.h # 2004/06/24 01:55:48-07:00 akpm@osdl.org +13 -11 # reduce rcu_head size - core # # ChangeSet # 2004/06/24 08:49:55-07:00 akpm@osdl.org # [PATCH] rcu lock update: Code move & cleanup # # From: Manfred Spraul # # Step three for reducing cacheline trashing within rcupdate.c: # # Cleanup and code move from to kernel/rcupdate.c: Remove # internal details from the header file. # # Signed-off-by: Manfred Spraul # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/rcupdate.c # 2004/06/24 01:55:48-07:00 akpm@osdl.org +45 -36 # rcu lock update: Code move & cleanup # # include/linux/rcupdate.h # 2004/06/24 01:55:48-07:00 akpm@osdl.org +8 -19 # rcu lock update: Code move & cleanup # # ChangeSet # 2004/06/24 08:49:44-07:00 akpm@osdl.org # [PATCH] rcu lock update: Use a sequence lock for starting batches # # From: Manfred Spraul # # Step two for reducing cacheline trashing within rcupdate.c: # # rcu_process_callbacks always acquires rcu_ctrlblk.state.mutex and calls # rcu_start_batch, even if the batch is already running or already scheduled to # run. # # This can be avoided with a sequence lock: A sequence lock allows to read the # current batch number and next_pending atomically. If next_pending is already # set, then there is no need to acquire the global mutex. # # This means that for each grace period, there will be # # - one write access to the rcu_ctrlblk.batch cacheline # # - lots of read accesses to rcu_ctrlblk.batch (3-10*cpus_online()). Behavior # similar to the jiffies cacheline, shouldn't be a problem. # # - cpus_online()+1 write accesses to rcu_ctrlblk.state, all of them starting # with spin_lock(&rcu_ctrlblk.state.mutex). # # For large enough cpus_online() this will be a problem, but all except two # of the spin_lock calls only protect the rcu_cpu_mask bitmap, thus a # hierarchical bitmap would allow to split the write accesses to multiple # cachelines. # # Tested on an 8-way with reaim. Unfortunately it probably won't help with Jack # Steiner's 'ls' test since in this test only one cpu generates rcu entries. # # Signed-off-by: Manfred Spraul # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/rcupdate.c # 2004/06/24 01:55:48-07:00 akpm@osdl.org +21 -8 # rcu lock update: Use a sequence lock for starting batches # # include/linux/rcupdate.h # 2004/06/24 01:55:48-07:00 akpm@osdl.org +5 -1 # rcu lock update: Use a sequence lock for starting batches # # ChangeSet # 2004/06/24 08:49:33-07:00 akpm@osdl.org # [PATCH] rcu lock update: Add per-cpu batch counter # # From: Manfred Spraul # # Below is the one of my patches from my rcu lock update. Jack Steiner tested # the first one on a 512p and it resolved the rcu cache line trashing. All were # tested on osdl with STP. # # Step one for reducing cacheline trashing within rcupdate.c: # # The current code uses the rcu_cpu_mask bitmap both for keeping track of the # cpus that haven't gone through a quiescent state and for checking if a cpu # should look for quiescent states. The bitmap is frequently changed and the # check is done by polling - together this causes cache line trashing. # # If it's cheaper to access a (mostly) read-only cacheline than a cacheline that # is frequently dirtied, then it's possible to reduce the trashing by splitting # the rcu_cpu_mask bitmap into two cachelines: # # The patch adds a generation counter and moves it into a separate cacheline. # This allows to removes all accesses to rcu_cpumask (in the read-write # cacheline) from rcu_pending and at least 50% of the accesses from # rcu_check_quiescent_state. rcu_pending and all but one call per cpu to # rcu_check_quiescent_state access the read-only cacheline. Probably not enough # for 512p, but it's a start, just for 128 byte more memory use, without slowing # down rcu grace periods. Obviously the read-only cacheline is not really # read-only: it's written once per grace period to indicate that a new grace # period is running. # # Tests on an 8-way Pentium III with reaim showed some improvement: # # oprofile hits: # Reference: http://khack.osdl.org/stp/293075/ # Hits % # 23741 0.0994 rcu_pending # 19057 0.0798 rcu_check_quiescent_state # 6530 0.0273 rcu_check_callbacks # # Patched: http://khack.osdl.org/stp/293076/ # 8291 0.0579 rcu_pending # 5475 0.0382 rcu_check_quiescent_state # 3604 0.0252 rcu_check_callbacks # # The total runtime differs between both runs, thus the % number must # be compared: Around 50% faster. I've uninlined rcu_pending for the # test. # # Tested with reaim and kernbench. # # Description: # # - per-cpu quiescbatch and qs_pending fields introduced: quiescbatch contains # the number of the last quiescent period that the cpu has seen and qs_pending # is set if the cpu has not yet reported the quiescent state for the current # period. With these two fields a cpu can test if it should report a # quiescent state without having to look at the frequently written # rcu_cpu_mask bitmap. # # - curbatch split into two fields: rcu_ctrlblk.batch.completed and # rcu_ctrlblk.batch.cur. This makes it possible to figure out if a grace # period is running (completed != cur) without accessing the rcu_cpu_mask # bitmap. # # - rcu_ctrlblk.maxbatch removed and replaced with a true/false next_pending # flag: next_pending=1 means that another grace period should be started # immediately after the end of the current period. Previously, this was # achieved by maxbatch: curbatch==maxbatch means don't start, curbatch!= # maxbatch means start. A flag improves the readability: The only possible # values for maxbatch were curbatch and curbatch+1. # # - rcu_ctrlblk split into two cachelines for better performance. # # - common code from rcu_offline_cpu and rcu_check_quiescent_state merged into # cpu_quiet. # # - rcu_offline_cpu: replace spin_lock_irq with spin_lock_bh, there are no # accesses from irq context (and there are accesses to the spinlock with # enabled interrupts from tasklet context). # # - rcu_restart_cpu introduced, s390 should call it after changing nohz: # Theoretically the global batch counter could wrap around and end up at # RCU_quiescbatch(cpu). Then the cpu would not look for a quiescent state and # rcu would lock up. # # Signed-off-by: Manfred Spraul # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/rcupdate.c # 2004/06/24 01:55:47-07:00 akpm@osdl.org +88 -54 # rcu lock update: Add per-cpu batch counter # # include/linux/rcupdate.h # 2004/06/24 01:55:47-07:00 akpm@osdl.org +34 -14 # rcu lock update: Add per-cpu batch counter # # ChangeSet # 2004/06/24 08:49:21-07:00 akpm@osdl.org # [PATCH] Move saved_command_line to init/main.c # # From: Rusty Russell # # Currently every arch declares its own char saved_command_line[]. Make sure # every arch defines COMMAND_LINE_SIZE in asm/setup.h, and declare # saved_command_line in linux/init.h (init/main.c contains the definition). # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # init/main.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +57 -3 # Move saved_command_line to init/main.c # # include/linux/init.h # 2004/06/24 01:55:46-07:00 akpm@osdl.org +17 -5 # Move saved_command_line to init/main.c # # include/asm-x86_64/setup.h # 2004/06/24 01:55:46-07:00 akpm@osdl.org +1 -5 # Move saved_command_line to init/main.c # # include/asm-x86_64/bootsetup.h # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -1 # Move saved_command_line to init/main.c # # include/asm-v850/setup.h # 2004/06/24 01:55:46-07:00 akpm@osdl.org +6 -0 # Move saved_command_line to init/main.c # # include/asm-um/setup.h # 2004/06/24 01:55:46-07:00 akpm@osdl.org +6 -0 # Move saved_command_line to init/main.c # # include/asm-sparc64/setup.h # 2004/06/24 01:55:46-07:00 akpm@osdl.org +1 -0 # Move saved_command_line to init/main.c # # include/asm-sparc/setup.h # 2004/06/24 01:55:46-07:00 akpm@osdl.org +1 -0 # Move saved_command_line to init/main.c # # include/asm-sh/setup.h # 2004/06/24 01:55:46-07:00 akpm@osdl.org +8 -0 # Move saved_command_line to init/main.c # # include/asm-ppc64/setup.h # 2004/06/24 01:55:46-07:00 akpm@osdl.org +1 -1 # Move saved_command_line to init/main.c # # include/asm-ppc64/machdep.h # 2004/06/24 01:55:46-07:00 akpm@osdl.org +1 -2 # Move saved_command_line to init/main.c # # include/asm-ppc/setup.h # 2004/06/24 01:55:46-07:00 akpm@osdl.org +3 -0 # Move saved_command_line to init/main.c # # include/asm-ppc/machdep.h # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -1 # Move saved_command_line to init/main.c # # include/asm-parisc/setup.h # 2004/06/24 01:55:46-07:00 akpm@osdl.org +4 -8 # Move saved_command_line to init/main.c # # include/asm-mips/setup.h # 2004/06/24 01:55:46-07:00 akpm@osdl.org +8 -0 # Move saved_command_line to init/main.c # # include/asm-mips/bootinfo.h # 2004/06/24 01:55:46-07:00 akpm@osdl.org +2 -1 # Move saved_command_line to init/main.c # # include/asm-m68knommu/setup.h # 2004/06/24 01:55:46-07:00 akpm@osdl.org +4 -0 # Move saved_command_line to init/main.c # # include/asm-m68k/setup.h # 2004/06/24 01:55:46-07:00 akpm@osdl.org +1 -0 # Move saved_command_line to init/main.c # # include/asm-ia64/setup.h # 2004/06/24 01:55:46-07:00 akpm@osdl.org +6 -0 # Move saved_command_line to init/main.c # # include/asm-i386/param.h # 2004/06/24 01:55:46-07:00 akpm@osdl.org +1 -0 # Move saved_command_line to init/main.c # # include/asm-h8300/setup.h # 2004/06/24 01:55:46-07:00 akpm@osdl.org +6 -1 # Move saved_command_line to init/main.c # # include/asm-cris/setup.h # 2004/06/24 01:55:46-07:00 akpm@osdl.org +3 -0 # Move saved_command_line to init/main.c # # include/asm-alpha/system.h # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -1 # Move saved_command_line to init/main.c # # include/asm-alpha/setup.h # 2004/06/24 01:55:46-07:00 akpm@osdl.org +6 -0 # Move saved_command_line to init/main.c # # fs/proc/proc_misc.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -1 # Move saved_command_line to init/main.c # # fs/proc/kcore.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +1 -2 # Move saved_command_line to init/main.c # # drivers/sbus/char/openprom.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -1 # Move saved_command_line to init/main.c # # arch/x86_64/kernel/setup.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -1 # Move saved_command_line to init/main.c # # arch/v850/kernel/setup.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +2 -2 # Move saved_command_line to init/main.c # # arch/um/kernel/user_util.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -1 # Move saved_command_line to init/main.c # # arch/sparc64/kernel/sparc64_ksyms.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +1 -1 # Move saved_command_line to init/main.c # # arch/sparc64/kernel/setup.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +1 -2 # Move saved_command_line to init/main.c # # arch/sparc/kernel/sparc_ksyms.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +1 -1 # Move saved_command_line to init/main.c # # arch/sparc/kernel/setup.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +1 -2 # Move saved_command_line to init/main.c # # arch/sh/kernel/setup.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -2 # Move saved_command_line to init/main.c # # arch/s390/kernel/setup.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -1 # Move saved_command_line to init/main.c # # arch/ppc/platforms/prep_setup.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -1 # Move saved_command_line to init/main.c # # arch/ppc/platforms/pplus.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -2 # Move saved_command_line to init/main.c # # arch/ppc/platforms/pmac_setup.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -2 # Move saved_command_line to init/main.c # # arch/ppc/platforms/lopec_setup.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -1 # Move saved_command_line to init/main.c # # include/asm-v850/setup.h # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-v850/setup.h # # include/asm-um/setup.h # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-um/setup.h # # include/asm-sh/setup.h # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-sh/setup.h # # include/asm-mips/setup.h # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-mips/setup.h # # include/asm-ia64/setup.h # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-ia64/setup.h # # include/asm-alpha/setup.h # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-alpha/setup.h # # arch/ppc64/kernel/setup.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -1 # Move saved_command_line to init/main.c # # arch/ppc64/kernel/head.S # 2004/06/24 01:55:46-07:00 akpm@osdl.org +2 -1 # Move saved_command_line to init/main.c # # arch/ppc/kernel/setup.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -1 # Move saved_command_line to init/main.c # # arch/parisc/kernel/setup.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -2 # Move saved_command_line to init/main.c # # arch/mips/kernel/setup.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -1 # Move saved_command_line to init/main.c # # arch/m68knommu/kernel/setup.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +2 -2 # Move saved_command_line to init/main.c # # arch/m68k/q40/config.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -1 # Move saved_command_line to init/main.c # # arch/m68k/kernel/setup.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -1 # Move saved_command_line to init/main.c # # arch/ia64/kernel/setup.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -4 # Move saved_command_line to init/main.c # # arch/i386/kernel/setup.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -1 # Move saved_command_line to init/main.c # # arch/i386/boot/compressed/misc.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +16 -15 # Move saved_command_line to init/main.c # # arch/h8300/kernel/setup.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +2 -2 # Move saved_command_line to init/main.c # # arch/cris/kernel/setup.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -3 # Move saved_command_line to init/main.c # # arch/arm26/kernel/setup.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -1 # Move saved_command_line to init/main.c # # arch/arm/kernel/setup.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -1 # Move saved_command_line to init/main.c # # arch/alpha/kernel/setup.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +0 -1 # Move saved_command_line to init/main.c # # ChangeSet # 2004/06/24 08:49:07-07:00 akpm@osdl.org # [PATCH] jbd needs to wait for locked buffers # # From: Chris Mason # # jbd needs to wait for any io to complete on the buffer before changing the # end_io function. Using set_buffer_locked means that it can change the # end_io function while the page is in the middle of writeback, and the # writeback bit on the page will never get cleared. # # Since we set the buffer dirty earlier on, if the page was previously dirty, # pdflush or memory pressure might trigger a writepage call, which will race # with jbd's set_buffer_locked. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/jbd/commit.c # 2004/06/24 01:55:46-07:00 akpm@osdl.org +1 -1 # jbd needs to wait for locked buffers # # ChangeSet # 2004/06/24 08:48:56-07:00 akpm@osdl.org # [PATCH] Allow i386 to reenable interrupts on lock contention # # From: Zwane Mwaikambo # # Following up on Keith's code, I adapted the i386 code to allow enabling # interrupts during contested locks depending on previous interrupt # enable status. Obviously there will be a text increase (only for non # CONFIG_SPINLINE case), although it doesn't seem so bad, there will be an # increased exit latency when we attempt a lock acquisition after spinning # due to the extra instructions. How much this will affect performance I'm # not sure yet as I haven't had time to micro bench. # # text data bss dec hex filename # 2628024 921731 0 3549755 362a3b vmlinux-after # 2621369 921731 0 3543100 36103c vmlinux-before # 2618313 919222 0 3537535 35fa7f vmlinux-spinline # # The code has been stress tested on a 16x NUMAQ (courtesy OSDL). # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-i386/spinlock.h # 2004/06/24 01:55:46-07:00 akpm@osdl.org +31 -1 # Allow i386 to reenable interrupts on lock contention # # ChangeSet # 2004/06/24 02:01:15-03:00 acme@conectiva.com.br # [NET] make the struct proto entries related to memory pressure be pointers # # This is needed because tcpv6_prot has to point to the same place tcp_prot points, # as they share the same accounting variables. # # This fixes a bug noticed by David Miller when using the ipv6_mapped functionality, # thanks David! # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv6/tcp_ipv6.c # 2004/06/24 02:01:03-03:00 acme@conectiva.com.br +29 -22 # [NET] make the struct proto entries related to memory pressure be pointers # # This is needed because tcpv6_prot has to point to the same place tcp_prot points, # as they share the same accounting variables. # # This fixes a bug noticed by David Miller when using the ipv6_mapped functionality, # thanks David! # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv4/tcp_timer.c # 2004/06/24 02:01:03-03:00 acme@conectiva.com.br +1 -1 # [NET] make the struct proto entries related to memory pressure be pointers # # This is needed because tcpv6_prot has to point to the same place tcp_prot points, # as they share the same accounting variables. # # This fixes a bug noticed by David Miller when using the ipv6_mapped functionality, # thanks David! # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv4/tcp_minisocks.c # 2004/06/24 02:01:03-03:00 acme@conectiva.com.br +1 -1 # [NET] make the struct proto entries related to memory pressure be pointers # # This is needed because tcpv6_prot has to point to the same place tcp_prot points, # as they share the same accounting variables. # # This fixes a bug noticed by David Miller when using the ipv6_mapped functionality, # thanks David! # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv4/tcp_ipv4.c # 2004/06/24 02:01:03-03:00 acme@conectiva.com.br +10 -6 # [NET] make the struct proto entries related to memory pressure be pointers # # This is needed because tcpv6_prot has to point to the same place tcp_prot points, # as they share the same accounting variables. # # This fixes a bug noticed by David Miller when using the ipv6_mapped functionality, # thanks David! # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv4/tcp_input.c # 2004/06/24 02:01:03-03:00 acme@conectiva.com.br +8 -8 # [NET] make the struct proto entries related to memory pressure be pointers # # This is needed because tcpv6_prot has to point to the same place tcp_prot points, # as they share the same accounting variables. # # This fixes a bug noticed by David Miller when using the ipv6_mapped functionality, # thanks David! # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv4/tcp.c # 2004/06/24 02:01:03-03:00 acme@conectiva.com.br +36 -10 # [NET] make the struct proto entries related to memory pressure be pointers # # This is needed because tcpv6_prot has to point to the same place tcp_prot points, # as they share the same accounting variables. # # This fixes a bug noticed by David Miller when using the ipv6_mapped functionality, # thanks David! # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv4/sysctl_net_ipv4.c # 2004/06/24 02:01:03-03:00 acme@conectiva.com.br +6 -6 # [NET] make the struct proto entries related to memory pressure be pointers # # This is needed because tcpv6_prot has to point to the same place tcp_prot points, # as they share the same accounting variables. # # This fixes a bug noticed by David Miller when using the ipv6_mapped functionality, # thanks David! # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/ipv4/proc.c # 2004/06/24 02:01:03-03:00 acme@conectiva.com.br +2 -2 # [NET] make the struct proto entries related to memory pressure be pointers # # This is needed because tcpv6_prot has to point to the same place tcp_prot points, # as they share the same accounting variables. # # This fixes a bug noticed by David Miller when using the ipv6_mapped functionality, # thanks David! # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # net/core/stream.c # 2004/06/24 02:01:03-03:00 acme@conectiva.com.br +13 -13 # [NET] make the struct proto entries related to memory pressure be pointers # # This is needed because tcpv6_prot has to point to the same place tcp_prot points, # as they share the same accounting variables. # # This fixes a bug noticed by David Miller when using the ipv6_mapped functionality, # thanks David! # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # include/net/tcp.h # 2004/06/24 02:01:03-03:00 acme@conectiva.com.br +7 -0 # [NET] make the struct proto entries related to memory pressure be pointers # # This is needed because tcpv6_prot has to point to the same place tcp_prot points, # as they share the same accounting variables. # # This fixes a bug noticed by David Miller when using the ipv6_mapped functionality, # thanks David! # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # include/net/sock.h # 2004/06/24 02:01:03-03:00 acme@conectiva.com.br +6 -6 # [NET] make the struct proto entries related to memory pressure be pointers # # This is needed because tcpv6_prot has to point to the same place tcp_prot points, # as they share the same accounting variables. # # This fixes a bug noticed by David Miller when using the ipv6_mapped functionality, # thanks David! # # Signed-off-by: Arnaldo Carvalho de Melo # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/23 19:44:57-07:00 davem@nuts.davemloft.net # [ATM]: In proc_mpc_read, make length ssize_t. # # net/atm/mpoa_proc.c # 2004/06/23 19:44:39-07:00 davem@nuts.davemloft.net +1 -1 # [ATM]: In proc_mpc_read, make length ssize_t. # # ChangeSet # 2004/06/23 19:42:54-07:00 davem@nuts.davemloft.net # [NETFILTER]: Use correct size_t printk format string in ipt_addrtype.c # # net/ipv4/netfilter/ipt_addrtype.c # 2004/06/23 19:42:36-07:00 davem@nuts.davemloft.net +1 -1 # [NETFILTER]: Use correct size_t printk format string in ipt_addrtype.c # # ChangeSet # 2004/06/23 18:19:39-07:00 davem@nuts.davemloft.net # Merge nuts.davemloft.net:/disk1/BK/acme-2.6 # into nuts.davemloft.net:/disk1/BK/net-2.6 # # net/ipv6/tcp_ipv6.c # 2004/06/23 18:19:29-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv6/sit.c # 2004/06/23 18:19:29-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv6/ip6_output.c # 2004/06/23 18:19:28-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/tcp.c # 2004/06/23 18:19:28-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/ipmr.c # 2004/06/23 18:19:28-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/ipcomp.c # 2004/06/23 18:19:28-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/ip_input.c # 2004/06/23 18:19:28-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/ip_gre.c # 2004/06/23 18:19:28-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/esp4.c # 2004/06/23 18:19:28-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/ah4.c # 2004/06/23 18:19:28-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # include/linux/skbuff.h # 2004/06/23 18:19:28-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # ChangeSet # 2004/06/23 18:17:00-07:00 davem@nuts.davemloft.net # Merge nuts.davemloft.net:/disk1/BK/netnew-2.6 # into nuts.davemloft.net:/disk1/BK/net-2.6 # # net/ipv6/sit.c # 2004/06/23 18:16:51-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/ipmr.c # 2004/06/23 18:16:51-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/ip_input.c # 2004/06/23 18:16:50-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/ip_gre.c # 2004/06/23 18:16:50-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # include/linux/skbuff.h # 2004/06/23 18:16:50-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # ChangeSet # 2004/06/23 16:59:52-07:00 ossi@kde.org # [PATCH] PCI: (one more) PCI quirk for SMBus bridge on Asus P4 boards # # my board has one of those "clever" bioses that hide the smbus. this tiny # patch adds it to the Bad Guy List (TM). # # # Signed-off-by: Greg Kroah-Hartman # # drivers/pci/quirks.c # 2004/05/23 20:25:49-07:00 ossi@kde.org +1 -0 # PCI: (one more) PCI quirk for SMBus bridge on Asus P4 boards # # ChangeSet # 2004/06/24 00:40:38+01:00 rmk@flint.arm.linux.org.uk # [ARM] Fix acornfb build error. # # drivers/video/acornfb.c # 2004/06/24 00:37:55+01:00 rmk@flint.arm.linux.org.uk +3 -1 # Fix acornfb build error. # # ChangeSet # 2004/06/24 00:23:46+01:00 rmk@flint.arm.linux.org.uk # [ARM] Fix Footbridge timer functions. # # arch/arm/mach-footbridge/time.c # 2004/06/24 00:21:20+01:00 rmk@flint.arm.linux.org.uk +3 -3 # Fix couple of typo's. # The ISA IRQ number is IRQ_ISA_TIMER. # # ChangeSet # 2004/06/24 00:15:06+01:00 rmk@flint.arm.linux.org.uk # [ARM] Fix EBSA110 timer functions. # # Unfortunately this broke in Deepak's merge. Fix it. # # arch/arm/mach-ebsa110/core.c # 2004/06/24 00:12:38+01:00 rmk@flint.arm.linux.org.uk +2 -1 # Needs linux/interrupt.h # ebsa110_time_init should be ebsa110_init_time, and can be static. # # BitKeeper/deleted/.del-time.c~80f13e5e859789c2 # 2004/06/24 00:06:48+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: arch/arm/mach-ebsa110/time.c # # ChangeSet # 2004/06/23 23:26:14+01:00 tony@com.rmk.(none) # [ARM PATCH] 1943/1: OMAP compile fix # # Patch from Tony Lindgren # # This patch fixes OMAP compile after the ARM timer changes # in cset 1.1821.5.3 and dma-mapping device address translation # in cset 1.1821.5.3. # # arch/arm/mach-omap/time.c # 2004/06/23 15:56:02+01:00 tony@com.rmk.(none) +5 -0 # [PATCH] 1943/1: OMAP compile fix # # arch/arm/mach-omap/bus.c # 2004/06/23 15:55:21+01:00 tony@com.rmk.(none) +0 -39 # [PATCH] 1943/1: OMAP compile fix # # ChangeSet # 2004/06/23 18:03:17-03:00 acme@conectiva.com.br # [NET] Generalise tcp_{writequeue_purge,rmem_schedule,alloc_{pskb,page}} # # Only new requirement was to add a max_header field to struct sock sk_prot # member. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv6/tcp_ipv6.c # 2004/06/23 18:03:04-03:00 acme@conectiva.com.br +2 -1 # [NET] Generalise tcp_{writequeue_purge,rmem_schedule,alloc_{pskb,page}} # # Only new requirement was to add a max_header field to struct sock sk_prot # member. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp_output.c # 2004/06/23 18:03:03-03:00 acme@conectiva.com.br +1 -1 # [NET] Generalise tcp_{writequeue_purge,rmem_schedule,alloc_{pskb,page}} # # Only new requirement was to add a max_header field to struct sock sk_prot # member. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp_ipv4.c # 2004/06/23 18:03:03-03:00 acme@conectiva.com.br +2 -1 # [NET] Generalise tcp_{writequeue_purge,rmem_schedule,alloc_{pskb,page}} # # Only new requirement was to add a max_header field to struct sock sk_prot # member. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp_input.c # 2004/06/23 18:03:03-03:00 acme@conectiva.com.br +6 -10 # [NET] Generalise tcp_{writequeue_purge,rmem_schedule,alloc_{pskb,page}} # # Only new requirement was to add a max_header field to struct sock sk_prot # member. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp.c # 2004/06/23 18:03:03-03:00 acme@conectiva.com.br +6 -6 # [NET] Generalise tcp_{writequeue_purge,rmem_schedule,alloc_{pskb,page}} # # Only new requirement was to add a max_header field to struct sock sk_prot # member. # # Signed-off-by: Arnaldo Carvalho de Melo # # include/net/tcp.h # 2004/06/23 18:03:03-03:00 acme@conectiva.com.br +0 -46 # [NET] Generalise tcp_{writequeue_purge,rmem_schedule,alloc_{pskb,page}} # # Only new requirement was to add a max_header field to struct sock sk_prot # member. # # Signed-off-by: Arnaldo Carvalho de Melo # # include/net/sock.h # 2004/06/23 18:03:03-03:00 acme@conectiva.com.br +56 -0 # [NET] Generalise tcp_{writequeue_purge,rmem_schedule,alloc_{pskb,page}} # # Only new requirement was to add a max_header field to struct sock sk_prot # member. # # Signed-off-by: Arnaldo Carvalho de Melo # # ChangeSet # 2004/06/23 19:13:37+01:00 rmk@flint.arm.linux.org.uk # [ARM] Fix platform device registration. # # Since the platform device registration is now merged into the driver # model, remove it from the ARM specific code. # # arch/arm/mach-versatile/core.c # 2004/06/23 19:11:04+01:00 rmk@flint.arm.linux.org.uk +2 -2 # Use platform_device_register not platform_add_device # # arch/arm/mach-integrator/integrator_ap.c # 2004/06/23 19:11:04+01:00 rmk@flint.arm.linux.org.uk +1 -1 # Use platform_device_register not platform_add_device # # arch/arm/common/Makefile # 2004/06/23 19:11:04+01:00 rmk@flint.arm.linux.org.uk +0 -1 # Remove platform.o # # ChangeSet # 2004/06/23 10:55:18-07:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] bug in V-link handling (arch/i386/pci/irq.c) # # Via southbridges use register 0x3c of the on-board devices (USB and # AC97) to control interrupt routing for those. In drivers/pci/quirks.c we # set it correctly (dev->irq & 15). However, in pirq_enable_irq() where the # second half of that stuff lives, we forget to apply the mask. # # That's what causes problems with ioapic on via motherboards in 2.6. # One-liner below ACKed by Alan, verified on via-based boxen here, obviously # doesn't affect non-via ones (we only set interrupt_line_quirk for via # chipsets). # # arch/i386/pci/irq.c # 2004/06/22 12:40:53-07:00 viro@parcelfarce.linux.theplanet.co.uk +1 -1 # bug in V-link handling (arch/i386/pci/irq.c) # # BitKeeper/deleted/.del-platform.c~ecafa76df502a094 # 2004/06/23 18:21:25+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: arch/arm/common/platform.c # # ChangeSet # 2004/06/23 18:09:17+01:00 rmk@flint.arm.linux.org.uk # [ARM] Fix Integrator/CP timer support. # # arch/arm/mach-integrator/time.c # 2004/06/23 18:04:47+01:00 rmk@flint.arm.linux.org.uk +0 -144 # Remove timer setup/interrupt support. # # arch/arm/mach-integrator/integrator_cp.c # 2004/06/23 18:04:47+01:00 rmk@flint.arm.linux.org.uk +2 -0 # Integrator/CP needs TIMER_CTRL_IE # # arch/arm/mach-integrator/core.c # 2004/06/23 18:04:47+01:00 rmk@flint.arm.linux.org.uk +139 -0 # Move timer support from time.c # # ChangeSet # 2004/06/23 09:43:03-07:00 davem@nuts.davemloft.net # Merge bk://kernel.bkbits.net/acme/net-2.6 # into nuts.davemloft.net:/disk1/BK/acme-2.6 # # net/ipv6/tcp_ipv6.c # 2004/06/23 09:42:54-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv6/sit.c # 2004/06/23 09:42:54-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv6/ip6_output.c # 2004/06/23 09:42:53-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/tcp_input.c # 2004/06/23 09:42:53-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/tcp.c # 2004/06/23 09:42:53-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/ipmr.c # 2004/06/23 09:42:53-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/ipcomp.c # 2004/06/23 09:42:53-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/ip_input.c # 2004/06/23 09:42:53-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/ip_gre.c # 2004/06/23 09:42:53-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/esp4.c # 2004/06/23 09:42:53-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/ah4.c # 2004/06/23 09:42:52-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # include/linux/skbuff.h # 2004/06/23 09:42:52-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # ChangeSet # 2004/06/23 08:05:47-07:00 davem@nuts.davemloft.net # Merge # # net/sched/Kconfig # 2004/06/23 08:04:20-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/core/skbuff.c # 2004/06/23 08:04:20-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # include/net/pkt_sched.h # 2004/06/23 08:04:19-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # include/linux/skbuff.h # 2004/06/23 08:04:19-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # include/linux/pkt_sched.h # 2004/06/23 08:04:19-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # include/linux/netdevice.h # 2004/06/23 08:04:19-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # ChangeSet # 2004/06/23 07:44:19-07:00 yoshfuji@linux-ipv6.org # [NETFILTER]: Fix iptable_raw.c build with older gcc. # # net/ipv4/netfilter/iptable_raw.c # 2004/06/23 07:44:05-07:00 yoshfuji@linux-ipv6.org +11 -5 # [NETFILTER]: Fix iptable_raw.c build with older gcc. # # ChangeSet # 2004/06/23 08:09:38+01:00 dwmw2@shinybook.infradead.org # WindRiver PowerQUICC III platform support cleanup. # # Respond to maintainer feedback -- remove unneeded setup for # the FEC port which doesn't exist; small cosmetic changes. # # Signed-off-by: Kumar Gala # # arch/ppc/platforms/85xx/sbc85xx.h # 2004/06/23 08:09:19+01:00 dwmw2@shinybook.infradead.org +0 -2 # Remove unneeded forward declaration of struct pci_dev; # # arch/ppc/platforms/85xx/sbc8560.c # 2004/06/23 08:09:19+01:00 dwmw2@shinybook.infradead.org +1 -21 # Slight cleanup; remove settings for the FEC which doesn't exist. # # ChangeSet # 2004/06/22 19:53:47-07:00 jbarnes@engr.sgi.com # [PATCH] ppc32: Support for new Apple laptop models # # This adds sound support for some of the newer PowerBooks. It appears # that this chip supports the AWACS sample rates, but has a snapper-style # mixer. Tested and works on my PowerBook5,4. # # Signed-off-by: Jesse Barnes # Signed-off-by: Linus Torvalds # # ChangeSet # 2004/06/22 19:52:14-07:00 paulus@samba.org # [PATCH] Handle altivec assist exception properly # # This is the PPC64 counterpart of the PPC32 Altivec assist exception # handler that went in recently. # # On PPC64 machines with Altivec (i.e. machines that use the PPC970 chip, # such as the G5 powermac), the altivec floating-point instructions can # operate in two modes: one where denormalized inputs or outputs are # truncated to zero, and one where they aren't. In the latter mode the # processor can take an exception when it encounters denormalized # floating-point inputs or outputs rather than dealing with them in # hardware. # # This patch adds code to deal properly with the exception, by emulating # the instruction that caused the exception. Previously the kernel just # switched the altivec unit into the truncate-to-zero mode, which works # but is a bit gross. Fortunately there are only a limited set of altivec # instructions which can generate the assist exception, so we don't have # to emulate the whole altivec instruction set. # # Note that Altivec is Motorola's name for the PowerPC vector/SIMD # instructions; IBM calls the same thing VMX, and currently only IBM makes # 64-bit PowerPC CPU chips. Nevertheless, I have used the term Altivec in # the PPC64 code for consistency with the PPC32 code. # # Signed-off-by: Paul Mackerras # Signed-off-by: Linus Torvalds # # ChangeSet # 2004/06/22 19:52:02-07:00 benh@kernel.crashing.org # [PATCH] radeonfb: Fix panel detection on some laptops # # The code in radeonfb looking for the BIOS image currently uses the BIOS # ROM if any, and falls back to the RAM image if not found. This is # unfortunatly not correct for a bunch of laptops where the real panel # data are only present in the RAM image. # # This works around this problem by preferring the RAM image on mobility # chipsets. This is definitely not the best workaround, we need some arch # support for linking the RAM image to the PCI ID (preferrably by having # the arch snapshot it during boot, isolating us completely from the # details of where this image is in memory). I'll see how we can get such # an improvement later. # # Signed-off-by: Benjamin Herrenschmidt # Signed-off-by: Linus Torvalds # # ChangeSet # 2004/06/22 19:51:52-07:00 benh@kernel.crashing.org # [PATCH] ppc32: Support for new Apple laptop models # # This adds support for newer Apple laptop models. It adds the basic # identification for the new motherboards and the cpufreq support for # models using the new 7447A CPU from Motorola. # # This is mostly the work of John Steele Scott with # some bits from Sebastian Henschel and some rework by # myself. Please apply, # # Signed-off-by: John Steele Scott # Signed-off-by: Sebastian Henschel # Signed-off-by: Benjamin Herrenschmidt # Signed-off-by: Linus Torvalds # # ChangeSet # 2004/06/22 19:51:41-07:00 benh@kernel.crashing.org # [PATCH] ppc32: oprofile support # # This adds basic oprofile support to ppc32. Originally from Anton # Blanchard, I just re-diffed it against current kernels. # # Signed-off-by: Anton Blanchard # Signed-off-by: Benjamin Herrenschmidt # Signed-off-by: Linus Torvalds # # ChangeSet # 2004/06/22 19:51:29-07:00 benh@kernel.crashing.org # [PATCH] ppc32: Cleanups & warning fixes of traps.c # # This cleans up arch/ppc/kernel/traps.c and vecemu.c to use the same # formatting style for all functions, and fixes 2 warnings in the altivec # floating point emulation code. No functional change. # # Signed-off-by: Benjamin Herrenschmidt # Signed-off-by: Linus Torvalds # # ChangeSet # 2004/06/23 01:20:40-03:00 acme@conectiva.com.br # [NET] Generalise tcp memory pressure handling # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv6/tcp_ipv6.c # 2004/06/23 01:20:29-03:00 acme@conectiva.com.br +4 -4 # [NET] Generalise tcp memory pressure handling # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp_timer.c # 2004/06/23 01:20:29-03:00 acme@conectiva.com.br +6 -6 # [NET] Generalise tcp memory pressure handling # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp_output.c # 2004/06/23 01:20:29-03:00 acme@conectiva.com.br +1 -1 # [NET] Generalise tcp memory pressure handling # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp_minisocks.c # 2004/06/23 01:20:29-03:00 acme@conectiva.com.br +1 -1 # [NET] Generalise tcp memory pressure handling # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp_ipv4.c # 2004/06/23 01:20:29-03:00 acme@conectiva.com.br +24 -21 # [NET] Generalise tcp memory pressure handling # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp_input.c # 2004/06/23 01:20:29-03:00 acme@conectiva.com.br +17 -17 # [NET] Generalise tcp memory pressure handling # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp.c # 2004/06/23 01:20:29-03:00 acme@conectiva.com.br +15 -116 # [NET] Generalise tcp memory pressure handling # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/sysctl_net_ipv4.c # 2004/06/23 01:20:28-03:00 acme@conectiva.com.br +6 -6 # [NET] Generalise tcp memory pressure handling # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/proc.c # 2004/06/23 01:20:28-03:00 acme@conectiva.com.br +2 -2 # [NET] Generalise tcp memory pressure handling # # Signed-off-by: Arnaldo Carvalho de Melo # # net/core/stream.c # 2004/06/23 01:20:28-03:00 acme@conectiva.com.br +97 -0 # [NET] Generalise tcp memory pressure handling # # Signed-off-by: Arnaldo Carvalho de Melo # # include/net/tcp.h # 2004/06/23 01:20:28-03:00 acme@conectiva.com.br +4 -28 # [NET] Generalise tcp memory pressure handling # # Signed-off-by: Arnaldo Carvalho de Melo # # include/net/sock.h # 2004/06/23 01:20:28-03:00 acme@conectiva.com.br +33 -1 # [NET] Generalise tcp memory pressure handling # # Signed-off-by: Arnaldo Carvalho de Melo # # sound/ppc/pmac.c # 2004/06/22 14:40:39-07:00 jbarnes@engr.sgi.com +7 -0 # ppc32: Support for new Apple laptop models # # arch/ppc64/kernel/vector.S # 2004/06/22 19:52:07-07:00 paulus@samba.org +172 -0 # Handle altivec assist exception properly # # include/asm-ppc64/system.h # 2004/06/22 19:52:07-07:00 paulus@samba.org +1 -0 # Handle altivec assist exception properly # # arch/ppc64/kernel/vector.S # 2004/06/22 19:52:07-07:00 paulus@samba.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc64/kernel/vector.S # # arch/ppc64/kernel/vecemu.c # 2004/06/22 19:52:07-07:00 paulus@samba.org +346 -0 # Handle altivec assist exception properly # # arch/ppc64/kernel/traps.c # 2004/06/22 16:05:33-07:00 paulus@samba.org +32 -2 # Handle altivec assist exception properly # # arch/ppc64/kernel/Makefile # 2004/06/22 19:52:07-07:00 paulus@samba.org +2 -0 # Handle altivec assist exception properly # # arch/ppc64/kernel/vecemu.c # 2004/06/22 19:52:07-07:00 paulus@samba.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc64/kernel/vecemu.c # # drivers/video/aty/radeon_base.c # 2004/06/22 13:11:16-07:00 benh@kernel.crashing.org +16 -2 # radeonfb: Fix panel detection on some laptops # # include/asm-ppc/uninorth.h # 2004/06/22 13:04:07-07:00 benh@kernel.crashing.org +6 -0 # ppc32: Support for new Apple laptop models # # include/asm-ppc/reg.h # 2004/06/22 13:04:07-07:00 benh@kernel.crashing.org +1 -0 # ppc32: Support for new Apple laptop models # # include/asm-ppc/pmac_feature.h # 2004/06/22 13:04:07-07:00 benh@kernel.crashing.org +6 -0 # ppc32: Support for new Apple laptop models # # arch/ppc/platforms/pmac_feature.c # 2004/06/22 13:04:07-07:00 benh@kernel.crashing.org +32 -0 # ppc32: Support for new Apple laptop models # # arch/ppc/platforms/pmac_cpufreq.c # 2004/06/22 13:04:07-07:00 benh@kernel.crashing.org +193 -118 # ppc32: Support for new Apple laptop models # # arch/ppc/kernel/misc.S # 2004/06/22 13:04:07-07:00 benh@kernel.crashing.org +18 -0 # ppc32: Support for new Apple laptop models # # arch/ppc/oprofile/init.c # 2004/06/22 12:05:08-07:00 benh@kernel.crashing.org +23 -0 # ppc32: oprofile support # # arch/ppc/oprofile/Makefile # 2004/06/22 12:05:08-07:00 benh@kernel.crashing.org +9 -0 # ppc32: oprofile support # # arch/ppc/oprofile/Kconfig # 2004/06/22 12:05:08-07:00 benh@kernel.crashing.org +23 -0 # ppc32: oprofile support # # arch/ppc/oprofile/init.c # 2004/06/22 12:05:08-07:00 benh@kernel.crashing.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/oprofile/init.c # # arch/ppc/oprofile/Makefile # 2004/06/22 12:05:08-07:00 benh@kernel.crashing.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/oprofile/Makefile # # arch/ppc/oprofile/Kconfig # 2004/06/22 12:05:08-07:00 benh@kernel.crashing.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/oprofile/Kconfig # # arch/ppc/kernel/time.c # 2004/06/22 12:05:08-07:00 benh@kernel.crashing.org +15 -7 # ppc32: oprofile support # # arch/ppc/Makefile # 2004/06/22 12:05:08-07:00 benh@kernel.crashing.org +2 -0 # ppc32: oprofile support # # arch/ppc/Kconfig # 2004/06/22 12:05:08-07:00 benh@kernel.crashing.org +1 -0 # ppc32: oprofile support # # include/asm-ppc/processor.h # 2004/06/22 12:04:49-07:00 benh@kernel.crashing.org +2 -0 # ppc32: Cleanups & warning fixes of traps.c # # arch/ppc/kernel/vecemu.c # 2004/06/22 12:04:49-07:00 benh@kernel.crashing.org +1 -2 # ppc32: Cleanups & warning fixes of traps.c # # arch/ppc/kernel/traps.c # 2004/06/22 12:04:49-07:00 benh@kernel.crashing.org +18 -35 # ppc32: Cleanups & warning fixes of traps.c # # ChangeSet # 2004/06/22 20:42:16-04:00 jgarzik@pobox.com # [libata sata_sil] Re-fix mod15write bug # # Certain early SATA drives have problems with write requests whose # length satisfy the equation "sectors % 15 == 1", on the SiI 3112. # Other drives, and other SiI controllers, are not affected. # # The fix for this problem is to avoid such requests, in one of three # ways, for the affect drive+controller combos: # 1) Limit all writes to 15 sectors # 2) Use block layer features to avoid creating requests whose # length satisfies the above equation. # 3) When a request satisfies the above equation, split the request # into two writes, neither of which satisfies the equation. # # I chose fix #1, the most simple to implement. After discussion with # Silicon Image and others regarding the impact of this fix, I have # decided to remain with fix #1, and will not be implementing a # "better fix". This means that the affected SATA drives will see # decreased performance, but set of affected drives is small and will # never grow larger. # # Further, the complexity of implementing solution #2 or # solution #3 is rather large. # # When implementing lba48 'large request' support, I unintentionally # broke the fix for these affected drives. Kudos to Ricky Beam for # noticing this. # # This change restores the fix, by adding a flag ATA_DFLAG_LOCK_SECTORS # to indicate that the max_sectors value set by the low-level driver # should never be changed. # # include/linux/libata.h # 2004/06/22 20:42:10-04:00 jgarzik@pobox.com +1 -0 # [libata sata_sil] Re-fix mod15write bug # # Certain early SATA drives have problems with write requests whose # length satisfy the equation "sectors % 15 == 1", on the SiI 3112. # Other drives, and other SiI controllers, are not affected. # # The fix for this problem is to avoid such requests, in one of three # ways, for the affect drive+controller combos: # 1) Limit all writes to 15 sectors # 2) Use block layer features to avoid creating requests whose # length satisfies the above equation. # 3) When a request satisfies the above equation, split the request # into two writes, neither of which satisfies the equation. # # I chose fix #1, the most simple to implement. After discussion with # Silicon Image and others regarding the impact of this fix, I have # decided to remain with fix #1, and will not be implementing a # "better fix". This means that the affected SATA drives will see # decreased performance, but set of affected drives is small and will # never grow larger. # # Further, the complexity of implementing solution #2 or # solution #3 is rather large. # # When implementing lba48 'large request' support, I unintentionally # broke the fix for these affected drives. Kudos to Ricky Beam for # noticing this. # # This change restores the fix, by adding a flag ATA_DFLAG_LOCK_SECTORS # to indicate that the max_sectors value set by the low-level driver # should never be changed. # # drivers/scsi/sata_sil.c # 2004/06/22 20:42:10-04:00 jgarzik@pobox.com +1 -0 # [libata sata_sil] Re-fix mod15write bug # # Certain early SATA drives have problems with write requests whose # length satisfy the equation "sectors % 15 == 1", on the SiI 3112. # Other drives, and other SiI controllers, are not affected. # # The fix for this problem is to avoid such requests, in one of three # ways, for the affect drive+controller combos: # 1) Limit all writes to 15 sectors # 2) Use block layer features to avoid creating requests whose # length satisfies the above equation. # 3) When a request satisfies the above equation, split the request # into two writes, neither of which satisfies the equation. # # I chose fix #1, the most simple to implement. After discussion with # Silicon Image and others regarding the impact of this fix, I have # decided to remain with fix #1, and will not be implementing a # "better fix". This means that the affected SATA drives will see # decreased performance, but set of affected drives is small and will # never grow larger. # # Further, the complexity of implementing solution #2 or # solution #3 is rather large. # # When implementing lba48 'large request' support, I unintentionally # broke the fix for these affected drives. Kudos to Ricky Beam for # noticing this. # # This change restores the fix, by adding a flag ATA_DFLAG_LOCK_SECTORS # to indicate that the max_sectors value set by the low-level driver # should never be changed. # # drivers/scsi/libata-scsi.c # 2004/06/22 20:42:10-04:00 jgarzik@pobox.com +2 -1 # [libata sata_sil] Re-fix mod15write bug # # Certain early SATA drives have problems with write requests whose # length satisfy the equation "sectors % 15 == 1", on the SiI 3112. # Other drives, and other SiI controllers, are not affected. # # The fix for this problem is to avoid such requests, in one of three # ways, for the affect drive+controller combos: # 1) Limit all writes to 15 sectors # 2) Use block layer features to avoid creating requests whose # length satisfies the above equation. # 3) When a request satisfies the above equation, split the request # into two writes, neither of which satisfies the equation. # # I chose fix #1, the most simple to implement. After discussion with # Silicon Image and others regarding the impact of this fix, I have # decided to remain with fix #1, and will not be implementing a # "better fix". This means that the affected SATA drives will see # decreased performance, but set of affected drives is small and will # never grow larger. # # Further, the complexity of implementing solution #2 or # solution #3 is rather large. # # When implementing lba48 'large request' support, I unintentionally # broke the fix for these affected drives. Kudos to Ricky Beam for # noticing this. # # This change restores the fix, by adding a flag ATA_DFLAG_LOCK_SECTORS # to indicate that the max_sectors value set by the low-level driver # should never be changed. # # ChangeSet # 2004/06/23 01:07:38+01:00 dvrabel@com.rmk.(none) # [ARM PATCH] 1940/1: asm-arm/checksum.h - missing include # # Patch from David Vrabel # # Missing include (cf. include/asm-i386/checksum.h) in include/asm-arm/checksum.h. # # ChangeSet # 2004/06/22 17:07:21-07:00 shemminger@osdl.org # [BRIDGE]: Turn off debug message in bridge ioctl. # # Trivial patch to turn off a debug message. It seems some SNMP daemons just # periodically trying to look at MII state. # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # net/bridge/br_ioctl.c # 2004/06/22 17:07:07-07:00 shemminger@osdl.org +1 -1 # [BRIDGE]: Turn off debug message in bridge ioctl. # # Trivial patch to turn off a debug message. It seems some SNMP daemons just # periodically trying to look at MII state. # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/22 17:06:32-07:00 shemminger@osdl.org # [IPV4]: ip_rt_ioctl argument is user pointer. # # The function ip_rt_ioctl expects a pointer to a user route structure, so define # it that way and cast as appropriate. # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # net/ipv4/ipconfig.c # 2004/06/22 17:06:18-07:00 shemminger@osdl.org +2 -2 # [IPV4]: ip_rt_ioctl argument is user pointer. # # The function ip_rt_ioctl expects a pointer to a user route structure, so define # it that way and cast as appropriate. # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # net/ipv4/fib_frontend.c # 2004/06/22 17:06:18-07:00 shemminger@osdl.org +1 -1 # [IPV4]: ip_rt_ioctl argument is user pointer. # # The function ip_rt_ioctl expects a pointer to a user route structure, so define # it that way and cast as appropriate. # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # net/ipv4/af_inet.c # 2004/06/22 17:06:18-07:00 shemminger@osdl.org +1 -1 # [IPV4]: ip_rt_ioctl argument is user pointer. # # The function ip_rt_ioctl expects a pointer to a user route structure, so define # it that way and cast as appropriate. # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # include/net/route.h # 2004/06/22 17:06:18-07:00 shemminger@osdl.org +1 -1 # [IPV4]: ip_rt_ioctl argument is user pointer. # # The function ip_rt_ioctl expects a pointer to a user route structure, so define # it that way and cast as appropriate. # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # include/asm-arm/checksum.h # 2004/06/21 15:17:39+01:00 dvrabel@com.rmk.(none) +2 -0 # [PATCH] 1940/1: asm-arm/checksum.h - missing include # # ChangeSet # 2004/06/22 17:04:54-07:00 shemminger@osdl.org # [NET]: rtentry->rt_dev is __user. # # The device entry in the route ioctl's needs annotation. # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # include/linux/route.h # 2004/06/22 17:04:40-07:00 shemminger@osdl.org +2 -2 # [NET]: rtentry->rt_dev is __user. # # The device entry in the route ioctl's needs annotation. # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/23 01:03:51+01:00 icampbell@com.rmk.(none) # [ARM PATCH] 1939/1: SA1100 watchdog driver also works on PXA2xx # # Patch from Ian Campbell # # The SA1100 watchdog driver also works fine on the PXA2xx. Tested on # a PXA255 based platform. # # drivers/char/watchdog/sa1100_wdt.c # 2004/06/23 01:00:00+01:00 icampbell@com.rmk.(none) +4 -4 # [PATCH] 1939/1: SA1100 watchdog driver also works on PXA2xx # # drivers/char/watchdog/Kconfig # 2004/06/23 01:00:00+01:00 icampbell@com.rmk.(none) +6 -5 # [PATCH] 1939/1: SA1100 watchdog driver also works on PXA2xx # # ChangeSet # 2004/06/23 00:59:35+01:00 jelenz@edu.rmk.(none) # [ARM PATCH] 1936/1: Update collie fb entries to use new style initializers # # Patch from John Lenz # # Switches the collie framebuffer mach_info structure to use # the new initializers. # # Signed-off-by: John Lenz # # ChangeSet # 2004/06/22 16:59:02-07:00 shemminger@osdl.org # [PATCH] PCI: add id's for sk98 driver # # Redoing the sk98 driver to correct pci model. These are (most of) the entries # it uses. # # # Signed-off-by: Greg Kroah-Hartman # # include/linux/pci_ids.h # 2004/06/22 10:08:12-07:00 shemminger@osdl.org +12 -0 # PCI: add id's for sk98 driver # # ChangeSet # 2004/06/22 16:58:27-07:00 shemminger@osdl.org # [PATCH] PCI: fix out of order entry in pci_ids.h # # The last entry in pci_ids.h is out of order, someone wasn't reading the comment # to keep it sorted. # # Signed-off-by: Stephen Hemminger # Signed-off-by: Greg Kroah-Hartman # # include/linux/pci_ids.h # 2004/06/22 10:08:01-07:00 shemminger@osdl.org +6 -6 # PCI: fix out of order entry in pci_ids.h # # ChangeSet # 2004/06/22 16:57:48-07:00 shemminger@osdl.org # [PATCH] PCI: remove duplicate in pci_ids.h # # Get rid of duplicate entry, one is in the middle of the file with duplicate # at the end # # Signed-off-by: Stephen Hemminger # Signed-off-by: Greg Kroah-Hartman # # include/linux/pci_ids.h # 2004/06/22 10:07:49-07:00 shemminger@osdl.org +0 -3 # PCI: remove duplicate in pci_ids.h # # drivers/video/sa1100fb.c # 2004/06/22 01:00:00+01:00 jelenz@edu.rmk.(none) +8 -8 # [PATCH] 1936/1: Update collie fb entries to use new style initializers # # ChangeSet # 2004/06/22 16:57:06-07:00 roland@topspin.com # [PATCH] PCI: Fix MSI-X setup # # msix_capability_init() puts the offset of the MSI-X capability into # pos, then uses pos as a loop index to clear the MSI-X vector table, # and then tries to use pos as the offset again, which results in # writing the MSI-X enable bit off into space. # # This patch fixes that by adding a new loop index variable and using # that to clear the vector table. # # Signed-off-by: Roland Dreier # Signed-off-by: Greg Kroah-Hartman # # drivers/pci/msi.c # 2004/06/21 21:30:05-07:00 roland@topspin.com +5 -5 # PCI: Fix MSI-X setup # # ChangeSet # 2004/06/23 00:55:42+01:00 jelenz@edu.rmk.(none) # [ARM PATCH] 1935/1: Fix bug in sa1111 driver # # Patch from John Lenz # # The __sa1111_probe function is declared __init, and it is called from # the sa1111_probe function, which is not declared __init. # # Signed-off-by: John Lenz # # ChangeSet # 2004/06/22 16:55:39-07:00 davem@nuts.davemloft.net # Merge bk://kernel.bkbits.net/acme/net-2.6 # into nuts.davemloft.net:/disk1/BK/netnew-2.6 # # net/ipv6/tcp_ipv6.c # 2004/06/22 16:55:30-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv6/ip6_output.c # 2004/06/22 16:55:29-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/tcp.c # 2004/06/22 16:55:29-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/ipcomp.c # 2004/06/22 16:55:29-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/esp4.c # 2004/06/22 16:55:29-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/ah4.c # 2004/06/22 16:55:29-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # include/linux/skbuff.h # 2004/06/22 16:55:29-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # arch/arm/common/sa1111.c # 2004/06/22 01:00:00+01:00 jelenz@edu.rmk.(none) +1 -1 # [PATCH] 1935/1: Fix bug in sa1111 driver # # ChangeSet # 2004/06/23 00:48:22+01:00 icampbell@com.rmk.(none) # [ARM PATCH] 1933/1: Convert PXA serial driver to device model and implement suspend and resume # # Patch from Ian Campbell # # Patch 1848/1 removed the hack for preserving FFUART over sleep. # # This patch adds back that support in the correct place by converting # the PXA serial driver to use the driver model and hooking up the # suspend and resume methods. # # drivers/serial/pxa.c # 2004/06/22 01:00:00+01:00 icampbell@com.rmk.(none) +62 -11 # [PATCH] 1933/1: Convert PXA serial driver to device model and implement suspend and resume # # arch/arm/mach-pxa/generic.c # 2004/06/22 01:00:00+01:00 icampbell@com.rmk.(none) +16 -0 # [PATCH] 1933/1: Convert PXA serial driver to device model and implement suspend and resume # # ChangeSet # 2004/06/23 00:44:18+01:00 elf@com.rmk.(none) # [ARM PATCH] 1913/1: lh7a40x #3 (1/2) serial # # Patch from Marc Singer # # Serial console and port driver for the LH7a40x CPUs. The only change # made since the last patch was to change the PORT_ID (again). This # patch superceeds two serial driver patches. # # # include/linux/serial_core.h # 2004/06/05 11:30:48+01:00 elf@com.rmk.(none) +3 -0 # [PATCH] 1913/1: lh7a40x #3 (1/2) serial # # drivers/serial/Makefile # 2004/06/05 11:30:48+01:00 elf@com.rmk.(none) +1 -0 # [PATCH] 1913/1: lh7a40x #3 (1/2) serial # # drivers/serial/Kconfig # 2004/06/05 11:30:48+01:00 elf@com.rmk.(none) +23 -0 # [PATCH] 1913/1: lh7a40x #3 (1/2) serial # # drivers/serial/serial_lh7a40x.c # 2004/06/05 11:30:48+01:00 elf@com.rmk.(none) +708 -0 # [PATCH] 1913/1: lh7a40x #3 (1/2) serial # # drivers/serial/serial_lh7a40x.c # 2004/06/05 11:30:48+01:00 elf@com.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-serial/drivers/serial/serial_lh7a40x.c # # ChangeSet # 2004/06/22 16:28:44-07:00 greg@kroah.com # merge fixups. # # arch/i386/pci/irq.c # 2004/06/22 16:28:32-07:00 greg@kroah.com +0 -0 # merge fixups. # # arch/i386/kernel/dmi_scan.c # 2004/06/22 16:28:32-07:00 greg@kroah.com +8 -0 # merge fixups. # # ChangeSet # 2004/06/22 20:04:46-03:00 acme@conectiva.com.br # [NET] remove fill_page_desc, its just a copy of skb_fill_page_desc # # Also remove an unused inet_opt variable from ipv6 code. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv6/tcp_ipv6.c # 2004/06/22 20:04:35-03:00 acme@conectiva.com.br +0 -1 # [NET] remove fill_page_desc, its just a copy of skb_fill_page_desc # # Also remove an unused inet_opt variable from ipv6 code. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp.c # 2004/06/22 20:04:35-03:00 acme@conectiva.com.br +2 -12 # [NET] remove fill_page_desc, its just a copy of skb_fill_page_desc # # Also remove an unused inet_opt variable from ipv6 code. # # Signed-off-by: Arnaldo Carvalho de Melo # # include/linux/skbuff.h # 2004/06/22 20:04:35-03:00 acme@conectiva.com.br +7 -5 # [NET] remove fill_page_desc, its just a copy of skb_fill_page_desc # # Also remove an unused inet_opt variable from ipv6 code. # # Signed-off-by: Arnaldo Carvalho de Melo # # ChangeSet # 2004/06/22 23:54:18+01:00 rmk@flint.arm.linux.org.uk # Merge bk://dsaxena.bkbits.net/linux-2.6-for-rmk # into flint.arm.linux.org.uk:/usr/src/bk/linux-2.6-rmk # # arch/arm/mach-integrator/integrator_cp.c # 2004/06/22 23:53:14+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Auto merged # # ChangeSet # 2004/06/22 15:41:55-07:00 trini@kernel.crashing.org # [PPC32] Update CPM2 (MPC82xx/MPC85xx) code to use rheap for DP memory # Originally from: Rune Torgersen # Signed-off-by: Tom Rini # # include/asm-ppc/cpm2.h # 2004/06/22 15:41:45-07:00 trini@kernel.crashing.org +8 -4 # Update cpm2_dpalloc() to use the rheap infrastructure, and # we now have cpm2_dpfree() and friends. # # drivers/serial/cpm_uart/cpm_uart_cpm2.c # 2004/06/22 15:41:45-07:00 trini@kernel.crashing.org +8 -7 # Update to use the new cpm2_dpalloc() and cpm2_dpfree(). # # arch/ppc/syslib/cpm2_common.c # 2004/06/22 15:41:45-07:00 trini@kernel.crashing.org +102 -73 # Update cpm2_dpalloc() to use the rheap infrastructure, and # we now have cpm2_dpfree() and friends. # # arch/ppc/lib/Makefile # 2004/06/22 15:41:45-07:00 trini@kernel.crashing.org +1 -0 # Add rheap.o on CPM2. # # arch/ppc/8260_io/fcc_enet.c # 2004/06/22 15:41:45-07:00 trini@kernel.crashing.org +5 -18 # cpm2_hostalloc() is dead. At the point this driver runs, we can # just call kmalloc(). # # arch/ppc/8260_io/enet.c # 2004/06/22 15:41:45-07:00 trini@kernel.crashing.org +8 -7 # Updates for the new cpm2_dpalloc()/cpm2_dpram_offset(). # # ChangeSet # 2004/06/22 19:32:50-03:00 acme@conectiva.com.br # [NET] rename struct inet_protocol to net_protocol # # The poor cousins will also have registration routines, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/sctp/protocol.c # 2004/06/22 19:32:39-03:00 acme@conectiva.com.br +1 -1 # [NET] rename struct inet_protocol to net_protocol # # The poor cousins will also have registration routines, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv6/sit.c # 2004/06/22 19:32:39-03:00 acme@conectiva.com.br +1 -1 # [NET] rename struct inet_protocol to net_protocol # # The poor cousins will also have registration routines, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/xfrm4_tunnel.c # 2004/06/22 19:32:39-03:00 acme@conectiva.com.br +1 -1 # [NET] rename struct inet_protocol to net_protocol # # The poor cousins will also have registration routines, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/protocol.c # 2004/06/22 19:32:39-03:00 acme@conectiva.com.br +3 -3 # [NET] rename struct inet_protocol to net_protocol # # The poor cousins will also have registration routines, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/ipmr.c # 2004/06/22 19:32:39-03:00 acme@conectiva.com.br +2 -2 # [NET] rename struct inet_protocol to net_protocol # # The poor cousins will also have registration routines, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/ipcomp.c # 2004/06/22 19:32:39-03:00 acme@conectiva.com.br +1 -1 # [NET] rename struct inet_protocol to net_protocol # # The poor cousins will also have registration routines, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/ip_input.c # 2004/06/22 19:32:39-03:00 acme@conectiva.com.br +1 -1 # [NET] rename struct inet_protocol to net_protocol # # The poor cousins will also have registration routines, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/ip_gre.c # 2004/06/22 19:32:38-03:00 acme@conectiva.com.br +1 -1 # [NET] rename struct inet_protocol to net_protocol # # The poor cousins will also have registration routines, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/icmp.c # 2004/06/22 19:32:38-03:00 acme@conectiva.com.br +1 -1 # [NET] rename struct inet_protocol to net_protocol # # The poor cousins will also have registration routines, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/esp4.c # 2004/06/22 19:32:38-03:00 acme@conectiva.com.br +1 -1 # [NET] rename struct inet_protocol to net_protocol # # The poor cousins will also have registration routines, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/ah4.c # 2004/06/22 19:32:38-03:00 acme@conectiva.com.br +1 -1 # [NET] rename struct inet_protocol to net_protocol # # The poor cousins will also have registration routines, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/af_inet.c # 2004/06/22 19:32:38-03:00 acme@conectiva.com.br +4 -4 # [NET] rename struct inet_protocol to net_protocol # # The poor cousins will also have registration routines, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # # include/net/protocol.h # 2004/06/22 19:32:38-03:00 acme@conectiva.com.br +5 -6 # [NET] rename struct inet_protocol to net_protocol # # The poor cousins will also have registration routines, etc. # # Signed-off-by: Arnaldo Carvalho de Melo # # ChangeSet # 2004/06/22 14:51:52-07:00 trini@kernel.crashing.org # [PPC32] Change how we handle DP memory on MPC8xx. # We now have a 'remote heap' implemented (see comments in # arch/ppc/lib/rheap.c) which manages this memory. # From Pantelis Antoniou . # Signed-off-by: Tom Rini # # include/asm-ppc/rheap.h # 2004/06/22 14:51:41-07:00 trini@kernel.crashing.org +85 -0 # # include/asm-ppc/rheap.h # 2004/06/22 14:51:41-07:00 trini@kernel.crashing.org +0 -0 # BitKeeper file /home/trini/work/kernel/pristine/for-linus-ppc/include/asm-ppc/rheap.h # # arch/ppc/lib/rheap.c # 2004/06/22 14:51:40-07:00 trini@kernel.crashing.org +692 -0 # # include/asm-ppc/commproc.h # 2004/06/22 14:51:40-07:00 trini@kernel.crashing.org +6 -1 # Change how we use the DP memory so that it can be freed by drivers # as well and properly managed. # # drivers/serial/cpm_uart/cpm_uart_cpm1.c # 2004/06/22 14:51:40-07:00 trini@kernel.crashing.org +7 -7 # Make use of the new dpalloc/dpfree routines. # # drivers/i2c/busses/i2c-rpx.c # 2004/06/22 14:51:40-07:00 trini@kernel.crashing.org +2 -1 # Convert to the new m8xx_cpm_dpalloc/cpm_dpram_offset set of calls. # # arch/ppc/lib/rheap.c # 2004/06/22 14:51:40-07:00 trini@kernel.crashing.org +0 -0 # BitKeeper file /home/trini/work/kernel/pristine/for-linus-ppc/arch/ppc/lib/rheap.c # # arch/ppc/lib/Makefile # 2004/06/22 14:51:40-07:00 trini@kernel.crashing.org +1 -0 # Add rheap.o on 8xx. # # arch/ppc/8xx_io/uart.c # 2004/06/22 14:51:40-07:00 trini@kernel.crashing.org +18 -14 # Convert to the new m8xx_cpm_dpalloc/cpm_dpram_offset set of calls. # # arch/ppc/8xx_io/enet.c # 2004/06/22 14:51:39-07:00 trini@kernel.crashing.org +11 -7 # Convert to the new m8xx_cpm_dpalloc/cpm_dpram_offset set of calls. # # arch/ppc/8xx_io/cs4218_tdm.c # 2004/06/22 14:51:39-07:00 trini@kernel.crashing.org +7 -5 # Convert to the new m8xx_cpm_dpalloc/cpm_dpram_offset set of calls. # # arch/ppc/8xx_io/commproc.c # 2004/06/22 14:51:39-07:00 trini@kernel.crashing.org +106 -34 # Change how we use the DP memory so that it can be freed by drivers # as well and properly managed. # # ChangeSet # 2004/06/22 14:07:48-07:00 akepner@sgi.com # [NET]: In loopback, make get_stats() get correct per-cpu stats. # # Signed-off-by: Arthur Kepner # Signed-off-by: David S. Miller # # drivers/net/loopback.c # 2004/06/22 14:07:33-07:00 akepner@sgi.com +1 -2 # [NET]: In loopback, make get_stats() get correct per-cpu stats. # # Signed-off-by: Arthur Kepner # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/22 13:54:22-07:00 davem@nuts.davemloft.net # [IPSEC]: In ESP, do not put scatterlist array on stack. # # Put it in per-esp data instead. Noticed by Linus. # # Signed-off-by: David S. Miller # # net/ipv6/esp6.c # 2004/06/22 13:53:57-07:00 davem@nuts.davemloft.net +6 -10 # [IPSEC]: In ESP, do not put scatterlist array on stack. # # Put it in per-esp data instead. Noticed by Linus. # # Signed-off-by: David S. Miller # # net/ipv4/esp4.c # 2004/06/22 13:53:57-07:00 davem@nuts.davemloft.net +6 -10 # [IPSEC]: In ESP, do not put scatterlist array on stack. # # Put it in per-esp data instead. Noticed by Linus. # # Signed-off-by: David S. Miller # # include/net/esp.h # 2004/06/22 13:53:57-07:00 davem@nuts.davemloft.net +5 -0 # [IPSEC]: In ESP, do not put scatterlist array on stack. # # Put it in per-esp data instead. Noticed by Linus. # # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/22 17:51:20-03:00 acme@conectiva.com.br # [NET] Move sndmsg_page and sndmsg_off to struct sock # # Yeah, the poor cousins will use this as well :-) # # net/ipv6/tcp_ipv6.c # 2004/06/22 17:51:09-03:00 acme@conectiva.com.br +0 -4 # [NET] Move sndmsg_page and sndmsg_off to struct sock # # Yeah, the poor cousins will use this as well :-) # # net/ipv6/ip6_output.c # 2004/06/22 17:51:09-03:00 acme@conectiva.com.br +8 -8 # [NET] Move sndmsg_page and sndmsg_off to struct sock # # Yeah, the poor cousins will use this as well :-) # # net/ipv4/tcp_ipv4.c # 2004/06/22 17:51:09-03:00 acme@conectiva.com.br +0 -4 # [NET] Move sndmsg_page and sndmsg_off to struct sock # # Yeah, the poor cousins will use this as well :-) # # net/ipv4/tcp.c # 2004/06/22 17:51:09-03:00 acme@conectiva.com.br +2 -2 # [NET] Move sndmsg_page and sndmsg_off to struct sock # # Yeah, the poor cousins will use this as well :-) # # net/ipv4/ip_output.c # 2004/06/22 17:51:09-03:00 acme@conectiva.com.br +8 -8 # [NET] Move sndmsg_page and sndmsg_off to struct sock # # Yeah, the poor cousins will use this as well :-) # # net/core/sock.c # 2004/06/22 17:51:09-03:00 acme@conectiva.com.br +11 -0 # [NET] Move sndmsg_page and sndmsg_off to struct sock # # Yeah, the poor cousins will use this as well :-) # # include/net/sock.h # 2004/06/22 17:51:09-03:00 acme@conectiva.com.br +5 -1 # [NET] Move sndmsg_page and sndmsg_off to struct sock # # Yeah, the poor cousins will use this as well :-) # # include/linux/ip.h # 2004/06/22 17:51:09-03:00 acme@conectiva.com.br +0 -2 # [NET] Move sndmsg_page and sndmsg_off to struct sock # # Yeah, the poor cousins will use this as well :-) # # ChangeSet # 2004/06/22 12:59:56-07:00 davem@nuts.davemloft.net # Merge bk://kernel.bkbits.net/acme/net-2.6 # into nuts.davemloft.net:/disk1/BK/net-2.6 # # net/ipv4/tcp_input.c # 2004/06/22 12:59:47-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/tcp.c # 2004/06/22 12:59:46-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # ChangeSet # 2004/06/22 14:16:28-05:00 James.Bottomley@steeleye.com # [PATCH] HSV100 is verified as supporting REPORT LUNs # # Signed-off-by: James Bottomley # # drivers/scsi/scsi_devinfo.c # 2004/06/21 15:22:17-05:00 James.Bottomley@steeleye.com +2 -2 # HSV100 is verified as supporting REPORT LUNs # # ChangeSet # 2004/06/22 10:20:50-07:00 torvalds@ppc970.osdl.org # Merge bk://gkernel.bkbits.net/libata-2.6 # into ppc970.osdl.org:/home/torvalds/v2.6/linux # # drivers/scsi/Makefile # 2004/06/22 10:20:47-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # drivers/scsi/Kconfig # 2004/06/22 10:20:47-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # drivers/ide/Kconfig # 2004/06/22 10:20:47-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # ChangeSet # 2004/06/22 10:18:32-07:00 torvalds@ppc970.osdl.org # sparse: clean up warning in swapfile.c # # mm/swapfile.c # 2004/06/22 10:18:26-07:00 torvalds@ppc970.osdl.org +1 -1 # sparse: clean up warning in swapfile.c # # ChangeSet # 2004/06/22 10:05:31-07:00 torvalds@ppc970.osdl.org # Merge bk://kernel.bkbits.net/davem/net-2.6 # into ppc970.osdl.org:/home/torvalds/v2.6/linux # # ChangeSet # 2004/06/22 13:02:35-04:00 jgarzik@pobox.com # [blk carmel] s/carmel/sx8/ in the driver itself # # drivers/block/sx8.c # 2004/06/22 13:02:29-04:00 jgarzik@pobox.com +3 -3 # [blk carmel] s/carmel/sx8/ in the driver itself # # ChangeSet # 2004/06/22 11:32:13-05:00 janitor@sternwelten.at # [PATCH] kernel_thread() audit drivers/scsi/aacraid/sa.c # # Cleaned up code for error handing. Added checks to unmap memory, # release IRQ's, and freeing up dev->queue. # # Signed-off-by: MJK # Signed-off-by: Maximilian Attems # Signed-off-by: James Bottomley # # drivers/scsi/aacraid/sa.c # 2004/06/18 02:08:24-05:00 janitor@sternwelten.at +19 -7 # kernel_thread() audit drivers/scsi/aacraid/sa.c # # ChangeSet # 2004/06/22 11:30:45-05:00 jejb@mulgrave.(none) # [patch-kj] kernel_thread() audit drivers/scsi/aacraid/rkt.c # # From: maximilian attems # # Cleaned up code for error handing. Added checks to unmap memory, # release IRQ's, and freeing up dev->queue. # # Signed-off-by: MJK # Signed-off-by: Maximilian Attems # Signed-off-by: James Bottomley # (fixed up rejects by hand) # # drivers/scsi/aacraid/rkt.c # 2004/06/22 11:30:27-05:00 jejb@mulgrave.(none) +19 -8 # [patch-kj] kernel_thread() audit drivers/scsi/aacraid/rkt.c # # ChangeSet # 2004/06/22 09:28:50-07:00 torvalds@ppc970.osdl.org # Fix C99'ism that breaks older gcc's. # # Also clean it all up - use get_cpu()/put_cpu() instead of # playing games by hand with preemption. # # ChangeSet # 2004/06/22 11:26:21-05:00 jejb@mulgrave.(none) # [patch-kj] kernel_thread() audit drivers/scsi/aacraid/rx.c # # drivers/scsi/aacraid/rx.c # 2004/06/22 11:25:43-05:00 jejb@mulgrave.(none) +18 -7 # [patch-kj] kernel_thread() audit drivers/scsi/aacraid/rx.c # # From: maximilian attems # # Cleaned up error handling for releasing IRQ's, unmapping memory # and freeing device memory (dev->queues). Also, audited # kernel_thread() and took appropriate action for failure. # # Signed-off-by: MJK # Signed-off-by: Maximilian Attems # Signed-off-by: James Bottomley # (Fixed a bunch of rejects by hand) # # ChangeSet # 2004/06/22 09:25:34-07:00 khali@linux-fr.org # [PATCH] I2C: Drop out-of-date code in w83781d and w83627hf # # Here is a simple patch which drops some out-of-date code in the w83781d # and w83627hf i2c chip drivers. These bits are left over from the times # when chip drivers were setting default limits at init. # # # Signed-off-by: Jean Delvare # Signed-off-by: Greg Kroah-Hartman # # drivers/i2c/chips/w83781d.c # 2004/06/19 11:22:05-07:00 khali@linux-fr.org +2 -9 # I2C: Drop out-of-date code in w83781d and w83627hf # # drivers/i2c/chips/w83627hf.c # 2004/06/19 11:21:06-07:00 khali@linux-fr.org +1 -4 # I2C: Drop out-of-date code in w83781d and w83627hf # # ChangeSet # 2004/06/22 09:20:30-07:00 greg@kroah.com # [PATCH] USB: sparse fixups for devio.c # # drivers/usb/core/devio.c # 2004/06/22 02:09:36-07:00 greg@kroah.com +10 -9 # USB: sparse fixups for devio.c # # ChangeSet # 2004/06/22 10:58:41-05:00 andrew.vasquez@qlogic.com # [PATCH] [18/18] qla2xxx: Update driver version # # Update version number to 8.00.00b14-k. # # Signed-off-by: Andrew Vasquez # Signed-off-by: James Bottomley # # drivers/scsi/qla2xxx/qla_version.h # 2004/06/21 17:40:53-05:00 andrew.vasquez@qlogic.com +2 -2 # PATCH [18/18] qla2xxx: Update driver version # # ChangeSet # 2004/06/22 10:57:05-05:00 andrew.vasquez@qlogic.com # [PATCH] [17/18] qla2xxx: Bus reset handler fixes # # Fix incorrect return-code check in bus-reset error handler. # # Signed-off-by: Andrew Vasquez # Signed-off-by: James Bottomley # # drivers/scsi/qla2xxx/qla_os.c # 2004/06/21 17:40:37-05:00 andrew.vasquez@qlogic.com +4 -4 # PATCH [17/18] qla2xxx: Bus reset handler fixes # # ChangeSet # 2004/06/22 10:55:32-05:00 jejb@mulgrave.(none) # PATCH [16/18] qla2xxx: 23xx/63xx firmware updates # # From: Andrew Vasquez # # Resync with latest released firmware -- 3.02.30. # # Signed-off-by: Andrew Vasquez # Signed-off-by: James Bottomley # # drivers/scsi/qla2xxx/ql6322_fw.c # 2004/06/22 10:54:58-05:00 jejb@mulgrave.(none) +6757 -6743 # PATCH [16/18] qla2xxx: 23xx/63xx firmware updates # # drivers/scsi/qla2xxx/ql6312_fw.c # 2004/06/22 10:54:58-05:00 jejb@mulgrave.(none) +6431 -6427 # PATCH [16/18] qla2xxx: 23xx/63xx firmware updates # # drivers/scsi/qla2xxx/ql2322_fw.c # 2004/06/22 10:54:57-05:00 jejb@mulgrave.(none) +7330 -7316 # PATCH [16/18] qla2xxx: 23xx/63xx firmware updates # # drivers/scsi/qla2xxx/ql2300_fw.c # 2004/06/22 10:54:57-05:00 jejb@mulgrave.(none) +7051 -7047 # PATCH [16/18] qla2xxx: 23xx/63xx firmware updates # # ChangeSet # 2004/06/22 10:43:14-05:00 andrew.vasquez@qlogic.com # [PATCH] [15/18] qla2xxx: SRB handling cleanup and fixes # # Cleanup qla2x00_eh_wait_on_command() srb_t handling. # # Signed-off-by: Andrew Vasquez # Signed-off-by: James Bottomley # # drivers/scsi/qla2xxx/qla_os.c # 2004/06/21 17:40:03-05:00 andrew.vasquez@qlogic.com +23 -29 # PATCH [15/18] qla2xxx: SRB handling cleanup and fixes # # drivers/scsi/qla2xxx/qla_def.h # 2004/06/21 17:40:03-05:00 andrew.vasquez@qlogic.com +2 -1 # PATCH [15/18] qla2xxx: SRB handling cleanup and fixes # # ChangeSet # 2004/06/22 10:37:01-05:00 jejb@mulgrave.(none) # PATCH [14/18] qla2xxx: Use proper include files # # From: Andrew Vasquez # # Use the standard include/scsi/* headers rather than those in # drivers/scsi/. Slightly modified variant from initial patch sent by # Christoph Hellwig . # # Signed-off-by: Andrew Vasquez # Signed-off-by: James Bottomley # (fixed rejections) # # drivers/scsi/qla2xxx/qla_os.h # 2004/06/22 10:36:39-05:00 jejb@mulgrave.(none) +5 -3 # PATCH [14/18] qla2xxx: Use proper include files # # drivers/scsi/qla2xxx/Makefile # 2004/06/22 10:36:39-05:00 jejb@mulgrave.(none) +1 -1 # PATCH [14/18] qla2xxx: Use proper include files # # ChangeSet # 2004/06/22 10:30:26-05:00 andrew.vasquez@qlogic.com # [PATCH] [13/18] qla2xxx: Remove TRUE/FALSE usage # # Christoph Hellwig : # # o Remove TRUE/FALSE #define usage within the driver. # # Signed-off-by: Andrew Vasquez # Signed-off-by: James Bottomley # # drivers/scsi/qla2xxx/qla_os.c # 2004/06/21 17:39:31-05:00 andrew.vasquez@qlogic.com +10 -13 # PATCH [13/18] qla2xxx: Remove TRUE/FALSE usage # # drivers/scsi/qla2xxx/qla_mbx.c # 2004/06/21 17:39:31-05:00 andrew.vasquez@qlogic.com +4 -4 # PATCH [13/18] qla2xxx: Remove TRUE/FALSE usage # # drivers/scsi/qla2xxx/qla_isr.c # 2004/06/21 17:39:31-05:00 andrew.vasquez@qlogic.com +1 -1 # PATCH [13/18] qla2xxx: Remove TRUE/FALSE usage # # drivers/scsi/qla2xxx/qla_inline.h # 2004/06/21 17:39:31-05:00 andrew.vasquez@qlogic.com +2 -2 # PATCH [13/18] qla2xxx: Remove TRUE/FALSE usage # # drivers/scsi/qla2xxx/qla_init.c # 2004/06/21 17:39:31-05:00 andrew.vasquez@qlogic.com +17 -17 # PATCH [13/18] qla2xxx: Remove TRUE/FALSE usage # # ChangeSet # 2004/06/22 08:27:43-07:00 rddunlap@osdl.org # [PATCH] sparse: make sys_quotactl() prototype match function # # Al missed this one in his sparse fixes # # Signed-off-by: Randy Dunlap # Signed-off-by: Linus Torvalds # # include/linux/syscalls.h # 2004/06/21 21:31:11-07:00 rddunlap@osdl.org +1 -1 # sparse: make sys_quotactl() prototype match function # # ChangeSet # 2004/06/22 08:27:32-07:00 rddunlap@osdl.org # [PATCH] Fix sparse warning in drivers/block/ll_rw_blk.c # # From: Mika Kukkonen # Signed-off-by: Randy Dunlap # Signed-off-by: Linus Torvalds # # drivers/block/ll_rw_blk.c # 2004/06/21 19:20:21-07:00 rddunlap@osdl.org +1 -1 # Fix sparse warning in drivers/block/ll_rw_blk.c # # ChangeSet # 2004/06/22 08:27:21-07:00 rddunlap@osdl.org # [PATCH] Fix sparse warning in fs/proc/base.c # # From: Mika Kukkonen # Signed-off-by: Randy Dunlap # Signed-off-by: Linus Torvalds # # fs/proc/base.c # 2004/06/19 22:42:40-07:00 rddunlap@osdl.org +6 -3 # Fix sparse warning in fs/proc/base.c # # ChangeSet # 2004/06/22 08:27:10-07:00 rddunlap@osdl.org # [PATCH] Fix sparse warning in fs/devfs/base.c # # From: Mika Kukkonen # Signed-off-by: Randy Dunlap # Signed-off-by: Linus Torvalds # # fs/devfs/base.c # 2004/06/19 22:30:39-07:00 rddunlap@osdl.org +2 -1 # Fix sparse warning in fs/devfs/base.c # # ChangeSet # 2004/06/22 10:26:59-05:00 andrew.vasquez@qlogic.com # [PATCH] [12/18] qla2xxx: Extend firmware dump support # # Add firmware dump support for ISPs with memory chips larger than # 128KB (512/1024KB). # # Signed-off-by: Andrew Vasquez # Signed-off-by: James Bottomley # # drivers/scsi/qla2xxx/qla_os.c # 2004/06/21 17:39:15-05:00 andrew.vasquez@qlogic.com +9 -3 # PATCH [12/18] qla2xxx: Extend firmware dump support # # drivers/scsi/qla2xxx/qla_mbx.c # 2004/06/21 17:39:15-05:00 andrew.vasquez@qlogic.com +6 -2 # PATCH [12/18] qla2xxx: Extend firmware dump support # # drivers/scsi/qla2xxx/qla_init.c # 2004/06/21 17:39:15-05:00 andrew.vasquez@qlogic.com +8 -5 # PATCH [12/18] qla2xxx: Extend firmware dump support # # drivers/scsi/qla2xxx/qla_gbl.h # 2004/06/21 17:39:15-05:00 andrew.vasquez@qlogic.com +1 -1 # PATCH [12/18] qla2xxx: Extend firmware dump support # # drivers/scsi/qla2xxx/qla_def.h # 2004/06/21 17:39:15-05:00 andrew.vasquez@qlogic.com +1 -0 # PATCH [12/18] qla2xxx: Extend firmware dump support # # drivers/scsi/qla2xxx/qla_dbg.h # 2004/06/21 17:39:15-05:00 andrew.vasquez@qlogic.com +4 -2 # PATCH [12/18] qla2xxx: Extend firmware dump support # # drivers/scsi/qla2xxx/qla_dbg.c # 2004/06/21 17:39:15-05:00 andrew.vasquez@qlogic.com +12 -6 # PATCH [12/18] qla2xxx: Extend firmware dump support # # ChangeSet # 2004/06/22 10:24:44-05:00 andrew.vasquez@qlogic.com # [PATCH] [11/18] qla2xxx: Misc. fixes # # Small fixes: # # o Remove incorrect and unused ISP2100 #define # SS_RESIDUAL_LEN_VALID. # # o Fix problem where an incorrect status would be returned # for qla2x00_configure_fabric() if the driver was unable to # log into a fabric's SNS. # # o Check for the additional WAIT_FOR_AL_PA state in # qla2x00_fw_ready() since switch vendors may push NOS/OLS # primitives during a 'port disabled' state. # # Signed-off-by: Andrew Vasquez # Signed-off-by: James Bottomley # # drivers/scsi/qla2xxx/qla_init.c # 2004/06/21 17:38:59-05:00 andrew.vasquez@qlogic.com +5 -4 # PATCH [11/18] qla2xxx: Misc. fixes # # drivers/scsi/qla2xxx/qla_def.h # 2004/06/21 17:38:59-05:00 andrew.vasquez@qlogic.com +1 -2 # PATCH [11/18] qla2xxx: Misc. fixes # # ChangeSet # 2004/06/22 16:23:52+01:00 rmk@flint.arm.linux.org.uk # [ARM] Correct MMCI clock rate on Integrator/CP. # # ChangeSet # 2004/06/22 10:22:52-05:00 andrew.vasquez@qlogic.com # [PATCH] [10/18] qla2xxx: Additional tape handling fixes # # Issue a big-hammer after link-down-timeout expires in order # properly return tape commands to the mid-layer. # # Signed-off-by: Andrew Vasquez # Signed-off-by: James Bottomley # # drivers/scsi/qla2xxx/qla_os.c # 2004/06/21 17:38:44-05:00 andrew.vasquez@qlogic.com +18 -1 # PATCH [10/18] qla2xxx: Additional tape handling fixes # # drivers/scsi/qla2xxx/qla_init.c # 2004/06/21 17:38:44-05:00 andrew.vasquez@qlogic.com +10 -6 # PATCH [10/18] qla2xxx: Additional tape handling fixes # # arch/arm/mach-integrator/integrator_cp.c # 2004/06/22 16:21:27+01:00 rmk@flint.arm.linux.org.uk +2 -2 # MMCI clock is 14.7456MHz not 33MHz. # # ChangeSet # 2004/06/22 10:21:09-05:00 andrew.vasquez@qlogic.com # [PATCH] [9/18] qla2xxx: Tape command handling fixes # # Address several outstanding problem within the various # eh_*() functions: # # o Fixup nested spinlock usage in error-hanlding # functions. # # o Set the Loop down timer during abort isp if loop # was already down for the driver to detect cable # is unplugged at min time. # # Signed-off-by: Andrew Vasquez # Signed-off-by: James Bottomley # # drivers/scsi/qla2xxx/qla_os.c # 2004/06/21 17:38:28-05:00 andrew.vasquez@qlogic.com +30 -42 # PATCH [9/18] qla2xxx: Tape command handling fixes # # drivers/scsi/qla2xxx/qla_init.c # 2004/06/21 17:38:28-05:00 andrew.vasquez@qlogic.com +4 -0 # PATCH [9/18] qla2xxx: Tape command handling fixes # # ChangeSet # 2004/06/22 10:17:22-05:00 andrew.vasquez@qlogic.com # [PATCH] [8/18] qla2xxx: Remove dead code # # Remove several unused failover variables and functions from # the embedded driver. # # Signed-off-by: Andrew Vasquez # Signed-off-by: James Bottomley # # drivers/scsi/qla2xxx/qla_os.c # 2004/06/21 17:38:12-05:00 andrew.vasquez@qlogic.com +1 -113 # PATCH [8/18] qla2xxx: Remove dead code # # drivers/scsi/qla2xxx/qla_gbl.h # 2004/06/21 17:38:12-05:00 andrew.vasquez@qlogic.com +0 -2 # PATCH [8/18] qla2xxx: Remove dead code # # ChangeSet # 2004/06/22 10:13:15-05:00 andrew.vasquez@qlogic.com # [PATCH] [7/18] qla2xxx: Tape command handling fixes # # Fix several tape handling issue: # # 1) When the firmware receives the LOGO from the device, any # active exchanges will be returned with a completion status # of 0x29 -- this will cause the port to be marked as lost and # request made to the DPC routine to begin a relogin attempt. # The problem is, since we've never actually logged out of the # device and cannot do so in interrupt context, we must be # sure to perform the logout before the qla2x00_fabric_login() # in the RELOGIN_NEEDED code. # # 2) Sets the Get Port Database options to ZERO when issuing # the call to qla2x00_get_port_database(). This consolidates # actuall login handling in the place it should be, in the # previous qla2x00_fabric_login() call rather than depending # on any 'hidden' behaviour of the firmware. If a device did # a LOGO after the login, then any subsequent exachanges will # be returned with an 0x29 completion status and the # RELOGIN_NEEDED code will handle the login. # # 3) Finally, if the master and slave state do not indicate a # logged-in state from the Get Port Database call, then one # cannot depend on the information returned from the firmware # -- the firmware typically wipes out the PCB information for # a given loopID when logged out. So, return immediately with # a failed status. # # Signed-off-by: Andrew Vasquez # Signed-off-by: James Bottomley # # drivers/scsi/qla2xxx/qla_os.c # 2004/06/21 17:37:56-05:00 andrew.vasquez@qlogic.com +7 -2 # PATCH [7/18] qla2xxx: Tape command handling fixes # # drivers/scsi/qla2xxx/qla_mbx.c # 2004/06/21 17:37:56-05:00 andrew.vasquez@qlogic.com +28 -26 # PATCH [7/18] qla2xxx: Tape command handling fixes # # drivers/scsi/qla2xxx/qla_init.c # 2004/06/21 17:37:56-05:00 andrew.vasquez@qlogic.com +1 -1 # PATCH [7/18] qla2xxx: Tape command handling fixes # # ChangeSet # 2004/06/22 10:10:45-05:00 andrew.vasquez@qlogic.com # [PATCH] [6/18] qla2xxx: Initialization fixes # # Small initialization fixes: # # o 'point-to-point preferred, else loop' is not a safe # connection mode setting for ISP2200 boards. Use # 'loop preferred, else point-to-point.' # # o Add modules parameter to enable ZIO -- Support mode # 5 only. # # o No point in doing a PRLI (process login) to the SNS # port. # # o Fix problem where the driver would incorrectly skip # ports with the same domain and area of the HBA. # # Signed-off-by: Andrew Vasquez # Signed-off-by: James Bottomley # # drivers/scsi/qla2xxx/qla_os.c # 2004/06/21 17:37:41-05:00 andrew.vasquez@qlogic.com +7 -0 # PATCH [6/18] qla2xxx: Initialization fixes # # drivers/scsi/qla2xxx/qla_init.c # 2004/06/21 17:37:40-05:00 andrew.vasquez@qlogic.com +29 -25 # PATCH [6/18] qla2xxx: Initialization fixes # # drivers/scsi/qla2xxx/qla_gbl.h # 2004/06/21 17:37:41-05:00 andrew.vasquez@qlogic.com +1 -0 # PATCH [6/18] qla2xxx: Initialization fixes # # ChangeSet # 2004/06/22 10:06:37-05:00 andrew.vasquez@qlogic.com # [PATCH] [5/18] qla2xxx: Add module parameter permissions # # Add permissions to the driver's module_params. # # Signed-off-by: Andrew Vasquez # Signed-off-by: James Bottomley # # drivers/scsi/qla2xxx/qla_os.c # 2004/06/21 17:37:25-05:00 andrew.vasquez@qlogic.com +12 -12 # PATCH [5/18] qla2xxx: Add module parameter permissions # # ChangeSet # 2004/06/22 10:05:17-05:00 andrew.vasquez@qlogic.com # [PATCH] [4/18] qla2xxx: ISR RISC paused fixes # # Problem reported/corrected by Michael Reed [mdr@sgi.com]: # # We have a 2312 that puts the 8.00.00b12-k qla2xxx driver # into an infinite loop with a solid interrupt, 0x8008, # hcsr = 0x7430, risc status register 0x40008110, # immediately after enabling parity on the board. # # It looks as though the early out test in # qla_isr.c:qla2x00_intr_handler() against stat is broken. # HSR_RISC_PAUSED is set. Also, there's a stale mailbox # completion flagged (stat&0xff) which will short circuit # the default case in the switch if it got that far. # # Signed-off-by: Andrew Vasquez # Signed-off-by: James Bottomley # # drivers/scsi/qla2xxx/qla_isr.c # 2004/06/21 17:37:09-05:00 andrew.vasquez@qlogic.com +22 -25 # PATCH [4/18] qla2xxx: ISR RISC paused fixes # # ChangeSet # 2004/06/22 10:02:52-05:00 andrew.vasquez@qlogic.com # [PATCH] [3/18] qla2xxx: PCI DMA mappings rework # # Restructure qla2x00_start_scsi() so that PCI mappings are # done after we've verified command list and request queue # resource availability. # # Signed-off-by: Andrew Vasquez # Signed-off-by: James Bottomley # # drivers/scsi/qla2xxx/qla_os.c # 2004/06/21 17:36:53-05:00 andrew.vasquez@qlogic.com +1 -3 # PATCH [3/18] qla2xxx: PCI DMA mappings rework # # drivers/scsi/qla2xxx/qla_iocb.c # 2004/06/21 17:36:53-05:00 andrew.vasquez@qlogic.com +35 -46 # PATCH [3/18] qla2xxx: PCI DMA mappings rework # # drivers/scsi/qla2xxx/qla_def.h # 2004/06/21 17:36:53-05:00 andrew.vasquez@qlogic.com +0 -4 # PATCH [3/18] qla2xxx: PCI DMA mappings rework # # ChangeSet # 2004/06/22 09:59:35-05:00 andrew.vasquez@qlogic.com # [PATCH] qla2xxx: remove unnecessary command direction determination # # On Tuesday, June 22, 2004 12:07 AM, Arjan van de Ven wrote: # > On Tue, 2004-06-22 at 07:49, Andrew Vasquez wrote: # > # > > diff -Nru a/drivers/scsi/qla2xxx/qla_iocb.c # > b/drivers/scsi/qla2xxx/qla_iocb.c # > > --- a/drivers/scsi/qla2xxx/qla_iocb.c 2004-06-21 15:36:37 -07:00 # > > +++ b/drivers/scsi/qla2xxx/qla_iocb.c 2004-06-21 15:36:37 -07:00 @@ # > > -43,7 +43,7 @@ else if (cmd->sc_data_direction == # > > DMA_FROM_DEVICE) cflags = CF_READ; else { # > > - switch (cmd->data_cmnd[0]) { # > > + switch (cmd->cmnd[0]) { # > > case WRITE_6: # > > case WRITE_10: # > > case WRITE_12: # > # > this sounds wrong. # > # # Yes, it is _wrong_! This code is baggage left behind from earlier # drivers when we were 'asked' to work around certain applications' # inability to properly construct commands. # # > Is there any reason qlogic drivers can't use/trust the midlayer # > instead of doing qla2x00_get_cmd_direction() to reverse engineer to # > direction ?? # # Sure. Especially considering an earlier thread: # # http://marc.theaimsgroup.com/?t=108727983000002&r=1&w=2 # # Signed-off-by: James Bottomley # # drivers/scsi/qla2xxx/qla_iocb.c # 2004/06/22 09:11:11-05:00 andrew.vasquez@qlogic.com +0 -22 # qla2xxx: remove unnecessary command direction determination # # ChangeSet # 2004/06/22 09:57:16-05:00 andrew.vasquez@qlogic.com # [PATCH] [2/18] qla2xxx: Correct residual counts # # Problem reported/corrected by Tony Battersby [tonyb@cybernetics.com]: # # o The qla2xxx driver calculates data transfer residuals # for some but not all circumstances. The patch below # adds data transfer residual calculations for the # remaining cases. # # o Interrogate the proper cmnd[] array when determining # the transfer direction. # # Signed-off-by: Andrew Vasquez # Signed-off-by: James Bottomley # # drivers/scsi/qla2xxx/qla_isr.c # 2004/06/21 17:36:37-05:00 andrew.vasquez@qlogic.com +10 -3 # PATCH [2/18] qla2xxx: Correct residual counts # # drivers/scsi/qla2xxx/qla_iocb.c # 2004/06/21 17:36:37-05:00 andrew.vasquez@qlogic.com +1 -1 # PATCH [2/18] qla2xxx: Correct residual counts # # ChangeSet # 2004/06/22 09:55:02-05:00 andrew.vasquez@qlogic.com # [PATCH] [1/18] qla2xxx: Add wmb() to critical paths # # Add memory barriers to ensure that all load operations have # completed before the (MMIO) write to the ISP's registers. # # Signed-off-by: Andrew Vasquez # Signed-off-by: James Bottomley # # drivers/scsi/qla2xxx/qla_rscn.c # 2004/06/21 17:36:18-05:00 andrew.vasquez@qlogic.com +4 -0 # PATCH [1/18] qla2xxx: Add wmb() to critical paths # # drivers/scsi/qla2xxx/qla_iocb.c # 2004/06/21 17:36:18-05:00 andrew.vasquez@qlogic.com +2 -0 # PATCH [1/18] qla2xxx: Add wmb() to critical paths # # ChangeSet # 2004/06/22 14:55:39+01:00 rmk@flint.arm.linux.org.uk # [ARM] Move cpu_switch_mm() and cpu_get_pgd() to asm/proc-fns.h # # include/asm-arm/proc-fns.h # 2004/06/22 14:53:15+01:00 rmk@flint.arm.linux.org.uk +16 -0 # Move cpu_switch_mm() and cpu_get_pgd() to asm/proc-fns.h # # include/asm-arm/cpu-single.h # 2004/06/22 14:53:15+01:00 rmk@flint.arm.linux.org.uk +2 -19 # Move cpu_switch_mm() and cpu_get_pgd() to asm/proc-fns.h # # include/asm-arm/cpu-multi32.h # 2004/06/22 14:53:15+01:00 rmk@flint.arm.linux.org.uk +1 -16 # Move cpu_switch_mm() and cpu_get_pgd() to asm/proc-fns.h # # ChangeSet # 2004/06/22 03:52:32-03:00 acme@conectiva.com.br # [NET] move send_head from tcp private area to struct sock # # The poor cousins also need this, LLC will be the first to use it. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp_timer.c # 2004/06/22 03:52:20-03:00 acme@conectiva.com.br +2 -2 # [NET] move send_head from tcp private area to struct sock # # The poor cousins also need this, LLC will be the first to use it. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp_output.c # 2004/06/22 03:52:20-03:00 acme@conectiva.com.br +19 -17 # [NET] move send_head from tcp private area to struct sock # # The poor cousins also need this, LLC will be the first to use it. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp_minisocks.c # 2004/06/22 03:52:19-03:00 acme@conectiva.com.br +1 -1 # [NET] move send_head from tcp private area to struct sock # # The poor cousins also need this, LLC will be the first to use it. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp_input.c # 2004/06/22 03:52:19-03:00 acme@conectiva.com.br +12 -13 # [NET] move send_head from tcp private area to struct sock # # The poor cousins also need this, LLC will be the first to use it. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp.c # 2004/06/22 03:52:19-03:00 acme@conectiva.com.br +10 -10 # [NET] move send_head from tcp private area to struct sock # # The poor cousins also need this, LLC will be the first to use it. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/core/sock.c # 2004/06/22 03:52:19-03:00 acme@conectiva.com.br +2 -0 # [NET] move send_head from tcp private area to struct sock # # The poor cousins also need this, LLC will be the first to use it. # # Signed-off-by: Arnaldo Carvalho de Melo # # include/net/tcp.h # 2004/06/22 03:52:19-03:00 acme@conectiva.com.br +5 -12 # [NET] move send_head from tcp private area to struct sock # # The poor cousins also need this, LLC will be the first to use it. # # Signed-off-by: Arnaldo Carvalho de Melo # # include/net/sock.h # 2004/06/22 03:52:19-03:00 acme@conectiva.com.br +8 -0 # [NET] move send_head from tcp private area to struct sock # # The poor cousins also need this, LLC will be the first to use it. # # Signed-off-by: Arnaldo Carvalho de Melo # # include/linux/tcp.h # 2004/06/22 03:52:19-03:00 acme@conectiva.com.br +0 -1 # [NET] move send_head from tcp private area to struct sock # # The poor cousins also need this, LLC will be the first to use it. # # Signed-off-by: Arnaldo Carvalho de Melo # # ChangeSet # 2004/06/22 02:12:28-04:00 jgarzik@pobox.com # [libata ata_piix] combined mode bug fix; improved ICH6 support # # drivers/scsi/ata_piix.c # 2004/06/22 02:12:22-04:00 jgarzik@pobox.com +14 -11 # [libata ata_piix] combined mode bug fix; improved ICH6 support # # ChangeSet # 2004/06/22 00:54:50-04:00 jgarzik@pobox.com # [libata] fix build error, minor cleanups # # include/linux/libata.h # 2004/06/22 00:54:44-04:00 jgarzik@pobox.com +0 -5 # [libata] fix build error, minor cleanups # # drivers/scsi/libata-core.c # 2004/06/22 00:54:44-04:00 jgarzik@pobox.com +2 -3 # [libata] fix build error, minor cleanups # # ChangeSet # 2004/06/21 21:39:50-07:00 torvalds@ppc970.osdl.org # Fix up permissions of some files that were not readable # by "other". The normal permissions for the kernel tree # should be -rw-r--r--. # # Documentation/scsi/ChangeLog.megaraid # 2004/06/21 21:36:23-07:00 torvalds@ppc970.osdl.org +0 -0 # Change mode to -rw-r--r-- # # Documentation/networking/netif-msg.txt # 2004/06/21 21:36:17-07:00 torvalds@ppc970.osdl.org +0 -0 # Change mode to -rw-r--r-- # # ChangeSet # 2004/06/22 00:36:09-04:00 jgarzik@pobox.com # [libata] move some code around # # Split ata_eng_timeout into the main part (ata_qc_timeout) # and the part called by the SCSI layer (ata_eng_timeout). # # Zero behavior changes. # # drivers/input/joystick/grip_mp.c # 2004/06/21 21:36:04-07:00 torvalds@ppc970.osdl.org +0 -0 # Change mode to -rw-r--r-- # # drivers/scsi/libata-core.c # 2004/06/22 00:36:02-04:00 jgarzik@pobox.com +42 -12 # [libata] move some code around # # Split ata_eng_timeout into the main part (ata_qc_timeout) # and the part called by the SCSI layer (ata_eng_timeout). # # Zero behavior changes. # # drivers/char/drm/drm_irq.h # 2004/06/21 21:35:57-07:00 torvalds@ppc970.osdl.org +0 -0 # Change mode to -rw-r--r-- # # drivers/char/agp/isoch.c # 2004/06/21 21:34:47-07:00 torvalds@ppc970.osdl.org +0 -0 # Change mode to -rw-r--r-- # # ChangeSet # 2004/06/22 01:20:08-03:00 acme@conectiva.com.br # [NET] generalise tcp_moderate_sndbuf # # Renaming it to sk_stream_moderate_sndbuf, further patches will move # all the tcp memory pressure handling support into net/core/stream.c # to make them usable by the poor cousins, starting with LLC. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp.c # 2004/06/22 01:19:56-03:00 acme@conectiva.com.br +1 -1 # [NET] generalise tcp_moderate_sndbuf # # Renaming it to sk_stream_moderate_sndbuf, further patches will move # all the tcp memory pressure handling support into net/core/stream.c # to make them usable by the poor cousins, starting with LLC. # # Signed-off-by: Arnaldo Carvalho de Melo # # include/net/tcp.h # 2004/06/22 01:19:56-03:00 acme@conectiva.com.br +2 -10 # [NET] generalise tcp_moderate_sndbuf # # Renaming it to sk_stream_moderate_sndbuf, further patches will move # all the tcp memory pressure handling support into net/core/stream.c # to make them usable by the poor cousins, starting with LLC. # # Signed-off-by: Arnaldo Carvalho de Melo # # include/net/sock.h # 2004/06/22 01:19:56-03:00 acme@conectiva.com.br +8 -0 # [NET] generalise tcp_moderate_sndbuf # # Renaming it to sk_stream_moderate_sndbuf, further patches will move # all the tcp memory pressure handling support into net/core/stream.c # to make them usable by the poor cousins, starting with LLC. # # Signed-off-by: Arnaldo Carvalho de Melo # # ChangeSet # 2004/06/21 23:47:16-04:00 bunk@fs.tum.de # [PATCH] 2.6.7-mm1: drivers/scsi/hosts.h -> scsi/scsi_host.h # # On Sun, Jun 20, 2004 at 05:46:32PM -0700, Andrew Morton wrote: # >... # > All 226 patches: # >... # > bk-libata.patch # >... # # drivers/scsi/hosts.h is obsolete, use scsi/scsi_host.h. # # Please apply # Adrian # # drivers/scsi/sata_nv.c # 2004/06/20 21:51:17-04:00 bunk@fs.tum.de +1 -1 # 2.6.7-mm1: drivers/scsi/hosts.h -> scsi/scsi_host.h # # ChangeSet # 2004/06/22 00:46:47-03:00 acme@conectiva.com.br # [NET] generalise tcp_free_skb, renaming it to sk_stream_free_skb # # Will be used by the poor cousins # # Signed-of-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp_output.c # 2004/06/22 00:46:35-03:00 acme@conectiva.com.br +2 -2 # [NET] generalise tcp_free_skb, renaming it to sk_stream_free_skb # # Will be used by the poor cousins # # Signed-of-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp_input.c # 2004/06/22 00:46:35-03:00 acme@conectiva.com.br +4 -6 # [NET] generalise tcp_free_skb, renaming it to sk_stream_free_skb # # Will be used by the poor cousins # # Signed-of-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp.c # 2004/06/22 00:46:35-03:00 acme@conectiva.com.br +1 -1 # [NET] generalise tcp_free_skb, renaming it to sk_stream_free_skb # # Will be used by the poor cousins # # Signed-of-by: Arnaldo Carvalho de Melo # # include/net/tcp.h # 2004/06/22 00:46:35-03:00 acme@conectiva.com.br +1 -9 # [NET] generalise tcp_free_skb, renaming it to sk_stream_free_skb # # Will be used by the poor cousins # # Signed-of-by: Arnaldo Carvalho de Melo # # include/net/sock.h # 2004/06/22 00:46:35-03:00 acme@conectiva.com.br +11 -0 # [NET] generalise tcp_free_skb, renaming it to sk_stream_free_skb # # Will be used by the poor cousins # # Signed-of-by: Arnaldo Carvalho de Melo # # include/linux/tcp.h # 2004/06/22 00:46:35-03:00 acme@conectiva.com.br +1 -1 # [NET] generalise tcp_free_skb, renaming it to sk_stream_free_skb # # Will be used by the poor cousins # # Signed-of-by: Arnaldo Carvalho de Melo # # ChangeSet # 2004/06/21 20:26:23-07:00 viro@www.linux.org.uk # [PATCH] sparse: the rest of ieee1394 annotation # # drivers/ieee1394/video1394.c # 2004/06/21 07:11:51-07:00 viro@www.linux.org.uk +10 -9 # sparse: the rest of ieee1394 annotation # # drivers/ieee1394/dv1394.c # 2004/06/21 07:11:51-07:00 viro@www.linux.org.uk +6 -5 # sparse: the rest of ieee1394 annotation # # drivers/ieee1394/amdtp.c # 2004/06/21 07:11:51-07:00 viro@www.linux.org.uk +2 -2 # sparse: the rest of ieee1394 annotation # # ChangeSet # 2004/06/21 20:26:12-07:00 viro@www.linux.org.uk # [PATCH] sparse: hd.c annotation # # drivers/firmware/efivars.c # 2004/06/21 07:11:51-07:00 viro@www.linux.org.uk +1 -1 # sparse: hd.c annotation # # ChangeSet # 2004/06/21 20:26:01-07:00 viro@www.linux.org.uk # [PATCH] sparse: quota annotation # # fs/quota.c # 2004/06/21 07:11:50-07:00 viro@www.linux.org.uk +2 -2 # sparse: quota annotation # # ChangeSet # 2004/06/21 20:25:50-07:00 viro@www.linux.org.uk # [PATCH] sparse: sock_fprog sanitized # # sock_fprog instances that had kernel pointer in ->filter (both of them - # in ppp_generic and isdn_ppp) replaced with explicit pairs len + kernel # pointer. Copying of userland sock_fprog (with its __user ->filter) # cleaned up and sanitized. # # Trivial annotation done in the rest of ->ioctl() in ppp_generic and # isdn_ppp. # # include/linux/isdn_ppp.h # 2004/06/21 07:11:52-07:00 viro@www.linux.org.uk +3 -2 # sparse: sock_fprog sanitized # # drivers/net/ppp_generic.c # 2004/06/21 07:11:52-07:00 viro@www.linux.org.uk +100 -70 # sparse: sock_fprog sanitized # # drivers/isdn/i4l/isdn_ppp.h # 2004/06/21 07:11:52-07:00 viro@www.linux.org.uk +2 -2 # sparse: sock_fprog sanitized # # drivers/isdn/i4l/isdn_ppp.c # 2004/06/21 07:11:52-07:00 viro@www.linux.org.uk +103 -82 # sparse: sock_fprog sanitized # # ChangeSet # 2004/06/21 20:25:39-07:00 viro@www.linux.org.uk # [PATCH] sparse: raw1394 annotation # # drivers/ieee1394/raw1394.h # 2004/06/21 07:11:51-07:00 viro@www.linux.org.uk +5 -5 # sparse: raw1394 annotation # # drivers/ieee1394/raw1394.c # 2004/06/21 07:11:51-07:00 viro@www.linux.org.uk +41 -48 # sparse: raw1394 annotation # # drivers/ieee1394/raw1394-private.h # 2004/06/21 07:11:51-07:00 viro@www.linux.org.uk +2 -2 # sparse: raw1394 annotation # # ChangeSet # 2004/06/21 20:25:28-07:00 viro@www.linux.org.uk # [PATCH] sparse: drivers/net/wan annotation # # include/linux/if.h # 2004/06/21 07:22:34-07:00 viro@www.linux.org.uk +7 -7 # sparse: drivers/net/wan annotation # # drivers/net/wan/x25_asy.c # 2004/06/21 07:22:00-07:00 viro@www.linux.org.uk +1 -1 # sparse: drivers/net/wan annotation # # drivers/net/wan/pci200syn.c # 2004/06/21 07:21:53-07:00 viro@www.linux.org.uk +2 -1 # sparse: drivers/net/wan annotation # # drivers/net/wan/n2.c # 2004/06/21 07:21:44-07:00 viro@www.linux.org.uk +2 -1 # sparse: drivers/net/wan annotation # # drivers/net/wan/lmc/lmc_ioctl.h # 2004/06/21 07:22:15-07:00 viro@www.linux.org.uk +2 -2 # sparse: drivers/net/wan annotation # # drivers/net/wan/hdlc_raw_eth.c # 2004/06/21 07:21:35-07:00 viro@www.linux.org.uk +1 -1 # sparse: drivers/net/wan annotation # # drivers/net/wan/hdlc_raw.c # 2004/06/21 07:21:19-07:00 viro@www.linux.org.uk +1 -1 # sparse: drivers/net/wan annotation # # drivers/net/wan/hdlc_fr.c # 2004/06/21 07:21:15-07:00 viro@www.linux.org.uk +1 -1 # sparse: drivers/net/wan annotation # # drivers/net/wan/hdlc_cisco.c # 2004/06/21 07:21:08-07:00 viro@www.linux.org.uk +1 -1 # sparse: drivers/net/wan annotation # # drivers/net/wan/dscc4.c # 2004/06/21 07:20:51-07:00 viro@www.linux.org.uk +1 -1 # sparse: drivers/net/wan annotation # # drivers/net/wan/cosa.h # 2004/06/21 07:20:41-07:00 viro@www.linux.org.uk +1 -1 # sparse: drivers/net/wan annotation # # drivers/net/wan/cosa.c # 2004/06/21 07:20:40-07:00 viro@www.linux.org.uk +21 -20 # sparse: drivers/net/wan annotation # # drivers/net/wan/c101.c # 2004/06/21 07:20:33-07:00 viro@www.linux.org.uk +2 -1 # sparse: drivers/net/wan annotation # # ChangeSet # 2004/06/21 20:25:16-07:00 viro@www.linux.org.uk # [PATCH] sparse: efivars.c initializer fix # # drivers/ide/legacy/hd.c # 2004/06/21 07:11:51-07:00 viro@www.linux.org.uk +1 -1 # sparse: efivars.c initializer fix # # ChangeSet # 2004/06/21 20:25:05-07:00 viro@www.linux.org.uk # [PATCH] sparse: zlib stray extern removal # # lib/zlib_deflate/deflate.c # 2004/06/21 07:11:50-07:00 viro@www.linux.org.uk +1 -1 # sparse: zlib stray extern removal # # ChangeSet # 2004/06/21 20:24:54-07:00 viro@www.linux.org.uk # [PATCH] sparse: ncpfs/ioctl.c annotation # # include/linux/ncp_fs.h # 2004/06/21 07:11:50-07:00 viro@www.linux.org.uk +3 -3 # sparse: ncpfs/ioctl.c annotation # # fs/ncpfs/ioctl.c # 2004/06/21 07:11:50-07:00 viro@www.linux.org.uk +37 -45 # sparse: ncpfs/ioctl.c annotation # # ChangeSet # 2004/06/21 20:24:44-07:00 viro@www.linux.org.uk # [PATCH] ibmtr missing include # # drivers/net/tokenring/ibmtr.c # 2004/06/21 07:19:31-07:00 viro@www.linux.org.uk +1 -0 # ibmtr missing include # # ChangeSet # 2004/06/21 19:56:37-07:00 torvalds@ppc970.osdl.org # Merge bk://linux-acpi.bkbits.net/linux-acpi-release-2.6.7 # into ppc970.osdl.org:/home/torvalds/v2.6/linux # # arch/i386/kernel/mpparse.c # 2004/06/21 19:56:34-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # ChangeSet # 2004/06/21 23:01:24-03:00 acme@conectiva.com.br # [NET] generalise tcp_error, renaming it to sk_stream_error # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp.c # 2004/06/21 23:01:13-03:00 acme@conectiva.com.br +2 -11 # [NET] generalise tcp_error, renaming it to sk_stream_error # # Signed-off-by: Arnaldo Carvalho de Melo # # net/core/stream.c # 2004/06/21 23:01:13-03:00 acme@conectiva.com.br +11 -0 # [NET] generalise tcp_error, renaming it to sk_stream_error # # Signed-off-by: Arnaldo Carvalho de Melo # # include/net/sock.h # 2004/06/21 23:01:13-03:00 acme@conectiva.com.br +1 -0 # [NET] generalise tcp_error, renaming it to sk_stream_error # # Signed-off-by: Arnaldo Carvalho de Melo # # ChangeSet # 2004/06/21 20:59:09-04:00 len.brown@intel.com # Merge intel.com:/home/lenb/src/linux-acpi-test-2.6.7 # into intel.com:/home/lenb/bk/linux-acpi-test-2.6.7 # # arch/x86_64/kernel/mpparse.c # 2004/06/21 20:59:06-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/i386/kernel/mpparse.c # 2004/06/21 20:59:06-04:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/06/21 19:57:03-05:00 g.liakhovetski@gmx.de # [PATCH] tmscsim: host_lock use in LLD # # While reviewing tmscsim, I noticed something, I didn't quite like / # understand. The driver takes the host_lock (with irqsave) at the entry to # the ISR, and releases it at the exit. And inside the ISR there are # potentially long busy-waits... Like # # int ctr = 6000000; /* only try for about a second */ # while( --ctr && !((dstate = DC390_read8 (DMA_Status)) & # DMA_XFER_DONE) && pSRB->SGToBeXferLen ); # # The attached patch is attempting to fix those places. Not sure if this is # a proper fix though. In my understanding, after looking through the code, # the host_lock is used to protect host-specific data and host-registers. # The ->queuecommand is already called with it help, so, one just, # basically, have to protect other contexts - interrupt, timer,... So, looks # mostly right. # # Signed-off-by: James Bottomley # # drivers/scsi/tmscsim.c # 2004/06/18 18:02:20-05:00 g.liakhovetski@gmx.de +6 -12 # tmscsim: host_lock use in LLD # # ChangeSet # 2004/06/21 20:53:04-04:00 len.brown@intel.com # [ACPI] re-factor previous mpparse IRQ override fix (Linus Torvalds) # Reflect that only the dstirq depends on the dstapic. # # arch/x86_64/kernel/mpparse.c # 2004/06/21 20:52:49-04:00 len.brown@intel.com +13 -7 # re-factor previous patch to reflect that only the dstirq # depends on the dstapic # # arch/i386/kernel/mpparse.c # 2004/06/21 20:52:49-04:00 len.brown@intel.com +16 -8 # re-factor previous patch to reflect that only the dstirq # depends on the dstapic # # ChangeSet # 2004/06/21 19:46:30-05:00 g.liakhovetski@gmx.de # [PATCH] tmscsim: init / exit cleanup # # On Sun, 23 May 2004, Christoph Hellwig wrote: # > these leaks. Maybe also merge dc390_init and dc390_init_one? # > # > Similarly I think DC390_release should be merged into dc390_remove_one. # # Attached. Also fixed some __init / __devinit and __exit / __devexit # attributes. Although, would be good to have something like # # #ifdef CONFIG_HOTPLUG_PCI # #define __pcidevinit # #define __pcidevinitdata # #define __pcidevexit # #define __pcidevexitdata # #else # #define __pcidevinit __init # #define __pcidevinitdata __initdata # #define __pcidevexit __exit # #define __pcidevexitdata __exitdata # #endif # # Signed-off-by: James Bottomley # # drivers/scsi/tmscsim.c # 2004/05/31 17:28:50-05:00 g.liakhovetski@gmx.de +104 -150 # tmscsim: init / exit cleanup # # ChangeSet # 2004/06/21 17:04:23-07:00 greg@kroah.com # merge fixups. # # drivers/scsi/scsi_debug.c # 2004/06/21 17:04:10-07:00 greg@kroah.com +1 -1 # merge fixups. # # ChangeSet # 2004/06/21 16:04:04-07:00 hadi@zynx.com # [PKT_SCHED]: C99'ify act_police_ops. # # net/sched/police.c # 2004/06/21 16:03:41-07:00 hadi@zynx.com +13 -13 # [PKT_SCHED]: C99'ify act_police_ops. # # ChangeSet # 2004/06/21 15:14:21-07:00 greg@kroah.com # merge # # drivers/scsi/scsi_debug.c # 2004/06/21 15:14:13-07:00 greg@kroah.com +2 -7 # merge # # ChangeSet # 2004/06/21 16:45:11-05:00 markh@osdl.org # [PATCH] aacraid 32bit app ioctl compat patch (Updated) # # Allows 32 bit apps to use ioctls in a 64 bit kernel. # # Signed-off-by Mark Haverkamp # Signed-off-by: James Bottomley # # drivers/scsi/aacraid/linit.c # 2004/06/18 15:19:24-05:00 markh@osdl.org +53 -0 # 32bit app ioctl compat patch (Updated) # # drivers/scsi/aacraid/commctrl.c # 2004/06/18 15:19:24-05:00 markh@osdl.org +81 -38 # 32bit app ioctl compat patch (Updated) # # drivers/scsi/aacraid/aacraid.h # 2004/06/18 15:19:24-05:00 markh@osdl.org +5 -3 # 32bit app ioctl compat patch (Updated) # # drivers/scsi/aacraid/aachba.c # 2004/06/18 15:19:24-05:00 markh@osdl.org +1 -1 # 32bit app ioctl compat patch (Updated) # # ChangeSet # 2004/06/21 16:43:42-05:00 hch@lst.de # [PATCH] avoid obsolete APIs in atp870u # # + minor cleanups # # Signed-off-by: James Bottomley # # drivers/scsi/atp870u.h # 2004/06/20 10:42:00-05:00 hch@lst.de +2 -21 # avoid obsolete APIs in atp870u # # drivers/scsi/atp870u.c # 2004/06/20 10:48:43-05:00 hch@lst.de +41 -39 # avoid obsolete APIs in atp870u # # ChangeSet # 2004/06/21 16:41:12-05:00 hch@lst.de # [PATCH] avoid obsolete APIs in fdomain # # Signed-off-by: James Bottomley # # drivers/scsi/fdomain.c # 2004/06/20 10:55:02-05:00 hch@lst.de +16 -26 # avoid obsolete APIs in fdomain # # ChangeSet # 2004/06/21 16:39:39-05:00 hch@lst.de # [PATCH] avoid obsolete APIs in sr # # Signed-off-by: James Bottomley # # ChangeSet # 2004/06/21 14:39:33-07:00 kaber@trash.net # [NETFILTER]: ip_table_raw C99 initialization # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # net/ipv4/netfilter/iptable_raw.c # 2004/06/21 14:39:19-07:00 kaber@trash.net +58 -37 # [NETFILTER]: ip_table_raw C99 initialization # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/21 14:38:44-07:00 kaber@trash.net # [NETFILTER]: Add realm match # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # drivers/scsi/sr_vendor.c # 2004/06/20 11:33:22-05:00 hch@lst.de +11 -9 # avoid obsolete APIs in sr # # drivers/scsi/sr_ioctl.c # 2004/06/20 11:31:34-05:00 hch@lst.de +20 -16 # avoid obsolete APIs in sr # # drivers/scsi/sr.h # 2004/06/20 11:23:53-05:00 hch@lst.de +4 -2 # avoid obsolete APIs in sr # # drivers/scsi/sr.c # 2004/06/20 11:29:03-05:00 hch@lst.de +13 -10 # avoid obsolete APIs in sr # # net/sched/Kconfig # 2004/06/21 14:38:11-07:00 kaber@trash.net +2 -2 # [NETFILTER]: Add realm match # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # net/ipv4/netfilter/Makefile # 2004/06/21 14:38:11-07:00 kaber@trash.net +1 -0 # [NETFILTER]: Add realm match # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # net/ipv4/netfilter/Kconfig # 2004/06/21 14:38:11-07:00 kaber@trash.net +14 -0 # [NETFILTER]: Add realm match # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # net/ipv4/netfilter/ipt_realm.c # 2004/06/21 14:37:59-07:00 kaber@trash.net +76 -0 # [NETFILTER]: Add realm match # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # net/ipv4/netfilter/ipt_realm.c # 2004/06/21 14:37:59-07:00 kaber@trash.net +0 -0 # BitKeeper file /disk1/BK/nf-2.6/net/ipv4/netfilter/ipt_realm.c # # include/linux/netfilter_ipv4/ipt_realm.h # 2004/06/21 14:37:58-07:00 kaber@trash.net +10 -0 # [NETFILTER]: Add realm match # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # include/linux/netfilter_ipv4/ipt_realm.h # 2004/06/21 14:37:58-07:00 kaber@trash.net +0 -0 # BitKeeper file /disk1/BK/nf-2.6/include/linux/netfilter_ipv4/ipt_realm.h # # kernel/module.c # 2004/06/21 14:37:39-07:00 greg@kroah.com +0 -0 # Auto merged # # drivers/scsi/scsi_transport_spi.c # 2004/06/21 14:37:38-07:00 greg@kroah.com +0 -1 # Auto merged # # MAINTAINERS # 2004/06/21 14:37:38-07:00 greg@kroah.com +0 -0 # Auto merged # # ChangeSet # 2004/06/21 14:36:31-07:00 kaber@trash.net # [NETFILTER]: Add addrtype match # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # net/ipv4/netfilter/Makefile # 2004/06/21 14:36:07-07:00 kaber@trash.net +1 -0 # [NETFILTER]: Add addrtype match # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # net/ipv4/netfilter/Kconfig # 2004/06/21 14:36:07-07:00 kaber@trash.net +10 -0 # [NETFILTER]: Add addrtype match # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # net/ipv4/netfilter/ipt_addrtype.c # 2004/06/21 14:35:54-07:00 kaber@trash.net +77 -0 # [NETFILTER]: Add addrtype match # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # net/ipv4/netfilter/ipt_addrtype.c # 2004/06/21 14:35:54-07:00 kaber@trash.net +0 -0 # BitKeeper file /disk1/BK/nf-2.6/net/ipv4/netfilter/ipt_addrtype.c # # include/linux/netfilter_ipv4/ipt_addrtype.h # 2004/06/21 14:35:52-07:00 kaber@trash.net +11 -0 # [NETFILTER]: Add addrtype match # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # include/linux/netfilter_ipv4/ipt_addrtype.h # 2004/06/21 14:35:52-07:00 kaber@trash.net +0 -0 # BitKeeper file /disk1/BK/nf-2.6/include/linux/netfilter_ipv4/ipt_addrtype.h # # ChangeSet # 2004/06/21 14:34:20-07:00 kaber@trash.net # [NETFILTER]: Add new function 'nf_reset' to reset netfilter related skb-fields # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # net/ipv6/sit.c # 2004/06/21 14:34:06-07:00 kaber@trash.net +2 -14 # [NETFILTER]: Add new function 'nf_reset' to reset netfilter related skb-fields # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # net/ipv6/ip6_tunnel.c # 2004/06/21 14:34:06-07:00 kaber@trash.net +1 -7 # [NETFILTER]: Add new function 'nf_reset' to reset netfilter related skb-fields # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # net/ipv4/netfilter/ipt_REJECT.c # 2004/06/21 14:34:06-07:00 kaber@trash.net +1 -5 # [NETFILTER]: Add new function 'nf_reset' to reset netfilter related skb-fields # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # net/ipv4/ipmr.c # 2004/06/21 14:34:06-07:00 kaber@trash.net +3 -12 # [NETFILTER]: Add new function 'nf_reset' to reset netfilter related skb-fields # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # net/ipv4/ipip.c # 2004/06/21 14:34:06-07:00 kaber@trash.net +2 -14 # [NETFILTER]: Add new function 'nf_reset' to reset netfilter related skb-fields # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # net/ipv4/ip_input.c # 2004/06/21 14:34:06-07:00 kaber@trash.net +1 -5 # [NETFILTER]: Add new function 'nf_reset' to reset netfilter related skb-fields # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # net/ipv4/ip_gre.c # 2004/06/21 14:34:06-07:00 kaber@trash.net +2 -14 # [NETFILTER]: Add new function 'nf_reset' to reset netfilter related skb-fields # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # include/linux/skbuff.h # 2004/06/21 14:34:06-07:00 kaber@trash.net +12 -3 # [NETFILTER]: Add new function 'nf_reset' to reset netfilter related skb-fields # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/21 14:33:48-07:00 kaber@trash.net # [NETFILTER]: Relax hook check in ipt_CLASSIFY # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # net/ipv4/netfilter/ipt_CLASSIFY.c # 2004/06/21 14:33:34-07:00 kaber@trash.net +7 -5 # [NETFILTER]: Relax hook check in ipt_CLASSIFY # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/21 14:33:13-07:00 kaber@trash.net # [NETFILTER]: Fix offset calculation in amanda conntrack helper # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # net/ipv4/netfilter/ip_conntrack_amanda.c # 2004/06/21 14:32:59-07:00 kaber@trash.net +1 -1 # [NETFILTER]: Fix offset calculation in amanda conntrack helper # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/21 14:32:37-07:00 kaber@trash.net # [NETFILTER]: Fix expectation eviction order # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # net/ipv4/netfilter/ip_nat_core.c # 2004/06/21 14:32:23-07:00 kaber@trash.net +1 -1 # [NETFILTER]: Fix expectation eviction order # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # net/ipv4/netfilter/ip_conntrack_core.c # 2004/06/21 14:32:23-07:00 kaber@trash.net +7 -16 # [NETFILTER]: Fix expectation eviction order # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/21 14:32:04-07:00 kaber@trash.net # [NETFILTER]: Don't reroute on nfmark change in mangle table when routing by nfmark is not enabled # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # net/ipv4/netfilter/iptable_mangle.c # 2004/06/21 14:31:50-07:00 kaber@trash.net +2 -0 # [NETFILTER]: Don't reroute on nfmark change in mangle table when routing by nfmark is not enabled # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/21 14:31:28-07:00 kaber@trash.net # [NETFILTER]: 'any' matching in ipt_helper # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # net/ipv4/netfilter/ipt_helper.c # 2004/06/21 14:31:14-07:00 kaber@trash.net +5 -6 # [NETFILTER]: 'any' matching in ipt_helper # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/21 14:30:52-07:00 kaber@trash.net # [NETFILTER]: Fix inverted matching in ipt_helper # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # net/ipv4/netfilter/ipt_helper.c # 2004/06/21 14:30:38-07:00 kaber@trash.net +5 -6 # [NETFILTER]: Fix inverted matching in ipt_helper # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/21 16:30:29-05:00 hch@lst.de # [PATCH] wd33c93 update # # avoid obsolete APIs # # Signed-off-by: James Bottomley # # ChangeSet # 2004/06/21 14:30:19-07:00 kaber@trash.net # [NETFILTER]: skip internal targets in iptables proc listing # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # net/ipv6/netfilter/ip6_tables.c # 2004/06/21 14:30:05-07:00 kaber@trash.net +10 -1 # [NETFILTER]: skip internal targets in iptables proc listing # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # net/ipv4/netfilter/ip_tables.c # 2004/06/21 14:30:05-07:00 kaber@trash.net +10 -1 # [NETFILTER]: skip internal targets in iptables proc listing # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # drivers/scsi/wd33c93.h # 2004/06/20 11:01:32-05:00 hch@lst.de +11 -10 # wd33c93 update # # drivers/scsi/wd33c93.c # 2004/06/20 11:02:36-05:00 hch@lst.de +46 -52 # wd33c93 update # # ChangeSet # 2004/06/21 14:29:41-07:00 kaber@trash.net # [NETFILTER]: Change permissions of /proc/net/ip_conntrack to 0440 # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # net/ipv4/netfilter/ip_conntrack_standalone.c # 2004/06/21 14:29:27-07:00 kaber@trash.net +1 -1 # [NETFILTER]: Change permissions of /proc/net/ip_conntrack to 0440 # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/21 14:28:57-07:00 kaber@trash.net # [NETFILTER]: complain about brokeness on SMP for pid, sid and command matching in ipt_owner # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # net/ipv6/netfilter/ip6t_owner.c # 2004/06/21 14:28:43-07:00 kaber@trash.net +8 -1 # [NETFILTER]: complain about brokeness on SMP for pid, sid and command matching in ipt_owner # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # net/ipv4/netfilter/ipt_owner.c # 2004/06/21 14:28:43-07:00 kaber@trash.net +9 -1 # [NETFILTER]: complain about brokeness on SMP for pid, sid and command matching in ipt_owner # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/21 14:28:23-07:00 kaber@trash.net # [NETFILTER]: Fix non-existant config option for IP_NF_ASSERT, fix some broken assertions # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # net/ipv4/netfilter/ip_nat_core.c # 2004/06/21 14:28:09-07:00 kaber@trash.net +3 -2 # [NETFILTER]: Fix non-existant config option for IP_NF_ASSERT, fix some broken assertions # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # net/ipv4/netfilter/ip_conntrack_core.c # 2004/06/21 14:28:09-07:00 kaber@trash.net +1 -3 # [NETFILTER]: Fix non-existant config option for IP_NF_ASSERT, fix some broken assertions # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # include/linux/netfilter_ipv4/ip_conntrack.h # 2004/06/21 14:28:09-07:00 kaber@trash.net +1 -1 # [NETFILTER]: Fix non-existant config option for IP_NF_ASSERT, fix some broken assertions # # Signed-off-by: Patrick McHardy # Signed-off-by: Harald Welte # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/21 16:07:28-05:00 hch@lst.de # [PATCH] wd7000 updates # # Avoid old APIs and fix a bad bug were the irq handler argument was # derefenced as struct Scsi_Host * instead of Adpater * which made the # driver instantly crash on SMP. # # Signed-off-by: James Bottomley # # ChangeSet # 2004/06/21 14:07:06-07:00 herbert@gondor.apana.org.au # [NET]: In sungem driver, keep track of rx buffer alloc size based upon MTU. # # drivers/net/sungem.h # 2004/06/21 14:06:52-07:00 herbert@gondor.apana.org.au +2 -1 # [NET]: In sungem driver, keep track of rx buffer alloc size based upon MTU. # # drivers/net/sungem.c # 2004/06/21 14:06:52-07:00 herbert@gondor.apana.org.au +8 -4 # [NET]: In sungem driver, keep track of rx buffer alloc size based upon MTU. # # drivers/scsi/wd7000.c # 2004/06/20 11:20:06-05:00 hch@lst.de +79 -100 # wd7000 updates # # ChangeSet # 2004/06/21 15:22:34-04:00 len.brown@intel.com # Merge intel.com:/home/lenb/src/linux-acpi-test-2.6.7 # into intel.com:/home/lenb/bk/linux-acpi-test-2.6.7 # # arch/x86_64/kernel/mpparse.c # 2004/06/21 15:22:31-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/i386/kernel/mpparse.c # 2004/06/21 15:22:31-04:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/06/21 15:20:51-04:00 len.brown@intel.com # [ACPI] fix double timer interrupt mapping (Hans-Frieder Vogt) # caused by errant fix for OSDL 2835 # # arch/x86_64/kernel/mpparse.c # 2004/06/21 15:20:45-04:00 len.brown@intel.com +1 -1 # fix previous fix that caused double timer interrupts (Hans-Frieder Vogt) # # arch/i386/kernel/mpparse.c # 2004/06/21 15:20:45-04:00 len.brown@intel.com +1 -1 # fix previous fix that caused double timer interrupts (Hans-Frieder Vogt) # # ChangeSet # 2004/06/21 14:52:56-04:00 jgarzik@pobox.com # Rename 'carmel' block driver to 'sx8'. # # Requested by Promise. The hardware isn't widely deployed yet, # with almost all users being early evaluators, so this should be OK. # # drivers/block/Makefile # 2004/06/21 14:52:50-04:00 jgarzik@pobox.com +1 -1 # Rename 'carmel' block driver to 'sx8'. # # Requested by Promise. The hardware isn't widely deployed yet, # with almost all users being early evaluators, so this should be OK. # # drivers/block/Kconfig # 2004/06/21 14:52:50-04:00 jgarzik@pobox.com +4 -4 # Rename 'carmel' block driver to 'sx8'. # # Requested by Promise. The hardware isn't widely deployed yet, # with almost all users being early evaluators, so this should be OK. # # Documentation/devices.txt # 2004/06/21 14:52:50-04:00 jgarzik@pobox.com +14 -14 # Rename 'carmel' block driver to 'sx8'. # # Requested by Promise. The hardware isn't widely deployed yet, # with almost all users being early evaluators, so this should be OK. # # drivers/block/sx8.c # 2004/06/21 14:49:55-04:00 jgarzik@pobox.com +0 -0 # Rename: drivers/block/carmel.c -> drivers/block/sx8.c # # ChangeSet # 2004/06/21 11:29:18-07:00 trini@kernel.crashing.org # [PPC32] Add SysRq-G support to our KGDB stub. # From David Woodhouse . # # arch/ppc/kernel/ppc-stub.c # 2004/06/21 11:29:10-07:00 trini@kernel.crashing.org +22 -0 # Add SysRq-G support. # # ChangeSet # 2004/06/21 09:34:33-07:00 akpm@osdl.org # [NET]: Loopback, allocate per-cpu stats statically and fix cpu refcounting. # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # drivers/net/loopback.c # 2004/06/21 09:34:19-07:00 akpm@osdl.org +18 -17 # [NET]: Loopback, allocate per-cpu stats statically and fix cpu refcounting. # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/21 09:32:44-07:00 akm@osdl.org # [NET]: Fix dev_queue_xmit build with older gcc. # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/21 13:14:12-03:00 acme@conectiva.com.br # [NET] generalise tcp_set_owner_r and tcp_rfree # # Will be used by the poor cousins # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp_input.c # 2004/06/21 13:14:00-03:00 acme@conectiva.com.br +4 -4 # [NET] generalise tcp_set_owner_r and tcp_rfree # # Will be used by the poor cousins # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp.c # 2004/06/21 13:14:00-03:00 acme@conectiva.com.br +0 -8 # [NET] generalise tcp_set_owner_r and tcp_rfree # # Will be used by the poor cousins # # Signed-off-by: Arnaldo Carvalho de Melo # # net/core/stream.c # 2004/06/21 13:14:00-03:00 acme@conectiva.com.br +10 -0 # [NET] generalise tcp_set_owner_r and tcp_rfree # # Will be used by the poor cousins # # Signed-off-by: Arnaldo Carvalho de Melo # # include/net/tcp.h # 2004/06/21 13:14:00-03:00 acme@conectiva.com.br +0 -10 # [NET] generalise tcp_set_owner_r and tcp_rfree # # Will be used by the poor cousins # # Signed-off-by: Arnaldo Carvalho de Melo # # include/net/sock.h # 2004/06/21 13:14:00-03:00 acme@conectiva.com.br +10 -0 # [NET] generalise tcp_set_owner_r and tcp_rfree # # Will be used by the poor cousins # # Signed-off-by: Arnaldo Carvalho de Melo # # ChangeSet # 2004/06/21 17:12:14+01:00 dwmw2@shinybook.infradead.org # Merge # # arch/ppc/Kconfig # 2004/06/21 17:12:04+01:00 dwmw2@shinybook.infradead.org +0 -2 # SCCS merged # # include/linux/serial_core.h # 2004/06/21 17:08:20+01:00 dwmw2@shinybook.infradead.org +0 -0 # Auto merged # # include/asm-ppc/ppcboot.h # 2004/06/21 17:08:20+01:00 dwmw2@shinybook.infradead.org +0 -1 # Auto merged # # drivers/serial/Makefile # 2004/06/21 17:08:20+01:00 dwmw2@shinybook.infradead.org +0 -0 # Auto merged # # drivers/serial/Kconfig # 2004/06/21 17:08:20+01:00 dwmw2@shinybook.infradead.org +0 -0 # Auto merged # # arch/ppc/syslib/Makefile # 2004/06/21 17:08:20+01:00 dwmw2@shinybook.infradead.org +0 -0 # Auto merged # # arch/ppc/Makefile # 2004/06/21 17:08:20+01:00 dwmw2@shinybook.infradead.org +0 -0 # Auto merged # # ChangeSet # 2004/06/21 11:07:54-05:00 hch@lst.de # [PATCH] avoiding obsolete scsi APIs in dc395 # # replace obsolete typedefs and scsi_to_pci_dma_dir, use proper includes # and re-order includes correctly. # # Signed-off-by: James Bottomley # # drivers/scsi/dc395x.c # 2004/06/06 07:27:30-05:00 hch@lst.de +29 -26 # avoiding obsolete scsi APIs in dc395 # # ChangeSet # 2004/06/21 16:44:37+01:00 dwmw2@shinybook.infradead.org # Merge # # include/asm-ppc/ppcboot.h # 2004/06/21 16:44:26+01:00 dwmw2@shinybook.infradead.org +1 -2 # SCCS merged # # arch/ppc/Kconfig # 2004/06/21 16:44:06+01:00 dwmw2@shinybook.infradead.org +2 -4 # SCCS merged # # include/linux/serial_core.h # 2004/06/21 16:39:51+01:00 dwmw2@shinybook.infradead.org +0 -0 # Auto merged # # include/asm-ppc/io.h # 2004/06/21 16:39:51+01:00 dwmw2@shinybook.infradead.org +0 -0 # Auto merged # # drivers/serial/Makefile # 2004/06/21 16:39:51+01:00 dwmw2@shinybook.infradead.org +0 -0 # Auto merged # # drivers/serial/Kconfig # 2004/06/21 16:39:51+01:00 dwmw2@shinybook.infradead.org +0 -0 # Auto merged # # arch/ppc/syslib/Makefile # 2004/06/21 16:39:51+01:00 dwmw2@shinybook.infradead.org +0 -0 # Auto merged # # arch/ppc/Makefile # 2004/06/21 16:39:51+01:00 dwmw2@shinybook.infradead.org +0 -0 # Auto merged # # ChangeSet # 2004/06/21 16:37:32+01:00 dwmw2@shinybook.infradead.org # Update CPM UART driver according to feedback from Dan Malek. # Patch from Pantelis Antoniou # # drivers/serial/cpm_uart/cpm_uart_core.c # 2004/06/21 16:37:14+01:00 dwmw2@shinybook.infradead.org +261 -261 # Fix up criticism from Dan Malek. # # drivers/serial/cpm_uart/cpm_uart.h # 2004/06/21 16:37:14+01:00 dwmw2@shinybook.infradead.org +39 -36 # Fix up criticism from Dan Malek. # # ChangeSet # 2004/06/21 15:01:21+01:00 dwmw2@shinybook.infradead.org # Add support for MPC8560 CPU and WindRiver PowerQUICC III SBC8560 # # Signed-off-by: Kumar Gala # # arch/ppc/platforms/85xx/sbc85xx.h # 2004/06/21 15:00:59+01:00 dwmw2@shinybook.infradead.org +57 -0 # # arch/ppc/platforms/85xx/sbc85xx.h # 2004/06/21 15:00:59+01:00 dwmw2@shinybook.infradead.org +0 -0 # BitKeeper file /home/dwmw2/bk/85xx-2.6/arch/ppc/platforms/85xx/sbc85xx.h # # arch/ppc/platforms/85xx/sbc85xx.c # 2004/06/21 15:00:57+01:00 dwmw2@shinybook.infradead.org +215 -0 # # arch/ppc/platforms/85xx/sbc85xx.c # 2004/06/21 15:00:57+01:00 dwmw2@shinybook.infradead.org +0 -0 # BitKeeper file /home/dwmw2/bk/85xx-2.6/arch/ppc/platforms/85xx/sbc85xx.c # # arch/ppc/platforms/85xx/sbc8560.h # 2004/06/21 15:00:56+01:00 dwmw2@shinybook.infradead.org +48 -0 # # arch/ppc/platforms/85xx/sbc8560.h # 2004/06/21 15:00:56+01:00 dwmw2@shinybook.infradead.org +0 -0 # BitKeeper file /home/dwmw2/bk/85xx-2.6/arch/ppc/platforms/85xx/sbc8560.h # # arch/ppc/platforms/85xx/sbc8560.c # 2004/06/21 15:00:54+01:00 dwmw2@shinybook.infradead.org +269 -0 # # arch/ppc/platforms/85xx/sbc8560.c # 2004/06/21 15:00:54+01:00 dwmw2@shinybook.infradead.org +0 -0 # BitKeeper file /home/dwmw2/bk/85xx-2.6/arch/ppc/platforms/85xx/sbc8560.c # # arch/ppc/platforms/85xx/mpc8560.c # 2004/06/21 15:00:53+01:00 dwmw2@shinybook.infradead.org +74 -0 # # include/asm-ppc/mpc85xx.h # 2004/06/21 15:00:53+01:00 dwmw2@shinybook.infradead.org +3 -0 # Add sbc8560.h if CONFIG_SBC8560 # # arch/ppc/syslib/ppc85xx_setup.h # 2004/06/21 15:00:53+01:00 dwmw2@shinybook.infradead.org +3 -1 # Remove bogus and sometimes gratuitous BASE_BAUD definition. # # arch/ppc/syslib/ppc85xx_setup.c # 2004/06/21 15:00:53+01:00 dwmw2@shinybook.infradead.org +2 -0 # Include ppc85xx_setup.h for PCIX_COMMAND. # # arch/ppc/platforms/85xx/mpc8560.c # 2004/06/21 15:00:53+01:00 dwmw2@shinybook.infradead.org +0 -0 # BitKeeper file /home/dwmw2/bk/85xx-2.6/arch/ppc/platforms/85xx/mpc8560.c # # arch/ppc/platforms/85xx/Makefile # 2004/06/21 15:00:53+01:00 dwmw2@shinybook.infradead.org +2 -0 # Add SBC8560 and MPC8560 files # # arch/ppc/platforms/85xx/Kconfig # 2004/06/21 15:00:53+01:00 dwmw2@shinybook.infradead.org +12 -1 # Add WindRiver PowerQUICC III and MPC8560 options. # # ChangeSet # 2004/06/21 09:50:47+01:00 rmk@flint.arm.linux.org.uk # [PCMCIA] 06-ide # # IDE releases the PCMCIA resource to work around the need to have # two conflicting subsystems (IDE and PCMCIA) claim resources. # Since PCMCIA no longer marks its resouces busy, this work around # must be removed. # # drivers/ide/legacy/ide-cs.c # 2004/06/21 09:47:32+01:00 rmk@flint.arm.linux.org.uk +0 -5 # Remove PCMCIA/IDE resource workaround # # ChangeSet # 2004/06/20 23:44:05-07:00 axboe@suse.de # [PATCH] only clear ->last_merge when appropriate # # Make sure we only clear q->last_merge hint, if it matches the request # currently passed in. # # Signed-off-by: Jens Axboe # Signed-off-by: Linus Torvalds # # drivers/block/ll_rw_blk.c # 2004/06/20 23:39:06-07:00 axboe@suse.de +8 -4 # only clear ->last_merge when appropriate # # ChangeSet # 2004/06/20 20:46:32-07:00 sam@ravnborg.org # [PATCH] kbuild: add deb-pkg target # # To prepare kbuild for more kernel packaging formats move all packaging support # to scripts/package. # # In top-level Makefile introduce generic support for all package formats using # target names *-pkg. Included the old rpm target for backward compatibility. # # A new variable KBUILD_IMAGE is used to specify what kernel image will be part # of the final package, and is to be set by the arch specific makefile. # KBUILD_IMAGE may be overridden from command line or environment. KBUILD_IMAGE # will see wider usage later, mainly when installing kernel images. # # Introducing KBUILD_IMAGE allowed arch specific details to be deleted from the # mkspec and builddeb scripts. # # While in the process added the deb packet format. Script is From: Wichert # Akkerman # # To create a RPM packet use 'make rpm-pkg'. # To create a deb packet use 'make deb-pkg'. # Both targets are included in 'make help' # # Signed-off-by: Sam Ravnborg # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # scripts/package/mkspec # 2004/06/20 18:23:45-07:00 sam@ravnborg.org +7 -16 # kbuild: add deb-pkg target # # scripts/package/builddeb # 2004/06/20 20:46:25-07:00 sam@ravnborg.org +79 -0 # # scripts/package/Makefile # 2004/06/20 20:46:25-07:00 sam@ravnborg.org +71 -0 # # scripts/Makefile # 2004/06/20 18:23:45-07:00 sam@ravnborg.org +1 -1 # kbuild: add deb-pkg target # # arch/i386/Makefile # 2004/06/20 18:23:45-07:00 sam@ravnborg.org +7 -6 # kbuild: add deb-pkg target # # Makefile # 2004/06/20 18:23:45-07:00 sam@ravnborg.org +25 -37 # kbuild: add deb-pkg target # # scripts/package/builddeb # 2004/06/20 20:46:25-07:00 sam@ravnborg.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/scripts/package/builddeb # # scripts/package/Makefile # 2004/06/20 20:46:25-07:00 sam@ravnborg.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/scripts/package/Makefile # # ChangeSet # 2004/06/20 20:46:14-07:00 sam@ravnborg.org # [PATCH] Avoid rebuild of IKCFG when using O= # # When using a separate output directory the in-kernel config wiere rebuild # each time the kernel was compiled. Fix this by specifying correct path to # Makefile in the prerequisite to the ikconfig.h file. # # Signed-off-by: Sam Ravnborg # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/Makefile # 2004/06/20 18:23:45-07:00 sam@ravnborg.org +1 -1 # Avoid rebuild of IKCFG when using O= # # ChangeSet # 2004/06/20 20:46:03-07:00 sam@ravnborg.org # [PATCH] wanxl firware build fix # # allmodconfig and allyesconfig are currently failing because they select # wanxl firmware rebuild, and that requires an m68k assembler toolchain. # # Add a new generic option to the "Generic Driver Options" menu. The option # is defaul equals y and prevents us from building firmware unless really # needed. # # Firmware is usually provided in separate filer '_shipped', and there is no # need to rebuild them unless strictly required. First user is WanXL - which # otherwise required a m68k tool-set to compile. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/net/wan/Kconfig # 2004/06/20 18:23:45-07:00 sam@ravnborg.org +1 -1 # wanxl firware build fix # # drivers/base/Kconfig # 2004/06/20 18:23:45-07:00 sam@ravnborg.org +9 -0 # wanxl firware build fix # # ChangeSet # 2004/06/20 20:45:52-07:00 geert@linux-m68k.org # [PATCH] Fix idr.h comment # # Fix path in header file. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/idr.h # 2004/06/20 18:23:45-07:00 geert@linux-m68k.org +1 -1 # Fix idr.h comment # # ChangeSet # 2004/06/20 20:45:41-07:00 juhl-lkml@dif.dk # [PATCH] Fix warning in tdfxfb.c # # drivers/video/tdfxfb.c:1104: warning: initialization discards qualifiers from pointer target type # # Signed-off-by: Jesper Juhl # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/video/tdfxfb.c # 2004/06/20 18:23:45-07:00 juhl-lkml@dif.dk +1 -1 # Fix warning in tdfxfb.c # # ChangeSet # 2004/06/20 20:45:30-07:00 nickpiggin@yahoo.com.au # [PATCH] lindent rwsem # # Lindent rwsem.c and rwsem-spinlock.c and fix a few things by hand. Also # added a couple of comments for the memory barriers. Added the __sched # annotation that was left out of rwsem-spinlock.c. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # lib/rwsem.c # 2004/06/20 18:23:45-07:00 nickpiggin@yahoo.com.au +59 -50 # lindent rwsem # # lib/rwsem-spinlock.c # 2004/06/20 18:23:45-07:00 nickpiggin@yahoo.com.au +51 -46 # lindent rwsem # # ChangeSet # 2004/06/20 20:45:19-07:00 akpm@osdl.org # [PATCH] jfs warning fix # # On ppc64, s64 is `long'. # # In file included from fs/jfs/jfs_xtree.h:25, # from fs/jfs/jfs_incore.h:26, # from fs/jfs/super.c:29: # fs/jfs/jfs_btree.h: In function `BT_STACK_DUMP': # fs/jfs/jfs_btree.h:151: warning: long long unsigned int format, s64 arg (arg 2) # # Cc: Dave Kleikamp # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/jfs/jfs_btree.h # 2004/06/20 18:23:45-07:00 akpm@osdl.org +1 -1 # jfs warning fix # # ChangeSet # 2004/06/20 20:45:08-07:00 ralf@linux-mips.org # [PATCH] Add M48T35 RTC driver # # Add M48T35 RTC driver for the SGI IP27 aka Origin 200, Origin 2000 and # Onyx 2. # # Signed-off-by: Ralf Baechle # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/char/ip27-rtc.c # 2004/06/20 18:23:44-07:00 ralf@linux-mips.org +327 -0 # Add M48T35 RTC driver # # drivers/char/Makefile # 2004/06/20 18:23:44-07:00 ralf@linux-mips.org +1 -0 # Add M48T35 RTC driver # # drivers/char/Kconfig # 2004/06/20 18:23:44-07:00 ralf@linux-mips.org +11 -0 # Add M48T35 RTC driver # # drivers/char/ip27-rtc.c # 2004/06/20 18:23:44-07:00 ralf@linux-mips.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/char/ip27-rtc.c # # ChangeSet # 2004/06/20 20:44:57-07:00 ralf@linux-mips.org # [PATCH] Cobalt LCD Driver update # # Mostly reformatting to get the sometimes random formatting style of the LCD # driver to something Linux compliant. Use module_init/exit for module # initialization and cleanup. # # Signed-off-by: Ralf Baechle # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/char/lcd.h # 2004/06/20 18:23:44-07:00 ralf@linux-mips.org +184 -0 # Cobalt LCD Driver update # # drivers/char/lcd.h # 2004/06/20 18:23:44-07:00 ralf@linux-mips.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/char/lcd.h # # drivers/char/lcd.c # 2004/06/20 18:23:44-07:00 ralf@linux-mips.org +375 -327 # Cobalt LCD Driver update # # drivers/char/Makefile # 2004/06/20 18:30:54-07:00 ralf@linux-mips.org +1 -0 # Cobalt LCD Driver update # # drivers/char/Kconfig # 2004/06/20 18:30:54-07:00 ralf@linux-mips.org +7 -0 # Cobalt LCD Driver update # # arch/mips/configs/cobalt_defconfig # 2004/06/20 18:23:44-07:00 ralf@linux-mips.org +1 -1 # Cobalt LCD Driver update # # arch/mips/Kconfig # 2004/06/20 18:23:44-07:00 ralf@linux-mips.org +0 -5 # Cobalt LCD Driver update # # ChangeSet # 2004/06/20 20:44:45-07:00 ralf@linux-mips.org # [PATCH] DS1286 cleanups # # Remove #ifdef'ed hooks for the DS1286 driver through the kernel. While # cleaning make it work as a module also and add back the core of the driver # got lost when drivers/sgi/ was shredded. # # Signed-off-by: Ralf Baechle # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/ds1286.h # 2004/06/20 18:23:44-07:00 ralf@linux-mips.org +54 -0 # DS1286 cleanups # # include/linux/ds1286.h # 2004/06/20 18:23:44-07:00 ralf@linux-mips.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/linux/ds1286.h # # fs/proc/proc_misc.c # 2004/06/20 18:23:44-07:00 ralf@linux-mips.org +0 -15 # DS1286 cleanups # # drivers/char/misc.c # 2004/06/20 18:23:44-07:00 ralf@linux-mips.org +0 -4 # DS1286 cleanups # # drivers/char/ds1286.c # 2004/06/20 18:23:44-07:00 ralf@linux-mips.org +578 -0 # DS1286 cleanups # # drivers/char/Makefile # 2004/06/20 18:30:55-07:00 ralf@linux-mips.org +1 -0 # DS1286 cleanups # # drivers/char/Kconfig # 2004/06/20 18:30:55-07:00 ralf@linux-mips.org +11 -0 # DS1286 cleanups # # arch/mips/defconfig # 2004/06/20 18:23:44-07:00 ralf@linux-mips.org +1 -1 # DS1286 cleanups # # arch/mips/configs/ip22_defconfig # 2004/06/20 18:23:44-07:00 ralf@linux-mips.org +1 -1 # DS1286 cleanups # # drivers/char/ds1286.c # 2004/06/20 18:23:44-07:00 ralf@linux-mips.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/char/ds1286.c # # ChangeSet # 2004/06/20 20:44:34-07:00 ralf@linux-mips.org # [PATCH] mips: remove old junk # # Remove old, unused initialization stuff. # # Signed-off-by: Ralf Baechle # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/char/misc.c # 2004/06/20 18:30:55-07:00 ralf@linux-mips.org +0 -13 # mips: remove old junk # # ChangeSet # 2004/06/20 20:44:23-07:00 bjoern@j3e.de # [PATCH] NLS support for ASCII # # I created an ASCII NSL module manually based on the ISO-8859-1 NLS module. # # This might be of use for people who do not want any charset conversion to # take place. fs modules like vfat for example then could be forced to # display any non-ASCII character in the uni_xlate escaped form. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/nls/nls_ascii.c # 2004/06/20 18:23:44-07:00 bjoern@j3e.de +167 -0 # NLS support for ASCII # # fs/nls/nls_ascii.c # 2004/06/20 18:23:44-07:00 bjoern@j3e.de +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/fs/nls/nls_ascii.c # # fs/nls/Makefile # 2004/06/20 18:23:44-07:00 bjoern@j3e.de +1 -0 # NLS support for ASCII # # fs/nls/Kconfig # 2004/06/20 18:23:44-07:00 bjoern@j3e.de +8 -0 # NLS support for ASCII # # ChangeSet # 2004/06/20 20:44:11-07:00 emoenke@gwdg.de # [PATCH] CREDITS update # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # CREDITS # 2004/06/20 18:23:44-07:00 emoenke@gwdg.de +2 -2 # CREDITS update # # ChangeSet # 2004/06/20 20:44:00-07:00 akpm@osdl.org # [PATCH] move as documentation # # Move the anticipatory scheduler documentation into Documentation/block. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # Documentation/block/as-iosched.txt # 2004/06/20 18:23:43-07:00 akpm@osdl.org +1 -1 # move as documentation # # ChangeSet # 2004/06/20 23:57:54-03:00 acme@conectiva.com.br # [NET] generalise wait_for_tcp_memory # # Renaming it to sk_stream_wait_memory # # Signed-off-by: Arnaldo Carvalho de Melo # # net/sctp/socket.c # 2004/06/20 23:57:40-03:00 acme@conectiva.com.br +1 -1 # [NET] generalise wait_for_tcp_memory # # Renaming it to sk_stream_wait_memory # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp.c # 2004/06/20 23:57:40-03:00 acme@conectiva.com.br +2 -63 # [NET] generalise wait_for_tcp_memory # # Renaming it to sk_stream_wait_memory # # Signed-off-by: Arnaldo Carvalho de Melo # # net/core/stream.c # 2004/06/20 23:57:40-03:00 acme@conectiva.com.br +63 -0 # [NET] generalise wait_for_tcp_memory # # Renaming it to sk_stream_wait_memory # # Signed-off-by: Arnaldo Carvalho de Melo # # include/net/sock.h # 2004/06/20 23:57:40-03:00 acme@conectiva.com.br +1 -0 # [NET] generalise wait_for_tcp_memory # # Renaming it to sk_stream_wait_memory # # Signed-off-by: Arnaldo Carvalho de Melo # # ChangeSet # 2004/06/20 23:47:17-03:00 acme@conectiva.com.br # [NET] introduce sk_stream_wait_close, from tcp code # # Will be used by the poor cousins. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp.c # 2004/06/20 23:46:55-03:00 acme@conectiva.com.br +1 -27 # [NET] introduce sk_stream_wait_close, from tcp code # # Will be used by the poor cousins. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/core/stream.c # 2004/06/20 23:46:55-03:00 acme@conectiva.com.br +28 -0 # [NET] introduce sk_stream_wait_close, from tcp code # # Will be used by the poor cousins. # # Signed-off-by: Arnaldo Carvalho de Melo # # include/net/sock.h # 2004/06/20 23:46:55-03:00 acme@conectiva.com.br +1 -0 # [NET] introduce sk_stream_wait_close, from tcp code # # Will be used by the poor cousins. # # Signed-off-by: Arnaldo Carvalho de Melo # # ChangeSet # 2004/06/20 23:33:23-03:00 acme@conectiva.com.br # [NET] generalise wait_for_tcp_connect # # This will be used by the poor cousins, look, for instance, at # x25_wait_for_connection_establishment :-) # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp_input.c # 2004/06/20 23:33:12-03:00 acme@conectiva.com.br +1 -1 # [NET] generalise wait_for_tcp_connect # # This will be used by the poor cousins, look, for instance, at # x25_wait_for_connection_establishment :-) # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp.c # 2004/06/20 23:33:12-03:00 acme@conectiva.com.br +4 -39 # [NET] generalise wait_for_tcp_connect # # This will be used by the poor cousins, look, for instance, at # x25_wait_for_connection_establishment :-) # # Signed-off-by: Arnaldo Carvalho de Melo # # net/core/stream.c # 2004/06/20 23:33:12-03:00 acme@conectiva.com.br +37 -0 # [NET] generalise wait_for_tcp_connect # # This will be used by the poor cousins, look, for instance, at # x25_wait_for_connection_establishment :-) # # Signed-off-by: Arnaldo Carvalho de Melo # # net/core/sock.c # 2004/06/20 23:33:12-03:00 acme@conectiva.com.br +1 -0 # [NET] generalise wait_for_tcp_connect # # This will be used by the poor cousins, look, for instance, at # x25_wait_for_connection_establishment :-) # # Signed-off-by: Arnaldo Carvalho de Melo # # include/net/sock.h # 2004/06/20 23:33:12-03:00 acme@conectiva.com.br +4 -0 # [NET] generalise wait_for_tcp_connect # # This will be used by the poor cousins, look, for instance, at # x25_wait_for_connection_establishment :-) # # Signed-off-by: Arnaldo Carvalho de Melo # # include/linux/tcp.h # 2004/06/20 23:33:12-03:00 acme@conectiva.com.br +0 -2 # [NET] generalise wait_for_tcp_connect # # This will be used by the poor cousins, look, for instance, at # x25_wait_for_connection_establishment :-) # # Signed-off-by: Arnaldo Carvalho de Melo # # ChangeSet # 2004/06/20 18:58:22-07:00 axboe@suse.de # [PATCH] deadline I/O scheduler documentation # # Document the deadline scheduler and its tunables. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # Documentation/block/deadline-iosched.txt # 2004/06/20 18:23:43-07:00 axboe@suse.de +78 -0 # deadline I/O scheduler documentation # # Documentation/block/deadline-iosched.txt # 2004/06/20 18:23:43-07:00 axboe@suse.de +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/Documentation/block/deadline-iosched.txt # # ChangeSet # 2004/06/20 18:58:10-07:00 juhl-lkml@dif.dk # [PATCH] isp16 check_region() removal # # Convert check_region to request_region and clean up some parentheses in # return statements for drivers/cdrom/isp16.c. # # Signed-off-by: Jesper Juhl # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/cdrom/isp16.c # 2004/06/20 18:23:43-07:00 juhl-lkml@dif.dk +27 -18 # isp16 check_region() removal # # ChangeSet # 2004/06/20 18:57:59-07:00 ak@suse.de # [PATCH] NUMA API updates # # This patch three issues in NUMA API # # - When 1 was passed to set_mempolicy or mbind as maxnodes argument # get_nodes could corrupt the stack and cause a crash. Fix that. # # - Remove the restriction to do interleaving only for order 0. Together # with the patch that went in previously to use interleaving policy at boot # time this should give back the original behaviour of distributing the big # hash tables. # # - Fix some bad white space in comments # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/mempolicy.c # 2004/06/20 18:23:43-07:00 ak@suse.de +13 -10 # NUMA API updates # # ChangeSet # 2004/06/20 18:57:48-07:00 mason@suse.com # [PATCH] fix possible stack corruption during reiserfs_file_write # # With preallocation turned on, reiserfs_allocate_blocks_for_region wasn't # sending a large enough array to hold all the blocks it was asking the block # allocator to find. This can result in stack corruption. # # The fix is to kmalloc an array to hold the blocks, making sure to allocate # something large enough. # # There was also a recent optimization to force the allocator to find a free # region large enough to hold the entire preallocation size. This was # sometimes causing more blocks to be allocated then had been requested, # which would also overflow the array. Something more elegant is required # here, until then just disable the optimization. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/reiserfs/file.c # 2004/06/20 18:23:43-07:00 mason@suse.com +15 -10 # fix possible stack corruption during reiserfs_file_write # # fs/reiserfs/bitmap.c # 2004/06/20 18:23:43-07:00 mason@suse.com +1 -4 # fix possible stack corruption during reiserfs_file_write # # ChangeSet # 2004/06/20 18:57:37-07:00 fabian.frederick@skynet.be # [PATCH] sparse annotation for sys_quotactl() # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/quota.c # 2004/06/20 18:23:43-07:00 fabian.frederick@skynet.be +1 -1 # sparse annotation for sys_quotactl() # # ChangeSet # 2004/06/20 18:57:26-07:00 hugh@veritas.com # [PATCH] mprotect propagate anon_vma # # When mprotect shifts the boundary between vmas (merging the reprotected # area into the vma before or the vma after), make sure that the expanding # vma has anon_vma if the shrinking vma had, to cover anon pages imported. # Thanks to Andrea for alerting us to this oversight. # # Cc: # Signed-off-by: Hugh Dickins # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/mmap.c # 2004/06/20 18:23:42-07:00 hugh@veritas.com +14 -1 # mprotect propagate anon_vma # # ChangeSet # 2004/06/20 18:57:15-07:00 jbarnes@engr.sgi.com # [PATCH] export sys_ioctl to modules # # Small patch to export sys_ioctl if CONFIG_COMPAT is set. This allows # platforms to implement 32 bit compatibility ioctl handlers in modules. # # Submitted-by: Jesse Barnes # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/ioctl.c # 2004/06/20 18:23:42-07:00 jbarnes@engr.sgi.com +10 -0 # export sys_ioctl to modules # # arch/x86_64/kernel/x8664_ksyms.c # 2004/06/20 18:23:42-07:00 jbarnes@engr.sgi.com +0 -1 # export sys_ioctl to modules # # arch/sparc64/kernel/sparc64_ksyms.c # 2004/06/20 18:23:42-07:00 jbarnes@engr.sgi.com +0 -1 # export sys_ioctl to modules # # arch/s390/kernel/s390_ksyms.c # 2004/06/20 18:23:42-07:00 jbarnes@engr.sgi.com +0 -1 # export sys_ioctl to modules # # arch/ppc64/kernel/ppc_ksyms.c # 2004/06/20 18:23:42-07:00 jbarnes@engr.sgi.com +0 -1 # export sys_ioctl to modules # # ChangeSet # 2004/06/20 18:57:04-07:00 hch@lst.de # [PATCH] fix isdn to not assume mem*io return values # # These are defined like the normal ISO C mem* routines although x86 happens # to return void by accident. Fix isdn to not assume a return value. # # Sent to the isdn list, but as usual I didn't get any reply. # # The patch is from the Debian kernel package and really old. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/isdn/sc/shmem.c # 2004/06/20 18:23:42-07:00 hch@lst.de +12 -21 # fix isdn to not assume mem*io return values # # drivers/isdn/sc/packet.c # 2004/06/20 18:23:42-07:00 hch@lst.de +2 -2 # fix isdn to not assume mem*io return values # # drivers/isdn/sc/message.c # 2004/06/20 18:23:42-07:00 hch@lst.de +0 -1 # fix isdn to not assume mem*io return values # # ChangeSet # 2004/06/20 18:56:53-07:00 kraxel@bytesex.org # [PATCH] v4l: radio-zoltrix fix. # # From: Paul Focke # # I recently upgraded from 2.4 to kernel 2.6 & noticed that the zoltrix radio # driver was not working. Seems like a little typo. I tested this on my system # and it's working fine now. I doubt there are any other linux users in the # world who still use this card ;-) # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/media/radio/radio-zoltrix.c # 2004/06/20 18:23:42-07:00 kraxel@bytesex.org +1 -1 # v4l: radio-zoltrix fix. # # ChangeSet # 2004/06/20 18:56:42-07:00 kraxel@bytesex.org # [PATCH] v4l: cx88 driver update # # This is a update for the cx88 tv card driver. Changes: # # * finally make it build with gcc 2.95 ;) # # * add new tv cards. # # * plenty of fixes for the TV sound code. # # * use v4l2 API for communication with tuner + tda9887 # # * misc other minor stuff. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/media/video/cx88/cx88.h # 2004/06/20 18:23:42-07:00 kraxel@bytesex.org +21 -13 # v4l: cx88 driver update # # drivers/media/video/cx88/cx88-video.c # 2004/06/20 18:23:42-07:00 kraxel@bytesex.org +99 -76 # v4l: cx88 driver update # # drivers/media/video/cx88/cx88-vbi.c # 2004/06/20 18:23:42-07:00 kraxel@bytesex.org +5 -8 # v4l: cx88 driver update # # drivers/media/video/cx88/cx88-tvaudio.c # 2004/06/20 18:23:42-07:00 kraxel@bytesex.org +240 -157 # v4l: cx88 driver update # # drivers/media/video/cx88/cx88-reg.h # 2004/06/20 18:23:42-07:00 kraxel@bytesex.org +10 -0 # v4l: cx88 driver update # # drivers/media/video/cx88/cx88-i2c.c # 2004/06/20 18:23:42-07:00 kraxel@bytesex.org +0 -2 # v4l: cx88 driver update # # drivers/media/video/cx88/cx88-cards.c # 2004/06/20 18:23:42-07:00 kraxel@bytesex.org +162 -14 # v4l: cx88 driver update # # ChangeSet # 2004/06/20 18:56:31-07:00 kraxel@bytesex.org # [PATCH] saa7134 driver update # # This is an update for the saa7134 driver. Changes: # # # * add support for more TV cards, as usual ;) # # * add support for image cropping. # # * use v4l2 API to talk to the tuner chips (thus it depends on the # tuner/tda9887 patch). # # * fixes for the audio carrier scan. # # * make transport stream packet size configurable. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/media/video/saa7134/saa7134.h # 2004/06/20 18:23:42-07:00 kraxel@bytesex.org +5 -1 # saa7134 driver update # # drivers/media/video/saa7134/saa7134-video.c # 2004/06/20 18:23:42-07:00 kraxel@bytesex.org +114 -87 # saa7134 driver update # # drivers/media/video/saa7134/saa7134-tvaudio.c # 2004/06/20 18:23:42-07:00 kraxel@bytesex.org +103 -69 # saa7134 driver update # # drivers/media/video/saa7134/saa7134-ts.c # 2004/06/20 18:23:42-07:00 kraxel@bytesex.org +17 -10 # saa7134 driver update # # drivers/media/video/saa7134/saa7134-oss.c # 2004/06/20 18:23:42-07:00 kraxel@bytesex.org +3 -2 # saa7134 driver update # # drivers/media/video/saa7134/saa7134-input.c # 2004/06/20 18:23:42-07:00 kraxel@bytesex.org +65 -3 # saa7134 driver update # # drivers/media/video/saa7134/saa7134-core.c # 2004/06/20 18:23:42-07:00 kraxel@bytesex.org +12 -4 # saa7134 driver update # # drivers/media/video/saa7134/saa7134-cards.c # 2004/06/20 18:23:42-07:00 kraxel@bytesex.org +102 -20 # saa7134 driver update # # drivers/media/video/saa7134/saa6752hs.c # 2004/06/20 18:23:42-07:00 kraxel@bytesex.org +0 -1 # saa7134 driver update # # ChangeSet # 2004/06/20 18:56:19-07:00 kraxel@bytesex.org # [PATCH] v4l: IR input driver update. # # This patch updates the ir-kbd-gpio and ir-kbd-i2c drivers. Nothing major, # just some keytable fixes and support for more hardware. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/media/video/ir-kbd-i2c.c # 2004/06/20 18:23:41-07:00 kraxel@bytesex.org +106 -16 # v4l: IR input driver update. # # drivers/media/video/ir-kbd-gpio.c # 2004/06/20 18:23:41-07:00 kraxel@bytesex.org +41 -41 # v4l: IR input driver update. # # ChangeSet # 2004/06/20 18:56:08-07:00 kraxel@bytesex.org # [PATCH] v4l: bttv driver update # # This is a update of the bttv driver. Changes: # # * some card-specific fixes + new cards. # # * separate buffer switching for video frames and vbi data, that should make # bttv less sensitive to high irq latencies. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/media/video/bttvp.h # 2004/06/20 18:23:41-07:00 kraxel@bytesex.org +8 -5 # v4l: bttv driver update # # drivers/media/video/bttv.h # 2004/06/20 18:23:41-07:00 kraxel@bytesex.org +2 -0 # v4l: bttv driver update # # drivers/media/video/bttv-vbi.c # 2004/06/20 18:23:41-07:00 kraxel@bytesex.org +4 -1 # v4l: bttv driver update # # drivers/media/video/bttv-risc.c # 2004/06/20 18:23:41-07:00 kraxel@bytesex.org +18 -10 # v4l: bttv driver update # # drivers/media/video/bttv-driver.c # 2004/06/20 18:23:41-07:00 kraxel@bytesex.org +95 -36 # v4l: bttv driver update # # drivers/media/video/bttv-cards.c # 2004/06/20 18:23:41-07:00 kraxel@bytesex.org +92 -3 # v4l: bttv driver update # # ChangeSet # 2004/06/20 18:55:57-07:00 kraxel@bytesex.org # [PATCH] v4l: tuner + tda9887 updates # # This is a big update for the tuner and tda9887 modules which are used for TV # card tuning. # # The tda9887 module is basically completely rewritten and understands all the # config bits now instead of having just some fixed config presets. Some of # these config bits can be changed by insmod options now. # # The other big change is that both modules allow to use the V4L2 API for # inter-module communication (i.e. when bttv/saa7134/... pass through the # tuning ioctls to the modules). That allows to specify the TV norm more # precisely (not just PAL but PAL-I, PAL-BG, ...), which is needed in some cases # to make TV audio work correctly. Using the old v4l1 API is still possible so # this shouldn't break any users of these two modules. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/media/video/tuner.c # 2004/06/20 18:23:41-07:00 kraxel@bytesex.org +173 -68 # v4l: tuner + tda9887 updates # # drivers/media/video/tda9887.c # 2004/06/20 18:23:41-07:00 kraxel@bytesex.org +414 -202 # v4l: tuner + tda9887 updates # # ChangeSet # 2004/06/20 18:55:46-07:00 kraxel@bytesex.org # [PATCH] v4l: ir-common update # # Some minor changes for the ir-common module: Update for the RC5 keytable and # increase the IR_KEYTAB_SIZE #define. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/media/ir-common.h # 2004/06/20 18:23:41-07:00 kraxel@bytesex.org +1 -1 # v4l: ir-common update # # drivers/media/common/ir-common.c # 2004/06/20 18:23:41-07:00 kraxel@bytesex.org +2 -2 # v4l: ir-common update # # ChangeSet # 2004/06/20 18:55:35-07:00 kraxel@bytesex.org # [PATCH] v4l: msp3400 cleanup. # # This patch has some cleanups for the msp3400 module: Balance is used directly # now instead of maintaining the state as left/right volume and calculate the # balance from that. The msp3400 did that only for historical reasons and it # isn't needed any more ... # # Credits for that go to Perry Gilfillan. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/media/video/msp3400.c # 2004/06/20 18:23:41-07:00 kraxel@bytesex.org +29 -33 # v4l: msp3400 cleanup. # # ChangeSet # 2004/06/20 18:55:24-07:00 kraxel@bytesex.org # [PATCH] v4l: video-buf fixes. # # This patch has some minor bugfixes for the video-buf module. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/media/video-buf.h # 2004/06/20 18:23:41-07:00 kraxel@bytesex.org +0 -2 # v4l: video-buf fixes. # # drivers/media/video/video-buf.c # 2004/06/20 18:23:41-07:00 kraxel@bytesex.org +11 -4 # v4l: video-buf fixes. # # ChangeSet # 2004/06/20 18:55:13-07:00 kraxel@bytesex.org # [PATCH] v4l: video-buf magic numbers # # This patch adds some magic IDs and checks for them to the data structs of the # video-buf module. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/media/video-buf.h # 2004/06/20 18:30:58-07:00 kraxel@bytesex.org +4 -0 # v4l: video-buf magic numbers # # drivers/media/video/video-buf.c # 2004/06/20 18:30:58-07:00 kraxel@bytesex.org +26 -6 # v4l: video-buf magic numbers # # ChangeSet # 2004/06/20 18:55:02-07:00 kraxel@bytesex.org # [PATCH] v4l: update video-buf for per-frame input switching. # # This patch updates the video-buf module to support the per-frame input # switching added by the v4l2 API patch. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/media/video-buf.h # 2004/06/20 18:30:58-07:00 kraxel@bytesex.org +5 -1 # v4l: update video-buf for per-frame input switching. # # drivers/media/video/video-buf.c # 2004/06/20 18:30:58-07:00 kraxel@bytesex.org +14 -0 # v4l: update video-buf for per-frame input switching. # # ChangeSet # 2004/06/20 18:54:51-07:00 kraxel@bytesex.org # [PATCH] v4l: v4l2 API updates # # This patch has some minor updates to v4l2 API: # # * A new pixel format (V4L2_PIX_FMT_SBGGR8). # # * Adds some #defines for tv norms for convenience. # # * Allow to specify the video source to capture from on a per-frame basis. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/videodev2.h # 2004/06/20 18:23:40-07:00 kraxel@bytesex.org +12 -5 # v4l: v4l2 API updates # # ChangeSet # 2004/06/20 18:54:40-07:00 axboe@suse.de # [PATCH] iommu max segment size # # This patch is from James, I've changed it slightly only. # # The problem is that some IOMMU implementations have a maximum limit to the # size of the number of contiguously mappable pages (admittedly, this limit # is mostly in the resource management algorithms rather than the IOMMUs # themselves). # # This patch adds this concept to the bio layer via the parameter # # BIO_VMERGE_MAX_SIZE # # which architectures can define in asm/io.h (if undefined, we assume it to # be infinite, which is current behaviour). # # While adding this, I noticed several places where bio was making incorrect # assumptions about virtual mergeability (none of which was a bug: bio was # overestimating rather than underestimating). # # - The worst offender was bio_add_page(), which seemed never to check for # virtual mergeability # # - I also fixed blk_hw_contig_segments() not to check the QUEUE_CLUSTER # flag, and not to check the phys segment boundary. # # In order to track the hw segment size across bios, I had to introduce two # extra bio parameters: bi_hw_front_size and bi_hw_back_size which store the # sizes of the front and back hw contiguous segments (and which will be equal # if there's only one hw segment). When the bio is merged into a request, # these fields are updated with the total hw contig size so they can always # be used to assess if the merger would violate the BIO_VMERGE_MAX_SIZE # parameter. # # Signed-Off-By: Jens Axboe # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/bio.h # 2004/06/20 18:23:40-07:00 axboe@suse.de +18 -0 # iommu max segment size # # fs/bio.c # 2004/06/20 18:23:40-07:00 axboe@suse.de +11 -3 # iommu max segment size # # drivers/block/ll_rw_blk.c # 2004/06/20 18:23:40-07:00 axboe@suse.de +80 -24 # iommu max segment size # # ChangeSet # 2004/06/20 18:54:29-07:00 dcn@sgi.com # [PATCH] add wait_event_interruptible_exclusive() macro # # This patch defines a macro that does exactly what # wait_event_interruptible() does except that it adds the current task to the # wait queue as an exclusive task (i.e., sets the WQ_FLAG_EXCLUSIVE flag) # rather than as a non-exclusive task as wait_event_interruptible() does. # # This allows one to do a wake_up_nr() to wake up a specific number of tasks. # I'm in the process of submitting a patch to linux-ia64 that requires this # capability. (Its subject line is "[PATCH 3/4] SGI Altix cross partition # functionality".) # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/wait.h # 2004/06/20 18:23:40-07:00 dcn@sgi.com +30 -1 # add wait_event_interruptible_exclusive() macro # # ChangeSet # 2004/06/20 18:54:18-07:00 mika@osdl.org # [PATCH] Uninline machine_specific_memory_setup() # # Cleanup arch/i386/kernel/setup.c a little bit by: # # * un-inlining machine_specific_memory_setup() (it's implementations are # pretty big to be inlined anyway) # # * remove setup_memory_region() by moving the code inside setup_arch() # # I would also recommend BK-renaming all four files # (include/asm-i386/*/setup_arch_post.h) to ".c" and moving them into # arch/i386/*/, but that obviously is not needed in anyway. But IMHO they # are clearly ".c" files, not ".h" files. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-i386/mach-voyager/setup_arch_post.h # 2004/06/20 18:23:40-07:00 mika@osdl.org +1 -1 # Uninline machine_specific_memory_setup() # # include/asm-i386/mach-visws/setup_arch_post.h # 2004/06/20 18:23:40-07:00 mika@osdl.org +1 -1 # Uninline machine_specific_memory_setup() # # include/asm-i386/mach-default/setup_arch_post.h # 2004/06/20 18:23:40-07:00 mika@osdl.org +1 -1 # Uninline machine_specific_memory_setup() # # arch/i386/kernel/setup.c # 2004/06/20 18:23:40-07:00 mika@osdl.org +6 -12 # Uninline machine_specific_memory_setup() # # ChangeSet # 2004/06/20 18:54:07-07:00 mark@alpha.dyndns.org # [PATCH] Add ovcamchip driver # # This patch adds a new driver for the OmniVision OV6xx0 and OV7xx0 series of # CMOS image sensors. It is currently used by the w9968cf USB webcam driver, # which is already in mainline 2.6. Up until now it had to be compiled # outside the kernel tree, which is clearly suboptimal. # # It is also used by version 2 of the ov511 USB webcam driver, which will be # merged in the near future. That will reduce some code duplication, since # the existing ov511 has much of this code built-in. # # This was previously submitted to Linux-USB-Devel, and I have fixed the # concerns that came up at that time. # # Developer's Certificate of Origin 1.0 # # By making a contribution to this project, I certify that: # # (a) The contribution was created in whole or in part by me and I # have the right to submit it under the open source license # indicated in the file; or # # (b) The contribution is based upon previous work that, to the best # of my knowledge, is covered under an appropriate open source # license and I have the right under that license to submit that # work with modifications, whether created in whole or in part # by me, under the same open source license (unless I am # by me, under the same open source license (unless I am # permitted to submit under a different license), as indicated # in the file; or # # (c) The contribution was provided directly to me by some other # person who certified (a), (b) or (c) and I have not modified # it. # # Signed-off-by: Mark McClelland # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/media/ovcamchip.h # 2004/06/20 18:23:40-07:00 mark@alpha.dyndns.org +104 -0 # Add ovcamchip driver # # drivers/media/video/ovcamchip/ovcamchip_priv.h # 2004/06/20 18:23:40-07:00 mark@alpha.dyndns.org +87 -0 # Add ovcamchip driver # # drivers/media/video/ovcamchip/ovcamchip_core.c # 2004/06/20 18:23:40-07:00 mark@alpha.dyndns.org +446 -0 # Add ovcamchip driver # # drivers/media/video/ovcamchip/ov7x20.c # 2004/06/20 18:23:40-07:00 mark@alpha.dyndns.org +455 -0 # Add ovcamchip driver # # drivers/media/video/ovcamchip/ov7x10.c # 2004/06/20 18:23:40-07:00 mark@alpha.dyndns.org +335 -0 # Add ovcamchip driver # # drivers/media/video/ovcamchip/ov76be.c # 2004/06/20 18:23:40-07:00 mark@alpha.dyndns.org +303 -0 # Add ovcamchip driver # # drivers/media/video/ovcamchip/ov6x30.c # 2004/06/20 18:23:40-07:00 mark@alpha.dyndns.org +374 -0 # Add ovcamchip driver # # drivers/media/video/ovcamchip/ov6x20.c # 2004/06/20 18:23:40-07:00 mark@alpha.dyndns.org +415 -0 # Add ovcamchip driver # # drivers/media/video/ovcamchip/Makefile # 2004/06/20 18:23:40-07:00 mark@alpha.dyndns.org +4 -0 # Add ovcamchip driver # # include/media/ovcamchip.h # 2004/06/20 18:23:40-07:00 mark@alpha.dyndns.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/media/ovcamchip.h # # drivers/media/video/ovcamchip/ovcamchip_priv.h # 2004/06/20 18:23:40-07:00 mark@alpha.dyndns.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/media/video/ovcamchip/ovcamchip_priv.h # # drivers/media/video/ovcamchip/ovcamchip_core.c # 2004/06/20 18:23:40-07:00 mark@alpha.dyndns.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/media/video/ovcamchip/ovcamchip_core.c # # drivers/media/video/ovcamchip/ov7x20.c # 2004/06/20 18:23:40-07:00 mark@alpha.dyndns.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/media/video/ovcamchip/ov7x20.c # # drivers/media/video/ovcamchip/ov7x10.c # 2004/06/20 18:23:40-07:00 mark@alpha.dyndns.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/media/video/ovcamchip/ov7x10.c # # drivers/media/video/ovcamchip/ov76be.c # 2004/06/20 18:23:40-07:00 mark@alpha.dyndns.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/media/video/ovcamchip/ov76be.c # # drivers/media/video/ovcamchip/ov6x30.c # 2004/06/20 18:23:40-07:00 mark@alpha.dyndns.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/media/video/ovcamchip/ov6x30.c # # drivers/media/video/ovcamchip/ov6x20.c # 2004/06/20 18:23:40-07:00 mark@alpha.dyndns.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/media/video/ovcamchip/ov6x20.c # # drivers/media/video/ovcamchip/Makefile # 2004/06/20 18:23:40-07:00 mark@alpha.dyndns.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/media/video/ovcamchip/Makefile # # drivers/media/video/Makefile # 2004/06/20 18:23:40-07:00 mark@alpha.dyndns.org +1 -0 # Add ovcamchip driver # # drivers/media/video/Kconfig # 2004/06/20 18:23:40-07:00 mark@alpha.dyndns.org +11 -0 # Add ovcamchip driver # # ChangeSet # 2004/06/20 18:53:55-07:00 akpm@osdl.org # [PATCH] swapoff: activate pages # # People like to use swapoff/swapon as a way of restoring their VM to a # predictable "preconditional" state. # # Problem is, swapoff leaves mapped anon/pagecache pages on the inactive list, # so they immediately get swapped out again when swapspace becomes available. # # Let's move these pages onto the active list to the VM has to again decide # whether to swap them out. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/swapfile.c # 2004/06/20 18:21:45-07:00 akpm@osdl.org +7 -0 # swapoff: activate pages # # ChangeSet # 2004/06/20 18:53:44-07:00 shaggy@austin.ibm.com # [PATCH] jfs build fix # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/jfs/jfs_dtree.c # 2004/06/20 18:21:45-07:00 shaggy@austin.ibm.com +2 -1 # jfs build fix # # ChangeSet # 2004/06/20 18:53:33-07:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] airo.c broke # # But Al fixed it again. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/net/wireless/airo.c # 2004/06/20 18:21:44-07:00 viro@parcelfarce.linux.theplanet.co.uk +2 -0 # airo.c broke # # ChangeSet # 2004/06/20 18:53:22-07:00 paulkf@microgate.com # [PATCH] ppp_synctty.c receive/write_wakeup fix # # Allow receive and write_wakeup callbacks to be called at hard interrupt # context and/or with interrupts disabled (removes softirq warning). # # This mirrors changes by Paul Mackerras to ppp_async.c for the same purpose. # Patch has been previously posted for comments and has been tested with # success by multiple persons. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/net/ppp_synctty.c # 2004/06/20 18:20:58-07:00 paulkf@microgate.com +92 -69 # ppp_synctty.c receive/write_wakeup fix # # ChangeSet # 2004/06/20 18:53:11-07:00 cesarb@nitnet.com.br # [PATCH] O_NOATIME support # # This patch adds support for the O_NOATIME open flag (GNU extension): # # int O_NOATIME Macro # If this bit is set, read will not update the access time of the file. # See File Times. This is used by programs that do backups, so that # backing a file up does not count as reading it. Only the owner of the # file or the superuser may use this bit. # # It is useful if you want to do something with the file atime (for instance, # moving files that have not been accessed in a while to somewhere else, or # something like Debian's popularity-contest) but you also want to read all # files periodically (for instance, tripwire or debsums). # # Currently, the program that reads all files periodically has to use utimes, # which can race with the atime update: # # A B # open # fstat # read # open # read # close # close # utimes # # And the file still has the old atime, instead of the new one from when B # did the read from it. This problem does not happen if A uses O_NOATIME # instead of utimes to preserve the atime. # # This patch adds the O_NOATIME constant for all architectures, but it would # also be possible to add it one architecture at a time by defining it to 0 # when not defined in asm-*. # # Based on patch by Marek Michalkiewicz at # http://www.uwsg.iu.edu/hypermail/linux/kernel/9811.2/0118.html # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/fs.h # 2004/06/20 18:20:57-07:00 cesarb@nitnet.com.br +2 -1 # O_NOATIME support # # include/asm-x86_64/fcntl.h # 2004/06/20 18:20:57-07:00 cesarb@nitnet.com.br +1 -0 # O_NOATIME support # # include/asm-v850/fcntl.h # 2004/06/20 18:20:57-07:00 cesarb@nitnet.com.br +1 -0 # O_NOATIME support # # include/asm-sparc64/fcntl.h # 2004/06/20 18:20:57-07:00 cesarb@nitnet.com.br +1 -0 # O_NOATIME support # # include/asm-sparc/fcntl.h # 2004/06/20 18:20:57-07:00 cesarb@nitnet.com.br +1 -0 # O_NOATIME support # # include/asm-sh/fcntl.h # 2004/06/20 18:20:57-07:00 cesarb@nitnet.com.br +1 -0 # O_NOATIME support # # include/asm-s390/fcntl.h # 2004/06/20 18:20:57-07:00 cesarb@nitnet.com.br +1 -0 # O_NOATIME support # # include/asm-ppc64/fcntl.h # 2004/06/20 18:20:57-07:00 cesarb@nitnet.com.br +1 -0 # O_NOATIME support # # include/asm-ppc/fcntl.h # 2004/06/20 18:20:57-07:00 cesarb@nitnet.com.br +1 -0 # O_NOATIME support # # include/asm-parisc/fcntl.h # 2004/06/20 18:20:57-07:00 cesarb@nitnet.com.br +1 -0 # O_NOATIME support # # include/asm-mips/fcntl.h # 2004/06/20 18:20:57-07:00 cesarb@nitnet.com.br +1 -0 # O_NOATIME support # # include/asm-m68k/fcntl.h # 2004/06/20 18:20:57-07:00 cesarb@nitnet.com.br +1 -0 # O_NOATIME support # # include/asm-ia64/fcntl.h # 2004/06/20 18:20:57-07:00 cesarb@nitnet.com.br +1 -0 # O_NOATIME support # # include/asm-i386/fcntl.h # 2004/06/20 18:20:57-07:00 cesarb@nitnet.com.br +1 -0 # O_NOATIME support # # include/asm-h8300/fcntl.h # 2004/06/20 18:20:57-07:00 cesarb@nitnet.com.br +1 -0 # O_NOATIME support # # include/asm-cris/fcntl.h # 2004/06/20 18:20:57-07:00 cesarb@nitnet.com.br +1 -0 # O_NOATIME support # # include/asm-arm26/fcntl.h # 2004/06/20 18:20:57-07:00 cesarb@nitnet.com.br +1 -0 # O_NOATIME support # # include/asm-arm/fcntl.h # 2004/06/20 18:20:57-07:00 cesarb@nitnet.com.br +1 -0 # O_NOATIME support # # include/asm-alpha/fcntl.h # 2004/06/20 18:20:57-07:00 cesarb@nitnet.com.br +1 -0 # O_NOATIME support # # fs/namei.c # 2004/06/20 18:20:57-07:00 cesarb@nitnet.com.br +5 -0 # O_NOATIME support # # fs/fcntl.c # 2004/06/20 18:20:57-07:00 cesarb@nitnet.com.br +6 -1 # O_NOATIME support # # ChangeSet # 2004/06/20 18:52:59-07:00 dhowells@redhat.com # [PATCH] Permit inode & dentry hash tables to be allocated > MAX_ORDER size # # Here's a patch to allocate memory for big system hash tables with the # bootmem allocator rather than with main page allocator. # # It is needed for three reasons: # # (1) So that the size can be bigger than MAX_ORDER. IBM have done some # testing on their big PPC64 systems (64GB of RAM) with linux-2.4 and found # that they get better performance if the sizes of the inode cache hash, # dentry cache hash, buffer head hash and page cache hash are increased # beyond MAX_ORDER (order 11). # # Now the main allocator can't allocate anything larger than MAX_ORDER, but # the bootmem allocator can. # # In 2.6 it appears that only the inode and dentry hashes remain of those # four, but there are other hash tables that could use this service. # # (2) Changing MAX_ORDER appears to have a number of effects beyond just # limiting the maximum size that can be allocated in one go. # # (3) Should someone want a hash table in which each bucket isn't a power of # two in size, memory will be wasted as the chunk of memory allocated will # be a power of two in size (to hold a power of two number of buckets). # # On the other hand, using the bootmem allocator means the allocation # will only take up sufficient pages to hold it, rather than the next power # of two up. # # Admittedly, this point doesn't apply to the dentry and inode hashes, # but it might to another hash table that might want to use this service. # # # I've coelesced the meat of the inode and dentry allocation routines into # one such routine in mm/page_alloc.c that the the respective initialisation # functions now call before mem_init() is called. # # This routine gets it's approximation of memory size by counting up the # ZONE_NORMAL and ZONE_DMA pages (and ZONE_HIGHMEM if requested) in all the # nodes passed to the main allocator by paging_init() (or wherever the arch # does it). It does not use max_low_pfn as that doesn't seem to be available # on all archs, and it doesn't use num_physpages since that includes highmem # pages not available to the kernel for allocating data structures upon - # which may not be appropriate when calculating hash table size. # # On the off chance that the size of each hash bucket may not be exactly a # power of two, the routine will only allocate as many pages as is necessary # to ensure that the number of buckets is exactly a power of two, rather than # allocating the smallest power-of-two sized chunk of memory that will hold # the same array of buckets. # # The maximum size of any single hash table is given by # MAX_SYS_HASH_TABLE_ORDER, as is now defined in linux/mmzone.h. # # Signed-off-by: Paul Mackerras # Signed-off-by: David Howells # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/page_alloc.c # 2004/06/20 18:20:10-07:00 dhowells@redhat.com +73 -0 # Permit inode & dentry hash tables to be allocated > MAX_ORDER size # # init/main.c # 2004/06/20 18:19:55-07:00 dhowells@redhat.com +1 -0 # Permit inode & dentry hash tables to be allocated > MAX_ORDER size # # include/linux/mmzone.h # 2004/06/20 18:19:55-07:00 dhowells@redhat.com +12 -0 # Permit inode & dentry hash tables to be allocated > MAX_ORDER size # # include/linux/kernel.h # 2004/06/20 18:20:10-07:00 dhowells@redhat.com +9 -0 # Permit inode & dentry hash tables to be allocated > MAX_ORDER size # # include/linux/fs.h # 2004/06/20 18:31:00-07:00 dhowells@redhat.com +7 -4 # Permit inode & dentry hash tables to be allocated > MAX_ORDER size # # include/linux/bootmem.h # 2004/06/20 18:19:55-07:00 dhowells@redhat.com +8 -0 # Permit inode & dentry hash tables to be allocated > MAX_ORDER size # # fs/inode.c # 2004/06/20 18:20:10-07:00 dhowells@redhat.com +18 -42 # Permit inode & dentry hash tables to be allocated > MAX_ORDER size # # fs/dcache.c # 2004/06/20 18:20:10-07:00 dhowells@redhat.com +24 -44 # Permit inode & dentry hash tables to be allocated > MAX_ORDER size # # ChangeSet # 2004/06/20 18:52:48-07:00 daniel.ritz@gmx.ch # [PATCH] pcmcia: enable read prefetch on o2micro bridges to fix HDSP # # enable read prefetching on O2micro bridges. It fixes the problems # seen with the RME Hammerfall DSP. # Thanks to Eric Still from O2micro for the input. # # Cc: Russell King # Signed-off-by: Daniel Ritz # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/pcmcia/yenta_socket.c # 2004/06/20 18:19:18-07:00 daniel.ritz@gmx.ch +9 -1 # pcmcia: enable read prefetch on o2micro bridges to fix HDSP # # drivers/pcmcia/o2micro.h # 2004/06/20 18:19:18-07:00 daniel.ritz@gmx.ch +26 -0 # pcmcia: enable read prefetch on o2micro bridges to fix HDSP # # drivers/pcmcia/i82365.c # 2004/06/20 18:19:18-07:00 daniel.ritz@gmx.ch +0 -1 # pcmcia: enable read prefetch on o2micro bridges to fix HDSP # # ChangeSet # 2004/06/20 18:52:36-07:00 pazke@donpac.ru # [PATCH] use new DMI API for HP Pavilion # # Example code for the new DMI APU - port HP Pavilion irq workaround to new # DMI probing. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/pci/visws.c # 2004/06/20 18:17:56-07:00 pazke@donpac.ru +0 -2 # use new DMI API for HP Pavilion # # arch/i386/pci/irq.c # 2004/06/20 18:19:08-07:00 pazke@donpac.ru +31 -1 # use new DMI API for HP Pavilion # # arch/i386/kernel/dmi_scan.c # 2004/06/20 18:18:45-07:00 pazke@donpac.ru +0 -25 # use new DMI API for HP Pavilion # # ChangeSet # 2004/06/20 18:52:25-07:00 pazke@donpac.ru # [PATCH] export DMI check functions # # This patch creates and exports 2 functions which can be used by the rest of # kernel code to perform DMI data checks: # # - dmi_check_system() function checks system DMI data against given blacklist # table and on each match runs corresponding callback function; # # - dmi_get_system_info() function returns DMI data value. Useful for people # wanting more complex DMI data check than simple string match. # # Also filling unused match entries with NO_MATCH made optional, but existing # NO_MATCH occurences are left intact, so people are free to continue dmi_scan.c # patching without massive reject problems. # # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/dmi.h # 2004/06/20 18:17:49-07:00 pazke@donpac.ru +47 -0 # export DMI check functions # # include/linux/dmi.h # 2004/06/20 18:17:49-07:00 pazke@donpac.ru +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/linux/dmi.h # # arch/i386/kernel/dmi_scan.c # 2004/06/20 18:31:01-07:00 pazke@donpac.ru +55 -56 # export DMI check functions # # ChangeSet # 2004/06/20 18:52:14-07:00 akpm@osdl.org # [PATCH] ppc64: eeh.h warning-fix # # In file included from include/asm/io.h:365, # from drivers/video/kyro/STG4000Reg.h:23, # from drivers/video/kyro/STG4000Ramdac.c:16: # include/asm/eeh.h:58: warning: `struct device_node' declared inside parameter list # include/asm/eeh.h:58: warning: its scope is only this definition or declaration, which is probably not what you want # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ppc64/eeh.h # 2004/06/20 18:15:35-07:00 akpm@osdl.org +1 -0 # ppc64: eeh.h warning-fix # # ChangeSet # 2004/06/20 18:52:03-07:00 akpm@osdl.org # [PATCH] ppc64 CONFIG_ALTIVEC=n build fix # # With CONFIG_ALTIVEC=n, flush_altivec_to_thread() has no implementation. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ppc64/system.h # 2004/06/20 18:15:35-07:00 akpm@osdl.org +9 -1 # ppc64 CONFIG_ALTIVEC=n build fix # # ChangeSet # 2004/06/20 18:27:13-07:00 dsaxena@omelas.(none) # Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk # into omelas.(none):/home/dsaxena/src/linux-2.6-for-rmk # # BitKeeper/deleted/.del-core.c~9e662b6895b788f2 # 2004/06/20 18:27:07-07:00 dsaxena@omelas.(none) +0 -0 # Auto merged # # BitKeeper/deleted/.del-core.c~714a718aec4a2c30 # 2004/06/20 18:27:07-07:00 dsaxena@omelas.(none) +0 -0 # Auto merged # # arch/arm/kernel/entry-armv.S # 2004/06/20 18:27:07-07:00 dsaxena@omelas.(none) +0 -0 # Auto merged # # arch/arm/common/Makefile # 2004/06/20 18:27:07-07:00 dsaxena@omelas.(none) +0 -0 # Auto merged # # arch/arm/Makefile # 2004/06/20 18:27:07-07:00 dsaxena@omelas.(none) +0 -0 # Auto merged # # arch/arm/Kconfig # 2004/06/20 18:27:07-07:00 dsaxena@omelas.(none) +0 -0 # Auto merged # # BitKeeper/deleted/.del-time.h~e839fe4bcd9e4cf9 # 2004/06/20 18:27:07-07:00 dsaxena@omelas.(none) +0 -0 # Auto merged # # BitKeeper/deleted/.del-time.h~730e38fa47912a2c # 2004/06/20 18:27:07-07:00 dsaxena@omelas.(none) +0 -0 # Auto merged # # BitKeeper/deleted/.del-core.c~9e662b6895b788f2 # 2004/06/20 18:27:07-07:00 dsaxena@omelas.(none) +0 -0 # Merge rename: arch/arm/mach-ftvpci/core.c -> BitKeeper/deleted/.del-core.c~9e662b6895b788f2 # # BitKeeper/deleted/.del-core.c~714a718aec4a2c30 # 2004/06/20 18:27:07-07:00 dsaxena@omelas.(none) +0 -0 # Merge rename: arch/arm/mach-tbox/core.c -> BitKeeper/deleted/.del-core.c~714a718aec4a2c30 # # ChangeSet # 2004/06/20 17:40:34-07:00 akpm@osdl.org # [SPARC64]: bug.h needs compiler.h # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # include/asm-sparc64/bug.h # 2004/06/20 17:40:08-07:00 akpm@osdl.org +2 -0 # [SPARC64]: bug.h needs compiler.h # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/20 17:36:21-07:00 akepner@sgi.com # [NET]: Lockless loopback patch (version 2). # # net/sched/sch_generic.c # 2004/06/20 17:35:53-07:00 akepner@sgi.com +29 -14 # [NET]: Lockless loopback patch (version 2). # # net/sched/sch_api.c # 2004/06/20 17:35:53-07:00 akepner@sgi.com +3 -0 # [NET]: Lockless loopback patch (version 2). # # include/net/pkt_sched.h # 2004/06/20 17:35:52-07:00 akepner@sgi.com +2 -0 # [NET]: Lockless loopback patch (version 2). # # include/linux/netdevice.h # 2004/06/20 17:35:52-07:00 akepner@sgi.com +1 -0 # [NET]: Lockless loopback patch (version 2). # # drivers/net/loopback.c # 2004/06/20 17:35:52-07:00 akepner@sgi.com +33 -8 # [NET]: Lockless loopback patch (version 2). # # ChangeSet # 2004/06/20 17:06:07-07:00 davem@nuts.davemloft.net # Merge bk://kernel.bkbits.net/acme/net-2.6 # into nuts.davemloft.net:/disk1/BK/net-2.6 # # net/ipv4/tcp.c # 2004/06/20 17:05:59-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # ChangeSet # 2004/06/20 20:54:15-03:00 acme@conectiva.com.br # [NET] move tcp_memory_free to sk_stream_memory_free # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp.c # 2004/06/20 20:54:04-03:00 acme@conectiva.com.br +5 -10 # [NET] move tcp_memory_free to sk_stream_memory_free # # Signed-off-by: Arnaldo Carvalho de Melo # # include/net/sock.h # 2004/06/20 20:54:04-03:00 acme@conectiva.com.br +5 -0 # [NET] move tcp_memory_free to sk_stream_memory_free # # Signed-off-by: Arnaldo Carvalho de Melo # # ChangeSet # 2004/06/20 16:38:03-07:00 davem@nuts.davemloft.net # Merge bk://kernel.bkbits.net/acme/net-2.6-1.1768 # into nuts.davemloft.net:/disk1/BK/acme-2.6 # # net/ipv6/udp.c # 2004/06/20 16:37:54-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv6/tcp_ipv6.c # 2004/06/20 16:37:54-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv6/raw.c # 2004/06/20 16:37:54-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv6/ndisc.c # 2004/06/20 16:37:54-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv6/mcast.c # 2004/06/20 16:37:53-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/tcp.c # 2004/06/20 16:37:53-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # net/ipv4/netfilter/ip_conntrack_core.c # 2004/06/20 16:37:53-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # include/linux/skbuff.h # 2004/06/20 16:37:53-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # ChangeSet # 2004/06/20 19:45:03-03:00 acme@conectiva.com.br # [NET] move skb_can_coalesce to skbuff.h # # This one also removes the duplicate can_coalesce in tcp.c and makes it # use skb_can_coalesce. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp.c # 2004/06/20 19:44:45-03:00 acme@conectiva.com.br +2 -13 # [NET] move skb_can_coalesce to skbuff.h # # This one also removes the duplicate can_coalesce in tcp.c and makes it # use skb_can_coalesce. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/ip_output.c # 2004/06/20 19:44:45-03:00 acme@conectiva.com.br +0 -11 # [NET] move skb_can_coalesce to skbuff.h # # This one also removes the duplicate can_coalesce in tcp.c and makes it # use skb_can_coalesce. # # Signed-off-by: Arnaldo Carvalho de Melo # # include/linux/skbuff.h # 2004/06/20 19:44:45-03:00 acme@conectiva.com.br +12 -0 # [NET] move skb_can_coalesce to skbuff.h # # This one also removes the duplicate can_coalesce in tcp.c and makes it # use skb_can_coalesce. # # Signed-off-by: Arnaldo Carvalho de Melo # # ChangeSet # 2004/06/20 14:18:46-07:00 hadi@zynx.com # [NET]: Fix module refcounting of TC actions. # # net/sched/sch_prio.c # 2004/06/20 14:18:14-07:00 hadi@zynx.com +2 -1 # [NET]: Fix module refcounting of TC actions. # # net/sched/police.c # 2004/06/20 14:18:14-07:00 hadi@zynx.com +15 -12 # [NET]: Fix module refcounting of TC actions. # # net/sched/cls_u32.c # 2004/06/20 14:18:14-07:00 hadi@zynx.com +12 -13 # [NET]: Fix module refcounting of TC actions. # # net/sched/act_api.c # 2004/06/20 14:18:14-07:00 hadi@zynx.com +54 -16 # [NET]: Fix module refcounting of TC actions. # # net/sched/Kconfig # 2004/06/20 14:18:14-07:00 hadi@zynx.com +8 -4 # [NET]: Fix module refcounting of TC actions. # # include/net/pkt_sched.h # 2004/06/20 14:18:14-07:00 hadi@zynx.com +10 -5 # [NET]: Fix module refcounting of TC actions. # # include/net/pkt_act.h # 2004/06/20 14:18:14-07:00 hadi@zynx.com +7 -7 # [NET]: Fix module refcounting of TC actions. # # include/linux/pkt_sched.h # 2004/06/20 14:18:14-07:00 hadi@zynx.com +6 -0 # [NET]: Fix module refcounting of TC actions. # # include/linux/pkt_cls.h # 2004/06/20 14:18:14-07:00 hadi@zynx.com +19 -8 # [NET]: Fix module refcounting of TC actions. # # ChangeSet # 2004/06/20 22:01:26+01:00 rmk@flint.arm.linux.org.uk # [PCMCIA] 05-nonbusy # # When allocating memory and IO resources, do not mark them busy. # This allows drivers themselves to claim and mark the regions busy, # as they are supposed to. # # drivers/pcmcia/rsrc_mgr.c # 2004/06/20 21:56:51+01:00 rmk@flint.arm.linux.org.uk +3 -3 # Don't mark PCMCIA resources busy. # # ChangeSet # 2004/06/20 21:53:25+01:00 rmk@flint.arm.linux.org.uk # [PCMCIA] 04-memres # # Make find_mem_region() return a struct resource. We preserve # pccard_mem_map's sys_start and sys_stop elements for the moment # since socket drivers are relying on this information for setting # up their windows. # # include/pcmcia/ss.h # 2004/06/20 21:51:20+01:00 rmk@flint.arm.linux.org.uk +1 -0 # Convert find_mem_region to return a struct resource. # # drivers/pcmcia/yenta_socket.c # 2004/06/20 21:51:20+01:00 rmk@flint.arm.linux.org.uk +2 -2 # Convert find_mem_region to return a struct resource. # # drivers/pcmcia/tcic.c # 2004/06/20 21:51:19+01:00 rmk@flint.arm.linux.org.uk +2 -2 # Convert find_mem_region to return a struct resource. # # drivers/pcmcia/rsrc_mgr.c # 2004/06/20 21:51:19+01:00 rmk@flint.arm.linux.org.uk +10 -8 # Convert find_mem_region to return a struct resource. # # drivers/pcmcia/pd6729.c # 2004/06/20 21:51:19+01:00 rmk@flint.arm.linux.org.uk +2 -2 # Convert find_mem_region to return a struct resource. # # drivers/pcmcia/i82365.c # 2004/06/20 21:51:19+01:00 rmk@flint.arm.linux.org.uk +2 -2 # Convert find_mem_region to return a struct resource. # # drivers/pcmcia/i82092.c # 2004/06/20 21:51:18+01:00 rmk@flint.arm.linux.org.uk +2 -2 # Convert find_mem_region to return a struct resource. # # drivers/pcmcia/cs_internal.h # 2004/06/20 21:51:18+01:00 rmk@flint.arm.linux.org.uk +1 -1 # Convert find_mem_region to return a struct resource. # # drivers/pcmcia/cs.c # 2004/06/20 21:51:18+01:00 rmk@flint.arm.linux.org.uk +19 -11 # Convert find_mem_region to return a struct resource. # # drivers/pcmcia/cistpl.c # 2004/06/20 21:51:18+01:00 rmk@flint.arm.linux.org.uk +13 -11 # Convert find_mem_region to return a struct resource. # # ChangeSet # 2004/06/20 12:32:43-07:00 davem@nuts.davemloft.net # [SPARC64]: Check _TIF_SYSCALL_SUCCESS before syscall return value. # # We might have to clear the flag, and if we do not # then subsequent syscalls can get confused. # # Bug easily triggered by suspending emacs in a pty # and then resuming, select() returns due to a pending # signal but because _TIF_SYSCALL_SUCCESS is erroneously # set by a previous syscall -514 ends up slipping into # userspace. Oops. # # arch/sparc64/kernel/entry.S # 2004/06/20 12:32:28-07:00 davem@nuts.davemloft.net +18 -16 # [SPARC64]: Check _TIF_SYSCALL_SUCCESS before syscall return value. # # We might have to clear the flag, and if we do not # then subsequent syscalls can get confused. # # Bug easily triggered by suspending emacs in a pty # and then resuming, select() returns due to a pending # signal but because _TIF_SYSCALL_SUCCESS is erroneously # set by a previous syscall -514 ends up slipping into # userspace. Oops. # # ChangeSet # 2004/06/20 10:39:30-07:00 geert@linux-m68k.org # [PATCH] m68k: I/O abstraction updates # # M68k I/O abstraction updates: # - Make I/O ports and addresses `unsigned long' # - Add casts to make operations warning-compatible with other archs # - Add {in,out}[wl]_p() and {in,out}l(), which are needed for some drivers # # Signed-off-by: Geert Uytterhoeven # Signed-off-by: Linus Torvalds # # include/asm-m68k/io.h # 2004/04/12 04:56:00-07:00 geert@linux-m68k.org +32 -14 # m68k: I/O abstraction updates # # ChangeSet # 2004/06/20 10:39:19-07:00 geert@linux-m68k.org # [PATCH] m68k: atomic op fixups # # M68k: Add missing atomic operations (from Roman Zippel and me) and replace # `__inline__' by `inline' while we're at it. # # Signed-off-by: Geert Uytterhoeven # Signed-off-by: Linus Torvalds # # include/asm-m68k/atomic.h # 2004/06/20 02:09:03-07:00 geert@linux-m68k.org +91 -7 # m68k: atomic op fixups # # ChangeSet # 2004/06/20 10:39:08-07:00 geert@linux-m68k.org # [PATCH] m68k: Mac IOP fix # # Mac IOP: Fix copy-and-paste bug (found by OPERA, reported by Zhenmin Li, # confirmed by Brad Boyer) # # Signed-off-by: Geert Uytterhoeven # Signed-off-by: Linus Torvalds # # arch/m68k/mac/iop.c # 2004/05/26 05:49:09-07:00 geert@linux-m68k.org +1 -1 # m68k: Mac IOP fix # # ChangeSet # 2004/06/20 10:38:57-07:00 geert@linux-m68k.org # [PATCH] m68k: sparse infrastructure # # M68k: Make sparse work # # Signed-off-by: Geert Uytterhoeven # Signed-off-by: Linus Torvalds # # arch/m68k/Makefile # 2004/06/20 01:49:05-07:00 geert@linux-m68k.org +2 -0 # m68k: sparse infrastructure # # ChangeSet # 2004/06/20 10:38:46-07:00 geert@linux-m68k.org # [PATCH] m68k: Mac Sonic Ethernet # # Mac Sonic Ethernet: Kill duplicate `MODULE_LICENSE("GPL");' (already defined in # included sonic.c) which causes a compile failure # # Signed-off-by: Geert Uytterhoeven # Signed-off-by: Linus Torvalds # # drivers/net/macsonic.c # 2004/05/04 13:42:38-07:00 geert@linux-m68k.org +0 -1 # m68k: Mac Sonic Ethernet # # ChangeSet # 2004/06/20 10:38:35-07:00 geert@linux-m68k.org # [PATCH] affs remount fixes # # AFFS: Fix oops on write after remount (from Roman Zippel): # - Allocate/free bitmap as necessary # - Remove last uses of SF_READONLY # # Signed-off-by: Geert Uytterhoeven # Signed-off-by: Linus Torvalds # # include/linux/affs_fs_sb.h # 2004/06/18 02:18:33-07:00 geert@linux-m68k.org +0 -1 # affs remount fixes # # include/linux/affs_fs.h # 2004/06/18 02:18:33-07:00 geert@linux-m68k.org +2 -1 # affs remount fixes # # fs/affs/super.c # 2004/06/18 02:17:49-07:00 geert@linux-m68k.org +12 -14 # affs remount fixes # # fs/affs/bitmap.c # 2004/06/18 02:17:49-07:00 geert@linux-m68k.org +21 -8 # affs remount fixes # # fs/affs/amigaffs.c # 2004/06/18 02:17:49-07:00 geert@linux-m68k.org +0 -1 # affs remount fixes # # ChangeSet # 2004/06/20 10:38:24-07:00 geert@linux-m68k.org # [PATCH] m68k: use set_page_count() # # M68k: From 2.6.7-rc1 on, it's no longer allowed to access page->count directly # # Signed-off-by: Geert Uytterhoeven # Signed-off-by: Linus Torvalds # # arch/m68k/mm/memory.c # 2004/05/24 06:55:41-07:00 geert@linux-m68k.org +1 -1 # m68k: use set_page_count() # # ChangeSet # 2004/06/20 10:38:13-07:00 geert@linux-m68k.org # [PATCH] m68k: bus error handling # # M68k: Allow to catch a bus error via the exception mechanism (from Roman # Zippel) # # Signed-off-by: Geert Uytterhoeven # Signed-off-by: Linus Torvalds # # arch/m68k/kernel/traps.c # 2004/05/23 01:55:54-07:00 geert@linux-m68k.org +4 -3 # m68k: bus error handling # # ChangeSet # 2004/06/20 10:38:02-07:00 geert@linux-m68k.org # [PATCH] m68k: new gcc optimizations # # M68k compiler updates from Roman Zippel: # - Fix various lvalue warnings from newer gcc # - Remove unnecessary volatile declarations # - Change some constraints from "a" to "m" to generate slightly better code # - Use "o" constraint for bitfield instructions # - Use generic bitmap functions for some of the ext2/minix bitmap functions # # Signed-off-by: Geert Uytterhoeven # Signed-off-by: Linus Torvalds # # include/asm-m68k/string.h # 2004/05/23 01:56:37-07:00 geert@linux-m68k.org +8 -9 # m68k: new gcc optimizations # # include/asm-m68k/page.h # 2004/05/23 01:56:37-07:00 geert@linux-m68k.org +8 -10 # m68k: new gcc optimizations # # include/asm-m68k/bitops.h # 2004/05/23 10:50:20-07:00 geert@linux-m68k.org +54 -103 # m68k: new gcc optimizations # # include/asm-m68k/atomic.h # 2004/05/23 01:56:37-07:00 geert@linux-m68k.org +16 -12 # m68k: new gcc optimizations # # ChangeSet # 2004/06/20 10:37:51-07:00 geert@linux-m68k.org # [PATCH] m68k: handle new gcc's # # M68k: Fixes for when compiling with modern gcc (from Roman Zippel): # - Avoid warning 'use of memory input without lvalue in asm operand 0 is # deprecated' of newer gcc # - Replace some '%/' with offical '%%' to escape a '%' # # Signed-off-by: Geert Uytterhoeven # Signed-off-by: Linus Torvalds # # include/asm-m68k/ucontext.h # 2004/05/23 01:56:37-07:00 geert@linux-m68k.org +2 -4 # m68k: handle new gcc's # # arch/m68k/kernel/signal.c # 2004/05/23 01:55:54-07:00 geert@linux-m68k.org +17 -17 # m68k: handle new gcc's # # ChangeSet # 2004/06/20 10:37:41-07:00 geert@linux-m68k.org # [PATCH] m68k: IFPSP060 update # # IFPSP060: Make sure that the destination address of a misaligned cas access is # properly mapped in, so the kernel won't oops in the emulation handler (from # Roman Zippel). # # Signed-off-by: Geert Uytterhoeven # Signed-off-by: Linus Torvalds # # arch/m68k/ifpsp060/iskeleton.S # 2004/05/23 01:55:54-07:00 geert@linux-m68k.org +47 -5 # m68k: IFPSP060 update # # ChangeSet # 2004/06/20 09:59:33-07:00 hirofumi@mail.parknet.co.jp # [PATCH] FAT: don't use "utf8" charset and NLS_DEFAULT # # Recently, some distributors have set "utf8" to NLS_DEFAULT, therefore, # FAT uses the "iocharset=utf8" as default. But, since "iocharset=utf8" # doesn't provide the function (lower <-> upper conversion) which FAT # needs, so FAT can't provide suitable behavior. # # This patch does: # # - doesn't recognize "utf8" as "iocharset" # - doesn't use NLS_DEFAULT as default "iocharset" # - instead of NLS_DEFAULT, adds FAT_DEFAULT_CODEPAGE and # FAT_DEFAULT_IOCHARSET # # NOTE: the following looks like buggy, so it's not recommended # # "codepage=437,iocharset=iso8859-1,utf8" # # however, some utf8 file name can handle. (in this case, it uses the # table of iso8859-1 for lower <-> upper conversion) # # # Sign-off-by: Jesse Barnes # Sign-off-by: OGAWA Hirofumi # Sign-off-by: Linus Torvalds # # fs/fat/inode.c # 2004/06/19 11:30:39-07:00 hirofumi@mail.parknet.co.jp +46 -42 # FAT: don't use "utf8" charset and NLS_DEFAULT # # fs/Kconfig # 2004/06/19 11:30:39-07:00 hirofumi@mail.parknet.co.jp +19 -0 # FAT: don't use "utf8" charset and NLS_DEFAULT # # ChangeSet # 2004/06/20 09:56:58-07:00 torvalds@ppc970.osdl.org # Follow 2.4.x semantics for in-kernel signal sending. # # kernel/signal.c # 2004/06/20 09:56:52-07:00 torvalds@ppc970.osdl.org +7 -0 # Follow 2.4.x semantics for in-kernel signal sending. # # ChangeSet # 2004/06/20 09:33:28-07:00 arjanv@redhat.com # [PATCH] fix amd64 boot breakage # # This fixes a bug that prevent my amd64 box from booting; # numa_default_policy was __init however it's called like this in # init/main.c: # # free_initmem(); # unlock_kernel(); # system_state = SYSTEM_RUNNING; # numa_default_policy(); # # # eg after free_initmem(). This resulted in it being reused/freed and that # gives a nasty oops. # # mm/mempolicy.c # 2004/06/20 02:29:33-07:00 arjanv@redhat.com +1 -1 # fix amd64 boot breakage # # ChangeSet # 2004/06/20 09:24:27-05:00 jejb@mulgrave.(none) # Make ncr53c8xx respect clustering # # From: Joel Soete # # This patch makes the ncr driver capable of accepting segments which # are larger than the block size. It has been tested against IOMMU # merging on parisc. # # Signed-off-by: James Bottomley # # drivers/scsi/ncr53c8xx.h # 2004/06/20 09:23:48-05:00 jejb@mulgrave.(none) +12 -0 # Make ncr53c8xx respect clustering # # drivers/scsi/ncr53c8xx.c # 2004/06/20 09:23:48-05:00 jejb@mulgrave.(none) +44 -31 # Make ncr53c8xx respect clustering # # ChangeSet # 2004/06/20 09:19:22-05:00 jejb@mulgrave.(none) # ncr53c8xx updates # # From: Matthew Wilcox # # - remove all of the PCI chips (8xx series) leaving only 720 # - pull out stand alone initialisation code (driver becomes a chip only # driver for NCR Q720 and Zalon) # - remove most vestiges of PCI support (chip driver should be bus neutral) # - tidy up typedefs # - remove simulated intfly (may need putting back for 770) # # Signed-off-by: James Bottomley # # drivers/scsi/zalon.c # 2004/06/20 09:18:41-05:00 jejb@mulgrave.(none) +13 -29 # ncr53c8xx updates # # drivers/scsi/sym53c8xx_defs.h # 2004/06/20 09:18:41-05:00 jejb@mulgrave.(none) +141 -569 # ncr53c8xx updates # # drivers/scsi/sym53c8xx_comm.h # 2004/06/20 09:18:41-05:00 jejb@mulgrave.(none) +0 -703 # ncr53c8xx updates # # drivers/scsi/ncr53c8xx.h # 2004/06/20 09:18:41-05:00 jejb@mulgrave.(none) +8 -33 # ncr53c8xx updates # # drivers/scsi/ncr53c8xx.c # 2004/06/20 09:18:41-05:00 jejb@mulgrave.(none) +536 -835 # ncr53c8xx updates # # drivers/scsi/NCR_Q720.c # 2004/06/20 09:18:41-05:00 jejb@mulgrave.(none) +2 -4 # ncr53c8xx updates # # drivers/scsi/Makefile # 2004/06/20 09:18:41-05:00 jejb@mulgrave.(none) +2 -7 # ncr53c8xx updates # # ChangeSet # 2004/06/20 08:58:32-05:00 hch@lst.de # [PATCH] switch scsi core and sd to headers # # Signed-off-by: James Bottomley # # drivers/scsi/sd.c # 2004/06/19 09:38:40-05:00 hch@lst.de +11 -9 # switch scsi core and sd to headers # # drivers/scsi/scsicam.c # 2004/06/19 09:45:02-05:00 hch@lst.de +2 -3 # switch scsi core and sd to headers # # drivers/scsi/scsi_sysfs.c # 2004/06/19 09:50:30-05:00 hch@lst.de +2 -1 # switch scsi core and sd to headers # # drivers/scsi/scsi_syms.c # 2004/06/19 09:52:12-05:00 hch@lst.de +5 -14 # switch scsi core and sd to headers # # drivers/scsi/scsi_scan.c # 2004/06/19 09:49:19-05:00 hch@lst.de +3 -1 # switch scsi core and sd to headers # # drivers/scsi/scsi_proc.c # 2004/06/19 09:55:42-05:00 hch@lst.de +2 -1 # switch scsi core and sd to headers # # drivers/scsi/scsi_lib.c # 2004/06/19 09:40:25-05:00 hch@lst.de +8 -4 # switch scsi core and sd to headers # # drivers/scsi/scsi_ioctl.c # 2004/06/19 09:42:28-05:00 hch@lst.de +6 -8 # switch scsi core and sd to headers # # drivers/scsi/scsi_error.c # 2004/06/19 09:47:16-05:00 hch@lst.de +7 -3 # switch scsi core and sd to headers # # drivers/scsi/scsi_devinfo.c # 2004/06/19 09:48:22-05:00 hch@lst.de +3 -2 # switch scsi core and sd to headers # # drivers/scsi/scsi.c # 2004/06/19 09:38:34-05:00 hch@lst.de +10 -4 # switch scsi core and sd to headers # # drivers/scsi/hosts.c # 2004/06/19 09:35:38-05:00 hch@lst.de +1 -3 # switch scsi core and sd to headers # # drivers/scsi/constants.c # 2004/06/19 09:43:56-05:00 hch@lst.de +6 -3 # switch scsi core and sd to headers # # ChangeSet # 2004/06/20 08:54:39-05:00 arjanv@redhat.com # [PATCH] final hosts.h usage removal # # the patch below finishes off the removal of the obsolete hosts.h usage, and # now that the users are gone, it's safe to turn on the warning to # prevent accidental future use... Please apply # # Signed-off-by: James Bottomley # # drivers/usb/image/microtek.c # 2004/06/19 10:25:20-05:00 arjanv@redhat.com +1 -1 # final hosts.h usage removal # # drivers/usb/image/hpusbscsi.c # 2004/06/19 10:25:04-05:00 arjanv@redhat.com +1 -1 # final hosts.h usage removal # # drivers/scsi/pcmcia/nsp_cs.c # 2004/06/19 10:26:24-05:00 arjanv@redhat.com +1 -1 # final hosts.h usage removal # # drivers/scsi/hosts.h # 2004/06/19 19:00:00-05:00 arjanv@redhat.com +1 -1 # final hosts.h usage removal # # drivers/scsi/gdth.c # 2004/06/19 10:26:00-05:00 arjanv@redhat.com +1 -1 # final hosts.h usage removal # # drivers/scsi/arm/powertec.c # 2004/06/19 10:53:32-05:00 arjanv@redhat.com +1 -1 # final hosts.h usage removal # # drivers/scsi/arm/oak.c # 2004/06/19 10:53:31-05:00 arjanv@redhat.com +1 -1 # final hosts.h usage removal # # drivers/scsi/arm/fas216.c # 2004/06/19 10:53:28-05:00 arjanv@redhat.com +1 -1 # final hosts.h usage removal # # drivers/scsi/arm/eesox.c # 2004/06/19 10:53:26-05:00 arjanv@redhat.com +1 -1 # final hosts.h usage removal # # drivers/scsi/arm/ecoscsi.c # 2004/06/19 10:53:25-05:00 arjanv@redhat.com +1 -1 # final hosts.h usage removal # # drivers/scsi/arm/cumana_2.c # 2004/06/19 10:53:24-05:00 arjanv@redhat.com +1 -1 # final hosts.h usage removal # # drivers/scsi/arm/cumana_1.c # 2004/06/19 10:53:23-05:00 arjanv@redhat.com +1 -1 # final hosts.h usage removal # # drivers/scsi/arm/arxescsi.c # 2004/06/19 10:53:22-05:00 arjanv@redhat.com +1 -1 # final hosts.h usage removal # # drivers/scsi/arm/acornscsi.c # 2004/06/19 10:53:20-05:00 arjanv@redhat.com +1 -1 # final hosts.h usage removal # # drivers/scsi/aha152x.c # 2004/06/19 10:25:38-05:00 arjanv@redhat.com +1 -1 # final hosts.h usage removal # # drivers/net/fc/iph5526.c # 2004/06/19 10:54:02-05:00 arjanv@redhat.com +1 -1 # final hosts.h usage removal # # drivers/message/fusion/mptctl.c # 2004/06/19 10:24:45-05:00 arjanv@redhat.com +1 -1 # final hosts.h usage removal # # drivers/ieee1394/sbp2.c # 2004/06/19 10:24:29-05:00 arjanv@redhat.com +1 -1 # final hosts.h usage removal # # drivers/fc4/fc.c # 2004/06/19 10:53:00-05:00 arjanv@redhat.com +1 -1 # final hosts.h usage removal # # drivers/block/cciss_scsi.c # 2004/06/19 10:24:11-05:00 arjanv@redhat.com +1 -1 # final hosts.h usage removal # # ChangeSet # 2004/06/20 07:00:13-05:00 stevef@steveft21.ltcsamba # Do not kill cifsd thread until last smb session on tcp session is # SMBulogged off. Fixes umounting bug (pointed out by Nick Millington) # when multiple mounts with different userids are mounted to the same # server from the client. # # Signed-off-by: Steve French (sfrench@us.ibm.com) # # fs/cifs/connect.c # 2004/06/20 06:59:52-05:00 stevef@steveft21.ltcsamba +18 -10 # Do not kill cifsd thread until last smb session on tcp session is # SMBulogged off. # # fs/cifs/cifssmb.c # 2004/06/20 06:59:51-05:00 stevef@steveft21.ltcsamba +1 -0 # return unique error, when last smb session on a tcp session is logged off. # # fs/cifs/CHANGES # 2004/06/20 06:59:51-05:00 stevef@steveft21.ltcsamba +3 -0 # update cifs change log # # fs/cifs/AUTHORS # 2004/06/20 06:59:51-05:00 stevef@steveft21.ltcsamba +1 -1 # update list of contributors of bug reports # # ChangeSet # 2004/06/20 03:03:06-03:00 acme@toy.kerneljanitors.org # [NET] generalise tcp_add_data, skb_split and tcp_copy_to_page # # Signed-off-by: Arnaldo Carvalho de Melo # # include/net/ip6_checksum.h # 2004/06/20 03:02:54-03:00 acme@toy.kerneljanitors.org +94 -0 # # net/ipv6/udp.c # 2004/06/20 03:02:54-03:00 acme@toy.kerneljanitors.org +1 -1 # [NET] generalise tcp_add_data, skb_split and tcp_copy_to_page # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv6/tcp_ipv6.c # 2004/06/20 03:02:54-03:00 acme@toy.kerneljanitors.org +1 -0 # [NET] generalise tcp_add_data, skb_split and tcp_copy_to_page # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv6/raw.c # 2004/06/20 03:02:54-03:00 acme@toy.kerneljanitors.org +2 -0 # [NET] generalise tcp_add_data, skb_split and tcp_copy_to_page # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv6/ndisc.c # 2004/06/20 03:02:54-03:00 acme@toy.kerneljanitors.org +1 -1 # [NET] generalise tcp_add_data, skb_split and tcp_copy_to_page # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv6/mcast.c # 2004/06/20 03:02:54-03:00 acme@toy.kerneljanitors.org +1 -1 # [NET] generalise tcp_add_data, skb_split and tcp_copy_to_page # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv6/icmp.c # 2004/06/20 03:02:54-03:00 acme@toy.kerneljanitors.org +1 -1 # [NET] generalise tcp_add_data, skb_split and tcp_copy_to_page # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp_output.c # 2004/06/20 03:02:54-03:00 acme@toy.kerneljanitors.org +0 -64 # [NET] generalise tcp_add_data, skb_split and tcp_copy_to_page # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp.c # 2004/06/20 03:02:54-03:00 acme@toy.kerneljanitors.org +1 -48 # [NET] generalise tcp_add_data, skb_split and tcp_copy_to_page # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/netfilter/ipt_MASQUERADE.c # 2004/06/20 03:02:54-03:00 acme@toy.kerneljanitors.org +1 -0 # [NET] generalise tcp_add_data, skb_split and tcp_copy_to_page # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/netfilter/ip_nat_standalone.c # 2004/06/20 03:02:54-03:00 acme@toy.kerneljanitors.org +1 -0 # [NET] generalise tcp_add_data, skb_split and tcp_copy_to_page # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/netfilter/ip_fw_compat_redir.c # 2004/06/20 03:02:54-03:00 acme@toy.kerneljanitors.org +1 -0 # [NET] generalise tcp_add_data, skb_split and tcp_copy_to_page # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/netfilter/ip_conntrack_standalone.c # 2004/06/20 03:02:54-03:00 acme@toy.kerneljanitors.org +1 -0 # [NET] generalise tcp_add_data, skb_split and tcp_copy_to_page # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/netfilter/ip_conntrack_core.c # 2004/06/20 03:02:54-03:00 acme@toy.kerneljanitors.org +1 -0 # [NET] generalise tcp_add_data, skb_split and tcp_copy_to_page # # Signed-off-by: Arnaldo Carvalho de Melo # # net/core/skbuff.c # 2004/06/20 03:02:54-03:00 acme@toy.kerneljanitors.org +76 -0 # [NET] generalise tcp_add_data, skb_split and tcp_copy_to_page # # Signed-off-by: Arnaldo Carvalho de Melo # # include/net/tcp.h # 2004/06/20 03:02:54-03:00 acme@toy.kerneljanitors.org +1 -0 # [NET] generalise tcp_add_data, skb_split and tcp_copy_to_page # # Signed-off-by: Arnaldo Carvalho de Melo # # include/net/sock.h # 2004/06/20 03:02:54-03:00 acme@toy.kerneljanitors.org +24 -0 # [NET] generalise tcp_add_data, skb_split and tcp_copy_to_page # # Signed-off-by: Arnaldo Carvalho de Melo # # include/net/ip6_checksum.h # 2004/06/20 03:02:54-03:00 acme@toy.kerneljanitors.org +0 -0 # BitKeeper file /home/acme/bk/net-2.6/include/net/ip6_checksum.h # # include/net/ip.h # 2004/06/20 03:02:54-03:00 acme@toy.kerneljanitors.org +1 -1 # [NET] generalise tcp_add_data, skb_split and tcp_copy_to_page # # Signed-off-by: Arnaldo Carvalho de Melo # # include/net/checksum.h # 2004/06/20 03:02:54-03:00 acme@toy.kerneljanitors.org +1 -69 # [NET] generalise tcp_add_data, skb_split and tcp_copy_to_page # # Signed-off-by: Arnaldo Carvalho de Melo # # include/linux/skbuff.h # 2004/06/20 03:02:54-03:00 acme@toy.kerneljanitors.org +24 -0 # [NET] generalise tcp_add_data, skb_split and tcp_copy_to_page # # Signed-off-by: Arnaldo Carvalho de Melo # # include/linux/errqueue.h # 2004/06/20 03:02:54-03:00 acme@toy.kerneljanitors.org +4 -0 # [NET] generalise tcp_add_data, skb_split and tcp_copy_to_page # # Signed-off-by: Arnaldo Carvalho de Melo # # ChangeSet # 2004/06/19 21:20:36-07:00 akpm@osdl.org # [NET]: Fix warning in farsync WAN driver. # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # drivers/net/wan/farsync.c # 2004/06/19 21:20:21-07:00 akpm@osdl.org +1 -1 # [NET]: Fix warning in farsync WAN driver. # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/19 16:47:14-07:00 yoshfuji@linux-ipv6.org # [ECONET]: Fix some warnings. # # net/econet/af_econet.c # 2004/06/19 16:46:52-07:00 yoshfuji@linux-ipv6.org +10 -4 # [ECONET]: Fix some warnings. # # ChangeSet # 2004/06/19 17:45:27-04:00 ralf@linux-mips.org # [PATCH] hdlcdrv needs to stop queueing # # We better stop the queue in the close call. # # Signed-off-by: Ralf Baechle # # drivers/net/hamradio/hdlcdrv.c # 2004/05/10 10:13:02-04:00 ralf@linux-mips.org +2 -0 # hdlcdrv needs to stop queueing # # ChangeSet # 2004/06/19 17:45:19-04:00 ralf@linux-mips.org # [PATCH] Cosmetic cleanups to sb1250-mac.c # # Signed-off-by: Ralf Baechle # # drivers/net/sb1250-mac.c # 2004/06/09 08:33:56-04:00 ralf@linux-mips.org +2 -2 # Cosmetic cleanups to sb1250-mac.c # # ChangeSet # 2004/06/19 17:45:10-04:00 ralf@linux-mips.org # [PATCH] Reformat # # Pure microcosmetic. # # Signed-off-by: Ralf Baechle # # drivers/net/tc35815.c # 2004/04/21 20:35:51-04:00 ralf@linux-mips.org +1 -1 # Reformat # # ChangeSet # 2004/06/19 17:45:01-04:00 ralf@linux-mips.org # [PATCH] Use netdev_priv in sgiseeq # # The combined allocation of of receive and transmit rings and driver data # so far made the use of netdev_priv impossible. Split the allocation # and use netdev_priv to access the non-ring driver_private data. # # Signed-off-by: Ralf Baechle # # drivers/net/sgiseeq.c # 2004/05/10 10:13:02-04:00 ralf@linux-mips.org +75 -70 # Use netdev_priv in sgiseeq # # ChangeSet # 2004/06/19 17:41:19-04:00 arjanv@redhat.com # [PATCH] sk98lin pci id # # drivers/net/sk98lin/h/skdrv2nd.h # 2004/06/18 20:00:00-04:00 arjanv@redhat.com +2 -1 # sk98lin pci id # # ChangeSet # 2004/06/19 17:36:14-04:00 ryan@michonline.com # [PATCH] orinoco.c rate limit lost information frame message # # Rate limit a (apparently) harmless warning in orinoco.c # # (My laptop remained connected with active X applications running over # ssh while this message was hitting every second, since I patched my # driver to include this the problem hasn't recurred.) # # Signed-Off-By: Ryan Anderson # # drivers/net/wireless/orinoco.c # 2004/06/13 17:20:20-04:00 ryan@michonline.com +2 -1 # orinoco.c rate limit lost information frame message # # ChangeSet # 2004/06/19 17:12:57-04:00 brazilnut@us.ibm.com # [PATCH] pcnet32: cleanup IRQ limitation. # # Cleanup pcnet32 IRQ handling based on suggestions from Ralf Baechle # , and Brian Murphy # # Tested by myself and Brian Murphy. # # Please also apply to 2.4.27-pre6. # # Signed-off-by: Don Fry # # drivers/net/pcnet32.c # 2004/06/17 09:14:53-04:00 brazilnut@us.ibm.com +12 -14 # pcnet32: cleanup IRQ limitation. # # ChangeSet # 2004/06/19 17:12:48-04:00 brazilnut@us.ibm.com # [PATCH] pcnet32: recover after rx hang. # # This patch fixes a receive hang that occasionally occurs after a Tx # FIFO underrun. The receive dma remains in a hung state sometimes. The # transmit operations continue to occur, but no receive activity. # # This was reproduced on several ppc64 systems and the fix has been verified # there. The patch has been tested as well on an ia32 system, which did # not experience the hang because it did not have fifo underruns, which is # a preqrequisite for the hang. The memory barriers decreased the frequency # of occurrence. The final change to reset the chip instead of just stopping # it eliminated the last hangs. # # Please also apply against 2.4.7 (with offset of -1), tested ia32. # # Signed-off by: brazilnut@us.ibm.com # # drivers/net/pcnet32.c # 2004/06/15 06:00:17-04:00 brazilnut@us.ibm.com +30 -10 # pcnet32: recover after rx hang. # # ChangeSet # 2004/06/19 17:12:39-04:00 brazilnut@us.ibm.com # [PATCH] pcnet32: discard oversize rx packets # # This patch will discard received frames that are larger than one buffer. # This has been tested on ia32 and ppc64 systems. # # Please also apply to 2.4.7 (with offset of -3), tested ia32. # # Signed-off by: brazilnut@us.ibm.com # # drivers/net/pcnet32.c # 2004/06/15 05:36:43-04:00 brazilnut@us.ibm.com +10 -3 # pcnet32: discard oversize rx packets # # ChangeSet # 2004/06/19 17:09:31-04:00 davem@redhat.com # [PATCH] hamachi DMA # # Let's get this thing not using bus_to_virt() anymore, # as follows. # # Signed-off-by: David S. Miller # # ===== drivers/net/hamachi.c 1.35 vs edited ===== # # drivers/net/hamachi.c # 2004/06/16 14:15:20-04:00 davem@redhat.com +1 -3 # hamachi DMA # # ChangeSet # 2004/06/19 17:08:21-04:00 fenlason@redhat.com # [PATCH] sunhme patch # # Without this patch, insmod-ing the sunhme module crashes on my fc2 # box. # # -- JF # # drivers/net/sunhme.c # 2004/06/16 20:29:23-04:00 fenlason@redhat.com +2 -1 # hme patch # # ChangeSet # 2004/06/19 17:07:34-04:00 jeb.j.cramer@intel.com # [PATCH] e1000 management reset fix # # * Resetting the adapter blew away management settings. So we save the # important bits before performing a reset. # # drivers/net/e1000/e1000_main.c # 2004/06/18 20:00:00-04:00 jeb.j.cramer@intel.com +9 -1 # e1000 management reset fix # # drivers/net/e1000/e1000_hw.h # 2004/06/18 20:00:00-04:00 jeb.j.cramer@intel.com +2 -0 # e1000 management reset fix # # drivers/net/e1000/e1000_hw.c # 2004/06/18 20:00:00-04:00 jeb.j.cramer@intel.com +35 -0 # e1000 management reset fix # # drivers/net/e1000/e1000.h # 2004/06/18 20:00:00-04:00 jeb.j.cramer@intel.com +1 -0 # e1000 management reset fix # # ChangeSet # 2004/06/19 17:07:25-04:00 shemminger@osdl.org # [PATCH] convert sk fddi driver to ANSI C # # Sparse does not handle K&R at all, and I think I saw Linus saying that # he has no intention of adding it to sparse while ago. So here is a blob # of patch to convert drivers/net/skfp/* from K&R to ANSI-C. Compile # tested with "make allmodconfig" on x86, as I obviously don't have the # HW. # # Mika # # Signed-off-by: Stephen Hemminger # # drivers/net/skfp/srf.c # 2004/06/17 17:49:49-04:00 shemminger@osdl.org +11 -23 # convert sk fddi driver to ANSI C # # drivers/net/skfp/smttimer.c # 2004/06/17 17:49:49-04:00 shemminger@osdl.org +9 -26 # convert sk fddi driver to ANSI C # # drivers/net/skfp/smtparse.c # 2004/06/17 17:49:49-04:00 shemminger@osdl.org +9 -17 # convert sk fddi driver to ANSI C # # drivers/net/skfp/smtinit.c # 2004/06/17 17:49:49-04:00 shemminger@osdl.org +5 -6 # convert sk fddi driver to ANSI C # # drivers/net/skfp/smtdef.c # 2004/06/17 17:49:49-04:00 shemminger@osdl.org +10 -21 # convert sk fddi driver to ANSI C # # drivers/net/skfp/smt.c # 2004/06/17 17:49:49-04:00 shemminger@osdl.org +142 -265 # convert sk fddi driver to ANSI C # # drivers/net/skfp/skfddi.c # 2004/06/17 17:49:49-04:00 shemminger@osdl.org +2 -15 # convert sk fddi driver to ANSI C # # drivers/net/skfp/rmt.c # 2004/06/17 17:49:49-04:00 shemminger@osdl.org +25 -45 # convert sk fddi driver to ANSI C # # drivers/net/skfp/queue.c # 2004/06/17 17:49:49-04:00 shemminger@osdl.org +6 -18 # convert sk fddi driver to ANSI C # # drivers/net/skfp/pmf.c # 2004/06/17 17:49:49-04:00 shemminger@osdl.org +24 -54 # convert sk fddi driver to ANSI C # # drivers/net/skfp/pcmplc.c # 2004/06/17 17:49:49-04:00 shemminger@osdl.org +47 -117 # convert sk fddi driver to ANSI C # # drivers/net/skfp/lnkstat.c # 2004/06/17 17:49:49-04:00 shemminger@osdl.org +5 -10 # convert sk fddi driver to ANSI C # # drivers/net/skfp/hwt.c # 2004/06/17 17:49:49-04:00 shemminger@osdl.org +9 -18 # convert sk fddi driver to ANSI C # # drivers/net/skfp/hwmtm.c # 2004/06/17 17:49:49-04:00 shemminger@osdl.org +99 -122 # convert sk fddi driver to ANSI C # # drivers/net/skfp/h/smtstate.h # 2004/06/17 17:49:49-04:00 shemminger@osdl.org +6 -0 # convert sk fddi driver to ANSI C # # drivers/net/skfp/h/cmtdef.h # 2004/06/17 17:49:49-04:00 shemminger@osdl.org +144 -178 # convert sk fddi driver to ANSI C # # drivers/net/skfp/fplustm.c # 2004/06/17 17:49:49-04:00 shemminger@osdl.org +61 -129 # convert sk fddi driver to ANSI C # # drivers/net/skfp/ess.c # 2004/06/17 17:49:49-04:00 shemminger@osdl.org +21 -41 # convert sk fddi driver to ANSI C # # drivers/net/skfp/ecm.c # 2004/06/17 17:49:49-04:00 shemminger@osdl.org +11 -22 # convert sk fddi driver to ANSI C # # drivers/net/skfp/drvfbi.c # 2004/06/17 17:49:49-04:00 shemminger@osdl.org +49 -132 # convert sk fddi driver to ANSI C # # drivers/net/skfp/cfm.c # 2004/06/17 17:49:49-04:00 shemminger@osdl.org +10 -25 # convert sk fddi driver to ANSI C # # ChangeSet # 2004/06/19 17:06:09-04:00 akpm@osdl.org # [PATCH] H8/300: smc9194 driver # # From: Yoshinori Sato # # - H8/300 target support # - fixed irq support # - high address (>0xffff) i/o fix # # Signed-off-by: Andrew Morton # # drivers/net/smc9194.c # 2004/06/18 01:19:59-04:00 akpm@osdl.org +65 -9 # H8/300: smc9194 driver # # ChangeSet # 2004/06/19 17:04:50-04:00 herbert@gondor.apana.org.au # [PATCH] Re: linux-2.6.7 Equalizer Load-balancer. eql.c. local non-privileged DoS # # Vitaly V. Bursov wrote: # > # > there are multiple vulns in drivers/net/eql.c # > # > if there is no such device, dev_get_by_name returns NULL and everything dies. # > Exploiting this is trivial. # # Thanks for the report. This patch should fix them. # # Signed-off-by: Herbert Xu # # Cheers, # -- # Visit Openswan at http://www.openswan.org/ # Email: Herbert Xu ~{PmV>HI~} # Home Page: http://gondor.apana.org.au/~herbert/ # PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt # -- # ===== drivers/net/eql.c 1.13 vs edited ===== # # drivers/net/eql.c # 2004/06/18 07:30:49-04:00 herbert@gondor.apana.org.au +4 -0 # Re: linux-2.6.7 Equalizer Load-balancer. eql.c. local non-privileged DoS # # ChangeSet # 2004/06/19 17:00:28-04:00 achirica@telefonica.net # [wireless airo] Clean initialization of Mini-PCI cards even from suspend # # drivers/net/wireless/airo.c # 2004/06/18 16:56:26-04:00 achirica@telefonica.net +28 -12 # Clean initialization of Mini-PCI cards even from suspend # # ChangeSet # 2004/06/19 21:26:48+01:00 rmk@flint.arm.linux.org.uk # [PCMCIA] 03-memwin # # Eliminate win->base and win->size elements from window_t. # window_t contains struct pccard_mem_map, which contains a # copy of these (sys_start, sys_stop) in a slightly different # form. # # include/pcmcia/ss.h # 2004/06/19 21:24:14+01:00 rmk@flint.arm.linux.org.uk +0 -2 # Eliminate win->base and win->size elements from window_t. # # drivers/pcmcia/cs.c # 2004/06/19 21:24:13+01:00 rmk@flint.arm.linux.org.uk +4 -6 # Eliminate win->base and win->size elements from window_t. # # ChangeSet # 2004/06/19 21:17:11+01:00 rmk@flint.arm.linux.org.uk # [PCMCIA] 02-validatemem # # Move validate_mem() so we don't recurse. We call this function from # the DS_GET_FIRST_TUPLE and DS_VALIDATE_CIS calls, which are the the # first two functions which may be called by cardmgr or cardctl which # require CIS access. # # drivers/pcmcia/rsrc_mgr.c # 2004/06/19 21:14:36+01:00 rmk@flint.arm.linux.org.uk +15 -6 # Create pcmcia_validate_mem() which only validates memory when the # module parameters allow, and a card has been inserted. # # drivers/pcmcia/ds.c # 2004/06/19 21:14:35+01:00 rmk@flint.arm.linux.org.uk +2 -0 # Add pcmcia_validate_mem() to DS_GET_FIRST_TUPLE and DS_VALIDATE_CIS. # # drivers/pcmcia/cs_internal.h # 2004/06/19 21:14:35+01:00 rmk@flint.arm.linux.org.uk +1 -1 # New function pcmcia_validate_mem() replaces validate_mem() # # drivers/pcmcia/cistpl.c # 2004/06/19 21:14:35+01:00 rmk@flint.arm.linux.org.uk +0 -1 # Remove validate_mem() to prevent recursion. # # ChangeSet # 2004/06/19 12:48:23-07:00 davem@nuts.davemloft.net # [IPV6]: Export necessary xfrm6_tunnel functions. # # net/ipv6/xfrm6_tunnel.c # 2004/06/19 12:48:05-07:00 davem@nuts.davemloft.net +11 -0 # [IPV6]: Export necessary xfrm6_tunnel functions. # # ChangeSet # 2004/06/19 11:55:24-07:00 yoshfuji@linux-ipv6.org # [NET]: Fix some userland header bustage. # # include/linux/netfilter_ipv6/ip6_tables.h # 2004/06/19 11:55:10-07:00 yoshfuji@linux-ipv6.org +3 -0 # [NET]: Fix some userland header bustage. # # include/linux/netfilter_ipv4/ip_tables.h # 2004/06/19 11:55:10-07:00 yoshfuji@linux-ipv6.org +2 -1 # [NET]: Fix some userland header bustage. # # include/linux/netfilter_arp/arp_tables.h # 2004/06/19 11:55:10-07:00 yoshfuji@linux-ipv6.org +1 -1 # [NET]: Fix some userland header bustage. # # include/linux/netfilter.h # 2004/06/19 11:55:10-07:00 yoshfuji@linux-ipv6.org +1 -0 # [NET]: Fix some userland header bustage. # # ChangeSet # 2004/06/19 11:36:58-07:00 akpm@osdl.org # [NET]: Fix econet build bustage. # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # net/econet/af_econet.c # 2004/06/19 11:36:43-07:00 akpm@osdl.org +2 -2 # [NET]: Fix econet build bustage. # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/19 18:20:47+01:00 dwmw2@dwmw2.baythorne.internal # Merge # # include/asm-ppc/ppcboot.h # 2004/06/19 18:20:42+01:00 dwmw2@dwmw2.baythorne.internal +1 -2 # SCCS merged # # arch/ppc/Kconfig # 2004/06/19 18:20:06+01:00 dwmw2@dwmw2.baythorne.internal +3 -5 # SCCS merged # # include/linux/serial_core.h # 2004/06/19 18:17:05+01:00 dwmw2@dwmw2.baythorne.internal +0 -0 # Auto merged # # drivers/serial/Makefile # 2004/06/19 18:17:05+01:00 dwmw2@dwmw2.baythorne.internal +0 -0 # Auto merged # # drivers/serial/Kconfig # 2004/06/19 18:17:05+01:00 dwmw2@dwmw2.baythorne.internal +0 -0 # Auto merged # # arch/ppc/syslib/Makefile # 2004/06/19 18:17:05+01:00 dwmw2@dwmw2.baythorne.internal +0 -0 # Auto merged # # arch/ppc/Makefile # 2004/06/19 18:17:05+01:00 dwmw2@dwmw2.baythorne.internal +0 -0 # Auto merged # # ChangeSet # 2004/06/19 18:12:59+01:00 rmk@flint.arm.linux.org.uk # [PCMCIA] Add Cirrus PD6729 PCMCIA bridge support. # # Patch from Komuro, cleaned up by Russell King. # # drivers/pcmcia/pd6729.h # 2004/06/19 18:10:40+01:00 rmk@flint.arm.linux.org.uk +28 -0 # # drivers/pcmcia/pd6729.h # 2004/06/19 18:10:40+01:00 rmk@flint.arm.linux.org.uk +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-pcmcia/drivers/pcmcia/pd6729.h # # drivers/pcmcia/pd6729.c # 2004/06/19 18:10:25+01:00 rmk@flint.arm.linux.org.uk +732 -0 # # drivers/pcmcia/pd6729.c # 2004/06/19 18:10:25+01:00 rmk@flint.arm.linux.org.uk +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-pcmcia/drivers/pcmcia/pd6729.c # # drivers/pcmcia/Makefile # 2004/06/19 18:10:25+01:00 rmk@flint.arm.linux.org.uk +1 -0 # Add Cirrus PD6729 support. # # drivers/pcmcia/Kconfig # 2004/06/19 18:10:24+01:00 rmk@flint.arm.linux.org.uk +7 -0 # Add Cirrus PD6729 support. # # ChangeSet # 2004/06/19 07:50:55-07:00 mikulas@artax.karlin.mff.cuni.cz # [PATCH] HPFS fixes for 2.6.7 kernel # # This contains hpfs fixes from my source ported to 2.6.7 kernel: # # updates: # - allocator fragments files less # - OS/2 Warp Server filesystem can be mounted read/only # - added reschedule points so that it doesn't hog CPU # # bug fixes: # - filesystem error message when syncing or fsyncing deleted file (or when # system just writes it on its own) # - filesystem error on extremly fragmented files # - corrupted disk structures could possibly corrupt memory # # fs/hpfs/super.c # 2004/06/18 18:13:55-07:00 mikulas@artax.karlin.mff.cuni.cz +1 -0 # HPFS fixes for 2.6.7 kernel # # fs/hpfs/map.c # 2004/06/18 18:09:05-07:00 mikulas@artax.karlin.mff.cuni.cz +4 -2 # HPFS fixes for 2.6.7 kernel # # fs/hpfs/inode.c # 2004/06/18 18:13:20-07:00 mikulas@artax.karlin.mff.cuni.cz +9 -7 # HPFS fixes for 2.6.7 kernel # # fs/hpfs/hpfs_fn.h # 2004/06/18 18:01:00-07:00 mikulas@artax.karlin.mff.cuni.cz +3 -2 # HPFS fixes for 2.6.7 kernel # # fs/hpfs/hpfs.h # 2004/06/18 17:58:08-07:00 mikulas@artax.karlin.mff.cuni.cz +1 -1 # HPFS fixes for 2.6.7 kernel # # fs/hpfs/ea.c # 2004/06/18 17:57:50-07:00 mikulas@artax.karlin.mff.cuni.cz +3 -5 # HPFS fixes for 2.6.7 kernel # # fs/hpfs/buffer.c # 2004/06/18 17:55:53-07:00 mikulas@artax.karlin.mff.cuni.cz +8 -0 # HPFS fixes for 2.6.7 kernel # # fs/hpfs/anode.c # 2004/06/18 17:49:38-07:00 mikulas@artax.karlin.mff.cuni.cz +1 -2 # HPFS fixes for 2.6.7 kernel # # fs/hpfs/alloc.c # 2004/06/18 18:44:32-07:00 mikulas@artax.karlin.mff.cuni.cz +44 -26 # HPFS fixes for 2.6.7 kernel # # Documentation/filesystems/hpfs.txt # 2004/06/18 18:17:43-07:00 mikulas@artax.karlin.mff.cuni.cz +10 -2 # HPFS fixes for 2.6.7 kernel # # ChangeSet # 2004/06/19 07:50:44-07:00 akpm@osdl.org # [PATCH] mptctl.c build fix # # drivers/message/fusion/mptctl.c:89:24: asm/compat.h: No such file or directory # # Signed-off-by: Andrew Morton # # drivers/message/fusion/mptctl.c # 2004/06/19 00:22:47-07:00 akpm@osdl.org +1 -1 # mptctl.c build fix # # ChangeSet # 2004/06/19 07:49:02-07:00 torvalds@ppc970.osdl.org # Merge http://lia64.bkbits.net/to-linus-2.5 # into ppc970.osdl.org:/home/torvalds/v2.6/linux # # include/asm-ia64/pgtable.h # 2004/06/19 07:48:59-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # arch/ia64/kernel/iosapic.c # 2004/06/19 07:48:59-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # arch/ia64/ia32/ia32_entry.S # 2004/06/19 07:48:59-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # ChangeSet # 2004/06/18 21:52:08-07:00 yanmin.zhang@intel.com # [PATCH] ia64: fix free_huge_page() call in hugetlb_prefault() # # In base kernel 2.6.7, there is bug in function hugetlb_prefault(). The # call to free_huge_page() is incorrect and should be replaced with a call # to page_cache_release(). # # Signed-off-by: David Mosberger # # arch/ia64/mm/hugetlbpage.c # 2004/06/18 00:26:02-07:00 yanmin.zhang@intel.com +1 -1 # ia64: fix free_huge_page() call in hugetlb_prefault() # # ChangeSet # 2004/06/18 21:49:12-07:00 eranian@hpl.hp.com # [PATCH] ia64: perfmon stack consumption fix # # This patch moves the pfm_ovfl_arg_t structure from the kernel stack # into the pfm_context_t structure. This minimizes kernel stack space # consumption. # # Signed-off-by: Stephane Eranian # Signed-off-by: David Mosberger # # arch/ia64/kernel/perfmon.c # 2004/06/18 09:17:04-07:00 eranian@hpl.hp.com +20 -18 # ia64: perfmon stack consumption fix # # ChangeSet # 2004/06/18 21:45:35-07:00 ashok.raj@intel.com # [PATCH] ia64: move move_irq() from iosapic.c to irq.c # # This patch moves move_irq() from ioaspic.c to irq.c to make this common # for ia64 subarches. # # Signed-off-by: Ashok Raj # Signed-off-by: David Mosberger # # include/asm-ia64/irq.h # 2004/06/18 15:22:57-07:00 ashok.raj@intel.com +6 -0 # ia64: move move_irq() from iosapic.c to irq.c # # arch/ia64/kernel/irq.c # 2004/06/18 15:22:57-07:00 ashok.raj@intel.com +16 -0 # ia64: move move_irq() from iosapic.c to irq.c # # arch/ia64/kernel/iosapic.c # 2004/06/18 15:22:57-07:00 ashok.raj@intel.com +0 -16 # ia64: move move_irq() from iosapic.c to irq.c # # ChangeSet # 2004/06/18 21:42:42-07:00 arun.sharma@intel.com # [PATCH] ia64: fix ia32 partial-page map support for overlapping mmaps # # - Handle the overlapping mmaps in the MAP_FIXED case # - Handle unmaps correctly i.e. call __ia32_delete_pp_range() # - There are now three clear entry points into the pp manipulation code # - ia32_set_pp # - ia32_unset_pp # - ia32_compare_pp # - Rename internal functions to __ia32_*pp_* # - Grab mmap_sem just once at the main entry point # # Signed-off-by: Gordon Jin # Signed-off-by: Arun Sharma # Signed-off-by: David Mosberger # # arch/ia64/ia32/sys_ia32.c # 2004/06/18 04:55:20-07:00 arun.sharma@intel.com +184 -134 # ia64: fix ia32 partial-page map support for overlapping mmaps # # ChangeSet # 2004/06/18 23:02:41-05:00 stevef@smfhome1.smfdom # check better for free files on writepage retry # # Signed-off-by: Steve French (sfrench@us.ibm.com) # # fs/cifs/file.c # 2004/06/18 23:02:34-05:00 stevef@smfhome1.smfdom +21 -7 # check better for free files on writepage retry # # ChangeSet # 2004/06/18 22:01:37-05:00 stevef@smfhome1.smfdom # Do not send junk in bcc area of oplock break SMB Lock request, and always let oplock break release # through even if requests are ahead of it waiting for responses to complete. # # Signed-off-by: Steve French (sfrench@us.ibm.com) # # fs/cifs/transport.c # 2004/06/18 22:01:30-05:00 stevef@smfhome1.smfdom +20 -15 # do not count oplock breaks against in flight count # # fs/cifs/connect.c # 2004/06/18 22:01:30-05:00 stevef@smfhome1.smfdom +1 -1 # do not reset inFlight count on reconnection so it does not go negative # # fs/cifs/cifssmb.c # 2004/06/18 22:01:30-05:00 stevef@smfhome1.smfdom +14 -8 # Do not send junk in bcc area of oplock break SMB Lock request # # fs/cifs/CHANGES # 2004/06/18 22:01:30-05:00 stevef@smfhome1.smfdom +2 -1 # update cifs vfs change log for 1.19 # # ChangeSet # 2004/06/18 18:26:37-07:00 rddunlap@osdl.org # [PATCH] sparse: lib/string.c sparse fix # # A classic.. # # lib/string.c:165:19: warning: assignment expression in conditional # # From: Mika Kukkonen # Signed-off-by: Randy Dunlap # # lib/string.c # 2004/06/09 12:58:48-07:00 rddunlap@osdl.org +1 -1 # sparse: lib/string.c sparse fix # # ChangeSet # 2004/06/18 18:26:26-07:00 rddunlap@osdl.org # [PATCH] sparse: kernel/module.c sparse fix # # Add __user annotation for !CONFIG_MODULE_UNLOAD case. # # From: Mika Kukkonen # Signed-off-by: Randy Dunlap # # kernel/module.c # 2004/06/09 13:11:44-07:00 rddunlap@osdl.org +1 -1 # sparse: kernel/module.c sparse fix # # ChangeSet # 2004/06/18 18:50:56-05:00 brking@us.ibm.com # [PATCH] ipr bump version to 2.0.10 # # Signed-off-by: James Bottomley # # drivers/scsi/ipr.h # 2004/06/07 17:11:42-05:00 brking@us.ibm.com +2 -2 # ipr bump version to 2.0.10 # # ChangeSet # 2004/06/18 18:49:28-05:00 brking@us.ibm.com # [PATCH] ipr only tcq cancel all # # Some SCSI-IDE cdrom drives take up to 15 seconds to respond following # an abort being issued to them. This patch changes ipr to only send # a cancel all to a device as part of request sense processing when # the device is running tagged command queueing. # # Signed-off-by: James Bottomley # # drivers/scsi/ipr.c # 2004/06/07 17:11:05-05:00 brking@us.ibm.com +5 -0 # ipr only tcq cancel all # # ChangeSet # 2004/06/18 18:47:36-05:00 brking@us.ibm.com # [PATCH] ipr abort hang fix # # The following patch fixes a hang that occurs when an abort # is issued by the midlayer. The hang is the result of overriding # a field in the union of the ipr_cmd struct. It is fixed by moving # this pointer outside of the union, since it is not mutually exclusive # with the other fields in the union. # # Signed-off-by: James Bottomley # # drivers/scsi/ipr.h # 2004/06/07 11:21:15-05:00 brking@us.ibm.com +1 -1 # ipr abort hang fix # # drivers/scsi/ipr.c # 2004/06/07 11:21:15-05:00 brking@us.ibm.com +8 -7 # ipr abort hang fix # # ChangeSet # 2004/06/18 16:46:25-07:00 viro@www.linux.org.uk # [PATCH] sparse: drivers/video/sis annotation # # drivers/video/sis/sis_main.c # 2004/06/18 09:43:52-07:00 viro@www.linux.org.uk +16 -15 # sparse: drivers/video/sis annotation # # ChangeSet # 2004/06/18 16:37:47-07:00 viro@www.linux.org.uk # [PATCH] sparse: drivers/video/aty annotation # # drivers/video/aty/radeon_base.c # 2004/06/18 09:36:48-07:00 viro@www.linux.org.uk +4 -4 # sparse: drivers/video/aty annotation # # ChangeSet # 2004/06/18 16:35:56-07:00 torvalds@ppc970.osdl.org # Merge ppc970.osdl.org:/home/torvalds/v2.6/v2.6.7 # into ppc970.osdl.org:/home/torvalds/v2.6/linux # # include/linux/ipmi.h # 2004/06/18 16:35:53-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # include/linux/fb.h # 2004/06/18 16:35:53-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # fs/binfmt_aout.c # 2004/06/18 16:35:53-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # drivers/video/fbmem.c # 2004/06/18 16:35:53-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # drivers/char/ipmi/ipmi_watchdog.c # 2004/06/18 16:35:53-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # drivers/char/ipmi/ipmi_devintf.c # 2004/06/18 16:35:53-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # ChangeSet # 2004/06/18 16:35:04-07:00 viro@www.linux.org.uk # [PATCH] sparse: autofs annotation # # fs/autofs/root.c # 2004/06/18 11:14:07-07:00 viro@www.linux.org.uk +7 -6 # sparse: autofs annotation # # ChangeSet # 2004/06/18 16:34:54-07:00 viro@www.linux.org.uk # [PATCH] sparse: synclinkmp annotation # # drivers/char/synclinkmp.c # 2004/06/18 11:19:11-07:00 viro@www.linux.org.uk +22 -21 # sparse: synclinkmp annotation # # ChangeSet # 2004/06/18 16:34:45-07:00 viro@www.linux.org.uk # [PATCH] sparse: cyclades annotation # # drivers/char/cyclades.c # 2004/06/18 11:16:10-07:00 viro@www.linux.org.uk +29 -30 # sparse: cyclades annotation # # ChangeSet # 2004/06/18 16:34:35-07:00 viro@www.linux.org.uk # [PATCH] sparse: ipmi annotation # # include/linux/ipmi.h # 2004/06/18 11:18:12-07:00 viro@www.linux.org.uk +2 -2 # sparse: ipmi annotation # # drivers/char/ipmi/ipmi_watchdog.c # 2004/06/18 11:18:46-07:00 viro@www.linux.org.uk +10 -13 # sparse: ipmi annotation # # drivers/char/ipmi/ipmi_devintf.c # 2004/06/18 11:18:33-07:00 viro@www.linux.org.uk +14 -13 # sparse: ipmi annotation # # ChangeSet # 2004/06/18 16:34:24-07:00 viro@www.linux.org.uk # [PATCH] sparse: amd64 bits # # - added define of __x86_64__ to sparse arguments on amd64 # - switched amd64 uaccess.h to __chk_user_ptr() # # include/asm-x86_64/uaccess.h # 2004/06/18 11:15:18-07:00 viro@www.linux.org.uk +34 -44 # sparse: amd64 bits # # arch/x86_64/Makefile # 2004/06/18 11:15:02-07:00 viro@www.linux.org.uk +2 -0 # sparse: amd64 bits # # ChangeSet # 2004/06/18 16:34:14-07:00 viro@www.linux.org.uk # [PATCH] sparse: applicom annotation # # drivers/char/applicom.c # 2004/06/18 11:19:50-07:00 viro@www.linux.org.uk +10 -9 # sparse: applicom annotation # # ChangeSet # 2004/06/18 16:34:03-07:00 viro@www.linux.org.uk # [PATCH] sparse: udf cleanups # # removed bogus externs from declarations in fs/udf/* # # fs/udf/misc.c # 2004/06/18 11:12:57-07:00 viro@www.linux.org.uk +6 -6 # sparse: udf cleanups # # fs/udf/crc.c # 2004/06/18 11:12:52-07:00 viro@www.linux.org.uk +1 -1 # sparse: udf cleanups # # ChangeSet # 2004/06/18 16:33:52-07:00 viro@www.linux.org.uk # [PATCH] sparse: drivers/video/matrox annotation # # drivers/video/matrox/matroxfb_crtc2.c # 2004/06/18 11:08:45-07:00 viro@www.linux.org.uk +5 -5 # sparse: drivers/video/matrox annotation # # drivers/video/matrox/matroxfb_base.c # 2004/06/18 11:08:34-07:00 viro@www.linux.org.uk +16 -15 # sparse: drivers/video/matrox annotation # # ChangeSet # 2004/06/18 16:33:41-07:00 viro@www.linux.org.uk # [PATCH] sparse: drivers/video/kyro annotation # # drivers/video/kyro/fbdev.c # 2004/06/18 11:07:54-07:00 viro@www.linux.org.uk +6 -6 # sparse: drivers/video/kyro annotation # # ChangeSet # 2004/06/18 16:33:31-07:00 viro@www.linux.org.uk # [PATCH] sparse: drivers/video partial annotation # # misc annotation in drivers/video/* (nowhere near complete) # # include/linux/fb.h # 2004/06/18 11:11:09-07:00 viro@www.linux.org.uk +2 -2 # sparse: drivers/video partial annotation # # drivers/video/sstfb.c # 2004/06/18 11:10:17-07:00 viro@www.linux.org.uk +2 -2 # sparse: drivers/video partial annotation # # drivers/video/radeonfb.c # 2004/06/18 11:10:06-07:00 viro@www.linux.org.uk +2 -2 # sparse: drivers/video partial annotation # # drivers/video/imsttfb.c # 2004/06/18 11:10:31-07:00 viro@www.linux.org.uk +10 -9 # sparse: drivers/video partial annotation # # drivers/video/fbmem.c # 2004/06/18 11:10:53-07:00 viro@www.linux.org.uk +2 -2 # sparse: drivers/video partial annotation # # ChangeSet # 2004/06/18 16:33:20-07:00 viro@www.linux.org.uk # [PATCH] sparse: nfs partial annotation # # include/linux/nfs4_mount.h # 2004/06/18 11:11:45-07:00 viro@www.linux.org.uk +3 -3 # sparse: nfs partial annotation # # fs/nfs/idmap.c # 2004/06/18 11:12:29-07:00 viro@www.linux.org.uk +6 -5 # sparse: nfs partial annotation # # fs/nfs/direct.c # 2004/06/18 11:12:14-07:00 viro@www.linux.org.uk +1 -1 # sparse: nfs partial annotation # # ChangeSet # 2004/06/18 16:33:09-07:00 viro@www.linux.org.uk # [PATCH] sparse: mwave annotation # # drivers/char/mwave/tp3780i.h # 2004/06/18 11:17:27-07:00 viro@www.linux.org.uk +2 -2 # sparse: mwave annotation # # drivers/char/mwave/tp3780i.c # 2004/06/18 11:17:27-07:00 viro@www.linux.org.uk +2 -2 # sparse: mwave annotation # # drivers/char/mwave/mwavedd.c # 2004/06/18 11:17:27-07:00 viro@www.linux.org.uk +17 -20 # sparse: mwave annotation # # drivers/char/mwave/3780i.h # 2004/06/18 11:17:27-07:00 viro@www.linux.org.uk +5 -5 # sparse: mwave annotation # # drivers/char/mwave/3780i.c # 2004/06/18 11:17:27-07:00 viro@www.linux.org.uk +10 -10 # sparse: mwave annotation # # ChangeSet # 2004/06/18 16:32:59-07:00 viro@www.linux.org.uk # [PATCH] sparse: binfmt_aout annotation # # fs/binfmt_aout.c # 2004/06/18 11:13:43-07:00 viro@www.linux.org.uk +13 -12 # sparse: binfmt_aout annotation # # ChangeSet # 2004/06/18 14:14:17-07:00 akpm@osdl.org # [NET]: Fix eql.c failed dev_get_by_name() return value check. # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # drivers/net/eql.c # 2004/06/18 14:14:03-07:00 akpm@osdl.org +5 -1 # [NET]: Fix eql.c failed dev_get_by_name() return value check. # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/18 14:12:29-07:00 yoshfuji@linux-ipv6.org # [IPV6]: Fix autoconf description in ip-sysctl.txt. # # Documentation/networking/ip-sysctl.txt # 2004/06/18 14:12:15-07:00 yoshfuji@linux-ipv6.org +4 -2 # [IPV6]: Fix autoconf description in ip-sysctl.txt. # # ChangeSet # 2004/06/18 14:11:36-07:00 wli@holomorphy.com # [IRDA]: Remove usage of isa_virt_to_bus() # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # net/irda/irda_device.c # 2004/06/18 14:11:22-07:00 wli@holomorphy.com +2 -2 # [IRDA]: Remove usage of isa_virt_to_bus() # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # include/net/irda/irda_device.h # 2004/06/18 14:11:22-07:00 wli@holomorphy.com +3 -1 # [IRDA]: Remove usage of isa_virt_to_bus() # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # drivers/net/irda/w83977af_ir.h # 2004/06/18 14:11:22-07:00 wli@holomorphy.com +3 -0 # [IRDA]: Remove usage of isa_virt_to_bus() # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # drivers/net/irda/w83977af_ir.c # 2004/06/18 14:11:22-07:00 wli@holomorphy.com +19 -12 # [IRDA]: Remove usage of isa_virt_to_bus() # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # drivers/net/irda/via-ircc.h # 2004/06/18 14:11:22-07:00 wli@holomorphy.com +3 -0 # [IRDA]: Remove usage of isa_virt_to_bus() # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # drivers/net/irda/via-ircc.c # 2004/06/18 14:11:22-07:00 wli@holomorphy.com +18 -10 # [IRDA]: Remove usage of isa_virt_to_bus() # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # drivers/net/irda/smsc-ircc2.c # 2004/06/18 14:11:22-07:00 wli@holomorphy.com +20 -11 # [IRDA]: Remove usage of isa_virt_to_bus() # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # drivers/net/irda/nsc-ircc.h # 2004/06/18 14:11:22-07:00 wli@holomorphy.com +3 -0 # [IRDA]: Remove usage of isa_virt_to_bus() # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # drivers/net/irda/nsc-ircc.c # 2004/06/18 14:11:22-07:00 wli@holomorphy.com +19 -11 # [IRDA]: Remove usage of isa_virt_to_bus() # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # drivers/net/irda/ali-ircc.h # 2004/06/18 14:11:22-07:00 wli@holomorphy.com +3 -0 # [IRDA]: Remove usage of isa_virt_to_bus() # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # drivers/net/irda/ali-ircc.c # 2004/06/18 14:11:22-07:00 wli@holomorphy.com +19 -11 # [IRDA]: Remove usage of isa_virt_to_bus() # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/18 14:09:17-07:00 dlstevens@us.ibm.com # [IPV6]: Handle user asking for any device in mcast calls. # # net/ipv6/mcast.c # 2004/06/18 14:09:03-07:00 dlstevens@us.ibm.com +1 -1 # [IPV6]: Handle user asking for any device in mcast calls. # # ChangeSet # 2004/06/18 13:54:52-07:00 shemminger@osdl.org # [PKT_SCHED]: Add loss option to network delay scheduler. # # This enhances the network simulation scheduler to do simple random loss. # # The loss parameter is a simple 32 bit value such that 0 means no loss, and # 0xffffffff is always drop. I have a new version of the tc command which takes # care of conversion from percent to this value. # # Same patch for 2.4 and 2.6 # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # net/sched/sch_delay.c # 2004/06/18 13:54:39-07:00 shemminger@osdl.org +9 -0 # [PKT_SCHED]: Add loss option to network delay scheduler. # # This enhances the network simulation scheduler to do simple random loss. # # The loss parameter is a simple 32 bit value such that 0 means no loss, and # 0xffffffff is always drop. I have a new version of the tc command which takes # care of conversion from percent to this value. # # Same patch for 2.4 and 2.6 # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # include/linux/pkt_sched.h # 2004/06/18 13:54:39-07:00 shemminger@osdl.org +2 -1 # [PKT_SCHED]: Add loss option to network delay scheduler. # # This enhances the network simulation scheduler to do simple random loss. # # The loss parameter is a simple 32 bit value such that 0 means no loss, and # 0xffffffff is always drop. I have a new version of the tc command which takes # care of conversion from percent to this value. # # Same patch for 2.4 and 2.6 # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/18 13:51:42-07:00 davem@nuts.davemloft.net # [PKT_SCHED]: Do not check netif_queue_stopped() in dequeue ops, races with driver. # # Based upon a patch from Stephen Hemminger. # Signed-off-by: David S. Miller # # net/sched/sch_tbf.c # 2004/06/18 13:51:18-07:00 davem@nuts.davemloft.net +5 -7 # [PKT_SCHED]: Do not check netif_queue_stopped() in dequeue ops, races with driver. # # Based upon a patch from Stephen Hemminger. # # Signed-off-by: David S. Miller # # net/sched/sch_htb.c # 2004/06/18 13:51:18-07:00 davem@nuts.davemloft.net +0 -1 # [PKT_SCHED]: Do not check netif_queue_stopped() in dequeue ops, races with driver. # # Based upon a patch from Stephen Hemminger. # # Signed-off-by: David S. Miller # # net/sched/sch_hfsc.c # 2004/06/18 13:51:18-07:00 davem@nuts.davemloft.net +1 -2 # [PKT_SCHED]: Do not check netif_queue_stopped() in dequeue ops, races with driver. # # Based upon a patch from Stephen Hemminger. # # Signed-off-by: David S. Miller # # net/sched/sch_delay.c # 2004/06/18 13:51:18-07:00 davem@nuts.davemloft.net +5 -7 # [PKT_SCHED]: Do not check netif_queue_stopped() in dequeue ops, races with driver. # # Based upon a patch from Stephen Hemminger. # # Signed-off-by: David S. Miller # # net/sched/sch_cbq.c # 2004/06/18 13:51:18-07:00 davem@nuts.davemloft.net +1 -1 # [PKT_SCHED]: Do not check netif_queue_stopped() in dequeue ops, races with driver. # # Based upon a patch from Stephen Hemminger. # # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/18 13:50:35-07:00 torvalds@ppc970.osdl.org # sparse: fix up fusion/mptctl.c after merge # # drivers/message/fusion/mptctl.c # 2004/06/18 13:50:29-07:00 torvalds@ppc970.osdl.org +8 -7 # sparse: fix up fusion/mptctl.c after merge # # ChangeSet # 2004/06/18 13:46:11-07:00 torvalds@ppc970.osdl.org # Merge # # drivers/message/fusion/mptctl.c # 2004/06/18 13:46:06-07:00 torvalds@ppc970.osdl.org +0 -2 # Merge # # drivers/scsi/scsi_syms.c # 2004/06/18 13:44:28-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # drivers/scsi/scsi_ioctl.c # 2004/06/18 13:44:28-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # drivers/scsi/fdomain.c # 2004/06/18 13:44:28-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # drivers/scsi/fd_mcs.c # 2004/06/18 13:44:28-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # ChangeSet # 2004/06/18 13:43:51-07:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] sparse: drivers/message/fusion annotations and fixes # # Sigh... First of all, LSI folks have very quaint idea of existing # platforms and word sizes on those. Their definitions of U32 and S32 # should really be reserved for posterity (preferably chiseled into the # rock they have between the ears), but kernel is the wrong place for # that. Fixed. # # mptctl_do_mpt_command() was always called on userland pointers; # kernel/userland argument removed along with dead code, function # annotated, callers updated. # # The rest is trivial annotations in mptctl.c and in its ioctl structures # - nothing fancy there. # # drivers/message/fusion/mptctl.h # 2004/06/18 08:09:14-07:00 viro@parcelfarce.linux.theplanet.co.uk +5 -5 # sparse: drivers/message/fusion annotations and fixes # # drivers/message/fusion/mptctl.c # 2004/06/18 08:09:16-07:00 viro@parcelfarce.linux.theplanet.co.uk +68 -77 # sparse: drivers/message/fusion annotations and fixes # # drivers/message/fusion/lsi/mpi_type.h # 2004/06/18 08:09:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +6 -11 # sparse: drivers/message/fusion annotations and fixes # # ChangeSet # 2004/06/18 13:43:40-07:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] crapectomy - last users of kernel_scsi_ioctl() gone # # Last 3 users of kernel_scsi_ioctl() eliminated; two of them used to read # partition table by issuing a READ6 via ioctl (instead of just calling # scsi_bios_ptable() as every other ->biosparam() instance does). # # The last one was doing a very quaint access to fields of scsi_device by # issuing SCSI_IOCLT_GET_LUN and then shuffling bits in the result. Down # with that insanity... # # ChangeSet # 2004/06/18 13:40:49-07:00 shemminger@osdl.org # [PKT_SCHED]: Delay scheduler should retry if requeue fails. # # If delay scheduler decides not to send the packet right away, it requeues # it. If the requeue fails, it should go and look again rather than waking # up prematurely. # # Same patch should apply to both 2.6 and 2.4 # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # net/sched/sch_delay.c # 2004/06/18 13:40:35-07:00 shemminger@osdl.org +9 -5 # [PKT_SCHED]: Delay scheduler should retry if requeue fails. # # If delay scheduler decides not to send the packet right away, it requeues # it. If the requeue fails, it should go and look again rather than waking # up prematurely. # # Same patch should apply to both 2.6 and 2.4 # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # include/scsi/scsi_ioctl.h # 2004/06/18 07:38:19-07:00 viro@parcelfarce.linux.theplanet.co.uk +0 -1 # crapectomy - last users of kernel_scsi_ioctl() gone # # drivers/scsi/scsi_syms.c # 2004/06/18 07:36:48-07:00 viro@parcelfarce.linux.theplanet.co.uk +0 -1 # crapectomy - last users of kernel_scsi_ioctl() gone # # drivers/scsi/scsi_ioctl.c # 2004/06/18 07:36:38-07:00 viro@parcelfarce.linux.theplanet.co.uk +0 -16 # crapectomy - last users of kernel_scsi_ioctl() gone # # drivers/scsi/pcmcia/nsp_cs.c # 2004/06/18 07:37:49-07:00 viro@parcelfarce.linux.theplanet.co.uk +4 -4 # crapectomy - last users of kernel_scsi_ioctl() gone # # drivers/scsi/fdomain.c # 2004/06/18 07:37:05-07:00 viro@parcelfarce.linux.theplanet.co.uk +7 -16 # crapectomy - last users of kernel_scsi_ioctl() gone # # drivers/scsi/fd_mcs.c # 2004/06/18 07:37:16-07:00 viro@parcelfarce.linux.theplanet.co.uk +7 -14 # crapectomy - last users of kernel_scsi_ioctl() gone # # ChangeSet # 2004/06/18 13:37:04-07:00 rmk+lkml@arm.linux.org.uk # [PATCH] Couple of sysfs patches # # On Wed, Jun 16, 2004 at 05:51:03PM -0500, Dmitry Torokhov wrote: # > What about freeing the resources? Can it be put in platform_device_unregister # > or is it release handler task? I'd put it in unregister because when I call # > unregister I expect device be half-dead and release as much resources as it # > can. # # # Here's the updated patch - to be applied on top of the # platform_get_resource() patch sent previously. # # Signed-off-by: Greg Kroah-Hartman # # ChangeSet # 2004/06/18 13:36:39-07:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] sparse: ibmasmfs annotations # # Trivial annotations + couple of missing (void) in prototypes # # include/linux/device.h # 2004/06/10 12:15:03-07:00 rmk+lkml@arm.linux.org.uk +0 -1 # Couple of sysfs patches # # drivers/base/platform.c # 2004/06/18 13:24:02-07:00 rmk+lkml@arm.linux.org.uk +52 -39 # Couple of sysfs patches # # drivers/misc/ibmasm/ibmasmfs.c # 2004/06/18 08:05:56-07:00 viro@parcelfarce.linux.theplanet.co.uk +14 -14 # sparse: ibmasmfs annotations # # ChangeSet # 2004/06/18 13:36:27-07:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] sparse: ide-tape annotation # # drivers/ide/ide-tape.c # 2004/06/18 08:04:58-07:00 viro@parcelfarce.linux.theplanet.co.uk +11 -9 # sparse: ide-tape annotation # # ChangeSet # 2004/06/18 13:36:16-07:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] sparse: drivers/input annotations # # Trivial annotations in drivers/input # # drivers/input/tsdev.c # 2004/06/18 08:04:18-07:00 viro@parcelfarce.linux.theplanet.co.uk +1 -1 # sparse: drivers/input annotations # # drivers/input/misc/uinput.c # 2004/06/18 08:04:24-07:00 viro@parcelfarce.linux.theplanet.co.uk +3 -3 # sparse: drivers/input annotations # # drivers/input/joydev.c # 2004/06/18 08:04:15-07:00 viro@parcelfarce.linux.theplanet.co.uk +21 -20 # sparse: drivers/input annotations # # ChangeSet # 2004/06/18 13:36:05-07:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] sparse: drivers/char/watchdog annotation # # Trivial annotations in drivers/char/watchdog/* # # drivers/char/watchdog/wdt_pci.c # 2004/06/18 07:43:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +9 -7 # sparse: drivers/char/watchdog annotation # # drivers/char/watchdog/wdt.c # 2004/06/18 07:43:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +9 -7 # sparse: drivers/char/watchdog annotation # # drivers/char/watchdog/wafer5823wdt.c # 2004/06/18 07:43:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +8 -7 # sparse: drivers/char/watchdog annotation # # drivers/char/watchdog/w83877f_wdt.c # 2004/06/18 07:43:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +8 -6 # sparse: drivers/char/watchdog annotation # # drivers/char/watchdog/w83627hf_wdt.c # 2004/06/18 07:43:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +8 -6 # sparse: drivers/char/watchdog annotation # # drivers/char/watchdog/softdog.c # 2004/06/18 07:43:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +7 -5 # sparse: drivers/char/watchdog annotation # # drivers/char/watchdog/scx200_wdt.c # 2004/06/18 07:43:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +7 -6 # sparse: drivers/char/watchdog annotation # # drivers/char/watchdog/sc520_wdt.c # 2004/06/18 07:43:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +8 -6 # sparse: drivers/char/watchdog annotation # # drivers/char/watchdog/sc1200wdt.c # 2004/06/18 07:43:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +9 -7 # sparse: drivers/char/watchdog annotation # # drivers/char/watchdog/sbc60xxwdt.c # 2004/06/18 07:43:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +8 -6 # sparse: drivers/char/watchdog annotation # # drivers/char/watchdog/pcwd_usb.c # 2004/06/18 07:43:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +11 -9 # sparse: drivers/char/watchdog annotation # # drivers/char/watchdog/pcwd_pci.c # 2004/06/18 07:43:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +11 -9 # sparse: drivers/char/watchdog annotation # # drivers/char/watchdog/mixcomwd.c # 2004/06/18 07:43:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +5 -4 # sparse: drivers/char/watchdog annotation # # drivers/char/watchdog/machzwd.c # 2004/06/18 07:43:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +5 -4 # sparse: drivers/char/watchdog annotation # # drivers/char/watchdog/ib700wdt.c # 2004/06/18 07:43:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +7 -5 # sparse: drivers/char/watchdog annotation # # drivers/char/watchdog/i8xx_tco.c # 2004/06/18 07:43:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +8 -6 # sparse: drivers/char/watchdog annotation # # drivers/char/watchdog/eurotechwdt.c # 2004/06/18 07:43:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +9 -8 # sparse: drivers/char/watchdog annotation # # drivers/char/watchdog/cpu5wdt.c # 2004/06/18 07:43:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +5 -4 # sparse: drivers/char/watchdog annotation # # drivers/char/watchdog/alim7101_wdt.c # 2004/06/18 07:43:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +8 -6 # sparse: drivers/char/watchdog annotation # # drivers/char/watchdog/alim1535_wdt.c # 2004/06/18 07:43:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +8 -6 # sparse: drivers/char/watchdog annotation # # drivers/char/watchdog/advantechwdt.c # 2004/06/18 07:43:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +8 -6 # sparse: drivers/char/watchdog annotation # # drivers/char/watchdog/acquirewdt.c # 2004/06/18 07:43:25-07:00 viro@parcelfarce.linux.theplanet.co.uk +7 -5 # sparse: drivers/char/watchdog annotation # # ChangeSet # 2004/06/18 13:35:54-07:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] sparse: ixj annotated # # drivers/telephony (aka ixj.c) annotated, IXJ_CADENCE split into kernel # and userland variants, ioctl structures got __user on pointers. # # include/linux/ixjuser.h # 2004/06/18 07:40:16-07:00 viro@parcelfarce.linux.theplanet.co.uk +1 -1 # sparse: ixj annotated # # drivers/telephony/ixj.h # 2004/06/18 07:39:46-07:00 viro@parcelfarce.linux.theplanet.co.uk +8 -2 # sparse: ixj annotated # # drivers/telephony/ixj.c # 2004/06/18 07:39:48-07:00 viro@parcelfarce.linux.theplanet.co.uk +61 -45 # sparse: ixj annotated # # ChangeSet # 2004/06/18 13:35:42-07:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] sparse: vm86.c annotated # # vm86.c annotated; vm86old(2) and vm86(2) switched to explicit # # int (struct pt_regs regs) # # format. # # arch/i386/kernel/vm86.c # 2004/06/18 07:35:47-07:00 viro@parcelfarce.linux.theplanet.co.uk +19 -13 # sparse: vm86.c annotated # # ChangeSet # 2004/06/18 13:35:31-07:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] sparse: rt_sigsuspend/sigaltstack sanitized # # rt_sigsuspend() and sigaltstack() prototype changed; instead of # playing games with casts of argument address to struct pt_regs * and # digging through it, we declare them as # # int (struct pt_regs regs) # # instead. # # arch/i386/kernel/signal.c # 2004/06/18 07:35:29-07:00 viro@parcelfarce.linux.theplanet.co.uk +9 -9 # sparse: rt_sigsuspend/sigaltstack sanitized # # ChangeSet # 2004/06/18 13:35:20-07:00 viro@parcelfarce.linux.theplanet.co.uk # [PATCH] sparse: i387 math-emu annotation # # arch/i386/math-emu/* annotated. # # arch/i386/math-emu/reg_ld_str.c # 2004/06/18 07:30:41-07:00 viro@parcelfarce.linux.theplanet.co.uk +75 -75 # sparse: i387 math-emu annotation # # arch/i386/math-emu/reg_compare.c # 2004/06/18 07:30:41-07:00 viro@parcelfarce.linux.theplanet.co.uk +6 -6 # sparse: i387 math-emu annotation # # arch/i386/math-emu/load_store.c # 2004/06/18 07:30:41-07:00 viro@parcelfarce.linux.theplanet.co.uk +26 -26 # sparse: i387 math-emu annotation # # arch/i386/math-emu/get_address.c # 2004/06/18 07:30:41-07:00 viro@parcelfarce.linux.theplanet.co.uk +15 -15 # sparse: i387 math-emu annotation # # arch/i386/math-emu/fpu_system.h # 2004/06/18 07:30:41-07:00 viro@parcelfarce.linux.theplanet.co.uk +1 -1 # sparse: i387 math-emu annotation # # arch/i386/math-emu/fpu_proto.h # 2004/06/18 07:30:41-07:00 viro@parcelfarce.linux.theplanet.co.uk +21 -21 # sparse: i387 math-emu annotation # # arch/i386/math-emu/fpu_etc.c # 2004/06/18 07:30:41-07:00 viro@parcelfarce.linux.theplanet.co.uk +1 -1 # sparse: i387 math-emu annotation # # arch/i386/math-emu/fpu_entry.c # 2004/06/18 07:30:41-07:00 viro@parcelfarce.linux.theplanet.co.uk +17 -16 # sparse: i387 math-emu annotation # # arch/i386/math-emu/fpu_aux.c # 2004/06/18 07:30:41-07:00 viro@parcelfarce.linux.theplanet.co.uk +10 -10 # sparse: i387 math-emu annotation # # arch/i386/math-emu/fpu_arith.c # 2004/06/18 07:30:41-07:00 viro@parcelfarce.linux.theplanet.co.uk +18 -18 # sparse: i387 math-emu annotation # # arch/i386/math-emu/errors.c # 2004/06/18 07:30:41-07:00 viro@parcelfarce.linux.theplanet.co.uk +5 -5 # sparse: i387 math-emu annotation # # ChangeSet # 2004/06/18 13:18:34-07:00 shemminger@osdl.org # [PKT_SCHED]: Delay scheduler enqueue always succeeds. # # If underlying fifo enqueue fails, return the status not 0. # Same patch should apply to both 2.6 and 2.4 # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # net/sched/sch_delay.c # 2004/06/18 13:18:20-07:00 shemminger@osdl.org +1 -1 # [PKT_SCHED]: Delay scheduler enqueue always succeeds. # # If underlying fifo enqueue fails, return the status not 0. # Same patch should apply to both 2.6 and 2.4 # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/18 13:15:58-07:00 shemminger@osdl.org # [BRIDGE]: Kill sysfs hotplug avoidance hacks. # # The whole effort to avoid hotplug was misguided. If it is really a problem # (which it doesn't appear to be) then it can more easily be addressed by smarter # hotplug scripts in user space. # # This patch gets rid of the whole subsystem hack for bridge kobjects. # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # net/bridge/br_sysfs_if.c # 2004/06/18 13:15:34-07:00 shemminger@osdl.org +1 -1 # [BRIDGE]: Kill sysfs hotplug avoidance hacks. # # The whole effort to avoid hotplug was misguided. If it is really a problem # (which it doesn't appear to be) then it can more easily be addressed by smarter # hotplug scripts in user space. # # This patch gets rid of the whole subsystem hack for bridge kobjects. # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # net/bridge/br_sysfs_br.c # 2004/06/18 13:15:34-07:00 shemminger@osdl.org +1 -18 # [BRIDGE]: Kill sysfs hotplug avoidance hacks. # # The whole effort to avoid hotplug was misguided. If it is really a problem # (which it doesn't appear to be) then it can more easily be addressed by smarter # hotplug scripts in user space. # # This patch gets rid of the whole subsystem hack for bridge kobjects. # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # net/bridge/br_private.h # 2004/06/18 13:15:34-07:00 shemminger@osdl.org +0 -5 # [BRIDGE]: Kill sysfs hotplug avoidance hacks. # # The whole effort to avoid hotplug was misguided. If it is really a problem # (which it doesn't appear to be) then it can more easily be addressed by smarter # hotplug scripts in user space. # # This patch gets rid of the whole subsystem hack for bridge kobjects. # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # net/bridge/br.c # 2004/06/18 13:15:34-07:00 shemminger@osdl.org +0 -3 # [BRIDGE]: Kill sysfs hotplug avoidance hacks. # # The whole effort to avoid hotplug was misguided. If it is really a problem # (which it doesn't appear to be) then it can more easily be addressed by smarter # hotplug scripts in user space. # # This patch gets rid of the whole subsystem hack for bridge kobjects. # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/18 19:53:46+01:00 rmk@flint.arm.linux.org.uk # [ARM] Remove NexusPCI/FTVPCI platform. # # This platform is no longer maintained, and its maintainer says that # the hardware is obsolete and out of circulation. # # arch/arm/common/Makefile # 2004/06/18 19:51:33+01:00 rmk@flint.arm.linux.org.uk +0 -1 # Remove FTVPCI PCI host driver. # # arch/arm/Makefile # 2004/06/18 19:51:33+01:00 rmk@flint.arm.linux.org.uk +0 -2 # Remove FTVPCI. # # arch/arm/Kconfig # 2004/06/18 19:51:32+01:00 rmk@flint.arm.linux.org.uk +4 -9 # Remove FTVPCI. # # ChangeSet # 2004/06/18 19:45:27+01:00 rmk@flint.arm.linux.org.uk # [ARM] Remove TBOX. # # This platform is no longer maintained, and its maintainer says that # the hardware is obsolete and out of circulation. # # ChangeSet # 2004/06/18 11:43:35-07:00 torvalds@ppc970.osdl.org # Merge bk://kernel.bkbits.net/davem/net-2.6 # into ppc970.osdl.org:/home/torvalds/v2.6/linux # # security/selinux/ss/services.c # 2004/06/18 11:43:31-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # security/selinux/ss/policydb.c # 2004/06/18 11:43:31-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # security/selinux/include/security.h # 2004/06/18 11:43:31-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # security/selinux/include/flask.h # 2004/06/18 11:43:31-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # security/selinux/include/class_to_string.h # 2004/06/18 11:43:31-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # security/selinux/include/av_permissions.h # 2004/06/18 11:43:31-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # security/selinux/include/av_perm_to_string.h # 2004/06/18 11:43:31-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # security/selinux/include/av_inherit.h # 2004/06/18 11:43:31-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # security/selinux/hooks.c # 2004/06/18 11:43:31-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # security/selinux/Makefile # 2004/06/18 11:43:31-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # security/dummy.c # 2004/06/18 11:43:31-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # net/netlink/af_netlink.c # 2004/06/18 11:43:31-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # include/linux/security.h # 2004/06/18 11:43:31-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # include/asm-ppc64/system.h # 2004/06/18 11:43:31-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # Documentation/filesystems/proc.txt # 2004/06/18 11:43:31-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # arch/arm/Makefile # 2004/06/18 19:42:57+01:00 rmk@flint.arm.linux.org.uk +0 -1 # Remove TBOX. # # BitKeeper/deleted/.del-plx90x0.c~6e00d8c4651bebd # 2004/06/18 19:22:53+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: arch/arm/common/plx90x0.c # # BitKeeper/deleted/.del-Makefile~743b0b21d18f48a3 # 2004/06/18 19:21:48+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: arch/arm/mach-tbox/Makefile # # BitKeeper/deleted/.del-Makefile~1bcec227c3749c2b # 2004/06/18 19:21:42+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: arch/arm/mach-ftvpci/Makefile # # BitKeeper/deleted/.del-vmalloc.h~6fe84d89a4fe0487 # 2004/06/18 19:20:44+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: include/asm-arm/arch-nexuspci/vmalloc.h # # BitKeeper/deleted/.del-uncompress.h~d86deb706ce0af8c # 2004/06/18 19:20:41+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: include/asm-arm/arch-nexuspci/uncompress.h # # BitKeeper/deleted/.del-timex.h~e40ee87eef3b5d82 # 2004/06/18 19:20:39+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: include/asm-arm/arch-nexuspci/timex.h # # BitKeeper/deleted/.del-time.h~730e38fa47912a2c # 2004/06/18 19:20:37+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: include/asm-arm/arch-nexuspci/time.h # # BitKeeper/deleted/.del-system.h~13cdaece381624c5 # 2004/06/18 19:20:34+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: include/asm-arm/arch-nexuspci/system.h # # BitKeeper/deleted/.del-param.h~43f147e81e4d4aa # 2004/06/18 19:20:32+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: include/asm-arm/arch-nexuspci/param.h # # BitKeeper/deleted/.del-memory.h~a8036cb472d809fd # 2004/06/18 19:20:31+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: include/asm-arm/arch-nexuspci/memory.h # # BitKeeper/deleted/.del-irqs.h~4b397f62f210ba4a # 2004/06/18 19:20:29+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: include/asm-arm/arch-nexuspci/irqs.h # # BitKeeper/deleted/.del-io.h~dad3ba234da9ed44 # 2004/06/18 19:20:28+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: include/asm-arm/arch-nexuspci/io.h # # BitKeeper/deleted/.del-hardware.h~e2ae6d2a73466d92 # 2004/06/18 19:20:26+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: include/asm-arm/arch-nexuspci/hardware.h # # BitKeeper/deleted/.del-dma.h~7c79d144ee7126 # 2004/06/18 19:20:25+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: include/asm-arm/arch-nexuspci/dma.h # # BitKeeper/deleted/.del-vmalloc.h~9cc411fb2236e832 # 2004/06/18 19:20:24+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: include/asm-arm/arch-tbox/vmalloc.h # # BitKeeper/deleted/.del-uncompress.h~ba1125271f695d9a # 2004/06/18 19:20:22+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: include/asm-arm/arch-tbox/uncompress.h # # BitKeeper/deleted/.del-timex.h~21cf937463373e34 # 2004/06/18 19:20:20+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: include/asm-arm/arch-tbox/timex.h # # BitKeeper/deleted/.del-time.h~e839fe4bcd9e4cf9 # 2004/06/18 19:20:18+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: include/asm-arm/arch-tbox/time.h # # BitKeeper/deleted/.del-system.h~cd0858e052bb3f86 # 2004/06/18 19:20:16+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: include/asm-arm/arch-tbox/system.h # # BitKeeper/deleted/.del-serial.h~4a4898b286343b2a # 2004/06/18 19:20:15+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: include/asm-arm/arch-tbox/serial.h # # BitKeeper/deleted/.del-param.h~220f433111a13232 # 2004/06/18 19:20:13+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: include/asm-arm/arch-tbox/param.h # # BitKeeper/deleted/.del-memory.h~32316a4b360340b5 # 2004/06/18 19:20:11+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: include/asm-arm/arch-tbox/memory.h # # BitKeeper/deleted/.del-irqs.h~f8419d051722d58a # 2004/06/18 19:20:09+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: include/asm-arm/arch-tbox/irqs.h # # BitKeeper/deleted/.del-io.h~62e0d6286c3e19bc # 2004/06/18 19:20:08+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: include/asm-arm/arch-tbox/io.h # # BitKeeper/deleted/.del-hardware.h~7238d94368669e11 # 2004/06/18 19:20:05+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: include/asm-arm/arch-tbox/hardware.h # # BitKeeper/deleted/.del-dma.h~4cb7553c767afee5 # 2004/06/18 19:20:03+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: include/asm-arm/arch-tbox/dma.h # # BitKeeper/deleted/.del-core.c~714a718aec4a2c30 # 2004/06/18 19:20:01+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: arch/arm/mach-tbox/core.c # # BitKeeper/deleted/.del-pci.c~550e56da56112be2 # 2004/06/18 19:19:59+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: arch/arm/mach-ftvpci/pci.c # # BitKeeper/deleted/.del-leds.c~78050371c0248352 # 2004/06/18 19:19:58+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: arch/arm/mach-ftvpci/leds.c # # BitKeeper/deleted/.del-core.c~9e662b6895b788f2 # 2004/06/18 19:19:57+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: arch/arm/mach-ftvpci/core.c # # ChangeSet # 2004/06/18 12:43:06-05:00 stevef@stevef95.austin.ibm.com # Merge bk://cifs.bkbits.net/linux-2.5cifs # into stevef95.austin.ibm.com:/home/stevef/linux-2.5cifs # # fs/Kconfig # 2004/06/18 12:42:54-05:00 stevef@stevef95.austin.ibm.com +0 -1 # Auto merged # # ChangeSet # 2004/06/18 10:32:19-07:00 greg@kroah.com # Merge kroah.com:/home/greg/linux/BK/bleed-2.6 # into kroah.com:/home/greg/linux/BK/usb-2.6 # # drivers/usb/storage/scsiglue.c # 2004/06/18 10:32:14-07:00 greg@kroah.com +0 -0 # Auto merged # # ChangeSet # 2004/06/18 10:06:37-07: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/06/18 10:06:33-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # drivers/scsi/sr.c # 2004/06/18 10:06:33-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # drivers/scsi/ide-scsi.c # 2004/06/18 10:06:33-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # drivers/scsi/Makefile # 2004/06/18 10:06:33-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # drivers/scsi/Kconfig # 2004/06/18 10:06:33-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # BitKeeper/deleted/.del-scsi_pc98.c~63183f0558d43fc2 # 2004/06/18 10:06:33-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # BitKeeper/deleted/.del-pc980155.c~e29865f8a9a6ed50 # 2004/06/18 10:06:33-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # MAINTAINERS # 2004/06/18 10:06:32-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # BitKeeper/deleted/.del-scsi_pc98.c~63183f0558d43fc2 # 2004/06/18 10:06:32-07:00 torvalds@ppc970.osdl.org +0 -0 # Merge rename: drivers/scsi/scsi_pc98.c -> BitKeeper/deleted/.del-scsi_pc98.c~63183f0558d43fc2 # # BitKeeper/deleted/.del-pc980155.c~e29865f8a9a6ed50 # 2004/06/18 10:06:32-07:00 torvalds@ppc970.osdl.org +0 -0 # Merge rename: drivers/scsi/pc980155.c -> BitKeeper/deleted/.del-pc980155.c~e29865f8a9a6ed50 # # ChangeSet # 2004/06/18 10:04:39-07:00 greg@kroah.com # USB: mark pwc driver broken again, as it still is :( # # drivers/usb/media/Kconfig # 2004/06/18 03:03:21-07:00 greg@kroah.com +1 -1 # USB: mark pwc driver broken again, as it still is :( # # ChangeSet # 2004/06/18 17:58:33+01:00 tony@com.rmk.(none) # [ARM PATCH] 1931/1: Allow device address translation in dma-mapping, version 3 # # Patch from Tony Lindgren # # Allows translation of shared memory addresses for devices using # dma-mapping. In some cases the device DMA address is different # from the ARM DMA address, for example with some USB OHCI # controllers. # # For more background information, please see the ARM Linux mailing # list thread "OHCI controller". # # include/asm-arm/memory.h # 2004/06/18 00:11:37+01:00 tony@com.rmk.(none) +10 -1 # [PATCH] 1931/1: Allow device address translation in dma-mapping, version 3 # # include/asm-arm/dma-mapping.h # 2004/06/18 00:11:37+01:00 tony@com.rmk.(none) +4 -4 # [PATCH] 1931/1: Allow device address translation in dma-mapping, version 3 # # include/asm-arm/arch-omap/memory.h # 2004/06/18 00:11:37+01:00 tony@com.rmk.(none) +20 -4 # [PATCH] 1931/1: Allow device address translation in dma-mapping, version 3 # # arch/arm/mm/consistent.c # 2004/06/18 00:11:02+01:00 tony@com.rmk.(none) +1 -1 # [PATCH] 1931/1: Allow device address translation in dma-mapping, version 3 # # arch/arm/common/dmabounce.c # 2004/06/18 00:11:01+01:00 tony@com.rmk.(none) +5 -5 # [PATCH] 1931/1: Allow device address translation in dma-mapping, version 3 # # ChangeSet # 2004/06/18 17:53:15+01:00 nico@org.rmk.(none) # [ARM PATCH] 1932/1: fix comment about cache handling syscall # # Patch from Nicolas Pitre # # Let's make it coherent with what the actual code is doing and has # always done, even in 2.4. Nobody complained about this so let's # just fix the comment. The most natural usage pattern for this is # a base address and a size so it's more efficient to have an exclusive # end address anyway. # # ChangeSet # 2004/06/18 09:52:38-07:00 stern@rowland.harvard.edu # [PATCH] USB: dummy_hcd shouldn't reject SET-ADDRESS requests # # This patch for the dummy_hcd driver prevents it from rejecting SET-ADDRESS # requests when the address is already set. The USB 2.0 spec states that if # a device is in the ADDRESS state, it should accept and start using the new # address. Behavior in the CONFIGURED state is undefined, but since # dummy_hcd doesn't keep track of the difference between the two states we # might as well accept the new address in any case. # # # Signed-off-by: Alan Stern # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/gadget/dummy_hcd.c # 2004/06/18 03:18:28-07:00 stern@rowland.harvard.edu +0 -5 # USB: dummy_hcd shouldn't reject SET-ADDRESS requests # # arch/arm/kernel/traps.c # 2004/06/18 02:01:40+01:00 nico@org.rmk.(none) +1 -1 # [PATCH] 1932/1: fix comment about cache handling syscall # # ChangeSet # 2004/06/18 09:50:41-07:00 axboe@suse.de # [PATCH] cfq direct io alias problem # # This is a fix for when we encounter an alias during insert. When that # happens we move the request to dispatch, but it may happen that this # request is also the ->last_merge hint. So we may attempt to merge with # this later, when it's either in progress or already freed. Rearrange the # logic a bit so we clear the merge hint there as well. It looks more # complex than it is, the only real code change is the addition of a # cfq_remove_merge_hints() in cfq_dispatch_sort(). # # Signed-off-by: Linus Torvalds # # drivers/block/cfq-iosched.c # 2004/06/17 10:37:34-07:00 axboe@suse.de +14 -8 # cfq direct io alias problem # # ChangeSet # 2004/06/18 09:50:31-07:00 axboe@suse.de # [PATCH] cfq allocation race # # It's possible under unlucky circumstances for this race to trigger. I # described it with a comment in the code. # # Signed-Off-By: Jens Axboe # Signed-off-by: Linus Torvalds # # drivers/block/cfq-iosched.c # 2004/05/24 06:35:01-07:00 axboe@suse.de +19 -0 # cfq allocation race # # ChangeSet # 2004/06/18 09:50:20-07:00 axboe@suse.de # [PATCH] cfq sysfs support # # This makes the CFQ tunables available in sysfs, like AS and deadline. # # Signed-off-by: Jens Axboe # Signed-off-by: Linus Torvalds # # drivers/block/cfq-iosched.c # 2004/05/24 06:06:17-07:00 axboe@suse.de +113 -2 # cfq sysfs support # # ChangeSet # 2004/06/18 17:49:27+01:00 icampbell@com.rmk.(none) # [ARM PATCH] 1934/2: Consolidate code to set CKEN on PXA # # Patch from Ian Campbell # # I've seen comments several times that various PXA drivers # update CKEN in an unsafe manner. This patch consolidates # this code into a single function pxa_set_cken() and updates # all the in tree drivers to use it. # # ChangeSet # 2004/06/18 09:48:38-07:00 torvalds@ppc970.osdl.org # Remove old stale header files that aren't referenced anywhere. # # Noted by Alexey Dobriyan. # # BitKeeper/deleted/.del-netfilter_x25.h~5e2c13d4592d8c13 # 2004/06/18 09:47:58-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: include/linux/netfilter_x25.h # # BitKeeper/deleted/.del-netfilter_ipx.h~7e5cd8fa9a3985ac # 2004/06/18 09:47:58-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: include/linux/netfilter_ipx.h # # BitKeeper/deleted/.del-netfilter_ddp.h~2153f0da7220ca38 # 2004/06/18 09:47:58-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: include/linux/netfilter_ddp.h # # BitKeeper/deleted/.del-netbeui.h~1cf2e2f4793bcad1 # 2004/06/18 09:47:58-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: include/linux/netbeui.h # # BitKeeper/deleted/.del-mpp.h~8ebce3fa907ece97 # 2004/06/18 09:47:58-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: include/linux/mpp.h # # BitKeeper/deleted/.del-isdn_lzscomp.h~99cfe6e36b994a1 # 2004/06/18 09:47:58-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: include/linux/isdn_lzscomp.h # # BitKeeper/deleted/.del-in_systm.h~268bf1b1642e1ee5 # 2004/06/18 09:47:58-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: include/linux/in_systm.h # # BitKeeper/deleted/.del-fsfilter.h~5fc8d5fdaaa381a # 2004/06/18 09:47:58-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: include/linux/fsfilter.h # # BitKeeper/deleted/.del-atapi.h~8a1b1aeca6c26a7 # 2004/06/18 09:47:58-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: include/linux/atapi.h # # BitKeeper/deleted/.del-adb_mouse.h~d5f39849c4abbd6e # 2004/06/18 09:47:58-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: include/linux/adb_mouse.h # # BitKeeper/deleted/.del-acpi_serial.h~d839323d8907296b # 2004/06/18 09:47:58-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: include/linux/acpi_serial.h # # BitKeeper/deleted/.del-802_11.h~9b6bd4cff8af7a90 # 2004/06/18 09:47:58-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: include/linux/802_11.h # # include/asm-arm/arch-pxa/hardware.h # 2004/06/18 01:00:00+01:00 icampbell@com.rmk.(none) +5 -0 # [PATCH] 1934/2: Consolidate code to set CKEN on PXA # # drivers/video/pxafb.c # 2004/06/18 01:00:00+01:00 icampbell@com.rmk.(none) +1 -4 # [PATCH] 1934/2: Consolidate code to set CKEN on PXA # # drivers/usb/gadget/pxa2xx_udc.c # 2004/06/18 01:00:00+01:00 icampbell@com.rmk.(none) +2 -2 # [PATCH] 1934/2: Consolidate code to set CKEN on PXA # # drivers/serial/pxa.c # 2004/06/18 01:00:00+01:00 icampbell@com.rmk.(none) +2 -7 # [PATCH] 1934/2: Consolidate code to set CKEN on PXA # # arch/arm/mach-pxa/generic.c # 2004/06/18 01:00:00+01:00 icampbell@com.rmk.(none) +18 -0 # [PATCH] 1934/2: Consolidate code to set CKEN on PXA # # ChangeSet # 2004/06/18 09:46:06-07:00 torvalds@ppc970.osdl.org # Merge # # drivers/net/at1700.c # 2004/06/18 09:46:04-07:00 torvalds@ppc970.osdl.org +0 -0 # SCCS merged # # ChangeSet # 2004/06/18 17:43:22+01:00 icampbell@com.rmk.(none) # [ARM PATCH] 1930/1: Allocate correct number of pseudo palette entries in pxafb # # Patch from Ian Campbell # # The pxafb driver incorrectly allocates 17 u32's for a 16 entry # pseudo palette. # # drivers/net/Makefile # 2004/06/18 09:43:07-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # BitKeeper/deleted/.del-ne2k_cbus.c~db2bde9191a8ce9a # 2004/06/18 09:43:06-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # drivers/net/Kconfig # 2004/06/18 09:43:06-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # drivers/net/82596.c # 2004/06/18 09:43:06-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # BitKeeper/deleted/.del-ne2k_cbus.c~db2bde9191a8ce9a # 2004/06/18 09:43:06-07:00 torvalds@ppc970.osdl.org +0 -0 # Merge rename: drivers/net/ne2k_cbus.c -> BitKeeper/deleted/.del-ne2k_cbus.c~db2bde9191a8ce9a # # drivers/video/pxafb.c # 2004/06/18 01:00:00+01:00 icampbell@com.rmk.(none) +1 -1 # [PATCH] 1930/1: Allocate correct number of pseudo palette entries in pxafb # # ChangeSet # 2004/06/18 09:36:50-07:00 davem@nuts.davemloft.net # Merge # # security/selinux/hooks.c # 2004/06/18 09:36:41-07:00 davem@nuts.davemloft.net +0 -101 # SCCS merged # # security/selinux/ss/services.c # 2004/06/18 09:35:13-07:00 davem@nuts.davemloft.net +0 -12 # Auto merged # # security/selinux/ss/policydb.c # 2004/06/18 09:35:13-07:00 davem@nuts.davemloft.net +0 -9 # Auto merged # # security/selinux/include/security.h # 2004/06/18 09:35:13-07:00 davem@nuts.davemloft.net +0 -5 # Auto merged # # security/selinux/include/flask.h # 2004/06/18 09:35:13-07:00 davem@nuts.davemloft.net +0 -21 # Auto merged # # security/selinux/include/class_to_string.h # 2004/06/18 09:35:13-07:00 davem@nuts.davemloft.net +0 -21 # Auto merged # # security/selinux/include/av_permissions.h # 2004/06/18 09:35:13-07:00 davem@nuts.davemloft.net +0 -573 # Auto merged # # security/selinux/include/av_perm_to_string.h # 2004/06/18 09:35:13-07:00 davem@nuts.davemloft.net +0 -101 # Auto merged # # security/selinux/include/av_inherit.h # 2004/06/18 09:35:13-07:00 davem@nuts.davemloft.net +0 -9 # Auto merged # # security/selinux/Makefile # 2004/06/18 09:35:13-07:00 davem@nuts.davemloft.net +0 -1 # Auto merged # # security/dummy.c # 2004/06/18 09:35:13-07:00 davem@nuts.davemloft.net +0 -1 # Auto merged # # net/netlink/af_netlink.c # 2004/06/18 09:35:13-07:00 davem@nuts.davemloft.net +0 -4 # Auto merged # # include/linux/security.h # 2004/06/18 09:35:13-07:00 davem@nuts.davemloft.net +0 -11 # Auto merged # # include/asm-ppc64/system.h # 2004/06/18 09:35:13-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # Documentation/filesystems/proc.txt # 2004/06/18 09:35:13-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # ChangeSet # 2004/06/18 09:33:53-07:00 torvalds@ppc970.osdl.org # This removes the files orphaned by the earlier PC9800 removal # # BitKeeper/deleted/.del-smpboot_hooks.h~5940f4c36bed59b4 # 2004/06/18 09:32:54-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: include/asm-i386/mach-pc9800/smpboot_hooks.h # # BitKeeper/deleted/.del-setup_arch_pre.h~1aa05e47e2ae5d10 # 2004/06/18 09:32:54-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: include/asm-i386/mach-pc9800/setup_arch_pre.h # # BitKeeper/deleted/.del-setup_arch_post.h~c1ce95fa8d614f4d # 2004/06/18 09:32:54-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: include/asm-i386/mach-pc9800/setup_arch_post.h # # BitKeeper/deleted/.del-pci-functions.h~930f4ea96f69d14 # 2004/06/18 09:32:54-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: include/asm-i386/mach-pc9800/pci-functions.h # # BitKeeper/deleted/.del-mach_wakecpu.h~de206fda8667a7e7 # 2004/06/18 09:32:54-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: include/asm-i386/mach-pc9800/mach_wakecpu.h # # BitKeeper/deleted/.del-mach_traps.h~db7e527be9d0d95b # 2004/06/18 09:32:54-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: include/asm-i386/mach-pc9800/mach_traps.h # # BitKeeper/deleted/.del-mach_timer.h~6faf9e0362bc9cad # 2004/06/18 09:32:53-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: include/asm-i386/mach-pc9800/mach_timer.h # # BitKeeper/deleted/.del-mach_time.h~4ec98fea93568edd # 2004/06/18 09:32:53-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: include/asm-i386/mach-pc9800/mach_time.h # # BitKeeper/deleted/.del-mach_reboot.h~666bd1054bae0a25 # 2004/06/18 09:32:53-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: include/asm-i386/mach-pc9800/mach_reboot.h # # BitKeeper/deleted/.del-irq_vectors.h~5a325ee32bbed31 # 2004/06/18 09:32:53-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: include/asm-i386/mach-pc9800/irq_vectors.h # # BitKeeper/deleted/.del-io_ports.h~8f892217bfd99be4 # 2004/06/18 09:32:53-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: include/asm-i386/mach-pc9800/io_ports.h # # BitKeeper/deleted/.del-do_timer.h~e73335e43b11ea32 # 2004/06/18 09:32:53-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: include/asm-i386/mach-pc9800/do_timer.h # # BitKeeper/deleted/.del-bios_ebda.h~4a870d9833986305 # 2004/06/18 09:32:53-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: include/asm-i386/mach-pc9800/bios_ebda.h # # BitKeeper/deleted/.del-apm.h~324fabc1c2354803 # 2004/06/18 09:32:53-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: include/asm-i386/mach-pc9800/apm.h # # BitKeeper/deleted/.del-video.S~284da1c1c2e38aa8 # 2004/06/18 09:32:48-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: arch/i386/boot98/video.S # # BitKeeper/deleted/.del-setup.S~bd07a5b2361060c # 2004/06/18 09:32:48-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: arch/i386/boot98/setup.S # # BitKeeper/deleted/.del-mtools.conf.in~3346efde195fa35 # 2004/06/18 09:32:48-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: arch/i386/boot98/mtools.conf.in # # BitKeeper/deleted/.del-install.sh~6441f5459fde0cb0 # 2004/06/18 09:32:48-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: arch/i386/boot98/install.sh # # BitKeeper/deleted/.del-bootsect.S~aa4f19a632039843 # 2004/06/18 09:32:48-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: arch/i386/boot98/bootsect.S # # BitKeeper/deleted/.del-Makefile~2700a53f2e1fb469 # 2004/06/18 09:32:48-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: arch/i386/boot98/Makefile # # BitKeeper/deleted/.del-topology.c~607813b1b960974f # 2004/06/18 09:32:43-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: arch/i386/mach-pc9800/topology.c # # BitKeeper/deleted/.del-std_resources.c~54f4a08a759f2f5f # 2004/06/18 09:32:43-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: arch/i386/mach-pc9800/std_resources.c # # BitKeeper/deleted/.del-setup.c~161f6c99c14ddb5d # 2004/06/18 09:32:43-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: arch/i386/mach-pc9800/setup.c # # BitKeeper/deleted/.del-Makefile~c002abb789b0791f # 2004/06/18 09:32:43-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: arch/i386/mach-pc9800/Makefile # # BitKeeper/deleted/.del-sound_pc9800.h~d8dde13c75b5753b # 2004/06/18 09:32:33-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: sound/isa/cs423x/sound_pc9800.h # # BitKeeper/deleted/.del-pc9801_118_magic.h~479c5fdd78d01b7a # 2004/06/18 09:32:33-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: sound/isa/cs423x/pc9801_118_magic.h # # BitKeeper/deleted/.del-pc9800_sca.h~b52752436ddb82ea # 2004/06/18 09:32:33-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: include/asm-i386/pc9800_sca.h # # BitKeeper/deleted/.del-pc9800.h~e8f7c13f33846c88 # 2004/06/18 09:32:33-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: include/asm-i386/pc9800.h # # BitKeeper/deleted/.del-pc9800.c~1af765dbb1c51b76 # 2004/06/18 09:32:33-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: drivers/ide/legacy/pc9800.c # # BitKeeper/deleted/.del-pc98.c~e5a92ca5f2b01d36 # 2004/06/18 09:32:33-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: sound/isa/cs423x/pc98.c # # BitKeeper/deleted/.del-nec98.h~a0b8de1e822fa884 # 2004/06/18 09:32:33-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/partitions/nec98.h # # BitKeeper/deleted/.del-nec98.c~2e65e92f56ce9a56 # 2004/06/18 09:32:33-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: fs/partitions/nec98.c # # BitKeeper/deleted/.del-hd98.c~fc4a0b69729bf7c1 # 2004/06/18 09:32:33-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: drivers/ide/legacy/hd98.c # # BitKeeper/deleted/.del-98spkr.c~a1a91856da60a088 # 2004/06/18 09:32:33-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: drivers/input/misc/98spkr.c # # BitKeeper/deleted/.del-98busmouse.c~ca244def94322735 # 2004/06/18 09:32:33-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: drivers/input/mouse/98busmouse.c # # BitKeeper/deleted/.del-serial98.c~c69c28b9984f1cca # 2004/06/18 09:32:32-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: drivers/serial/serial98.c # # BitKeeper/deleted/.del-scsi_pc98.c~63183f0558d43fc2 # 2004/06/18 09:32:32-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: drivers/scsi/scsi_pc98.c # # BitKeeper/deleted/.del-pc980155.h~f12bd20496e02379 # 2004/06/18 09:32:32-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: drivers/scsi/pc980155.h # # BitKeeper/deleted/.del-pc980155.c~e29865f8a9a6ed50 # 2004/06/18 09:32:32-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: drivers/scsi/pc980155.c # # BitKeeper/deleted/.del-lp_old98.c~fc58ff5b2fa5c998 # 2004/06/18 09:32:32-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: drivers/char/lp_old98.c # # BitKeeper/deleted/.del-floppy98.c~12864e155d00fa0e # 2004/06/18 09:32:32-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: drivers/block/floppy98.c # # BitKeeper/deleted/.del-98kbd.c~fcb070eb5c330ed3 # 2004/06/18 09:32:32-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: drivers/input/keyboard/98kbd.c # # BitKeeper/deleted/.del-98kbd-io.c~37d03ba23bb15415 # 2004/06/18 09:32:32-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: drivers/input/serio/98kbd-io.c # # BitKeeper/deleted/.del-upd4990a.c~6da2f3423f9a74f # 2004/06/18 09:32:23-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: drivers/char/upd4990a.c # # BitKeeper/deleted/.del-ne2k_cbus.h~b1e2c6c8f1caf542 # 2004/06/18 09:32:23-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: drivers/net/ne2k_cbus.h # # BitKeeper/deleted/.del-ne2k_cbus.c~db2bde9191a8ce9a # 2004/06/18 09:32:23-07:00 torvalds@ppc970.osdl.org +0 -0 # Delete: drivers/net/ne2k_cbus.c # # ChangeSet # 2004/06/18 09:31:40-07:00 torvalds@ppc970.osdl.org # Merge # # arch/i386/kernel/acpi/boot.c # 2004/06/18 09:31:38-07:00 torvalds@ppc970.osdl.org +0 -0 # SCCS merged # # arch/i386/kernel/mpparse.c # 2004/06/18 09:29:48-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # ChangeSet # 2004/06/18 09:24:59-07:00 torvalds@ppc970.osdl.org # Merge duplicate selinux network hooks # # security/selinux/hooks.c # 2004/06/18 09:24:54-07:00 torvalds@ppc970.osdl.org +0 -101 # Merge duplicate selinux hooks # # security/selinux/ss/services.c # 2004/06/18 09:21:51-07:00 torvalds@ppc970.osdl.org +0 -12 # Auto merged # # security/selinux/ss/policydb.c # 2004/06/18 09:21:51-07:00 torvalds@ppc970.osdl.org +0 -9 # Auto merged # # security/selinux/include/security.h # 2004/06/18 09:21:51-07:00 torvalds@ppc970.osdl.org +0 -5 # Auto merged # # security/selinux/include/flask.h # 2004/06/18 09:21:51-07:00 torvalds@ppc970.osdl.org +0 -21 # Auto merged # # security/selinux/include/class_to_string.h # 2004/06/18 09:21:51-07:00 torvalds@ppc970.osdl.org +0 -21 # Auto merged # # security/selinux/include/av_permissions.h # 2004/06/18 09:21:51-07:00 torvalds@ppc970.osdl.org +0 -573 # Auto merged # # security/selinux/include/av_perm_to_string.h # 2004/06/18 09:21:51-07:00 torvalds@ppc970.osdl.org +0 -101 # Auto merged # # security/selinux/include/av_inherit.h # 2004/06/18 09:21:51-07:00 torvalds@ppc970.osdl.org +0 -9 # Auto merged # # security/selinux/Makefile # 2004/06/18 09:21:50-07:00 torvalds@ppc970.osdl.org +0 -1 # Auto merged # # security/dummy.c # 2004/06/18 09:21:50-07:00 torvalds@ppc970.osdl.org +0 -1 # Auto merged # # net/netlink/af_netlink.c # 2004/06/18 09:21:50-07:00 torvalds@ppc970.osdl.org +0 -4 # Auto merged # # include/linux/security.h # 2004/06/18 09:21:50-07:00 torvalds@ppc970.osdl.org +0 -11 # Auto merged # # include/asm-ppc64/system.h # 2004/06/18 09:21:50-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # Documentation/filesystems/proc.txt # 2004/06/18 09:21:50-07:00 torvalds@ppc970.osdl.org +0 -0 # Auto merged # # ChangeSet # 2004/06/18 08:25:41-07:00 chrisw@osdl.org # [PATCH] RLIM: remove unused queued_signals global accounting # # Remove unused queued_signals global accounting. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/sysctl.c # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +0 -18 # RLIM: remove unused queued_signals global accounting # # kernel/signal.c # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +0 -3 # RLIM: remove unused queued_signals global accounting # # ChangeSet # 2004/06/18 08:25:30-07:00 chrisw@osdl.org # [PATCH] RLIM: enforce rlimits on queued signals # # Add a user_struct pointer to the sigqueue structure. Charge sigqueue # allocation and destruction to the user_struct rather than a global pool. This # per user rlimit accounting obsoletes the global queued_signals accouting. # # The patch as charges the sigqueue struct allocation to the queue that it's # pending on (the receiver of the signal). So the owner of the queue is charged # for whoever writes to it (much like quota for a 777 file). # # The patch started out charging the task which allocated the sigqueue struct. # In most cases, these are always the same user (permission for sending a # signal), so those cases are moot. In the cases where it isn't the same user, # it's a privileged user sending a signal to another user. # # It seems wrong to charge the allocation to the privleged user, when the other # user could block receipt as long as it feels. The flipside is, someone else # can fill your queue (expectation is that someone else is privileged). I think # it's right the way it is. The change to revert is very small. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/signal.c # 2004/06/18 00:32:24-07:00 chrisw@osdl.org +11 -6 # RLIM: enforce rlimits on queued signals # # include/linux/signal.h # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +1 -0 # RLIM: enforce rlimits on queued signals # # ChangeSet # 2004/06/18 08:25:20-07:00 chrisw@osdl.org # [PATCH] RLIM: pass task_struct in send_signal() # # Update send_signal() api to allow passing the task receiving the signal. This # is necessary to ensure signals generated out of process context can be charged # to the correct user. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/signal.c # 2004/06/18 00:32:25-07:00 chrisw@osdl.org +4 -3 # RLIM: pass task_struct in send_signal() # # ChangeSet # 2004/06/18 08:23:45-07:00 torvalds@ppc970.osdl.org # Fix kill_pg_info(): return success if _any_ signal succeeded. # # kernel/signal.c # 2004/06/18 08:23:40-07:00 torvalds@ppc970.osdl.org +7 -11 # Fix kill_pg_info(): return success if _any_ signal succeeded. # # ChangeSet # 2004/06/18 08:17:04-07:00 kszysiu@iceberg.elsat.net.pl # [PATCH] cmpci oops on rmmod + fix # # The cmpci driver included in Linux 2.6.7 causes an oops on rmmod, I believe # cm_remove should be marked __devexit rather than __devinit. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # sound/oss/cmpci.c # 2004/06/18 00:06:08-07:00 kszysiu@iceberg.elsat.net.pl +2 -2 # cmpci oops on rmmod + fix # # ChangeSet # 2004/06/18 08:16:53-07:00 ysato@users.sourceforge.jp # [PATCH] H8/300: io.h cleanup # # - optimize byteswap # - add noswap io mode # - cleanup var type # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-h8300/io.h # 2004/06/18 00:06:08-07:00 ysato@users.sourceforge.jp +68 -24 # H8/300: io.h cleanup # # ChangeSet # 2004/06/18 08:16:42-07:00 ysato@users.sourceforge.jp # [PATCH] H8/300: ptrace fix # # - Kconfig typo fix # - PTRACE_PEEKUSER read process info support # - exr restore fix # - ptrace register offset fix # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/h8300/platform/h8s/ptrace_h8s.c # 2004/06/18 00:06:07-07:00 ysato@users.sourceforge.jp +1 -1 # H8/300: ptrace fix # # arch/h8300/platform/h8s/entry.S # 2004/06/18 00:06:07-07:00 ysato@users.sourceforge.jp +1 -1 # H8/300: ptrace fix # # arch/h8300/kernel/ptrace.c # 2004/06/18 00:06:07-07:00 ysato@users.sourceforge.jp +23 -5 # H8/300: ptrace fix # # arch/h8300/Kconfig # 2004/06/18 00:06:07-07:00 ysato@users.sourceforge.jp +1 -1 # H8/300: ptrace fix # # ChangeSet # 2004/06/18 08:16:33-07:00 kaos@ocs.com.au # [PATCH] contify some scheduler functions # # Several scheduler macros only read from the task struct, mark them const. # It may help the compiler generate better code. # # Signed-off-by: Keith Owens # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/sched.c # 2004/06/18 00:06:07-07:00 kaos@ocs.com.au +3 -3 # contify some scheduler functions # # kernel/exit.c # 2004/06/18 00:06:07-07:00 kaos@ocs.com.au +3 -3 # contify some scheduler functions # # include/linux/sched.h # 2004/06/18 00:06:07-07:00 kaos@ocs.com.au +6 -6 # contify some scheduler functions # # ChangeSet # 2004/06/18 08:16:21-07:00 greg@kroah.com # [PATCH] remove EXPORT_SYMBOL(kallsyms_lookup) # # Distros have started to ship kernels with this patch, as it seems that some # unnamed binary module authors are already abusing this function (as well as # some open source modules, like the openib code.) I could not find any valid # reason why this symbol should be exported, so here's a patch against 2.6.7 # that removes it. # # Signed-off-by: Greg Kroah-Hartman # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/kallsyms.c # 2004/06/18 00:06:07-07:00 greg@kroah.com +0 -1 # remove EXPORT_SYMBOL(kallsyms_lookup) # # ChangeSet # 2004/06/18 08:16:11-07:00 rddunlap@osdl.org # [PATCH] remove blank line in show_trace() # # Delete a blank line for more error reporting on-screen. # # Signed-off-by: Randy Dunlap # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/kernel/traps.c # 2004/06/18 00:06:07-07:00 rddunlap@osdl.org +0 -1 # remove blank line in show_trace() # # ChangeSet # 2004/06/18 08:16:00-07:00 kenneth.w.chen@intel.com # [PATCH] Hugetlb page bug fix for i386 in PAE mode # # Hit a bug check when unmap a hugetlb vma in PAE mode on i386 (and x86-64). # # Bad page state at free_hot_cold_page (in process 'a.out', page c165cc40) # flags:0x20000000 mapping:f75e1d00 mapped:0 count:0 # Backtrace: # Call Trace: # [] bad_page+0x79/0x9e # [] free_hot_cold_page+0x71/0xfa # [] unmap_hugepage_range+0xa3/0xbf # [] unmap_vmas+0xac/0x252 # [] default_wake_function+0x0/0xc # [] unmap_region+0xd8/0x145 # [] do_munmap+0xfc/0x14d # [] sys_shmdt+0xa5/0x126 # [] sys_ipc+0x23c/0x27f # [] sys_write+0x38/0x59 # [] syscall_call+0x7/0xb # # It turns out there is a bug in hugetlb_prefault(): with 3 level page table, # huge_pte_alloc() might return a pmd that points to a PTE page. It happens # if the virtual address for hugetlb mmap is recycled from previously used # normal page mmap. free_pgtables() might not scrub the pmd entry on munmap # and hugetlb_prefault skips on any pmd presence regardless what type it is. # Patch to fix the bug. # # Signed-off-by: Ken Chen # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/mm/hugetlbpage.c # 2004/06/18 00:06:07-07:00 kenneth.w.chen@intel.com +9 -2 # Hugetlb page bug fix for i386 in PAE mode # # ChangeSet # 2004/06/18 08:15:49-07:00 minyard@acm.org # [PATCH] IPMI base patch to fix channel handling and add polling # # This patch fixes some problems with handling of channel detection in the # driver. Some systems that are IPMI 1.5 do not implement the channel query # command. Also, the interface has to be fully up before the command is # ready. # # This patch also adds a polling interface; this is required for situations # where interrupts are not running, but the system must still issue IPMI # commands, like when taking a crash dump. # # It also updates the driver version to v32. # # Signed-off-by: Corey Minyard # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/ipmi_smi.h # 2004/06/18 00:06:07-07:00 minyard@acm.org +4 -0 # IPMI base patch to fix channel handling and add polling # # include/linux/ipmi_msgdefs.h # 2004/06/18 00:06:07-07:00 minyard@acm.org +1 -0 # IPMI base patch to fix channel handling and add polling # # include/linux/ipmi.h # 2004/06/18 00:06:07-07:00 minyard@acm.org +10 -0 # IPMI base patch to fix channel handling and add polling # # drivers/char/ipmi/ipmi_watchdog.c # 2004/06/18 00:06:07-07:00 minyard@acm.org +3 -5 # IPMI base patch to fix channel handling and add polling # # drivers/char/ipmi/ipmi_smic_sm.c # 2004/06/18 00:06:07-07:00 minyard@acm.org +1 -1 # IPMI base patch to fix channel handling and add polling # # drivers/char/ipmi/ipmi_si_intf.c # 2004/06/18 00:06:07-07:00 minyard@acm.org +45 -16 # IPMI base patch to fix channel handling and add polling # # drivers/char/ipmi/ipmi_msghandler.c # 2004/06/18 00:06:07-07:00 minyard@acm.org +29 -2 # IPMI base patch to fix channel handling and add polling # # drivers/char/ipmi/ipmi_kcs_sm.c # 2004/06/18 00:06:07-07:00 minyard@acm.org +1 -1 # IPMI base patch to fix channel handling and add polling # # drivers/char/ipmi/ipmi_devintf.c # 2004/06/18 00:06:07-07:00 minyard@acm.org +1 -1 # IPMI base patch to fix channel handling and add polling # # drivers/char/ipmi/ipmi_bt_sm.c # 2004/06/18 00:06:07-07:00 minyard@acm.org +1 -1 # IPMI base patch to fix channel handling and add polling # # ChangeSet # 2004/06/18 08:15:37-07:00 jmorris@redhat.com # [PATCH] SELinux: Fine-grained Netlink support - SELinux changes # # This patch contains SELinux changes which add support for extended Netlink # socket classes and the associated permissions nlmsg_read and nlmsg_write. # # Cc: David S. Miller # Signed-off-by: James Morris # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # security/selinux/nlmsgtab.c # 2004/06/18 00:06:07-07:00 jmorris@redhat.com +153 -0 # SELinux: Fine-grained Netlink support - SELinux changes # # security/selinux/ss/services.c # 2004/06/18 00:06:07-07:00 jmorris@redhat.com +12 -0 # SELinux: Fine-grained Netlink support - SELinux changes # # security/selinux/ss/policydb.c # 2004/06/18 00:06:07-07:00 jmorris@redhat.com +9 -1 # SELinux: Fine-grained Netlink support - SELinux changes # # security/selinux/nlmsgtab.c # 2004/06/18 00:06:07-07:00 jmorris@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/security/selinux/nlmsgtab.c # # security/selinux/include/security.h # 2004/06/18 00:06:07-07:00 jmorris@redhat.com +5 -4 # SELinux: Fine-grained Netlink support - SELinux changes # # security/selinux/include/flask.h # 2004/06/18 00:06:07-07:00 jmorris@redhat.com +9 -0 # SELinux: Fine-grained Netlink support - SELinux changes # # security/selinux/include/class_to_string.h # 2004/06/18 00:06:07-07:00 jmorris@redhat.com +9 -0 # SELinux: Fine-grained Netlink support - SELinux changes # # security/selinux/include/av_permissions.h # 2004/06/18 00:06:07-07:00 jmorris@redhat.com +223 -0 # SELinux: Fine-grained Netlink support - SELinux changes # # security/selinux/include/av_perm_to_string.h # 2004/06/18 00:06:07-07:00 jmorris@redhat.com +12 -0 # SELinux: Fine-grained Netlink support - SELinux changes # # security/selinux/include/av_inherit.h # 2004/06/18 00:06:06-07:00 jmorris@redhat.com +9 -0 # SELinux: Fine-grained Netlink support - SELinux changes # # security/selinux/hooks.c # 2004/06/18 00:06:06-07:00 jmorris@redhat.com +80 -22 # SELinux: Fine-grained Netlink support - SELinux changes # # security/selinux/Makefile # 2004/06/18 00:06:07-07:00 jmorris@redhat.com +1 -1 # SELinux: Fine-grained Netlink support - SELinux changes # # ChangeSet # 2004/06/18 08:15:25-07:00 jmorris@redhat.com # [PATCH] SELinux: Fine-grained Netlink support - add sk to netlink_send hook # # Modifies the LSM netlink_send() hook so that it takes a struct sock parameter. # SELinux will use this parameter to lookup the class of socket, which was # assigned during socket security initialization. # # Cc: David S. Miller # Signed-off-by: James Morris # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # security/selinux/hooks.c # 2004/06/18 00:32:07-07:00 jmorris@redhat.com +1 -1 # SELinux: Fine-grained Netlink support - add sk to netlink_send hook # # security/dummy.c # 2004/06/18 00:06:06-07:00 jmorris@redhat.com +1 -1 # SELinux: Fine-grained Netlink support - add sk to netlink_send hook # # net/netlink/af_netlink.c # 2004/06/18 00:06:06-07:00 jmorris@redhat.com +1 -1 # SELinux: Fine-grained Netlink support - add sk to netlink_send hook # # include/linux/security.h # 2004/06/18 00:06:06-07:00 jmorris@redhat.com +11 -8 # SELinux: Fine-grained Netlink support - add sk to netlink_send hook # # ChangeSet # 2004/06/18 08:15:14-07:00 jmorris@redhat.com # [PATCH] SELinux: Fine-grained Netlink support - move security_netlink_send() hook # # This patch moves the security_netlink_send() LSM hook after the user copy, so # that LSM modules can safely examine skb payload content. For SELinux, we need # to look at the Netlink message type. # # Cc: David S. Miller # Signed-off-by: James Morris # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # net/netlink/af_netlink.c # 2004/06/18 00:32:07-07:00 jmorris@redhat.com +4 -4 # SELinux: Fine-grained Netlink support - move security_netlink_send() hook # # ChangeSet # 2004/06/18 08:15:04-07:00 jmorris@redhat.com # [PATCH] SELinux: Fine-grained Netlink support - SELinux headers update # # This patch regenerates the SELinux module headers to reflect new class and # access vectors definitions. The size of the diff is misleading; much of it is # simply a change in the ordering of the automatically generated definitions. # The corresponding generation script has been changed to ensure a stable order # in the future. Please apply. # # Author: Stephen Smalley # Cc: David S. Miller # 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 # 2004/06/18 00:32:07-07:00 jmorris@redhat.com +12 -0 # SELinux: Fine-grained Netlink support - SELinux headers update # # security/selinux/include/class_to_string.h # 2004/06/18 00:32:07-07:00 jmorris@redhat.com +12 -0 # SELinux: Fine-grained Netlink support - SELinux headers update # # security/selinux/include/av_permissions.h # 2004/06/18 00:32:07-07:00 jmorris@redhat.com +350 -250 # SELinux: Fine-grained Netlink support - SELinux headers update # # security/selinux/include/av_perm_to_string.h # 2004/06/18 00:32:07-07:00 jmorris@redhat.com +89 -3 # SELinux: Fine-grained Netlink support - SELinux headers update # # ChangeSet # 2004/06/18 08:14:53-07:00 chrisw@osdl.org # [PATCH] fix simple_strtoul base 16 handling # # I know it's simple_strtoul, but is it meant to be that simple? Fix up for # both simple_strtoul and simple_strtoull. # # simple_strtoul(0x401b, NULL, 0) = 0x401b # simple_strtoul(0X401b, NULL, 0) = 0x0 # simple_strtoul(0x401b, NULL, 16) = 0x0 # simple_strtoul(0X401b, NULL, 16) = 0x0 # # simple_strtoull(0x401b, NULL, 0) = 0x401b # simple_strtoull(0X401b, NULL, 0) = 0x0 # simple_strtoull(0x401b, NULL, 16) = 0x0 # simple_strtoull(0X401b, NULL, 16) = 0x0 # # Signed-off-by: Chris Wright # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # lib/vsprintf.c # 2004/06/18 00:06:06-07:00 chrisw@osdl.org +8 -2 # fix simple_strtoul base 16 handling # # ChangeSet # 2004/06/18 08:14:42-07:00 eger@havoc.gtf.org # [PATCH] rivafb: fb accel capabilities # # Here's the fb accel capabilities patch for rivafb. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/video/riva/fbdev.c # 2004/06/18 00:06:06-07:00 eger@havoc.gtf.org +6 -1 # rivafb: fb accel capabilities # # ChangeSet # 2004/06/18 08:14:31-07:00 geert@linux-m68k.org # [PATCH] fix warning in fbmem.c # # Fix a const/non-const warning. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/fb.h # 2004/06/18 00:06:06-07:00 geert@linux-m68k.org +1 -1 # fix warning in fbmem.c # # drivers/video/fbmem.c # 2004/06/18 00:06:06-07:00 geert@linux-m68k.org +13 -9 # fix warning in fbmem.c # # ChangeSet # 2004/06/18 08:14:20-07:00 eger@havoc.gtf.org # [PATCH] fix radeonfb panning and make it play nice with copyarea() # # radeonfb: fix panning corruption on a large virtual screen, Make panning # and copyarea() play nicely with each other. # # Signed-off-by: David Eger # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/video/aty/radeon_base.c # 2004/06/18 00:06:05-07:00 eger@havoc.gtf.org +13 -0 # fix radeonfb panning and make it play nice with copyarea() # # drivers/video/aty/radeon_accel.c # 2004/06/18 00:06:05-07:00 eger@havoc.gtf.org +4 -4 # fix radeonfb panning and make it play nice with copyarea() # # ChangeSet # 2004/06/18 08:14:09-07:00 lethal@Linux-SH.ORG # [PATCH] asiliantfb init fix # # asiliantfb seems to have only been partially merged (the fbmem.c bits in # particular seem to have been missed entirely). This adds them back in, # though they do seem to be present in the fbdev tree, at least they were the # last time I looked. # # These are the last bit of outstanding changes I have in the LinuxSH # tree for asiliantfb, so it would be nice to get this out of the way. # # Signed-off-by: Paul Mundt # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/video/fbmem.c # 2004/06/18 00:32:08-07:00 lethal@Linux-SH.ORG +4 -0 # asiliantfb init fix # # ChangeSet # 2004/06/18 08:13:58-07:00 adaplas@hotpop.com # [PATCH] More updates to rivafb driver # # 1. pass info->monspecs.modedb and info->monspecs.modedb_len to # fb_find_mode() instead of NULL, 0 since its contents are specific to the # attached display. Anyway, if info->monspecs.modedb == NULL, # fb_find_mode() will use the default database. # # 2. Added best fit algo to fb_find_mode(). # # 3. Use snprintf instead of sprintf. # # Signed-off-by: Antonino Daplas # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/video/modedb.c # 2004/06/18 00:06:05-07:00 adaplas@hotpop.com +19 -2 # More updates to rivafb driver # # drivers/video/console/fbcon.c # 2004/06/18 00:06:05-07:00 adaplas@hotpop.com +4 -3 # More updates to rivafb driver # # ChangeSet # 2004/06/18 08:13:47-07:00 adaplas@hotpop.com # [PATCH] Updates to rivafb driver # # The patch updates rivafb to the following: # # 1. Fixed cursor corruption and simplified cursor code. # # 2. Maximized var->yres_virtual on initial mode setting. Scrolling, # therefore, defaults to y-panning which is significantly faster. # # 3. Restricted var->xres_virtual and var->yres_virtual to 0x7fff # (hardware limitation?). Otherwise, var->yres_virtual > 0x7fff + panning # will hang the GPU. # # 4. Added I2C/DDC support. This feature enables independent mode setup # to rivafb. 'stty rows n cols n' should now work correctly. This is a # configurable option. # # 5. Various/minor fixes to drawing code. # # Signed-off-by: Antonino Daplas # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/video/riva/rivafb-i2c.c # 2004/06/18 00:06:05-07:00 adaplas@hotpop.com +209 -0 # Updates to rivafb driver # # drivers/video/riva/rivafb.h # 2004/06/18 00:06:05-07:00 adaplas@hotpop.com +24 -9 # Updates to rivafb driver # # drivers/video/riva/rivafb-i2c.c # 2004/06/18 00:06:05-07:00 adaplas@hotpop.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/video/riva/rivafb-i2c.c # # drivers/video/riva/fbdev.c # 2004/06/18 00:32:08-07:00 adaplas@hotpop.com +188 -148 # Updates to rivafb driver # # drivers/video/riva/Makefile # 2004/06/18 00:06:05-07:00 adaplas@hotpop.com +6 -2 # Updates to rivafb driver # # drivers/video/Kconfig # 2004/06/18 00:06:05-07:00 adaplas@hotpop.com +5 -0 # Updates to rivafb driver # # ChangeSet # 2004/06/18 08:13:36-07:00 eger@havoc.gtf.org # [PATCH] fbcon: prefer pan when available # # Improve heuristics to favor panning over copyarea() thanks to pseudocode # from Antonino Daplas # # Signed-off-by: David Eger # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/video/console/fbcon.c # 2004/06/18 00:32:09-07:00 eger@havoc.gtf.org +19 -15 # fbcon: prefer pan when available # # ChangeSet # 2004/06/18 08:13:25-07:00 eger@havoc.gtf.org # [PATCH] fb accel capabilities # # Baseline patch to make framebuffer/fbcon interaction more sane by basing the # fbcon heuristics on capabilities advertized by underlying framebuffer via the # fb_info.flags field. # # This patch updates fbcon, fb.h, and skeletonfb.c. It does *not* yet update # the drivers themselves. They should compile and work, but their hinting is # not correct yet, meaning most fb drivers will be slow until I set the flags to # the right hinting driver-by-driver # # Signed-off-by: David Eger # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/fb.h # 2004/06/18 00:32:08-07:00 eger@havoc.gtf.org +46 -6 # fb accel capabilities # # drivers/video/skeletonfb.c # 2004/06/18 00:06:05-07:00 eger@havoc.gtf.org +7 -1 # fb accel capabilities # # drivers/video/console/fbcon.h # 2004/06/18 00:06:05-07:00 eger@havoc.gtf.org +19 -32 # fb accel capabilities # # drivers/video/console/fbcon.c # 2004/06/18 00:32:09-07:00 eger@havoc.gtf.org +50 -47 # fb accel capabilities # # ChangeSet # 2004/06/18 08:13:13-07:00 daniel@osdl.org # [PATCH] handle partial DIO write # # The fsx-linux hole fill failure problem was caused by # generic_file_aio_write_nolock() not handling the partial DIO write # correctly. Here's a patch lets DIO do the partial write, and the fallback # to buffered is done (correctly) for what is left. This fixes the hole # filling without retrying the entire i/o. This patch also applies to # 2.6.7-rc3 with some offset. # # I tested this (on ext3) with # fsx-linux -l 500000 -r 4096 -t 4096 -w 4096 -Z -N 10000 junk -R -W # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/filemap.c # 2004/06/18 00:06:05-07:00 daniel@osdl.org +1 -1 # handle partial DIO write # # fs/direct-io.c # 2004/06/18 00:06:05-07:00 daniel@osdl.org +7 -7 # handle partial DIO write # # ChangeSet # 2004/06/18 08:13:02-07:00 schwidefsky@de.ibm.com # [PATCH] s390: lost dirty bits # # The SetPageUptodate function is called for pages that are already up to # date. The arch_set_page_uptodate function of s390 may not clear the dirty # bit in that case otherwise a dirty bit which is set between the start of an # i/o for a writeback and a following call to SetPageUptodate is lost. # # Signed-off-by: Martin Schwidefsky # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/page-flags.h # 2004/06/18 00:06:04-07:00 schwidefsky@de.ibm.com +3 -9 # s390: lost dirty bits # # include/asm-s390/pgtable.h # 2004/06/18 00:06:04-07:00 schwidefsky@de.ibm.com +4 -2 # s390: lost dirty bits # # ChangeSet # 2004/06/18 08:12:51-07:00 hch@lst.de # [PATCH] fix standalone inclusion of asm-i386/dma-mapping.h # # Without this a usb-storage patch I sent fails on x86 because dma-mapping.h # uses struct device and various VM stuff without proper includes. It's fine # on ppc at least. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-i386/dma-mapping.h # 2004/06/18 00:06:04-07:00 hch@lst.de +3 -0 # fix standalone inclusion of asm-i386/dma-mapping.h # # ChangeSet # 2004/06/18 08:12:41-07:00 jmorris@redhat.com # [PATCH] Fix sock_orphan race. # # The patch below fixes a race between sock_orphan() and # selinux_socket_sock_rcv_skb() which can lead to a null pointer deref oops # under heavy load. The sk_callback_lock is used in the patch to synchronize # access to the incoming socket's inode security state. # # This patch has been under test in the Fedora kernel for over a month # without incident. # # Author: Stephen Smalley # Signed-off-by: James Morris # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # security/selinux/hooks.c # 2004/06/18 00:32:07-07:00 jmorris@redhat.com +21 -16 # Fix sock_orphan race. # # ChangeSet # 2004/06/18 08:12:29-07:00 marcelo.tosatti@cyclades.com # [PATCH] update Marcelo CREDITS info # # Update my CREDITS information. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # CREDITS # 2004/06/18 00:06:04-07:00 marcelo.tosatti@cyclades.com +7 -6 # update Marcelo CREDITS info # # ChangeSet # 2004/06/18 08:12:18-07:00 jmorris@redhat.com # [PATCH] Add security_file_permission() to AIO paths. # # Currently, there are no LSM hooks in the AIO codepaths, which means that # LSM based access controls are not revalidated upon AIO read and write # operations. The patch below adds the security_file_permission() LSM hook # prior to the VFS aio_read()/aio_write() calls. # # Signed-off-by: James Morris # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/aio.c # 2004/06/18 00:06:04-07:00 jmorris@redhat.com +7 -0 # Add security_file_permission() to AIO paths. # # ChangeSet # 2004/06/18 08:12:08-07:00 linux@dominikbrodowski.de # [PATCH] add 1 in __const_udelay() # # The "mull" instruction in __const_udelay() cuts off the lower 32 bits -- # so, it is "rounding down". This is both an issue for small ndelay()s for # _all_ values for loops_per_jiffy and for certain {n,u}delay()s for many # loops_per_jiffy values. # # Assuming # # LPJ = 1501115 # # udelay(87) # # results in # # 130597 loops to be spent. # # However, 1000 * 130597 / 1501115 is 86.999997 us, so we're actually # _rounding down_. 1000 * 130598 / 1501115 is 87.000662841, which would be # the technically correct thing to do. Of course, for the TSC case this # won't matter as the maths take some time, so the actual delay is # # 1000 * __udelay(x) / lpj + __OVERHEAD(x) # # Anybody worried about both the additional overhead and the fact that the # overhead takes some time to run should add a check # # if (unlikely(xloops < OVERHEAD)) # return; # xloops -= OVERHEAD; # # to the delay() routines in arch/i386/kernel/timers/*.c and determine # what the OVERHEAD is. # # Signed-off-by: Dominik Brodowski # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/lib/delay.c # 2004/06/18 00:06:04-07:00 linux@dominikbrodowski.de +1 -1 # add 1 in __const_udelay() # # ChangeSet # 2004/06/18 08:11:56-07:00 linux@dominikbrodowski.de # [PATCH] round up in __udelay() # # Round up in __udelay(): 2**32 / 100000 is 4294.97, so it's more intuitive # to round up, and it causes more predictable results: # # n usec delay on a 1500000 BogoMIPS system: # # n before -mull after # 1 1000 ticks 1499 ticks 1500 ticks # 10 14000 ticks 14999 ticks 15000 ticks # # n usec delay on a 100000 BogoMIPS system: # # n before -mull after # 1 0 ticks 99 ticks 100 ticks # 10 0 ticks 999 ticks 1000 ticks # 100 9000 ticks 9999 ticks 10000 ticks # # While it can be argued that some time is also spent in the delay functions, # it's better to spend _at least_ the specified time sleeping, in my humble # opinion. And the overhead of a specific ->delay() implementation should be # substracted in the specific ->delay() implementation. # # Signed-off-by: Dominik Brodowski # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-i386/delay.h # 2004/06/18 00:06:04-07:00 linux@dominikbrodowski.de +1 -1 # round up in __udelay() # # arch/i386/lib/delay.c # 2004/06/18 00:32:10-07:00 linux@dominikbrodowski.de +1 -1 # round up in __udelay() # # ChangeSet # 2004/06/18 08:11:46-07:00 linux@dominikbrodowski.de # [PATCH] mull'ify multiplication with HZ in __const_udelay() # # John Stultz mentioned on lkml ( http://lkml.org/lkml/2004/6/5/15 ) that # calls to udelay() don't delay long enough, causing trouble e.g. in the USB # subsystem. The following patches address this issue. # # Move the multiplication of (loops_per_jiffy * xloops) with HZ into the # "mull" asm operation. This increases the accuracy of the delay functions # largely: # # n usec delay on a system with loops_per_jiffy = 1500000 : # # n before after # 1 1000 ticks 1499 ticks # 10 14000 ticks 14999 ticks # # n usec delay on a system with loops_per_jiffy = 100000 : # # n before after # 1 0 ticks 99 ticks # 10 0 ticks 999 ticks # 100 9000 ticks 9999 ticks # # As noted by Kurt Garloff, it's necessary to adjust for large # loops_per_jiffies, as the multiplication of it with HZ fails for 4GHz or # larger. So, John Stultz suggested multiplying xloops with 4 first, and # multiplying with (HZ/4). # # Signed-off-by: Dominik Brodowski # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/lib/delay.c # 2004/06/18 00:32:10-07:00 linux@dominikbrodowski.de +3 -2 # mull'ify multiplication with HZ in __const_udelay() # # ChangeSet # 2004/06/18 08:11:35-07:00 neilb@cse.unsw.edu.au # [PATCH] Fix raid1 read_balancing code. # # The meaning of mddev->in_sync changed subtly a while ago, and raid1 wasn't # changed to match. This results in raid1 read_balancing not working # properly. This patch corrects the relevant test. # # Signed-off-by: Neil Brown # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/md/raid1.c # 2004/06/18 00:06:03-07:00 neilb@cse.unsw.edu.au +2 -1 # Fix raid1 read_balancing code. # # ChangeSet # 2004/06/18 08:11:24-07:00 alex@clusterfs.com # [PATCH] ext3: htree readdir fix # # I've observed that ext3_htree_fill_tree() doesn't ignore empty records # (de->inode == 0). test case is very simple: turn htree on, create several # hundreds of files, remove them and look at strace ls: # # [root@victim tests]# ls -a /test/1 # . .. # # [root@victim tests]# strace ls /test/1/ # .... # getdents64(3, /* 18 entries */, 4096) = 432 # getdents64(3, /* 0 entries */, 4096) = 0 # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/ext3/namei.c # 2004/06/18 00:06:03-07:00 alex@clusterfs.com +2 -0 # ext3: htree readdir fix # # ChangeSet # 2004/06/18 08:11:13-07:00 wli@holomorphy.com # [PATCH] fix isofs ignoring noexec and mode mount options # # * Removed period check for executables in fs/isofs/inode.c # This fixes Debian BTS #162190 # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=162190 # # From: Jan Gregor # To: Debian Bug Tracking System # Subject: kernel-source-2.4.18: kernel ignores noexec and mode option in cdrom case # Message-ID: <20020924162129.A328@pisidlo> # # In /etc/fstab i have following line: # /dev/cdrom /cdrom iso9660 gid=100,noauto,ro,noexec,mode=0444,user 0 0 # # I found on one CD that some files have exec bit set. From brief view # those files has no extension (filename.ext). # # My drive is asus-1610a (ATAPI writer) connected throught scsi-emulation. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/isofs/inode.c # 2004/06/18 00:06:03-07:00 wli@holomorphy.com +0 -8 # fix isofs ignoring noexec and mode mount options # # ChangeSet # 2004/06/18 08:11:04-07:00 wli@holomorphy.com # [PATCH] fix handling of '/' embedded in filenames in isofs # # * Fix slashes in broken Acorn ISO9660 images in fs/isofs/dir.c (Darren Salt) # This fixes Debian BTS #141660. # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=141660 # # From: Darren Salt # Message-ID: <4B238BA09A%linux@youmustbejoking.demon.co.uk> # To: submit@bugs.debian.org # Subject: Handle '/' in filenames in broken ISO9660 images # # [Also applicable to 2.2.x] # # There has been for some time a problem with certain CD-ROMs whose images # were generated using a particular tool on Acorn RISC OS. The problem is # that in certain catalogue entries, the extension separator character '/' # (RISC OS uses '.' and '/' the other way round) was not replaced with '.'; # thus Linux cannot properly parse this without this patch, thinking that it # is a directory separator. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/isofs/dir.c # 2004/06/18 00:06:03-07:00 wli@holomorphy.com +2 -1 # fix handling of '/' embedded in filenames in isofs # # ChangeSet # 2004/06/18 08:10:53-07:00 wli@holomorphy.com # [PATCH] fix duplicate environment variables passed to init # # * Fixed argument processing bug in init/main.c (Eric Delaunay) # This fixes Debian BTS #58566. # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=58566 # # From: Eric Delaunay # Message-Id: <200002201918.UAA02327@jazz.pontchartrain.fr> # Subject: pb in handling parameters on kernel command line # To: submit@bugs.debian.org (debian bug tracking system) # # Hello, I found some bugs in kernel command line parser. AFAIK, they are not # Debian nor sparc specific but I'm not subscribed to linux-kernel mailing list # and since I'm involved with boot-floppies (mainly for sparc), I think I'm right # to report it here. Feel free to forward it upstream (I checked the latest # 2.3.46 sources and it seems these bugs are still there). # # These bugs are not release critical. The latter just not gives the user a # chance to overwrite TERM env var at boot time. It could be just # inconvenient for serial console boot, and in this case, our busybox' init is # already enforcing TERM=vt102. # Nevertheless if it could not be fixed before the release, I could even write a # workaround in busybox' init (it's just a matter of rewriting getenv()). # # At last, it does not affect sysvinit package because serial console tty is # controlled by a getty process which is reading terminal settings on its command # line (take a look in inittab for T0 entries, if any). # # Ok, here is my modest contribution to kernel hacking. I don't know much about # kernel internals but it seems that argument parsing is a bit broken. # # One trivial patch for command line like "init=/bin/sh console=prom" where # console=prom is replaced by lot of spaces in previous call to setup_arch() on # sparc, therefore the line parsed by parse_options() is really # "init=/bin/sh " and a lot of null args are pushed into argv_init. # # The other patch is for command line like "TERM=vt100" where both default & user # TERM entries are pushed into the env array. # Taking a look into /proc/1/environ, it shows up: # HOME=/ # TERM=linux # TERM=vt100 # # It appears that ash (maybe other shells too) is giving the latter entry but # glibc getenv() is giving the former. It is therefore impossible to get entry # from the user in a C program like busybox' init (used in Debian boot-floppies). # # I guess getenv() is not written to support duplicate entries, therefore the # kernel should avoid such construct. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # init/main.c # 2004/06/18 00:06:03-07:00 wli@holomorphy.com +2 -0 # fix duplicate environment variables passed to init # # ChangeSet # 2004/06/18 08:10:43-07:00 wli@holomorphy.com # [PATCH] unregister driver if probing fails in sb_card.c # # * Unregister driver if probing fails in sound/oss/sb_card.c # This fixes Debian BTS #218845. # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=218845 # # From: Robin Gerard # To: submit@bugs.debian.org # Subject: no sound with kernel-image-2.6.0-test9-1-386 # Message-ID: <20031103004939.GA2071@mauritius> # # I downlaoded the kernel-image-2.6.0-test9-1-386_2.6.0-test9-1_i386.deb # and I installed it successfully. Everything works fine, except the sound. # (I run also the kernel-image-2.4.20 and the sound is ok with this kernel) # My sound card is a sb. # # First I launched modconf but no module was displayed. # # I did: modprobe sb # and I got: # # sb: Init: Done # sb: Init: Starting Probe... # kobject_register failed for OSS SndBlstr (-17) # Call Trace: # [] kobject_register+0x3a/0x40 # [] bus_add_driver+0x30/0x64 # [] driver_register+0x2d/0x34 # [] preempt_schedule+0x2a/0x48 # [] pnp_register_driver+0x28/0x58 # [] pnp_register_card_driver+0x5e/0x98 # [] sb_init+0x63/0xb5 [sb] # [] sys_init_module+0xe8/0x1f0 # [] syscall_call+0x7/0xb # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # sound/oss/sb_card.c # 2004/06/18 00:06:03-07:00 wli@holomorphy.com +7 -1 # unregister driver if probing fails in sb_card.c # # ChangeSet # 2004/06/18 08:10:32-07:00 wli@holomorphy.com # [PATCH] lower priority of "too many keys" msg in atkbd.c # # From: "Jon Thackray" # # * Lowered priority of "too many keys" message in drivers/input/keyboard/atkbd.c # This fixes Debian BTS #239036. # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=239036 # # # The keyboard under 2.6.4 seems to be behaving strangely, reporting unknown # key codes and too many keys pressed, even when no keys have been pressed. # The keyboard is connected via an 8 way KVM switch, but was working quite # acceptably under 2.4.25 with no such messages. Trying 2.6.3 is not an # option as it doesn't support the hardware properly, as previously reported. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/input/keyboard/atkbd.c # 2004/06/18 00:48:49-07:00 wli@holomorphy.com +1 -1 # lower priority of "too many keys" msg in atkbd.c # # ChangeSet # 2004/06/18 08:10:21-07:00 rddunlap@osdl.org # [PATCH] istallion printk fix # # istallion: Remove duplicate "%d" in printk(); # # Signed-off-by: Randy Dunlap # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/char/istallion.c # 2004/06/18 00:06:03-07:00 rddunlap@osdl.org +1 -1 # istallion printk fix # # ChangeSet # 2004/06/18 08:10:10-07:00 egmont@uhulinux.hu # [PATCH] Shift+PgUp if nr of scrolled lines is < 4 # # Using the vga console driver, if the number of the lines scrolled out is # less than four, then Shift+PageUp doesn't work. # # The bug is closely related to the 'margin' feature of scrolling, which # means that if less than four lines should remain unvisible in the direction # we are scrolling to, then we scroll a little bit more just to see those few # lines. Kind of two small magnets at the borders of the buffer. # # This bug was also reported with maybe a less clear description by Stepan # Koltsov (cc'ed just for fun) back in 2001 and he got no answer. I found it # at http://seclists.org/lists/linux-kernel/2001/Nov/0080.html # # His patch simply disables margin support and hence everythings becomes # okay, but you lose a nice feature. # # Here's a patch that retains margin support and fixes the bug. Works for # me, tested for a week. No guarantee. As I don't fully understand the code # (see also my previous mail) I'm not 100% sure that I'm doing the right # thing, so I'd prefer if someone would take a closer look at it. # # At least 2.4 and 2.6 are affected, maybe older ones too. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/video/console/vgacon.c # 2004/06/18 00:06:02-07:00 egmont@uhulinux.hu +2 -0 # Shift+PgUp if nr of scrolled lines is < 4 # # ChangeSet # 2004/06/18 08:09:59-07:00 davidel@xmailserver.org # [PATCH] epoll: replace the file lookup hash with rbtrees # # The epoll allocation for the fd lookup hash used to allocate up to 1MB # (depending on the "hint" size passed to epoll_create()) with # __get_free_pages(0), and this might lead to a "malicious" user to do # something like: # # for (i = 0; i < 1024; i++) # epoll_create(BIG-NUM); # # You can replace "malicious user" with IBM-ltp test suite, and the meaning # does not change. The above code might exhaust memory badly, even before # the file creation limit is topped. Also, the allocation was independent # from the number of fds pushed into the epoll fd hash. Using an rb-tree # ther will be not pre-allocation of the hash, and the size of the memory # used will be proportional to the number of fds pushed into the epoll fd. # The patch also removes 100 lines of code, that is never a bad thing ;) # # Signed-off-by: Davide Libenzi # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/eventpoll.c # 2004/06/18 00:06:02-07:00 davidel@xmailserver.org +93 -187 # epoll: replace the file lookup hash with rbtrees # # ChangeSet # 2004/06/18 08:09:48-07:00 rtjohnso@eecs.berkeley.edu # [PATCH] drivers/char/ipmi/ipmi_devintf.c: user/kernel pointer typo # # Judging from context, I think there's a misplaced "&" in this code that can # cause stack overflows and other nasty problems. Perhaps it's left over # from when msgdata was an array instead of a pointer? # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/char/ipmi/ipmi_devintf.c # 2004/06/18 00:32:07-07:00 rtjohnso@eecs.berkeley.edu +1 -1 # drivers/char/ipmi/ipmi_devintf.c: user/kernel pointer typo # # ChangeSet # 2004/06/18 08:09:37-07:00 akpm@osdl.org # [PATCH] Make update_one_process() static # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/timer.c # 2004/06/17 23:59:01-07:00 akpm@osdl.org +1 -1 # Make update_one_process() static # # include/linux/sched.h # 2004/06/18 00:32:06-07:00 akpm@osdl.org +0 -2 # Make update_one_process() static # # ChangeSet # 2004/06/18 08:09:26-07:00 vandrove@vc.cvut.cz # [PATCH] Decrease stack usage in ncpfs's ioctl # # It decreases stack consumption in one of ncpfs's paths from 3000 to 2200 # bytes (and stack portion in ncpfs ioctl code from 1336 to 452 bytes). # # - some code used large structure (with embeded 256 bytes for filename) # while it never passed filename around. Use something smaller in # ncp_conn_logged_in. Decrease 616 => 300. # # - gcc-3.3 is very bad when it comes to parallel blocks in ioctl. Split # some branches from large switch to separate functions. ncp_ioctl now # uses 152 bytes of stack (instead of 720) and biggest child 64. # # Signed-off-by: Petr Vandrovec # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/ncpfs/ncplib_kernel.h # 2004/06/17 23:59:01-07:00 vandrove@vc.cvut.cz +5 -3 # Decrease stack usage in ncpfs's ioctl # # fs/ncpfs/ncplib_kernel.c # 2004/06/17 23:59:01-07:00 vandrove@vc.cvut.cz +27 -15 # Decrease stack usage in ncpfs's ioctl # # fs/ncpfs/ioctl.c # 2004/06/17 23:59:01-07:00 vandrove@vc.cvut.cz +160 -157 # Decrease stack usage in ncpfs's ioctl # # fs/ncpfs/dir.c # 2004/06/17 23:59:01-07:00 vandrove@vc.cvut.cz +5 -5 # Decrease stack usage in ncpfs's ioctl # # ChangeSet # 2004/06/18 08:09:16-07:00 herbert@gondor.apana.org.au # [PATCH] swsusp: remove copy_pagedir # # It can be replaced by a simple memcpy. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/power/swsusp.c # 2004/06/17 23:59:00-07:00 herbert@gondor.apana.org.au +3 -16 # swsusp: remove copy_pagedir # # kernel/power/pmdisk.c # 2004/06/17 23:59:00-07:00 herbert@gondor.apana.org.au +4 -16 # swsusp: remove copy_pagedir # # ChangeSet # 2004/06/18 08:09:05-07:00 herbert@gondor.apana.org.au # [PATCH] remove unnecessary memsets from swsusp and pmdisk # # Here's the patch that removes the memset calls from both pmdisk and swsusp. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/power/swsusp.c # 2004/06/18 00:32:12-07:00 herbert@gondor.apana.org.au +0 -1 # remove unnecessary memsets from swsusp and pmdisk # # kernel/power/pmdisk.c # 2004/06/18 00:32:12-07:00 herbert@gondor.apana.org.au +0 -1 # remove unnecessary memsets from swsusp and pmdisk # # ChangeSet # 2004/06/18 08:08:54-07:00 herbert@gondor.apana.org.au # [PATCH] omdisk memory leak fix # # Fix a couple of memory leaks in the pmdisk driver. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/power/pmdisk.c # 2004/06/18 00:32:13-07:00 herbert@gondor.apana.org.au +11 -11 # omdisk memory leak fix # # ChangeSet # 2004/06/18 08:08:43-07:00 pavel@ucw.cz # [PATCH] Fix memory leak in swsusp # # This fixes 2 memory leaks in swsusp: during relocating pagedir, eaten pages # were not properly freed in error path and even regular freeing path was # freeing one page too little. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/power/swsusp.c # 2004/06/18 00:32:13-07:00 pavel@ucw.cz +16 -11 # Fix memory leak in swsusp # # ChangeSet # 2004/06/18 08:08:32-07:00 axboe@suse.de # [PATCH] blk: move threshold unplugging # # The 'unplug on queued exceeding unplug threshold' logic only works for file # system requests currently, since it's in __make_request(). Move it where # it belongs, in elv_add_request(). This way it works for queued block sg # requests as well. # # Signed-Off-By: Jens Axboe # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/blkdev.h # 2004/06/18 08:08:26-07:00 axboe@suse.de +1 -0 # blk: move threshold unplugging # # drivers/block/ll_rw_blk.c # 2004/06/18 08:08:26-07:00 axboe@suse.de +4 -7 # blk: move threshold unplugging # # drivers/block/elevator.c # 2004/06/18 08:08:26-07:00 axboe@suse.de +8 -0 # blk: move threshold unplugging # # ChangeSet # 2004/06/18 08:08:21-07:00 axboe@suse.de # [PATCH] fix cdrom mt rainier probe # # Mt rainier probe must be deferred to media load time, since it requires a # valid media (the drive may present a different capability based on what # media is loaded). This fixes that for ide-cd and sr. # # Signed-Off-By: Jens Axboe # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/scsi/sr.c # 2004/06/18 08:08:15-07:00 axboe@suse.de +1 -15 # fix cdrom mt rainier probe # # drivers/ide/ide-cd.h # 2004/06/18 08:08:15-07:00 axboe@suse.de +0 -2 # fix cdrom mt rainier probe # # drivers/ide/ide-cd.c # 2004/06/18 08:08:15-07:00 axboe@suse.de +1 -22 # fix cdrom mt rainier probe # # drivers/cdrom/cdrom.c # 2004/06/18 08:08:15-07:00 axboe@suse.de +30 -2 # fix cdrom mt rainier probe # # ChangeSet # 2004/06/18 08:08:10-07:00 mikem@beardog.cca.cpqcorp.net # [PATCH] cciss ioctl32 update # # This patch provides a conversion routine for 32-bit user space apps that # call into a 64-bit kernel on x86_64 architectures. This is required for # the HP Array Configuration utility and the HP management agents. Without # this patch the apps will not function. # # The 2 ioctls affected are the cciss pass thru ioctls. Caveat: it spits out # 2 warnings during compilation. I've tried everything I can think of to # clean them up, but... If anyone has any helpful suggestions I'm all ears. # # Code by Stephen Cameron # Tested by Stephen Cameron & Mike Miller # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/cciss_ioctl.h # 2004/06/18 08:08:04-07:00 mikem@beardog.cca.cpqcorp.net +28 -0 # cciss ioctl32 update # # drivers/block/cciss.c # 2004/06/18 08:08:04-07:00 mikem@beardog.cca.cpqcorp.net +144 -0 # cciss ioctl32 update # # ChangeSet # 2004/06/18 08:07:59-07:00 andrea@suse.de # [PATCH] remap_file_pages() speedup # # Avoid taking down_write(mmap_sem) unless we really need it. # # Seems that the only reason we're taking it for writing is to protect # vma->vm_flags. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/fremap.c # 2004/06/17 23:58:59-07:00 andrea@suse.de +12 -5 # remap_file_pages() speedup # # ChangeSet # 2004/06/18 08:07:48-07:00 arun.sharma@intel.com # [PATCH] sys_getdents64 needs compat wrapper # # Due to different structure alignment rules in the ABI between ia32 and # ia64, certain members of the dirent structure are not guaranteed to be 8 # byte aligned on ia64. This requires a compat wrapper around these 32 bit # system calls. Other architectures may or may not have the problem, # depending on the alignment rules. # # This was observed by running /emul/ia32-linux/bin/ls on 2.6.6 which produces # kernel mode unaligned faults. # # Original patch by: Arnd Bergmann # Signed-off-by: Gordon Jin # Signed-off-by: Arun Sharma # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/compat.c # 2004/06/17 23:58:59-07:00 arun.sharma@intel.com +255 -0 # sys_getdents64 needs compat wrapper # # arch/ia64/ia32/ia32_entry.S # 2004/06/17 23:58:59-07:00 arun.sharma@intel.com +2 -2 # sys_getdents64 needs compat wrapper # # ChangeSet # 2004/06/18 08:07:37-07:00 tvignaud@mandrakesoft.com # [PATCH] checksatck.pl fixes # # - "\<" and "\>" can be safely replaced with "<" and ">" # # - "$var =~ /^string$/" is better written "$var eq 'string'" # # - $i is better written without the double quotes # # - it's not safe to use for without "my"ing the iteration variable # # - "print foreach @array" is better written "print @array" # # - declare variables # # - ".*" is useless at the end of a regexp # # - "$a[@a] = $foo" is a rather obfuscated syntax for "push @a, $foo"... # let's not opencoding language basic operators... # # - ignoring return value from a regexp is very bad: this can results in # working on previous value of $1, $2, ... # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # scripts/checkstack.pl # 2004/06/17 23:58:59-07:00 tvignaud@mandrakesoft.com +14 -15 # checksatck.pl fixes # # ChangeSet # 2004/06/18 08:07:26-07:00 ashok.raj@intel.com # [PATCH] don't create cpu/online sysfs file # # This file provides ability for caller of register_cpu() to either create a # control file, or not. This can be handy if a particular platform decides # that certain CPU's are not removable. Hence would like to not create a # control file. # # Signed-off-by: Dave Hansen # Signed-off-by: Ashok Raj # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/cpu.h # 2004/06/17 23:58:59-07:00 ashok.raj@intel.com +1 -0 # don't create cpu/online sysfs file # # drivers/base/cpu.c # 2004/06/17 23:58:59-07:00 ashok.raj@intel.com +3 -1 # don't create cpu/online sysfs file # # arch/ppc64/kernel/sysfs.c # 2004/06/17 23:58:59-07:00 ashok.raj@intel.com +10 -0 # don't create cpu/online sysfs file # # ChangeSet # 2004/06/18 08:07:15-07:00 umka@namesys.com # [PATCH] memory allocation checks in cs46xx_dsp_proc_register_scb_desc() # # Adds memory allocation checks in cs46xx_dsp_proc_register_scb_desc() # # Signed-off-by: Yury Umanets # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # sound/pci/cs46xx/dsp_spos_scb_lib.c # 2004/06/17 23:57:06-07:00 umka@namesys.com +7 -1 # memory allocation checks in cs46xx_dsp_proc_register_scb_desc() # # ChangeSet # 2004/06/18 08:07:05-07:00 torque@ukrpost.net # [PATCH] memory allocation checks in mtdblock_open() # # Fixes memory allocation check in mtdblock_open() # # Signed-off-by: Yury Umanets # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/mtd/mtdblock.c # 2004/06/17 23:57:06-07:00 torque@ukrpost.net +1 -1 # memory allocation checks in mtdblock_open() # # ChangeSet # 2004/06/18 08:06:54-07:00 torque@ukrpost.net # [PATCH] memory allocation checks in eth1394_update() # # Adds memory allocation checks in eth1394_update(). # # Signed-off-by: Yury Umanets # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/ieee1394/eth1394.c # 2004/06/17 23:57:06-07:00 torque@ukrpost.net +4 -1 # memory allocation checks in eth1394_update() # # ChangeSet # 2004/06/18 08:06:43-07:00 ak@suse.de # [PATCH] Use numa policy API for boot time policy # # Suggested by Manfred Spraul. # # __get_free_pages had a hack to do node interleaving allocation at boot # time. This patch sets an interleave process policy using the NUMA API for # init and the idle threads instead. Before entering the user space init the # policy is reset to default again. Result is the same. # # Advantage is less code and removing of a check from a fast path. # # Removes more code than it adds. # # I verified that the memory distribution after boot is roughly the same. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/page_alloc.c # 2004/06/17 23:57:05-07:00 ak@suse.de +0 -41 # Use numa policy API for boot time policy # # mm/mempolicy.c # 2004/06/17 23:57:05-07:00 ak@suse.de +15 -3 # Use numa policy API for boot time policy # # init/main.c # 2004/06/18 00:32:11-07:00 ak@suse.de +4 -0 # Use numa policy API for boot time policy # # include/linux/mempolicy.h # 2004/06/17 23:57:05-07:00 ak@suse.de +11 -0 # Use numa policy API for boot time policy # # ChangeSet # 2004/06/18 08:06:32-07:00 wli@holomorphy.com # [PATCH] apic: make mach_default compile again # # While sweeping the APIC code two points were missed. The first is getting # the definition of BAD_APICID available to # include/asm-i386/mach-default/mach_apic.h by #including the right header, # and the second is UP local APIC without UP IO-APIC linking in # get_broadcast_physid(). # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-i386/mach-default/mach_apic.h # 2004/06/17 23:56:25-07:00 wli@holomorphy.com +1 -0 # apic: make mach_default compile again # # arch/i386/kernel/io_apic.c # 2004/06/17 23:56:25-07:00 wli@holomorphy.com +0 -11 # apic: make mach_default compile again # # arch/i386/kernel/apic.c # 2004/06/17 23:56:25-07:00 wli@holomorphy.com +11 -0 # apic: make mach_default compile again # # ChangeSet # 2004/06/18 08:06:21-07:00 wli@holomorphy.com # [PATCH] apic: remove marking of non-present physids in phys_cpu_present_map # # Marking invalid APIC ID's in phys_cpu_present_map was intended to generate # "collisions" between APIC ID's in order to assist the ordinary bounds # checking against the broadcast physical APIC ID. However, this is bounds # checked everywhere it's necessary, and it's also not even possible to # properly bounds-check everywhere. So this patch removes that marking of # non-present physical APIC ID's. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/mach-visws/mpparse.c # 2004/06/17 23:56:23-07:00 wli@holomorphy.com +0 -8 # apic: remove marking of non-present physids in phys_cpu_present_map # # arch/i386/kernel/mpparse.c # 2004/06/17 23:56:23-07:00 wli@holomorphy.com +1 -13 # apic: remove marking of non-present physids in phys_cpu_present_map # # ChangeSet # 2004/06/18 08:06:09-07:00 wli@holomorphy.com # [PATCH] apic: fix kicking of non-present cpus # # The following patch repairs kicking of non-present cpus by making # cpu_present_to_apicid() bounds-check its argument. It also corrects the # same issue on NUMA-Q by correctly passing the generated artificial APIC ID # instead of the raw value discovered in the MP table. # # A miscellaneous compilefix for CONFIG_ACPI_BOOT is also included for # completeness. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-i386/mach-visws/mach_apic.h # 2004/06/17 23:55:40-07:00 wli@holomorphy.com +4 -1 # apic: fix kicking of non-present cpus # # include/asm-i386/mach-default/mach_apic.h # 2004/06/18 00:32:15-07:00 wli@holomorphy.com +4 -1 # apic: fix kicking of non-present cpus # # include/asm-i386/apic.h # 2004/06/17 23:55:40-07:00 wli@holomorphy.com +2 -0 # apic: fix kicking of non-present cpus # # arch/i386/kernel/mpparse.c # 2004/06/18 00:32:15-07:00 wli@holomorphy.com +4 -4 # apic: fix kicking of non-present cpus # # arch/i386/kernel/io_apic.c # 2004/06/18 00:32:15-07:00 wli@holomorphy.com +1 -1 # apic: fix kicking of non-present cpus # # ChangeSet # 2004/06/18 08:05:58-07:00 wli@holomorphy.com # [PATCH] APIC enumeration fixes # # The following patch appears sound according to an audit to ensure that all # of the codepaths where it was introduced were called after the APIC # fixmappings were set up. # # This patch introduces get_physical_broadcast(), which checks the version ID # of the local APIC to determine whether it's a serial APIC or xAPIC, and # returns the correct physical broadcast ID. It replaces all uses of # APIC_BROADCAST_ID and IO_APIC_MAX_ID with this in order to ensure. It also # changes the checks during MP table parsing so the APIC ID is checked in # tandem with the version number. # # I'm holding out for some kind of testing to get an idea of whether this # covers the cases or introduces regressions, or whatever. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-i386/mpspec_def.h # 2004/06/17 23:55:23-07:00 wli@holomorphy.com +1 -0 # APIC enumeration fixes # # include/asm-i386/mach-visws/mach_apic.h # 2004/06/18 00:32:15-07:00 wli@holomorphy.com +0 -1 # APIC enumeration fixes # # include/asm-i386/mach-summit/mach_mpspec.h # 2004/06/17 23:55:23-07:00 wli@holomorphy.com +0 -5 # APIC enumeration fixes # # include/asm-i386/mach-summit/mach_apic.h # 2004/06/17 23:55:23-07:00 wli@holomorphy.com +0 -1 # APIC enumeration fixes # # include/asm-i386/mach-numaq/mach_mpspec.h # 2004/06/17 23:55:23-07:00 wli@holomorphy.com +0 -5 # APIC enumeration fixes # # include/asm-i386/mach-numaq/mach_apic.h # 2004/06/17 23:55:23-07:00 wli@holomorphy.com +0 -1 # APIC enumeration fixes # # include/asm-i386/mach-generic/mach_mpspec.h # 2004/06/17 23:55:23-07:00 wli@holomorphy.com +0 -5 # APIC enumeration fixes # # include/asm-i386/mach-generic/mach_apic.h # 2004/06/17 23:55:23-07:00 wli@holomorphy.com +0 -1 # APIC enumeration fixes # # include/asm-i386/mach-es7000/mach_mpspec.h # 2004/06/17 23:55:23-07:00 wli@holomorphy.com +0 -5 # APIC enumeration fixes # # include/asm-i386/mach-es7000/mach_apic.h # 2004/06/17 23:55:23-07:00 wli@holomorphy.com +0 -1 # APIC enumeration fixes # # include/asm-i386/mach-default/mach_mpspec.h # 2004/06/17 23:55:23-07:00 wli@holomorphy.com +0 -5 # APIC enumeration fixes # # include/asm-i386/mach-default/mach_apic.h # 2004/06/18 00:32:15-07:00 wli@holomorphy.com +0 -6 # APIC enumeration fixes # # include/asm-i386/mach-bigsmp/mach_mpspec.h # 2004/06/17 23:55:23-07:00 wli@holomorphy.com +0 -5 # APIC enumeration fixes # # include/asm-i386/mach-bigsmp/mach_apic.h # 2004/06/17 23:55:23-07:00 wli@holomorphy.com +0 -1 # APIC enumeration fixes # # include/asm-i386/genapic.h # 2004/06/17 23:55:23-07:00 wli@holomorphy.com +0 -2 # APIC enumeration fixes # # arch/i386/mach-visws/mpparse.c # 2004/06/18 00:32:15-07:00 wli@holomorphy.com +10 -2 # APIC enumeration fixes # # arch/i386/kernel/mpparse.c # 2004/06/18 00:32:15-07:00 wli@holomorphy.com +30 -2 # APIC enumeration fixes # # arch/i386/kernel/io_apic.c # 2004/06/18 00:32:15-07:00 wli@holomorphy.com +18 -9 # APIC enumeration fixes # # ChangeSet # 2004/06/18 08:05:47-07:00 akpm@osdl.org # [PATCH] i386 uninline some bitops # # Uninline the non-leaf bit search functions. Saves 9 kbytes from my vmlinux. # # And gratuitously s/__inline__/inline/ # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/lib/bitops.c # 2004/06/17 23:55:22-07:00 akpm@osdl.org +70 -0 # i386 uninline some bitops # # include/asm-i386/bitops.h # 2004/06/17 23:55:22-07:00 akpm@osdl.org +27 -77 # i386 uninline some bitops # # arch/i386/lib/bitops.c # 2004/06/17 23:55:22-07:00 akpm@osdl.org +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/i386/lib/bitops.c # # arch/i386/lib/Makefile # 2004/06/17 23:55:22-07:00 akpm@osdl.org +2 -3 # i386 uninline some bitops # # ChangeSet # 2004/06/18 08:05:36-07:00 wli@holomorphy.com # [PATCH] x86_64 numa cpumask build fix # # arch/x86_64/mm/numa.c: In function `numa_initmem_init': # arch/x86_64/mm/numa.c:185: error: incompatible types in assignment # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/x86_64/mm/numa.c # 2004/06/17 23:53:45-07:00 wli@holomorphy.com +1 -1 # x86_64 numa cpumask build fix # # ChangeSet # 2004/06/18 08:05:25-07:00 tom.l.nguyen@intel.com # [PATCH] msi TARGET_CPUS fix # # Somehow the change in TARGET_CPUS generated this error in UP environment. # Patch below will fix it. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-i386/msi.h # 2004/06/17 23:53:44-07:00 tom.l.nguyen@intel.com +1 -1 # msi TARGET_CPUS fix # # ChangeSet # 2004/06/18 08:05:14-07:00 kevcorry@us.ibm.com # [PATCH] dm: dm-raid1.c: Use list_for_each_entry_safe # # dm-raid1.c: In rh_exit(), use list_for_each_entry_safe instead of # list_for_each_safe. # # Signed-off-by: Kevin Corry # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/md/dm-raid1.c # 2004/06/17 23:53:44-07:00 kevcorry@us.ibm.com +2 -4 # dm: dm-raid1.c: Use list_for_each_entry_safe # # ChangeSet # 2004/06/18 08:05:03-07:00 kevcorry@us.ibm.com # [PATCH] dm: dm-raid1.c: Make delayed_bios a bio_list # # dm-raid1.c: Make struct region::delayed_bios a bio_list instead of a bio*. # This will ensure the queued bios are kept in the proper order. # # Signed-off-by: Kevin Corry # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/md/dm-raid1.c # 2004/06/18 00:32:16-07:00 kevcorry@us.ibm.com +7 -10 # dm: dm-raid1.c: Make delayed_bios a bio_list # # ChangeSet # 2004/06/18 08:04:52-07:00 kevcorry@us.ibm.com # [PATCH] dm: dm-io: Error handling # # dm-io: Proper error handling when someone is trying to read from multiple # regions. # # Signed-off-by: Kevin Corry # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/md/dm-io.c # 2004/06/17 23:53:44-07:00 kevcorry@us.ibm.com +12 -2 # dm: dm-io: Error handling # # ChangeSet # 2004/06/18 08:04:41-07:00 kevcorry@us.ibm.com # [PATCH] dm: Use structure assignments instead of memcpy # # Use structure assignments instead of memcpy's. # [Suggested by akpm during kcopyd review.] # # Signed-off-by: Kevin Corry # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/md/kcopyd.c # 2004/06/17 23:53:44-07:00 kevcorry@us.ibm.com +2 -2 # dm: Use structure assignments instead of memcpy # # drivers/md/dm.c # 2004/06/17 23:53:44-07:00 kevcorry@us.ibm.com +1 -1 # dm: Use structure assignments instead of memcpy # # drivers/md/dm-table.c # 2004/06/17 23:53:44-07:00 kevcorry@us.ibm.com +2 -2 # dm: Use structure assignments instead of memcpy # # drivers/md/dm-snap.c # 2004/06/17 23:53:44-07:00 kevcorry@us.ibm.com +1 -1 # dm: Use structure assignments instead of memcpy # # drivers/md/dm-raid1.c # 2004/06/18 00:32:16-07:00 kevcorry@us.ibm.com +2 -2 # dm: Use structure assignments instead of memcpy # # ChangeSet # 2004/06/18 08:04:32-07:00 kevcorry@us.ibm.com # [PATCH] dm: Create/destroy kcopyd on demand. # # Create/destroy kcopyd on demand. # # This changes kcopyd to initialize its mempool and workqueue only when a # client specifically needs to use it. # # Signed-off-by: Kevin Corry # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/md/kcopyd.h # 2004/06/17 23:53:44-07:00 kevcorry@us.ibm.com +0 -3 # dm: Create/destroy kcopyd on demand. # # drivers/md/kcopyd.c # 2004/06/18 00:32:16-07:00 kevcorry@us.ibm.com +61 -27 # dm: Create/destroy kcopyd on demand. # # drivers/md/dm.h # 2004/06/17 23:53:44-07:00 kevcorry@us.ibm.com +0 -3 # dm: Create/destroy kcopyd on demand. # # drivers/md/dm.c # 2004/06/18 00:32:16-07:00 kevcorry@us.ibm.com +0 -1 # dm: Create/destroy kcopyd on demand. # # ChangeSet # 2004/06/18 08:04:21-07:00 kevcorry@us.ibm.com # [PATCH] dm: Documentation # # Device-Mapper documentation. # # Signed-off-by: Kevin Corry # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # Documentation/device-mapper/zero.txt # 2004/06/17 23:53:44-07:00 kevcorry@us.ibm.com +37 -0 # dm: Documentation # # Documentation/device-mapper/striped.txt # 2004/06/17 23:53:44-07:00 kevcorry@us.ibm.com +58 -0 # dm: Documentation # # Documentation/device-mapper/linear.txt # 2004/06/17 23:53:44-07:00 kevcorry@us.ibm.com +61 -0 # dm: Documentation # # Documentation/device-mapper/kcopyd.txt # 2004/06/17 23:53:44-07:00 kevcorry@us.ibm.com +47 -0 # dm: Documentation # # Documentation/device-mapper/dm-io.txt # 2004/06/17 23:53:44-07:00 kevcorry@us.ibm.com +75 -0 # dm: Documentation # # Documentation/device-mapper/zero.txt # 2004/06/17 23:53:44-07:00 kevcorry@us.ibm.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/Documentation/device-mapper/zero.txt # # Documentation/device-mapper/striped.txt # 2004/06/17 23:53:44-07:00 kevcorry@us.ibm.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/Documentation/device-mapper/striped.txt # # Documentation/device-mapper/linear.txt # 2004/06/17 23:53:44-07:00 kevcorry@us.ibm.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/Documentation/device-mapper/linear.txt # # Documentation/device-mapper/kcopyd.txt # 2004/06/17 23:53:44-07:00 kevcorry@us.ibm.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/Documentation/device-mapper/kcopyd.txt # # Documentation/device-mapper/dm-io.txt # 2004/06/17 23:53:44-07:00 kevcorry@us.ibm.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/Documentation/device-mapper/dm-io.txt # # ChangeSet # 2004/06/18 08:04:10-07:00 christophe@saout.de # [PATCH] Device-mapper: dm-zero flushing fix # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/md/dm-zero.c # 2004/06/17 23:53:43-07:00 christophe@saout.de +2 -1 # Device-mapper: dm-zero flushing fix # # ChangeSet # 2004/06/18 08:03:59-07:00 kevcorry@us.ibm.com # [PATCH] dm: dm-zero version # # Add missing dm-zero version number. # # From: Alasdair Kergon # Signed-off-by: Kevin Corry # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/md/dm-zero.c # 2004/06/18 00:32:17-07:00 kevcorry@us.ibm.com +1 -0 # dm: dm-zero version # # ChangeSet # 2004/06/18 08:03:48-07:00 agk@redhat.com # [PATCH] Device-mapper: dm-zero # # Add dm-zero target # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/md/dm-zero.c # 2004/06/18 00:32:17-07:00 agk@redhat.com +96 -0 # Device-mapper: dm-zero # # drivers/md/dm-zero.c # 2004/06/18 00:32:17-07:00 agk@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/md/dm-zero.c # # drivers/md/Makefile # 2004/06/17 23:53:43-07:00 agk@redhat.com +1 -0 # Device-mapper: dm-zero # # drivers/md/Kconfig # 2004/06/17 23:53:43-07:00 agk@redhat.com +7 -0 # Device-mapper: dm-zero # # ChangeSet # 2004/06/18 08:03:37-07:00 agk@redhat.com # [PATCH] Device-mapper: mirroring # # Add mirror target. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/md/dm-raid1.c # 2004/06/18 00:32:16-07:00 agk@redhat.com +1283 -0 # Device-mapper: mirroring # # drivers/md/dm-log.h # 2004/06/17 23:53:43-07:00 agk@redhat.com +124 -0 # Device-mapper: mirroring # # drivers/md/dm-log.c # 2004/06/17 23:53:43-07:00 agk@redhat.com +629 -0 # Device-mapper: mirroring # # drivers/md/dm-raid1.c # 2004/06/18 00:32:16-07:00 agk@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/md/dm-raid1.c # # drivers/md/dm-log.h # 2004/06/17 23:53:43-07:00 agk@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/md/dm-log.h # # drivers/md/dm-log.c # 2004/06/17 23:53:43-07:00 agk@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/md/dm-log.c # # drivers/md/Makefile # 2004/06/18 00:32:17-07:00 agk@redhat.com +2 -0 # Device-mapper: mirroring # # drivers/md/Kconfig # 2004/06/18 00:32:17-07:00 agk@redhat.com +7 -0 # Device-mapper: mirroring # # ChangeSet # 2004/06/18 08:03:25-07:00 kevcorry@us.ibm.com # [PATCH] dm: Fix error cleanup in dm_create_persistent() # # dm-exception-store.c: Fix error cleanup in dm_create_persistent(). # This was originally found by chrisw during code review. # # From: Dave Olien # Signed-off-by: Kevin Corry # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/md/dm-exception-store.c # 2004/06/17 23:53:43-07:00 kevcorry@us.ibm.com +2 -2 # dm: Fix error cleanup in dm_create_persistent() # # ChangeSet # 2004/06/18 08:03:15-07:00 agk@redhat.com # [PATCH] Device-mapper: snapshots # # Add snapshot target # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/md/dm-snap.h # 2004/06/17 23:53:43-07:00 agk@redhat.com +161 -0 # Device-mapper: snapshots # # drivers/md/dm-snap.c # 2004/06/18 00:32:16-07:00 agk@redhat.com +1213 -0 # Device-mapper: snapshots # # drivers/md/dm-snap.h # 2004/06/17 23:53:43-07:00 agk@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/md/dm-snap.h # # drivers/md/dm-snap.c # 2004/06/18 00:32:16-07:00 agk@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/md/dm-snap.c # # drivers/md/dm-exception-store.c # 2004/06/18 00:32:17-07:00 agk@redhat.com +648 -0 # Device-mapper: snapshots # # drivers/md/Makefile # 2004/06/18 00:32:17-07:00 agk@redhat.com +2 -0 # Device-mapper: snapshots # # drivers/md/Kconfig # 2004/06/18 00:32:17-07:00 agk@redhat.com +6 -0 # Device-mapper: snapshots # # drivers/md/dm-exception-store.c # 2004/06/18 00:32:17-07:00 agk@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/md/dm-exception-store.c # # ChangeSet # 2004/06/18 08:03:03-07:00 kevcorry@us.ibm.com # [PATCH] kcopyd commentary # # We're also working on some general documentation which will go in # Documentation/device-mapper and will include more detailed information # about the core driver and the other sub-modules. We'll try to submit those # patches in the near future. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/md/kcopyd.h # 2004/06/18 00:32:16-07:00 kevcorry@us.ibm.com +4 -0 # kcopyd commentary # # drivers/md/kcopyd.c # 2004/06/18 00:32:16-07:00 kevcorry@us.ibm.com +4 -0 # kcopyd commentary # # ChangeSet # 2004/06/18 08:02:55-07:00 kevcorry@us.ibm.com # [PATCH] dm: kcopyd: No need to lock pages # # No need to lock kcopyd pages. # # From: Alasdair Kergon # Signed-off-by: Kevin Corry # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/md/kcopyd.c # 2004/06/18 00:32:18-07:00 kevcorry@us.ibm.com +0 -2 # dm: kcopyd: No need to lock pages # # ChangeSet # 2004/06/18 08:02:44-07:00 kevcorry@us.ibm.com # [PATCH] dm: kcopyd: remove superfluous INIT_LIST_HEADs # # Remove superfluous kcopyd INIT_LIST_HEAD. # # From: Alasdair Kergon # Signed-off-by: Kevin Corry # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/md/kcopyd.c # 2004/06/18 00:32:18-07:00 kevcorry@us.ibm.com +0 -4 # dm: kcopyd: remove superfluous INIT_LIST_HEADs # # ChangeSet # 2004/06/18 08:02:33-07:00 agk@redhat.com # [PATCH] Device-mapper: kcopyd # # Add kcopyd - a daemon for copying regions of block devices around in an # efficient manner. Multiple destinations can be specified for a copy. # Designed to perform well both with many small chunks or few large chunks. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/md/kcopyd.h # 2004/06/18 00:32:18-07:00 agk@redhat.com +41 -0 # Device-mapper: kcopyd # # drivers/md/kcopyd.c # 2004/06/18 00:32:18-07:00 agk@redhat.com +667 -0 # Device-mapper: kcopyd # # drivers/md/kcopyd.h # 2004/06/18 00:32:18-07:00 agk@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/md/kcopyd.h # # drivers/md/kcopyd.c # 2004/06/18 00:32:18-07:00 agk@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/md/kcopyd.c # # drivers/md/dm.h # 2004/06/18 00:32:16-07:00 agk@redhat.com +3 -0 # Device-mapper: kcopyd # # drivers/md/dm.c # 2004/06/18 00:32:16-07:00 agk@redhat.com +1 -0 # Device-mapper: kcopyd # # drivers/md/Makefile # 2004/06/18 00:32:17-07:00 agk@redhat.com +1 -1 # Device-mapper: kcopyd # # ChangeSet # 2004/06/18 08:02:21-07:00 agk@redhat.com # [PATCH] dm-io: device-mapper i/o library for kcopyd # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/md/dm-io.h # 2004/06/17 23:53:42-07:00 agk@redhat.com +77 -0 # dm-io: device-mapper i/o library for kcopyd # # mm/mempool.c # 2004/06/17 23:53:42-07:00 agk@redhat.com +0 -6 # dm-io: device-mapper i/o library for kcopyd # # drivers/md/dm-io.h # 2004/06/17 23:53:42-07:00 agk@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/md/dm-io.h # # drivers/md/dm-io.c # 2004/06/18 00:32:16-07:00 agk@redhat.com +637 -0 # dm-io: device-mapper i/o library for kcopyd # # drivers/md/Makefile # 2004/06/18 00:32:18-07:00 agk@redhat.com +1 -1 # dm-io: device-mapper i/o library for kcopyd # # drivers/md/dm-io.c # 2004/06/18 00:32:16-07:00 agk@redhat.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/md/dm-io.c # # ChangeSet # 2004/06/18 08:02:10-07:00 bogdan.costescu@iwr.uni-heidelberg.de # [PATCH] 3c59x: support for ATI Radeon 9100 IGP # # The following patch adds support for the 3Com networking core found in the # ATI Radeon 9100 IGP southbridge used on boards like Asus P4R800-VM. # # The main point of this patch is using HAS_MII instead of HAS_NWAY for the # definition of the board. All the previous trials since the end of last # year used HAS_NWAY which disables the Tx part of the transceiver; using # HAS_NWAY was the way all 3Com Cyclone and Tornado chips worked, as they had # the transceiver integrated. The ATI solution has an external transceiver # and I had to physically see the different chip on the board (the board was # provided by ATI) to finally understand that it needs the HAS_MII # definition... I'm still waiting for some docs from ATI to clarify if this # is the correct way of handling this chip and if there are any differences # w.r.t EEPROM handling, but as it appears to work and was also confirmed by # other testers, I don't want to keep owners of such boards away from their # networks :-) # # The textual identification was a bit hard to decide; it's called # "3c920B-EMB-WNM" in the Windows .INF file that Asus provides for their # boards. As this name was already used for PCI ID 9210, I added the # paranthesis which specifies where this chip is found. # # The Scyld driver defines FEATURE_TORNADO to include HAS_NWAY. This board # would then probably need to not be defined with FEATURE_TORNADO, but the # same as in this patch. # # I would like to publicly thank Tyson Vickers for both ideas and patience # during the last few weeks. He managed to get the driver working by # randomly setting driver parameters :-) But then he contacted me and worked # with me towards the solution. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/net/3c59x.c # 2004/06/17 23:53:42-07:00 bogdan.costescu@iwr.uni-heidelberg.de +8 -4 # 3c59x: support for ATI Radeon 9100 IGP # # ChangeSet # 2004/06/18 08:01:58-07:00 thomas@winischhofer.net # [PATCH] sisfb update 1.7.10 # # attached is an update for the sisfb driver to version 1.7.10. # # This update includes # # - fixes for pure 64bit and 32/64bit mixed systems (add ioctl conversion; # fix variable sizes, etc; REQUIRED for current X.org/XFree86 on 64bit # systems, even if pure 64bit), # # - fixes for 301C video bridge, (scales TV output correctly now) # # - fixes for 1600x1200 and 1400x1050 LCD panels, # # - many fixes for 661/741/760 (amongst others, proper LFB support for the # 760 and corrections for SiS' new BIOS data layout; would lead to display # corruption with old driver) # # - add support for many modes for LCD which were unsupported previously, # # - add support for HiVision and YPbPr HDTV # # - "vga=" statement now honoured properly (sisfb will set the same mode as # the kernel did by default) # # - use LCD native resolution mode if no mode is given # # - a major clean up of main driver code, # # - radical removal of duplicate (or nearly duplicate) code, # # - switched to 2.6 module_param macros, # # - enhanced communication with the X driver, # # - added eventual POSTing of SiS300/305 card for non-x86 archs, # # - added ability to relocate the image on the TV screen using a userland # tool, # # - added Documentation/fb/sisfb.txt (why the heck was this missing?!) # # - small fix for SiS DRM driver (match 32/64bit fixes mentioned above) # (cast the data passed to sis_free as u32) # # - make driver re-entrant by avoiding static structures and variables. # # As usual, heavily tested. The mode switching code is even lab-tested by # SiS (although 100% written by me). Please apply asap (especially since # 64bit systems were not properly supported previously; as mentioned, current # X.org/XFree86 needs this update for proper communication with the # framebuffer driver on 64bit systems. X crashes on such systems with the # old driver). # # Signed-off-by: Thomas Winischhofer # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # ChangeSet # 2004/06/18 10:01:56-05:00 jeremy@sgi.com # [PATCH] SCSI whitelist changes # # The BLIST_REPORTLUN2 blacklist item has exactly the behavior that # the MYLEX DACARMRB (and SGI TP9100, which is really a 2Gb upgrade # to the DACARMRB) need. # # These devices use a PQ of 1 instead of 3 for unconfigured luns, # which means that every RAID has 32 luns, many or most of which # are just phantoms. # # However, it does support Report Luns, and it returns the correct # data. # # Signed-off-by: James Bottomley # # include/video/sisfb.h # 2004/06/17 23:53:42-07:00 thomas@winischhofer.net +80 -171 # sisfb update 1.7.10 # # drivers/video/sis/vstruct.h # 2004/06/17 23:53:42-07:00 thomas@winischhofer.net +58 -100 # sisfb update 1.7.10 # # drivers/video/sis/vgatypes.h # 2004/06/17 23:53:42-07:00 thomas@winischhofer.net +62 -103 # sisfb update 1.7.10 # # drivers/video/sis/sis_main.h # 2004/06/17 23:53:42-07:00 thomas@winischhofer.net +365 -704 # sisfb update 1.7.10 # # drivers/video/sis/sis_main.c # 2004/06/17 23:53:41-07:00 thomas@winischhofer.net +3762 -3016 # sisfb update 1.7.10 # # drivers/video/sis/sis_accel.h # 2004/06/17 23:53:41-07:00 thomas@winischhofer.net +140 -264 # sisfb update 1.7.10 # # drivers/video/sis/sis_accel.c # 2004/06/17 23:53:41-07:00 thomas@winischhofer.net +188 -187 # sisfb update 1.7.10 # # drivers/video/sis/sis.h # 2004/06/17 23:53:41-07:00 thomas@winischhofer.net +497 -2 # sisfb update 1.7.10 # # drivers/video/sis/osdef.h # 2004/06/17 23:53:41-07:00 thomas@winischhofer.net +45 -65 # sisfb update 1.7.10 # # drivers/video/sis/oem310.h # 2004/06/17 23:53:41-07:00 thomas@winischhofer.net +32 -196 # sisfb update 1.7.10 # # drivers/video/sis/oem300.h # 2004/06/17 23:53:41-07:00 thomas@winischhofer.net +3 -5 # sisfb update 1.7.10 # # drivers/video/sis/initdef.h # 2004/06/17 23:53:41-07:00 thomas@winischhofer.net +85 -37 # sisfb update 1.7.10 # # drivers/video/sis/init301.h # 2004/06/17 23:53:41-07:00 thomas@winischhofer.net +132 -60 # sisfb update 1.7.10 # # drivers/video/sis/init.h # 2004/06/17 23:53:41-07:00 thomas@winischhofer.net +198 -607 # sisfb update 1.7.10 # # drivers/video/sis/init.c # 2004/06/17 23:53:41-07:00 thomas@winischhofer.net +961 -1060 # sisfb update 1.7.10 # # Documentation/fb/sisfb.txt # 2004/06/17 23:53:41-07:00 thomas@winischhofer.net +158 -0 # sisfb update 1.7.10 # # drivers/video/sis/init301.c # 2004/06/17 23:53:41-07:00 thomas@winischhofer.net +3425 -4113 # sisfb update 1.7.10 # # drivers/video/sis/310vtbl.h # 2004/06/17 23:53:41-07:00 thomas@winischhofer.net +507 -1122 # sisfb update 1.7.10 # # drivers/video/sis/300vtbl.h # 2004/06/17 23:53:41-07:00 thomas@winischhofer.net +346 -458 # sisfb update 1.7.10 # # drivers/char/drm/sis_mm.c # 2004/06/17 23:53:41-07:00 thomas@winischhofer.net +2 -2 # sisfb update 1.7.10 # # Documentation/ioctl-number.txt # 2004/06/17 23:53:41-07:00 thomas@winischhofer.net +2 -0 # sisfb update 1.7.10 # # Documentation/fb/sisfb.txt # 2004/06/17 23:53:41-07:00 thomas@winischhofer.net +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/Documentation/fb/sisfb.txt # # ChangeSet # 2004/06/18 08:01:45-07:00 paul@serice.net # [PATCH] iso9660: NFS fix # # Make all inode numbers unique for images less than 128GB in size. Required # for knfsd. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/scsi/scsi_devinfo.c # 2004/06/17 17:22:09-05:00 jeremy@sgi.com +2 -2 # SCSI whitelist changes # # include/linux/iso_fs.h # 2004/06/17 23:53:41-07:00 paul@serice.net +6 -12 # iso9660: NFS fix # # fs/isofs/inode.c # 2004/06/18 00:32:11-07:00 paul@serice.net +4 -2 # iso9660: NFS fix # # fs/isofs/dir.c # 2004/06/18 00:32:11-07:00 paul@serice.net +12 -3 # iso9660: NFS fix # # ChangeSet # 2004/06/18 08:01:34-07:00 paul@serice.net # [PATCH] iso9660: fix handling of inodes beyond 4GB # # This is my fourth attempt to patch the isofs code. It is similar to the last # posting except this one implements the NFS get_parent() method which has # always been missing. # # The original problem I set out to addresses is that the current iso9660 file # system cannot reach inodes located beyond the 4GB barrier. This is caused by # using the inode number as the byte offset of the inode data. Being 32-bits # wide, the inode number is unable to reach inode data that does not reside on # the first 4GB of the file system. # # This causes real problems with "growisofs" # # http://fy.chalmers.se/~appro/linux/DVD+RW/#isofs4gb # # and my pet project "shunt" # # http://www.serice.net/shunt/ # # This patch switches the isofs code from iget() to iget5_locked() which allows # extra data to be passed into isofs_read_inode() so that inode data anywhere on # the disk can be reached. # # The inode number scheme was also changed. Continuing to use the byte offset # would have resulted in non-unique inodes in many common situations, but # because the inode number no longer plays any role in reading the meta-data off # the disk, I was free to set the inode number to some unique characteristic of # the file. I have chosen to use the block offset which is also 32-bits wide. # # Lastly, the pre-patch code uses the default export_operations to handle # accessing the file system through NFS. The problem with this is that the # default NFS operations assume that iget() works which is no longer the case # because of the necessity of switching to iget5_locked(). So, I had to # implement the NFS operations too. As a bonus, I went ahead and implemented # the NFS get_parent() method which has always been missing. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/isofs/export.c # 2004/06/17 23:53:41-07:00 paul@serice.net +228 -0 # iso9660: fix handling of inodes beyond 4GB # # include/linux/iso_fs_i.h # 2004/06/17 23:53:41-07:00 paul@serice.net +4 -1 # iso9660: fix handling of inodes beyond 4GB # # include/linux/iso_fs.h # 2004/06/18 00:32:20-07:00 paul@serice.net +66 -0 # iso9660: fix handling of inodes beyond 4GB # # fs/isofs/rock.c # 2004/06/17 23:53:41-07:00 paul@serice.net +7 -8 # iso9660: fix handling of inodes beyond 4GB # # fs/isofs/namei.c # 2004/06/17 23:53:41-07:00 paul@serice.net +21 -9 # iso9660: fix handling of inodes beyond 4GB # # fs/isofs/inode.c # 2004/06/18 00:32:20-07:00 paul@serice.net +104 -53 # iso9660: fix handling of inodes beyond 4GB # # fs/isofs/export.c # 2004/06/17 23:53:41-07:00 paul@serice.net +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/fs/isofs/export.c # # fs/isofs/dir.c # 2004/06/18 00:32:20-07:00 paul@serice.net +3 -3 # iso9660: fix handling of inodes beyond 4GB # # fs/isofs/Makefile # 2004/06/17 23:53:41-07:00 paul@serice.net +1 -1 # iso9660: fix handling of inodes beyond 4GB # # ChangeSet # 2004/06/18 08:01:23-07:00 tim@physik3.uni-rostock.de # [PATCH] BSD accounting format rework # # BSD accounting format rework: # # Use all explicit and implicit padding in struct acct to # # - correctly report 32 bit uid/gid, # - correctly report jobs (e.g., daemons) running longer than 497 days, # - increase the precision of ac_etime from 2^-13 to 2^-20 # (i.e., from ~6 hours to ~1 min. after a year) # - store the current AHZ value. # - allow cross-platform processing of the accounting file # (limited for m68k which has a different size struct acct). # - introduce versioning for smooth transition to incompatible formats in # the future. Currently the following version numbers are defined: # 0: old format (until 2.6.7) with 16 bit uid/gid # 1: extended variant (binary compatible to v0 on M68K) # 2: extended variant (binary compatible to v0 on everything except M68K) # 3: a new binary incompatible format (64 bytes) # 4: new binary incompatible format (128 bytes). # layout of its first 64 bytes is the same as for v3. # 5: marks second half of new binary incompatible format (128 bytes) # (layout is not yet defined) # # All this is accomplished without breaking binary compatibility. 32 bit # uid/gid support is compatible with the patch previously floating around and # used e.g. by Red Hat. # # This patch also introduces a config option for a new, binary incompatible # "version 3" format that # # - is uniform across and properly aligned on all platforms # - stores pid and ppid # - uses AHZ==100 on all platforms (allows to report longer times) # # Much of the compatibility glue goes away when v1/v2 support is removed from # the kernel. Such a patch is at # # http://www.physik3.uni-rostock.de/tim/kernel/2.7/acct-cleanup-04.patch # # and might be applied in the 2.7 timeframe. # # The new v3 format is source compatible with current GNU acct tools (6.3.5). # However, current GNU acct tools can be compiled for only one format. As there # is no way to pass the kernel configuration to userspace, with my patch it will # still only support the old v2 format. Only if v1/v2 support is removed from # the kernel, recompiling GNU acct tools will yield v3 support. # # A preliminary take at the corresponding work on cross-platform userspace tools # (GNU acct package) is at # # http://www.physik3.uni-rostock.de/tim/kernel/utils/acct/ # # This version of the package is able to read any of the v0/v2/v3 formats, # regardless of byte-order (untested), even within the same file. # Cross-platform compatibility with m68k (v1 format) is not yet implemented, but # native use on m68k should work (untested). pid and ppid are currently only # shown by the dump-acct utility. # # Thanks to Arthur Corliss, Albert Cahalan and Ragnar Kjørstad for their # comments, and to Albert Cahalan for the u64->IEEE float conversion code. # # Signed-off-by: Tim Schmielau # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/acct.c # 2004/06/17 23:53:41-07:00 tim@physik3.uni-rostock.de +97 -8 # BSD accounting format rework # # init/Kconfig # 2004/06/17 23:53:41-07:00 tim@physik3.uni-rostock.de +12 -0 # BSD accounting format rework # # include/linux/acct.h # 2004/06/17 23:53:41-07:00 tim@physik3.uni-rostock.de +120 -25 # BSD accounting format rework # # ChangeSet # 2004/06/18 08:01:12-07:00 alan@redhat.com # [PATCH] make the 3c59x/3c90x driver somewhat more reliable # # The existing driver violates basic PCI rules in several places making it # unusable for basic things like DHCP in Fedora Core. This patch removes all # the situations I can find where it writes to the device while in D3 state # and breaks stuff. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/net/3c59x.c # 2004/06/18 00:32:18-07:00 alan@redhat.com +34 -9 # make the 3c59x/3c90x driver somewhat more reliable # # ChangeSet # 2004/06/18 08:01:01-07:00 bwindle@fint.org # [PATCH] fix 3c59x.c to allow 3c905c 100bT-FD # # Fix the 3c905C 10/100 transceiver initialisation woes. # # (This was reverted from 2.6.7-rcX, but the bug reporter said the failure # turned out to be unrepeatable). # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/net/3c59x.c # 2004/06/18 00:32:20-07:00 bwindle@fint.org +1 -1 # fix 3c59x.c to allow 3c905c 100bT-FD # # ChangeSet # 2004/06/18 08:00:52-07:00 joris@eljakim.nl # [PATCH] Validate PM-Timer rate at boot time # # Add a check to the PM-Timer initialization code. It validates the PM-Timer # rate against PIT channel 2 and rejects the PM-Timer if its rate is not # withing 5% of the expected number. # # Rationale: # # The PMTMR timers of certain (older) mainboards are running at invalid # rates, often much faster than the rate expected by the PM-Timer code. This # causes the system clock to run much too fast. See also # http://bugme.osdl.org/show_bug.cgi?id=2375 # # Possible workarounds are disabling the PM-Timer in the kernel config or # disabling the PM-Timer at boot time through the "clock=tsc" parameter. # However, we believe it is more user friendly to automatically validate the # PM-Timer rate at boot time before using it as the system time source. # # Tested by me (with broken timer) and John Stultz (with good timer) and # believed to be ok. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/kernel/timers/timer_pm.c # 2004/06/17 23:53:40-07:00 joris@eljakim.nl +38 -0 # Validate PM-Timer rate at boot time # # ChangeSet # 2004/06/18 08:00:41-07:00 willy@debian.org # [PATCH] ahc1542 !CONFIG_MCA build fix # # The old 1542 scsi driver is both ISA and MCA. The MCA portions are disabled # when !CONFIG_MCA through the typical wrapper scheme (a la pci.h and # !CONFIG_PCI). However... the driver unconditionally includes linux/mca.h # which in turn unconditionally includes asm/mca.h. # # This breaks drivers on platforms with ISA but not MCA, like alpha. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/mca.h # 2004/06/17 23:53:40-07:00 willy@debian.org +2 -0 # ahc1542 !CONFIG_MCA build fix # # ChangeSet # 2004/06/18 08:00:30-07:00 mingo@elte.hu # [PATCH] x86: remove io_apic_sync # # The patch below gets rid of io_apic_sync(). # # io_apic_sync() was introduced in 2.1.104 and it was originally done for # masking and unmasking as well. Later the unmasking use got removed but the # masking use lingered around. I dont think it was ever justified to do it # and clearly since the lack of io_apic_sync() didnt break some of the other # writes we do to the IO-APIC registers, it must be unnecessary in the # masking case too. # # Signed-off-by: Ingo Molnar # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-i386/io_apic.h # 2004/06/17 23:49:30-07:00 mingo@elte.hu +0 -9 # x86: remove io_apic_sync # # arch/i386/kernel/io_apic.c # 2004/06/18 00:32:15-07:00 mingo@elte.hu +0 -3 # x86: remove io_apic_sync # # ChangeSet # 2004/06/18 08:00:20-07:00 mingo@elte.hu # [PATCH] x86: remove APIC_LOCKUP_DEBUG # # the patch below gets rid of APIC_LOCKUP_DEBUG. It has been in the kernel # for more than 3 years and the message was only reported once during that # period of time - and even in that case it was a side-effect of a really bad # crash. The lockup workaround works, the debugging code can be moved out. # # Signed-off-by: Ingo Molnar # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/kernel/io_apic.c # 2004/06/18 00:32:21-07:00 mingo@elte.hu +0 -21 # x86: remove APIC_LOCKUP_DEBUG # # ChangeSet # 2004/06/18 08:00:09-07:00 pavel@ucw.cz # [PATCH] io_apic.c code consolidation # # This cleans up io_apic.c a bit -- I do not really like 4 copies of same # code. # # Ingo said: # # yeah, agreed - i checked & test it, it's ok. I made a small # modification (see the patch below) to uninline the __modify_IO_APIC_irq() # function - shaving 0.5K off the kernel's size. # # Signed-off-by: Ingo Molnar # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/kernel/io_apic.c # 2004/06/18 00:32:21-07:00 pavel@ucw.cz +16 -51 # io_apic.c code consolidation # # ChangeSet # 2004/06/18 07:59:58-07:00 nickpiggin@yahoo.com.au # [PATCH] Fix read() vs truncate race # # do_generic_mapping_read() # { # isize1 = i_size_read(); # ... # readpage # copy_to_user up to isize1; # } # # readpage() # { # isize2 = i_size_read(); # ... # read blocks # ... # zero-fill all blocks past isize2 # } # # If a second thread runs truncate and shrinks i_size, so isize1 and isize2 are # different, the read can return up to a page of zero-fill that shouldn't really # exist. # # The trick is to read isize1 after doing the readpage. I realised this is the # right way to do it without having to change the readpage API. # # The patch should not cost any cycles when reading from pagecache. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/filemap.c # 2004/06/18 00:32:09-07:00 nickpiggin@yahoo.com.au +50 -26 # Fix read() vs truncate race # # ChangeSet # 2004/06/18 07:59:47-07:00 akpm@osdl.org # [PATCH] invalidate_inodes2(): mark pages not uptodate # # Andrea Arcangeli points out that invalidate_inode_pages2() is # supposed to mark mapped-into-pagetable pages as not uptodate so that next time # someone faults the page in we will go get a new version from backing store. # # The callers are the direct-io code and the NFS "something changed on the # server" code. In both these cases we do need to go and re-read the page. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/truncate.c # 2004/06/17 23:49:30-07:00 akpm@osdl.org +8 -2 # invalidate_inodes2(): mark pages not uptodate # # ChangeSet # 2004/06/18 07:59:36-07:00 herbert@gondor.apana.org.au # [PATCH] Check return status of register calls in i82365 # # i82365 calls driver_register and platform_device_register without checking # their return values. This patch fixes that. # # It also runs platform_device_register() prior to isa_probe() so we don't have # to undo ise_probe()'s effects if platform_device_register() ends up failing. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/pcmcia/i82365.c # 2004/06/17 23:49:30-07:00 herbert@gondor.apana.org.au +10 -4 # Check return status of register calls in i82365 # # ChangeSet # 2004/06/18 07:59:25-07:00 tol@stacken.kth.se # [PATCH] getgroups16() fix # # sys_getgroups16 (or rather groups16_to_user()) returns large gids # truncated. Needs to be fixed, one way or another. Don't know why the # other similar casts are still there. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/uid16.c # 2004/06/17 23:49:29-07:00 tol@stacken.kth.se +6 -6 # getgroups16() fix # # include/linux/sched.h # 2004/06/18 00:32:12-07:00 tol@stacken.kth.se +9 -1 # getgroups16() fix # # ChangeSet # 2004/06/18 07:59:14-07:00 rene.herman@keyaccess.nl # [PATCH] same small resource tweaks, x86_64 version # # The same small tweaks for x86_64. Just to keep the two in sync. One # additional wrinkle: vram_resource was exported to e820.c, which didn't # actually use it. Undo that. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/x86_64/kernel/setup.c # 2004/06/17 23:49:29-07:00 rene.herman@keyaccess.nl +11 -9 # same small resource tweaks, x86_64 version # # arch/x86_64/kernel/e820.c # 2004/06/17 23:49:29-07:00 rene.herman@keyaccess.nl +1 -1 # same small resource tweaks, x86_64 version # # ChangeSet # 2004/06/18 07:59:03-07:00 rene.herman@keyaccess.nl # [PATCH] small tweaks to standard resource stuff # # Various small tweaks. Compiled and booted. # # 1. add IORESOURCE_BUSY | IORESOURCE_MEM also for the kernel code and # data resources. I don't believe this actually matters one bit, but # they're hooked into a BUSY/MEM parent ("System RAM") and marking # them busy seems to make sense. # # 2. delete the .start = 1M default for the kernel code resource. This # isn't actually a change; it's set to virt_to_phys(_text) in # setup_arch() overriding any default anyways. # # 3. s/vram_resource/video_ram_resource/. Lines up much nicer with # video_rom_resource... # # 4. s/checksum/romchecksum/. setup.c is a fairly large file, and # "checksum" pollutes the namespace. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/kernel/setup.c # 2004/06/17 23:49:29-07:00 rene.herman@keyaccess.nl +11 -9 # small tweaks to standard resource stuff # # ChangeSet # 2004/06/18 07:58:52-07:00 hpa@zytor.com # [PATCH] Use first-fit for pty allocation # # (With Andrew Morton). # # The current dynamic pty allocation scheme has a few problems: # # - pty numbers grow to be very large, causing wtmp file bloat. # # - Seems to break libc5 and some old applications # # So change it to do first-fit. An IDR tree is used to provide a # logarithmic-time search. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/char/tty_io.c # 2004/06/17 23:49:29-07:00 hpa@zytor.com +64 -19 # Use first-fit for pty allocation # # ChangeSet # 2004/06/18 07:58:40-07:00 tytso@mit.edu # [PATCH] Ext3: Retry allocation after transaction commit (v2) # # Here is a reworked version of my patch to ext3 to retry certain filesystem # operations after an ENOSPC error. The ext3_should_retry_alloc() function will # not wait on the currently running transaction if there is a currently active # handle; hence this should avoid deadlocks in the Lustre use case. The patch # is versus BK-recent. # # I've also included a simple, reliable test case which demonstrates the problem # this patch is intended to fix. (Note that BK-recent is not sufficient to # address this test case, and waiting on the commiting transaction in # ext3_new_block is also not sufficient. Been there, tried that, didn't work. # We need to do the full-bore retry from the top level. The # ext3_should_retry_alloc() will only wait on the committing transaction if # there is an active handle; hence Lustre will probably also need to use # ext3_should_retry_alloc() if it wants to reliably avoid this particular # problem.) # # #!/bin/sh # # # # # TEST_DIR=/tmp # IMAGE=$TEST_DIR/retry.img # MNTPT=$TEST_DIR/retry.mnt # TEST_SRC=/usr/projects/e2fsprogs/e2fsprogs/build # MKE2FS_OPTS="" # IMAGE_SIZE=8192 # # umount $MNTPT # dd if=/dev/zero of=$IMAGE bs=4k count=$IMAGE_SIZE # mke2fs -j -F $MKE2FS_OPTS $IMAGE # # function test_log () # { # echo $* # logger -p local4.notice $* # } # # mkdir -p $MNTPT # mount -o loop -t ext3 $IMAGE $MNTPT # test_log Retry test: BEGIN # for i in `seq 1 3` # do # test_log "Retry test: Loop $i" # echo 2 > /proc/sys/fs/jbd-debug # while ! mkdir -p $MNTPT/foo/bar # do # test_log "Retry test: mkdir failed" # sleep 1 # done # echo 0 > /proc/sys/fs/jbd-debug # cp -r $TEST_SRC $MNTPT/foo/bar 2> /dev/null # rm -rf $MNTPT/* # done # umount $MNTPT # test_log "Retry test: END" # # # akpm@osdl.org # # Rework the code to make it a formal JBD API entry point. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/jbd.h # 2004/06/17 23:47:53-07:00 tytso@mit.edu +1 -0 # Ext3: Retry allocation after transaction commit (v2) # # include/linux/ext3_fs.h # 2004/06/17 23:47:53-07:00 tytso@mit.edu +1 -0 # Ext3: Retry allocation after transaction commit (v2) # # fs/jbd/journal.c # 2004/06/17 23:47:53-07:00 tytso@mit.edu +34 -0 # Ext3: Retry allocation after transaction commit (v2) # # fs/ext3/xattr.c # 2004/06/17 23:47:53-07:00 tytso@mit.edu +5 -1 # Ext3: Retry allocation after transaction commit (v2) # # fs/ext3/namei.c # 2004/06/18 00:32:11-07:00 tytso@mit.edu +20 -5 # Ext3: Retry allocation after transaction commit (v2) # # fs/ext3/inode.c # 2004/06/17 23:47:53-07:00 tytso@mit.edu +5 -14 # Ext3: Retry allocation after transaction commit (v2) # # fs/ext3/balloc.c # 2004/06/17 23:49:23-07:00 tytso@mit.edu +32 -6 # Ext3: Retry allocation after transaction commit (v2) # # fs/ext3/acl.c # 2004/06/17 23:47:53-07:00 tytso@mit.edu +9 -1 # Ext3: Retry allocation after transaction commit (v2) # # ChangeSet # 2004/06/18 07:58:28-07:00 rene.herman@keyaccess.nl # [PATCH] pc9800: merge std_resources.c back into setup.c # # std_resources.{c,h} was only split off due to pc9800 wanting to override it. # With it gone, it might as well be merged back in. Doesn't change any code. # It was compiled and booted. # # This time this also actually doesn't break compilation of any of the # subarches. That's to say, any further. I guess it might have been my .config # (my regular PC config, with just the subarch switched through menuconfig) or # O=, but only ELAN actually compiled. Voyager and VISWS bombed out at the # final link and NUMAQ much sooner (with "physnode_map undeclared" during # compilation of numaq.c). # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/kernel/setup.c # 2004/06/18 00:32:22-07:00 rene.herman@keyaccess.nl +200 -5 # pc9800: merge std_resources.c back into setup.c # # arch/i386/kernel/Makefile # 2004/06/17 23:44:27-07:00 rene.herman@keyaccess.nl +0 -1 # pc9800: merge std_resources.c back into setup.c # # arch/i386/Kconfig # 2004/06/17 23:44:27-07:00 rene.herman@keyaccess.nl +0 -6 # pc9800: merge std_resources.c back into setup.c # # BitKeeper/deleted/.del-std_resources.h~45da2e05d849a20f # 2004/06/18 07:58:23-07:00 rene.herman@keyaccess.nl +0 -0 # Delete: include/asm-i386/std_resources.h # # BitKeeper/deleted/.del-std_resources.c~3be5b97880eb064e # 2004/06/18 07:58:22-07:00 rene.herman@keyaccess.nl +0 -0 # Delete: arch/i386/kernel/std_resources.c # # ChangeSet # 2004/06/18 07:58:17-07:00 bunk@fs.tum.de # [PATCH] more PC9800 removal # # Removes more PC9800 code. # # Requires: # # bk rm drivers/char/upd4990a.c # bk rm drivers/net/ne2k_cbus.c # bk rm drivers/net/ne2k_cbus.h # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # sound/drivers/opl3/opl3_lib.c # 2004/06/17 23:43:58-07:00 bunk@fs.tum.de +0 -20 # more PC9800 removal # # sound/drivers/mpu401/mpu401.c # 2004/06/17 23:43:58-07:00 bunk@fs.tum.de +0 -11 # more PC9800 removal # # sound/core/seq/instr/Makefile # 2004/06/17 23:43:58-07:00 bunk@fs.tum.de +0 -1 # more PC9800 removal # # sound/core/seq/Makefile # 2004/06/17 23:43:58-07:00 bunk@fs.tum.de +0 -1 # more PC9800 removal # # include/linux/serio.h # 2004/06/17 23:43:58-07:00 bunk@fs.tum.de +0 -1 # more PC9800 removal # # include/linux/serial_core.h # 2004/06/17 23:43:58-07:00 bunk@fs.tum.de +0 -8 # more PC9800 removal # # include/linux/ide.h # 2004/06/17 23:43:58-07:00 bunk@fs.tum.de +1 -1 # more PC9800 removal # # include/asm-i386/timex.h # 2004/06/17 23:43:58-07:00 bunk@fs.tum.de +0 -4 # more PC9800 removal # # include/asm-i386/serial.h # 2004/06/17 23:43:58-07:00 bunk@fs.tum.de +0 -7 # more PC9800 removal # # include/asm-i386/processor.h # 2004/06/17 23:43:58-07:00 bunk@fs.tum.de +0 -6 # more PC9800 removal # # include/asm-i386/ide.h # 2004/06/17 23:43:58-07:00 bunk@fs.tum.de +0 -34 # more PC9800 removal # # drivers/serial/8250_pnp.c # 2004/06/17 23:43:58-07:00 bunk@fs.tum.de +0 -3 # more PC9800 removal # # drivers/pnp/isapnp/core.c # 2004/06/17 23:43:58-07:00 bunk@fs.tum.de +0 -5 # more PC9800 removal # # drivers/net/at1700.c # 2004/06/17 23:44:24-07:00 bunk@fs.tum.de +0 -88 # more PC9800 removal # # drivers/net/Space.c # 2004/06/17 23:43:58-07:00 bunk@fs.tum.de +2 -2 # more PC9800 removal # # drivers/net/3c509.c # 2004/06/17 23:43:58-07:00 bunk@fs.tum.de +9 -36 # more PC9800 removal # # drivers/ide/ide-proc.c # 2004/06/17 23:43:58-07:00 bunk@fs.tum.de +0 -1 # more PC9800 removal # # drivers/char/keyboard.c # 2004/06/17 23:43:58-07:00 bunk@fs.tum.de +2 -3 # more PC9800 removal # # arch/i386/kernel/i8259.c # 2004/06/17 23:43:58-07:00 bunk@fs.tum.de +0 -5 # more PC9800 removal # # ChangeSet # 2004/06/18 07:58:05-07:00 rddunlap@osdl.org # [PATCH] Remove PC9800 support # # PC9800 sub-arch is incomplete, hackish (at least in IDE), maintainers don't # reply to emails and haven't touched it in awhile. Can't even config it to # try to build it without other patches to the kernel tree. # # bk-rm-script: # # #! /bin/sh # bk rm -r ./arch/i386/mach-pc9800 # bk rm -r ./arch/i386/boot98 # bk rm ./drivers/char/lp_old98.c # bk rm ./drivers/serial/serial98.c # bk rm ./drivers/scsi/scsi_pc98.c # bk rm ./drivers/scsi/pc980155.c # bk rm ./drivers/scsi/pc980155.h # bk rm ./drivers/block/floppy98.c # bk rm ./drivers/input/keyboard/98kbd.c # bk rm ./drivers/input/serio/98kbd-io.c # bk rm ./drivers/input/misc/98spkr.c # bk rm ./drivers/input/mouse/98busmouse.c # bk rm ./drivers/ide/legacy/pc9800.c # bk rm ./drivers/ide/legacy/hd98.c # bk rm -r ./include/asm-i386/mach-pc9800 # bk rm ./include/asm-i386/pc9800_sca.h # bk rm ./include/asm-i386/pc9800.h # bk rm ./fs/partitions/nec98.c # bk rm ./fs/partitions/nec98.h # bk rm ./sound/isa/cs423x/pc98.c # bk rm ./sound/isa/cs423x/pc9801_118_magic.h # bk rm ./sound/isa/cs423x/sound_pc9800.h # # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # ChangeSet # 2004/06/18 09:58:05-05:00 James.Bottomley@steeleye.com # [PATCH] SCSI Flexible timout intfrastructure # # The object of this infrastructure is to give HBAs early warning that # error handling is about to happen and also provide them with the # opportunity to do something about it. # # It introduces the extra template callback: # # eh_timed_out() # # which scsi_times_out() will call if it is populated to notify the LLD # that an outstanding command took a timeout. # # There are three possible returns: # # EH_HANDLED: I've fixed the problem, please complete the command for me # (as soon as the timer fires, scsi_done will do nothing, so the timer # itself will call a special version of scsi_done that doesn't check the # timer). # # EH_NOT_HANDLED: Invoke error recovery as normal # # EH_RESET_TIMER: The command will complete, reset the timer to its # original value and start it ticking again. # # Signed-off-by: James Bottomley # Based on work by Christoph Hellwig and Luben Tuikov # # sound/isa/cs423x/Makefile # 2004/06/17 23:43:53-07:00 rddunlap@osdl.org +0 -2 # Remove PC9800 support # # sound/isa/Kconfig # 2004/06/17 23:43:53-07:00 rddunlap@osdl.org +0 -10 # Remove PC9800 support # # fs/partitions/check.c # 2004/06/17 23:43:53-07:00 rddunlap@osdl.org +0 -1 # Remove PC9800 support # # fs/partitions/Kconfig # 2004/06/17 23:43:53-07:00 rddunlap@osdl.org +0 -7 # Remove PC9800 support # # drivers/serial/Makefile # 2004/06/17 23:43:53-07:00 rddunlap@osdl.org +0 -1 # Remove PC9800 support # # drivers/serial/Kconfig # 2004/06/17 23:43:53-07:00 rddunlap@osdl.org +0 -13 # Remove PC9800 support # # drivers/scsi/Makefile # 2004/06/17 23:43:53-07:00 rddunlap@osdl.org +0 -2 # Remove PC9800 support # # drivers/scsi/Kconfig # 2004/06/17 23:43:53-07:00 rddunlap@osdl.org +0 -12 # Remove PC9800 support # # drivers/net/Makefile # 2004/06/17 23:43:53-07:00 rddunlap@osdl.org +0 -1 # Remove PC9800 support # # drivers/net/Kconfig # 2004/06/17 23:43:53-07:00 rddunlap@osdl.org +1 -51 # Remove PC9800 support # # drivers/input/serio/Kconfig # 2004/06/17 23:43:53-07:00 rddunlap@osdl.org +0 -10 # Remove PC9800 support # # drivers/input/mouse/Makefile # 2004/06/17 23:43:53-07:00 rddunlap@osdl.org +0 -1 # Remove PC9800 support # # drivers/input/mouse/Kconfig # 2004/06/17 23:43:53-07:00 rddunlap@osdl.org +0 -11 # Remove PC9800 support # # drivers/input/misc/Kconfig # 2004/06/17 23:43:53-07:00 rddunlap@osdl.org +0 -4 # Remove PC9800 support # # drivers/input/keyboard/Kconfig # 2004/06/17 23:43:53-07:00 rddunlap@osdl.org +0 -12 # Remove PC9800 support # # drivers/ide/Makefile # 2004/06/17 23:43:53-07:00 rddunlap@osdl.org +0 -1 # Remove PC9800 support # # drivers/ide/Kconfig # 2004/06/17 23:43:53-07:00 rddunlap@osdl.org +1 -19 # Remove PC9800 support # # drivers/char/Makefile # 2004/06/17 23:43:53-07:00 rddunlap@osdl.org +0 -1 # Remove PC9800 support # # drivers/char/Kconfig # 2004/06/17 23:43:53-07:00 rddunlap@osdl.org +1 -21 # Remove PC9800 support # # drivers/block/Kconfig # 2004/06/17 23:43:53-07:00 rddunlap@osdl.org +1 -8 # Remove PC9800 support # # ChangeSet # 2004/06/18 07:57:53-07:00 Robert.Picco@hp.com # [PATCH] HPET driver # # The driver supports the High Precision Event Timer. The driver has adopted # a similar API to the Real Time Clock driver. It can support any number of # HPET devices and the maximum number of timers per HPET device. For further # information look at the documentation in the patch. # # Thanks to Venki at Intel for testing the driver on X86 hardware with HPET. # # HPET documentation is available at http://www.intel.com/design/chipsets/datashts/252516.htm # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/scsi/scsi_host.h # 2004/06/16 14:36:04-05:00 James.Bottomley@steeleye.com +20 -0 # Flexible timout intfrastructure # # drivers/scsi/scsi_priv.h # 2004/06/16 10:45:44-05:00 James.Bottomley@steeleye.com +1 -0 # Flexible timout intfrastructure # # drivers/scsi/scsi_error.c # 2004/06/16 10:53:02-05:00 James.Bottomley@steeleye.com +18 -0 # Flexible timout intfrastructure # # drivers/scsi/scsi.c # 2004/06/16 10:47:05-05:00 James.Bottomley@steeleye.com +8 -2 # Flexible timout intfrastructure # # Documentation/scsi/scsi_mid_low_api.txt # 2004/06/16 14:53:28-05:00 James.Bottomley@steeleye.com +27 -0 # Flexible timout intfrastructure # # include/linux/hpet.h # 2004/06/17 23:41:40-07:00 Robert.Picco@hp.com +133 -0 # HPET driver # # drivers/char/hpet.c # 2004/06/17 23:43:14-07:00 Robert.Picco@hp.com +1076 -0 # HPET driver # # include/linux/miscdevice.h # 2004/06/17 23:41:40-07:00 Robert.Picco@hp.com +1 -0 # HPET driver # # include/linux/hpet.h # 2004/06/17 23:41:40-07:00 Robert.Picco@hp.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/linux/hpet.h # # include/asm-i386/hpet.h # 2004/06/17 23:41:40-07:00 Robert.Picco@hp.com +3 -0 # HPET driver # # drivers/char/rtc.c # 2004/06/17 23:41:40-07:00 Robert.Picco@hp.com +5 -0 # HPET driver # # drivers/char/hpet.c # 2004/06/17 23:43:14-07:00 Robert.Picco@hp.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/drivers/char/hpet.c # # drivers/char/Makefile # 2004/06/18 00:32:23-07:00 Robert.Picco@hp.com +1 -0 # HPET driver # # drivers/char/Kconfig # 2004/06/18 00:32:23-07:00 Robert.Picco@hp.com +27 -0 # HPET driver # # arch/i386/kernel/time_hpet.c # 2004/06/17 23:41:40-07:00 Robert.Picco@hp.com +46 -0 # HPET driver # # arch/i386/Kconfig # 2004/06/18 00:32:22-07:00 Robert.Picco@hp.com +2 -1 # HPET driver # # Documentation/hpet.txt # 2004/06/17 23:41:40-07:00 Robert.Picco@hp.com +298 -0 # HPET driver # # Documentation/filesystems/proc.txt # 2004/06/17 23:41:40-07:00 Robert.Picco@hp.com +1 -1 # HPET driver # # Documentation/hpet.txt # 2004/06/17 23:41:40-07:00 Robert.Picco@hp.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/Documentation/hpet.txt # # ChangeSet # 2004/06/18 07:57:41-07:00 chrisw@osdl.org # [PATCH] RLIM: adjust default mqueue sizes # # Lower default sizes for POSIX mqueue allocation now that rlimits are in place. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # ipc/mqueue.c # 2004/06/17 23:41:40-07:00 chrisw@osdl.org +3 -3 # RLIM: adjust default mqueue sizes # # ChangeSet # 2004/06/18 07:57:29-07:00 chrisw@osdl.org # [PATCH] RLIM: enforce rlimits for POSIX mqueue allocation # # Add a user_struct to the mq_inode_info structure. Charge the maximum number # of bytes that could be allocated to a mqueue to the user who creates the # mqueue. This is checked against the per user rlimit. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # ipc/mqueue.c # 2004/06/18 00:32:23-07:00 chrisw@osdl.org +39 -5 # RLIM: enforce rlimits for POSIX mqueue allocation # # ChangeSet # 2004/06/18 07:57:18-07:00 chrisw@osdl.org # [PATCH] RLIM: add mq_attr_ok() helper # # Add helper function mq_attr_ok() to do mq_attr sanity checking, and do some # extra overlow checking. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # ipc/mqueue.c # 2004/06/18 00:32:24-07:00 chrisw@osdl.org +23 -10 # RLIM: add mq_attr_ok() helper # # ChangeSet # 2004/06/18 07:57:07-07:00 chrisw@osdl.org # [PATCH] RLIM: add mq_bytes to user_struct # # Add mq_bytes field to user_struct, and make sure it's properly initialized. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/user.c # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +3 -0 # RLIM: add mq_bytes to user_struct # # include/linux/sched.h # 2004/06/18 00:32:22-07:00 chrisw@osdl.org +2 -0 # RLIM: add mq_bytes to user_struct # # ChangeSet # 2004/06/18 07:56:56-07:00 chrisw@osdl.org # [PATCH] RLIM: add rlimit entry for POSIX mqueue allocation # # Add an rlimit entry to control the maximum number of bytes a user can allocate # to a POSIX mqueue. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/mqueue.h # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +2 -0 # RLIM: add rlimit entry for POSIX mqueue allocation # # include/asm-x86_64/resource.h # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +3 -1 # RLIM: add rlimit entry for POSIX mqueue allocation # # include/asm-v850/resource.h # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +3 -1 # RLIM: add rlimit entry for POSIX mqueue allocation # # include/asm-sparc64/resource.h # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +3 -1 # RLIM: add rlimit entry for POSIX mqueue allocation # # include/asm-sparc/resource.h # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +3 -1 # RLIM: add rlimit entry for POSIX mqueue allocation # # include/asm-sh/resource.h # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +3 -1 # RLIM: add rlimit entry for POSIX mqueue allocation # # include/asm-s390/resource.h # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +3 -1 # RLIM: add rlimit entry for POSIX mqueue allocation # # include/asm-ppc64/resource.h # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +3 -1 # RLIM: add rlimit entry for POSIX mqueue allocation # # include/asm-ppc/resource.h # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +3 -1 # RLIM: add rlimit entry for POSIX mqueue allocation # # include/asm-parisc/resource.h # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +3 -1 # RLIM: add rlimit entry for POSIX mqueue allocation # # include/asm-mips/resource.h # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +3 -1 # RLIM: add rlimit entry for POSIX mqueue allocation # # include/asm-m68k/resource.h # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +3 -1 # RLIM: add rlimit entry for POSIX mqueue allocation # # include/asm-ia64/resource.h # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +3 -1 # RLIM: add rlimit entry for POSIX mqueue allocation # # include/asm-i386/resource.h # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +3 -1 # RLIM: add rlimit entry for POSIX mqueue allocation # # include/asm-h8300/resource.h # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +3 -1 # RLIM: add rlimit entry for POSIX mqueue allocation # # include/asm-cris/resource.h # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +3 -1 # RLIM: add rlimit entry for POSIX mqueue allocation # # include/asm-arm26/resource.h # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +3 -1 # RLIM: add rlimit entry for POSIX mqueue allocation # # include/asm-arm/resource.h # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +3 -1 # RLIM: add rlimit entry for POSIX mqueue allocation # # include/asm-alpha/resource.h # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +3 -1 # RLIM: add rlimit entry for POSIX mqueue allocation # # arch/x86_64/kernel/init_task.c # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +1 -0 # RLIM: add rlimit entry for POSIX mqueue allocation # # arch/v850/kernel/init_task.c # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +1 -0 # RLIM: add rlimit entry for POSIX mqueue allocation # # arch/um/kernel/init_task.c # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +1 -0 # RLIM: add rlimit entry for POSIX mqueue allocation # # arch/sparc64/kernel/init_task.c # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +1 -0 # RLIM: add rlimit entry for POSIX mqueue allocation # # arch/sparc/kernel/init_task.c # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +1 -0 # RLIM: add rlimit entry for POSIX mqueue allocation # # arch/sh/kernel/init_task.c # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +1 -0 # RLIM: add rlimit entry for POSIX mqueue allocation # # arch/s390/kernel/init_task.c # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +1 -0 # RLIM: add rlimit entry for POSIX mqueue allocation # # arch/ppc64/kernel/init_task.c # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +1 -0 # RLIM: add rlimit entry for POSIX mqueue allocation # # arch/ppc/kernel/process.c # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +1 -0 # RLIM: add rlimit entry for POSIX mqueue allocation # # arch/parisc/kernel/init_task.c # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +1 -0 # RLIM: add rlimit entry for POSIX mqueue allocation # # arch/mips/kernel/init_task.c # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +1 -0 # RLIM: add rlimit entry for POSIX mqueue allocation # # arch/m68knommu/kernel/init_task.c # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +1 -0 # RLIM: add rlimit entry for POSIX mqueue allocation # # arch/m68k/kernel/process.c # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +1 -0 # RLIM: add rlimit entry for POSIX mqueue allocation # # arch/ia64/kernel/init_task.c # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +1 -0 # RLIM: add rlimit entry for POSIX mqueue allocation # # arch/i386/kernel/init_task.c # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +1 -0 # RLIM: add rlimit entry for POSIX mqueue allocation # # arch/h8300/kernel/init_task.c # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +1 -0 # RLIM: add rlimit entry for POSIX mqueue allocation # # arch/cris/kernel/process.c # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +1 -0 # RLIM: add rlimit entry for POSIX mqueue allocation # # arch/arm26/kernel/init_task.c # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +1 -0 # RLIM: add rlimit entry for POSIX mqueue allocation # # arch/arm/kernel/init_task.c # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +1 -0 # RLIM: add rlimit entry for POSIX mqueue allocation # # arch/alpha/kernel/init_task.c # 2004/06/17 23:41:39-07:00 chrisw@osdl.org +1 -0 # RLIM: add rlimit entry for POSIX mqueue allocation # # ChangeSet # 2004/06/18 07:56:43-07:00 chrisw@osdl.org # [PATCH] RLIM: add simple get_uid() helper # # Add simple helper function to grab a reference to a user_struct. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/sched.h # 2004/06/18 00:32:24-07:00 chrisw@osdl.org +5 -0 # RLIM: add simple get_uid() helper # # ChangeSet # 2004/06/18 07:56:32-07:00 chrisw@osdl.org # [PATCH] RLIM: add sigpending field to user_struct # # Add sigpending field to user_struct, and make sure it's properly initialized. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # kernel/user.c # 2004/06/18 00:32:24-07:00 chrisw@osdl.org +3 -1 # RLIM: add sigpending field to user_struct # # include/linux/sched.h # 2004/06/18 00:32:25-07:00 chrisw@osdl.org +1 -0 # RLIM: add sigpending field to user_struct # # ChangeSet # 2004/06/18 07:56:20-07:00 chrisw@osdl.org # [PATCH] RLIM: add rlimit entry for controlling queued signals # # The following patches introduce per user rlimits for both queued signals and # POSIX message queues. The changes touch all the arches resource.h files as # well as init_task.c to get the rlimit defaults setup. # # Both require caching the user_struct to avoid problems with setuid(). # # The signal changes makes some small changes to send_signal() to pass along the # task being signalled to get proper accounting for signals initiated in # interrupt. Thanks to Marcelo for getting this one going. # # # This patch: # # Add an rlimit entry to control the maximum number of pending signals a user # may have. This is essentially just the resource.h changes. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/signal.h # 2004/06/18 00:32:25-07:00 chrisw@osdl.org +3 -0 # RLIM: add rlimit entry for controlling queued signals # # include/asm-x86_64/resource.h # 2004/06/18 00:32:24-07:00 chrisw@osdl.org +4 -2 # RLIM: add rlimit entry for controlling queued signals # # include/asm-v850/resource.h # 2004/06/18 00:32:24-07:00 chrisw@osdl.org +4 -2 # RLIM: add rlimit entry for controlling queued signals # # include/asm-sparc64/resource.h # 2004/06/18 00:32:24-07:00 chrisw@osdl.org +6 -4 # RLIM: add rlimit entry for controlling queued signals # # include/asm-sparc/resource.h # 2004/06/18 00:32:24-07:00 chrisw@osdl.org +6 -4 # RLIM: add rlimit entry for controlling queued signals # # include/asm-sh/resource.h # 2004/06/18 00:32:24-07:00 chrisw@osdl.org +3 -1 # RLIM: add rlimit entry for controlling queued signals # # include/asm-s390/resource.h # 2004/06/18 00:32:24-07:00 chrisw@osdl.org +4 -2 # RLIM: add rlimit entry for controlling queued signals # # include/asm-ppc64/resource.h # 2004/06/18 00:32:24-07:00 chrisw@osdl.org +3 -1 # RLIM: add rlimit entry for controlling queued signals # # include/asm-ppc/resource.h # 2004/06/18 00:32:24-07:00 chrisw@osdl.org +3 -1 # RLIM: add rlimit entry for controlling queued signals # # include/asm-parisc/resource.h # 2004/06/18 00:32:24-07:00 chrisw@osdl.org +3 -1 # RLIM: add rlimit entry for controlling queued signals # # include/asm-mips/resource.h # 2004/06/18 00:32:24-07:00 chrisw@osdl.org +3 -1 # RLIM: add rlimit entry for controlling queued signals # # include/asm-m68k/resource.h # 2004/06/18 00:32:24-07:00 chrisw@osdl.org +4 -2 # RLIM: add rlimit entry for controlling queued signals # # include/asm-ia64/resource.h # 2004/06/18 00:32:24-07:00 chrisw@osdl.org +3 -1 # RLIM: add rlimit entry for controlling queued signals # # include/asm-i386/resource.h # 2004/06/18 00:32:24-07:00 chrisw@osdl.org +5 -2 # RLIM: add rlimit entry for controlling queued signals # # include/asm-h8300/resource.h # 2004/06/18 00:32:24-07:00 chrisw@osdl.org +4 -2 # RLIM: add rlimit entry for controlling queued signals # # include/asm-cris/resource.h # 2004/06/18 00:32:24-07:00 chrisw@osdl.org +5 -3 # RLIM: add rlimit entry for controlling queued signals # # include/asm-arm26/resource.h # 2004/06/18 00:32:24-07:00 chrisw@osdl.org +3 -1 # RLIM: add rlimit entry for controlling queued signals # # include/asm-arm/resource.h # 2004/06/18 00:32:24-07:00 chrisw@osdl.org +3 -1 # RLIM: add rlimit entry for controlling queued signals # # include/asm-alpha/resource.h # 2004/06/18 00:32:24-07:00 chrisw@osdl.org +5 -3 # RLIM: add rlimit entry for controlling queued signals # # ChangeSet # 2004/06/18 07:56:09-07:00 akpm@osdl.org # [PATCH] i2c fixups for idr API change # # Fix up the i2c code which uses the IDR library. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # drivers/i2c/i2c-core.c # 2004/06/17 23:41:38-07:00 akpm@osdl.org +8 -2 # i2c fixups for idr API change # # ChangeSet # 2004/06/18 07:55:58-07:00 minyard@acm.org # [PATCH] IDR fixups # # There were definately some problems in there. I've made some changes and # tested with a lot of bounds. I don't have a machine with enough memory to # fill it up (it would take ~16GB on a 64-bit machine), but I use the "above" # code to simulate a lot of situations. # # The problems were: # # * IDR_FULL was not the right value # * idr_get_new_above() was not defined in the headers or documented. # * idr_alloc() bug-ed if there was a race and not enough memory was # allocated. It should have returned NULL. # * id will overflow when you go past the end. # * There was a "(id >= (1 << (layers*IDR_BITS)))" comparison, but at # the top layer it would overflow the id and be zero. # * The allocation should return ENOSPC for an "above" value with # nothing above it, but it returned EAGAIN. # # I have not tested on 64-bits (as I don't have a 64-bit machine). # # I've included the files, a diff from the previous version, and my test # programs. # # For the test programs, idr_test will just attempt to allocate # elements, check them, free them, and check them again. # # idr_test2 will allocate element with between # them. # # idr_test3 just tests some bounds and tries all values with just a few in # the idr. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # lib/idr.c # 2004/06/17 23:41:38-07:00 minyard@acm.org +31 -14 # IDR fixups # # include/linux/idr.h # 2004/06/17 23:41:38-07:00 minyard@acm.org +9 -6 # IDR fixups # # ChangeSet # 2004/06/18 07:55:47-07:00 akpm@osdl.org # [PATCH] idr: remove counter bits from id's # # idr_get_new() currently returns an incrementing counter in the top 8 bits of # the counter. Which means that most users have to mask it off again, and we # only have a 24-bit range. # # So remove that counter. Also: # # - Remove the BITS_PER_INT define due to namespace collision risk. # # - Make MAX_ID_SHIFT 31, so counters have a 0 to 2G-1 range. # # - Why is MAX_ID_SHIFT using sizeof(int) and not sizeof(long)? If it's for # consistency across 32- and 64-bit machines, why not just make it "31"? # # - Does this still hold true with the counter removed? # # /* We can only use half the bits in the top level because there are # only four possible bits in the top level (5 bits * 4 levels = 25 # bits, but you only use 24 bits in the id). */ # # If not, what needs to change? # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # lib/idr.c # 2004/06/18 00:32:26-07:00 akpm@osdl.org +3 -16 # idr: remove counter bits from id's # # include/linux/idr.h # 2004/06/18 00:32:26-07:00 akpm@osdl.org +5 -13 # idr: remove counter bits from id's # # ChangeSet # 2004/06/18 07:55:36-07:00 minyard@acm.org # [PATCH] Fixes for idr code # # * On a 32-bit architecture, the idr code will cease to work if you add # more than 2^20 entries. You will not be able to find many of the # entries. The problem is that the IDR code uses 5-bit chunks of the # number and the lower portion used by IDR is 24 bits, so you have one bit # that leaks over into the comparisons that should not be there. The # solution is to mask off that bit before doing IDR processing. This # actually causes the POSIX timer code to crash if you create that many # timers. I have included an idr_test.tar.gz file that demonstrates this # with and without the fix, in case you need more evidence :). # # * When the IDR fills up, it returns -1. However, there was no way to # check for this condition. This patch adds the ability to check for the # idr being full and fixes all the users. It also fixes a problem in # fs/super.c where the idr code wasn't checking for -1. # # * There was a race condition creating POSIX timers. The timer was added # to a task struct for another process then the data for the timer was # filled out. The other task could use/destroy time timer as soon as it is # in the task's queue and the lock is released. This moves settup up the # timer data to before the timer is enqueued or (for some data) into the # lock. # # * Change things so that the caller doesn't need to run idr_full() to find # out the reason for an idr_get_new() failure. # # Just return -ENOSPC if the tree was full, or -EAGAIN if the caller needs # to re-run idr_pre_get() and try again. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # ChangeSet # 2004/06/18 09:55:35-05:00 alan@redhat.com # [PATCH] PATCH: Further aacraid work # # I've been going through Mark's changes with a fine toothcomb and this merges # most of them. Its tested on 64bit SMP hardware and seems to be fine. There # are a couple of Mark's changes I've left out for now but there isnt really # an easy way to break down the changes further. # # This fixes a whole host of problems including random hangs under high load # # Signed-off-by: Alan Cox # # Original contribution under GPL from Adaptec, updates checking by Red Hat # # Signed-off-by: James Bottomley # # net/sctp/sm_make_chunk.c # 2004/06/17 23:41:37-07:00 minyard@acm.org +15 -10 # Fixes for idr code # # lib/idr.c # 2004/06/18 00:32:26-07:00 minyard@acm.org +37 -8 # Fixes for idr code # # kernel/posix-timers.c # 2004/06/17 23:41:37-07:00 minyard@acm.org +52 -34 # Fixes for idr code # # include/linux/idr.h # 2004/06/18 00:32:26-07:00 minyard@acm.org +7 -1 # Fixes for idr code # # fs/super.c # 2004/06/17 23:41:37-07:00 minyard@acm.org +10 -5 # Fixes for idr code # # fs/proc/generic.c # 2004/06/17 23:41:37-07:00 minyard@acm.org +6 -4 # Fixes for idr code # # ChangeSet # 2004/06/18 07:55:25-07:00 mason@suse.com # [PATCH] reiserfs data logging support # # Add data=journal support for reiserfs # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/reiserfs_fs_i.h # 2004/06/17 23:41:37-07:00 mason@suse.com +1 -0 # reiserfs data logging support # # include/linux/reiserfs_fs.h # 2004/06/17 23:41:37-07:00 mason@suse.com +8 -0 # reiserfs data logging support # # fs/reiserfs/tail_conversion.c # 2004/06/17 23:41:37-07:00 mason@suse.com +0 -41 # reiserfs data logging support # # fs/reiserfs/stree.c # 2004/06/17 23:41:37-07:00 mason@suse.com +40 -3 # reiserfs data logging support # # fs/reiserfs/journal.c # 2004/06/17 23:41:37-07:00 mason@suse.com +13 -4 # reiserfs data logging support # # fs/reiserfs/inode.c # 2004/06/17 23:41:37-07:00 mason@suse.com +49 -10 # reiserfs data logging support # # fs/reiserfs/file.c # 2004/06/17 23:41:37-07:00 mason@suse.com +18 -2 # reiserfs data logging support # # drivers/scsi/aacraid/sa.c # 2004/05/30 12:16:25-05:00 alan@redhat.com +3 -5 # PATCH: Further aacraid work # # drivers/scsi/aacraid/rx.c # 2004/05/30 12:34:16-05:00 alan@redhat.com +49 -13 # PATCH: Further aacraid work # # drivers/scsi/aacraid/rkt.c # 2004/05/30 12:35:26-05:00 alan@redhat.com +44 -12 # PATCH: Further aacraid work # # drivers/scsi/aacraid/linit.c # 2004/05/30 12:25:14-05:00 alan@redhat.com +15 -11 # PATCH: Further aacraid work # # drivers/scsi/aacraid/comminit.c # 2004/05/11 14:20:37-05:00 alan@redhat.com +8 -3 # PATCH: Further aacraid work # # drivers/scsi/aacraid/commctrl.c # 2004/05/30 12:22:05-05:00 alan@redhat.com +1 -1 # PATCH: Further aacraid work # # drivers/scsi/aacraid/aacraid.h # 2004/05/30 12:34:35-05:00 alan@redhat.com +43 -22 # PATCH: Further aacraid work # # drivers/scsi/aacraid/aachba.c # 2004/05/30 12:27:32-05:00 alan@redhat.com +45 -71 # PATCH: Further aacraid work # # drivers/scsi/aacraid/TODO # 2004/05/30 11:41:11-05:00 alan@redhat.com +2 -0 # PATCH: Further aacraid work # # drivers/scsi/aacraid/README # 2004/05/30 11:40:52-05:00 alan@redhat.com +10 -8 # PATCH: Further aacraid work # # ChangeSet # 2004/06/18 07:55:13-07:00 mason@suse.com # [PATCH] reiserfs: btree readahead # # Walking the btree can trigger a number of single block synchronous reads. # This patch does btree readahead during operations that are likely to be long # and sequential. So far, that only includes directory reads and truncates, but # it can make both much faster. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/reiserfs_fs.h # 2004/06/18 00:32:26-07:00 mason@suse.com +5 -1 # reiserfs: btree readahead # # fs/reiserfs/stree.c # 2004/06/18 00:32:26-07:00 mason@suse.com +68 -25 # reiserfs: btree readahead # # fs/reiserfs/dir.c # 2004/06/17 23:41:37-07:00 mason@suse.com +1 -0 # reiserfs: btree readahead # # ChangeSet # 2004/06/18 07:55:03-07:00 mason@suse.com # [PATCH] reiserfs: remove debugging warning from block allocator # # Remove debugging warning from the reiserfs block allocator code # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/reiserfs/bitmap.c # 2004/06/17 23:41:37-07:00 mason@suse.com +0 -1 # reiserfs: remove debugging warning from block allocator # # ChangeSet # 2004/06/18 07:54:52-07:00 mason@suse.com # [PATCH] reiserfs: block allocator should not inherit "packing locality 1" # # reiserfsck --rebuild-tree expects the only key with a packing locality of 1 to # be for the root directory (key [1 2]). The new block allocator inherited that # packing locality down to subdirectories, which triggers failures in reiserfsck # --rebuild-tree # # reiserfsck in readonly check mode doesn't complain about this, thanks to Jeff # Mahoney for finding it. # # The fix is to never inherit packing locality #1 # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # fs/reiserfs/bitmap.c # 2004/06/18 00:32:26-07:00 mason@suse.com +6 -1 # reiserfs: block allocator should not inherit "packing locality 1" # # ChangeSet # 2004/06/18 07:54:43-07:00 mason@suse.com # [PATCH] reiserfs: block allocator optimizations # # From: # From: # # The current reiserfs allocator pretty much allocates things sequentially # from the start of the disk, it works very nicely for desktop loads but # once you've got more then one proc doing io data files can fragment badly. # # One obvious solution is something like ext2's bitmap groups, which puts # file data into different areas of the disk based on which subdirectory # they are in. The problem with bitmap groups is that if you've got a # group of subdirectories their contents will be spread out all over the # disk, leading to lots of seeks during a sequential read. # # This allocator patch uses the packing locality to determine which bitmap # group to allocate from, but when you create a file it looks in the bitmaps # to see how 'full' that packing locality already is. If it hasn't been # heavily used yet, the packing locality is inherited from the parent # directory putting files in new subdirs close to the parent subdir, # otherwise it is the inode number of the parent directory putting new # files far away from the parent subdir. # # The end result is fewer bitmap groups for the same working set. For # example, one test data set created by 20 procs running in parallel has # 6822 subdirs. And with vanilla reiserfs that would mean 6822 # packing localities. This patch turns that into 26 packing localities. # # This makes sequential reads of big directory trees more efficient, but # it also makes the btree more efficient in general. Things end up sorted # better because groups of subdirs end up with similar keys in the btree, # instead of being spread out all over. # # The bitmap grouping code tries to use the start of each bitmap group # for metadata, and offsets the data slightly. The data and metadata # are still close together, but not completely intermixed like they are # in the default allocator. The end result is that leaf nodes tend to be # close to each other, making metadata readahead more effective. # # The old block allocator had the ability to enforce a minimum # allocation size, but did not use it. It now tries to do a pass looking # for larger allocation chunks before falling back to the old behaviour # of taking any blocks it can find. # # The patch changes the defaults to: # # mount -o alloc=skip_busy:dirid_groups:packing_groups # # You can get back the old behaviour with mount -o alloc=skip_busy # # mount -o alloc=dirid_groups will turn on the bitmap groups # mount -o alloc=packing_groups turns on the packing locality reduction code # mount -o alloc=skip_busy:dirid_groups turns on both dirid_groups and # skip_busy # # Finally the patch adds a mount -o alloc=oid_groups, which puts files into # bitmap groups based on a hash of their objectid. This would be used for # databases or other situations where you have a limited number of very # large files. # # This command will tell you how many packing localities are actually in # use: # # debugreiserfs -d /dev/xxx | grep '^|.*SD' | sed 's/^.....//' | awk '{print $1}' | sort -u | wc -l # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/reiserfs_fs.h # 2004/06/18 00:32:26-07:00 mason@suse.com +10 -1 # reiserfs: block allocator optimizations # # fs/reiserfs/super.c # 2004/06/17 23:41:36-07:00 mason@suse.com +7 -6 # reiserfs: block allocator optimizations # # fs/reiserfs/inode.c # 2004/06/18 00:32:26-07:00 mason@suse.com +1 -2 # reiserfs: block allocator optimizations # # fs/reiserfs/file.c # 2004/06/18 00:32:26-07:00 mason@suse.com +11 -3 # reiserfs: block allocator optimizations # # fs/reiserfs/bitmap.c # 2004/06/18 00:32:27-07:00 mason@suse.com +234 -55 # reiserfs: block allocator optimizations # # ChangeSet # 2004/06/18 07:54:32-07:00 akpm@osdl.org # [PATCH] ppc64: uninline __pte_free_tlb() # # The pgalloc.h changes broke ppc64: # # In file included from include/asm-generic/tlb.h:18, # from include/asm/tlb.h:24, # from arch/ppc64/mm/hash_utils.c:48: # include/asm/pgalloc.h: In function `__pte_free_tlb': # include/asm/pgalloc.h:110: dereferencing pointer to incomplete type # include/asm/pgalloc.h:111: dereferencing pointer to incomplete type # # Uninlining __pte_free_tlb() fixes that. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ppc64/pgalloc.h # 2004/06/17 23:41:36-07:00 akpm@osdl.org +1 -27 # ppc64: uninline __pte_free_tlb() # # arch/ppc64/mm/tlb.c # 2004/06/17 23:41:36-07:00 akpm@osdl.org +27 -0 # ppc64: uninline __pte_free_tlb() # # ChangeSet # 2004/06/18 07:54:20-07:00 rmk@arm.linux.org.uk # [PATCH] Clean up asm/pgalloc.h include 3 # # This patch cleans up needless includes of asm/pgalloc.h from the arch/i386/ # subtree. Compile tested on x86_pc SMP. # # [I also tried VISWS + SMP without PM doesn't build in smpboot.c, # though I don't believe its caused by this patch. With PM, fails # to link complaining maxcpus is undefined. Therefore, I presume # VISWS + SMP is an invalid configuration.] # # This patch is part of a larger patch aiming towards getting the include of # asm/pgtable.h out of linux/mm.h, so that asm/pgtable.h can sanely get at # things like mm_struct and friends. # # I suggest testing in -mm for a while to ensure there aren't any hidden arch # issues. # # The outstanding list of files for other architectures can be found # at http://www.arm.linux.org.uk/misc/pgalloc.txt # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/i386/mm/ioremap.c # 2004/06/17 23:41:15-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include 3 # # arch/i386/mm/init.c # 2004/06/17 23:41:15-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include 3 # # arch/i386/mm/hugetlbpage.c # 2004/06/18 00:32:07-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include 3 # # arch/i386/mm/fault.c # 2004/06/17 23:41:15-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include 3 # # arch/i386/mach-voyager/voyager_thread.c # 2004/06/17 23:41:15-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include 3 # # arch/i386/mach-voyager/voyager_smp.c # 2004/06/17 23:41:15-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include 3 # # arch/i386/mach-voyager/voyager_basic.c # 2004/06/17 23:41:15-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include 3 # # arch/i386/mach-visws/traps.c # 2004/06/17 23:41:15-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include 3 # # arch/i386/kernel/vm86.c # 2004/06/17 23:41:15-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include 3 # # arch/i386/kernel/traps.c # 2004/06/18 00:32:07-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include 3 # # arch/i386/kernel/smpboot.c # 2004/06/17 23:41:15-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include 3 # # arch/i386/kernel/smp.c # 2004/06/17 23:41:15-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include 3 # # arch/i386/kernel/mpparse.c # 2004/06/18 00:32:15-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include 3 # # arch/i386/kernel/irq.c # 2004/06/17 23:41:15-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include 3 # # arch/i386/kernel/i386_ksyms.c # 2004/06/17 23:41:15-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include 3 # # arch/i386/kernel/efi.c # 2004/06/17 23:41:15-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include 3 # # arch/i386/kernel/apic.c # 2004/06/18 00:32:15-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include 3 # # arch/i386/kernel/acpi/boot.c # 2004/06/17 23:41:33-07:00 rmk@arm.linux.org.uk +2 -1 # Clean up asm/pgalloc.h include 3 # # ChangeSet # 2004/06/18 07:54:08-07:00 rmk@arm.linux.org.uk # [PATCH] Clean up asm/pgalloc.h include # # This patch cleans up needless includes of asm/pgalloc.h from the drivers/ # subtree. drivers/char/mem.c has been compile tested; the others have not, # since they are for non-x86 and non-ARM architectures. # # This patch is part of a larger patch aiming towards getting the include of # asm/pgtable.h out of linux/mm.h, so that asm/pgtable.h can sanely get at # things like mm_struct and friends. # # I suggest testing in -mm for a while to ensure there aren't any hidden arch # issues. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # sound/oss/dmasound/dmasound_atari.c # 2004/06/17 23:41:10-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include # # drivers/video/console/sticore.c # 2004/06/17 23:41:10-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include # # drivers/parisc/ccio-rm-dma.c # 2004/06/17 23:41:10-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include # # drivers/parisc/ccio-dma.c # 2004/06/17 23:41:10-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include # # drivers/net/sun3lance.c # 2004/06/17 23:41:10-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include # # drivers/net/macsonic.c # 2004/06/17 23:41:10-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include # # drivers/net/lasi_82596.c # 2004/06/17 23:41:10-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include # # drivers/net/82596.c # 2004/06/17 23:41:10-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include # # drivers/char/mem.c # 2004/06/17 23:41:10-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include # # ChangeSet # 2004/06/18 07:53:57-07:00 rmk@arm.linux.org.uk # [PATCH] Clean up asm/pgalloc.h include # # This patch cleans up needless includes of asm/pgalloc.h from the fs/ # kernel/ and mm/ subtrees. Compile tested on multiple ARM platforms, and # x86, this patch appears safe. # # This patch is part of a larger patch aiming towards getting the include of # asm/pgtable.h out of linux/mm.h, so that asm/pgtable.h can sanely get at # things like mm_struct and friends. # # I suggest testing in -mm for a while to ensure there aren't any hidden arch # issues. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/vmscan.c # 2004/06/17 23:41:09-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include # # mm/vmalloc.c # 2004/06/17 23:41:09-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include # # mm/nommu.c # 2004/06/17 23:41:09-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include # # mm/msync.c # 2004/06/17 23:41:09-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include # # mm/mremap.c # 2004/06/17 23:41:09-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include # # mm/mprotect.c # 2004/06/17 23:41:09-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include # # mm/mmap.c # 2004/06/17 23:41:09-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include # # mm/mincore.c # 2004/06/17 23:41:09-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include # # mm/highmem.c # 2004/06/17 23:41:09-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include # # kernel/module.c # 2004/06/17 23:41:09-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include # # include/asm-generic/tlb.h # 2004/06/17 23:41:09-07:00 rmk@arm.linux.org.uk +1 -0 # Clean up asm/pgalloc.h include # # include/asm-arm26/tlb.h # 2004/06/17 23:41:09-07:00 rmk@arm.linux.org.uk +1 -0 # Clean up asm/pgalloc.h include # # fs/proc/proc_misc.c # 2004/06/17 23:41:09-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include # # fs/exec.c # 2004/06/17 23:41:09-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include # # fs/binfmt_flat.c # 2004/06/17 23:41:09-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include # # fs/binfmt_elf.c # 2004/06/17 23:41:09-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include # # fs/binfmt_aout.c # 2004/06/17 23:41:09-07:00 rmk@arm.linux.org.uk +0 -1 # Clean up asm/pgalloc.h include # # ChangeSet # 2004/06/18 07:53:45-07:00 yoav.zach@intel.com # [PATCH] binfmt_misc: improve calculation of interpreter's credentials # # This patch allows for misc binaries to run with credentials and security # token that are calculated according to the binaries, and not according to the # interpreter, which is the legacy behavior of binfmt_misc. # # The way it is done is by calling prepare_binprm, which is where these # attributes are calculated, before switching the 'file' field in the bprm from # the binary to the interpreter. # # This feature should be used with care, since the interpreter will have root # permissions when running a setuid binary owned by root. # # Please note - # # - Only root can register an interpreter with binfmt_misc. The feature is # documented and the administrator is advised to handle it with care # # - The new feature is enabled only with a special flag in the registration # string. When this flag is not specified the current behavior of # binfmt_misc is kept # # - This is the only 'right' way for an interpreter to know the correct # AT_SECURE value for the interpreted binary # # # From: Chris Wright # # This patchset looks OK, except for one problem. It installs the fd (which # could've been unreadable) without unsharing the ->files. So someone can use # this to read unreadable yet executable files. Here's a patch which fixes # that up. I added one bit that's commented out because I'm not positive if a # final steal_locks() is needed. # # I did a fair amount of rearranging to simplify the error conditions # relative to the fd_install(), and unshare_files(). # # From: Chris Wright # # I found that the intel patchset (and mine as well) leaked i_writecount on # the original executed file. In addition, I verified that the steal_locks() # bit is indeed needed. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # ChangeSet # 2004/06/18 09:53:45-05:00 jejb@mulgrave.(none) # Enable clustering in the 53c700 driver # # Signed-off-by: James Bottomley # # fs/binfmt_misc.c # 2004/06/17 23:41:09-07:00 yoav.zach@intel.com +71 -51 # binfmt_misc: improve calculation of interpreter's credentials # # Documentation/binfmt_misc.txt # 2004/06/17 23:41:09-07:00 yoav.zach@intel.com +7 -0 # binfmt_misc: improve calculation of interpreter's credentials # # ChangeSet # 2004/06/18 07:53:34-07:00 yoav.zach@intel.com # [PATCH] Handle non-readable binfmt_misc executables # # # # I work in a group that works on enabling the IA-32 Execution Layer # (http://www.intel.com/pressroom/archive/releases/20040113comp.htm) on Linux. # In a few words - this is a dynamic translator for IA-32 binaries on IPF # platform. Following David Mosberger's advice - we use the binfmt_misc # mechanism for the invocation of the translator whenever the user tries to # exec an IA-32 binary. # # The EL is meant to help in the migration path from IA-32 to IPF. From our # beta customers we learnt that at first stage - they tend to keep their # environment mostly intact, using the legacy IA-32 binaries. # # Such an environment has, naturally, setuid and non-readable binaries. It # will be useless to ask the administrator to change the settings of such an # environment - some of them are very complex, and the administrators are # reluctant to make any changes in a system that already proved itself to be # robust and secure. So, our target with these patches is not to enhance the # support for scripts but rather to allow a translator to be integrated into a # working environment that is not (and should not be) aware to the fact it's # being emulated. # # As I said before - it is practically hopeless to expect an administrator of # such a system to change it so that it will suit the current behavior of # binfmt_misc. But, even if we could do that, # # I'm not sure it would be a good idea - these changes are likely to be less # secure than the suggested patches - # # - In order to execute non-readable binaries the binary will have to be made # readable, which is obviously less secure than allowing only a trusted # translator to read it # # - There will be no way for the translator to calculate the accurate # AT_SECURE value for the translated process. This might end up with the # translated process running in a non-secured mode when it actually needs to # be secured. # # # # # I prepared a patch that solves a couple of problems that interpreters have # when invoked via binfmt_misc. currently - # # 1) such interpreters cannot open non-readable binaries # # 2) the processes will have their credentials and security attributes # calculated according to interpreter permissions and not those of the # original binary # # the proposed patch solves these problems by - # # 1) opening the binary on behalf of the interpreter and passing its fd # instead of the path as argv[1] to the interpreter # # 2) calling prepare_binprm with the file struct of the binary and not the # one of the interpreter # # The new functionality is enabled by adding a special flag to the registration # string. If this flag is not added then old behavior is not changed. # # A preliminary version of this patch was sent to the list on 9/1/2003 with the # title "[PATCH]: non-readable binaries - binfmt_misc 2.6.0-test4". This new # version fixes the concerns that were raised by the patch, except of calling # unshare_files() before allocating a new fd. this is because this feature did # not enter 2.6 yet. # # # Arun Sharma says: # # We were going through an internal review of this patch: # # http://marc.theaimsgroup.com/?l=linux-kernel&m=107424598901720&w=2 # # which is in your tree already. I'm not sure if this line of code got # sufficient review. # # + /* call prepare_binprm before switching to interpreter's file # + * so that all security calculation will be done according to # + * binary and not interpreter */ # + retval = prepare_binprm(bprm); # # The case that concerns me is: unprivileged interpreter and a privileged # binary. One can use binfmt_misc to execute untrusted code (interpreter) with # elevated privileges. One could argue that all binfmt_misc interpreters are # trusted, because only root can register them. But that's a change from the # traditional behavior of binfmt_misc (and binfmt_script). # # # (Update): # # Arun pointed out that calculating the process credentials according to the # binary that needs to be translated is a bit risky, since it requires the # administrator to pay extra attention not to register an interpreter which is # not intended to run with root credentials. # # After discussing this issue with him, I would like to propose a modified # patch: The old patch did 2 things - 1) open the binary for reading and 2) # calculate the credentials according to the binary. # # I removed the riskier part of changing the credentials calculation, so the # revised patch only opens the binary for reading. It also includes few words # of warning in the description of the 'open-binary' feature in # binfmt_misc.txt, and makes the function entry_status print the flags in use. # # As for the 'credentials' part of the patch, I will prepare a separate patch # for it and send it again to the LKML, describe the problem and ask for people # comments. # # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/linux/binfmts.h # 2004/06/17 23:41:09-07:00 yoav.zach@intel.com +4 -0 # Handle non-readable binfmt_misc executables # # fs/exec.c # 2004/06/18 00:32:28-07:00 yoav.zach@intel.com +3 -1 # Handle non-readable binfmt_misc executables # # fs/binfmt_misc.c # 2004/06/18 00:32:28-07:00 yoav.zach@intel.com +120 -21 # Handle non-readable binfmt_misc executables # # Documentation/binfmt_misc.txt # 2004/06/18 00:32:28-07:00 yoav.zach@intel.com +19 -4 # Handle non-readable binfmt_misc executables # # drivers/scsi/53c700.c # 2004/06/18 09:53:25-05:00 jejb@mulgrave.(none) +1 -1 # Enable clustering in the 53c700 driver # # ChangeSet # 2004/06/18 07:53:23-07:00 mporter@kernel.crashing.org # [PATCH] Add PPC4xx MAINTAINERS entry, merge CREDITS from 2.4 # # Add myself as the PPC4xx maintainer. Merge CREDITS entry from 2.4 # # Signed-off-by: Matt Porter # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # MAINTAINERS # 2004/06/17 23:41:09-07:00 mporter@kernel.crashing.org +7 -0 # Add PPC4xx MAINTAINERS entry, merge CREDITS from 2.4 # # CREDITS # 2004/06/18 00:32:10-07:00 mporter@kernel.crashing.org +8 -0 # Add PPC4xx MAINTAINERS entry, merge CREDITS from 2.4 # # ChangeSet # 2004/06/18 07:53:12-07:00 olh@suse.de # [PATCH] ppc64: avoid multiline /proc/cmdline content on iSeries # # /proc/cmdline is filled via an OS400 call iSeries_init(). It scans the # returned data from the end, instead of the beginning. This leads to # multiple lines in /proc/cmdline # # Just scan from the beginning and stop at the first newline. This patch # changes also the /proc/iSeries/mf/*/cmdline interface to do the same as the # initial setup. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/ppc64/kernel/mf_proc.c # 2004/06/17 23:41:08-07:00 olh@suse.de +15 -22 # ppc64: avoid multiline /proc/cmdline content on iSeries # # arch/ppc64/kernel/iSeries_setup.c # 2004/06/17 23:41:08-07:00 olh@suse.de +6 -7 # ppc64: avoid multiline /proc/cmdline content on iSeries # # ChangeSet # 2004/06/18 07:53:00-07:00 mikpe@csd.uu.se # [PATCH] ppc32 irq.c cpumask fix # # 2.6.7-rc3-mm1 changed cpumask_t from ulong to a struct, causing # compile-time errors in arch/ppc/kernel/irq.c. # # Proposed fix below. Tested on a G3. # # Signed-off-by: Mikael Pettersson # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # arch/ppc/kernel/irq.c # 2004/06/17 23:41:08-07:00 mikpe@csd.uu.se +3 -1 # ppc32 irq.c cpumask fix # # ChangeSet # 2004/06/18 07:52:49-07:00 kumar.gala@freescale.com # [PATCH] ppc32: support for e500 and 85xx # # Here is both a GNU style and BK patch for adding support for the e500 core and # 85xx platform to 2.6. This is pretty much a direct port from 2.4 with a bit # of cleanup around the edges. # # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-ppc/mpc85xx.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +128 -0 # ppc32: support for e500 and 85xx # # include/asm-ppc/immap_85xx.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +126 -0 # ppc32: support for e500 and 85xx # # include/asm-ppc/fsl_ocp.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +54 -0 # ppc32: support for e500 and 85xx # # arch/ppc/syslib/ppc85xx_setup.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +67 -0 # ppc32: support for e500 and 85xx # # arch/ppc/syslib/ppc85xx_setup.c # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +341 -0 # ppc32: support for e500 and 85xx # # arch/ppc/syslib/ppc85xx_common.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +29 -0 # ppc32: support for e500 and 85xx # # arch/ppc/syslib/ppc85xx_common.c # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +46 -0 # ppc32: support for e500 and 85xx # # arch/ppc/platforms/85xx/mpc85xx_ads_common.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +50 -0 # ppc32: support for e500 and 85xx # # arch/ppc/platforms/85xx/mpc85xx_ads_common.c # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +237 -0 # ppc32: support for e500 and 85xx # # arch/ppc/platforms/85xx/mpc8540_ads.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +30 -0 # ppc32: support for e500 and 85xx # # arch/ppc/platforms/85xx/mpc8540_ads.c # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +238 -0 # ppc32: support for e500 and 85xx # # arch/ppc/platforms/85xx/mpc8540.c # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +97 -0 # ppc32: support for e500 and 85xx # # arch/ppc/platforms/85xx/Makefile # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +7 -0 # ppc32: support for e500 and 85xx # # arch/ppc/platforms/85xx/Kconfig # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +44 -0 # ppc32: support for e500 and 85xx # # arch/ppc/mm/fsl_booke_mmu.c # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +236 -0 # ppc32: support for e500 and 85xx # # arch/ppc/kernel/head_e500.S # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +1329 -0 # ppc32: support for e500 and 85xx # # include/linux/prctl.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +6 -0 # ppc32: support for e500 and 85xx # # include/asm-ppc/tlbflush.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +22 -0 # ppc32: support for e500 and 85xx # # include/asm-ppc/system.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +2 -0 # ppc32: support for e500 and 85xx # # include/asm-ppc/serial.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +2 -0 # ppc32: support for e500 and 85xx # # include/asm-ppc/reg_booke.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +119 -11 # ppc32: support for e500 and 85xx # # include/asm-ppc/reg.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +12 -0 # ppc32: support for e500 and 85xx # # include/asm-ppc/ptrace.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +5 -0 # ppc32: support for e500 and 85xx # # include/asm-ppc/processor.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +16 -9 # ppc32: support for e500 and 85xx # # include/asm-ppc/ppcboot.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +2 -2 # ppc32: support for e500 and 85xx # # include/asm-ppc/ppc_asm.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +56 -10 # ppc32: support for e500 and 85xx # # include/asm-ppc/pgtable.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +37 -0 # ppc32: support for e500 and 85xx # # include/asm-ppc/ocp_ids.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +2 -1 # ppc32: support for e500 and 85xx # # include/asm-ppc/ocp.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +4 -0 # ppc32: support for e500 and 85xx # # include/asm-ppc/mpc85xx.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-ppc/mpc85xx.h # # include/asm-ppc/mmu_context.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +5 -0 # ppc32: support for e500 and 85xx # # include/asm-ppc/mmu.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +68 -0 # ppc32: support for e500 and 85xx # # include/asm-ppc/io.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +2 -0 # ppc32: support for e500 and 85xx # # include/asm-ppc/immap_85xx.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-ppc/immap_85xx.h # # include/asm-ppc/fsl_ocp.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/include/asm-ppc/fsl_ocp.h # # include/asm-ppc/elf.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +1 -0 # ppc32: support for e500 and 85xx # # arch/ppc/syslib/ppc85xx_setup.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/syslib/ppc85xx_setup.h # # arch/ppc/syslib/ppc85xx_setup.c # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/syslib/ppc85xx_setup.c # # arch/ppc/syslib/ppc85xx_common.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/syslib/ppc85xx_common.h # # arch/ppc/syslib/ppc85xx_common.c # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/syslib/ppc85xx_common.c # # arch/ppc/syslib/open_pic.c # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +1 -1 # ppc32: support for e500 and 85xx # # arch/ppc/syslib/Makefile # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +7 -0 # ppc32: support for e500 and 85xx # # arch/ppc/platforms/85xx/mpc85xx_ads_common.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/platforms/85xx/mpc85xx_ads_common.h # # arch/ppc/platforms/85xx/mpc85xx_ads_common.c # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/platforms/85xx/mpc85xx_ads_common.c # # arch/ppc/platforms/85xx/mpc8540_ads.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/platforms/85xx/mpc8540_ads.h # # arch/ppc/platforms/85xx/mpc8540_ads.c # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/platforms/85xx/mpc8540_ads.c # # arch/ppc/platforms/85xx/mpc8540.c # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/platforms/85xx/mpc8540.c # # arch/ppc/platforms/85xx/Makefile # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/platforms/85xx/Makefile # # arch/ppc/platforms/85xx/Kconfig # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/platforms/85xx/Kconfig # # arch/ppc/mm/pgtable.c # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +32 -0 # ppc32: support for e500 and 85xx # # arch/ppc/mm/mmu_decl.h # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +9 -0 # ppc32: support for e500 and 85xx # # arch/ppc/mm/init.c # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +6 -0 # ppc32: support for e500 and 85xx # # arch/ppc/mm/fsl_booke_mmu.c # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/mm/fsl_booke_mmu.c # # arch/ppc/mm/fault.c # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +7 -7 # ppc32: support for e500 and 85xx # # arch/ppc/mm/Makefile # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +1 -0 # ppc32: support for e500 and 85xx # # arch/ppc/kernel/traps.c # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +89 -2 # ppc32: support for e500 and 85xx # # arch/ppc/kernel/signal.c # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +42 -3 # ppc32: support for e500 and 85xx # # arch/ppc/kernel/ptrace.c # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +84 -3 # ppc32: support for e500 and 85xx # # arch/ppc/kernel/process.c # 2004/06/18 00:32:24-07:00 kumar.gala@freescale.com +95 -6 # ppc32: support for e500 and 85xx # # arch/ppc/kernel/ppc_ksyms.c # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +5 -1 # ppc32: support for e500 and 85xx # # arch/ppc/kernel/misc.S # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +37 -3 # ppc32: support for e500 and 85xx # # arch/ppc/kernel/head_e500.S # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +0 -0 # BitKeeper file /home/torvalds/v2.6/linux/arch/ppc/kernel/head_e500.S # # arch/ppc/kernel/entry.S # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +24 -12 # ppc32: support for e500 and 85xx # # arch/ppc/kernel/cputable.c # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +12 -1 # ppc32: support for e500 and 85xx # # arch/ppc/kernel/asm-offsets.c # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +7 -1 # ppc32: support for e500 and 85xx # # arch/ppc/kernel/align.c # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +5 -5 # ppc32: support for e500 and 85xx # # arch/ppc/kernel/Makefile # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +4 -0 # ppc32: support for e500 and 85xx # # arch/ppc/Makefile # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +8 -2 # ppc32: support for e500 and 85xx # # arch/ppc/Kconfig # 2004/06/17 23:41:08-07:00 kumar.gala@freescale.com +33 -4 # ppc32: support for e500 and 85xx # # ChangeSet # 2004/06/18 07:52:38-07:00 hugh@veritas.com # [PATCH] mm: pretest pte_young and pte_dirty # # Test for pte_young before going to the costlier atomic test_and_clear, as # asm-generic does. Test for pte_dirty before going to the costlier atomic # test_and_clear, as asm-generic does (I said before that I would not do so for # pte_dirty, but was missing the point: there is nothing atomic about deciding # to do nothing). But I've not touched the rather different ppc and ppc64. # # Signed-off-by: Hugh Dickins # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # include/asm-x86_64/pgtable.h # 2004/06/17 23:41:07-07:00 hugh@veritas.com +15 -2 # mm: pretest pte_young and pte_dirty # # include/asm-parisc/pgtable.h # 2004/06/17 23:41:07-07:00 hugh@veritas.com +4 -0 # mm: pretest pte_young and pte_dirty # # include/asm-ia64/pgtable.h # 2004/06/17 23:41:07-07:00 hugh@veritas.com +4 -0 # mm: pretest pte_young and pte_dirty # # include/asm-i386/pgtable.h # 2004/06/17 23:41:07-07:00 hugh@veritas.com +14 -2 # mm: pretest pte_young and pte_dirty # # ChangeSet # 2004/06/18 07:52:27-07:00 hugh@veritas.com # [PATCH] mm: flush TLB when clearing young # # Traditionally we've not flushed TLB after clearing the young/referenced bit, # it has seemed just a waste of time. Russell King points out that on some # architectures, with the move from 2.4 mm sweeping to 2.6 rmap, this may be a # serious omission: very frequently referenced pages never re-marked young, and # the worst choices made for unmapping. # # So, replace ptep_test_and_clear_young by ptep_clear_flush_young throughout # rmap.c. Originally I'd imagined making some kind of TLB gather optimization, # but don't see what now: whether worth it rather depends on how common # cross-cpu flushes are, and whether global or not. # # ppc and ppc64 have already found this issue, and worked around it by arranging # TLB flush from their ptep_test_and_clear_young: with the aid of pgtable rmap # pointers. I'm hoping ptep_clear_flush_young will allow ppc and ppc64 to # remove that special code, but won't change them myself. # # It's worth noting that it is Andrea's anon_vma rmap which makes the vma # available for ptep_clear_flush_young in page_referenced_one: anonmm and # pte_chains would both need an additional find_vma for that. # # Signed-off-by: Hugh Dickins # Signed-off-by: Andrew Morton # Signed-off-by: Linus Torvalds # # mm/rmap.c # 2004/06/17 23:41:07-07:00 hugh@veritas.com +3 -3 # mm: flush TLB when clearing young # # ChangeSet # 2004/06/18 13:33:48+01:00 rmk@flint.arm.linux.org.uk # [ARM] Add support code for ARM hardware vector floating point # # This cset adds the code to handle the hardware vector floating point # unit found on some ARM926 and later CPUs. The hardware provides # an implementation for the common cases, and bounces exceptions for # other cases, which have to be handled in software, and signalling # SIGFPE as appropriate. # # include/asm-arm/vfpmacros.h # 2004/06/18 13:31:34+01:00 rmk@flint.arm.linux.org.uk +25 -0 # # include/asm-arm/vfpmacros.h # 2004/06/18 13:31:33+01:00 rmk@flint.arm.linux.org.uk +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/include/asm-arm/vfpmacros.h # # include/asm-arm/vfp.h # 2004/06/18 13:31:26+01:00 rmk@flint.arm.linux.org.uk +78 -0 # # include/asm-arm/vfp.h # 2004/06/18 13:31:26+01:00 rmk@flint.arm.linux.org.uk +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/include/asm-arm/vfp.h # # arch/arm/vfp/vfpsingle.c # 2004/06/18 13:31:18+01:00 rmk@flint.arm.linux.org.uk +1224 -0 # # arch/arm/vfp/vfpsingle.c # 2004/06/18 13:31:18+01:00 rmk@flint.arm.linux.org.uk +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/arch/arm/vfp/vfpsingle.c # # arch/arm/vfp/vfpmodule.c # 2004/06/18 13:31:11+01:00 rmk@flint.arm.linux.org.uk +288 -0 # # arch/arm/vfp/vfpmodule.c # 2004/06/18 13:31:11+01:00 rmk@flint.arm.linux.org.uk +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/arch/arm/vfp/vfpmodule.c # # arch/arm/vfp/vfpinstr.h # 2004/06/18 13:31:03+01:00 rmk@flint.arm.linux.org.uk +88 -0 # # arch/arm/vfp/vfpinstr.h # 2004/06/18 13:31:03+01:00 rmk@flint.arm.linux.org.uk +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/arch/arm/vfp/vfpinstr.h # # arch/arm/vfp/vfphw.S # 2004/06/18 13:30:55+01:00 rmk@flint.arm.linux.org.uk +210 -0 # # arch/arm/vfp/vfphw.S # 2004/06/18 13:30:55+01:00 rmk@flint.arm.linux.org.uk +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/arch/arm/vfp/vfphw.S # # arch/arm/vfp/vfpdouble.c # 2004/06/18 13:30:41+01:00 rmk@flint.arm.linux.org.uk +1186 -0 # # arch/arm/vfp/vfpdouble.c # 2004/06/18 13:30:41+01:00 rmk@flint.arm.linux.org.uk +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/arch/arm/vfp/vfpdouble.c # # arch/arm/vfp/vfp.h # 2004/06/18 13:30:32+01:00 rmk@flint.arm.linux.org.uk +333 -0 # # arch/arm/vfp/vfp.h # 2004/06/18 13:30:32+01:00 rmk@flint.arm.linux.org.uk +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/arch/arm/vfp/vfp.h # # arch/arm/vfp/entry.S # 2004/06/18 13:30:14+01:00 rmk@flint.arm.linux.org.uk +45 -0 # # arch/arm/vfp/entry.S # 2004/06/18 13:30:14+01:00 rmk@flint.arm.linux.org.uk +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/arch/arm/vfp/entry.S # # arch/arm/vfp/Makefile # 2004/06/18 13:29:58+01:00 rmk@flint.arm.linux.org.uk +12 -0 # # arch/arm/vfp/Makefile # 2004/06/18 13:29:58+01:00 rmk@flint.arm.linux.org.uk +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/arch/arm/vfp/Makefile # # Documentation/arm/VFP/release-notes.txt # 2004/06/18 13:29:51+01:00 rmk@flint.arm.linux.org.uk +55 -0 # # include/asm-arm/thread_info.h # 2004/06/18 13:29:51+01:00 rmk@flint.arm.linux.org.uk +5 -2 # Add VFP state to thread information structure. # # include/asm-arm/fpstate.h # 2004/06/18 13:29:51+01:00 rmk@flint.arm.linux.org.uk +32 -0 # Add VFP hardware structures. # # Documentation/arm/VFP/release-notes.txt # 2004/06/18 13:29:51+01:00 rmk@flint.arm.linux.org.uk +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/Documentation/arm/VFP/release-notes.txt # # arch/arm/kernel/process.c # 2004/06/18 13:29:50+01:00 rmk@flint.arm.linux.org.uk +6 -0 # Add VFP calls for releasing VFP state held by a thread and # initialising VFP State. # # arch/arm/kernel/entry-armv.S # 2004/06/18 13:29:50+01:00 rmk@flint.arm.linux.org.uk +13 -0 # Add VFP calls and additional context switch support. # # arch/arm/Makefile # 2004/06/18 13:29:50+01:00 rmk@flint.arm.linux.org.uk +1 -0 # Add VFP directory to build # # arch/arm/Kconfig # 2004/06/18 13:29:49+01:00 rmk@flint.arm.linux.org.uk +11 -0 # Add VFP configuration option. # # ChangeSet # 2004/06/18 15:21:08+09:00 yoshfuji@linux-ipv6.org # [XFRM] fix dependency issues for CONFIG_IPV6=m. # # net/xfrm/xfrm_state.c # 2004/06/18 15:20:58+09:00 yoshfuji@linux-ipv6.org +10 -0 # [XFRM] split up xfrm_check_output() into two functions to solve dependency issues. # # net/xfrm/xfrm_export.c # 2004/06/18 15:20:58+09:00 yoshfuji@linux-ipv6.org +1 -1 # [XFRM] split up xfrm_check_output() into two functions to solve dependency issues. # # net/xfrm/Makefile # 2004/06/18 15:20:58+09:00 yoshfuji@linux-ipv6.org +1 -1 # [XFRM] split up xfrm_check_output() into two functions to solve dependency issues. # # net/ipv6/ipcomp6.c # 2004/06/18 15:20:58+09:00 yoshfuji@linux-ipv6.org +5 -1 # [XFRM] split up xfrm_check_output() into two functions to solve dependency issues. # # net/ipv6/esp6.c # 2004/06/18 15:20:58+09:00 yoshfuji@linux-ipv6.org +8 -5 # [XFRM] split up xfrm_check_output() into two functions to solve dependency issues. # # net/ipv6/ah6.c # 2004/06/18 15:20:58+09:00 yoshfuji@linux-ipv6.org +5 -1 # [XFRM] split up xfrm_check_output() into two functions to solve dependency issues. # # net/ipv4/ipcomp.c # 2004/06/18 15:20:58+09:00 yoshfuji@linux-ipv6.org +7 -3 # [XFRM] split up xfrm_check_output() into two functions to solve dependency issues. # # net/ipv4/esp4.c # 2004/06/18 15:20:58+09:00 yoshfuji@linux-ipv6.org +9 -4 # [XFRM] split up xfrm_check_output() into two functions to solve dependency issues. # # net/ipv4/ah4.c # 2004/06/18 15:20:58+09:00 yoshfuji@linux-ipv6.org +4 -1 # [XFRM] split up xfrm_check_output() into two functions to solve dependency issues. # # include/net/xfrm.h # 2004/06/18 15:20:58+09:00 yoshfuji@linux-ipv6.org +1 -1 # [XFRM] split up xfrm_check_output() into two functions to solve dependency issues. # # BitKeeper/deleted/.del-xfrm_output.c~af23cc5516e28602 # 2004/06/18 15:10:51+09:00 yoshfuji@linux-ipv6.org +0 -0 # Delete: net/xfrm/xfrm_output.c # # ChangeSet # 2004/06/18 01:56:40-04:00 len.brown@intel.com # Merge intel.com:/home/lenb/src/linux-acpi-test-2.6.7 # into intel.com:/home/lenb/bk/linux-acpi-test-2.6.7 # # drivers/acpi/pci_link.c # 2004/06/18 01:54:24-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/x86_64/kernel/mpparse.c # 2004/06/18 01:54:24-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/i386/kernel/mpparse.c # 2004/06/18 01:54:23-04:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/06/18 01:40:30-04:00 len.brown@intel.com # Merge intel.com:/home/lenb/src/linux-acpi-test-2.6.6 # into intel.com:/home/lenb/src/linux-acpi-test-2.6.7 # # arch/x86_64/kernel/mpparse.c # 2004/06/18 01:40:27-04:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/06/18 14:25:15+09:00 yoshfuji@linux-ipv6.org # [IPV6] XFRM: support (uncompressed) tunnel mode ipcomp6 using xfrm6_tunnel infrastructure. # # net/ipv6/xfrm6_tunnel.c # 2004/06/18 14:25:06+09:00 yoshfuji@linux-ipv6.org +623 -0 # # net/ipv6/xfrm6_tunnel.c # 2004/06/18 14:25:06+09:00 yoshfuji@linux-ipv6.org +0 -0 # BitKeeper file /home2/yoshfuji/BitKeeper/linux-2.6-export-2.6.8/linux-2.6-xfrm6tunnel/net/ipv6/xfrm6_tunnel.c # # net/ipv6/xfrm6_policy.c # 2004/06/18 14:25:06+09:00 yoshfuji@linux-ipv6.org +2 -0 # [IPV6] XFRM: add missing xfrm6_tunnel.c. # # net/ipv6/ipcomp6.c # 2004/06/18 14:25:06+09:00 yoshfuji@linux-ipv6.org +69 -0 # [IPV6] XFRM: support (uncompressed) tunnel mode ipcomp6 using xfrm6_tunnel infrastructure. # # net/ipv6/ip6_tunnel.c # 2004/06/18 14:25:06+09:00 yoshfuji@linux-ipv6.org +9 -9 # [IPV6] XFRM: use xfrm6_tunnel infrastructure to register/unregister protocol handers. # # net/ipv6/Makefile # 2004/06/18 14:25:06+09:00 yoshfuji@linux-ipv6.org +2 -1 # [IPV6] XFRM: add missing xfrm6_tunnel.c. # # include/net/xfrm.h # 2004/06/18 14:25:06+09:00 yoshfuji@linux-ipv6.org +14 -4 # [IPV6] XFRM: add missing xfrm6_tunnel.c. # # ChangeSet # 2004/06/18 13:56:36+09:00 yoshfuji@linux-ipv6.org # [IPV6] XFRM: add missing xfrm6_policy_check(). # # net/ipv6/ip6_tunnel.c # 2004/06/18 13:56:27+09:00 yoshfuji@linux-ipv6.org +5 -0 # [IPV6] XFRM: add missing xfrm6_policy_check(). # # ChangeSet # 2004/06/18 13:54:05+09:00 yoshfuji@linux-ipv6.org # [IPV6] make several functions static in ip6_tunnel that should be. # # net/ipv6/ip6_tunnel.c # 2004/06/18 13:53:56+09:00 yoshfuji@linux-ipv6.org +10 -6 # [IPV6] make several functions static in ip6_tunnel that should be. # # ChangeSet # 2004/06/18 00:18:19-04:00 len.brown@intel.com # [ACPI] handle SCI override to nth IOAPIC # http://bugzilla.kernel.org/show_bug.cgi?id=2835 # # arch/x86_64/kernel/mpparse.c # 2004/06/17 20:18:02-04:00 len.brown@intel.com +1 -0 # handle SCI override to nth IOAPIC # # arch/i386/kernel/mpparse.c # 2004/06/17 20:18:02-04:00 len.brown@intel.com +1 -0 # handle SCI override to nth IOAPIC # # ChangeSet # 2004/06/17 21:16:48-07:00 rth@twiddle.net # [PATCH] alpha: fix discontigmem+initrd build # # From: Ivan Kokshaysky # # Compilation fails due to incorrect usage of NODE_DATA(). # # Reported by hpa. # # arch/alpha/mm/numa.c # 2004/06/14 08:25:24-07:00 rth@twiddle.net +2 -2 # alpha: fix discontigmem+initrd build # # ChangeSet # 2004/06/18 14:09:35+10:00 nathans@sgi.com # [XFS] Fix up highmem build and error handling on inode shrink register. # # SGI Modid: xfs-linux:xfs-kern:173764a # Signed-off-by: nathans@sgi.com # # fs/xfs/linux-2.6/xfs_super.c # 2004/06/18 14:09:11+10:00 nathans@sgi.com +7 -0 # [XFS] Fix up highmem build and error handling on inode shrink register. # # fs/xfs/linux-2.6/kmem.c # 2004/06/18 14:09:11+10:00 nathans@sgi.com +1 -0 # [XFS] Fix up highmem build and error handling on inode shrink register. # # ChangeSet # 2004/06/17 21:04:44-07:00 paulus@samba.org # [PATCH] ppc64: Optimize exception/syscall entry/exit # # This rewrites the PPC64 exception entry/exit routines to make them # smaller and faster. # # In particular we no longer save all of the registers for the common # exceptions - system calls, hardware interrupts and decrementer (timer) # interrupts - only the volatile registers. The other registers are saved # and restored (if used) by the C functions we call. This involved # changing the registers we use in early exception processing from r20-r23 # to r9-r12, which ended up changing quite a lot of code in head.S. # Overall this gives us about a 20% reduction in null syscall time. # # Some system calls need all the registers (e.g. fork/clone/vfork and # [rt_]sigsuspend). For these the syscall dispatch code calls a stub that # saves the nonvolatile registers before calling the real handler. # # This also implements the force_successful_syscall_return() thing for # ppc64. # # Signed-off-by: Paul Mackerras # Signed-off-by: Linus Torvalds # # include/asm-ppc64/thread_info.h # 2004/06/16 22:46:06-07:00 paulus@samba.org +2 -2 # ppc64: Optimize exception/syscall entry/exit # # include/asm-ppc64/ptrace.h # 2004/06/16 22:46:06-07:00 paulus@samba.org +12 -0 # ppc64: Optimize exception/syscall entry/exit # # include/asm-ppc64/processor.h # 2004/06/16 22:46:06-07:00 paulus@samba.org +1 -2 # ppc64: Optimize exception/syscall entry/exit # # include/asm-ppc64/ppc_asm.h # 2004/06/16 22:46:06-07:00 paulus@samba.org +3 -5 # ppc64: Optimize exception/syscall entry/exit # # include/asm-ppc64/paca.h # 2004/06/16 22:46:06-07:00 paulus@samba.org +9 -11 # ppc64: Optimize exception/syscall entry/exit # # arch/ppc64/xmon/xmon.c # 2004/06/16 22:46:06-07:00 paulus@samba.org +0 -3 # ppc64: Optimize exception/syscall entry/exit # # arch/ppc64/mm/fault.c # 2004/06/16 23:23:50-07:00 paulus@samba.org +33 -24 # ppc64: Optimize exception/syscall entry/exit # # arch/ppc64/kernel/traps.c # 2004/06/16 22:46:06-07:00 paulus@samba.org +15 -1 # ppc64: Optimize exception/syscall entry/exit # # arch/ppc64/kernel/syscalls.c # 2004/06/16 22:46:06-07:00 paulus@samba.org +14 -0 # ppc64: Optimize exception/syscall entry/exit # # arch/ppc64/kernel/signal32.c # 2004/06/16 22:46:06-07:00 paulus@samba.org +1 -1 # ppc64: Optimize exception/syscall entry/exit # # arch/ppc64/kernel/signal.c # 2004/06/16 22:46:06-07:00 paulus@samba.org +2 -2 # ppc64: Optimize exception/syscall entry/exit # # arch/ppc64/kernel/process.c # 2004/06/16 22:46:06-07:00 paulus@samba.org +5 -1 # ppc64: Optimize exception/syscall entry/exit # # arch/ppc64/kernel/pacaData.c # 2004/06/16 22:46:06-07:00 paulus@samba.org +0 -2 # ppc64: Optimize exception/syscall entry/exit # # arch/ppc64/kernel/misc.S # 2004/06/16 22:46:06-07:00 paulus@samba.org +13 -12 # ppc64: Optimize exception/syscall entry/exit # # arch/ppc64/kernel/head.S # 2004/06/16 22:46:06-07:00 paulus@samba.org +707 -760 # ppc64: Optimize exception/syscall entry/exit # # arch/ppc64/kernel/entry.S # 2004/06/16 22:48:02-07:00 paulus@samba.org +277 -193 # ppc64: Optimize exception/syscall entry/exit # # arch/ppc64/kernel/asm-offsets.c # 2004/06/16 22:46:06-07:00 paulus@samba.org +10 -2 # ppc64: Optimize exception/syscall entry/exit # # ChangeSet # 2004/06/17 21:04:32-07:00 paulus@samba.org # [PATCH] ppc64: Implement CONFIG_PREEMPT # # This implements CONFIG_PREEMPT for ppc64. Aside from the entry.S # changes to check the _TIF_NEED_RESCHED bit when returning from an # exception, there are various changes to make the ppc64-specific code # preempt-safe, mostly adding preempt_enable/disable or get_cpu/put_cpu # calls where needed. I have been using this on my desktop G5 for the # last week without problems. # # Signed-off-by: Paul Mackerras # Signed-off-by: Linus Torvalds # # include/asm-ppc64/thread_info.h # 2004/06/09 23:21:41-07:00 paulus@samba.org +5 -2 # ppc64: Implement CONFIG_PREEMPT # # include/asm-ppc64/system.h # 2004/06/09 23:21:41-07:00 paulus@samba.org +2 -0 # ppc64: Implement CONFIG_PREEMPT # # include/asm-ppc64/hardirq.h # 2004/06/09 23:21:41-07:00 paulus@samba.org +2 -0 # ppc64: Implement CONFIG_PREEMPT # # arch/ppc64/mm/tlb.c # 2004/06/09 23:21:41-07:00 paulus@samba.org +5 -1 # ppc64: Implement CONFIG_PREEMPT # # arch/ppc64/mm/init.c # 2004/06/09 23:21:41-07:00 paulus@samba.org +4 -1 # ppc64: Implement CONFIG_PREEMPT # # arch/ppc64/mm/hugetlbpage.c # 2004/06/09 23:21:41-07:00 paulus@samba.org +4 -1 # ppc64: Implement CONFIG_PREEMPT # # arch/ppc64/mm/hash_utils.c # 2004/06/09 23:21:41-07:00 paulus@samba.org +7 -3 # ppc64: Implement CONFIG_PREEMPT # # arch/ppc64/kernel/traps.c # 2004/06/09 23:21:41-07:00 paulus@samba.org +2 -4 # ppc64: Implement CONFIG_PREEMPT # # arch/ppc64/kernel/sys_ppc32.c # 2004/06/09 23:21:41-07:00 paulus@samba.org +2 -6 # ppc64: Implement CONFIG_PREEMPT # # arch/ppc64/kernel/signal32.c # 2004/06/09 23:21:41-07:00 paulus@samba.org +5 -7 # ppc64: Implement CONFIG_PREEMPT # # arch/ppc64/kernel/signal.c # 2004/06/09 23:21:41-07:00 paulus@samba.org +3 -5 # ppc64: Implement CONFIG_PREEMPT # # arch/ppc64/kernel/rtas.c # 2004/06/09 23:21:41-07:00 paulus@samba.org +4 -2 # ppc64: Implement CONFIG_PREEMPT # # arch/ppc64/kernel/ptrace32.c # 2004/06/09 23:21:41-07:00 paulus@samba.org +6 -12 # ppc64: Implement CONFIG_PREEMPT # # arch/ppc64/kernel/ptrace.c # 2004/06/09 23:21:41-07:00 paulus@samba.org +4 -8 # ppc64: Implement CONFIG_PREEMPT # # arch/ppc64/kernel/process.c # 2004/06/09 23:21:41-07:00 paulus@samba.org +64 -23 # ppc64: Implement CONFIG_PREEMPT # # arch/ppc64/kernel/entry.S # 2004/06/09 23:21:41-07:00 paulus@samba.org +50 -9 # ppc64: Implement CONFIG_PREEMPT # # arch/ppc64/kernel/asm-offsets.c # 2004/06/09 23:21:41-07:00 paulus@samba.org +1 -0 # ppc64: Implement CONFIG_PREEMPT # # arch/ppc64/kernel/align.c # 2004/06/09 23:21:41-07:00 paulus@samba.org +9 -4 # ppc64: Implement CONFIG_PREEMPT # # arch/ppc64/Kconfig # 2004/06/09 23:21:41-07:00 paulus@samba.org +0 -1 # ppc64: Implement CONFIG_PREEMPT # # ChangeSet # 2004/06/17 22:54:26-05:00 stevef@smfhome1.smfdom # Fix typo in name of CIFS Kconfig option and add rename stats # # fs/cifs/cifssmb.c # 2004/06/17 22:54:19-05:00 stevef@smfhome1.smfdom +12 -1 # add rename stats # # fs/cifs/cifsglob.h # 2004/06/17 22:54:19-05:00 stevef@smfhome1.smfdom +2 -0 # add rename stats # # fs/cifs/cifs_debug.c # 2004/06/17 22:54:19-05:00 stevef@smfhome1.smfdom +7 -1 # Add rename stats # # fs/Kconfig # 2004/06/17 22:54:19-05:00 stevef@smfhome1.smfdom +1 -1 # Fix typo in name of CIFS Kconfig option # # ChangeSet # 2004/06/18 13:38:36+10:00 cattelan@sgi.com # [XFS] Fix for NFS+XFS data corruption problem. # See http://oss.sgi.com/bugzilla/show_bug.cgi?id=198 for full details. # # SGI Modid: xfs-linux:xfs-kern:173598a # Signed-off-by: nathans@sgi.com # # fs/xfs/linux-2.6/xfs_aops.c # 2004/06/18 13:38:08+10:00 cattelan@sgi.com +16 -9 # [XFS] Fix for NFS+XFS data corruption problem. # See http://oss.sgi.com/bugzilla/show_bug.cgi?id=198 for full details. # # ChangeSet # 2004/06/17 23:21:03-04:00 len.brown@intel.com # [ACPI] avoid spurious interrupts on VIA # http://bugzilla.kernel.org/show_bug.cgi?id=2243 # # drivers/acpi/pci_link.c # 2004/06/11 10:38:46-04:00 len.brown@intel.com +3 -19 # disable all PCI Interrupt Links to be enabled by _SRS # # ChangeSet # 2004/06/17 20:05:11-07:00 dsaxena@plexity.net # Merge plexity.net:/home/dsaxena/src/linux-2.6-arm-timer # into plexity.net:/home/dsaxena/src/linux-2.6-for-rmk # # arch/arm/mach-integrator/integrator_cp.c # 2004/06/17 20:05:06-07:00 dsaxena@plexity.net +0 -0 # Auto merged # # arch/arm/kernel/debug.S # 2004/06/17 20:05:06-07:00 dsaxena@plexity.net +0 -0 # Auto merged # # arch/arm/Kconfig # 2004/06/17 20:05:06-07:00 dsaxena@plexity.net +0 -0 # Auto merged # # ChangeSet # 2004/06/17 23:00:08-04:00 len.brown@intel.com # [ACPI] fix passive cooling mode indicator (Luming Yu) # http://bugzilla.kernel.org/show_bug.cgi?id=1770 # # drivers/acpi/thermal.c # 2004/01/02 00:06:13-05:00 len.brown@intel.com +7 -0 # fix passive cooling mode indicator (Luming Yu) # # ChangeSet # 2004/06/18 12:05:32+10:00 nathans@sgi.com # [XFS] Fix up memory allocators to be more resilient. # # SGI Modid: xfs-linux:xfs-kern:173571a # Signed-off-by: nathans@sgi.com # # fs/xfs/linux-2.6/kmem.c # 2004/06/18 12:05:01+10:00 nathans@sgi.com +126 -0 # # fs/xfs/linux-2.6/xfs_super.c # 2004/06/18 12:05:01+10:00 nathans@sgi.com +23 -6 # [XFS] Fix up memory allocators to be more resilient. # # fs/xfs/linux-2.6/xfs_buf.c # 2004/06/18 12:05:01+10:00 nathans@sgi.com +28 -15 # [XFS] Fix up memory allocators to be more resilient. # # fs/xfs/linux-2.6/kmem.h # 2004/06/18 12:05:01+10:00 nathans@sgi.com +38 -76 # [XFS] Fix up memory allocators to be more resilient. # # fs/xfs/linux-2.6/kmem.c # 2004/06/18 12:05:01+10:00 nathans@sgi.com +0 -0 # BitKeeper file /source2/xfs-linux-2.6/fs/xfs/linux-2.6/kmem.c # # fs/xfs/Makefile # 2004/06/18 12:05:01+10:00 nathans@sgi.com +1 -0 # [XFS] Fix up memory allocators to be more resilient. # # ChangeSet # 2004/06/18 11:53:10+10:00 nathans@sgi.com # [XFS] Fix a race condition in the undo-delayed-write buffer routine. # # SGI Modid: xfs-linux:xfs-kern:173564a # Signed-off-by: nathans@sgi.com # # fs/xfs/linux-2.6/xfs_buf.h # 2004/06/18 11:52:41+10:00 nathans@sgi.com +4 -16 # [XFS] Fix a race condition in the undo-delayed-write buffer routine. # # fs/xfs/linux-2.6/xfs_buf.c # 2004/06/18 11:52:41+10:00 nathans@sgi.com +11 -2 # [XFS] Fix a race condition in the undo-delayed-write buffer routine. # # ChangeSet # 2004/06/18 11:47:58+10:00 nathans@sgi.com # [XFS] Fix flags argument to xfs_incore call on attr removal. # # SGI Modid: xfs-linux:xfs-kern:173563a # Signed-off-by: nathans@sgi.com # # fs/xfs/xfs_attr.c # 2004/06/18 11:47:36+10:00 nathans@sgi.com +3 -3 # [XFS] Fix flags argument to xfs_incore call on attr removal. # # ChangeSet # 2004/06/18 11:44:24+10:00 nathans@sgi.com # [XFS] Remove the one remaining, broken use of XFS_WRITEIO_LOG and # sanitize direct IO map blocks call. # # SGI Modid: xfs-linux:xfs-kern:173562a # Signed-off-by: nathans@sgi.com # # fs/xfs/xfs_mount.h # 2004/06/18 11:44:01+10:00 nathans@sgi.com +1 -5 # [XFS] Remove the one remaining, broken use of XFS_WRITEIO_LOG and # sanitize direct IO map blocks call. # # fs/xfs/linux-2.6/xfs_aops.c # 2004/06/18 11:44:01+10:00 nathans@sgi.com +4 -17 # [XFS] Remove the one remaining, broken use of XFS_WRITEIO_LOG and # sanitize direct IO map blocks call. # # ChangeSet # 2004/06/18 10:59:11+10:00 nathans@sgi.com # [XFS] Remove unused MAC macros, never needed on Linux. # # SGI Modid: xfs-linux:xfs-kern:173561a # Signed-off-by: nathans@sgi.com # # fs/xfs/xfs_vnodeops.c # 2004/06/18 10:58:48+10:00 nathans@sgi.com +0 -16 # [XFS] Remove unused MAC macros, never needed on Linux. # # fs/xfs/xfs_inode.c # 2004/06/18 10:58:48+10:00 nathans@sgi.com +0 -6 # [XFS] Remove unused MAC macros, never needed on Linux. # # fs/xfs/xfs_acl.c # 2004/06/18 10:58:48+10:00 nathans@sgi.com +0 -4 # [XFS] Remove unused MAC macros, never needed on Linux. # # ChangeSet # 2004/06/18 10:52:51+10:00 nathans@sgi.com # [XFS] Sanitise the ACL initialisation macros. # # SGI Modid: xfs-linux:xfs-kern:173559a # Signed-off-by: nathans@sgi.com # # fs/xfs/xfs_vfsops.c # 2004/06/18 10:52:27+10:00 nathans@sgi.com +2 -2 # [XFS] Sanitise the ACL initialisation macros. # # fs/xfs/xfs_acl.h # 2004/06/18 10:52:27+10:00 nathans@sgi.com +11 -15 # [XFS] Sanitise the ACL initialisation macros. # # ChangeSet # 2004/06/18 10:49:46+10:00 nathans@sgi.com # [XFS] Ensure buffers that map to unwritten extents are only submitted # when properly setup. # # SGI Modid: xfs-linux:xfs-kern:173555a # Signed-off-by: nathans@sgi.com # # fs/xfs/linux-2.6/xfs_aops.c # 2004/06/18 10:49:23+10:00 nathans@sgi.com +7 -2 # [XFS] Ensure buffers that map to unwritten extents are only submitted # when properly setup. # # ChangeSet # 2004/06/18 10:43:35+10:00 roehrich@sgi.com # [XFS] Fix non-dmapi build # # SGI Modid: xfs-linux:xfs-kern:173222a # Signed-off-by: nathans@sgi.com # # fs/xfs/xfs_dmapi.h # 2004/06/18 10:43:11+10:00 roehrich@sgi.com +2 -2 # [XFS] Fix non-dmapi build # # ChangeSet # 2004/06/18 10:38:53+10:00 roehrich@sgi.com # [XFS] Change things to use new version of xfs_dm_init/xfs_dm_exit # # SGI Modid: xfs-linux:xfs-kern:173206a # Signed-off-by: nathans@sgi.com # # fs/xfs/xfs_dmapi.h # 2004/06/18 10:38:30+10:00 roehrich@sgi.com +10 -3 # [XFS] Change things to use new version of xfs_dm_init/xfs_dm_exit # # fs/xfs/linux-2.6/xfs_super.h # 2004/06/18 10:38:30+10:00 roehrich@sgi.com +8 -1 # [XFS] Change things to use new version of xfs_dm_init/xfs_dm_exit # # fs/xfs/linux-2.6/xfs_super.c # 2004/06/18 10:38:30+10:00 roehrich@sgi.com +2 -2 # [XFS] Change things to use new version of xfs_dm_init/xfs_dm_exit # # ChangeSet # 2004/06/18 10:17:44+10:00 nathans@sgi.com # [XFS] sparse: fix uses of macros before their definitions, etc. # # SGI Modid: xfs-linux:xfs-kern:173194a # Signed-off-by: nathans@sgi.com # # fs/xfs/xfs_arch.h # 2004/06/18 10:17:21+10:00 nathans@sgi.com +5 -5 # [XFS] sparse: fix uses of macros before their definitions, etc. # # fs/xfs/xfs.h # 2004/06/18 10:17:21+10:00 nathans@sgi.com +1 -0 # [XFS] sparse: fix uses of macros before their definitions, etc. # # fs/xfs/linux-2.6/xfs_fs_subr.c # 2004/06/18 10:17:21+10:00 nathans@sgi.com +3 -3 # [XFS] sparse: fix uses of macros before their definitions, etc. # # fs/xfs/linux-2.6/kmem.h # 2004/06/18 10:17:21+10:00 nathans@sgi.com +1 -1 # [XFS] sparse: fix uses of macros before their definitions, etc. # # ChangeSet # 2004/06/18 10:09:06+10:00 nathans@sgi.com # [XFS] Fix xfs_lowbit64, it mishandled zero in the high bits. # Cleanup a couple of other ffs users, since ffs(0) is apparently # undefined on some architectures. # # SGI Modid: xfs-linux:xfs-kern:173034a # Signed-off-by: nathans@sgi.com # # fs/xfs/xfs_rtalloc.c # 2004/06/18 10:08:43+10:00 nathans@sgi.com +4 -2 # [XFS] Fix xfs_lowbit64, it mishandled zero in the high bits. # Cleanup a couple of other ffs users, since ffs(0) is apparently # undefined on some architectures. # # fs/xfs/xfs_bit.c # 2004/06/18 10:08:43+10:00 nathans@sgi.com +14 -10 # [XFS] Fix xfs_lowbit64, it mishandled zero in the high bits. # Cleanup a couple of other ffs users, since ffs(0) is apparently # undefined on some architectures. # # ChangeSet # 2004/06/18 10:04:34+10:00 nathans@sgi.com # [XFS] Remove a couple of redundant NULL parent inode pointer checks. # # SGI Modid: xfs-linux:xfs-kern:173033a # Signed-off-by: nathans@sgi.com # # fs/xfs/xfs_inode.h # 2004/06/18 10:04:10+10:00 nathans@sgi.com +2 -2 # [XFS] Remove a couple of redundant NULL parent inode pointer checks. # # fs/xfs/xfs_inode.c # 2004/06/18 10:04:10+10:00 nathans@sgi.com +1 -2 # [XFS] Remove a couple of redundant NULL parent inode pointer checks. # # ChangeSet # 2004/06/18 10:00:58+10:00 nathans@sgi.com # [XFS] No longer hold the BKL for the entire ioctl operation, # its not needed here. # # SGI Modid: xfs-linux:xfs-kern:173032a # Signed-off-by: nathans@sgi.com # # fs/xfs/linux-2.6/xfs_file.c # 2004/06/18 10:00:35+10:00 nathans@sgi.com +6 -2 # [XFS] No longer hold the BKL for the entire ioctl operation, # its not needed here. # # ChangeSet # 2004/06/17 16:25:47-07:00 tony.luck@intel.com # [PATCH] ia64: switching between CPEI & CPEP # # A couple of months ago Hidetoshi Seto from Fujitsu proposed # a patch to provide similar switching between interrupt mode # and polling mode for corrected platform events (CPE) as we # have for processor events (CMC) [with the obvious difference # that not all platforms support an interrupt for CPE]. # # I dusted it off and made a couple of very minor cleanups (which # Seto-san checked out last night on his test setup and confirmed # still passes). # # Signed-off-by: Tony Luck # Signed-off-by: David Mosberger # # arch/ia64/kernel/mca.c # 2004/06/16 13:24:00-07:00 tony.luck@intel.com +71 -16 # ia64: switching between CPEI & CPEP # # ChangeSet # 2004/06/17 16:22:26-07:00 pfg@sgi.com # [PATCH] ia64: fix SN2 interrupt rerouting # # Signed-off-by: Patrick Gefre # Signed-off-by: David Mosberger # # arch/ia64/sn/kernel/irq.c # 2004/06/17 08:42:20-07:00 pfg@sgi.com +17 -0 # ia64: fix SN2 interrupt rerouting # # arch/ia64/sn/io/sn2/ml_iograph.c # 2004/06/17 08:42:20-07:00 pfg@sgi.com +8 -8 # ia64: fix SN2 interrupt rerouting # # ChangeSet # 2004/06/17 15:47:19-07:00 davidm@tiger.hpl.hp.com # ia64: Fix build-problem when CONFIG_IA32 is not enabled. # # Without this fix, you'll get unresolved references to # sys_rt_sigaction(). # # include/asm-ia64/unistd.h # 2004/06/17 15:47:11-07:00 davidm@tiger.hpl.hp.com +2 -1 # (__ARCH_WANT_SYS_RT_SIGACTION): Move outside of # #ifdef CONFIG_IA32_SUPPORT bracket---we need # sys_rt_sigaction() whether we have ia32 emulation or not. # # ChangeSet # 2004/06/17 15:45:25-07:00 davidm@tiger.hpl.hp.com # ia64: Squish some more hazards & warnings for UP compile. # # include/asm-ia64/system.h # 2004/06/17 15:45:17-07:00 davidm@tiger.hpl.hp.com +1 -1 # (local_irq_enable): Precede ia64_ssm() with ia64_stop() to avoid # WAW hazard when local_irq_disable() is followed in the # same instruction-group by local_irq_enable(). # # include/asm-ia64/gcc_intrin.h # 2004/06/17 15:45:17-07:00 davidm@tiger.hpl.hp.com +11 -5 # (ia64_ptcga): Follow with ia64_dv_serialize_data() to shut up some # compiler/assembler-warnings which showed when compiling for UP. # (ia64_ptcl): Likewise. # (ia64_intrin_local_irq_restore): Put a stop-bit before the cmp.ne to # work around an apparent GCC v3.4 bug/limitation (it doesn't # seem to heed the clobber of p6/p7 and merrily generates code # that writes to p6/p7 right before the cmp.ne. # # ChangeSet # 2004/06/17 15:41:52-07:00 dsaxena@plexity.net # [ARM] Remove ADIFCC machine type # # The code is completely out of date, I am no longer maintaining it, # and nobdy has volunteered to do so; therefore, I am killing it. # # Signed-off-by: Deepak Saxena # # arch/arm/mm/Kconfig # 2004/06/17 15:41:42-07:00 dsaxena@plexity.net +1 -1 # Remove ADIFCC machine type # # arch/arm/kernel/entry-armv.S # 2004/06/17 15:41:42-07:00 dsaxena@plexity.net +1 -1 # Remove ADIFCC machine type # # arch/arm/kernel/debug.S # 2004/06/17 15:41:42-07:00 dsaxena@plexity.net +0 -26 # Remove ADIFCC machine type # # arch/arm/boot/compressed/head-xscale.S # 2004/06/17 15:41:42-07:00 dsaxena@plexity.net +0 -3 # Remove ADIFCC machine type # # arch/arm/boot/Makefile # 2004/06/17 15:41:42-07:00 dsaxena@plexity.net +0 -2 # Remove ADIFCC machine type # # arch/arm/Makefile # 2004/06/17 15:41:42-07:00 dsaxena@plexity.net +0 -1 # Remove ADIFCC machine type # # arch/arm/Kconfig # 2004/06/17 15:41:42-07:00 dsaxena@plexity.net +0 -3 # Remove ADIFCC machine type # # ChangeSet # 2004/06/17 15:41:25-07:00 davidm@tiger.hpl.hp.com # ia64: Squish compiler-warning in perfmon.c when compiling for UP. # # arch/ia64/kernel/perfmon.c # 2004/06/17 15:41:17-07:00 davidm@tiger.hpl.hp.com +26 -25 # (pfm_force_cleanup): Move nside "#ifdef CONFIG_SMP" bracket to # avoid compiler-warning. # # BitKeeper/deleted/.del-adi_evb_defconfig~5ab95444ffcea5c9 # 2004/06/17 15:27:16-07:00 dsaxena@plexity.net +0 -0 # Delete: arch/arm/configs/adi_evb_defconfig # # BitKeeper/deleted/.del-vmalloc.h~15c97e3acb543bb0 # 2004/06/17 15:25:00-07:00 dsaxena@plexity.net +0 -0 # Delete: include/asm-arm/arch-adifcc/vmalloc.h # # BitKeeper/deleted/.del-uncompress.h~62baa5a4fcf5eb3b # 2004/06/17 15:25:00-07:00 dsaxena@plexity.net +0 -0 # Delete: include/asm-arm/arch-adifcc/uncompress.h # # BitKeeper/deleted/.del-timex.h~a141f6df7754bb0a # 2004/06/17 15:25:00-07:00 dsaxena@plexity.net +0 -0 # Delete: include/asm-arm/arch-adifcc/timex.h # # BitKeeper/deleted/.del-system.h~198f47232b9136f1 # 2004/06/17 15:25:00-07:00 dsaxena@plexity.net +0 -0 # Delete: include/asm-arm/arch-adifcc/system.h # # BitKeeper/deleted/.del-serial.h~bc766ee26826eae8 # 2004/06/17 15:24:59-07:00 dsaxena@plexity.net +0 -0 # Delete: include/asm-arm/arch-adifcc/serial.h # # BitKeeper/deleted/.del-param.h~80c7330f7482c3c7 # 2004/06/17 15:24:59-07:00 dsaxena@plexity.net +0 -0 # Delete: include/asm-arm/arch-adifcc/param.h # # BitKeeper/deleted/.del-memory.h~2d1748648a3d612 # 2004/06/17 15:24:59-07:00 dsaxena@plexity.net +0 -0 # Delete: include/asm-arm/arch-adifcc/memory.h # # BitKeeper/deleted/.del-irqs.h~f0180913d4bf323c # 2004/06/17 15:24:59-07:00 dsaxena@plexity.net +0 -0 # Delete: include/asm-arm/arch-adifcc/irqs.h # # BitKeeper/deleted/.del-io.h~e0d8c315f73a9e29 # 2004/06/17 15:24:59-07:00 dsaxena@plexity.net +0 -0 # Delete: include/asm-arm/arch-adifcc/io.h # # BitKeeper/deleted/.del-hardware.h~b995a53087c6aa07 # 2004/06/17 15:24:59-07:00 dsaxena@plexity.net +0 -0 # Delete: include/asm-arm/arch-adifcc/hardware.h # # BitKeeper/deleted/.del-dma.h~1aab232a2312a68e # 2004/06/17 15:24:58-07:00 dsaxena@plexity.net +0 -0 # Delete: include/asm-arm/arch-adifcc/dma.h # # BitKeeper/deleted/.del-adi_evb.h~cd33495e40db9649 # 2004/06/17 15:24:56-07:00 dsaxena@plexity.net +0 -0 # Delete: include/asm-arm/arch-adifcc/adi_evb.h # # ChangeSet # 2004/06/17 15:23:14-07:00 stern@rowland.harvard.edu # [PATCH] USB: Fix endian bug in g_file_storage # # This patch fixes a couple of places in g_file_storage where I forgot to # use proper byte-swapping. # # # Signed-off-by: Alan Stern # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/gadget/file_storage.c # 2004/06/17 09:15:53-07:00 stern@rowland.harvard.edu +2 -2 # USB: Fix endian bug in g_file_storage # # ChangeSet # 2004/06/17 15:22:55-07:00 stern@rowland.harvard.edu # [PATCH] USB Storage: unusual_devs.h update # # On Thu, 17 Jun 2004, Daniel Nouri wrote: # > I get this message when inserting my USB MMC card reader: # > # > usb 3-1: new full speed USB device using address 4 # > usb.agent[5388]: usb-storage: already loaded # > usb-storage: This device (04e6,0006,0205 S 01 P 01) has an unneeded Protocol entry in unusual_devs.h # > Please send a copy of this message to # # Thanks for letting us know. This patch will eliminate that log message. # # # # Signed-off-by: Alan Stern # Signed-off-by: Greg Kroah-Hartman # # BitKeeper/deleted/.del-mm.c~5479359d6124d62c # 2004/06/17 15:22:54-07:00 dsaxena@plexity.net +0 -0 # Delete: arch/arm/mach-adifcc/mm.c # # BitKeeper/deleted/.del-irq.c~df46d54c803ac527 # 2004/06/17 15:22:54-07:00 dsaxena@plexity.net +0 -0 # Delete: arch/arm/mach-adifcc/irq.c # # BitKeeper/deleted/.del-arch.c~e5363b35d51cf728 # 2004/06/17 15:22:54-07:00 dsaxena@plexity.net +0 -0 # Delete: arch/arm/mach-adifcc/arch.c # # BitKeeper/deleted/.del-Makefile~bb9d2878ad23132d # 2004/06/17 15:22:53-07:00 dsaxena@plexity.net +0 -0 # Delete: arch/arm/mach-adifcc/Makefile # # drivers/usb/storage/unusual_devs.h # 2004/06/17 09:06:45-07:00 stern@rowland.harvard.edu +1 -1 # USB Storage: unusual_devs.h update # # ChangeSet # 2004/06/17 15:22:34-07:00 mdharm-usb@one-eyed-alien.net # [PATCH] USB Storage: Lexar Jumpshot CF reader # # This patch is required to fix up the jumpshot driver, and to supress # the 'unneeded entry' message for another device which uses the same # VID/PID/rev for multiple different versions of the device. # # Alan Stern cooked this patch up, originally. # # Signed-off-by: Matthew Dharm # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/storage/unusual_devs.h # 2004/06/17 08:57:07-07:00 mdharm-usb@one-eyed-alien.net +2 -2 # USB Storage: Lexar Jumpshot CF reader # # drivers/usb/storage/jumpshot.c # 2004/06/17 08:51:10-07:00 mdharm-usb@one-eyed-alien.net +1 -1 # USB Storage: Lexar Jumpshot CF reader # # ChangeSet # 2004/06/17 15:22:14-07:00 david-b@pacbell.net # [PATCH] USB: add support for Buffalo LUA-U2-KTX # # Add support for Buffalo's LUA-U2-KTX, which is a AX8817X based usb # ethernet adapter. I just added the USB id and it worked like a dream. # # From: Neil Bortnak # Signed-off-by: David Brownell # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/net/usbnet.c # 2004/06/14 05:52:53-07:00 david-b@pacbell.net +6 -0 # USB: add support for Buffalo LUA-U2-KTX # # ChangeSet # 2004/06/17 15:21:44-07:00 david-b@pacbell.net # [PATCH] proper bios handoff in ehci-hcd # # Stuart Hayes here at Dell has identified this or/and mix-up in the # ehci-hcd driver. Because of this, ehci-hcd is not properly released by # BIOSes supporting full 2.0 and port behavior can then become erratic. # # (Code predates general availability of such BIOS firmware. This version # of the patch also fixes minor linewrap issues.) # # From: Gary Lerhaupt # Signed-off-by: David Brownell # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/host/ehci-hcd.c # 2004/06/16 01:29:01-07:00 david-b@pacbell.net +4 -3 # proper bios handoff in ehci-hcd # # ChangeSet # 2004/06/17 15:21:14-07:00 sean@mess.org # [PATCH] USB: PhidgetServo driver fixes # # Here is a patch for the phidgetservo driver -- it was using memory after # kfree(), and using driver_info is much nicer. :) # # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/misc/phidgetservo.c # 2004/06/16 08:28:42-07:00 sean@mess.org +63 -54 # USB: PhidgetServo driver fixes # # ChangeSet # 2004/06/17 15:20:50-07:00 stern@rowland.harvard.edu # [PATCH] USB: Only process ports with change events pending # # This patch adds a bit-array to the hub driver's private data structure, # used for storing the contents of the hub's interrupt status message. That # message indicates which ports have events pending (and whether the hub # itself has events pending). By only polling the status of the ports # listed in the bit-array we can save a fair amount of overhead in hub # communication. # # (The #error test added to hub.h is a little awkward, but it's purely # precautionary -- it won't matter until someone decides to support hubs # with more than 31 ports!) # # Also included in the patch, since this seemed the perfect opportunity for # it, is Byron's suggestion for handling hub events in the order in which # they were received. # # # # Signed-off-by: Alan Stern # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/core/hub.h # 2004/06/15 09:10:57-07:00 stern@rowland.harvard.edu +4 -0 # USB: Only process ports with change events pending # # drivers/usb/core/hub.c # 2004/06/15 09:11:37-07:00 stern@rowland.harvard.edu +14 -2 # USB: Only process ports with change events pending # # ChangeSet # 2004/06/17 14:21:35-07:00 dsaxena@plexity.net # [ARM] Consolidate various ARM timer fns. into single timer_tick() call. # # Signed-off-by: Deepak Saxena # # include/asm-arm/mach/time.h # 2004/06/17 14:21:26-07:00 dsaxena@plexity.net +2 -6 # Consolidate various ARM timer functions into a single timer_tick() call. # # arch/arm/mach-versatile/core.c # 2004/06/17 14:21:26-07:00 dsaxena@plexity.net +1 -3 # Call timer_tick() # # arch/arm/mach-shark/core.c # 2004/06/17 14:21:26-07:00 dsaxena@plexity.net +1 -3 # Call timer_tick() # # arch/arm/mach-sa1100/time.c # 2004/06/17 14:21:26-07:00 dsaxena@plexity.net +1 -5 # Call timer_tick() # # arch/arm/mach-s3c2410/time.c # 2004/06/17 14:21:26-07:00 dsaxena@plexity.net +1 -6 # Call timer_tick() # # arch/arm/mach-rpc/riscpc.c # 2004/06/17 14:21:26-07:00 dsaxena@plexity.net +1 -3 # Call timer_tick() # # arch/arm/mach-pxa/time.c # 2004/06/17 14:21:26-07:00 dsaxena@plexity.net +1 -5 # Call timer_tick() # # arch/arm/mach-omap/time.c # 2004/06/17 14:21:26-07:00 dsaxena@plexity.net +1 -3 # Call timer_tick() # # arch/arm/mach-lh7a40x/time.c # 2004/06/17 14:21:26-07:00 dsaxena@plexity.net +1 -4 # Call timer_tick() # # arch/arm/mach-ixp4xx/common.c # 2004/06/17 14:21:26-07:00 dsaxena@plexity.net +1 -1 # Call timer_tick() # # arch/arm/mach-iop3xx/iop321-time.c # 2004/06/17 14:21:26-07:00 dsaxena@plexity.net +1 -1 # Call timer_tick() # # arch/arm/mach-integrator/time.c # 2004/06/17 14:21:26-07:00 dsaxena@plexity.net +1 -3 # Call timer_tick() # # arch/arm/mach-footbridge/time.c # 2004/06/17 14:21:26-07:00 dsaxena@plexity.net +2 -11 # Call timer_tick() # # arch/arm/mach-epxa10db/time.c # 2004/06/17 14:21:25-07:00 dsaxena@plexity.net +1 -3 # Call timer_tick() # # arch/arm/mach-ebsa110/core.c # 2004/06/17 14:21:25-07:00 dsaxena@plexity.net +1 -3 # Call timer_tick() # # arch/arm/mach-clps7500/core.c # 2004/06/17 14:21:25-07:00 dsaxena@plexity.net +2 -3 # Call timer_tick() # # arch/arm/mach-clps711x/time.c # 2004/06/17 14:21:25-07:00 dsaxena@plexity.net +1 -3 # Call timer_tick() # # arch/arm/kernel/time.c # 2004/06/17 14:21:25-07:00 dsaxena@plexity.net +16 -8 # Consolidate various ARM timer functions into a single timer_tick() call. # # ChangeSet # 2004/06/17 13:40:02-07:00 jmorris@redhat.com # [IPV6]: Fix OOPS in fragmentation. # # Incorrect SKB pointer is passed to output() callback # in ip6_fragment(). # # Work done by James Morris and Yoshifuji Hideaki. # # Signed-off-by: James Morris # Signed-off-by: Yoshifuji Hideaki # Signed-off-by: David S. Miller # # net/ipv6/ip6_output.c # 2004/06/17 13:39:47-07:00 jmorris@redhat.com +4 -6 # [IPV6]: Fix OOPS in fragmentation. # # Incorrect SKB pointer is passed to output() callback # in ip6_fragment(). # # Work done by James Morris and Yoshifuji Hideaki. # # Signed-off-by: James Morris # Signed-off-by: Yoshifuji Hideaki # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/17 16:31:52-04:00 len.brown@intel.com # [ACPI] PCI bus numbering workaround for ServerWorks # from David Shaohua Li # http://bugzilla.kernel.org/show_bug.cgi?id=1662 # # drivers/acpi/pci_root.c # 2004/06/17 12:31:13-04:00 len.brown@intel.com +48 -1 # if _BBN is bogus, evaluate _CRS on PCI bus # to get the bus number (David Shaohua Li) # # ChangeSet # 2004/06/17 12:11:42-07:00 davem@nuts.davemloft.net # [NET]: In unregister_netdevice(), do synchronize_net() before final dev_put(). # # This way we make sure that all destination cache updates # to remove references to this device are seen by entire # system before final destruction of the device. # # ChangeSet # 2004/06/17 12:09:59-07:00 davem@nuts.davemloft.net # Cset exclude: kuznet@ms2.inr.ac.ru|ChangeSet|20040616204246|05149 # # net/core/dst.c # 2004/06/17 12:09:54-07:00 davem@nuts.davemloft.net +0 -0 # Exclude # # ChangeSet # 2004/06/17 11:52:18-07:00 shemminger@osdl.org # [SPARSE]: Fix another net warning. # # Get rid of warning from assignment in conditional. # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # net/core/net-sysfs.c # 2004/06/17 11:52:04-07:00 shemminger@osdl.org +1 -1 # [SPARSE]: Fix another net warning. # # Get rid of warning from assignment in conditional. # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/17 11:40:00-07:00 shemminger@osdl.org # [SPARSE]: Get rid of warning in bridge ethtool ioctl. # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # net/bridge/br_if.c # 2004/06/17 11:39:35-07:00 shemminger@osdl.org +1 -1 # [SPARSE]: Get rid of warning in bridge ethtool ioctl. # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/17 11:16:48-07:00 shemminger@osdl.org # [SPARSE]: Annotate csum_and_copy_to_user(). # # include/asm-sparc64/checksum.h # 2004/06/17 11:16:34-07:00 shemminger@osdl.org +2 -1 # [SPARSE]: Annotate csum_and_copy_to_user(). # # include/asm-sparc/checksum.h # 2004/06/17 11:16:34-07:00 shemminger@osdl.org +1 -1 # [SPARSE]: Annotate csum_and_copy_to_user(). # # include/asm-sh/checksum.h # 2004/06/17 11:16:34-07:00 shemminger@osdl.org +4 -2 # [SPARSE]: Annotate csum_and_copy_to_user(). # # include/asm-parisc/checksum.h # 2004/06/17 11:16:34-07:00 shemminger@osdl.org +4 -2 # [SPARSE]: Annotate csum_and_copy_to_user(). # # include/asm-mips/checksum.h # 2004/06/17 11:16:34-07:00 shemminger@osdl.org +2 -1 # [SPARSE]: Annotate csum_and_copy_to_user(). # # include/asm-i386/checksum.h # 2004/06/17 11:16:34-07:00 shemminger@osdl.org +4 -2 # [SPARSE]: Annotate csum_and_copy_to_user(). # # ChangeSet # 2004/06/17 11:15:13-07:00 akpm@osdl.org # [BRIDGE]: Fix bridge sysfs improprely initialized kobject. # # The bridge sysfs interface introduced around 2.6.7-rc1 created a bad # entry in /sys because it didn't initialise the name member of the kobject. # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # net/bridge/br_sysfs_br.c # 2004/06/17 11:14:46-07:00 akpm@osdl.org +1 -3 # [BRIDGE]: Fix bridge sysfs improprely initialized kobject. # # The bridge sysfs interface introduced around 2.6.7-rc1 created a bad # entry in /sys because it didn't initialise the name member of the kobject. # # Signed-off-by: Andrew Morton # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/17 10:56:25-07:00 shemminger@osdl.org # [SPARSE]: Add annotations to sock_filter.h # # Since sock_fprog is argument in ioctl, the filter pointer needs # to be annotated. # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # include/linux/filter.h # 2004/06/17 10:56:10-07:00 shemminger@osdl.org +3 -1 # [SPARSE]: Add annotations to sock_filter.h # # Since sock_fprog is argument in ioctl, the filter pointer needs # to be annotated. # # Signed-off-by: Stephen Hemminger # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/17 10:51:14-07:00 shemminger@osdl.org # [SPARSE]: Get rid of warning in irtty_ioctl(). # # Don't really need verify_area because result of copy_to_user is checked. # Add annotation to get rid of sparse warnings. # # Signed-off-by: Stephen Hemminger # Signed-off-by: Jean Tourrilhes # Signed-off-by: David S. Miller # # drivers/net/irda/irtty-sir.c # 2004/06/17 10:50:59-07:00 shemminger@osdl.org +1 -9 # [SPARSE]: Get rid of warning in irtty_ioctl(). # # Don't really need verify_area because result of copy_to_user is checked. # Add annotation to get rid of sparse warnings. # # Signed-off-by: Stephen Hemminger # Signed-off-by: Jean Tourrilhes # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/17 11:09:05-05:00 stevef@stevef95.austin.ibm.com # fix typo in cifs kernel config option title # # Signed-off-by: Steve French (sfrench@us.ibm.com) # # fs/Kconfig # 2004/06/17 11:08:47-05:00 stevef@stevef95.austin.ibm.com +1 -1 # fix typo in cifs kernel config option title # # ChangeSet # 2004/06/17 13:57:37+01:00 dwmw2@shinybook.infradead.org # Workaround for MPC826x PCI erratum #9. # # include/asm-ppc/mpc8260_pci9.h # 2004/06/17 13:57:17+01:00 dwmw2@shinybook.infradead.org +51 -0 # # include/asm-ppc/mpc8260_pci9.h # 2004/06/17 13:57:17+01:00 dwmw2@shinybook.infradead.org +0 -0 # BitKeeper file /home/dwmw2/bk/new82xx-2.6/include/asm-ppc/mpc8260_pci9.h # # arch/ppc/syslib/m8260_pci_erratum9.c # 2004/06/17 13:57:15+01:00 dwmw2@shinybook.infradead.org +474 -0 # # include/asm-ppc/io.h # 2004/06/17 13:57:15+01:00 dwmw2@shinybook.infradead.org +15 -1 # Accomodate out-of-line read[bwl] functions for 8260 PCI erratum workaround # # arch/ppc/syslib/m8260_setup.c # 2004/06/17 13:57:15+01:00 dwmw2@shinybook.infradead.org +5 -0 # Initialise IDMA controller for PCI erratum workaround # # arch/ppc/syslib/m8260_pci_erratum9.c # 2004/06/17 13:57:15+01:00 dwmw2@shinybook.infradead.org +0 -0 # BitKeeper file /home/dwmw2/bk/new82xx-2.6/arch/ppc/syslib/m8260_pci_erratum9.c # # arch/ppc/syslib/m8260_pci.h # 2004/06/17 13:57:15+01:00 dwmw2@shinybook.infradead.org +7 -0 # Add setup_m8260_indirect_pci() prototype or #define # # arch/ppc/syslib/m8260_pci.c # 2004/06/17 13:57:15+01:00 dwmw2@shinybook.infradead.org +3 -3 # Use m8260-specific PCI setup function to allow for erratum workaround # # arch/ppc/syslib/Makefile # 2004/06/17 13:57:15+01:00 dwmw2@shinybook.infradead.org +1 -0 # Make rule for 8260 PCI erratum #9 workaround # # arch/ppc/Kconfig # 2004/06/17 13:57:15+01:00 dwmw2@shinybook.infradead.org +23 -0 # Config options for 8260 PCI erratum #9 workaround # # ChangeSet # 2004/06/17 08:32:23+01:00 dwmw2@shinybook.infradead.org # Change new Motorola copyright notices and email addresses to Freescale. # # Requested by Kumar Gala # # drivers/serial/cpm_uart/cpm_uart_cpm2.c # 2004/06/17 08:32:04+01:00 dwmw2@shinybook.infradead.org +2 -2 # s/Motorola/Freescale/ # # drivers/serial/cpm_uart/cpm_uart_cpm1.c # 2004/06/17 08:32:04+01:00 dwmw2@shinybook.infradead.org +2 -2 # s/Motorola/Freescale/ # # drivers/serial/cpm_uart/cpm_uart_core.c # 2004/06/17 08:32:04+01:00 dwmw2@shinybook.infradead.org +2 -2 # s/Motorola/Freescale/ # # drivers/serial/cpm_uart/cpm_uart.h # 2004/06/17 08:32:04+01:00 dwmw2@shinybook.infradead.org +1 -1 # s/Motorola/Freescale/ # # arch/ppc/platforms/pq2ads_setup.c # 2004/06/17 08:32:04+01:00 dwmw2@shinybook.infradead.org +2 -2 # s/Motorola/Freescale/ # # ChangeSet # 2004/06/17 02:15:36-04:00 len.brown@intel.com # Merge intel.com:/home/lenb/src/linux-acpi-test-2.6.7-mpparse # into intel.com:/home/lenb/bk/linux-acpi-test-2.6.7 # # arch/x86_64/kernel/mpparse.c # 2004/06/17 02:15:31-04:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/06/17 01:42:44-04:00 len.brown@intel.com # Merge intel.com:/home/lenb/src/linux-acpi-test-2.6.7 # into intel.com:/home/lenb/bk/linux-acpi-test-2.6.7 # # arch/x86_64/kernel/mpparse.c # 2004/06/17 01:42:37-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/ia64/pci/pci.c # 2004/06/17 01:42:37-04:00 len.brown@intel.com +0 -0 # Auto merged # # arch/ia64/kernel/iosapic.c # 2004/06/17 01:42:36-04:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/06/17 01:30:00-04:00 len.brown@intel.com # Merge intel.com:/home/lenb/src/linux-acpi-test-2.6.6 # into intel.com:/home/lenb/src/linux-acpi-test-2.6.7 # # arch/i386/kernel/dmi_scan.c # 2004/06/17 01:29:57-04:00 len.brown@intel.com +0 -0 # Auto merged # # ChangeSet # 2004/06/17 01:26:33-04:00 len.brown@intel.com # [ACPI] Fix a lockup which Sid Boyce # discovered with IOAPIC disabled. # # The problem was that drivers/serial/8250_acpi.c found COM1 in the ACPI # namespace and called acpi_register_gsi() to set up its IRQ. ACPI tells us # that the COM1 IRQ is edge triggered, active high, but acpi_register_gsi() # was ignoring the edge_level argument, so it blindly set the COM1 IRQ to be # level-triggered. # # Signed-off-by: Bjorn Helgaas # Signed-off-by: Andrew Morton # Signed-off-by: Andrew Morton # With the 2.6.7-rc3-mm1 acpi changes to arch/x86_64/kernel/mpparse.c, # mp_find_ioapic is called from a non-__init function. The fatal code # path is reached when loading device drivers for PCI devices. # # ChangeSet # 2004/06/17 01:19:49-04:00 len.brown@intel.com # [ACPI] mp_find_ioapic() oops from mp_register_gsi() on device resume # Signed-off-by: Andrew Morton # # arch/i386/kernel/mpparse.c # 2004/05/31 06:03:27-04:00 len.brown@intel.com +1 -1 # It is called from mp_register_gsi(), which is called on the device resume # path. Kernel oopses. # # Program received signal SIGEMT, Emulation trap. # mp_find_ioapic (gsi=1) at arch/i386/kernel/mpparse.c:862 # 862 { # (gdb) bt # #0 mp_find_ioapic (gsi=1) at arch/i386/kernel/mpparse.c:862 # #1 0xc0111de1 in mp_register_gsi (gsi=17, edge_level=1, active_high_low=1) # at arch/i386/kernel/mpparse.c:1042 # #2 0xc010e164 in acpi_register_gsi (gsi=17, edge_level=9, active_high_low=9) # at arch/i386/kernel/acpi/boot.c:460 # #3 0xc01ef27e in acpi_pci_irq_enable (dev=0xc16da800) at drivers/acpi/pci_irq.c:382 # # ChangeSet # 2004/06/17 01:15:58-04:00 len.brown@intel.com # [ACPI] *** Warning: "acpi_register_gsi" [drivers/serial/8250_acpi.ko] undefined! # # Signed-off-by: Andrew Morton # # arch/i386/kernel/acpi/boot.c # 2004/06/17 01:15:53-04:00 len.brown@intel.com +2 -0 # *** Warning: "acpi_register_gsi" [drivers/serial/8250_acpi.ko] undefined! # # Signed-off-by: Andrew Morton # # ChangeSet # 2004/06/17 00:24:34-04:00 jgarzik@pobox.com # [libata/IDE nvidia] shuffle pci ids # # * Mark conflicting PCI ids with CONFIG_BLK_DEV_IDE_SATA # * Move not-yet-released PCI ids to libata sata_nv driver # # drivers/scsi/sata_nv.c # 2004/06/17 00:24:28-04:00 jgarzik@pobox.com +11 -3 # [libata/IDE nvidia] shuffle pci ids # # * Mark conflicting PCI ids with CONFIG_BLK_DEV_IDE_SATA # * Move not-yet-released PCI ids to libata sata_nv driver # # drivers/ide/pci/amd74xx.c # 2004/06/17 00:24:28-04:00 jgarzik@pobox.com +6 -14 # [libata/IDE nvidia] shuffle pci ids # # * Mark conflicting PCI ids with CONFIG_BLK_DEV_IDE_SATA # * Move not-yet-released PCI ids to libata sata_nv driver # # ChangeSet # 2004/06/16 23:10:50-05:00 stevef@smfhome1.smfdom # Fix /proc/fs/cifs/Stats to handle larger return data, and correct Kconfig reference to /proc/fs/cifs/Stats # # Signed-off-by: Steve French (sfrench@us.ibm.com) # # fs/cifs/cifsfs.h # 2004/06/16 23:10:44-05:00 stevef@smfhome1.smfdom +1 -1 # update cifs version to 1.19 # # fs/cifs/cifs_debug.c # 2004/06/16 23:10:44-05:00 stevef@smfhome1.smfdom +42 -17 # fix /proc/fs/cifs/Stats to handle larger return data # # fs/cifs/CHANGES # 2004/06/16 23:10:44-05:00 stevef@smfhome1.smfdom +9 -1 # Update cifs change log for 1.19 # # fs/Kconfig # 2004/06/16 23:10:44-05:00 stevef@smfhome1.smfdom +11 -2 # Correct name of /proc/fs/cifs/Stats file. Add cifs posix extensions configure option. # # ChangeSet # 2004/06/16 21:05:55-07:00 davidm@tiger.hpl.hp.com # Merge tiger.hpl.hp.com:/data1/bk/vanilla/linux-2.5 # into tiger.hpl.hp.com:/data1/bk/lia64/to-linus-2.5 # # arch/ia64/kernel/gate.S # 2004/06/16 21:05:50-07:00 davidm@tiger.hpl.hp.com +0 -4 # Auto merged # # arch/ia64/kernel/fsys.S # 2004/06/16 21:05:50-07:00 davidm@tiger.hpl.hp.com +0 -2 # Auto merged # # ChangeSet # 2004/06/16 20:53:53-07:00 davidm@tiger.hpl.hp.com # ia64: Nuke two warnings in mca.c that showed in the simulator configuration. # # arch/ia64/kernel/mca.c # 2004/06/16 20:53:46-07:00 davidm@tiger.hpl.hp.com +8 -0 # (ia64_mca_cpe_int_handler): Define only if CONFIG_ACPI is defined. # (ia64_mca_cpe_int_caller): Likewise. # # ChangeSet # 2004/06/16 20:51:30-07:00 davidm@tiger.hpl.hp.com # ia64: Fix ia32 partial-page-list code to compile cleanly in more configs. # # # include/asm-ia64/ia32.h # 2004/06/16 20:51:21-07:00 davidm@tiger.hpl.hp.com +9 -3 # (IA32_PAGE_SHIFT): Move to here from ia32priv.h. # (ia32_copy_partial_page_list): Declare unconditionally. If # PAGE_SHIFT == IA32_PAGE_SHIFT< define it as a no-op. # (ia32_drop_partial_page_list): Likewise. # # arch/ia64/kernel/process.c # 2004/06/16 20:51:21-07:00 davidm@tiger.hpl.hp.com +2 -6 # (flush_thread): Remove #ifdef CONFIG_IA32_SUPPORT bracket (no longer needed). # Pass task-pointer to ia32_drop_partial_page_list() instead of # partial-page list (the thread.ppl member may not exist in all # configurations). # (exit_thread): Likewise. # # arch/ia64/ia32/sys_ia32.c # 2004/06/16 20:51:21-07:00 davidm@tiger.hpl.hp.com +8 -5 # (ia32_drop_partial_page_list): Take task-pointer instead of partial_page_list- # pointer. # (sys32_munmap): Declare pstart and pend only when really needed. # (sys32_mremap): Likewise. # # arch/ia64/ia32/ia32priv.h # 2004/06/16 20:51:21-07:00 davidm@tiger.hpl.hp.com +7 -4 # (_ASM_IA64_IA32_PRIV_H): Rename from _ASM_IA64_IA32_H to avoid name-clash. # (IA32_PAGE_SHIFT): Move to include/asm-ia64/ia32.h. # (ia32_init_pp_list): Define as 0 for case swhere PAGE_SHIFT==IA32_PAGE_SHIFT. # # ChangeSet # 2004/06/16 23:44:40-04:00 jgarzik@pobox.com # [libata] put nvidia in Kconfig, in alphabetical order # # drivers/scsi/Kconfig # 2004/06/16 23:44:34-04:00 jgarzik@pobox.com +8 -8 # [libata] put nvidia in Kconfig, in alphabetical order # # ChangeSet # 2004/06/16 23:42:01-04:00 achew@nvidia.com # [libata] Add NVIDIA SATA driver # # drivers/scsi/sata_nv.c # 2004/06/16 23:41:55-04:00 achew@nvidia.com +1 -1 # [libata] Add NVIDIA SATA driver # # drivers/scsi/Makefile # 2004/06/16 23:41:55-04:00 achew@nvidia.com +1 -0 # [libata] Add NVIDIA SATA driver # # drivers/scsi/Kconfig # 2004/06/16 23:41:55-04:00 achew@nvidia.com +8 -0 # [libata] Add NVIDIA SATA driver # # drivers/scsi/sata_nv.c # 2004/06/16 23:40:44-04:00 jgarzik@pobox.com +345 -0 # # drivers/scsi/sata_nv.c # 2004/06/16 23:40:44-04:00 jgarzik@pobox.com +0 -0 # BitKeeper file /spare/repo/libata-2.6/drivers/scsi/sata_nv.c # # ChangeSet # 2004/06/16 23:29:08-04:00 jgarzik@pobox.com # [IDE] Introduce SATA enable/disable config option # # This config option is introduced to help reduce user confusion, # and eliminate conflicts between the IDE driver (which is often # built into user kernels) and the new libata SATA driver. # # drivers/ide/pci/siimage.c # 2004/06/16 23:29:02-04:00 jgarzik@pobox.com +3 -0 # [IDE] Introduce SATA enable/disable config option # # This config option is introduced to help reduce user confusion, # and eliminate conflicts between the IDE driver (which is often # built into user kernels) and the new libata SATA driver. # # drivers/ide/pci/piix.c # 2004/06/16 23:29:02-04:00 jgarzik@pobox.com +2 -2 # [IDE] Introduce SATA enable/disable config option # # This config option is introduced to help reduce user confusion, # and eliminate conflicts between the IDE driver (which is often # built into user kernels) and the new libata SATA driver. # # drivers/ide/pci/generic.c # 2004/06/16 23:29:02-04:00 jgarzik@pobox.com +2 -0 # [IDE] Introduce SATA enable/disable config option # # This config option is introduced to help reduce user confusion, # and eliminate conflicts between the IDE driver (which is often # built into user kernels) and the new libata SATA driver. # # drivers/ide/Kconfig # 2004/06/16 23:29:02-04:00 jgarzik@pobox.com +20 -0 # [IDE] Introduce SATA enable/disable config option # # This config option is introduced to help reduce user confusion, # and eliminate conflicts between the IDE driver (which is often # built into user kernels) and the new libata SATA driver. # # arch/ia64/kernel/head.S # 2004/06/16 18:09:33-07:00 davidm@tiger.hpl.hp.com +5 -1 # (_start): Initialize "current" pointer for init-task to be in # region 5, not 7. # # arch/ia64/kernel/entry.S # 2004/06/16 18:09:33-07:00 davidm@tiger.hpl.hp.com +4 -2 # (ia64_switch_to): Don't try to map "current"-pointers which are # inside region 5. # # arch/ia64/ia32/ia32_support.c # 2004/06/16 18:09:33-07:00 davidm@tiger.hpl.hp.com +10 -6 # ia64: Move "current" pointer for init-task from region 7 to region 5. # # This patch initializes "current" for the init-task such that it will # be an address in region 5 rather than region 7. Also, it updates the # context-switch code such that it won't attempt to install a pinned TLB # entry when the current task points inside region 5 (as will happen now # with the init-task). # # This fixes a problem which was triggered by SELinux. The problem was # due to the fact that the init_task is initialized statically (in # init_tasks.c) and hence resides in region 5, but the "current" pointer # was using the region 7-alias of that data-structure, which causes # inconsistencies and failers with the list-maniplulation code. # # Signed-off-by: Kazuto MIYOSHI # Signed-off-by: Takayoshi Kochi # Signed-off-by: Kaigai Kohei # Signed-off-by: David Mosberger # # ChangeSet # 2004/06/16 19:57:30-04:00 jgarzik@pobox.com # Merge pobox.com:/spare/repo/netdev-2.6/via-rhine # into pobox.com:/spare/repo/net-drivers-2.6 # # drivers/net/via-rhine.c # 2004/06/16 19:57:26-04:00 jgarzik@pobox.com +0 -0 # Auto merged # # ChangeSet # 2004/06/16 19:56:25-04:00 jgarzik@pobox.com # Merge pobox.com:/spare/repo/netdev-2.6/via-gbit # into pobox.com:/spare/repo/net-drivers-2.6 # # drivers/net/Kconfig # 2004/06/16 19:56:21-04:00 jgarzik@pobox.com +0 -0 # Auto merged # # ChangeSet # 2004/06/16 19:54:04-04:00 jgarzik@pobox.com # Merge pobox.com:/spare/repo/netdev-2.6/misc-herbert # into pobox.com:/spare/repo/net-drivers-2.6 # # drivers/net/yellowfin.c # 2004/06/16 19:54:01-04:00 jgarzik@pobox.com +0 -0 # Auto merged # # drivers/net/sungem.c # 2004/06/16 19:54:01-04:00 jgarzik@pobox.com +0 -0 # Auto merged # # drivers/net/starfire.c # 2004/06/16 19:54:01-04:00 jgarzik@pobox.com +0 -0 # Auto merged # # drivers/net/ns83820.c # 2004/06/16 19:54:01-04:00 jgarzik@pobox.com +0 -0 # Auto merged # # drivers/net/natsemi.c # 2004/06/16 19:54:01-04:00 jgarzik@pobox.com +0 -0 # Auto merged # # drivers/net/ibmlana.c # 2004/06/16 19:54:01-04:00 jgarzik@pobox.com +0 -0 # Auto merged # # drivers/net/forcedeth.c # 2004/06/16 19:54:01-04:00 jgarzik@pobox.com +0 -0 # Auto merged # # drivers/net/ewrk3.c # 2004/06/16 19:54:01-04:00 jgarzik@pobox.com +0 -0 # Auto merged # # drivers/net/at1700.c # 2004/06/16 19:54:00-04:00 jgarzik@pobox.com +0 -0 # Auto merged # # drivers/net/acenic.c # 2004/06/16 19:54:00-04:00 jgarzik@pobox.com +0 -0 # Auto merged # # drivers/net/3c527.c # 2004/06/16 19:54:00-04:00 jgarzik@pobox.com +0 -0 # Auto merged # # ChangeSet # 2004/06/16 19:51:21-04:00 jgarzik@pobox.com # Merge pobox.com:/spare/repo/netdev-2.6/ip-copysum # into pobox.com:/spare/repo/net-drivers-2.6 # # drivers/net/yellowfin.c # 2004/06/16 19:51:17-04:00 jgarzik@pobox.com +0 -0 # Auto merged # # drivers/net/tulip/winbond-840.c # 2004/06/16 19:51:17-04:00 jgarzik@pobox.com +0 -0 # Auto merged # # drivers/net/natsemi.c # 2004/06/16 19:51:17-04:00 jgarzik@pobox.com +0 -0 # Auto merged # # drivers/net/epic100.c # 2004/06/16 19:51:17-04:00 jgarzik@pobox.com +0 -0 # Auto merged # # ChangeSet # 2004/06/16 16:51:07-07:00 jbarnes@engr.sgi.com # [PATCH] ia64: update sn2_defconfig # # Small patch to update the sn2_defconfig file. I just did a 'make oldconfig' # with the current sn2_defconfig and removed 8250 support. # Signed-off-by: David Mosberger # # arch/ia64/configs/sn2_defconfig # 2004/06/16 09:03:12-07:00 jbarnes@engr.sgi.com +51 -55 # ia64: update sn2_defconfig # # ChangeSet # 2004/06/16 16:04:19-07:00 kaos@sgi.com # [PATCH] ia64: Support SN platform specific error features # # The SN prom supports fine grained error handling features, the OS needs # to tell the prom if the OS expects to use these platform specific # features. # # Signed-off-by: Keith Owens # Signed-off-by: David Mosberger # # include/asm-ia64/sn/sn_sal.h # 2004/06/16 06:14:42-07:00 kaos@sgi.com +34 -0 # ia64: Support SN platform specific error features # # arch/ia64/sn/kernel/setup.c # 2004/06/16 06:14:42-07:00 kaos@sgi.com +22 -1 # ia64: Support SN platform specific error features # # ChangeSet # 2004/06/17 00:01:45+01:00 dwmw2@shinybook.infradead.org # Add support for i8259 IRQ controller on WindRiver PowerQUICC II # # arch/ppc/platforms/sbc82xx.h # 2004/06/17 00:01:26+01:00 dwmw2@shinybook.infradead.org +9 -0 # Define i8259 IRQ numbers. # # arch/ppc/platforms/sbc82xx.c # 2004/06/17 00:01:26+01:00 dwmw2@shinybook.infradead.org +154 -0 # Add support for i8259 interrupt controller. # # ChangeSet # 2004/06/16 23:56:26+01:00 dwmw2@shinybook.infradead.org # PCI host bridge support for Motorola MPC826x # # include/asm-ppc/m8260_pci.h # 2004/06/16 23:56:05+01:00 dwmw2@shinybook.infradead.org +186 -0 # # include/asm-ppc/m8260_pci.h # 2004/06/16 23:56:05+01:00 dwmw2@shinybook.infradead.org +0 -0 # BitKeeper file /home/dwmw2/bk/new82xx-2.6/include/asm-ppc/m8260_pci.h # # arch/ppc/syslib/m8260_pci.h # 2004/06/16 23:56:03+01:00 dwmw2@shinybook.infradead.org +68 -0 # # arch/ppc/syslib/m8260_pci.h # 2004/06/16 23:56:03+01:00 dwmw2@shinybook.infradead.org +0 -0 # BitKeeper file /home/dwmw2/bk/new82xx-2.6/arch/ppc/syslib/m8260_pci.h # # arch/ppc/syslib/m8260_pci.c # 2004/06/16 23:56:02+01:00 dwmw2@shinybook.infradead.org +194 -0 # # arch/ppc/syslib/m8260_setup.c # 2004/06/16 23:56:02+01:00 dwmw2@shinybook.infradead.org +4 -0 # Initialise 8260 PCI if present. # # arch/ppc/syslib/m8260_pci.c # 2004/06/16 23:56:02+01:00 dwmw2@shinybook.infradead.org +0 -0 # BitKeeper file /home/dwmw2/bk/new82xx-2.6/arch/ppc/syslib/m8260_pci.c # # arch/ppc/syslib/Makefile # 2004/06/16 23:56:02+01:00 dwmw2@shinybook.infradead.org +1 -0 # Add rules for 8260 PCI # # arch/ppc/Kconfig # 2004/06/16 23:56:02+01:00 dwmw2@shinybook.infradead.org +5 -0 # Add PCI_8260 option. # # ChangeSet # 2004/06/16 23:37:43+01:00 dwmw2@shinybook.infradead.org # PPC SBC82xx: Move RTC to 0xd0000000 to make room for PCI I/O stuff. # # arch/ppc/platforms/sbc82xx.h # 2004/06/16 23:37:12+01:00 dwmw2@shinybook.infradead.org +1 -1 # Move RTC to 0xd0000000 to avoid conflicting with where we want PCI. # # arch/ppc/platforms/sbc82xx.c # 2004/06/16 23:37:12+01:00 dwmw2@shinybook.infradead.org +5 -3 # Honour SBC82xx_TODC_NVRAM_ADDR when setting up BR11 for RTC. # # ChangeSet # 2004/06/16 23:31:12+01:00 dwmw2@shinybook.infradead.org # Remove old MPC82xx (CPM2) uart driver # # arch/ppc/Kconfig # 2004/06/16 23:30:54+01:00 dwmw2@shinybook.infradead.org +1 -1 # SERIAL_CONSOLE only relevant for 8xx now. # # arch/ppc/8260_io/Makefile # 2004/06/16 23:30:54+01:00 dwmw2@shinybook.infradead.org +0 -2 # Remove old uart driver # # arch/ppc/8260_io/Kconfig # 2004/06/16 23:30:54+01:00 dwmw2@shinybook.infradead.org +0 -3 # Remove SCC_CONSOLE option # # BitKeeper/deleted/.del-uart.c~c6dfa4adcc8b2a32 # 2004/06/16 23:29:28+01:00 dwmw2@shinybook.infradead.org +0 -0 # Delete: arch/ppc/8260_io/uart.c # # ChangeSet # 2004/06/16 23:29:15+01:00 dwmw2@shinybook.infradead.org # UART driver for Motorola CPM/CPM2 I/O core on 8xx/8xxx chips. # # drivers/serial/cpm_uart/cpm_uart_cpm2.h # 2004/06/16 23:28:56+01:00 dwmw2@shinybook.infradead.org +45 -0 # # drivers/serial/cpm_uart/cpm_uart_cpm2.h # 2004/06/16 23:28:56+01:00 dwmw2@shinybook.infradead.org +0 -0 # BitKeeper file /home/dwmw2/bk/new82xx-2.6/drivers/serial/cpm_uart/cpm_uart_cpm2.h # # drivers/serial/cpm_uart/cpm_uart_cpm2.c # 2004/06/16 23:28:54+01:00 dwmw2@shinybook.infradead.org +327 -0 # # drivers/serial/cpm_uart/cpm_uart_cpm2.c # 2004/06/16 23:28:54+01:00 dwmw2@shinybook.infradead.org +0 -0 # BitKeeper file /home/dwmw2/bk/new82xx-2.6/drivers/serial/cpm_uart/cpm_uart_cpm2.c # # drivers/serial/cpm_uart/cpm_uart_cpm1.h # 2004/06/16 23:28:53+01:00 dwmw2@shinybook.infradead.org +45 -0 # # drivers/serial/cpm_uart/cpm_uart_cpm1.h # 2004/06/16 23:28:53+01:00 dwmw2@shinybook.infradead.org +0 -0 # BitKeeper file /home/dwmw2/bk/new82xx-2.6/drivers/serial/cpm_uart/cpm_uart_cpm1.h # # drivers/serial/cpm_uart/cpm_uart_cpm1.c # 2004/06/16 23:28:51+01:00 dwmw2@shinybook.infradead.org +275 -0 # # drivers/serial/cpm_uart/cpm_uart_cpm1.c # 2004/06/16 23:28:51+01:00 dwmw2@shinybook.infradead.org +0 -0 # BitKeeper file /home/dwmw2/bk/new82xx-2.6/drivers/serial/cpm_uart/cpm_uart_cpm1.c # # drivers/serial/cpm_uart/cpm_uart_core.c # 2004/06/16 23:28:50+01:00 dwmw2@shinybook.infradead.org +1177 -0 # # drivers/serial/cpm_uart/cpm_uart_core.c # 2004/06/16 23:28:50+01:00 dwmw2@shinybook.infradead.org +0 -0 # BitKeeper file /home/dwmw2/bk/new82xx-2.6/drivers/serial/cpm_uart/cpm_uart_core.c # # drivers/serial/cpm_uart/cpm_uart.h # 2004/06/16 23:28:48+01:00 dwmw2@shinybook.infradead.org +89 -0 # # drivers/serial/cpm_uart/cpm_uart.h # 2004/06/16 23:28:48+01:00 dwmw2@shinybook.infradead.org +0 -0 # BitKeeper file /home/dwmw2/bk/new82xx-2.6/drivers/serial/cpm_uart/cpm_uart.h # # drivers/serial/cpm_uart/Makefile # 2004/06/16 23:28:47+01:00 dwmw2@shinybook.infradead.org +11 -0 # # include/linux/serial_core.h # 2004/06/16 23:28:47+01:00 dwmw2@shinybook.infradead.org +3 -0 # Add PORT_CPM definition # # drivers/serial/cpm_uart/Makefile # 2004/06/16 23:28:47+01:00 dwmw2@shinybook.infradead.org +0 -0 # BitKeeper file /home/dwmw2/bk/new82xx-2.6/drivers/serial/cpm_uart/Makefile # # drivers/serial/Makefile # 2004/06/16 23:28:47+01:00 dwmw2@shinybook.infradead.org +1 -0 # Add CPM/CPM2 UART directory # # drivers/serial/Kconfig # 2004/06/16 23:28:47+01:00 dwmw2@shinybook.infradead.org +60 -0 # Add CPM/CPM2 UART options # # ChangeSet # 2004/06/16 18:25:29-04:00 alan@redhat.com # [PATCH] add new via-velocity gigabit ethernet driver # # Contributed by VIA, cleaned up by Alan. # # drivers/net/via-velocity.h # 2004/06/02 15:49:48-04:00 alan@redhat.com +1885 -0 # PATCH: via-velocity with new ethtool used # # drivers/net/via-velocity.h # 2004/06/02 15:49:48-04:00 alan@redhat.com +0 -0 # BitKeeper file /spare/repo/netdev-2.6/via-gbit/drivers/net/via-velocity.h # # drivers/net/via-velocity.c # 2004/06/16 17:29:42-04:00 alan@redhat.com +3277 -0 # PATCH: via-velocity with new ethtool used # # drivers/net/Makefile # 2004/06/16 16:22:14-04:00 alan@redhat.com +1 -0 # PATCH: via-velocity with new ethtool used # # drivers/net/Kconfig # 2004/06/16 16:22:14-04:00 alan@redhat.com +11 -0 # PATCH: via-velocity with new ethtool used # # drivers/net/via-velocity.c # 2004/06/16 17:29:42-04:00 alan@redhat.com +0 -0 # BitKeeper file /spare/repo/netdev-2.6/via-gbit/drivers/net/via-velocity.c # # ChangeSet # 2004/06/16 15:52:13-05:00 stevef@stevef95.austin.ibm.com # fix throttle to limit number of requests to 50 on wire to server at one time. # # Signed-off-by: Steve French (sfrench@us.ibm.com) # # fs/cifs/transport.c # 2004/06/16 15:52:04-05:00 stevef@stevef95.austin.ibm.com +20 -13 # fix throttle to limit number of requests to 50 on wire to server at one time. # # ChangeSet # 2004/06/16 13:48:12-07:00 davem@nuts.davemloft.net # [TCP]: No vegas by default just yet. # # net/ipv4/tcp_input.c # 2004/06/16 13:47:53-07:00 davem@nuts.davemloft.net +1 -1 # [TCP]: No vegas by default just yet. # # ChangeSet # 2004/06/16 19:22:55+01:00 dwmw2@shinybook.infradead.org # PPC: Add support for ADS8272 board. # # From Kumar Gala # # arch/ppc/platforms/pq2ads_setup.c # 2004/06/16 19:22:38+01:00 dwmw2@shinybook.infradead.org +66 -0 # # arch/ppc/platforms/pq2ads_setup.c # 2004/06/16 19:22:38+01:00 dwmw2@shinybook.infradead.org +0 -0 # BitKeeper file /home/dwmw2/bk/new82xx-2.6/arch/ppc/platforms/pq2ads_setup.c # # arch/ppc/platforms/pq2ads.h # 2004/06/16 19:22:36+01:00 dwmw2@shinybook.infradead.org +90 -0 # # arch/ppc/platforms/pq2ads.h # 2004/06/16 19:22:36+01:00 dwmw2@shinybook.infradead.org +0 -0 # BitKeeper file /home/dwmw2/bk/new82xx-2.6/arch/ppc/platforms/pq2ads.h # # arch/ppc/configs/ads8272_defconfig # 2004/06/16 19:22:35+01:00 dwmw2@shinybook.infradead.org +583 -0 # # include/asm-ppc/mpc8260.h # 2004/06/16 19:22:35+01:00 dwmw2@shinybook.infradead.org +4 -0 # Add PQ2ADS boards support. # # arch/ppc/platforms/Makefile # 2004/06/16 19:22:35+01:00 dwmw2@shinybook.infradead.org +1 -0 # Add PQ2ADS boards support # # arch/ppc/configs/ads8272_defconfig # 2004/06/16 19:22:35+01:00 dwmw2@shinybook.infradead.org +0 -0 # BitKeeper file /home/dwmw2/bk/new82xx-2.6/arch/ppc/configs/ads8272_defconfig # # arch/ppc/Kconfig # 2004/06/16 19:22:35+01:00 dwmw2@shinybook.infradead.org +17 -0 # Add ADS8272, PQ2ADS and generic 8272 config options # # arch/ppc/8260_io/fcc_enet.c # 2004/06/16 19:22:35+01:00 dwmw2@shinybook.infradead.org +99 -13 # Add support for ADS8272 board and Davicom DM9131 PHY # # ChangeSet # 2004/06/16 11:18:42-07:00 dada1@cosmosbay.com # [NET]: Tidy somaxconn sysctl doc. # # Documentation/networking/ip-sysctl.txt # 2004/06/16 11:18:23-07:00 dada1@cosmosbay.com +3 -2 # [NET]: Tidy somaxconn sysctl doc. # # ChangeSet # 2004/06/16 19:08:12+01:00 dwmw2@shinybook.infradead.org # PPC: Move CPM2 common core routines to arch/ppc/syslib/ # # arch/ppc/syslib/Makefile # 2004/06/16 19:07:54+01:00 dwmw2@shinybook.infradead.org +1 -0 # Move cpm2_common.c from 8260_io/commproc.c # # arch/ppc/8260_io/Makefile # 2004/06/16 19:07:54+01:00 dwmw2@shinybook.infradead.org +1 -1 # Move commproc.c to syslib/cpm2_common.c # # arch/ppc/syslib/cpm2_common.c # 2004/06/16 19:02:28+01:00 dwmw2@shinybook.infradead.org +0 -0 # Rename: arch/ppc/8260_io/commproc.c -> arch/ppc/syslib/cpm2_common.c # # ChangeSet # 2004/06/16 10:57:05-07:00 dlstevens@us.ibm.com # [IPV4]: Fix interface selection in multicast sockops. # # net/ipv4/ip_sockglue.c # 2004/06/16 10:56:46-07:00 dlstevens@us.ibm.com +1 -0 # [IPV4]: Fix interface selection in multicast sockops. # # ChangeSet # 2004/06/16 18:56:31+01:00 dwmw2@shinybook.infradead.org # PPC: Make Motorola CPM2 I/O core support more generic. # It's used on more than one CPU. # # include/asm-ppc/ppcboot.h # 2004/06/16 18:56:13+01:00 dwmw2@shinybook.infradead.org +2 -2 # Make Motorola CPM2 I/O core support more generic # # include/asm-ppc/irq.h # 2004/06/16 18:56:13+01:00 dwmw2@shinybook.infradead.org +40 -2 # Add the rest of the SIU interrupts # # include/asm-ppc/immap_cpm2.h # 2004/06/16 18:56:13+01:00 dwmw2@shinybook.infradead.org +544 -329 # Make Motorola CPM2 I/O core support more generic # # include/asm-ppc/cpm2.h # 2004/06/16 18:56:13+01:00 dwmw2@shinybook.infradead.org +364 -29 # Make Motorola CPM2 I/O core support more generic # # drivers/mtd/maps/wr_sbc82xx_flash.c # 2004/06/16 18:56:13+01:00 dwmw2@shinybook.infradead.org +2 -2 # Make Motorola CPM2 I/O core support more generic # # arch/ppc/syslib/m8260_setup.c # 2004/06/16 18:56:13+01:00 dwmw2@shinybook.infradead.org +14 -14 # Make Motorola CPM2 I/O core support more generic # # arch/ppc/syslib/cpm2_pic.h # 2004/06/16 18:56:13+01:00 dwmw2@shinybook.infradead.org +7 -7 # Make Motorola CPM2 I/O core support more generic # # arch/ppc/syslib/cpm2_pic.c # 2004/06/16 18:56:13+01:00 dwmw2@shinybook.infradead.org +21 -21 # Make Motorola CPM2 I/O core support more generic # # arch/ppc/syslib/Makefile # 2004/06/16 18:56:13+01:00 dwmw2@shinybook.infradead.org +1 -1 # Make Motorola CPM2 I/O core support more generic # # arch/ppc/platforms/tqm8260_setup.c # 2004/06/16 18:56:13+01:00 dwmw2@shinybook.infradead.org +4 -4 # Make Motorola CPM2 I/O core support more generic # # arch/ppc/platforms/tqm8260.h # 2004/06/16 18:56:13+01:00 dwmw2@shinybook.infradead.org +1 -1 # Make Motorola CPM2 I/O core support more generic # # arch/ppc/platforms/sbs8260.h # 2004/06/16 18:56:13+01:00 dwmw2@shinybook.infradead.org +1 -1 # Make Motorola CPM2 I/O core support more generic # # arch/ppc/platforms/sbc82xx.h # 2004/06/16 18:56:13+01:00 dwmw2@shinybook.infradead.org +0 -1 # Make Motorola CPM2 I/O core support more generic # # arch/ppc/platforms/sbc82xx.c # 2004/06/16 18:56:13+01:00 dwmw2@shinybook.infradead.org +2 -2 # Make Motorola CPM2 I/O core support more generic # # arch/ppc/platforms/rpxsuper.h # 2004/06/16 18:56:13+01:00 dwmw2@shinybook.infradead.org +1 -1 # Make Motorola CPM2 I/O core support more generic # # arch/ppc/platforms/est8260.h # 2004/06/16 18:56:13+01:00 dwmw2@shinybook.infradead.org +1 -1 # Make Motorola CPM2 I/O core support more generic # # arch/ppc/boot/simple/m8260_tty.c # 2004/06/16 18:56:13+01:00 dwmw2@shinybook.infradead.org +12 -11 # Make Motorola CPM2 I/O core support more generic # # arch/ppc/boot/simple/embed_config.c # 2004/06/16 18:56:13+01:00 dwmw2@shinybook.infradead.org +5 -5 # Make Motorola CPM2 I/O core support more generic # # arch/ppc/Makefile # 2004/06/16 18:56:13+01:00 dwmw2@shinybook.infradead.org +1 -1 # Make Motorola CPM2 I/O core support more generic # # arch/ppc/Kconfig # 2004/06/16 18:56:13+01:00 dwmw2@shinybook.infradead.org +23 -14 # Make Motorola CPM2 I/O core support more generic # # arch/ppc/8260_io/uart.c # 2004/06/16 18:56:13+01:00 dwmw2@shinybook.infradead.org +58 -58 # Make Motorola CPM2 I/O core support more generic # # arch/ppc/8260_io/fcc_enet.c # 2004/06/16 18:56:13+01:00 dwmw2@shinybook.infradead.org +22 -22 # Make Motorola CPM2 I/O core support more generic # # arch/ppc/8260_io/enet.c # 2004/06/16 18:56:13+01:00 dwmw2@shinybook.infradead.org +12 -12 # Make Motorola CPM2 I/O core support more generic # # arch/ppc/8260_io/commproc.c # 2004/06/16 18:56:13+01:00 dwmw2@shinybook.infradead.org +16 -19 # Make Motorola CPM2 I/O core support more generic # # arch/ppc/8260_io/Makefile # 2004/06/16 18:56:13+01:00 dwmw2@shinybook.infradead.org +1 -1 # Make Motorola CPM2 I/O core support more generic # # arch/ppc/8260_io/Kconfig # 2004/06/16 18:56:13+01:00 dwmw2@shinybook.infradead.org +6 -6 # Make Motorola CPM2 I/O core support more generic # # arch/ppc/syslib/cpm2_pic.h # 2004/06/16 18:53:02+01:00 dwmw2@shinybook.infradead.org +0 -0 # Rename: arch/ppc/syslib/ppc8260_pic.h -> arch/ppc/syslib/cpm2_pic.h # # arch/ppc/syslib/cpm2_pic.c # 2004/06/16 18:52:55+01:00 dwmw2@shinybook.infradead.org +0 -0 # Rename: arch/ppc/syslib/ppc8260_pic.c -> arch/ppc/syslib/cpm2_pic.c # # include/asm-ppc/cpm2.h # 2004/06/16 18:31:46+01:00 dwmw2@shinybook.infradead.org +0 -0 # Rename: include/asm-ppc/cpm_8260.h -> include/asm-ppc/cpm2.h # # include/asm-ppc/immap_cpm2.h # 2004/06/16 18:31:24+01:00 dwmw2@shinybook.infradead.org +0 -0 # Rename: include/asm-ppc/immap_8260.h -> include/asm-ppc/immap_cpm2.h # # ChangeSet # 2004/06/16 10:27:13-07:00 herbert@gondor.apana.org.au # [NET]: Clear dev refs in dst->child. # # This is a resend of an earlier patch to dst_dev_event. I've changed # it slightly by moving the input/output assignment into dst_ifdown. # # To recap, this patch drops lingering IPsec references to a device that # is being unregistered. The child processing in the GC is too late # since it never runs until the reference on the dst hits zero which # could take a long time for things like TCP connections. # # The reason I've left the input/output assignment outside the loop is # because they aren't really necessary for the IPsec dst's, and if # it were in the loop then we'll have to do the same child processing # in ___dst_free as well. # # I've tested this with an ESP/IPCOMP tunnel and I can confirm that it # does fix the problem. # # Signed-off-by: Herbert Xu # Signed-off-by: David S. Miller # # net/core/dst.c # 2004/06/16 10:26:56-07:00 herbert@gondor.apana.org.au +37 -25 # [NET]: Clear dev refs in dst->child. # # This is a resend of an earlier patch to dst_dev_event. I've changed # it slightly by moving the input/output assignment into dst_ifdown. # # To recap, this patch drops lingering IPsec references to a device that # is being unregistered. The child processing in the GC is too late # since it never runs until the reference on the dst hits zero which # could take a long time for things like TCP connections. # # The reason I've left the input/output assignment outside the loop is # because they aren't really necessary for the IPsec dst's, and if # it were in the loop then we'll have to do the same child processing # in ___dst_free as well. # # I've tested this with an ESP/IPCOMP tunnel and I can confirm that it # does fix the problem. # # Signed-off-by: Herbert Xu # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/16 10:23:42-07:00 davem@nuts.davemloft.net # Merge nuts.davemloft.net:/disk1/BK/net-2.6.8 # into nuts.davemloft.net:/disk1/BK/net-2.6 # # net/ipv4/tcp.c # 2004/06/16 10:23:34-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # ChangeSet # 2004/06/16 11:36:45-05:00 jejb@mulgrave.(none) # scsi_debug: num_parts, ptype and (re-)scans # # From: Douglas Gilbert # # Changes in version 1.73: # - 'num_parts' parameter to specify 0 to 4 partitions # - 'ptype' to specify (or change via sysfs) SCSI # peripheral device type # - support ability to increase the number of targets # and/or luns then re-scan a scsi_debug host # - remove redundant trailing spaces # # The new facilties are described at: # http://www.torque.net/sg/sdebug26.html # A tarball of driver (version 1.73) is also there. # # Signed-off-by: James Bottomley # (conflict resolution) # # drivers/scsi/scsi_debug.h # 2004/06/16 11:36:19-05:00 jejb@mulgrave.(none) +1 -4 # scsi_debug: num_parts, ptype and (re-)scans # # drivers/scsi/scsi_debug.c # 2004/06/16 11:36:19-05:00 jejb@mulgrave.(none) +253 -124 # scsi_debug: num_parts, ptype and (re-)scans # # ChangeSet # 2004/06/16 09:32:58-05:00 jejb@mulgrave.(none) # SCSI: fix uninitialised variable warning # # Spotted By: Andrew Morton # # drivers/scsi/scsi_transport_spi.c: In function `spi_dv_retrain': # drivers/scsi/scsi_transport_spi.c:393: warning: `period' might be used uninitialized in this function # # Signed-off-by: James Bottomley # # drivers/scsi/scsi_transport_spi.c # 2004/06/16 09:32:42-05:00 jejb@mulgrave.(none) +1 -1 # SCSI: fix uninitialised variable warning # # ChangeSet # 2004/06/15 21:46:23-07:00 jmorris@redhat.com # [SELINUX]: Fine-grained Netlink support - SELinux changes # # This patch contains SELinux changes which add support for extended Netlink # socket classes and the associated permissions nlmsg_read and nlmsg_write. # # Signed-off-by: James Morris # Signed-off-by: David S. Miller # # security/selinux/ss/services.c # 2004/06/15 21:46:08-07:00 jmorris@redhat.com +12 -0 # [SELINUX]: Fine-grained Netlink support - SELinux changes # # This patch contains SELinux changes which add support for extended Netlink # socket classes and the associated permissions nlmsg_read and nlmsg_write. # # Signed-off-by: James Morris # Signed-off-by: David S. Miller # # security/selinux/ss/policydb.c # 2004/06/15 21:46:08-07:00 jmorris@redhat.com +9 -1 # [SELINUX]: Fine-grained Netlink support - SELinux changes # # This patch contains SELinux changes which add support for extended Netlink # socket classes and the associated permissions nlmsg_read and nlmsg_write. # # Signed-off-by: James Morris # Signed-off-by: David S. Miller # # security/selinux/include/security.h # 2004/06/15 21:46:08-07:00 jmorris@redhat.com +5 -4 # [SELINUX]: Fine-grained Netlink support - SELinux changes # # This patch contains SELinux changes which add support for extended Netlink # socket classes and the associated permissions nlmsg_read and nlmsg_write. # # Signed-off-by: James Morris # Signed-off-by: David S. Miller # # security/selinux/include/flask.h # 2004/06/15 21:46:08-07:00 jmorris@redhat.com +9 -0 # [SELINUX]: Fine-grained Netlink support - SELinux changes # # This patch contains SELinux changes which add support for extended Netlink # socket classes and the associated permissions nlmsg_read and nlmsg_write. # # Signed-off-by: James Morris # Signed-off-by: David S. Miller # # security/selinux/include/class_to_string.h # 2004/06/15 21:46:08-07:00 jmorris@redhat.com +9 -0 # [SELINUX]: Fine-grained Netlink support - SELinux changes # # This patch contains SELinux changes which add support for extended Netlink # socket classes and the associated permissions nlmsg_read and nlmsg_write. # # Signed-off-by: James Morris # Signed-off-by: David S. Miller # # security/selinux/include/av_permissions.h # 2004/06/15 21:46:08-07:00 jmorris@redhat.com +223 -0 # [SELINUX]: Fine-grained Netlink support - SELinux changes # # This patch contains SELinux changes which add support for extended Netlink # socket classes and the associated permissions nlmsg_read and nlmsg_write. # # Signed-off-by: James Morris # Signed-off-by: David S. Miller # # security/selinux/include/av_perm_to_string.h # 2004/06/15 21:46:08-07:00 jmorris@redhat.com +12 -0 # [SELINUX]: Fine-grained Netlink support - SELinux changes # # This patch contains SELinux changes which add support for extended Netlink # socket classes and the associated permissions nlmsg_read and nlmsg_write. # # Signed-off-by: James Morris # Signed-off-by: David S. Miller # # security/selinux/include/av_inherit.h # 2004/06/15 21:46:08-07:00 jmorris@redhat.com +9 -0 # [SELINUX]: Fine-grained Netlink support - SELinux changes # # This patch contains SELinux changes which add support for extended Netlink # socket classes and the associated permissions nlmsg_read and nlmsg_write. # # Signed-off-by: James Morris # Signed-off-by: David S. Miller # # security/selinux/hooks.c # 2004/06/15 21:46:08-07:00 jmorris@redhat.com +80 -22 # [SELINUX]: Fine-grained Netlink support - SELinux changes # # This patch contains SELinux changes which add support for extended Netlink # socket classes and the associated permissions nlmsg_read and nlmsg_write. # # Signed-off-by: James Morris # Signed-off-by: David S. Miller # # security/selinux/Makefile # 2004/06/15 21:46:08-07:00 jmorris@redhat.com +1 -1 # [SELINUX]: Fine-grained Netlink support - SELinux changes # # This patch contains SELinux changes which add support for extended Netlink # socket classes and the associated permissions nlmsg_read and nlmsg_write. # # Signed-off-by: James Morris # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/15 21:45:30-07:00 jmorris@redhat.com # [SELINUX]: Fine-grained Netlink support - add sk to netlink_send hook # # Modifies the LSM netlink_send() hook so that it takes a struct sock # parameter. SELinux will use this parameter to lookup the class of socket, # which was assigned during socket security initialization. # # Signed-off-by: James Morris # Signed-off-by: David S. Miller # # security/selinux/hooks.c # 2004/06/15 21:45:15-07:00 jmorris@redhat.com +1 -1 # [SELINUX]: Fine-grained Netlink support - add sk to netlink_send hook # # Modifies the LSM netlink_send() hook so that it takes a struct sock # parameter. SELinux will use this parameter to lookup the class of socket, # which was assigned during socket security initialization. # # Signed-off-by: James Morris # Signed-off-by: David S. Miller # # security/dummy.c # 2004/06/15 21:45:15-07:00 jmorris@redhat.com +1 -1 # [SELINUX]: Fine-grained Netlink support - add sk to netlink_send hook # # Modifies the LSM netlink_send() hook so that it takes a struct sock # parameter. SELinux will use this parameter to lookup the class of socket, # which was assigned during socket security initialization. # # Signed-off-by: James Morris # Signed-off-by: David S. Miller # # net/netlink/af_netlink.c # 2004/06/15 21:45:15-07:00 jmorris@redhat.com +1 -1 # [SELINUX]: Fine-grained Netlink support - add sk to netlink_send hook # # Modifies the LSM netlink_send() hook so that it takes a struct sock # parameter. SELinux will use this parameter to lookup the class of socket, # which was assigned during socket security initialization. # # Signed-off-by: James Morris # Signed-off-by: David S. Miller # # include/linux/security.h # 2004/06/15 21:45:15-07:00 jmorris@redhat.com +11 -8 # [SELINUX]: Fine-grained Netlink support - add sk to netlink_send hook # # Modifies the LSM netlink_send() hook so that it takes a struct sock # parameter. SELinux will use this parameter to lookup the class of socket, # which was assigned during socket security initialization. # # Signed-off-by: James Morris # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/15 21:44:40-07:00 jmorris@redhat.com # [SELINUX]: Fine-grained Netlink support - move security_netlink_send() hook. # # This patch moves the security_netlink_send() LSM hook after the user copy, # so that LSM modules can safely examine skb payload content. For SELinux, # we need to look at the Netlink message type. # # Signed-off-by: James Morris # Signed-off-by: David S. Miller # # net/netlink/af_netlink.c # 2004/06/15 21:44:26-07:00 jmorris@redhat.com +4 -4 # [SELINUX]: Fine-grained Netlink support - move security_netlink_send() hook. # # This patch moves the security_netlink_send() LSM hook after the user copy, # so that LSM modules can safely examine skb payload content. For SELinux, # we need to look at the Netlink message type. # # Signed-off-by: James Morris # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/15 21:42:03-07:00 jmorris@redhat.com # [SELINUX]: Fine-grained Netlink support - SELinux headers # # This patch regenerates the SELinux module headers to reflect new class # and access vectors definitions. The size of the diff is misleading; # much of it is simply a change in the ordering of the automatically # generated definitions. The corresponding generation script has been # changed to ensure a stable order in the future. # # Author: Stephen Smalley # Signed-off-by: Stephen Smalley # Signed-off-by: James Morris # Signed-off-by: David S. Miller # # security/selinux/include/flask.h # 2004/06/15 21:41:48-07:00 jmorris@redhat.com +12 -0 # [SELINUX]: Fine-grained Netlink support - SELinux headers # # This patch regenerates the SELinux module headers to reflect new class # and access vectors definitions. The size of the diff is misleading; # much of it is simply a change in the ordering of the automatically # generated definitions. The corresponding generation script has been # changed to ensure a stable order in the future. # # Author: Stephen Smalley # Signed-off-by: Stephen Smalley # Signed-off-by: James Morris # Signed-off-by: David S. Miller # # security/selinux/include/class_to_string.h # 2004/06/15 21:41:48-07:00 jmorris@redhat.com +12 -0 # [SELINUX]: Fine-grained Netlink support - SELinux headers # # This patch regenerates the SELinux module headers to reflect new class # and access vectors definitions. The size of the diff is misleading; # much of it is simply a change in the ordering of the automatically # generated definitions. The corresponding generation script has been # changed to ensure a stable order in the future. # # Author: Stephen Smalley # Signed-off-by: Stephen Smalley # Signed-off-by: James Morris # Signed-off-by: David S. Miller # # security/selinux/include/av_permissions.h # 2004/06/15 21:41:48-07:00 jmorris@redhat.com +350 -250 # [SELINUX]: Fine-grained Netlink support - SELinux headers # # This patch regenerates the SELinux module headers to reflect new class # and access vectors definitions. The size of the diff is misleading; # much of it is simply a change in the ordering of the automatically # generated definitions. The corresponding generation script has been # changed to ensure a stable order in the future. # # Author: Stephen Smalley # Signed-off-by: Stephen Smalley # Signed-off-by: James Morris # Signed-off-by: David S. Miller # # security/selinux/include/av_perm_to_string.h # 2004/06/15 21:41:48-07:00 jmorris@redhat.com +89 -3 # [SELINUX]: Fine-grained Netlink support - SELinux headers # # This patch regenerates the SELinux module headers to reflect new class # and access vectors definitions. The size of the diff is misleading; # much of it is simply a change in the ordering of the automatically # generated definitions. The corresponding generation script has been # changed to ensure a stable order in the future. # # Author: Stephen Smalley # Signed-off-by: Stephen Smalley # Signed-off-by: James Morris # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/15 21:39:10-07:00 anton@samba.org # [NET]: Allow IP header alignment to be overriden. # # Author: Anton Blanchard # Signed-off-by: David S. Miller # # include/linux/skbuff.h # 2004/06/15 21:38:55-07:00 anton@samba.org +24 -0 # [NET]: Allow IP header alignment to be overriden. # # Author: Anton Blanchard # Signed-off-by: David S. Miller # # include/asm-ppc64/system.h # 2004/06/15 21:38:55-07:00 anton@samba.org +9 -0 # [NET]: Allow IP header alignment to be overriden. # # Author: Anton Blanchard # Signed-off-by: David S. Miller # # drivers/net/s2io.h # 2004/06/15 21:38:55-07:00 anton@samba.org +0 -1 # [NET]: Allow IP header alignment to be overriden. # # Author: Anton Blanchard # Signed-off-by: David S. Miller # # drivers/net/s2io.c # 2004/06/15 21:38:55-07:00 anton@samba.org +2 -2 # [NET]: Allow IP header alignment to be overriden. # # Author: Anton Blanchard # Signed-off-by: David S. Miller # # drivers/net/ixgb/ixgb_main.c # 2004/06/15 21:38:55-07:00 anton@samba.org +2 -3 # [NET]: Allow IP header alignment to be overriden. # # Author: Anton Blanchard # Signed-off-by: David S. Miller # # drivers/net/e1000/e1000_main.c # 2004/06/15 21:38:55-07:00 anton@samba.org +2 -3 # [NET]: Allow IP header alignment to be overriden. # # Author: Anton Blanchard # Signed-off-by: David S. Miller # # drivers/net/e1000/e1000_ethtool.c # 2004/06/15 21:38:55-07:00 anton@samba.org +3 -2 # [NET]: Allow IP header alignment to be overriden. # # Author: Anton Blanchard # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/15 21:37:06-07:00 shemminger@osdl.org # [ATM]: Include compiler.h in atm.h # # include/linux/atm.h # 2004/06/15 21:36:52-07:00 shemminger@osdl.org +1 -0 # [ATM]: Include compiler.h in atm.h # # ChangeSet # 2004/06/15 21:35:21-07:00 davem@nuts.davemloft.net # [TCP]: Tweak some default sysctl values. # # tcp_default_win_scale: 7 # tcp_vegas_cong_avoid: 1 # tcp_moderate_rcvbuf: 1 # tcp_bic: 1 # # net/ipv4/tcp_input.c # 2004/06/15 21:18:53-07:00 davem@nuts.davemloft.net +3 -3 # [TCP]: Tweak some default sysctl values. # # tcp_default_win_scale: 7 # tcp_vegas_cong_avoid: 1 # tcp_moderate_rcvbuf: 1 # tcp_bic: 1 # # net/ipv4/tcp.c # 2004/06/15 21:18:53-07:00 davem@nuts.davemloft.net +1 -1 # [TCP]: Tweak some default sysctl values. # # tcp_default_win_scale: 7 # tcp_vegas_cong_avoid: 1 # tcp_moderate_rcvbuf: 1 # tcp_bic: 1 # # ChangeSet # 2004/06/15 21:09:47-07:00 yoshfuji@linux-ipv6.org # [IPV6]: UDPv6 checksum. # # We always need to check UDPv6 checksum because it is mandatory. # # Author: Yoshifuji Hideaki # Signed-off-by: David S. Miller # # net/ipv6/udp.c # 2004/06/15 21:09:31-07:00 yoshfuji@linux-ipv6.org +1 -1 # [IPV6]: UDPv6 checksum. # # We always need to check UDPv6 checksum because it is mandatory. # # Author: Yoshifuji Hideaki # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/15 21:07:24-07:00 jmorris@redhat.com # [SELINUX]: Fix sock_orphan race. # # The patch below fixes a race between sock_orphan() and # selinux_socket_sock_rcv_skb() which can lead to a null pointer deref oops # under heavy load. The sk_callback_lock is used in the patch to # synchronize access to the incoming socket's inode security state. # # This patch has been under test in the Fedora kernel for over a month # without incident. # # Author: Stephen Smalley # Signed-off-by: James Morris # Signed-off-by: David S. Miller # # security/selinux/hooks.c # 2004/06/15 21:07:09-07:00 jmorris@redhat.com +21 -16 # [SELINUX]: Fix sock_orphan race. # # The patch below fixes a race between sock_orphan() and # selinux_socket_sock_rcv_skb() which can lead to a null pointer deref oops # under heavy load. The sk_callback_lock is used in the patch to # synchronize access to the incoming socket's inode security state. # # This patch has been under test in the Fedora kernel for over a month # without incident. # # Author: Stephen Smalley # Signed-off-by: James Morris # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/15 20:37:41-07:00 hadi@znyx.com # [NET]: Add tc extensions infrastructure. # # Signed-off-by: Jamal Hadi Salim # Signed-off-by: David S. Miller # # net/sched/sch_prio.c # 2004/06/15 20:37:18-07:00 hadi@znyx.com +58 -14 # [NET]: Add tc extensions infrastructure. # # Signed-off-by: Jamal Hadi Salim # Signed-off-by: David S. Miller # # net/sched/sch_ingress.c # 2004/06/15 20:37:18-07:00 hadi@znyx.com +64 -8 # [NET]: Add tc extensions infrastructure. # # Signed-off-by: Jamal Hadi Salim # Signed-off-by: David S. Miller # # net/sched/police.c # 2004/06/15 20:37:18-07:00 hadi@znyx.com +329 -1 # [NET]: Add tc extensions infrastructure. # # Signed-off-by: Jamal Hadi Salim # Signed-off-by: David S. Miller # # net/sched/cls_u32.c # 2004/06/15 20:37:18-07:00 hadi@znyx.com +179 -8 # [NET]: Add tc extensions infrastructure. # # Signed-off-by: Jamal Hadi Salim # Signed-off-by: David S. Miller # # net/sched/cls_tcindex.c # 2004/06/15 20:37:18-07:00 hadi@znyx.com +2 -2 # [NET]: Add tc extensions infrastructure. # # Signed-off-by: Jamal Hadi Salim # Signed-off-by: David S. Miller # # net/sched/cls_rsvp.h # 2004/06/15 20:37:18-07:00 hadi@znyx.com +3 -3 # [NET]: Add tc extensions infrastructure. # # Signed-off-by: Jamal Hadi Salim # Signed-off-by: David S. Miller # # net/sched/cls_route.c # 2004/06/15 20:37:18-07:00 hadi@znyx.com +3 -3 # [NET]: Add tc extensions infrastructure. # # Signed-off-by: Jamal Hadi Salim # Signed-off-by: David S. Miller # # net/sched/cls_fw.c # 2004/06/15 20:37:18-07:00 hadi@znyx.com +174 -3 # [NET]: Add tc extensions infrastructure. # # Signed-off-by: Jamal Hadi Salim # Signed-off-by: David S. Miller # # net/sched/cls_api.c # 2004/06/15 20:37:18-07:00 hadi@znyx.com +18 -5 # [NET]: Add tc extensions infrastructure. # # Signed-off-by: Jamal Hadi Salim # Signed-off-by: David S. Miller # # net/sched/Makefile # 2004/06/15 20:37:18-07:00 hadi@znyx.com +3 -1 # [NET]: Add tc extensions infrastructure. # # Signed-off-by: Jamal Hadi Salim # Signed-off-by: David S. Miller # # net/sched/Kconfig # 2004/06/15 20:37:18-07:00 hadi@znyx.com +33 -2 # [NET]: Add tc extensions infrastructure. # # Signed-off-by: Jamal Hadi Salim # Signed-off-by: David S. Miller # # net/ethernet/eth.c # 2004/06/15 20:37:18-07:00 hadi@znyx.com +3 -0 # [NET]: Add tc extensions infrastructure. # # Signed-off-by: Jamal Hadi Salim # Signed-off-by: David S. Miller # # net/core/skbuff.c # 2004/06/15 20:37:18-07:00 hadi@znyx.com +23 -0 # [NET]: Add tc extensions infrastructure. # # Signed-off-by: Jamal Hadi Salim # Signed-off-by: David S. Miller # # net/core/rtnetlink.c # 2004/06/15 20:37:18-07:00 hadi@znyx.com +4 -2 # [NET]: Add tc extensions infrastructure. # # Signed-off-by: Jamal Hadi Salim # Signed-off-by: David S. Miller # # include/net/pkt_sched.h # 2004/06/15 20:37:18-07:00 hadi@znyx.com +76 -4 # [NET]: Add tc extensions infrastructure. # # Signed-off-by: Jamal Hadi Salim # Signed-off-by: David S. Miller # # include/net/pkt_cls.h # 2004/06/15 20:37:18-07:00 hadi@znyx.com +30 -2 # [NET]: Add tc extensions infrastructure. # # Signed-off-by: Jamal Hadi Salim # Signed-off-by: David S. Miller # # include/linux/skbuff.h # 2004/06/15 20:37:18-07:00 hadi@znyx.com +9 -1 # [NET]: Add tc extensions infrastructure. # # Signed-off-by: Jamal Hadi Salim # Signed-off-by: David S. Miller # # include/linux/rtnetlink.h # 2004/06/15 20:37:18-07:00 hadi@znyx.com +17 -0 # [NET]: Add tc extensions infrastructure. # # Signed-off-by: Jamal Hadi Salim # Signed-off-by: David S. Miller # # include/linux/pkt_sched.h # 2004/06/15 20:37:18-07:00 hadi@znyx.com +1 -0 # [NET]: Add tc extensions infrastructure. # # Signed-off-by: Jamal Hadi Salim # Signed-off-by: David S. Miller # # include/linux/pkt_cls.h # 2004/06/15 20:37:18-07:00 hadi@znyx.com +163 -8 # [NET]: Add tc extensions infrastructure. # # Signed-off-by: Jamal Hadi Salim # Signed-off-by: David S. Miller # # include/linux/netdevice.h # 2004/06/15 20:37:18-07:00 hadi@znyx.com +2 -0 # [NET]: Add tc extensions infrastructure. # # Signed-off-by: Jamal Hadi Salim # Signed-off-by: David S. Miller # # net/sched/act_api.c # 2004/06/15 20:37:06-07:00 hadi@znyx.com +978 -0 # [NET]: Add tc extensions infrastructure. # # Signed-off-by: Jamal Hadi Salim # Signed-off-by: David S. Miller # # net/sched/act_api.c # 2004/06/15 20:37:06-07:00 hadi@znyx.com +0 -0 # BitKeeper file /disk1/BK/tc-2.6/net/sched/act_api.c # # include/net/pkt_act.h # 2004/06/15 20:37:05-07:00 hadi@znyx.com +286 -0 # [NET]: Add tc extensions infrastructure. # # Signed-off-by: Jamal Hadi Salim # Signed-off-by: David S. Miller # # include/net/pkt_act.h # 2004/06/15 20:37:05-07:00 hadi@znyx.com +0 -0 # BitKeeper file /disk1/BK/tc-2.6/include/net/pkt_act.h # # ChangeSet # 2004/06/16 00:33:13-03:00 acme@toy.kerneljanitors.org # [ECONET] kill some trivial warnings # # Signed-off-by: Arnaldo Carvalho de Melo # # net/econet/af_econet.c # 2004/06/16 00:33:01-03:00 acme@toy.kerneljanitors.org +6 -8 # [ECONET] kill some trivial warnings # # Signed-off-by: Arnaldo Carvalho de Melo # # ChangeSet # 2004/06/15 20:24:51-07:00 davem@nuts.davemloft.net # Merge bk://kernel.bkbits.net/acme/net-2.6 # into nuts.davemloft.net:/disk1/BK/net-2.6 # # net/ipv6/tcp_ipv6.c # 2004/06/15 20:24:38-07:00 davem@nuts.davemloft.net +0 -0 # Auto merged # # ChangeSet # 2004/06/15 20:20:25-07:00 ahu@ds9a.nl # [NET]: Update some sysctl documentation. # # I ran the following (crappy) script: # ... # In /proc/sys/ and found a host of undocumented sysctls. This patch documents # a number of them, and at least mentions the rest as 'TODO'. Please verify my # code-inspired documentation before applying! # # Signed-off-by: Bert Hubert # Signed-off-by: David S. Miller # # Documentation/networking/ip-sysctl.txt # 2004/06/15 20:19:32-07:00 ahu@ds9a.nl +57 -0 # [NET]: Update some sysctl documentation. # # I ran the following (crappy) script: # ... # In /proc/sys/ and found a host of undocumented sysctls. This patch documents # a number of them, and at least mentions the rest as 'TODO'. Please verify my # code-inspired documentation before applying! # # Signed-off-by: Bert Hubert # Signed-off-by: David S. Miller # # Documentation/filesystems/proc.txt # 2004/06/15 20:19:32-07:00 ahu@ds9a.nl +2 -1 # [NET]: Update some sysctl documentation. # # I ran the following (crappy) script: # ... # In /proc/sys/ and found a host of undocumented sysctls. This patch documents # a number of them, and at least mentions the rest as 'TODO'. Please verify my # code-inspired documentation before applying! # # Signed-off-by: Bert Hubert # Signed-off-by: David S. Miller # # ChangeSet # 2004/06/15 19:32:48-07:00 dsaxena@omelas.(none) # [ARM] Add include/asm-arm/mach/time.h for shared timer definitions # # Signed-off-by: Deepak Saxena # # include/asm-arm/mach/time.h # 2004/06/15 19:31:40-07:00 dsaxena@omelas.(none) +24 -0 # # include/asm-arm/mach/time.h # 2004/06/15 19:31:40-07:00 dsaxena@omelas.(none) +0 -0 # BitKeeper file /home/dsaxena/src/linux-2.6-arm-timer/include/asm-arm/mach/time.h # # ChangeSet # 2004/06/15 19:00:23-07:00 dsaxena@omelas.(none) # [ARM] Delete include/asm-arm/arch-versatile/time.h # # Signed-off-by: Deepak Saxena # # BitKeeper/deleted/.del-time.h~c344b24f8045f7dc # 2004/06/15 18:59:09-07:00 dsaxena@omelas.(none) +0 -0 # Delete: include/asm-arm/arch-versatile/time.h # # ChangeSet # 2004/06/15 18:45:01-07:00 dsaxena@omelas.(none) # [ARM] Delete include/asm-arm/arch-ixp4xx/time.h # # Signed-off-by: Deepak Saxena # # BitKeeper/deleted/.del-time.h~cc23e4568356fd42 # 2004/06/15 18:44:35-07:00 dsaxena@omelas.(none) +0 -0 # Delete: include/asm-arm/arch-ixp4xx/time.h # # ChangeSet # 2004/06/15 18:42:18-07:00 dsaxena@omelas.(none) # [ARM] Delete include/asm-arm/arch-iop3xx/time.h # # Signed-off-by: Deepak Saxena # # BitKeeper/deleted/.del-time.h~66507b95d41b2fa3 # 2004/06/15 18:41:53-07:00 dsaxena@omelas.(none) +0 -0 # Delete: include/asm-arm/arch-iop3xx/time.h # # ChangeSet # 2004/06/15 18:38:14-07:00 dsaxena@omelas.(none) # [ARM] Delete include/asm-arm/arch-nexuspci/time.h # # Signed-off-by: Deepak Saxena # # BitKeeper/deleted/.del-time.h~730e38fa47912a2c # 2004/06/15 18:37:53-07:00 dsaxena@omelas.(none) +0 -0 # Delete: include/asm-arm/arch-nexuspci/time.h # # ChangeSet # 2004/06/15 18:16:01-07:00 dsaxena@omelas.(none) # [ARM] Remove bogus gettimeoffset ptr from machine_desc struct. # # This was accidently added during the timer code cleanup. # # Signed-off-by: Deepak Saxena # # include/asm-arm/mach/arch.h # 2004/06/15 18:14:13-07:00 dsaxena@omelas.(none) +0 -1 # Remove bogus gettimeoffset() from machine_desc struct # # ChangeSet # 2004/06/15 17:57:04-07:00 dsaxena@omelas.(none) # Merge # # arch/arm/mach-omap/board-generic.c # 2004/06/15 17:57:02-07:00 dsaxena@omelas.(none) +0 -0 # SCCS merged # # arch/arm/mach-omap/time.c # 2004/06/15 17:50:10-07:00 dsaxena@omelas.(none) +0 -0 # Auto merged # # arch/arm/mach-omap/time.c # 2004/06/15 17:50:10-07:00 dsaxena@omelas.(none) +0 -0 # Merge rename: include/asm-arm/arch-omap/time.h -> arch/arm/mach-omap/time.c # # arch/arm/mach-omap/board-perseus2.c # 2004/06/15 17:50:10-07:00 dsaxena@omelas.(none) +0 -0 # Auto merged # # arch/arm/mach-omap/board-osk.c # 2004/06/15 17:50:10-07:00 dsaxena@omelas.(none) +0 -0 # Auto merged # # arch/arm/mach-omap/board-innovator.c # 2004/06/15 17:50:10-07:00 dsaxena@omelas.(none) +0 -0 # Auto merged # # arch/arm/Kconfig # 2004/06/15 17:50:10-07:00 dsaxena@omelas.(none) +0 -0 # Auto merged # # ChangeSet # 2004/06/15 17:48:14-07:00 dsaxena@omelas.(none) # [ARM] Timer cleanup # # Signed-off-by: Deepak Saxena # # include/asm-arm/mach/arch.h # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +5 -0 # ARM timer cleanup # # include/asm-arm/arch-ixp4xx/platform.h # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # include/asm-arm/arch-integrator/platform.h # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +4 -0 # ARM timer cleanup # # arch/arm/mach-versatile/core.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +147 -0 # ARM timer cleanup # # arch/arm/mach-tbox/core.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +27 -0 # ARM timer cleanup # # arch/arm/mach-shark/core.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +40 -0 # ARM timer cleanup # # arch/arm/mach-sa1100/yopy.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-sa1100/xp860.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-sa1100/trizeps.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-sa1100/time.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +8 -3 # ARM timer cleanup # # arch/arm/mach-sa1100/system3.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-sa1100/stork.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-sa1100/simpad.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-sa1100/sherman.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-sa1100/shannon.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-sa1100/pleb.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-sa1100/pfs168.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-sa1100/pangolin.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-sa1100/omnimeter.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-sa1100/nanoengine.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-sa1100/lart.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-sa1100/jornada720.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-sa1100/itsy.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-sa1100/huw_webpanel.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-sa1100/hackkit.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-sa1100/h3600.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +3 -0 # ARM timer cleanup # # arch/arm/mach-sa1100/graphicsmaster.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-sa1100/graphicsclient.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-sa1100/generic.h # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-sa1100/freebird.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-sa1100/flexanet.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-sa1100/empeg.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-sa1100/cerf.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-sa1100/brutus.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-sa1100/badge4.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-sa1100/assabet.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-sa1100/adsbitsy.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-s3c2410/time.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +18 -10 # ARM timer cleanup # # arch/arm/mach-s3c2410/s3c2410.h # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +2 -0 # ARM timer cleanup # # arch/arm/mach-s3c2410/mach-vr1000.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +6 -0 # ARM timer cleanup # # arch/arm/mach-s3c2410/mach-smdk2410.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +6 -0 # ARM timer cleanup # # arch/arm/mach-s3c2410/mach-h1940.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +6 -0 # ARM timer cleanup # # arch/arm/mach-s3c2410/mach-bast.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +6 -0 # ARM timer cleanup # # arch/arm/mach-s3c2410/Makefile # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -1 # ARM timer cleanup # # arch/arm/mach-rpc/riscpc.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +31 -0 # ARM timer cleanup # # arch/arm/mach-pxa/time.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +27 -4 # ARM timer cleanup # # arch/arm/mach-pxa/mainstone.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-pxa/lubbock.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-pxa/idp.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-pxa/generic.h # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-pxa/Makefile # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -1 # ARM timer cleanup # # arch/arm/mach-omap/time.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +15 -13 # ARM timer cleanup # # arch/arm/mach-omap/common.h # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-omap/board-perseus2.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-omap/board-osk.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-omap/board-innovator.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-omap/board-generic.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +7 -0 # ARM timer cleanup # # arch/arm/mach-omap/Makefile # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -1 # ARM timer cleanup # # arch/arm/mach-lh7a40x/time.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +22 -5 # ARM timer cleanup # # arch/arm/mach-lh7a40x/arch-lpd7a40x.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +2 -0 # ARM timer cleanup # # arch/arm/mach-lh7a40x/arch-kev7a400.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +2 -0 # ARM timer cleanup # # arch/arm/mach-lh7a40x/Makefile # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -1 # ARM timer cleanup # # arch/arm/mach-ixp4xx/prpmc1100-setup.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-ixp4xx/ixdp425-setup.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +3 -0 # ARM timer cleanup # # arch/arm/mach-ixp4xx/coyote-setup.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/mach-ixp4xx/common.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +7 -8 # ARM timer cleanup # # arch/arm/mach-iop3xx/iop321-time.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +7 -6 # ARM timer cleanup # # arch/arm/mach-iop3xx/arch.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +2 -0 # ARM timer cleanup # # arch/arm/mach-integrator/time.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +146 -0 # ARM timer cleanup # # arch/arm/mach-integrator/integrator_cp.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +6 -0 # ARM timer cleanup # # arch/arm/mach-integrator/integrator_ap.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +6 -0 # ARM timer cleanup # # arch/arm/mach-ftvpci/core.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +47 -0 # ARM timer cleanup # # arch/arm/mach-footbridge/time.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +26 -8 # ARM timer cleanup # # arch/arm/mach-footbridge/arch.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +6 -0 # ARM timer cleanup # # arch/arm/mach-footbridge/Makefile # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +1 -1 # ARM timer cleanup # # arch/arm/mach-epxa10db/time.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +45 -1 # ARM timer cleanup # # arch/arm/mach-epxa10db/arch.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +3 -0 # ARM timer cleanup # # arch/arm/mach-ebsa110/core.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +102 -0 # ARM timer cleanup # # arch/arm/mach-clps7500/core.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +40 -1 # ARM timer cleanup # # arch/arm/mach-clps711x/time.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +28 -4 # ARM timer cleanup # # arch/arm/mach-clps711x/p720t.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +2 -0 # ARM timer cleanup # # arch/arm/mach-clps711x/fortunet.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +2 -0 # ARM timer cleanup # # arch/arm/mach-clps711x/edb7211-arch.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +2 -0 # ARM timer cleanup # # arch/arm/mach-clps711x/clep7312.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +2 -0 # ARM timer cleanup # # arch/arm/mach-clps711x/ceiva.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +2 -0 # ARM timer cleanup # # arch/arm/mach-clps711x/cdb89712.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +2 -0 # ARM timer cleanup # # arch/arm/common/time-acorn.c # 2004/06/15 17:42:35-07:00 dsaxena@omelas.(none) +3 -2 # ARM timer cleanup # # arch/arm/mach-clps711x/autcpu12.c # 2004/06/15 17:42:34-07:00 dsaxena@omelas.(none) +2 -0 # ARM timer cleanup # # arch/arm/kernel/time.c # 2004/06/15 17:42:34-07:00 dsaxena@omelas.(none) +12 -15 # ARM timer cleanup # # arch/arm/kernel/setup.c # 2004/06/15 17:42:34-07:00 dsaxena@omelas.(none) +3 -0 # ARM timer cleanup # # arch/arm/kernel/Makefile # 2004/06/15 17:42:34-07:00 dsaxena@omelas.(none) +1 -2 # ARM timer cleanup # # arch/arm/common/Makefile # 2004/06/15 17:42:34-07:00 dsaxena@omelas.(none) +1 -0 # ARM timer cleanup # # arch/arm/Kconfig # 2004/06/15 17:42:34-07:00 dsaxena@omelas.(none) +5 -0 # ARM timer cleanup # # BitKeeper/deleted/.del-time.h~e839fe4bcd9e4cf9 # 2004/06/15 16:48:56-07:00 dsaxena@omelas.(none) +0 -0 # Delete: include/asm-arm/arch-tbox/time.h # # ChangeSet # 2004/06/15 16:29:30-07:00 eranian@hpl.hp.com # [PATCH] ia64: fix info in /proc/pal/*/bus_info # # This patch fixes to minor bugs: # - corrected descriptions for bit 52 and 53 of the /proc/pal/CPU*/bus_info # entry; they were swapped # - corrected a typo for bit 55 of the /proc/pal/CPU*/bus_info entry # # Signed-off-by: Stephane Eranian # Signed-off-by: David Mosberger # # arch/ia64/kernel/palinfo.c # 2004/06/15 10:28:07-07:00 eranian@hpl.hp.com +2 -2 # ia64: fix info in /proc/pal/*/bus_info # # BitKeeper/deleted/.del-time.c~e41898daed8bea09 # 2004/06/15 16:08:17-07:00 dsaxena@omelas.(none) +0 -0 # Delete: arch/arm/mach-shark/time.c # # arch/arm/mach-shark/time.c # 2004/06/15 15:58:38-07:00 dsaxena@omelas.(none) +0 -0 # Rename: arch/arm/mach-shark/time.ch -> arch/arm/mach-shark/time.c # # arch/arm/mach-shark/time.ch # 2004/06/15 15:46:57-07:00 dsaxena@omelas.(none) +0 -0 # Rename: include/asm-arm/arch-shark/time.h -> arch/arm/mach-shark/time.ch # # arch/arm/mach-sa1100/time.c # 2004/06/15 15:02:29-07:00 dsaxena@omelas.(none) +0 -0 # Rename: include/asm-arm/arch-sa1100/time.h -> arch/arm/mach-sa1100/time.c # # arch/arm/mach-s3c2410/time.c # 2004/06/15 13:52:07-07:00 dsaxena@omelas.(none) +0 -0 # Rename: include/asm-arm/arch-s3c2410/time.h -> arch/arm/mach-s3c2410/time.c # # BitKeeper/deleted/.del-time.c~16d0f1fb7b29ea89 # 2004/06/15 13:09:43-07:00 dsaxena@omelas.(none) +0 -23 # Delete: arch/arm/mach-rpc/time.c # # arch/arm/mach-rpc/time.c # 2004/06/15 13:02:38-07:00 dsaxena@omelas.(none) +0 -0 # Rename: include/asm-arm/arch-rpc/time.h -> arch/arm/mach-rpc/time.c # # arch/arm/mach-pxa/time.c # 2004/06/15 12:36:09-07:00 dsaxena@omelas.(none) +0 -0 # Rename: include/asm-arm/arch-pxa/time.h -> arch/arm/mach-pxa/time.c # # arch/arm/mach-omap/time.c # 2004/06/15 12:06:48-07:00 dsaxena@omelas.(none) +0 -0 # Rename: include/asm-arm/arch-omap/time.h -> arch/arm/mach-omap/time.c # # arch/arm/mach-lh7a40x/time.c # 2004/06/15 11:01:21-07:00 dsaxena@omelas.(none) +0 -0 # Rename: include/asm-arm/arch-lh7a40x/time.h -> arch/arm/mach-lh7a40x/time.c # # ChangeSet # 2004/06/15 12:48:08-05:00 jejb@mulgrave.(none) # Fix endless loop in SCSI SPI transport class # # If the driver doesn't update the peroid, we go # around forever. The fix is to keep our old period # unless the driver returns a greater one. # # Signed-off-by: James Bottomley # # drivers/scsi/scsi_transport_spi.c # 2004/06/15 12:47:53-05:00 jejb@mulgrave.(none) +3 -1 # Fix endless loop in SCSI SPI transport class # # ChangeSet # 2004/06/15 12:32:52-05:00 jejb@mulgrave.(none) # Merge # # drivers/scsi/qlogicpti.c # 2004/06/15 12:32:34-05:00 jejb@mulgrave.(none) +0 -1 # SCCS merged # # drivers/scsi/esp.c # 2004/06/15 12:32:09-05:00 jejb@mulgrave.(none) +0 -1 # SCCS merged # # include/linux/pci_ids.h # 2004/06/15 12:28:06-05:00 jejb@mulgrave.(none) +0 -0 # Auto merged # # drivers/scsi/st.c # 2004/06/15 12:28:06-05:00 jejb@mulgrave.(none) +0 -0 # Auto merged # # drivers/scsi/scsi_debug.c # 2004/06/15 12:28:06-05:00 jejb@mulgrave.(none) +0 -0 # Auto merged # # drivers/scsi/osst.c # 2004/06/15 12:28:05-05:00 jejb@mulgrave.(none) +0 -0 # Auto merged # # drivers/scsi/cpqfcTScontrol.c # 2004/06/15 12:28:05-05:00 jejb@mulgrave.(none) +0 -0 # Auto merged # # drivers/scsi/Kconfig # 2004/06/15 12:28:05-05:00 jejb@mulgrave.(none) +0 -0 # Auto merged # # MAINTAINERS # 2004/06/15 12:28:05-05:00 jejb@mulgrave.(none) +0 -0 # Auto merged # # ChangeSet # 2004/06/15 12:09:19-05:00 rddunlap@osdl.org # [PATCH] Comment out an unused function in drivers/scsi/wd7000.c # # Eliminate unused function wd7000_abort() in wd7000 driver. # # CC [M] drivers/scsi/wd7000.o # drivers/scsi/wd7000.c:1612: warning: `wd7000_abort' defined but not used # # As the author states in his comment, this is "unfinished business" ;-) # # # From: Mika Kukkonen # Signed-off-by: Randy Dunlap # Signed-off-by: James Bottomley # # drivers/scsi/wd7000.c # 2004/06/15 10:49:13-05:00 rddunlap@osdl.org +2 -1 # Comment out an unused function in drivers/scsi/wd7000.c # # ChangeSet # 2004/06/15 12:07:20-05:00 bunk@fs.tum.de # [PATCH] modular scsi/mca_53c9x doesn't work # # On Mon, Jun 14, 2004 at 08:22:15PM +0100, Christoph Hellwig wrote: # > On Mon, Jun 14, 2004 at 08:52:56PM +0200, Adrian Bunk wrote: # > > The issue described in the mail forwarded below is still present in # > > 2.6.7-rc3-mm2 (but not specific to -mm). # > > # > > I'd suggest the following workaround: # > # > Please add the exports instead. It'll affect all the other 53C9X-based # > drivers aswell. # # This sounds like a better solution. # # Signed-off-by: James Bottomley # # drivers/scsi/NCR53C9x.c # 2004/06/14 17:47:23-05:00 bunk@fs.tum.de +11 -0 # modular scsi/mca_53c9x doesn't work # # ChangeSet # 2004/06/15 12:06:00-05:00 akpm@osdl.org # [PATCH] drivers/scsi/megaraid.c: user/kernel pointer bugs # # From: "Robert T. Johnson" # # Since arg is a user pointer, so are uioc_mimd and uiocp, and hence umc is a # user pointer. Thus reading umc->xferaddr requires dereferencing a user # pointer, which isn't safe. # # Signed-off-by: Andrew Morton # Signed-off-by: James Bottomley # # drivers/scsi/megaraid.c # 2004/06/10 08:19:19-05:00 akpm@osdl.org +4 -2 # drivers/scsi/megaraid.c: user/kernel pointer bugs # # ChangeSet # 2004/06/15 12:04:04-05:00 g.liakhovetski@gmx.de # [PATCH] tmscsim: 64-bit cleanup # # > Although, I think, there's still a glitch there (modified if's order). # > I'll send a new version, if the approach is approved in principle. # # Ok, attached is version 3:-) It also fixes a definite (although, perhaps, # harmless) bug in scsiiom.c. And removes a redundant assignment in # tmscsim.c. # # Signed-off-by: Guennadi Liakhovetski # Signed-off-by: James Bottomley # # drivers/scsi/tmscsim.c # 2004/06/14 17:28:50-05:00 g.liakhovetski@gmx.de +40 -34 # tmscsim: 64-bit cleanup # # ChangeSet # 2004/06/15 12:01:55-05:00 hch@lst.de # [PATCH] avoid obsolete scsi APIs in eata_pio # # Signed-off-by: James Bottomley # # drivers/scsi/eata_pio.c # 2004/06/07 05:22:42-05:00 hch@lst.de +66 -65 # avoid obsolete scsi APIs in eata_pio # # drivers/scsi/eata_generic.h # 2004/06/07 05:19:05-05:00 hch@lst.de +1 -1 # avoid obsolete scsi APIs in eata_pio # # ChangeSet # 2004/06/15 11:59:06-05:00 hch@lst.de # [PATCH] clean up SCSI_TIMEOUT usage # # - qlogicfc.c abuses SCSI_TIEMOUT although it's not part of the scsi # core, give it it's own ISP_TIMEOUT define # - avoid redefining timeouts #ifdef DEBUG, that's a cause for heisenbugs # just waiting to happen # - now SCSI_TIMEOUT is private to scsi_scan.c, move it there # # Signed-off-by: James Bottomley # # drivers/scsi/scsi_scan.c # 2004/06/06 06:20:50-05:00 hch@lst.de +5 -0 # clean up SCSI_TIMEOUT usage # # drivers/scsi/scsi_error.c # 2004/06/06 06:19:15-05:00 hch@lst.de +4 -9 # clean up SCSI_TIMEOUT usage # # drivers/scsi/scsi.h # 2004/06/06 06:17:31-05:00 hch@lst.de +0 -6 # clean up SCSI_TIMEOUT usage # # drivers/scsi/qlogicfc.c # 2004/06/06 06:17:21-05:00 hch@lst.de +2 -1 # clean up SCSI_TIMEOUT usage # # ChangeSet # 2004/06/15 16:33:27+01:00 rmk@flint.arm.linux.org.uk # [ARM] pxafb doesn't need to include asm/mach-types.h # # drivers/video/pxafb.c # 2004/06/15 16:31:17+01:00 rmk@flint.arm.linux.org.uk +0 -1 # pxafb doesn't need to include asm/mach-types.h # # ChangeSet # 2004/06/15 15:50:19+01:00 elf@com.rmk.(none) # [ARM PATCH] 1928/1: lh7a40x #7 Changes to memory model to support contiguous SDRAM # # Patch from Marc Singer # # [if's replaced by ifdef's.] # # While the BLOB boot loader doesn't support it, there are two others, # UBOOT and Logic's LOLO, that will initialize the SDRAM controller such # that the memory appears as a contiguous region. This layout to be # required for WinCE and, thus, is the default for these loaders. The # memory organization had been optimized for discontiguous blocks. Now, # it supports a default mode that is compatible with all of the # bootloaders as well as options to optimize for either contiguous or # discontiguous models. # # Withing, there is also a slight change to the way that the DEBUG_LL # macros select the UART address. Now it uses immediate constants # exclusively. # # # include/asm-arm/arch-lh7a40x/memory.h # 2004/06/12 22:57:20+01:00 elf@com.rmk.(none) +21 -48 # [PATCH] 1928/1: lh7a40x #7 Changes to memory model to support contiguous SDRAM # # arch/arm/mach-lh7a40x/Kconfig # 2004/06/12 22:57:20+01:00 elf@com.rmk.(none) +31 -0 # [PATCH] 1928/1: lh7a40x #7 Changes to memory model to support contiguous SDRAM # # arch/arm/kernel/debug.S # 2004/06/12 22:57:20+01:00 elf@com.rmk.(none) +2 -1 # [PATCH] 1928/1: lh7a40x #7 Changes to memory model to support contiguous SDRAM # # arch/arm/Kconfig # 2004/06/12 22:57:20+01:00 elf@com.rmk.(none) +2 -2 # [PATCH] 1928/1: lh7a40x #7 Changes to memory model to support contiguous SDRAM # # Documentation/arm/Sharp-LH/SDRAM # 2004/06/12 22:57:20+01:00 elf@com.rmk.(none) +51 -0 # [PATCH] 1928/1: lh7a40x #7 Changes to memory model to support contiguous SDRAM # # Documentation/arm/Sharp-LH/SDRAM # 2004/06/12 22:57:20+01:00 elf@com.rmk.(none) +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/Documentation/arm/Sharp-LH/SDRAM # # ChangeSet # 2004/06/15 15:46:21+01:00 icampbell@com.rmk.(none) # [ARM PATCH] 1926/3: PXAFB cleanups and fixes # # Patch from Ian Campbell # # Sorry, 1926/2 was missing a brace. Fixed here. # # Previous commentry: # I have corrected the grayscale conversion to correctly use the upper # byte rather than the lower one. As requested I have also left the # actual grayscale conversion where it was this time and just dealt with # the palette differences in pxafb_setpalettereg. # # fb_alloc_cmap is only called when bits_per_pixel is < 16, otherwise # any existing cmap is freed. # # I also fixed up all the spaces and brackets issues (not just the one # you raised previously) this introduces some noise in the patch, if # you'd like the two patches separately please ask. # # drivers/video/pxafb.c # 2004/06/15 13:42:45+01:00 icampbell@com.rmk.(none) +50 -43 # [PATCH] 1926/3: PXAFB cleanups and fixes # # ChangeSet # 2004/06/15 14:52:36+01:00 rmk@flint.arm.linux.org.uk # [ARM] Add clock API # # Since peripheral clocks are be derived in SoC or even platform # specific ways, we need a way to keep this information out of the # drivers. AMBA Primecells are defined in terms of functional units # where clocks are derived from external sources, and it is up to the # SoC designer to determine where to derive those clocks from. # # Therefore, we provide a very basic API which allows platforms to # provide this information in a generic manner to their peripherals. # This framework also allows peripherals to shut down unused clock # sources when they're not in use. # # include/asm-arm/hardware/clock.h # 2004/06/15 14:49:41+01:00 rmk@flint.arm.linux.org.uk +121 -0 # # include/asm-arm/hardware/clock.h # 2004/06/15 14:49:41+01:00 rmk@flint.arm.linux.org.uk +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/include/asm-arm/hardware/clock.h # # arch/arm/mach-versatile/clock.h # 2004/06/15 14:49:33+01:00 rmk@flint.arm.linux.org.uk +25 -0 # # arch/arm/mach-versatile/clock.h # 2004/06/15 14:49:33+01:00 rmk@flint.arm.linux.org.uk +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/arch/arm/mach-versatile/clock.h # # arch/arm/mach-versatile/clock.c # 2004/06/15 14:49:25+01:00 rmk@flint.arm.linux.org.uk +146 -0 # # arch/arm/mach-versatile/clock.c # 2004/06/15 14:49:25+01:00 rmk@flint.arm.linux.org.uk +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/arch/arm/mach-versatile/clock.c # # arch/arm/mach-integrator/clock.h # 2004/06/15 14:49:18+01:00 rmk@flint.arm.linux.org.uk +25 -0 # # arch/arm/mach-integrator/clock.h # 2004/06/15 14:49:18+01:00 rmk@flint.arm.linux.org.uk +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/arch/arm/mach-integrator/clock.h # # arch/arm/mach-integrator/clock.c # 2004/06/15 14:49:09+01:00 rmk@flint.arm.linux.org.uk +138 -0 # # include/asm-arm/arch-integrator/impd1.h # 2004/06/15 14:49:09+01:00 rmk@flint.arm.linux.org.uk +0 -1 # IM-PD/1 VCO is now controlled via the clock subsystem. # # arch/arm/mach-integrator/clock.c # 2004/06/15 14:49:09+01:00 rmk@flint.arm.linux.org.uk +0 -0 # BitKeeper file /usr/src/bk/linux-2.6-rmk/arch/arm/mach-integrator/clock.c # # drivers/serial/amba-pl011.c # 2004/06/15 14:49:08+01:00 rmk@flint.arm.linux.org.uk +58 -23 # Make PL011 UART use clock layer to obtain clock source information. # # drivers/input/serio/ambakmi.c # 2004/06/15 14:49:08+01:00 rmk@flint.arm.linux.org.uk +33 -5 # Make keyboard/mouse interface use clock layer to obtain KMI clock # source information. # # arch/arm/mach-versatile/Makefile # 2004/06/15 14:49:08+01:00 rmk@flint.arm.linux.org.uk +1 -1 # Add clock.o object. # # arch/arm/mach-integrator/integrator_cp.c # 2004/06/15 14:49:08+01:00 rmk@flint.arm.linux.org.uk +62 -0 # Add Integrator/CP specific clocks. # # arch/arm/mach-integrator/impd1.c # 2004/06/15 14:49:08+01:00 rmk@flint.arm.linux.org.uk +28 -13 # Add clock structures for IM-PD/1 on-board clocks. # # arch/arm/mach-integrator/Makefile # 2004/06/15 14:49:08+01:00 rmk@flint.arm.linux.org.uk +1 -1 # Add clock.o to build objects. # # ChangeSet # 2004/06/15 00:29:37-04:00 jgarzik@pobox.com # [libata] ->qc_prep hook # # Rename ->fill_sg hook to ->qc_prep, and call it unconditionally # (as opposed to ->fill_sg, which was called only when the # flag ATA_QCFLAG_SG was set). # # include/linux/libata.h # 2004/06/15 00:29:32-04:00 jgarzik@pobox.com +2 -2 # [libata] ->qc_prep hook # # Rename ->fill_sg hook to ->qc_prep, and call it unconditionally # (as opposed to ->fill_sg, which was called only when the # flag ATA_QCFLAG_SG was set). # # drivers/scsi/sata_vsc.c # 2004/06/15 00:29:32-04:00 jgarzik@pobox.com +1 -1 # [libata] ->qc_prep hook # # Rename ->fill_sg hook to ->qc_prep, and call it unconditionally # (as opposed to ->fill_sg, which was called only when the # flag ATA_QCFLAG_SG was set). # # drivers/scsi/sata_via.c # 2004/06/15 00:29:32-04:00 jgarzik@pobox.com +1 -1 # [libata] ->qc_prep hook # # Rename ->fill_sg hook to ->qc_prep, and call it unconditionally # (as opposed to ->fill_sg, which was called only when the # flag ATA_QCFLAG_SG was set). # # drivers/scsi/sata_sx4.c # 2004/06/15 00:29:32-04:00 jgarzik@pobox.com +6 -3 # [libata] ->qc_prep hook # # Rename ->fill_sg hook to ->qc_prep, and call it unconditionally # (as opposed to ->fill_sg, which was called only when the # flag ATA_QCFLAG_SG was set). # # drivers/scsi/sata_svw.c # 2004/06/15 00:29:32-04:00 jgarzik@pobox.com +1 -1 # [libata] ->qc_prep hook # # Rename ->fill_sg hook to ->qc_prep, and call it unconditionally # (as opposed to ->fill_sg, which was called only when the # flag ATA_QCFLAG_SG was set). # # drivers/scsi/sata_sis.c # 2004/06/15 00:29:32-04:00 jgarzik@pobox.com +1 -1 # [libata] ->qc_prep hook # # Rename ->fill_sg hook to ->qc_prep, and call it unconditionally # (as opposed to ->fill_sg, which was called only when the # flag ATA_QCFLAG_SG was set). # # drivers/scsi/sata_sil.c # 2004/06/15 00:29:32-04:00 jgarzik@pobox.com +1 -1 # [libata] ->qc_prep hook # # Rename ->fill_sg hook to ->qc_prep, and call it unconditionally # (as opposed to ->fill_sg, which was called only when the # flag ATA_QCFLAG_SG was set). # # drivers/scsi/sata_promise.c # 2004/06/15 00:29:31-04:00 jgarzik@pobox.com +4 -4 # [libata] ->qc_prep hook # # Rename ->fill_sg hook to ->qc_prep, and call it unconditionally # (as opposed to ->fill_sg, which was called only when the # flag ATA_QCFLAG_SG was set). # # drivers/scsi/libata-core.c # 2004/06/15 00:29:31-04:00 jgarzik@pobox.com +29 -21 # [libata] ->qc_prep hook # # Rename ->fill_sg hook to ->qc_prep, and call it unconditionally # (as opposed to ->fill_sg, which was called only when the # flag ATA_QCFLAG_SG was set). # # drivers/scsi/ata_piix.c # 2004/06/15 00:29:31-04:00 jgarzik@pobox.com +2 -2 # [libata] ->qc_prep hook # # Rename ->fill_sg hook to ->qc_prep, and call it unconditionally # (as opposed to ->fill_sg, which was called only when the # flag ATA_QCFLAG_SG was set). # # ChangeSet # 2004/06/14 23:54:02-04:00 jgarzik@pobox.com # [libata] PCI IDE command-end/irq-acknowledge cleanup # # Restruct default irq handler (used for many PCI IDE-like SATA # controllers) to obtain device status and acknowledge interrupts # a bit differently. # # In an attempt to better attack the "ich5 screaming interrupt" problem, # acknowledge and clear the device's INTRQ by reading the Status register # _before_ ack'ing the controller's irq status. This is a deviation # from how the Linux IDE driver acknowledges interrupts, but it may # be the best method, since the ICH5 appears to continue to assert # the interrupt bit in the BMDMA until the device INTRQ line is cleared. # # Of course, SATA has no INTRQ line per se, so ICH5 essentially has # new interrupt behavior not seen before in the PCI IDE world, while # pretending that it's compatible with PCI IDE. Sigh. # # This change affects all SATA controllers (for which there are libata # drivers) except for sata_promise and sata_sx4. # # drivers/scsi/libata-core.c # 2004/06/14 23:53:57-04:00 jgarzik@pobox.com +57 -83 # [libata] PCI IDE command-end/irq-acknowledge cleanup # # Restruct default irq handler (used for many PCI IDE-like SATA # controllers) to obtain device status and acknowledge interrupts # a bit differently. # # In an attempt to better attack the "ich5 screaming interrupt" problem, # acknowledge and clear the device's INTRQ by reading the Status register # _before_ ack'ing the controller's irq status. This is a deviation # from how the Linux IDE driver acknowledges interrupts, but it may # be the best method, since the ICH5 appears to continue to assert # the interrupt bit in the BMDMA until the device INTRQ line is cleared. # # Of course, SATA has no INTRQ line per se, so ICH5 essentially has # new interrupt behavior not seen before in the PCI IDE world, while # pretending that it's compatible with PCI IDE. Sigh. # # This change affects all SATA controllers (for which there are libata # drivers) except for sata_promise and sata_sx4. # # ChangeSet # 2004/06/14 22:40:59-04:00 jgarzik@pobox.com # [libata] PCI IDE DMA code shuffling # # PCI IDE DMA standard (or "bmdma") helper routines ata_bmdma_stop, # ata_bmdma_ack_irq, and ata_bmdma_status are added to linux/libata.h, # and used in libata-core. # # There is a minor behavior change, such that, the Alt Status register # is read before acknowledging the bmdma interrupt. This should be ok, # and furthermore there will be more significant behavior changes # in this area coming soon. # # include/linux/libata.h # 2004/06/14 22:40:53-04:00 jgarzik@pobox.com +40 -0 # [libata] PCI IDE DMA code shuffling # # PCI IDE DMA standard (or "bmdma") helper routines ata_bmdma_stop, # ata_bmdma_ack_irq, and ata_bmdma_status are added to linux/libata.h, # and used in libata-core. # # There is a minor behavior change, such that, the Alt Status register # is read before acknowledging the bmdma interrupt. This should be ok, # and furthermore there will be more significant behavior changes # in this area coming soon. # # drivers/scsi/libata-core.c # 2004/06/14 22:40:53-04:00 jgarzik@pobox.com +4 -41 # [libata] PCI IDE DMA code shuffling # # PCI IDE DMA standard (or "bmdma") helper routines ata_bmdma_stop, # ata_bmdma_ack_irq, and ata_bmdma_status are added to linux/libata.h, # and used in libata-core. # # There is a minor behavior change, such that, the Alt Status register # is read before acknowledging the bmdma interrupt. This should be ok, # and furthermore there will be more significant behavior changes # in this area coming soon. # # drivers/net/acenic.c # 2004/06/14 18:49:59-04:00 johnpol@2ka.mipt.ru +2 -2 # Typo in ethtool code in acenic driver # # ChangeSet # 2004/06/14 18:34:29-04:00 akpm@osdl.org # [PATCH] prism94 build fix # # init_wds is being instantiated in both isl_ioctl.c and islpci_eth.c, causing # linkage errors. # # drivers/net/wireless/prism54/islpci_mgt.o(.rodata+0x198): In function `islpci_mgmt_rx_fill': # /usr/src/25/drivers/net/wireless/prism54/islpci_mgt.c:154: multiple definition of `init_wds' # drivers/net/wireless/prism54/islpci_eth.o(.rodata+0x1c8):/usr/src/25/include/linux/skbuff.h:815: first defined here # # Signed-off-by: Andrew Morton # # drivers/net/wireless/prism54/islpci_mgt.h # 2004/06/13 22:29:45-04:00 akpm@osdl.org +1 -1 # prism94 build fix # # ChangeSet # 2004/06/14 18:33:35-04:00 a.othieno@bluewin.ch # [PATCH] Kill stale references to Documentation/networking/8139too.txt # # Documentation/networking/8139too.txt was removed with this ChangeSet: # # ChangeSet@1.1371.153.2 2004-01-10 15:34:47-05:00 jgarzik@redhat.com # [netdrvr] remove Documentation/networking/8139too.txt # # All sections of the document are woefully outdated. # # # However, `grep' still reveals these references to it: # # drivers/net/8139too.c:90: See 8139too.txt for more details. # drivers/net/Kconfig:1539: as well as the # Documentation/networking/00-INDEX:7:8139too.txt # # Signed-off-by: Arthur Othieno # # drivers/net/Kconfig # 2004/06/14 14:50:09-04:00 a.othieno@bluewin.ch +1 -3 # Kill stale references to Documentation/networking/8139too.txt # # drivers/net/8139too.c # 2004/06/14 14:50:09-04:00 a.othieno@bluewin.ch +0 -2 # Kill stale references to Documentation/networking/8139too.txt # # Documentation/networking/00-INDEX # 2004/06/14 14:50:09-04:00 a.othieno@bluewin.ch +0 -2 # Kill stale references to Documentation/networking/8139too.txt # # ChangeSet # 2004/06/14 18:32:42-04:00 johnpol@2ka.mipt.ru # [PATCH] Typo in ethtool code in acenic driver # # In 10mbps detection code. # # ChangeSet # 2004/06/14 14:38:31-07:00 stern@rowland.harvard.edu # [PATCH] USB: Remove private khubd semaphore # # This patch removes the private semaphore used by the hub driver, and uses # the regular "serialize" semaphore instead. This will satisfy the general # locking requirements for adding and removing devices attached to the hub. # The only tricky aspect is that now the hub event handler must take a # reference to the hub device while waiting to acquire the semaphore, in # case the hub is disconnected during the wait. # # The patch also replaces a few occurrences of spin_lock_irqsave() in # regions where interrupts are known to be enabled with spin_lock_irq(). # # # Signed-off-by: Alan Stern # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/core/hub.h # 2004/06/14 03:33:06-07:00 stern@rowland.harvard.edu +0 -1 # USB: Remove private khubd semaphore # # drivers/usb/core/hub.c # 2004/06/14 03:59:02-07:00 stern@rowland.harvard.edu +24 -21 # USB: Remove private khubd semaphore # # ChangeSet # 2004/06/14 16:27:27-04:00 jgarzik@pobox.com # [libata] don't probe from workqueue # # Since we want the probe phase to call other workqueues, this is # required to eliminate future deadlocks. # # Other methods would include starting a single-shot thread just for # probing, but overall, using a separate thread for probing is pointless # since we are already in process context when we probe. # # So, we simply call ata_bus_probe directly. # # include/linux/libata.h # 2004/06/14 16:27:21-04:00 jgarzik@pobox.com +0 -15 # [libata] don't probe from workqueue # # Since we want the probe phase to call other workqueues, this is # required to eliminate future deadlocks. # # Other methods would include starting a single-shot thread just for # probing, but overall, using a separate thread for probing is pointless # since we are already in process context when we probe. # # So, we simply call ata_bus_probe directly. # # drivers/scsi/libata-core.c # 2004/06/14 16:27:21-04:00 jgarzik@pobox.com +18 -118 # [libata] don't probe from workqueue # # Since we want the probe phase to call other workqueues, this is # required to eliminate future deadlocks. # # Other methods would include starting a single-shot thread just for # probing, but overall, using a separate thread for probing is pointless # since we are already in process context when we probe. # # So, we simply call ata_bus_probe directly. # # BitKeeper/deleted/.del-time.h~d87f27565ed1c644 # 2004/06/14 11:55:15-07:00 dsaxena@omelas.(none) +0 -0 # Delete: include/asm-arm/arch-epxa10db/time.h # # ChangeSet # 2004/06/14 11:11:45-07:00 rl@hellgate.ch # [PATCH] PCI: Fix off-by-one in pci_enable_wake # # Fix off-by-one in pci_enable_wake. # Bit field location determined by mask, not value. # # Signed-off-by: Roger Luethi # Signed-off-by: Greg Kroah-Hartman # # drivers/pci/pci.c # 2004/06/14 09:43:15-07:00 rl@hellgate.ch +1 -1 # PCI: Fix off-by-one in pci_enable_wake # # ChangeSet # 2004/06/14 11:08:54-07:00 rl@hellgate.ch # [PATCH] PCI: Fix PME bits in pci.txt # # Signed-off-by: Roger Luethi # Signed-off-by: Greg Kroah-Hartman # # Documentation/power/pci.txt # 2004/06/14 09:54:41-07:00 rl@hellgate.ch +4 -4 # PCI: Fix PME bits in pci.txt # # ChangeSet # 2004/06/14 10:50:59-07:00 mhoffman@lightlink.com # [PATCH] I2C: add alternate VCORE calculations for w83627thf and w83637hf # # Pick a VRM (for VID interpretation) based on the VRM & OVT config, # if available. Props to Jean Delvare for the # idea & code fragment. # # Signed-off-by: Greg Kroah-Hartman # # drivers/i2c/chips/w83627hf.c # 2004/06/08 19:06:02-07:00 mhoffman@lightlink.com +6 -3 # I2C: add alternate VCORE calculations for w83627thf and w83637hf # # ChangeSet # 2004/06/14 10:35:58-07:00 stern@rowland.harvard.edu # [PATCH] USB: Fix bug in TT initialization introduced by earlier # # This patch repairs a bug introduced by an earlier patch: The TT # initialization code was moved to _after_ the TT's first use. The patch # simply puts the code back the way it used to be. # # # # Signed-off-by: Alan Stern # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/core/hub.c # 2004/06/13 07:11:31-07:00 stern@rowland.harvard.edu +13 -10 # USB: Fix bug in TT initialization introduced by earlier # # ChangeSet # 2004/06/14 10:35:15-07:00 mdharm-usb@one-eyed-alien.net # [PATCH] USB Storage: Fix race when removing the SCSI host # # This patch fixes a race is disconnecting a usb-storage device that occurs # with the SCSI layer. It's primarily reproducable via adding delays into # various disconnect and reset processing paths, but has also been # encountered in the field. # # This patch started life as as281b, and was modified by me only to patch # properly against current kernels. # # The main features of the patch are: # # Store the host pointer at the start of the control thread # rather than trying to get it from srb->device; after the host # is removed the SCSI device structure may no longer exist. # # Keep dev_semaphore locked during the entire time the control # thread or reset handlers are using the us_data structure. # # Reorder the items in dissociate_dev() and release_resources() # so that things are released in the opposite order from the way # they were acquired originally. Don't bother to increment and # decrement the usb_device's reference count; it's unnecessary. # # In disconnect(), first set the DISCONNECTING flag so that no # more I/O will take place and no more requests will be accepted. # Next, cut short the current command and wait for it to finish. # Then call scsi_remove_host(). The SCSI core guarantees that # when scsi_remove_host() returns, the host will not be in error # recovery and all outstanding commands will have been cancelled. # # Remove some old useless left-over code that was #if'ed out. # # Use a wait_queue for the 6-second delay during device resets # so that we can be woken up in the middle if a disconnect occurs. # # The key point here is that after scsi_remove_host(), everything is idle as # far as the SCSI midlayer is concerned. But if there was a command in # progress at the time, the midlayer will abort it without telling us or # waiting for it to complete. Hence we have to wait for the control thread # to be idle before we can try to kill it. This should happen quickly, # since all I/O attempted by the thread will fail immediately. # # Signed-off-by: Matthew Dharm # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/storage/usb.h # 2004/06/13 13:09:07-07:00 mdharm-usb@one-eyed-alien.net +3 -2 # USB Storage: Fix race when removing the SCSI host # # drivers/usb/storage/usb.c # 2004/06/13 13:09:07-07:00 mdharm-usb@one-eyed-alien.net +85 -126 # USB Storage: Fix race when removing the SCSI host # # drivers/usb/storage/transport.c # 2004/06/13 13:09:07-07:00 mdharm-usb@one-eyed-alien.net +5 -4 # USB Storage: Fix race when removing the SCSI host # # ChangeSet # 2004/06/14 10:33:05-07:00 mdharm-usb@one-eyed-alien.net # [PATCH] USB Storage: INQUIRY fixup, mode-sense options, Genesys devices # # This patch does a few things (all in the same section of code). It started # life as patches as226b, as280, and as275. Later it was merged into as226e # and I added significantly to it. # # # First, this patch introduces a new config option to allow people to enable # write-protect detection for their USB devices. With some luck, we've # finally got it right and can eventually remove this option in favor of # enabling this behavior all the time. # # Next, we change how we force some flags on -- it turns out that there are # some 'generic' entries in the SCSI devinfo which was overriding us when we # didn't want it. # # Finally, we add a safety check to the workaround for GeneSys Logic devices # -- if the max_sectors parameter has already been turned down, we won't turn # it up. # # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/storage/scsiglue.c # 2004/06/13 08:24:10-07:00 mdharm-usb@one-eyed-alien.net +46 -6 # USB Storage: INQUIRY fixup, mode-sense options, Genesys devices # # drivers/usb/storage/Kconfig # 2004/06/13 08:24:10-07:00 mdharm-usb@one-eyed-alien.net +22 -0 # USB Storage: INQUIRY fixup, mode-sense options, Genesys devices # # arch/arm/mach-footbridge/time.c # 2004/06/14 10:27:44-07:00 dsaxena@omelas.(none) +0 -0 # Rename: include/asm-arm/arch-ebsa285/time.h -> arch/arm/mach-footbridge/time.c # # arch/arm/mach-ebsa110/time.c # 2004/06/14 10:03:25-07:00 dsaxena@omelas.(none) +0 -0 # Rename: include/asm-arm/arch-ebsa110/time.h -> arch/arm/mach-ebsa110/time.c # # ChangeSet # 2004/06/14 09:45:55-07:00 greg@kroah.com # I2C: sparse cleanups again, based on comments from lkml # # This is more like the original code. # # Signed-off-by: Greg Kroah-Hartman # # drivers/i2c/chips/it87.c # 2004/06/14 02:45:18-07:00 greg@kroah.com +1 -4 # I2C: sparse cleanups again, based on comments from lkml # # This is more like the original code. # # Signed-off-by: Greg Kroah-Hartman # # BitKeeper/deleted/.del-time.c~8f84839a52a43e18 # 2004/06/13 20:40:08-07:00 dsaxena@omelas.(none) +0 -31 # Delete: arch/arm/mach-clps7500/time.c # # arch/arm/common/time-acorn.c # 2004/06/13 20:24:17-07:00 dsaxena@omelas.(none) +0 -0 # Rename: arch/arm/kernel/time-acorn.c -> arch/arm/common/time-acorn.c # # ChangeSet # 2004/06/12 22:23:05-03:00 acme@toy.kerneljanitors.org # [NET] first bits of net/core/stream.c # # Move tcp sk_wmem_queued related functions to net/core/stream.c, will be # used by other SOCK_STREAM protocols, starting with LLC. # # Also move the tcp_charge_skb to sock.h, for the same reasons. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/core/stream.c # 2004/06/12 22:22:55-03:00 acme@toy.kerneljanitors.org +41 -0 # # net/sunrpc/xprt.c # 2004/06/12 22:22:55-03:00 acme@toy.kerneljanitors.org +2 -2 # [NET] first bits of net/core/stream.c # # Move tcp sk_wmem_queued related functions to net/core/stream.c, will be # used by other SOCK_STREAM protocols, starting with LLC. # # Also move the tcp_charge_skb to sock.h, for the same reasons. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/sunrpc/svcsock.c # 2004/06/12 22:22:55-03:00 acme@toy.kerneljanitors.org +1 -1 # [NET] first bits of net/core/stream.c # # Move tcp sk_wmem_queued related functions to net/core/stream.c, will be # used by other SOCK_STREAM protocols, starting with LLC. # # Also move the tcp_charge_skb to sock.h, for the same reasons. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv6/tcp_ipv6.c # 2004/06/12 22:22:55-03:00 acme@toy.kerneljanitors.org +1 -1 # [NET] first bits of net/core/stream.c # # Move tcp sk_wmem_queued related functions to net/core/stream.c, will be # used by other SOCK_STREAM protocols, starting with LLC. # # Also move the tcp_charge_skb to sock.h, for the same reasons. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp_output.c # 2004/06/12 22:22:55-03:00 acme@toy.kerneljanitors.org +4 -4 # [NET] first bits of net/core/stream.c # # Move tcp sk_wmem_queued related functions to net/core/stream.c, will be # used by other SOCK_STREAM protocols, starting with LLC. # # Also move the tcp_charge_skb to sock.h, for the same reasons. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp_minisocks.c # 2004/06/12 22:22:55-03:00 acme@toy.kerneljanitors.org +1 -1 # [NET] first bits of net/core/stream.c # # Move tcp sk_wmem_queued related functions to net/core/stream.c, will be # used by other SOCK_STREAM protocols, starting with LLC. # # Also move the tcp_charge_skb to sock.h, for the same reasons. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp_ipv4.c # 2004/06/12 22:22:55-03:00 acme@toy.kerneljanitors.org +1 -1 # [NET] first bits of net/core/stream.c # # Move tcp sk_wmem_queued related functions to net/core/stream.c, will be # used by other SOCK_STREAM protocols, starting with LLC. # # Also move the tcp_charge_skb to sock.h, for the same reasons. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/ipv4/tcp.c # 2004/06/12 22:22:55-03:00 acme@toy.kerneljanitors.org +3 -22 # [NET] first bits of net/core/stream.c # # Move tcp sk_wmem_queued related functions to net/core/stream.c, will be # used by other SOCK_STREAM protocols, starting with LLC. # # Also move the tcp_charge_skb to sock.h, for the same reasons. # # Signed-off-by: Arnaldo Carvalho de Melo # # net/core/stream.c # 2004/06/12 22:22:55-03:00 acme@toy.kerneljanitors.org +0 -0 # BitKeeper file /home/acme/bk/net-2.6/net/core/stream.c # # net/core/Makefile # 2004/06/12 22:22:55-03:00 acme@toy.kerneljanitors.org +1 -1 # [NET] first bits of net/core/stream.c # # Move tcp sk_wmem_queued related functions to net/core/stream.c, will be # used by other SOCK_STREAM protocols, starting with LLC. # # Also move the tcp_charge_skb to sock.h, for the same reasons. # # Signed-off-by: Arnaldo Carvalho de Melo # # include/net/tcp.h # 2004/06/12 22:22:55-03:00 acme@toy.kerneljanitors.org +0 -22 # [NET] first bits of net/core/stream.c # # Move tcp sk_wmem_queued related functions to net/core/stream.c, will be # used by other SOCK_STREAM protocols, starting with LLC. # # Also move the tcp_charge_skb to sock.h, for the same reasons. # # Signed-off-by: Arnaldo Carvalho de Melo # # include/net/sock.h # 2004/06/12 22:22:55-03:00 acme@toy.kerneljanitors.org +20 -0 # [NET] first bits of net/core/stream.c # # Move tcp sk_wmem_queued related functions to net/core/stream.c, will be # used by other SOCK_STREAM protocols, starting with LLC. # # Also move the tcp_charge_skb to sock.h, for the same reasons. # # Signed-off-by: Arnaldo Carvalho de Melo # # ChangeSet # 2004/06/11 17:22:53-07:00 linux@kodeaffe.de # [PATCH] sysfs: fs/sysfs/inode.c: modify parents ctime and mtime on creation # # When a node is added to sysfs (e.g. a device plugged in via USB), the # filesystem fails to make this change visible in the parent directory's # ctime/mtime. This is in contrast to removing a device, because in that # case, sysfs makes use of the function simple_unlink from fs/libfs.c which # takes care of that. Instead of using simple_link from fs/libfs.c on # creation, sysfs implements its own mechanism. This patch hooks into the # function sysfs_create and sets the ctime and the mtime of the parent to # CURRENT_TIME. # # Signed-off-by: Sebastian Henschel # Signed-off-by: Greg Kroah-Hartman # # fs/sysfs/inode.c # 2004/06/10 14:47:54-07:00 linux@kodeaffe.de +6 -1 # sysfs: fs/sysfs/inode.c: modify parents ctime and mtime on creation # # ChangeSet # 2004/06/11 17:22:14-07:00 hannal@us.ibm.com # [PATCH] Driver Model: Add class support to msr.c # # This patch enables class support in arch/i386/kernel/msr.c. Very simliar # to cpuid (with the fixes Zwane/Greg made, thanks). # # [root@w-hlinder2 root]# tree /sys/class/msr # /sys/class/msr # | -- msr0 # | `-- dev # `-- msr1 # `-- dev # # 2 directories, 2 files # # Thanks to Randy Dunlap for pointing out the unnecessary tabs. Fixed. # # Signed-off-by Hanna Linder # Signed-off-by: Greg Kroah-Hartman # # arch/i386/kernel/msr.c # 2004/06/09 16:33:29-07:00 hannal@us.ibm.com +69 -2 # Driver Model: Add class support to msr.c # # ChangeSet # 2004/06/11 17:15:38-07:00 lxiep@us.ibm.com # [PATCH] PCI Hotplug: rpaphp.patch -- multi-function devices not handled correctly # # I made changes to rpaphp code, so it can handle multi-fuction # devices correctly. The problem is that the pci_dev field of slot struct # can only record one pci_dev of the devices of a multi-fuction card. I # changed pci_dev (a single pci_dev type pointer) to pci_funcs( a list of # pci_dev type pointers). I rewrote some of the config/unconfig code to # support the slot struct change. # # Along with above changes, I added LDRSLOT(logical I/O slot) support. # We need LDRSLOT support for DLPAR I/O. A card in a LDRSLOT can't be # physically removed, but can be logically removed from one partiton and # reassinged to another partition. # # I also merged rpaphp changes from ames tree. # # # Signed-off-by: Greg Kroah-Hartman # # drivers/pci/hotplug/rpaphp_core.c # 2004/06/08 15:53:59-07:00 lxiep@us.ibm.com +137 -62 # PCI Hotplug: rpaphp.patch -- multi-function devices not handled correctly # # drivers/pci/hotplug/rpaphp.h # 2004/06/08 15:53:59-07:00 lxiep@us.ibm.com +22 -6 # PCI Hotplug: rpaphp.patch -- multi-function devices not handled correctly # # drivers/pci/hotplug/rpadlpar_core.c # 2004/06/08 15:53:59-07:00 lxiep@us.ibm.com +5 -23 # PCI Hotplug: rpaphp.patch -- multi-function devices not handled correctly # # ChangeSet # 2004/06/11 17:15:00-07:00 bjorn.helgaas@hp.com # [PATCH] PCI: clarify pci.txt wrt IRQ allocation # # I think we should make it explicit that PCI IRQs shouldn't be relied # upon until after pci_enable_device(). This patch: # # ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.7-rc3/2.6.7-rc3-mm1/broken-out/bk-acpi.patch # # does PCI interrupt routing (based on ACPI _PRT) and IRQ allocation # at pci_enable_device()-time. # # (To avoid breaking things in 2.6, the above patch still allocates # all PCI IRQs in pci_acpi_init(), before any drivers are initialized. # But that shouldn't be needed by correct drivers, and I'd like to # remove it in 2.7.) # # # Signed-off-by: Greg Kroah-Hartman # # Documentation/pci.txt # 2004/06/11 14:09:58-07:00 bjorn.helgaas@hp.com +3 -2 # PCI: clarify pci.txt wrt IRQ allocation # # arch/ia64/kernel/unwind.c # 2004/06/11 17:13:56-07:00 kaos@sgi.com +20 -15 # ia64: Remove warnings when unwind debug is turned on # # ChangeSet # 2004/06/11 17:06:39-07:00 david-b@pacbell.net # [PATCH] USB: usb on big endian, ehci needs a byteswap # # Adds a missing byteswap that would affect interrupt transfers # with EHCI on big-endian platforms, like Rick's MIPS-4km uClinux. # Needed for external hubs, and then likely for mice, keyboards, # and so on. # # From: Rick Sewill # Signed-off-by: David Brownell # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/host/ehci-sched.c # 2004/06/11 06:09:39-07:00 david-b@pacbell.net +1 -1 # USB: usb on big endian, ehci needs a byteswap # # ChangeSet # 2004/06/11 17:06:09-07:00 david-b@pacbell.net # [PATCH] USB: retry string fetches on ZLPs not just STALLs # # This matches the behavior for other descriptor fetches. # # Signed-off-by: David Brownell # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/core/message.c # 2004/06/11 04:49:33-07:00 david-b@pacbell.net +2 -2 # USB: retry string fetches on ZLPs not just STALLs # # ChangeSet # 2004/06/11 17:05:38-07:00 david-b@pacbell.net # [PATCH] USB: usbnet shouldn't oops on cdc error path # # If the string descriptor fetch works, no problem. Else # make the disconnect() logic -- newly called because of # "recent" changes to interface claiming logic -- use its # fast cleanup path, since we're still not fully set up yet. # # Should resolve OSDL bugid 2714; please merge. # # Signed-off-by: David Brownell # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/net/usbnet.c # 2004/06/10 23:55:54-07:00 david-b@pacbell.net +1 -0 # USB: usbnet shouldn't oops on cdc error path # # ChangeSet # 2004/06/11 17:05:08-07:00 david-b@pacbell.net # [PATCH] USB: usbtest just uses module_param() # # This prevents some warnings during modprobe. # # Signed-off-by: David Brownell # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/misc/usbtest.c # 2004/06/11 00:06:34-07:00 david-b@pacbell.net +8 -8 # USB: usbtest just uses module_param() # # ChangeSet # 2004/06/11 16:52:33-07:00 thoffman@arnor.net # [PATCH] USB: ATI Remote driver update # # Here are some contributed improvements for the ATI remote driver. # # I submitted the driver and it was accepted several months ago. # Since then a few people have sent me patches and suggestions. # # This patch adds two things: # # (1) support for the "Lola" X10 remote, sent to me by # Seth Cohn # # (2) key autorepeat support, sent to me by # Vincent Vanackere # # The key autorepeat support has been tested by me, but the Lola support # has not, as I don't have the hardware. # # Thanks to Seth and Vincent, with my apologies for taking so long to # forward their improvements along. # # # Signed-off-by: Torrey Hoffman # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/input/ati_remote.c # 2004/06/08 17:12:09-07:00 thoffman@arnor.net +42 -12 # USB: ATI Remote driver update # # drivers/usb/input/Kconfig # 2004/06/09 15:24:29-07:00 thoffman@arnor.net +8 -6 # USB: ATI Remote driver update # # ChangeSet # 2004/06/11 16:51:56-07:00 stern@rowland.harvard.edu # [PATCH] USB: Mark devices as NOTATTACHED as soon as possible # # This patch implements something we've been lacking for a long time: a way # to mark devices as USB_STATE_NOTATTACHED as soon as we know that they're # gone. The usb_device->state member is no longer protected by the # ->serialize semaphore; instead there's a new private spinlock. Usbcore # routines should no longer set ->state directly; instead they should use # the new utility routine usb_set_device_state(). There are protections # against changing states while devices are being added or removed. # # Change assignments to udev->state into calls of # usb_set_device_state(). # # Add new private device_state_lock to the hub driver, along # with usb_set_device_state() and recursively_mark_NOTATTACHED(). # # Acquire the new spinlock while adding or removing children[] # pointers. # # When disabling a port that has a child device, mark the child # as NOTATTACHED. # # You mentioned once having tried to do something like this and running into # trouble. Take a good look and let me know if you see any difficulties # here. # # # Signed-off-by: Alan Stern # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/core/usb.h # 2004/06/09 06:52:00-07:00 stern@rowland.harvard.edu +3 -0 # USB: Mark devices as NOTATTACHED as soon as possible # # drivers/usb/core/message.c # 2004/06/09 06:50:10-07:00 stern@rowland.harvard.edu +4 -4 # USB: Mark devices as NOTATTACHED as soon as possible # # drivers/usb/core/hub.c # 2004/06/09 07:16:54-07:00 stern@rowland.harvard.edu +85 -12 # USB: Mark devices as NOTATTACHED as soon as possible # # drivers/usb/core/hcd.c # 2004/06/09 06:46:56-07:00 stern@rowland.harvard.edu +2 -2 # USB: Mark devices as NOTATTACHED as soon as possible # # ChangeSet # 2004/06/11 16:24:02-07:00 davidm@tiger.hpl.hp.com # ia64: Update defconfig # # arch/ia64/defconfig # 2004/06/11 16:23:55-07:00 davidm@tiger.hpl.hp.com +17 -6 # Update # # arch/arm/mach-clps7500/time.c # 2004/06/11 14:14:12-07:00 dsaxena@omelas.(none) +0 -0 # Rename: include/asm-arm/arch-cl7500/time.h -> arch/arm/mach-clps7500/time.c # # BitKeeper/deleted/.del-time.c~531bda1d3ed195a5 # 2004/06/11 14:12:46-07:00 dsaxena@omelas.(none) +0 -0 # Delete: arch/arm/mach-adifcc/time.c # # arch/arm/mach-adifcc/time.c # 2004/06/11 14:10:55-07:00 dsaxena@omelas.(none) +0 -0 # Rename: include/asm-arm/arch-adifcc/time.h -> arch/arm/mach-adifcc/time.c # # ChangeSet # 2004/06/11 11:32:29-07:00 kaos@sgi.com # [PATCH] ia64: Remove warnings when unwind debug is turned on # # Turning on UNW_DEBUG generates warnings for incorrect number of # parameters for formats and several cases of "suggest explicit braces to # avoid ambiguous `else'", because UNW_DPRINT contains an if statement. # # Signed-off-by: Keith Owens # Signed-off-by: David Mosberger # # ChangeSet # 2004/06/10 20:00:01-04:00 margitsw@t-online.de # [PATCH] prism54: White space and indentation # # 2004-05-29 Margit Schubert-While # # * White space and indentation patch # # ChangeSet # 2004/06/10 19:59:53-04:00 margitsw@t-online.de # [PATCH] prism54: Fix typo # # 2004-05-29 Margit Schubert-While # # * isl_ioctl.c : Fix typo # # ChangeSet # 2004/06/10 19:59:45-04:00 margitsw@t-online.de # [PATCH] prism54: Fix channel stats, bump version to 1.2 # # 2004-05-20 Aurelien Alleaume # # * islpci_eth.c : use dev_kfree_skb_irq instead of dev_kfree_skb where needed. # # * isl_ioctl.c : report channel instead of frequency in scan. # # * islpci_hotplug.c : bump version to 1.2 # # ChangeSet # 2004/06/10 19:59:36-04:00 margitsw@t-online.de # [PATCH] prism54: Reduce module verbosity # # 2004-05-01 Margit Schubert-While # # * Reduce module verbosity # # ChangeSet # 2004/06/10 19:59:28-04:00 margitsw@t-online.de # [PATCH] prism54: Align skb patch # # * islpci_eth.c, islpci_dev.c : Align skb->data unconditonally after # allocation. This would appear to improve RX rate # # ChangeSet # 2004/06/10 19:59:20-04:00 margitsw@t-online.de # [PATCH] prism54: Add likely/unlikely, KO wds completely # # * islpci_mgt.h : Change init_wds definition # # * islpci_eth.c : Do some likely/unlikely # # ChangeSet # 2004/06/10 19:59:11-04:00 margitsw@t-online.de # [PATCH] prism54: Don't allow mib reads while unconfigured # # 004-04-17 Aurelien Alleaume # # * oid_mgt.c, isl_ioctl.c : Cleanup. Prevented real oid reading # before the card is configured with mib values (might be # related to # bug #53). # # ChangeSet # 2004/06/10 19:59:03-04:00 margitsw@t-online.de # [PATCH] prism54: Fix bug 77, strengthened oid txn # # 2004-04-09 Aurelien Alleaume # # * oid_mgt.c, isl_ioctl.c : Cleanups. Bug #77. Minor stuffs. # # * islpci_mgt.c (islpci_mgt_transaction) : enforce serialization # in oid transaction. lindent.sh. # # * islpci_mgt.c (islpci_mgt_transaction) : Strengthened oid transaction. # # ChangeSet # 2004/06/10 19:58:55-04:00 margitsw@t-online.de # [PATCH] prism54: Fix bugs 39/73 # # 2004-04-07 Margit Schubert-While # # * Bugs 39 and 73 # # ChangeSet # 2004/06/10 19:58:46-04:00 margitsw@t-online.de # [PATCH] prism54: Fix bugs 74/75 # # 2004-03-22 Aurelien Alleaume # # * oid_mgt.c, isl_ioctl.c : Minor bugfixes : #74 and #75. # # ChangeSet # 2004/06/10 19:38:59-04:00 bunk@fs.tum.de # [PATCH] add NAPI help texts # # NAPI seems to be so self-explaining that no help texts are needed. ;-) # # I combined the two help texts that were at NAPI options, and added them # to all NAPI options. # # ChangeSet # 2004/06/10 19:37:53-04:00 rmk@arm.linux.org.uk # [PATCH] add ARM smc91x driver # # ChangeSet # 2004/06/10 19:58:38-04:00 margitsw@t-online.de # [PATCH] prism54: Fix endian patch # # * Split out patch islpci_eth.c : # * Fix endian problem (bug 74/75 related) # # ChangeSet # 2004/06/10 20:52:50-04:00 jgarzik@pobox.com # [netdrvr acenic] remove unneeded ifdefs # # ChangeSet # 2004/06/10 20:19:03-04:00 shemminger@osdl.org # [PATCH] fix oops from acenic ethtool # # Fix the following OOPS that happens when doing ifup on FC-2 # with 2.6.7 in acenic and a security hole due to missing capable(NET_ADMIN), # by replacing private ethtool handling with ethtool_ops. # # (Yes, Jes because of DEV_ETHTOOL_OPS define it will still work # on ancient kernels.) # # ChangeSet # 2004/06/10 19:58:30-04:00 margitsw@t-online.de # [PATCH] prism54: Kernel compatibility # # 2004-03-20 Margit Schubert-While # # * isl_38xx.[ch], isl_ioctl.c, islpci_dev.[ch], islpci_eth.c # islpci_hotplug.c, islpci_mgt.[ch], oid_mgt.c, prismcompat.h: # Adopt new prism54 kernel compatibility. # Remove remaining kernel version ifdefs. # # ChangeSet # 2004/06/10 19:37:01-04:00 akpm@osdl.org # [PATCH] fealnx-mac-address-and-other-issues.patch # # (resend - I need to get this out of my tree my one means or another..) # # # From: "SuD (Alex)" # # I recently was given a surecom 10/100 ethernet card and found that i could # not change Mac address for it as other driver/devices allow. I tried to # implement the missing feature and noticed that the device is quite peculiar # (or either my system is broken), when trying to fill mac address registers # (no matter whether io_ops is set): - If I write a byte (writeb) to an even # i/o address it seems like actually a word was written (the next byte is set # to 0). - If I write a byte to an odd i/o address my pc gets bad freezed. # # That made think of writing 16bit words (writew) for the memory address, as # opposed to what most driver examples do. It works for me (I hope i set the # lines at the right place in device_open function after the device is # reset). I hope the code is clean enough and does not mess with byte # ordering. This is the patch (this time against 2.6.5): # # (akpm: Is this right on big-endian?) # # drivers/net/acenic.c # 2004/06/10 20:52:44-04:00 jgarzik@pobox.com +0 -6 # [netdrvr acenic] remove unneeded ifdefs # # drivers/net/acenic.h # 2004/06/04 17:31:46-04:00 shemminger@osdl.org +0 -1 # fix oops from acenic ethtool # # drivers/net/acenic.c # 2004/06/04 17:31:46-04:00 shemminger@osdl.org +127 -121 # fix oops from acenic ethtool # # drivers/net/wireless/prism54/oid_mgt.h # 2004/05/28 08:06:38-04:00 margitsw@t-online.de +1 -1 # prism54: White space and indentation (resend) # # drivers/net/wireless/prism54/oid_mgt.c # 2004/05/28 09:12:49-04:00 margitsw@t-online.de +7 -7 # prism54: White space and indentation (resend) # # drivers/net/wireless/prism54/islpci_mgt.c # 2004/05/28 09:12:49-04:00 margitsw@t-online.de +42 -42 # prism54: White space and indentation (resend) # # drivers/net/wireless/prism54/islpci_eth.c # 2004/05/28 09:49:41-04:00 margitsw@t-online.de +8 -8 # prism54: White space and indentation (resend) # # drivers/net/wireless/prism54/islpci_dev.h # 2004/05/28 08:25:30-04:00 margitsw@t-online.de +1 -1 # prism54: White space and indentation (resend) # # drivers/net/wireless/prism54/isl_ioctl.c # 2004/05/28 09:49:41-04:00 margitsw@t-online.de +28 -34 # prism54: White space and indentation (resend) # # drivers/net/wireless/prism54/isl_ioctl.c # 2004/05/28 09:33:42-04:00 margitsw@t-online.de +1 -1 # prism54: Fix typo # # drivers/net/wireless/prism54/islpci_hotplug.c # 2004/05/28 09:49:41-04:00 margitsw@t-online.de +1 -1 # prism54: Fix channel stats, bump version to 1.2 (resend) # # drivers/net/wireless/prism54/islpci_eth.c # 2004/05/28 09:49:41-04:00 margitsw@t-online.de +3 -3 # prism54: Fix channel stats, bump version to 1.2 (resend) # # drivers/net/wireless/prism54/isl_ioctl.c # 2004/05/28 09:49:41-04:00 margitsw@t-online.de +2 -2 # prism54: Fix channel stats, bump version to 1.2 (resend) # # drivers/net/wireless/prism54/islpci_dev.c # 2004/06/05 08:11:34-04:00 margitsw@t-online.de +3 -1 # prism54: Reduce module verbosity (resend) # # drivers/net/wireless/prism54/islpci_eth.c # 2004/06/05 08:09:41-04:00 margitsw@t-online.de +1 -0 # prism54: Align skb patch (resend) # # drivers/net/wireless/prism54/islpci_dev.c # 2004/06/05 08:09:41-04:00 margitsw@t-online.de +1 -0 # prism54: Align skb patch (resend) # # drivers/net/wireless/prism54/islpci_mgt.h # 2004/05/28 09:33:42-04:00 margitsw@t-online.de +1 -1 # prism54: Add likely/unlikely, KO wds completely (resend) # # drivers/net/wireless/prism54/islpci_eth.c # 2004/05/28 09:33:42-04:00 margitsw@t-online.de +9 -8 # prism54: Add likely/unlikely, KO wds completely (resend) # # drivers/net/wireless/prism54/oid_mgt.c # 2004/06/05 08:03:15-04:00 margitsw@t-online.de +40 -21 # prism54: Don't allow mib reads while unconfigured (resend) # # drivers/net/wireless/prism54/islpci_mgt.c # 2004/06/05 08:03:15-04:00 margitsw@t-online.de +5 -3 # prism54: Don't allow mib reads while unconfigured (resend) # # drivers/net/wireless/prism54/islpci_dev.c # 2004/06/05 08:03:15-04:00 margitsw@t-online.de +3 -1 # prism54: Don't allow mib reads while unconfigured (resend) # # drivers/net/wireless/prism54/isl_ioctl.h # 2004/06/05 08:03:15-04:00 margitsw@t-online.de +0 -1 # prism54: Don't allow mib reads while unconfigured (resend) # # drivers/net/wireless/prism54/isl_ioctl.c # 2004/06/05 08:03:15-04:00 margitsw@t-online.de +5 -31 # prism54: Don't allow mib reads while unconfigured (resend) # # drivers/net/wireless/prism54/oid_mgt.c # 2004/05/28 09:08:01-04:00 margitsw@t-online.de +2 -6 # prism54: Fix bug 77, strengthened oid txn (resend) # # drivers/net/wireless/prism54/islpci_mgt.c # 2004/05/28 09:08:01-04:00 margitsw@t-online.de +35 -26 # prism54: Fix bug 77, strengthened oid txn (resend) # # drivers/net/wireless/prism54/isl_ioctl.c # 2004/05/28 09:08:01-04:00 margitsw@t-online.de +13 -76 # prism54: Fix bug 77, strengthened oid txn (resend) # # drivers/net/wireless/prism54/islpci_dev.c # 2004/06/05 07:57:11-04:00 margitsw@t-online.de +2 -2 # prism54: Fix bugs 39/73 (resend) # # drivers/net/wireless/prism54/oid_mgt.c # 2004/05/28 08:43:01-04:00 margitsw@t-online.de +2 -2 # prism54: Fix bugs 74/75 (resend) # # drivers/net/wireless/prism54/isl_ioctl.c # 2004/05/28 08:43:01-04:00 margitsw@t-online.de +1 -0 # prism54: Fix bugs 74/75 (resend) # # drivers/net/wireless/prism54/islpci_eth.c # 2004/05/28 08:25:30-04:00 margitsw@t-online.de +16 -16 # prism54: Fix endian patch (resend) # # drivers/net/wireless/prism54/prismcompat.h # 2004/06/05 07:45:32-04:00 margitsw@t-online.de +46 -0 # prism54: Kernel compatibility (resend) # # drivers/net/wireless/prism54/prismcompat.h # 2004/06/05 07:45:32-04:00 margitsw@t-online.de +0 -0 # BitKeeper file /spare/repo/netdev-2.6/prism54/drivers/net/wireless/prism54/prismcompat.h # # drivers/net/wireless/prism54/oid_mgt.c # 2004/06/05 07:44:14-04:00 margitsw@t-online.de +1 -0 # prism54: Kernel compatibility (resend) # # drivers/net/wireless/prism54/islpci_mgt.h # 2004/06/05 07:44:14-04:00 margitsw@t-online.de +0 -9 # prism54: Kernel compatibility (resend) # # drivers/net/wireless/prism54/islpci_mgt.c # 2004/06/05 07:44:14-04:00 margitsw@t-online.de +1 -15 # prism54: Kernel compatibility (resend) # # drivers/net/wireless/prism54/islpci_hotplug.c # 2004/06/05 07:44:14-04:00 margitsw@t-online.de +1 -0 # prism54: Kernel compatibility (resend) # # drivers/net/wireless/prism54/islpci_eth.c # 2004/06/05 07:44:14-04:00 margitsw@t-online.de +1 -0 # prism54: Kernel compatibility (resend) # # drivers/net/wireless/prism54/islpci_dev.h # 2004/06/05 07:44:14-04:00 margitsw@t-online.de +0 -20 # prism54: Kernel compatibility (resend) # # drivers/net/wireless/prism54/islpci_dev.c # 2004/06/05 07:45:32-04:00 margitsw@t-online.de +121 -27 # prism54: Kernel compatibility (resend) # # drivers/net/wireless/prism54/isl_ioctl.c # 2004/06/05 07:44:14-04:00 margitsw@t-online.de +1 -1 # prism54: Kernel compatibility (resend) # # drivers/net/wireless/prism54/isl_38xx.h # 2004/06/05 07:45:32-04:00 margitsw@t-online.de +0 -10 # prism54: Kernel compatibility (resend) # # drivers/net/wireless/prism54/isl_38xx.c # 2004/06/05 07:45:32-04:00 margitsw@t-online.de +2 -132 # prism54: Kernel compatibility (resend) # # drivers/net/tulip/Kconfig # 2004/06/04 11:16:07-04:00 bunk@fs.tum.de +11 -4 # add NAPI help texts # # drivers/net/Kconfig # 2004/06/04 11:18:14-04:00 bunk@fs.tum.de +70 -0 # add NAPI help texts # # drivers/net/arm/smc91x.h # 2004/05/29 08:04:43-04:00 rmk@arm.linux.org.uk +829 -0 # Re: smc91x driver # # drivers/net/arm/smc91x.c # 2004/05/29 07:57:20-04:00 rmk@arm.linux.org.uk +2171 -0 # Re: smc91x driver # # drivers/net/arm/smc91x.h # 2004/05/29 08:04:43-04:00 rmk@arm.linux.org.uk +0 -0 # BitKeeper file /spare/repo/netdev-2.6/misc/drivers/net/arm/smc91x.h # # drivers/net/arm/smc91x.c # 2004/05/29 07:57:20-04:00 rmk@arm.linux.org.uk +0 -0 # BitKeeper file /spare/repo/netdev-2.6/misc/drivers/net/arm/smc91x.c # # drivers/net/arm/Makefile # 2003/07/06 11:12:19-04:00 rmk@arm.linux.org.uk +1 -0 # Re: smc91x driver # # drivers/net/arm/Kconfig # 2003/09/28 11:03:12-04:00 rmk@arm.linux.org.uk +17 -0 # Re: smc91x driver # # drivers/net/fealnx.c # 2004/04/23 01:29:23-04:00 akpm@osdl.org +5 -0 # fealnx-mac-address-and-other-issues.patch # # ChangeSet # 2004/06/10 16:34:14-07:00 kenneth.w.chen@intel.com # [PATCH] ia64: fix race in fsys_bubble_down to avoid fp-register corruption # # The fast system-call fall-back-path has a race: it reads PSR, modifies # some bits, then writes back the new PSR. Unfortunately, the contents # of PSR may change between reading and writing it. For example, an # interrupt could occur which could trigger a context-switch. The # context-switch might in turn flush the floating-point-high (FPH) # partition to memory, clear PSR.MFH, and set PSR.DFH. To prevent this # race, the patch below turns off PSR.I before reading PSR. # # This fixes a floating-point corruption problem that was observed on a # system with a libc which has the fast system-call support enabled. # # The performance impact is minimal (on the order of a handful of cycles). # # Signed-off-by: Kevin Tian # Signed-off-by: Ken Chen # Signed-off-by: Asit Mallick # Signed-off-by: David Mosberger # # arch/ia64/kernel/gate.S # 2004/06/09 05:36:21-07:00 kenneth.w.chen@intel.com +4 -2 # ia64: fix race in fsys_bubble_down # # arch/ia64/kernel/fsys.S # 2004/06/09 05:11:54-07:00 kenneth.w.chen@intel.com +2 -1 # ia64: fix race in fsys_bubble_down # # ChangeSet # 2004/06/10 13:25:26-07:00 Robert.Picco@hp.com # [PATCH] ia64: mark non-existent NUMA-nodes as offline # # I found a problem with HP NUMA configuration in 2.6.7-rc3-mm1. The # node_online_map is incorrect because of actions taken by # reassign_cpu_only_nodes in arch/ia64/mm/discontig.c. The mm1 patch # which changes the mempolicy for the init_task uses this invalid # node_online_map and eventually uses a non-existent node's zonelist # when calling __alloc_pages. # # The patch below takes care of this issue. It puts the non-existent # nodes offline. # # Signed-off-by: David Mosberger # # arch/ia64/mm/discontig.c # 2004/06/09 15:44:02-07:00 Robert.Picco@hp.com +3 -0 # ia64: mark non-existent NUMA-nodes as offline # # ChangeSet # 2004/06/10 12:52:02-07:00 greg@kroah.com # I2C: sparse cleanups for drivers/i2c/* # # Signed-off-by: Greg Kroah-Hartman # # drivers/i2c/i2c-dev.c # 2004/06/10 05:51:18-07:00 greg@kroah.com +3 -4 # I2C: sparse cleanups for drivers/i2c/* # # Signed-off-by: Greg Kroah-Hartman # # drivers/i2c/chips/it87.c # 2004/06/10 05:51:18-07:00 greg@kroah.com +4 -1 # I2C: sparse cleanups for drivers/i2c/* # # Signed-off-by: Greg Kroah-Hartman # # ChangeSet # 2004/06/10 12:09:46-07:00 greg@kroah.com # USB: fix up dumb int_user_arg variable name as pointed out by Al Viro. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/misc/auerswald.c # 2004/06/10 05:08:46-07:00 greg@kroah.com +7 -7 # USB: fix up dumb int_user_arg variable name as pointed out by Al Viro. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/input/hiddev.c # 2004/06/10 05:08:46-07:00 greg@kroah.com +4 -5 # USB: fix up dumb int_user_arg variable name as pointed out by Al Viro. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/class/audio.c # 2004/06/10 05:08:46-07:00 greg@kroah.com +32 -32 # USB: fix up dumb int_user_arg variable name as pointed out by Al Viro. # # Signed-off-by: Greg Kroah-Hartman # # ChangeSet # 2004/06/10 11:40:08-07:00 greg@kroah.com # USB: sparse cleanups for the whole driver/usb/* tree. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/serial/whiteheat.c # 2004/06/10 04:39:09-07:00 greg@kroah.com +3 -2 # USB: sparse cleanups for the whole driver/usb/* tree. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/serial/kobil_sct.c # 2004/06/10 04:39:09-07:00 greg@kroah.com +5 -4 # USB: sparse cleanups for the whole driver/usb/* tree. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/serial/kl5kusb105.c # 2004/06/10 04:39:09-07:00 greg@kroah.com +7 -8 # USB: sparse cleanups for the whole driver/usb/* tree. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/serial/io_ti.c # 2004/06/10 04:39:09-07:00 greg@kroah.com +3 -3 # USB: sparse cleanups for the whole driver/usb/* tree. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/serial/io_edgeport.c # 2004/06/10 04:39:09-07:00 greg@kroah.com +7 -8 # USB: sparse cleanups for the whole driver/usb/* tree. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/serial/ftdi_sio.c # 2004/06/10 04:39:09-07:00 greg@kroah.com +6 -6 # USB: sparse cleanups for the whole driver/usb/* tree. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/net/rtl8150.c # 2004/06/10 04:39:09-07:00 greg@kroah.com +15 -15 # USB: sparse cleanups for the whole driver/usb/* tree. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/misc/legousbtower.c # 2004/06/10 04:39:09-07:00 greg@kroah.com +4 -4 # USB: sparse cleanups for the whole driver/usb/* tree. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/misc/auerswald.c # 2004/06/10 04:39:09-07:00 greg@kroah.com +8 -6 # USB: sparse cleanups for the whole driver/usb/* tree. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/media/w9968cf.h # 2004/06/10 04:39:09-07:00 greg@kroah.com +1 -1 # USB: sparse cleanups for the whole driver/usb/* tree. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/media/w9968cf.c # 2004/06/10 04:39:09-07:00 greg@kroah.com +24 -23 # USB: sparse cleanups for the whole driver/usb/* tree. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/media/vicam.c # 2004/06/10 04:39:09-07:00 greg@kroah.com +14 -18 # USB: sparse cleanups for the whole driver/usb/* tree. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/media/usbvideo.c # 2004/06/10 04:39:09-07:00 greg@kroah.com +2 -2 # USB: sparse cleanups for the whole driver/usb/* tree. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/media/stv680.c # 2004/06/10 04:39:09-07:00 greg@kroah.com +1 -1 # USB: sparse cleanups for the whole driver/usb/* tree. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/media/se401.c # 2004/06/10 04:39:09-07:00 greg@kroah.com +1 -1 # USB: sparse cleanups for the whole driver/usb/* tree. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/media/pwc-if.c # 2004/06/10 04:39:09-07:00 greg@kroah.com +2 -2 # USB: sparse cleanups for the whole driver/usb/* tree. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/media/ov511.h # 2004/06/10 04:39:09-07:00 greg@kroah.com +1 -1 # USB: sparse cleanups for the whole driver/usb/* tree. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/media/ov511.c # 2004/06/10 04:39:09-07:00 greg@kroah.com +1 -1 # USB: sparse cleanups for the whole driver/usb/* tree. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/media/dabusb.c # 2004/06/10 04:39:09-07:00 greg@kroah.com +5 -5 # USB: sparse cleanups for the whole driver/usb/* tree. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/input/hiddev.c # 2004/06/10 04:39:09-07:00 greg@kroah.com +26 -24 # USB: sparse cleanups for the whole driver/usb/* tree. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/input/hid-core.c # 2004/06/10 04:39:09-07:00 greg@kroah.com +3 -1 # USB: sparse cleanups for the whole driver/usb/* tree. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/image/mdc800.c # 2004/06/10 04:39:09-07:00 greg@kroah.com +3 -3 # USB: sparse cleanups for the whole driver/usb/* tree. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/class/audio.c # 2004/06/10 04:39:09-07:00 greg@kroah.com +36 -30 # USB: sparse cleanups for the whole driver/usb/* tree. # # Signed-off-by: Greg Kroah-Hartman # # ChangeSet # 2004/06/10 09:48:09-07:00 rtjohnso@eecs.berkeley.edu # [PATCH] PATCH: 2.6.7-rc3 drivers/usb/core/devio.c: user/kernel pointer bugs # # Since ctrl is copied in from userspace, ctrl.data cannot safely be # dereferenced. Let me know if you have any questions or if I've made # a mistake. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/core/devio.c # 2004/06/09 05:49:50-07:00 rtjohnso@eecs.berkeley.edu +2 -2 # PATCH: 2.6.7-rc3 drivers/usb/core/devio.c: user/kernel pointer bugs # # ChangeSet # 2004/06/10 09:36:26-07:00 greg@kroah.com # Driver Core: more whitespace fixups # # This catches the files I had to do by hand as Dmitry's patch differed from my tree. # # Signed-off-by: Dmitry Torokhov # Signed-off-by: Greg Kroah-Hartman # # drivers/base/bus.c # 2004/06/10 02:35:56-07:00 greg@kroah.com +64 -65 # Driver Core: more whitespace fixups # # This catches the files I had to do by hand as Dmitry's patch differed from my tree. # # Signed-off-by: Dmitry Torokhov # Signed-off-by: Greg Kroah-Hartman # # ChangeSet # 2004/06/10 09:34:27-07:00 dtor_core@ameritech.net # [PATCH] Driver Core: Whitespace fixes # # Whitespace and formatting changes (a,b,c -> a, b, c) in drivers/base # # Signed-off-by: Dmitry Torokhov # Signed-off-by: Greg Kroah-Hartman # # drivers/base/sys.c # 2004/06/09 23:34:24-07:00 dtor_core@ameritech.net +51 -51 # Driver Core: Whitespace fixes # # drivers/base/power/sysfs.c # 2004/06/09 23:34:24-07:00 dtor_core@ameritech.net +9 -9 # Driver Core: Whitespace fixes # # drivers/base/power/suspend.c # 2004/06/09 23:34:24-07:00 dtor_core@ameritech.net +21 -21 # Driver Core: Whitespace fixes # # drivers/base/power/shutdown.c # 2004/06/09 23:34:24-07:00 dtor_core@ameritech.net +9 -9 # Driver Core: Whitespace fixes # # drivers/base/power/runtime.c # 2004/06/09 23:34:24-07:00 dtor_core@ameritech.net +4 -4 # Driver Core: Whitespace fixes # # drivers/base/power/resume.c # 2004/06/09 23:34:24-07:00 dtor_core@ameritech.net +6 -6 # Driver Core: Whitespace fixes # # drivers/base/power/power.h # 2004/06/09 23:34:24-07:00 dtor_core@ameritech.net +4 -4 # Driver Core: Whitespace fixes # # drivers/base/power/main.c # 2004/06/09 23:34:24-07:00 dtor_core@ameritech.net +7 -7 # Driver Core: Whitespace fixes # # drivers/base/platform.c # 2004/06/09 23:34:24-07:00 dtor_core@ameritech.net +9 -9 # Driver Core: Whitespace fixes # # drivers/base/node.c # 2004/06/09 23:34:24-07:00 dtor_core@ameritech.net +7 -7 # Driver Core: Whitespace fixes # # drivers/base/interface.c # 2004/06/09 23:34:24-07:00 dtor_core@ameritech.net +9 -9 # Driver Core: Whitespace fixes # # drivers/base/init.c # 2004/06/09 23:34:24-07:00 dtor_core@ameritech.net +2 -2 # Driver Core: Whitespace fixes # # drivers/base/firmware_class.c # 2004/06/09 23:34:24-07:00 dtor_core@ameritech.net +5 -5 # Driver Core: Whitespace fixes # # drivers/base/firmware.c # 2004/06/09 23:34:24-07:00 dtor_core@ameritech.net +3 -3 # Driver Core: Whitespace fixes # # drivers/base/driver.c # 2004/06/09 23:34:24-07:00 dtor_core@ameritech.net +8 -8 # Driver Core: Whitespace fixes # # drivers/base/core.c # 2004/06/09 23:34:24-07:00 dtor_core@ameritech.net +23 -23 # Driver Core: Whitespace fixes # # drivers/base/class_simple.c # 2004/06/09 23:34:24-07:00 dtor_core@ameritech.net +6 -6 # Driver Core: Whitespace fixes # # drivers/base/base.h # 2004/06/09 23:34:24-07:00 dtor_core@ameritech.net +3 -2 # Driver Core: Whitespace fixes # # ChangeSet # 2004/06/10 09:25:58-07:00 dtor_core@ameritech.net # [PATCH] Driver Core: Suppress platform device suffixes # # Do not add numeric suffix to platform device name if device id is set to # -1. This can be used when there can be only one instance of a device # (like i8042). # # Signed-off-by: Dmitry Torokhov # Signed-off-by: Greg Kroah-Hartman # # drivers/base/platform.c # 2004/06/09 23:33:27-07:00 dtor_core@ameritech.net +4 -1 # Driver Core: Suppress platform device suffixes # # ChangeSet # 2004/06/09 11:14:30-07:00 greg@kroah.com # USB: crap, I misapplied a patch with the wrong level # # This gets rid of usb/host and puts the file in the proper drivers/usb/host # directory. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/host/ohci-lh7a404.c # 2004/06/09 04:12:00-07:00 greg@kroah.com +0 -0 # USB: crap, I misapplied a patch with the wrong level # # This gets rid of usb/host and puts the file in the proper drivers/usb/host # directory. # # Signed-off-by: Greg Kroah-Hartman # # ChangeSet # 2004/06/09 11:10:52-07:00 stern@rowland.harvard.edu # [PATCH] USB: Update root-hub code for the ohci-lh7a404 driver # # On Wed, 9 Jun 2004, David Brownell wrote: # # > Needs an update for ohci-lh7a404.c too ... # # I didn't even know this driver existed! Where did usb/host/* come from? # # # # Signed-off-by: Alan Stern # Signed-off-by: Greg Kroah-Hartman # # usb/host/ohci-lh7a404.c # 2004/06/09 06:09:47-07:00 stern@rowland.harvard.edu +1 -3 # USB: Update root-hub code for the ohci-lh7a404 driver # # ChangeSet # 2004/06/09 11:10:09-07:00 stern@rowland.harvard.edu # [PATCH] USB: Minor tidying up of hub driver # # After my last few changesets there were a few small items that needed to # be tidied up. # # Update kerneldoc to reflect the actual operation of # usb_disconnect() and usb_new_device(). The new locking # requirements are listed too, though they aren't all # implemented yet. # # Fulfill the new locking requirement in hcd_panic(). # # Remove unneeded local variables to conserve stack space in # usb_disconnect(), which calls itself recursively. # # In hub_port_connect_change(), store the parent's children[] # pointer as late as possible and don't lock the new device until # then (that's when it becomes globally accessible). This will # minimize the time that the not-fully-configured device structure # is visible to other parts of the kernel. # # # Signed-off-by: Alan Stern # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/core/hub.c # 2004/06/09 05:20:00-07:00 stern@rowland.harvard.edu +25 -23 # USB: Minor tidying up of hub driver # # drivers/usb/core/hcd.c # 2004/06/09 05:03:06-07:00 stern@rowland.harvard.edu +2 -0 # USB: Minor tidying up of hub driver # # ChangeSet # 2004/06/09 11:09:31-07:00 stern@rowland.harvard.edu # [PATCH] USB: Fix bus-list root-hub race # # There are a few places where the code enumerates through all the USB # devices on all the buses, starting with each bus's root hub and working # down. However a bus does not always have a root hub, and the code does # not check that the root_hub pointer is non-NULL. This patch fixes the # problem, using the usb_bus_list_lock semaphore to synchronize access when # root hubs are added or removed. # # In addition it seemed like a good idea to minimize the time that a # non-fully-configured root hub is accessible through the bus's pointer. So # this patch delays setting the pointer and holds usb_bus_list_lock while # configuring a root hub. # # It turned out that a bunch of things needed to be changed for all this to # work: # # Check for NULL root_hub pointer in usb_device_read() and # usb_find_device(). # # Pass the root-hub device as a separate argument to # hcd_register_root(). # # Make usb_register_root_hub() acquire the usb_bus_list_lock and # set the bus->root_hub pointer. # # For consistency's sake, move the place where the children[] # pointer to a non-root-hub device gets stored as close as possible # to where usb_new_device() is called. # # Make usb_disconnect() acquire the usb_bus_list_lock when removing # a root hub. # # Change usb_hcd_pci_remove() and the non-PCI host drivers so that # they call usb_disconnect() with a pointer to the bus's root_hub # pointer, not a pointer to a temporary variable. # # Change all the host controller drivers not to store the root_hub # pointer in the bus structure but instead to pass it as a new # argument to hcd_register_root(). # # I made some attempt to update the hc_sl811 driver along with the rest, but # it's pretty clear that driver won't work in the current framework. Among # other things, it never reads the root hub's device descriptor. To what # extent is the driver really supported? # # # Signed-off-by: Alan Stern # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/host/uhci-hcd.c # 2004/06/09 04:40:49-07:00 stern@rowland.harvard.edu +2 -3 # USB: Fix bus-list root-hub race # # drivers/usb/host/ohci-sa1111.c # 2004/06/09 04:40:49-07:00 stern@rowland.harvard.edu +1 -3 # USB: Fix bus-list root-hub race # # drivers/usb/host/ohci-omap.c # 2004/06/09 04:40:49-07:00 stern@rowland.harvard.edu +1 -3 # USB: Fix bus-list root-hub race # # drivers/usb/host/ohci-hcd.c # 2004/06/09 04:40:49-07:00 stern@rowland.harvard.edu +2 -3 # USB: Fix bus-list root-hub race # # drivers/usb/host/hc_sl811_rh.c # 2004/06/09 04:40:49-07:00 stern@rowland.harvard.edu +8 -2 # USB: Fix bus-list root-hub race # # drivers/usb/host/ehci-hcd.c # 2004/06/09 04:40:49-07:00 stern@rowland.harvard.edu +2 -3 # USB: Fix bus-list root-hub race # # drivers/usb/gadget/dummy_hcd.c # 2004/06/09 04:40:49-07:00 stern@rowland.harvard.edu +2 -3 # USB: Fix bus-list root-hub race # # drivers/usb/core/usb.c # 2004/06/09 04:40:49-07:00 stern@rowland.harvard.edu +2 -0 # USB: Fix bus-list root-hub race # # drivers/usb/core/hub.c # 2004/06/09 04:45:43-07:00 stern@rowland.harvard.edu +16 -7 # USB: Fix bus-list root-hub race # # drivers/usb/core/hcd.h # 2004/06/09 04:40:49-07:00 stern@rowland.harvard.edu +3 -3 # USB: Fix bus-list root-hub race # # drivers/usb/core/hcd.c # 2004/06/09 04:40:49-07:00 stern@rowland.harvard.edu +10 -3 # USB: Fix bus-list root-hub race # # drivers/usb/core/hcd-pci.c # 2004/06/09 04:40:49-07:00 stern@rowland.harvard.edu +1 -3 # USB: Fix bus-list root-hub race # # drivers/usb/core/devices.c # 2004/06/09 04:40:49-07:00 stern@rowland.harvard.edu +2 -0 # USB: Fix bus-list root-hub race # # ChangeSet # 2004/06/09 11:08:58-07:00 oliver@neukum.org # [PATCH] USB: add printer reset ioctl # # - add soft reset ioctl # # Signed-off-by: Oliver Neukum # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/class/usblp.c # 2004/06/09 10:05:10-07:00 oliver@neukum.org +10 -0 # USB: add printer reset ioctl # # ChangeSet # 2004/06/09 10:34:09-07:00 akpm@osdl.org # [PATCH] I2C: w83627hf.c build fix # # with gcc-2.95: # # drivers/i2c/chips/w83627hf.c:482: parse error before `static' # drivers/i2c/chips/w83627hf.c:502: parse error before `static' # drivers/i2c/chips/w83627hf.c: In function `show_regs_fan_1': # drivers/i2c/chips/w83627hf.c:541: warning: implicit declaration of function `show_fan' # drivers/i2c/chips/w83627hf.c: In function `w83627hf_detect': # drivers/i2c/chips/w83627hf.c:1074: `dev_attr_in0_min' undeclared (first use in this function) # drivers/i2c/chips/w83627hf.c:1074: (Each undeclared identifier is reported only once # drivers/i2c/chips/w83627hf.c:1074: for each function it appears in.) # drivers/i2c/chips/w83627hf.c: At top level: # drivers/i2c/chips/w83627hf.c:428: warning: `show_regs_in_min0' defined but not used # drivers/i2c/chips/w83627hf.c:441: warning: `store_regs_in_min0' defined but not used # # Signed-off-by: Andrew Morton # Signed-off-by: Greg Kroah-Hartman # # drivers/i2c/chips/w83627hf.c # 2004/06/08 23:10:38-07:00 akpm@osdl.org +3 -3 # I2C: w83627hf.c build fix # # ChangeSet # 2004/06/09 10:19:23-07:00 greg@kroah.com # merge i2c-2.6 into driver-2.6 trees due to problems people reported. # # drivers/i2c/chips/w83627hf.c # 2004/06/09 10:19:12-07:00 greg@kroah.com +0 -1 # merge i2c-2.6 into driver-2.6 trees due to problems people reported. # # drivers/scsi/scsi_debug.c # 2004/06/09 10:11:48-07:00 greg@kroah.com +0 -0 # Auto merged # # drivers/i2c/chips/it87.c # 2004/06/09 10:11:48-07:00 greg@kroah.com +0 -0 # Auto merged # # MAINTAINERS # 2004/06/09 10:11:47-07:00 greg@kroah.com +0 -0 # Auto merged # # ChangeSet # 2004/06/08 22:45:12-07:00 greg@kroah.com # cpuid: fix hotplug cpu remove bug for class device. # # Signed-off-by: Greg Kroah-Hartman # # arch/i386/kernel/cpuid.c # 2004/06/08 22:44:49-07:00 greg@kroah.com +12 -14 # cpuid: fix hotplug cpu remove bug for class device. # # Signed-off-by: Greg Kroah-Hartman # # drivers/base/platform.c # 2004/06/08 16:46:21-07:00 rmk@arm.linux.org.uk +86 -0 # Add platform_get_resource() # # ChangeSet # 2004/06/08 16:28:02-07:00 rmk@arm.linux.org.uk # [PATCH] Add platform_get_resource() # # This patch adds management of platform device resources to the # device model, allowing drivers to lookup resources, IRQs and DMA # numbers in the platform device resource array. We also add a # couple of functions which allow platform devices and their resources # to be registered. # # Signed-off-by: Russell King # Signed-off-by: Greg Kroah-Hartman # # include/linux/device.h # 2004/05/28 12:29:34-07:00 rmk@arm.linux.org.uk +5 -0 # Add platform_get_resource() # # ChangeSet # 2004/06/08 16:26:12-07:00 hannal@us.ibm.com # [PATCH] Add cpu hotplug support to cpuid.c # # Here is the patch that uses a cpu hotplug callback, to allow dynamic support # of cpu id for classes in sysfs. # # This patch applies on top of the one I sent out earlier that Greg included. # I do not have access to hardware that supports cpu hotswapping (virtually or not) # so have not been able to test that aspect of the patch. However, the original # functionality of listing static cpu's still works. # # Please consider for testing or inclusion. # # Signed-off-by: Hanna Linder # Signed-off-by: Greg Kroah-Hartman # # arch/i386/kernel/cpuid.c # 2004/06/08 14:31:22-07:00 hannal@us.ibm.com +48 -11 # Add cpu hotplug support to cpuid.c # # ChangeSet # 2004/06/08 16:10:24-07:00 stern@rowland.harvard.edu # [PATCH] USB: Initialize endpoint autoconfig in g_file_storage # # This one-line patch corrects a simple problem in the g_file_storage # driver. It neglected to initialize the endpoint-autoconfiguration library # before using it. Please apply. # # # Signed-off-by: Alan Stern # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/gadget/file_storage.c # 2004/06/08 04:03:07-07:00 stern@rowland.harvard.edu +1 -0 # USB: Initialize endpoint autoconfig in g_file_storage # # ChangeSet # 2004/06/08 16:09:55-07:00 david-b@pacbell.net # [PATCH] lh7a404 USB host against 2.6.7-rc2 # # Support for the Sharp LH7A404 OHCI, another non-PCI implementation. # This uses a platform_device and a workaround for a register read # problem. # # Signed-off-by: Marc Singer # Signed-off-by: David Brownell # Signed-off-by: Greg Kroah-Hartman # # usb/host/ohci-lh7a404.c # 2004/06/07 16:24:04-07:00 david-b@pacbell.net +387 -0 # lh7a404 USB host against 2.6.7-rc2 # # drivers/usb/Kconfig # 2004/06/07 09:24:04-07:00 david-b@pacbell.net +1 -1 # lh7a404 USB host against 2.6.7-rc2 # # usb/host/ohci-lh7a404.c # 2004/06/07 16:24:04-07:00 david-b@pacbell.net +0 -0 # BitKeeper file /home/greg/linux/BK/usb-2.6/usb/host/ohci-lh7a404.c # # drivers/usb/host/ohci.h # 2004/06/07 09:24:04-07:00 david-b@pacbell.net +19 -0 # lh7a404 USB host against 2.6.7-rc2 # # drivers/usb/host/ohci-q.c # 2004/06/07 09:24:04-07:00 david-b@pacbell.net +3 -3 # lh7a404 USB host against 2.6.7-rc2 # # drivers/usb/host/ohci-hub.c # 2004/06/07 09:33:47-07:00 david-b@pacbell.net +21 -21 # lh7a404 USB host against 2.6.7-rc2 # # drivers/usb/host/ohci-hcd.c # 2004/06/07 09:24:04-07:00 david-b@pacbell.net +26 -16 # lh7a404 USB host against 2.6.7-rc2 # # drivers/usb/host/ohci-dbg.c # 2004/06/07 09:24:04-07:00 david-b@pacbell.net +15 -15 # lh7a404 USB host against 2.6.7-rc2 # # ChangeSet # 2004/06/08 16:09:24-07:00 david-b@pacbell.net # [PATCH] USB: rndis (3/4) Big Endian support for gadget RNDIS # # Add byteswapping. Original version partially worked on PPC with Net2280, # this version applies to the latest RNDIS code but hasn't been retested on # big-endian. Ping should be working in at least one one direction. # # Also added a handful of other things from my BK: track suspend/resume # (to eventually implement wake-on-lan), give a better rndis error # message, and add missing declarations for PM-related OIDs (usage is # #ifdeffed out by previous patch). # # From: Jon Neal # Signed-off-by: David Brownell # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/gadget/rndis.c # 2004/06/07 11:30:16-07:00 david-b@pacbell.net +199 -163 # USB: rndis (3/4) Big Endian support for gadget RNDIS # # drivers/usb/gadget/ndis.h # 2004/06/07 11:30:16-07:00 david-b@pacbell.net +30 -0 # USB: rndis (3/4) Big Endian support for gadget RNDIS # # drivers/usb/gadget/ether.c # 2004/06/07 11:32:18-07:00 david-b@pacbell.net +28 -2 # USB: rndis (3/4) Big Endian support for gadget RNDIS # # ChangeSet # 2004/06/08 16:08:52-07:00 david-b@pacbell.net # [PATCH] USB: usb suspend/resume work better on net2280 # # This makes net2280 behave more correctly with respect to # usb suspend and resume processing. # # So for example gadget zero autoresume testing works. # # Signed-off-by: David Brownell # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/gadget/net2280.c # 2004/06/07 07:31:53-07:00 david-b@pacbell.net +17 -8 # USB: usb suspend/resume work better on net2280 # # ChangeSet # 2004/06/08 16:08:19-07:00 david-b@pacbell.net # [PATCH] USB: usb root hubs can set power budgets # # This adds hub_set_power_budget(), mostly so that HCDs for low # powered ports (cell phone, PDA, etc) can more easily report their # true power budgets. It's not always 500mA per root hub port; this # makes dummy_hcd report the minimum, 8mA. # # Signed-off-by: David Brownell # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/gadget/dummy_hcd.c # 2004/06/07 07:31:53-07:00 david-b@pacbell.net +3 -0 # USB: usb root hubs can set power budgets # # drivers/usb/core/hub.h # 2004/06/07 07:31:53-07:00 david-b@pacbell.net +11 -0 # USB: usb root hubs can set power budgets # # ChangeSet # 2004/06/08 14:36:23-07:00 jmunsin@iki.fi # [PATCH] I2C: drivers/i2c/chips/it87.c cleanup patch # # Attached is a cleanup patch for the it87 sensor driver, against # 2.6.7-rc2. Jean Delvare has reviewed it. # # # Signed-off-by: Greg Kroah-Hartman # # drivers/i2c/chips/it87.c # 2004/06/08 13:33:09-07:00 jmunsin@iki.fi +22 -26 # I2C: drivers/i2c/chips/it87.c cleanup patch # # ChangeSet # 2004/06/08 14:31:15-07:00 mhoffman@lightlink.com # [PATCH] I2C: add alternate VCORE calculations for w83627thf and w83637hf # # This patch adds support for the alternate in0/VCORE calculation which is # available for 2 of 4 chips this driver supports. It also fixes a minor # bug in the standard voltage input calculation. # # Signed-off-by: Greg Kroah-Hartman # # drivers/i2c/chips/w83627hf.c # 2004/06/05 19:02:59-07:00 mhoffman@lightlink.com +91 -3 # I2C: add alternate VCORE calculations for w83627thf and w83637hf # # ChangeSet # 2004/06/08 14:28:46-07:00 daniel.ritz@gmx.ch # [PATCH] PCI: fix irq routing on acer travelmate 360 laptop # # Fixes interrupt routing on acer travelmate 360 notebooks. it looks like # the bios assigned the wrong pirq value for the cardbus bridge. just # assigning irq 10 to all devices with pirq 0x63 would break second usb port. # pirq 0x68 seems to be right one for cardbus. # # Signed-off-by: Daniel Ritz # Signed-off-by: Andrew Morton # Signed-off-by: Greg Kroah-Hartman # # arch/i386/pci/irq.c # 2004/06/05 00:16:53-07:00 daniel.ritz@gmx.ch +9 -0 # PCI: fix irq routing on acer travelmate 360 laptop # # arch/i386/kernel/dmi_scan.c # 2004/06/05 00:16:53-07:00 daniel.ritz@gmx.ch +29 -0 # PCI: fix irq routing on acer travelmate 360 laptop # # ChangeSet # 2004/06/08 14:12:40-07:00 greg@kroah.com # Merge kroah.com:/home/greg/linux/BK/bleed-2.6 # into kroah.com:/home/greg/linux/BK/usb-2.6 # # include/linux/usb.h # 2004/06/08 14:12:36-07:00 greg@kroah.com +0 -1 # Auto merged # # drivers/usb/serial/cyberjack.c # 2004/06/08 14:12:36-07:00 greg@kroah.com +0 -6 # Auto merged # # drivers/usb/media/pwc-if.c # 2004/06/08 14:12:36-07:00 greg@kroah.com +0 -1 # Auto merged # # drivers/usb/media/Kconfig # 2004/06/08 14:12:35-07:00 greg@kroah.com +0 -1 # Auto merged # # drivers/usb/core/devio.c # 2004/06/08 14:12:35-07:00 greg@kroah.com +0 -1 # Auto merged # # ChangeSet # 2004/06/07 21:38:30-07:00 kaos@sgi.com # [PATCH] ia64: Rename SN "modules" variable to "sn_modules". # # SN code has a "modules" variable that conflicts with a variable of the # same name in kernel/module.c. This conflict breaks lcrash for ia64. # Rename "modules" to "sn_modules". # # Signed-off-by: Keith Owens # Signed-off-by: David Mosberger # # include/asm-ia64/sn/module.h # 2004/06/07 08:45:42-07:00 kaos@sgi.com +1 -1 # ia64: Rename modules to sn_modules # # arch/ia64/sn/io/sn2/module.c # 2004/06/07 08:45:32-07:00 kaos@sgi.com +7 -7 # ia64: Rename modules to sn_modules # # arch/ia64/sn/io/sn2/klgraph.c # 2004/06/07 08:49:25-07:00 kaos@sgi.com +2 -2 # ia64: Rename modules to sn_modules # # arch/ia64/sn/io/machvec/pci_bus_cvlink.c # 2004/06/07 08:45:20-07:00 kaos@sgi.com +2 -2 # ia64: Rename modules to sn_modules # # ChangeSet # 2004/06/07 17:01:22-07:00 david-b@pacbell.net # [PATCH] USB: rndis (4/4) start documenting spec variances # # This partially reverts one of the changes in an earlier patch, # starting to document where Microsoft's spec is lying. Needed # to interop with Windows ME. # # # The Windows ME implementation of RNDIS relies on a message that # Microsoft's specification says isn't used. Restore this (removed # in earlier cleanup), and start collecting comments specifically # on where MSFT violates its own specifications. # # Signed-off-by: David Brownell # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/gadget/rndis.c # 2004/06/07 07:04:50-07:00 david-b@pacbell.net +17 -0 # USB: rndis (4/4) start documenting spec variances # # ChangeSet # 2004/06/07 16:58:23-07:00 david-b@pacbell.net # [PATCH] USB: rndis (2/4) fix memory leaks # # Tao Huang wrote: # > I'm writing udc driver for S3C2410. I found RNDIS almost not call my # > driver's free_request and free_buffer. So after run my driver about 3 # > hours the system will out of memory. # > # > This patch will fix the memory leak. # > # > There will still have memory leak when driver unload, but I don't known # > where is the proper place to fix it. # > 1) rndis.c should free resp_queue when it unload # > 2) ether.c should free tx_reqs and rx_reqs when it unload (as # > eth_reset_config) # # Thanks ... this is a nice patch to have. # # # From: Tao Huang # Signed-off-by: David Brownell # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/gadget/ether.c # 2004/06/06 06:34:51-07:00 david-b@pacbell.net +13 -5 # USB: rndis (2/4) fix memory leaks # # ChangeSet # 2004/06/07 16:57:06-07:00 david-b@pacbell.net # [PATCH] USB: rndis (1/4) update OID support # # NDIS devices have a generic attribute get/set API where the attributes # are identified by 32 bit "OIDs". This fixes some problems with the OIDs # supported by the original RNDIS patch: # # - It included OIDs not found in the RNDIS spec. These have been # removed. As a rule, these weren't exported in the "OIDs I support" # list, and only a couple wouldn't fail those accesses, so this mostly # changes what debug printk appears. # # - OIDs used for optional 802.3 statistics were partially supported. # They're all in the OID list now, but the support is #ifdeffed out. # (Those statistics were mostly just made up, anyway!) # # - "Required" OIDs for suspend, resume, and wakeup support weren't # listed. Their messages are now defined, but support is #ifdeffed # out. Seems the docs aren't entirely accurate, and Windows can # behave reasonably without them. (This area needs help from someone # who knows MS-Windows power management.) # # There are also a few minor cleanups, more reasonable default volume level # for debug messages (never at KERN_INFO, keepalives only if VERBOSE), and # dumping of all bytes of some undocumented messages Windows XP has been # seen emitting shortly before the host suspended itself. # # Signed-off-by: David Brownell # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/gadget/rndis.h # 2004/06/06 06:06:42-07:00 david-b@pacbell.net +37 -4 # USB: rndis (1/4) update OID support # # drivers/usb/gadget/rndis.c # 2004/06/06 06:06:42-07:00 david-b@pacbell.net +162 -166 # USB: rndis (1/4) update OID support # # ChangeSet # 2004/06/07 16:55:44-07:00 stern@rowland.harvard.edu # [PATCH] USB: unusual_devs.h update # # Given the problems that Dan Scholnik has reported, we should combine the # unusual_devs.h entries for the Casio QV cameras into one. The new # NEED_OVERRIDE flag will prevent complaints about unnecessary overrides, # and Dan says the same subclass and protocol values should work for all the # cameras. If they don't we'll hear about it soon enough! # # # On Tue, 1 Jun 2004, Dan Scholnik wrote: # > On Tue, 2004-06-01 at 14:14, Alan Stern wrote: # > > On Tue, 1 Jun 2004, Dan Scholnik wrote: # > > # > > > Up until the 2.6 kernels, there was one entry for all the QV cameras # > > > with both US_SC_8070 and US_PR_CB that I think seemed to work fine for # > > > everyone. As far as I know the only problem was all the folks emailing # > > > the log entry stating that the Casio entry wasn't needed. So, you could # > > > revert back to that, or revert back to the 2.6.3ish version (pre-as190) # > > > that had the overrides just for product IDs 1001-9009. I'm not really # > > > an expert on Casio's cameras, I'm afraid, just the one model I own which # > > > is 4-5 years old now. # > > > # > > > I'll be happy to prepare a patch any way you choose to go. # > > # > > How does this work for you? # > > # > > Alan Stern # > # > Works fine for me; that's I think exactly how it was from the beginning # > until 2.6 and the later 2.4 kernels when all the changes were made. # > Just cross your fingers that it doesn't somehow break newer Casios, as # > it would seem every camera they ever made falls under that entry. # # # # Signed-off-by: Alan Stern # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/storage/unusual_devs.h # 2004/06/01 05:46:58-07:00 stern@rowland.harvard.edu +3 -9 # USB: unusual_devs.h update # # ChangeSet # 2004/06/07 16:55:17-07:00 stern@rowland.harvard.edu # [PATCH] USB: Fix resource leakage in the hub driver # # The hub driver is very careless about returning resources when an error # occurs while installing a new device. This patch attempts to put some # order back into the situation. Details: # # Since usb_new_device() allocates neither the device structure # nor the device address, it shouldn't release either one. # # Because usb_new_device() no longer releases the device structure, # usb_register_root_hub() doesn't need to take an extra reference # to it. # # Since the device address selection and TT setup code is used # only for new devices, not ones being reset, move that code from # hub_port_init() to hub_port_connect_change(). By the same token, # hub_port_init() doesn't have to release the device address or # the device structure. # # Just to make things look better, move the failure code in # hub_port_init() to the end of the routine. And when disabling # endpoint 0, disable both the IN and OUT parts of the endpoint. # # In hub_port_connect_change(), make all the failure paths # execute the same code so that resources are always released. # These resources comprise: the pointer from the parent to the # new child device, the HCD state for ep0, the device's address, # and the device structure itself -- in short, everything that's # set up before calling usb_new_device(). # # # Signed-off-by: Alan Stern # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/core/hub.c # 2004/06/07 10:08:06-07:00 stern@rowland.harvard.edu +45 -50 # USB: Fix resource leakage in the hub driver # # drivers/usb/core/hcd.c # 2004/06/07 09:55:49-07:00 stern@rowland.harvard.edu +1 -3 # USB: Fix resource leakage in the hub driver # # ChangeSet # 2004/06/07 16:54:49-07:00 stern@rowland.harvard.edu # [PATCH] USB: Check port reset return code # # This patch adds checking for the SET-FEATURE request that actually does a # port reset. Without the check, the hub driver just assumes that the port # reset command actually was transferred okay. # # Signed-off-by: Alan Stern # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/core/hub.c # 2004/06/07 08:20:11-07:00 stern@rowland.harvard.edu +6 -2 # USB: Check port reset return code # # ChangeSet # 2004/06/07 16:34:04-07:00 baldrick@free.fr # [PATCH] USB devio.c: deadlock fix # # proc_resetdevice is called with dev->serialize held. # usb_reset_device takes dev->serialize and then calls # __usb_reset_device. To avoid deadlock, proc_resetdevice # should call __usb_reset_device directly. # # Signed-off-by: Duncan Sands # Signed-off-by: Greg Kroah-Hartman # # include/linux/usb.h # 2004/06/07 01:39:20-07:00 baldrick@free.fr +1 -0 # USB devio.c: deadlock fix # # drivers/usb/core/devio.c # 2004/06/07 01:39:20-07:00 baldrick@free.fr +1 -1 # USB devio.c: deadlock fix # # ChangeSet # 2004/06/07 14:39:16-07:00 arun.sharma@intel.com # [PATCH] ia64: fix ia32 virtual memory leaks due to partial-page mappings # # Certain IA-32 applications which do mmap/munmaps which are not # PAGE_SIZE aligned could see temporary (recovered at process exit time) # memory leaks, because the kernel didn't have enough data to decide if # the complete page could be unmapped. This patch adds a new data # structure called the "partial page list" which helps the kernel keep # track of precisely which 4k pages are in use by the IA-32 application. # # Armed with this data, the kernel can make better decisions at munmap # and mprotect time. No significant performance degradation was observed # in the workloads we tested and in some cases, the performance actually # improved! This is possibly due to the reduced length of the vma list. # # Signed-off-by: Arun Sharma # Signed-off-by: Gordon Jin # Signed-off-by: David Mosberger # # include/asm-ia64/processor.h # 2004/06/04 18:14:13-07:00 arun.sharma@intel.com +4 -1 # ia64: fix virtual memory leaks in ia32 emulator due to partial-page mappings # # include/asm-ia64/ia32.h # 2004/06/04 18:15:32-07:00 arun.sharma@intel.com +2 -0 # ia64: fix virtual memory leaks in ia32 emulator due to partial-page mappings # # arch/ia64/kernel/process.c # 2004/06/04 04:59:05-07:00 arun.sharma@intel.com +12 -0 # ia64: fix virtual memory leaks in ia32 emulator due to partial-page mappings # # arch/ia64/ia32/sys_ia32.c # 2004/06/04 06:31:39-07:00 arun.sharma@intel.com +524 -5 # ia64: fix virtual memory leaks in ia32 emulator due to partial-page mappings # # arch/ia64/ia32/ia32priv.h # 2004/06/04 03:42:27-07:00 arun.sharma@intel.com +25 -0 # ia64: fix virtual memory leaks in ia32 emulator due to partial-page mappings # # arch/ia64/ia32/ia32_support.c # 2004/06/04 02:57:01-07:00 arun.sharma@intel.com +8 -0 # ia64: fix virtual memory leaks in ia32 emulator due to partial-page mappings # # arch/ia64/ia32/ia32_entry.S # 2004/06/04 02:57:01-07:00 arun.sharma@intel.com +1 -1 # ia64: fix virtual memory leaks in ia32 emulator due to partial-page mappings # # arch/ia64/ia32/binfmt_elf32.c # 2004/06/04 02:57:01-07:00 arun.sharma@intel.com +4 -0 # ia64: fix virtual memory leaks in ia32 emulator due to partial-page mappings # # ChangeSet # 2004/06/07 13:00:07-07:00 stern@rowland.harvard.edu # [PATCH] USB: Fix logic in usb_get_descriptor() # # This patch fixes a simple logic error in usb_get_descriptor(). It also # takes the opportunity to make the subroutine a little easier to read. # Please apply. # # # # Signed-off-by: Alan Stern # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/core/message.c # 2004/06/06 09:43:22-07:00 stern@rowland.harvard.edu +7 -7 # USB: Fix logic in usb_get_descriptor() # # ChangeSet # 2004/06/07 12:59:41-07:00 kaie@kuix.de # [PATCH] USB: enable pwc usb camera driver # # The attached patch enables the pwc driver included with kernel 2.6.7-rc2 # # It also removes the warnings during compilation. # However, note that I blindly duplicated the release approach used by # other usb camera drivers, replacing the current no-op. # # The driver works for me with a Logitech QuickCam Notebook Pro and # GnomeMeeting. # # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/media/pwc-if.c # 2004/06/07 02:42:50-07:00 kaie@kuix.de +1 -8 # USB: enable pwc usb camera driver # # drivers/usb/media/Kconfig # 2004/06/07 02:27:03-07:00 kaie@kuix.de +1 -1 # USB: enable pwc usb camera driver # # ChangeSet # 2004/06/07 12:59:12-07:00 mdharm-usb@one-eyed-alien.net # [PATCH] USB Storage: GetMaxLUN tightening # # This patch started life from Alan Stern as as274, and has been heavily # modified. It narrows the case where a clear_halt() is issued after a # failed GetMaxLUN command to only a STALL case. # # Since the only legimate responses to a GetMaxLUN are STALL or data, # anything else is now considered a fatal error and we give up on the device. # # # Signed-off-by: Matthew Dharm # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/storage/usb.c # 2004/06/06 15:22:29-07:00 mdharm-usb@one-eyed-alien.net +8 -2 # USB Storage: GetMaxLUN tightening # # drivers/usb/storage/transport.c # 2004/06/06 15:22:29-07:00 mdharm-usb@one-eyed-alien.net +13 -10 # USB Storage: GetMaxLUN tightening # # ChangeSet # 2004/06/07 12:58:42-07:00 Siegfried.Hildebrand@FernUni-Hagen.de # [PATCH] Re: Problems with cyberjack usb-serial-module since kernel 2.6.2 # # > Send me a patch to back those changes out to fix your device and I'll # > apply it. If the author is around to realize this, that should wake # > them up :) # # Ok, here you are! :) # Attached is a patch for linux-2.6.7-rc2. (though the patch hasn't changed # since -rc1) # # Again a short description: # (the patch removes most of the changes done in linux-2.6.2) # 1. Removed the local buffer of cyberjack_write, because something goes wrong # upon a write-request bigger than the buffer. Without this, a write-request # stalls with error -3. # 2. Removed some usb_clear_halt() lines. Without this, the device doesn't even # open and returns -7. # # It works for my cyberjack pinpad USB card reader on # - nforce2 chipset # - VIA KM266 chipset # - AMD Irongate chipset # # # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/serial/cyberjack.c # 2004/06/06 09:25:11-07:00 Siegfried.Hildebrand@FernUni-Hagen.de +6 -15 # Re: Problems with cyberjack usb-serial-module since kernel 2.6.2 # # ChangeSet # 2004/06/07 11:44:48-07:00 alex.williamson@hp.com # [PATCH] ia64: delete McKinley A-stepping code # # The patch below removes the config option and one bit of code for # McKinley A0/A1 CPU workarounds. These CPUs were never used in # production, and IIRC this workaround really only affected X11. # # Signed-off-by: David Mosberger # # include/asm-ia64/pgtable.h # 2004/06/07 03:07:59-07:00 alex.williamson@hp.com +1 -5 # ia64: delete McKinley A-stepping code # # arch/ia64/Kconfig # 2004/06/07 03:03:19-07:00 alex.williamson@hp.com +0 -14 # ia64: delete McKinley A-stepping code # # ChangeSet # 2004/06/07 11:27:28-07:00 greg@kroah.com # USB: make usb devices remove their sysfs files when disconnected. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/core/usb.h # 2004/06/07 04:26:43-07:00 greg@kroah.com +2 -0 # USB: make usb devices remove their sysfs files when disconnected. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/core/sysfs.c # 2004/06/07 04:26:43-07:00 greg@kroah.com +59 -30 # USB: make usb devices remove their sysfs files when disconnected. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/core/message.c # 2004/06/07 04:26:43-07:00 greg@kroah.com +1 -0 # USB: make usb devices remove their sysfs files when disconnected. # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/core/hub.c # 2004/06/07 04:26:43-07:00 greg@kroah.com +1 -0 # USB: make usb devices remove their sysfs files when disconnected. # # Signed-off-by: Greg Kroah-Hartman # # ChangeSet # 2004/06/07 10:30:35-07:00 greg@kroah.com # Merge kroah.com:/home/greg/linux/BK/bleed-2.6 # into kroah.com:/home/greg/linux/BK/usb-2.6 # # drivers/usb/gadget/ether.c # 2004/06/07 10:30:30-07:00 greg@kroah.com +0 -0 # Auto merged # # ChangeSet # 2004/06/04 16:48:04-07:00 greg@kroah.com # Driver core: finally add a MAINTAINERS entry for it. # # Signed-off-by: Greg Kroah-Hartman # # MAINTAINERS # 2004/06/04 09:47:20-07:00 greg@kroah.com +6 -0 # Driver core: finally add a MAINTAINERS entry for it. # # Signed-off-by: Greg Kroah-Hartman # # ChangeSet # 2004/06/04 15:54:01-07:00 corbet@lwn.net # [PATCH] Module section offsets in /sys/module # # So here I am trying to write about how one can apply gdb to a running # kernel, and I'd like to tell people how to debug loadable modules. Only # with the 2.6 module loader, there's no way to find out where the various # sections in the module image ended up, so you can't do much. This patch # attempts to fix that by adding a "sections" subdirectory to every module's # entry in /sys/module; each attribute in that directory associates a # beginning address with the section name. Those attributes can be used by a # a simple script to generate an add-symbol-file command for gdb, something # like: # # #!/bin/bash # # # # gdbline module image # # # # Outputs an add-symbol-file line suitable for pasting into gdb to examine # # a loaded module. # # # cd /sys/module/$1/sections # echo -n add-symbol-file $2 `/bin/cat .text` # # for section in .[a-z]* *; do # if [ $section != ".text" ]; then # echo " \\" # echo -n " -s" $section `/bin/cat $section` # fi # done # echo # # Currently, this feature is absent if CONFIG_KALLSYMS is not set. I do # wonder if CONFIG_DEBUG_INFO might not be a better choice, now that I think # about it. Section names are unmunged, so "ls -a" is needed to see most of # them. # # Signed-off-by: Greg Kroah-Hartman # # kernel/module.c # 2004/06/03 14:37:17-07:00 corbet@lwn.net +100 -0 # Module section offsets in /sys/module # # include/linux/module.h # 2004/06/03 14:01:29-07:00 corbet@lwn.net +19 -0 # Module section offsets in /sys/module # # ChangeSet # 2004/06/04 17:17:42-05:00 stern@rowland.harvard.edu # [PATCH] Make the scsi error handler bus settle delay a per template option # # On 1 Jun 2004, James Bottomley wrote: # > On Tue, 2004-06-01 at 15:29, Alan Stern wrote: # > > In addition, the settle-time delays would have to be removed from the # > > error handler -- which means adding it to all the low-level drivers. Is # > > that doable? # > # > Well, for 2.6, I think that a simple flag indicating that the driver # > will implement it's own timeout should suffice rather than altering # > every LLD... # # Signed-off-by: Alan Stern # Signed-off-by: James Bottomley # # include/scsi/scsi_host.h # 2004/06/04 11:51:31-05:00 stern@rowland.harvard.edu +5 -0 # Make the scsi error handler bus settle delay a per template option # # drivers/usb/storage/scsiglue.c # 2004/06/04 11:52:56-05:00 stern@rowland.harvard.edu +3 -0 # Make the scsi error handler bus settle delay a per template option # # drivers/scsi/scsi_error.c # 2004/06/04 11:54:06-05:00 stern@rowland.harvard.edu +4 -2 # Make the scsi error handler bus settle delay a per template option # # ChangeSet # 2004/06/04 15:15:08-07:00 stern@rowland.harvard.edu # [PATCH] USB: Genuine changes to hub_port_debounce() # # This patch includes the algorithmic changes I would like to see in # hub_port_debounce(). They are: # # Increase the total timeout period from 400 ms to 1500 ms. # # Check the port's connect-changed status during the polling # loop. # # Return as soon as the connection has been stable for the # required time, even if it has been stably _dis_-connected. # (The current code waits for the full timeout period if there # isn't a connection.) # # In previous emails I have responded to all the concerns raised by others # about these changes, and I can't imagine how they could cause any trouble. # # Increasing the total timeout won't affect people with properly # functioning hardware. Their connections will quickly stabilize # and the routine will return just as before. People with flaky # hardware that takes a long time to settle down will now be able # to use their devices. # # Checking the connect-changed status during the polling loop will # make the test more conservative. The code will be able to # detect transient disconnections that it would have missed # before, and it won't return until the connection really _is_ # stable. Furthermore, this makes the test compliant with the # USB specification, which requires the stability timer to be # restarted whenever a connection change occurs. # # Returning early for disconnections is a simple optimization. # It's more important now that the total timeout length is 1.5 # seconds rather than 0.4 seconds. # # I urge you to apply this patch and for people to try it out. If there do # turn out to be problems... the patch is very small, well-contained, and # easy to revert. # # # Signed-off-by: Alan Stern # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/core/hub.c # 2004/06/04 07:28:00-07:00 stern@rowland.harvard.edu +4 -4 # USB: Genuine changes to hub_port_debounce() # # ChangeSet # 2004/06/04 15:14:42-07:00 stern@rowland.harvard.edu # [PATCH] USB: Superficial improvements to hub_port_debounce() # # Since my previous suggestions for changes to hub_port_debounce() # encountered so much resistance, this patch makes some fairly superficial # improvements to the code while leaving the logic of the algorithm almost # completely intact. The only behavioral change is that it actually # requests the port status at the start, rather than assuming the status is # not CONNECTED. Changes include: # # Vastly improved comments that are now unambiguous and accurately # descriptive of the code. # # Local variables changed to more sensible names. The stability # period is now reported in milliseconds rather than a meaningless # poll count. # # The sleep interval is moved from the start of the loop to the # end, so that the first time through we read the port status # immediately. # # If the connection has not stabilized after the total timeout # expires, -ETIMEDOUT is returned rather than whatever the # current connect status happens to be. # # If the connection does stabilize then the port status is returned # so that hub_port_connect_change() will have an up-to-date value # for the status rather than relying on the pre-debounce value. # # The changes I wanted to make but other people were worried about are # included as comments. A later (small) patch will uncomment them for # testing. # # Signed-off-by: Alan Stern # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/core/hub.c # 2004/06/04 07:15:37-07:00 stern@rowland.harvard.edu +34 -30 # USB: Superficial improvements to hub_port_debounce() # # ChangeSet # 2004/06/04 15:14:11-07:00 stern@rowland.harvard.edu # [PATCH] USB: Debounce all connect change events # # This patch makes the hub driver debounce all connection changes. Right # now the driver only does so if the status happens to be CONNECTED at one # particular instant. However, the whole point of debouncing is that the # connection is subject to transient interruptions until it has stabilized; # hence deciding whether to debounce based on a single initial test defeats # the entire purpose. # # There are some additional smaller changes that go along with the major # one: # # Comments added to hub_port_connect_change() detailing the # conditions under which it will be called. # # Don't clear the port's connect-changed feature if it wasn't # set. # # Skip debouncing if there wasn't a physical connection change # but only a logical port-enable change (or a firmware-download- # induced device morph -- not yet implemented). # # Clear all the hub status change indicators in hub_events() # before handling a connect change. This will reduce syslog # clutter from status change bits that remain set while khubd # is busy taking care of a new device. # # The patch includes no changes to the debounce routine itself. Please # apply. # # # Signed-off-by: Alan Stern # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/core/hub.c # 2004/06/04 07:10:33-07:00 stern@rowland.harvard.edu +41 -22 # USB: Debounce all connect change events # # ChangeSet # 2004/06/04 15:13:47-07:00 stern@rowland.harvard.edu # [PATCH] USB: Code cleanup for the UHCI driver # # This patch makes some simple cleanups in the UHCI driver: # # It introduces msecs_to_jiffies() conversions and uses msleep(). # # It wakes up threads waiting for an endpoint to be disabled # in the oddball case where interrupts aren't working. (This # should have been in a previous patch but I missed it.) # # It disables PCI interrupt generation whenever the controller # is reset and enables it when the controller is started. This # may possibly solve some people's problems with suspend/resume. # # Signed-off-by: Alan Stern # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/host/uhci-hcd.c # 2004/06/04 08:14:49-07:00 stern@rowland.harvard.edu +28 -17 # USB: Code cleanup for the UHCI driver # # ChangeSet # 2004/06/04 15:13:16-07:00 jnardelli@infosciences.com # [PATCH] USB: fix Memory leak in visor.c and ftdi_sio.c # # Signed-off-by: Joe Nardelli # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/serial/visor.c # 2004/06/04 07:13:10-07:00 jnardelli@infosciences.com +1 -0 # USB: fix Memory leak in visor.c and ftdi_sio.c # # drivers/usb/serial/ftdi_sio.c # 2004/06/04 06:53:27-07:00 jnardelli@infosciences.com +1 -0 # USB: fix Memory leak in visor.c and ftdi_sio.c # # ChangeSet # 2004/06/04 15:12:44-07:00 spitalnik@penguin.cz # [PATCH] USB: pegasus driver and ATEN device support # # I have created a patch to add support for ATEN device in pegasus usb driver. # I've sent the patch to the maintainer stated in pegasus.h but after several # weeks I didn't recieve a response, so I'm sending it to you now. The patch # should apply cleanly on 2.6.6, but it doesn't apply cleanly on todays -bk as # there was some patch adding some other device. One thing I'm not 100% sure # are the flags specified to PEGASUS_DEV, what means HAS_HOME_PNA? # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/net/pegasus.h # 2004/04/15 14:37:12-07:00 spitalnik@penguin.cz +3 -0 # USB: pegasus driver and ATEN device support # # ChangeSet # 2004/06/04 15:01:07-07:00 dlsy@snoqualmie.dp.intel.com # [PATCH] Fixes for hot-plug drivers (updated) # # Here is the updated patch (against 2.6.7-rc1) for the shpchp and pciehp # drivers that fixes the following issues: # - proper LED status when latch is open or card is not present while the # user tries to power up the slot; (reported by D. Keck) # - check if kmalloc() return NULL before proceeding in acpi_get__hpp(); # (provided by L. Capitulino) # - add up(&ctrl->crit_sect) before return in error cases in several # places; # - proper handling of resources when there are other onboard devices # behind the p2p bridge that has the hot-plug capabaility; # - need to check negotiated link width in check_lnk_status(); # - cleanup board_added() in pciehp # # # Signed-off-by: Greg Kroah-Hartman # # drivers/pci/hotplug/shpchprm_nonacpi.c # 2004/06/02 11:59:48-07:00 dlsy@snoqualmie.dp.intel.com +13 -5 # Fixes for hot-plug drivers (updated) # # drivers/pci/hotplug/shpchprm_acpi.c # 2004/06/02 11:59:48-07:00 dlsy@snoqualmie.dp.intel.com +17 -5 # Fixes for hot-plug drivers (updated) # # drivers/pci/hotplug/shpchp_pci.c # 2004/06/02 11:59:48-07:00 dlsy@snoqualmie.dp.intel.com +1 -0 # Fixes for hot-plug drivers (updated) # # drivers/pci/hotplug/shpchp_ctrl.c # 2004/06/02 11:59:48-07:00 dlsy@snoqualmie.dp.intel.com +23 -37 # Fixes for hot-plug drivers (updated) # # drivers/pci/hotplug/shpchp.h # 2004/06/02 11:59:48-07:00 dlsy@snoqualmie.dp.intel.com +1 -0 # Fixes for hot-plug drivers (updated) # # drivers/pci/hotplug/pciehprm_nonacpi.c # 2004/06/02 11:59:48-07:00 dlsy@snoqualmie.dp.intel.com +13 -5 # Fixes for hot-plug drivers (updated) # # drivers/pci/hotplug/pciehprm_acpi.c # 2004/06/02 11:59:48-07:00 dlsy@snoqualmie.dp.intel.com +17 -5 # Fixes for hot-plug drivers (updated) # # drivers/pci/hotplug/pciehp_hpc.c # 2004/06/02 11:59:48-07:00 dlsy@snoqualmie.dp.intel.com +3 -1 # Fixes for hot-plug drivers (updated) # # drivers/pci/hotplug/pciehp_ctrl.c # 2004/06/02 17:04:06-07:00 dlsy@snoqualmie.dp.intel.com +49 -98 # Fixes for hot-plug drivers (updated) # # ChangeSet # 2004/06/04 14:53:48-07:00 Frank.A.Uepping@t-online.de # [PATCH] Driver Core: fix struct device::release issue # # Signed-off-by: Greg Kroah-Hartman # # # On Saturday 27 March 2004 02:14, Greg KH wrote: # > On Sat, Mar 06, 2004 at 12:47:24PM +0100, Frank A. Uepping wrote: # > > Hi, # > > if device_add fails (e.g. bus_add_device returns an error) then the release # > > method will be called for the device. Is this a bug or a feature? # > # > Are you sure this will happen? device_initialize() gets a reference # > that is still present after device_add() fails, right? So release() # > will not get called. # At the label PMError, kobject_unregister is called, which decrements the # recount by 2, which will result in calling release at label Done (put_device). # # kobject_unregister should be superseded by kobject_del. # Here is a patch: # # drivers/base/core.c # 2004/03/27 07:04:27-08:00 Frank.A.Uepping@t-online.de +1 -1 # Driver Core: fix struct device::release issue # # ChangeSet # 2004/06/04 14:46:39-07:00 khali@linux-fr.org # [PATCH] I2C: update I2C IDs # # > > Greg, should I send a patch to you with these? # > # > Sure, if it's needed. # # Just noticed that I never sent the promised patch. Here it is. I also # added a few other IDs, since we have them in our (2.4) i2c CVS # repository. Having them in 2.6 as well will at least prevent collisions. # # Signed-off-by: Greg Kroah-Hartman # # include/linux/i2c-id.h # 2004/05/31 14:26:48-07:00 khali@linux-fr.org +12 -0 # I2C: update I2C IDs # # ChangeSet # 2004/06/04 14:45:53-07:00 vojtech@suse.cz # [PATCH] I2C i2c-piix: Don't treat ServerWorks servers as Laptops # # I'm sending you this little obvious patch which should enable i2c-piix # to work on IBM servers with ServerWorks chipsets. It still will treat # any IBM/Intel machine as a laptop and refuse to work, but it's better # than before. # # # i2c: Treat only IBM machines with Intel chipsets as IBM laptops. # # # Signed-off-by: Greg Kroah-Hartman # # drivers/i2c/busses/i2c-piix4.c # 2004/03/19 08:01:34-08:00 vojtech@suse.cz +1 -1 # I2C i2c-piix: Don't treat ServerWorks servers as Laptops # # ChangeSet # 2004/06/04 13:24:29-07:00 greg@kroah.com # PCI: convert to using dev_attrs for all PCI devices. # # Signed-off-by: Greg Kroah-Hartman # # drivers/pci/pci.h # 2004/06/04 06:23:04-07:00 greg@kroah.com +1 -0 # PCI: convert to using dev_attrs for all PCI devices. # # Signed-off-by: Greg Kroah-Hartman # # drivers/pci/pci-sysfs.c # 2004/06/04 06:23:04-07:00 greg@kroah.com +15 -18 # PCI: convert to using dev_attrs for all PCI devices. # # Signed-off-by: Greg Kroah-Hartman # # drivers/pci/pci-driver.c # 2004/06/04 06:23:04-07:00 greg@kroah.com +1 -0 # PCI: convert to using dev_attrs for all PCI devices. # # Signed-off-by: Greg Kroah-Hartman # # ChangeSet # 2004/06/04 11:09:29-07:00 greg@kroah.com # Driver Model: And even more cleanup of silly scsi use of the *ATTR macros... # # Signed-off-by: Greg Kroah-Hartman # # drivers/scsi/scsi_transport_spi.c # 2004/06/04 04:08:48-07:00 greg@kroah.com +2 -2 # Driver Model: And even more cleanup of silly scsi use of the *ATTR macros... # # Signed-off-by: Greg Kroah-Hartman # # drivers/scsi/scsi_sysfs.c # 2004/06/04 04:08:48-07:00 greg@kroah.com +5 -5 # Driver Model: And even more cleanup of silly scsi use of the *ATTR macros... # # Signed-off-by: Greg Kroah-Hartman # # ChangeSet # 2004/06/04 11:55:11-05:00 jejb@mulgrave.(none) # sg update to 20040516 # # From: Douglas Gilbert # # Here are some further refinements to this patch with help # from Pat Mansfield: # - replace vmalloc() with kmalloc(,GFP_KERNEL) # - bump max sg devices from 8192 to 32768 # # Tested to 16k devices (and 8k devices on a box with 512MB # ram), Patch is against lk 2.6.6 (or 2.6.6-bk1). # # Signed-off-by: James Bottomley # # drivers/scsi/sg.c # 2004/06/04 11:54:42-05:00 jejb@mulgrave.(none) +22 -15 # sg update to 20040516 # # ChangeSet # 2004/06/04 09:13:16-05:00 hch@lst.de # [PATCH] kill dead compat code in advansys # # I actually wanted to fix up the check_region usage there but got lost # in the mess. Let's start by kicking out the 2.2 compat and using scsi # layer constants instead of their own redefinitions first. # # Signed-off-by: James Bottomley # # drivers/scsi/advansys.c # 2004/06/04 06:19:50-05:00 hch@lst.de +119 -508 # kill dead compat code in advansys # # ChangeSet # 2004/06/04 09:09:27-05:00 hch@lst.de # [PATCH] update 53c700 to avoid obsolete headers # # Signed-off-by: James Bottomley # # drivers/scsi/sim710.c # 2004/06/04 05:53:02-05:00 hch@lst.de +2 -3 # update 53c700 to avoid obsolete headers # # drivers/scsi/lasi700.c # 2004/06/04 05:53:02-05:00 hch@lst.de +1 -2 # update 53c700 to avoid obsolete headers # # drivers/scsi/NCR_D700.c # 2004/06/04 06:45:28-05:00 hch@lst.de +1 -3 # update 53c700 to avoid obsolete headers # # drivers/scsi/53c700.h # 2004/06/04 06:43:36-05:00 hch@lst.de +13 -10 # update 53c700 to avoid obsolete headers # # drivers/scsi/53c700.c # 2004/06/04 06:43:46-05:00 hch@lst.de +65 -64 # update 53c700 to avoid obsolete headers # # ChangeSet # 2004/06/04 08:59:37-05:00 hch@lst.de # [PATCH] missing forward declarations in scsi_eh.h # # Signed-off-by: James Bottomley # # include/scsi/scsi_eh.h # 2004/06/04 06:45:01-05:00 hch@lst.de +4 -0 # missing forward declarations in scsi_eh.h # # ChangeSet # 2004/06/03 21:54:17-05:00 akpm@osdl.org # [PATCH] 3ware 9000 schedule_timeout fix # # From: "Adam Radford" # # This small patch fixes the broken schedule_timeout() usage in the 3w-9xxx # driver, and replaces the calls with msleep(). # # Signed-off-by: Andrew Morton # Signed-off-by: James Bottomley # # drivers/scsi/3w-9xxx.c # 2004/06/03 19:43:06-05:00 akpm@osdl.org +4 -3 # 3ware 9000 schedule_timeout fix # # ChangeSet # 2004/06/03 21:51:02-05:00 akpm@osdl.org # [PATCH] 3ware 9000 driver update # # From: "Adam Radford" # # This patch updates the 3w-9xxx driver in 2.6.7-rc2-mm1 to v2.26.02.000 to # cleanup several things pointed out by Chris Hellwig / Jeff Garzik. # # Changes in this release: # - Use descriptive defines for phase numbers. # - Remove un-needed casts for TW_Command_Full # - Rework eh_reset(), eh_abort() spinlocks. # - Remove all mdelays, replace w/ schedule_timeout(). # - Remove MODULE_PARAM cmds_per_lun, add sysfs device attribute 'queue_depth'. # - Remove twa_slave_configure(). # - Remove twa_info(). # - Remove all bitfields from structures, add bitmask macros. # - Remove twa_setup_irq() wrapper, call directly. # - Remove un-needed prototypes. # - Propogate return value of pci_enable_device(), pci_set_dma_mask(), ioremap(). # - Use pci_request/free_regions(). # - Add missing call to pci_disable_device() on probe failure. # - Unregister character ioctl interface in twa_remove(). # - Make some excessively lengthy lines < 80 columns. # - Use pci_module_init() instead of pci_register_driver(). # - Remove bogus TW_IN_INTR check, fix twa_interrupt() spinlock. # - Rev driver branch to .02 to denote kernel version. # # Signed-off-by: Andrew Morton # Signed-off-by: James Bottomley # # drivers/scsi/3w-9xxx.h # 2004/06/03 21:44:23-05:00 akpm@osdl.org +31 -53 # 3ware 9000 driver update # # drivers/scsi/3w-9xxx.c # 2004/06/03 21:44:23-05:00 akpm@osdl.org +167 -159 # 3ware 9000 driver update # # ChangeSet # 2004/06/03 20:12:20-05:00 arjanv@redhat.com # [PATCH] SCSI: replace deprecated hosts.h file # # Signed-off-by: James Bottomley # # drivers/scsi/zalon.c # 2004/05/12 10:46:24-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/wd7000.c # 2004/05/12 10:46:24-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/wd33c93.c # 2004/05/12 10:46:23-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/ultrastor.c # 2004/05/12 10:46:23-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/u14-34f.c # 2004/05/12 10:46:23-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/tmscsim.c # 2004/05/12 10:46:23-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/t128.c # 2004/05/12 10:46:23-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/sym53c416.c # 2004/05/12 10:46:23-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/sun3x_esp.c # 2004/05/12 10:46:23-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/sun3_scsi_vme.c # 2004/05/12 10:46:23-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/sun3_scsi.c # 2004/05/12 10:46:23-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/st.c # 2004/05/12 10:46:23-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/sr_vendor.c # 2004/05/12 10:46:23-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/sr_ioctl.c # 2004/05/12 10:46:23-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/sr.c # 2004/05/12 10:46:23-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/sim710.c # 2004/05/12 10:46:23-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/sgiwd93.c # 2004/05/12 10:46:23-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/sg.c # 2004/05/12 10:46:23-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/seagate.c # 2004/05/12 10:46:23-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/sd.c # 2004/05/12 10:46:23-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/scsicam.c # 2004/05/12 10:46:23-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/scsi_pc98.c # 2004/05/12 10:46:23-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/scsi_module.c # 2004/05/12 10:46:23-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/scsi_ioctl.c # 2004/05/12 10:46:23-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/scsi_error.c # 2004/05/12 10:46:23-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/scsi_devinfo.c # 2004/05/12 10:46:23-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/scsi_debug.c # 2004/05/12 10:46:23-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/qlogicpti.c # 2004/05/12 10:46:23-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/qlogicisp.c # 2004/05/12 10:46:23-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/qlogicfc.c # 2004/05/12 10:46:23-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/qlogicfas408.c # 2004/05/12 10:46:22-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/qlogicfas.c # 2004/05/12 10:46:22-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/qla2xxx/qla_os.h # 2004/05/12 10:46:27-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/qla1280.c # 2004/05/12 10:46:22-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/psi240i.c # 2004/05/12 10:46:22-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/ppa.h # 2004/05/12 10:46:24-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/pluto.c # 2004/05/12 10:46:22-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/pcmcia/qlogic_stub.c # 2004/05/12 10:46:25-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/pcmcia/fdomain_stub.c # 2004/05/12 10:46:25-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/pcmcia/aha152x_stub.c # 2004/05/12 10:46:25-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/pci2220i.c # 2004/05/12 10:46:22-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/pci2000.c # 2004/05/12 10:46:22-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/pc980155.c # 2004/05/12 10:46:22-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/pas16.c # 2004/05/12 10:46:22-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/osst.c # 2004/05/12 10:46:22-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/oktagon_esp.c # 2004/05/12 10:46:22-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/nsp32.c # 2004/05/12 10:46:22-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/ncr53c8xx.c # 2004/05/12 10:46:22-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/mvme16x.c # 2004/05/12 10:46:22-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/mvme147.c # 2004/05/12 10:46:22-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/megaraid.c # 2004/05/12 10:46:22-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/mca_53c9x.c # 2004/05/12 10:46:22-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/mac_scsi.c # 2004/05/12 10:46:22-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/mac_esp.c # 2004/05/12 10:46:22-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/lasi700.c # 2004/05/12 10:46:21-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/jazz_esp.c # 2004/05/12 10:46:21-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/ips.c # 2004/05/12 10:46:21-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/ini9100u.c # 2004/05/12 10:46:21-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/in2000.c # 2004/05/12 10:46:21-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/imm.h # 2004/05/12 10:46:24-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/ide-scsi.c # 2004/05/12 10:46:21-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/ibmmca.c # 2004/05/12 10:46:21-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/i60uscsi.c # 2004/05/12 10:46:21-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/gvp11.c # 2004/05/12 10:46:21-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/g_NCR5380.c # 2004/05/12 10:46:21-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/fdomain.c # 2004/05/12 10:46:21-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/fd_mcs.c # 2004/05/12 10:46:21-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/fcal.c # 2004/05/12 10:46:21-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/fastlane.c # 2004/05/12 10:46:21-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/esp.c # 2004/05/12 10:46:21-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/eata_pio.c # 2004/05/12 10:46:20-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/eata.c # 2004/05/12 10:46:20-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/dtc.c # 2004/05/12 10:46:20-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/dmx3191d.c # 2004/05/12 10:46:20-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/dec_esp.c # 2004/05/12 10:46:20-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/dc395x.c # 2004/05/12 10:46:20-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/cyberstormII.c # 2004/05/12 10:46:20-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/cyberstorm.c # 2004/05/12 10:46:20-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/cpqfcTSworker.c # 2004/05/12 10:46:20-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/cpqfcTSinit.c # 2004/05/12 10:46:20-05:00 arjanv@redhat.com +2 -2 # SCSI: replace deprecated hosts.h file # # drivers/scsi/cpqfcTScontrol.c # 2004/05/12 10:46:20-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/constants.c # 2004/05/12 10:46:20-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/bvme6000.c # 2004/05/12 10:46:20-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/blz2060.c # 2004/05/12 10:46:20-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/blz1230.c # 2004/05/12 10:46:20-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/atp870u.c # 2004/05/12 10:46:20-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/atari_scsi.c # 2004/05/12 10:46:20-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/amiga7xx.c # 2004/05/12 10:46:20-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/aic7xxx_old.c # 2004/05/12 10:46:20-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/aic7xxx/aiclib.c # 2004/05/12 10:46:25-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/aic7xxx/aic7xxx_osm.h # 2004/05/12 10:46:27-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/aic7xxx/aic79xx_osm.h # 2004/05/12 10:46:27-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/aha1740.c # 2004/05/12 10:46:20-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/aha1542.c # 2004/05/12 10:46:20-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/advansys.c # 2004/05/12 10:46:19-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/a3000.c # 2004/05/12 10:46:19-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/a2091.c # 2004/05/12 10:46:19-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/NCR_Q720.c # 2004/05/12 10:46:22-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/NCR_D700.c # 2004/05/12 10:46:22-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/NCR53c406a.c # 2004/05/12 10:46:22-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/NCR53C9x.c # 2004/05/12 10:46:22-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/BusLogic.c # 2004/05/12 10:46:20-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/53c7xx.c # 2004/05/12 10:46:19-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/53c700.c # 2004/05/12 10:46:19-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # drivers/scsi/3w-xxxx.c # 2004/05/12 10:46:19-05:00 arjanv@redhat.com +1 -1 # SCSI: replace deprecated hosts.h file # # ChangeSet # 2004/06/03 20:07:56-05:00 akpm@osdl.org # [PATCH] scsi_transport_spi.c build fix # # Signed-off-by: James Bottomley # # drivers/scsi/scsi_transport_spi.c # 2004/06/03 11:23:05-05:00 akpm@osdl.org +1 -1 # scsi_transport_spi.c build fix # # ChangeSet # 2004/06/03 20:06:32-05:00 akpm@osdl.org # [PATCH] Lost 2.4 change for BusLogic info # # From: Alan Cox # # I think it might be a good thing if this was fixed to match 2.4 # # Signed-off-by: Andrew Morton # Signed-off-by: James Bottomley # # drivers/scsi/Kconfig # 2004/06/03 01:56:10-05:00 akpm@osdl.org +1 -3 # Lost 2.4 change for BusLogic info # # ChangeSet # 2004/06/03 20:05:10-05:00 hch@lst.de # [PATCH] scsi_dev_flags must be __initdata, not __init # # __init is only for functions # # Signed-off-by: James Bottomley # # drivers/scsi/scsi_devinfo.c # 2004/05/31 16:05:51-05:00 hch@lst.de +1 -1 # scsi_dev_flags must be __initdata, not __init # # ChangeSet # 2004/06/03 20:03:33-05:00 rddunlap@osdl.org # [PATCH] fix check_region usage in eata_pio # # Based on "eata_generic.h", this SCSI controller has 9 bytes of IO # space, not 8, so update request_region(), release_region(), and # n_io_port to use 9 instead of 8. # # diffstat:= # drivers/scsi/eata_pio.c | 16 ++++++++-------- # 1 files changed, 8 insertions(+), 8 deletions(-) # # Signed-off-by: James Bottomley # # drivers/scsi/eata_pio.c # 2004/06/01 17:29:30-05:00 rddunlap@osdl.org +8 -8 # fix check_region usage in eata_pio # # ChangeSet # 2004/06/03 20:01:03-05:00 James.Bottomley@steeleye.com # [PATCH] Advansys: Add basic highmem/DMA support # # On Wed, 2004-05-19 at 05:38, Herbert Xu wrote: # > This is a resend of my patch that adds basic support for highmem # > on i386 to the advansys driver. It has been tested in # > http://bugs.debian.org/245238. # > # > The maintainer email address listed in the MAINTAINERS file bounced # > so someone else will need to look at this. # # I converted your patch to use the DMA-API. This will be necessary to # use the EISA advansys boards---Of course, EISA won't work properly until # the entire driver is converted to the driverfs probing API, sigh, but # I'll get around to that eventually. # # OK, and I couldn't resist getting rid of the stupid in_isr locking on # the done function. # # Converted from original patch by Herbert Xu # Signed-off-by: James Bottomley # # drivers/scsi/advansys.c # 2004/05/31 12:14:32-05:00 James.Bottomley@steeleye.com +95 -50 # Add basic highmem/DMA support # # ChangeSet # 2004/06/03 19:59:37-05:00 hch@lst.de # [PATCH] remove obsolete API usage from dpt_i2o # # Signed-off-by: James Bottomley # # drivers/scsi/dpti.h # 2004/05/31 08:34:32-05:00 hch@lst.de +12 -12 # remove obsolete API usage from dpt_i2o # # drivers/scsi/dpt_i2o.c # 2004/05/31 08:35:50-05:00 hch@lst.de +28 -25 # remove obsolete API usage from dpt_i2o # # ChangeSet # 2004/06/03 19:58:15-05:00 hch@lst.de # [PATCH] fix sym53c416 check_region usage # # again, the init code could use some bigger rework, but let's stick to # the minimal fix until we have some testers. # # Signed-off-by: James Bottomley # # drivers/scsi/sym53c416.c # 2004/05/31 07:18:12-05:00 hch@lst.de +41 -42 # fix sym53c416 check_region usage # # ChangeSet # 2004/06/03 19:56:47-05:00 hch@lst.de # [PATCH] fix check_region usage in eata_pio # # I'd love to rework the init sequence a bit more, but without beeing able # to actually test the driver I'd rather stick to the bulletproof fix. # # Signed-off-by: James Bottomley # # drivers/scsi/eata_pio.c # 2004/05/31 06:30:48-05:00 hch@lst.de +58 -44 # fix check_region usage in eata_pio # # ChangeSet # 2004/06/03 19:55:15-05:00 hch@lst.de # [PATCH] handle NO_SENSE in sd # # Original patch from # http://marc.theaimsgroup.com/?l=linux-scsi&m=107428662718579&w=2 # reworked to according to James' suggestion to handle NO_SENSE the same # as RECOVERED_ERROR. # # Signed-off-by: James Bottomley # # drivers/scsi/sd.c # 2004/05/31 05:53:01-05:00 hch@lst.de +4 -4 # handle NO_SENSE in sd # # ChangeSet # 2004/06/03 19:53:41-05:00 hch@lst.de # [PATCH] remove sleep_on_timeout usage in megaraid # # megaraid does sleep_on_timeout on a stack waitq - use msleep instead. # # Signed-off-by: James Bottomley # # drivers/scsi/megaraid.c # 2004/05/30 08:04:14-05:00 hch@lst.de +3 -6 # remove sleep_on_timeout usage in megaraid # # ChangeSet # 2004/06/03 19:52:05-05:00 g.liakhovetski@gmx.de # [PATCH] tmscsim: Store pDCB in device->hostdata # # On Sun, 23 May 2004, Christoph Hellwig wrote: # > The other thing is that most calls to dc390_findDCB could probably be # > replaced with stroing the pDCB in scsi_device->hostdata on slave_alloc, # > but that could aswell be done in an incremental patch. # # Done in the attached patch. Tested as usual and a bit harder. # # Signed-off-by: James Bottomley # # drivers/scsi/tmscsim.c # 2004/05/28 18:17:17-05:00 g.liakhovetski@gmx.de +8 -10 # tmscsim: Store pDCB in device->hostdata # # ChangeSet # 2004/06/03 19:50:16-05:00 hch@lst.de # [PATCH] fix dpt_i2o compilation for alpha and sparc # # This patch has been floating around for ages, got reminded of it again # when looking at the debian kernel package. # # Signed-off-by: James Bottomley # # drivers/scsi/dpt_i2o.c # 2004/05/10 07:21:38-05:00 hch@lst.de +2 -2 # fix dpt_i2o compilation for alpha and sparc # # ChangeSet # 2004/06/03 20:43:58-04:00 len.brown@intel.com # [ACPI] acpi=force overrides blacklist pci=noacpi or acpi=noirq (Andi Kleen) # # arch/i386/kernel/dmi_scan.c # 2004/06/03 20:43:48-04:00 len.brown@intel.com +12 -6 # acpi=force overrides blacklist pci=noacpi or acpi=noirq (Andi Kleen) # # ChangeSet # 2004/06/03 19:41:12-05:00 aradford@amcc.com # [PATCH] 2/2 3ware 9000 SATA-RAID driver v2.26.00.009 # # Signed-off-by: James Bottomley # # include/linux/pci_ids.h # 2004/05/21 17:33:51-05:00 aradford@amcc.com +2 -0 # 3ware 9000 SATA-RAID driver v2.26.00.009 # # drivers/scsi/Makefile # 2004/05/21 17:24:55-05:00 aradford@amcc.com +1 -0 # 3ware 9000 SATA-RAID driver v2.26.00.009 # # drivers/scsi/Kconfig # 2004/05/21 18:29:59-05:00 aradford@amcc.com +12 -1 # 3ware 9000 SATA-RAID driver v2.26.00.009 # # drivers/scsi/3w-9xxx.h # 2004/05/26 15:17:26-05:00 aradford@amcc.com +726 -0 # 3ware 9000 SATA-RAID driver v2.26.00.009 # # MAINTAINERS # 2004/05/21 17:56:25-05:00 aradford@amcc.com +14 -0 # 3ware 9000 SATA-RAID driver v2.26.00.009 # # drivers/scsi/3w-9xxx.h # 2004/05/26 15:17:26-05:00 aradford@amcc.com +0 -0 # BitKeeper file /home/jejb/BK/scsi-misc-2.6/drivers/scsi/3w-9xxx.h # # ChangeSet # 2004/06/03 19:39:01-05:00 aradford@amcc.com # [PATCH] 1/2 3ware 9000 SATA-RAID driver v2.26.00.009 # # Here is an updated version v2.26.00.009 of the 3ware 9000 SATA-RAID driver. # # Changes in this release: # - Convert driver to pci_driver format. # - Remove proc interface, add sysfs attributes. # - Return SCSI_MLQUEUE_HOST_BUSY when card status is busy. # # Future versions may include: # - PAE fix # - 80 column wrap fixes # - Remove more prototypes by re-ordering functions. # - sysfs queue depth adjustment instead of module_param # # Signed-off-by: James Bottomley # # drivers/scsi/3w-9xxx.c # 2004/05/26 15:17:24-05:00 aradford@amcc.com +2144 -0 # 3ware 9000 SATA-RAID driver v2.26.00.009 # # drivers/scsi/3w-9xxx.c # 2004/05/26 15:17:24-05:00 aradford@amcc.com +0 -0 # BitKeeper file /home/jejb/BK/scsi-misc-2.6/drivers/scsi/3w-9xxx.c # # ChangeSet # 2004/06/03 17:37:14-07:00 mochel@digitalimplant.org # [Driver Model] Add default device attributes to struct bus_type. # # - Add struct bus_type::dev_attrs, which is an array of device # attributes that are added to each device as they are registered. # # - Also make sure that we don't hang when removing bus attributes # if adding one failed.. # # include/linux/device.h # 2004/06/03 17:37:08-07:00 mochel@digitalimplant.org +1 -0 # [Driver Model] Add default device attributes to struct bus_type. # # drivers/base/bus.c # 2004/06/03 17:37:08-07:00 mochel@digitalimplant.org +35 -1 # [Driver Model] Add default device attributes to struct bus_type. # # ChangeSet # 2004/06/03 17:14:32-07:00 greg@kroah.com # USB: remove "devfs" message from kernel log for usb-serial driver # # No one uses devfs on 2.6 :) # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/serial/bus.c # 2004/06/03 17:14:00-07:00 greg@kroah.com +2 -2 # USB: remove "devfs" message from kernel log for usb-serial driver # # No one uses devfs on 2.6 :) # # Signed-off-by: Greg Kroah-Hartman # # ChangeSet # 2004/06/03 17:05:41-07:00 mochel@digitalimplant.org # [Driver Model] Add default attributes for struct bus_type. # # - Similar to default attributes for struct class, this is an array # of attributes, terminated with an attribute with a NULL name, that # are added when the bus is registered, and removed when the bus is # unregistered. # # include/linux/device.h # 2004/06/03 17:05:35-07:00 mochel@digitalimplant.org +2 -0 # [Driver Model] Add default attributes for struct bus_type. # # drivers/base/bus.c # 2004/06/03 17:05:35-07:00 mochel@digitalimplant.org +37 -0 # [Driver Model] Add default attributes for struct bus_type. # # ChangeSet # 2004/06/03 16:50:29-07:00 scott@concord.org # [PATCH] USB: kyocera 7135 patch # # Here is a patch based on 2.6.7-rc2 that makes the Kyocera 7135 work. # The Kyocera appears to have the same setup as the Trio. Its endpoints # are laid out like this: # # > >>>type address # > >>>usb bulk out: 0x01 # > >>>usb interrupt in: 0x82 # > >>>usb bulk out: 0x03 # > >>>usb bulk in: 0x84 # The last two are the ones used for the syncing communication. # # So the patch adds the ids for the kyocera and makes the treo_attach # function handle the kyocera too. I also changed the comment; it appears # there was an error in the original comment about the treo: # # Joe Nardelli wrote: # > Actually, the comment isn't quite right for Treos either (oops). It # > should read: # > # > ... # > 1st bulk in endpoint to communicate with the 2nd bulk out endpoint # > ... # # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/serial/visor.h # 2004/06/02 07:09:27-07:00 scott@concord.org +3 -0 # USB: kyocera 7135 patch # # drivers/usb/serial/visor.c # 2004/06/02 10:03:04-07:00 scott@concord.org +11 -7 # USB: kyocera 7135 patch # # ChangeSet # 2004/06/03 16:49:51-07:00 stern@rowland.harvard.edu # [PATCH] USB: 2.6-BK usb (printing) broken # # On Sat, 29 May 2004, Jens Axboe wrote: # # > > > Both 2.6.7-rc1 and BK current spit out a bunch of: # > > > # > > > drivers/usb/class/usblp.c: usblp1: nonzero read/write bulk status received: -2 # > > > drivers/usb/class/usblp.c: usblp1: error -2 reading from printer # > > > drivers/usb/class/usblp.c: usblp1: error -115 reading from printer # > > > drivers/usb/class/usblp.c: usblp1: error -115 reading from printer # > > > ... # > > > # > > > (about ~80 of that last line) but work for me. # # > Sorry wasn't quite clear - the above messages are with 2.6.7-rc1 and # > current bk with your patch backed out. Current bk with the patch reports # > only the timeouts I originally listed. # # Okay, I feel better. # # It looks like those errors you see are caused by a bug in the usblp # driver. The patch below ought to help. # # drivers/usb/class/usblp.c # 2004/05/29 07:25:51-07:00 stern@rowland.harvard.edu +1 -0 # USB: 2.6-BK usb (printing) broken # # ChangeSet # 2004/06/03 12:38:31-07:00 hannal@us.ibm.com # [PATCH] Add class support to cpuid.c # # This patch adds class support to arch/i386/kernel/cpuid.c. This enables udev # support. I have tested on a 2-way SMP system and on a 2-way built as UP. # Here are the results for the SMP: # # [hlinder@w-hlinder2 hlinder]$ tree /sys/class/cpuid # /sys/class/cpuid # |-- cpu0 # | `-- dev # `-- cpu1 # `-- dev # # 2 directories, 2 files # [hlinder@w-hlinder2 hlinder]$ more /sys/class/cpuid/cpu0/dev # 203:0 # [hlinder@w-hlinder2 hlinder]$ more /sys/class/cpuid/cpu1/dev # 203:1 # [hlinder@w-hlinder2 hlinder]$ # # And for the UP: # # [root@w-hlinder2 root]# tree /sys/class/cpuid # /sys/class/cpuid # `-- cpu0 # `-- dev # # 1 directory, 1 file # # # Signed-off-by: Greg Kroah-Hartman # # arch/i386/kernel/cpuid.c # 2004/06/02 14:22:27-07:00 hannal@us.ibm.com +36 -2 # Add class support to cpuid.c # # ChangeSet # 2004/06/03 12:06:36-07:00 greg@kroah.com # Cset exclude: vojtech@suse.cz|ChangeSet|20040602201956|45549 # # Oops, this broke device removal pretty badly :( # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/storage/transport.c # 2004/06/03 12:06:28-07:00 greg@kroah.com +0 -0 # Exclude # # drivers/usb/storage/isd200.c # 2004/06/03 12:06:28-07:00 greg@kroah.com +0 -0 # Exclude # # ChangeSet # 2004/06/03 11:42:20-07:00 greg@kroah.com # Driver Model: Cleanup the i2c driver silly use of the *ATTR macros which just broke # # # Signed-off-by: Greg Kroah-Hartman # # drivers/i2c/chips/w83l785ts.c # 2004/06/03 11:41:43-07:00 greg@kroah.com +2 -2 # Driver Model: Cleanup the i2c driver silly use of the *ATTR macros which just broke # # # Signed-off-by: Greg Kroah-Hartman # # drivers/i2c/chips/w83781d.c # 2004/06/03 11:41:44-07:00 greg@kroah.com +15 -15 # Driver Model: Cleanup the i2c driver silly use of the *ATTR macros which just broke # # # Signed-off-by: Greg Kroah-Hartman # # drivers/i2c/chips/w83627hf.c # 2004/06/03 11:41:43-07:00 greg@kroah.com +49 -49 # Driver Model: Cleanup the i2c driver silly use of the *ATTR macros which just broke # # # Signed-off-by: Greg Kroah-Hartman # # drivers/i2c/chips/via686a.c # 2004/06/03 11:41:44-07:00 greg@kroah.com +9 -9 # Driver Model: Cleanup the i2c driver silly use of the *ATTR macros which just broke # # # Signed-off-by: Greg Kroah-Hartman # # drivers/i2c/chips/lm85.c # 2004/06/03 11:41:43-07:00 greg@kroah.com +13 -13 # Driver Model: Cleanup the i2c driver silly use of the *ATTR macros which just broke # # # Signed-off-by: Greg Kroah-Hartman # # drivers/i2c/chips/lm78.c # 2004/06/03 11:41:43-07:00 greg@kroah.com +11 -11 # Driver Model: Cleanup the i2c driver silly use of the *ATTR macros which just broke # # # Signed-off-by: Greg Kroah-Hartman # # drivers/i2c/chips/it87.c # 2004/06/03 11:41:44-07:00 greg@kroah.com +11 -11 # Driver Model: Cleanup the i2c driver silly use of the *ATTR macros which just broke # # # Signed-off-by: Greg Kroah-Hartman # # drivers/i2c/chips/asb100.c # 2004/06/03 11:41:43-07:00 greg@kroah.com +33 -33 # Driver Model: Cleanup the i2c driver silly use of the *ATTR macros which just broke # # # Signed-off-by: Greg Kroah-Hartman # # ChangeSet # 2004/06/03 11:40:44-07:00 greg@kroah.com # Driver Model: More cleanup of silly scsi use of the *ATTR macros... # # Signed-off-by: Greg Kroah-Hartman # # drivers/scsi/scsi_debug.c # 2004/06/03 11:40:14-07:00 greg@kroah.com +8 -8 # Driver Model: More cleanup of silly scsi use of the *ATTR macros... # # Signed-off-by: Greg Kroah-Hartman # # ChangeSet # 2004/06/03 10:41:29-07:00 mochel@digitalimplant.org # [Driver Model] Add default attributes for classes class devices. # # - add struct class::class_attrs, which is designed to point to an # array of class_attributes that are added when the class is registered # and removed when the class is unregistered. # This allows for more consolidated and cleaner definition of and # management of attributes. # # - Add struct class::class_dev_attrs to do something similarly for # class devices. Each class device that is registered with the class # gets that set of attributes added for them, and subsequently removed # when the device is unregistered. # # Each array depends on a terminating attribute with a NULL name. Hint: # use the new __ATTR_NULL macro to terminate it. # # include/linux/device.h # 2004/06/03 10:41:22-07:00 mochel@digitalimplant.org +3 -0 # [Driver Model] Add default attributes for classes class devices. # # ChangeSet # 2004/06/03 10:27:16-07:00 mochel@digitalimplant.org # [sysfs] Add attr_name() macro # # - Returns the name of an embedded attribute in a higher-level # attribute. # # ChangeSet # 2004/06/03 09:48:45-07:00 greg@kroah.com # Add basic sysfs support for raw devices # # This is needed by people who use udev and want raw devices. # SuSE is shipping with this patch. # # Signed-off-by: Greg Kroah-Hartman # # drivers/char/raw.c # 2004/06/03 09:48:22-07:00 greg@kroah.com +24 -1 # Add basic sysfs support for raw devices # # This is needed by people who use udev and want raw devices. # SuSE is shipping with this patch. # # Signed-off-by: Greg Kroah-Hartman # # ChangeSet # 2004/06/03 08:44:34-07:00 mochel@digitalimplant.org # [Driver Model] Fix up silly scsi usage of DEVICE_ATTR() macros. # # - Hey, just because the macro incorrectly included a ';' doesn't mean # one shouldn't add one on their own.. (Or at least be consistent.) # # Signed-off-by: Greg Kroah-Hartman # # drivers/scsi/scsi_sysfs.c # 2004/06/03 08:44:27-07:00 mochel@digitalimplant.org +2 -2 # [Driver Model] Fix up silly scsi usage of DEVICE_ATTR() macros. # # ChangeSet # 2004/06/03 00:45:08-04:00 len.brown@intel.com # [ACPI] fix !CONFIG_PCI build (Bjorn Helgaas) # # include/linux/acpi.h # 2004/06/02 11:02:20-04:00 len.brown@intel.com +2 -2 # fix !CONFIG_PCI build (Bjorn Helgaas) # # arch/i386/kernel/acpi/boot.c # 2004/06/02 11:02:20-04:00 len.brown@intel.com +5 -4 # fix !CONFIG_PCI build (Bjorn Helgaas) # # ChangeSet # 2004/06/02 21:08:30-04:00 p.lavarre@ieee.org # [PATCH] ata_check_bmdma # # Move hand-coded BMDMA status check into separate function. # # drivers/scsi/libata-core.c # 2004/05/27 19:56:57-04:00 p.lavarre@ieee.org +18 -10 # ata_check_bmdma # # ChangeSet # 2004/06/02 17:10:52-07:00 mochel@digitalimplant.org # [Driver Model] Consolidate attribute definition macros # # - Create __ATTR(), __ATTR_RO(), and __ATTR_NULL macros to help define # attributes in a neat, short-hand form. # # - Apply these macros to the attribute definition in include/linux/device.h # # - Note: These can be used to more cleanly define attributes in your own # code. e.g: # # static struct device_attribute attrs[] = { # __ATTR_RO(foo), # __ATTR_RO(bar), # __ATTR(baz,0666,baz_show,baz_store), # __ATTR_NULL, # }; # # ...etc. # # Signed-off-by: Greg Kroah-Hartman # # include/linux/device.h # 2004/06/02 17:01:55-07:00 mochel@digitalimplant.org +6 -25 # [Driver Model] Consolidate object attribute definition. # # ChangeSet # 2004/06/02 14:07:26-07:00 stern@rowland.harvard.edu # [PATCH] USB: Move usb_new_device() et al. into hub.c # # This patch moves usb_new_device(), usb_disconnect(), usb_choose_address(), # and usb_release_address() from usb.c to hub.c. As a side benefit, # choose_address() and release_address() can now become static. The other # two can't, because they have to be exported for use by HCD's when # registering/unregistering root hubs. # # Some other features of the patch: # # The usb_snddefctrl() and usb_rcvdefctrl() macros have been # removed, since only one of them was used and only in one spot. # # The comment about configuration choice needing to interact with # hub power budgeting has been moved in accordance with David's # wish. usb_new_device() checks to make sure a configuration # could be chosen and logs a warning if no choice was made. # # Following Linus's preference, the #ifdef preprocessor stuff has # been removed from around the calls the show_string routine. It # is now defined as a non-inline routine when debugging is enabled # and as an inline no-op otherwise (the compiler will optimize # away the useless tests). # # # Signed-off-by: Alan Stern # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/core/usb.c # 2004/06/01 09:54:17-07:00 stern@rowland.harvard.edu +0 -229 # USB: Move usb_new_device() et al. into hub.c # # drivers/usb/core/hub.c # 2004/06/01 09:54:17-07:00 stern@rowland.harvard.edu +231 -3 # USB: Move usb_new_device() et al. into hub.c # # drivers/usb/core/hcd.h # 2004/06/01 09:54:17-07:00 stern@rowland.harvard.edu +0 -7 # USB: Move usb_new_device() et al. into hub.c # # ChangeSet # 2004/06/02 14:06:55-07:00 stern@rowland.harvard.edu # [PATCH] USB: Minor cleanups for hub driver # # Greg: # # This patch takes care of some small miscellaneous items in hub.c: # # Move the definition of CONFIG to the right place; # # Print the proper value for submission status in the error log; # # Remove an unused list of all hubs; # # Remove some unneeded braces; # # Kill an accidentally-resurrected comment. # # Signed-off-by: Alan Stern # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/core/hub.h # 2004/06/01 09:31:11-07:00 stern@rowland.harvard.edu +0 -1 # USB: Minor cleanups for hub driver # # drivers/usb/core/hub.c # 2004/06/01 09:39:04-07:00 stern@rowland.harvard.edu +9 -25 # USB: Minor cleanups for hub driver # # ChangeSet # 2004/06/02 13:55:44-07:00 oliver@neukum.org # [PATCH] USB: fix race between disconnect and write of acm driver # # acm uses a workqueue to defer part of a write operation. # In case of disconnect this work must be waited for. # - fix race between write and disconnect # # Signed-off-by: Oliver Neukum # Signed-off-by: Vojtech Pavlik # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/class/cdc-acm.c # 2004/05/31 08:13:14-07:00 oliver@neukum.org +2 -0 # USB: fix race between disconnect and write of acm driver # # ChangeSet # 2004/06/02 13:49:28-07:00 oliver@neukum.org # [PATCH] USB: fix racy access to urb->status in cdc acm driver # # Hi, # # fix access to urb->status by introduction of an explicit flag # for finished data transfer. # - fix racy access to urb->status # # Signed-off-by: Oliver Neukum # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/class/cdc-acm.h # 2004/05/31 08:02:12-07:00 oliver@neukum.org +1 -0 # USB: fix racy access to urb->status in cdc acm driver # # drivers/usb/class/cdc-acm.c # 2004/05/31 08:02:12-07:00 oliver@neukum.org +10 -6 # USB: fix racy access to urb->status in cdc acm driver # # ChangeSet # 2004/06/02 13:36:24-07:00 oliver@neukum.org # [PATCH] USB: error handling of open of acm driver # # this adds error handling to the open method of the cdc acm driver. # The change set is relative to my last patch rewriting probe. # - add error handling to open method # # # Signed-off-by: Oliver Neukum # Signed-off-by: Vojtech Pavlik # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/class/cdc-acm.c # 2004/05/31 06:54:36-07:00 oliver@neukum.org +23 -8 # USB: error handling of open of acm driver # # ChangeSet # 2004/06/02 13:31:54-07:00 oliver@neukum.org # [PATCH] USB: proper evaluation of the union descriptor for CDC ACM # # this changes acm_probe() to using the proper union descriptor. # It contains the workaround David suggested. Please apply. # # - fix probing to use cdc union descriptor # # Signed-off-by: Oliver Neukum # Signed-off-by: Vojtech Pavlik # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/class/cdc-acm.c # 2004/05/30 03:56:45-07:00 oliver@neukum.org +100 -174 # USB: proper evaluation of the union descriptor for CDC ACM # # drivers/usb/class/cdc-acm.h # 2004/05/30 03:56:45-07:00 oliver@neukum.org +114 -0 # USB: proper evaluation of the union descriptor for CDC ACM # # drivers/usb/class/cdc-acm.h # 2004/05/30 03:56:45-07:00 oliver@neukum.org +0 -0 # BitKeeper file /home/greg/linux/BK/usb-2.6/drivers/usb/class/cdc-acm.h # # ChangeSet # 2004/06/02 13:25:59-07:00 david-b@pacbell.net # [PATCH] USB: usb retry cleanups # # This patch stops changing the reported fault mode in cases where retries of # GET_DESCRIPTOR fail because the device just doesn't have such a descriptor. # Plus, it stops printing messages when retrying. # # It also reduces the number of retries; the first retry seems to resolve most # of these firmware problems. # # Signed-Off-By: David Brownell # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/core/message.c # 2004/06/01 08:10:37-07:00 david-b@pacbell.net +1 -4 # USB: usb retry cleanups # # ChangeSet # 2004/06/02 13:25:08-07:00 david-b@pacbell.net # [PATCH] USB: pxa/rndis device descriptor # # This fixes a problem that all pxa2xx_udc g_ether devices # would run into. They'd give the wrong descriptors, like: # # > --------msg1- usbview ---------- # > Device Descriptor: bcdUSB: 0x0200 # > bDeviceClass: 0xFF # > bDeviceSubClass: 0x00 # > bDeviceProtocol: 0x00 # > bMaxPacketSize0: 0x10 (16) # # Windows doesn't like RNDIS-supporting devices to point # out that they're really vendor-specific. So this patch # makes sure they don't. # # Signed-off-by: David Brownell # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/gadget/ether.c # 2004/05/29 04:01:44-07:00 david-b@pacbell.net +10 -11 # USB: pxa/rndis device descriptor # # ChangeSet # 2004/06/02 13:19:23-07:00 numlock@freesurf.ch # [PATCH] Add support for ISD-300 controller # # This patch adds support in unusual_devs.h for the ISD-300 USB controller # used in CD-ROM enclosures. # # With it, since 2.6.0 it allowed me to move gigabytes of data and worked # without a hitch. # # # Signed-off-by: Andrew Morton # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/storage/unusual_devs.h # 2004/05/25 20:32:24-07:00 numlock@freesurf.ch +6 -0 # Add support for ISD-300 controller # # ChangeSet # 2004/06/02 13:18:53-07:00 stern@rowland.harvard.edu # [PATCH] USB: Fix disconnect bug in dummy_hcd # # Greg: # # This patch fixes a bug in disconnect handling for the dummy_hcd driver. # After a disconnect the driver would still accept URBs for endpoint 0, # leading to an oops. It also improves the ad-hoc technique used by the # driver to track its gadget's struct usb_device and fixes the way # port-power changes are handled. Please apply. # # Alan Stern # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/gadget/dummy_hcd.c # 2004/05/17 10:12:20-07:00 stern@rowland.harvard.edu +11 -4 # USB: Fix disconnect bug in dummy_hcd # # ChangeSet # 2004/06/02 13:18:15-07:00 stern@rowland.harvard.edu # [PATCH] USB: unusual_devs.h update # # On Mon, 3 May 2004, zcat wrote: # # > I am trying to get my camera going as a webcam (concord EyeQ Duo in PC # > mode, not HDD mode) with the 2.6.4 kernel using the se401 driver # > (compiled in).. It logged the following message, which doesn't mean much # > to me so I have no idea if it's useful information or not; # > # > May 3 21:08:11 mrsnorris kernel: usb 1-1: new full speed USB device # > using address 2 # > May 3 21:08:16 mrsnorris kernel: usb 1-1: control timeout on ep0out # > May 3 21:08:16 mrsnorris kernel: usb-storage: This device # > (0595,4343,0100 S 00 P 00) has an unneeded Protocol entry in unusual_devs.h # > May 3 21:08:16 mrsnorris kernel: Please send a copy of this message # > to # # This fixes the "unneeded Protocol entry" message. We never solved the # control timeout problem. # # Alan Stern # # # Signed-off-by: Greg Kroah-Hartman # # drivers/usb/storage/unusual_devs.h # 2004/05/03 04:15:35-07:00 stern@rowland.harvard.edu +1 -1 # USB: unusual_devs.h update # # ChangeSet # 2004/06/02 15:37:59-04:00 rl@hellgate.ch # [PATCH] Add rhine_power_init(): get power regs into sane state # # Add rhine_power_init(): get power regs into sane state. # Move the respective code out of rhine_init_one. Add code for # two additional patterns (Rhine III). # # Signed-off-by: Roger Luethi # # drivers/net/via-rhine.c # 2004/06/01 20:00:00-04:00 rl@hellgate.ch +35 -20 # Add rhine_power_init(): get power regs into sane state # # ChangeSet # 2004/06/02 15:37:51-04:00 rl@hellgate.ch # [PATCH] Rewrite special-casing # # Use PCI revision to determine special cases. One bit field replaces a # bunch of data structures holding special case information. # # Replace chip_id, drv_flags in rhine_private with quirks # # Remove enum rhine_chips, struct rhine_chip_info (and array), # enum chip_capability_flags # # Add enum rhine_revs, enum rhine_quirks (some values in preparation for # subsequent changes) # # wait_for_reset() and enable_mmio() now use quirks instead of chip_id # # Remove model names from ident strings for now. # # Signed-off-by: Roger Luethi # # drivers/net/via-rhine.c # 2004/06/01 20:00:00-04:00 rl@hellgate.ch +76 -58 # Rewrite special-casing # # ChangeSet # 2004/06/02 15:37:42-04:00 rl@hellgate.ch # [PATCH] Return codes for rhine_init_one # # Use return codes in rhine_init_one instead of -ENODEV for all errors. # # Signed-off-by: Roger Luethi # # drivers/net/via-rhine.c # 2004/06/01 20:00:00-04:00 rl@hellgate.ch +15 -7 # Return codes for rhine_init_one # # ChangeSet # 2004/06/02 15:37:34-04:00 rl@hellgate.ch # [PATCH] Nuke all pci_flags # # All this code together can be replaced with a single #ifdef USE_MMIO. # # Signed-off-by: Roger Luethi # # drivers/net/via-rhine.c # 2004/06/01 20:00:00-04:00 rl@hellgate.ch +11 -20 # Nuke all pci_flags # # ChangeSet # 2004/06/02 15:37:26-04:00 rl@hellgate.ch # [PATCH] Nuke default_port, references to if_port, medialock # # As is, code doesn't do anything useful. # # Signed-off-by: Roger Luethi # # drivers/net/via-rhine.c # 2004/06/01 20:00:00-04:00 rl@hellgate.ch +0 -10 # Nuke default_port, references to if_port, medialock # # ChangeSet # 2004/06/02 15:37:18-04:00 rl@hellgate.ch # [PATCH] Nuke HasESIPhy and related code # # This has been dead code forever. # # Signed-off-by: Roger Luethi # # drivers/net/via-rhine.c # 2004/06/01 20:00:00-04:00 rl@hellgate.ch +2 -3 # Nuke HasESIPhy and related code # # ChangeSet # 2004/06/02 15:37:09-04:00 rl@hellgate.ch # [PATCH] Nuke CanHaveMII and related code # # All Rhines can have a MII. # # Signed-off-by: Roger Luethi # # drivers/net/via-rhine.c # 2004/06/01 20:00:00-04:00 rl@hellgate.ch +26 -40 # Nuke CanHaveMII and related code # # ChangeSet # 2004/06/02 15:37:01-04:00 rl@hellgate.ch # [PATCH] Nuke HAS_IP_COPYSUM # # HAS_IP_COPYSUM has been utterly meaningless for a long time. # # Signed-off-by: Roger Luethi # # drivers/net/via-rhine.c # 2004/06/01 20:00:00-04:00 rl@hellgate.ch +0 -5 # Nuke HAS_IP_COPYSUM # # ChangeSet # 2004/06/01 12:39:07-05:00 jejb@raven.il.steeleye.com # Merge # # drivers/scsi/sr_ioctl.c # 2004/06/01 12:38:49-05:00 jejb@raven.il.steeleye.com +0 -0 # SCCS merged # # drivers/scsi/sg.c # 2004/06/01 12:36:37-05:00 jejb@raven.il.steeleye.com +0 -0 # Auto merged # # drivers/scsi/scsi_devinfo.c # 2004/06/01 12:36:37-05:00 jejb@raven.il.steeleye.com +0 -0 # Auto merged # # drivers/scsi/constants.c # 2004/06/01 12:36:36-05:00 jejb@raven.il.steeleye.com +0 -0 # Auto merged # # ChangeSet # 2004/05/29 10:47:12-05:00 akpm@osdl.org # [PATCH] remove calls of obsolete scsi APIs in i2o_scsi # # From: Markus Lidel # # Here is a patch from Christoph Hellwig, which removes calls of the obsolete # scsi API in i2o_scsi. # # Signed-off-by: Andrew Morton # Signed-off-by: James Bottomley # # drivers/message/i2o/i2o_scsi.c # 2004/05/28 11:21:05-05:00 akpm@osdl.org +34 -57 # remove calls of obsolete scsi APIs in i2o_scsi # # ChangeSet # 2004/05/29 10:44:40-05:00 Markus.Lidel@shadowconnect.com # [PATCH] get I2O working with Adaptec's zero channel # # this patch now gets the mentioned controllers working with the I2O # subsystem. It tested on two different system with ASR-2005S and # ASR-2010S and reported as working. # # It's also tested on i686 and x86_64 with already working I2O controllers # without a problem. # # Signed-off-by: James Bottomley # # include/linux/i2o.h # 2004/05/24 18:53:22-05:00 Markus.Lidel@shadowconnect.com +9 -5 # get I2O working with Adaptec's zero channel # # drivers/message/i2o/i2o_scsi.c # 2004/05/24 18:56:46-05:00 Markus.Lidel@shadowconnect.com +3 -3 # get I2O working with Adaptec's zero channel # # drivers/message/i2o/i2o_core.c # 2004/05/24 19:07:35-05:00 Markus.Lidel@shadowconnect.com +104 -55 # get I2O working with Adaptec's zero channel # # drivers/message/i2o/i2o_config.c # 2004/05/24 16:57:44-05:00 Markus.Lidel@shadowconnect.com +1 -1 # get I2O working with Adaptec's zero channel # # drivers/message/i2o/i2o_block.c # 2004/05/24 18:56:06-05:00 Markus.Lidel@shadowconnect.com +4 -4 # get I2O working with Adaptec's zero channel # # ChangeSet # 2004/05/29 10:40:12-05:00 brking@us.ibm.com # [PATCH] ipr operational timeout oops # # This patch fixes an oops that can occur if an adapter times # out coming operational. # # Signed-off-by: James Bottomley # # drivers/scsi/ipr.h # 2004/05/26 22:30:13-05:00 brking@us.ibm.com +2 -2 # ipr operational timeout oops # # drivers/scsi/ipr.c # 2004/05/26 17:22:36-05:00 brking@us.ibm.com +1 -0 # ipr operational timeout oops # # ChangeSet # 2004/05/29 10:37:41-05:00 g.liakhovetski@gmx.de # [PATCH] tmscsim: convert to slave_... # # On Wed, 26 May 2004, Christoph Hellwig wrote: # > Looks like a way to go. I'm not sure what scan_device is supposed to # > do as I already wrote, but from looking at when it's set/cleared I'm # > pretty sure it tries to indicate whethere we're currently scanning for # > devices. And useing slave_alloc/slave_configure is a much safer way to # > find that out then guessing from the commands sent. # # Attached is a patch, that moves scan_device to # slave_alloc/_configure/_destroy, as you suggested (to be precise, as I # understood your suggestion:-)) # # Signed-off-by: James Bottomley # # drivers/scsi/tmscsim.h # 2004/05/27 17:52:39-05:00 g.liakhovetski@gmx.de +0 -2 # tmscsim: convert to slave_... # # drivers/scsi/tmscsim.c # 2004/05/27 17:57:12-05:00 g.liakhovetski@gmx.de +19 -14 # tmscsim: convert to slave_... # # drivers/scsi/scsiiom.c # 2004/05/27 17:32:23-05:00 g.liakhovetski@gmx.de +21 -41 # tmscsim: convert to slave_... # # drivers/scsi/dc390.h # 2004/05/27 17:57:23-05:00 g.liakhovetski@gmx.de +1 -13 # tmscsim: convert to slave_... # # ChangeSet # 2004/05/29 10:33:13-05:00 akpm@osdl.org # [PATCH] unchecked kmalloc in sr_audio_ioctl() # # From: "Luiz Fernando N. Capitulino" # # # Signed-off-by: Andrew Morton # Signed-off-by: James Bottomley # # drivers/scsi/sr_ioctl.c # 2004/05/26 11:03:15-05:00 akpm@osdl.org +3 -0 # unchecked kmalloc in sr_audio_ioctl() # # ChangeSet # 2004/05/29 10:31:04-05:00 g.liakhovetski@gmx.de # [PATCH] tmscsim: remove DeviceCnt # # On Wed, 26 May 2004, Christoph Hellwig wrote: # > On Sun, May 23, 2004 at 11:19:58PM +0200, Guennadi Liakhovetski wrote: # > > # > > Whereas, DCBCnt is incremented on slave_alloc, decremented on # > > slave_destroy and used in a couple more places. So, is it safe to assume # > > that DeviceCnt is redundant and remove it in a next patch?... Then it # > > might be already safe to move scan_devices as you suggest? # > # > Looks like a way to go. I'm not sure what scan_device is supposed to # > do as I already wrote, but from looking at when it's set/cleared I'm # > pretty sure it tries to indicate whethere we're currently scanning for # > devices. And useing slave_alloc/slave_configure is a much safer way to # > find that out then guessing from the commands sent. # # So, here's the first one - remove DeviceCnt. # # Signed-off-by: James Bottomley # # drivers/scsi/tmscsim.h # 2004/05/26 15:23:14-05:00 g.liakhovetski@gmx.de +2 -9 # tmscsim: remove DeviceCnt # # drivers/scsi/tmscsim.c # 2004/05/26 15:24:01-05:00 g.liakhovetski@gmx.de +1 -2 # tmscsim: remove DeviceCnt # # drivers/scsi/scsiiom.c # 2004/05/26 15:23:32-05:00 g.liakhovetski@gmx.de +0 -2 # tmscsim: remove DeviceCnt # # ChangeSet # 2004/05/29 10:28:07-05:00 g.liakhovetski@gmx.de # [PATCH] tmscsim: Update version after "new API" # # The "API-update" patch, just approved by Christoph deserves a new version. # # Signed-off-by: James Bottomley # # drivers/scsi/tmscsim.c # 2004/05/26 15:16:10-05:00 g.liakhovetski@gmx.de +2 -0 # tmscsim: Update version after "new API" # # drivers/scsi/dc390.h # 2004/05/26 15:16:08-05:00 g.liakhovetski@gmx.de +1 -1 # tmscsim: Update version after "new API" # # ChangeSet # 2004/05/29 10:24:44-05:00 davej@redhat.com # [PATCH] SCSI: Correct BELKIN card reader whitelist entry. # # Should be FORCELUN not SPARSELUN ? # # Signed-off-by: James Bottomley # # drivers/scsi/scsi_devinfo.c # 2004/05/26 08:13:42-05:00 davej@redhat.com +1 -1 # SCSI: Correct BELKIN card reader whitelist entry. # # ChangeSet # 2004/05/29 10:22:47-05:00 davej@redhat.com # [PATCH] SCSI: more whitelist updates for usb card readers # # ATech 9-in-1 card reader. # Cbox 3 5 1/2 bay with 6in1 card reader # # Signed-off-by: James Bottomley # # drivers/scsi/scsi_devinfo.c # 2004/05/26 07:44:43-05:00 davej@redhat.com +3 -0 # SCSI: more whitelist updates for usb card readers # # ChangeSet # 2004/05/29 10:20:15-05:00 akpm@osdl.org # [PATCH] Stop megaraid trashing other i960 based devices # # From: Alan Cox # # In 2.4 the megaraid driver was careful to avoid stepping on wrong devices. # Specifically the megaraid3 series devices used an intel pci ID (8086:1960) # which is the generic i960 identifier not their own. # # The code to do this in 2.4 worked for almost all cases, but even that code has # mysteriously vanished in 2.6 meaning the megaraid driver trashes stuff like # promise i2o cards and compaq management cards. # # The following patch puts back the 2.4 stuff + one additional check so that the # driver isn't quite as rude as it was before. # # Signed-off-by: James Bottomley # # drivers/scsi/megaraid.c # 2004/05/22 20:59:10-05:00 akpm@osdl.org +20 -0 # Stop megaraid trashing other i960 based devices # # ChangeSet # 2004/05/29 10:17:42-05:00 lcapitulino@prefeitura.sp.gov.br # [PATCH] qla1280.c warning fix. # # drivers/scsi/qla1280.c:3124: warning: `qla1280_64bit_start_scsi' defined but not used # # Signed-off-by: James Bottomley # # drivers/scsi/qla1280.c # 2004/04/13 12:56:24-05:00 lcapitulino@prefeitura.sp.gov.br +2 -2 # qla1280.c warning fix. # # ChangeSet # 2004/05/29 10:13:11-05:00 michaelc@cs.wisc.edu # [PATCH] SCSI: remove extra queue unplug calls # # blk_insert_request will do the right thing and either unplug the queue or # call the request_fn, so users of scsi_do_req do not need to call # generic_unplug_device themselves. The attached patch just removes that # call from scsi_lib.c and the sg driver after they do a scsi_do_req. # # Signed-off-by: James Bottomley # # drivers/scsi/sg.c # 2004/05/24 20:59:40-05:00 michaelc@cs.wisc.edu +0 -1 # SCSI: remove extra queue unplug calls # # drivers/scsi/scsi_lib.c # 2004/05/24 20:59:39-05:00 michaelc@cs.wisc.edu +0 -1 # SCSI: remove extra queue unplug calls # # ChangeSet # 2004/05/29 10:11:11-05:00 jejb@mulgrave.(none) # MPT Fusion driver 3.01.07 update # # From: "Moore, Eric Dean" # # Clean up backword compatibility with 2.4 kernel and older. Patch # provided by Christoph Hellwig # # Signed-off-by: James Bottomley # # drivers/message/fusion/mptscsih.h # 2004/05/29 10:10:51-05:00 jejb@mulgrave.(none) +0 -71 # MPT Fusion driver 3.01.07 update # # drivers/message/fusion/mptscsih.c # 2004/05/29 10:10:51-05:00 jejb@mulgrave.(none) +36 -37 # MPT Fusion driver 3.01.07 update # # drivers/message/fusion/mptlan.c # 2004/05/29 10:10:51-05:00 jejb@mulgrave.(none) +3 -16 # MPT Fusion driver 3.01.07 update # # drivers/message/fusion/mptctl.c # 2004/05/29 10:10:51-05:00 jejb@mulgrave.(none) +2 -66 # MPT Fusion driver 3.01.07 update # # drivers/message/fusion/mptbase.h # 2004/05/29 10:10:51-05:00 jejb@mulgrave.(none) +7 -3 # MPT Fusion driver 3.01.07 update # # drivers/message/fusion/mptbase.c # 2004/05/29 10:10:51-05:00 jejb@mulgrave.(none) +10 -8 # MPT Fusion driver 3.01.07 update # # drivers/message/fusion/linux_compat.h # 2004/05/29 10:10:51-05:00 jejb@mulgrave.(none) +0 -189 # MPT Fusion driver 3.01.07 update # # drivers/message/fusion/isense.c # 2004/05/29 10:10:51-05:00 jejb@mulgrave.(none) +0 -8 # MPT Fusion driver 3.01.07 update # # ChangeSet # 2004/05/29 10:06:35-05:00 davej@redhat.com # [PATCH] USB / SCSI multi-card reader whitelist updates. # # For more info see Red Hat bugzilla entries #85851 and #124048 # # Signed-off-by: James Bottomley # # drivers/scsi/scsi_devinfo.c # 2004/05/04 11:44:37-05:00 davej@redhat.com +2 -0 # USB / SCSI multi-card reader whitelist updates. # # ChangeSet # 2004/05/29 10:04:10-05:00 brking@us.ibm.com # [PATCH] ipr driver version 2.0.8 # # Bump driver version # # Signed-off-by: James Bottomley # # drivers/scsi/ipr.h # 2004/05/23 21:48:22-05:00 brking@us.ibm.com +2 -2 # ipr driver version 2.0.8 # # ChangeSet # 2004/05/29 10:01:45-05:00 brking@us.ibm.com # [PATCH] ipr duplicate ioa reset fix # # This patch closes a window where if a device had a cancel all # outstanding as a result of a check condition and the adapter # was reset for some reason, a request sense would still be issued, # which would end up timing out and issuing an additional adapter # reset. It could also result in a leak of command blocks, depending # on when it timed out. # # Signed-off-by: James Bottomley # # drivers/scsi/ipr.c # 2004/05/23 21:43:47-05:00 brking@us.ibm.com +6 -0 # ipr duplicate ioa reset fix # # ChangeSet # 2004/05/29 09:59:59-05:00 brking@us.ibm.com # [PATCH] ipr scsi busy io hang # # Signed-off-by: James Bottomley # # drivers/scsi/ipr.c # 2004/05/23 21:40:15-05:00 brking@us.ibm.com +5 -1 # ipr scsi busy io hang # # ChangeSet # 2004/05/29 09:59:10-05:00 jejb@mulgrave.(none) # Convert tmcscsim to new probing interfaces # # From: Guennadi Liakhovetski # # Update the driver to use the new pci, scsi and # module interfaces. # # Modified with feedback from hch # # Signed-off-by: James Bottomley # # drivers/scsi/tmscsim.c # 2004/05/29 09:58:54-05:00 jejb@mulgrave.(none) +151 -98 # Convert tmcscsim to new probing interfaces # # drivers/scsi/scsiiom.c # 2004/05/29 09:58:54-05:00 jejb@mulgrave.(none) +12 -26 # Convert tmcscsim to new probing interfaces # # drivers/scsi/dc390.h # 2004/05/29 09:58:54-05:00 jejb@mulgrave.(none) +0 -1 # Convert tmcscsim to new probing interfaces # # ChangeSet # 2004/05/29 09:55:10-05:00 jejb@mulgrave.(none) # SCSI: slave_detach -> slave_destory comment fix # # From: Guennadi Liakhovetski # # Signed-off-by: James Bottomley # # include/scsi/scsi_host.h # 2004/05/29 09:54:55-05:00 jejb@mulgrave.(none) +2 -2 # SCSI: slave_detach -> slave_destory comment fix # # ChangeSet # 2004/05/29 09:48:47-05:00 hch@lst.de # [PATCH] move scsi debugging helpers and give them sane names # # - give the constants.c prettyprinting helpers proper scsi_ prefixed # names (and keep compat versions for 2.6.x) # - move them to include/scsi/scsi_dbg.h so now really only legacy stuff # is left in drivers/scsi/scsi.h # # Signed-off-by: James Bottomley # # drivers/scsi/scsi_syms.c # 2004/05/19 12:46:14-05:00 hch@lst.de +6 -6 # move scsi debugging helpers and give them sane names # # drivers/scsi/scsi.h # 2004/05/19 12:46:14-05:00 hch@lst.de +42 -15 # move scsi debugging helpers and give them sane names # # drivers/scsi/constants.c # 2004/05/19 12:46:14-05:00 hch@lst.de +11 -11 # move scsi debugging helpers and give them sane names # # include/scsi/scsi_dbg.h # 2004/05/13 03:45:25-05:00 hch@lst.de +18 -0 # move scsi debugging helpers and give them sane names # # include/scsi/scsi_dbg.h # 2004/05/13 03:45:25-05:00 hch@lst.de +0 -0 # BitKeeper file /home/jejb/BK/scsi-misc-2.6/include/scsi/scsi_dbg.h # # ChangeSet # 2004/05/27 15:21:03-04:00 herbert@gondor.apana.org.au # [NETDRV #2] Use driver-specific name for resources # # Here is the next part which uses a driver-specific name instead of # dev->name for resource allocations prior to netdev registration. # It also changes printks that are in direct response to errors in # resource allocations. # # drivers/net/zorro8390.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +4 -2 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/yellowfin.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +1 -1 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/wd.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +3 -1 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/sunhme.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +3 -1 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/sungem.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +1 -1 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/sun3_82586.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +3 -1 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/stnic.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +3 -1 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/starfire.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +1 -1 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/smc9194.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +5 -3 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/smc-ultra32.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +3 -1 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/smc-ultra.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +3 -1 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/smc-mca.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +3 -1 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/r8169.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +1 -1 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/oaknet.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +1 -1 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/ns83820.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +3 -1 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/ni52.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +3 -1 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/ne3210.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +6 -4 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/ne2k_cbus.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +3 -1 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/ne2.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +4 -2 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/ne.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +3 -1 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/ne-h8300.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +3 -1 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/natsemi.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +1 -1 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/lp486e.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +3 -1 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/lne390.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +5 -3 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/jazzsonic.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +3 -1 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/ibmlana.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +4 -2 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/hp.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +5 -3 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/hp-plus.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +3 -1 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/forcedeth.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +2 -1 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/fmv18x.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +4 -2 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/ewrk3.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +2 -2 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/eth16i.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +4 -4 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/eepro.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +3 -1 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/e2100.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +3 -1 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/defxx.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +4 -2 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/cs89x0.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +4 -2 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/at1700.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +5 -3 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/apne.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +4 -2 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/acenic.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +4 -2 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/ac3200.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +4 -2 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/82596.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +3 -1 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/3c527.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +2 -2 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/3c523.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +1 -1 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/3c507.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +2 -2 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/3c503.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +2 -2 # 2/x: [NETDRV] Use driver-specific name for resources # # drivers/net/3c501.c # 2004/05/22 13:40:55-04:00 herbert@gondor.apana.org.au +1 -1 # 2/x: [NETDRV] Use driver-specific name for resources # # ChangeSet # 2004/05/27 15:20:53-04:00 herbert@gondor.apana.org.au # [NETDRV #1] Ifdef builtin-only probe in ISA/MCA drivers # # Here is the bit which conditionalises the # builtin-only probe functions. # # drivers/net/wd.c # 2004/05/20 17:16:23-04:00 herbert@gondor.apana.org.au +2 -0 # 1/x: [NETDRV] Ifdef builtin-only probe in ISA/MCA drivers # # drivers/net/smc-ultra.c # 2004/05/20 17:16:23-04:00 herbert@gondor.apana.org.au +2 -0 # 1/x: [NETDRV] Ifdef builtin-only probe in ISA/MCA drivers # # drivers/net/ne2k_cbus.c # 2004/05/20 17:16:23-04:00 herbert@gondor.apana.org.au +2 -0 # 1/x: [NETDRV] Ifdef builtin-only probe in ISA/MCA drivers # # drivers/net/ne2.c # 2004/05/20 17:16:23-04:00 herbert@gondor.apana.org.au +2 -0 # 1/x: [NETDRV] Ifdef builtin-only probe in ISA/MCA drivers # # drivers/net/ne.c # 2004/05/20 17:16:23-04:00 herbert@gondor.apana.org.au +2 -0 # 1/x: [NETDRV] Ifdef builtin-only probe in ISA/MCA drivers # # drivers/net/ne-h8300.c # 2004/05/20 17:16:23-04:00 herbert@gondor.apana.org.au +2 -0 # 1/x: [NETDRV] Ifdef builtin-only probe in ISA/MCA drivers # # drivers/net/lne390.c # 2004/05/20 17:16:23-04:00 herbert@gondor.apana.org.au +2 -0 # 1/x: [NETDRV] Ifdef builtin-only probe in ISA/MCA drivers # # drivers/net/lance.c # 2004/05/20 17:16:23-04:00 herbert@gondor.apana.org.au +2 -0 # 1/x: [NETDRV] Ifdef builtin-only probe in ISA/MCA drivers # # drivers/net/isa-skeleton.c # 2004/05/20 17:16:23-04:00 herbert@gondor.apana.org.au +2 -0 # 1/x: [NETDRV] Ifdef builtin-only probe in ISA/MCA drivers # # drivers/net/hp100.c # 2004/05/20 17:16:23-04:00 herbert@gondor.apana.org.au +2 -0 # 1/x: [NETDRV] Ifdef builtin-only probe in ISA/MCA drivers # # drivers/net/hp.c # 2004/05/20 17:16:23-04:00 herbert@gondor.apana.org.au +2 -0 # 1/x: [NETDRV] Ifdef builtin-only probe in ISA/MCA drivers # # drivers/net/hp-plus.c # 2004/05/20 17:16:23-04:00 herbert@gondor.apana.org.au +2 -0 # 1/x: [NETDRV] Ifdef builtin-only probe in ISA/MCA drivers # # drivers/net/ewrk3.c # 2004/05/20 17:16:23-04:00 herbert@gondor.apana.org.au +2 -0 # 1/x: [NETDRV] Ifdef builtin-only probe in ISA/MCA drivers # # drivers/net/eth16i.c # 2004/05/20 17:16:23-04:00 herbert@gondor.apana.org.au +2 -0 # 1/x: [NETDRV] Ifdef builtin-only probe in ISA/MCA drivers # # drivers/net/es3210.c # 2004/05/20 17:16:23-04:00 herbert@gondor.apana.org.au +2 -0 # 1/x: [NETDRV] Ifdef builtin-only probe in ISA/MCA drivers # # drivers/net/eexpress.c # 2004/05/20 17:16:23-04:00 herbert@gondor.apana.org.au +2 -0 # 1/x: [NETDRV] Ifdef builtin-only probe in ISA/MCA drivers # # drivers/net/eepro.c # 2004/05/20 17:16:23-04:00 herbert@gondor.apana.org.au +2 -0 # 1/x: [NETDRV] Ifdef builtin-only probe in ISA/MCA drivers # # drivers/net/e2100.c # 2004/05/20 17:16:23-04:00 herbert@gondor.apana.org.au +2 -0 # 1/x: [NETDRV] Ifdef builtin-only probe in ISA/MCA drivers # # drivers/net/cs89x0.c # 2004/05/20 17:16:23-04:00 herbert@gondor.apana.org.au +1 -1 # 1/x: [NETDRV] Ifdef builtin-only probe in ISA/MCA drivers # # drivers/net/ac3200.c # 2004/05/20 17:16:23-04:00 herbert@gondor.apana.org.au +2 -0 # 1/x: [NETDRV] Ifdef builtin-only probe in ISA/MCA drivers # # drivers/net/3c523.c # 2004/05/20 17:16:23-04:00 herbert@gondor.apana.org.au +2 -0 # 1/x: [NETDRV] Ifdef builtin-only probe in ISA/MCA drivers # # drivers/net/3c505.c # 2004/05/20 17:16:23-04:00 herbert@gondor.apana.org.au +2 -1 # 1/x: [NETDRV] Ifdef builtin-only probe in ISA/MCA drivers # # drivers/net/3c503.c # 2004/05/20 17:16:23-04:00 herbert@gondor.apana.org.au +2 -0 # 1/x: [NETDRV] Ifdef builtin-only probe in ISA/MCA drivers # # ChangeSet # 2004/05/27 13:38:57-04:00 rl@hellgate.ch # [PATCH] Nuke HAS_IP_COPYSUM for net drivers # # Entirely untested, but Obviously Correct(TM). HAS_IP_COPYSUM has been # utterly meaningless for a long time. # # drivers/net/yellowfin.c # 2004/05/25 14:46:47-04:00 rl@hellgate.ch +0 -5 # Nuke HAS_IP_COPYSUM for net drivers # # drivers/net/tulip/winbond-840.c # 2004/05/25 14:46:26-04:00 rl@hellgate.ch +0 -6 # Nuke HAS_IP_COPYSUM for net drivers # # drivers/net/natsemi.c # 2004/05/25 14:51:58-04:00 rl@hellgate.ch +0 -5 # Nuke HAS_IP_COPYSUM for net drivers # # drivers/net/epic100.c # 2004/05/25 14:45:55-04:00 rl@hellgate.ch +0 -5 # Nuke HAS_IP_COPYSUM for net drivers # # ChangeSet # 2004/05/25 01:32:47-04:00 len.brown@intel.com # [ACPI] PCI IRQ update (Bjorn Helgaas) # http://bugme.osdl.org/show_bug.cgi?id=2574 # # mp_parse_prt() and iosapic_parse_prt() used to allocate all # IRQs, whether devices needed them or not. Some devices # failed because the this method enabled unused PCI Interrupt # Link Devices, which disrupted active link devices. # # Now the PRT knowledge is pulled out of the arch # code and the IRQ allocation and IO-APIC programming # is done by pci_enable_device(). # This is also a step toward allowing the addition # of new root bridges and PRTs at run-time. # # The architecture supplies # # unsigned int # acpi_register_gsi(u32 gsi, int edge_level, int active_high_low) # # which is called by acpi_pci_irq_enable(). ACPI supplies # all the information from the PRT, and the arch sets up # the routing and returns the IRQ it allocated. # # include/linux/acpi.h # 2004/05/25 01:32:34-04:00 len.brown@intel.com +1 -1 # PCI IRQ update (Bjorn Helgaas) # # include/asm-x86_64/mpspec.h # 2004/05/25 01:32:34-04:00 len.brown@intel.com +1 -1 # PCI IRQ update (Bjorn Helgaas) # # include/asm-ia64/iosapic.h # 2004/05/25 01:32:34-04:00 len.brown@intel.com +0 -1 # PCI IRQ update (Bjorn Helgaas) # # include/asm-i386/mpspec.h # 2004/05/25 01:32:34-04:00 len.brown@intel.com +1 -1 # PCI IRQ update (Bjorn Helgaas) # # include/acpi/acpi_drivers.h # 2004/05/25 01:32:34-04:00 len.brown@intel.com +1 -1 # PCI IRQ update (Bjorn Helgaas) # # drivers/serial/8250_hcdp.c # 2004/05/25 01:32:34-04:00 len.brown@intel.com +4 -8 # PCI IRQ update (Bjorn Helgaas) # # drivers/serial/8250_acpi.c # 2004/05/25 01:32:34-04:00 len.brown@intel.com +6 -16 # PCI IRQ update (Bjorn Helgaas) # # drivers/acpi/tables.c # 2004/05/25 01:32:34-04:00 len.brown@intel.com +3 -3 # PCI IRQ update (Bjorn Helgaas) # # drivers/acpi/pci_link.c # 2004/05/25 01:32:34-04:00 len.brown@intel.com +2 -2 # PCI IRQ update (Bjorn Helgaas) # # drivers/acpi/pci_irq.c # 2004/05/25 01:32:34-04:00 len.brown@intel.com +36 -83 # PCI IRQ update (Bjorn Helgaas) # # arch/x86_64/kernel/mpparse.c # 2004/05/25 01:32:34-04:00 len.brown@intel.com +39 -76 # PCI IRQ update (Bjorn Helgaas) # # arch/ia64/pci/pci.c # 2004/05/25 01:32:34-04:00 len.brown@intel.com +12 -4 # PCI IRQ update (Bjorn Helgaas) # # arch/ia64/kernel/iosapic.c # 2004/05/25 01:32:34-04:00 len.brown@intel.com +80 -129 # PCI IRQ update (Bjorn Helgaas) # # arch/ia64/kernel/acpi.c # 2004/05/25 01:32:34-04:00 len.brown@intel.com +8 -15 # PCI IRQ update (Bjorn Helgaas) # # arch/i386/pci/acpi.c # 2004/05/25 01:32:34-04:00 len.brown@intel.com +23 -8 # PCI IRQ update (Bjorn Helgaas) # # arch/i386/kernel/mpparse.c # 2004/05/25 01:32:34-04:00 len.brown@intel.com +38 -78 # PCI IRQ update (Bjorn Helgaas) # # arch/i386/kernel/acpi/boot.c # 2004/05/25 01:32:34-04:00 len.brown@intel.com +28 -0 # PCI IRQ update (Bjorn Helgaas) # # ChangeSet # 2004/05/22 23:32:21-04:00 len.brown@intel.com # Kconfig typo fix from Jochen Voss # # drivers/acpi/Kconfig # 2004/04/05 06:54:30-04:00 len.brown@intel.com +1 -1 # Kconfig typo fix from Jochen Voss # diff -Nru a/CREDITS b/CREDITS --- a/CREDITS 2004-06-28 18:21:58 -07:00 +++ b/CREDITS 2004-06-28 18:21:58 -07:00 @@ -1060,6 +1060,12 @@ N: Jeff Garzik E: jgarzik@pobox.com +N: Kumar Gala +E: kumar.gala@freescale.com +D: Embedded PowerPC 6xx/7xx/74xx/82xx/85xx support +S: Austin, Texas 78729 +S: USA + N: Jacques Gelinas E: jacques@solucorp.qc.ca D: Author of the Umsdos file system @@ -2267,8 +2273,8 @@ N: Eberhard Moenkeberg E: emoenke@gwdg.de D: CDROM driver "sbpcd" (Matsushita/Panasonic/Soundblaster) -S: Reinholdstrasse 14 -S: D-37083 Goettingen +S: Ruhstrathoehe 2 b. +S: D-37085 Goettingen S: Germany N: Thomas Molina @@ -2571,6 +2577,14 @@ D: sonypi, meye drivers, mct_u232 usb serial hacks S: Paris, France +N: Matt Porter +E: mporter@kernel.crashing.org +D: Motorola PowerPC PReP support +D: cPCI PowerPC support +D: Embedded PowerPC 4xx/6xx/7xx/74xx support +S: Chandler, Arizona 85249 +S: USA + N: Frederic Potter E: fpotter@cirpack.com D: Some PCI kernel support @@ -3109,12 +3123,13 @@ S: USA N: Marcelo W. Tosatti -E: marcelo@conectiva.com.br -W: http://bazar.conectiva.com.br/~marcelo/ -D: Miscellaneous kernel hacker (mostly VM/MM work) -S: Conectiva S.A. -S: R. Tocantins, 89 - Cristo Rei -S: 80050-430 - Curitiba - Paraná +E: marcelo.tosatti@cyclades.com +D: Miscellaneous kernel hacker +D: v2.4 kernel maintainer +D: Current pc300/cyclades maintainer +S: Cyclades Corporation +S: Av Cristovao Colombo, 462. Floresta. +S: Porto Alegre S: Brazil N: Stefan Traby diff -Nru a/Documentation/SubmittingDrivers b/Documentation/SubmittingDrivers --- a/Documentation/SubmittingDrivers 2004-06-28 18:21:57 -07:00 +++ b/Documentation/SubmittingDrivers 2004-06-28 18:21:57 -07:00 @@ -3,7 +3,8 @@ This document is intended to explain how to submit device drivers to the various kernel trees. Note that if you are interested in video card drivers -you should probably talk to XFree86 (http://www.xfree86.org) instead. +you should probably talk to XFree86 (http://www.xfree86.org/) and/or X.Org +(http://x.org/) instead. Also read the Documentation/SubmittingPatches document. diff -Nru a/Documentation/arm/Sharp-LH/SDRAM b/Documentation/arm/Sharp-LH/SDRAM --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/Documentation/arm/Sharp-LH/SDRAM 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,51 @@ +README on the SDRAM Controller for the LH7a40X +============================================== + +The standard configuration for the SDRAM controller generates a sparse +memory array. The precise layout is determined by the SDRAM chips. A +default kernel configuration assembles the discontiguous memory +regions into separate memory nodes via the NUMA (Non-Uniform Memory +Architecture) facilities. In this default configuration, the kernel +is forgiving about the precise layout. As long as it is given an +accurate picture of available memory by the bootloader the kernel will +execute correctly. + +The SDRC supports a mode where some of the chip select lines are +swapped in order to make SDRAM look like a synchronous ROM. Setting +this bit means that the RAM will present as a contiguous array. Some +programmers prefer this to the discontiguous layout. Be aware that +may be a penalty for this feature where some some configurations of +memory are significantly reduced; i.e. 64MiB of RAM appears as only 32 +MiB. + +There are a couple of configuration options to override the default +behavior. When the SROMLL bit is set and memory appears as a +contiguous array, there is no reason to support NUMA. +CONFIG_LH7A40X_CONTIGMEM disables NUMA support. When physical memory +is discontiguous, the memory tables are organized such that there are +two banks per nodes with a small gap between them. This layout wastes +some kernel memory for page tables representing non-existent memory. +CONFIG_LH7A40X_ONE_BANK_PER_NODE optimizes the node tables such that +there are no gaps. These options control the low level organization +of the memory management tables in ways that may prevent the kernel +from booting or may cause the kernel to allocated excessively large +page tables. Be warned. Only change these options if you know what +you are doing. The default behavior is a reasonable compromise that +will suit all users. + +-- + +A typical 32MiB system with the default configuration options will +find physical memory managed as follows. + + node 0: 0xc0000000 4MiB + 0xc1000000 4MiB + node 1: 0xc4000000 4MiB + 0xc5000000 4MiB + node 2: 0xc8000000 4MiB + 0xc9000000 4MiB + node 3: 0xcc000000 4MiB + 0xcd000000 4MiB + +Setting CONFIG_LH7A40X_ONE_BANK_PER_NODE will put each bank into a +separate node. diff -Nru a/Documentation/arm/VFP/release-notes.txt b/Documentation/arm/VFP/release-notes.txt --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/Documentation/arm/VFP/release-notes.txt 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,55 @@ +Release notes for Linux Kernel VFP support code +----------------------------------------------- + +Date: 20 May 2004 +Author: Russell King + +This is the first release of the Linux Kernel VFP support code. It +provides support for the exceptions bounced from VFP hardware found +on ARM926EJ-S. + +This release has been validated against the SoftFloat-2b library by +John R. Hauser using the TestFloat-2a test suite. Details of this +library and test suite can be found at: + + http://www.cs.berkeley.edu/~jhauser/arithmetic/SoftFloat.html + +The operations which have been tested with this package are: + + - fdiv + - fsub + - fadd + - fmul + - fcmp + - fcmpe + - fcvtd + - fcvts + - fsito + - ftosi + - fsqrt + +All the above pass softfloat tests with the following exceptions: + +- fadd/fsub shows some differences in the handling of +0 / -0 results + when input operands differ in signs. +- the handling of underflow exceptions is slightly different. If a + result underflows before rounding, but becomes a normalised number + after rounding, we do not signal an underflow exception. + +Other operations which have been tested by basic assembly-only tests +are: + + - fcpy + - fabs + - fneg + - ftoui + - ftosiz + - ftouiz + +The combination operations have not been tested: + + - fmac + - fnmac + - fmsc + - fnmsc + - fnmul diff -Nru a/Documentation/as-iosched.txt b/Documentation/as-iosched.txt --- a/Documentation/as-iosched.txt 2004-06-28 18:21:55 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,165 +0,0 @@ -Anticipatory IO scheduler -------------------------- -Nick Piggin 13 Sep 2003 - -Attention! Database servers, especially those using "TCQ" disks should -investigate performance with the 'deadline' IO scheduler. Any system with high -disk performance requirements should do so, in fact. - -If you see unusual performance characteristics of your disk systems, or you -see big performance regressions versus the deadline scheduler, please email -me. Database users don't bother unless you're willing to test a lot of patches -from me ;) its a known issue. - -Also, users with hardware RAID controllers, doing striping, may find -highly variable performance results with using the as-iosched. The -as-iosched anticipatory implementation is based on the notion that a disk -device has only one physical seeking head. A striped RAID controller -actually has a head for each physical device in the logical RAID device. - -However, setting the antic_expire (see tunable parameters below) produces -very similar behavior to the deadline IO scheduler. - - -Selecting IO schedulers ------------------------ -To choose IO schedulers at boot time, use the argument 'elevator=deadline'. -'noop' and 'as' (the default) are also available. IO schedulers are assigned -globally at boot time only presently. - - -Anticipatory IO scheduler Policies ----------------------------------- -The as-iosched implementation implements several layers of policies -to determine when an IO request is dispatched to the disk controller. -Here are the policies outlined, in order of application. - -1. one-way Elevator algorithm. - -The elevator algorithm is similar to that used in deadline scheduler, with -the addition that it allows limited backward movement of the elevator -(i.e. seeks backwards). A seek backwards can occur when choosing between -two IO requests where one is behind the elevator's current position, and -the other is in front of the elevator's position. If the seek distance to -the request in back of the elevator is less than half the seek distance to -the request in front of the elevator, then the request in back can be chosen. -Backward seeks are also limited to a maximum of MAXBACK (1024*1024) sectors. -This favors forward movement of the elevator, while allowing opportunistic -"short" backward seeks. - -2. FIFO expiration times for reads and for writes. - -This is again very similar to the deadline IO scheduler. The expiration -times for requests on these lists is tunable using the parameters read_expire -and write_expire discussed below. When a read or a write expires in this way, -the IO scheduler will interrupt its current elevator sweep or read anticipation -to service the expired request. - -3. Read and write request batching - -A batch is a collection of read requests or a collection of write -requests. The as scheduler alternates dispatching read and write batches -to the driver. In the case a read batch, the scheduler submits read -requests to the driver as long as there are read requests to submit, and -the read batch time limit has not been exceeded (read_batch_expire). -The read batch time limit begins counting down only when there are -competing write requests pending. - -In the case of a write batch, the scheduler submits write requests to -the driver as long as there are write requests available, and the -write batch time limit has not been exceeded (write_batch_expire). -However, the length of write batches will be gradually shortened -when read batches frequently exceed their time limit. - -When changing between batch types, the scheduler waits for all requests -from the previous batch to complete before scheduling requests for the -next batch. - -The read and write fifo expiration times described in policy 2 above -are checked only when in scheduling IO of a batch for the corresponding -(read/write) type. So for example, the read FIFO timeout values are -tested only during read batches. Likewise, the write FIFO timeout -values are tested only during write batches. For this reason, -it is generally not recommended for the read batch time -to be longer than the write expiration time, nor for the write batch -time to exceed the read expiration time (see tunable parameters below). - -When the IO scheduler changes from a read to a write batch, -it begins the elevator from the request that is on the head of the -write expiration FIFO. Likewise, when changing from a write batch to -a read batch, scheduler begins the elevator from the first entry -on the read expiration FIFO. - -4. Read anticipation. - -Read anticipation occurs only when scheduling a read batch. -This implementation of read anticipation allows only one read request -to be dispatched to the disk controller at a time. In -contrast, many write requests may be dispatched to the disk controller -at a time during a write batch. It is this characteristic that can make -the anticipatory scheduler perform anomalously with controllers supporting -TCQ, or with hardware striped RAID devices. Setting the antic_expire -queue paramter (see below) to zero disables this behavior, and the anticipatory -scheduler behaves essentially like the deadline scheduler. - -When read anticipation is enabled (antic_expire is not zero), reads -are dispatched to the disk controller one at a time. -At the end of each read request, the IO scheduler examines its next -candidate read request from its sorted read list. If that next request -is from the same process as the request that just completed, -or if the next request in the queue is "very close" to the -just completed request, it is dispatched immediately. Otherwise, -statistics (average think time, average seek distance) on the process -that submitted the just completed request are examined. If it seems -likely that that process will submit another request soon, and that -request is likely to be near the just completed request, then the IO -scheduler will stop dispatching more read requests for up time (antic_expire) -milliseconds, hoping that process will submit a new request near the one -that just completed. If such a request is made, then it is dispatched -immediately. If the antic_expire wait time expires, then the IO scheduler -will dispatch the next read request from the sorted read queue. - -To decide whether an anticipatory wait is worthwhile, the scheduler -maintains statistics for each process that can be used to compute -mean "think time" (the time between read requests), and mean seek -distance for that process. One observation is that these statistics -are associated with each process, but those statistics are not associated -with a specific IO device. So for example, if a process is doing IO -on several file systems on separate devices, the statistics will be -a combination of IO behavior from all those devices. - - -Tuning the anticipatory IO scheduler ------------------------------------- -When using 'as', the anticipatory IO scheduler there are 5 parameters under -/sys/block/*/iosched/. All are units of milliseconds. - -The parameters are: -* read_expire - Controls how long until a read request becomes "expired". It also controls the - interval between which expired requests are served, so set to 50, a request - might take anywhere < 100ms to be serviced _if_ it is the next on the - expired list. Obviously request expiration strategies won't make the disk - go faster. The result basically equates to the timeslice a single reader - gets in the presence of other IO. 100*((seek time / read_expire) + 1) is - very roughly the % streaming read efficiency your disk should get with - multiple readers. - -* read_batch_expire - Controls how much time a batch of reads is given before pending writes are - served. A higher value is more efficient. This might be set below read_expire - if writes are to be given higher priority than reads, but reads are to be - as efficient as possible when there are no writes. Generally though, it - should be some multiple of read_expire. - -* write_expire, and -* write_batch_expire are equivalent to the above, for writes. - -* antic_expire - Controls the maximum amount of time we can anticipate a good read (one - with a short seek distance from the most recently completed request) before - giving up. Many other factors may cause anticipation to be stopped early, - or some processes will not be "anticipated" at all. Should be a bit higher - for big seek time devices though not a linear correspondence - most - processes have only a few ms thinktime. - diff -Nru a/Documentation/basic_profiling.txt b/Documentation/basic_profiling.txt --- a/Documentation/basic_profiling.txt 2004-06-28 18:21:55 -07:00 +++ b/Documentation/basic_profiling.txt 2004-06-28 18:21:55 -07:00 @@ -5,16 +5,19 @@ is the thing you're trying to measure. Make sure you have the correct System.map / vmlinux referenced! -IMHO it's easier to use "make install" for linux and hack /sbin/installkernel -to copy config files, system.map, vmlinux to /boot. + +It is probably easiest to use "make install" for linux and hack +/sbin/installkernel to copy vmlinux to /boot, in addition to vmlinuz, +config, System.map, which are usually installed by default. Readprofile ----------- -You need a fixed readprofile command for 2.5 ... either get hold of -a current version from: +A recent readprofile command is needed for 2.6, such as found in util-linux +2.12a, which can be downloaded from: + http://www.kernel.org/pub/linux/utils/util-linux/ -or get readprofile binary fixed for 2.5 / akpm's 2.5 patch from -ftp://ftp.kernel.org/pub/linux/kernel/people/mbligh/tools/readprofile/ + +Most distributions will ship it already. Add "profile=2" to the kernel command line. @@ -24,25 +27,26 @@ Oprofile -------- -get source (I use 0.5) from http://oprofile.sourceforge.net/ -add "idle=poll" to the kernel command line +Get the source (I use 0.8) from http://oprofile.sourceforge.net/ +and add "idle=poll" to the kernel command line Configure with CONFIG_PROFILING=y and CONFIG_OPROFILE=y & reboot on new kernel ./configure --with-kernel-support make install -One time setup (pick appropriate one for your CPU): -P3 opcontrol --setup --vmlinux=/boot/vmlinux \ - --ctr0-event=CPU_CLK_UNHALTED --ctr0-count=100000 -Athlon/x86-64 opcontrol --setup --vmlinux=/boot/vmlinux \ - --ctr0-event=RETIRED_INSNS --ctr0-count=100000 -P4 opcontrol --setup --vmlinux=/boot/vmlinux \ - --ctr0-event=GLOBAL_POWER_EVENTS \ - --ctr0-unit-mask=1 --ctr0-count=100000 +For superior results, be sure to enable the local APIC. If opreport sees +a 0Hz CPU, APIC was not on. Be aware that idle=poll may mean a performance +penalty. + +One time setup: + opcontrol --setup --vmlinux=/boot/vmlinux -start daemon opcontrol --start-daemon clear opcontrol --reset start opcontrol --start stop opcontrol --stop -dump output oprofpp -dl -i /boot/vmlinux > output_file +dump output opreport > output_file + +To only report on the kernel, run opreport /boot/vmlinux > output_file + +A reset is needed to clear old statistics, which survive a reboot. diff -Nru a/Documentation/binfmt_misc.txt b/Documentation/binfmt_misc.txt --- a/Documentation/binfmt_misc.txt 2004-06-28 18:22:00 -07:00 +++ b/Documentation/binfmt_misc.txt 2004-06-28 18:22:00 -07:00 @@ -15,7 +15,7 @@ mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc To actually register a new binary type, you have to set up a string looking like -:name:type:offset:magic:mask:interpreter: (where you can choose the ':' upon +:name:type:offset:magic:mask:interpreter:flags (where you can choose the ':' upon your needs) and echo it to /proc/sys/fs/binfmt_misc/register. Here is what the fields mean: - 'name' is an identifier string. A new /proc file will be created with this @@ -34,6 +34,28 @@ The mask is anded with the byte sequence of the file. - 'interpreter' is the program that should be invoked with the binary as first argument (specify the full path) + - 'flags' is an optional field that controls several aspects of the invocation + of the interpreter. It is a string of capital letters, each controls a certain + aspect. The following flags are supported - + 'P' - preserve-argv[0]. Legacy behavior of binfmt_misc is to overwrite the + original argv[0] with the full path to the binary. When this flag is + included, binfmt_misc will add an argument to the argument vector for + this purpose, thus preserving the original argv[0]. + 'O' - open-binary. Legacy behavior of binfmt_misc is to pass the full path + of the binary to the interpreter as an argument. When this flag is + included, binfmt_misc will open the file for reading and pass its + descriptor as an argument, instead of the full path, thus allowing + the interpreter to execute non-readable binaries. This feature should + be used with care - the interpreter has to be trusted not to emit + the contents of the non-readable binary. + 'C' - credentials. Currently, the behavior of binfmt_misc is to calculate + the credentials and security token of the new process according to + the interpreter. When this flag is included, these attributes are + calculated according to the binary. It also implies the 'O' flag. + This feature should be used with care as the interpreter + will run with root permissions when a setuid binary owned by root + is run with binfmt_misc. + There are some restrictions: - the whole register string may not exceed 255 characters @@ -83,9 +105,9 @@ write a wrapper script for it. See Documentation/java.txt for an example. -Your interpreter should NOT look in the PATH for the filename; the -kernel passes it the full filename to use. Using the PATH can cause -unexpected behaviour and be a security hazard. +Your interpreter should NOT look in the PATH for the filename; the kernel +passes it the full filename (or the file descriptor) to use. Using $PATH can +cause unexpected behaviour and can be a security hazard. There is a web page about binfmt_misc at diff -Nru a/Documentation/block/as-iosched.txt b/Documentation/block/as-iosched.txt --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/Documentation/block/as-iosched.txt 2004-06-28 18:21:55 -07:00 @@ -0,0 +1,165 @@ +Anticipatory IO scheduler +------------------------- +Nick Piggin 13 Sep 2003 + +Attention! Database servers, especially those using "TCQ" disks should +investigate performance with the 'deadline' IO scheduler. Any system with high +disk performance requirements should do so, in fact. + +If you see unusual performance characteristics of your disk systems, or you +see big performance regressions versus the deadline scheduler, please email +me. Database users don't bother unless you're willing to test a lot of patches +from me ;) its a known issue. + +Also, users with hardware RAID controllers, doing striping, may find +highly variable performance results with using the as-iosched. The +as-iosched anticipatory implementation is based on the notion that a disk +device has only one physical seeking head. A striped RAID controller +actually has a head for each physical device in the logical RAID device. + +However, setting the antic_expire (see tunable parameters below) produces +very similar behavior to the deadline IO scheduler. + + +Selecting IO schedulers +----------------------- +To choose IO schedulers at boot time, use the argument 'elevator=deadline'. +'noop' and 'as' (the default) are also available. IO schedulers are assigned +globally at boot time only presently. + + +Anticipatory IO scheduler Policies +---------------------------------- +The as-iosched implementation implements several layers of policies +to determine when an IO request is dispatched to the disk controller. +Here are the policies outlined, in order of application. + +1. one-way Elevator algorithm. + +The elevator algorithm is similar to that used in deadline scheduler, with +the addition that it allows limited backward movement of the elevator +(i.e. seeks backwards). A seek backwards can occur when choosing between +two IO requests where one is behind the elevator's current position, and +the other is in front of the elevator's position. If the seek distance to +the request in back of the elevator is less than half the seek distance to +the request in front of the elevator, then the request in back can be chosen. +Backward seeks are also limited to a maximum of MAXBACK (1024*1024) sectors. +This favors forward movement of the elevator, while allowing opportunistic +"short" backward seeks. + +2. FIFO expiration times for reads and for writes. + +This is again very similar to the deadline IO scheduler. The expiration +times for requests on these lists is tunable using the parameters read_expire +and write_expire discussed below. When a read or a write expires in this way, +the IO scheduler will interrupt its current elevator sweep or read anticipation +to service the expired request. + +3. Read and write request batching + +A batch is a collection of read requests or a collection of write +requests. The as scheduler alternates dispatching read and write batches +to the driver. In the case a read batch, the scheduler submits read +requests to the driver as long as there are read requests to submit, and +the read batch time limit has not been exceeded (read_batch_expire). +The read batch time limit begins counting down only when there are +competing write requests pending. + +In the case of a write batch, the scheduler submits write requests to +the driver as long as there are write requests available, and the +write batch time limit has not been exceeded (write_batch_expire). +However, the length of write batches will be gradually shortened +when read batches frequently exceed their time limit. + +When changing between batch types, the scheduler waits for all requests +from the previous batch to complete before scheduling requests for the +next batch. + +The read and write fifo expiration times described in policy 2 above +are checked only when in scheduling IO of a batch for the corresponding +(read/write) type. So for example, the read FIFO timeout values are +tested only during read batches. Likewise, the write FIFO timeout +values are tested only during write batches. For this reason, +it is generally not recommended for the read batch time +to be longer than the write expiration time, nor for the write batch +time to exceed the read expiration time (see tunable parameters below). + +When the IO scheduler changes from a read to a write batch, +it begins the elevator from the request that is on the head of the +write expiration FIFO. Likewise, when changing from a write batch to +a read batch, scheduler begins the elevator from the first entry +on the read expiration FIFO. + +4. Read anticipation. + +Read anticipation occurs only when scheduling a read batch. +This implementation of read anticipation allows only one read request +to be dispatched to the disk controller at a time. In +contrast, many write requests may be dispatched to the disk controller +at a time during a write batch. It is this characteristic that can make +the anticipatory scheduler perform anomalously with controllers supporting +TCQ, or with hardware striped RAID devices. Setting the antic_expire +queue paramter (see below) to zero disables this behavior, and the anticipatory +scheduler behaves essentially like the deadline scheduler. + +When read anticipation is enabled (antic_expire is not zero), reads +are dispatched to the disk controller one at a time. +At the end of each read request, the IO scheduler examines its next +candidate read request from its sorted read list. If that next request +is from the same process as the request that just completed, +or if the next request in the queue is "very close" to the +just completed request, it is dispatched immediately. Otherwise, +statistics (average think time, average seek distance) on the process +that submitted the just completed request are examined. If it seems +likely that that process will submit another request soon, and that +request is likely to be near the just completed request, then the IO +scheduler will stop dispatching more read requests for up time (antic_expire) +milliseconds, hoping that process will submit a new request near the one +that just completed. If such a request is made, then it is dispatched +immediately. If the antic_expire wait time expires, then the IO scheduler +will dispatch the next read request from the sorted read queue. + +To decide whether an anticipatory wait is worthwhile, the scheduler +maintains statistics for each process that can be used to compute +mean "think time" (the time between read requests), and mean seek +distance for that process. One observation is that these statistics +are associated with each process, but those statistics are not associated +with a specific IO device. So for example, if a process is doing IO +on several file systems on separate devices, the statistics will be +a combination of IO behavior from all those devices. + + +Tuning the anticipatory IO scheduler +------------------------------------ +When using 'as', the anticipatory IO scheduler there are 5 parameters under +/sys/block/*/iosched/. All are units of milliseconds. + +The parameters are: +* read_expire + Controls how long until a read request becomes "expired". It also controls the + interval between which expired requests are served, so set to 50, a request + might take anywhere < 100ms to be serviced _if_ it is the next on the + expired list. Obviously request expiration strategies won't make the disk + go faster. The result basically equates to the timeslice a single reader + gets in the presence of other IO. 100*((seek time / read_expire) + 1) is + very roughly the % streaming read efficiency your disk should get with + multiple readers. + +* read_batch_expire + Controls how much time a batch of reads is given before pending writes are + served. A higher value is more efficient. This might be set below read_expire + if writes are to be given higher priority than reads, but reads are to be + as efficient as possible when there are no writes. Generally though, it + should be some multiple of read_expire. + +* write_expire, and +* write_batch_expire are equivalent to the above, for writes. + +* antic_expire + Controls the maximum amount of time we can anticipate a good read (one + with a short seek distance from the most recently completed request) before + giving up. Many other factors may cause anticipation to be stopped early, + or some processes will not be "anticipated" at all. Should be a bit higher + for big seek time devices though not a linear correspondence - most + processes have only a few ms thinktime. + diff -Nru a/Documentation/block/deadline-iosched.txt b/Documentation/block/deadline-iosched.txt --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/Documentation/block/deadline-iosched.txt 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,78 @@ +Deadline IO scheduler tunables +============================== + +This little file attempts to document how the deadline io scheduler works. +In particular, it will clarify the meaning of the exposed tunables that may be +of interest to power users. + +Each io queue has a set of io scheduler tunables associated with it. These +tunables control how the io scheduler works. You can find these entries +in: + +/sys/block//iosched + +assuming that you have sysfs mounted on /sys. If you don't have sysfs mounted, +you can do so by typing: + +# mount none /sys -t sysfs + + +******************************************************************************** + + +read_expire (in ms) +----------- + +The goal of the deadline io scheduler is to attempt to guarentee a start +service time for a request. As we focus mainly on read latencies, this is +tunable. When a read request first enters the io scheduler, it is assigned +a deadline that is the current time + the read_expire value in units of +miliseconds. + + +write_expire (in ms) +----------- + +Similar to read_expire mentioned above, but for writes. + + +fifo_batch +---------- + +When a read request expires its deadline, we must move some requests from +the sorted io scheduler list to the block device dispatch queue. fifo_batch +controls how many requests we move, based on the cost of each request. A +request is either qualified as a seek or a stream. The io scheduler knows +the last request that was serviced by the drive (or will be serviced right +before this one). See seek_cost and stream_unit. + + +write_starved (number of dispatches) +------------- + +When we have to move requests from the io scheduler queue to the block +device dispatch queue, we always give a preference to reads. However, we +don't want to starve writes indefinitely either. So writes_starved controls +how many times we give preference to reads over writes. When that has been +done writes_starved number of times, we dispatch some writes based on the +same criteria as reads. + + +front_merges (bool) +------------ + +Sometimes it happens that a request enters the io scheduler that is contigious +with a request that is already on the queue. Either it fits in the back of that +request, or it fits at the front. That is called either a back merge candidate +or a front merge candidate. Due to the way files are typically laid out, +back merges are much more common than front merges. For some work loads, you +may even know that it is a waste of time to spend any time attempting to +front merge requests. Setting front_merges to 0 disables this functionality. +Front merges may still occur due to the cached last_merge hint, but since +that comes at basically 0 cost we leave that on. We simply disable the +rbtree front sector lookup when the io scheduler merge function is called. + + +Nov 11 2002, Jens Axboe + + diff -Nru a/Documentation/device-mapper/dm-io.txt b/Documentation/device-mapper/dm-io.txt --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/Documentation/device-mapper/dm-io.txt 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,75 @@ +dm-io +===== + +Dm-io provides synchronous and asynchronous I/O services. There are three +types of I/O services available, and each type has a sync and an async +version. + +The user must set up an io_region structure to describe the desired location +of the I/O. Each io_region indicates a block-device along with the starting +sector and size of the region. + + struct io_region { + struct block_device *bdev; + sector_t sector; + sector_t count; + }; + +Dm-io can read from one io_region or write to one or more io_regions. Writes +to multiple regions are specified by an array of io_region structures. + +The first I/O service type takes a list of memory pages as the data buffer for +the I/O, along with an offset into the first page. + + struct page_list { + struct page_list *next; + struct page *page; + }; + + int dm_io_sync(unsigned int num_regions, struct io_region *where, int rw, + struct page_list *pl, unsigned int offset, + unsigned long *error_bits); + int dm_io_async(unsigned int num_regions, struct io_region *where, int rw, + struct page_list *pl, unsigned int offset, + io_notify_fn fn, void *context); + +The second I/O service type takes an array of bio vectors as the data buffer +for the I/O. This service can be handy if the caller has a pre-assembled bio, +but wants to direct different portions of the bio to different devices. + + int dm_io_sync_bvec(unsigned int num_regions, struct io_region *where, + int rw, struct bio_vec *bvec, + unsigned long *error_bits); + int dm_io_async_bvec(unsigned int num_regions, struct io_region *where, + int rw, struct bio_vec *bvec, + io_notify_fn fn, void *context); + +The third I/O service type takes a pointer to a vmalloc'd memory buffer as the +data buffer for the I/O. This service can be handy if the caller needs to do +I/O to a large region but doesn't want to allocate a large number of individual +memory pages. + + int dm_io_sync_vm(unsigned int num_regions, struct io_region *where, int rw, + void *data, unsigned long *error_bits); + int dm_io_async_vm(unsigned int num_regions, struct io_region *where, int rw, + void *data, io_notify_fn fn, void *context); + +Callers of the asynchronous I/O services must include the name of a completion +callback routine and a pointer to some context data for the I/O. + + typedef void (*io_notify_fn)(unsigned long error, void *context); + +The "error" parameter in this callback, as well as the "*error" parameter in +all of the synchronous versions, is a bitset (instead of a simple error value). +In the case of an write-I/O to multiple regions, this bitset allows dm-io to +indicate success or failure on each individual region. + +Before using any of the dm-io services, the user should call dm_io_get() +and specify the number of pages they expect to perform I/O on concurrently. +Dm-io will attempt to resize its mempool to make sure enough pages are +always available in order to avoid unnecessary waiting while performing I/O. + +When the user is finished using the dm-io services, they should call +dm_io_put() and specify the same number of pages that were given on the +dm_io_get() call. + diff -Nru a/Documentation/device-mapper/kcopyd.txt b/Documentation/device-mapper/kcopyd.txt --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/Documentation/device-mapper/kcopyd.txt 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,47 @@ +kcopyd +====== + +Kcopyd provides the ability to copy a range of sectors from one block-device +to one or more other block-devices, with an asynchronous completion +notification. It is used by dm-snapshot and dm-mirror. + +Users of kcopyd must first create a client and indicate how many memory pages +to set aside for their copy jobs. This is done with a call to +kcopyd_client_create(). + + int kcopyd_client_create(unsigned int num_pages, + struct kcopyd_client **result); + +To start a copy job, the user must set up io_region structures to describe +the source and destinations of the copy. Each io_region indicates a +block-device along with the starting sector and size of the region. The source +of the copy is given as one io_region structure, and the destinations of the +copy are given as an array of io_region structures. + + struct io_region { + struct block_device *bdev; + sector_t sector; + sector_t count; + }; + +To start the copy, the user calls kcopyd_copy(), passing in the client +pointer, pointers to the source and destination io_regions, the name of a +completion callback routine, and a pointer to some context data for the copy. + + int kcopyd_copy(struct kcopyd_client *kc, struct io_region *from, + unsigned int num_dests, struct io_region *dests, + unsigned int flags, kcopyd_notify_fn fn, void *context); + + typedef void (*kcopyd_notify_fn)(int read_err, unsigned int write_err, + void *context); + +When the copy completes, kcopyd will call the user's completion routine, +passing back the user's context pointer. It will also indicate if a read or +write error occurred during the copy. + +When a user is done with all their copy jobs, they should call +kcopyd_client_destroy() to delete the kcopyd client, which will release the +associated memory pages. + + void kcopyd_client_destroy(struct kcopyd_client *kc); + diff -Nru a/Documentation/device-mapper/linear.txt b/Documentation/device-mapper/linear.txt --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/Documentation/device-mapper/linear.txt 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,61 @@ +dm-linear +========= + +Device-Mapper's "linear" target maps a linear range of the Device-Mapper +device onto a linear range of another device. This is the basic building +block of logical volume managers. + +Parameters: + : Full pathname to the underlying block-device, or a + "major:minor" device-number. + : Starting sector within the device. + + +Example scripts +=============== +[[ +#!/bin/sh +# Create an identity mapping for a device +echo "0 `blockdev --getsize $1` linear $1 0" | dmsetup create identity +]] + + +[[ +#!/bin/sh +# Join 2 devices together +size1=`blockdev --getsize $1` +size2=`blockdev --getsize $2` +echo "0 $size1 linear $1 0 +$size1 $size2 linear $2 0" | dmsetup create joined +]] + + +[[ +#!/usr/bin/perl -w +# Split a device into 4M chunks and then join them together in reverse order. + +my $name = "reverse"; +my $extent_size = 4 * 1024 * 2; +my $dev = $ARGV[0]; +my $table = ""; +my $count = 0; + +if (!defined($dev)) { + die("Please specify a device.\n"); +} + +my $dev_size = `blockdev --getsize $dev`; +my $extents = int($dev_size / $extent_size) - + (($dev_size % $extent_size) ? 1 : 0); + +while ($extents > 0) { + my $this_start = $count * $extent_size; + $extents--; + $count++; + my $this_offset = $extents * $extent_size; + + $table .= "$this_start $extent_size linear $dev $this_offset\n"; +} + +`echo \"$table\" | dmsetup create $name`; +]] diff -Nru a/Documentation/device-mapper/striped.txt b/Documentation/device-mapper/striped.txt --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/Documentation/device-mapper/striped.txt 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,58 @@ +dm-stripe +========= + +Device-Mapper's "striped" target is used to create a striped (i.e. RAID-0) +device across one or more underlying devices. Data is written in "chunks", +with consecutive chunks rotating among the underlying devices. This can +potentially provide improved I/O throughput by utilizing several physical +devices in parallel. + +Parameters: [ ]+ + : Number of underlying devices. + : Size of each chunk of data. Must be a power-of-2 and at + least as large as the system's PAGE_SIZE. + : Full pathname to the underlying block-device, or a + "major:minor" device-number. + : Starting sector within the device. + +One or more underlying devices can be specified. The striped device size must +be a multiple of the chunk size and a multiple of the number of underlying +devices. + + +Example scripts +=============== + +[[ +#!/usr/bin/perl -w +# Create a striped device across any number of underlying devices. The device +# will be called "stripe_dev" and have a chunk-size of 128k. + +my $chunk_size = 128 * 2; +my $dev_name = "stripe_dev"; +my $num_devs = @ARGV; +my @devs = @ARGV; +my ($min_dev_size, $stripe_dev_size, $i); + +if (!$num_devs) { + die("Specify at least one device\n"); +} + +$min_dev_size = `blockdev --getsize $devs[0]`; +for ($i = 1; $i < $num_devs; $i++) { + my $this_size = `blockdev --getsize $devs[$i]`; + $min_dev_size = ($min_dev_size < $this_size) ? + $min_dev_size : $this_size; +} + +$stripe_dev_size = $min_dev_size * $num_devs; +$stripe_dev_size -= $stripe_dev_size % ($chunk_size * $num_devs); + +$table = "0 $stripe_dev_size striped $num_devs $chunk_size"; +for ($i = 0; $i < $num_devs; $i++) { + $table .= " $devs[$i] 0"; +} + +`echo $table | dmsetup create $dev_name`; +]] + diff -Nru a/Documentation/device-mapper/zero.txt b/Documentation/device-mapper/zero.txt --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/Documentation/device-mapper/zero.txt 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,37 @@ +dm-zero +======= + +Device-Mapper's "zero" target provides a block-device that always returns +zero'd data on reads and silently drops writes. This is similar behavior to +/dev/zero, but as a block-device instead of a character-device. + +Dm-zero has no target-specific parameters. + +One very interesting use of dm-zero is for creating "sparse" devices in +conjunction with dm-snapshot. A sparse device reports a device-size larger +than the amount of actual storage space available for that device. A user can +write data anywhere within the sparse device and read it back like a normal +device. Reads to previously unwritten areas will return a zero'd buffer. When +enough data has been written to fill up the actual storage space, the sparse +device is deactivated. This can be very useful for testing device and +filesystem limitations. + +To create a sparse device, start by creating a dm-zero device that's the +desired size of the sparse device. For this example, we'll assume a 10TB +sparse device. + +TEN_TERABYTES=`expr 10 \* 1024 \* 1024 \* 1024 \* 2` # 10 TB in sectors +echo "0 $TEN_TERABYTES zero" | dmsetup create zero1 + +Then create a snapshot of the zero device, using any available block-device as +the COW device. The size of the COW device will determine the amount of real +space available to the sparse device. For this example, we'll assume /dev/sdb1 +is an available 10GB partition. + +echo "0 $TEN_TERABYTES snapshot /dev/mapper/zero1 /dev/sdb1 p 128" | \ + dmsetup create sparse1 + +This will create a 10TB sparse device called /dev/mapper/sparse1 that has +10GB of actual storage space available. If more than 10GB of data is written +to this device, it will start returning I/O errors. + diff -Nru a/Documentation/devices.txt b/Documentation/devices.txt --- a/Documentation/devices.txt 2004-06-28 18:21:55 -07:00 +++ b/Documentation/devices.txt 2004-06-28 18:21:55 -07:00 @@ -434,6 +434,7 @@ 225 = /dev/pps Pulse Per Second driver 226 = /dev/systrace Systrace device 227 = /dev/mcelog X86_64 Machine Check Exception driver + 228 = /dev/hpet HPET driver 240-254 Reserved for local use 255 Reserved for MISC_DYNAMIC_MINOR @@ -2377,16 +2378,16 @@ 1 = /dev/gpib1 Second GPIB bus ... -160 block Carmel 8-port SATA Disks on First Controller - 0 = /dev/carmel/0 SATA disk 0 whole disk - 1 = /dev/carmel/0p1 SATA disk 0 partition 1 +160 block Promise SX8 8-port SATA Disks on First Controller + 0 = /dev/sx8/0 SATA disk 0 whole disk + 1 = /dev/sx8/0p1 SATA disk 0 partition 1 ... - 31 = /dev/carmel/0p31 SATA disk 0 partition 31 + 31 = /dev/sx8/0p31 SATA disk 0 partition 31 - 32 = /dev/carmel/1 SATA disk 1 whole disk - 64 = /dev/carmel/2 SATA disk 2 whole disk + 32 = /dev/sx8/1 SATA disk 1 whole disk + 64 = /dev/sx8/2 SATA disk 2 whole disk ... - 224 = /dev/carmel/7 SATA disk 7 whole disk + 224 = /dev/sx8/7 SATA disk 7 whole disk Partitions are handled in the same way as for IDE disks (see major number 3) except that the limit on @@ -2400,16 +2401,16 @@ 17 = /dev/irlpt1 Second IrLPT device ... -161 block Carmel 8-port SATA Disks on Second Controller - 0 = /dev/carmel/8 SATA disk 8 whole disk - 1 = /dev/carmel/8p1 SATA disk 8 partition 1 +161 block Promise SX8 8-port SATA Disks on Second Controller + 0 = /dev/sx8/8 SATA disk 8 whole disk + 1 = /dev/sx8/8p1 SATA disk 8 partition 1 ... - 31 = /dev/carmel/8p31 SATA disk 8 partition 31 + 31 = /dev/sx8/8p31 SATA disk 8 partition 31 - 32 = /dev/carmel/9 SATA disk 9 whole disk - 64 = /dev/carmel/10 SATA disk 10 whole disk + 32 = /dev/sx8/9 SATA disk 9 whole disk + 64 = /dev/sx8/10 SATA disk 10 whole disk ... - 224 = /dev/carmel/15 SATA disk 15 whole disk + 224 = /dev/sx8/15 SATA disk 15 whole disk Partitions are handled in the same way as for IDE disks (see major number 3) except that the limit on diff -Nru a/Documentation/fb/sisfb.txt b/Documentation/fb/sisfb.txt --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/Documentation/fb/sisfb.txt 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,158 @@ + +What is sisfb? +============== + +sisfb is a framebuffer device driver for SiS (Silicon Integrated Systems) +graphics chips. Supported are: + +- SiS 300 series: SiS 300/305, 540, 630(S), 730(S) +- SiS 315 series: SiS 315/H/PRO, 55x, (M)65x, 740, (M)661(F/M)X, (M)741(GX) +- SiS 330 series: SiS 330 ("Xabre"), (M)760 + + +Why do I need a framebuffer driver? +=================================== + +sisfb is eg. useful if you want a high-resolution text console. Besides that, +sisfb is required to run DirectFB (which comes with an additional, dedicated +driver for the 315 series). + +On the 300 series, sisfb on kernels older than 2.6.3 furthermore plays an +important role in connection with DRM/DRI: Sisfb manages the memory heap +used by DRM/DRI for 3D texture and other data. This memory management is +required for using DRI/DRM. + +Kernels >= around 2.6.3 do not need sisfb any longer for DRI/DRM memory +management. The SiS DRM driver has been updated and features a memory manager +of its own (which will be used if sisfb is not compiled). So unless you want +a graphical console, you don't need sisfb on kernels >=2.6.3. + +Sidenote: Since this seems to be a commonly made mistake: sisfb and vesafb +cannot be active at the same time! Do only select one of them in your kernel +configuration. + + +How are parameters passed to sisfb? +=================================== + +Well, it depends: If compiled statically into the kernel, use lilo's append +statement to add the parameters to the kernel command line. Please see lilo's +(or GRUB's) documentation for more information. If sisfb is a kernel module, +parameters are given with the modprobe (or insmod) command. + +Example for sisfb as part of the static kernel: Add the following line to your +lilo.conf: + + append="video=sisfb:mode:1024x768x16,mem:12288,rate:75" + +Example for sisfb as a module: Start sisfb by typing + + modprobe sisfb mode=1024x768x16 rate=75 mem=12288 + +A common mistake is that folks use a wrong parameter format when using the +driver compiled into the kernel. Please note: If compiled into the kernel, +the parameter format is video=sisfb:mode:none or video=sisfb:mode:1024x768x16 +(or whatever mode you want to use, alternatively using any other format +described above or the vesa keyword instead of mode). If compiled as a module, +the parameter format reads mode=none or mode=1024x768x16 (or whatever mode you +want to use). Using a "=" for a ":" (and vice versa) is a huge difference! +Additionally: If you give more than one argument to the in-kernel sisfb, the +arguments are separated with ",". For example: + + video=sisfb:mode:1024x768x16,rate:75,mem:12288 + + +How do I use it? +================ + +Preface statement: This file only covers very little of the driver's +capabilities and features. Please refer to the author's and maintainer's +website at http://www.winischhofer.net/linuxsisvga.shtml for more +information. Additionally, "modinfo sisfb" gives an overview over all +supported options including some explanation. + +The desired display mode can be specified using the keyword "mode" with +a parameter in one of the follwing formats: + - XxYxDepth or + - XxY-Depth or + - XxY-Depth@Rate or + - XxY + - or simply use the VESA mode number in hexadecimal or decimal. + +For example: 1024x768x16, 1024x768-16@75, 1280x1024-16. If no depth is +specified, it defaults to 8. If no rate is given, it defaults to 60Hz. Depth 32 +means 24bit color depth (but 32 bit framebuffer depth, which is not relevant +to the user). + +Additionally, sisfb understands the keyword "vesa" followed by a VESA mode +number in decimal or hexadecimal. For example: vesa=791 or vesa=0x117. Please +use either "mode" or "vesa" but not both. + +Linux 2.4 only: If no mode is given, sisfb defaults to "no mode" (mode=none) if +compiled as a module; if sisfb is statically compiled into the kernel, it +defaults to 800x600x8 unless CRT2 type is LCD, in which case the LCD's native +resolution is used. If you want to switch to a different mode, use the fbset +shell command. + +Linux 2.6 only: If no mode is given, sisfb defaults to 800x600x8 unless CRT2 +type is LCD, in which case it defaults to the LCD's native resolution. If +you want to switch to another mode, use the stty shell command. + +You should compile in both vgacon (to boot if you remove you SiS card from +your system) and sisfb (for graphics mode). Under Linux 2.6, also "Framebuffer +console support" (fbcon) is needed for a graphical console. + +You should *not* compile-in vesafb. And please do not use the "vga=" keyword +in lilo's or grub's configuration file; mode selection is done using the +"mode" or "vesa" keywords as a parameter. See above and below. + + +X11 +=== + +If using XFree86 or X.org, it is recommended that you don't use the "fbdev" +driver but the dedicated "sis" X driver. The "sis" X driver and sisfb are +developed by the same person (Thomas Winischhofer) and cooperate well with +each other. + + +SVGALib +======= + +SVGALib, if directly accessing the hardware, never restores the screen +correctly, especially on laptops or if the output devices are LCD or TV. +Therefore, use the chipset "FBDEV" in SVGALib configuration. This will make +SVGALib use the framebuffer device for mode switches and restoration. + + +Configuration +============= + +(Some) accepted options: + +off - Disable sisfb. This option is only understood if sisfb is + in-kernel, not a module. +mem:X - size of memory for the console, rest will be used for DRI/DRM. X + is in kilobytes. On 300 series, the default is 4096, 8192 or + 16384 (each in kilobyte) depending on how much video ram the card + has. On 315/330 series, the default is the maximum available ram + (since DRI/DRM is not supported for these chipsets). +noaccel - do not use 2D acceleration engine. (Default: use acceleration) +noypan - disable y-panning and scroll by redrawing the entire screen. + This is much slower than y-panning. (Default: use y-panning) +vesa:X - selects startup videomode. X is number from 0 to 0x1FF and + represents the VESA mode number (can be given in decimal or + hexadecimal form, the latter prefixed with "0x"). +mode:X - selects startup videomode. Please see above for the format of + "X". + +Boolean options such as "noaccel" or "noypan" are to be given without a +parameter if sisfb is in-kernel (for example "video=sisfb:noypan). If +sisfb is a module, these are to be set to 1 (for example "modprobe sisfb +noypan=1"). + +-- +Thomas Winischhofer +May 27, 2004 + + diff -Nru a/Documentation/filesystems/hpfs.txt b/Documentation/filesystems/hpfs.txt --- a/Documentation/filesystems/hpfs.txt 2004-06-28 18:21:55 -07:00 +++ b/Documentation/filesystems/hpfs.txt 2004-06-28 18:21:55 -07:00 @@ -1,5 +1,5 @@ -Read/Write HPFS 2.05 -1998-2001, Mikulas Patocka +Read/Write HPFS 2.09 +1998-2004, Mikulas Patocka email: mikulas@artax.karlin.mff.cuni.cz homepage: http://artax.karlin.mff.cuni.cz/~mikulas/vyplody/hpfs/index-e.cgi @@ -283,6 +283,14 @@ 2.05 Fixed crash when got mount parameters without = Fixed crash when allocation of anode failed due to full disk Fixed some crashes when block io or inode allocation failed +2.06 Fixed some crash on corrupted disk structures + Better allocation strategy + Reschedule points added so that it doesn't lock CPU long time + It should work in read-only mode on Warp Server +2.07 More fixes for Warp Server. Now it really works +2.08 Creating new files is not so slow on large disks + An attempt to sync deleted file does not generate filesystem error +2.09 Fixed error on extremly fragmented files vim: set textwidth=80: diff -Nru a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt --- a/Documentation/filesystems/proc.txt 2004-06-28 18:21:55 -07:00 +++ b/Documentation/filesystems/proc.txt 2004-06-28 18:21:55 -07:00 @@ -201,7 +201,7 @@ devices Available devices (block and character) dma Used DMS channels filesystems Supported filesystems - driver Various drivers grouped here, currently rtc (2.4) + driver Various drivers grouped here, currently rtc (2.4) execdomains Execdomains, related to security (2.4) fb Frame Buffer devices (2.4) fs File system parameters, currently nfs/exports (2.4) @@ -1115,6 +1115,18 @@ The files in this directory can be used to tune the operation of the virtual memory (VM) subsystem of the Linux kernel. +vfs_cache_pressure +------------------ + +Controls the tendency of the kernel to reclaim the memory which is used for +caching of directory and inode objects. + +At the default value of vfs_cache_pressure=100 the kernel will attempt to +reclaim dentries and inodes at a "fair" rate with respect to pagecache and +swapcache reclaim. Decreasing vfs_cache_pressure causes the kernel to prefer +to retain dentry and inode caches. Increasing vfs_cache_pressure beyond 100 +causes the kernel to prefer to reclaim dentries and inodes. + dirty_background_ratio ---------------------- @@ -1640,7 +1652,8 @@ Writing to this file results in a flush of the routing cache. -gc_elastic, gc_interval, gc_min_interval, gc_tresh, gc_timeout +gc_elasticity, gc_interval, gc_min_interval, gc_tresh, gc_timeout, +gc_thresh, gc_thresh1, gc_thresh2, gc_thresh3 -------------------------------------------------------------- Values to control the frequency and behavior of the garbage collection diff -Nru a/Documentation/hpet.txt b/Documentation/hpet.txt --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/Documentation/hpet.txt 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,298 @@ + High Precision Event Timer Driver for Linux + +The High Precision Event Timer (HPET) hardware is the future replacement for the 8254 and Real +Time Clock (RTC) periodic timer functionality. Each HPET can have up two 32 timers. It is possible +to configure the first two timers as legacy replacements for 8254 and RTC periodic. A specification +done by INTEL and Microsoft can be found at http://www.intel.com/labs/platcomp/hpet/hpetspec.htm. + +The driver supports detection of HPET driver allocation and initialization of the HPET before the +driver module_init routine is called. This enables platform code which uses timer 0 or 1 as the +main timer to intercept HPET initialization. An example of this initialization can be found in +arch/i386/kernel/time_hpet.c. + +The driver provides two APIs which are very similar to the API found in the rtc.c driver. +There is a user space API and a kernel space API. An example user space program is provided +below. + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +extern void hpet_open_close(int, const char **); +extern void hpet_info(int, const char **); +extern void hpet_poll(int, const char **); +extern void hpet_fasync(int, const char **); +extern void hpet_read(int, const char **); + +#include +#include +#include + +struct hpet_command { + char *command; + void (*func)(int argc, const char ** argv); +} hpet_command[] = { + { + "open-close", + hpet_open_close + }, + { + "info", + hpet_info + }, + { + "poll", + hpet_poll + }, + { + "fasync", + hpet_fasync + }, +}; + +int +main(int argc, const char ** argv) +{ + int i; + + argc--; + argv++; + + if (!argc) { + fprintf(stderr, "-hpet: requires command\n"); + return -1; + } + + + for (i = 0; i < (sizeof (hpet_command) / sizeof (hpet_command[0])); i++) + if (!strcmp(argv[0], hpet_command[i].command)) { + argc--; + argv++; + fprintf(stderr, "-hpet: executing %s\n", + hpet_command[i].command); + hpet_command[i].func(argc, argv); + return 0; + } + + fprintf(stderr, "do_hpet: command %s not implemented\n", argv[0]); + + return -1; +} + +void +hpet_open_close(int argc, const char **argv) +{ + int fd; + + if (argc != 1) { + fprintf(stderr, "hpet_open_close: device-name\n"); + return; + } + + fd = open(argv[0], O_RDONLY); + if (fd < 0) + fprintf(stderr, "hpet_open_close: open failed\n"); + else + close(fd); + + return; +} + +void +hpet_info(int argc, const char **argv) +{ +} + +void +hpet_poll(int argc, const char **argv) +{ + unsigned long freq; + int iterations, i, fd; + struct pollfd pfd; + struct hpet_info info; + struct timeval stv, etv; + struct timezone tz; + long usec; + + if (argc != 3) { + fprintf(stderr, "hpet_poll: device-name freq iterations\n"); + return; + } + + freq = atoi(argv[1]); + iterations = atoi(argv[2]); + + fd = open(argv[0], O_RDONLY); + + if (fd < 0) { + fprintf(stderr, "hpet_poll: open of %s failed\n", argv[0]); + return; + } + + if (ioctl(fd, HPET_IRQFREQ, freq) < 0) { + fprintf(stderr, "hpet_poll: HPET_IRQFREQ failed\n"); + goto out; + } + + if (ioctl(fd, HPET_INFO, &info) < 0) { + fprintf(stderr, "hpet_poll: failed to get info\n"); + goto out; + } + + fprintf(stderr, "hpet_poll: info.hi_flags 0x%lx\n", info.hi_flags); + + if (info.hi_flags && (ioctl(fd, HPET_EPI, 0) < 0)) { + fprintf(stderr, "hpet_poll: HPET_EPI failed\n"); + goto out; + } + + if (ioctl(fd, HPET_IE_ON, 0) < 0) { + fprintf(stderr, "hpet_poll, HPET_IE_ON failed\n"); + goto out; + } + + pfd.fd = fd; + pfd.events = POLLIN; + + for (i = 0; i < iterations; i++) { + pfd.revents = 0; + gettimeofday(&stv, &tz); + if (poll(&pfd, 1, -1) < 0) + fprintf(stderr, "hpet_poll: poll failed\n"); + else { + long data; + + gettimeofday(&etv, &tz); + usec = stv.tv_sec * 1000000 + stv.tv_usec; + usec = (etv.tv_sec * 1000000 + etv.tv_usec) - usec; + + fprintf(stderr, + "hpet_poll: expired time = 0x%lx\n", usec); + + fprintf(stderr, "hpet_poll: revents = 0x%x\n", + pfd.revents); + + if (read(fd, &data, sizeof(data)) != sizeof(data)) { + fprintf(stderr, "hpet_poll: read failed\n"); + } + else + fprintf(stderr, "hpet_poll: data 0x%lx\n", + data); + } + } + +out: + close(fd); + return; +} + +static int hpet_sigio_count; + +static void +hpet_sigio(int val) +{ + fprintf(stderr, "hpet_sigio: called\n"); + hpet_sigio_count++; +} + +void +hpet_fasync(int argc, const char **argv) +{ + unsigned long freq; + int iterations, i, fd, value; + sig_t oldsig; + struct hpet_info info; + + hpet_sigio_count = 0; + fd = -1; + + if ((oldsig = signal(SIGIO, hpet_sigio)) == SIG_ERR) { + fprintf(stderr, "hpet_fasync: failed to set signal handler\n"); + return; + } + + if (argc != 3) { + fprintf(stderr, "hpet_fasync: device-name freq iterations\n"); + goto out; + } + + fd = open(argv[0], O_RDONLY); + + if (fd < 0) { + fprintf(stderr, "hpet_fasync: failed to open %s\n", argv[0]); + return; + } + + + if ((fcntl(fd, F_SETOWN, getpid()) == 1) || + ((value = fcntl(fd, F_GETFL)) == 1) || + (fcntl(fd, F_SETFL, value | O_ASYNC) == 1)) { + fprintf(stderr, "hpet_fasync: fcntl failed\n"); + goto out; + } + + freq = atoi(argv[1]); + iterations = atoi(argv[2]); + + if (ioctl(fd, HPET_IRQFREQ, freq) < 0) { + fprintf(stderr, "hpet_fasync: HPET_IRQFREQ failed\n"); + goto out; + } + + if (ioctl(fd, HPET_INFO, &info) < 0) { + fprintf(stderr, "hpet_fasync: failed to get info\n"); + goto out; + } + + fprintf(stderr, "hpet_fasync: info.hi_flags 0x%lx\n", info.hi_flags); + + if (info.hi_flags && (ioctl(fd, HPET_EPI, 0) < 0)) { + fprintf(stderr, "hpet_fasync: HPET_EPI failed\n"); + goto out; + } + + if (ioctl(fd, HPET_IE_ON, 0) < 0) { + fprintf(stderr, "hpet_fasync, HPET_IE_ON failed\n"); + goto out; + } + + for (i = 0; i < iterations; i++) { + (void) pause(); + fprintf(stderr, "hpet_fasync: count = %d\n", hpet_sigio_count); + } + +out: + signal(SIGIO, oldsig); + + if (fd >= 0) + close(fd); + + return; +} + +The kernel API has three interfaces exported from the driver: + + hpet_register(struct hpet_task *tp, int periodic) + hpet_unregister(struct hpet_task *tp) + hpet_control(struct hpet_task *tp, unsigned int cmd, unsigned long arg) + +The kernel module using this interface fills in the ht_func and ht_data members of the +hpet_task structure before calling hpet_register. hpet_control simply vectors to the hpet_ioctl +routine and has the same commands and respective arguments as the user API. hpet_unregister +is used to terminate usage of the HPET timer reserved by hpet_register. + + diff -Nru a/Documentation/ioctl-number.txt b/Documentation/ioctl-number.txt --- a/Documentation/ioctl-number.txt 2004-06-28 18:21:59 -07:00 +++ b/Documentation/ioctl-number.txt 2004-06-28 18:21:59 -07:00 @@ -189,3 +189,5 @@ 0xDD 00-3F ZFCP device driver see drivers/s390/scsi/ +0xF3 00-3F video/sisfb.h sisfb (in development) + diff -Nru a/Documentation/laptop-mode.txt b/Documentation/laptop-mode.txt --- a/Documentation/laptop-mode.txt 2004-06-28 18:21:58 -07:00 +++ b/Documentation/laptop-mode.txt 2004-06-28 18:21:58 -07:00 @@ -28,8 +28,9 @@ The short story --------------- -If you just want to use it, run the laptop_mode control script (which is included -at the end of this document) as follows: +To use laptop mode, you don't need to set any kernel configuration options +or anything. You simply need to run the laptop_mode control script (which +is included in this document) as follows: # laptop_mode start @@ -78,12 +79,13 @@ The details ----------- -Laptop-mode is controlled by the flag /proc/sys/vm/laptop_mode. When this -flag is set, any physical disk read operation (that might have caused the -hard disk to spin up) causes Linux to flush all dirty blocks. The result -of this is that after a disk has spun down, it will not be spun up anymore -to write dirty blocks, because those blocks had already been written -immediately after the most recent read operation +Laptop-mode is controlled by the flag /proc/sys/vm/laptop_mode. This flag is +present for all kernels that have the laptop mode patch, regardless of any +configuration options. When the flag is set, any physical disk read operation +(that might have caused the hard disk to spin up) causes Linux to flush all dirty +blocks. The result of this is that after a disk has spun down, it will not be spun +up anymore to write dirty blocks, because those blocks had already been written +immediately after the most recent read operation. To increase the effectiveness of the laptop_mode strategy, the laptop_mode control script increases dirty_expire_centisecs and dirty_writeback_centisecs in @@ -163,7 +165,7 @@ Please note that this control script works for the Linux 2.4 and 2.6 series. --------------------CONTROL SCRIPT BEGIN------------------------------------------ -#! /bin/sh +#!/bin/bash # start or stop laptop_mode, best run by a power management daemon when # ac gets connected/disconnected from a laptop @@ -174,22 +176,91 @@ # Bart Samwel # Micha Feigin # Andrew Morton +# Herve Eychenne # Dax Kelson # # Original Linux 2.4 version by: Jens Axboe +############################################################################# + +# Age time, in seconds. should be put into a sysconfig file +MAX_AGE=600 + +# Read-ahead, in kilobytes +READAHEAD=4096 + +# Shall we remount journaled fs. with appropiate commit interval? (1=yes) +DO_REMOUNTS=1 + +# And shall we add the "noatime" option to that as well? (1=yes) +DO_REMOUNT_NOATIME=1 + +# Dirty synchronous ratio. At this percentage of dirty pages the process which +# calls write() does its own writeback +DIRTY_RATIO=40 + +# +# Allowed dirty background ratio, in percent. Once DIRTY_RATIO has been +# exceeded, the kernel will wake pdflush which will then reduce the amount +# of dirty memory to dirty_background_ratio. Set this nice and low, so once +# some writeout has commenced, we do a lot of it. +# +DIRTY_BACKGROUND_RATIO=5 + +# kernel default dirty buffer age +DEF_AGE=30 +DEF_UPDATE=5 +DEF_DIRTY_BACKGROUND_RATIO=10 +DEF_DIRTY_RATIO=40 +DEF_XFS_AGE_BUFFER=15 +DEF_XFS_SYNC_INTERVAL=30 +DEF_XFS_BUFD_INTERVAL=1 + +# This must be adjusted manually to the value of HZ in the running kernel +# on 2.4, until the XFS people change their 2.4 external interfaces to work in +# centisecs. This can be automated, but it's a work in progress that still needs +# some fixes. On 2.6 kernels, XFS uses USER_HZ instead of HZ for external +# interfaces, and that is currently always set to 100. So you don't need to +# change this on 2.6. +XFS_HZ=100 + +############################################################################# + +KLEVEL="$(uname -r | + { + IFS='.' read a b c + echo $a.$b + } +)" +case "$KLEVEL" in + "2.4"|"2.6") + ;; + *) + echo "Unhandled kernel version: $KLEVEL ('uname -r' = '$(uname -r)')" >&2 + exit 1 + ;; +esac + +if [ ! -e /proc/sys/vm/laptop_mode ] ; then + echo "Kernel is not patched with laptop_mode patch." >&2 + exit 1 +fi + +if [ ! -w /proc/sys/vm/laptop_mode ] ; then + echo "You do not have enough privileges to enable laptop_mode." >&2 + exit 1 +fi + # Remove an option (the first parameter) of the form option= from # a mount options string (the rest of the parameters). parse_mount_opts () { OPT="$1" shift - echo "$*" | \ - sed 's/.*/,&,/' | \ - sed 's/,'"$OPT"'=[0-9]*,/,/g' | \ - sed 's/,,*/,/g' | \ - sed 's/^,//' | \ - sed 's/,$//' | \ - cat - + echo ",$*," | sed \ + -e 's/,'"$OPT"'=[0-9]*,/,/g' \ + -e 's/,,*/,/g' \ + -e 's/^,//' \ + -e 's/,$//' } # Remove an option (the first parameter) without any arguments from @@ -197,13 +268,11 @@ parse_nonumber_mount_opts () { OPT="$1" shift - echo "$*" | \ - sed 's/.*/,&,/' | \ - sed 's/,'"$OPT"',/,/g' | \ - sed 's/,,*/,/g' | \ - sed 's/^,//' | \ - sed 's/,$//' | \ - cat - + echo ",$*," | sed \ + -e 's/,'"$OPT"',/,/g' \ + -e 's/,,*/,/g' \ + -e 's/^,//' \ + -e 's/,$//' } # Find out the state of a yes/no option (e.g. "atime"/"noatime") in @@ -218,28 +287,26 @@ # If fstab contains, say, "rw" for this filesystem, then the result # will be "defaults,atime". parse_yesno_opts_wfstab () { - L_DEV=$1 - shift - OPT=$1 - shift - DEF_OPT=$1 - shift + L_DEV="$1" + OPT="$2" + DEF_OPT="$3" + shift 3 L_OPTS="$*" PARSEDOPTS1="$(parse_nonumber_mount_opts $OPT $L_OPTS)" PARSEDOPTS1="$(parse_nonumber_mount_opts no$OPT $PARSEDOPTS1)" # Watch for a default atime in fstab - FSTAB_OPTS="$(cat /etc/fstab | sed 's/ / /g' | grep ^\ *"$L_DEV " | awk '{ print $4 }')" - if [ -z "$(echo "$FSTAB_OPTS" | grep "$OPT")" ] ; then - # option not specified in fstab -- choose the default. - echo "$PARSEDOPTS1,$DEF_OPT" - else + FSTAB_OPTS="$(awk '$1 == "'$L_DEV'" { print $4 }' /etc/fstab)" + if echo "$FSTAB_OPTS" | grep "$OPT" > /dev/null ; then # option specified in fstab: extract the value and use it - if [ -z "$(echo "$FSTAB_OPTS" | grep "no$OPT")" ] ; then + if echo "$FSTAB_OPTS" | grep "no$OPT" > /dev/null ; then + echo "$PARSEDOPTS1,no$OPT" + else # no$OPT not found -- so we must have $OPT. echo "$PARSEDOPTS1,$OPT" - else - echo "$PARSEDOPTS1,no$OPT" fi + else + # option not specified in fstab -- choose the default. + echo "$PARSEDOPTS1,$DEF_OPT" fi } @@ -256,97 +323,27 @@ # If fstab contains, say, "commit=3,rw" for this filesystem, then the # result will be "rw,commit=3". parse_mount_opts_wfstab () { - L_DEV=$1 - shift - OPT=$1 - shift + L_DEV="$1" + OPT="$2" + shift 2 L_OPTS="$*" - PARSEDOPTS1="$(parse_mount_opts $OPT $L_OPTS)" # Watch for a default commit in fstab - FSTAB_OPTS="$(cat /etc/fstab | sed 's/ / /g' | grep ^\ *"$L_DEV " | awk '{ print $4 }')" - if [ -z "$(echo "$FSTAB_OPTS" | grep "$OPT=")" ] ; then - # option not specified in fstab: set it to 0 - echo "$PARSEDOPTS1,$OPT=0" - else + FSTAB_OPTS="$(awk '$1 == "'$L_DEV'" { print $4 }' /etc/fstab)" + if echo "$FSTAB_OPTS" | grep "$OPT=" > /dev/null ; then # option specified in fstab: extract the value, and use it echo -n "$PARSEDOPTS1,$OPT=" - echo "$FSTAB_OPTS" | \ - sed 's/.*/,&,/' | \ - sed 's/.*,'"$OPT"'=//' | \ - sed 's/,.*//' | \ - cat - + echo ",$FSTAB_OPTS," | sed \ + -e 's/.*,'"$OPT"'=//' \ + -e 's/,.*//' + else + # option not specified in fstab: set it to 0 + echo "$PARSEDOPTS1,$OPT=0" fi } -KLEVEL=$( - uname -r | - ( - IFS="." read a b c - echo $a.$b - ) - ) -case "$KLEVEL" in - "2.4"|"2.6") - true - ;; - *) - echo "Unhandled kernel version: $KLEVEL ('uname -r' = '$(uname -r)')" - exit 1 - ;; -esac - -# Shall we remount journaled fs. with appropiate commit interval? (1=yes) -DO_REMOUNTS=1 - -# And shall we add the "noatime" option to that as well? (1=yes) -DO_REMOUNT_NOATIME=1 - -# age time, in seconds. should be put into a sysconfig file -MAX_AGE=600 - -# Dirty synchronous ratio. At this percentage of dirty pages the process which -# calls write() does its own writeback -DIRTY_RATIO=40 - -# -# Allowed dirty background ratio, in percent. Once DIRTY_RATIO has been -# exceeded, the kernel will wake pdflush which will then reduce the amount -# of dirty memory to dirty_background_ratio. Set this nice and low, so once -# some writeout has commenced, we do a lot of it. -# -DIRTY_BACKGROUND_RATIO=5 - -READAHEAD=4096 # kilobytes -# kernel default dirty buffer age -DEF_AGE=30 -DEF_UPDATE=5 -DEF_DIRTY_BACKGROUND_RATIO=10 -DEF_DIRTY_RATIO=40 -DEF_XFS_AGE_BUFFER=15 -DEF_XFS_SYNC_INTERVAL=30 -DEF_XFS_BUFD_INTERVAL=1 - -# This must be adjusted manually to the value of HZ in the running kernel -# on 2.4, until the XFS people change their 2.4 external interfaces to work in -# centisecs. This can be automated, but it's a work in progress that still needs -# some fixes. On 2.6 kernels, XFS uses USER_HZ instead of HZ for external -# interfaces, and that is currently always set to 100. So you don't need to -# change this on 2.6. -XFS_HZ=100 - -if [ ! -e /proc/sys/vm/laptop_mode ]; then - echo "Kernel is not patched with laptop_mode patch." - exit 1 -fi - -if [ ! -w /proc/sys/vm/laptop_mode ]; then - echo "You do not have enough privileges to enable laptop_mode." - exit 1 -fi - -if [ $DO_REMOUNT_NOATIME -eq 1 ]; then +if [ $DO_REMOUNT_NOATIME -eq 1 ] ; then NOATIME_OPT=",noatime" fi @@ -384,11 +381,11 @@ case "$KLEVEL" in "2.4") - echo "1" > /proc/sys/vm/laptop_mode + echo 1 > /proc/sys/vm/laptop_mode echo "30 500 0 0 $AGE $AGE 60 20 0" > /proc/sys/vm/bdflush ;; "2.6") - echo "5" > /proc/sys/vm/laptop_mode + echo 5 > /proc/sys/vm/laptop_mode echo "$AGE" > /proc/sys/vm/dirty_writeback_centisecs echo "$AGE" > /proc/sys/vm/dirty_expire_centisecs echo "$DIRTY_RATIO" > /proc/sys/vm/dirty_ratio @@ -418,16 +415,16 @@ U_AGE=$((100*$DEF_UPDATE)) B_AGE=$((100*$DEF_AGE)) echo -n "Stopping laptop_mode" - echo "0" > /proc/sys/vm/laptop_mode - if [ -f /proc/sys/fs/xfs/age_buffer ] && [ ! -f /proc/sys/fs/xfs/lm_age_buffer ] ; then + echo 0 > /proc/sys/vm/laptop_mode + if [ -f /proc/sys/fs/xfs/age_buffer -a ! -f /proc/sys/fs/xfs/lm_age_buffer ] ; then # These need to be restored, if there are no lm_*. - echo "$(($XFS_HZ*$DEF_XFS_AGE_BUFFER))" > /proc/sys/fs/xfs/age_buffer - echo "$(($XFS_HZ*$DEF_XFS_SYNC_INTERVAL))" > /proc/sys/fs/xfs/sync_interval + echo $(($XFS_HZ*$DEF_XFS_AGE_BUFFER)) > /proc/sys/fs/xfs/age_buffer + echo $(($XFS_HZ*$DEF_XFS_SYNC_INTERVAL)) > /proc/sys/fs/xfs/sync_interval elif [ -f /proc/sys/fs/xfs/age_buffer_centisecs ] ; then # These need to be restored as well. - echo "$((100*$DEF_XFS_AGE_BUFFER))" > /proc/sys/fs/xfs/age_buffer_centisecs - echo "$((100*$DEF_XFS_SYNC_INTERVAL))" > /proc/sys/fs/xfs/xfssyncd_centisecs - echo "$((100*$DEF_XFS_BUFD_INTERVAL))" > /proc/sys/fs/xfs/xfsbufd_centisecs + echo $((100*$DEF_XFS_AGE_BUFFER)) > /proc/sys/fs/xfs/age_buffer_centisecs + echo $((100*$DEF_XFS_SYNC_INTERVAL)) > /proc/sys/fs/xfs/xfssyncd_centisecs + echo $((100*$DEF_XFS_BUFD_INTERVAL)) > /proc/sys/fs/xfs/xfsbufd_centisecs fi case "$KLEVEL" in "2.4") @@ -440,7 +437,7 @@ echo "$DEF_DIRTY_BACKGROUND_RATIO" > /proc/sys/vm/dirty_background_ratio ;; esac - if [ $DO_REMOUNTS -eq 1 ]; then + if [ $DO_REMOUNTS -eq 1 ] ; then cat /etc/mtab | while read DEV MP FST OPTS DUMP PASS ; do # Reset commit and atime options to defaults. case "$FST" in @@ -462,13 +459,13 @@ echo "." ;; *) - echo "Usage: $0 {start|stop}" + echo "Usage: $0 {start|stop}" 2>&1 + exit 1 ;; esac exit 0 - --------------------CONTROL SCRIPT END-------------------------------------------- diff -Nru a/Documentation/networking/00-INDEX b/Documentation/networking/00-INDEX --- a/Documentation/networking/00-INDEX 2004-06-28 18:21:58 -07:00 +++ b/Documentation/networking/00-INDEX 2004-06-28 18:21:58 -07:00 @@ -4,8 +4,6 @@ - information on the 3Com EtherLink Plus (3c505) driver. 6pack.txt - info on the 6pack protocol, an alternative to KISS for AX.25 -8139too.txt - - info on the 8139too driver for RTL-8139 based network cards. Configurable - info on some of the configurable network parameters DLINK.txt diff -Nru a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt --- a/Documentation/networking/ip-sysctl.txt 2004-06-28 18:21:56 -07:00 +++ b/Documentation/networking/ip-sysctl.txt 2004-06-28 18:21:56 -07:00 @@ -17,6 +17,16 @@ Disable Path MTU Discovery. default FALSE +min_pmtu - INTEGER + default 562 - minimum discovered Path MTU + +mtu_expires - INTEGER + Time, in seconds, that cached PMTU information is kept. + +min_adv_mss - INTEGER + The advertised MSS depends on the first hop route MTU, but will + never be lower than this setting. + IP Fragmentation: ipfrag_high_thresh - INTEGER @@ -345,6 +355,20 @@ conections. Default: 7 + +tcp_frto - BOOLEAN + Enables F-RTO, an enhanced recovery algorithm for TCP retransmission + timeouts. It is particularly beneficial in wireless environments + where packet loss is typically due to random radio interference + rather than intermediate router congestion. + +somaxconn - INTEGER + Limit of socket listen() backlog, known in userspace as SOMAXCONN. + Defaults to 128. See also tcp_max_syn_backlog for additional tuning + for TCP sockets. + +IP Variables: + ip_local_port_range - 2 INTEGERS Defines the local port range that is used by TCP and UDP to choose the local port. The first number is the first, the @@ -586,6 +610,19 @@ The max value from conf/{all,interface}/arp_ignore is used when ARP request is received on the {interface} +app_solicit - INTEGER + The maximum number of probes to send to the user space ARP daemon + via netlink before dropping back to multicast probes (see + mcast_solicit). Defaults to 0. + +disable_policy - BOOLEAN + Disable IPSEC policy (SPD) for this interface + +disable_xfrm - BOOLEAN + Disable IPSEC encryption on this interface, whatever the policy + + + tag - INTEGER Allows you to write a number, which can be used as required. Default value is 0. @@ -678,9 +715,11 @@ disabled if local forwarding is enabled. autoconf - BOOLEAN - Configure link-local addresses using L2 hardware addresses. + Autoconfigure addresses using Prefix Information in Router + Advertisements. - Default: TRUE + Functional default: enabled if accept_ra is enabled. + disabled if accept_ra is disabled. dad_transmits - INTEGER The amount of Duplicate Address Detection probes to send. @@ -803,5 +842,26 @@ 0 : disable this. Default: 1 + +UNDOCUMENTED: + +dev_weight FIXME +discovery_slots FIXME +discovery_timeout FIXME +fast_poll_increase FIXME +ip6_queue_maxlen FIXME +lap_keepalive_time FIXME +lo_cong FIXME +max_baud_rate FIXME +max_dgram_qlen FIXME +max_noreply_time FIXME +max_tx_data_size FIXME +max_tx_window FIXME +min_tx_turn_time FIXME +mod_cong FIXME +no_cong FIXME +no_cong_thresh FIXME +slot_timeout FIXME +warn_noreply_time FIXME $Id: ip-sysctl.txt,v 1.20 2001/12/13 09:00:18 davem Exp $ diff -Nru a/Documentation/networking/pktgen.txt b/Documentation/networking/pktgen.txt --- a/Documentation/networking/pktgen.txt 2004-06-28 18:21:56 -07:00 +++ b/Documentation/networking/pktgen.txt 2004-06-28 18:21:56 -07:00 @@ -11,13 +11,13 @@ 5. After this two commands are defined: A. "pg" to start generator and to get results. B. "pgset" to change generator parameters. F.e. - pgset "clone_skb 100" sets the number of coppies of the same packet + pgset "clone_skb 100" sets the number of copies of the same packet will be sent before a new packet is allocated pgset "clone_skb 0" use multiple SKBs for packet generation pgset "pkt_size 9014" sets packet size to 9014 pgset "frags 5" packet will consist of 5 fragments pgset "count 200000" sets number of packets to send, set to zero - for continious sends untill explicitly + for continuous sends until explicitly stopped. pgset "ipg 5000" sets artificial gap inserted between packets to 5000 nanoseconds diff -Nru a/Documentation/pci.txt b/Documentation/pci.txt --- a/Documentation/pci.txt 2004-06-28 18:21:56 -07:00 +++ b/Documentation/pci.txt 2004-06-28 18:21:56 -07:00 @@ -166,8 +166,9 @@ ~~~~~~~~~~~~~~~~~~~ Before you do anything with the device you've found, you need to enable it by calling pci_enable_device() which enables I/O and memory regions of -the device, assigns missing resources if needed and wakes up the device -if it was in suspended state. Please note that this function can fail. +the device, allocates an IRQ if necessary, assigns missing resources if +needed and wakes up the device if it was in suspended state. Please note +that this function can fail. If you want to use the device in bus mastering mode, call pci_set_master() which enables the bus master bit in PCI_COMMAND register and also fixes diff -Nru a/Documentation/power/pci.txt b/Documentation/power/pci.txt --- a/Documentation/power/pci.txt 2004-06-28 18:21:58 -07:00 +++ b/Documentation/power/pci.txt 2004-06-28 18:21:58 -07:00 @@ -286,11 +286,11 @@ +------------------+ | Bit | State | +------------------+ -| 15 | D0 | -| 14 | D1 | +| 11 | D0 | +| 12 | D1 | | 13 | D2 | -| 12 | D3hot | -| 11 | D3cold | +| 14 | D3hot | +| 15 | D3cold | +------------------+ A device can use this to enable wake events: diff -Nru a/Documentation/power/swsusp.txt b/Documentation/power/swsusp.txt --- a/Documentation/power/swsusp.txt 2004-06-28 18:21:52 -07:00 +++ b/Documentation/power/swsusp.txt 2004-06-28 18:21:52 -07:00 @@ -12,6 +12,9 @@ * ...you'd better find out how to get along * without your data. * + * If you change kernel command line between suspend and resume... + * ...prepare for nasty fsck or worse. + * * (*) pm interface support is needed to make it safe. You need to append resume=/dev/your_swap_partition to kernel command diff -Nru a/Documentation/power/video.txt b/Documentation/power/video.txt --- a/Documentation/power/video.txt 2004-06-28 18:21:56 -07:00 +++ b/Documentation/power/video.txt 2004-06-28 18:21:56 -07:00 @@ -30,10 +30,6 @@ patched X, and plain text console (no vesafb or radeonfb), see http://www.doesi.gmxhome.de/linux/tm800s3/s3.html. (Acer TM 800) -* radeon systems, where X can soft-boot your video card. You'll need - patched X, and plain text console (no vesafb or radeonfb), see - http://www.doesi.gmxhome.de/linux/tm800s3/s3.html. (Acer TM 800) - Now, if you pass acpi_sleep=something, and it does not work with your bios, you'll get hard crash during resume. Be carefull. 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 2004-06-28 18:21:58 -07:00 +++ b/Documentation/scsi/scsi_mid_low_api.txt 2004-06-28 18:21:58 -07:00 @@ -827,6 +827,7 @@ Summary: bios_param - fetch head, sector, cylinder info for a disk detect - detects HBAs this driver wants to control + eh_timed_out - notify the host that a command timer expired eh_abort_handler - abort given command eh_bus_reset_handler - issue SCSI bus reset eh_device_reset_handler - issue SCSI device reset @@ -892,6 +893,32 @@ * not invoked in "hotplug initialization mode") **/ int detect(struct scsi_host_template * shtp) + + +/** + * eh_timed_out - The timer for the command has just fired + * @scp: identifies command timing out + * + * Returns: + * + * EH_HANDLED: I fixed the error, please complete the command + * EH_RESET_TIMER: I need more time, reset the timer and + * begin counting again + * EH_NOT_HANDLED Begin normal error recovery + + * + * Locks: None held + * + * Calling context: interrupt + * + * Notes: This is to give the LLD an opportunity to do local recovery. + * This recovery is limited to determining if the outstanding command + * will ever complete. You may not abort and restart the command from + * this callback. + * + * Optionally defined in: LLD + **/ + int eh_timed_out(struct scsi_cmnd * scp) /** diff -Nru a/Documentation/sh/new-machine.txt b/Documentation/sh/new-machine.txt --- a/Documentation/sh/new-machine.txt 2004-06-28 18:21:57 -07:00 +++ b/Documentation/sh/new-machine.txt 2004-06-28 18:21:57 -07:00 @@ -188,13 +188,7 @@ - add a new file include/asm-sh/vapor/io.h which contains prototypes for any machine specific IO functions prefixed with the machine name, for example vapor_inb. These will be needed when filling out the machine - vector. In addition, a section is required which defines what to do when - building a machine specific version. For example: - - #ifdef __WANT_IO_DEF - #define inb vapor_inb - ... - #endif + vector. This is the minimum that is required, however there are ample opportunities to optimise this. In particular, by making the prototypes diff -Nru a/Documentation/sysctl/vm.txt b/Documentation/sysctl/vm.txt --- a/Documentation/sysctl/vm.txt 2004-06-28 18:21:58 -07:00 +++ b/Documentation/sysctl/vm.txt 2004-06-28 18:21:58 -07:00 @@ -28,7 +28,7 @@ ============================================================== dirty_ratio, dirty_background_ratio, dirty_expire_centisecs, -dirty_writeback_centisecs: +dirty_writeback_centisecs, vfs_cache_pressure: See Documentation/filesystems/proc.txt diff -Nru a/MAINTAINERS b/MAINTAINERS --- a/MAINTAINERS 2004-06-28 18:21:57 -07:00 +++ b/MAINTAINERS 2004-06-28 18:21:57 -07:00 @@ -90,6 +90,20 @@ L: linux-net@vger.kernel.org S: Maintained +3W-XXXX ATA-RAID CONTROLLER DRIVER +P: Adam Radford +M: linuxraid@amcc.com +L: linux-scsi@vger.kernel.org +W: http://www.amcc.com +S: Supported + +3W-9XXX SATA-RAID CONTROLLER DRIVER +P: Adam Radford +M: linuxraid@amcc.com +L: linux-scsi@vger.kernel.org +W: http://www.amcc.com +S: Supported + 53C700 AND 53C700-66 SCSI DRIVER P: James E.J. Bottomley M: James.Bottomley@HansenPartnership.com @@ -689,6 +703,12 @@ L: blinux-list@redhat.com S: Maintained +DRIVER CORE, KOBJECTS, AND SYSFS +P: Greg Kroah-Hartman +M: greg@kroah.com +L: linux-kernel@vger.kernel.org +S: Supported + DRM DRIVERS L: dri-devel@lists.sourceforge.net S: Supported @@ -1250,6 +1270,20 @@ W: http://www.linuxppc.org/ L: linuxppc-dev@lists.linuxppc.org S: Maintained + +LINUX FOR POWERPC EMBEDDED PPC4XX +P: Matt Porter +M: mporter@kernel.crashing.org +W: http://www.penguinppc.org/ +L: linuxppc-embedded@lists.linuxppc.org +S: Maintained + +LINUX FOR POWERPC EMBEDDED PPC85XX +P: Kumar Gala +M: kumar.gala@freescale.com +W: http://www.penguinppc.org/ +L: linuxppc-embedded@lists.linuxppc.org +S: Maintained LLC (802.2) P: Arnaldo Carvalho de Melo diff -Nru a/Makefile b/Makefile --- a/Makefile 2004-06-28 18:21:57 -07:00 +++ b/Makefile 2004-06-28 18:21:57 -07:00 @@ -290,8 +290,6 @@ OBJCOPY = $(CROSS_COMPILE)objcopy OBJDUMP = $(CROSS_COMPILE)objdump AWK = awk -RPM := $(shell if [ -x "/usr/bin/rpmbuild" ]; then echo rpmbuild; \ - else echo rpm; fi) GENKSYMS = scripts/genksyms/genksyms DEPMOD = /sbin/depmod KALLSYMS = scripts/kallsyms @@ -409,13 +407,6 @@ scripts_basic: include/linux/autoconf.h - -# That's our default target when none is given on the command line -# Note that 'modules' will be added as a prerequisite as well, -# in the CONFIG_MODULES part below - -all: vmlinux - # Objects we will link into vmlinux / subdirs we need to visit init-y := init/ drivers-y := drivers/ sound/ @@ -449,6 +440,19 @@ include $(srctree)/arch/$(ARCH)/Makefile +# Default kernel image to build when no specific target is given. +# KBUILD_IMAGE may be overruled on the commandline or +# set in the environment +# Also any assingments in arch/$(ARCH)/Makefiel take precedence over +# this default value +export KBUILD_IMAGE ?= vmlinux + +# The all: target is the default when no target is given on the +# command line. +# This allow a user to issue only 'make' to build a kernel including modules +# Defaults vmlinux but it is usually overriden in the arch makefile +all: vmlinux + ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE CFLAGS += -Os else @@ -544,10 +548,7 @@ echo 'cmd_$@ := $(cmd_vmlinux__)' > $(@D)/.$(@F).cmd endef -define rule_vmlinux - $(rule_vmlinux__); \ - $(NM) $@ | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort > System.map -endef +do_system_map = $(NM) $(1) | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort > $(2) LDFLAGS_vmlinux += -T arch/$(ARCH)/kernel/vmlinux.lds.s @@ -561,30 +562,57 @@ # but due to the added section, some addresses have shifted # From here, we generate a correct .tmp_kallsyms2.o # o The correct .tmp_kallsyms2.o is linked into the final vmlinux. +# o Verify that the System.map from vmlinux matches the map from +# .tmp_vmlinux2, just in case we did not generate kallsyms correctly. +# o If CONFIG_KALLSYMS_EXTRA_PASS is set, do an extra pass using +# .tmp_vmlinux3 and .tmp_kallsyms3.o. This is only meant as a +# temporary bypass to allow the kernel to be built while the +# maintainers work out what went wrong with kallsyms. ifdef CONFIG_KALLSYMS -kallsyms.o := .tmp_kallsyms2.o +ifdef CONFIG_KALLSYMS_EXTRA_PASS +last_kallsyms := 3 +else +last_kallsyms := 2 +endif + +kallsyms.o := .tmp_kallsyms$(last_kallsyms).o + +define rule_verify_kallsyms + @$(call do_system_map, .tmp_vmlinux$(last_kallsyms), .tmp_System.map) + @cmp -s System.map .tmp_System.map || \ + (echo Inconsistent kallsyms data, try setting CONFIG_KALLSYMS_EXTRA_PASS ; rm .tmp_kallsyms* ; false) +endef quiet_cmd_kallsyms = KSYM $@ cmd_kallsyms = $(NM) -n $< | $(KALLSYMS) $(foreach x,$(CONFIG_KALLSYMS_ALL),--all-symbols) > $@ -.tmp_kallsyms1.o .tmp_kallsyms2.o: %.o: %.S scripts FORCE +.tmp_kallsyms1.o .tmp_kallsyms2.o .tmp_kallsyms3.o: %.o: %.S scripts FORCE $(call if_changed_dep,as_o_S) .tmp_kallsyms%.S: .tmp_vmlinux% $(call cmd,kallsyms) .tmp_vmlinux1: $(vmlinux-objs) arch/$(ARCH)/kernel/vmlinux.lds.s FORCE - +$(call if_changed_rule,vmlinux__) + $(call if_changed_rule,vmlinux__) .tmp_vmlinux2: $(vmlinux-objs) .tmp_kallsyms1.o arch/$(ARCH)/kernel/vmlinux.lds.s FORCE $(call if_changed_rule,vmlinux__) +.tmp_vmlinux3: $(vmlinux-objs) .tmp_kallsyms2.o arch/$(ARCH)/kernel/vmlinux.lds.s FORCE + $(call if_changed_rule,vmlinux__) + endif # Finally the vmlinux rule +define rule_vmlinux + $(rule_vmlinux__); \ + $(call do_system_map, $@, System.map) + $(rule_verify_kallsyms) +endef + vmlinux: $(vmlinux-objs) $(kallsyms.o) arch/$(ARCH)/kernel/vmlinux.lds.s FORCE $(call if_changed_rule,vmlinux) @@ -795,8 +823,8 @@ # Directories & files removed with 'make clean' CLEAN_DIRS += $(MODVERDIR) -CLEAN_FILES += vmlinux System.map kernel.spec \ - .tmp_kallsyms* .tmp_version .tmp_vmlinux* +CLEAN_FILES += vmlinux System.map \ + .tmp_kallsyms* .tmp_version .tmp_vmlinux* .tmp_System.map # Directories & files removed with 'make mrproper' MRPROPER_DIRS += include/config include2 @@ -841,44 +869,26 @@ .PHONY: distclean distclean: mrproper - @find . $(RCS_FIND_IGNORE) \ + @find $(srctree) $(RCS_FIND_IGNORE) \ \( -name '*.orig' -o -name '*.rej' -o -name '*~' \ -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \ -o -name '.*.rej' -o -size 0 \ -o -name '*%' -o -name '.*.cmd' -o -name 'core' \) \ -type f -print | xargs rm -f -# RPM target -# --------------------------------------------------------------------------- -.PHONY: rpm - -# Remove hyphens since they have special meaning in RPM filenames -KERNELPATH=kernel-$(subst -,,$(KERNELRELEASE)) +# Packaging of the kernel to various formats +# --------------------------------------------------------------------------- +# rpm target kept for backward compatibility +package-dir := $(srctree)/scripts/package -# If you do a make spec before packing the tarball you can rpm -ta it +.PHONY: %-pkg rpm -spec: - $(CONFIG_SHELL) $(srctree)/scripts/mkspec > $(objtree)/kernel.spec - -# a) Build a tar ball -# b) generate an rpm from it -# c) and pack the result -# - Use /. to avoid tar packing just the symlink - -rpm: clean spec - set -e; \ - cd .. ; \ - ln -sf $(srctree) $(KERNELPATH) ; \ - tar -cvz $(RCS_TAR_IGNORE) -f $(KERNELPATH).tar.gz $(KERNELPATH)/. ; \ - rm $(KERNELPATH) - - set -e; \ - $(CONFIG_SHELL) $(srctree)/scripts/mkversion > $(objtree)/.tmp_version;\ - mv -f $(objtree)/.tmp_version $(objtree)/.version; +%pkg: FORCE + $(Q)$(MAKE) -f $(package-dir)/Makefile $@ +rpm: FORCE + $(Q)$(MAKE) -f $(package-dir)/Makefile $@ - $(RPM) --target $(UTS_MACHINE) -ta ../$(KERNELPATH).tar.gz - rm ../$(KERNELPATH).tar.gz # Brief documentation of the typical targets used # --------------------------------------------------------------------------- @@ -905,6 +915,8 @@ @echo ' tags/TAGS - Generate tags file for editors' @echo ' cscope - Generate cscope index' @echo ' checkstack - Generate a list of stack hogs' + @echo 'Kernel packaging:' + @$(MAKE) -f $(package-dir)/Makefile help @echo '' @echo 'Documentation targets:' @$(MAKE) -f $(srctree)/Documentation/DocBook/Makefile dochelp diff -Nru a/arch/alpha/defconfig b/arch/alpha/defconfig --- a/arch/alpha/defconfig 2004-06-28 18:21:56 -07:00 +++ b/arch/alpha/defconfig 2004-06-28 18:21:56 -07:00 @@ -791,7 +791,7 @@ CONFIG_NFSD=m CONFIG_NFSD_V3=y # CONFIG_NFSD_V4 is not set -# CONFIG_NFSD_TCP is not set +CONFIG_NFSD_TCP=y CONFIG_LOCKD=m CONFIG_LOCKD_V4=y CONFIG_EXPORTFS=m diff -Nru a/arch/alpha/kernel/init_task.c b/arch/alpha/kernel/init_task.c --- a/arch/alpha/kernel/init_task.c 2004-06-28 18:21:54 -07:00 +++ b/arch/alpha/kernel/init_task.c 2004-06-28 18:21:54 -07:00 @@ -4,6 +4,7 @@ #include #include #include +#include #include diff -Nru a/arch/alpha/kernel/irq.c b/arch/alpha/kernel/irq.c --- a/arch/alpha/kernel/irq.c 2004-06-28 18:21:58 -07:00 +++ b/arch/alpha/kernel/irq.c 2004-06-28 18:21:58 -07:00 @@ -227,7 +227,7 @@ #ifdef CONFIG_SMP static struct proc_dir_entry * smp_affinity_entry[NR_IRQS]; static char irq_user_affinity[NR_IRQS]; -static unsigned long irq_affinity[NR_IRQS] = { [0 ... NR_IRQS-1] = ~0UL }; +static cpumask_t irq_affinity[NR_IRQS] = { [0 ... NR_IRQS-1] = CPU_MASK_ALL }; static void select_smp_affinity(int irq) @@ -238,16 +238,14 @@ if (! irq_desc[irq].handler->set_affinity || irq_user_affinity[irq]) return; - while (((cpu_present_mask >> cpu) & 1) == 0) + while (!cpu_possible(cpu)) cpu = (cpu < (NR_CPUS-1) ? cpu + 1 : 0); last_cpu = cpu; - irq_affinity[irq] = 1UL << cpu; - irq_desc[irq].handler->set_affinity(irq, 1UL << cpu); + irq_affinity[irq] = cpumask_of_cpu(cpu); + irq_desc[irq].handler->set_affinity(irq, cpumask_of_cpu(cpu)); } -#define HEX_DIGITS 16 - static int irq_affinity_read_proc (char *page, char **start, off_t off, int count, int *eof, void *data) @@ -259,67 +257,28 @@ return len; } -static unsigned int -parse_hex_value (const char __user *buffer, - unsigned long count, unsigned long *ret) -{ - unsigned char hexnum [HEX_DIGITS]; - unsigned long value; - unsigned long 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 irq_affinity_write_proc(struct file *file, const char __user *buffer, unsigned long count, void *data) { int irq = (long) data, full_count = count, err; - unsigned long new_value; + cpumask_t new_value; if (!irq_desc[irq].handler->set_affinity) return -EIO; - err = parse_hex_value(buffer, count, &new_value); + err = cpumask_parse(buffer, count, new_value); /* The special value 0 means release control of the affinity to kernel. */ - if (new_value == 0) { + cpus_and(new_value, new_value, cpu_online_map); + if (cpus_empty(new_value)) { irq_user_affinity[irq] = 0; select_smp_affinity(irq); } /* Do not allow disabling IRQs completely - it's a too easy way to make the system unusable accidentally :-) At least one online CPU still has to be targeted. */ - else if (!(new_value & cpu_present_mask)) - return -EINVAL; else { irq_affinity[irq] = new_value; irq_user_affinity[irq] = 1; @@ -344,10 +303,10 @@ prof_cpu_mask_write_proc(struct file *file, const char __user *buffer, unsigned long count, void *data) { - unsigned long *mask = (unsigned long *) data, full_count = count, err; - unsigned long new_value; + unsigned long full_count = count, err; + cpumask_t new_value, *mask = (cpumask_t *)data; - err = parse_hex_value(buffer, count, &new_value); + err = cpumask_parse(buffer, count, new_value); if (err) return err; @@ -457,7 +416,7 @@ action->handler = handler; action->flags = irqflags; - action->mask = 0; + cpus_clear(action->mask); action->name = devname; action->next = NULL; action->dev_id = dev_id; diff -Nru a/arch/alpha/kernel/process.c b/arch/alpha/kernel/process.c --- a/arch/alpha/kernel/process.c 2004-06-28 18:21:59 -07:00 +++ b/arch/alpha/kernel/process.c 2004-06-28 18:21:59 -07:00 @@ -119,8 +119,8 @@ #ifdef CONFIG_SMP /* Wait for the secondaries to halt. */ - clear_bit(boot_cpuid, &cpu_present_mask); - while (cpu_present_mask) + cpu_clear(boot_cpuid, cpu_possible_map); + while (cpus_weight(cpu_possible_map)) barrier(); #endif diff -Nru a/arch/alpha/kernel/setup.c b/arch/alpha/kernel/setup.c --- a/arch/alpha/kernel/setup.c 2004-06-28 18:21:54 -07:00 +++ b/arch/alpha/kernel/setup.c 2004-06-28 18:21:54 -07:00 @@ -39,6 +39,7 @@ #include #endif #include +#include #include extern struct notifier_block *panic_notifier_list; @@ -122,7 +123,6 @@ static void determine_cpu_caches (unsigned int); static char command_line[COMMAND_LINE_SIZE]; -char saved_command_line[COMMAND_LINE_SIZE]; /* * The format of "screen_info" is strange, and due to early @@ -1246,9 +1246,9 @@ platform_string(), nr_processors); #ifdef CONFIG_SMP - seq_printf(f, "cpus active\t\t: %ld\n" + seq_printf(f, "cpus active\t\t: %d\n" "cpu active mask\t\t: %016lx\n", - num_online_cpus(), cpu_present_mask); + num_online_cpus(), cpus_addr(cpu_possible_map)[0]); #endif show_cache_size (f, "L1 Icache", alpha_l1i_cacheshape); diff -Nru a/arch/alpha/kernel/smp.c b/arch/alpha/kernel/smp.c --- a/arch/alpha/kernel/smp.c 2004-06-28 18:21:55 -07:00 +++ b/arch/alpha/kernel/smp.c 2004-06-28 18:21:55 -07:00 @@ -68,7 +68,7 @@ static int smp_secondary_alive __initdata = 0; /* Which cpus ids came online. */ -unsigned long cpu_present_mask; +cpumask_t cpu_present_mask; cpumask_t cpu_online_map; EXPORT_SYMBOL(cpu_online_map); @@ -522,7 +522,7 @@ smp_num_probed = 1; hwrpb_cpu_present_mask = (1UL << boot_cpuid); } - cpu_present_mask = 1UL << boot_cpuid; + cpu_present_mask = cpumask_of_cpu(boot_cpuid); printk(KERN_INFO "SMP: %d CPUs probed -- cpu_present_mask = %lx\n", smp_num_probed, hwrpb_cpu_present_mask); @@ -547,7 +547,7 @@ /* Nothing to do on a UP box, or when told not to. */ if (smp_num_probed == 1 || max_cpus == 0) { - cpu_present_mask = 1UL << boot_cpuid; + cpu_present_mask = cpumask_of_cpu(boot_cpuid); printk(KERN_INFO "SMP mode deactivated.\n"); return; } @@ -562,7 +562,7 @@ if (((hwrpb_cpu_present_mask >> i) & 1) == 0) continue; - cpu_present_mask |= 1UL << i; + cpu_set(i, cpu_possible_map); cpu_count++; } @@ -597,7 +597,7 @@ if (cpu_online(cpu)) bogosum += cpu_data[cpu].loops_per_jiffy; - printk(KERN_INFO "SMP: Total of %ld processors activated " + printk(KERN_INFO "SMP: Total of %d processors activated " "(%lu.%02lu BogoMIPS).\n", num_online_cpus(), (bogosum + 2500) / (500000/HZ), @@ -638,23 +638,17 @@ static void -send_ipi_message(unsigned long to_whom, enum ipi_message_type operation) +send_ipi_message(cpumask_t to_whom, enum ipi_message_type operation) { - unsigned long i, set, n; + int i; mb(); - for (i = to_whom; i ; i &= ~set) { - set = i & -i; - n = __ffs(set); - set_bit(operation, &ipi_data[n].bits); - } + for_each_cpu_mask(i, to_whom) + set_bit(operation, &ipi_data[i].bits); mb(); - for (i = to_whom; i ; i &= ~set) { - set = i & -i; - n = __ffs(set); - wripir(n); - } + for_each_cpu_mask(i, to_whom) + wripir(i); } /* Structure and data for smp_call_function. This is designed to @@ -784,13 +778,14 @@ printk(KERN_WARNING "smp_send_reschedule: Sending IPI to self.\n"); #endif - send_ipi_message(1UL << cpu, IPI_RESCHEDULE); + send_ipi_message(cpumask_of_cpu(cpu), IPI_RESCHEDULE); } void smp_send_stop(void) { - unsigned long to_whom = cpu_present_mask & ~(1UL << smp_processor_id()); + cpumask_t to_whom = cpu_possible_map; + cpu_clear(smp_processor_id(), to_whom); #ifdef DEBUG_IPI_MSG if (hard_smp_processor_id() != boot_cpu_id) printk(KERN_WARNING "smp_send_stop: Not on boot cpu.\n"); @@ -814,7 +809,7 @@ int smp_call_function_on_cpu (void (*func) (void *info), void *info, int retry, - int wait, unsigned long to_whom) + int wait, cpumask_t to_whom) { struct smp_call_struct data; unsigned long timeout; @@ -827,8 +822,8 @@ data.info = info; data.wait = wait; - to_whom &= ~(1L << smp_processor_id()); - num_cpus_to_call = hweight64(to_whom); + cpu_clear(smp_processor_id(), to_whom); + num_cpus_to_call = cpus_weight(to_whom); atomic_set(&data.unstarted_count, num_cpus_to_call); atomic_set(&data.unfinished_count, num_cpus_to_call); diff -Nru a/arch/alpha/kernel/sys_dp264.c b/arch/alpha/kernel/sys_dp264.c --- a/arch/alpha/kernel/sys_dp264.c 2004-06-28 18:21:54 -07:00 +++ b/arch/alpha/kernel/sys_dp264.c 2004-06-28 18:21:54 -07:00 @@ -53,7 +53,6 @@ register int bcpu = boot_cpuid; #ifdef CONFIG_SMP - register unsigned long cpm = cpu_present_mask; volatile unsigned long *dim0, *dim1, *dim2, *dim3; unsigned long mask0, mask1, mask2, mask3, dummy; @@ -72,10 +71,10 @@ dim1 = &cchip->dim1.csr; dim2 = &cchip->dim2.csr; dim3 = &cchip->dim3.csr; - if ((cpm & 1) == 0) dim0 = &dummy; - if ((cpm & 2) == 0) dim1 = &dummy; - if ((cpm & 4) == 0) dim2 = &dummy; - if ((cpm & 8) == 0) dim3 = &dummy; + if (cpu_possible(0)) dim0 = &dummy; + if (cpu_possible(1)) dim1 = &dummy; + if (cpu_possible(2)) dim2 = &dummy; + if (cpu_possible(3)) dim3 = &dummy; *dim0 = mask0; *dim1 = mask1; @@ -164,13 +163,13 @@ } static void -cpu_set_irq_affinity(unsigned int irq, unsigned long affinity) +cpu_set_irq_affinity(unsigned int irq, cpumask_t affinity) { int cpu; for (cpu = 0; cpu < 4; cpu++) { unsigned long aff = cpu_irq_affinity[cpu]; - if (affinity & (1UL << cpu)) + if (cpu_isset(cpu, affinity)) aff |= 1UL << irq; else aff &= ~(1UL << irq); @@ -179,7 +178,7 @@ } static void -dp264_set_affinity(unsigned int irq, unsigned long affinity) +dp264_set_affinity(unsigned int irq, cpumask_t affinity) { spin_lock(&dp264_irq_lock); cpu_set_irq_affinity(irq, affinity); @@ -188,7 +187,7 @@ } static void -clipper_set_affinity(unsigned int irq, unsigned long affinity) +clipper_set_affinity(unsigned int irq, cpumask_t affinity) { spin_lock(&dp264_irq_lock); cpu_set_irq_affinity(irq - 16, affinity); diff -Nru a/arch/alpha/mm/init.c b/arch/alpha/mm/init.c --- a/arch/alpha/mm/init.c 2004-06-28 18:21:59 -07:00 +++ b/arch/alpha/mm/init.c 2004-06-28 18:21:59 -07:00 @@ -106,7 +106,7 @@ printk("\nMem-info:\n"); show_free_areas(); - printk("Free swap: %6dkB\n",nr_swap_pages<<(PAGE_SHIFT-10)); + printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10)); i = max_mapnr; while (i-- > 0) { total++; diff -Nru a/arch/alpha/mm/numa.c b/arch/alpha/mm/numa.c --- a/arch/alpha/mm/numa.c 2004-06-28 18:21:52 -07:00 +++ b/arch/alpha/mm/numa.c 2004-06-28 18:21:52 -07:00 @@ -279,8 +279,8 @@ initrd_end, phys_to_virt(PFN_PHYS(max_low_pfn))); } else { - nid = NODE_DATA(kvaddr_to_nid(initrd_start)); - reserve_bootmem_node(nid, + nid = kvaddr_to_nid(initrd_start); + reserve_bootmem_node(NODE_DATA(nid), virt_to_phys((void *)initrd_start), INITRD_SIZE); } @@ -371,7 +371,7 @@ printk("\nMem-info:\n"); show_free_areas(); - printk("Free swap: %6dkB\n",nr_swap_pages<<(PAGE_SHIFT-10)); + printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10)); for (nid = 0; nid < numnodes; nid++) { struct page * lmem_map = node_mem_map(nid); i = node_spanned_pages(nid); diff -Nru a/arch/arm/Kconfig b/arch/arm/Kconfig --- a/arch/arm/Kconfig 2004-06-28 18:21:56 -07:00 +++ b/arch/arm/Kconfig 2004-06-28 18:21:56 -07:00 @@ -72,9 +72,6 @@ prompt "ARM system type" default ARCH_RPC -config ARCH_ADIFCC - bool "ADIFCC-based" - config ARCH_CLPS7500 bool "Cirrus-CL-PS7500FE" @@ -191,6 +188,11 @@ depends on ARCH_RPC default y +config TIMER_ACORN + bool + depends on ARCH_ACORN || ARCH_CLPS7500 + default y + ##################################################################### # Footbridge support config FOOTBRIDGE @@ -246,10 +248,10 @@ # Select various configuration options depending on the machine type config DISCONTIGMEM bool - depends on ARCH_EDB7211 || ARCH_SA1100 || ARCH_LH7A40X + depends on ARCH_EDB7211 || ARCH_SA1100 || (ARCH_LH7A40X && !LH7A40X_SROMLL) default y help - Say Y to upport efficient handling of discontiguous physical memory, + Say Y to support efficient handling of discontiguous physical memory, for architectures which are either NUMA (Non-Uniform Memory Access) or have huge holes in the physical address space for other reasons. See for more. @@ -257,7 +259,7 @@ # Now handle the bus types config PCI bool "PCI support" if ARCH_INTEGRATOR_AP - default y if ARCH_FTVPCI || ARCH_SHARK || FOOTBRIDGE_HOST || ARCH_IOP3XX || ARCH_IXP4XX + default y if ARCH_SHARK || FOOTBRIDGE_HOST || ARCH_IOP3XX || ARCH_IXP4XX help Find out whether you have a PCI motherboard. PCI is the name of a bus system, i.e. the way the CPU talks to the other stuff inside @@ -270,11 +272,6 @@ doesn't. # Select the host bridge type -config PCI_HOST_PLX90X0 - bool - depends on PCI && ARCH_FTVPCI - default y - config PCI_HOST_VIA82C505 bool depends on PCI && ARCH_SHARK @@ -421,6 +418,17 @@ If you do not feel you need a faster FP emulation you should better choose NWFPE. +config VFP + bool "VFP-format floating point maths" + help + Say Y to include VFP support code in the kernel. This is needed + if your hardware includes a VFP unit. + + Please see for + release notes and additional status information. + + Say N if your target does not have VFP hardware. + source "fs/Kconfig.binfmt" source "drivers/base/Kconfig" @@ -539,7 +547,7 @@ config LEDS bool "Timer and CPU usage LEDs" - depends on ARCH_NETWINDER || ARCH_EBSA110 || ARCH_EBSA285 || ARCH_FTVPCI || ARCH_SHARK || ARCH_CO285 || ARCH_SA1100 || ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_PXA_IDP || ARCH_INTEGRATOR || ARCH_CDB89712 || ARCH_P720T || ARCH_OMAP || ARCH_VERSATILE_PB + 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_PB help If you say Y here, the LEDs on your machine will be used to provide useful information about your current system status. @@ -553,7 +561,7 @@ 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_PB) - depends on ARCH_NETWINDER || ARCH_EBSA110 || ARCH_EBSA285 || ARCH_FTVPCI || ARCH_SHARK || ARCH_CO285 || ARCH_SA1100 || ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_PXA_IDP || ARCH_INTEGRATOR || ARCH_CDB89712 || ARCH_P720T || ARCH_OMAP || ARCH_VERSATILE_PB + 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_PB default y if ARCH_EBSA110 help If you say Y here, one of the system LEDs (the green one on the @@ -609,7 +617,7 @@ source "net/Kconfig" -if ARCH_CLPS7500 || ARCH_IOP3XX || ARCH_IXP4XX || ARCH_L7200 || ARCH_LH7A40X || ARCH_FTVPCI || ARCH_PXA || ARCH_RPC || ARCH_S3C2410 || ARCH_SA1100 || ARCH_SHARK || FOOTBRIDGE +if ARCH_CLPS7500 || ARCH_IOP3XX || ARCH_IXP4XX || ARCH_L7200 || ARCH_LH7A40X || ARCH_PXA || ARCH_RPC || ARCH_S3C2410 || ARCH_SA1100 || ARCH_SHARK || FOOTBRIDGE source "drivers/ide/Kconfig" endif diff -Nru a/arch/arm/Makefile b/arch/arm/Makefile --- a/arch/arm/Makefile 2004-06-28 18:21:55 -07:00 +++ b/arch/arm/Makefile 2004-06-28 18:21:55 -07:00 @@ -74,9 +74,6 @@ textaddr-$(CONFIG_ARCH_CO285) := 0x60008000 machine-$(CONFIG_ARCH_CO285) := footbridge incdir-$(CONFIG_ARCH_CO285) := ebsa285 - machine-$(CONFIG_ARCH_FTVPCI) := ftvpci - incdir-$(CONFIG_ARCH_FTVPCI) := nexuspci - machine-$(CONFIG_ARCH_TBOX) := tbox machine-$(CONFIG_ARCH_SHARK) := shark machine-$(CONFIG_ARCH_SA1100) := sa1100 ifeq ($(CONFIG_ARCH_SA1100),y) @@ -91,7 +88,6 @@ machine-$(CONFIG_ARCH_CLPS711X) := clps711x textaddr-$(CONFIG_ARCH_FORTUNET) := 0xc0008000 machine-$(CONFIG_ARCH_IOP3XX) := iop3xx - machine-$(CONFIG_ARCH_ADIFCC) := adifcc machine-$(CONFIG_ARCH_IXP4XX) := ixp4xx machine-$(CONFIG_ARCH_OMAP) := omap machine-$(CONFIG_ARCH_S3C2410) := s3c2410 @@ -119,6 +115,7 @@ endif core-$(CONFIG_FPE_NWFPE) += arch/arm/nwfpe/ core-$(CONFIG_FPE_FASTFPE) += $(FASTFPE_OBJ) +core-$(CONFIG_VFP) += arch/arm/vfp/ drivers-$(CONFIG_OPROFILE) += arch/arm/oprofile/ drivers-$(CONFIG_ARCH_CLPS7500) += drivers/acorn/char/ diff -Nru a/arch/arm/boot/Makefile b/arch/arm/boot/Makefile --- a/arch/arm/boot/Makefile 2004-06-28 18:21:53 -07:00 +++ b/arch/arm/boot/Makefile 2004-06-28 18:21:53 -07:00 @@ -49,8 +49,6 @@ zreladdr-$(CONFIG_ARCH_PXA) := 0xa0008000 zreladdr-$(CONFIG_ARCH_IOP3XX) := 0xa0008000 params_phys-$(CONFIG_ARCH_IOP3XX) := 0xa0000100 - zreladdr-$(CONFIG_ARCH_ADIFCC) := 0xc0008000 -params_phys-$(CONFIG_ARCH_ADIFCC) := 0xc0000100 zreladdr-$(CONFIG_ARCH_IXP4XX) := 0x00008000 params-phys-$(CONFIG_ARCH_IXP4XX) := 0x00000100 zreladdr-$(CONFIG_ARCH_OMAP) := 0x10008000 diff -Nru a/arch/arm/boot/compressed/head-xscale.S b/arch/arm/boot/compressed/head-xscale.S --- a/arch/arm/boot/compressed/head-xscale.S 2004-06-28 18:21:55 -07:00 +++ b/arch/arm/boot/compressed/head-xscale.S 2004-06-28 18:21:55 -07:00 @@ -66,7 +66,4 @@ mov r7, #MACH_TYPE_IQ80310 #endif -#ifdef CONFIG_ARCH_ADI_EVB - mov r7, #MACH_TYPE_ADI_EVB -#endif diff -Nru a/arch/arm/common/Makefile b/arch/arm/common/Makefile --- a/arch/arm/common/Makefile 2004-06-28 18:21:56 -07:00 +++ b/arch/arm/common/Makefile 2004-06-28 18:21:56 -07:00 @@ -2,10 +2,9 @@ # Makefile for the linux kernel. # -obj-y += platform.o obj-$(CONFIG_ARM_AMBA) += amba.o obj-$(CONFIG_ICST525) += icst525.o obj-$(CONFIG_SA1111) += sa1111.o -obj-$(CONFIG_PCI_HOST_PLX90X0) += plx90x0.o obj-$(CONFIG_PCI_HOST_VIA82C505) += via82c505.o obj-$(CONFIG_DMABOUNCE) += dmabounce.o +obj-$(CONFIG_TIMER_ACORN) += time-acorn.o diff -Nru a/arch/arm/common/dmabounce.c b/arch/arm/common/dmabounce.c --- a/arch/arm/common/dmabounce.c 2004-06-28 18:21:52 -07:00 +++ b/arch/arm/common/dmabounce.c 2004-06-28 18:21:52 -07:00 @@ -234,7 +234,7 @@ } } - dma_addr = virt_to_bus(ptr); + dma_addr = virt_to_dma(dev, ptr); if (device_info && dma_needs_bounce(dev, dma_addr, size)) { struct safe_buffer *buf; @@ -248,7 +248,7 @@ dev_dbg(dev, "%s: unsafe buffer %p (phy=%p) mapped to %p (phy=%p)\n", - __func__, buf->ptr, (void *) virt_to_bus(buf->ptr), + __func__, buf->ptr, (void *) virt_to_dma(dev, buf->ptr), buf->safe, (void *) buf->safe_dma_addr); if ((dir == DMA_TO_DEVICE) || @@ -290,7 +290,7 @@ dev_dbg(dev, "%s: unsafe buffer %p (phy=%p) mapped to %p (phy=%p)\n", - __func__, buf->ptr, (void *) virt_to_bus(buf->ptr), + __func__, buf->ptr, (void *) virt_to_dma(dev, buf->ptr), buf->safe, (void *) buf->safe_dma_addr); @@ -342,7 +342,7 @@ dev_dbg(dev, "%s: unsafe buffer %p (phy=%p) mapped to %p (phy=%p)\n", - __func__, buf->ptr, (void *) virt_to_bus(buf->ptr), + __func__, buf->ptr, (void *) virt_to_dma(dev, buf->ptr), buf->safe, (void *) buf->safe_dma_addr); DO_STATS ( device_info->bounce_count++ ); @@ -367,7 +367,7 @@ } consistent_sync(buf->safe, size, dir); } else { - consistent_sync(bus_to_virt(dma_addr), size, dir); + consistent_sync(dma_to_virt(dev, dma_addr), size, dir); } } diff -Nru a/arch/arm/common/platform.c b/arch/arm/common/platform.c --- a/arch/arm/common/platform.c 2004-06-28 18:21:52 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,35 +0,0 @@ -#include -#include -#include - -int __init platform_add_device(struct platform_device *dev) -{ - int i; - - for (i = 0; i < dev->num_resources; i++) { - struct resource *r = &dev->resource[i]; - - r->name = dev->dev.bus_id; - - if (r->flags & IORESOURCE_MEM && - request_resource(&iomem_resource, r)) { - printk(KERN_ERR - "%s%d: failed to claim resource %d\n", - dev->name, dev->id, i); - break; - } - } - if (i == dev->num_resources) - platform_device_register(dev); - return 0; -} - -int __init platform_add_devices(struct platform_device **devs, int num) -{ - int i; - - for (i = 0; i < num; i++) - platform_add_device(devs[i]); - - return 0; -} diff -Nru a/arch/arm/common/plx90x0.c b/arch/arm/common/plx90x0.c --- a/arch/arm/common/plx90x0.c 2004-06-28 18:21:54 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,178 +0,0 @@ -/* - * Driver for PLX Technology PCI9000-series host bridge. - * - * Copyright (C) 1997, 1998, 1999, 2000 FutureTV Labs Ltd - */ - -/* - * 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 - -/* - * Since the following functions are all very similar, the common parts - * are pulled out into these macros. - */ - -#define PLX_CLEAR_CONFIG \ - __raw_writel(0, PLX_BASE + 0xac); \ - local_irq_restore(flags); } - -#define PLX_SET_CONFIG \ - { unsigned long flags; \ - local_irq_save(flags); \ - __raw_writel((1<<31 | (bus->number << 16) \ - | (devfn << 8) | (where & ~3) \ - | ((bus->number == 0)?0:1)), PLX_BASE + 0xac); \ - -#define PLX_CONFIG_WRITE(size) \ - PLX_SET_CONFIG \ - __raw_write##size(value, PCIO_BASE + (where & 3)); \ - if (__raw_readw(PLX_BASE + 0x6) & 0x2000) \ - __raw_writew(0x2000, PLX_BASE + 0x6); \ - PLX_CLEAR_CONFIG \ - return PCIBIOS_SUCCESSFUL; - -#define PLX_CONFIG_READ(size) \ - PLX_SET_CONFIG \ - *value = __raw_read##size(PCIO_BASE + (where & 3)); \ - if (__raw_readw(PLX_BASE + 0x6) & 0x2000) { \ - __raw_writew(0x2000, PLX_BASE + 0x6); \ - *value = 0xffffffffUL; \ - } \ - PLX_CLEAR_CONFIG \ - return PCIBIOS_SUCCESSFUL; - -/* Configuration space access routines */ - -static int -plx90x0_read_config (struct pci_bus *bus, unsigned int devfn, int where, - int where, int size, u32 *value) -{ - switch (size) { - case 1: - PLX_CONFIG_READ(b) - break; - case 2: - PLX_CONFIG_READ(w) - break; - case 4: - PLX_CONFIG_READ(l) - break; - } - return PCIBIOS_SUCCESSFUL; -} - -static int -plx90x0_write_config (struct pci_bus *bus, unsigned int devfn, int where, - int where, int size, u32 value) -{ - switch (size) { - case 1: - PLX_CONFIG_WRITE(b) - break; - case 2: - PLX_CONFIG_WRITE(w) - break; - case 4: - PLX_CONFIG_WRITE(l) - break; - } - return PCIBIOS_SUCCESSFUL; -} - -static struct pci_ops plx90x0_ops = -{ - .read = plx90x0_read_config, - .write = plx90x0_write_config, -}; - -static void -plx_syserr_handler(int irq, void *handle, struct pt_regs *regs) -{ - printk("PLX90x0: machine check %04x (pc=%08lx)\n", - readw(PLX_BASE + 6), regs->ARM_pc); - __raw_writew(0xf000, PLX_BASE + 6); -} - -/* - * Initialise the PCI system. - */ - -void __init -plx90x0_init(struct arm_sysdata *sysdata) -{ - static const unsigned long int base = PLX_BASE; - char *what; - unsigned long bar = (unsigned long)virt_to_bus((void *)PAGE_OFFSET); - - /* Have a sniff around and see which PLX device is present. */ - unsigned long id = __raw_readl(base + 0xf0); - -#if 0 - /* This check was a good idea, but can fail. The PLX9060 puts no - default value in these registers unless NB# is asserted (which it - isn't on these cards). */ - if ((id & 0xffff) != PCI_VENDOR_ID_PLX) - return; /* Nothing found */ -#endif - - /* Found one - now work out what it is. */ - switch (id >> 16) { - case 0: /* PCI_DEVICE_ID_PLX_9060 */ - what = "PCI9060"; - break; - case PCI_DEVICE_ID_PLX_9060ES: - what = "PCI9060ES"; - break; - case PCI_DEVICE_ID_PLX_9060SD: - what = "PCI9060SD"; /* uhuhh.. */ - break; - case PCI_DEVICE_ID_PLX_9080: - what = "PCI9080"; - break; - default: - printk("PCI: Unknown PLX device %04lx found -- ignored.\n", - id >> 16); - return; - } - - printk("PCI: PLX Technology %s host bridge found.\n", what); - - /* Now set it up for both master and slave accesses. */ - __raw_writel(0xffff0147, base + 0x4); - __raw_writeb(32, base + 0xd); - __raw_writel(0x8 | bar, base + 0x18); - __raw_writel(0xf8000008, base + 0x80); - __raw_writel(0x40000001, base + 0x84); - __raw_writel(0, base + 0x88); - __raw_writel(0, base + 0x8c); - __raw_writel(0x11, base + 0x94); - __raw_writel(0xC3 + (4 << 28) - + (8 << 11) + (1 << 10) - + (1 << 24), base + 0x98); - __raw_writel(0xC0000000, base + 0x9c); - __raw_writel(PLX_MEM_START, base + 0xa0); - __raw_writel(PLX_IO_START, base + 0xa4); - __raw_writel(0x3, base + 0xa8); - __raw_writel(0, base + 0xac); - __raw_writel(0x10001, base + 0xe8); - __raw_writel(0x8000767e, base + 0xec); - - request_irq(IRQ_SYSERR, plx_syserr_handler, 0, - "system error", NULL); - - pci_scan_bus(0, &plx90x0_ops, sysdata); -} diff -Nru a/arch/arm/common/sa1111.c b/arch/arm/common/sa1111.c --- a/arch/arm/common/sa1111.c 2004-06-28 18:21:59 -07:00 +++ b/arch/arm/common/sa1111.c 2004-06-28 18:21:59 -07:00 @@ -610,7 +610,7 @@ * %-EBUSY physical address already marked in-use. * %0 successful. */ -static int __init +static int __sa1111_probe(struct device *me, struct resource *mem, int irq) { struct sa1111 *sachip; diff -Nru a/arch/arm/common/time-acorn.c b/arch/arm/common/time-acorn.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/arm/common/time-acorn.c 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,67 @@ +/* + * linux/arch/arm/common/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=Jun-2004 DS Moved to arch/arm/common b/c shared w/CLPS7500 + */ +#include +#include + +#include +#include +#include + +#include + +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/arm/configs/adi_evb_defconfig b/arch/arm/configs/adi_evb_defconfig --- a/arch/arm/configs/adi_evb_defconfig 2004-06-28 18:21:56 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,678 +0,0 @@ -# -# Automatically generated by make menuconfig: don't edit -# -CONFIG_ARM=y -# CONFIG_EISA is not set -# CONFIG_SBUS is not set -# CONFIG_MCA is not set -CONFIG_UID16=y -CONFIG_RWSEM_GENERIC_SPINLOCK=y -# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set -# CONFIG_GENERIC_BUST_SPINLOCK is not set -# CONFIG_GENERIC_ISA_DMA is not set - -# -# Code maturity level options -# -CONFIG_EXPERIMENTAL=y -# CONFIG_OBSOLETE is not set - -# -# Loadable module support -# -CONFIG_MODULES=y -# CONFIG_MODVERSIONS is not set -# CONFIG_KMOD is not set - -# -# System Type -# -CONFIG_ARCH_ADIFCC=y -# CONFIG_ARCH_ARCA5K is not set -# CONFIG_ARCH_CLPS7500 is not set -# CONFIG_ARCH_CLPS711X is not set -# CONFIG_ARCH_CO285 is not set -# CONFIG_ARCH_EBSA110 is not set -# CONFIG_ARCH_CAMELOT is not set -# CONFIG_ARCH_FOOTBRIDGE is not set -# CONFIG_ARCH_INTEGRATOR is not set -# CONFIG_ARCH_IOP310 is not set -# CONFIG_ARCH_L7200 is not set -# CONFIG_ARCH_RPC is not set -# CONFIG_ARCH_SA1100 is not set -# CONFIG_ARCH_SHARK is not set - -# -# Archimedes/A5000 Implementations -# -# CONFIG_ARCH_ARC is not set -# CONFIG_ARCH_A5K is not set - -# -# Footbridge Implementations -# -# CONFIG_ARCH_CATS is not set -# CONFIG_ARCH_PERSONAL_SERVER is not set -# CONFIG_ARCH_EBSA285_ADDIN is not set -# CONFIG_ARCH_EBSA285_HOST is not set -# CONFIG_ARCH_NETWINDER is not set - -# -# SA11x0 Implementations -# -# CONFIG_SA1100_ASSABET is not set -# CONFIG_ASSABET_NEPONSET is not set -# CONFIG_SA1100_ADSBITSY is not set -# CONFIG_SA1100_BRUTUS is not set -# CONFIG_SA1100_CERF is not set -# CONFIG_SA1100_H3600 is not set -# CONFIG_SA1100_EXTENEX1 is not set -# CONFIG_SA1100_FLEXANET is not set -# CONFIG_SA1100_FREEBIRD is not set -# CONFIG_SA1100_GRAPHICSCLIENT is not set -# CONFIG_SA1100_GRAPHICSMASTER is not set -# CONFIG_SA1100_JORNADA720 is not set -# CONFIG_SA1100_HUW_WEBPANEL is not set -# CONFIG_SA1100_ITSY is not set -# CONFIG_SA1100_LART is not set -# CONFIG_SA1100_NANOENGINE is not set -# CONFIG_SA1100_OMNIMETER is not set -# CONFIG_SA1100_PANGOLIN is not set -# CONFIG_SA1100_PLEB is not set -# CONFIG_SA1100_SHERMAN is not set -# CONFIG_SA1100_SIMPAD is not set -# CONFIG_SA1100_PFS168 is not set -# CONFIG_SA1100_VICTOR is not set -# CONFIG_SA1100_XP860 is not set -# CONFIG_SA1100_YOPY is not set -# CONFIG_SA1100_USB is not set -# CONFIG_SA1100_USB_NETLINK is not set -# CONFIG_SA1100_USB_CHAR is not set - -# -# CLPS711X/EP721X Implementations -# -# CONFIG_ARCH_CDB89712 is not set -# CONFIG_ARCH_CLEP7312 is not set -# CONFIG_ARCH_EDB7211 is not set -# CONFIG_ARCH_P720T is not set -# CONFIG_ARCH_EP7211 is not set -# CONFIG_ARCH_EP7212 is not set -CONFIG_ARCH_ADI_EVB=y -CONFIG_XSCALE_PMU_TIMER=y -# CONFIG_ARCH_ACORN is not set -# CONFIG_FOOTBRIDGE is not set -# CONFIG_FOOTBRIDGE_HOST is not set -# CONFIG_FOOTBRIDGE_ADDIN is not set -CONFIG_CPU_32=y -# CONFIG_CPU_26 is not set -# CONFIG_CPU_32v3 is not set -# CONFIG_CPU_32v4 is not set -# CONFIG_CPU_ARM610 is not set -# CONFIG_CPU_ARM710 is not set -# CONFIG_CPU_ARM720T is not set -# CONFIG_CPU_ARM920T is not set -# CONFIG_CPU_ARM926T is not set -# CONFIG_CPU_ARM1020 is not set -# CONFIG_CPU_SA110 is not set -# CONFIG_CPU_SA1100 is not set -CONFIG_CPU_32v4=y -CONFIG_CPU_XSCALE=y -CONFIG_ARM_THUMB=y -# CONFIG_XSCALE_TOOLS is not set -CONFIG_XSCALE_WRITE_ALLOC=y -CONFIG_XSCALE_PMU=y -CONFIG_ARM_THUMB=y -# CONFIG_DISCONTIGMEM is not set - -# -# General setup -# -# CONFIG_PCI is not set -# CONFIG_ISA is not set -# CONFIG_ISA_DMA is not set -# CONFIG_HOTPLUG is not set -# CONFIG_PCMCIA is not set -CONFIG_NET=y -CONFIG_SYSVIPC=y -# CONFIG_BSD_PROCESS_ACCT is not set -CONFIG_SYSCTL=y -CONFIG_FPE_NWFPE=y -# CONFIG_FPE_FASTFPE is not set -CONFIG_KCORE_ELF=y -# CONFIG_KCORE_AOUT is not set -CONFIG_BINFMT_AOUT=y -CONFIG_BINFMT_ELF=y -# CONFIG_BINFMT_MISC is not set -# CONFIG_PM is not set -# CONFIG_ARTHUR is not set -CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/mtdblock1 mem=32M initrd=0xc0800000,3M" -CONFIG_ALIGNMENT_TRAP=y - -# -# Parallel port support -# -# CONFIG_PARPORT is not set - -# -# Memory Technology Devices (MTD) -# -CONFIG_MTD=y -# CONFIG_MTD_DEBUG is not set -CONFIG_MTD_PARTITIONS=y -# CONFIG_MTD_REDBOOT_PARTS is not set -# CONFIG_MTD_BOOTLDR_PARTS is not set -# CONFIG_MTD_AFS_PARTS is not set -CONFIG_MTD_CHAR=y -CONFIG_MTD_BLOCK=y -# CONFIG_FTL is not set -# CONFIG_NFTL is not set - -# -# RAM/ROM/Flash chip drivers -# -CONFIG_MTD_CFI=y -# CONFIG_MTD_JEDECPROBE is not set -CONFIG_MTD_GEN_PROBE=y -# CONFIG_MTD_CFI_ADV_OPTIONS is not set -CONFIG_MTD_CFI_INTELEXT=y -# CONFIG_MTD_CFI_AMDSTD is not set -# CONFIG_MTD_RAM is not set -# CONFIG_MTD_ROM is not set -# CONFIG_MTD_ABSENT is not set -# CONFIG_MTD_OBSOLETE_CHIPS is not set -# CONFIG_MTD_AMDSTD is not set -# CONFIG_MTD_SHARP is not set -# CONFIG_MTD_JEDEC is not set - -# -# Mapping drivers for chip access -# -# CONFIG_MTD_PHYSMAP is not set -# CONFIG_MTD_NORA is not set -# CONFIG_MTD_ARM_INTEGRATOR is not set -# CONFIG_MTD_CDB89712 is not set -# CONFIG_MTD_SA1100 is not set -# CONFIG_MTD_DC21285 is not set -# CONFIG_MTD_IQ80310 is not set -CONFIG_MTD_ADI_EVB=y -# CONFIG_MTD_PCI is not set - -# -# Self-contained MTD device drivers -# -# CONFIG_MTD_PMC551 is not set -# CONFIG_MTD_SLRAM is not set -# CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_BLKMTD is not set -# CONFIG_MTD_DOC1000 is not set -# CONFIG_MTD_DOC2000 is not set -# CONFIG_MTD_DOC2001 is not set -# CONFIG_MTD_DOCPROBE is not set - -# -# NAND Flash Device Drivers -# -# CONFIG_MTD_NAND is not set - -# -# Plug and Play configuration -# -# CONFIG_PNP is not set -# CONFIG_ISAPNP is not set -# CONFIG_PNPBIOS is not set - -# -# Block devices -# -# CONFIG_BLK_DEV_FD is not set -# CONFIG_BLK_DEV_XD is not set -# CONFIG_PARIDE is not set -# CONFIG_BLK_CPQ_DA is not set -# CONFIG_BLK_CPQ_CISS_DA is not set -# CONFIG_CISS_SCSI_TAPE is not set -# CONFIG_BLK_DEV_DAC960 is not set -# CONFIG_BLK_DEV_LOOP is not set -# CONFIG_BLK_DEV_NBD is not set -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_SIZE=8192 -CONFIG_BLK_DEV_INITRD=y - -# -# Multi-device support (RAID and LVM) -# -# CONFIG_MD is not set -# CONFIG_BLK_DEV_MD is not set -# CONFIG_MD_LINEAR is not set -# CONFIG_MD_RAID0 is not set -# CONFIG_MD_RAID1 is not set -# CONFIG_MD_RAID5 is not set -# CONFIG_MD_MULTIPATH is not set -# CONFIG_BLK_DEV_LVM is not set - -# -# Networking options -# -# CONFIG_PACKET is not set -CONFIG_NETLINK=y -CONFIG_RTNETLINK=y -# CONFIG_NETLINK_DEV is not set -# CONFIG_NETFILTER is not set -# CONFIG_FILTER is not set -CONFIG_UNIX=y -CONFIG_INET=y -# CONFIG_IP_MULTICAST is not set -# CONFIG_IP_ADVANCED_ROUTER is not set -CONFIG_IP_PNP=y -# CONFIG_IP_PNP_DHCP is not set -CONFIG_IP_PNP_BOOTP=y -# CONFIG_IP_PNP_RARP is not set -# CONFIG_NET_IPIP is not set -# CONFIG_NET_IPGRE is not set -# CONFIG_ARPD is not set -# CONFIG_INET_ECN is not set -# CONFIG_SYN_COOKIES is not set -# CONFIG_IPV6 is not set -# CONFIG_KHTTPD is not set -# CONFIG_ATM is not set -# CONFIG_IPX is not set -# CONFIG_ATALK is not set -# CONFIG_DECNET is not set -# CONFIG_BRIDGE is not set -# CONFIG_X25 is not set -# CONFIG_LAPB is not set -# CONFIG_LLC is not set -# CONFIG_NET_DIVERT is not set -# CONFIG_ECONET is not set -# CONFIG_WAN_ROUTER is not set -# CONFIG_NET_FASTROUTE is not set -# CONFIG_NET_HW_FLOWCONTROL is not set - -# -# QoS and/or fair queueing -# -# CONFIG_NET_SCHED is not set - -# -# Network device support -# -CONFIG_NETDEVICES=y - -# -# ARCnet devices -# -# CONFIG_ARCNET is not set -# CONFIG_DUMMY is not set -# CONFIG_BONDING is not set -# CONFIG_EQUALIZER is not set -# CONFIG_TUN is not set -# CONFIG_ETHERTAP is not set - -# -# Ethernet (10 or 100Mbit) -# -CONFIG_NET_ETHERNET=y -# CONFIG_ARM_AM79C961A is not set -# CONFIG_SUNLANCE is not set -# CONFIG_SUNBMAC is not set -# CONFIG_SUNQE is not set -# CONFIG_SUNLANCE is not set -# CONFIG_SUNGEM is not set -# CONFIG_NET_VENDOR_3COM is not set -# CONFIG_LANCE is not set -# CONFIG_NET_VENDOR_SMC is not set -# CONFIG_NET_VENDOR_RACAL is not set -# CONFIG_NET_ISA is not set -# CONFIG_NET_PCI is not set -# CONFIG_NET_POCKET is not set - -# -# Ethernet (1000 Mbit) -# -# CONFIG_ACENIC is not set -# CONFIG_DL2K is not set -# CONFIG_MYRI_SBUS is not set -# CONFIG_NS83820 is not set -# CONFIG_HAMACHI is not set -# CONFIG_YELLOWFIN is not set -# CONFIG_SK98LIN is not set -# CONFIG_FDDI is not set -# CONFIG_HIPPI is not set -# CONFIG_PLIP is not set -# CONFIG_PPP is not set -# CONFIG_SLIP is not set - -# -# Wireless LAN (non-hamradio) -# -# CONFIG_NET_RADIO is not set - -# -# Token Ring devices -# -# CONFIG_TR is not set -# CONFIG_NET_FC is not set -# CONFIG_RCPCI is not set -# CONFIG_SHAPER is not set - -# -# Wan interfaces -# -# CONFIG_WAN is not set - -# -# Amateur Radio support -# -# CONFIG_HAMRADIO is not set - -# -# IrDA (infrared) support -# -# CONFIG_IRDA is not set - -# -# ATA/IDE/MFM/RLL support -# -# CONFIG_IDE is not set -# CONFIG_BLK_DEV_HD is not set - -# -# SCSI support -# -# CONFIG_SCSI is not set - -# -# I2O device support -# -# CONFIG_I2O is not set -# CONFIG_I2O_BLOCK is not set -# CONFIG_I2O_LAN is not set -# CONFIG_I2O_SCSI is not set -# CONFIG_I2O_PROC is not set - -# -# ISDN subsystem -# -# CONFIG_ISDN is not set - -# -# Input core support -# -# CONFIG_INPUT is not set -# CONFIG_INPUT_KEYBDEV is not set -# CONFIG_INPUT_MOUSEDEV is not set -# CONFIG_INPUT_JOYDEV is not set -# CONFIG_INPUT_EVDEV is not set - -# -# Character devices -# -# CONFIG_VT is not set -CONFIG_SERIAL=y -CONFIG_SERIAL_CONSOLE=y -# CONFIG_SERIAL_EXTENDED is not set -# CONFIG_SERIAL_NONSTANDARD is not set - -# -# Serial drivers -# -# CONFIG_SERIAL_AMBA is not set -# CONFIG_SERIAL_AMBA_CONSOLE is not set -# CONFIG_SERIAL_CLPS711X is not set -# CONFIG_SERIAL_CLPS711X_CONSOLE is not set -# CONFIG_SERIAL_21285 is not set -# CONFIG_SERIAL_21285_OLD is not set -# CONFIG_SERIAL_21285_CONSOLE is not set -# CONFIG_SERIAL_UART00 is not set -# CONFIG_SERIAL_UART00_CONSOLE is not set -# CONFIG_SERIAL_SA1100 is not set -# CONFIG_SERIAL_SA1100_CONSOLE is not set -# CONFIG_SERIAL_8250 is not set -# CONFIG_SERIAL_8250_CONSOLE is not set -# CONFIG_SERIAL_8250_EXTENDED is not set -# CONFIG_SERIAL_8250_MANY_PORTS is not set -# CONFIG_SERIAL_8250_SHARE_IRQ is not set -# CONFIG_SERIAL_8250_DETECT_IRQ is not set -# CONFIG_SERIAL_8250_MULTIPORT is not set -# CONFIG_SERIAL_8250_HUB6 is not set -CONFIG_UNIX98_PTYS=y -CONFIG_UNIX98_PTY_COUNT=256 - -# -# I2C support -# -# CONFIG_I2C is not set - -# -# L3 serial bus support -# -# CONFIG_L3 is not set -# CONFIG_L3_ALGOBIT is not set -# CONFIG_L3_BIT_SA1100_GPIO is not set -# CONFIG_L3_SA1111 is not set -# CONFIG_BIT_SA1100_GPIO is not set - -# -# Mice -# -# CONFIG_BUSMOUSE is not set -CONFIG_MOUSE=y -CONFIG_PSMOUSE=y -# CONFIG_82C710_MOUSE is not set -# CONFIG_PC110_PAD is not set - -# -# Joysticks -# -# CONFIG_INPUT_GAMEPORT is not set -# CONFIG_QIC02_TAPE is not set - -# -# Watchdog Cards -# -# CONFIG_WATCHDOG is not set -# CONFIG_INTEL_RNG is not set -# CONFIG_NVRAM is not set -# CONFIG_RTC is not set -# CONFIG_DTLK is not set -# CONFIG_R3964 is not set -# CONFIG_APPLICOM is not set - -# -# Ftape, the floppy tape device driver -# -# CONFIG_FTAPE is not set -# CONFIG_AGP is not set -# CONFIG_DRM is not set - -# -# Multimedia devices -# -# CONFIG_VIDEO_DEV is not set - -# -# File systems -# -# CONFIG_QUOTA is not set -# CONFIG_AUTOFS_FS is not set -# CONFIG_AUTOFS4_FS is not set -# CONFIG_REISERFS_FS is not set -# CONFIG_REISERFS_CHECK is not set -# CONFIG_ADFS_FS is not set -# CONFIG_ADFS_FS_RW is not set -# CONFIG_AFFS_FS is not set -# CONFIG_HFS_FS is not set -# CONFIG_BFS_FS is not set -# CONFIG_CMS_FS is not set -# CONFIG_EXT3_FS is not set -# CONFIG_JBD is not set -# CONFIG_JBD_DEBUG is not set -# CONFIG_FAT_FS is not set -# CONFIG_MSDOS_FS is not set -# CONFIG_UMSDOS_FS is not set -# CONFIG_VFAT_FS is not set -# CONFIG_EFS_FS is not set -# CONFIG_JFFS_FS is not set -CONFIG_JFFS2_FS=y -CONFIG_JFFS2_FS_DEBUG=0 -# CONFIG_CRAMFS is not set -# CONFIG_TMPFS is not set -CONFIG_RAMFS=y -# CONFIG_ISO9660_FS is not set -# CONFIG_JOLIET is not set -# CONFIG_ZISOFS is not set -# CONFIG_MINIX_FS is not set -# CONFIG_FREEVXFS_FS is not set -# CONFIG_NTFS_FS is not set -# CONFIG_NTFS_DEBUG is not set -# CONFIG_NTFS_RW is not set -# CONFIG_HPFS_FS is not set -CONFIG_PROC_FS=y -# CONFIG_DEVFS_FS is not set -# CONFIG_DEVFS_MOUNT is not set -# CONFIG_DEVFS_DEBUG is not set -CONFIG_DEVPTS_FS=y -# CONFIG_QNX4FS_FS is not set -# CONFIG_QNX4FS_RW is not set -# CONFIG_ROMFS_FS is not set -CONFIG_EXT2_FS=y -# CONFIG_SYSV_FS is not set -# CONFIG_UDF_FS is not set -# CONFIG_UDF_RW is not set -# CONFIG_UFS_FS is not set -# CONFIG_UFS_FS_WRITE is not set - -# -# Network File Systems -# -# CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set -# CONFIG_NFS_FS is not set -# CONFIG_NFS_V3 is not set -# CONFIG_ROOT_NFS is not set -# CONFIG_NFSD is not set -# CONFIG_NFSD_V3 is not set -# CONFIG_SUNRPC is not set -# CONFIG_LOCKD is not set -# CONFIG_SMB_FS is not set -# CONFIG_NCP_FS is not set -# CONFIG_NCPFS_PACKET_SIGNING is not set -# CONFIG_NCPFS_IOCTL_LOCKING is not set -# CONFIG_NCPFS_STRONG is not set -# CONFIG_NCPFS_NFS_NS is not set -# CONFIG_NCPFS_OS2_NS is not set -# CONFIG_NCPFS_SMALLDOS is not set -# CONFIG_NCPFS_NLS is not set -# CONFIG_NCPFS_EXTRAS is not set -# CONFIG_ZISOFS_FS is not set -# CONFIG_ZLIB_FS_INFLATE is not set - -# -# Partition Types -# -CONFIG_PARTITION_ADVANCED=y -# CONFIG_ACORN_PARTITION is not set -# CONFIG_OSF_PARTITION is not set -# CONFIG_AMIGA_PARTITION is not set -# CONFIG_ATARI_PARTITION is not set -# CONFIG_MAC_PARTITION is not set -# CONFIG_MSDOS_PARTITION is not set -# CONFIG_LDM_PARTITION is not set -# CONFIG_SGI_PARTITION is not set -# CONFIG_ULTRIX_PARTITION is not set -# CONFIG_SUN_PARTITION is not set -# CONFIG_SMB_NLS is not set -# CONFIG_NLS is not set - -# -# Multimedia Capabilities Port drivers -# -# CONFIG_MCP is not set -# CONFIG_MCP_SA1100 is not set -# CONFIG_MCP_UCB1200 is not set -# CONFIG_MCP_UCB1200_AUDIO is not set -# CONFIG_MCP_UCB1200_TS is not set - -# -# USB support -# -# CONFIG_USB is not set -# CONFIG_USB_UHCI is not set -# CONFIG_USB_UHCI_ALT is not set -# CONFIG_USB_OHCI is not set -# CONFIG_USB_OHCI_SA1111 is not set -# CONFIG_USB_AUDIO is not set -# CONFIG_USB_BLUETOOTH is not set -# CONFIG_USB_STORAGE is not set -# CONFIG_USB_STORAGE_DEBUG is not set -# CONFIG_USB_STORAGE_DATAFAB is not set -# CONFIG_USB_STORAGE_FREECOM is not set -# CONFIG_USB_STORAGE_ISD200 is not set -# CONFIG_USB_STORAGE_DPCM is not set -# CONFIG_USB_STORAGE_HP8200e is not set -# CONFIG_USB_STORAGE_SDDR09 is not set -# CONFIG_USB_STORAGE_JUMPSHOT is not set -# CONFIG_USB_ACM is not set -# CONFIG_USB_PRINTER is not set -# CONFIG_USB_DC2XX is not set -# CONFIG_USB_MDC800 is not set -# CONFIG_USB_SCANNER is not set -# CONFIG_USB_MICROTEK is not set -# CONFIG_USB_HPUSBSCSI is not set -# CONFIG_USB_PEGASUS is not set -# CONFIG_USB_KAWETH is not set -# CONFIG_USB_CATC is not set -# CONFIG_USB_CDCETHER is not set -# CONFIG_USB_USBNET is not set -# CONFIG_USB_USS720 is not set - -# -# USB Serial Converter support -# -# CONFIG_USB_SERIAL is not set -# CONFIG_USB_SERIAL_GENERIC is not set -# CONFIG_USB_SERIAL_BELKIN is not set -# CONFIG_USB_SERIAL_WHITEHEAT is not set -# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set -# CONFIG_USB_SERIAL_EMPEG is not set -# CONFIG_USB_SERIAL_FTDI_SIO is not set -# CONFIG_USB_SERIAL_VISOR is not set -# CONFIG_USB_SERIAL_IR is not set -# CONFIG_USB_SERIAL_EDGEPORT is not set -# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set -# CONFIG_USB_SERIAL_KEYSPAN is not set -# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set -# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set -# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set -# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set -# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set -# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set -# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set -# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set -# CONFIG_USB_SERIAL_MCT_U232 is not set -# CONFIG_USB_SERIAL_PL2303 is not set -# CONFIG_USB_SERIAL_CYBERJACK is not set -# CONFIG_USB_SERIAL_XIRCOM is not set -# CONFIG_USB_SERIAL_OMNINET is not set -# CONFIG_USB_RIO500 is not set -# CONFIG_USB_ID75 is not set - -# -# Bluetooth support -# -# CONFIG_BT is not set - -# -# Kernel hacking -# -CONFIG_FRAME_POINTER=y -CONFIG_DEBUG_ERRORS=y -CONFIG_DEBUG_USER=y -# CONFIG_DEBUG_INFO is not set -CONFIG_DEBUG_SLAB=y -# CONFIG_MAGIC_SYSRQ is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_NO_PGT_CACHE is not set -CONFIG_DEBUG_LL=y -# CONFIG_DEBUG_DC21285_PORT is not set -# CONFIG_DEBUG_CLPS711X_UART2 is not set diff -Nru a/arch/arm/configs/mainstone_defconfig b/arch/arm/configs/mainstone_defconfig --- a/arch/arm/configs/mainstone_defconfig 2004-06-28 18:21:57 -07:00 +++ b/arch/arm/configs/mainstone_defconfig 2004-06-28 18:21:57 -07:00 @@ -28,6 +28,7 @@ # CONFIG_IKCONFIG is not set # CONFIG_EMBEDDED is not set CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set CONFIG_FUTEX=y CONFIG_EPOLL=y CONFIG_IOSCHED_NOOP=y @@ -52,44 +53,23 @@ # CONFIG_ARCH_CLPS7500 is not set # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set -CONFIG_ARCH_PXA=y # CONFIG_ARCH_EBSA110 is not set # CONFIG_ARCH_CAMELOT is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set +# CONFIG_ARCH_IXP4XX is not set # CONFIG_ARCH_L7200 is not set +CONFIG_ARCH_PXA=y # CONFIG_ARCH_RPC is not set # CONFIG_ARCH_SA1100 is not set -# CONFIG_ARCH_SHARK is not set # CONFIG_ARCH_S3C2410 is not set -# CONFIG_ARCH_OMAP is not set +# CONFIG_ARCH_SHARK is not set # CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_OMAP is not set # CONFIG_ARCH_VERSATILE_PB is not set # -# CLPS711X/EP721X Implementations -# - -# -# Epxa10db -# - -# -# Footbridge Implementations -# - -# -# IOP3xx Implementation Options -# -# CONFIG_ARCH_IOP310 is not set -# CONFIG_ARCH_IOP321 is not set - -# -# IOP3xx Chipset Features -# - -# # Intel PXA2xx Implementations # # CONFIG_ARCH_LUBBOCK is not set @@ -99,34 +79,6 @@ CONFIG_IWMMXT=y # -# SA11x0 Implementations -# - -# -# TI OMAP Implementations -# - -# -# OMAP Core Type -# - -# -# OMAP Board Type -# - -# -# OMAP Feature Selections -# - -# -# S3C2410 Implementations -# - -# -# LH7A40X Implementations -# - -# # Processor Type # CONFIG_CPU_32=y @@ -163,6 +115,7 @@ CONFIG_FPE_NWFPE=y # CONFIG_FPE_NWFPE_XP is not set # CONFIG_FPE_FASTFPE is not set +# CONFIG_VFP is not set CONFIG_BINFMT_ELF=y # CONFIG_BINFMT_AOUT is not set # CONFIG_BINFMT_MISC is not set @@ -170,6 +123,7 @@ # # Generic Driver Options # +CONFIG_PREVENT_FIRMWARE_BUILD=y # CONFIG_FW_LOADER is not set # CONFIG_DEBUG_DRIVER is not set # CONFIG_PM is not set @@ -394,7 +348,6 @@ # CONFIG_BLK_DEV_IDEDISK=y # CONFIG_IDEDISK_MULTI_MODE is not set -# CONFIG_IDEDISK_STROKE is not set CONFIG_BLK_DEV_IDECS=y # CONFIG_BLK_DEV_IDECD is not set # CONFIG_BLK_DEV_IDETAPE is not set @@ -406,6 +359,7 @@ # IDE chipset support/bugfixes # # CONFIG_IDE_GENERIC is not set +# CONFIG_IDE_ARM is not set # CONFIG_BLK_DEV_IDEDMA is not set # CONFIG_IDEDMA_AUTO is not set # CONFIG_BLK_DEV_HD is not set @@ -571,6 +525,7 @@ CONFIG_FAT_FS=y CONFIG_MSDOS_FS=y # CONFIG_VFAT_FS is not set +CONFIG_FAT_DEFAULT_CODEPAGE=437 # CONFIG_NTFS_FS is not set # @@ -622,7 +577,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -658,6 +612,7 @@ # CONFIG_NLS_ISO8859_8 is not set # CONFIG_NLS_CODEPAGE_1250 is not set # CONFIG_NLS_CODEPAGE_1251 is not set +# CONFIG_NLS_ASCII is not set CONFIG_NLS_ISO8859_1=y # CONFIG_NLS_ISO8859_2 is not set # CONFIG_NLS_ISO8859_3 is not set @@ -681,7 +636,10 @@ # # Graphics support # -# CONFIG_FB is not set +CONFIG_FB=y +CONFIG_FB_PXA=y +# CONFIG_FB_PXA_PARAMETERS is not set +# CONFIG_FB_VIRTUAL is not set # # Console display driver support @@ -689,6 +647,19 @@ # CONFIG_VGA_CONSOLE is not set # CONFIG_MDA_CONSOLE is not set CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_PCI_CONSOLE=y +# CONFIG_FONTS is not set +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y + +# +# Logo configuration +# +CONFIG_LOGO=y +CONFIG_LOGO_LINUX_MONO=y +CONFIG_LOGO_LINUX_VGA16=y +CONFIG_LOGO_LINUX_CLUT224=y # # Sound diff -Nru a/arch/arm/kernel/Makefile b/arch/arm/kernel/Makefile --- a/arch/arm/kernel/Makefile 2004-06-28 18:21:59 -07:00 +++ b/arch/arm/kernel/Makefile 2004-06-28 18:21:59 -07:00 @@ -11,8 +11,7 @@ time.o traps.o obj-$(CONFIG_APM) += apm.o -obj-$(CONFIG_ARCH_ACORN) += ecard.o time-acorn.o -obj-$(CONFIG_ARCH_CLPS7500) += time-acorn.o +obj-$(CONFIG_ARCH_ACORN) += ecard.o obj-$(CONFIG_FOOTBRIDGE) += isa.o obj-$(CONFIG_FIQ) += fiq.o obj-$(CONFIG_MODULES) += armksyms.o module.o diff -Nru a/arch/arm/kernel/debug.S b/arch/arm/kernel/debug.S --- a/arch/arm/kernel/debug.S 2004-06-28 18:21:55 -07:00 +++ b/arch/arm/kernel/debug.S 2004-06-28 18:21:55 -07:00 @@ -439,32 +439,6 @@ #endif .endm -#elif defined(CONFIG_ARCH_ADI_EVB) - - .macro addruart,rx - mrc p15, 0, \rx, c1, c0 - tst \rx, #1 @ MMU enabled? - mov \rx, #0x00400000 @ physical base address - orrne \rx, \rx, #0xff000000 @ virtual base - .endm - - .macro senduart,rd,rx - strb \rd, [\rx] - .endm - - .macro busyuart,rd,rx -1002: ldrb \rd, [\rx, #0x5] - and \rd, \rd, #0x60 - teq \rd, #0x60 - bne 1002b - .endm - - .macro waituart,rd,rx -1001: ldrb \rd, [\rx, #0x6] - tst \rd, #0x10 - beq 1001b - .endm - #elif defined(CONFIG_ARCH_IXP4XX) .macro addruart,rx @@ -591,7 +565,8 @@ .macro addruart,rx mrc p15, 0, \rx, c1, c0 tst \rx, #1 @ MMU enabled? - ldr \rx, =0x80000700 @ physical base address + mov \rx, #0x00000700 @ offset from base + orreq \rx, \rx, #0x80000000 @ physical base orrne \rx, \rx, #0xf8000000 @ virtual base .endm diff -Nru a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S --- a/arch/arm/kernel/entry-armv.S 2004-06-28 18:21:55 -07:00 +++ b/arch/arm/kernel/entry-armv.S 2004-06-28 18:21:55 -07:00 @@ -19,6 +19,7 @@ #include #include #include +#include #include "entry-header.S" @@ -561,7 +562,7 @@ .macro irq_prio_table .endm -#elif defined(CONFIG_ARCH_IOP310) || defined(CONFIG_ARCH_ADIFCC) +#elif defined(CONFIG_ARCH_IOP310) .macro disable_fiq .endm @@ -1198,8 +1199,13 @@ mov pc, lr @ CP#7 mov pc, lr @ CP#8 mov pc, lr @ CP#9 +#ifdef CONFIG_VFP + b do_vfp @ CP#10 (VFP) + b do_vfp @ CP#11 (VFP) +#else mov pc, lr @ CP#10 (VFP) mov pc, lr @ CP#11 (VFP) +#endif mov pc, lr @ CP#12 mov pc, lr @ CP#13 mov pc, lr @ CP#14 (Debug) @@ -1260,6 +1266,13 @@ ldr r3, [r2, #TI_CPU_DOMAIN]! stmia ip, {r4 - sl, fp, sp, lr} @ Store most regs on stack mcr p15, 0, r3, c3, c0, 0 @ Set domain register +#ifdef CONFIG_VFP + @ Always disable VFP so we can lazily save/restore the old + @ state. This occurs in the context of the previous thread. + VFPFMRX r4, FPEXC + bic r4, r4, #FPEXC_ENABLE + VFPFMXR FPEXC, r4 +#endif ldmib r2, {r4 - sl, fp, sp, pc} @ Load all regs saved previously __INIT diff -Nru a/arch/arm/kernel/init_task.c b/arch/arm/kernel/init_task.c --- a/arch/arm/kernel/init_task.c 2004-06-28 18:21:59 -07:00 +++ b/arch/arm/kernel/init_task.c 2004-06-28 18:21:59 -07:00 @@ -7,6 +7,7 @@ #include #include #include +#include #include #include diff -Nru a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c --- a/arch/arm/kernel/irq.c 2004-06-28 18:21:52 -07:00 +++ b/arch/arm/kernel/irq.c 2004-06-28 18:21:52 -07:00 @@ -674,7 +674,7 @@ action->handler = handler; action->flags = irq_flags; - action->mask = 0; + cpus_clear(action->mask); action->name = devname; action->next = NULL; action->dev_id = dev_id; diff -Nru a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c --- a/arch/arm/kernel/process.c 2004-06-28 18:21:59 -07:00 +++ b/arch/arm/kernel/process.c 2004-06-28 18:21:59 -07:00 @@ -314,10 +314,16 @@ memset(thread->used_cp, 0, sizeof(thread->used_cp)); memset(&tsk->thread.debug, 0, sizeof(struct debug_info)); fp_init(&thread->fpstate); +#if defined(CONFIG_VFP) + vfp_flush_thread(&thread->vfpstate); +#endif } void release_thread(struct task_struct *dead_task) { +#if defined(CONFIG_VFP) + vfp_release_thread(&dead_task->thread_info->vfpstate); +#endif } asmlinkage void ret_from_fork(void) __asm__("ret_from_fork"); diff -Nru a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c --- a/arch/arm/kernel/setup.c 2004-06-28 18:21:56 -07:00 +++ b/arch/arm/kernel/setup.c 2004-06-28 18:21:56 -07:00 @@ -22,6 +22,7 @@ #include #include #include +#include #include #include @@ -34,6 +35,7 @@ #include #include +#include #ifndef MEM_SIZE #define MEM_SIZE (16*1024*1024) @@ -95,7 +97,6 @@ char elf_platform[ELF_PLATFORM_SIZE]; EXPORT_SYMBOL(elf_platform); -char saved_command_line[COMMAND_LINE_SIZE]; unsigned long phys_initrd_start __initdata = 0; unsigned long phys_initrd_size __initdata = 0; @@ -727,6 +728,7 @@ * Set up various architecture-specific pointers */ init_arch_irq = mdesc->init_irq; + init_arch_time = mdesc->init_time; init_machine = mdesc->init_machine; #ifdef CONFIG_VT diff -Nru a/arch/arm/kernel/time-acorn.c b/arch/arm/kernel/time-acorn.c --- a/arch/arm/kernel/time-acorn.c 2004-06-28 18:22:00 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,66 +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 - */ -#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/arm/kernel/time.c b/arch/arm/kernel/time.c --- a/arch/arm/kernel/time.c 2004-06-28 18:21:57 -07:00 +++ b/arch/arm/kernel/time.c 2004-06-28 18:21:57 -07:00 @@ -27,12 +27,15 @@ #include #include #include +#include #include #include #include #include +#include + u64 jiffies_64 = INITIAL_JIFFIES; EXPORT_SYMBOL(jiffies_64); @@ -49,15 +52,11 @@ /* change this if you have some constant time drift */ #define USECS_PER_JIFFY (1000000/HZ) -static int dummy_set_rtc(void) -{ - return 0; -} /* * hook for setting the RTC's idea of the current time. */ -int (*set_rtc)(void) = dummy_set_rtc; +int (*set_rtc)(void); static unsigned long dummy_gettimeoffset(void) { @@ -238,7 +237,7 @@ #endif #ifdef CONFIG_LEDS_TIMER -static void do_leds(void) +static inline void do_leds(void) { static unsigned int count = 50; @@ -248,7 +247,7 @@ } } #else -#define do_leds() +#define do_leds() #endif void do_gettimeofday(struct timeval *tv) @@ -316,12 +315,18 @@ EXPORT_SYMBOL(do_settimeofday); -static struct irqaction timer_irq = { - .name = "timer", - .flags = SA_INTERRUPT, -}; +void timer_tick(struct pt_regs *regs) +{ + do_profile(regs); + do_leds(); + do_set_rtc(); + do_timer(regs); +} + +void (*init_arch_time)(void); + +void __init time_init(void) +{ + init_arch_time(); +} -/* - * Include architecture specific code - */ -#include diff -Nru a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c --- a/arch/arm/kernel/traps.c 2004-06-28 18:21:55 -07:00 +++ b/arch/arm/kernel/traps.c 2004-06-28 18:21:55 -07:00 @@ -426,7 +426,7 @@ /* * Flush a region from virtual address 'r0' to virtual address 'r1' - * _inclusive_. There is no alignment requirement on either address; + * _exclusive_. There is no alignment requirement on either address; * user space does not need to know the hardware cache layout. * * r2 contains flags. It should ALWAYS be passed as ZERO until it diff -Nru a/arch/arm/mach-adifcc/Makefile b/arch/arm/mach-adifcc/Makefile --- a/arch/arm/mach-adifcc/Makefile 2004-06-28 18:21:52 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,11 +0,0 @@ -# -# Makefile for the linux kernel. -# - -# Object file lists. - -obj-y := arch.o irq.o mm.o -obj-m := -obj-n := -obj- := - diff -Nru a/arch/arm/mach-adifcc/arch.c b/arch/arm/mach-adifcc/arch.c --- a/arch/arm/mach-adifcc/arch.c 2004-06-28 18:21:59 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,32 +0,0 @@ -/* - * linux/arch/arm/mach-adifcc/arch.c - * - * Copyright (C) 2001 MontaVista Software, Inc. - * - * 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 - -extern void adifcc_map_io(void); -extern void adifcc_init_irq(void); - -#ifdef CONFIG_ARCH_ADI_EVB -MACHINE_START(ADI_EVB, "ADI 80200FCC Evaluation Board") - MAINTAINER("MontaVista Software Inc.") - BOOT_MEM(0xc0000000, 0x00400000, 0xff400000) - MAPIO(adifcc_map_io) - INITIRQ(adifcc_init_irq) -MACHINE_END -#endif - diff -Nru a/arch/arm/mach-adifcc/irq.c b/arch/arm/mach-adifcc/irq.c --- a/arch/arm/mach-adifcc/irq.c 2004-06-28 18:21:55 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,61 +0,0 @@ -/* - * linux/arch/arm/mach-xscale/irq.c - * - * Author: Deepak Saxena - * Copyright: (C) 2001 MontaVista Software Inc. - * - * 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. - * - * Based on IOP80310 code. Currently there's nothing more than the - * 80200 on chip interrupts. That'll change once the hardware adds - * support for PCI though. - */ -#include -#include - -#include -#include -#include - -static void xs80200_irq_mask (unsigned int irq) -{ - long INTCTL; - asm ("mrc p13, 0, %0, c0, c0, 0" : "=r" (INTCTL)); - switch (irq) { - case IRQ_XS80200_BCU: INTCTL &= ~(1<<3); break; - case IRQ_XS80200_PMU: INTCTL &= ~(1<<2); break; - case IRQ_XS80200_EXTIRQ: INTCTL &= ~(1<<1); break; - case IRQ_XS80200_EXTFIQ: INTCTL &= ~(1<<0); break; - } - asm ("mcr p13, 0, %0, c0, c0, 0" : : "r" (INTCTL)); -} - -static void xs80200_irq_unmask (unsigned int irq) -{ - long INTCTL; - asm ("mrc p13, 0, %0, c0, c0, 0" : "=r" (INTCTL)); - switch (irq) { - case IRQ_XS80200_BCU: INTCTL |= (1<<3); break; - case IRQ_XS80200_PMU: INTCTL |= (1<<2); break; - case IRQ_XS80200_EXTIRQ: INTCTL |= (1<<1); break; - case IRQ_XS80200_EXTFIQ: INTCTL |= (1<<0); break; - } - asm ("mcr p13, 0, %0, c0, c0, 0" : : "r" (INTCTL)); -} - -void __init adifcc_init_irq(void) -{ - int i; - - for (i = 0; i < NR_XS80200_IRQS; i++) { - irq_desc[i].valid = 1; - irq_desc[i].probe_ok = 0; - irq_desc[i].mask_ack = xs80200_irq_mask; - irq_desc[i].mask = xs80200_irq_mask; - irq_desc[i].unmask = xs80200_irq_unmask; - } -} - - diff -Nru a/arch/arm/mach-adifcc/mm.c b/arch/arm/mach-adifcc/mm.c --- a/arch/arm/mach-adifcc/mm.c 2004-06-28 18:21:57 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,23 +0,0 @@ -/* - * linux/arch/arm/mach-xscale/mm.c - */ -#include -#include -#include - -#include -#include -#include - -#include - - -static struct map_desc adifcc_io_desc[] __initdata = { - /* on-board devices */ - { 0xff400000, 0x00400000, 0x00300000, MT_DEVICE } -}; - -void __init adifcc_map_io(void) -{ - iotable_init(adifcc_io_desc, ARRAY_SIZE(adifcc_io_desc)); -} diff -Nru a/arch/arm/mach-clps711x/autcpu12.c b/arch/arm/mach-clps711x/autcpu12.c --- a/arch/arm/mach-clps711x/autcpu12.c 2004-06-28 18:21:54 -07:00 +++ b/arch/arm/mach-clps711x/autcpu12.c 2004-06-28 18:21:54 -07:00 @@ -37,6 +37,7 @@ extern void clps711x_map_io(void); extern void clps711x_init_irq(void); +extern void clps711x_init_time(void); /* * The on-chip registers are given a size of 1MB so that a section can @@ -65,5 +66,6 @@ BOOT_PARAMS(0xc0020000) MAPIO(autcpu12_map_io) INITIRQ(clps711x_init_irq) + INITTIME(clp711x_init_time) MACHINE_END diff -Nru a/arch/arm/mach-clps711x/cdb89712.c b/arch/arm/mach-clps711x/cdb89712.c --- a/arch/arm/mach-clps711x/cdb89712.c 2004-06-28 18:21:52 -07:00 +++ b/arch/arm/mach-clps711x/cdb89712.c 2004-06-28 18:21:52 -07:00 @@ -34,6 +34,7 @@ extern void clps711x_init_irq(void); extern void clps711x_map_io(void); +extern void clps711x-init_time(void); /* * Map the CS89712 Ethernet port. That should be moved to the @@ -55,6 +56,7 @@ BOOT_PARAMS(0xc0000100) MAPIO(cdb89712_map_io) INITIRQ(clps711x_init_irq) + INITTIME(clps711x_init_time) MACHINE_END static int cdb89712_hw_init(void) diff -Nru a/arch/arm/mach-clps711x/ceiva.c b/arch/arm/mach-clps711x/ceiva.c --- a/arch/arm/mach-clps711x/ceiva.c 2004-06-28 18:21:54 -07:00 +++ b/arch/arm/mach-clps711x/ceiva.c 2004-06-28 18:21:54 -07:00 @@ -35,6 +35,7 @@ #include extern void clps711x_init_irq(void); +extern void clps711x_init_time(void); static struct map_desc ceiva_io_desc[] __initdata = { /* virtual, physical, length, type */ @@ -58,4 +59,5 @@ BOOT_PARAMS(0xc0000100) MAPIO(ceiva_map_io) INITIRQ(clps711x_init_irq) + INITTIME(clps711x_init_time) MACHINE_END diff -Nru a/arch/arm/mach-clps711x/clep7312.c b/arch/arm/mach-clps711x/clep7312.c --- a/arch/arm/mach-clps711x/clep7312.c 2004-06-28 18:21:56 -07:00 +++ b/arch/arm/mach-clps711x/clep7312.c 2004-06-28 18:21:56 -07:00 @@ -25,6 +25,7 @@ extern void clps711x_init_irq(void); extern void clps711x_map_io(void); +extern void clps711x_init_time(void); static void __init fixup_clep7312(struct machine_desc *desc, struct tag *tags, @@ -44,5 +45,6 @@ FIXUP(fixup_clep7312) MAPIO(clps711x_map_io) INITIRQ(clps711x_init_irq) + INITTIME(clps711x_init_time) MACHINE_END diff -Nru a/arch/arm/mach-clps711x/edb7211-arch.c b/arch/arm/mach-clps711x/edb7211-arch.c --- a/arch/arm/mach-clps711x/edb7211-arch.c 2004-06-28 18:21:58 -07:00 +++ b/arch/arm/mach-clps711x/edb7211-arch.c 2004-06-28 18:21:58 -07:00 @@ -27,6 +27,7 @@ extern void clps711x_init_irq(void); extern void edb7211_map_io(void); +extern void clps711x_init_time(void); static void __init fixup_edb7211(struct machine_desc *desc, struct tag *tags, @@ -56,4 +57,5 @@ FIXUP(fixup_edb7211) MAPIO(edb7211_map_io) INITIRQ(clps711x_init_irq) + INITTIME(clps711x_init_time) MACHINE_END diff -Nru a/arch/arm/mach-clps711x/fortunet.c b/arch/arm/mach-clps711x/fortunet.c --- a/arch/arm/mach-clps711x/fortunet.c 2004-06-28 18:21:57 -07:00 +++ b/arch/arm/mach-clps711x/fortunet.c 2004-06-28 18:21:57 -07:00 @@ -33,6 +33,7 @@ extern void clps711x_map_io(void); extern void clps711x_init_irq(void); +extern void clps711x_init_time(void); struct meminfo memmap = { .nr_banks = 1, @@ -82,4 +83,5 @@ FIXUP(fortunet_fixup) MAPIO(clps711x_map_io) INITIRQ(clps711x_init_irq) + INITTIME(clps711x_init_time) MACHINE_END diff -Nru a/arch/arm/mach-clps711x/p720t.c b/arch/arm/mach-clps711x/p720t.c --- a/arch/arm/mach-clps711x/p720t.c 2004-06-28 18:21:56 -07:00 +++ b/arch/arm/mach-clps711x/p720t.c 2004-06-28 18:21:56 -07:00 @@ -36,6 +36,7 @@ extern void clps711x_init_irq(void); extern void clps711x_map_io(void); +extern void clps711x_init_time(void); /* * Map the P720T system PLD. It occupies two address spaces: @@ -86,6 +87,7 @@ FIXUP(fixup_p720t) MAPIO(p720t_map_io) INITIRQ(clps711x_init_irq) + INITTIME(clps711x_init_time) MACHINE_END static int p720t_hw_init(void) diff -Nru a/arch/arm/mach-clps711x/time.c b/arch/arm/mach-clps711x/time.c --- a/arch/arm/mach-clps711x/time.c 2004-06-28 18:21:53 -07:00 +++ b/arch/arm/mach-clps711x/time.c 2004-06-28 18:21:53 -07:00 @@ -18,12 +18,17 @@ */ #include #include +#include +#include #include +#include +#include #include #include -extern unsigned long (*gettimeoffset)(void); +#include + /* * gettimeoffset() returns time since last timer tick, in usecs. @@ -38,18 +43,35 @@ return (hwticks * (tick_nsec / 1000)) / LATCH; } -void __init clps711x_setup_timer(void) +/* + * IRQ handler for the timer + */ +static irqreturn_t +p720t_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) +{ + timer_tick(regs); + return IRQ_HANDLED; +} + +static struct irqaction clps711x_timer_irq = { + .name = "CLPS711x Timer Tick", + .flags = SA_INTERRUPT, + .handler = p720t_timer_interrupt +}; + +void __init clps711x_init_time(void) { struct timespec tv; unsigned int syscon; - gettimeoffset = clps711x_gettimeoffset; - syscon = clps_readl(SYSCON1); syscon |= SYSCON1_TC2S | SYSCON1_TC2M; clps_writel(syscon, SYSCON1); clps_writel(LATCH-1, TC2D); /* 512kHz / 100Hz - 1 */ + + setup_irq(IRQ_TC2OI, &clps711x_timer_irq); + gettimeoffset = clps711x_gettimeoffset; tv.tv_nsec = 0; tv.tv_sec = clps_readl(RTCDR); diff -Nru a/arch/arm/mach-clps7500/core.c b/arch/arm/mach-clps7500/core.c --- a/arch/arm/mach-clps7500/core.c 2004-06-28 18:21:57 -07:00 +++ b/arch/arm/mach-clps7500/core.c 2004-06-28 18:21:57 -07:00 @@ -10,12 +10,13 @@ #include #include #include -#include +#include #include #include #include #include +#include #include #include @@ -187,7 +188,7 @@ .unmask = cl7500_no_action, }; -static struct irqaction irq_isa = { no_action, 0, 0, "isa", NULL, NULL }; +static struct irqaction irq_isa = { no_action, 0, CPU_MASK_NONE, "isa", NULL, NULL }; static void __init clps7500_init_irq(void) { @@ -265,10 +266,47 @@ iotable_init(cl7500_io_desc, ARRAY_SIZE(cl7500_io_desc)); } +extern void ioctime_init(void); + +static irqreturn_t +clps7500_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) +{ + timer_tick(regs); + + /* Why not using do_leds interface?? */ + { + /* Twinkle the lights. */ + static int count, state = 0xff00; + if (count-- == 0) { + state ^= 0x100; + count = 25; + *((volatile unsigned int *)LED_ADDRESS) = state; + } + } + return IRQ_HANDLED; +} + +static struct irqaction clps7500_timer_irq = { + .name = "CLPS7500 Timer Tick", + .flags = SA_INTERRUPT, + .handler = clps7500_timer_interrupt +}; + +/* + * Set up timer interrupt. + */ +void __init clps7500_init_time(void) +{ + ioctime_init(); + + setup_irq(IRQ_TIMER, &clps7500_timer_irq); +} + MACHINE_START(CLPS7500, "CL-PS7500") MAINTAINER("Philip Blundell") BOOT_MEM(0x10000000, 0x03000000, 0xe0000000) MAPIO(clps7500_map_io) INITIRQ(clps7500_init_irq) + INITTIME(clps7500_init_time) MACHINE_END diff -Nru a/arch/arm/mach-ebsa110/core.c b/arch/arm/mach-ebsa110/core.c --- a/arch/arm/mach-ebsa110/core.c 2004-06-28 18:21:54 -07:00 +++ b/arch/arm/mach-ebsa110/core.c 2004-06-28 18:21:54 -07:00 @@ -11,6 +11,7 @@ */ #include #include +#include #include #include @@ -26,6 +27,8 @@ #include #include +#include + #define IRQ_MASK 0xfe000000 /* read */ #define IRQ_MSET 0xfe000000 /* write */ #define IRQ_STAT 0xff000000 /* read */ @@ -89,6 +92,103 @@ iotable_init(ebsa110_io_desc, ARRAY_SIZE(ebsa110_io_desc)); } + +#define PIT_CTRL (PIT_BASE + 0x0d) +#define PIT_T2 (PIT_BASE + 0x09) +#define PIT_T1 (PIT_BASE + 0x05) +#define PIT_T0 (PIT_BASE + 0x01) + +/* + * This is the rate at which your MCLK signal toggles (in Hz) + * This was measured on a 10 digit frequency counter sampling + * over 1 second. + */ +#define MCLK 47894000 + +/* + * This is the rate at which the PIT timers get clocked + */ +#define CLKBY7 (MCLK / 7) + +/* + * This is the counter value. We tick at 200Hz on this platform. + */ +#define COUNT ((CLKBY7 + (HZ / 2)) / HZ) + +/* + * Get the time offset from the system PIT. Note that if we have missed an + * interrupt, then the PIT counter will roll over (ie, be negative). + * This actually works out to be convenient. + */ +static unsigned long ebsa110_gettimeoffset(void) +{ + unsigned long offset, count; + + __raw_writeb(0x40, PIT_CTRL); + count = __raw_readb(PIT_T1); + count |= __raw_readb(PIT_T1) << 8; + + /* + * If count > COUNT, make the number negative. + */ + if (count > COUNT) + count |= 0xffff0000; + + offset = COUNT; + offset -= count; + + /* + * `offset' is in units of timer counts. Convert + * offset to units of microseconds. + */ + offset = offset * (1000000 / HZ) / COUNT; + + return offset; +} + +static irqreturn_t +ebsa110_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) +{ + u32 count; + + /* latch and read timer 1 */ + __raw_writeb(0x40, PIT_CTRL); + count = __raw_readb(PIT_T1); + count |= __raw_readb(PIT_T1) << 8; + + count += COUNT; + + __raw_writeb(count & 0xff, PIT_T1); + __raw_writeb(count >> 8, PIT_T1); + + timer_tick(regs); + + return IRQ_HANDLED; +} + +static struct irqaction ebsa110_timer_irq = { + .name = "EBSA110 Timer Tick", + .flags = SA_INTERRUPT, + .handler = ebsa110_timer_interrupt +}; + +/* + * Set up timer interrupt. + */ +static void __init ebsa110_init_time(void) +{ + /* + * Timer 1, mode 2, LSB/MSB + */ + __raw_writeb(0x70, PIT_CTRL); + __raw_writeb(COUNT & 0xff, PIT_T1); + __raw_writeb(COUNT >> 8, PIT_T1); + + gettimeoffset = ebsa110_gettimeoffset; + + setup_irq(IRQ_EBSA110_TIMER0, &ebsa110_timer_irq); +} + MACHINE_START(EBSA110, "EBSA110") MAINTAINER("Russell King") BOOT_MEM(0x00000000, 0xe0000000, 0xe0000000) @@ -98,4 +198,5 @@ SOFT_REBOOT MAPIO(ebsa110_map_io) INITIRQ(ebsa110_init_irq) + INITTIME(ebsa110_init_time) MACHINE_END diff -Nru a/arch/arm/mach-epxa10db/arch.c b/arch/arm/mach-epxa10db/arch.c --- a/arch/arm/mach-epxa10db/arch.c 2004-06-28 18:21:56 -07:00 +++ b/arch/arm/mach-epxa10db/arch.c 2004-06-28 18:21:56 -07:00 @@ -29,10 +29,13 @@ extern void epxa10db_map_io(void); extern void epxa10db_init_irq(void); +extern void epxa10db_init_time(void); MACHINE_START(CAMELOT, "Altera Epxa10db") MAINTAINER("Altera Corporation") BOOT_MEM(0x00000000, 0x7fffc000, 0xffffc000) MAPIO(epxa10db_map_io) INITIRQ(epxa10db_init_irq) + INITTIME(epxa10db_init_time) MACHINE_END + diff -Nru a/arch/arm/mach-epxa10db/time.c b/arch/arm/mach-epxa10db/time.c --- a/arch/arm/mach-epxa10db/time.c 2004-06-28 18:21:54 -07:00 +++ b/arch/arm/mach-epxa10db/time.c 2004-06-28 18:21:54 -07:00 @@ -10,11 +10,17 @@ */ #include #include +#include +#include #include +#include +#include +#include -extern int (*set_rtc)(void); +#define TIMER00_TYPE (volatile unsigned int*) +#include static int epxa10db_set_rtc(void) { @@ -29,3 +35,39 @@ } __initcall(epxa10db_rtc_init); + + +/* + * IRQ handler for the timer + */ +static irqreturn_t +epxa10db_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) +{ + + // ...clear the interrupt + *TIMER0_CR(IO_ADDRESS(EXC_TIMER00_BASE))|=TIMER0_CR_CI_MSK; + + timer_tick(regs); + + return IRQ_HANDLED; +} + +static struct irqaction epxa10db_timer_irq = { + .name = "Excalibur Timer Tick", + .flags = SA_INTERRUPT, + .handler = epxa10db_timer_interrupt +}; + +/* + * Set up timer interrupt, and return the current time in seconds. + */ +void __init epxa10db_init_time(void) +{ + /* Start the timer */ + *TIMER0_LIMIT(IO_ADDRESS(EXC_TIMER00_BASE))=(unsigned int)(EXC_AHB2_CLK_FREQUENCY/200); + *TIMER0_PRESCALE(IO_ADDRESS(EXC_TIMER00_BASE))=1; + *TIMER0_CR(IO_ADDRESS(EXC_TIMER00_BASE))=TIMER0_CR_IE_MSK | TIMER0_CR_S_MSK; + + setup_irq(IRQ_TIMER0, &epxa10db_timer_irq); +} + diff -Nru a/arch/arm/mach-footbridge/Makefile b/arch/arm/mach-footbridge/Makefile --- a/arch/arm/mach-footbridge/Makefile 2004-06-28 18:21:56 -07:00 +++ b/arch/arm/mach-footbridge/Makefile 2004-06-28 18:21:56 -07:00 @@ -4,7 +4,7 @@ # Object file lists. -obj-y := arch.o dc21285.o dma.o irq.o isa-irq.o mm.o +obj-y := arch.o dc21285.o dma.o irq.o isa-irq.o mm.o time.o obj-m := obj-n := obj- := diff -Nru a/arch/arm/mach-footbridge/arch.c b/arch/arm/mach-footbridge/arch.c --- a/arch/arm/mach-footbridge/arch.c 2004-06-28 18:21:55 -07:00 +++ b/arch/arm/mach-footbridge/arch.c 2004-06-28 18:21:55 -07:00 @@ -22,6 +22,7 @@ extern void footbridge_map_io(void); extern void footbridge_init_irq(void); +extern void footbridge_init_time(void); unsigned int mem_fclk_21285 = 50000000; @@ -43,6 +44,7 @@ VIDEO(0x000a0000, 0x000bffff) MAPIO(footbridge_map_io) INITIRQ(footbridge_init_irq) + INITTIME(footbridge_init_time) MACHINE_END #endif @@ -78,6 +80,7 @@ FIXUP(fixup_netwinder) MAPIO(footbridge_map_io) INITIRQ(footbridge_init_irq) + INITTIME(footbridge_init_time) MACHINE_END #endif @@ -103,6 +106,7 @@ FIXUP(fixup_cats) MAPIO(footbridge_map_io) INITIRQ(footbridge_init_irq) + INITTIME(footbridge_init_time) MACHINE_END #endif @@ -129,6 +133,7 @@ FIXUP(fixup_coebsa285) MAPIO(footbridge_map_io) INITIRQ(footbridge_init_irq) + INITTIME(footbridge_init_time) MACHINE_END #endif @@ -139,5 +144,6 @@ BOOT_PARAMS(0x00000100) MAPIO(footbridge_map_io) INITIRQ(footbridge_init_irq) + INITTIME(footbridge_init_time) MACHINE_END #endif diff -Nru a/arch/arm/mach-footbridge/time.c b/arch/arm/mach-footbridge/time.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/arm/mach-footbridge/time.c 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,296 @@ +/* + * linux/include/asm-arm/arch-ebsa285/time.h + * + * Copyright (C) 1998 Russell King. + * Copyright (C) 1998 Phil Blundell + * + * CATS has a real-time clock, though the evaluation board doesn't. + * + * Changelog: + * 21-Mar-1998 RMK Created + * 27-Aug-1998 PJB CATS support + * 28-Dec-1998 APH Made leds optional + * 20-Jan-1999 RMK Started merge of EBSA285, CATS and NetWinder + * 16-Mar-1999 RMK More support for EBSA285-like machines with RTCs in + */ + +#define RTC_PORT(x) (rtc_base+(x)) +#define RTC_ALWAYS_BCD 0 + +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include + +#include + +static int rtc_base; + +#define mSEC_10_from_14 ((14318180 + 100) / 200) + +static unsigned long isa_gettimeoffset(void) +{ + int count; + + static int count_p = (mSEC_10_from_14/6); /* for the first call after boot */ + static unsigned long jiffies_p = 0; + + /* + * cache volatile jiffies temporarily; we have IRQs turned off. + */ + unsigned long jiffies_t; + + /* timer count may underflow right here */ + outb_p(0x00, 0x43); /* latch the count ASAP */ + + count = inb_p(0x40); /* read the latched count */ + + /* + * We do this guaranteed double memory access instead of a _p + * postfix in the previous port access. Wheee, hackady hack + */ + jiffies_t = jiffies; + + count |= inb_p(0x40) << 8; + + /* Detect timer underflows. If we haven't had a timer tick since + the last time we were called, and time is apparently going + backwards, the counter must have wrapped during this routine. */ + if ((jiffies_t == jiffies_p) && (count > count_p)) + count -= (mSEC_10_from_14/6); + else + jiffies_p = jiffies_t; + + count_p = count; + + count = (((mSEC_10_from_14/6)-1) - count) * (tick_nsec / 1000); + count = (count + (mSEC_10_from_14/6)/2) / (mSEC_10_from_14/6); + + return count; +} + +static irqreturn_t +isa_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) +{ + timer_tick(regs); + + return IRQ_HANDLED; +} + +static unsigned long __init get_isa_cmos_time(void) +{ + unsigned int year, mon, day, hour, min, sec; + int i; + + // check to see if the RTC makes sense..... + if ((CMOS_READ(RTC_VALID) & RTC_VRT) == 0) + return mktime(1970, 1, 1, 0, 0, 0); + + /* The Linux interpretation of the CMOS clock register contents: + * When the Update-In-Progress (UIP) flag goes from 1 to 0, the + * RTC registers show the second which has precisely just started. + * Let's hope other operating systems interpret the RTC the same way. + */ + /* read RTC exactly on falling edge of update flag */ + for (i = 0 ; i < 1000000 ; i++) /* may take up to 1 second... */ + if (CMOS_READ(RTC_FREQ_SELECT) & RTC_UIP) + break; + + for (i = 0 ; i < 1000000 ; i++) /* must try at least 2.228 ms */ + if (!(CMOS_READ(RTC_FREQ_SELECT) & RTC_UIP)) + break; + + do { /* Isn't this overkill ? UIP above should guarantee consistency */ + sec = CMOS_READ(RTC_SECONDS); + min = CMOS_READ(RTC_MINUTES); + hour = CMOS_READ(RTC_HOURS); + day = CMOS_READ(RTC_DAY_OF_MONTH); + mon = CMOS_READ(RTC_MONTH); + year = CMOS_READ(RTC_YEAR); + } while (sec != CMOS_READ(RTC_SECONDS)); + + if (!(CMOS_READ(RTC_CONTROL) & RTC_DM_BINARY) || RTC_ALWAYS_BCD) { + BCD_TO_BIN(sec); + BCD_TO_BIN(min); + BCD_TO_BIN(hour); + BCD_TO_BIN(day); + BCD_TO_BIN(mon); + BCD_TO_BIN(year); + } + if ((year += 1900) < 1970) + year += 100; + return mktime(year, mon, day, hour, min, sec); +} + +static int +set_isa_cmos_time(void) +{ + int retval = 0; + int real_seconds, real_minutes, cmos_minutes; + unsigned char save_control, save_freq_select; + unsigned long nowtime = xtime.tv_sec; + + save_control = CMOS_READ(RTC_CONTROL); /* tell the clock it's being set */ + CMOS_WRITE((save_control|RTC_SET), RTC_CONTROL); + + save_freq_select = CMOS_READ(RTC_FREQ_SELECT); /* stop and reset prescaler */ + CMOS_WRITE((save_freq_select|RTC_DIV_RESET2), RTC_FREQ_SELECT); + + cmos_minutes = CMOS_READ(RTC_MINUTES); + if (!(save_control & RTC_DM_BINARY) || RTC_ALWAYS_BCD) + BCD_TO_BIN(cmos_minutes); + + /* + * since we're only adjusting minutes and seconds, + * don't interfere with hour overflow. This avoids + * messing with unknown time zones but requires your + * RTC not to be off by more than 15 minutes + */ + real_seconds = nowtime % 60; + real_minutes = nowtime / 60; + if (((abs(real_minutes - cmos_minutes) + 15)/30) & 1) + real_minutes += 30; /* correct for half hour time zone */ + real_minutes %= 60; + + if (abs(real_minutes - cmos_minutes) < 30) { + if (!(save_control & RTC_DM_BINARY) || RTC_ALWAYS_BCD) { + BIN_TO_BCD(real_seconds); + BIN_TO_BCD(real_minutes); + } + CMOS_WRITE(real_seconds,RTC_SECONDS); + CMOS_WRITE(real_minutes,RTC_MINUTES); + } else + retval = -1; + + /* The following flags have to be released exactly in this order, + * otherwise the DS12887 (popular MC146818A clone with integrated + * battery and quartz) will not reset the oscillator and will not + * update precisely 500 ms later. You won't find this mentioned in + * the Dallas Semiconductor data sheets, but who believes data + * sheets anyway ... -- Markus Kuhn + */ + CMOS_WRITE(save_control, RTC_CONTROL); + CMOS_WRITE(save_freq_select, RTC_FREQ_SELECT); + + return retval; +} + + +static unsigned long timer1_latch; + +static unsigned long timer1_gettimeoffset (void) +{ + unsigned long value = timer1_latch - *CSR_TIMER1_VALUE; + + return ((tick_nsec / 1000) * value) / timer1_latch; +} + +static irqreturn_t +timer1_interrupt(int irq, void *dev_id, struct pt_regs *regs) +{ + *CSR_TIMER1_CLR = 0; + + timer_tick(regs); + + return IRQ_HANDLED; +} + +static struct irqaction footbridge_timer_irq = { + .flags = SA_INTERRUPT +}; + +/* + * Set up timer interrupt. + */ +void __init footbridge_init_time(void) +{ + if (machine_is_co285() || + machine_is_personal_server()) + /* + * Add-in 21285s shouldn't access the RTC + */ + rtc_base = 0; + else + rtc_base = 0x70; + + if (rtc_base) { + int reg_d, reg_b; + + /* + * Probe for the RTC. + */ + reg_d = CMOS_READ(RTC_REG_D); + + /* + * make sure the divider is set + */ + CMOS_WRITE(RTC_REF_CLCK_32KHZ, RTC_REG_A); + + /* + * Set control reg B + * (24 hour mode, update enabled) + */ + reg_b = CMOS_READ(RTC_REG_B) & 0x7f; + reg_b |= 2; + CMOS_WRITE(reg_b, RTC_REG_B); + + if ((CMOS_READ(RTC_REG_A) & 0x7f) == RTC_REF_CLCK_32KHZ && + CMOS_READ(RTC_REG_B) == reg_b) { + struct timespec tv; + + /* + * We have a RTC. Check the battery + */ + if ((reg_d & 0x80) == 0) + printk(KERN_WARNING "RTC: *** warning: CMOS battery bad\n"); + + tv.tv_nsec = 0; + tv.tv_sec = get_isa_cmos_time(); + do_settimeofday(&tv); + set_rtc = set_isa_cmos_time; + } else + rtc_base = 0; + } + + if (machine_is_ebsa285() || + machine_is_co285() || + machine_is_personal_server()) { + gettimeoffset = timer1_gettimeoffset; + + timer1_latch = (mem_fclk_21285 + 8 * HZ) / (16 * HZ); + + *CSR_TIMER1_CLR = 0; + *CSR_TIMER1_LOAD = timer1_latch; + *CSR_TIMER1_CNTL = TIMER_CNTL_ENABLE | TIMER_CNTL_AUTORELOAD | TIMER_CNTL_DIV16; + + footbridge_timer_irq.name = "Timer1 Timer Tick"; + footbridge_timer_irq.handler = timer1_interrupt; + + setup_irq(IRQ_TIMER1, &footbridge_timer_irq); + + } else { + /* enable PIT timer */ + /* set for periodic (4) and LSB/MSB write (0x30) */ + outb(0x34, 0x43); + outb((mSEC_10_from_14/6) & 0xFF, 0x40); + outb((mSEC_10_from_14/6) >> 8, 0x40); + + gettimeoffset = isa_gettimeoffset; + + footbridge_timer_irq.name = "ISA Timer Tick"; + footbridge_timer_irq.handler = isa_timer_interrupt; + + setup_irq(IRQ_ISA_TIMER, &footbridge_timer_irq); + } +} diff -Nru a/arch/arm/mach-ftvpci/Makefile b/arch/arm/mach-ftvpci/Makefile --- a/arch/arm/mach-ftvpci/Makefile 2004-06-28 18:21:59 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,13 +0,0 @@ -# -# Makefile for the linux kernel. -# - -# Object file lists. - -obj-y := core.o -obj-m := -obj-n := -obj- := - -obj-$(CONFIG_PCI) += pci.o -obj-$(CONFIG_LEDS) += leds.o diff -Nru a/arch/arm/mach-ftvpci/core.c b/arch/arm/mach-ftvpci/core.c --- a/arch/arm/mach-ftvpci/core.c 2004-06-28 18:21:59 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,96 +0,0 @@ -/* - * linux/arch/arm/mach-ftvpci/core.c - * - * Architecture specific fixups. - * - * 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 - -extern unsigned long soft_irq_mask; - -static const unsigned char irq_cmd[] = -{ - INTCONT_IRQ_DUART, - INTCONT_IRQ_PLX, - INTCONT_IRQ_D, - INTCONT_IRQ_C, - INTCONT_IRQ_B, - INTCONT_IRQ_A, - INTCONT_IRQ_SYSERR -}; - -static void ftvpci_mask_irq(unsigned int irq) -{ - __raw_writel(irq_cmd[irq], INTCONT_BASE); - soft_irq_mask &= ~(1<= FIRST_IRQ && i <= LAST_IRQ) { - irq_desc[i].valid = 1; - irq_desc[i].probe_ok = 1; - irq_desc[i].mask_ack = ftvpci_mask_irq; - irq_desc[i].mask = ftvpci_mask_irq; - irq_desc[i].unmask = ftvpci_unmask_irq; - ftvpci_mask_irq(i); - } else { - irq_desc[i].valid = 0; - irq_desc[i].probe_ok = 0; - } - } -} - -static struct map_desc ftvpci_io_desc[] __initdata = { - { INTCONT_BASE, INTCONT_START, 0x00001000, MT_DEVICE }, - { PLX_BASE, PLX_START, 0x00001000, MT_DEVICE }, - { PCIO_BASE, PLX_IO_START, 0x00100000, MT_DEVICE }, - { DUART_BASE, DUART_START, 0x00001000, MT_DEVICE }, - { STATUS_BASE, STATUS_START, 0x00001000, MT_DEVICE } -}; - -static void __init ftvpci_map_io(void) -{ - iotable_init(ftvpci_io_desc, ARRAY_SIZE(ftvpci_io_desc)); -} - -MACHINE_START(NEXUSPCI, "FTV/PCI") - MAINTAINER("Philip Blundell") - BOOT_MEM(0x40000000, 0x10000000, 0xe0000000) - MAPIO(ftvpci_map_io) - INITIRQ(ftvpci_init_irq) -MACHINE_END diff -Nru a/arch/arm/mach-ftvpci/leds.c b/arch/arm/mach-ftvpci/leds.c --- a/arch/arm/mach-ftvpci/leds.c 2004-06-28 18:21:54 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,36 +0,0 @@ -/* - * linux/arch/arm/kernel/leds-ftvpci.c - * - * Copyright (C) 1999 FutureTV Labs Ltd - */ - -#include -#include - -#include -#include -#include -#include - -static void ftvpci_leds_event(led_event_t ledevt) -{ - static int led_state = 0; - - switch(ledevt) { - case led_timer: - led_state ^= 1; - raw_writeb(0x1a | led_state, INTCONT_BASE); - break; - - default: - break; - } -} - -static int __init ftvpci_leds_init(void) -{ - leds_event = ftvpci_leds_event; - return 0; -} - -arch_initcall(ftvpci_leds_init); diff -Nru a/arch/arm/mach-ftvpci/pci.c b/arch/arm/mach-ftvpci/pci.c --- a/arch/arm/mach-ftvpci/pci.c 2004-06-28 18:22:00 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,60 +0,0 @@ -/* - * linux/arch/arm/kernel/ftv-pci.c - * - * PCI bios-type initialisation for PCI machines - * - * Bits taken from various places. - */ -#include -#include -#include - -#include -#include -#include - -/* - * Owing to a PCB cockup, issue A backplanes are wired thus: - * - * Slot 1 2 3 4 5 Bridge S1 S2 S3 S4 - * IRQ D C B A A C B A D - * A D C B B D C B A - * B A D C C A D C B - * C B A D D B A D C - * - * ID A31 A30 A29 A28 A27 A26 DEV4 DEV5 DEV6 DEV7 - * - * Actually, this isn't too bad, because with the processor card - * in slot 5 on the primary bus, the IRQs rotate on both sides - * as you'd expect. - */ - -static int irqmap_ftv[] __initdata = { IRQ_PCI_D, IRQ_PCI_C, IRQ_PCI_B, IRQ_PCI_A }; - -static int __init ftv_map_irq(struct pci_dev *dev, u8 slot, u8 pin) -{ - if (slot > 0x10) - slot--; - return irqmap_ftv[(slot - pin) & 3]; -} - -static u8 __init ftv_swizzle(struct pci_dev *dev, u8 *pin) -{ - return PCI_SLOT(dev->devfn); -} - -/* ftv host-specific stuff */ -static struct hw_pci ftv_pci __initdata = { - .init = plx90x0_init, - .swizzle = ftv_swizzle, - .map_irq = ftv_map_irq, -}; - -static int __init ftv_pci_init(void) -{ - if (machine_is_ftvpci()) - pci_common_init(&ftv_pci); - return 0; -} - -subsys_initcall(ftv_pci_init); diff -Nru a/arch/arm/mach-integrator/Makefile b/arch/arm/mach-integrator/Makefile --- a/arch/arm/mach-integrator/Makefile 2004-06-28 18:21:59 -07:00 +++ b/arch/arm/mach-integrator/Makefile 2004-06-28 18:21:59 -07:00 @@ -4,7 +4,7 @@ # Object file lists. -obj-y := core.o lm.o time.o +obj-y := clock.o core.o lm.o time.o obj-$(CONFIG_ARCH_INTEGRATOR_AP) += integrator_ap.o obj-$(CONFIG_ARCH_INTEGRATOR_CP) += integrator_cp.o diff -Nru a/arch/arm/mach-integrator/clock.c b/arch/arm/mach-integrator/clock.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/arm/mach-integrator/clock.c 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,138 @@ +/* + * linux/arch/arm/mach-integrator/clock.c + * + * Copyright (C) 2004 ARM Limited. + * Written by Deep Blue Solutions Limited. + * + * 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 "clock.h" + +static LIST_HEAD(clocks); +static DECLARE_MUTEX(clocks_sem); + +struct clk *clk_get(struct device *dev, const char *id) +{ + struct clk *p, *clk = ERR_PTR(-ENOENT); + + down(&clocks_sem); + list_for_each_entry(p, &clocks, node) { + if (strcmp(id, p->name) == 0 && try_module_get(p->owner)) { + clk = p; + break; + } + } + up(&clocks_sem); + + return clk; +} +EXPORT_SYMBOL(clk_get); + +void clk_put(struct clk *clk) +{ + module_put(clk->owner); +} +EXPORT_SYMBOL(clk_put); + +int clk_enable(struct clk *clk) +{ + return 0; +} +EXPORT_SYMBOL(clk_enable); + +void clk_disable(struct clk *clk) +{ +} +EXPORT_SYMBOL(clk_disable); + +int clk_use(struct clk *clk) +{ + return 0; +} +EXPORT_SYMBOL(clk_use); + +void clk_unuse(struct clk *clk) +{ +} +EXPORT_SYMBOL(clk_unuse); + +unsigned long clk_get_rate(struct clk *clk) +{ + return clk->rate; +} +EXPORT_SYMBOL(clk_get_rate); + +long clk_round_rate(struct clk *clk, unsigned long rate) +{ + return rate; +} +EXPORT_SYMBOL(clk_round_rate); + +int clk_set_rate(struct clk *clk, unsigned long rate) +{ + int ret = -EIO; + if (clk->setvco) { + struct icst525_vco vco; + + vco = icst525_khz_to_vco(clk->params, rate); + clk->rate = icst525_khz(clk->params, vco); + + printk("Clock %s: setting VCO reg params: S=%d R=%d V=%d\n", + clk->name, vco.s, vco.r, vco.v); + + clk->setvco(clk, vco); + ret = 0; + } + return 0; +} +EXPORT_SYMBOL(clk_set_rate); + +/* + * These are fixed clocks. + */ +static struct clk kmi_clk = { + .name = "KMIREFCLK", + .rate = 24000000, +}; + +static struct clk uart_clk = { + .name = "UARTCLK", + .rate = 14745600, +}; + +int clk_register(struct clk *clk) +{ + down(&clocks_sem); + list_add(&clk->node, &clocks); + up(&clocks_sem); + return 0; +} +EXPORT_SYMBOL(clk_register); + +void clk_unregister(struct clk *clk) +{ + down(&clocks_sem); + list_del(&clk->node); + up(&clocks_sem); +} +EXPORT_SYMBOL(clk_unregister); + +static int __init clk_init(void) +{ + clk_register(&kmi_clk); + clk_register(&uart_clk); + return 0; +} +arch_initcall(clk_init); diff -Nru a/arch/arm/mach-integrator/clock.h b/arch/arm/mach-integrator/clock.h --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/arm/mach-integrator/clock.h 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,25 @@ +/* + * linux/arch/arm/mach-integrator/clock.h + * + * Copyright (C) 2004 ARM Limited. + * Written by Deep Blue Solutions Limited. + * + * 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. + */ +struct module; +struct icst525_params; + +struct clk { + struct list_head node; + unsigned long rate; + struct module *owner; + const char *name; + const struct icst525_params *params; + void *data; + void (*setvco)(struct clk *, struct icst525_vco vco); +}; + +int clk_register(struct clk *clk); +void clk_unregister(struct clk *clk); diff -Nru a/arch/arm/mach-integrator/core.c b/arch/arm/mach-integrator/core.c --- a/arch/arm/mach-integrator/core.c 2004-06-28 18:21:57 -07:00 +++ b/arch/arm/mach-integrator/core.c 2004-06-28 18:21:57 -07:00 @@ -12,12 +12,17 @@ #include #include #include +#include +#include #include #include #include #include #include +#include +#include +#include static struct amba_device rtc_device = { .dev = { @@ -127,3 +132,137 @@ } EXPORT_SYMBOL(cm_control); + +/* + * Where is the timer (VA)? + */ +#define TIMER0_VA_BASE (IO_ADDRESS(INTEGRATOR_CT_BASE)+0x00000000) +#define TIMER1_VA_BASE (IO_ADDRESS(INTEGRATOR_CT_BASE)+0x00000100) +#define TIMER2_VA_BASE (IO_ADDRESS(INTEGRATOR_CT_BASE)+0x00000200) +#define VA_IC_BASE IO_ADDRESS(INTEGRATOR_IC_BASE) + +/* + * How long is the timer interval? + */ +#define TIMER_INTERVAL (TICKS_PER_uSEC * mSEC_10) +#if TIMER_INTERVAL >= 0x100000 +#define TICKS2USECS(x) (256 * (x) / TICKS_PER_uSEC) +#elif TIMER_INTERVAL >= 0x10000 +#define TICKS2USECS(x) (16 * (x) / TICKS_PER_uSEC) +#else +#define TICKS2USECS(x) ((x) / TICKS_PER_uSEC) +#endif + +/* + * What does it look like? + */ +typedef struct TimerStruct { + unsigned long TimerLoad; + unsigned long TimerValue; + unsigned long TimerControl; + unsigned long TimerClear; +} TimerStruct_t; + +extern unsigned long (*gettimeoffset)(void); + +static unsigned long timer_reload; + +/* + * Returns number of ms since last clock interrupt. Note that interrupts + * will have been disabled by do_gettimeoffset() + */ +static unsigned long integrator_gettimeoffset(void) +{ + volatile TimerStruct_t *timer1 = (TimerStruct_t *)TIMER1_VA_BASE; + unsigned long ticks1, ticks2, status; + + /* + * Get the current number of ticks. Note that there is a race + * condition between us reading the timer and checking for + * an interrupt. We get around this by ensuring that the + * counter has not reloaded between our two reads. + */ + ticks2 = timer1->TimerValue & 0xffff; + do { + ticks1 = ticks2; + status = __raw_readl(VA_IC_BASE + IRQ_RAW_STATUS); + ticks2 = timer1->TimerValue & 0xffff; + } while (ticks2 > ticks1); + + /* + * Number of ticks since last interrupt. + */ + ticks1 = timer_reload - ticks2; + + /* + * Interrupt pending? If so, we've reloaded once already. + */ + if (status & (1 << IRQ_TIMERINT1)) + ticks1 += timer_reload; + + /* + * Convert the ticks to usecs + */ + return TICKS2USECS(ticks1); +} + +/* + * IRQ handler for the timer + */ +static irqreturn_t +integrator_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) +{ + volatile TimerStruct_t *timer1 = (volatile TimerStruct_t *)TIMER1_VA_BASE; + + // ...clear the interrupt + timer1->TimerClear = 1; + + timer_tick(regs); + + return IRQ_HANDLED; +} + +static struct irqaction integrator_timer_irq = { + .name = "Integrator Timer Tick", + .flags = SA_INTERRUPT, + .handler = integrator_timer_interrupt +}; + +/* + * Set up timer interrupt, and return the current time in seconds. + */ +void __init integrator_time_init(unsigned long reload, unsigned int ctrl) +{ + volatile TimerStruct_t *timer0 = (volatile TimerStruct_t *)TIMER0_VA_BASE; + volatile TimerStruct_t *timer1 = (volatile TimerStruct_t *)TIMER1_VA_BASE; + volatile TimerStruct_t *timer2 = (volatile TimerStruct_t *)TIMER2_VA_BASE; + unsigned int timer_ctrl = 0x80 | 0x40; /* periodic */ + + timer_reload = reload; + timer_ctrl |= ctrl; + + if (timer_reload > 0x100000) { + timer_reload >>= 8; + timer_ctrl |= 0x08; /* /256 */ + } else if (timer_reload > 0x010000) { + timer_reload >>= 4; + timer_ctrl |= 0x04; /* /16 */ + } + + /* + * Initialise to a known state (all timers off) + */ + timer0->TimerControl = 0; + timer1->TimerControl = 0; + timer2->TimerControl = 0; + + timer1->TimerLoad = timer_reload; + timer1->TimerValue = timer_reload; + timer1->TimerControl = timer_ctrl; + + /* + * Make irqs happen for the system timer + */ + setup_irq(IRQ_TIMERINT1, &integrator_timer_irq); + gettimeoffset = integrator_gettimeoffset; +} diff -Nru a/arch/arm/mach-integrator/impd1.c b/arch/arm/mach-integrator/impd1.c --- a/arch/arm/mach-integrator/impd1.c 2004-06-28 18:21:55 -07:00 +++ b/arch/arm/mach-integrator/impd1.c 2004-06-28 18:21:55 -07:00 @@ -25,13 +25,16 @@ #include #include +#include "clock.h" + static int module_id; module_param_named(lmid, module_id, int, 0444); MODULE_PARM_DESC(lmid, "logic module stack position"); struct impd1_module { - void *base; + void *base; + struct clk vcos[2]; }; static const struct icst525_params impd1_vco_params = { @@ -43,25 +46,20 @@ .rd_max = 120, }; -void impd1_set_vco(struct device *dev, int vconr, unsigned long period) +static void impd1_setvco(struct clk *clk, struct icst525_vco vco) { - struct impd1_module *impd1 = dev_get_drvdata(dev); - struct icst525_vco vco; + struct impd1_module *impd1 = clk->data; + int vconr = clk - impd1->vcos; u32 val; - vco = icst525_ps_to_vco(&impd1_vco_params, period); - - pr_debug("Guessed VCO reg params: S=%d R=%d V=%d\n", - vco.s, vco.r, vco.v); - val = vco.v | (vco.r << 9) | (vco.s << 16); writel(0xa05f, impd1->base + IMPD1_LOCK); switch (vconr) { - case 1: + case 0: writel(val, impd1->base + IMPD1_OSC1); break; - case 2: + case 1: writel(val, impd1->base + IMPD1_OSC2); break; } @@ -77,8 +75,6 @@ #endif } -EXPORT_SYMBOL(impd1_set_vco); - void impd1_tweak_control(struct device *dev, u32 mask, u32 val) { struct impd1_module *impd1 = dev_get_drvdata(dev); @@ -140,6 +136,11 @@ } }; +static const char *impd1_vconames[2] = { + "CLCDCLK", + "AUXVCO2", +}; + static int impd1_probe(struct lm_device *dev) { struct impd1_module *impd1; @@ -168,6 +169,16 @@ printk("IM-PD1 found at 0x%08lx\n", dev->resource.start); + for (i = 0; i < ARRAY_SIZE(impd1->vcos); i++) { + impd1->vcos[i].owner = THIS_MODULE, + impd1->vcos[i].name = impd1_vconames[i], + impd1->vcos[i].params = &impd1_vco_params, + impd1->vcos[i].data = impd1, + impd1->vcos[i].setvco = impd1_setvco; + + clk_register(&impd1->vcos[i]); + } + for (i = 0; i < ARRAY_SIZE(impd1_devs); i++) { struct impd1_device *idev = impd1_devs + i; struct amba_device *d; @@ -216,12 +227,16 @@ { struct impd1_module *impd1 = lm_get_drvdata(dev); struct list_head *l, *n; + int i; list_for_each_safe(l, n, &dev->dev.children) { struct device *d = list_to_dev(l); device_unregister(d); } + + for (i = 0; i < ARRAY_SIZE(impd1->vcos); i++) + clk_unregister(&impd1->vcos[i]); lm_set_drvdata(dev, NULL); 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 2004-06-28 18:21:58 -07:00 +++ b/arch/arm/mach-integrator/integrator_ap.c 2004-06-28 18:21:58 -07:00 @@ -256,7 +256,7 @@ unsigned long sc_dec; int i; - platform_add_device(&cfi_flash_device); + platform_device_register(&cfi_flash_device); sc_dec = readl(VA_SC_BASE + INTEGRATOR_SC_DEC_OFFSET); for (i = 0; i < 4; i++) { @@ -281,11 +281,17 @@ } } +static void ap_time_init(void) +{ + integrator_time_init(1000000 * TICKS_PER_uSEC / HZ, 0); +} + MACHINE_START(INTEGRATOR, "ARM-Integrator") MAINTAINER("ARM Ltd/Deep Blue Solutions Ltd") BOOT_MEM(0x00000000, 0x16000000, 0xf1600000) BOOT_PARAMS(0x00000100) MAPIO(ap_map_io) INITIRQ(ap_init_irq) + INITTIME(ap_time_init) INIT_MACHINE(ap_init) MACHINE_END diff -Nru a/arch/arm/mach-integrator/integrator_cp.c b/arch/arm/mach-integrator/integrator_cp.c --- a/arch/arm/mach-integrator/integrator_cp.c 2004-06-28 18:21:59 -07:00 +++ b/arch/arm/mach-integrator/integrator_cp.c 2004-06-28 18:21:59 -07:00 @@ -23,6 +23,7 @@ #include #include #include +#include #include @@ -32,12 +33,16 @@ #include #include +#include "clock.h" + #define INTCP_PA_MMC_BASE 0x1c000000 #define INTCP_PA_AACI_BASE 0x1d000000 #define INTCP_PA_FLASH_BASE 0x24000000 #define INTCP_FLASH_SIZE SZ_32M +#define INTCP_PA_CLCD_BASE 0xc0000000 + #define INTCP_VA_CIC_BASE 0xf1000040 #define INTCP_VA_PIC_BASE 0xf1400000 #define INTCP_VA_SIC_BASE 0xfca00000 @@ -210,6 +215,44 @@ } /* + * Clock handling + */ +#define CM_LOCK (IO_ADDRESS(INTEGRATOR_HDR_BASE)+INTEGRATOR_HDR_LOCK_OFFSET) +#define CM_AUXOSC (IO_ADDRESS(INTEGRATOR_HDR_BASE)+0x1c) + +static const struct icst525_params cp_auxvco_params = { + .ref = 24000, + .vco_max = 320000, + .vd_min = 8, + .vd_max = 263, + .rd_min = 3, + .rd_max = 65, +}; + +static void cp_auxvco_set(struct clk *clk, struct icst525_vco vco) +{ + u32 val; + + val = readl(CM_AUXOSC) & ~0x7ffff; + val |= vco.v | (vco.r << 9) | (vco.s << 16); + + writel(0xa05f, CM_LOCK); + writel(val, CM_AUXOSC); + writel(0, CM_LOCK); +} + +static struct clk cp_clcd_clk = { + .name = "CLCDCLK", + .params = &cp_auxvco_params, + .setvco = cp_auxvco_set, +}; + +static struct clk cp_mmci_clk = { + .name = "MCLK", + .rate = 14745600, +}; + +/* * Flash handling. */ static int intcp_flash_init(void) @@ -308,7 +351,7 @@ } static struct mmc_platform_data mmc_data = { - .mclk = 33000000, + .mclk = 14745600, .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34, .status = mmc_status, }; @@ -340,15 +383,34 @@ .periphid = 0, }; +static struct amba_device clcd_device = { + .dev = { + .bus_id = "mb:c0", + .coherent_dma_mask = ~0, + }, + .res = { + .start = INTCP_PA_CLCD_BASE, + .end = INTCP_PA_CLCD_BASE + SZ_4K - 1, + .flags = IORESOURCE_MEM, + }, + .dma_mask = ~0, + .irq = { IRQ_CP_CLCDCINT, NO_IRQ }, + .periphid = 0, +}; + static struct amba_device *amba_devs[] __initdata = { &mmc_device, &aaci_device, + &clcd_device, }; static void __init intcp_init(void) { int i; + clk_register(&cp_clcd_clk); + clk_register(&cp_mmci_clk); + platform_add_devices(intcp_devs, ARRAY_SIZE(intcp_devs)); for (i = 0; i < ARRAY_SIZE(amba_devs); i++) { @@ -357,11 +419,19 @@ } } +#define TIMER_CTRL_IE (1 << 5) /* Interrupt Enable */ + +static void __init intcp_init_time(void) +{ + integrator_time_init(1000000 / HZ, TIMER_CTRL_IE); +} + MACHINE_START(CINTEGRATOR, "ARM-IntegratorCP") MAINTAINER("ARM Ltd/Deep Blue Solutions Ltd") BOOT_MEM(0x00000000, 0x16000000, 0xf1600000) BOOT_PARAMS(0x00000100) MAPIO(intcp_map_io) INITIRQ(intcp_init_irq) + INITTIME(intcp_init_time) INIT_MACHINE(intcp_init) MACHINE_END diff -Nru a/arch/arm/mach-iop3xx/arch.c b/arch/arm/mach-iop3xx/arch.c --- a/arch/arm/mach-iop3xx/arch.c 2004-06-28 18:21:57 -07:00 +++ b/arch/arm/mach-iop3xx/arch.c 2004-06-28 18:21:57 -07:00 @@ -29,6 +29,7 @@ #ifdef CONFIG_ARCH_IQ80321 extern void iq80321_map_io(void); extern void iop321_init_irq(void); +extern void iop321_init_time(void); #endif #ifdef CONFIG_ARCH_IQ80310 @@ -67,6 +68,7 @@ FIXUP(fixup_iop321) MAPIO(iq80321_map_io) INITIRQ(iop321_init_irq) + INITTIME(iop321_init_time) MACHINE_END #else diff -Nru a/arch/arm/mach-iop3xx/iop321-time.c b/arch/arm/mach-iop3xx/iop321-time.c --- a/arch/arm/mach-iop3xx/iop321-time.c 2004-06-28 18:21:58 -07:00 +++ b/arch/arm/mach-iop3xx/iop321-time.c 2004-06-28 18:21:58 -07:00 @@ -23,7 +23,9 @@ #include #include #include + #include +#include static unsigned long iop321_gettimeoffset(void) { @@ -61,27 +63,26 @@ asm volatile("mcr p6, 0, %0, c6, c1, 0" : : "r" (tisr)); - do_timer(regs); + timer_tick(regs); return IRQ_HANDLED; } -extern unsigned long (*gettimeoffset)(void); - -static struct irqaction timer_irq = { - .name = "timer", +static struct irqaction iop321_timer_irq = { + .name = "IOP321 Timer Tick", .handler = iop321_timer_interrupt, + .flags = SA_INTERRUPT }; extern int setup_arm_irq(int, struct irqaction*); -void __init time_init(void) +void __init iop321_init_time(void) { u32 timer_ctl; u32 latch = LATCH; gettimeoffset = iop321_gettimeoffset; - setup_irq(IRQ_IOP321_TIMER0, &timer_irq); + setup_irq(IRQ_IOP321_TIMER0, &iop321_timer_irq); timer_ctl = IOP321_TMR_EN | IOP321_TMR_PRIVILEGED | IOP321_TMR_RELOAD | IOP321_TMR_RATIO_1_1; diff -Nru a/arch/arm/mach-ixp4xx/common.c b/arch/arm/mach-ixp4xx/common.c --- a/arch/arm/mach-ixp4xx/common.c 2004-06-28 18:21:56 -07:00 +++ b/arch/arm/mach-ixp4xx/common.c 2004-06-28 18:21:56 -07:00 @@ -36,6 +36,7 @@ #include #include +#include /************************************************************************* @@ -227,24 +228,22 @@ * Catch up with the real idea of time */ do { - do_timer(regs); + timer_tick(regs); last_jiffy_time += LATCH; } while((*IXP4XX_OSTS - last_jiffy_time) > LATCH); return IRQ_HANDLED; } -extern unsigned long (*gettimeoffset)(void); - -static struct irqaction timer_irq = { - .name = "IXP4xx Timer Tick", - .flags = SA_INTERRUPT +static struct irqaction ixp4xx_timer_irq = { + .name = "IXP4xx Timer Tick", + .flags = SA_INTERRUPT, + .handler = ixp4xx_timer_interrupt }; -void __init time_init(void) +void __init ixp4xx_init_time(void) { gettimeoffset = ixp4xx_gettimeoffset; - timer_irq.handler = ixp4xx_timer_interrupt; /* Clear Pending Interrupt by writing '1' to it */ *IXP4XX_OSST = IXP4XX_OSST_TIMER_1_PEND; @@ -257,7 +256,7 @@ last_jiffy_time = 0; /* Connect the interrupt handler and enable the interrupt */ - setup_irq(IRQ_IXP4XX_TIMER1, &timer_irq); + setup_irq(IRQ_IXP4XX_TIMER1, &ixp4xx_timer_irq); } diff -Nru a/arch/arm/mach-ixp4xx/coyote-setup.c b/arch/arm/mach-ixp4xx/coyote-setup.c --- a/arch/arm/mach-ixp4xx/coyote-setup.c 2004-06-28 18:21:54 -07:00 +++ b/arch/arm/mach-ixp4xx/coyote-setup.c 2004-06-28 18:21:54 -07:00 @@ -84,6 +84,7 @@ IXP4XX_PERIPHERAL_BASE_VIRT) MAPIO(coyote_map_io) INITIRQ(ixp4xx_init_irq) + INITTIME(ixp4xx_init_time) BOOT_PARAMS(0x0100) INIT_MACHINE(coyote_init) MACHINE_END 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 2004-06-28 18:21:56 -07:00 +++ b/arch/arm/mach-ixp4xx/ixdp425-setup.c 2004-06-28 18:21:56 -07:00 @@ -113,6 +113,7 @@ IXP4XX_PERIPHERAL_BASE_VIRT) MAPIO(ixdp425_map_io) INITIRQ(ixp4xx_init_irq) + INITTIME(ixp4xx_init_time) BOOT_PARAMS(0x0100) INIT_MACHINE(ixdp425_init) MACHINE_END @@ -123,6 +124,7 @@ IXP4XX_PERIPHERAL_BASE_VIRT) MAPIO(ixdp425_map_io) INITIRQ(ixp4xx_init_irq) + INITTIME(ixp4xx_init_time) BOOT_PARAMS(0x0100) INIT_MACHINE(ixdp425_init) MACHINE_END @@ -140,6 +142,7 @@ IXP4XX_PERIPHERAL_BASE_VIRT) MAPIO(ixdp425_map_io) INITIRQ(ixp4xx_init_irq) + INITTIME(ixp4xx_init_time) BOOT_PARAMS(0x0100) INIT_MACHINE(ixdp425_init) MACHINE_END diff -Nru a/arch/arm/mach-ixp4xx/prpmc1100-setup.c b/arch/arm/mach-ixp4xx/prpmc1100-setup.c --- a/arch/arm/mach-ixp4xx/prpmc1100-setup.c 2004-06-28 18:21:54 -07:00 +++ b/arch/arm/mach-ixp4xx/prpmc1100-setup.c 2004-06-28 18:21:54 -07:00 @@ -84,6 +84,7 @@ IXP4XX_PERIPHERAL_BASE_VIRT) MAPIO(prpmc1100_map_io) INITIRQ(ixp4xx_init_irq) + INITTIME(ixp4xx_init_time) BOOT_PARAMS(0x0100) INIT_MACHINE(prpmc1100_init) MACHINE_END diff -Nru a/arch/arm/mach-lh7a40x/Kconfig b/arch/arm/mach-lh7a40x/Kconfig --- a/arch/arm/mach-lh7a40x/Kconfig 2004-06-28 18:21:57 -07:00 +++ b/arch/arm/mach-lh7a40x/Kconfig 2004-06-28 18:21:57 -07:00 @@ -34,6 +34,37 @@ config ARCH_LH7A404 bool +config LH7A40X_CONTIGMEM + bool "Disable NUMA Support" + depends on ARCH_LH7A40X + help + Say Y here if your bootloader sets the SROMLL bit(s) in + the SDRAM controller, organizing memory as a contiguous + array. This option will disable CONFIG_DISCONTIGMEM and + force the kernel to manage all memory in one node. + + Setting this option incorrectly may prevent the kernel from + booting. It is OK to leave it N. + + For more information, consult + . + +config LH7A40X_ONE_BANK_PER_NODE + bool "Optimize NUMA Node Tables for Size" + depends on ARCH_LH7A40X && !LH7A40X_CONTIGMEM + help + Say Y here to produce compact memory node tables. By + default pairs of adjacent physical RAM banks are managed + together in a single node, incurring some wasted overhead + in the node tables, however also maintaining compatibility + with systems where physical memory is truly contiguous. + + Setting this option incorrectly may prevent the kernel from + booting. It is OK to leave it N. + + For more information, consult + . + endmenu endif diff -Nru a/arch/arm/mach-lh7a40x/Makefile b/arch/arm/mach-lh7a40x/Makefile --- a/arch/arm/mach-lh7a40x/Makefile 2004-06-28 18:21:57 -07:00 +++ b/arch/arm/mach-lh7a40x/Makefile 2004-06-28 18:21:57 -07:00 @@ -4,7 +4,7 @@ # Object file lists. -obj-y := fiq.o +obj-y := fiq.o time.o # generic.o obj-$(CONFIG_MACH_KEV7A400) += arch-kev7a400.o irq-lh7a400.o obj-$(CONFIG_MACH_LPD7A400) += arch-lpd7a40x.o ide-lpd7a40x.o irq-lh7a400.o diff -Nru a/arch/arm/mach-lh7a40x/arch-kev7a400.c b/arch/arm/mach-lh7a40x/arch-kev7a400.c --- a/arch/arm/mach-lh7a40x/arch-kev7a400.c 2004-06-28 18:21:52 -07:00 +++ b/arch/arm/mach-lh7a40x/arch-kev7a400.c 2004-06-28 18:21:52 -07:00 @@ -25,6 +25,7 @@ /* This function calls the board specific IRQ initialization function. */ extern void lh7a400_init_irq (void); +extern void lh7a40x_init_time (void); static struct map_desc kev7a400_io_desc[] __initdata = { { IO_VIRT, IO_PHYS, IO_SIZE, MT_DEVICE }, @@ -108,4 +109,5 @@ BOOT_PARAMS (0xc0000100) MAPIO (kev7a400_map_io) INITIRQ (lh7a400_init_irq) + INITTIME (lh7a40x_init_time) MACHINE_END diff -Nru a/arch/arm/mach-lh7a40x/arch-lpd7a40x.c b/arch/arm/mach-lh7a40x/arch-lpd7a40x.c --- a/arch/arm/mach-lh7a40x/arch-lpd7a40x.c 2004-06-28 18:21:53 -07:00 +++ b/arch/arm/mach-lh7a40x/arch-lpd7a40x.c 2004-06-28 18:21:53 -07:00 @@ -280,6 +280,7 @@ #ifdef CONFIG_MACH_LPD7A404 extern void lh7a404_init_irq (void); +extern void lh7a40x_init_time (void); MACHINE_START (LPD7A404, "Logic Product Development LPD7A404-10") MAINTAINER ("Marc Singer") @@ -287,6 +288,7 @@ BOOT_PARAMS (0xc0000100) MAPIO (lpd7a400_map_io) INITIRQ (lh7a404_init_irq) + INITTIME (lh7a40x_init_time) INIT_MACHINE (lpd7a40x_init) MACHINE_END diff -Nru a/arch/arm/mach-lh7a40x/time.c b/arch/arm/mach-lh7a40x/time.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/arm/mach-lh7a40x/time.c 2004-06-28 18:21:56 -07:00 @@ -0,0 +1,67 @@ +/* + * arch/arm/mach-lh7a40x/time.c + * + * Copyright (C) 2004 Logic Product Development + * + * 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 + +#if HZ < 100 +# define TIMER_CONTROL TIMER_CONTROL1 +# define TIMER_LOAD TIMER_LOAD1 +# define TIMER_CONSTANT (508469/HZ) +# define TIMER_MODE (TIMER_C_ENABLE | TIMER_C_PERIODIC | TIMER_C_508KHZ) +# define TIMER_EOI TIMER_EOI1 +# define TIMER_IRQ IRQ_T1UI +#else +# define TIMER_CONTROL TIMER_CONTROL3 +# define TIMER_LOAD TIMER_LOAD3 +# define TIMER_CONSTANT (3686400/HZ) +# define TIMER_MODE (TIMER_C_ENABLE | TIMER_C_PERIODIC) +# define TIMER_EOI TIMER_EOI3 +# define TIMER_IRQ IRQ_T3UI +#endif + +static irqreturn_t +lh7a40x_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) +{ + TIMER_EOI = 0; + timer_tick(regs); + + return IRQ_HANDLED; +} + +static struct irqaction lh7a40x_timer_irq = { + .name = "LHA740x Timer Tick", + .flags = SA_INTERRUPT, + .handler = lh7a40x_timer_interrupt +}; + +void __init lh7a40x_init_time(void) +{ + /* Stop/disable all timers */ + TIMER_CONTROL1 = 0; + TIMER_CONTROL2 = 0; + TIMER_CONTROL3 = 0; + + setup_irq (TIMER_IRQ, &lh7a40x_timer_irq); + + TIMER_LOAD = TIMER_CONSTANT; + TIMER_CONTROL = TIMER_MODE; +} + diff -Nru a/arch/arm/mach-omap/Makefile b/arch/arm/mach-omap/Makefile --- a/arch/arm/mach-omap/Makefile 2004-06-28 18:21:54 -07:00 +++ b/arch/arm/mach-omap/Makefile 2004-06-28 18:21:54 -07:00 @@ -3,7 +3,7 @@ # # Common support -obj-y := common.o irq.o dma.o clocks.o mux.o bus.o gpio.o +obj-y := common.o irq.o dma.o clocks.o mux.o bus.o gpio.o time.o obj-m := obj-n := obj- := diff -Nru a/arch/arm/mach-omap/board-generic.c b/arch/arm/mach-omap/board-generic.c --- a/arch/arm/mach-omap/board-generic.c 2004-06-28 18:21:57 -07:00 +++ b/arch/arm/mach-omap/board-generic.c 2004-06-28 18:21:57 -07:00 @@ -65,6 +65,11 @@ omap_map_io(); } +static void __init omap_generic_init_time(void) +{ + omap_init_time(); +} + MACHINE_START(OMAP_GENERIC, "Generic OMAP-1510/1610/1710") MAINTAINER("Tony Lindgren ") BOOT_MEM(0x10000000, 0xfff00000, 0xfef00000) @@ -72,4 +77,6 @@ MAPIO(omap_generic_map_io) INITIRQ(omap_generic_init_irq) INIT_MACHINE(omap_generic_init) + INITTIME(omap_generic_init_time) MACHINE_END + 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 2004-06-28 18:21:52 -07:00 +++ b/arch/arm/mach-omap/board-innovator.c 2004-06-28 18:21:52 -07:00 @@ -156,5 +156,6 @@ BOOT_PARAMS(0x10000100) MAPIO(innovator_map_io) INITIRQ(innovator_init_irq) + INITTIME(omap_init_time) INIT_MACHINE(innovator_init) MACHINE_END 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 2004-06-28 18:21:58 -07:00 +++ b/arch/arm/mach-omap/board-osk.c 2004-06-28 18:21:58 -07:00 @@ -94,5 +94,6 @@ BOOT_PARAMS(0x10000100) MAPIO(osk_map_io) INITIRQ(osk_init_irq) + INITTIME(omap_init_time) INIT_MACHINE(osk_init) MACHINE_END 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 2004-06-28 18:21:58 -07:00 +++ b/arch/arm/mach-omap/board-perseus2.c 2004-06-28 18:21:58 -07:00 @@ -111,5 +111,6 @@ BOOT_PARAMS(0x10000100) MAPIO(omap_perseus2_map_io) INITIRQ(omap_perseus2_init_irq) + INITTIME(omap_init_time) INIT_MACHINE(omap_perseus2_init) MACHINE_END diff -Nru a/arch/arm/mach-omap/bus.c b/arch/arm/mach-omap/bus.c --- a/arch/arm/mach-omap/bus.c 2004-06-28 18:22:00 -07:00 +++ b/arch/arm/mach-omap/bus.c 2004-06-28 18:22:00 -07:00 @@ -81,40 +81,6 @@ }, }; -#ifdef CONFIG_ARCH_OMAP1510 -/* - * NOTE: This code _should_ go somewhere else. But let's wait for the - * dma-mapping code to settle down first. - */ - -/* - * Test for Local Bus device in order to do address translation between - * dma_handle and Local Bus address. - */ -inline int dmadev_uses_omap_lbus(struct device * dev) -{ - if (dev == NULL || !cpu_is_omap1510()) - return 0; - return dev->bus == &omap_bus_types[OMAP_BUS_LBUS] ? 1 : 0; -} - -/* - * Translate bus address to Local Bus address for dma-mapping - */ -inline int dmadev_to_lbus(dma_addr_t addr) -{ - return bus_to_lbus(addr); -} - -/* - * Translate Local Bus address to bus address for dma-mapping - */ -inline int lbus_to_dmadev(dma_addr_t addr) -{ - return lbus_to_bus(addr); -} -#endif - static int omap_bus_match(struct device *dev, struct device_driver *drv) { struct omap_dev *omapdev = OMAP_DEV(dev); @@ -278,8 +244,3 @@ EXPORT_SYMBOL(omap_device_register); EXPORT_SYMBOL(omap_device_unregister); -#ifdef CONFIG_ARCH_OMAP1510 -EXPORT_SYMBOL(dmadev_uses_omap_lbus); -EXPORT_SYMBOL(dmadev_to_lbus); -EXPORT_SYMBOL(lbus_to_dmadev); -#endif diff -Nru a/arch/arm/mach-omap/common.h b/arch/arm/mach-omap/common.h --- a/arch/arm/mach-omap/common.h 2004-06-28 18:21:56 -07:00 +++ b/arch/arm/mach-omap/common.h 2004-06-28 18:21:56 -07:00 @@ -28,6 +28,7 @@ #define __ARCH_ARM_MACH_OMAP_COMMON_H extern void omap_map_io(void); +extern void omap_init_time(void); #endif /* __ARCH_ARM_MACH_OMAP_COMMON_H */ diff -Nru a/arch/arm/mach-omap/time.c b/arch/arm/mach-omap/time.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/arm/mach-omap/time.c 2004-06-28 18:21:57 -07:00 @@ -0,0 +1,217 @@ +/* + * arch/arm/mach-omap/time.c + * + * OMAP Timer Tick + * + * Copyright (C) 2000 RidgeRun, Inc. + * Author: Greg Lonnon + * + * 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. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN + * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#ifndef __instrument +#define __instrument +#define __noinstrument __attribute__ ((no_instrument_function)) +#endif + +typedef struct { + u32 cntl; /* CNTL_TIMER, R/W */ + u32 load_tim; /* LOAD_TIM, W */ + u32 read_tim; /* READ_TIM, R */ +} mputimer_regs_t; + +#define mputimer_base(n) \ + ((volatile mputimer_regs_t*)IO_ADDRESS(OMAP_MPUTIMER_BASE + \ + (n)*OMAP_MPUTIMER_OFFSET)) + +static inline unsigned long timer32k_read(int reg) { + unsigned long val; + val = omap_readw(reg + OMAP_32kHz_TIMER_BASE); + return val; +} +static inline void timer32k_write(int reg,int val) { + omap_writew(val, reg + OMAP_32kHz_TIMER_BASE); +} + +/* + * How long is the timer interval? 100 HZ, right... + * IRQ rate = (TVR + 1) / 32768 seconds + * TVR = 32768 * IRQ_RATE -1 + * IRQ_RATE = 1/100 + * TVR = 326 + */ +#define TIMER32k_PERIOD 326 +//#define TIMER32k_PERIOD 0x7ff + +static inline void start_timer32k(void) { + timer32k_write(TIMER32k_CR, + TIMER32k_TSS | TIMER32k_TRB | + TIMER32k_INT | TIMER32k_ARL); +} + +#ifdef CONFIG_MACH_OMAP_PERSEUS2 +/* + * After programming PTV with 0 and setting the MPUTIM_CLOCK_ENABLE + * (external clock enable) bit, the timer count rate is 6.5 MHz (13 + * MHZ input/2). !! The divider by 2 is undocumented !! + */ +#define MPUTICKS_PER_SEC (13000000/2) +#else +/* + * After programming PTV with 0, the timer count rate is 6 MHz. + * WARNING! this must be an even number, or machinecycles_to_usecs + * below will break. + */ +#define MPUTICKS_PER_SEC (12000000/2) +#endif + +static int mputimer_started[3] = {0,0,0}; + +static inline void __noinstrument start_mputimer(int n, + unsigned long load_val) +{ + volatile mputimer_regs_t* timer = mputimer_base(n); + + mputimer_started[n] = 0; + timer->cntl = MPUTIM_CLOCK_ENABLE; + udelay(1); + + timer->load_tim = load_val; + udelay(1); + timer->cntl = (MPUTIM_CLOCK_ENABLE | MPUTIM_AR | MPUTIM_ST); + mputimer_started[n] = 1; +} + +static inline unsigned long __noinstrument +read_mputimer(int n) +{ + volatile mputimer_regs_t* timer = mputimer_base(n); + return (mputimer_started[n] ? timer->read_tim : 0); +} + +void __noinstrument start_mputimer1(unsigned long load_val) +{ + start_mputimer(0, load_val); +} +void __noinstrument start_mputimer2(unsigned long load_val) +{ + start_mputimer(1, load_val); +} +void __noinstrument start_mputimer3(unsigned long load_val) +{ + start_mputimer(2, load_val); +} + +unsigned long __noinstrument read_mputimer1(void) +{ + return read_mputimer(0); +} +unsigned long __noinstrument read_mputimer2(void) +{ + return read_mputimer(1); +} +unsigned long __noinstrument read_mputimer3(void) +{ + return read_mputimer(2); +} + +unsigned long __noinstrument do_getmachinecycles(void) +{ + return 0 - read_mputimer(0); +} + +unsigned long __noinstrument machinecycles_to_usecs(unsigned long mputicks) +{ + /* Round up to nearest usec */ + return ((mputicks * 1000) / (MPUTICKS_PER_SEC / 2 / 1000) + 1) >> 1; +} + +/* + * This marks the time of the last system timer interrupt + * that was *processed by the ISR* (timer 2). + */ +static unsigned long systimer_mark; + +static unsigned long omap_gettimeoffset(void) +{ + /* Return elapsed usecs since last system timer ISR */ + return machinecycles_to_usecs(do_getmachinecycles() - systimer_mark); +} + +static irqreturn_t +omap_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) +{ + unsigned long now, ilatency; + + /* + * Mark the time at which the timer interrupt ocurred using + * timer1. We need to remove interrupt latency, which we can + * retrieve from the current system timer2 counter. Both the + * offset timer1 and the system timer2 are counting at 6MHz, + * so we're ok. + */ + now = 0 - read_mputimer1(); + ilatency = MPUTICKS_PER_SEC / 100 - read_mputimer2(); + systimer_mark = now - ilatency; + + timer_tick(regs); + + return IRQ_HANDLED; +} + +static struct irqaction omap_timer_irq = { + .name = "OMAP Timer Tick", + .flags = SA_INTERRUPT, + .handler = omap_timer_interrupt +}; + +void __init omap_init_time(void) +{ + /* Since we don't call request_irq, we must init the structure */ + gettimeoffset = omap_gettimeoffset; + +#ifdef OMAP1510_USE_32KHZ_TIMER + timer32k_write(TIMER32k_CR, 0x0); + timer32k_write(TIMER32k_TVR,TIMER32k_PERIOD); + setup_irq(INT_OS_32kHz_TIMER, &omap_timer_irq); + start_timer32k(); +#else + setup_irq(INT_TIMER2, &omap_timer_irq); + start_mputimer2(MPUTICKS_PER_SEC / 100 - 1); +#endif +} + diff -Nru a/arch/arm/mach-pxa/Makefile b/arch/arm/mach-pxa/Makefile --- a/arch/arm/mach-pxa/Makefile 2004-06-28 18:21:56 -07:00 +++ b/arch/arm/mach-pxa/Makefile 2004-06-28 18:21:56 -07:00 @@ -3,7 +3,7 @@ # # Common support (must be linked before board specific support) -obj-y += generic.o irq.o dma.o +obj-y += generic.o irq.o dma.o time.o obj-$(CONFIG_PXA25x) += pxa25x.o obj-$(CONFIG_PXA27x) += pxa27x.o diff -Nru a/arch/arm/mach-pxa/generic.c b/arch/arm/mach-pxa/generic.c --- a/arch/arm/mach-pxa/generic.c 2004-06-28 18:21:55 -07:00 +++ b/arch/arm/mach-pxa/generic.c 2004-06-28 18:21:55 -07:00 @@ -59,6 +59,24 @@ EXPORT_SYMBOL(pxa_gpio_mode); /* + * Routine to safely enable or disable a clock in the CKEN + */ +void pxa_set_cken(int clock, int enable) +{ + unsigned long flags; + local_irq_save(flags); + + if (enable) + CKEN |= clock; + else + CKEN &= ~clock; + + local_irq_restore(flags); +} + +EXPORT_SYMBOL(pxa_set_cken); + +/* * Intel PXA2xx internal register mapping. * * Note 1: not all PXA2xx variants implement all those addresses. @@ -180,10 +198,26 @@ .resource = pxafb_resources, }; +static struct platform_device ffuart_device = { + .name = "pxa2xx-uart", + .id = 0, +}; +static struct platform_device btuart_device = { + .name = "pxa2xx-uart", + .id = 1, +}; +static struct platform_device stuart_device = { + .name = "pxa2xx-uart", + .id = 2, +}; + static struct platform_device *devices[] __initdata = { &pxamci_device, &udc_device, &pxafb_device, + &ffuart_device, + &btuart_device, + &stuart_device, }; static int __init pxa_init(void) diff -Nru a/arch/arm/mach-pxa/generic.h b/arch/arm/mach-pxa/generic.h --- a/arch/arm/mach-pxa/generic.h 2004-06-28 18:21:58 -07:00 +++ b/arch/arm/mach-pxa/generic.h 2004-06-28 18:21:58 -07:00 @@ -11,6 +11,7 @@ extern void __init pxa_map_io(void); extern void __init pxa_init_irq(void); +extern void __init pxa_init_time(void); #define SET_BANK(__nr,__start,__size) \ mi->bank[__nr].start = (__start), \ diff -Nru a/arch/arm/mach-pxa/idp.c b/arch/arm/mach-pxa/idp.c --- a/arch/arm/mach-pxa/idp.c 2004-06-28 18:21:52 -07:00 +++ b/arch/arm/mach-pxa/idp.c 2004-06-28 18:21:52 -07:00 @@ -118,5 +118,6 @@ BOOT_MEM(0xa0000000, 0x40000000, io_p2v(0x40000000)) MAPIO(idp_map_io) INITIRQ(idp_init_irq) + INITTIME(pxa_init_time) INIT_MACHINE(idp_init) MACHINE_END diff -Nru a/arch/arm/mach-pxa/lubbock.c b/arch/arm/mach-pxa/lubbock.c --- a/arch/arm/mach-pxa/lubbock.c 2004-06-28 18:21:55 -07:00 +++ b/arch/arm/mach-pxa/lubbock.c 2004-06-28 18:21:55 -07:00 @@ -220,5 +220,6 @@ BOOT_MEM(0xa0000000, 0x40000000, io_p2v(0x40000000)) MAPIO(lubbock_map_io) INITIRQ(lubbock_init_irq) + INITTIME(pxa_init_time) INIT_MACHINE(lubbock_init) MACHINE_END diff -Nru a/arch/arm/mach-pxa/mainstone.c b/arch/arm/mach-pxa/mainstone.c --- a/arch/arm/mach-pxa/mainstone.c 2004-06-28 18:22:00 -07:00 +++ b/arch/arm/mach-pxa/mainstone.c 2004-06-28 18:22:00 -07:00 @@ -18,6 +18,7 @@ #include #include #include +#include #include #include @@ -31,6 +32,7 @@ #include #include +#include #include "generic.h" @@ -116,9 +118,66 @@ .resource = smc91x_resources, }; + +static void mainstone_backlight_power(int on) +{ + if (on) { + pxa_gpio_mode(GPIO16_PWM0_MD); + pxa_set_cken(CKEN0_PWM0, 1); + PWM_CTRL0 = 0; + PWM_PWDUTY0 = 0x3ff; + PWM_PERVAL0 = 0x3ff; + } else { + PWM_CTRL0 = 0; + PWM_PWDUTY0 = 0x0; + PWM_PERVAL0 = 0x3FF; + pxa_set_cken(CKEN0_PWM0, 0); + } +} + +static struct pxafb_mach_info toshiba_ltm04c380k __initdata = { + .pixclock = 50000, + .xres = 640, + .yres = 480, + .bpp = 16, + .hsync_len = 1, + .left_margin = 0x9f, + .right_margin = 1, + .vsync_len = 44, + .upper_margin = 0, + .lower_margin = 0, + .sync = FB_SYNC_HOR_HIGH_ACT|FB_SYNC_VERT_HIGH_ACT, + .lccr0 = LCCR0_Act, + .lccr3 = LCCR3_PCP, + .pxafb_backlight_power = mainstone_backlight_power, +}; + +static struct pxafb_mach_info toshiba_ltm035a776c __initdata = { + .pixclock = 110000, + .xres = 240, + .yres = 320, + .bpp = 16, + .hsync_len = 4, + .left_margin = 8, + .right_margin = 20, + .vsync_len = 3, + .upper_margin = 1, + .lower_margin = 10, + .sync = FB_SYNC_HOR_HIGH_ACT|FB_SYNC_VERT_HIGH_ACT, + .lccr0 = LCCR0_Act, + .lccr3 = LCCR3_PCP, + .pxafb_backlight_power = mainstone_backlight_power, +}; + static void __init mainstone_init(void) { platform_add_device(&smc91x_device); + + /* reading the BSR might be handy to select LCD type here */ + if (0) + set_pxa_fb_info(&toshiba_ltm04c380k); + else + set_pxa_fb_info(&toshiba_ltm035a776c); } @@ -137,5 +196,6 @@ BOOT_MEM(0xa0000000, 0x40000000, io_p2v(0x40000000)) MAPIO(mainstone_map_io) INITIRQ(mainstone_init_irq) + INITTIME(pxa_init_time) INIT_MACHINE(mainstone_init) MACHINE_END diff -Nru a/arch/arm/mach-pxa/time.c b/arch/arm/mach-pxa/time.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/arm/mach-pxa/time.c 2004-06-28 18:21:56 -07:00 @@ -0,0 +1,124 @@ +/* + * arch/arm/mach-pxa/time.c + * + * Author: Nicolas Pitre + * Created: Jun 15, 2001 + * Copyright: MontaVista Software Inc. + * + * 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 +#include +#include +#include +#include + + +static inline unsigned long pxa_get_rtc_time(void) +{ + return RCNR; +} + +static int pxa_set_rtc(void) +{ + unsigned long current_time = xtime.tv_sec; + + if (RTSR & RTSR_ALE) { + /* make sure not to forward the clock over an alarm */ + unsigned long alarm = RTAR; + if (current_time >= alarm && alarm >= RCNR) + return -ERESTARTSYS; + } + RCNR = current_time; + return 0; +} + +/* IRQs are disabled before entering here from do_gettimeofday() */ +static unsigned long pxa_gettimeoffset (void) +{ + long ticks_to_match, elapsed, usec; + + /* Get ticks before next timer match */ + ticks_to_match = OSMR0 - OSCR; + + /* We need elapsed ticks since last match */ + elapsed = LATCH - ticks_to_match; + + /* don't get fooled by the workaround in pxa_timer_interrupt() */ + if (elapsed <= 0) + return 0; + + /* Now convert them to usec */ + usec = (unsigned long)(elapsed * (tick_nsec / 1000))/LATCH; + + return usec; +} + +static irqreturn_t +pxa_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) +{ + int next_match; + + /* Loop until we get ahead of the free running timer. + * This ensures an exact clock tick count and time accuracy. + * IRQs are disabled inside the loop to ensure coherence between + * lost_ticks (updated in do_timer()) and the match reg value, so we + * can use do_gettimeofday() from interrupt handlers. + * + * HACK ALERT: it seems that the PXA timer regs aren't updated right + * away in all cases when a write occurs. We therefore compare with + * 8 instead of 0 in the while() condition below to avoid missing a + * match if OSCR has already reached the next OSMR value. + * Experience has shown that up to 6 ticks are needed to work around + * this problem, but let's use 8 to be conservative. Note that this + * affect things only when the timer IRQ has been delayed by nearly + * exactly one tick period which should be a pretty rare event. + */ + do { + timer_tick(regs); + OSSR = OSSR_M0; /* Clear match on timer 0 */ + next_match = (OSMR0 += LATCH); + } while( (signed long)(next_match - OSCR) <= 8 ); + + return IRQ_HANDLED; +} + +static struct irqaction pxa_timer_irq = { + .name = "PXA Timer Tick", + .flags = SA_INTERRUPT, + .handler = pxa_timer_interrupt +}; + +void __init pxa_init_time(void) +{ + struct timespec tv; + + gettimeoffset = pxa_gettimeoffset; + set_rtc = pxa_set_rtc; + + tv.tv_nsec = 0; + tv.tv_sec = pxa_get_rtc_time(); + do_settimeofday(&tv); + + OSMR0 = 0; /* set initial match at 0 */ + OSSR = 0xf; /* clear status on all timers */ + setup_irq(IRQ_OST0, &pxa_timer_irq); + OIER |= OIER_E0; /* enable match on timer 0 to cause interrupts */ + OSCR = 0; /* initialize free-running timer, force first match */ +} + diff -Nru a/arch/arm/mach-rpc/riscpc.c b/arch/arm/mach-rpc/riscpc.c --- a/arch/arm/mach-rpc/riscpc.c 2004-06-28 18:21:57 -07:00 +++ b/arch/arm/mach-rpc/riscpc.c 2004-06-28 18:21:57 -07:00 @@ -14,6 +14,8 @@ #include #include #include +#include +#include #include #include @@ -25,6 +27,7 @@ #include #include +#include extern void rpc_init_irq(void); @@ -82,6 +85,31 @@ elf_hwcap &= ~HWCAP_HALF; } +static irqreturn_t +rpc_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) +{ + timer_tick(regs); + + return IRQ_HANDLED; +} + +static struct irqaction rpc_timer_irq = { + .name = "RiscPC Timer Tick", + .flags = SA_INTERRUPT, + .handler = rpc_timer_interrupt +}; + +/* + * Set up timer interrupt. + */ +void __init rpc_init_time(void) +{ + extern void ioctime_init(void); + ioctime_init(); + + setup_irq(IRQ_TIMER, &rpc_timer_irq); +} + MACHINE_START(RISCPC, "Acorn-RiscPC") MAINTAINER("Russell King") BOOT_MEM(0x10000000, 0x03000000, 0xe0000000) @@ -90,4 +118,5 @@ DISABLE_PARPORT(1) MAPIO(rpc_map_io) INITIRQ(rpc_init_irq) + INITTIME(rpc_init_time) MACHINE_END diff -Nru a/arch/arm/mach-s3c2410/Makefile b/arch/arm/mach-s3c2410/Makefile --- a/arch/arm/mach-s3c2410/Makefile 2004-06-28 18:21:54 -07:00 +++ b/arch/arm/mach-s3c2410/Makefile 2004-06-28 18:21:54 -07:00 @@ -4,7 +4,7 @@ # Object file lists. -obj-y := s3c2410.o irq.o +obj-y := s3c2410.o irq.o time.o obj-m := obj-n := obj- := 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 2004-06-28 18:21:56 -07:00 +++ b/arch/arm/mach-s3c2410/mach-bast.c 2004-06-28 18:21:56 -07:00 @@ -185,10 +185,16 @@ } +void __init bast_init_time(void) +{ + s3c2410_init_time(); +} + MACHINE_START(BAST, "Simtec-BAST") MAINTAINER("Ben Dooks ") BOOT_MEM(S3C2410_SDRAM_PA, S3C2410_PA_UART, S3C2410_VA_UART) BOOT_PARAMS(S3C2410_SDRAM_PA + 0x100) MAPIO(bast_map_io) INITIRQ(bast_init_irq) + INITTIME(bast_init_time) MACHINE_END 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 2004-06-28 18:21:58 -07:00 +++ b/arch/arm/mach-s3c2410/mach-h1940.c 2004-06-28 18:21:58 -07:00 @@ -91,10 +91,16 @@ } +void __init ipaq_init_time(void) +{ + s3c2410_init_time(); +} + MACHINE_START(H1940, "IPAQ-H1940") MAINTAINER("Ben Dooks ") BOOT_MEM(S3C2410_SDRAM_PA, S3C2410_PA_UART, S3C2410_VA_UART) BOOT_PARAMS(S3C2410_SDRAM_PA + 0x100) MAPIO(ipaq_map_io) INITIRQ(ipaq_init_irq) + INITTIME(ipaq_init_time) MACHINE_END 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 2004-06-28 18:21:56 -07:00 +++ b/arch/arm/mach-s3c2410/mach-smdk2410.c 2004-06-28 18:21:56 -07:00 @@ -99,6 +99,11 @@ s3c2410_init_irq(); } +void __init smdk2410_init_time(void) +{ + s3c2401_init_time(); +} + MACHINE_START(SMDK2410, "SMDK2410") /* @TODO: request a new identifier and switch * to SMDK2410 */ MAINTAINER("Jonas Dietsche") @@ -106,4 +111,5 @@ BOOT_PARAMS(S3C2410_SDRAM_PA + 0x100) MAPIO(smdk2410_map_io) INITIRQ(smdk2410_init_irq) + INITTIME(smdk2410_init_time) MACHINE_END 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 2004-06-28 18:21:58 -07:00 +++ b/arch/arm/mach-s3c2410/mach-vr1000.c 2004-06-28 18:21:58 -07:00 @@ -155,10 +155,16 @@ } +void __init vr1000_init_time(void) +{ + s3c2401_init_time(); +} + MACHINE_START(VR1000, "Simtec-VR1000") MAINTAINER("Ben Dooks ") BOOT_MEM(S3C2410_SDRAM_PA, S3C2410_PA_UART, S3C2410_VA_UART) BOOT_PARAMS(S3C2410_SDRAM_PA + 0x100) MAPIO(vr1000_map_io) INITIRQ(vr1000_init_irq) + INITTIME(vr1000_init_time) MACHINE_END diff -Nru a/arch/arm/mach-s3c2410/s3c2410.h b/arch/arm/mach-s3c2410/s3c2410.h --- a/arch/arm/mach-s3c2410/s3c2410.h 2004-06-28 18:21:56 -07:00 +++ b/arch/arm/mach-s3c2410/s3c2410.h 2004-06-28 18:21:56 -07:00 @@ -4,3 +4,5 @@ extern void s3c2410_init_irq(void); +extern s3c2410_init_time(void); + diff -Nru a/arch/arm/mach-s3c2410/time.c b/arch/arm/mach-s3c2410/time.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/arm/mach-s3c2410/time.c 2004-06-28 18:21:55 -07:00 @@ -0,0 +1,176 @@ +/* linux/include/asm-arm/arch-s3c2410/time.h + * + * Copyright (C) 2003 Simtec Electronics + * Ben Dooks, + * + * 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. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +static unsigned long timer_startval; +static unsigned long timer_ticks_usec; + +#ifdef CONFIG_S3C2410_RTC +extern void s3c2410_rtc_check(); +#endif + +/* with an 12MHz clock, we get 12 ticks per-usec + */ + + +/*** + * Returns microsecond since last clock interrupt. Note that interrupts + * will have been disabled by do_gettimeoffset() + * IRQs are disabled before entering here from do_gettimeofday() + */ +static unsigned long s3c2410_gettimeoffset (void) +{ + unsigned long tdone; + unsigned long usec; + + /* work out how many ticks have gone since last timer interrupt */ + + tdone = timer_startval - __raw_readl(S3C2410_TCNTO(4)); + + /* currently, tcnt is in 12MHz units, but this may change + * for non-bast machines... + */ + + usec = tdone / timer_ticks_usec; + + return usec; +} + + +/* + * IRQ handler for the timer + */ +static irqreturn_t +s3c2410_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) +{ + timer_tick(regs); + + return IRQ_HANDLED; +} + +static struct irqaction s3c2410_timer_irq = { + .name = "S32410 Timer Tick", + .flags = SA_INTERRUPT, + .handler = s3c2410_timer_interrupt +}; + +/* + * Set up timer interrupt, and return the current time in seconds. + * + * Currently we only use timer4, as it is the only timer which has no + * other function that can be exploited externally + */ +void __init s3c2410_init_time (void) +{ + unsigned long tcon; + unsigned long tcnt; + unsigned long tcfg1; + unsigned long tcfg0; + + gettimeoffset = s3c2410_gettimeoffset; + + tcnt = 0xffff; /* default value for tcnt */ + + /* read the current timer configuration bits */ + + tcon = __raw_readl(S3C2410_TCON); + tcfg1 = __raw_readl(S3C2410_TCFG1); + tcfg0 = __raw_readl(S3C2410_TCFG0); + + /* configure the system for whichever machine is in use */ + + if (machine_is_bast() || machine_is_vr1000()) { + timer_ticks_usec = 12; /* timer is at 12MHz */ + tcnt = (timer_ticks_usec * (1000*1000)) / HZ; + } + + /* for the h1940, we use the pclk from the core to generate + * the timer values. since 67.5MHz is not a value we can directly + * generate the timer value from, we need to pre-scale and + * divied before using it. + * + * overall divsior to get 200Hz is 337500 + * we can fit tcnt if we pre-scale by 6, producing a tick rate + * of 11.25MHz, and a tcnt of 56250. + */ + + if (machine_is_h1940() || machine_is_smdk2410() ) { + timer_ticks_usec = s3c2410_pclk / (1000*1000); + timer_ticks_usec /= 6; + + tcfg1 &= ~S3C2410_TCFG1_MUX4_MASK; + tcfg1 |= S3C2410_TCFG1_MUX4_DIV2; + + tcfg0 &= ~S3C2410_TCFG_PRESCALER1_MASK; + tcfg0 |= ((6 - 1) / 2) << S3C2410_TCFG_PRESCALER1_SHIFT; + + tcnt = (s3c2410_pclk / 6) / HZ; + } + + + printk("setup_timer tcon=%08lx, tcnt %04lx, tcfg %08lx,%08lx\n", + tcon, tcnt, tcfg0, tcfg1); + + /* check to see if timer is within 16bit range... */ + if (tcnt > 0xffff) { + panic("setup_timer: HZ is too small, cannot configure timer!"); + return; + } + + __raw_writel(tcfg1, S3C2410_TCFG1); + __raw_writel(tcfg0, S3C2410_TCFG0); + + timer_startval = tcnt; + __raw_writel(tcnt, S3C2410_TCNTB(4)); + + /* ensure timer is stopped... */ + + tcon &= ~(7<<20); + tcon |= S3C2410_TCON_T4RELOAD; + tcon |= S3C2410_TCON_T4MANUALUPD; + + __raw_writel(tcon, S3C2410_TCON); + __raw_writel(tcnt, S3C2410_TCNTB(4)); + __raw_writel(tcnt, S3C2410_TCMPB(4)); + + setup_irq(IRQ_TIMER4, &s3c2410_timer_irq); + + /* start the timer running */ + tcon |= S3C2410_TCON_T4START; + tcon &= ~S3C2410_TCON_T4MANUALUPD; + __raw_writel(tcon, S3C2410_TCON); +} + + + diff -Nru a/arch/arm/mach-sa1100/Makefile b/arch/arm/mach-sa1100/Makefile --- a/arch/arm/mach-sa1100/Makefile 2004-06-28 18:22:00 -07:00 +++ b/arch/arm/mach-sa1100/Makefile 2004-06-28 18:22:00 -07:00 @@ -3,7 +3,7 @@ # # Common support -obj-y := generic.o irq.o dma.o +obj-y := generic.o irq.o dma.o time.o obj-m := obj-n := obj- := diff -Nru a/arch/arm/mach-sa1100/adsbitsy.c b/arch/arm/mach-sa1100/adsbitsy.c --- a/arch/arm/mach-sa1100/adsbitsy.c 2004-06-28 18:21:52 -07:00 +++ b/arch/arm/mach-sa1100/adsbitsy.c 2004-06-28 18:21:52 -07:00 @@ -147,4 +147,5 @@ BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000) MAPIO(adsbitsy_map_io) INITIRQ(adsbitsy_init_irq) + INITTIME(sa1100_init_time) MACHINE_END diff -Nru a/arch/arm/mach-sa1100/assabet.c b/arch/arm/mach-sa1100/assabet.c --- a/arch/arm/mach-sa1100/assabet.c 2004-06-28 18:21:52 -07:00 +++ b/arch/arm/mach-sa1100/assabet.c 2004-06-28 18:21:52 -07:00 @@ -324,5 +324,6 @@ FIXUP(fixup_assabet) MAPIO(assabet_map_io) INITIRQ(sa1100_init_irq) + INITTIME(sa1100_init_time) INIT_MACHINE(assabet_init) MACHINE_END diff -Nru a/arch/arm/mach-sa1100/badge4.c b/arch/arm/mach-sa1100/badge4.c --- a/arch/arm/mach-sa1100/badge4.c 2004-06-28 18:21:53 -07:00 +++ b/arch/arm/mach-sa1100/badge4.c 2004-06-28 18:21:54 -07:00 @@ -245,4 +245,5 @@ BOOT_PARAMS(0xc0000100) MAPIO(badge4_map_io) INITIRQ(sa1100_init_irq) + INITTIME(sa1100_init_time) MACHINE_END diff -Nru a/arch/arm/mach-sa1100/brutus.c b/arch/arm/mach-sa1100/brutus.c --- a/arch/arm/mach-sa1100/brutus.c 2004-06-28 18:21:58 -07:00 +++ b/arch/arm/mach-sa1100/brutus.c 2004-06-28 18:21:58 -07:00 @@ -37,4 +37,5 @@ BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000) MAPIO(brutus_map_io) INITIRQ(sa1100_init_irq) + INITTIME(sa1100_init_time) MACHINE_END diff -Nru a/arch/arm/mach-sa1100/cerf.c b/arch/arm/mach-sa1100/cerf.c --- a/arch/arm/mach-sa1100/cerf.c 2004-06-28 18:21:56 -07:00 +++ b/arch/arm/mach-sa1100/cerf.c 2004-06-28 18:21:56 -07:00 @@ -92,4 +92,5 @@ BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000) MAPIO(cerf_map_io) INITIRQ(cerf_init_irq) + INITTIME(sa1100_init_time) MACHINE_END diff -Nru a/arch/arm/mach-sa1100/empeg.c b/arch/arm/mach-sa1100/empeg.c --- a/arch/arm/mach-sa1100/empeg.c 2004-06-28 18:21:57 -07:00 +++ b/arch/arm/mach-sa1100/empeg.c 2004-06-28 18:21:57 -07:00 @@ -35,4 +35,5 @@ BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000) MAPIO(empeg_map_io) INITIRQ(sa1100_init_irq) + INITTIME(sa1100_init_time) MACHINE_END diff -Nru a/arch/arm/mach-sa1100/flexanet.c b/arch/arm/mach-sa1100/flexanet.c --- a/arch/arm/mach-sa1100/flexanet.c 2004-06-28 18:22:00 -07:00 +++ b/arch/arm/mach-sa1100/flexanet.c 2004-06-28 18:22:00 -07:00 @@ -183,5 +183,6 @@ BOOT_PARAMS(0xc0000100) MAPIO(flexanet_map_io) INITIRQ(sa1100_init_irq) + INITTIME(sa1100_init_time) MACHINE_END diff -Nru a/arch/arm/mach-sa1100/freebird.c b/arch/arm/mach-sa1100/freebird.c --- a/arch/arm/mach-sa1100/freebird.c 2004-06-28 18:21:54 -07:00 +++ b/arch/arm/mach-sa1100/freebird.c 2004-06-28 18:21:54 -07:00 @@ -77,4 +77,5 @@ #endif MAPIO(freebird_map_io) INITIRQ(sa1100_init_irq) + INITTIME(sa1100_init_time) MACHINE_END diff -Nru a/arch/arm/mach-sa1100/generic.h b/arch/arm/mach-sa1100/generic.h --- a/arch/arm/mach-sa1100/generic.h 2004-06-28 18:21:57 -07:00 +++ b/arch/arm/mach-sa1100/generic.h 2004-06-28 18:21:57 -07:00 @@ -6,6 +6,7 @@ extern void __init sa1100_map_io(void); extern void __init sa1100_init_irq(void); +extern void __init sa1100_init_time(void); #define SET_BANK(__nr,__start,__size) \ mi->bank[__nr].start = (__start), \ diff -Nru a/arch/arm/mach-sa1100/graphicsclient.c b/arch/arm/mach-sa1100/graphicsclient.c --- a/arch/arm/mach-sa1100/graphicsclient.c 2004-06-28 18:21:59 -07:00 +++ b/arch/arm/mach-sa1100/graphicsclient.c 2004-06-28 18:21:59 -07:00 @@ -198,4 +198,5 @@ BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000) MAPIO(graphicsclient_map_io) INITIRQ(graphicsclient_init_irq) + INITTIME(sa1100_init_time) MACHINE_END diff -Nru a/arch/arm/mach-sa1100/graphicsmaster.c b/arch/arm/mach-sa1100/graphicsmaster.c --- a/arch/arm/mach-sa1100/graphicsmaster.c 2004-06-28 18:21:55 -07:00 +++ b/arch/arm/mach-sa1100/graphicsmaster.c 2004-06-28 18:21:55 -07:00 @@ -287,4 +287,5 @@ BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000) MAPIO(graphicsmaster_map_io) INITIRQ(graphicsmaster_init_irq) + INITTIME(sa1100_init_time) MACHINE_END diff -Nru a/arch/arm/mach-sa1100/h3600.c b/arch/arm/mach-sa1100/h3600.c --- a/arch/arm/mach-sa1100/h3600.c 2004-06-28 18:21:54 -07:00 +++ b/arch/arm/mach-sa1100/h3600.c 2004-06-28 18:21:54 -07:00 @@ -286,6 +286,7 @@ BOOT_PARAMS(0xc0000100) MAPIO(h3100_map_io) INITIRQ(sa1100_init_irq) + INITTIME(sa1100_init_time) MACHINE_END #endif /* CONFIG_SA1100_H3100 */ @@ -400,6 +401,7 @@ BOOT_PARAMS(0xc0000100) MAPIO(h3600_map_io) INITIRQ(sa1100_init_irq) + INITTIME(sa1100_init_time) MACHINE_END #endif /* CONFIG_SA1100_H3600 */ @@ -783,6 +785,7 @@ BOOT_PARAMS(0xc0000100) MAPIO(h3800_map_io) INITIRQ(h3800_init_irq) + INITTIME(sa1100_init_time) MACHINE_END #endif /* CONFIG_SA1100_H3800 */ diff -Nru a/arch/arm/mach-sa1100/hackkit.c b/arch/arm/mach-sa1100/hackkit.c --- a/arch/arm/mach-sa1100/hackkit.c 2004-06-28 18:22:00 -07:00 +++ b/arch/arm/mach-sa1100/hackkit.c 2004-06-28 18:22:00 -07:00 @@ -174,4 +174,5 @@ BOOT_PARAMS(0xc0000100) MAPIO(hackkit_map_io) INITIRQ(sa1100_init_irq) + INITTIME(sa1100_init_time) MACHINE_END diff -Nru a/arch/arm/mach-sa1100/huw_webpanel.c b/arch/arm/mach-sa1100/huw_webpanel.c --- a/arch/arm/mach-sa1100/huw_webpanel.c 2004-06-28 18:21:59 -07:00 +++ b/arch/arm/mach-sa1100/huw_webpanel.c 2004-06-28 18:21:59 -07:00 @@ -81,4 +81,5 @@ BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000) MAPIO(huw_webpanel_map_io) INITIRQ(sa1100_init_irq) + INITTIME(sa1100_init_time) MACHINE_END diff -Nru a/arch/arm/mach-sa1100/itsy.c b/arch/arm/mach-sa1100/itsy.c --- a/arch/arm/mach-sa1100/itsy.c 2004-06-28 18:21:58 -07:00 +++ b/arch/arm/mach-sa1100/itsy.c 2004-06-28 18:21:58 -07:00 @@ -37,4 +37,5 @@ BOOT_PARAMS(0xc0000100) MAPIO(itsy_map_io) INITIRQ(sa1100_init_irq) + INITTIME(sa1100_init_time) MACHINE_END diff -Nru a/arch/arm/mach-sa1100/jornada720.c b/arch/arm/mach-sa1100/jornada720.c --- a/arch/arm/mach-sa1100/jornada720.c 2004-06-28 18:22:00 -07:00 +++ b/arch/arm/mach-sa1100/jornada720.c 2004-06-28 18:22:00 -07:00 @@ -101,4 +101,5 @@ BOOT_PARAMS(0xc0000100) MAPIO(jornada720_map_io) INITIRQ(sa1100_init_irq) + INITTIME(sa1100_init_time) MACHINE_END diff -Nru a/arch/arm/mach-sa1100/lart.c b/arch/arm/mach-sa1100/lart.c --- a/arch/arm/mach-sa1100/lart.c 2004-06-28 18:21:59 -07:00 +++ b/arch/arm/mach-sa1100/lart.c 2004-06-28 18:21:59 -07:00 @@ -43,4 +43,5 @@ BOOT_PARAMS(0xc0000100) MAPIO(lart_map_io) INITIRQ(sa1100_init_irq) + INITTIME(sa1100_init_time) MACHINE_END diff -Nru a/arch/arm/mach-sa1100/nanoengine.c b/arch/arm/mach-sa1100/nanoengine.c --- a/arch/arm/mach-sa1100/nanoengine.c 2004-06-28 18:21:52 -07:00 +++ b/arch/arm/mach-sa1100/nanoengine.c 2004-06-28 18:21:52 -07:00 @@ -49,4 +49,5 @@ FIXUP(fixup_nanoengine) MAPIO(nanoengine_map_io) INITIRQ(sa1100_init_irq) + INITTIME(sa1100_init_time) MACHINE_END diff -Nru a/arch/arm/mach-sa1100/omnimeter.c b/arch/arm/mach-sa1100/omnimeter.c --- a/arch/arm/mach-sa1100/omnimeter.c 2004-06-28 18:21:52 -07:00 +++ b/arch/arm/mach-sa1100/omnimeter.c 2004-06-28 18:21:52 -07:00 @@ -59,4 +59,5 @@ BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000) MAPIO(omnimeter_map_io) INITIRQ(sa1100_init_irq) + INITTIME(sa1100_init_time) MACHINE_END diff -Nru a/arch/arm/mach-sa1100/pangolin.c b/arch/arm/mach-sa1100/pangolin.c --- a/arch/arm/mach-sa1100/pangolin.c 2004-06-28 18:21:59 -07:00 +++ b/arch/arm/mach-sa1100/pangolin.c 2004-06-28 18:21:59 -07:00 @@ -40,4 +40,5 @@ BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000) MAPIO(pangolin_map_io) INITIRQ(sa1100_init_irq) + INITTIME(sa1100_init_time) MACHINE_END diff -Nru a/arch/arm/mach-sa1100/pfs168.c b/arch/arm/mach-sa1100/pfs168.c --- a/arch/arm/mach-sa1100/pfs168.c 2004-06-28 18:21:52 -07:00 +++ b/arch/arm/mach-sa1100/pfs168.c 2004-06-28 18:21:52 -07:00 @@ -112,4 +112,5 @@ BOOT_PARAMS(0xc0000100) MAPIO(pfs168_map_io) INITIRQ(pfs168_init_irq) + INITTIME(sa1100_init_time) MACHINE_END diff -Nru a/arch/arm/mach-sa1100/pleb.c b/arch/arm/mach-sa1100/pleb.c --- a/arch/arm/mach-sa1100/pleb.c 2004-06-28 18:21:55 -07:00 +++ b/arch/arm/mach-sa1100/pleb.c 2004-06-28 18:21:55 -07:00 @@ -31,4 +31,5 @@ BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000) MAPIO(pleb_map_io) INITIRQ(sa1100_init_irq) + INITTIME(sa1100_init_time) MACHINE_END diff -Nru a/arch/arm/mach-sa1100/shannon.c b/arch/arm/mach-sa1100/shannon.c --- a/arch/arm/mach-sa1100/shannon.c 2004-06-28 18:22:00 -07:00 +++ b/arch/arm/mach-sa1100/shannon.c 2004-06-28 18:22:00 -07:00 @@ -41,4 +41,5 @@ BOOT_PARAMS(0xc0000100) MAPIO(shannon_map_io) INITIRQ(sa1100_init_irq) + INITTIME(sa1100_init_time) MACHINE_END diff -Nru a/arch/arm/mach-sa1100/sherman.c b/arch/arm/mach-sa1100/sherman.c --- a/arch/arm/mach-sa1100/sherman.c 2004-06-28 18:21:57 -07:00 +++ b/arch/arm/mach-sa1100/sherman.c 2004-06-28 18:21:57 -07:00 @@ -27,4 +27,5 @@ BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000) MAPIO(sherman_map_io) INITIRQ(sa1100_init_irq) + INITTIME(sa1100_init_time) MACHINE_END diff -Nru a/arch/arm/mach-sa1100/simpad.c b/arch/arm/mach-sa1100/simpad.c --- a/arch/arm/mach-sa1100/simpad.c 2004-06-28 18:21:53 -07:00 +++ b/arch/arm/mach-sa1100/simpad.c 2004-06-28 18:21:53 -07:00 @@ -231,4 +231,5 @@ BOOT_PARAMS(0xc0000100) MAPIO(simpad_map_io) INITIRQ(sa1100_init_irq) + INITTIME(sa1100_init_time) MACHINE_END diff -Nru a/arch/arm/mach-sa1100/stork.c b/arch/arm/mach-sa1100/stork.c --- a/arch/arm/mach-sa1100/stork.c 2004-06-28 18:21:57 -07:00 +++ b/arch/arm/mach-sa1100/stork.c 2004-06-28 18:21:57 -07:00 @@ -331,6 +331,7 @@ BOOT_PARAMS(0xc0000100) MAPIO(stork_map_io) INITIRQ(sa1100_init_irq) + INITTIME(sa1100_init_time) MACHINE_END diff -Nru a/arch/arm/mach-sa1100/system3.c b/arch/arm/mach-sa1100/system3.c --- a/arch/arm/mach-sa1100/system3.c 2004-06-28 18:21:58 -07:00 +++ b/arch/arm/mach-sa1100/system3.c 2004-06-28 18:21:58 -07:00 @@ -470,4 +470,5 @@ BOOT_PARAMS(0xc0000100) MAPIO(system3_map_io) INITIRQ(sa1100_init_irq) + INITTIME(sa1100_init_time) MACHINE_END diff -Nru a/arch/arm/mach-sa1100/time.c b/arch/arm/mach-sa1100/time.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/arm/mach-sa1100/time.c 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,119 @@ +/* + * linux/arch/arm/mach-sa1100/time.c + * + * Copyright (C) 1998 Deborah Wallach. + * Twiddles (C) 1999 Hugo Fiennes + * + * 2000/03/29 (C) Nicolas Pitre + * Rewritten: big cleanup, much simpler, better HZ accuracy. + * + */ +#include +#include +#include +#include +#include + +#include +#include + +#define RTC_DEF_DIVIDER (32768 - 1) +#define RTC_DEF_TRIM 0 + +static unsigned long __init sa1100_get_rtc_time(void) +{ + /* + * According to the manual we should be able to let RTTR be zero + * and then a default diviser for a 32.768KHz clock is used. + * Apparently this doesn't work, at least for my SA1110 rev 5. + * If the clock divider is uninitialized then reset it to the + * default value to get the 1Hz clock. + */ + if (RTTR == 0) { + RTTR = RTC_DEF_DIVIDER + (RTC_DEF_TRIM << 16); + printk(KERN_WARNING "Warning: uninitialized Real Time Clock\n"); + /* The current RTC value probably doesn't make sense either */ + RCNR = 0; + return 0; + } + return RCNR; +} + +static int sa1100_set_rtc(void) +{ + unsigned long current_time = xtime.tv_sec; + + if (RTSR & RTSR_ALE) { + /* make sure not to forward the clock over an alarm */ + unsigned long alarm = RTAR; + if (current_time >= alarm && alarm >= RCNR) + return -ERESTARTSYS; + } + RCNR = current_time; + return 0; +} + +/* IRQs are disabled before entering here from do_gettimeofday() */ +static unsigned long sa1100_gettimeoffset (void) +{ + unsigned long ticks_to_match, elapsed, usec; + + /* Get ticks before next timer match */ + ticks_to_match = OSMR0 - OSCR; + + /* We need elapsed ticks since last match */ + elapsed = LATCH - ticks_to_match; + + /* Now convert them to usec */ + usec = (unsigned long)(elapsed * (tick_nsec / 1000))/LATCH; + + return usec; +} + +/* + * We will be entered with IRQs enabled. + * + * Loop until we get ahead of the free running timer. + * This ensures an exact clock tick count and time accuracy. + * IRQs are disabled inside the loop to ensure coherence between + * lost_ticks (updated in do_timer()) and the match reg value, so we + * can use do_gettimeofday() from interrupt handlers. + */ +static irqreturn_t +sa1100_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) +{ + unsigned int next_match; + + do { + timer_tick(regs); + OSSR = OSSR_M0; /* Clear match on timer 0 */ + next_match = (OSMR0 += LATCH); + } while ((signed long)(next_match - OSCR) <= 0); + + return IRQ_HANDLED; +} + +static struct irqaction sa1100_timer_irq = { + .name = "SA11xx Timer Tick", + .flags = SA_INTERRUPT, + .handler = sa1100_timer_interrupt +}; + +void __init sa1100_init_time(void) +{ + struct timespec tv; + + gettimeoffset = sa1100_gettimeoffset; + set_rtc = sa1100_set_rtc; + + tv.tv_nsec = 0; + tv.tv_sec = sa1100_get_rtc_time(); + do_settimeofday(&tv); + + OSMR0 = 0; /* set initial match at 0 */ + OSSR = 0xf; /* clear status on all timers */ + setup_irq(IRQ_OST0, &sa1100_timer_irq); + OIER |= OIER_E0; /* enable match on timer 0 to cause interrupts */ + OSCR = 0; /* initialize free-running timer, force first match */ +} + diff -Nru a/arch/arm/mach-sa1100/trizeps.c b/arch/arm/mach-sa1100/trizeps.c --- a/arch/arm/mach-sa1100/trizeps.c 2004-06-28 18:21:59 -07:00 +++ b/arch/arm/mach-sa1100/trizeps.c 2004-06-28 18:21:59 -07:00 @@ -228,4 +228,5 @@ BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000) MAPIO(trizeps_map_io) INITIRQ(sa1100_init_irq) + INITTIME(sa1100_init_time) MACHINE_END diff -Nru a/arch/arm/mach-sa1100/xp860.c b/arch/arm/mach-sa1100/xp860.c --- a/arch/arm/mach-sa1100/xp860.c 2004-06-28 18:21:56 -07:00 +++ b/arch/arm/mach-sa1100/xp860.c 2004-06-28 18:21:56 -07:00 @@ -89,4 +89,5 @@ BOOT_MEM(0xc0000000, 0x80000000, 0xf8000000) MAPIO(xp860_map_io) INITIRQ(sa1100_init_irq) + INITTIME(sa1100_init_time) MACHINE_END diff -Nru a/arch/arm/mach-sa1100/yopy.c b/arch/arm/mach-sa1100/yopy.c --- a/arch/arm/mach-sa1100/yopy.c 2004-06-28 18:21:53 -07:00 +++ b/arch/arm/mach-sa1100/yopy.c 2004-06-28 18:21:53 -07:00 @@ -91,4 +91,5 @@ BOOT_PARAMS(0xc0000100) MAPIO(yopy_map_io) INITIRQ(sa1100_init_irq) + INITTIME(sa1100_init_time) MACHINE_END diff -Nru a/arch/arm/mach-shark/core.c b/arch/arm/mach-shark/core.c --- a/arch/arm/mach-shark/core.c 2004-06-28 18:21:57 -07:00 +++ b/arch/arm/mach-shark/core.c 2004-06-28 18:21:57 -07:00 @@ -5,13 +5,18 @@ */ #include #include +#include +#include #include #include #include +#include +#include #include #include +#include extern void shark_init_irq(void); @@ -24,10 +29,43 @@ iotable_init(shark_io_desc, ARRAY_SIZE(shark_io_desc)); } +#define IRQ_TIMER 0 +#define HZ_TIME ((1193180 + HZ/2) / HZ) + +static irqreturn_t +shark_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) +{ + timer_tick(regs); + + return IRQ_HANDLED; +} + +static struct irqaction shark_timer_irq = { + .name = "Shark Timer Tick", + .flags = SA_INTERRUPT, + .handler = shark_timer_interrupt +}; + +/* + * Set up timer interrupt, and return the current time in seconds. + */ +void __init shark_init_time(void) +{ + unsigned long flags; + + outb(0x34, 0x43); /* binary, mode 0, LSB/MSB, Ch 0 */ + outb(HZ_TIME & 0xff, 0x40); /* LSB of count */ + outb(HZ_TIME >> 8, 0x40); + + setup_irq(IRQ_TIMER, &shark_timer_irq); +} + + MACHINE_START(SHARK, "Shark") MAINTAINER("Alexander Schulz") BOOT_MEM(0x08000000, 0x40000000, 0xe0000000) BOOT_PARAMS(0x08003000) MAPIO(shark_map_io) INITIRQ(shark_init_irq) + INITTIME(shark_init_time) MACHINE_END diff -Nru a/arch/arm/mach-tbox/Makefile b/arch/arm/mach-tbox/Makefile --- a/arch/arm/mach-tbox/Makefile 2004-06-28 18:21:54 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,11 +0,0 @@ -# -# Makefile for the linux kernel. -# - -# Object file lists. - -obj-y := core.o -obj-m := -obj-n := -obj- := - diff -Nru a/arch/arm/mach-tbox/core.c b/arch/arm/mach-tbox/core.c --- a/arch/arm/mach-tbox/core.c 2004-06-28 18:21:58 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,73 +0,0 @@ -/* - * linux/arch/arm/mm/mm-tbox.c - * - * Copyright (C) 1998, 1999, 2000 Phil Blundell - * Copyright (C) 1998-1999 Russell King - * - * Extra MM routines for the Tbox architecture - */ -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#include -#include - -extern unsigned long soft_irq_mask; - -static void tbox_mask_irq(unsigned int irq) -{ - __raw_writel(0, INTCONT + (irq << 2)); - soft_irq_mask &= ~(1<= 12 && i <= 13)) { - irq_desc[i].valid = 1; - irq_desc[i].probe_ok = 0; - irq_desc[i].mask_ack = tbox_mask_irq; - irq_desc[i].mask = tbox_mask_irq; - irq_desc[i].unmask = tbox_unmask_irq; - tbox_mask_irq(i); - } else { - irq_desc[i].valid = 0; - irq_desc[i].probe_ok = 0; - } - } -} - -static struct map_desc tbox_io_desc[] __initdata = { - /* See hardware.h for details */ - { IO_BASE, IO_START, 0x00100000, MT_DEVICE } -}; - -static void __init tbox_map_io(void) -{ - iotable_init(tbox_io_desc, ARRAY_SIZE(tbox_io_desc)); -} - -MACHINE_START(TBOX, "unknown-TBOX") - MAINTAINER("Philip Blundell") - BOOT_MEM(0x80000000, 0x00400000, 0xe0000000) - MAPIO(tbox_map_io) - INITIRQ(tbox_init_irq) -MACHINE_END - diff -Nru a/arch/arm/mach-versatile/Makefile b/arch/arm/mach-versatile/Makefile --- a/arch/arm/mach-versatile/Makefile 2004-06-28 18:21:52 -07:00 +++ b/arch/arm/mach-versatile/Makefile 2004-06-28 18:21:52 -07:00 @@ -2,4 +2,4 @@ # Makefile for the linux kernel. # -obj-y := core.o +obj-y := core.o clock.o diff -Nru a/arch/arm/mach-versatile/clock.c b/arch/arm/mach-versatile/clock.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/arm/mach-versatile/clock.c 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,146 @@ +/* + * linux/arch/arm/mach-versatile/clock.c + * + * Copyright (C) 2004 ARM Limited. + * Written by Deep Blue Solutions Limited. + * + * 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 "clock.h" + +static LIST_HEAD(clocks); +static DECLARE_MUTEX(clocks_sem); + +struct clk *clk_get(struct device *dev, const char *id) +{ + struct clk *p, *clk = ERR_PTR(-ENOENT); + + down(&clocks_sem); + list_for_each_entry(p, &clocks, node) { + if (strcmp(id, p->name) == 0 && try_module_get(p->owner)) { + clk = p; + break; + } + } + up(&clocks_sem); + + return clk; +} +EXPORT_SYMBOL(clk_get); + +void clk_put(struct clk *clk) +{ + module_put(clk->owner); +} +EXPORT_SYMBOL(clk_put); + +int clk_enable(struct clk *clk) +{ + return 0; +} +EXPORT_SYMBOL(clk_enable); + +void clk_disable(struct clk *clk) +{ +} +EXPORT_SYMBOL(clk_disable); + +int clk_use(struct clk *clk) +{ + return 0; +} +EXPORT_SYMBOL(clk_use); + +void clk_unuse(struct clk *clk) +{ +} +EXPORT_SYMBOL(clk_unuse); + +unsigned long clk_get_rate(struct clk *clk) +{ + return clk->rate; +} +EXPORT_SYMBOL(clk_get_rate); + +long clk_round_rate(struct clk *clk, unsigned long rate) +{ + return rate; +} +EXPORT_SYMBOL(clk_round_rate); + +int clk_set_rate(struct clk *clk, unsigned long rate) +{ + int ret = -EIO; +#if 0 // Not yet + if (clk->setvco) { + struct icst525_vco vco; + + vco = icst525_khz_to_vco(clk->params, rate); + clk->rate = icst525_khz(clk->params, vco); + + printk("Clock %s: setting VCO reg params: S=%d R=%d V=%d\n", + clk->name, vco.s, vco.r, vco.v); + + clk->setvco(clk, vco); + ret = 0; + } +#endif + return 0; +} +EXPORT_SYMBOL(clk_set_rate); + +/* + * These are fixed clocks. + */ +static struct clk kmi_clk = { + .name = "KMIREFCLK", + .rate = 24000000, +}; + +static struct clk uart_clk = { + .name = "UARTCLK", + .rate = 24000000, +}; + +static struct clk mmci_clk = { + .name = "MCLK", + .rate = 33000000, +}; + +int clk_register(struct clk *clk) +{ + down(&clocks_sem); + list_add(&clk->node, &clocks); + up(&clocks_sem); + return 0; +} +EXPORT_SYMBOL(clk_register); + +void clk_unregister(struct clk *clk) +{ + down(&clocks_sem); + list_del(&clk->node); + up(&clocks_sem); +} +EXPORT_SYMBOL(clk_unregister); + +static int __init clk_init(void) +{ + clk_register(&kmi_clk); + clk_register(&uart_clk); + clk_register(&mmci_clk); + return 0; +} +arch_initcall(clk_init); diff -Nru a/arch/arm/mach-versatile/clock.h b/arch/arm/mach-versatile/clock.h --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/arm/mach-versatile/clock.h 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,25 @@ +/* + * linux/arch/arm/mach-versatile/clock.h + * + * Copyright (C) 2004 ARM Limited. + * Written by Deep Blue Solutions Limited. + * + * 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. + */ +struct module; +struct icst525_params; + +struct clk { + struct list_head node; + unsigned long rate; + struct module *owner; + const char *name; + const struct icst525_params *params; + void *data; + void (*setvco)(struct clk *, struct icst525_vco vco); +}; + +int clk_register(struct clk *clk); +void clk_unregister(struct clk *clk); diff -Nru a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c --- a/arch/arm/mach-versatile/core.c 2004-06-28 18:21:56 -07:00 +++ b/arch/arm/mach-versatile/core.c 2004-06-28 18:21:56 -07:00 @@ -22,7 +22,9 @@ #include #include #include +#include +#include #include #include #include @@ -33,6 +35,7 @@ #include #include #include +#include #include #ifdef CONFIG_MMC #include @@ -500,8 +503,8 @@ { int i; - platform_add_device(&versatile_flash_device); - platform_add_device(&smc91x_device); + platform_device_register(&versatile_flash_device); + platform_device_register(&smc91x_device); for (i = 0; i < ARRAY_SIZE(amba_devs); i++) { struct amba_device *d = amba_devs[i]; @@ -511,11 +514,153 @@ leds_event = versatile_leds_event; } +/* + * Where is the timer (VA)? + */ +#define TIMER0_VA_BASE IO_ADDRESS(VERSATILE_TIMER0_1_BASE) +#define TIMER1_VA_BASE (IO_ADDRESS(VERSATILE_TIMER0_1_BASE) + 0x20) +#define TIMER2_VA_BASE IO_ADDRESS(VERSATILE_TIMER2_3_BASE) +#define TIMER3_VA_BASE (IO_ADDRESS(VERSATILE_TIMER2_3_BASE) + 0x20) +#define VA_IC_BASE IO_ADDRESS(VERSATILE_VIC_BASE) + +/* + * How long is the timer interval? + */ +#define TIMER_INTERVAL (TICKS_PER_uSEC * mSEC_10) +#if TIMER_INTERVAL >= 0x100000 +#define TIMER_RELOAD (TIMER_INTERVAL >> 8) /* Divide by 256 */ +#define TIMER_CTRL 0x88 /* Enable, Clock / 256 */ +#define TICKS2USECS(x) (256 * (x) / TICKS_PER_uSEC) +#elif TIMER_INTERVAL >= 0x10000 +#define TIMER_RELOAD (TIMER_INTERVAL >> 4) /* Divide by 16 */ +#define TIMER_CTRL 0x84 /* Enable, Clock / 16 */ +#define TICKS2USECS(x) (16 * (x) / TICKS_PER_uSEC) +#else +#define TIMER_RELOAD (TIMER_INTERVAL) +#define TIMER_CTRL 0x80 /* Enable */ +#define TICKS2USECS(x) ((x) / TICKS_PER_uSEC) +#endif + +#define TIMER_CTRL_IE (1 << 5) /* Interrupt Enable */ + +/* + * What does it look like? + */ +typedef struct TimerStruct { + unsigned long TimerLoad; + unsigned long TimerValue; + unsigned long TimerControl; + unsigned long TimerClear; +} TimerStruct_t; + +extern unsigned long (*gettimeoffset)(void); + +/* + * Returns number of ms since last clock interrupt. Note that interrupts + * will have been disabled by do_gettimeoffset() + */ +static unsigned long versatile_gettimeoffset(void) +{ + volatile TimerStruct_t *timer0 = (TimerStruct_t *)TIMER0_VA_BASE; + unsigned long ticks1, ticks2, status; + + /* + * Get the current number of ticks. Note that there is a race + * condition between us reading the timer and checking for + * an interrupt. We get around this by ensuring that the + * counter has not reloaded between our two reads. + */ + ticks2 = timer0->TimerValue & 0xffff; + do { + ticks1 = ticks2; + status = __raw_readl(VA_IC_BASE + VIC_IRQ_RAW_STATUS); + ticks2 = timer0->TimerValue & 0xffff; + } while (ticks2 > ticks1); + + /* + * Number of ticks since last interrupt. + */ + ticks1 = TIMER_RELOAD - ticks2; + + /* + * Interrupt pending? If so, we've reloaded once already. + * + * FIXME: Need to check this is effectively timer 0 that expires + */ + if (status & IRQMASK_TIMERINT0_1) + ticks1 += TIMER_RELOAD; + + /* + * Convert the ticks to usecs + */ + return TICKS2USECS(ticks1); +} + +/* + * IRQ handler for the timer + */ +static irqreturn_t versatile_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) +{ + volatile TimerStruct_t *timer0 = (volatile TimerStruct_t *)TIMER0_VA_BASE; + + // ...clear the interrupt + timer0->TimerClear = 1; + + timer_tick(regs); + + return IRQ_HANDLED; +} + +static struct irqaction versatile_timer_irq = { + .name = "Versatile Timer Tick", + .flags = SA_INTERRUPT, + .handler = versatile_timer_interrupt +}; + +/* + * Set up timer interrupt, and return the current time in seconds. + */ +void __init versatile_init_time(void) +{ + volatile TimerStruct_t *timer0 = (volatile TimerStruct_t *)TIMER0_VA_BASE; + volatile TimerStruct_t *timer1 = (volatile TimerStruct_t *)TIMER1_VA_BASE; + volatile TimerStruct_t *timer2 = (volatile TimerStruct_t *)TIMER2_VA_BASE; + volatile TimerStruct_t *timer3 = (volatile TimerStruct_t *)TIMER3_VA_BASE; + + /* + * set clock frequency: + * VERSATILE_REFCLK is 32KHz + * VERSATILE_TIMCLK is 1MHz + */ + *(volatile unsigned int *)IO_ADDRESS(VERSATILE_SCTL_BASE) |= + ((VERSATILE_TIMCLK << VERSATILE_TIMER1_EnSel) | (VERSATILE_TIMCLK << VERSATILE_TIMER2_EnSel) | + (VERSATILE_TIMCLK << VERSATILE_TIMER3_EnSel) | (VERSATILE_TIMCLK << VERSATILE_TIMER4_EnSel)); + + /* + * Initialise to a known state (all timers off) + */ + timer0->TimerControl = 0; + timer1->TimerControl = 0; + timer2->TimerControl = 0; + timer3->TimerControl = 0; + + timer0->TimerLoad = TIMER_RELOAD; + timer0->TimerValue = TIMER_RELOAD; + timer0->TimerControl = TIMER_CTRL | 0x40 | TIMER_CTRL_IE; /* periodic + IE */ + + /* + * Make irqs happen for the system timer + */ + setup_irq(IRQ_TIMERINT0_1, &versatile_timer_irq); + gettimeoffset = versatile_gettimeoffset; +} + MACHINE_START(VERSATILE_PB, "ARM-Versatile PB") MAINTAINER("ARM Ltd/Deep Blue Solutions Ltd") BOOT_MEM(0x00000000, 0x101f1000, 0xf11f1000) BOOT_PARAMS(0x00000100) MAPIO(versatile_map_io) INITIRQ(versatile_init_irq) + INITTIME(versatile_init_time) INIT_MACHINE(versatile_init) MACHINE_END diff -Nru a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig --- a/arch/arm/mm/Kconfig 2004-06-28 18:21:55 -07:00 +++ b/arch/arm/mm/Kconfig 2004-06-28 18:21:55 -07:00 @@ -220,7 +220,7 @@ # XScale config CPU_XSCALE bool - depends on ARCH_IOP3XX || ARCH_ADIFCC || ARCH_PXA || ARCH_IXP4XX + depends on ARCH_IOP3XX || ARCH_PXA || ARCH_IXP4XX default y select CPU_32v5 select CPU_ABRT_EV5T diff -Nru a/arch/arm/mm/consistent.c b/arch/arm/mm/consistent.c --- a/arch/arm/mm/consistent.c 2004-06-28 18:21:58 -07:00 +++ b/arch/arm/mm/consistent.c 2004-06-28 18:21:58 -07:00 @@ -194,7 +194,7 @@ /* * Set the "dma handle" */ - *handle = page_to_bus(page); + *handle = page_to_dma(dev, page); do { BUG_ON(!pte_none(*pte)); diff -Nru a/arch/arm/mm/init.c b/arch/arm/mm/init.c --- a/arch/arm/mm/init.c 2004-06-28 18:21:53 -07:00 +++ b/arch/arm/mm/init.c 2004-06-28 18:21:53 -07:00 @@ -58,7 +58,7 @@ printk("Mem-info:\n"); show_free_areas(); - printk("Free swap: %6dkB\n",nr_swap_pages<<(PAGE_SHIFT-10)); + printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10)); for (node = 0; node < numnodes; node++) { struct page *page, *end; diff -Nru a/arch/arm/vfp/Makefile b/arch/arm/vfp/Makefile --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/arm/vfp/Makefile 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,12 @@ +# +# linux/arch/arm/vfp/Makefile +# +# Copyright (C) 2001 ARM Limited +# + +# EXTRA_CFLAGS := -DDEBUG +# EXTRA_AFLAGS := -DDEBUG + +obj-y += vfp.o + +vfp-$(CONFIG_VFP) += entry.o vfpmodule.o vfphw.o vfpsingle.o vfpdouble.o diff -Nru a/arch/arm/vfp/entry.S b/arch/arm/vfp/entry.S --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/arm/vfp/entry.S 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,45 @@ +/* + * linux/arch/arm/vfp/entry.S + * + * Copyright (C) 2004 ARM Limited. + * Written by Deep Blue Solutions Limited. + * + * 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. + * + * Basic entry code, called from the kernel's undefined instruction trap. + * r0 = faulted instruction + * r5 = faulted PC+4 + * r9 = successful return + * r10 = thread_info structure + * lr = failure return + */ +#include +#include +#include +#include + + .globl do_vfp +do_vfp: + ldr r4, .LCvfp + add r10, r10, #TI_VFPSTATE @ r10 = workspace + ldr pc, [r4] @ call VFP entry point + +.LCvfp: + .word vfp_vector + +@ This code is called if the VFP does not exist. It needs to flag the +@ failure to the VFP initialisation code. + + __INIT + .globl vfp_testing_entry +vfp_testing_entry: + ldr r0, VFP_arch_address + str r5, [r0] @ known non-zero value + mov pc, r9 @ we have handled the fault + +VFP_arch_address: + .word VFP_arch + + __FINIT diff -Nru a/arch/arm/vfp/vfp.h b/arch/arm/vfp/vfp.h --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/arm/vfp/vfp.h 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,333 @@ +/* + * linux/arch/arm/vfp/vfp.h + * + * Copyright (C) 2004 ARM Limited. + * Written by Deep Blue Solutions Limited. + * + * 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. + */ + +static inline u32 vfp_shiftright32jamming(u32 val, unsigned int shift) +{ + if (shift) { + if (shift < 32) + val = val >> shift | ((val << (32 - shift)) != 0); + else + val = val != 0; + } + return val; +} + +static inline u64 vfp_shiftright64jamming(u64 val, unsigned int shift) +{ + if (shift) { + if (shift < 64) + val = val >> shift | ((val << (64 - shift)) != 0); + else + val = val != 0; + } + return val; +} + +static inline u32 vfp_hi64to32jamming(u64 val) +{ + u32 v; + + asm( + "cmp %Q1, #1 @ vfp_hi64to32jamming\n\t" + "movcc %0, %R1\n\t" + "orrcs %0, %R1, #1" + : "=r" (v) : "r" (val) : "cc"); + + return v; +} + +static inline void add128(u64 *resh, u64 *resl, u64 nh, u64 nl, u64 mh, u64 ml) +{ + asm( "adds %Q0, %Q2, %Q4\n\t" + "adcs %R0, %R2, %R4\n\t" + "adcs %Q1, %Q3, %Q5\n\t" + "adc %R1, %R3, %R5" + : "=r" (nl), "=r" (nh) + : "0" (nl), "1" (nh), "r" (ml), "r" (mh) + : "cc"); + *resh = nh; + *resl = nl; +} + +static inline void sub128(u64 *resh, u64 *resl, u64 nh, u64 nl, u64 mh, u64 ml) +{ + asm( "subs %Q0, %Q2, %Q4\n\t" + "sbcs %R0, %R2, %R4\n\t" + "sbcs %Q1, %Q3, %Q5\n\t" + "sbc %R1, %R3, %R5\n\t" + : "=r" (nl), "=r" (nh) + : "0" (nl), "1" (nh), "r" (ml), "r" (mh) + : "cc"); + *resh = nh; + *resl = nl; +} + +static inline void mul64to128(u64 *resh, u64 *resl, u64 n, u64 m) +{ + u32 nh, nl, mh, ml; + u64 rh, rma, rmb, rl; + + nl = n; + ml = m; + rl = (u64)nl * ml; + + nh = n >> 32; + rma = (u64)nh * ml; + + mh = m >> 32; + rmb = (u64)nl * mh; + rma += rmb; + + rh = (u64)nh * mh; + rh += ((u64)(rma < rmb) << 32) + (rma >> 32); + + rma <<= 32; + rl += rma; + rh += (rl < rma); + + *resl = rl; + *resh = rh; +} + +static inline void shift64left(u64 *resh, u64 *resl, u64 n) +{ + *resh = n >> 63; + *resl = n << 1; +} + +static inline u64 vfp_hi64multiply64(u64 n, u64 m) +{ + u64 rh, rl; + mul64to128(&rh, &rl, n, m); + return rh | (rl != 0); +} + +static inline u64 vfp_estimate_div128to64(u64 nh, u64 nl, u64 m) +{ + u64 mh, ml, remh, reml, termh, terml, z; + + if (nh >= m) + return ~0ULL; + mh = m >> 32; + z = (mh << 32 <= nh) ? 0xffffffff00000000ULL : (nh / mh) << 32; + mul64to128(&termh, &terml, m, z); + sub128(&remh, &reml, nh, nl, termh, terml); + ml = m << 32; + while ((s64)remh < 0) { + z -= 0x100000000ULL; + add128(&remh, &reml, remh, reml, mh, ml); + } + remh = (remh << 32) | (reml >> 32); + z |= (mh << 32 <= remh) ? 0xffffffff : remh / mh; + return z; +} + +/* + * Operations on unpacked elements + */ +#define vfp_sign_negate(sign) (sign ^ 0x8000) + +/* + * Single-precision + */ +struct vfp_single { + s16 exponent; + u16 sign; + u32 significand; +}; + +extern s32 vfp_get_float(unsigned int reg); +extern void vfp_put_float(unsigned int reg, s32 val); + +/* + * VFP_SINGLE_MANTISSA_BITS - number of bits in the mantissa + * VFP_SINGLE_EXPONENT_BITS - number of bits in the exponent + * VFP_SINGLE_LOW_BITS - number of low bits in the unpacked significand + * which are not propagated to the float upon packing. + */ +#define VFP_SINGLE_MANTISSA_BITS (23) +#define VFP_SINGLE_EXPONENT_BITS (8) +#define VFP_SINGLE_LOW_BITS (32 - VFP_SINGLE_MANTISSA_BITS - 2) +#define VFP_SINGLE_LOW_BITS_MASK ((1 << VFP_SINGLE_LOW_BITS) - 1) + +/* + * The bit in an unpacked float which indicates that it is a quiet NaN + */ +#define VFP_SINGLE_SIGNIFICAND_QNAN (1 << (VFP_SINGLE_MANTISSA_BITS - 1 + VFP_SINGLE_LOW_BITS)) + +/* + * Operations on packed single-precision numbers + */ +#define vfp_single_packed_sign(v) ((v) & 0x80000000) +#define vfp_single_packed_negate(v) ((v) ^ 0x80000000) +#define vfp_single_packed_abs(v) ((v) & ~0x80000000) +#define vfp_single_packed_exponent(v) (((v) >> VFP_SINGLE_MANTISSA_BITS) & ((1 << VFP_SINGLE_EXPONENT_BITS) - 1)) +#define vfp_single_packed_mantissa(v) ((v) & ((1 << VFP_SINGLE_MANTISSA_BITS) - 1)) + +/* + * Unpack a single-precision float. Note that this returns the magnitude + * of the single-precision float mantissa with the 1. if necessary, + * aligned to bit 30. + */ +static inline void vfp_single_unpack(struct vfp_single *s, s32 val) +{ + u32 significand; + + s->sign = vfp_single_packed_sign(val) >> 16, + s->exponent = vfp_single_packed_exponent(val); + + significand = (u32) val; + significand = (significand << (32 - VFP_SINGLE_MANTISSA_BITS)) >> 2; + if (s->exponent && s->exponent != 255) + significand |= 0x40000000; + s->significand = significand; +} + +/* + * Re-pack a single-precision float. This assumes that the float is + * already normalised such that the MSB is bit 30, _not_ bit 31. + */ +static inline s32 vfp_single_pack(struct vfp_single *s) +{ + u32 val; + val = (s->sign << 16) + + (s->exponent << VFP_SINGLE_MANTISSA_BITS) + + (s->significand >> VFP_SINGLE_LOW_BITS); + return (s32)val; +} + +#define VFP_NUMBER (1<<0) +#define VFP_ZERO (1<<1) +#define VFP_DENORMAL (1<<2) +#define VFP_INFINITY (1<<3) +#define VFP_NAN (1<<4) +#define VFP_NAN_SIGNAL (1<<5) + +#define VFP_QNAN (VFP_NAN) +#define VFP_SNAN (VFP_NAN|VFP_NAN_SIGNAL) + +static inline int vfp_single_type(struct vfp_single *s) +{ + int type = VFP_NUMBER; + if (s->exponent == 255) { + if (s->significand == 0) + type = VFP_INFINITY; + else if (s->significand & VFP_SINGLE_SIGNIFICAND_QNAN) + type = VFP_QNAN; + else + type = VFP_SNAN; + } else if (s->exponent == 0) { + if (s->significand == 0) + type |= VFP_ZERO; + else + type |= VFP_DENORMAL; + } + return type; +} + +#ifndef DEBUG +#define vfp_single_normaliseround(sd,vsd,fpscr,except,func) __vfp_single_normaliseround(sd,vsd,fpscr,except) +u32 __vfp_single_normaliseround(int sd, struct vfp_single *vs, u32 fpscr, u32 exceptions); +#else +u32 vfp_single_normaliseround(int sd, struct vfp_single *vs, u32 fpscr, u32 exceptions, const char *func); +#endif + +/* + * Double-precision + */ +struct vfp_double { + s16 exponent; + u16 sign; + u64 significand; +}; + +extern u64 vfp_get_double(unsigned int reg); +extern void vfp_put_double(unsigned int reg, u64 val); + +#define VFP_DOUBLE_MANTISSA_BITS (52) +#define VFP_DOUBLE_EXPONENT_BITS (11) +#define VFP_DOUBLE_LOW_BITS (64 - VFP_DOUBLE_MANTISSA_BITS - 2) +#define VFP_DOUBLE_LOW_BITS_MASK ((1 << VFP_DOUBLE_LOW_BITS) - 1) + +/* + * The bit in an unpacked double which indicates that it is a quiet NaN + */ +#define VFP_DOUBLE_SIGNIFICAND_QNAN (1ULL << (VFP_DOUBLE_MANTISSA_BITS - 1 + VFP_DOUBLE_LOW_BITS)) + +/* + * Operations on packed single-precision numbers + */ +#define vfp_double_packed_sign(v) ((v) & (1ULL << 63)) +#define vfp_double_packed_negate(v) ((v) ^ (1ULL << 63)) +#define vfp_double_packed_abs(v) ((v) & ~(1ULL << 63)) +#define vfp_double_packed_exponent(v) (((v) >> VFP_DOUBLE_MANTISSA_BITS) & ((1 << VFP_DOUBLE_EXPONENT_BITS) - 1)) +#define vfp_double_packed_mantissa(v) ((v) & ((1ULL << VFP_DOUBLE_MANTISSA_BITS) - 1)) + +/* + * Unpack a double-precision float. Note that this returns the magnitude + * of the double-precision float mantissa with the 1. if necessary, + * aligned to bit 62. + */ +static inline void vfp_double_unpack(struct vfp_double *s, s64 val) +{ + u64 significand; + + s->sign = vfp_double_packed_sign(val) >> 48; + s->exponent = vfp_double_packed_exponent(val); + + significand = (u64) val; + significand = (significand << (64 - VFP_DOUBLE_MANTISSA_BITS)) >> 2; + if (s->exponent && s->exponent != 2047) + significand |= (1ULL << 62); + s->significand = significand; +} + +/* + * Re-pack a double-precision float. This assumes that the float is + * already normalised such that the MSB is bit 30, _not_ bit 31. + */ +static inline s64 vfp_double_pack(struct vfp_double *s) +{ + u64 val; + val = ((u64)s->sign << 48) + + ((u64)s->exponent << VFP_DOUBLE_MANTISSA_BITS) + + (s->significand >> VFP_DOUBLE_LOW_BITS); + return (s64)val; +} + +static inline int vfp_double_type(struct vfp_double *s) +{ + int type = VFP_NUMBER; + if (s->exponent == 2047) { + if (s->significand == 0) + type = VFP_INFINITY; + else if (s->significand & VFP_DOUBLE_SIGNIFICAND_QNAN) + type = VFP_QNAN; + else + type = VFP_SNAN; + } else if (s->exponent == 0) { + if (s->significand == 0) + type |= VFP_ZERO; + else + type |= VFP_DENORMAL; + } + return type; +} + +u32 vfp_double_normaliseround(int dd, struct vfp_double *vd, u32 fpscr, u32 exceptions, const char *func); + +/* + * System registers + */ +extern u32 vfp_get_sys(unsigned int reg); +extern void vfp_put_sys(unsigned int reg, u32 val); + +u32 vfp_estimate_sqrt_significand(u32 exponent, u32 significand); diff -Nru a/arch/arm/vfp/vfpdouble.c b/arch/arm/vfp/vfpdouble.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/arm/vfp/vfpdouble.c 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,1186 @@ +/* + * linux/arch/arm/vfp/vfpdouble.c + * + * This code is derived in part from John R. Housers softfloat library, which + * carries the following notice: + * + * =========================================================================== + * This C source file is part of the SoftFloat IEC/IEEE Floating-point + * Arithmetic Package, Release 2. + * + * Written by John R. Hauser. This work was made possible in part by the + * International Computer Science Institute, located at Suite 600, 1947 Center + * Street, Berkeley, California 94704. Funding was partially provided by the + * National Science Foundation under grant MIP-9311980. The original version + * of this code was written as part of a project to build a fixed-point vector + * processor in collaboration with the University of California at Berkeley, + * overseen by Profs. Nelson Morgan and John Wawrzynek. More information + * is available through the web page `http://HTTP.CS.Berkeley.EDU/~jhauser/ + * arithmetic/softfloat.html'. + * + * THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort + * has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT + * TIMES RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO + * PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ANY + * AND ALL LOSSES, COSTS, OR OTHER PROBLEMS ARISING FROM ITS USE. + * + * Derivative works are acceptable, even for commercial purposes, so long as + * (1) they include prominent notice that the work is derivative, and (2) they + * include prominent notice akin to these three paragraphs for those parts of + * this code that are retained. + * =========================================================================== + */ +#include +#include +#include +#include + +#include "vfpinstr.h" +#include "vfp.h" + +static struct vfp_double vfp_double_default_qnan = { + .exponent = 2047, + .sign = 0, + .significand = VFP_DOUBLE_SIGNIFICAND_QNAN, +}; + +static void vfp_double_dump(const char *str, struct vfp_double *d) +{ + pr_debug("VFP: %s: sign=%d exponent=%d significand=%016llx\n", + str, d->sign != 0, d->exponent, d->significand); +} + +static void vfp_double_normalise_denormal(struct vfp_double *vd) +{ + int bits = 31 - fls(vd->significand >> 32); + if (bits == 31) + bits = 62 - fls(vd->significand); + + vfp_double_dump("normalise_denormal: in", vd); + + if (bits) { + vd->exponent -= bits - 1; + vd->significand <<= bits; + } + + vfp_double_dump("normalise_denormal: out", vd); +} + +u32 vfp_double_normaliseround(int dd, struct vfp_double *vd, u32 fpscr, u32 exceptions, const char *func) +{ + u64 significand, incr; + int exponent, shift, underflow; + u32 rmode; + + vfp_double_dump("pack: in", vd); + + /* + * Infinities and NaNs are a special case. + */ + if (vd->exponent == 2047 && (vd->significand == 0 || exceptions)) + goto pack; + + /* + * Special-case zero. + */ + if (vd->significand == 0) { + vd->exponent = 0; + goto pack; + } + + exponent = vd->exponent; + significand = vd->significand; + + shift = 32 - fls(significand >> 32); + if (shift == 32) + shift = 64 - fls(significand); + if (shift) { + exponent -= shift; + significand <<= shift; + } + +#ifdef DEBUG + vd->exponent = exponent; + vd->significand = significand; + vfp_double_dump("pack: normalised", vd); +#endif + + /* + * Tiny number? + */ + underflow = exponent < 0; + if (underflow) { + significand = vfp_shiftright64jamming(significand, -exponent); + exponent = 0; +#ifdef DEBUG + vd->exponent = exponent; + vd->significand = significand; + vfp_double_dump("pack: tiny number", vd); +#endif + if (!(significand & ((1ULL << (VFP_DOUBLE_LOW_BITS + 1)) - 1))) + underflow = 0; + } + + /* + * Select rounding increment. + */ + incr = 0; + rmode = fpscr & FPSCR_RMODE_MASK; + + if (rmode == FPSCR_ROUND_NEAREST) { + incr = 1ULL << VFP_DOUBLE_LOW_BITS; + if ((significand & (1ULL << (VFP_DOUBLE_LOW_BITS + 1))) == 0) + incr -= 1; + } else if (rmode == FPSCR_ROUND_TOZERO) { + incr = 0; + } else if ((rmode == FPSCR_ROUND_PLUSINF) ^ (vd->sign != 0)) + incr = (1ULL << (VFP_DOUBLE_LOW_BITS + 1)) - 1; + + pr_debug("VFP: rounding increment = 0x%08llx\n", incr); + + /* + * Is our rounding going to overflow? + */ + if ((significand + incr) < significand) { + exponent += 1; + significand = (significand >> 1) | (significand & 1); + incr >>= 1; +#ifdef DEBUG + vd->exponent = exponent; + vd->significand = significand; + vfp_double_dump("pack: overflow", vd); +#endif + } + + /* + * If any of the low bits (which will be shifted out of the + * number) are non-zero, the result is inexact. + */ + if (significand & ((1 << (VFP_DOUBLE_LOW_BITS + 1)) - 1)) + exceptions |= FPSCR_IXC; + + /* + * Do our rounding. + */ + significand += incr; + + /* + * Infinity? + */ + if (exponent >= 2046) { + exceptions |= FPSCR_OFC | FPSCR_IXC; + if (incr == 0) { + vd->exponent = 2045; + vd->significand = 0x7fffffffffffffffULL; + } else { + vd->exponent = 2047; /* infinity */ + vd->significand = 0; + } + } else { + if (significand >> (VFP_DOUBLE_LOW_BITS + 1) == 0) + exponent = 0; + if (exponent || significand > 0x8000000000000000ULL) + underflow = 0; + if (underflow) + exceptions |= FPSCR_UFC; + vd->exponent = exponent; + vd->significand = significand >> 1; + } + + pack: + vfp_double_dump("pack: final", vd); + { + s64 d = vfp_double_pack(vd); + pr_debug("VFP: %s: d(d%d)=%016llx exceptions=%08x\n", func, + dd, d, exceptions); + vfp_put_double(dd, d); + } + return exceptions; +} + +/* + * Propagate the NaN, setting exceptions if it is signalling. + * 'n' is always a NaN. 'm' may be a number, NaN or infinity. + */ +static u32 +vfp_propagate_nan(struct vfp_double *vdd, struct vfp_double *vdn, + struct vfp_double *vdm, u32 fpscr) +{ + struct vfp_double *nan; + int tn, tm = 0; + + tn = vfp_double_type(vdn); + + if (vdm) + tm = vfp_double_type(vdm); + + if (fpscr & FPSCR_DEFAULT_NAN) + /* + * Default NaN mode - always returns a quiet NaN + */ + nan = &vfp_double_default_qnan; + else { + /* + * Contemporary mode - select the first signalling + * NAN, or if neither are signalling, the first + * quiet NAN. + */ + if (tn == VFP_SNAN || (tm != VFP_SNAN && tn == VFP_QNAN)) + nan = vdn; + else + nan = vdm; + /* + * Make the NaN quiet. + */ + nan->significand |= VFP_DOUBLE_SIGNIFICAND_QNAN; + } + + *vdd = *nan; + + /* + * If one was a signalling NAN, raise invalid operation. + */ + return tn == VFP_SNAN || tm == VFP_SNAN ? FPSCR_IOC : 0x100; +} + +/* + * Extended operations + */ +static u32 vfp_double_fabs(int dd, int unused, int dm, u32 fpscr) +{ + vfp_put_double(dd, vfp_double_packed_abs(vfp_get_double(dm))); + return 0; +} + +static u32 vfp_double_fcpy(int dd, int unused, int dm, u32 fpscr) +{ + vfp_put_double(dd, vfp_get_double(dm)); + return 0; +} + +static u32 vfp_double_fneg(int dd, int unused, int dm, u32 fpscr) +{ + vfp_put_double(dd, vfp_double_packed_negate(vfp_get_double(dm))); + return 0; +} + +static u32 vfp_double_fsqrt(int dd, int unused, int dm, u32 fpscr) +{ + struct vfp_double vdm, vdd; + int ret, tm; + + vfp_double_unpack(&vdm, vfp_get_double(dm)); + tm = vfp_double_type(&vdm); + if (tm & (VFP_NAN|VFP_INFINITY)) { + struct vfp_double *vdp = &vdd; + + if (tm & VFP_NAN) + ret = vfp_propagate_nan(vdp, &vdm, NULL, fpscr); + else if (vdm.sign == 0) { + sqrt_copy: + vdp = &vdm; + ret = 0; + } else { + sqrt_invalid: + vdp = &vfp_double_default_qnan; + ret = FPSCR_IOC; + } + vfp_put_double(dd, vfp_double_pack(vdp)); + return ret; + } + + /* + * sqrt(+/- 0) == +/- 0 + */ + if (tm & VFP_ZERO) + goto sqrt_copy; + + /* + * Normalise a denormalised number + */ + if (tm & VFP_DENORMAL) + vfp_double_normalise_denormal(&vdm); + + /* + * sqrt(<0) = invalid + */ + if (vdm.sign) + goto sqrt_invalid; + + vfp_double_dump("sqrt", &vdm); + + /* + * Estimate the square root. + */ + vdd.sign = 0; + vdd.exponent = ((vdm.exponent - 1023) >> 1) + 1023; + vdd.significand = (u64)vfp_estimate_sqrt_significand(vdm.exponent, vdm.significand >> 32) << 31; + + vfp_double_dump("sqrt estimate1", &vdd); + + vdm.significand >>= 1 + (vdm.exponent & 1); + vdd.significand += 2 + vfp_estimate_div128to64(vdm.significand, 0, vdd.significand); + + vfp_double_dump("sqrt estimate2", &vdd); + + /* + * And now adjust. + */ + if ((vdd.significand & VFP_DOUBLE_LOW_BITS_MASK) <= 5) { + if (vdd.significand < 2) { + vdd.significand = ~0ULL; + } else { + u64 termh, terml, remh, reml; + vdm.significand <<= 2; + mul64to128(&termh, &terml, vdd.significand, vdd.significand); + sub128(&remh, &reml, vdm.significand, 0, termh, terml); + while ((s64)remh < 0) { + vdd.significand -= 1; + shift64left(&termh, &terml, vdd.significand); + terml |= 1; + add128(&remh, &reml, remh, reml, termh, terml); + } + vdd.significand |= (remh | reml) != 0; + } + } + vdd.significand = vfp_shiftright64jamming(vdd.significand, 1); + + return vfp_double_normaliseround(dd, &vdd, fpscr, 0, "fsqrt"); +} + +/* + * Equal := ZC + * Less than := N + * Greater than := C + * Unordered := CV + */ +static u32 vfp_compare(int dd, int signal_on_qnan, int dm, u32 fpscr) +{ + s64 d, m; + u32 ret = 0; + + m = vfp_get_double(dm); + if (vfp_double_packed_exponent(m) == 2047 && vfp_double_packed_mantissa(m)) { + ret |= FPSCR_C | FPSCR_V; + if (signal_on_qnan || !(vfp_double_packed_mantissa(m) & (1ULL << (VFP_DOUBLE_MANTISSA_BITS - 1)))) + /* + * Signalling NaN, or signalling on quiet NaN + */ + ret |= FPSCR_IOC; + } + + d = vfp_get_double(dd); + if (vfp_double_packed_exponent(d) == 2047 && vfp_double_packed_mantissa(d)) { + ret |= FPSCR_C | FPSCR_V; + if (signal_on_qnan || !(vfp_double_packed_mantissa(d) & (1ULL << (VFP_DOUBLE_MANTISSA_BITS - 1)))) + /* + * Signalling NaN, or signalling on quiet NaN + */ + ret |= FPSCR_IOC; + } + + if (ret == 0) { + if (d == m || vfp_double_packed_abs(d | m) == 0) { + /* + * equal + */ + ret |= FPSCR_Z | FPSCR_C; + } else if (vfp_double_packed_sign(d ^ m)) { + /* + * different signs + */ + if (vfp_double_packed_sign(d)) + /* + * d is negative, so d < m + */ + ret |= FPSCR_N; + else + /* + * d is positive, so d > m + */ + ret |= FPSCR_C; + } else if ((vfp_double_packed_sign(d) != 0) ^ (d < m)) { + /* + * d < m + */ + ret |= FPSCR_N; + } else if ((vfp_double_packed_sign(d) != 0) ^ (d > m)) { + /* + * d > m + */ + ret |= FPSCR_C; + } + } + + return ret; +} + +static u32 vfp_double_fcmp(int dd, int unused, int dm, u32 fpscr) +{ + return vfp_compare(dd, 0, dm, fpscr); +} + +static u32 vfp_double_fcmpe(int dd, int unused, int dm, u32 fpscr) +{ + return vfp_compare(dd, 1, dm, fpscr); +} + +static u32 vfp_double_fcmpz(int dd, int unused, int dm, u32 fpscr) +{ + return vfp_compare(dd, 0, -1, fpscr); +} + +static u32 vfp_double_fcmpez(int dd, int unused, int dm, u32 fpscr) +{ + return vfp_compare(dd, 1, -1, fpscr); +} + +static u32 vfp_double_fcvts(int sd, int unused, int dm, u32 fpscr) +{ + struct vfp_double vdm; + struct vfp_single vsd; + int tm; + u32 exceptions = 0; + + vfp_double_unpack(&vdm, vfp_get_double(dm)); + + tm = vfp_double_type(&vdm); + + /* + * If we have a signalling NaN, signal invalid operation. + */ + if (tm == VFP_SNAN) + exceptions = FPSCR_IOC; + + if (tm & VFP_DENORMAL) + vfp_double_normalise_denormal(&vdm); + + vsd.sign = vdm.sign; + vsd.significand = vfp_hi64to32jamming(vdm.significand); + + /* + * If we have an infinity or a NaN, the exponent must be 255 + */ + if (tm & (VFP_INFINITY|VFP_NAN)) { + vsd.exponent = 255; + if (tm & VFP_NAN) + vsd.significand |= VFP_SINGLE_SIGNIFICAND_QNAN; + goto pack_nan; + } else if (tm & VFP_ZERO) + vsd.exponent = 0; + else + vsd.exponent = vdm.exponent - (1023 - 127); + + return vfp_single_normaliseround(sd, &vsd, fpscr, exceptions, "fcvts"); + + pack_nan: + vfp_put_float(sd, vfp_single_pack(&vsd)); + return exceptions; +} + +static u32 vfp_double_fuito(int dd, int unused, int dm, u32 fpscr) +{ + struct vfp_double vdm; + u32 m = vfp_get_float(dm); + + vdm.sign = 0; + vdm.exponent = 1023 + 63 - 1; + vdm.significand = (u64)m; + + return vfp_double_normaliseround(dd, &vdm, fpscr, 0, "fuito"); +} + +static u32 vfp_double_fsito(int dd, int unused, int dm, u32 fpscr) +{ + struct vfp_double vdm; + u32 m = vfp_get_float(dm); + + vdm.sign = (m & 0x80000000) >> 16; + vdm.exponent = 1023 + 63 - 1; + vdm.significand = vdm.sign ? -m : m; + + return vfp_double_normaliseround(dd, &vdm, fpscr, 0, "fsito"); +} + +static u32 vfp_double_ftoui(int sd, int unused, int dm, u32 fpscr) +{ + struct vfp_double vdm; + u32 d, exceptions = 0; + int rmode = fpscr & FPSCR_RMODE_MASK; + int tm; + + vfp_double_unpack(&vdm, vfp_get_double(dm)); + + /* + * Do we have a denormalised number? + */ + tm = vfp_double_type(&vdm); + if (tm & VFP_DENORMAL) + exceptions |= FPSCR_IDC; + + if (tm & VFP_NAN) + vdm.sign = 0; + + if (vdm.exponent >= 1023 + 32) { + d = vdm.sign ? 0 : 0xffffffff; + exceptions = FPSCR_IOC; + } else if (vdm.exponent >= 1023 - 1) { + int shift = 1023 + 63 - vdm.exponent; + u64 rem, incr = 0; + + /* + * 2^0 <= m < 2^32-2^8 + */ + d = (vdm.significand << 1) >> shift; + rem = vdm.significand << (65 - shift); + + if (rmode == FPSCR_ROUND_NEAREST) { + incr = 0x8000000000000000ULL; + if ((d & 1) == 0) + incr -= 1; + } else if (rmode == FPSCR_ROUND_TOZERO) { + incr = 0; + } else if ((rmode == FPSCR_ROUND_PLUSINF) ^ (vdm.sign != 0)) { + incr = ~0ULL; + } + + if ((rem + incr) < rem) { + if (d < 0xffffffff) + d += 1; + else + exceptions |= FPSCR_IOC; + } + + if (d && vdm.sign) { + d = 0; + exceptions |= FPSCR_IOC; + } else if (rem) + exceptions |= FPSCR_IXC; + } else { + d = 0; + if (vdm.exponent | vdm.significand) { + exceptions |= FPSCR_IXC; + if (rmode == FPSCR_ROUND_PLUSINF && vdm.sign == 0) + d = 1; + else if (rmode == FPSCR_ROUND_MINUSINF && vdm.sign) { + d = 0; + exceptions |= FPSCR_IOC; + } + } + } + + pr_debug("VFP: ftoui: d(s%d)=%08x exceptions=%08x\n", sd, d, exceptions); + + vfp_put_float(sd, d); + + return exceptions; +} + +static u32 vfp_double_ftouiz(int sd, int unused, int dm, u32 fpscr) +{ + return vfp_double_ftoui(sd, unused, dm, FPSCR_ROUND_TOZERO); +} + +static u32 vfp_double_ftosi(int sd, int unused, int dm, u32 fpscr) +{ + struct vfp_double vdm; + u32 d, exceptions = 0; + int rmode = fpscr & FPSCR_RMODE_MASK; + + vfp_double_unpack(&vdm, vfp_get_double(dm)); + vfp_double_dump("VDM", &vdm); + + /* + * Do we have denormalised number? + */ + if (vfp_double_type(&vdm) & VFP_DENORMAL) + exceptions |= FPSCR_IDC; + + if (vdm.exponent >= 1023 + 32) { + d = 0x7fffffff; + if (vdm.sign) + d = ~d; + exceptions |= FPSCR_IOC; + } else if (vdm.exponent >= 1023 - 1) { + int shift = 1023 + 63 - vdm.exponent; /* 58 */ + u64 rem, incr = 0; + + d = (vdm.significand << 1) >> shift; + rem = vdm.significand << (65 - shift); + + if (rmode == FPSCR_ROUND_NEAREST) { + incr = 0x8000000000000000ULL; + if ((d & 1) == 0) + incr -= 1; + } else if (rmode == FPSCR_ROUND_TOZERO) { + incr = 0; + } else if ((rmode == FPSCR_ROUND_PLUSINF) ^ (vdm.sign != 0)) { + incr = ~0ULL; + } + + if ((rem + incr) < rem && d < 0xffffffff) + d += 1; + if (d > 0x7fffffff + (vdm.sign != 0)) { + d = 0x7fffffff + (vdm.sign != 0); + exceptions |= FPSCR_IOC; + } else if (rem) + exceptions |= FPSCR_IXC; + + if (vdm.sign) + d = -d; + } else { + d = 0; + if (vdm.exponent | vdm.significand) { + exceptions |= FPSCR_IXC; + if (rmode == FPSCR_ROUND_PLUSINF && vdm.sign == 0) + d = 1; + else if (rmode == FPSCR_ROUND_MINUSINF && vdm.sign) + d = -1; + } + } + + pr_debug("VFP: ftosi: d(s%d)=%08x exceptions=%08x\n", sd, d, exceptions); + + vfp_put_float(sd, (s32)d); + + return exceptions; +} + +static u32 vfp_double_ftosiz(int dd, int unused, int dm, u32 fpscr) +{ + return vfp_double_ftosi(dd, unused, dm, FPSCR_ROUND_TOZERO); +} + + +static u32 (* const fop_extfns[32])(int dd, int unused, int dm, u32 fpscr) = { + [FEXT_TO_IDX(FEXT_FCPY)] = vfp_double_fcpy, + [FEXT_TO_IDX(FEXT_FABS)] = vfp_double_fabs, + [FEXT_TO_IDX(FEXT_FNEG)] = vfp_double_fneg, + [FEXT_TO_IDX(FEXT_FSQRT)] = vfp_double_fsqrt, + [FEXT_TO_IDX(FEXT_FCMP)] = vfp_double_fcmp, + [FEXT_TO_IDX(FEXT_FCMPE)] = vfp_double_fcmpe, + [FEXT_TO_IDX(FEXT_FCMPZ)] = vfp_double_fcmpz, + [FEXT_TO_IDX(FEXT_FCMPEZ)] = vfp_double_fcmpez, + [FEXT_TO_IDX(FEXT_FCVT)] = vfp_double_fcvts, + [FEXT_TO_IDX(FEXT_FUITO)] = vfp_double_fuito, + [FEXT_TO_IDX(FEXT_FSITO)] = vfp_double_fsito, + [FEXT_TO_IDX(FEXT_FTOUI)] = vfp_double_ftoui, + [FEXT_TO_IDX(FEXT_FTOUIZ)] = vfp_double_ftouiz, + [FEXT_TO_IDX(FEXT_FTOSI)] = vfp_double_ftosi, + [FEXT_TO_IDX(FEXT_FTOSIZ)] = vfp_double_ftosiz, +}; + + + + +static u32 +vfp_double_fadd_nonnumber(struct vfp_double *vdd, struct vfp_double *vdn, + struct vfp_double *vdm, u32 fpscr) +{ + struct vfp_double *vdp; + u32 exceptions = 0; + int tn, tm; + + tn = vfp_double_type(vdn); + tm = vfp_double_type(vdm); + + if (tn & tm & VFP_INFINITY) { + /* + * Two infinities. Are they different signs? + */ + if (vdn->sign ^ vdm->sign) { + /* + * different signs -> invalid + */ + exceptions = FPSCR_IOC; + vdp = &vfp_double_default_qnan; + } else { + /* + * same signs -> valid + */ + vdp = vdn; + } + } else if (tn & VFP_INFINITY && tm & VFP_NUMBER) { + /* + * One infinity and one number -> infinity + */ + vdp = vdn; + } else { + /* + * 'n' is a NaN of some type + */ + return vfp_propagate_nan(vdd, vdn, vdm, fpscr); + } + *vdd = *vdp; + return exceptions; +} + +static u32 +vfp_double_add(struct vfp_double *vdd, struct vfp_double *vdn, + struct vfp_double *vdm, u32 fpscr) +{ + u32 exp_diff; + u64 m_sig; + + if (vdn->significand & (1ULL << 63) || + vdm->significand & (1ULL << 63)) { + pr_info("VFP: bad FP values in %s\n", __func__); + vfp_double_dump("VDN", vdn); + vfp_double_dump("VDM", vdm); + } + + /* + * Ensure that 'n' is the largest magnitude number. Note that + * if 'n' and 'm' have equal exponents, we do not swap them. + * This ensures that NaN propagation works correctly. + */ + if (vdn->exponent < vdm->exponent) { + struct vfp_double *t = vdn; + vdn = vdm; + vdm = t; + } + + /* + * Is 'n' an infinity or a NaN? Note that 'm' may be a number, + * infinity or a NaN here. + */ + if (vdn->exponent == 2047) + return vfp_double_fadd_nonnumber(vdd, vdn, vdm, fpscr); + + /* + * We have two proper numbers, where 'vdn' is the larger magnitude. + * + * Copy 'n' to 'd' before doing the arithmetic. + */ + *vdd = *vdn; + + /* + * Align 'm' with the result. + */ + exp_diff = vdn->exponent - vdm->exponent; + m_sig = vfp_shiftright64jamming(vdm->significand, exp_diff); + + /* + * If the signs are different, we are really subtracting. + */ + if (vdn->sign ^ vdm->sign) { + m_sig = vdn->significand - m_sig; + if ((s64)m_sig < 0) { + vdd->sign = vfp_sign_negate(vdd->sign); + m_sig = -m_sig; + } + } else { + m_sig += vdn->significand; + } + vdd->significand = m_sig; + + return 0; +} + +static u32 +vfp_double_multiply(struct vfp_double *vdd, struct vfp_double *vdn, + struct vfp_double *vdm, u32 fpscr) +{ + vfp_double_dump("VDN", vdn); + vfp_double_dump("VDM", vdm); + + /* + * Ensure that 'n' is the largest magnitude number. Note that + * if 'n' and 'm' have equal exponents, we do not swap them. + * This ensures that NaN propagation works correctly. + */ + if (vdn->exponent < vdm->exponent) { + struct vfp_double *t = vdn; + vdn = vdm; + vdm = t; + pr_debug("VFP: swapping M <-> N\n"); + } + + vdd->sign = vdn->sign ^ vdm->sign; + + /* + * If 'n' is an infinity or NaN, handle it. 'm' may be anything. + */ + if (vdn->exponent == 2047) { + if (vdn->significand || (vdm->exponent == 2047 && vdm->significand)) + return vfp_propagate_nan(vdd, vdn, vdm, fpscr); + if ((vdm->exponent | vdm->significand) == 0) { + *vdd = vfp_double_default_qnan; + return FPSCR_IOC; + } + vdd->exponent = vdn->exponent; + vdd->significand = 0; + return 0; + } + + /* + * If 'm' is zero, the result is always zero. In this case, + * 'n' may be zero or a number, but it doesn't matter which. + */ + if ((vdm->exponent | vdm->significand) == 0) { + vdd->exponent = 0; + vdd->significand = 0; + return 0; + } + + /* + * We add 2 to the destination exponent for the same reason + * as the addition case - though this time we have +1 from + * each input operand. + */ + vdd->exponent = vdn->exponent + vdm->exponent - 1023 + 2; + vdd->significand = vfp_hi64multiply64(vdn->significand, vdm->significand); + + vfp_double_dump("VDD", vdd); + return 0; +} + +#define NEG_MULTIPLY (1 << 0) +#define NEG_SUBTRACT (1 << 1) + +static u32 +vfp_double_multiply_accumulate(int dd, int dn, int dm, u32 fpscr, u32 negate, char *func) +{ + struct vfp_double vdd, vdp, vdn, vdm; + u32 exceptions; + + vfp_double_unpack(&vdn, vfp_get_double(dn)); + if (vdn.exponent == 0 && vdn.significand) + vfp_double_normalise_denormal(&vdn); + + vfp_double_unpack(&vdm, vfp_get_double(dm)); + if (vdm.exponent == 0 && vdm.significand) + vfp_double_normalise_denormal(&vdm); + + exceptions = vfp_double_multiply(&vdp, &vdn, &vdm, fpscr); + if (negate & NEG_MULTIPLY) + vdp.sign = vfp_sign_negate(vdp.sign); + + vfp_double_unpack(&vdn, vfp_get_double(dd)); + if (negate & NEG_SUBTRACT) + vdn.sign = vfp_sign_negate(vdn.sign); + + exceptions |= vfp_double_add(&vdd, &vdn, &vdp, fpscr); + + return vfp_double_normaliseround(dd, &vdd, fpscr, exceptions, func); +} + +/* + * Standard operations + */ + +/* + * sd = sd + (sn * sm) + */ +static u32 vfp_double_fmac(int dd, int dn, int dm, u32 fpscr) +{ + return vfp_double_multiply_accumulate(dd, dn, dm, fpscr, 0, "fmac"); +} + +/* + * sd = sd - (sn * sm) + */ +static u32 vfp_double_fnmac(int dd, int dn, int dm, u32 fpscr) +{ + return vfp_double_multiply_accumulate(dd, dn, dm, fpscr, NEG_MULTIPLY, "fnmac"); +} + +/* + * sd = -sd + (sn * sm) + */ +static u32 vfp_double_fmsc(int dd, int dn, int dm, u32 fpscr) +{ + return vfp_double_multiply_accumulate(dd, dn, dm, fpscr, NEG_SUBTRACT, "fmsc"); +} + +/* + * sd = -sd - (sn * sm) + */ +static u32 vfp_double_fnmsc(int dd, int dn, int dm, u32 fpscr) +{ + return vfp_double_multiply_accumulate(dd, dn, dm, fpscr, NEG_SUBTRACT | NEG_MULTIPLY, "fnmsc"); +} + +/* + * sd = sn * sm + */ +static u32 vfp_double_fmul(int dd, int dn, int dm, u32 fpscr) +{ + struct vfp_double vdd, vdn, vdm; + u32 exceptions; + + vfp_double_unpack(&vdn, vfp_get_double(dn)); + if (vdn.exponent == 0 && vdn.significand) + vfp_double_normalise_denormal(&vdn); + + vfp_double_unpack(&vdm, vfp_get_double(dm)); + if (vdm.exponent == 0 && vdm.significand) + vfp_double_normalise_denormal(&vdm); + + exceptions = vfp_double_multiply(&vdd, &vdn, &vdm, fpscr); + return vfp_double_normaliseround(dd, &vdd, fpscr, exceptions, "fmul"); +} + +/* + * sd = -(sn * sm) + */ +static u32 vfp_double_fnmul(int dd, int dn, int dm, u32 fpscr) +{ + struct vfp_double vdd, vdn, vdm; + u32 exceptions; + + vfp_double_unpack(&vdn, vfp_get_double(dn)); + if (vdn.exponent == 0 && vdn.significand) + vfp_double_normalise_denormal(&vdn); + + vfp_double_unpack(&vdm, vfp_get_double(dm)); + if (vdm.exponent == 0 && vdm.significand) + vfp_double_normalise_denormal(&vdm); + + exceptions = vfp_double_multiply(&vdd, &vdn, &vdm, fpscr); + vdd.sign = vfp_sign_negate(vdd.sign); + + return vfp_double_normaliseround(dd, &vdd, fpscr, exceptions, "fnmul"); +} + +/* + * sd = sn + sm + */ +static u32 vfp_double_fadd(int dd, int dn, int dm, u32 fpscr) +{ + struct vfp_double vdd, vdn, vdm; + u32 exceptions; + + vfp_double_unpack(&vdn, vfp_get_double(dn)); + if (vdn.exponent == 0 && vdn.significand) + vfp_double_normalise_denormal(&vdn); + + vfp_double_unpack(&vdm, vfp_get_double(dm)); + if (vdm.exponent == 0 && vdm.significand) + vfp_double_normalise_denormal(&vdm); + + exceptions = vfp_double_add(&vdd, &vdn, &vdm, fpscr); + + return vfp_double_normaliseround(dd, &vdd, fpscr, exceptions, "fadd"); +} + +/* + * sd = sn - sm + */ +static u32 vfp_double_fsub(int dd, int dn, int dm, u32 fpscr) +{ + struct vfp_double vdd, vdn, vdm; + u32 exceptions; + + vfp_double_unpack(&vdn, vfp_get_double(dn)); + if (vdn.exponent == 0 && vdn.significand) + vfp_double_normalise_denormal(&vdn); + + vfp_double_unpack(&vdm, vfp_get_double(dm)); + if (vdm.exponent == 0 && vdm.significand) + vfp_double_normalise_denormal(&vdm); + + /* + * Subtraction is like addition, but with a negated operand. + */ + vdm.sign = vfp_sign_negate(vdm.sign); + + exceptions = vfp_double_add(&vdd, &vdn, &vdm, fpscr); + + return vfp_double_normaliseround(dd, &vdd, fpscr, exceptions, "fsub"); +} + +/* + * sd = sn / sm + */ +static u32 vfp_double_fdiv(int dd, int dn, int dm, u32 fpscr) +{ + struct vfp_double vdd, vdn, vdm; + u32 exceptions = 0; + int tm, tn; + + vfp_double_unpack(&vdn, vfp_get_double(dn)); + vfp_double_unpack(&vdm, vfp_get_double(dm)); + + vdd.sign = vdn.sign ^ vdm.sign; + + tn = vfp_double_type(&vdn); + tm = vfp_double_type(&vdm); + + /* + * Is n a NAN? + */ + if (tn & VFP_NAN) + goto vdn_nan; + + /* + * Is m a NAN? + */ + if (tm & VFP_NAN) + goto vdm_nan; + + /* + * If n and m are infinity, the result is invalid + * If n and m are zero, the result is invalid + */ + if (tm & tn & (VFP_INFINITY|VFP_ZERO)) + goto invalid; + + /* + * If n is infinity, the result is infinity + */ + if (tn & VFP_INFINITY) + goto infinity; + + /* + * If m is zero, raise div0 exceptions + */ + if (tm & VFP_ZERO) + goto divzero; + + /* + * If m is infinity, or n is zero, the result is zero + */ + if (tm & VFP_INFINITY || tn & VFP_ZERO) + goto zero; + + if (tn & VFP_DENORMAL) + vfp_double_normalise_denormal(&vdn); + if (tm & VFP_DENORMAL) + vfp_double_normalise_denormal(&vdm); + + /* + * Ok, we have two numbers, we can perform division. + */ + vdd.exponent = vdn.exponent - vdm.exponent + 1023 - 1; + vdm.significand <<= 1; + if (vdm.significand <= (2 * vdn.significand)) { + vdn.significand >>= 1; + vdd.exponent++; + } + vdd.significand = vfp_estimate_div128to64(vdn.significand, 0, vdm.significand); + if ((vdd.significand & 0x1ff) <= 2) { + u64 termh, terml, remh, reml; + mul64to128(&termh, &terml, vdm.significand, vdd.significand); + sub128(&remh, &reml, vdn.significand, 0, termh, terml); + while ((s64)remh < 0) { + vdd.significand -= 1; + add128(&remh, &reml, remh, reml, 0, vdm.significand); + } + vdd.significand |= (reml != 0); + } + return vfp_double_normaliseround(dd, &vdd, fpscr, 0, "fdiv"); + + vdn_nan: + exceptions = vfp_propagate_nan(&vdd, &vdn, &vdm, fpscr); + pack: + vfp_put_double(dd, vfp_double_pack(&vdd)); + return exceptions; + + vdm_nan: + exceptions = vfp_propagate_nan(&vdd, &vdm, &vdn, fpscr); + goto pack; + + zero: + vdd.exponent = 0; + vdd.significand = 0; + goto pack; + + divzero: + exceptions = FPSCR_DZC; + infinity: + vdd.exponent = 2047; + vdd.significand = 0; + goto pack; + + invalid: + vfp_put_double(dd, vfp_double_pack(&vfp_double_default_qnan)); + return FPSCR_IOC; +} + +static u32 (* const fop_fns[16])(int dd, int dn, int dm, u32 fpscr) = { + [FOP_TO_IDX(FOP_FMAC)] = vfp_double_fmac, + [FOP_TO_IDX(FOP_FNMAC)] = vfp_double_fnmac, + [FOP_TO_IDX(FOP_FMSC)] = vfp_double_fmsc, + [FOP_TO_IDX(FOP_FNMSC)] = vfp_double_fnmsc, + [FOP_TO_IDX(FOP_FMUL)] = vfp_double_fmul, + [FOP_TO_IDX(FOP_FNMUL)] = vfp_double_fnmul, + [FOP_TO_IDX(FOP_FADD)] = vfp_double_fadd, + [FOP_TO_IDX(FOP_FSUB)] = vfp_double_fsub, + [FOP_TO_IDX(FOP_FDIV)] = vfp_double_fdiv, +}; + +#define FREG_BANK(x) ((x) & 0x0c) +#define FREG_IDX(x) ((x) & 3) + +u32 vfp_double_cpdo(u32 inst, u32 fpscr) +{ + u32 op = inst & FOP_MASK; + u32 exceptions = 0; + unsigned int dd = vfp_get_sd(inst); + unsigned int dn = vfp_get_sn(inst); + unsigned int dm = vfp_get_sm(inst); + unsigned int vecitr, veclen, vecstride; + u32 (*fop)(int, int, s32, u32); + + veclen = fpscr & FPSCR_LENGTH_MASK; + vecstride = (1 + ((fpscr & FPSCR_STRIDE_MASK) == FPSCR_STRIDE_MASK)) * 2; + + /* + * If destination bank is zero, vector length is always '1'. + * ARM DDI0100F C5.1.3, C5.3.2. + */ + if (FREG_BANK(dd) == 0) + veclen = 0; + + pr_debug("VFP: vecstride=%u veclen=%u\n", vecstride, + (veclen >> FPSCR_LENGTH_BIT) + 1); + + fop = (op == FOP_EXT) ? fop_extfns[dn] : fop_fns[FOP_TO_IDX(op)]; + if (!fop) + goto invalid; + + for (vecitr = 0; vecitr <= veclen; vecitr += 1 << FPSCR_LENGTH_BIT) { + u32 except; + + if (op == FOP_EXT) + pr_debug("VFP: itr%d (d%u.%u) = op[%u] (d%u.%u)\n", + vecitr >> FPSCR_LENGTH_BIT, + dd >> 1, dd & 1, dn, + dm >> 1, dm & 1); + else + pr_debug("VFP: itr%d (d%u.%u) = (d%u.%u) op[%u] (d%u.%u)\n", + vecitr >> FPSCR_LENGTH_BIT, + dd >> 1, dd & 1, + dn >> 1, dn & 1, + FOP_TO_IDX(op), + dm >> 1, dm & 1); + + except = fop(dd, dn, dm, fpscr); + pr_debug("VFP: itr%d: exceptions=%08x\n", + vecitr >> FPSCR_LENGTH_BIT, except); + + exceptions |= except; + + /* + * This ensures that comparisons only operate on scalars; + * comparisons always return with one FPSCR status bit set. + */ + if (except & (FPSCR_N|FPSCR_Z|FPSCR_C|FPSCR_V)) + break; + + /* + * CHECK: It appears to be undefined whether we stop when + * we encounter an exception. We continue. + */ + + dd = FREG_BANK(dd) + ((FREG_IDX(dd) + vecstride) & 6); + dn = FREG_BANK(dn) + ((FREG_IDX(dn) + vecstride) & 6); + if (FREG_BANK(dm) != 0) + dm = FREG_BANK(dm) + ((FREG_IDX(dm) + vecstride) & 6); + } + return exceptions; + + invalid: + return ~0; +} diff -Nru a/arch/arm/vfp/vfphw.S b/arch/arm/vfp/vfphw.S --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/arm/vfp/vfphw.S 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,210 @@ +/* + * linux/arch/arm/vfp/vfphw.S + * + * Copyright (C) 2004 ARM Limited. + * Written by Deep Blue Solutions Limited. + * + * 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. + * + * This code is called from the kernel's undefined instruction trap. + * r9 holds the return address for successful handling. + * lr holds the return address for unrecognised instructions. + * r10 points at the start of the private FP workspace in the thread structure + * sp points to a struct pt_regs (as defined in include/asm/proc/ptrace.h) + */ +#include +#include +#include "../kernel/entry-header.S" + + .macro DBGSTR, str +#ifdef DEBUG + stmfd sp!, {r0-r3, ip, lr} + add r0, pc, #4 + bl printk + b 1f + .asciz "<7>VFP: \str\n" + .balign 4 +1: ldmfd sp!, {r0-r3, ip, lr} +#endif + .endm + + .macro DBGSTR1, str, arg +#ifdef DEBUG + stmfd sp!, {r0-r3, ip, lr} + mov r1, \arg + add r0, pc, #4 + bl printk + b 1f + .asciz "<7>VFP: \str\n" + .balign 4 +1: ldmfd sp!, {r0-r3, ip, lr} +#endif + .endm + + .macro DBGSTR3, str, arg1, arg2, arg3 +#ifdef DEBUG + stmfd sp!, {r0-r3, ip, lr} + mov r3, \arg3 + mov r2, \arg2 + mov r1, \arg1 + add r0, pc, #4 + bl printk + b 1f + .asciz "<7>VFP: \str\n" + .balign 4 +1: ldmfd sp!, {r0-r3, ip, lr} +#endif + .endm + + +@ VFP hardware support entry point. +@ +@ r0 = faulted instruction +@ r5 = faulted PC+4 +@ r9 = successful return +@ r10 = vfp_state union +@ lr = failure return + + .globl vfp_support_entry +vfp_support_entry: + DBGSTR3 "instr %08x pc %08x state %p", r0, r5, r10 + + VFPFMRX r1, FPEXC @ Is the VFP enabled? + DBGSTR1 "fpexc %08x", r1 + tst r1, #FPEXC_ENABLE + bne look_for_VFP_exceptions @ VFP is already enabled + + DBGSTR1 "enable %x", r10 + ldr r3, last_VFP_context_address + orr r1, r1, #FPEXC_ENABLE @ user FPEXC has the enable bit set + ldr r4, [r3] @ last_VFP_context pointer + bic r2, r1, #FPEXC_EXCEPTION @ make sure exceptions are disabled + cmp r4, r10 + beq check_for_exception @ we are returning to the same + @ process, so the registers are + @ still there. In this case, we do + @ not want to drop a pending exception. + + VFPFMXR FPEXC, r2 @ enable VFP, disable any pending + @ exceptions, so we can get at the + @ rest of it + + @ Save out the current registers to the old thread state + + DBGSTR1 "save old state %p", r4 + cmp r4, #0 + beq no_old_VFP_process + VFPFMRX r2, FPSCR @ current status + VFPFMRX r6, FPINST @ FPINST (always there, rev0 onwards) + tst r1, #FPEXC_FPV2 @ is there an FPINST2 to read? + VFPFMRX r8, FPINST2, NE @ FPINST2 if needed - avoids reading + @ nonexistant reg on rev0 + VFPFSTMIA r4 @ save the working registers + add r4, r4, #8*16+4 + stmia r4, {r1, r2, r6, r8} @ save FPEXC, FPSCR, FPINST, FPINST2 + @ and point r4 at the word at the + @ start of the register dump + +no_old_VFP_process: + DBGSTR1 "load state %p", r10 + str r10, [r3] @ update the last_VFP_context pointer + @ Load the saved state back into the VFP + add r4, r10, #8*16+4 + ldmia r4, {r1, r2, r6, r8} @ load FPEXC, FPSCR, FPINST, FPINST2 + VFPFLDMIA r10 @ reload the working registers while + @ FPEXC is in a safe state + tst r1, #FPEXC_FPV2 @ is there an FPINST2 to write? + VFPFMXR FPINST2, r8, NE @ FPINST2 if needed - avoids writing + @ nonexistant reg on rev0 + VFPFMXR FPINST, r6 + VFPFMXR FPSCR, r2 @ restore status + +check_for_exception: + tst r1, #FPEXC_EXCEPTION + bne process_exception @ might as well handle the pending + @ exception before retrying branch + @ out before setting an FPEXC that + @ stops us reading stuff + VFPFMXR FPEXC, r1 @ restore FPEXC last + sub r5, r5, #4 + str r5, [sp, #S_PC] @ retry the instruction + mov pc, r9 @ we think we have handled things + + +look_for_VFP_exceptions: + tst r1, #FPEXC_EXCEPTION + bne process_exception + VFPFMRX r2, FPSCR + tst r2, #FPSCR_IXE @ IXE doesn't set FPEXC_EXCEPTION ! + bne process_exception + + @ Fall into hand on to next handler - appropriate coproc instr + @ not recognised by VFP + + DBGSTR "not VFP" + mov pc, lr + +process_exception: + DBGSTR "bounce" + sub r5, r5, #4 + str r5, [sp, #S_PC] @ retry the instruction on exit from + @ the imprecise exception handling in + @ the support code + mov r2, sp @ nothing stacked - regdump is at TOS + mov lr, r9 @ setup for a return to the user code. + + @ Now call the C code to package up the bounce to the support code + @ r0 holds the trigger instruction + @ r1 holds the FPEXC value + @ r2 pointer to register dump + b VFP9_bounce @ we have handled this - the support + @ code will raise an exception if + @ required. If not, the user code will + @ retry the faulted instruction + +last_VFP_context_address: + .word last_VFP_context + + .globl vfp_get_float +vfp_get_float: + add pc, pc, r0, lsl #3 + mov r0, r0 + .irp dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 + mrc p10, 0, r0, c\dr, c0, 0 @ fmrs r0, s0 + mov pc, lr + mrc p10, 0, r0, c\dr, c0, 4 @ fmrs r0, s1 + mov pc, lr + .endr + + .globl vfp_put_float +vfp_put_float: + add pc, pc, r0, lsl #3 + mov r0, r0 + .irp dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 + mcr p10, 0, r1, c\dr, c0, 0 @ fmsr r0, s0 + mov pc, lr + mcr p10, 0, r1, c\dr, c0, 4 @ fmsr r0, s1 + mov pc, lr + .endr + + .globl vfp_get_double +vfp_get_double: + mov r0, r0, lsr #1 + add pc, pc, r0, lsl #3 + mov r0, r0 + .irp dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 + mrrc p10, 1, r0, r1, c\dr @ fmrrd r0, r1, d\dr + mov pc, lr + .endr + + .globl vfp_put_double +vfp_put_double: + mov r0, r0, lsr #1 + add pc, pc, r0, lsl #3 + mov r0, r0 + .irp dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 + mcrr p10, 1, r1, r2, c\dr @ fmrrd r1, r2, d\dr + mov pc, lr + .endr diff -Nru a/arch/arm/vfp/vfpinstr.h b/arch/arm/vfp/vfpinstr.h --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/arm/vfp/vfpinstr.h 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,88 @@ +/* + * linux/arch/arm/vfp/vfpinstr.h + * + * Copyright (C) 2004 ARM Limited. + * Written by Deep Blue Solutions Limited. + * + * 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. + * + * VFP instruction masks. + */ +#define INST_CPRTDO(inst) (((inst) & 0x0f000000) == 0x0e000000) +#define INST_CPRT(inst) ((inst) & (1 << 4)) +#define INST_CPRT_L(inst) ((inst) & (1 << 20)) +#define INST_CPRT_Rd(inst) (((inst) & (15 << 12)) >> 12) +#define INST_CPRT_OP(inst) (((inst) >> 21) & 7) +#define INST_CPNUM(inst) ((inst) & 0xf00) +#define CPNUM(cp) ((cp) << 8) + +#define FOP_MASK (0x00b00040) +#define FOP_FMAC (0x00000000) +#define FOP_FNMAC (0x00000040) +#define FOP_FMSC (0x00100000) +#define FOP_FNMSC (0x00100040) +#define FOP_FMUL (0x00200000) +#define FOP_FNMUL (0x00200040) +#define FOP_FADD (0x00300000) +#define FOP_FSUB (0x00300040) +#define FOP_FDIV (0x00800000) +#define FOP_EXT (0x00b00040) + +#define FOP_TO_IDX(inst) ((inst & 0x00b00000) >> 20 | (inst & (1 << 6)) >> 4) + +#define FEXT_MASK (0x000f0080) +#define FEXT_FCPY (0x00000000) +#define FEXT_FABS (0x00000080) +#define FEXT_FNEG (0x00010000) +#define FEXT_FSQRT (0x00010080) +#define FEXT_FCMP (0x00040000) +#define FEXT_FCMPE (0x00040080) +#define FEXT_FCMPZ (0x00050000) +#define FEXT_FCMPEZ (0x00050080) +#define FEXT_FCVT (0x00070080) +#define FEXT_FUITO (0x00080000) +#define FEXT_FSITO (0x00080080) +#define FEXT_FTOUI (0x000c0000) +#define FEXT_FTOUIZ (0x000c0080) +#define FEXT_FTOSI (0x000d0000) +#define FEXT_FTOSIZ (0x000d0080) + +#define FEXT_TO_IDX(inst) ((inst & 0x000f0000) >> 15 | (inst & (1 << 7)) >> 7) + +#define vfp_get_sd(inst) ((inst & 0x0000f000) >> 11 | (inst & (1 << 22)) >> 22) +#define vfp_get_dd(inst) ((inst & 0x0000f000) >> 12) +#define vfp_get_sm(inst) ((inst & 0x0000000f) << 1 | (inst & (1 << 5)) >> 5) +#define vfp_get_dm(inst) ((inst & 0x0000000f)) +#define vfp_get_sn(inst) ((inst & 0x000f0000) >> 15 | (inst & (1 << 7)) >> 7) +#define vfp_get_dn(inst) ((inst & 0x000f0000) >> 16) + +#define vfp_single(inst) (((inst) & 0x0000f00) == 0xa00) + +#define FPSCR_N (1 << 31) +#define FPSCR_Z (1 << 30) +#define FPSCR_C (1 << 29) +#define FPSCR_V (1 << 28) + +/* + * Since we aren't building with -mfpu=vfp, we need to code + * these instructions using their MRC/MCR equivalents. + */ +#define vfpreg(_vfp_) #_vfp_ + +#define fmrx(_vfp_) ({ \ + u32 __v; \ + asm("mrc%? p10, 7, %0, " vfpreg(_vfp_) ", cr0, 0 @ fmrx %0, " #_vfp_ \ + : "=r" (__v)); \ + __v; \ + }) + +#define fmxr(_vfp_,_var_) \ + asm("mcr%? p10, 7, %0, " vfpreg(_vfp_) ", cr0, 0 @ fmxr " #_vfp_ ", %0" \ + : : "r" (_var_)) + +u32 vfp_single_cpdo(u32 inst, u32 fpscr); +u32 vfp_single_cprt(u32 inst, u32 fpscr, struct pt_regs *regs); + +u32 vfp_double_cpdo(u32 inst, u32 fpscr); diff -Nru a/arch/arm/vfp/vfpmodule.c b/arch/arm/vfp/vfpmodule.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/arm/vfp/vfpmodule.c 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,288 @@ +/* + * linux/arch/arm/vfp/vfpmodule.c + * + * Copyright (C) 2004 ARM Limited. + * Written by Deep Blue Solutions Limited. + * + * 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 "vfpinstr.h" +#include "vfp.h" + +/* + * Our undef handlers (in entry.S) + */ +void vfp_testing_entry(void); +void vfp_support_entry(void); + +void (*vfp_vector)(void) = vfp_testing_entry; +union vfp_state *last_VFP_context; + +/* + * Dual-use variable. + * Used in startup: set to non-zero if VFP checks fail + * After startup, holds VFP architecture + */ +unsigned int VFP_arch; + +/* + * Per-thread VFP initialisation. + */ +void vfp_flush_thread(union vfp_state *vfp) +{ + memset(vfp, 0, sizeof(union vfp_state)); + + vfp->hard.fpexc = FPEXC_ENABLE; + vfp->hard.fpscr = FPSCR_ROUND_NEAREST; + + /* + * Disable VFP to ensure we initialise it first. + */ + fmxr(FPEXC, fmrx(FPEXC) & ~FPEXC_ENABLE); + + /* + * Ensure we don't try to overwrite our newly initialised + * state information on the first fault. + */ + if (last_VFP_context == vfp) + last_VFP_context = NULL; +} + +/* + * Per-thread VFP cleanup. + */ +void vfp_release_thread(union vfp_state *vfp) +{ + if (last_VFP_context == vfp) + last_VFP_context = NULL; +} + +/* + * Raise a SIGFPE for the current process. + * sicode describes the signal being raised. + */ +void vfp_raise_sigfpe(unsigned int sicode, struct pt_regs *regs) +{ + siginfo_t info; + + memset(&info, 0, sizeof(info)); + + info.si_signo = SIGFPE; + info.si_code = sicode; + info.si_addr = (void *)(instruction_pointer(regs) - 4); + + /* + * This is the same as NWFPE, because it's not clear what + * this is used for + */ + current->thread.error_code = 0; + current->thread.trap_no = 6; + + force_sig_info(SIGFPE, &info, current); +} + +static void vfp_panic(char *reason) +{ + int i; + + printk(KERN_ERR "VFP: Error: %s\n", reason); + printk(KERN_ERR "VFP: EXC 0x%08x SCR 0x%08x INST 0x%08x\n", + fmrx(FPEXC), fmrx(FPSCR), fmrx(FPINST)); + for (i = 0; i < 32; i += 2) + printk(KERN_ERR "VFP: s%2u: 0x%08x s%2u: 0x%08x\n", + i, vfp_get_float(i), i+1, vfp_get_float(i+1)); +} + +/* + * Process bitmask of exception conditions. + */ +static void vfp_raise_exceptions(u32 exceptions, u32 inst, u32 fpscr, struct pt_regs *regs) +{ + int si_code = 0; + + pr_debug("VFP: raising exceptions %08x\n", exceptions); + + if (exceptions == (u32)-1) { + vfp_panic("unhandled bounce"); + vfp_raise_sigfpe(0, regs); + return; + } + + /* + * If any of the status flags are set, update the FPSCR. + * Comparison instructions always return at least one of + * these flags set. + */ + if (exceptions & (FPSCR_N|FPSCR_Z|FPSCR_C|FPSCR_V)) + fpscr &= ~(FPSCR_N|FPSCR_Z|FPSCR_C|FPSCR_V); + + fpscr |= exceptions; + + fmxr(FPSCR, fpscr); + +#define RAISE(stat,en,sig) \ + if (exceptions & stat && fpscr & en) \ + si_code = sig; + + /* + * These are arranged in priority order, least to highest. + */ + RAISE(FPSCR_IXC, FPSCR_IXE, FPE_FLTRES); + RAISE(FPSCR_UFC, FPSCR_UFE, FPE_FLTUND); + RAISE(FPSCR_OFC, FPSCR_OFE, FPE_FLTOVF); + RAISE(FPSCR_IOC, FPSCR_IOE, FPE_FLTINV); + + if (si_code) + vfp_raise_sigfpe(si_code, regs); +} + +/* + * Emulate a VFP instruction. + */ +static u32 vfp_emulate_instruction(u32 inst, u32 fpscr, struct pt_regs *regs) +{ + u32 exceptions = (u32)-1; + + pr_debug("VFP: emulate: INST=0x%08x SCR=0x%08x\n", inst, fpscr); + + if (INST_CPRTDO(inst)) { + if (!INST_CPRT(inst)) { + /* + * CPDO + */ + if (vfp_single(inst)) { + exceptions = vfp_single_cpdo(inst, fpscr); + } else { + exceptions = vfp_double_cpdo(inst, fpscr); + } + } else { + /* + * A CPRT instruction can not appear in FPINST2, nor + * can it cause an exception. Therefore, we do not + * have to emulate it. + */ + } + } else { + /* + * A CPDT instruction can not appear in FPINST2, nor can + * it cause an exception. Therefore, we do not have to + * emulate it. + */ + } + return exceptions; +} + +/* + * Package up a bounce condition. + */ +void VFP9_bounce(u32 trigger, u32 fpexc, struct pt_regs *regs) +{ + u32 fpscr, orig_fpscr, exceptions, inst; + + pr_debug("VFP: bounce: trigger %08x fpexc %08x\n", trigger, fpexc); + + /* + * Enable access to the VFP so we can handle the bounce. + */ + fmxr(FPEXC, fpexc & ~(FPEXC_EXCEPTION|FPEXC_INV|FPEXC_UFC|FPEXC_IOC)); + + orig_fpscr = fpscr = fmrx(FPSCR); + + /* + * If we are running with inexact exceptions enabled, we need to + * emulate the trigger instruction. Note that as we're emulating + * the trigger instruction, we need to increment PC. + */ + if (fpscr & FPSCR_IXE) { + regs->ARM_pc += 4; + goto emulate; + } + + barrier(); + + /* + * Modify fpscr to indicate the number of iterations remaining + */ + if (fpexc & FPEXC_EXCEPTION) { + u32 len; + + len = fpexc + (1 << FPEXC_LENGTH_BIT); + + fpscr &= ~FPSCR_LENGTH_MASK; + fpscr |= (len & FPEXC_LENGTH_MASK) << (FPSCR_LENGTH_BIT - FPEXC_LENGTH_BIT); + } + + /* + * Handle the first FP instruction. We used to take note of the + * FPEXC bounce reason, but this appears to be unreliable. + * Emulate the bounced instruction instead. + */ + inst = fmrx(FPINST); + exceptions = vfp_emulate_instruction(inst, fpscr, regs); + if (exceptions) + vfp_raise_exceptions(exceptions, inst, orig_fpscr, regs); + + /* + * If there isn't a second FP instruction, exit now. + */ + if (!(fpexc & FPEXC_FPV2)) + return; + + /* + * The barrier() here prevents fpinst2 being read + * before the condition above. + */ + barrier(); + trigger = fmrx(FPINST2); + fpscr = fmrx(FPSCR); + + emulate: + exceptions = vfp_emulate_instruction(trigger, fpscr, regs); + if (exceptions) + vfp_raise_exceptions(exceptions, trigger, orig_fpscr, regs); +} + +/* + * VFP support code initialisation. + */ +static int __init vfp_init(void) +{ + unsigned int vfpsid; + + /* + * First check that there is a VFP that we can use. + * The handler is already setup to just log calls, so + * we just need to read the VFPSID register. + */ + vfpsid = fmrx(FPSID); + + printk(KERN_INFO "VFP support v0.3: "); + if (VFP_arch) { + printk("not present\n"); + } else if (vfpsid & FPSID_NODOUBLE) { + printk("no double precision support\n"); + } else { + VFP_arch = (vfpsid & FPSID_ARCH_MASK) >> FPSID_ARCH_BIT; /* Extract the architecture version */ + printk("implementor %02x architecture %d part %02x variant %x rev %x\n", + (vfpsid & FPSID_IMPLEMENTER_MASK) >> FPSID_IMPLEMENTER_BIT, + (vfpsid & FPSID_ARCH_MASK) >> FPSID_ARCH_BIT, + (vfpsid & FPSID_PART_MASK) >> FPSID_PART_BIT, + (vfpsid & FPSID_VARIANT_MASK) >> FPSID_VARIANT_BIT, + (vfpsid & FPSID_REV_MASK) >> FPSID_REV_BIT); + vfp_vector = vfp_support_entry; + } + return 0; +} + +late_initcall(vfp_init); diff -Nru a/arch/arm/vfp/vfpsingle.c b/arch/arm/vfp/vfpsingle.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/arm/vfp/vfpsingle.c 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,1224 @@ +/* + * linux/arch/arm/vfp/vfpsingle.c + * + * This code is derived in part from John R. Housers softfloat library, which + * carries the following notice: + * + * =========================================================================== + * This C source file is part of the SoftFloat IEC/IEEE Floating-point + * Arithmetic Package, Release 2. + * + * Written by John R. Hauser. This work was made possible in part by the + * International Computer Science Institute, located at Suite 600, 1947 Center + * Street, Berkeley, California 94704. Funding was partially provided by the + * National Science Foundation under grant MIP-9311980. The original version + * of this code was written as part of a project to build a fixed-point vector + * processor in collaboration with the University of California at Berkeley, + * overseen by Profs. Nelson Morgan and John Wawrzynek. More information + * is available through the web page `http://HTTP.CS.Berkeley.EDU/~jhauser/ + * arithmetic/softfloat.html'. + * + * THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort + * has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT + * TIMES RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO + * PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ANY + * AND ALL LOSSES, COSTS, OR OTHER PROBLEMS ARISING FROM ITS USE. + * + * Derivative works are acceptable, even for commercial purposes, so long as + * (1) they include prominent notice that the work is derivative, and (2) they + * include prominent notice akin to these three paragraphs for those parts of + * this code that are retained. + * =========================================================================== + */ +#include +#include +#include +#include + +#include "vfpinstr.h" +#include "vfp.h" + +static struct vfp_single vfp_single_default_qnan = { + .exponent = 255, + .sign = 0, + .significand = VFP_SINGLE_SIGNIFICAND_QNAN, +}; + +static void vfp_single_dump(const char *str, struct vfp_single *s) +{ + pr_debug("VFP: %s: sign=%d exponent=%d significand=%08x\n", + str, s->sign != 0, s->exponent, s->significand); +} + +static void vfp_single_normalise_denormal(struct vfp_single *vs) +{ + int bits = 31 - fls(vs->significand); + + vfp_single_dump("normalise_denormal: in", vs); + + if (bits) { + vs->exponent -= bits - 1; + vs->significand <<= bits; + } + + vfp_single_dump("normalise_denormal: out", vs); +} + +#ifndef DEBUG +#define vfp_single_normaliseround(sd,vsd,fpscr,except,func) __vfp_single_normaliseround(sd,vsd,fpscr,except) +u32 __vfp_single_normaliseround(int sd, struct vfp_single *vs, u32 fpscr, u32 exceptions) +#else +u32 vfp_single_normaliseround(int sd, struct vfp_single *vs, u32 fpscr, u32 exceptions, const char *func) +#endif +{ + u32 significand, incr, rmode; + int exponent, shift, underflow; + + vfp_single_dump("pack: in", vs); + + /* + * Infinities and NaNs are a special case. + */ + if (vs->exponent == 255 && (vs->significand == 0 || exceptions)) + goto pack; + + /* + * Special-case zero. + */ + if (vs->significand == 0) { + vs->exponent = 0; + goto pack; + } + + exponent = vs->exponent; + significand = vs->significand; + + /* + * Normalise first. Note that we shift the significand up to + * bit 31, so we have VFP_SINGLE_LOW_BITS + 1 below the least + * significant bit. + */ + shift = 32 - fls(significand); + if (shift < 32 && shift) { + exponent -= shift; + significand <<= shift; + } + +#ifdef DEBUG + vs->exponent = exponent; + vs->significand = significand; + vfp_single_dump("pack: normalised", vs); +#endif + + /* + * Tiny number? + */ + underflow = exponent < 0; + if (underflow) { + significand = vfp_shiftright32jamming(significand, -exponent); + exponent = 0; +#ifdef DEBUG + vs->exponent = exponent; + vs->significand = significand; + vfp_single_dump("pack: tiny number", vs); +#endif + if (!(significand & ((1 << (VFP_SINGLE_LOW_BITS + 1)) - 1))) + underflow = 0; + } + + /* + * Select rounding increment. + */ + incr = 0; + rmode = fpscr & FPSCR_RMODE_MASK; + + if (rmode == FPSCR_ROUND_NEAREST) { + incr = 1 << VFP_SINGLE_LOW_BITS; + if ((significand & (1 << (VFP_SINGLE_LOW_BITS + 1))) == 0) + incr -= 1; + } else if (rmode == FPSCR_ROUND_TOZERO) { + incr = 0; + } else if ((rmode == FPSCR_ROUND_PLUSINF) ^ (vs->sign != 0)) + incr = (1 << (VFP_SINGLE_LOW_BITS + 1)) - 1; + + pr_debug("VFP: rounding increment = 0x%08x\n", incr); + + /* + * Is our rounding going to overflow? + */ + if ((significand + incr) < significand) { + exponent += 1; + significand = (significand >> 1) | (significand & 1); + incr >>= 1; +#ifdef DEBUG + vs->exponent = exponent; + vs->significand = significand; + vfp_single_dump("pack: overflow", vs); +#endif + } + + /* + * If any of the low bits (which will be shifted out of the + * number) are non-zero, the result is inexact. + */ + if (significand & ((1 << (VFP_SINGLE_LOW_BITS + 1)) - 1)) + exceptions |= FPSCR_IXC; + + /* + * Do our rounding. + */ + significand += incr; + + /* + * Infinity? + */ + if (exponent >= 254) { + exceptions |= FPSCR_OFC | FPSCR_IXC; + if (incr == 0) { + vs->exponent = 253; + vs->significand = 0x7fffffff; + } else { + vs->exponent = 255; /* infinity */ + vs->significand = 0; + } + } else { + if (significand >> (VFP_SINGLE_LOW_BITS + 1) == 0) + exponent = 0; + if (exponent || significand > 0x80000000) + underflow = 0; + if (underflow) + exceptions |= FPSCR_UFC; + vs->exponent = exponent; + vs->significand = significand >> 1; + } + + pack: + vfp_single_dump("pack: final", vs); + { + s32 d = vfp_single_pack(vs); + pr_debug("VFP: %s: d(s%d)=%08x exceptions=%08x\n", func, + sd, d, exceptions); + vfp_put_float(sd, d); + } + + return exceptions; +} + +/* + * Propagate the NaN, setting exceptions if it is signalling. + * 'n' is always a NaN. 'm' may be a number, NaN or infinity. + */ +static u32 +vfp_propagate_nan(struct vfp_single *vsd, struct vfp_single *vsn, + struct vfp_single *vsm, u32 fpscr) +{ + struct vfp_single *nan; + int tn, tm = 0; + + tn = vfp_single_type(vsn); + + if (vsm) + tm = vfp_single_type(vsm); + + if (fpscr & FPSCR_DEFAULT_NAN) + /* + * Default NaN mode - always returns a quiet NaN + */ + nan = &vfp_single_default_qnan; + else { + /* + * Contemporary mode - select the first signalling + * NAN, or if neither are signalling, the first + * quiet NAN. + */ + if (tn == VFP_SNAN || (tm != VFP_SNAN && tn == VFP_QNAN)) + nan = vsn; + else + nan = vsm; + /* + * Make the NaN quiet. + */ + nan->significand |= VFP_SINGLE_SIGNIFICAND_QNAN; + } + + *vsd = *nan; + + /* + * If one was a signalling NAN, raise invalid operation. + */ + return tn == VFP_SNAN || tm == VFP_SNAN ? FPSCR_IOC : 0x100; +} + + +/* + * Extended operations + */ +static u32 vfp_single_fabs(int sd, int unused, s32 m, u32 fpscr) +{ + vfp_put_float(sd, vfp_single_packed_abs(m)); + return 0; +} + +static u32 vfp_single_fcpy(int sd, int unused, s32 m, u32 fpscr) +{ + vfp_put_float(sd, m); + return 0; +} + +static u32 vfp_single_fneg(int sd, int unused, s32 m, u32 fpscr) +{ + vfp_put_float(sd, vfp_single_packed_negate(m)); + return 0; +} + +static const u16 sqrt_oddadjust[] = { + 0x0004, 0x0022, 0x005d, 0x00b1, 0x011d, 0x019f, 0x0236, 0x02e0, + 0x039c, 0x0468, 0x0545, 0x0631, 0x072b, 0x0832, 0x0946, 0x0a67 +}; + +static const u16 sqrt_evenadjust[] = { + 0x0a2d, 0x08af, 0x075a, 0x0629, 0x051a, 0x0429, 0x0356, 0x029e, + 0x0200, 0x0179, 0x0109, 0x00af, 0x0068, 0x0034, 0x0012, 0x0002 +}; + +u32 vfp_estimate_sqrt_significand(u32 exponent, u32 significand) +{ + int index; + u32 z, a; + + if ((significand & 0xc0000000) != 0x40000000) { + printk(KERN_WARNING "VFP: estimate_sqrt: invalid significand\n"); + } + + a = significand << 1; + index = (a >> 27) & 15; + if (exponent & 1) { + z = 0x4000 + (a >> 17) - sqrt_oddadjust[index]; + z = ((a / z) << 14) + (z << 15); + a >>= 1; + } else { + z = 0x8000 + (a >> 17) - sqrt_evenadjust[index]; + z = a / z + z; + z = (z >= 0x20000) ? 0xffff8000 : (z << 15); + if (z <= a) + return (s32)a >> 1; + } + return (u32)(((u64)a << 31) / z) + (z >> 1); +} + +static u32 vfp_single_fsqrt(int sd, int unused, s32 m, u32 fpscr) +{ + struct vfp_single vsm, vsd; + int ret, tm; + + vfp_single_unpack(&vsm, m); + tm = vfp_single_type(&vsm); + if (tm & (VFP_NAN|VFP_INFINITY)) { + struct vfp_single *vsp = &vsd; + + if (tm & VFP_NAN) + ret = vfp_propagate_nan(vsp, &vsm, NULL, fpscr); + else if (vsm.sign == 0) { + sqrt_copy: + vsp = &vsm; + ret = 0; + } else { + sqrt_invalid: + vsp = &vfp_single_default_qnan; + ret = FPSCR_IOC; + } + vfp_put_float(sd, vfp_single_pack(vsp)); + return ret; + } + + /* + * sqrt(+/- 0) == +/- 0 + */ + if (tm & VFP_ZERO) + goto sqrt_copy; + + /* + * Normalise a denormalised number + */ + if (tm & VFP_DENORMAL) + vfp_single_normalise_denormal(&vsm); + + /* + * sqrt(<0) = invalid + */ + if (vsm.sign) + goto sqrt_invalid; + + vfp_single_dump("sqrt", &vsm); + + /* + * Estimate the square root. + */ + vsd.sign = 0; + vsd.exponent = ((vsm.exponent - 127) >> 1) + 127; + vsd.significand = vfp_estimate_sqrt_significand(vsm.exponent, vsm.significand) + 2; + + vfp_single_dump("sqrt estimate", &vsd); + + /* + * And now adjust. + */ + if ((vsd.significand & VFP_SINGLE_LOW_BITS_MASK) <= 5) { + if (vsd.significand < 2) { + vsd.significand = 0xffffffff; + } else { + u64 term; + s64 rem; + vsm.significand <<= !(vsm.exponent & 1); + term = (u64)vsd.significand * vsd.significand; + rem = ((u64)vsm.significand << 32) - term; + + pr_debug("VFP: term=%016llx rem=%016llx\n", term, rem); + + while (rem < 0) { + vsd.significand -= 1; + rem += ((u64)vsd.significand << 1) | 1; + } + vsd.significand |= rem != 0; + } + } + vsd.significand = vfp_shiftright32jamming(vsd.significand, 1); + + return vfp_single_normaliseround(sd, &vsd, fpscr, 0, "fsqrt"); +} + +/* + * Equal := ZC + * Less than := N + * Greater than := C + * Unordered := CV + */ +static u32 vfp_compare(int sd, int signal_on_qnan, s32 m, u32 fpscr) +{ + s32 d; + u32 ret = 0; + + d = vfp_get_float(sd); + if (vfp_single_packed_exponent(m) == 255 && vfp_single_packed_mantissa(m)) { + ret |= FPSCR_C | FPSCR_V; + if (signal_on_qnan || !(vfp_single_packed_mantissa(m) & (1 << (VFP_SINGLE_MANTISSA_BITS - 1)))) + /* + * Signalling NaN, or signalling on quiet NaN + */ + ret |= FPSCR_IOC; + } + + if (vfp_single_packed_exponent(d) == 255 && vfp_single_packed_mantissa(d)) { + ret |= FPSCR_C | FPSCR_V; + if (signal_on_qnan || !(vfp_single_packed_mantissa(d) & (1 << (VFP_SINGLE_MANTISSA_BITS - 1)))) + /* + * Signalling NaN, or signalling on quiet NaN + */ + ret |= FPSCR_IOC; + } + + if (ret == 0) { + if (d == m || vfp_single_packed_abs(d | m) == 0) { + /* + * equal + */ + ret |= FPSCR_Z | FPSCR_C; + } else if (vfp_single_packed_sign(d ^ m)) { + /* + * different signs + */ + if (vfp_single_packed_sign(d)) + /* + * d is negative, so d < m + */ + ret |= FPSCR_N; + else + /* + * d is positive, so d > m + */ + ret |= FPSCR_C; + } else if ((vfp_single_packed_sign(d) != 0) ^ (d < m)) { + /* + * d < m + */ + ret |= FPSCR_N; + } else if ((vfp_single_packed_sign(d) != 0) ^ (d > m)) { + /* + * d > m + */ + ret |= FPSCR_C; + } + } + return ret; +} + +static u32 vfp_single_fcmp(int sd, int unused, s32 m, u32 fpscr) +{ + return vfp_compare(sd, 0, m, fpscr); +} + +static u32 vfp_single_fcmpe(int sd, int unused, s32 m, u32 fpscr) +{ + return vfp_compare(sd, 1, m, fpscr); +} + +static u32 vfp_single_fcmpz(int sd, int unused, s32 m, u32 fpscr) +{ + return vfp_compare(sd, 0, 0, fpscr); +} + +static u32 vfp_single_fcmpez(int sd, int unused, s32 m, u32 fpscr) +{ + return vfp_compare(sd, 1, 0, fpscr); +} + +static u32 vfp_single_fcvtd(int dd, int unused, s32 m, u32 fpscr) +{ + struct vfp_single vsm; + struct vfp_double vdd; + int tm; + u32 exceptions = 0; + + vfp_single_unpack(&vsm, m); + + tm = vfp_single_type(&vsm); + + /* + * If we have a signalling NaN, signal invalid operation. + */ + if (tm == VFP_SNAN) + exceptions = FPSCR_IOC; + + if (tm & VFP_DENORMAL) + vfp_single_normalise_denormal(&vsm); + + vdd.sign = vsm.sign; + vdd.significand = (u64)vsm.significand << 32; + + /* + * If we have an infinity or NaN, the exponent must be 2047. + */ + if (tm & (VFP_INFINITY|VFP_NAN)) { + vdd.exponent = 2047; + if (tm & VFP_NAN) + vdd.significand |= VFP_DOUBLE_SIGNIFICAND_QNAN; + goto pack_nan; + } else if (tm & VFP_ZERO) + vdd.exponent = 0; + else + vdd.exponent = vsm.exponent + (1023 - 127); + + /* + * Technically, if bit 0 of dd is set, this is an invalid + * instruction. However, we ignore this for efficiency. + */ + return vfp_double_normaliseround(dd, &vdd, fpscr, exceptions, "fcvtd"); + + pack_nan: + vfp_put_double(dd, vfp_double_pack(&vdd)); + return exceptions; +} + +static u32 vfp_single_fuito(int sd, int unused, s32 m, u32 fpscr) +{ + struct vfp_single vs; + + vs.sign = 0; + vs.exponent = 127 + 31 - 1; + vs.significand = (u32)m; + + return vfp_single_normaliseround(sd, &vs, fpscr, 0, "fuito"); +} + +static u32 vfp_single_fsito(int sd, int unused, s32 m, u32 fpscr) +{ + struct vfp_single vs; + + vs.sign = (m & 0x80000000) >> 16; + vs.exponent = 127 + 31 - 1; + vs.significand = vs.sign ? -m : m; + + return vfp_single_normaliseround(sd, &vs, fpscr, 0, "fsito"); +} + +static u32 vfp_single_ftoui(int sd, int unused, s32 m, u32 fpscr) +{ + struct vfp_single vsm; + u32 d, exceptions = 0; + int rmode = fpscr & FPSCR_RMODE_MASK; + int tm; + + vfp_single_unpack(&vsm, m); + vfp_single_dump("VSM", &vsm); + + /* + * Do we have a denormalised number? + */ + tm = vfp_single_type(&vsm); + if (tm & VFP_DENORMAL) + exceptions |= FPSCR_IDC; + + if (tm & VFP_NAN) + vsm.sign = 0; + + if (vsm.exponent >= 127 + 32) { + d = vsm.sign ? 0 : 0xffffffff; + exceptions = FPSCR_IOC; + } else if (vsm.exponent >= 127 - 1) { + int shift = 127 + 31 - vsm.exponent; + u32 rem, incr = 0; + + /* + * 2^0 <= m < 2^32-2^8 + */ + d = (vsm.significand << 1) >> shift; + rem = vsm.significand << (33 - shift); + + if (rmode == FPSCR_ROUND_NEAREST) { + incr = 0x80000000; + if ((d & 1) == 0) + incr -= 1; + } else if (rmode == FPSCR_ROUND_TOZERO) { + incr = 0; + } else if ((rmode == FPSCR_ROUND_PLUSINF) ^ (vsm.sign != 0)) { + incr = ~0; + } + + if ((rem + incr) < rem) { + if (d < 0xffffffff) + d += 1; + else + exceptions |= FPSCR_IOC; + } + + if (d && vsm.sign) { + d = 0; + exceptions |= FPSCR_IOC; + } else if (rem) + exceptions |= FPSCR_IXC; + } else { + d = 0; + if (vsm.exponent | vsm.significand) { + exceptions |= FPSCR_IXC; + if (rmode == FPSCR_ROUND_PLUSINF && vsm.sign == 0) + d = 1; + else if (rmode == FPSCR_ROUND_MINUSINF && vsm.sign) { + d = 0; + exceptions |= FPSCR_IOC; + } + } + } + + pr_debug("VFP: ftoui: d(s%d)=%08x exceptions=%08x\n", sd, d, exceptions); + + vfp_put_float(sd, d); + + return exceptions; +} + +static u32 vfp_single_ftouiz(int sd, int unused, s32 m, u32 fpscr) +{ + return vfp_single_ftoui(sd, unused, m, FPSCR_ROUND_TOZERO); +} + +static u32 vfp_single_ftosi(int sd, int unused, s32 m, u32 fpscr) +{ + struct vfp_single vsm; + u32 d, exceptions = 0; + int rmode = fpscr & FPSCR_RMODE_MASK; + + vfp_single_unpack(&vsm, m); + vfp_single_dump("VSM", &vsm); + + /* + * Do we have a denormalised number? + */ + if (vfp_single_type(&vsm) & VFP_DENORMAL) + exceptions |= FPSCR_IDC; + + if (vsm.exponent >= 127 + 32) { + /* + * m >= 2^31-2^7: invalid + */ + d = 0x7fffffff; + if (vsm.sign) + d = ~d; + exceptions |= FPSCR_IOC; + } else if (vsm.exponent >= 127 - 1) { + int shift = 127 + 31 - vsm.exponent; + u32 rem, incr = 0; + + /* 2^0 <= m <= 2^31-2^7 */ + d = (vsm.significand << 1) >> shift; + rem = vsm.significand << (33 - shift); + + if (rmode == FPSCR_ROUND_NEAREST) { + incr = 0x80000000; + if ((d & 1) == 0) + incr -= 1; + } else if (rmode == FPSCR_ROUND_TOZERO) { + incr = 0; + } else if ((rmode == FPSCR_ROUND_PLUSINF) ^ (vsm.sign != 0)) { + incr = ~0; + } + + if ((rem + incr) < rem && d < 0xffffffff) + d += 1; + if (d > 0x7fffffff + (vsm.sign != 0)) { + d = 0x7fffffff + (vsm.sign != 0); + exceptions |= FPSCR_IOC; + } else if (rem) + exceptions |= FPSCR_IXC; + + if (vsm.sign) + d = -d; + } else { + d = 0; + if (vsm.exponent | vsm.significand) { + exceptions |= FPSCR_IXC; + if (rmode == FPSCR_ROUND_PLUSINF && vsm.sign == 0) + d = 1; + else if (rmode == FPSCR_ROUND_MINUSINF && vsm.sign) + d = -1; + } + } + + pr_debug("VFP: ftosi: d(s%d)=%08x exceptions=%08x\n", sd, d, exceptions); + + vfp_put_float(sd, (s32)d); + + return exceptions; +} + +static u32 vfp_single_ftosiz(int sd, int unused, s32 m, u32 fpscr) +{ + return vfp_single_ftosi(sd, unused, m, FPSCR_ROUND_TOZERO); +} + +static u32 (* const fop_extfns[32])(int sd, int unused, s32 m, u32 fpscr) = { + [FEXT_TO_IDX(FEXT_FCPY)] = vfp_single_fcpy, + [FEXT_TO_IDX(FEXT_FABS)] = vfp_single_fabs, + [FEXT_TO_IDX(FEXT_FNEG)] = vfp_single_fneg, + [FEXT_TO_IDX(FEXT_FSQRT)] = vfp_single_fsqrt, + [FEXT_TO_IDX(FEXT_FCMP)] = vfp_single_fcmp, + [FEXT_TO_IDX(FEXT_FCMPE)] = vfp_single_fcmpe, + [FEXT_TO_IDX(FEXT_FCMPZ)] = vfp_single_fcmpz, + [FEXT_TO_IDX(FEXT_FCMPEZ)] = vfp_single_fcmpez, + [FEXT_TO_IDX(FEXT_FCVT)] = vfp_single_fcvtd, + [FEXT_TO_IDX(FEXT_FUITO)] = vfp_single_fuito, + [FEXT_TO_IDX(FEXT_FSITO)] = vfp_single_fsito, + [FEXT_TO_IDX(FEXT_FTOUI)] = vfp_single_ftoui, + [FEXT_TO_IDX(FEXT_FTOUIZ)] = vfp_single_ftouiz, + [FEXT_TO_IDX(FEXT_FTOSI)] = vfp_single_ftosi, + [FEXT_TO_IDX(FEXT_FTOSIZ)] = vfp_single_ftosiz, +}; + + + + + +static u32 +vfp_single_fadd_nonnumber(struct vfp_single *vsd, struct vfp_single *vsn, + struct vfp_single *vsm, u32 fpscr) +{ + struct vfp_single *vsp; + u32 exceptions = 0; + int tn, tm; + + tn = vfp_single_type(vsn); + tm = vfp_single_type(vsm); + + if (tn & tm & VFP_INFINITY) { + /* + * Two infinities. Are they different signs? + */ + if (vsn->sign ^ vsm->sign) { + /* + * different signs -> invalid + */ + exceptions = FPSCR_IOC; + vsp = &vfp_single_default_qnan; + } else { + /* + * same signs -> valid + */ + vsp = vsn; + } + } else if (tn & VFP_INFINITY && tm & VFP_NUMBER) { + /* + * One infinity and one number -> infinity + */ + vsp = vsn; + } else { + /* + * 'n' is a NaN of some type + */ + return vfp_propagate_nan(vsd, vsn, vsm, fpscr); + } + *vsd = *vsp; + return exceptions; +} + +static u32 +vfp_single_add(struct vfp_single *vsd, struct vfp_single *vsn, + struct vfp_single *vsm, u32 fpscr) +{ + u32 exp_diff, m_sig; + + if (vsn->significand & 0x80000000 || + vsm->significand & 0x80000000) { + pr_info("VFP: bad FP values in %s\n", __func__); + vfp_single_dump("VSN", vsn); + vfp_single_dump("VSM", vsm); + } + + /* + * Ensure that 'n' is the largest magnitude number. Note that + * if 'n' and 'm' have equal exponents, we do not swap them. + * This ensures that NaN propagation works correctly. + */ + if (vsn->exponent < vsm->exponent) { + struct vfp_single *t = vsn; + vsn = vsm; + vsm = t; + } + + /* + * Is 'n' an infinity or a NaN? Note that 'm' may be a number, + * infinity or a NaN here. + */ + if (vsn->exponent == 255) + return vfp_single_fadd_nonnumber(vsd, vsn, vsm, fpscr); + + /* + * We have two proper numbers, where 'vsn' is the larger magnitude. + * + * Copy 'n' to 'd' before doing the arithmetic. + */ + *vsd = *vsn; + + /* + * Align both numbers. + */ + exp_diff = vsn->exponent - vsm->exponent; + m_sig = vfp_shiftright32jamming(vsm->significand, exp_diff); + + /* + * If the signs are different, we are really subtracting. + */ + if (vsn->sign ^ vsm->sign) { + m_sig = vsn->significand - m_sig; + if ((s32)m_sig < 0) { + vsd->sign = vfp_sign_negate(vsd->sign); + m_sig = -m_sig; + } else if (m_sig == 0) { + vsd->sign = (fpscr & FPSCR_RMODE_MASK) == + FPSCR_ROUND_MINUSINF ? 0x8000 : 0; + } + } else { + m_sig = vsn->significand + m_sig; + } + vsd->significand = m_sig; + + return 0; +} + +static u32 +vfp_single_multiply(struct vfp_single *vsd, struct vfp_single *vsn, struct vfp_single *vsm, u32 fpscr) +{ + vfp_single_dump("VSN", vsn); + vfp_single_dump("VSM", vsm); + + /* + * Ensure that 'n' is the largest magnitude number. Note that + * if 'n' and 'm' have equal exponents, we do not swap them. + * This ensures that NaN propagation works correctly. + */ + if (vsn->exponent < vsm->exponent) { + struct vfp_single *t = vsn; + vsn = vsm; + vsm = t; + pr_debug("VFP: swapping M <-> N\n"); + } + + vsd->sign = vsn->sign ^ vsm->sign; + + /* + * If 'n' is an infinity or NaN, handle it. 'm' may be anything. + */ + if (vsn->exponent == 255) { + if (vsn->significand || (vsm->exponent == 255 && vsm->significand)) + return vfp_propagate_nan(vsd, vsn, vsm, fpscr); + if ((vsm->exponent | vsm->significand) == 0) { + *vsd = vfp_single_default_qnan; + return FPSCR_IOC; + } + vsd->exponent = vsn->exponent; + vsd->significand = 0; + return 0; + } + + /* + * If 'm' is zero, the result is always zero. In this case, + * 'n' may be zero or a number, but it doesn't matter which. + */ + if ((vsm->exponent | vsm->significand) == 0) { + vsd->exponent = 0; + vsd->significand = 0; + return 0; + } + + /* + * We add 2 to the destination exponent for the same reason as + * the addition case - though this time we have +1 from each + * input operand. + */ + vsd->exponent = vsn->exponent + vsm->exponent - 127 + 2; + vsd->significand = vfp_hi64to32jamming((u64)vsn->significand * vsm->significand); + + vfp_single_dump("VSD", vsd); + return 0; +} + +#define NEG_MULTIPLY (1 << 0) +#define NEG_SUBTRACT (1 << 1) + +static u32 +vfp_single_multiply_accumulate(int sd, int sn, s32 m, u32 fpscr, u32 negate, char *func) +{ + struct vfp_single vsd, vsp, vsn, vsm; + u32 exceptions; + s32 v; + + v = vfp_get_float(sn); + pr_debug("VFP: s%u = %08x\n", sn, v); + vfp_single_unpack(&vsn, v); + if (vsn.exponent == 0 && vsn.significand) + vfp_single_normalise_denormal(&vsn); + + vfp_single_unpack(&vsm, m); + if (vsm.exponent == 0 && vsm.significand) + vfp_single_normalise_denormal(&vsm); + + exceptions = vfp_single_multiply(&vsp, &vsn, &vsm, fpscr); + if (negate & NEG_MULTIPLY) + vsp.sign = vfp_sign_negate(vsp.sign); + + v = vfp_get_float(sd); + pr_debug("VFP: s%u = %08x\n", sd, v); + vfp_single_unpack(&vsn, v); + if (negate & NEG_SUBTRACT) + vsn.sign = vfp_sign_negate(vsn.sign); + + exceptions |= vfp_single_add(&vsd, &vsn, &vsp, fpscr); + + return vfp_single_normaliseround(sd, &vsd, fpscr, exceptions, func); +} + +/* + * Standard operations + */ + +/* + * sd = sd + (sn * sm) + */ +static u32 vfp_single_fmac(int sd, int sn, s32 m, u32 fpscr) +{ + return vfp_single_multiply_accumulate(sd, sn, m, fpscr, 0, "fmac"); +} + +/* + * sd = sd - (sn * sm) + */ +static u32 vfp_single_fnmac(int sd, int sn, s32 m, u32 fpscr) +{ + return vfp_single_multiply_accumulate(sd, sn, m, fpscr, NEG_MULTIPLY, "fnmac"); +} + +/* + * sd = -sd + (sn * sm) + */ +static u32 vfp_single_fmsc(int sd, int sn, s32 m, u32 fpscr) +{ + return vfp_single_multiply_accumulate(sd, sn, m, fpscr, NEG_SUBTRACT, "fmsc"); +} + +/* + * sd = -sd - (sn * sm) + */ +static u32 vfp_single_fnmsc(int sd, int sn, s32 m, u32 fpscr) +{ + return vfp_single_multiply_accumulate(sd, sn, m, fpscr, NEG_SUBTRACT | NEG_MULTIPLY, "fnmsc"); +} + +/* + * sd = sn * sm + */ +static u32 vfp_single_fmul(int sd, int sn, s32 m, u32 fpscr) +{ + struct vfp_single vsd, vsn, vsm; + u32 exceptions; + s32 n = vfp_get_float(sn); + + pr_debug("VFP: s%u = %08x\n", sn, n); + + vfp_single_unpack(&vsn, n); + if (vsn.exponent == 0 && vsn.significand) + vfp_single_normalise_denormal(&vsn); + + vfp_single_unpack(&vsm, m); + if (vsm.exponent == 0 && vsm.significand) + vfp_single_normalise_denormal(&vsm); + + exceptions = vfp_single_multiply(&vsd, &vsn, &vsm, fpscr); + return vfp_single_normaliseround(sd, &vsd, fpscr, exceptions, "fmul"); +} + +/* + * sd = -(sn * sm) + */ +static u32 vfp_single_fnmul(int sd, int sn, s32 m, u32 fpscr) +{ + struct vfp_single vsd, vsn, vsm; + u32 exceptions; + s32 n = vfp_get_float(sn); + + pr_debug("VFP: s%u = %08x\n", sn, n); + + vfp_single_unpack(&vsn, n); + if (vsn.exponent == 0 && vsn.significand) + vfp_single_normalise_denormal(&vsn); + + vfp_single_unpack(&vsm, m); + if (vsm.exponent == 0 && vsm.significand) + vfp_single_normalise_denormal(&vsm); + + exceptions = vfp_single_multiply(&vsd, &vsn, &vsm, fpscr); + vsd.sign = vfp_sign_negate(vsd.sign); + return vfp_single_normaliseround(sd, &vsd, fpscr, exceptions, "fnmul"); +} + +/* + * sd = sn + sm + */ +static u32 vfp_single_fadd(int sd, int sn, s32 m, u32 fpscr) +{ + struct vfp_single vsd, vsn, vsm; + u32 exceptions; + s32 n = vfp_get_float(sn); + + pr_debug("VFP: s%u = %08x\n", sn, n); + + /* + * Unpack and normalise denormals. + */ + vfp_single_unpack(&vsn, n); + if (vsn.exponent == 0 && vsn.significand) + vfp_single_normalise_denormal(&vsn); + + vfp_single_unpack(&vsm, m); + if (vsm.exponent == 0 && vsm.significand) + vfp_single_normalise_denormal(&vsm); + + exceptions = vfp_single_add(&vsd, &vsn, &vsm, fpscr); + + return vfp_single_normaliseround(sd, &vsd, fpscr, exceptions, "fadd"); +} + +/* + * sd = sn - sm + */ +static u32 vfp_single_fsub(int sd, int sn, s32 m, u32 fpscr) +{ + /* + * Subtraction is addition with one sign inverted. + */ + return vfp_single_fadd(sd, sn, vfp_single_packed_negate(m), fpscr); +} + +/* + * sd = sn / sm + */ +static u32 vfp_single_fdiv(int sd, int sn, s32 m, u32 fpscr) +{ + struct vfp_single vsd, vsn, vsm; + u32 exceptions = 0; + s32 n = vfp_get_float(sn); + int tm, tn; + + pr_debug("VFP: s%u = %08x\n", sn, n); + + vfp_single_unpack(&vsn, n); + vfp_single_unpack(&vsm, m); + + vsd.sign = vsn.sign ^ vsm.sign; + + tn = vfp_single_type(&vsn); + tm = vfp_single_type(&vsm); + + /* + * Is n a NAN? + */ + if (tn & VFP_NAN) + goto vsn_nan; + + /* + * Is m a NAN? + */ + if (tm & VFP_NAN) + goto vsm_nan; + + /* + * If n and m are infinity, the result is invalid + * If n and m are zero, the result is invalid + */ + if (tm & tn & (VFP_INFINITY|VFP_ZERO)) + goto invalid; + + /* + * If n is infinity, the result is infinity + */ + if (tn & VFP_INFINITY) + goto infinity; + + /* + * If m is zero, raise div0 exception + */ + if (tm & VFP_ZERO) + goto divzero; + + /* + * If m is infinity, or n is zero, the result is zero + */ + if (tm & VFP_INFINITY || tn & VFP_ZERO) + goto zero; + + if (tn & VFP_DENORMAL) + vfp_single_normalise_denormal(&vsn); + if (tm & VFP_DENORMAL) + vfp_single_normalise_denormal(&vsm); + + /* + * Ok, we have two numbers, we can perform division. + */ + vsd.exponent = vsn.exponent - vsm.exponent + 127 - 1; + vsm.significand <<= 1; + if (vsm.significand <= (2 * vsn.significand)) { + vsn.significand >>= 1; + vsd.exponent++; + } + vsd.significand = ((u64)vsn.significand << 32) / vsm.significand; + if ((vsd.significand & 0x3f) == 0) + vsd.significand |= ((u64)vsm.significand * vsd.significand != (u64)vsn.significand << 32); + + return vfp_single_normaliseround(sd, &vsd, fpscr, 0, "fdiv"); + + vsn_nan: + exceptions = vfp_propagate_nan(&vsd, &vsn, &vsm, fpscr); + pack: + vfp_put_float(sd, vfp_single_pack(&vsd)); + return exceptions; + + vsm_nan: + exceptions = vfp_propagate_nan(&vsd, &vsm, &vsn, fpscr); + goto pack; + + zero: + vsd.exponent = 0; + vsd.significand = 0; + goto pack; + + divzero: + exceptions = FPSCR_DZC; + infinity: + vsd.exponent = 255; + vsd.significand = 0; + goto pack; + + invalid: + vfp_put_float(sd, vfp_single_pack(&vfp_single_default_qnan)); + return FPSCR_IOC; +} + +static u32 (* const fop_fns[16])(int sd, int sn, s32 m, u32 fpscr) = { + [FOP_TO_IDX(FOP_FMAC)] = vfp_single_fmac, + [FOP_TO_IDX(FOP_FNMAC)] = vfp_single_fnmac, + [FOP_TO_IDX(FOP_FMSC)] = vfp_single_fmsc, + [FOP_TO_IDX(FOP_FNMSC)] = vfp_single_fnmsc, + [FOP_TO_IDX(FOP_FMUL)] = vfp_single_fmul, + [FOP_TO_IDX(FOP_FNMUL)] = vfp_single_fnmul, + [FOP_TO_IDX(FOP_FADD)] = vfp_single_fadd, + [FOP_TO_IDX(FOP_FSUB)] = vfp_single_fsub, + [FOP_TO_IDX(FOP_FDIV)] = vfp_single_fdiv, +}; + +#define FREG_BANK(x) ((x) & 0x18) +#define FREG_IDX(x) ((x) & 7) + +u32 vfp_single_cpdo(u32 inst, u32 fpscr) +{ + u32 op = inst & FOP_MASK; + u32 exceptions = 0; + unsigned int sd = vfp_get_sd(inst); + unsigned int sn = vfp_get_sn(inst); + unsigned int sm = vfp_get_sm(inst); + unsigned int vecitr, veclen, vecstride; + u32 (*fop)(int, int, s32, u32); + + veclen = fpscr & FPSCR_LENGTH_MASK; + vecstride = 1 + ((fpscr & FPSCR_STRIDE_MASK) == FPSCR_STRIDE_MASK); + + /* + * If destination bank is zero, vector length is always '1'. + * ARM DDI0100F C5.1.3, C5.3.2. + */ + if (FREG_BANK(sd) == 0) + veclen = 0; + + pr_debug("VFP: vecstride=%u veclen=%u\n", vecstride, + (veclen >> FPSCR_LENGTH_BIT) + 1); + + fop = (op == FOP_EXT) ? fop_extfns[sn] : fop_fns[FOP_TO_IDX(op)]; + if (!fop) + goto invalid; + + for (vecitr = 0; vecitr <= veclen; vecitr += 1 << FPSCR_LENGTH_BIT) { + s32 m = vfp_get_float(sm); + u32 except; + + if (op == FOP_EXT) + pr_debug("VFP: itr%d (s%u) = op[%u] (s%u=%08x)\n", + vecitr >> FPSCR_LENGTH_BIT, sd, sn, sm, m); + else + pr_debug("VFP: itr%d (s%u) = (s%u) op[%u] (s%u=%08x)\n", + vecitr >> FPSCR_LENGTH_BIT, sd, sn, + FOP_TO_IDX(op), sm, m); + + except = fop(sd, sn, m, fpscr); + pr_debug("VFP: itr%d: exceptions=%08x\n", + vecitr >> FPSCR_LENGTH_BIT, except); + + exceptions |= except; + + /* + * This ensures that comparisons only operate on scalars; + * comparisons always return with one FPSCR status bit set. + */ + if (except & (FPSCR_N|FPSCR_Z|FPSCR_C|FPSCR_V)) + break; + + /* + * CHECK: It appears to be undefined whether we stop when + * we encounter an exception. We continue. + */ + + sd = FREG_BANK(sd) + ((FREG_IDX(sd) + vecstride) & 7); + sn = FREG_BANK(sn) + ((FREG_IDX(sn) + vecstride) & 7); + if (FREG_BANK(sm) != 0) + sm = FREG_BANK(sm) + ((FREG_IDX(sm) + vecstride) & 7); + } + return exceptions; + + invalid: + return (u32)-1; +} diff -Nru a/arch/arm26/kernel/init_task.c b/arch/arm26/kernel/init_task.c --- a/arch/arm26/kernel/init_task.c 2004-06-28 18:21:54 -07:00 +++ b/arch/arm26/kernel/init_task.c 2004-06-28 18:21:54 -07:00 @@ -10,6 +10,7 @@ #include #include #include +#include #include #include diff -Nru a/arch/arm26/kernel/irq.c b/arch/arm26/kernel/irq.c --- a/arch/arm26/kernel/irq.c 2004-06-28 18:21:59 -07:00 +++ b/arch/arm26/kernel/irq.c 2004-06-28 18:21:59 -07:00 @@ -549,7 +549,7 @@ action->handler = handler; action->flags = irq_flags; - action->mask = 0; + cpus_clear(action->mask); action->name = devname; action->next = NULL; action->dev_id = dev_id; diff -Nru a/arch/arm26/kernel/setup.c b/arch/arm26/kernel/setup.c --- a/arch/arm26/kernel/setup.c 2004-06-28 18:21:54 -07:00 +++ b/arch/arm26/kernel/setup.c 2004-06-28 18:21:54 -07:00 @@ -76,7 +76,6 @@ unsigned char aux_device_present; char elf_platform[ELF_PLATFORM_SIZE]; -char saved_command_line[COMMAND_LINE_SIZE]; unsigned long phys_initrd_start __initdata = 0; unsigned long phys_initrd_size __initdata = 0; diff -Nru a/arch/arm26/mm/init.c b/arch/arm26/mm/init.c --- a/arch/arm26/mm/init.c 2004-06-28 18:21:59 -07:00 +++ b/arch/arm26/mm/init.c 2004-06-28 18:21:59 -07:00 @@ -67,7 +67,7 @@ printk("Mem-info:\n"); show_free_areas(); - printk("Free swap: %6dkB\n",nr_swap_pages<<(PAGE_SHIFT-10)); + printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10)); page = NODE_MEM_MAP(0); diff -Nru a/arch/cris/arch-v10/kernel/time.c b/arch/cris/arch-v10/kernel/time.c --- a/arch/cris/arch-v10/kernel/time.c 2004-06-28 18:21:57 -07:00 +++ b/arch/cris/arch-v10/kernel/time.c 2004-06-28 18:21:57 -07:00 @@ -253,7 +253,7 @@ */ static struct irqaction irq2 = { timer_interrupt, SA_SHIRQ | SA_INTERRUPT, - 0, "timer", NULL, NULL}; + CPU_MASK_NONE, "timer", NULL, NULL}; void __init time_init(void) diff -Nru a/arch/cris/kernel/irq.c b/arch/cris/kernel/irq.c --- a/arch/cris/kernel/irq.c 2004-06-28 18:21:59 -07:00 +++ b/arch/cris/kernel/irq.c 2004-06-28 18:21:59 -07:00 @@ -240,7 +240,7 @@ action->handler = handler; action->flags = irqflags; - action->mask = 0; + cpus_clear(action->mask); action->name = devname; action->next = NULL; action->dev_id = dev_id; diff -Nru a/arch/cris/kernel/process.c b/arch/cris/kernel/process.c --- a/arch/cris/kernel/process.c 2004-06-28 18:21:57 -07:00 +++ b/arch/cris/kernel/process.c 2004-06-28 18:21:57 -07:00 @@ -112,6 +112,7 @@ #include #include #include +#include //#define DEBUG diff -Nru a/arch/cris/kernel/setup.c b/arch/cris/kernel/setup.c --- a/arch/cris/kernel/setup.c 2004-06-28 18:21:59 -07:00 +++ b/arch/cris/kernel/setup.c 2004-06-28 18:21:59 -07:00 @@ -18,6 +18,8 @@ #include #include +#include + /* * Setup options */ @@ -29,10 +31,7 @@ extern int root_mountflags; extern char _etext, _edata, _end; -#define COMMAND_LINE_SIZE 256 - static char command_line[COMMAND_LINE_SIZE] = { 0, }; - char saved_command_line[COMMAND_LINE_SIZE]; extern const unsigned long text_start, edata; /* set by the linker script */ extern unsigned long dram_start, dram_end; diff -Nru a/arch/cris/mm/init.c b/arch/cris/mm/init.c --- a/arch/cris/mm/init.c 2004-06-28 18:21:56 -07:00 +++ b/arch/cris/mm/init.c 2004-06-28 18:21:56 -07:00 @@ -138,7 +138,7 @@ printk("\nMem-info:\n"); show_free_areas(); - printk("Free swap: %6dkB\n",nr_swap_pages<<(PAGE_SHIFT-10)); + printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10)); i = max_mapnr; while (i-- > 0) { total++; diff -Nru a/arch/h8300/Kconfig b/arch/h8300/Kconfig --- a/arch/h8300/Kconfig 2004-06-28 18:21:58 -07:00 +++ b/arch/h8300/Kconfig 2004-06-28 18:21:58 -07:00 @@ -223,7 +223,7 @@ config CONFIG_SH_STANDARD_BIOS bool "Use gdb protocol serial console" - depends on (!H8300H_SIM && H8S_SIM) + depends on (!H8300H_SIM && !H8S_SIM) help serial console output using GDB protocol. Require eCos/RedBoot diff -Nru a/arch/h8300/kernel/init_task.c b/arch/h8300/kernel/init_task.c --- a/arch/h8300/kernel/init_task.c 2004-06-28 18:21:54 -07:00 +++ b/arch/h8300/kernel/init_task.c 2004-06-28 18:21:54 -07:00 @@ -7,6 +7,7 @@ #include #include #include +#include #include #include diff -Nru a/arch/h8300/kernel/ptrace.c b/arch/h8300/kernel/ptrace.c --- a/arch/h8300/kernel/ptrace.c 2004-06-28 18:21:55 -07:00 +++ b/arch/h8300/kernel/ptrace.c 2004-06-28 18:21:55 -07:00 @@ -116,18 +116,36 @@ case PTRACE_PEEKUSR: { unsigned long tmp; - if ((addr & 3) || addr < 0 || addr >= sizeof(struct user)) + if ((addr & 3) || addr < 0 || addr >= sizeof(struct user)) { ret = -EIO; + break ; + } - tmp = 0; /* Default return condition */ + ret = 0; /* Default return condition */ addr = addr >> 2; /* temporary hack. */ + if (addr < H8300_REGS_NO) tmp = h8300_get_reg(child, addr); else { - ret = -EIO; - break ; + switch(addr) { + case 49: + tmp = child->mm->start_code; + break ; + case 50: + tmp = child->mm->start_data; + break ; + case 51: + tmp = child->mm->end_code; + break ; + case 52: + tmp = child->mm->end_data; + break ; + default: + ret = -EIO; + } } - ret = put_user(tmp,(unsigned long *) data); + if (!ret) + ret = put_user(tmp,(unsigned long *) data); break ; } diff -Nru a/arch/h8300/kernel/setup.c b/arch/h8300/kernel/setup.c --- a/arch/h8300/kernel/setup.c 2004-06-28 18:21:54 -07:00 +++ b/arch/h8300/kernel/setup.c 2004-06-28 18:21:54 -07:00 @@ -30,6 +30,7 @@ #include #include #include +#include #include #include @@ -54,8 +55,7 @@ unsigned long memory_start; unsigned long memory_end; -char command_line[512]; -char saved_command_line[512]; +char command_line[COMMAND_LINE_SIZE]; extern int _stext, _etext, _sdata, _edata, _sbss, _ebss, _end; extern int _ramstart, _ramend; @@ -155,8 +155,8 @@ #endif /* Keep a copy of command line */ *cmdline_p = &command_line[0]; - memcpy(saved_command_line, command_line, sizeof(saved_command_line)); - saved_command_line[sizeof(saved_command_line)-1] = 0; + memcpy(saved_command_line, command_line, COMMAND_LINE_SIZE); + saved_command_line[COMMAND_LINE_SIZE-1] = 0; #ifdef DEBUG if (strlen(*cmdline_p)) diff -Nru a/arch/h8300/platform/h8s/entry.S b/arch/h8300/platform/h8s/entry.S --- a/arch/h8300/platform/h8s/entry.S 2004-06-28 18:21:58 -07:00 +++ b/arch/h8300/platform/h8s/entry.S 2004-06-28 18:21:58 -07:00 @@ -83,6 +83,7 @@ mov.l @(LER0-LER1:16,sp),er1 /* restore ER0 */ mov.l er1,@er0 mov.w @(LEXR-LER1:16,sp),r1 /* restore EXR */ + mov.b r1l,r1h mov.w r1,@(8:16,er0) mov.w @(LCCR-LER1:16,sp),r1 /* restore the RET addr */ mov.b r1l,r1h @@ -213,7 +214,6 @@ mov.l er0,@(LER0:16,sp) /* save the return value */ jsr @SYMBOL_NAME(syscall_trace) bra SYMBOL_NAME(ret_from_exception):8 - SYMBOL_NAME_LABEL(ret_from_fork) mov.l er2,er0 diff -Nru a/arch/h8300/platform/h8s/ptrace_h8s.c b/arch/h8300/platform/h8s/ptrace_h8s.c --- a/arch/h8300/platform/h8s/ptrace_h8s.c 2004-06-28 18:21:54 -07:00 +++ b/arch/h8300/platform/h8s/ptrace_h8s.c 2004-06-28 18:21:54 -07:00 @@ -23,7 +23,7 @@ static const int h8300_register_offset[] = { PT_REG(er1), PT_REG(er2), PT_REG(er3), PT_REG(er4), PT_REG(er5), PT_REG(er6), PT_REG(er0), PT_REG(orig_er0), - PT_REG(ccr), PT_REG(pc), PT_REG(exr) + PT_REG(ccr), PT_REG(pc), 0, PT_REG(exr) }; /* read register */ diff -Nru a/arch/i386/Kconfig b/arch/i386/Kconfig --- a/arch/i386/Kconfig 2004-06-28 18:21:54 -07:00 +++ b/arch/i386/Kconfig 2004-06-28 18:21:54 -07:00 @@ -436,7 +436,8 @@ Choose N to continue using the legacy 8254 timer. config HPET_EMULATE_RTC - def_bool HPET_TIMER && RTC=y + bool "Provide RTC interrupt" + depends on HPET_TIMER && RTC=y config SMP bool "Symmetric multi-processing support" @@ -1333,12 +1334,6 @@ config X86_TRAMPOLINE bool depends on X86_SMP || (X86_VOYAGER && SMP) - default y - -# std_resources is overridden for pc9800, but that's not -# a currently selectable arch choice -config X86_STD_RESOURCES - bool default y config PC diff -Nru a/arch/i386/Makefile b/arch/i386/Makefile --- a/arch/i386/Makefile 2004-06-28 18:21:55 -07:00 +++ b/arch/i386/Makefile 2004-06-28 18:21:55 -07:00 @@ -121,22 +121,23 @@ all: bzImage -BOOTIMAGE=arch/i386/boot/bzImage -zImage zlilo zdisk: BOOTIMAGE=arch/i386/boot/zImage +# KBUILD_IMAGE specify target image being built + KBUILD_IMAGE := $(boot)/bzImage +zImage zlilo zdisk: KBUILD_IMAGE := arch/i386/boot/zImage zImage bzImage: vmlinux - $(Q)$(MAKE) $(build)=$(boot) $(BOOTIMAGE) + $(Q)$(MAKE) $(build)=$(boot) $(KBUILD_IMAGE) compressed: zImage zlilo bzlilo: vmlinux - $(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(BOOTIMAGE) zlilo + $(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(KBUILD_IMAGE) zlilo zdisk bzdisk: vmlinux - $(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(BOOTIMAGE) zdisk + $(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(KBUILD_IMAGE) zdisk install fdimage fdimage144 fdimage288: vmlinux - $(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(BOOTIMAGE) $@ + $(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(KBUILD_IMAGE) $@ prepare: include/asm-$(ARCH)/asm_offsets.h CLEAN_FILES += include/asm-$(ARCH)/asm_offsets.h diff -Nru a/arch/i386/boot/compressed/misc.c b/arch/i386/boot/compressed/misc.c --- a/arch/i386/boot/compressed/misc.c 2004-06-28 18:21:57 -07:00 +++ b/arch/i386/boot/compressed/misc.c 2004-06-28 18:21:57 -07:00 @@ -87,12 +87,11 @@ */ static unsigned char *real_mode; /* Pointer to real-mode data */ -#define EXT_MEM_K (*(unsigned short *)(real_mode + 0x2)) +#define RM_EXT_MEM_K (*(unsigned short *)(real_mode + 0x2)) #ifndef STANDARD_MEMORY_BIOS_CALL -#define ALT_MEM_K (*(unsigned long *)(real_mode + 0x1e0)) +#define RM_ALT_MEM_K (*(unsigned long *)(real_mode + 0x1e0)) #endif -#define SCREEN_INFO (*(struct screen_info *)(real_mode+0)) -#define EDID_INFO (*(struct edid_info *)(real_mode+0x440)) +#define RM_SCREEN_INFO (*(struct screen_info *)(real_mode+0)) extern char input_data[]; extern int input_len; @@ -174,8 +173,8 @@ int x,y,pos; char c; - x = SCREEN_INFO.orig_x; - y = SCREEN_INFO.orig_y; + x = RM_SCREEN_INFO.orig_x; + y = RM_SCREEN_INFO.orig_y; while ( ( c = *s++ ) != '\0' ) { if ( c == '\n' ) { @@ -196,8 +195,8 @@ } } - SCREEN_INFO.orig_x = x; - SCREEN_INFO.orig_y = y; + RM_SCREEN_INFO.orig_x = x; + RM_SCREEN_INFO.orig_y = y; pos = (x + cols * y) * 2; /* Update cursor position */ outb_p(14, vidport); @@ -306,9 +305,9 @@ static void setup_normal_output_buffer(void) { #ifdef STANDARD_MEMORY_BIOS_CALL - if (EXT_MEM_K < 1024) error("Less than 2MB of memory"); + if (RM_EXT_MEM_K < 1024) error("Less than 2MB of memory"); #else - if ((ALT_MEM_K > EXT_MEM_K ? ALT_MEM_K : EXT_MEM_K) < 1024) error("Less than 2MB of memory"); + if ((RM_ALT_MEM_K > RM_EXT_MEM_K ? RM_ALT_MEM_K : RM_EXT_MEM_K) < 1024) error("Less than 2MB of memory"); #endif output_data = (char *)0x100000; /* Points to 1M */ free_mem_end_ptr = (long)real_mode; @@ -323,9 +322,11 @@ { high_buffer_start = (uch *)(((ulg)&end) + HEAP_SIZE); #ifdef STANDARD_MEMORY_BIOS_CALL - if (EXT_MEM_K < (3*1024)) error("Less than 4MB of memory"); + if (RM_EXT_MEM_K < (3*1024)) error("Less than 4MB of memory"); #else - if ((ALT_MEM_K > EXT_MEM_K ? ALT_MEM_K : EXT_MEM_K) < (3*1024)) error("Less than 4MB of memory"); + if ((RM_ALT_MEM_K > RM_EXT_MEM_K ? RM_ALT_MEM_K : RM_EXT_MEM_K) < + (3*1024)) + error("Less than 4MB of memory"); #endif mv->low_buffer_start = output_data = (char *)LOW_BUFFER_START; low_buffer_end = ((unsigned int)real_mode > LOW_BUFFER_MAX @@ -358,7 +359,7 @@ { real_mode = rmode; - if (SCREEN_INFO.orig_video_mode == 7) { + if (RM_SCREEN_INFO.orig_video_mode == 7) { vidmem = (char *) 0xb0000; vidport = 0x3b4; } else { @@ -366,8 +367,8 @@ vidport = 0x3d4; } - lines = SCREEN_INFO.orig_video_lines; - cols = SCREEN_INFO.orig_video_cols; + lines = RM_SCREEN_INFO.orig_video_lines; + cols = RM_SCREEN_INFO.orig_video_cols; if (free_mem_ptr < 0x100000) setup_normal_output_buffer(); else setup_output_buffer_if_we_run_high(mv); diff -Nru a/arch/i386/boot98/Makefile b/arch/i386/boot98/Makefile --- a/arch/i386/boot98/Makefile 2004-06-28 18:21:56 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,102 +0,0 @@ -# -# arch/i386/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) 1994 by Linus Torvalds -# - -# ROOT_DEV specifies the default root-device when making the image. -# This can be either FLOPPY, CURRENT, /dev/xxxx or empty, in which case -# the default of FLOPPY is used by 'build'. - -ROOT_DEV := CURRENT - -# If you want to preset the SVGA mode, uncomment the next line and -# set SVGA_MODE to whatever number you want. -# Set it to -DSVGA_MODE=NORMAL_VGA if you just want the EGA/VGA mode. -# The number is the same as you would ordinarily press at bootup. - -SVGA_MODE := -DSVGA_MODE=NORMAL_VGA - -# If you want the RAM disk device, define this to be the size in blocks. - -#RAMDISK := -DRAMDISK=512 - -targets := vmlinux.bin bootsect bootsect.o setup setup.o \ - zImage bzImage -subdir- := compressed - -host-progs := tools/build - -# --------------------------------------------------------------------------- - -$(obj)/zImage: IMAGE_OFFSET := 0x1000 -$(obj)/zImage: EXTRA_AFLAGS := -traditional $(SVGA_MODE) $(RAMDISK) -$(obj)/bzImage: IMAGE_OFFSET := 0x100000 -$(obj)/bzImage: EXTRA_AFLAGS := -traditional $(SVGA_MODE) $(RAMDISK) -D__BIG_KERNEL__ -$(obj)/bzImage: BUILDFLAGS := -b - -quiet_cmd_image = BUILD $@ -cmd_image = $(obj)/tools/build $(BUILDFLAGS) $(obj)/bootsect $(obj)/setup \ - $(obj)/vmlinux.bin $(ROOT_DEV) > $@ - -$(obj)/zImage $(obj)/bzImage: $(obj)/bootsect $(obj)/setup \ - $(obj)/vmlinux.bin $(obj)/tools/build FORCE - $(call if_changed,image) - @echo 'Kernel: $@ is ready' - -$(obj)/vmlinux.bin: $(obj)/compressed/vmlinux FORCE - $(call if_changed,objcopy) - -LDFLAGS_bootsect := -Ttext 0x0 -s --oformat binary -LDFLAGS_setup := -Ttext 0x0 -s --oformat binary -e begtext - -$(obj)/setup $(obj)/bootsect: %: %.o FORCE - $(call if_changed,ld) - -$(obj)/compressed/vmlinux: FORCE - $(Q)$(MAKE) $(build)=$(obj)/compressed IMAGE_OFFSET=$(IMAGE_OFFSET) $@ - -# Set this if you want to pass append arguments to the zdisk/fdimage kernel -FDARGS = - -$(obj)/mtools.conf: $(src)/mtools.conf.in - sed -e 's|@OBJ@|$(obj)|g' < $< > $@ - -# This requires write access to /dev/fd0 -zdisk: $(BOOTIMAGE) $(obj)/mtools.conf - MTOOLSRC=$(obj)/mtools.conf mformat a: ; sync - syslinux /dev/fd0 ; sync - echo 'default linux $(FDARGS)' | \ - MTOOLSRC=$(src)/mtools.conf mcopy - a:syslinux.cfg - MTOOLSRC=$(obj)/mtools.conf mcopy $(BOOTIMAGE) a:linux ; sync - -# These require being root or having syslinux 2.02 or higher installed -fdimage fdimage144: $(BOOTIMAGE) $(obj)/mtools.conf - dd if=/dev/zero of=$(obj)/fdimage bs=1024 count=1440 - MTOOLSRC=$(obj)/mtools.conf mformat v: ; sync - syslinux $(obj)/fdimage ; sync - echo 'default linux $(FDARGS)' | \ - MTOOLSRC=$(obj)/mtools.conf mcopy - v:syslinux.cfg - MTOOLSRC=$(obj)/mtools.conf mcopy $(BOOTIMAGE) v:linux ; sync - -fdimage288: $(BOOTIMAGE) $(obj)/mtools.conf - dd if=/dev/zero of=$(obj)/fdimage bs=1024 count=2880 - MTOOLSRC=$(obj)/mtools.conf mformat w: ; sync - syslinux $(obj)/fdimage ; sync - echo 'default linux $(FDARGS)' | \ - MTOOLSRC=$(obj)/mtools.conf mcopy - w:syslinux.cfg - MTOOLSRC=$(obj)/mtools.conf mcopy $(BOOTIMAGE) w:linux ; sync - -zlilo: $(BOOTIMAGE) - if [ -f $(INSTALL_PATH)/vmlinuz ]; then mv $(INSTALL_PATH)/vmlinuz $(INSTALL_PATH)/vmlinuz.old; fi - if [ -f $(INSTALL_PATH)/System.map ]; then mv $(INSTALL_PATH)/System.map $(INSTALL_PATH)/System.old; fi - cat $(BOOTIMAGE) > $(INSTALL_PATH)/vmlinuz - cp System.map $(INSTALL_PATH)/ - if [ -x /sbin/lilo ]; then /sbin/lilo; else /etc/lilo/install; fi - -install: $(BOOTIMAGE) - sh $(src)/install.sh $(KERNELRELEASE) $(BOOTIMAGE) System.map "$(INSTALL_PATH)" diff -Nru a/arch/i386/boot98/bootsect.S b/arch/i386/boot98/bootsect.S --- a/arch/i386/boot98/bootsect.S 2004-06-28 18:21:52 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,397 +0,0 @@ -/* - * bootsect.S - boot sector for NEC PC-9800 series - * - * Linux/98 project at Kyoto University Microcomputer Club (KMC) - * FUJITA Norimasa, TAKAI Kousuke 1997-1998 - * rewritten by TAKAI Kousuke (as86 -> gas), Nov 1999 - * - * Based on: - * bootsect.S Copyright (C) 1991, 1992 Linus Torvalds - * modified by Drew Eckhardt - * modified by Bruce Evans (bde) - * - * bootsect.S is loaded at 0x1FC00 or 0x1FE00 by the bios-startup routines, - * and moves itself out of the way to address 0x90000, and jumps there. - * - * It then loads 'setup' directly after itself (0x90200), and the system - * at 0x10000, using BIOS interrupts. - * - * NOTE! currently system is at most (8*65536-4096) bytes long. This should - * be no problem, even in the future. I want to keep it simple. This 508 kB - * kernel size should be enough, especially as this doesn't contain the - * buffer cache as in minix (and especially now that the kernel is - * compressed :-) - * - * The loader has been made as simple as possible, and continuous - * read errors will result in a unbreakable loop. Reboot by hand. It - * loads pretty fast by getting whole tracks at a time whenever possible. - */ - -#include /* for CONFIG_ROOT_RDONLY */ -#include - -SETUPSECTS = 4 /* default nr of setup-sectors */ -BOOTSEG = 0x1FC0 /* original address of boot-sector */ -INITSEG = DEF_INITSEG /* we move boot here - out of the way */ -SETUPSEG = DEF_SETUPSEG /* setup starts here */ -SYSSEG = DEF_SYSSEG /* system loaded at 0x10000 (65536) */ -SYSSIZE = DEF_SYSSIZE /* system size: # of 16-byte clicks */ - /* to be loaded */ -ROOT_DEV = 0 /* ROOT_DEV is now written by "build" */ -SWAP_DEV = 0 /* SWAP_DEV is now written by "build" */ - -#ifndef SVGA_MODE -#define SVGA_MODE ASK_VGA -#endif - -#ifndef RAMDISK -#define RAMDISK 0 -#endif - -#ifndef ROOT_RDONLY -#define ROOT_RDONLY 1 -#endif - -/* normal/hireso text VRAM segments */ -#define NORMAL_TEXT 0xa000 -#define HIRESO_TEXT 0xe000 - -/* bios work area addresses */ -#define EXPMMSZ 0x0401 -#define BIOS_FLAG 0x0501 -#define DISK_BOOT 0x0584 - -.code16 -.text - -.global _start -_start: - -#if 0 /* hook for debugger, harmless unless BIOS is fussy (old HP) */ - int $0x3 -#endif - jmp real_start - .ascii "Linux 98" - .word 0 -real_start: - xorw %di, %di /* %di = 0 */ - movw %di, %ss /* %ss = 0 */ - movw $0x03F0, %sp - pushw %cx /* for hint */ - - movw $0x0A00, %ax /* normal mode defaults (80x25) */ - - testb $0x08, %ss:BIOS_FLAG /* check hi-reso bit */ - jnz set_crt_mode -/* - * Hi-Reso (high-resolution) machine. - * - * Some hi-reso machines have no RAMs on bank 8/A (0x080000 - 0x0BFFFF). - * On such machines we get two RAM banks from top of protect menory and - * map them on bank 8/A. - * These work-around must be done before moving myself on INITSEG (0x090000-). - */ - movw $(HIRESO_TEXT >> 8), %cs:(vram + 1) /* text VRAM segment */ - - /* set memory window */ - movb $0x08, %al - outb %al, $0x91 /* map native RAM (if any) */ - movb $0x0A, %al - outb %al, $0x93 - - /* check bank ram A */ - pushw $0xA500 - popw %ds - movw (%di), %cx /* %si == 0 from entry */ - notw %cx - movw %cx, (%di) - - movw $0x43F, %dx /* cache flush for 486 and up. */ - movb $0xA0, %al - outb %al, %dx - - cmpw %cx, (%di) - je hireso_done - - /* - * Write test failed; we have no native RAM on 080000h - 0BFFFFh. - * Take 256KB of RAM from top of protected memory. - */ - movb %ss:EXPMMSZ, %al - subb $2, %al /* reduce 2 x 128KB */ - movb %al, %ss:EXPMMSZ - addb %al, %al - addb $0x10, %al - outb %al, $0x91 - addb $2, %al - outb %al, $0x93 - -hireso_done: - movb $0x10, %al /* CRT mode 80x31, %ah still 0Ah */ - -set_crt_mode: - int $0x18 /* set CRT mode */ - - movb $0x0C, %ah /* turn on text displaying */ - int $0x18 - - xorw %dx, %dx /* position cursor to home */ - movb $0x13, %ah - int $0x18 - - movb $0x11, %ah /* turn cursor displaying on */ - int $0x18 - - /* move 1 kilobytes from [BOOTSEG:0000h] to [INITSEG:0000h] */ - cld - xorw %si, %si - pushw $INITSEG - popw %es - movw $512, %cx /* %di == 0 from entry */ - rep - cs - movsw - - ljmp $INITSEG, $go - -go: - pushw %cs - popw %ds /* %ds = %cs */ - - popw %dx /* %dh = saved %ch passed from BIOS */ - movb %ss:DISK_BOOT, %al - andb $0xf0, %al /* %al = Device Address */ - movb $18, %ch /* 18 secs/track, 512 b/sec (1440 KB) */ - cmpb $0x30, %al - je try512 - cmpb $0x90, %al /* 1 MB I/F, 1 MB floppy */ - je try1.2M - cmpb $0xf0, %al /* 640 KB I/F, 1 MB floppy */ - je try1.2M - movb $9, %ch /* 9 secs/track, 512 b/sec ( 720 KB) */ - cmpb $0x10, %al /* 1 MB I/F, 640 KB floppy */ - je try512 - cmpb $0x70, %al /* 640 KB I/F, 640 KB floppy */ - jne error /* unknown device? */ - - /* XXX: Does it make sense to support 8 secs/track, 512 b/sec - (640 KB) floppy? */ - -try512: movb $2, %cl /* 512 b/sec */ -lasttry:call tryload -/* - * Display error message and halt - */ -error: movw $error_msg, %si - call print -wait_reboot: - movb $0x0, %ah - int $0x18 /* wait keyboard input */ -1: movb $0, %al - outb %al, $0xF0 /* reset CPU */ - jmp 1b /* just in case... */ - -try1.2M:cmpb $2, %dh - je try2HC - movw $0x0803, %cx /* 8 secs/track, 1024 b/sec (1232 KB) */ - call tryload - movb $15, %ch /* 15 secs/track, 512 b/sec (1200 KB) */ - jmp try512 -try2HC: movw $0x0F02, %cx /* 15 secs/track, 512 b/sec (1200 KB) */ - call tryload - movw $0x0803, %cx /* 8 secs/track, 1024 b/sec (1232 KB) */ - jmp lasttry - -/* - * Try to load SETUP and SYSTEM provided geometry information in %cx. - * This routine *will not* return on successful load... - */ -tryload: - movw %cx, sectlen - movb %ss:DISK_BOOT, %al - movb $0x7, %ah /* recalibrate the drive */ - int $0x1b - jc error /* recalibration should succeed */ - - /* - * Load SETUP into memory. It is assumed that SETUP fits into - * first cylinder (2 tracks, 9KB on 2DD, 15-18KB on 2HD). - */ - movb $0, %bl - movb setup_sects, %bh - incb %bh - shlw %bx /* %bx = (setup_sects + 1) * 512 */ - movw $128, %bp - shlw %cl, %bp /* %bp = */ - subw %bp, %bx /* length to load */ - movw $0x0002, %dx /* head 0, sector 2 */ - movb %cl, %ch /* `N' for sector address */ - movb $0, %cl /* cylinder 0 */ - pushw %cs - popw %es /* %es = %cs (= INITSEG) */ - movb $0xd6, %ah /* read, multi-track, MFM */ - int $0x1b /* load it! */ - jc read_error - - movw $loading_msg, %si - call print - - movw $SYSSEG, %ax - movw %ax, %es /* %es = SYSSEG */ - -/* - * This routine loads the system at address 0x10000, making sure - * no 64kB boundaries are crossed. We try to load it as fast as - * possible, loading whole tracks whenever we can. - * - * in: es - starting address segment (normally 0x1000) - */ - movb %ch, %cl - addb $7, %cl /* %cl = log2 */ - shrw %cl, %bx /* %bx = # of phys. sectors in SETUP */ - addb %bl, %dl /* %dl = start sector # of SYSTEM */ - decb %dl /* %dl is 0-based in below loop */ - -rp_read_newseg: - xorw %bp, %bp /* = starting address within segment */ -#ifdef __BIG_KERNEL__ - bootsect_kludge = 0x220 /* 0x200 (size of bootsector) + 0x20 (offset */ - lcall *bootsect_kludge /* of bootsect_kludge in setup.S */ -#else - movw %es, %ax - subw $SYSSEG, %ax -#endif - cmpw syssize, %ax - ja boot /* done! */ - -rp_read: - movb sectors, %al - addb %al, %al - movb %al, %ch /* # of sectors on both surface */ - subb %dl, %al /* # of sectors left on this track */ - movb $0, %ah - shlw %cl, %ax /* # of bytes left on this track */ - movw %ax, %bx /* transfer length */ - addw %bp, %ax /* cross 64K boundary? */ - jnc 1f /* ok. */ - jz 1f /* also ok. */ - /* - * Oops, we are crossing 64K boundary... - * Adjust transfer length to make transfer fit in the boundary. - * - * Note: sector size is assumed to be a measure of 65536. - */ - xorw %bx, %bx - subw %bp, %bx -1: pushw %dx - movw $dot_msg, %si /* give progress message */ - call print - xchgw %ax, %dx - movb $0, %ah - divb sectors - xchgb %al, %ah - xchgw %ax, %dx /* %dh = head # / %dl = sector # */ - incb %dl /* fix %dl to 1-based */ - pushw %cx - movw cylinder, %cx - movb $0xd6, %ah /* read, multi-track, seek, MFM */ - movb %ss:DISK_BOOT, %al - int $0x1b - popw %cx - popw %dx - jc read_error - movw %bx, %ax /* # of bytes just read */ - shrw %cl, %ax /* %ax = # of sectors just read */ - addb %al, %dl /* advance sector # */ - cmpb %ch, %dl /* %ch = # of sectors/cylinder */ - jb 2f - incb cylinder /* next cylinder */ - xorb %dl, %dl /* sector 0 */ -2: addw %bx, %bp /* advance offset pointer */ - jnc rp_read - /* offset pointer wrapped; advance segment pointer. */ - movw %es, %ax - addw $0x1000, %ax - movw %ax, %es - jmp rp_read_newseg - -read_error: - ret - -boot: movw %cs, %ax /* = INITSEG */ - /* movw %ax, %ds */ - movw %ax, %ss - movw $0x4000, %sp /* 0x4000 is arbitrary value >= - * length of bootsect + length of - * setup + room for stack; - * PC-9800 never have BIOS workareas - * on high memory. - */ -/* - * After that we check which root-device to use. If the device is - * not defined, /dev/fd0 (2, 0) will be used. - */ - cmpw $0, root_dev - jne 3f - movb $2, root_dev+1 -3: - -/* - * After that (everything loaded), we jump to the setup-routine - * loaded directly after the bootblock: - */ - ljmp $SETUPSEG, $0 - -/* - * Subroutine for print string on console. - * %cs:%si - pointer to message - */ -print: - pushaw - pushw %ds - pushw %es - pushw %cs - popw %ds - lesw curpos, %di /* %es:%di = current text VRAM addr. */ -1: xorw %ax, %ax - lodsb - testb %al, %al - jz 2f /* end of string */ - stosw /* character code */ - movb $0xE1, %es:0x2000-2(%di) /* character attribute */ - jmp 1b -2: movw %di, %dx - movb $0x13, %ah - int $0x18 /* move cursor to current point */ - popw %es - popw %ds - popaw - ret - -loading_msg: - .string "Loading" -dot_msg: - .string "." -error_msg: - .string "Read Error!" - - .org 490 - -curpos: .word 160 /* current cursor position */ -vram: .word NORMAL_TEXT /* text VRAM segment */ - -cylinder: .byte 0 /* current cylinder (lower byte) */ -sectlen: .byte 0 /* (log2 of ) - 7 */ -sectors: .byte 0x0F /* default is 2HD (15 sector/track) */ - -# XXX: This is a fairly snug fit. - -.org 497 -setup_sects: .byte SETUPSECTS -root_flags: .word ROOT_RDONLY -syssize: .word SYSSIZE -swap_dev: .word SWAP_DEV -ram_size: .word RAMDISK -vid_mode: .word SVGA_MODE -root_dev: .word ROOT_DEV -boot_flag: .word 0xAA55 diff -Nru a/arch/i386/boot98/install.sh b/arch/i386/boot98/install.sh --- a/arch/i386/boot98/install.sh 2004-06-28 18:21:57 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,40 +0,0 @@ -#!/bin/sh -# -# arch/i386/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 -# for more details. -# -# Copyright (C) 1995 by Linus Torvalds -# -# Adapted from code in arch/i386/boot/Makefile by H. Peter Anvin -# -# "make install" script for i386 architecture -# -# Arguments: -# $1 - kernel version -# $2 - kernel image file -# $3 - kernel map file -# $4 - default install path (blank if root directory) -# - -# User may have a custom install script - -if [ -x ~/bin/installkernel ]; then exec ~/bin/installkernel "$@"; fi -if [ -x /sbin/installkernel ]; then exec /sbin/installkernel "$@"; fi - -# Default install - same as make zlilo - -if [ -f $4/vmlinuz ]; then - mv $4/vmlinuz $4/vmlinuz.old -fi - -if [ -f $4/System.map ]; then - mv $4/System.map $4/System.old -fi - -cat $2 > $4/vmlinuz -cp $3 $4/System.map - -if [ -x /sbin/lilo ]; then /sbin/lilo; else /etc/lilo/install; fi diff -Nru a/arch/i386/boot98/mtools.conf.in b/arch/i386/boot98/mtools.conf.in --- a/arch/i386/boot98/mtools.conf.in 2004-06-28 18:21:55 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,17 +0,0 @@ -# -# mtools configuration file for "make (b)zdisk" -# - -# Actual floppy drive -drive a: - file="/dev/fd0" - -# 1.44 MB floppy disk image -drive v: - file="@OBJ@/fdimage" cylinders=80 heads=2 sectors=18 filter - -# 2.88 MB floppy disk image (mostly for virtual uses) -drive w: - file="@OBJ@/fdimage" cylinders=80 heads=2 sectors=36 filter - - diff -Nru a/arch/i386/boot98/setup.S b/arch/i386/boot98/setup.S --- a/arch/i386/boot98/setup.S 2004-06-28 18:21:53 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,876 +0,0 @@ -/* - * setup.S Copyright (C) 1991, 1992 Linus Torvalds - * - * setup.s is responsible for getting the system data from the BIOS, - * and putting them into the appropriate places in system memory. - * both setup.s and system has been loaded by the bootblock. - * - * This code asks the bios for memory/disk/other parameters, and - * puts them in a "safe" place: 0x90000-0x901FF, ie where the - * boot-block used to be. It is then up to the protected mode - * system to read them from there before the area is overwritten - * for buffer-blocks. - * - * Move PS/2 aux init code to psaux.c - * (troyer@saifr00.cfsat.Honeywell.COM) 03Oct92 - * - * some changes and additional features by Christoph Niemann, - * March 1993/June 1994 (Christoph.Niemann@linux.org) - * - * add APM BIOS checking by Stephen Rothwell, May 1994 - * (sfr@canb.auug.org.au) - * - * High load stuff, initrd support and position independency - * by Hans Lermen & Werner Almesberger, February 1996 - * , - * - * Video handling moved to video.S by Martin Mares, March 1996 - * - * - * Extended memory detection scheme retwiddled by orc@pell.chi.il.us (david - * parsons) to avoid loadlin confusion, July 1997 - * - * Transcribed from Intel (as86) -> AT&T (gas) by Chris Noe, May 1999. - * - * - * Fix to work around buggy BIOSes which dont use carry bit correctly - * and/or report extended memory in CX/DX for e801h memory size detection - * call. As a result the kernel got wrong figures. The int15/e801h docs - * from Ralf Brown interrupt list seem to indicate AX/BX should be used - * anyway. So to avoid breaking many machines (presumably there was a reason - * to orginally use CX/DX instead of AX/BX), we do a kludge to see - * if CX/DX have been changed in the e801 call and if so use AX/BX . - * Michael Miller, April 2001 - * - * New A20 code ported from SYSLINUX by H. Peter Anvin. AMD Elan bugfixes - * by Robert Schwebel, December 2001 - * - * Heavily modified for NEC PC-9800 series by Kyoto University Microcomputer - * Club (KMC) Linux/98 project , 1997-1999 - */ - -#include -#include -#include -#include -#include -#include -#include - -/* Signature words to ensure LILO loaded us right */ -#define SIG1 0xAA55 -#define SIG2 0x5A5A - -#define HIRESO_TEXT 0xe000 -#define NORMAL_TEXT 0xa000 - -#define BIOS_FLAG2 0x0400 -#define BIOS_FLAG5 0x0458 -#define RDISK_EQUIP 0x0488 -#define BIOS_FLAG 0x0501 -#define KB_SHFT_STS 0x053a -#define DISK_EQUIP 0x055c - -INITSEG = DEF_INITSEG # 0x9000, we move boot here, out of the way -SYSSEG = DEF_SYSSEG # 0x1000, system loaded at 0x10000 (65536). -SETUPSEG = DEF_SETUPSEG # 0x9020, this is the current segment - # ... and the former contents of CS - -DELTA_INITSEG = SETUPSEG - INITSEG # 0x0020 - -.code16 -.globl begtext, begdata, begbss, endtext, enddata, endbss - -.text -begtext: -.data -begdata: -.bss -begbss: -.text - -start: - jmp trampoline - -# This is the setup header, and it must start at %cs:2 (old 0x9020:2) - - .ascii "HdrS" # header signature - .word 0x0203 # header version number (>= 0x0105) - # or else old loadlin-1.5 will fail) -realmode_swtch: .word 0, 0 # default_switch, SETUPSEG -start_sys_seg: .word SYSSEG - .word kernel_version # pointing to kernel version string - # above section of header is compatible - # with loadlin-1.5 (header v1.5). Don't - # change it. - -type_of_loader: .byte 0 # = 0, old one (LILO, Loadlin, - # Bootlin, SYSLX, bootsect...) - # See Documentation/i386/boot.txt for - # assigned ids - -# flags, unused bits must be zero (RFU) bit within loadflags -loadflags: -LOADED_HIGH = 1 # If set, the kernel is loaded high -CAN_USE_HEAP = 0x80 # If set, the loader also has set - # heap_end_ptr to tell how much - # space behind setup.S can be used for - # heap purposes. - # Only the loader knows what is free -#ifndef __BIG_KERNEL__ - .byte 0 -#else - .byte LOADED_HIGH -#endif - -setup_move_size: .word 0x8000 # size to move, when setup is not - # loaded at 0x90000. We will move setup - # to 0x90000 then just before jumping - # into the kernel. However, only the - # loader knows how much data behind - # us also needs to be loaded. - -code32_start: # here loaders can put a different - # start address for 32-bit code. -#ifndef __BIG_KERNEL__ - .long 0x1000 # 0x1000 = default for zImage -#else - .long 0x100000 # 0x100000 = default for big kernel -#endif - -ramdisk_image: .long 0 # address of loaded ramdisk image - # Here the loader puts the 32-bit - # address where it loaded the image. - # This only will be read by the kernel. - -ramdisk_size: .long 0 # its size in bytes - -bootsect_kludge: - .long 0 # obsolete - -heap_end_ptr: .word modelist+1024 # (Header version 0x0201 or later) - # space from here (exclusive) down to - # end of setup code can be used by setup - # for local heap purposes. - -pad1: .word 0 -cmd_line_ptr: .long 0 # (Header version 0x0202 or later) - # If nonzero, a 32-bit pointer - # to the kernel command line. - # The command line should be - # located between the start of - # setup and the end of low - # memory (0xa0000), or it may - # get overwritten before it - # gets read. If this field is - # used, there is no longer - # anything magical about the - # 0x90000 segment; the setup - # can be located anywhere in - # low memory 0x10000 or higher. - -ramdisk_max: .long MAXMEM-1 # (Header version 0x0203 or later) - # The highest safe address for - # the contents of an initrd - -trampoline: call start_of_setup - .space 1024 -# End of setup header ##################################################### - -start_of_setup: -# Set %ds = %cs, we know that SETUPSEG = %cs at this point - movw %cs, %ax # aka SETUPSEG - movw %ax, %ds -# Check signature at end of setup - cmpw $SIG1, setup_sig1 - jne bad_sig - - cmpw $SIG2, setup_sig2 - jne bad_sig - - jmp good_sig1 - -# Routine to print asciiz string at ds:si -prtstr: - lodsb - andb %al, %al - jz fin - - call prtchr - jmp prtstr - -fin: ret - -no_sig_mess: .string "No setup signature found ..." - -good_sig1: - jmp good_sig - -# We now have to find the rest of the setup code/data -bad_sig: - movw %cs, %ax # SETUPSEG - subw $DELTA_INITSEG, %ax # INITSEG - movw %ax, %ds - xorb %bh, %bh - movb (497), %bl # get setup sect from bootsect - subw $4, %bx # LILO loads 4 sectors of setup - shlw $8, %bx # convert to words (1sect=2^8 words) - movw %bx, %cx - shrw $3, %bx # convert to segment - addw $SYSSEG, %bx - movw %bx, %cs:start_sys_seg -# Move rest of setup code/data to here - movw $2048, %di # four sectors loaded by LILO - subw %si, %si - pushw %cs - popw %es - movw $SYSSEG, %ax - movw %ax, %ds - rep - movsw - movw %cs, %ax # aka SETUPSEG - movw %ax, %ds - cmpw $SIG1, setup_sig1 - jne no_sig - - cmpw $SIG2, setup_sig2 - jne no_sig - - jmp good_sig - -no_sig: - lea no_sig_mess, %si - call prtstr - -no_sig_loop: - hlt - jmp no_sig_loop - -good_sig: - movw %cs, %ax # aka SETUPSEG - subw $DELTA_INITSEG, %ax # aka INITSEG - movw %ax, %ds -# Check if an old loader tries to load a big-kernel - testb $LOADED_HIGH, %cs:loadflags # Do we have a big kernel? - jz loader_ok # No, no danger for old loaders. - - cmpb $0, %cs:type_of_loader # Do we have a loader that - # can deal with us? - jnz loader_ok # Yes, continue. - - pushw %cs # No, we have an old loader, - popw %ds # die. - lea loader_panic_mess, %si - call prtstr - - jmp no_sig_loop - -loader_panic_mess: .string "Wrong loader, giving up..." - -loader_ok: -# Get memory size (extended mem, kB) - -# On PC-9800, memory size detection is done completely in 32-bit -# kernel initialize code (kernel/setup.c). - pushw %es - xorl %eax, %eax - movw %ax, %es - movb %al, (E820NR) # PC-9800 has no E820 - movb %es:(0x401), %al - shll $7, %eax - addw $1024, %ax - movw %ax, (2) - movl %eax, (0x1e0) - movw %es:(0x594), %ax - shll $10, %eax - addl %eax, (0x1e0) - popw %es - -# Check for video adapter and its parameters and allow the -# user to browse video modes. - call video # NOTE: we need %ds pointing - # to bootsector - -# Get text video mode - movb $0x0B, %ah - int $0x18 # CRT mode sense - movw $(20 << 8) + 40, %cx - testb $0x10, %al - jnz 3f - movb $20, %ch - testb $0x01, %al - jnz 1f - movb $25, %ch - jmp 1f -3: # If bit 4 was 1, it means either 1) 31 lines for hi-reso mode, - # or 2) 30 lines for PC-9821. - movb $31, %ch # hireso mode value - pushw $0 - popw %es - testb $0x08, %es:BIOS_FLAG - jnz 1f - movb $30, %ch -1: # Now we got # of rows in %ch - movb %ch, (14) - - testb $0x02, %al - jnz 2f - movb $80, %cl -2: # Now we got # of columns in %cl - movb %cl, (7) - - # Next, get horizontal frequency if supported - movw $0x3100, %ax - int $0x18 # Call CRT bios - movb %al, (6) # If 31h is unsupported, %al remains 0 - -# Get hd0-3 data... - pushw %ds # aka INITSEG - popw %es - xorw %ax, %ax - movw %ax, %ds - cld - movw $0x0080, %di - movb DISK_EQUIP+1, %ah - movb $0x80, %al - -get_hd_info: - shrb %ah - pushw %ax - jnc 1f - movb $0x84, %ah - int $0x1b - jnc 2f # Success -1: xorw %cx, %cx # `0 cylinders' means no drive -2: # Attention! Work area (drive_info) is arranged for PC-9800. - movw %cx, %ax # # of cylinders - stosw - movw %dx, %ax # # of sectors / # of heads - stosw - movw %bx, %ax # sector size in bytes - stosw - popw %ax - incb %al - cmpb $0x84, %al - jb get_hd_info - -# Get fd data... - movw DISK_EQUIP, %ax - andw $0xf00f, %ax - orb %al, %ah - movb RDISK_EQUIP, %al - notb %al - andb %al, %ah # ignore all `RAM drive' - - movb $0x30, %al - -get_fd_info: - shrb %ah - pushw %ax - jnc 1f - movb $0xc4, %ah - int $0x1b - movb %ah, %al - andb $4, %al # 1.44MB support flag - shrb %al - addb $2, %al # %al = 2 (1.2MB) or 4 (1.44MB) - jmp 2f -1: movb $0, %al # no drive -2: stosb - popw %ax - incb %al - testb $0x04, %al - jz get_fd_info - - addb $(0xb0 - 0x34), %al - jnc get_fd_info # check FDs on 640KB I/F - - pushw %es - popw %ds # %ds got bootsector again -#if 0 - mov $0, (0x1ff) # default is no pointing device -#endif - -#if defined(CONFIG_APM) || defined(CONFIG_APM_MODULE) -# Then check for an APM BIOS... - # %ds points to the bootsector - movw $0, 0x40 # version = 0 means no APM BIOS - movw $0x09a00, %ax # APM BIOS installation check - xorw %bx, %bx - int $0x1f - jc done_apm_bios # Nope, no APM BIOS - - cmpw $0x0504d, %bx # Check for "PM" signature - jne done_apm_bios # No signature, no APM BIOS - - testb $0x02, %cl # Is 32 bit supported? - je done_apm_bios # No 32-bit, no (good) APM BIOS - - movw $0x09a04, %ax # Disconnect first just in case - xorw %bx, %bx - int $0x1f # ignore return code - movw $0x09a03, %ax # 32 bit connect - xorl %ebx, %ebx - int $0x1f - jc no_32_apm_bios # Ack, error. - - movw %ax, (66) # BIOS code segment - movl %ebx, (68) # BIOS entry point offset - movw %cx, (72) # BIOS 16 bit code segment - movw %dx, (74) # BIOS data segment - movl %esi, (78) # BIOS code segment length - movw %di, (82) # BIOS data segment length -# Redo the installation check as the 32 bit connect -# modifies the flags returned on some BIOSs - movw $0x09a00, %ax # APM BIOS installation check - xorw %bx, %bx - int $0x1f - jc apm_disconnect # error -> shouldn't happen - - cmpw $0x0504d, %bx # check for "PM" signature - jne apm_disconnect # no sig -> shouldn't happen - - movw %ax, (64) # record the APM BIOS version - movw %cx, (76) # and flags - jmp done_apm_bios - -apm_disconnect: # Tidy up - movw $0x09a04, %ax # Disconnect - xorw %bx, %bx - int $0x1f # ignore return code - - jmp done_apm_bios - -no_32_apm_bios: - andw $0xfffd, (76) # remove 32 bit support bit -done_apm_bios: -#endif - -# Pass cursor position to kernel... - movw %cs:cursor_address, %ax - shrw %ax # cursor_address is 2 bytes unit - movb $80, %cl - divb %cl - xchgb %al, %ah # (0) = %al = X, (1) = %ah = Y - movw %ax, (0) - -#if 0 - movw $msg_cpos, %si - call prtstr_cs - call prthex - call prtstr_cs - movw %ds, %ax - call prthex - call prtstr_cs - movb $0x11, %ah - int $0x18 - movb $0, %ah - int $0x18 - .section .rodata, "a" -msg_cpos: .string "Cursor position: 0x" - .string ", %ds:0x" - .string "\r\n" - .previous -#endif - -# Now we want to move to protected mode ... - cmpw $0, %cs:realmode_swtch - jz rmodeswtch_normal - - lcall *%cs:realmode_swtch - - jmp rmodeswtch_end - -rmodeswtch_normal: - pushw %cs - call default_switch - -rmodeswtch_end: -# we get the code32 start address and modify the below 'jmpi' -# (loader may have changed it) - movl %cs:code32_start, %eax - movl %eax, %cs:code32 - -# Now we move the system to its rightful place ... but we check if we have a -# big-kernel. In that case we *must* not move it ... - testb $LOADED_HIGH, %cs:loadflags - jz do_move0 # .. then we have a normal low - # loaded zImage - # .. or else we have a high - # loaded bzImage - jmp end_move # ... and we skip moving - -do_move0: - movw $0x100, %ax # start of destination segment - movw %cs, %bp # aka SETUPSEG - subw $DELTA_INITSEG, %bp # aka INITSEG - movw %cs:start_sys_seg, %bx # start of source segment - cld -do_move: - movw %ax, %es # destination segment - incb %ah # instead of add ax,#0x100 - movw %bx, %ds # source segment - addw $0x100, %bx - subw %di, %di - subw %si, %si - movw $0x800, %cx - rep - movsw - cmpw %bp, %bx # assume start_sys_seg > 0x200, - # so we will perhaps read one - # page more than needed, but - # never overwrite INITSEG - # because destination is a - # minimum one page below source - jb do_move - -end_move: -# then we load the segment descriptors - movw %cs, %ax # aka SETUPSEG - movw %ax, %ds - -# Check whether we need to be downward compatible with version <=201 - cmpl $0, cmd_line_ptr - jne end_move_self # loader uses version >=202 features - cmpb $0x20, type_of_loader - je end_move_self # bootsect loader, we know of it - -# Boot loader does not support boot protocol version 2.02. -# If we have our code not at 0x90000, we need to move it there now. -# We also then need to move the params behind it (commandline) -# Because we would overwrite the code on the current IP, we move -# it in two steps, jumping high after the first one. - movw %cs, %ax - cmpw $SETUPSEG, %ax - je end_move_self - - cli # make sure we really have - # interrupts disabled ! - # because after this the stack - # should not be used - subw $DELTA_INITSEG, %ax # aka INITSEG - movw %ss, %dx - cmpw %ax, %dx - jb move_self_1 - - addw $INITSEG, %dx - subw %ax, %dx # this will go into %ss after - # the move -move_self_1: - movw %ax, %ds - movw $INITSEG, %ax # real INITSEG - movw %ax, %es - movw %cs:setup_move_size, %cx - std # we have to move up, so we use - # direction down because the - # areas may overlap - movw %cx, %di - decw %di - movw %di, %si - subw $move_self_here+0x200, %cx - rep - movsb - ljmp $SETUPSEG, $move_self_here - -move_self_here: - movw $move_self_here+0x200, %cx - rep - movsb - movw $SETUPSEG, %ax - movw %ax, %ds - movw %dx, %ss - -end_move_self: # now we are at the right place - lidt idt_48 # load idt with 0,0 - xorl %eax, %eax # Compute gdt_base - movw %ds, %ax # (Convert %ds:gdt to a linear ptr) - shll $4, %eax - addl $gdt, %eax - movl %eax, (gdt_48+2) - lgdt gdt_48 # load gdt with whatever is - # appropriate - -# that was painless, now we enable A20 - - outb %al, $0xf2 # A20 on - movb $0x02, %al - outb %al, $0xf6 # also A20 on; making ITF's - # way our model - - # PC-9800 seems to enable A20 at the moment of `outb'; - # so we don't wait unlike IBM PCs (see ../setup.S). - -# enable DMA to access memory over 0x100000 (1MB). - - movw $0x439, %dx - inb %dx, %al - andb $(~4), %al - outb %al, %dx - -# Set DMA to increment its bank address automatically at 16MB boundary. -# Initial setting is 64KB boundary mode so that we can't run DMA crossing -# physical address 0xXXXXFFFF. - - movb $0x0c, %al - outb %al, $0x29 # ch. 0 - movb $0x0d, %al - outb %al, $0x29 # ch. 1 - movb $0x0e, %al - outb %al, $0x29 # ch. 2 - movb $0x0f, %al - outb %al, $0x29 # ch. 3 - movb $0x50, %al - outb %al, $0x11 # reinitialize DMAC - -# make sure any possible coprocessor is properly reset.. - movb $0, %al - outb %al, $0xf8 - outb %al, $0x5f # delay - -# well, that went ok, I hope. Now we mask all interrupts - the rest -# is done in init_IRQ(). - movb $0xFF, %al # mask all interrupts for now - outb %al, $0x0A - outb %al, $0x5f # delay - - movb $0x7F, %al # mask all irq's but irq7 which - outb %al, $0x02 # is cascaded - -# Well, that certainly wasn't fun :-(. Hopefully it works, and we don't -# need no steenking BIOS anyway (except for the initial loading :-). -# The BIOS-routine wants lots of unnecessary data, and it's less -# "interesting" anyway. This is how REAL programmers do it. -# -# Well, now's the time to actually move into protected mode. To make -# things as simple as possible, we do no register set-up or anything, -# we let the gnu-compiled 32-bit programs do that. We just jump to -# absolute address 0x1000 (or the loader supplied one), -# in 32-bit protected mode. -# -# Note that the short jump isn't strictly needed, although there are -# reasons why it might be a good idea. It won't hurt in any case. - movw $1, %ax # protected mode (PE) bit - lmsw %ax # This is it! - jmp flush_instr - -flush_instr: - xorw %bx, %bx # Flag to indicate a boot - xorl %esi, %esi # Pointer to real-mode code - movw %cs, %si - subw $DELTA_INITSEG, %si - shll $4, %esi # Convert to 32-bit pointer -# NOTE: For high loaded big kernels we need a -# jmpi 0x100000,__BOOT_CS -# -# but we yet haven't reloaded the CS register, so the default size -# of the target offset still is 16 bit. -# However, using an operand prefix (0x66), the CPU will properly -# take our 48 bit far pointer. (INTeL 80386 Programmer's Reference -# Manual, Mixing 16-bit and 32-bit code, page 16-6) - - .byte 0x66, 0xea # prefix + jmpi-opcode -code32: .long 0x1000 # will be set to 0x100000 - # for big kernels - .word __BOOT_CS - -# Here's a bunch of information about your current kernel.. -kernel_version: .ascii UTS_RELEASE - .ascii " (" - .ascii LINUX_COMPILE_BY - .ascii "@" - .ascii LINUX_COMPILE_HOST - .ascii ") " - .ascii UTS_VERSION - .byte 0 - -# This is the default real mode switch routine. -# to be called just before protected mode transition -default_switch: - cli # no interrupts allowed ! - outb %al, $0x50 # disable NMI for bootup - # sequence - lret - - -# This routine prints one character (in %al) on console. -# PC-9800 doesn't have BIOS-function to do it like IBM PC's INT 10h - 0Eh, -# so we hardcode `prtchr' subroutine here. -prtchr: - pushaw - pushw %es - cmpb $0, %cs:prtchr_initialized - jnz prtchr_ok - xorw %cx, %cx - movw %cx, %es - testb $0x8, %es:BIOS_FLAG - jz 1f - movb $(HIRESO_TEXT >> 8), %cs:cursor_address+3 - movw $(80 * 31 * 2), %cs:max_cursor_offset -1: pushw %ax - call get_cursor_position - movw %ax, %cs:cursor_address - popw %ax - movb $1, %cs:prtchr_initialized -prtchr_ok: - lesw %cs:cursor_address, %di - movw $160, %bx - movb $0, %ah - cmpb $13, %al - je do_cr - cmpb $10, %al - je do_lf - - # normal (printable) character - stosw - movb $0xe1, %es:0x2000-2(%di) - jmp 1f - -do_cr: movw %di, %ax - divb %bl # %al = Y, %ah = X * 2 - mulb %bl - movw %ax, %dx - jmp 2f - -do_lf: addw %bx, %di -1: movw %cs:max_cursor_offset, %cx - cmpw %cx, %di - movw %di, %dx - jb 2f - # cursor reaches bottom of screen; scroll it - subw %bx, %dx - xorw %di, %di - movw %bx, %si - cld - subw %bx, %cx - shrw %cx - pushw %cx - rep; es; movsw - movb $32, %al # clear bottom line characters - movb $80, %cl - rep; stosw - movw $0x2000, %di - popw %cx - leaw (%bx,%di), %si - rep; es; movsw - movb $0xe1, %al # clear bottom line attributes - movb $80, %cl - rep; stosw -2: movw %dx, %cs:cursor_address - movb $0x13, %ah # move cursor to right position - int $0x18 - popw %es - popaw - ret - -cursor_address: - .word 0 - .word NORMAL_TEXT -max_cursor_offset: - .word 80 * 25 * 2 # for normal 80x25 mode - -# putstr may called without running through start_of_setup (via bootsect_panic) -# so we should initialize ourselves on demand. -prtchr_initialized: - .byte 0 - -# This routine queries GDC (graphic display controller) for current cursor -# position. Cursor position is returned in %ax (CPU offset address). -get_cursor_position: -1: inb $0x60, %al - outb %al, $0x5f # delay - outb %al, $0x5f # delay - testb $0x04, %al # Is FIFO empty? - jz 1b # no -> wait until empty - - movb $0xe0, %al # CSRR command - outb %al, $0x62 # command write - outb %al, $0x5f # delay - outb %al, $0x5f # delay - -2: inb $0x60, %al - outb %al, $0x5f # delay - outb %al, $0x5f # delay - testb $0x01, %al # Is DATA READY? - jz 2b # no -> wait until ready - - inb $0x62, %al # read xAD (L) - outb %al, $0x5f # delay - outb %al, $0x5f # delay - movb %al, %ah - inb $0x62, %al # read xAD (H) - outb %al, $0x5f # delay - outb %al, $0x5f # delay - xchgb %al, %ah # correct byte order - pushw %ax - inb $0x62, %al # read yAD (L) - outb %al, $0x5f # delay - outb %al, $0x5f # delay - inb $0x62, %al # read yAD (M) - outb %al, $0x5f # delay - outb %al, $0x5f # delay - inb $0x62, %al # read yAD (H) - # yAD is not our interest, - # so discard it. - popw %ax - addw %ax, %ax # convert to CPU address - ret - -# Descriptor tables -# -# NOTE: The intel manual says gdt should be sixteen bytes aligned for -# efficiency reasons. However, there are machines which are known not -# to boot with misaligned GDTs, so alter this at your peril! If you alter -# GDT_ENTRY_BOOT_CS (in asm/segment.h) remember to leave at least two -# empty GDT entries (one for NULL and one reserved). -# -# NOTE: On some CPUs, the GDT must be 8 byte aligned. This is -# true for the Voyager Quad CPU card which will not boot without -# This directive. 16 byte aligment is recommended by intel. -# - .align 16 -gdt: - .fill GDT_ENTRY_BOOT_CS,8,0 - - .word 0xFFFF # 4Gb - (0x100000*0x1000 = 4Gb) - .word 0 # base address = 0 - .word 0x9A00 # code read/exec - .word 0x00CF # granularity = 4096, 386 - # (+5th nibble of limit) - - .word 0xFFFF # 4Gb - (0x100000*0x1000 = 4Gb) - .word 0 # base address = 0 - .word 0x9200 # data read/write - .word 0x00CF # granularity = 4096, 386 - # (+5th nibble of limit) -gdt_end: - .align 4 - - .word 0 # alignment byte -idt_48: - .word 0 # idt limit = 0 - .word 0, 0 # idt base = 0L - - .word 0 # alignment byte -gdt_48: - .word gdt_end - gdt - 1 # gdt limit - .word 0, 0 # gdt base (filled in later) - -# Include video setup & detection code - -#include "video.S" - -# Setup signature -- must be last -setup_sig1: .word SIG1 -setup_sig2: .word SIG2 - -# After this point, there is some free space which is used by the video mode -# handling code to store the temporary mode table (not used by the kernel). - -modelist: - -.text -endtext: -.data -enddata: -.bss -endbss: diff -Nru a/arch/i386/boot98/video.S b/arch/i386/boot98/video.S --- a/arch/i386/boot98/video.S 2004-06-28 18:21:58 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,262 +0,0 @@ -/* video.S - * - * Video mode setup, etc. for NEC PC-9800 series. - * - * Copyright (C) 1997,98,99 Linux/98 project - * - * Based on the video.S for IBM PC: - * copyright (C) Martin Mares - */ - -/* Positions of various video parameters passed to the kernel */ -/* (see also include/linux/tty.h) */ -#define PARAM_CURSOR_POS 0x00 -#define PARAM_VIDEO_PAGE 0x04 -#define PARAM_VIDEO_MODE 0x06 -#define PARAM_VIDEO_COLS 0x07 -#define PARAM_VIDEO_EGA_BX 0x0a -#define PARAM_VIDEO_LINES 0x0e -#define PARAM_HAVE_VGA 0x0f -#define PARAM_FONT_POINTS 0x10 - -#define PARAM_VIDEO98_COMPAT 0x0a -#define PARAM_VIDEO98_HIRESO 0x0b -#define PARAM_VIDEO98_MACHTYPE 0x0c -#define PARAM_VIDEO98_LINES 0x0e -#define PARAM_VIDEO98_COLS 0x0f - -# PARAM_LFB_* and PARAM_VESAPM_* are unused on PC-9800. - -# This is the main entry point called by setup.S -# %ds *must* be pointing to the bootsector -video: xorw %ax, %ax - movw %ax, %es # %es = 0 - - movb %es:BIOS_FLAG, %al - movb %al, PARAM_VIDEO_MODE - - movb $0, PARAM_VIDEO98_HIRESO # 0 = normal - movw $NORMAL_TEXT, PARAM_VIDEO_PAGE - testb $0x8, %al - movw $(80 * 256 + 25), %ax - jz 1f - # hireso machine. - movb $1, PARAM_VIDEO98_HIRESO # !0 = hi-reso - movb $(HIRESO_TEXT >> 8), PARAM_VIDEO_PAGE + 1 - movw $(80 * 256 + 31), %ax -1: movw %ax, PARAM_VIDEO98_LINES # also sets VIDEO98_COLS - - movb $0xc0, %ch # 400-line graphic mode - movb $0x42, %ah - int $0x18 - - movw $80, PARAM_VIDEO_COLS - - movw $msg_probing, %si - call prtstr_cs - -# Check vendor from font pattern of `A'... - -1: inb $0x60, %al # wait V-sync - testb $0x20, %al - jnz 1b -2: inb $0x60, %al - testb $0x20, %al - jz 2b - - movb $0x00, %al # select font of `A' - outb %al, $0xa1 - movb $0x41, %al - outb %al, $0xa3 - - movw $8, %cx - movw PARAM_VIDEO_PAGE, %ax - cmpw $NORMAL_TEXT, %ax - je 3f - movb $24, %cl # for hi-reso machine -3: addw $0x400, %ax # %ax = CG window segment - pushw %ds - movw %ax, %ds - xorw %dx, %dx # get sum of `A' pattern... - xorw %si, %si -4: lodsw - addw %ax, %dx - loop 4b - popw %ds - - movw %dx, %ax - movw $msg_nec, %si - xorw %bx, %bx # vendor info will go into %bx - testb $8, %es:BIOS_FLAG - jnz check_hireso_vendor - cmpw $0xc7f8, %ax - je 5f - jmp 6f -check_hireso_vendor: - cmpw $0x9639, %ax # XXX: NOT VERIFIED!!! - je 5f -6: incw %bx # compatible machine - movw $msg_compat, %si -5: movb %bl, PARAM_VIDEO98_COMPAT - call prtstr_cs - - movw $msg_fontdata, %si - call prtstr_cs # " (CG sum of A = 0x" - movw %dx, %ax - call prthex - call prtstr_cs # ") PC-98" - - movb $'0', %al - pushw %ds - pushw $0xf8e8 - popw %ds - cmpw $0x2198, (0) - popw %ds - jne 7f - movb $'2', %al -7: call prtchr - call prtstr_cs # "1 " - - movb $0, PARAM_VIDEO98_MACHTYPE -#if 0 /* XXX - This check is bogus? [0000:BIOS_FLAG2]-bit7 does NOT - indicate whether it is a note machine, but merely indicates - whether it has ``RAM drive''. */ -# check note machine - testb $0x80, %es:BIOS_FLAG2 - jnz is_note - pushw %ds - pushw $0xfd80 - popw %ds - movb (4), %al - popw %ds - cmpb $0x20, %al # EPSON note A - je epson_note - cmpb $0x22, %al # EPSON note W - je epson_note - cmpb $0x27, %al # EPSON note AE - je epson_note - cmpb $0x2a, %al # EPSON note WR - jne note_done -epson_note: - movb $1, PARAM_VIDEO98_MACHTYPE - movw $msg_note, %si - call prtstr_cs -note_done: -#endif - -# print h98 ? (only NEC) - cmpb $0, PARAM_VIDEO98_COMPAT - jnz 8f # not NEC -> not H98 - - testb $0x80, %es:BIOS_FLAG5 - jz 8f # have NESA bus -> H98 - movw $msg_h98, %si - call prtstr_cs - orb $2, PARAM_VIDEO98_MACHTYPE -8: testb $0x40, %es:BIOS_FLAG5 - jz 9f - movw $msg_gs, %si - call prtstr_cs # only prints it :-) -9: - movw $msg_normal, %si # "normal" - testb $0x8, %es:BIOS_FLAG - jz 1f - movw $msg_hireso, %si -1: call prtstr_cs - - movw $msg_sysclk, %si - call prtstr_cs - movb $'5', %al - testb $0x80, %es:BIOS_FLAG - jz 2f - movb $'8', %al -2: call prtchr - call prtstr_cs - -#if 0 - testb $0x40, %es:(0x45c) - jz no_30line # no 30-line support - - movb %es:KB_SHFT_STS, %al - testb $0x01, %al # is SHIFT key pressed? - jz no_30line - - testb $0x10, %al # is CTRL key pressed? - jnz line40 - - # switch to 30-line mode - movb $30, PARAM_VIDEO98_LINES - movw $msg_30line, %si - jmp 3f - -line40: - movb $37, PARAM_VIDEO98_LINES - movw $40, PARAM_VIDEO_LINES - movw $msg_40line, %si -3: call prtstr_cs - - movb $0x32, %bh - movw $0x300c, %ax - int $0x18 # switch video mode - movb $0x0c, %ah - int $0x18 # turn on text plane - movw %cs:cursor_address, %dx - movb $0x13, %ah - int $0x18 # move cursor to correct place - mov $0x11, %ah - int $0x18 # turn on text plane - - call prtstr_cs # "Ok.\r\n" -no_30line: -#endif - ret - -prtstr_cs: - pushw %ds - pushw %cs - popw %ds - call prtstr - popw %ds - ret - -# prthex is for debugging purposes, and prints %ax in hexadecimal. -prthex: pushw %cx - movw $4, %cx -1: rolw $4, %ax - pushw %ax - andb $0xf, %al - cmpb $10, %al - sbbb $0x69, %al - das - call prtchr - popw %ax - loop 1b - popw %cx - ret - -msg_probing: .string "Probing machine: " - -msg_nec: .string "NEC" -msg_compat: .string "compatible" - -msg_fontdata: .string " (CG sum of A = 0x" - .string ") PC-98" - .string "1 " - -msg_gs: .string "(GS) " -msg_h98: .string "(H98) " - -msg_normal: .string "normal" -msg_hireso: .string "Hi-reso" - -msg_sysclk: .string " mode, system clock " - .string "MHz\r\n" - -#if 0 -msg_40line: # cpp will concat following lines, so the assembler can deal. - .ascii "\ -Video mode will be adjusted to 37-line (so-called ``40-line'') mode later.\r\n\ -THIS MODE MAY DAMAGE YOUR MONITOR PHYSICALLY. USE AT YOUR OWN RISK.\r\n" -msg_30line: .string "Switching video mode to 30-line (640x480) mode... " - .string "Ok.\r\n" -#endif diff -Nru a/arch/i386/defconfig b/arch/i386/defconfig --- a/arch/i386/defconfig 2004-06-28 18:21:57 -07:00 +++ b/arch/i386/defconfig 2004-06-28 18:21:57 -07:00 @@ -1148,7 +1148,7 @@ # CONFIG_NFS_DIRECTIO is not set CONFIG_NFSD=y # CONFIG_NFSD_V3 is not set -# CONFIG_NFSD_TCP is not set +CONFIG_NFSD_TCP=y CONFIG_LOCKD=y CONFIG_EXPORTFS=y CONFIG_SUNRPC=y diff -Nru a/arch/i386/kernel/Makefile b/arch/i386/kernel/Makefile --- a/arch/i386/kernel/Makefile 2004-06-28 18:21:54 -07:00 +++ b/arch/i386/kernel/Makefile 2004-06-28 18:21:54 -07:00 @@ -31,7 +31,6 @@ obj-$(CONFIG_HPET_TIMER) += time_hpet.o obj-$(CONFIG_EFI) += efi.o efi_stub.o obj-$(CONFIG_EARLY_PRINTK) += early_printk.o -obj-$(CONFIG_X86_STD_RESOURCES) += std_resources.o EXTRA_AFLAGS := -traditional diff -Nru a/arch/i386/kernel/acpi/boot.c b/arch/i386/kernel/acpi/boot.c --- a/arch/i386/kernel/acpi/boot.c 2004-06-28 18:21:58 -07:00 +++ b/arch/i386/kernel/acpi/boot.c 2004-06-28 18:21:58 -07:00 @@ -28,7 +28,9 @@ #include #include #include -#include +#include + +#include #include #include #include @@ -436,6 +438,38 @@ *irq = gsi; return 0; } + +unsigned int acpi_register_gsi(u32 gsi, int edge_level, int active_high_low) +{ + unsigned int irq; + +#ifdef CONFIG_PCI + /* + * Make sure all (legacy) PCI IRQs are set as level-triggered. + */ + if (acpi_irq_model == ACPI_IRQ_MODEL_PIC) { + static u16 irq_mask; + extern void eisa_set_level_irq(unsigned int irq); + + if (edge_level == ACPI_LEVEL_SENSITIVE) { + if ((gsi < 16) && !((1 << gsi) & irq_mask)) { + Dprintk(KERN_DEBUG PREFIX "Setting GSI %u as level-triggered\n", gsi); + irq_mask |= (1 << gsi); + eisa_set_level_irq(gsi); + } + } + } +#endif + +#ifdef CONFIG_X86_IO_APIC + if (acpi_irq_model == ACPI_IRQ_MODEL_IOAPIC) { + mp_register_gsi(gsi, edge_level, active_high_low); + } +#endif + acpi_gsi_to_irq(gsi, &irq); + return irq; +} +EXPORT_SYMBOL(acpi_register_gsi); static unsigned long __init acpi_scan_rsdp ( diff -Nru a/arch/i386/kernel/apic.c b/arch/i386/kernel/apic.c --- a/arch/i386/kernel/apic.c 2004-06-28 18:22:00 -07:00 +++ b/arch/i386/kernel/apic.c 2004-06-28 18:22:00 -07:00 @@ -31,7 +31,6 @@ #include #include #include -#include #include #include #include @@ -79,6 +78,17 @@ if (!APIC_INTEGRATED(ver)) /* 82489DX */ v |= APIC_LVT_LEVEL_TRIGGER; apic_write_around(APIC_LVT0, v); +} + +int get_physical_broadcast(void) +{ + unsigned int lvr, version; + lvr = apic_read(APIC_LVR); + version = GET_APIC_VERSION(lvr); + if (version >= 0x14) + return 0xff; + else + return 0xf; } int get_maxlvt(void) diff -Nru a/arch/i386/kernel/apm.c b/arch/i386/kernel/apm.c --- a/arch/i386/kernel/apm.c 2004-06-28 18:21:52 -07:00 +++ b/arch/i386/kernel/apm.c 2004-06-28 18:21:52 -07:00 @@ -222,6 +222,7 @@ #include #include #include +#include #include #include @@ -1884,6 +1885,319 @@ &apm_bios_fops }; + +/* Simple "print if true" callback */ +static int __init print_if_true(struct dmi_system_id *d) +{ + printk("%s\n", d->ident); + return 0; +} + +/* + * Some Bioses enable the PS/2 mouse (touchpad) at resume, even if it was + * disabled before the suspend. Linux used to get terribly confused by that. + */ +static int __init broken_ps2_resume(struct dmi_system_id *d) +{ + printk(KERN_INFO "%s machine detected. Mousepad Resume Bug workaround hopefully not needed.\n", d->ident); + return 0; +} + +/* Some bioses have a broken protected mode poweroff and need to use realmode */ +static int __init set_realmode_power_off(struct dmi_system_id *d) +{ + if (apm_info.realmode_power_off == 0) { + apm_info.realmode_power_off = 1; + printk(KERN_INFO "%s bios detected. Using realmode poweroff only.\n", d->ident); + } + return 0; +} + +/* Some laptops require interrupts to be enabled during APM calls */ +static int __init set_apm_ints(struct dmi_system_id *d) +{ + if (apm_info.allow_ints == 0) { + apm_info.allow_ints = 1; + printk(KERN_INFO "%s machine detected. Enabling interrupts during APM calls.\n", d->ident); + } + return 0; +} + +/* Some APM bioses corrupt memory or just plain do not work */ +static int __init apm_is_horked(struct dmi_system_id *d) +{ + if (apm_info.disabled == 0) { + apm_info.disabled = 1; + printk(KERN_INFO "%s machine detected. Disabling APM.\n", d->ident); + } + return 0; +} + +static int __init apm_is_horked_d850md(struct dmi_system_id *d) +{ + if (apm_info.disabled == 0) { + apm_info.disabled = 1; + printk(KERN_INFO "%s machine detected. Disabling APM.\n", d->ident); + printk(KERN_INFO "This bug is fixed in bios P15 which is available for \n"); + printk(KERN_INFO "download from support.intel.com \n"); + } + return 0; +} + +/* Some APM bioses hang on APM idle calls */ +static int __init apm_likes_to_melt(struct dmi_system_id *d) +{ + if (apm_info.forbid_idle == 0) { + apm_info.forbid_idle = 1; + printk(KERN_INFO "%s machine detected. Disabling APM idle calls.\n", d->ident); + } + return 0; +} + +/* + * Check for clue free BIOS implementations who use + * the following QA technique + * + * [ Write BIOS Code ]<------ + * | ^ + * < Does it Compile >----N-- + * |Y ^ + * < Does it Boot Win98 >-N-- + * |Y + * [Ship It] + * + * Phoenix A04 08/24/2000 is known bad (Dell Inspiron 5000e) + * Phoenix A07 09/29/2000 is known good (Dell Inspiron 5000) + */ +static int __init broken_apm_power(struct dmi_system_id *d) +{ + apm_info.get_power_status_broken = 1; + printk(KERN_WARNING "BIOS strings suggest APM bugs, disabling power status reporting.\n"); + return 0; +} + +/* + * This bios swaps the APM minute reporting bytes over (Many sony laptops + * have this problem). + */ +static int __init swab_apm_power_in_minutes(struct dmi_system_id *d) +{ + apm_info.get_power_status_swabinminutes = 1; + printk(KERN_WARNING "BIOS strings suggest APM reports battery life in minutes and wrong byte order.\n"); + return 0; +} + +static struct dmi_system_id __initdata apm_dmi_table[] = { + { + print_if_true, + KERN_WARNING "IBM T23 - BIOS 1.03b+ and controller firmware 1.02+ may be needed for Linux APM.", + { DMI_MATCH(DMI_SYS_VENDOR, "IBM"), + DMI_MATCH(DMI_BIOS_VERSION, "1AET38WW (1.01b)"), }, + }, + { /* Handle problems with APM on the C600 */ + broken_ps2_resume, "Dell Latitude C600", + { DMI_MATCH(DMI_SYS_VENDOR, "Dell"), + DMI_MATCH(DMI_PRODUCT_NAME, "Latitude C600"), }, + }, + { /* Allow interrupts during suspend on Dell Latitude laptops*/ + set_apm_ints, "Dell Latitude", + { DMI_MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"), + DMI_MATCH(DMI_PRODUCT_NAME, "Latitude C510"), } + }, + { /* APM crashes */ + apm_is_horked, "Dell Inspiron 2500", + { DMI_MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"), + DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 2500"), + DMI_MATCH(DMI_BIOS_VENDOR,"Phoenix Technologies LTD"), + DMI_MATCH(DMI_BIOS_VERSION,"A11"), }, + }, + { /* Allow interrupts during suspend on Dell Inspiron laptops*/ + set_apm_ints, "Dell Inspiron", { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"), + DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 4000"), }, + }, + { /* Handle problems with APM on Inspiron 5000e */ + broken_apm_power, "Dell Inspiron 5000e", + { DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), + DMI_MATCH(DMI_BIOS_VERSION, "A04"), + DMI_MATCH(DMI_BIOS_DATE, "08/24/2000"), }, + }, + { /* Handle problems with APM on Inspiron 2500 */ + broken_apm_power, "Dell Inspiron 2500", + { DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), + DMI_MATCH(DMI_BIOS_VERSION, "A12"), + DMI_MATCH(DMI_BIOS_DATE, "02/04/2002"), }, + }, + { /* APM crashes */ + apm_is_horked, "Dell Dimension 4100", + { DMI_MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"), + DMI_MATCH(DMI_PRODUCT_NAME, "XPS-Z"), + DMI_MATCH(DMI_BIOS_VENDOR,"Intel Corp."), + DMI_MATCH(DMI_BIOS_VERSION,"A11"), }, + }, + { /* Allow interrupts during suspend on Compaq Laptops*/ + set_apm_ints, "Compaq 12XL125", + { DMI_MATCH(DMI_SYS_VENDOR, "Compaq"), + DMI_MATCH(DMI_PRODUCT_NAME, "Compaq PC"), + DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), + DMI_MATCH(DMI_BIOS_VERSION,"4.06"), }, + }, + { /* Allow interrupts during APM or the clock goes slow */ + set_apm_ints, "ASUSTeK", + { DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "L8400K series Notebook PC"), }, + }, + { /* APM blows on shutdown */ + apm_is_horked, "ABIT KX7-333[R]", + { DMI_MATCH(DMI_BOARD_VENDOR, "ABIT"), + DMI_MATCH(DMI_BOARD_NAME, "VT8367-8233A (KX7-333[R])"), }, + }, + { /* APM crashes */ + apm_is_horked, "Trigem Delhi3", + { DMI_MATCH(DMI_SYS_VENDOR, "TriGem Computer, Inc"), + DMI_MATCH(DMI_PRODUCT_NAME, "Delhi3"), }, + }, + { /* APM crashes */ + apm_is_horked, "Fujitsu-Siemens", + { DMI_MATCH(DMI_BIOS_VENDOR, "hoenix/FUJITSU SIEMENS"), + DMI_MATCH(DMI_BIOS_VERSION, "Version1.01"), }, + }, + { /* APM crashes */ + apm_is_horked_d850md, "Intel D850MD", + { DMI_MATCH(DMI_BIOS_VENDOR, "Intel Corp."), + DMI_MATCH(DMI_BIOS_VERSION, "MV85010A.86A.0016.P07.0201251536"), }, + }, + { /* APM crashes */ + apm_is_horked, "Intel D810EMO", + { DMI_MATCH(DMI_BIOS_VENDOR, "Intel Corp."), + DMI_MATCH(DMI_BIOS_VERSION, "MO81010A.86A.0008.P04.0004170800"), }, + }, + { /* APM crashes */ + apm_is_horked, "Dell XPS-Z", + { DMI_MATCH(DMI_BIOS_VENDOR, "Intel Corp."), + DMI_MATCH(DMI_BIOS_VERSION, "A11"), + DMI_MATCH(DMI_PRODUCT_NAME, "XPS-Z"), }, + }, + { /* APM crashes */ + apm_is_horked, "Sharp PC-PJ/AX", + { DMI_MATCH(DMI_SYS_VENDOR, "SHARP"), + DMI_MATCH(DMI_PRODUCT_NAME, "PC-PJ/AX"), + DMI_MATCH(DMI_BIOS_VENDOR,"SystemSoft"), + DMI_MATCH(DMI_BIOS_VERSION,"Version R2.08"), }, + }, + { /* APM crashes */ + apm_is_horked, "Dell Inspiron 2500", + { DMI_MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"), + DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 2500"), + DMI_MATCH(DMI_BIOS_VENDOR,"Phoenix Technologies LTD"), + DMI_MATCH(DMI_BIOS_VERSION,"A11"), }, + }, + { /* APM idle hangs */ + apm_likes_to_melt, "Jabil AMD", + { DMI_MATCH(DMI_BIOS_VENDOR, "American Megatrends Inc."), + DMI_MATCH(DMI_BIOS_VERSION, "0AASNP06"), }, + }, + { /* APM idle hangs */ + apm_likes_to_melt, "AMI Bios", + { DMI_MATCH(DMI_BIOS_VENDOR, "American Megatrends Inc."), + DMI_MATCH(DMI_BIOS_VERSION, "0AASNP05"), }, + }, + { /* Handle problems with APM on Sony Vaio PCG-N505X(DE) */ + swab_apm_power_in_minutes, "Sony VAIO", + { DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), + DMI_MATCH(DMI_BIOS_VERSION, "R0206H"), + DMI_MATCH(DMI_BIOS_DATE, "08/23/99"), }, + }, + { /* Handle problems with APM on Sony Vaio PCG-N505VX */ + swab_apm_power_in_minutes, "Sony VAIO", + { DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), + DMI_MATCH(DMI_BIOS_VERSION, "W2K06H0"), + DMI_MATCH(DMI_BIOS_DATE, "02/03/00"), }, + }, + { /* Handle problems with APM on Sony Vaio PCG-XG29 */ + swab_apm_power_in_minutes, "Sony VAIO", + { DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), + DMI_MATCH(DMI_BIOS_VERSION, "R0117A0"), + DMI_MATCH(DMI_BIOS_DATE, "04/25/00"), }, + }, + { /* Handle problems with APM on Sony Vaio PCG-Z600NE */ + swab_apm_power_in_minutes, "Sony VAIO", + { DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), + DMI_MATCH(DMI_BIOS_VERSION, "R0121Z1"), + DMI_MATCH(DMI_BIOS_DATE, "05/11/00"), }, + }, + { /* Handle problems with APM on Sony Vaio PCG-Z600NE */ + swab_apm_power_in_minutes, "Sony VAIO", + { DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), + DMI_MATCH(DMI_BIOS_VERSION, "WME01Z1"), + DMI_MATCH(DMI_BIOS_DATE, "08/11/00"), }, + }, + { /* Handle problems with APM on Sony Vaio PCG-Z600LEK(DE) */ + swab_apm_power_in_minutes, "Sony VAIO", + { DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), + DMI_MATCH(DMI_BIOS_VERSION, "R0206Z3"), + DMI_MATCH(DMI_BIOS_DATE, "12/25/00"), }, + }, + { /* Handle problems with APM on Sony Vaio PCG-Z505LS */ + swab_apm_power_in_minutes, "Sony VAIO", + { DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), + DMI_MATCH(DMI_BIOS_VERSION, "R0203D0"), + DMI_MATCH(DMI_BIOS_DATE, "05/12/00"), }, + }, + { /* Handle problems with APM on Sony Vaio PCG-Z505LS */ + swab_apm_power_in_minutes, "Sony VAIO", + { DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), + DMI_MATCH(DMI_BIOS_VERSION, "R0203Z3"), + DMI_MATCH(DMI_BIOS_DATE, "08/25/00"), }, + }, + { /* Handle problems with APM on Sony Vaio PCG-Z505LS (with updated BIOS) */ + swab_apm_power_in_minutes, "Sony VAIO", + { DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), + DMI_MATCH(DMI_BIOS_VERSION, "R0209Z3"), + DMI_MATCH(DMI_BIOS_DATE, "05/12/01"), }, + }, + { /* Handle problems with APM on Sony Vaio PCG-F104K */ + swab_apm_power_in_minutes, "Sony VAIO", + { DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), + DMI_MATCH(DMI_BIOS_VERSION, "R0204K2"), + DMI_MATCH(DMI_BIOS_DATE, "08/28/00"), }, + }, + + { /* Handle problems with APM on Sony Vaio PCG-C1VN/C1VE */ + swab_apm_power_in_minutes, "Sony VAIO", + { DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), + DMI_MATCH(DMI_BIOS_VERSION, "R0208P1"), + DMI_MATCH(DMI_BIOS_DATE, "11/09/00"), }, + }, + { /* Handle problems with APM on Sony Vaio PCG-C1VE */ + swab_apm_power_in_minutes, "Sony VAIO", + { DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), + DMI_MATCH(DMI_BIOS_VERSION, "R0204P1"), + DMI_MATCH(DMI_BIOS_DATE, "09/12/00"), }, + }, + { /* Handle problems with APM on Sony Vaio PCG-C1VE */ + swab_apm_power_in_minutes, "Sony VAIO", + { DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), + DMI_MATCH(DMI_BIOS_VERSION, "WXPO1Z3"), + DMI_MATCH(DMI_BIOS_DATE, "10/26/01"), }, + }, + { /* broken PM poweroff bios */ + set_realmode_power_off, "Award Software v4.60 PGMA", + { DMI_MATCH(DMI_BIOS_VENDOR, "Award Software International, Inc."), + DMI_MATCH(DMI_BIOS_VERSION, "4.60 PGMA"), + DMI_MATCH(DMI_BIOS_DATE, "134526184"), }, + }, + + /* Generic per vendor APM settings */ + + { /* Allow interrupts during suspend on IBM laptops */ + set_apm_ints, "IBM", + { DMI_MATCH(DMI_SYS_VENDOR, "IBM"), }, + }, + + { } +}; + /* * Just start the APM thread. We do NOT want to do APM BIOS * calls from anything but the APM thread, if for no other reason @@ -1899,6 +2213,8 @@ struct proc_dir_entry *apm_proc; int ret; int i; + + dmi_check_system(apm_dmi_table); if (apm_info.bios.version == 0) { printk(KERN_INFO "apm: BIOS not found.\n"); diff -Nru a/arch/i386/kernel/cpu/common.c b/arch/i386/kernel/cpu/common.c --- a/arch/i386/kernel/cpu/common.c 2004-06-28 18:21:52 -07:00 +++ b/arch/i386/kernel/cpu/common.c 2004-06-28 18:21:52 -07:00 @@ -329,7 +329,7 @@ generic_identify(c); - printk(KERN_DEBUG "CPU: After generic identify, caps: %08lx %08lx %08lx %08lx\n", + printk(KERN_DEBUG "CPU: After generic identify, caps: %08lx %08lx %08lx %08lx\n", c->x86_capability[0], c->x86_capability[1], c->x86_capability[2], @@ -338,7 +338,7 @@ if (this_cpu->c_identify) { this_cpu->c_identify(c); - printk(KERN_DEBUG "CPU: After vendor identify, caps: %08lx %08lx %08lx %08lx\n", + printk(KERN_DEBUG "CPU: After vendor identify, caps: %08lx %08lx %08lx %08lx\n", c->x86_capability[0], c->x86_capability[1], c->x86_capability[2], @@ -393,7 +393,7 @@ /* Now the feature flags better reflect actual CPU features! */ - printk(KERN_DEBUG "CPU: After all inits, caps: %08lx %08lx %08lx %08lx\n", + printk(KERN_DEBUG "CPU: After all inits, caps: %08lx %08lx %08lx %08lx\n", c->x86_capability[0], c->x86_capability[1], c->x86_capability[2], @@ -473,7 +473,6 @@ void __init early_cpu_init(void) { - early_cpu_detect(); intel_cpu_init(); cyrix_init_cpu(); nsc_init_cpu(); @@ -483,6 +482,7 @@ rise_init_cpu(); nexgen_init_cpu(); umc_init_cpu(); + early_cpu_detect(); #ifdef CONFIG_DEBUG_PAGEALLOC /* pse is not compatible with on-the-fly unmapping, diff -Nru a/arch/i386/kernel/cpu/cpufreq/powernow-k7.c b/arch/i386/kernel/cpu/cpufreq/powernow-k7.c --- a/arch/i386/kernel/cpu/cpufreq/powernow-k7.c 2004-06-28 18:21:52 -07:00 +++ b/arch/i386/kernel/cpu/cpufreq/powernow-k7.c 2004-06-28 18:21:52 -07:00 @@ -22,6 +22,7 @@ #include #include #include +#include #include #include @@ -554,6 +555,31 @@ } +static int __init acer_cpufreq_pst(struct dmi_system_id *d) +{ + printk(KERN_WARNING "%s laptop with broken PST tables in BIOS detected.\n", d->ident); + printk(KERN_WARNING "You need to downgrade to 3A21 (09/09/2002), or try a newer BIOS than 3A71 (01/20/2003)\n"); + printk(KERN_WARNING "cpufreq scaling has been disabled as a result of this.\n"); + return 0; +} + +/* + * Some Athlon laptops have really fucked PST tables. + * A BIOS update is all that can save them. + * Mention this, and disable cpufreq. + */ +static struct dmi_system_id __initdata powernow_dmi_table[] = { + { + .callback = acer_cpufreq_pst, + .ident = "Acer Aspire", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Insyde Software"), + DMI_MATCH(DMI_BIOS_VERSION, "3A71"), + }, + }, + { } +}; + static int __init powernow_cpu_init (struct cpufreq_policy *policy) { union msr_fidvidstatus fidvidstatus; @@ -572,7 +598,7 @@ } dprintk(KERN_INFO PFX "FSB: %3d.%03d MHz\n", fsb/1000, fsb%1000); - if ((dmi_broken & BROKEN_CPUFREQ) || acpi_force) { + if (dmi_check_system(powernow_dmi_table) || acpi_force) { printk (KERN_INFO PFX "PSB/PST known to be broken. Trying ACPI instead\n"); result = powernow_acpi_init(); } else { diff -Nru a/arch/i386/kernel/cpu/proc.c b/arch/i386/kernel/cpu/proc.c --- a/arch/i386/kernel/cpu/proc.c 2004-06-28 18:21:59 -07:00 +++ b/arch/i386/kernel/cpu/proc.c 2004-06-28 18:21:59 -07:00 @@ -27,7 +27,7 @@ /* AMD-defined */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "syscall", NULL, NULL, NULL, NULL, - NULL, NULL, NULL, "mp", NULL, NULL, "mmxext", NULL, + NULL, NULL, NULL, "mp", "nx", NULL, "mmxext", NULL, NULL, NULL, NULL, NULL, NULL, "lm", "3dnowext", "3dnow", /* Transmeta-defined */ diff -Nru a/arch/i386/kernel/cpuid.c b/arch/i386/kernel/cpuid.c --- a/arch/i386/kernel/cpuid.c 2004-06-28 18:21:52 -07:00 +++ b/arch/i386/kernel/cpuid.c 2004-06-28 18:21:52 -07:00 @@ -36,12 +36,17 @@ #include #include #include +#include +#include +#include #include #include #include #include +static struct class_simple *cpuid_class; + #ifdef CONFIG_SMP struct cpuid_command { @@ -153,20 +158,84 @@ .open = cpuid_open, }; +static int cpuid_class_simple_device_add(int i) +{ + int err = 0; + struct class_device *class_err; + + class_err = class_simple_device_add(cpuid_class, MKDEV(CPUID_MAJOR, i), NULL, "cpu%d",i); + if (IS_ERR(class_err)) + err = PTR_ERR(class_err); + return err; +} + +static int __devinit cpuid_class_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu) +{ + unsigned int cpu = (unsigned long)hcpu; + + switch (action) { + case CPU_ONLINE: + cpuid_class_simple_device_add(cpu); + break; + case CPU_DEAD: + class_simple_device_remove(MKDEV(CPUID_MAJOR, cpu)); + break; + } + return NOTIFY_OK; +} + +static struct notifier_block cpuid_class_cpu_notifier = +{ + .notifier_call = cpuid_class_cpu_callback, +}; + int __init cpuid_init(void) { + int i, err = 0; + i = 0; + if (register_chrdev(CPUID_MAJOR, "cpu/cpuid", &cpuid_fops)) { printk(KERN_ERR "cpuid: unable to get major %d for cpuid\n", CPUID_MAJOR); - return -EBUSY; + err = -EBUSY; + goto out; + } + cpuid_class = class_simple_create(THIS_MODULE, "cpuid"); + if (IS_ERR(cpuid_class)) { + err = PTR_ERR(cpuid_class); + goto out_chrdev; } + for_each_online_cpu(i) { + err = cpuid_class_simple_device_add(i); + if (err != 0) + goto out_class; + } + register_cpu_notifier(&cpuid_class_cpu_notifier); - return 0; + err = 0; + goto out; + +out_class: + i = 0; + for_each_online_cpu(i) { + class_simple_device_remove(MKDEV(CPUID_MAJOR, i)); + } + class_simple_destroy(cpuid_class); +out_chrdev: + unregister_chrdev(CPUID_MAJOR, "cpu/cpuid"); +out: + return err; } void __exit cpuid_exit(void) { + int cpu = 0; + + for_each_online_cpu(cpu) + class_simple_device_remove(MKDEV(CPUID_MAJOR, cpu)); + class_simple_destroy(cpuid_class); unregister_chrdev(CPUID_MAJOR, "cpu/cpuid"); + unregister_cpu_notifier(&cpuid_class_cpu_notifier); } module_init(cpuid_init); diff -Nru a/arch/i386/kernel/dmi_scan.c b/arch/i386/kernel/dmi_scan.c --- a/arch/i386/kernel/dmi_scan.c 2004-06-28 18:21:55 -07:00 +++ b/arch/i386/kernel/dmi_scan.c 2004-06-28 18:21:55 -07:00 @@ -1,22 +1,19 @@ -#include #include #include #include #include #include -#include #include #include #include #include #include +#include #include unsigned long dmi_broken; EXPORT_SYMBOL(dmi_broken); -int is_sony_vaio_laptop; -int is_unsafe_smbus; int es7000_plat = 0; struct dmi_header @@ -139,21 +136,6 @@ return -1; } - -enum -{ - DMI_BIOS_VENDOR, - DMI_BIOS_VERSION, - DMI_BIOS_DATE, - DMI_SYS_VENDOR, - DMI_PRODUCT_NAME, - DMI_PRODUCT_VERSION, - DMI_BOARD_VENDOR, - DMI_BOARD_NAME, - DMI_BOARD_VERSION, - DMI_STRING_MAX -}; - static char *dmi_ident[DMI_STRING_MAX]; /* @@ -176,26 +158,11 @@ } /* - * DMI callbacks for problem boards + * Ugly compatibility crap. */ - -struct dmi_strmatch -{ - u8 slot; - char *substr; -}; - -#define NONE 255 - -struct dmi_blacklist -{ - int (*callback)(struct dmi_blacklist *); - char *ident; - struct dmi_strmatch matches[4]; -}; - -#define NO_MATCH { NONE, NULL} -#define MATCH(a,b) { a, b } +#define dmi_blacklist dmi_system_id +#define NO_MATCH { DMI_NONE, NULL} +#define MATCH DMI_MATCH /* * Reboot options and system auto-detection code provided by @@ -243,73 +210,6 @@ } /* - * Some bioses have a broken protected mode poweroff and need to use realmode - */ - -static __init int set_realmode_power_off(struct dmi_blacklist *d) -{ - if (apm_info.realmode_power_off == 0) - { - apm_info.realmode_power_off = 1; - printk(KERN_INFO "%s bios detected. Using realmode poweroff only.\n", d->ident); - } - return 0; -} - - -/* - * Some laptops require interrupts to be enabled during APM calls - */ - -static __init int set_apm_ints(struct dmi_blacklist *d) -{ - if (apm_info.allow_ints == 0) - { - apm_info.allow_ints = 1; - printk(KERN_INFO "%s machine detected. Enabling interrupts during APM calls.\n", d->ident); - } - return 0; -} - -/* - * Some APM bioses corrupt memory or just plain do not work - */ - -static __init int apm_is_horked(struct dmi_blacklist *d) -{ - if (apm_info.disabled == 0) - { - apm_info.disabled = 1; - printk(KERN_INFO "%s machine detected. Disabling APM.\n", d->ident); - } - return 0; -} - -static __init int apm_is_horked_d850md(struct dmi_blacklist *d) -{ - if (apm_info.disabled == 0) { - apm_info.disabled = 1; - printk(KERN_INFO "%s machine detected. Disabling APM.\n", d->ident); - printk(KERN_INFO "This bug is fixed in bios P15 which is available for \n"); - printk(KERN_INFO "download from support.intel.com \n"); - } - return 0; -} - -/* - * Some APM bioses hang on APM idle calls - */ - -static __init int apm_likes_to_melt(struct dmi_blacklist *d) -{ - if (apm_info.forbid_idle == 0) { - apm_info.forbid_idle = 1; - printk(KERN_INFO "%s machine detected. Disabling APM idle calls.\n", d->ident); - } - return 0; -} - -/* * Some machines, usually laptops, can't handle an enabled local APIC. * The symptoms include hangs or reboots when suspending or resuming, * attaching or detaching the power cord, or entering BIOS setup screens @@ -329,99 +229,6 @@ return 0; } -/* - * Don't access SMBus on IBM systems which get corrupted eeproms - */ - -static __init int disable_smbus(struct dmi_blacklist *d) -{ - if (is_unsafe_smbus == 0) { - is_unsafe_smbus = 1; - printk(KERN_INFO "%s machine detected. Disabling SMBus accesses.\n", d->ident); - } - return 0; -} - -/* - * Work around broken HP Pavilion Notebooks which assign USB to - * IRQ 9 even though it is actually wired to IRQ 11 - */ -static __init int fix_broken_hp_bios_irq9(struct dmi_blacklist *d) -{ -#ifdef CONFIG_PCI - extern int broken_hp_bios_irq9; - if (broken_hp_bios_irq9 == 0) - { - broken_hp_bios_irq9 = 1; - printk(KERN_INFO "%s detected - fixing broken IRQ routing\n", d->ident); - } -#endif - return 0; -} - -/* - * Check for clue free BIOS implementations who use - * the following QA technique - * - * [ Write BIOS Code ]<------ - * | ^ - * < Does it Compile >----N-- - * |Y ^ - * < Does it Boot Win98 >-N-- - * |Y - * [Ship It] - * - * Phoenix A04 08/24/2000 is known bad (Dell Inspiron 5000e) - * Phoenix A07 09/29/2000 is known good (Dell Inspiron 5000) - */ - -static __init int broken_apm_power(struct dmi_blacklist *d) -{ - apm_info.get_power_status_broken = 1; - printk(KERN_WARNING "BIOS strings suggest APM bugs, disabling power status reporting.\n"); - return 0; -} - -/* - * Check for a Sony Vaio system - * - * On a Sony system we want to enable the use of the sonypi - * driver for Sony-specific goodies like the camera and jogdial. - * We also want to avoid using certain functions of the PnP BIOS. - */ - -static __init int sony_vaio_laptop(struct dmi_blacklist *d) -{ - if (is_sony_vaio_laptop == 0) - { - is_sony_vaio_laptop = 1; - printk(KERN_INFO "%s laptop detected.\n", d->ident); - } - return 0; -} - -/* - * This bios swaps the APM minute reporting bytes over (Many sony laptops - * have this problem). - */ - -static __init int swab_apm_power_in_minutes(struct dmi_blacklist *d) -{ - apm_info.get_power_status_swabinminutes = 1; - printk(KERN_WARNING "BIOS strings suggest APM reports battery life in minutes and wrong byte order.\n"); - return 0; -} - -/* - * ASUS K7V-RM has broken ACPI table defining sleep modes - */ - -static __init int broken_acpi_Sx(struct dmi_blacklist *d) -{ - printk(KERN_WARNING "Detected ASUS mainboard with broken ACPI sleep table\n"); - dmi_broken |= BROKEN_ACPI_Sx; - return 0; -} /* * Toshiba keyboard likes to repeat keys when they are not repeated. @@ -454,49 +261,6 @@ } #endif -/* - * Some Bioses enable the PS/2 mouse (touchpad) at resume, even if it was - * disabled before the suspend. Linux used to get terribly confused by that. - */ - -static __init int broken_ps2_resume(struct dmi_blacklist *d) -{ - printk(KERN_INFO "%s machine detected. Mousepad Resume Bug workaround hopefully not needed.\n", d->ident); - return 0; -} - -/* - * Exploding PnPBIOS. Don't yet know if its the BIOS or us for - * some entries - */ - -static __init int exploding_pnp_bios(struct dmi_blacklist *d) -{ - printk(KERN_WARNING "%s detected. Disabling PnPBIOS\n", d->ident); - dmi_broken |= BROKEN_PNP_BIOS; - return 0; -} - -static __init int acer_cpufreq_pst(struct dmi_blacklist *d) -{ - printk(KERN_WARNING "%s laptop with broken PST tables in BIOS detected.\n", d->ident); - printk(KERN_WARNING "You need to downgrade to 3A21 (09/09/2002), or try a newer BIOS than 3A71 (01/20/2003)\n"); - printk(KERN_WARNING "cpufreq scaling has been disabled as a result of this.\n"); - dmi_broken |= BROKEN_CPUFREQ; - return 0; -} - - -/* - * Simple "print if true" callback - */ - -static __init int print_if_true(struct dmi_blacklist *d) -{ - printk("%s\n", d->ident); - return 0; -} - #ifdef CONFIG_ACPI_BOOT extern int acpi_force; @@ -546,15 +310,21 @@ #ifdef CONFIG_ACPI_PCI static __init int disable_acpi_irq(struct dmi_blacklist *d) -{ - printk(KERN_NOTICE "%s detected: force use of acpi=noirq\n", d->ident); - acpi_noirq_set(); +{ + if (!acpi_force) { + printk(KERN_NOTICE "%s detected: force use of acpi=noirq\n", + d->ident); + acpi_noirq_set(); + } return 0; } static __init int disable_acpi_pci(struct dmi_blacklist *d) -{ - printk(KERN_NOTICE "%s detected: force use of pci=noacpi\n", d->ident); - acpi_disable_pci(); +{ + if (!acpi_force) { + printk(KERN_NOTICE "%s detected: force use of pci=noacpi\n", + d->ident); + acpi_disable_pci(); + } return 0; } #endif @@ -570,48 +340,6 @@ */ static __initdata struct dmi_blacklist dmi_blacklist[]={ - { broken_ps2_resume, "Dell Latitude C600", { /* Handle problems with APM on the C600 */ - MATCH(DMI_SYS_VENDOR, "Dell"), - MATCH(DMI_PRODUCT_NAME, "Latitude C600"), - NO_MATCH, NO_MATCH - } }, - { set_apm_ints, "Dell Latitude", { /* Allow interrupts during suspend on Dell Latitude laptops*/ - MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"), - MATCH(DMI_PRODUCT_NAME, "Latitude C510"), - NO_MATCH, NO_MATCH - } }, - { apm_is_horked, "Dell Inspiron 2500", { /* APM crashes */ - MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"), - MATCH(DMI_PRODUCT_NAME, "Inspiron 2500"), - MATCH(DMI_BIOS_VENDOR,"Phoenix Technologies LTD"), - MATCH(DMI_BIOS_VERSION,"A11") - } }, - { set_apm_ints, "Dell Inspiron", { /* Allow interrupts during suspend on Dell Inspiron laptops*/ - MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"), - MATCH(DMI_PRODUCT_NAME, "Inspiron 4000"), - NO_MATCH, NO_MATCH - } }, - { broken_apm_power, "Dell Inspiron 5000e", { /* Handle problems with APM on Inspiron 5000e */ - MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), - MATCH(DMI_BIOS_VERSION, "A04"), - MATCH(DMI_BIOS_DATE, "08/24/2000"), NO_MATCH - } }, - { broken_apm_power, "Dell Inspiron 2500", { /* Handle problems with APM on Inspiron 2500 */ - MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), - MATCH(DMI_BIOS_VERSION, "A12"), - MATCH(DMI_BIOS_DATE, "02/04/2002"), NO_MATCH - } }, - { apm_is_horked, "Dell Dimension 4100", { /* APM crashes */ - MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"), - MATCH(DMI_PRODUCT_NAME, "XPS-Z"), - MATCH(DMI_BIOS_VENDOR,"Intel Corp."), - MATCH(DMI_BIOS_VERSION,"A11") - } }, - { set_realmode_power_off, "Award Software v4.60 PGMA", { /* broken PM poweroff bios */ - MATCH(DMI_BIOS_VENDOR, "Award Software International, Inc."), - MATCH(DMI_BIOS_VERSION, "4.60 PGMA"), - MATCH(DMI_BIOS_DATE, "134526184"), NO_MATCH - } }, { set_smp_bios_reboot, "Dell PowerEdge 1300", { /* Handle problems with rebooting on Dell 1300's */ MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"), MATCH(DMI_PRODUCT_NAME, "PowerEdge 1300/"), @@ -627,165 +355,7 @@ MATCH(DMI_PRODUCT_NAME, "PowerEdge 2400"), NO_MATCH, NO_MATCH } }, - { set_apm_ints, "Compaq 12XL125", { /* Allow interrupts during suspend on Compaq Laptops*/ - MATCH(DMI_SYS_VENDOR, "Compaq"), - MATCH(DMI_PRODUCT_NAME, "Compaq PC"), - MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), - MATCH(DMI_BIOS_VERSION,"4.06") - } }, - { set_apm_ints, "ASUSTeK", { /* Allow interrupts during APM or the clock goes slow */ - MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer Inc."), - MATCH(DMI_PRODUCT_NAME, "L8400K series Notebook PC"), - NO_MATCH, NO_MATCH - } }, - { apm_is_horked, "ABIT KX7-333[R]", { /* APM blows on shutdown */ - MATCH(DMI_BOARD_VENDOR, "ABIT"), - MATCH(DMI_BOARD_NAME, "VT8367-8233A (KX7-333[R])"), - NO_MATCH, NO_MATCH, - } }, - { apm_is_horked, "Trigem Delhi3", { /* APM crashes */ - MATCH(DMI_SYS_VENDOR, "TriGem Computer, Inc"), - MATCH(DMI_PRODUCT_NAME, "Delhi3"), - NO_MATCH, NO_MATCH, - } }, - { apm_is_horked, "Fujitsu-Siemens", { /* APM crashes */ - MATCH(DMI_BIOS_VENDOR, "hoenix/FUJITSU SIEMENS"), - MATCH(DMI_BIOS_VERSION, "Version1.01"), - NO_MATCH, NO_MATCH, - } }, - { apm_is_horked_d850md, "Intel D850MD", { /* APM crashes */ - MATCH(DMI_BIOS_VENDOR, "Intel Corp."), - MATCH(DMI_BIOS_VERSION, "MV85010A.86A.0016.P07.0201251536"), - NO_MATCH, NO_MATCH, - } }, - { apm_is_horked, "Intel D810EMO", { /* APM crashes */ - MATCH(DMI_BIOS_VENDOR, "Intel Corp."), - MATCH(DMI_BIOS_VERSION, "MO81010A.86A.0008.P04.0004170800"), - NO_MATCH, NO_MATCH, - } }, - { apm_is_horked, "Dell XPS-Z", { /* APM crashes */ - MATCH(DMI_BIOS_VENDOR, "Intel Corp."), - MATCH(DMI_BIOS_VERSION, "A11"), - MATCH(DMI_PRODUCT_NAME, "XPS-Z"), - NO_MATCH, - } }, - { apm_is_horked, "Sharp PC-PJ/AX", { /* APM crashes */ - MATCH(DMI_SYS_VENDOR, "SHARP"), - MATCH(DMI_PRODUCT_NAME, "PC-PJ/AX"), - MATCH(DMI_BIOS_VENDOR,"SystemSoft"), - MATCH(DMI_BIOS_VERSION,"Version R2.08") - } }, - { apm_is_horked, "Dell Inspiron 2500", { /* APM crashes */ - MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"), - MATCH(DMI_PRODUCT_NAME, "Inspiron 2500"), - MATCH(DMI_BIOS_VENDOR,"Phoenix Technologies LTD"), - MATCH(DMI_BIOS_VERSION,"A11") - } }, - { apm_likes_to_melt, "Jabil AMD", { /* APM idle hangs */ - MATCH(DMI_BIOS_VENDOR, "American Megatrends Inc."), - MATCH(DMI_BIOS_VERSION, "0AASNP06"), - NO_MATCH, NO_MATCH, - } }, - { apm_likes_to_melt, "AMI Bios", { /* APM idle hangs */ - MATCH(DMI_BIOS_VENDOR, "American Megatrends Inc."), - MATCH(DMI_BIOS_VERSION, "0AASNP05"), - NO_MATCH, NO_MATCH, - } }, - { sony_vaio_laptop, "Sony Vaio", { /* This is a Sony Vaio laptop */ - MATCH(DMI_SYS_VENDOR, "Sony Corporation"), - MATCH(DMI_PRODUCT_NAME, "PCG-"), - NO_MATCH, NO_MATCH, - } }, - { swab_apm_power_in_minutes, "Sony VAIO", { /* Handle problems with APM on Sony Vaio PCG-N505X(DE) */ - MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), - MATCH(DMI_BIOS_VERSION, "R0206H"), - MATCH(DMI_BIOS_DATE, "08/23/99"), NO_MATCH - } }, - - { swab_apm_power_in_minutes, "Sony VAIO", { /* Handle problems with APM on Sony Vaio PCG-N505VX */ - MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), - MATCH(DMI_BIOS_VERSION, "W2K06H0"), - MATCH(DMI_BIOS_DATE, "02/03/00"), NO_MATCH - } }, - - { swab_apm_power_in_minutes, "Sony VAIO", { /* Handle problems with APM on Sony Vaio PCG-XG29 */ - MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), - MATCH(DMI_BIOS_VERSION, "R0117A0"), - MATCH(DMI_BIOS_DATE, "04/25/00"), NO_MATCH - } }, - - { swab_apm_power_in_minutes, "Sony VAIO", { /* Handle problems with APM on Sony Vaio PCG-Z600NE */ - MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), - MATCH(DMI_BIOS_VERSION, "R0121Z1"), - MATCH(DMI_BIOS_DATE, "05/11/00"), NO_MATCH - } }, - - { swab_apm_power_in_minutes, "Sony VAIO", { /* Handle problems with APM on Sony Vaio PCG-Z600NE */ - MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), - MATCH(DMI_BIOS_VERSION, "WME01Z1"), - MATCH(DMI_BIOS_DATE, "08/11/00"), NO_MATCH - } }, - - { swab_apm_power_in_minutes, "Sony VAIO", { /* Handle problems with APM on Sony Vaio PCG-Z600LEK(DE) */ - MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), - MATCH(DMI_BIOS_VERSION, "R0206Z3"), - MATCH(DMI_BIOS_DATE, "12/25/00"), NO_MATCH - } }, - - { swab_apm_power_in_minutes, "Sony VAIO", { /* Handle problems with APM on Sony Vaio PCG-Z505LS */ - MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), - MATCH(DMI_BIOS_VERSION, "R0203D0"), - MATCH(DMI_BIOS_DATE, "05/12/00"), NO_MATCH - } }, - - { swab_apm_power_in_minutes, "Sony VAIO", { /* Handle problems with APM on Sony Vaio PCG-Z505LS */ - MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), - MATCH(DMI_BIOS_VERSION, "R0203Z3"), - MATCH(DMI_BIOS_DATE, "08/25/00"), NO_MATCH - } }, - - { swab_apm_power_in_minutes, "Sony VAIO", { /* Handle problems with APM on Sony Vaio PCG-Z505LS (with updated BIOS) */ - MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), - MATCH(DMI_BIOS_VERSION, "R0209Z3"), - MATCH(DMI_BIOS_DATE, "05/12/01"), NO_MATCH - } }, - - { swab_apm_power_in_minutes, "Sony VAIO", { /* Handle problems with APM on Sony Vaio PCG-F104K */ - MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), - MATCH(DMI_BIOS_VERSION, "R0204K2"), - MATCH(DMI_BIOS_DATE, "08/28/00"), NO_MATCH - } }, - - { swab_apm_power_in_minutes, "Sony VAIO", { /* Handle problems with APM on Sony Vaio PCG-C1VN/C1VE */ - MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), - MATCH(DMI_BIOS_VERSION, "R0208P1"), - MATCH(DMI_BIOS_DATE, "11/09/00"), NO_MATCH - } }, - - { swab_apm_power_in_minutes, "Sony VAIO", { /* Handle problems with APM on Sony Vaio PCG-C1VE */ - MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), - MATCH(DMI_BIOS_VERSION, "R0204P1"), - MATCH(DMI_BIOS_DATE, "09/12/00"), NO_MATCH - } }, - - { swab_apm_power_in_minutes, "Sony VAIO", { /* Handle problems with APM on Sony Vaio PCG-C1VE */ - MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), - MATCH(DMI_BIOS_VERSION, "WXPO1Z3"), - MATCH(DMI_BIOS_DATE, "10/26/01"), NO_MATCH - } }, - { exploding_pnp_bios, "Higraded P14H", { /* PnPBIOS GPF on boot */ - MATCH(DMI_BIOS_VENDOR, "American Megatrends Inc."), - MATCH(DMI_BIOS_VERSION, "07.00T"), - MATCH(DMI_SYS_VENDOR, "Higraded"), - MATCH(DMI_PRODUCT_NAME, "P14H") - } }, - { exploding_pnp_bios, "ASUS P4P800", { /* PnPBIOS GPF on boot */ - MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer Inc."), - MATCH(DMI_BOARD_NAME, "P4P800"), - NO_MATCH, NO_MATCH - } }, - /* Machines which have problems handling enabled local APICs */ { local_apic_kills_bios, "Dell Inspiron", { @@ -812,12 +382,6 @@ NO_MATCH, NO_MATCH } }, - { broken_acpi_Sx, "ASUS K7V-RM", { /* Bad ACPI Sx table */ - MATCH(DMI_BIOS_VERSION,"ASUS K7V-RM ACPI BIOS Revision 1003A"), - MATCH(DMI_BOARD_NAME, ""), - NO_MATCH, NO_MATCH - } }, - { broken_toshiba_keyboard, "Toshiba Satellite 4030cdt", { /* Keyboard generates spurious repeats */ MATCH(DMI_PRODUCT_NAME, "S4030CDT/4.3"), NO_MATCH, NO_MATCH, NO_MATCH @@ -833,49 +397,6 @@ } }, #endif - { print_if_true, KERN_WARNING "IBM T23 - BIOS 1.03b+ and controller firmware 1.02+ may be needed for Linux APM.", { - MATCH(DMI_SYS_VENDOR, "IBM"), - MATCH(DMI_BIOS_VERSION, "1AET38WW (1.01b)"), - NO_MATCH, NO_MATCH - } }, - - { fix_broken_hp_bios_irq9, "HP Pavilion N5400 Series Laptop", { - MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), - MATCH(DMI_BIOS_VERSION, "GE.M1.03"), - MATCH(DMI_PRODUCT_VERSION, "HP Pavilion Notebook Model GE"), - MATCH(DMI_BOARD_VERSION, "OmniBook N32N-736") - } }, - - - /* - * Generic per vendor APM settings - */ - - { set_apm_ints, "IBM", { /* Allow interrupts during suspend on IBM laptops */ - MATCH(DMI_SYS_VENDOR, "IBM"), - NO_MATCH, NO_MATCH, NO_MATCH - } }, - - /* - * SMBus / sensors settings - */ - - { disable_smbus, "IBM", { - MATCH(DMI_SYS_VENDOR, "IBM"), - NO_MATCH, NO_MATCH, NO_MATCH - } }, - - /* - * Some Athlon laptops have really fucked PST tables. - * A BIOS update is all that can save them. - * Mention this, and disable cpufreq. - */ - { acer_cpufreq_pst, "Acer Aspire", { - MATCH(DMI_SYS_VENDOR, "Insyde Software"), - MATCH(DMI_BIOS_VERSION, "3A71"), - NO_MATCH, NO_MATCH, - } }, - #ifdef CONFIG_ACPI_BOOT /* * If your system is blacklisted here, but you find that acpi=force @@ -1034,6 +555,13 @@ MATCH(DMI_BOARD_NAME, "PR-DLS"), MATCH(DMI_BIOS_VERSION, "ASUS PR-DLS ACPI BIOS Revision 1010"), MATCH(DMI_BIOS_DATE, "03/21/2003") }}, + + { disable_acpi_pci, "Acer TravelMate 36x Laptop", { + MATCH(DMI_SYS_VENDOR, "Acer"), + MATCH(DMI_PRODUCT_NAME, "TravelMate 360"), + NO_MATCH, NO_MATCH + } }, + #endif { NULL, } @@ -1048,9 +576,6 @@ static __init void dmi_check_blacklist(void) { - struct dmi_blacklist *d; - int i; - #ifdef CONFIG_ACPI_BOOT #define ACPI_BLACKLIST_CUTOFF_YEAR 2001 @@ -1072,25 +597,7 @@ } } #endif - - d=&dmi_blacklist[0]; - while(d->callback) - { - for(i=0;i<4;i++) - { - int s = d->matches[i].slot; - if(s==NONE) - continue; - if(dmi_ident[s] && strstr(dmi_ident[s], d->matches[i].substr)) - continue; - /* No match */ - goto fail; - } - if(d->callback(d)) - return; -fail: - d++; - } + dmi_check_system(dmi_blacklist); } @@ -1156,4 +663,51 @@ printk(KERN_INFO "DMI not present.\n"); } -EXPORT_SYMBOL(is_unsafe_smbus); + +/** + * dmi_check_system - check system DMI data + * @list: array of dmi_system_id structures to match against + * + * Walk the blacklist table running matching functions until someone + * returns non zero or we hit the end. Callback function is called for + * each successfull match. Returns the number of matches. + */ +int dmi_check_system(struct dmi_system_id *list) +{ + int i, count = 0; + struct dmi_system_id *d = list; + + while (d->ident) { + for (i = 0; i < ARRAY_SIZE(d->matches); i++) { + int s = d->matches[i].slot; + if (s == DMI_NONE) + continue; + if (dmi_ident[s] && strstr(dmi_ident[s], d->matches[i].substr)) + continue; + /* No match */ + goto fail; + } + if (d->callback && d->callback(d)) + break; + count++; +fail: d++; + } + + return count; +} + +EXPORT_SYMBOL(dmi_check_system); + +/** + * dmi_get_system_info - return DMI data value + * @field: data index (see enum dmi_filed) + * + * Returns one DMI data value, can be used to perform + * complex DMI data checks. + */ +char * dmi_get_system_info(int field) +{ + return dmi_ident[field]; +} + +EXPORT_SYMBOL(dmi_get_system_info); diff -Nru a/arch/i386/kernel/efi.c b/arch/i386/kernel/efi.c --- a/arch/i386/kernel/efi.c 2004-06-28 18:21:58 -07:00 +++ b/arch/i386/kernel/efi.c 2004-06-28 18:21:58 -07:00 @@ -37,7 +37,6 @@ #include #include #include -#include #include #define EFI_DEBUG 0 diff -Nru a/arch/i386/kernel/head.S b/arch/i386/kernel/head.S --- a/arch/i386/kernel/head.S 2004-06-28 18:21:53 -07:00 +++ b/arch/i386/kernel/head.S 2004-06-28 18:21:53 -07:00 @@ -153,6 +153,32 @@ orl %edx,%eax movl %eax,%cr4 + btl $5, %eax # check if PAE is enabled + jnc 6f + + /* Check if extended functions are implemented */ + movl $0x80000000, %eax + cpuid + cmpl $0x80000000, %eax + jbe 6f + mov $0x80000001, %eax + cpuid + /* Execute Disable bit supported? */ + btl $20, %edx + jnc 6f + + /* Setup EFER (Extended Feature Enable Register) */ + movl $0xc0000080, %ecx + rdmsr + + btsl $11, %eax + /* Make changes effective */ + wrmsr + +6: + /* cpuid clobbered ebx, set it up again: */ + xorl %ebx,%ebx + incl %ebx 3: #endif /* CONFIG_SMP */ diff -Nru a/arch/i386/kernel/i386_ksyms.c b/arch/i386/kernel/i386_ksyms.c --- a/arch/i386/kernel/i386_ksyms.c 2004-06-28 18:22:00 -07:00 +++ b/arch/i386/kernel/i386_ksyms.c 2004-06-28 18:22:00 -07:00 @@ -29,7 +29,6 @@ #include #include #include -#include #include #include #include @@ -173,23 +172,14 @@ EXPORT_SYMBOL_GPL(set_nmi_callback); EXPORT_SYMBOL_GPL(unset_nmi_callback); - -#undef memcpy -#undef memset + #undef memcmp -extern void * memset(void *,int,__kernel_size_t); -extern void * memcpy(void *,const void *,__kernel_size_t); extern int memcmp(const void *,const void *,__kernel_size_t); -EXPORT_SYMBOL_NOVERS(memcpy); -EXPORT_SYMBOL_NOVERS(memset); EXPORT_SYMBOL_NOVERS(memcmp); #ifdef CONFIG_HAVE_DEC_LOCK EXPORT_SYMBOL(atomic_dec_and_lock); #endif - -extern int is_sony_vaio_laptop; -EXPORT_SYMBOL(is_sony_vaio_laptop); EXPORT_SYMBOL(__PAGE_KERNEL); diff -Nru a/arch/i386/kernel/i8259.c b/arch/i386/kernel/i8259.c --- a/arch/i386/kernel/i8259.c 2004-06-28 18:21:59 -07:00 +++ b/arch/i386/kernel/i8259.c 2004-06-28 18:21:59 -07:00 @@ -317,16 +317,11 @@ * be shot. */ -/* - * =PC9800NOTE= In NEC PC-9800, we use irq8 instead of irq13! - */ static irqreturn_t math_error_irq(int cpl, void *dev_id, struct pt_regs *regs) { extern void math_error(void *); -#ifndef CONFIG_X86_PC9800 outb(0,0xF0); -#endif if (ignore_fpu_irq || !boot_cpu_data.hard_math) return IRQ_NONE; math_error((void *)regs->eip); @@ -337,7 +332,7 @@ * New motherboards sometimes make IRQ 13 be a PCI interrupt, * so allow interrupt sharing. */ -static struct irqaction fpu_irq = { math_error_irq, 0, 0, "fpu", NULL, NULL }; +static struct irqaction fpu_irq = { math_error_irq, 0, CPU_MASK_NONE, "fpu", NULL, NULL }; void __init init_ISA_irqs (void) { diff -Nru a/arch/i386/kernel/init_task.c b/arch/i386/kernel/init_task.c --- a/arch/i386/kernel/init_task.c 2004-06-28 18:21:59 -07:00 +++ b/arch/i386/kernel/init_task.c 2004-06-28 18:21:59 -07:00 @@ -4,6 +4,7 @@ #include #include #include +#include #include #include diff -Nru a/arch/i386/kernel/io_apic.c b/arch/i386/kernel/io_apic.c --- a/arch/i386/kernel/io_apic.c 2004-06-28 18:21:55 -07:00 +++ b/arch/i386/kernel/io_apic.c 2004-06-28 18:21:55 -07:00 @@ -41,10 +41,6 @@ #include "io_ports.h" -#undef APIC_LOCKUP_DEBUG - -#define APIC_LOCKUP_DEBUG - static spinlock_t ioapic_lock = SPIN_LOCK_UNLOCKED; /* @@ -127,83 +123,47 @@ } } -/* mask = 1 */ -static void __mask_IO_APIC_irq (unsigned int irq) +static void __modify_IO_APIC_irq (unsigned int irq, unsigned long enable, unsigned long disable) { - int pin; struct irq_pin_list *entry = irq_2_pin + irq; + unsigned int pin, reg; for (;;) { - unsigned int reg; pin = entry->pin; if (pin == -1) break; reg = io_apic_read(entry->apic, 0x10 + pin*2); - io_apic_modify(entry->apic, 0x10 + pin*2, reg |= 0x00010000); + reg &= ~disable; + reg |= enable; + io_apic_modify(entry->apic, 0x10 + pin*2, reg); if (!entry->next) break; entry = irq_2_pin + entry->next; } - io_apic_sync(entry->apic); +} + +/* mask = 1 */ +static void __mask_IO_APIC_irq (unsigned int irq) +{ + __modify_IO_APIC_irq(irq, 0x00010000, 0); } /* mask = 0 */ static void __unmask_IO_APIC_irq (unsigned int irq) { - int pin; - struct irq_pin_list *entry = irq_2_pin + irq; - - for (;;) { - unsigned int reg; - pin = entry->pin; - if (pin == -1) - break; - reg = io_apic_read(entry->apic, 0x10 + pin*2); - io_apic_modify(entry->apic, 0x10 + pin*2, reg &= 0xfffeffff); - if (!entry->next) - break; - entry = irq_2_pin + entry->next; - } + __modify_IO_APIC_irq(irq, 0, 0x00010000); } /* mask = 1, trigger = 0 */ static void __mask_and_edge_IO_APIC_irq (unsigned int irq) { - int pin; - struct irq_pin_list *entry = irq_2_pin + irq; - - for (;;) { - unsigned int reg; - pin = entry->pin; - if (pin == -1) - break; - reg = io_apic_read(entry->apic, 0x10 + pin*2); - reg = (reg & 0xffff7fff) | 0x00010000; - io_apic_modify(entry->apic, 0x10 + pin*2, reg); - if (!entry->next) - break; - entry = irq_2_pin + entry->next; - } + __modify_IO_APIC_irq(irq, 0x00010000, 0x00008000); } /* mask = 0, trigger = 1 */ static void __unmask_and_level_IO_APIC_irq (unsigned int irq) { - int pin; - struct irq_pin_list *entry = irq_2_pin + irq; - - for (;;) { - unsigned int reg; - pin = entry->pin; - if (pin == -1) - break; - reg = io_apic_read(entry->apic, 0x10 + pin*2); - reg = (reg & 0xfffeffff) | 0x00008000; - io_apic_modify(entry->apic, 0x10 + pin*2, reg); - if (!entry->next) - break; - entry = irq_2_pin + entry->next; - } + __modify_IO_APIC_irq(irq, 0x00008000, 0x00010000); } static void mask_IO_APIC_irq (unsigned int irq) @@ -264,7 +224,7 @@ struct irq_pin_list *entry = irq_2_pin + irq; unsigned int apicid_value; - apicid_value = cpu_mask_to_apicid(mk_cpumask_const(cpumask)); + apicid_value = cpu_mask_to_apicid(cpumask); /* Prepare to do the io_apic_write */ apicid_value = apicid_value << 24; spin_lock_irqsave(&ioapic_lock, flags); @@ -595,7 +555,7 @@ return; } -int balanced_irq(void *unused) +static int balanced_irq(void *unused) { int i; unsigned long prev_balance_time = jiffies; @@ -608,17 +568,17 @@ pending_irq_balance_cpumask[i] = cpumask_of_cpu(0); } -repeat: - set_current_state(TASK_INTERRUPTIBLE); - time_remaining = schedule_timeout(time_remaining); - if (time_after(jiffies, prev_balance_time+balanced_irq_interval)) { - Dprintk("balanced_irq: calling do_irq_balance() %lu\n", - jiffies); - do_irq_balance(); - prev_balance_time = jiffies; - time_remaining = balanced_irq_interval; + for ( ; ; ) { + set_current_state(TASK_INTERRUPTIBLE); + time_remaining = schedule_timeout(time_remaining); + if (time_after(jiffies, + prev_balance_time+balanced_irq_interval)) { + do_irq_balance(); + prev_balance_time = jiffies; + time_remaining = balanced_irq_interval; + } } - goto repeat; + return 0; } static int __init balanced_irq_init(void) @@ -1366,7 +1326,7 @@ printk(KERN_DEBUG "....... : physical APIC id: %02X\n", reg_00.bits.ID); printk(KERN_DEBUG "....... : Delivery Type: %X\n", reg_00.bits.delivery_type); printk(KERN_DEBUG "....... : LTS : %X\n", reg_00.bits.LTS); - if (reg_00.bits.ID >= APIC_BROADCAST_ID) + if (reg_00.bits.ID >= get_physical_broadcast()) UNEXPECTED_IO_APIC(); if (reg_00.bits.__reserved_1 || reg_00.bits.__reserved_2) UNEXPECTED_IO_APIC(); @@ -1451,12 +1411,17 @@ ); } } + if (use_pci_vector()) + printk(KERN_INFO "Using vector-based indexing\n"); printk(KERN_DEBUG "IRQ to pin mappings:\n"); for (i = 0; i < NR_IRQS; i++) { struct irq_pin_list *entry = irq_2_pin + i; if (entry->pin < 0) continue; - printk(KERN_DEBUG "IRQ%d ", i); + if (use_pci_vector() && !platform_legacy_irq(i)) + printk(KERN_DEBUG "IRQ%d ", IO_APIC_VECTOR(i)); + else + printk(KERN_DEBUG "IRQ%d ", i); for (;;) { printk("-> %d:%d", entry->apic, entry->pin); if (!entry->next) @@ -1682,7 +1647,7 @@ old_id = mp_ioapics[apic].mpc_apicid; - if (mp_ioapics[apic].mpc_apicid >= APIC_BROADCAST_ID) { + if (mp_ioapics[apic].mpc_apicid >= get_physical_broadcast()) { printk(KERN_ERR "BIOS bug, IO-APIC#%d ID is %d in the MPC table!...\n", apic, mp_ioapics[apic].mpc_apicid); printk(KERN_ERR "... fixing up to %d. (tell your hw vendor)\n", @@ -1703,10 +1668,10 @@ mp_ioapics[apic].mpc_apicid)) { printk(KERN_ERR "BIOS bug, IO-APIC#%d ID %d is already used!...\n", apic, mp_ioapics[apic].mpc_apicid); - for (i = 0; i < APIC_BROADCAST_ID; i++) + for (i = 0; i < get_physical_broadcast(); i++) if (!physid_isset(i, phys_id_present_map)) break; - if (i >= APIC_BROADCAST_ID) + if (i >= get_physical_broadcast()) panic("Max APIC ID exceeded!\n"); printk(KERN_ERR "... fixing up to %d. (tell your hw vendor)\n", i); @@ -1893,30 +1858,11 @@ ack_APIC_irq(); if (!(v & (1 << (i & 0x1f)))) { -#ifdef APIC_LOCKUP_DEBUG - struct irq_pin_list *entry; -#endif - #ifdef APIC_MISMATCH_DEBUG atomic_inc(&irq_mis_count); #endif spin_lock(&ioapic_lock); __mask_and_edge_IO_APIC_irq(irq); -#ifdef APIC_LOCKUP_DEBUG - for (entry = irq_2_pin + irq;;) { - unsigned int reg; - - if (entry->pin == -1) - break; - reg = io_apic_read(entry->apic, 0x10 + entry->pin * 2); - if (reg & 0x00004000) - printk(KERN_CRIT "Aieee!!! Remote IRR" - " still set after unlock!\n"); - if (!entry->next) - break; - entry = irq_2_pin + entry->next; - } -#endif __unmask_and_level_IO_APIC_irq(irq); spin_unlock(&ioapic_lock); } @@ -2322,8 +2268,6 @@ #ifdef CONFIG_ACPI_BOOT -#define IO_APIC_MAX_ID APIC_BROADCAST_ID - int __init io_apic_get_unique_id (int ioapic, int apic_id) { union IO_APIC_reg_00 reg_00; @@ -2348,7 +2292,7 @@ reg_00.raw = io_apic_read(ioapic, 0); spin_unlock_irqrestore(&ioapic_lock, flags); - if (apic_id >= IO_APIC_MAX_ID) { + if (apic_id >= get_physical_broadcast()) { printk(KERN_WARNING "IOAPIC[%d]: Invalid apic_id %d, trying " "%d\n", ioapic, apic_id, reg_00.bits.ID); apic_id = reg_00.bits.ID; @@ -2360,12 +2304,12 @@ */ if (check_apicid_used(apic_id_map, apic_id)) { - for (i = 0; i < IO_APIC_MAX_ID; i++) { + for (i = 0; i < get_physical_broadcast(); i++) { if (!check_apicid_used(apic_id_map, i)) break; } - if (i == IO_APIC_MAX_ID) + if (i == get_physical_broadcast()) panic("Max apic_id exceeded!\n"); printk(KERN_WARNING "IOAPIC[%d]: apic_id %d already used, " diff -Nru a/arch/i386/kernel/irq.c b/arch/i386/kernel/irq.c --- a/arch/i386/kernel/irq.c 2004-06-28 18:21:52 -07:00 +++ b/arch/i386/kernel/irq.c 2004-06-28 18:21:52 -07:00 @@ -41,7 +41,6 @@ #include #include #include -#include #include #include #include @@ -653,7 +652,7 @@ action->handler = handler; action->flags = irqflags; - action->mask = 0; + cpus_clear(action->mask); action->name = devname; action->next = NULL; action->dev_id = dev_id; diff -Nru a/arch/i386/kernel/module.c b/arch/i386/kernel/module.c --- a/arch/i386/kernel/module.c 2004-06-28 18:21:56 -07:00 +++ b/arch/i386/kernel/module.c 2004-06-28 18:21:56 -07:00 @@ -32,7 +32,7 @@ { if (size == 0) return NULL; - return vmalloc(size); + return vmalloc_exec(size); } diff -Nru a/arch/i386/kernel/mpparse.c b/arch/i386/kernel/mpparse.c --- a/arch/i386/kernel/mpparse.c 2004-06-28 18:21:55 -07:00 +++ b/arch/i386/kernel/mpparse.c 2004-06-28 18:21:55 -07:00 @@ -23,12 +23,12 @@ #include #include #include +#include #include #include #include #include -#include #include #include @@ -104,6 +104,21 @@ static int mpc_record; static struct mpc_config_translation *translation_table[MAX_MPC_ENTRY] __initdata; +#ifdef CONFIG_X86_NUMAQ +static int MP_valid_apicid(int apicid, int version) +{ + return hweight_long(apicid & 0xf) == 1 && (apicid >> 4) != 0xf; +} +#else +static int MP_valid_apicid(int apicid, int version) +{ + if (version >= 0x14) + return apicid < 0xff; + else + return apicid < 0xf; +} +#endif + void __init MP_processor_info (struct mpc_config_processor *m) { int ver, apicid; @@ -180,14 +195,14 @@ return; } num_processors++; + ver = m->mpc_apicver; - if (MAX_APICS - m->mpc_apicid <= 0) { + if (!MP_valid_apicid(apicid, ver)) { printk(KERN_WARNING "Processor #%d INVALID. (Max ID: %d).\n", m->mpc_apicid, MAX_APICS); --num_processors; return; } - ver = m->mpc_apicver; tmp = apicid_to_cpu_present(apicid); physids_or(phys_cpu_present_map, phys_cpu_present_map, tmp); @@ -844,7 +859,7 @@ MP_processor_info(&processor); } -#if defined(CONFIG_X86_IO_APIC) && defined(CONFIG_ACPI_INTERPRETER) +#if defined(CONFIG_X86_IO_APIC) && (defined(CONFIG_ACPI_INTERPRETER) || defined(CONFIG_ACPI_BOOT)) #define MP_ISA_BUS 0 #define MP_MAX_IOAPIC_PIN 127 @@ -857,7 +872,7 @@ } mp_ioapic_routing[MAX_IO_APICS]; -static int __init mp_find_ioapic ( +static int mp_find_ioapic ( int gsi) { int i = 0; @@ -1000,14 +1015,23 @@ for (i = 0; i < 16; i++) { int idx; - for (idx = 0; idx < mp_irq_entries; idx++) - if (mp_irqs[idx].mpc_srcbus == MP_ISA_BUS && - (mp_irqs[idx].mpc_srcbusirq == i || - mp_irqs[idx].mpc_dstirq == i)) - break; + for (idx = 0; idx < mp_irq_entries; idx++) { + struct mpc_config_intsrc *irq = mp_irqs + idx; - if (idx != mp_irq_entries) - continue; /* IRQ already used */ + /* Do we already have a mapping for this ISA IRQ? */ + if (irq->mpc_srcbus == MP_ISA_BUS && irq->mpc_srcbusirq == i) + break; + + /* Do we already have a mapping for this IOAPIC pin */ + if ((irq->mpc_dstapic == intsrc.mpc_dstapic) && + (irq->mpc_dstirq == i)) + break; + } + + if (idx != mp_irq_entries) { + printk(KERN_DEBUG "ACPI: IRQ%d used by override.\n", i); + continue; /* IRQ already used */ + } intsrc.mpc_irqtype = mp_INT; intsrc.mpc_srcbusirq = i; /* Identity mapped */ @@ -1025,96 +1049,56 @@ } } -extern FADT_DESCRIPTOR acpi_fadt; - -#ifdef CONFIG_ACPI_PCI - int (*platform_rename_gsi)(int ioapic, int gsi); -void __init mp_parse_prt (void) +void mp_register_gsi (u32 gsi, int edge_level, int active_high_low) { - struct list_head *node = NULL; - struct acpi_prt_entry *entry = NULL; int ioapic = -1; int ioapic_pin = 0; - int gsi = 0; int idx, bit = 0; - int edge_level = 0; - int active_high_low = 0; - /* - * Parsing through the PCI Interrupt Routing Table (PRT) and program - * routing for all entries. - */ - list_for_each(node, &acpi_prt.entries) { - entry = list_entry(node, struct acpi_prt_entry, node); +#ifdef CONFIG_ACPI_BUS + /* Don't set up the ACPI SCI because it's already set up */ + if (acpi_fadt.sci_int == gsi) + return; +#endif - /* Need to get gsi for dynamic entry */ - if (entry->link.handle) { - gsi = acpi_pci_link_get_irq(entry->link.handle, entry->link.index, &edge_level, &active_high_low); - if (!gsi) - continue; - } - else { - /* Hardwired GSI. Assume PCI standard settings */ - gsi = entry->link.index; - edge_level = 1; - active_high_low = 1; - } + ioapic = mp_find_ioapic(gsi); + if (ioapic < 0) { + printk(KERN_WARNING "No IOAPIC for GSI %u\n", gsi); + return; + } - /* Don't set up the ACPI SCI because it's already set up */ - if (acpi_fadt.sci_int == gsi) { - /* we still need to set entry's irq */ - acpi_gsi_to_irq(gsi, &entry->irq); - continue; - } - - ioapic = mp_find_ioapic(gsi); - if (ioapic < 0) - continue; - ioapic_pin = gsi - mp_ioapic_routing[ioapic].gsi_base; - - if (platform_rename_gsi) - gsi = platform_rename_gsi(ioapic, gsi); - - /* - * Avoid pin reprogramming. PRTs typically include entries - * with redundant pin->gsi mappings (but unique PCI devices); - * we only only program the IOAPIC on the first. - */ - bit = ioapic_pin % 32; - idx = (ioapic_pin < 32) ? 0 : (ioapic_pin / 32); - if (idx > 3) { - printk(KERN_ERR "Invalid reference to IOAPIC pin " - "%d-%d\n", mp_ioapic_routing[ioapic].apic_id, - ioapic_pin); - continue; - } - if ((1<irq); - continue; - } + ioapic_pin = gsi - mp_ioapic_routing[ioapic].gsi_base; - mp_ioapic_routing[ioapic].pin_programmed[idx] |= (1<irq); - } - printk(KERN_DEBUG "%02x:%02x:%02x[%c] -> %d-%d -> IRQ %d %s %s\n", - entry->id.segment, entry->id.bus, - entry->id.device, ('A' + entry->pin), - mp_ioapic_routing[ioapic].apic_id, ioapic_pin, - entry->irq, edge_level ? "level" : "edge", - active_high_low ? "low" : "high"); + /* + * Avoid pin reprogramming. PRTs typically include entries + * with redundant pin->gsi mappings (but unique PCI devices); + * we only program the IOAPIC on the first. + */ + bit = ioapic_pin % 32; + idx = (ioapic_pin < 32) ? 0 : (ioapic_pin / 32); + if (idx > 3) { + printk(KERN_ERR "Invalid reference to IOAPIC pin " + "%d-%d\n", mp_ioapic_routing[ioapic].apic_id, + ioapic_pin); + return; + } + if ((1< #include #include +#include +#include +#include #include #include #include #include +static struct class_simple *msr_class; + /* Note: "err" is handled in a funny way below. Otherwise one version of gcc or another breaks. */ @@ -255,20 +260,82 @@ .open = msr_open, }; +static int msr_class_simple_device_add(int i) +{ + int err = 0; + struct class_device *class_err; + + class_err = class_simple_device_add(msr_class, MKDEV(MSR_MAJOR, i), NULL, "msr%d",i); + if (IS_ERR(class_err)) + err = PTR_ERR(class_err); + return err; +} + +static int __devinit msr_class_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu) +{ + unsigned int cpu = (unsigned long)hcpu; + + switch (action) { + case CPU_ONLINE: + msr_class_simple_device_add(cpu); + break; + case CPU_DEAD: + class_simple_device_remove(MKDEV(MSR_MAJOR, cpu)); + break; + } + return NOTIFY_OK; +} + +static struct notifier_block msr_class_cpu_notifier = +{ + .notifier_call = msr_class_cpu_callback, +}; + int __init msr_init(void) { + int i, err = 0; + i = 0; + if (register_chrdev(MSR_MAJOR, "cpu/msr", &msr_fops)) { printk(KERN_ERR "msr: unable to get major %d for msr\n", MSR_MAJOR); - return -EBUSY; + err = -EBUSY; + goto out; + } + msr_class = class_simple_create(THIS_MODULE, "msr"); + if (IS_ERR(msr_class)) { + err = PTR_ERR(msr_class); + goto out_chrdev; } + for_each_online_cpu(i) { + err = msr_class_simple_device_add(i); + if (err != 0) + goto out_class; + } + register_cpu_notifier(&msr_class_cpu_notifier); - return 0; + err = 0; + goto out; + +out_class: + i = 0; + for_each_online_cpu(i) + class_simple_device_remove(MKDEV(MSR_MAJOR, i)); + class_simple_destroy(msr_class); +out_chrdev: + unregister_chrdev(MSR_MAJOR, "cpu/msr"); +out: + return err; } void __exit msr_exit(void) { + int cpu = 0; + for_each_online_cpu(cpu) + class_simple_device_remove(MKDEV(MSR_MAJOR, cpu)); + class_simple_destroy(msr_class); unregister_chrdev(MSR_MAJOR, "cpu/msr"); + unregister_cpu_notifier(&msr_class_cpu_notifier); } module_init(msr_init); diff -Nru a/arch/i386/kernel/setup.c b/arch/i386/kernel/setup.c --- a/arch/i386/kernel/setup.c 2004-06-28 18:21:56 -07:00 +++ b/arch/i386/kernel/setup.c 2004-06-28 18:21:56 -07:00 @@ -47,7 +47,7 @@ #include #include #include -#include +#include #include "setup_arch_pre.h" /* This value is set up by the early boot code to point to the value @@ -57,8 +57,6 @@ int disable_pse __initdata = 0; -static inline char * __init machine_specific_memory_setup(void); - /* * Machine setup.. */ @@ -129,12 +127,206 @@ #define RAMDISK_LOAD_FLAG 0x4000 static char command_line[COMMAND_LINE_SIZE]; - char saved_command_line[COMMAND_LINE_SIZE]; unsigned char __initdata boot_params[PARAM_SIZE]; -static struct resource code_resource = { "Kernel code", 0x100000, 0 }; -static struct resource data_resource = { "Kernel data", 0, 0 }; +static struct resource data_resource = { + .name = "Kernel data", + .start = 0, + .end = 0, + .flags = IORESOURCE_BUSY | IORESOURCE_MEM +}; + +static struct resource code_resource = { + .name = "Kernel code", + .start = 0, + .end = 0, + .flags = IORESOURCE_BUSY | IORESOURCE_MEM +}; + +static struct resource system_rom_resource = { + .name = "System ROM", + .start = 0xf0000, + .end = 0xfffff, + .flags = IORESOURCE_BUSY | IORESOURCE_READONLY | IORESOURCE_MEM +}; + +static struct resource extension_rom_resource = { + .name = "Extension ROM", + .start = 0xe0000, + .end = 0xeffff, + .flags = IORESOURCE_BUSY | IORESOURCE_READONLY | IORESOURCE_MEM +}; + +static struct resource adapter_rom_resources[] = { { + .name = "Adapter ROM", + .start = 0xc8000, + .end = 0, + .flags = IORESOURCE_BUSY | IORESOURCE_READONLY | IORESOURCE_MEM +}, { + .name = "Adapter ROM", + .start = 0, + .end = 0, + .flags = IORESOURCE_BUSY | IORESOURCE_READONLY | IORESOURCE_MEM +}, { + .name = "Adapter ROM", + .start = 0, + .end = 0, + .flags = IORESOURCE_BUSY | IORESOURCE_READONLY | IORESOURCE_MEM +}, { + .name = "Adapter ROM", + .start = 0, + .end = 0, + .flags = IORESOURCE_BUSY | IORESOURCE_READONLY | IORESOURCE_MEM +}, { + .name = "Adapter ROM", + .start = 0, + .end = 0, + .flags = IORESOURCE_BUSY | IORESOURCE_READONLY | IORESOURCE_MEM +}, { + .name = "Adapter ROM", + .start = 0, + .end = 0, + .flags = IORESOURCE_BUSY | IORESOURCE_READONLY | IORESOURCE_MEM +} }; + +#define ADAPTER_ROM_RESOURCES \ + (sizeof adapter_rom_resources / sizeof adapter_rom_resources[0]) + +static struct resource video_rom_resource = { + .name = "Video ROM", + .start = 0xc0000, + .end = 0xc7fff, + .flags = IORESOURCE_BUSY | IORESOURCE_READONLY | IORESOURCE_MEM +}; + +static struct resource video_ram_resource = { + .name = "Video RAM area", + .start = 0xa0000, + .end = 0xbffff, + .flags = IORESOURCE_BUSY | IORESOURCE_MEM +}; + +static struct resource standard_io_resources[] = { { + .name = "dma1", + .start = 0x0000, + .end = 0x001f, + .flags = IORESOURCE_BUSY | IORESOURCE_IO +}, { + .name = "pic1", + .start = 0x0020, + .end = 0x0021, + .flags = IORESOURCE_BUSY | IORESOURCE_IO +}, { + .name = "timer", + .start = 0x0040, + .end = 0x005f, + .flags = IORESOURCE_BUSY | IORESOURCE_IO +}, { + .name = "keyboard", + .start = 0x0060, + .end = 0x006f, + .flags = IORESOURCE_BUSY | IORESOURCE_IO +}, { + .name = "dma page reg", + .start = 0x0080, + .end = 0x008f, + .flags = IORESOURCE_BUSY | IORESOURCE_IO +}, { + .name = "pic2", + .start = 0x00a0, + .end = 0x00a1, + .flags = IORESOURCE_BUSY | IORESOURCE_IO +}, { + .name = "dma2", + .start = 0x00c0, + .end = 0x00df, + .flags = IORESOURCE_BUSY | IORESOURCE_IO +}, { + .name = "fpu", + .start = 0x00f0, + .end = 0x00ff, + .flags = IORESOURCE_BUSY | IORESOURCE_IO +} }; + +#define STANDARD_IO_RESOURCES \ + (sizeof standard_io_resources / sizeof standard_io_resources[0]) + +#define romsignature(x) (*(unsigned short *)(x) == 0xaa55) + +static int __init romchecksum(unsigned char *rom, unsigned long length) +{ + unsigned char *p, sum = 0; + + for (p = rom; p < rom + length; p++) + sum += *p; + return sum == 0; +} + +static void __init probe_roms(void) +{ + unsigned long start, length, upper; + unsigned char *rom; + int i; + + /* video rom */ + upper = adapter_rom_resources[0].start; + for (start = video_rom_resource.start; start < upper; start += 2048) { + rom = isa_bus_to_virt(start); + if (!romsignature(rom)) + continue; + + video_rom_resource.start = start; + + /* 0 < length <= 0x7f * 512, historically */ + length = rom[2] * 512; + + /* if checksum okay, trust length byte */ + if (length && romchecksum(rom, length)) + video_rom_resource.end = start + length - 1; + + request_resource(&iomem_resource, &video_rom_resource); + break; + } + + start = (video_rom_resource.end + 1 + 2047) & ~2047UL; + if (start < upper) + start = upper; + + /* system rom */ + request_resource(&iomem_resource, &system_rom_resource); + upper = system_rom_resource.start; + + /* check for extension rom (ignore length byte!) */ + rom = isa_bus_to_virt(extension_rom_resource.start); + if (romsignature(rom)) { + length = extension_rom_resource.end - extension_rom_resource.start + 1; + if (romchecksum(rom, length)) { + request_resource(&iomem_resource, &extension_rom_resource); + upper = extension_rom_resource.start; + } + } + + /* check for adapter roms on 2k boundaries */ + for (i = 0; i < ADAPTER_ROM_RESOURCES && start < upper; start += 2048) { + rom = isa_bus_to_virt(start); + if (!romsignature(rom)) + continue; + + /* 0 < length <= 0x7f * 512, historically */ + length = rom[2] * 512; + + /* but accept any length that fits if checksum okay */ + if (!length || start + length > upper || !romchecksum(rom, length)) + continue; + + adapter_rom_resources[i].start = start; + adapter_rom_resources[i].end = start + length - 1; + request_resource(&iomem_resource, &adapter_rom_resources[i]); + + start = adapter_rom_resources[i++].end & ~2047UL; + } +} static void __init limit_regions(unsigned long long size) { @@ -465,14 +657,6 @@ */ #define LOWMEMSIZE() (0x9f000) -static void __init setup_memory_region(void) -{ - char *who = machine_specific_memory_setup(); - printk(KERN_INFO "BIOS-provided physical RAM map:\n"); - print_memory_map(who); -} /* setup_memory_region */ - - static void __init parse_cmdline_early (char ** cmdline_p) { char c = ' ', *to = command_line, *from = saved_command_line; @@ -948,6 +1132,7 @@ static void __init register_memory(unsigned long max_low_pfn) { unsigned long low_mem_size; + int i; if (efi_enabled) efi_initialize_iomem_resources(&code_resource, &data_resource); @@ -955,10 +1140,11 @@ legacy_init_iomem_resources(&code_resource, &data_resource); /* EFI systems may still have VGA */ - request_graphics_resource(); + request_resource(&iomem_resource, &video_ram_resource); /* request I/O space for devices used on all i[345]86 PCs */ - request_standard_io_resources(); + for (i = 0; i < STANDARD_IO_RESOURCES; i++) + request_resource(&ioport_resource, &standard_io_resources[i]); /* Tell the PCI layer not to allocate too close to the RAM area.. */ low_mem_size = ((max_low_pfn << PAGE_SHIFT) + 0xfffff) & ~0xfffff; @@ -1073,6 +1259,8 @@ __setup("noreplacement", noreplacement_setup); +static char * __init machine_specific_memory_setup(void); + /* * Determine if we were loaded by an EFI loader. If so, then we have also been * passed the efi memmap, systab, etc., so we should use these data structures @@ -1123,8 +1311,10 @@ ARCH_SETUP if (efi_enabled) efi_init(); - else - setup_memory_region(); + else { + printk(KERN_INFO "BIOS-provided physical RAM map:\n"); + print_memory_map(machine_specific_memory_setup()); + } copy_edd(); diff -Nru a/arch/i386/kernel/signal.c b/arch/i386/kernel/signal.c --- a/arch/i386/kernel/signal.c 2004-06-28 18:21:56 -07:00 +++ b/arch/i386/kernel/signal.c 2004-06-28 18:21:56 -07:00 @@ -56,16 +56,15 @@ } asmlinkage int -sys_rt_sigsuspend(sigset_t __user *unewset, size_t sigsetsize) +sys_rt_sigsuspend(struct pt_regs regs) { - struct pt_regs * regs = (struct pt_regs *) &unewset; sigset_t saveset, newset; /* XXX: Don't preclude handling different sized sigset_t's. */ - if (sigsetsize != sizeof(sigset_t)) + if (regs.ecx != sizeof(sigset_t)) return -EINVAL; - if (copy_from_user(&newset, unewset, sizeof(newset))) + if (copy_from_user(&newset, (sigset_t __user *)regs.ebx, sizeof(newset))) return -EFAULT; sigdelsetmask(&newset, ~_BLOCKABLE); @@ -75,11 +74,11 @@ recalc_sigpending(); spin_unlock_irq(¤t->sighand->siglock); - regs->eax = -EINTR; + regs.eax = -EINTR; while (1) { current->state = TASK_INTERRUPTIBLE; schedule(); - if (do_signal(regs, &saveset)) + if (do_signal(®s, &saveset)) return -EINTR; } } @@ -117,10 +116,11 @@ } asmlinkage int -sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss) +sys_sigaltstack(struct pt_regs regs) { - struct pt_regs *regs = (struct pt_regs *) &uss; - return do_sigaltstack(uss, uoss, regs->esp); + const stack_t __user *uss = (const stack_t __user *)regs.ebx; + stack_t __user *uoss = (stack_t __user *)regs.ecx; + return do_sigaltstack(uss, uoss, regs.esp); } diff -Nru a/arch/i386/kernel/smp.c b/arch/i386/kernel/smp.c --- a/arch/i386/kernel/smp.c 2004-06-28 18:21:53 -07:00 +++ b/arch/i386/kernel/smp.c 2004-06-28 18:21:53 -07:00 @@ -21,7 +21,6 @@ #include #include -#include #include #include #include @@ -160,7 +159,7 @@ */ inline void send_IPI_mask_bitmask(cpumask_t cpumask, int vector) { - unsigned long mask = cpus_coerce(cpumask); + unsigned long mask = cpus_addr(cpumask)[0]; unsigned long cfg; unsigned long flags; diff -Nru a/arch/i386/kernel/smpboot.c b/arch/i386/kernel/smpboot.c --- a/arch/i386/kernel/smpboot.c 2004-06-28 18:21:56 -07:00 +++ b/arch/i386/kernel/smpboot.c 2004-06-28 18:21:56 -07:00 @@ -47,7 +47,6 @@ #include #include -#include #include #include #include @@ -1193,7 +1192,9 @@ int j; cpumask_t nodemask; struct sched_group *node = &sched_group_nodes[i]; - cpus_and(nodemask, node_to_cpumask(i), cpu_possible_map); + cpumask_t node_cpumask = node_to_cpumask(i); + + cpus_and(nodemask, node_cpumask, cpu_possible_map); if (cpus_empty(nodemask)) continue; @@ -1229,7 +1230,9 @@ for (i = 0; i < MAX_NUMNODES; i++) { struct sched_group *cpu = &sched_group_nodes[i]; cpumask_t nodemask; - cpus_and(nodemask, node_to_cpumask(i), cpu_possible_map); + cpumask_t node_cpumask = node_to_cpumask(i); + + cpus_and(nodemask, node_cpumask, cpu_possible_map); if (cpus_empty(nodemask)) continue; diff -Nru a/arch/i386/kernel/std_resources.c b/arch/i386/kernel/std_resources.c --- a/arch/i386/kernel/std_resources.c 2004-06-28 18:21:57 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,204 +0,0 @@ -/* - * Machine specific resource allocation for generic. - */ - -#include -#include -#include - -#define romsignature(x) (*(unsigned short *)(x) == 0xaa55) - -static struct resource system_rom_resource = { - .name = "System ROM", - .start = 0xf0000, - .end = 0xfffff, - .flags = IORESOURCE_BUSY | IORESOURCE_READONLY | IORESOURCE_MEM -}; - -static struct resource extension_rom_resource = { - .name = "Extension ROM", - .start = 0xe0000, - .end = 0xeffff, - .flags = IORESOURCE_BUSY | IORESOURCE_READONLY | IORESOURCE_MEM -}; - -static struct resource adapter_rom_resources[] = { { - .name = "Adapter ROM", - .start = 0xc8000, - .end = 0, - .flags = IORESOURCE_BUSY | IORESOURCE_READONLY | IORESOURCE_MEM -}, { - .name = "Adapter ROM", - .start = 0, - .end = 0, - .flags = IORESOURCE_BUSY | IORESOURCE_READONLY | IORESOURCE_MEM -}, { - .name = "Adapter ROM", - .start = 0, - .end = 0, - .flags = IORESOURCE_BUSY | IORESOURCE_READONLY | IORESOURCE_MEM -}, { - .name = "Adapter ROM", - .start = 0, - .end = 0, - .flags = IORESOURCE_BUSY | IORESOURCE_READONLY | IORESOURCE_MEM -}, { - .name = "Adapter ROM", - .start = 0, - .end = 0, - .flags = IORESOURCE_BUSY | IORESOURCE_READONLY | IORESOURCE_MEM -}, { - .name = "Adapter ROM", - .start = 0, - .end = 0, - .flags = IORESOURCE_BUSY | IORESOURCE_READONLY | IORESOURCE_MEM -} }; - -#define ADAPTER_ROM_RESOURCES \ - (sizeof adapter_rom_resources / sizeof adapter_rom_resources[0]) - -static struct resource video_rom_resource = { - .name = "Video ROM", - .start = 0xc0000, - .end = 0xc7fff, - .flags = IORESOURCE_BUSY | IORESOURCE_READONLY | IORESOURCE_MEM -}; - -static struct resource vram_resource = { - .name = "Video RAM area", - .start = 0xa0000, - .end = 0xbffff, - .flags = IORESOURCE_BUSY | IORESOURCE_MEM -}; - -static struct resource standard_io_resources[] = { { - .name = "dma1", - .start = 0x0000, - .end = 0x001f, - .flags = IORESOURCE_BUSY | IORESOURCE_IO -}, { - .name = "pic1", - .start = 0x0020, - .end = 0x0021, - .flags = IORESOURCE_BUSY | IORESOURCE_IO -}, { - .name = "timer", - .start = 0x0040, - .end = 0x005f, - .flags = IORESOURCE_BUSY | IORESOURCE_IO -}, { - .name = "keyboard", - .start = 0x0060, - .end = 0x006f, - .flags = IORESOURCE_BUSY | IORESOURCE_IO -}, { - .name = "dma page reg", - .start = 0x0080, - .end = 0x008f, - .flags = IORESOURCE_BUSY | IORESOURCE_IO -}, { - .name = "pic2", - .start = 0x00a0, - .end = 0x00a1, - .flags = IORESOURCE_BUSY | IORESOURCE_IO -}, { - .name = "dma2", - .start = 0x00c0, - .end = 0x00df, - .flags = IORESOURCE_BUSY | IORESOURCE_IO -}, { - .name = "fpu", - .start = 0x00f0, - .end = 0x00ff, - .flags = IORESOURCE_BUSY | IORESOURCE_IO -} }; - -#define STANDARD_IO_RESOURCES \ - (sizeof standard_io_resources / sizeof standard_io_resources[0]) - -static int __init checksum(unsigned char *rom, unsigned long length) -{ - unsigned char *p, sum = 0; - - for (p = rom; p < rom + length; p++) - sum += *p; - return sum == 0; -} - -void __init probe_roms(void) -{ - unsigned long start, length, upper; - unsigned char *rom; - int i; - - /* video rom */ - upper = adapter_rom_resources[0].start; - for (start = video_rom_resource.start; start < upper; start += 2048) { - rom = isa_bus_to_virt(start); - if (!romsignature(rom)) - continue; - - video_rom_resource.start = start; - - /* 0 < length <= 0x7f * 512, historically */ - length = rom[2] * 512; - - /* if checksum okay, trust length byte */ - if (length && checksum(rom, length)) - video_rom_resource.end = start + length - 1; - - request_resource(&iomem_resource, &video_rom_resource); - break; - } - - start = (video_rom_resource.end + 1 + 2047) & ~2047UL; - if (start < upper) - start = upper; - - /* system rom */ - request_resource(&iomem_resource, &system_rom_resource); - upper = system_rom_resource.start; - - /* check for extension rom (ignore length byte!) */ - rom = isa_bus_to_virt(extension_rom_resource.start); - if (romsignature(rom)) { - length = extension_rom_resource.end - extension_rom_resource.start + 1; - if (checksum(rom, length)) { - request_resource(&iomem_resource, &extension_rom_resource); - upper = extension_rom_resource.start; - } - } - - /* check for adapter roms on 2k boundaries */ - for (i = 0; i < ADAPTER_ROM_RESOURCES && start < upper; start += 2048) { - rom = isa_bus_to_virt(start); - if (!romsignature(rom)) - continue; - - /* 0 < length <= 0x7f * 512, historically */ - length = rom[2] * 512; - - /* but accept any length that fits if checksum okay */ - if (!length || start + length > upper || !checksum(rom, length)) - continue; - - adapter_rom_resources[i].start = start; - adapter_rom_resources[i].end = start + length - 1; - request_resource(&iomem_resource, &adapter_rom_resources[i]); - - start = adapter_rom_resources[i++].end & ~2047UL; - } -} - -void __init request_graphics_resource(void) -{ - request_resource(&iomem_resource, &vram_resource); -} - -void __init request_standard_io_resources(void) -{ - int i; - - for (i = 0; i < STANDARD_IO_RESOURCES; i++) - request_resource(&ioport_resource, &standard_io_resources[i]); -} diff -Nru a/arch/i386/kernel/sysenter.c b/arch/i386/kernel/sysenter.c --- a/arch/i386/kernel/sysenter.c 2004-06-28 18:22:00 -07:00 +++ b/arch/i386/kernel/sysenter.c 2004-06-28 18:22:00 -07:00 @@ -45,7 +45,7 @@ { unsigned long page = get_zeroed_page(GFP_ATOMIC); - __set_fixmap(FIX_VSYSCALL, __pa(page), PAGE_READONLY); + __set_fixmap(FIX_VSYSCALL, __pa(page), PAGE_READONLY_EXEC); if (!boot_cpu_has(X86_FEATURE_SEP)) { memcpy((void *) page, diff -Nru a/arch/i386/kernel/time_hpet.c b/arch/i386/kernel/time_hpet.c --- a/arch/i386/kernel/time_hpet.c 2004-06-28 18:21:54 -07:00 +++ b/arch/i386/kernel/time_hpet.c 2004-06-28 18:21:54 -07:00 @@ -21,6 +21,7 @@ #include #include +#include unsigned long hpet_period; /* fsecs / HPET clock */ unsigned long hpet_tick; /* hpet clks count per tick */ @@ -135,6 +136,50 @@ hpet_writel(cfg, HPET_CFG); use_hpet = 1; + +#ifdef CONFIG_HPET + { + struct hpet_data hd; + unsigned int ntimer; + + memset(&hd, 0, sizeof (hd)); + + ntimer = hpet_readl(HPET_ID); + ntimer = (ntimer & HPET_ID_NUMBER) >> HPET_ID_NUMBER_SHIFT; + ntimer++; + + /* + * Register with driver. + * Timer0 and Timer1 is used by platform. + */ + hd.hd_address = hpet_virt_address; + hd.hd_nirqs = ntimer; + hd.hd_flags = HPET_DATA_PLATFORM; + HD_STATE(&hd, 0); +#ifdef CONFIG_HPET_EMULATE_RTC + HD_STATE(&hd, 1); +#endif + hd.hd_irq[0] = HPET_LEGACY_8254; + hd.hd_irq[1] = HPET_LEGACY_RTC; + if (ntimer > 2) { + struct hpet *hpet; + struct hpet_timer *timer; + int i; + + hpet = (struct hpet *) hpet_virt_address; + + for (i = 2, timer = &hpet->hpet_timers[2]; i < ntimer; + timer++, i++) + hd.hd_irq[i] = (timer->hpet_config & + Tn_INT_ROUTE_CNF_MASK) >> + Tn_INT_ROUTE_CNF_SHIFT; + + } + + hpet_alloc(&hd); + } +#endif + #ifdef CONFIG_X86_LOCAL_APIC wait_timer_tick = wait_hpet_tick; #endif diff -Nru a/arch/i386/kernel/timers/timer_pm.c b/arch/i386/kernel/timers/timer_pm.c --- a/arch/i386/kernel/timers/timer_pm.c 2004-06-28 18:21:53 -07:00 +++ b/arch/i386/kernel/timers/timer_pm.c 2004-06-28 18:21:53 -07:00 @@ -21,6 +21,14 @@ #include #include +#include +#include "mach_timer.h" + +/* Number of PMTMR ticks expected during calibration run */ +#define PMTMR_TICKS_PER_SEC 3579545 +#define PMTMR_EXPECTED_RATE \ + ((CALIBRATE_LATCH * (PMTMR_TICKS_PER_SEC >> 10)) / (CLOCK_TICK_RATE>>10)) + /* The I/O port the PMTMR resides at. * The location is detected during setup_arch(), @@ -57,6 +65,33 @@ return v2 & ACPI_PM_MASK; } + +/* + * Some boards have the PMTMR running way too fast. We check + * the PMTMR rate against PIT channel 2 to catch these cases. + */ +static int verify_pmtmr_rate(void) +{ + u32 value1, value2; + unsigned long count, delta; + + mach_prepare_counter(); + value1 = read_pmtmr(); + mach_countup(&count); + value2 = read_pmtmr(); + delta = (value2 - value1) & ACPI_PM_MASK; + + /* Check that the PMTMR delta is within 5% of what we expect */ + if (delta < (PMTMR_EXPECTED_RATE * 19) / 20 || + delta > (PMTMR_EXPECTED_RATE * 21) / 20) { + printk(KERN_INFO "PM-Timer running at invalid rate: %lu%% of normal - aborting.\n", 100UL * delta / PMTMR_EXPECTED_RATE); + return -1; + } + + return 0; +} + + static int init_pmtmr(char* override) { u32 value1, value2; @@ -89,6 +124,9 @@ return -ENODEV; pm_good: + if (verify_pmtmr_rate() != 0) + return -ENODEV; + init_cpu_khz(); return 0; } diff -Nru a/arch/i386/kernel/timers/timer_tsc.c b/arch/i386/kernel/timers/timer_tsc.c --- a/arch/i386/kernel/timers/timer_tsc.c 2004-06-28 18:21:57 -07:00 +++ b/arch/i386/kernel/timers/timer_tsc.c 2004-06-28 18:21:57 -07:00 @@ -1,6 +1,10 @@ /* * This code largely moved from arch/i386/kernel/time.c. * See comments there for proper credits. + * + * 2004-06-25 Jesper Juhl + * moved mark_offset_tsc below cpufreq_delayed_get to avoid gcc 3.4 + * failing to inline. */ #include @@ -70,7 +74,6 @@ return (cyc * cyc2ns_scale) >> CYC2NS_SCALE_FACTOR; } - static int count2; /* counter for mark_offset_tsc() */ /* Cached *multiplier* to convert TSC counts to microseconds. @@ -152,119 +155,6 @@ return cycles_2_ns(this_offset); } - -static void mark_offset_tsc(void) -{ - unsigned long lost,delay; - unsigned long delta = last_tsc_low; - int count; - int countmp; - static int count1 = 0; - unsigned long long this_offset, last_offset; - static int lost_count = 0; - - write_seqlock(&monotonic_lock); - last_offset = ((unsigned long long)last_tsc_high<<32)|last_tsc_low; - /* - * It is important that these two operations happen almost at - * the same time. We do the RDTSC stuff first, since it's - * faster. To avoid any inconsistencies, we need interrupts - * disabled locally. - */ - - /* - * Interrupts are just disabled locally since the timer irq - * has the SA_INTERRUPT flag set. -arca - */ - - /* read Pentium cycle counter */ - - rdtsc(last_tsc_low, last_tsc_high); - - spin_lock(&i8253_lock); - outb_p(0x00, PIT_MODE); /* latch the count ASAP */ - - count = inb_p(PIT_CH0); /* read the latched count */ - count |= inb(PIT_CH0) << 8; - - /* - * VIA686a test code... reset the latch if count > max + 1 - * from timer_pit.c - cjb - */ - if (count > LATCH) { - outb_p(0x34, PIT_MODE); - outb_p(LATCH & 0xff, PIT_CH0); - outb(LATCH >> 8, PIT_CH0); - count = LATCH - 1; - } - - spin_unlock(&i8253_lock); - - if (pit_latch_buggy) { - /* get center value of last 3 time lutch */ - if ((count2 >= count && count >= count1) - || (count1 >= count && count >= count2)) { - count2 = count1; count1 = count; - } else if ((count1 >= count2 && count2 >= count) - || (count >= count2 && count2 >= count1)) { - countmp = count;count = count2; - count2 = count1;count1 = countmp; - } else { - count2 = count1; count1 = count; count = count1; - } - } - - /* lost tick compensation */ - delta = last_tsc_low - delta; - { - register unsigned long eax, edx; - eax = delta; - __asm__("mull %2" - :"=a" (eax), "=d" (edx) - :"rm" (fast_gettimeoffset_quotient), - "0" (eax)); - delta = edx; - } - delta += delay_at_last_interrupt; - lost = delta/(1000000/HZ); - delay = delta%(1000000/HZ); - if (lost >= 2) { - jiffies_64 += lost-1; - - /* sanity check to ensure we're not always losing ticks */ - if (lost_count++ > 100) { - printk(KERN_WARNING "Losing too many ticks!\n"); - printk(KERN_WARNING "TSC cannot be used as a timesource. \n"); - printk(KERN_WARNING "Possible reasons for this are:\n"); - printk(KERN_WARNING " You're running with Speedstep,\n"); - printk(KERN_WARNING " You don't have DMA enabled for your hard disk (see hdparm),\n"); - printk(KERN_WARNING " Incorrect TSC synchronization on an SMP system (see dmesg).\n"); - printk(KERN_WARNING "Falling back to a sane timesource now.\n"); - - clock_fallback(); - } - /* ... but give the TSC a fair chance */ - if (lost_count > 25) - cpufreq_delayed_get(); - } else - lost_count = 0; - /* update the monotonic base value */ - this_offset = ((unsigned long long)last_tsc_high<<32)|last_tsc_low; - monotonic_base += cycles_2_ns(this_offset - last_offset); - write_sequnlock(&monotonic_lock); - - /* calculate delay_at_last_interrupt */ - count = ((LATCH-1) - count) * TICK_SIZE; - delay_at_last_interrupt = (count + LATCH/2) / LATCH; - - /* catch corner case where tick rollover occured - * between tsc and pit reads (as noted when - * usec delta is > 90% # of usecs/tick) - */ - if (lost && abs(delay - delay_at_last_interrupt) > (900000/HZ)) - jiffies_64++; -} - static void delay_tsc(unsigned long loops) { unsigned long bclock, now; @@ -415,7 +305,8 @@ { int ret; INIT_WORK(&cpufreq_delayed_get_work, handle_cpufreq_delayed_get, NULL); - ret = cpufreq_register_notifier(&time_cpufreq_notifier_block, CPUFREQ_TRANSITION_NOTIFIER); + ret = cpufreq_register_notifier(&time_cpufreq_notifier_block, + CPUFREQ_TRANSITION_NOTIFIER); if (!ret) cpufreq_init = 1; return ret; @@ -426,6 +317,117 @@ static inline void cpufreq_delayed_get(void) { return; } #endif +static void mark_offset_tsc(void) +{ + unsigned long lost,delay; + unsigned long delta = last_tsc_low; + int count; + int countmp; + static int count1 = 0; + unsigned long long this_offset, last_offset; + static int lost_count = 0; + + write_seqlock(&monotonic_lock); + last_offset = ((unsigned long long)last_tsc_high<<32)|last_tsc_low; + /* + * It is important that these two operations happen almost at + * the same time. We do the RDTSC stuff first, since it's + * faster. To avoid any inconsistencies, we need interrupts + * disabled locally. + */ + + /* + * Interrupts are just disabled locally since the timer irq + * has the SA_INTERRUPT flag set. -arca + */ + + /* read Pentium cycle counter */ + + rdtsc(last_tsc_low, last_tsc_high); + + spin_lock(&i8253_lock); + outb_p(0x00, PIT_MODE); /* latch the count ASAP */ + + count = inb_p(PIT_CH0); /* read the latched count */ + count |= inb(PIT_CH0) << 8; + + /* + * VIA686a test code... reset the latch if count > max + 1 + * from timer_pit.c - cjb + */ + if (count > LATCH) { + outb_p(0x34, PIT_MODE); + outb_p(LATCH & 0xff, PIT_CH0); + outb(LATCH >> 8, PIT_CH0); + count = LATCH - 1; + } + + spin_unlock(&i8253_lock); + + if (pit_latch_buggy) { + /* get center value of last 3 time lutch */ + if ((count2 >= count && count >= count1) + || (count1 >= count && count >= count2)) { + count2 = count1; count1 = count; + } else if ((count1 >= count2 && count2 >= count) + || (count >= count2 && count2 >= count1)) { + countmp = count;count = count2; + count2 = count1;count1 = countmp; + } else { + count2 = count1; count1 = count; count = count1; + } + } + + /* lost tick compensation */ + delta = last_tsc_low - delta; + { + register unsigned long eax, edx; + eax = delta; + __asm__("mull %2" + :"=a" (eax), "=d" (edx) + :"rm" (fast_gettimeoffset_quotient), + "0" (eax)); + delta = edx; + } + delta += delay_at_last_interrupt; + lost = delta/(1000000/HZ); + delay = delta%(1000000/HZ); + if (lost >= 2) { + jiffies_64 += lost-1; + + /* sanity check to ensure we're not always losing ticks */ + if (lost_count++ > 100) { + printk(KERN_WARNING "Losing too many ticks!\n"); + printk(KERN_WARNING "TSC cannot be used as a timesource. \n"); + printk(KERN_WARNING "Possible reasons for this are:\n"); + printk(KERN_WARNING " You're running with Speedstep,\n"); + printk(KERN_WARNING " You don't have DMA enabled for your hard disk (see hdparm),\n"); + printk(KERN_WARNING " Incorrect TSC synchronization on an SMP system (see dmesg).\n"); + printk(KERN_WARNING "Falling back to a sane timesource now.\n"); + + clock_fallback(); + } + /* ... but give the TSC a fair chance */ + if (lost_count > 25) + cpufreq_delayed_get(); + } else + lost_count = 0; + /* update the monotonic base value */ + this_offset = ((unsigned long long)last_tsc_high<<32)|last_tsc_low; + monotonic_base += cycles_2_ns(this_offset - last_offset); + write_sequnlock(&monotonic_lock); + + /* calculate delay_at_last_interrupt */ + count = ((LATCH-1) - count) * TICK_SIZE; + delay_at_last_interrupt = (count + LATCH/2) / LATCH; + + /* catch corner case where tick rollover occured + * between tsc and pit reads (as noted when + * usec delta is > 90% # of usecs/tick) + */ + if (lost && abs(delay - delay_at_last_interrupt) > (900000/HZ)) + jiffies_64++; +} static int __init init_tsc(char* override) { diff -Nru a/arch/i386/kernel/traps.c b/arch/i386/kernel/traps.c --- a/arch/i386/kernel/traps.c 2004-06-28 18:21:54 -07:00 +++ b/arch/i386/kernel/traps.c 2004-06-28 18:21:54 -07:00 @@ -47,7 +47,6 @@ #include #include -#include #include #include @@ -104,7 +103,7 @@ } #ifdef CONFIG_FRAME_POINTER -void print_context_stack(struct task_struct *task, unsigned long *stack, +static void print_context_stack(struct task_struct *task, unsigned long *stack, unsigned long ebp) { unsigned long addr; @@ -118,16 +117,17 @@ } } #else -void print_context_stack(struct task_struct *task, unsigned long *stack, +static void print_context_stack(struct task_struct *task, unsigned long *stack, unsigned long ebp) { unsigned long addr; while (!kstack_end(stack)) { addr = *stack++; - if (kernel_text_address(addr)) { - printk(" [<%08lx>] ", addr); - print_symbol("%s\n", addr); + if (__kernel_text_address(addr)) { + printk(" [<%08lx>]", addr); + print_symbol(" %s", addr); + printk("\n"); } } } @@ -163,7 +163,6 @@ break; printk(" =======================\n"); } - printk("\n"); } void show_stack(struct task_struct *task, unsigned long *esp) diff -Nru a/arch/i386/kernel/vm86.c b/arch/i386/kernel/vm86.c --- a/arch/i386/kernel/vm86.c 2004-06-28 18:21:53 -07:00 +++ b/arch/i386/kernel/vm86.c 2004-06-28 18:21:53 -07:00 @@ -44,7 +44,6 @@ #include #include -#include #include #include #include @@ -178,8 +177,9 @@ static int do_vm86_irq_handling(int subfunction, int irqnumber); static void do_sys_vm86(struct kernel_vm86_struct *info, struct task_struct *tsk); -asmlinkage int sys_vm86old(struct vm86_struct __user * v86) +asmlinkage int sys_vm86old(struct pt_regs regs) { + struct vm86_struct __user *v86 = (struct vm86_struct __user *)regs.ebx; struct kernel_vm86_struct info; /* declare this _on top_, * this avoids wasting of stack space. * This remains on the stack until we @@ -198,7 +198,7 @@ if (tmp) goto out; memset(&info.vm86plus, 0, (int)&info.regs32 - (int)&info.vm86plus); - info.regs32 = (struct pt_regs *) &v86; + info.regs32 = ®s; tsk->thread.vm86_info = v86; do_sys_vm86(&info, tsk); ret = 0; /* we never return here */ @@ -207,7 +207,7 @@ } -asmlinkage int sys_vm86(unsigned long subfunction, struct vm86plus_struct __user * v86) +asmlinkage int sys_vm86(struct pt_regs regs) { struct kernel_vm86_struct info; /* declare this _on top_, * this avoids wasting of stack space. @@ -216,14 +216,15 @@ */ struct task_struct *tsk; int tmp, ret; + struct vm86plus_struct __user *v86; tsk = current; - switch (subfunction) { + switch (regs.ebx) { case VM86_REQUEST_IRQ: case VM86_FREE_IRQ: case VM86_GET_IRQ_BITS: case VM86_GET_AND_RESET_IRQ: - ret = do_vm86_irq_handling(subfunction,(int)v86); + ret = do_vm86_irq_handling(regs.ebx, (int)regs.ecx); goto out; case VM86_PLUS_INSTALL_CHECK: /* NOTE: on old vm86 stuff this will return the error @@ -239,13 +240,14 @@ ret = -EPERM; if (tsk->thread.saved_esp0) goto out; + v86 = (struct vm86plus_struct __user *)regs.ecx; tmp = copy_from_user(&info, v86, VM86_REGS_SIZE1); tmp += copy_from_user(&info.regs.VM86_REGS_PART2, &v86->regs.VM86_REGS_PART2, (long)&info.regs32 - (long)&info.regs.VM86_REGS_PART2); ret = -EFAULT; if (tmp) goto out; - info.regs32 = (struct pt_regs *) &subfunction; + info.regs32 = ®s; info.vm86plus.is_vm86pus = 1; tsk->thread.vm86_info = (struct vm86_struct __user *)v86; do_sys_vm86(&info, tsk); @@ -486,9 +488,10 @@ * in userspace is always better than an Oops anyway.) [KD] */ static void do_int(struct kernel_vm86_regs *regs, int i, - unsigned char * ssp, unsigned short sp) + unsigned char __user * ssp, unsigned short sp) { - unsigned long *intr_ptr, segoffs; + unsigned long __user *intr_ptr; + unsigned long segoffs; if (regs->cs == BIOSSEG) goto cannot_handle; @@ -496,7 +499,7 @@ goto cannot_handle; if (i==0x21 && is_revectored(AH(regs),&KVM86->int21_revectored)) goto cannot_handle; - intr_ptr = (unsigned long *) (i << 2); + intr_ptr = (unsigned long __user *) (i << 2); if (get_user(segoffs, intr_ptr)) goto cannot_handle; if ((segoffs >> 16) == BIOSSEG) @@ -521,7 +524,7 @@ if (VMPI.is_vm86pus) { if ( (trapno==3) || (trapno==1) ) return_to_32bit(regs, VM86_TRAP + (trapno << 8)); - do_int(regs, trapno, (unsigned char *) (regs->ss << 4), SP(regs)); + do_int(regs, trapno, (unsigned char __user *) (regs->ss << 4), SP(regs)); return 0; } if (trapno !=1) @@ -541,7 +544,9 @@ void handle_vm86_fault(struct kernel_vm86_regs * regs, long error_code) { - unsigned char *csp, *ssp, opcode; + unsigned char opcode; + unsigned char __user *csp; + unsigned char __user *ssp; unsigned short ip, sp; int data32, pref_done; @@ -553,8 +558,8 @@ return_to_32bit(regs, VM86_PICRETURN); \ return; } while (0) - csp = (unsigned char *) (regs->cs << 4); - ssp = (unsigned char *) (regs->ss << 4); + csp = (unsigned char __user *) (regs->cs << 4); + ssp = (unsigned char __user *) (regs->ss << 4); sp = SP(regs); ip = IP(regs); diff -Nru a/arch/i386/lib/Makefile b/arch/i386/lib/Makefile --- a/arch/i386/lib/Makefile 2004-06-28 18:21:52 -07:00 +++ b/arch/i386/lib/Makefile 2004-06-28 18:21:52 -07:00 @@ -3,9 +3,8 @@ # -lib-y = checksum.o delay.o \ - usercopy.o getuser.o \ - memcpy.o strstr.o +lib-y = checksum.o delay.o usercopy.o getuser.o memcpy.o strstr.o \ + bitops.o lib-$(CONFIG_X86_USE_3DNOW) += mmx.o lib-$(CONFIG_HAVE_DEC_LOCK) += dec_and_lock.o diff -Nru a/arch/i386/lib/bitops.c b/arch/i386/lib/bitops.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/i386/lib/bitops.c 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,70 @@ +#include +#include + +/** + * find_next_bit - find the first set bit in a memory region + * @addr: The address to base the search on + * @offset: The bitnumber to start searching at + * @size: The maximum size to search + */ +int find_next_bit(const unsigned long *addr, int size, int offset) +{ + const unsigned long *p = addr + (offset >> 5); + int set = 0, bit = offset & 31, res; + + if (bit) { + /* + * Look for nonzero in the first 32 bits: + */ + __asm__("bsfl %1,%0\n\t" + "jne 1f\n\t" + "movl $32, %0\n" + "1:" + : "=r" (set) + : "r" (*p >> bit)); + if (set < (32 - bit)) + return set + offset; + set = 32 - bit; + p++; + } + /* + * No set bit yet, search remaining full words for a bit + */ + res = find_first_bit (p, size - 32 * (p - addr)); + return (offset + set + res); +} +EXPORT_SYMBOL(find_next_bit); + +/** + * find_next_zero_bit - find the first zero bit in a memory region + * @addr: The address to base the search on + * @offset: The bitnumber to start searching at + * @size: The maximum size to search + */ +int find_next_zero_bit(const unsigned long *addr, int size, int offset) +{ + unsigned long * p = ((unsigned long *) addr) + (offset >> 5); + int set = 0, bit = offset & 31, res; + + if (bit) { + /* + * Look for zero in the first 32 bits. + */ + __asm__("bsfl %1,%0\n\t" + "jne 1f\n\t" + "movl $32, %0\n" + "1:" + : "=r" (set) + : "r" (~(*p >> bit))); + if (set < (32 - bit)) + return set + offset; + set = 32 - bit; + p++; + } + /* + * No zero yet, search remaining full bytes for a zero + */ + res = find_first_zero_bit (p, size - 32 * (p - (unsigned long *) addr)); + return (offset + set + res); +} +EXPORT_SYMBOL(find_next_zero_bit); diff -Nru a/arch/i386/lib/delay.c b/arch/i386/lib/delay.c --- a/arch/i386/lib/delay.c 2004-06-28 18:21:59 -07:00 +++ b/arch/i386/lib/delay.c 2004-06-28 18:21:59 -07:00 @@ -31,15 +31,16 @@ inline void __const_udelay(unsigned long xloops) { int d0; + xloops *= 4; __asm__("mull %0" :"=d" (xloops), "=&a" (d0) - :"1" (xloops),"0" (current_cpu_data.loops_per_jiffy)); - __delay(xloops * HZ); + :"1" (xloops),"0" (current_cpu_data.loops_per_jiffy * (HZ/4))); + __delay(++xloops); } void __udelay(unsigned long usecs) { - __const_udelay(usecs * 0x000010c6); /* 2**32 / 1000000 */ + __const_udelay(usecs * 0x000010c7); /* 2**32 / 1000000 (rounded up) */ } void __ndelay(unsigned long nsecs) diff -Nru a/arch/i386/lib/memcpy.c b/arch/i386/lib/memcpy.c --- a/arch/i386/lib/memcpy.c 2004-06-28 18:21:59 -07:00 +++ b/arch/i386/lib/memcpy.c 2004-06-28 18:21:59 -07:00 @@ -1,10 +1,11 @@ #include #include +#include #undef memcpy #undef memset -void * memcpy(void * to, const void * from, size_t n) +void *memcpy(void *to, const void *from, size_t n) { #ifdef CONFIG_X86_USE_3DNOW return __memcpy3d(to, from, n); @@ -12,8 +13,32 @@ return __memcpy(to, from, n); #endif } +EXPORT_SYMBOL_NOVERS(memcpy); -void * memset(void * s, int c, size_t count) +void *memset(void *s, int c, size_t count) { return __memset(s, c, count); } +EXPORT_SYMBOL_NOVERS(memset); + +void *memmove(void *dest, const void *src, size_t n) +{ + int d0, d1, d2; + + if (dest < src) { + memcpy(dest,src,n); + } else { + __asm__ __volatile__( + "std\n\t" + "rep\n\t" + "movsb\n\t" + "cld" + : "=&c" (d0), "=&S" (d1), "=&D" (d2) + :"0" (n), + "1" (n-1+(const char *)src), + "2" (n-1+(char *)dest) + :"memory"); + } + return dest; +} +EXPORT_SYMBOL_NOVERS(memmove); diff -Nru a/arch/i386/mach-default/setup.c b/arch/i386/mach-default/setup.c --- a/arch/i386/mach-default/setup.c 2004-06-28 18:21:55 -07:00 +++ b/arch/i386/mach-default/setup.c 2004-06-28 18:21:55 -07:00 @@ -27,7 +27,7 @@ /* * IRQ2 is cascade interrupt to second interrupt controller */ -static struct irqaction irq2 = { no_action, 0, 0, "cascade", NULL, NULL}; +static struct irqaction irq2 = { no_action, 0, CPU_MASK_NONE, "cascade", NULL, NULL}; /** * intr_init_hook - post gate setup interrupt initialisation @@ -71,7 +71,7 @@ { } -static struct irqaction irq0 = { timer_interrupt, SA_INTERRUPT, 0, "timer", NULL, NULL}; +static struct irqaction irq0 = { timer_interrupt, SA_INTERRUPT, CPU_MASK_NONE, "timer", NULL, NULL}; /** * time_init_hook - do any specific initialisations for the system timer. diff -Nru a/arch/i386/mach-pc9800/Makefile b/arch/i386/mach-pc9800/Makefile --- a/arch/i386/mach-pc9800/Makefile 2004-06-28 18:21:58 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,5 +0,0 @@ -# -# Makefile for the linux kernel. -# - -obj-y := setup.o topology.o std_resources.o diff -Nru a/arch/i386/mach-pc9800/setup.c b/arch/i386/mach-pc9800/setup.c --- a/arch/i386/mach-pc9800/setup.c 2004-06-28 18:21:52 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,117 +0,0 @@ -/* - * Machine specific setup for pc9800 - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -struct sys_desc_table_struct { - unsigned short length; - unsigned char table[0]; -}; - -/** - * pre_intr_init_hook - initialisation prior to setting up interrupt vectors - * - * Description: - * Perform any necessary interrupt initialisation prior to setting up - * the "ordinary" interrupt call gates. For legacy reasons, the ISA - * interrupts should be initialised here if the machine emulates a PC - * in any way. - **/ -void __init pre_intr_init_hook(void) -{ - init_ISA_irqs(); -} - -/* - * IRQ7 is cascade interrupt to second interrupt controller - */ -static struct irqaction irq7 = { no_action, 0, 0, "cascade", NULL, NULL}; - -/** - * intr_init_hook - post gate setup interrupt initialisation - * - * Description: - * Fill in any interrupts that may have been left out by the general - * init_IRQ() routine. interrupts having to do with the machine rather - * than the devices on the I/O bus (like APIC interrupts in intel MP - * systems) are started here. - **/ -void __init intr_init_hook(void) -{ -#ifdef CONFIG_X86_LOCAL_APIC - apic_intr_init(); -#endif - - setup_irq(7, &irq7); -} - -/** - * pre_setup_arch_hook - hook called prior to any setup_arch() execution - * - * Description: - * generally used to activate any machine specific identification - * routines that may be needed before setup_arch() runs. On VISWS - * this is used to get the board revision and type. - **/ -void __init pre_setup_arch_hook(void) -{ - SYS_DESC_TABLE.length = 0; - MCA_bus = 0; - /* In PC-9800, APM BIOS version is written in BCD...?? */ - APM_BIOS_INFO.version = (APM_BIOS_INFO.version & 0xff00) - | ((APM_BIOS_INFO.version & 0x00f0) >> 4); -} - -/** - * trap_init_hook - initialise system specific traps - * - * Description: - * Called as the final act of trap_init(). Used in VISWS to initialise - * the various board specific APIC traps. - **/ -void __init trap_init_hook(void) -{ -} - -static struct irqaction irq0 = { timer_interrupt, SA_INTERRUPT, 0, "timer", NULL, NULL}; - -/** - * time_init_hook - do any specific initialisations for the system timer. - * - * Description: - * Must plug the system timer interrupt source at HZ into the IRQ listed - * in irq_vectors.h:TIMER_IRQ - **/ -void __init time_init_hook(void) -{ - setup_irq(0, &irq0); -} - -#ifdef CONFIG_MCA -/** - * mca_nmi_hook - hook into MCA specific NMI chain - * - * Description: - * The MCA (Microchannel Architecture) has an NMI chain for NMI sources - * along the MCA bus. Use this to hook into that chain if you will need - * it. - **/ -void __init mca_nmi_hook(void) -{ - /* If I recall correctly, there's a whole bunch of other things that - * we can do to check for NMI problems, but that's all I know about - * at the moment. - */ - - printk("NMI generated from unknown source!\n"); -} -#endif diff -Nru a/arch/i386/mach-pc9800/std_resources.c b/arch/i386/mach-pc9800/std_resources.c --- a/arch/i386/mach-pc9800/std_resources.c 2004-06-28 18:22:00 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,195 +0,0 @@ -/* - * Machine specific resource allocation for PC-9800. - * Written by Osamu Tomita - */ - -#include -#include -#include - -static char str_pic1[] = "pic1"; -static char str_dma[] = "dma"; -static char str_pic2[] = "pic2"; -static char str_calender_clock[] = "calender clock"; -static char str_system[] = "system"; -static char str_nmi_control[] = "nmi control"; -static char str_kanji_rom[] = "kanji rom"; -static char str_keyboard[] = "keyboard"; -static char str_text_gdc[] = "text gdc"; -static char str_crtc[] = "crtc"; -static char str_timer[] = "timer"; -static char str_graphic_gdc[] = "graphic gdc"; -static char str_dma_ex_bank[] = "dma ex. bank"; -static char str_beep_freq[] = "beep freq."; -static char str_mouse_pio[] = "mouse pio"; -struct resource standard_io_resources[] = { - { str_pic1, 0x00, 0x00, IORESOURCE_BUSY }, - { str_dma, 0x01, 0x01, IORESOURCE_BUSY }, - { str_pic1, 0x02, 0x02, IORESOURCE_BUSY }, - { str_dma, 0x03, 0x03, IORESOURCE_BUSY }, - { str_dma, 0x05, 0x05, IORESOURCE_BUSY }, - { str_dma, 0x07, 0x07, IORESOURCE_BUSY }, - { str_pic2, 0x08, 0x08, IORESOURCE_BUSY }, - { str_dma, 0x09, 0x09, IORESOURCE_BUSY }, - { str_pic2, 0x0a, 0x0a, IORESOURCE_BUSY }, - { str_dma, 0x0b, 0x0b, IORESOURCE_BUSY }, - { str_dma, 0x0d, 0x0d, IORESOURCE_BUSY }, - { str_dma, 0x0f, 0x0f, IORESOURCE_BUSY }, - { str_dma, 0x11, 0x11, IORESOURCE_BUSY }, - { str_dma, 0x13, 0x13, IORESOURCE_BUSY }, - { str_dma, 0x15, 0x15, IORESOURCE_BUSY }, - { str_dma, 0x17, 0x17, IORESOURCE_BUSY }, - { str_dma, 0x19, 0x19, IORESOURCE_BUSY }, - { str_dma, 0x1b, 0x1b, IORESOURCE_BUSY }, - { str_dma, 0x1d, 0x1d, IORESOURCE_BUSY }, - { str_dma, 0x1f, 0x1f, IORESOURCE_BUSY }, - { str_calender_clock, 0x20, 0x20, 0 }, - { str_dma, 0x21, 0x21, IORESOURCE_BUSY }, - { str_calender_clock, 0x22, 0x22, 0 }, - { str_dma, 0x23, 0x23, IORESOURCE_BUSY }, - { str_dma, 0x25, 0x25, IORESOURCE_BUSY }, - { str_dma, 0x27, 0x27, IORESOURCE_BUSY }, - { str_dma, 0x29, 0x29, IORESOURCE_BUSY }, - { str_dma, 0x2b, 0x2b, IORESOURCE_BUSY }, - { str_dma, 0x2d, 0x2d, IORESOURCE_BUSY }, - { str_system, 0x31, 0x31, IORESOURCE_BUSY }, - { str_system, 0x33, 0x33, IORESOURCE_BUSY }, - { str_system, 0x35, 0x35, IORESOURCE_BUSY }, - { str_system, 0x37, 0x37, IORESOURCE_BUSY }, - { str_nmi_control, 0x50, 0x50, IORESOURCE_BUSY }, - { str_nmi_control, 0x52, 0x52, IORESOURCE_BUSY }, - { "time stamp", 0x5c, 0x5f, IORESOURCE_BUSY }, - { str_kanji_rom, 0xa1, 0xa1, IORESOURCE_BUSY }, - { str_kanji_rom, 0xa3, 0xa3, IORESOURCE_BUSY }, - { str_kanji_rom, 0xa5, 0xa5, IORESOURCE_BUSY }, - { str_kanji_rom, 0xa7, 0xa7, IORESOURCE_BUSY }, - { str_kanji_rom, 0xa9, 0xa9, IORESOURCE_BUSY }, - { str_keyboard, 0x41, 0x41, IORESOURCE_BUSY }, - { str_keyboard, 0x43, 0x43, IORESOURCE_BUSY }, - { str_text_gdc, 0x60, 0x60, IORESOURCE_BUSY }, - { str_text_gdc, 0x62, 0x62, IORESOURCE_BUSY }, - { str_text_gdc, 0x64, 0x64, IORESOURCE_BUSY }, - { str_text_gdc, 0x66, 0x66, IORESOURCE_BUSY }, - { str_text_gdc, 0x68, 0x68, IORESOURCE_BUSY }, - { str_text_gdc, 0x6a, 0x6a, IORESOURCE_BUSY }, - { str_text_gdc, 0x6c, 0x6c, IORESOURCE_BUSY }, - { str_text_gdc, 0x6e, 0x6e, IORESOURCE_BUSY }, - { str_crtc, 0x70, 0x70, IORESOURCE_BUSY }, - { str_crtc, 0x72, 0x72, IORESOURCE_BUSY }, - { str_crtc, 0x74, 0x74, IORESOURCE_BUSY }, - { str_crtc, 0x74, 0x74, IORESOURCE_BUSY }, - { str_crtc, 0x76, 0x76, IORESOURCE_BUSY }, - { str_crtc, 0x78, 0x78, IORESOURCE_BUSY }, - { str_crtc, 0x7a, 0x7a, IORESOURCE_BUSY }, - { str_timer, 0x71, 0x71, IORESOURCE_BUSY }, - { str_timer, 0x73, 0x73, IORESOURCE_BUSY }, - { str_timer, 0x75, 0x75, IORESOURCE_BUSY }, - { str_timer, 0x77, 0x77, IORESOURCE_BUSY }, - { str_graphic_gdc, 0xa0, 0xa0, IORESOURCE_BUSY }, - { str_graphic_gdc, 0xa2, 0xa2, IORESOURCE_BUSY }, - { str_graphic_gdc, 0xa4, 0xa4, IORESOURCE_BUSY }, - { str_graphic_gdc, 0xa6, 0xa6, IORESOURCE_BUSY }, - { "cpu", 0xf0, 0xf7, IORESOURCE_BUSY }, - { "fpu", 0xf8, 0xff, IORESOURCE_BUSY }, - { str_dma_ex_bank, 0x0e05, 0x0e05, 0 }, - { str_dma_ex_bank, 0x0e07, 0x0e07, 0 }, - { str_dma_ex_bank, 0x0e09, 0x0e09, 0 }, - { str_dma_ex_bank, 0x0e0b, 0x0e0b, 0 }, - { str_beep_freq, 0x3fd9, 0x3fd9, IORESOURCE_BUSY }, - { str_beep_freq, 0x3fdb, 0x3fdb, IORESOURCE_BUSY }, - { str_beep_freq, 0x3fdd, 0x3fdd, IORESOURCE_BUSY }, - { str_beep_freq, 0x3fdf, 0x3fdf, IORESOURCE_BUSY }, - /* All PC-9800 have (exactly) one mouse interface. */ - { str_mouse_pio, 0x7fd9, 0x7fd9, 0 }, - { str_mouse_pio, 0x7fdb, 0x7fdb, 0 }, - { str_mouse_pio, 0x7fdd, 0x7fdd, 0 }, - { str_mouse_pio, 0x7fdf, 0x7fdf, 0 }, - { "mouse timer", 0xbfdb, 0xbfdb, 0 }, - { "mouse irq", 0x98d7, 0x98d7, 0 }, -}; - -#define STANDARD_IO_RESOURCES (sizeof(standard_io_resources)/sizeof(struct resource)) - -static struct resource tvram_resource = { "Text VRAM/CG window", 0xa0000, 0xa4fff, IORESOURCE_BUSY }; -static struct resource gvram_brg_resource = { "Graphic VRAM (B/R/G)", 0xa8000, 0xbffff, IORESOURCE_BUSY }; -static struct resource gvram_e_resource = { "Graphic VRAM (E)", 0xe0000, 0xe7fff, IORESOURCE_BUSY }; - -/* System ROM resources */ -#define MAXROMS 6 -static struct resource rom_resources[MAXROMS] = { - { "System ROM", 0xe8000, 0xfffff, IORESOURCE_BUSY } -}; - -void __init probe_roms(void) -{ - int i; - __u8 *xrom_id; - int roms = 1; - - request_resource(&iomem_resource, rom_resources+0); - - xrom_id = (__u8 *) isa_bus_to_virt(PC9800SCA_XROM_ID + 0x10); - - for (i = 0; i < 16; i++) { - if (xrom_id[i] & 0x80) { - int j; - - for (j = i + 1; j < 16 && (xrom_id[j] & 0x80); j++) - ; - rom_resources[roms].start = 0x0d0000 + i * 0x001000; - rom_resources[roms].end = 0x0d0000 + j * 0x001000 - 1; - rom_resources[roms].name = "Extension ROM"; - rom_resources[roms].flags = IORESOURCE_BUSY; - - request_resource(&iomem_resource, - rom_resources + roms); - if (++roms >= MAXROMS) - return; - } - } -} - -void __init request_graphics_resource(void) -{ - int i; - - if (PC9800_HIGHRESO_P()) { - tvram_resource.start = 0xe0000; - tvram_resource.end = 0xe4fff; - gvram_brg_resource.name = "Graphic VRAM"; - gvram_brg_resource.start = 0xc0000; - gvram_brg_resource.end = 0xdffff; - } - - request_resource(&iomem_resource, &tvram_resource); - request_resource(&iomem_resource, &gvram_brg_resource); - if (!PC9800_HIGHRESO_P()) - request_resource(&iomem_resource, &gvram_e_resource); - - if (PC9800_HIGHRESO_P() || PC9800_9821_P()) { - static char graphics[] = "graphics"; - static struct resource graphics_resources[] = { - { graphics, 0x9a0, 0x9a0, 0 }, - { graphics, 0x9a2, 0x9a2, 0 }, - { graphics, 0x9a4, 0x9a4, 0 }, - { graphics, 0x9a6, 0x9a6, 0 }, - { graphics, 0x9a8, 0x9a8, 0 }, - { graphics, 0x9aa, 0x9aa, 0 }, - { graphics, 0x9ac, 0x9ac, 0 }, - { graphics, 0x9ae, 0x9ae, 0 }, - }; - -#define GRAPHICS_RESOURCES (sizeof(graphics_resources)/sizeof(struct resource)) - - for (i = 0; i < GRAPHICS_RESOURCES; i++) - request_resource(&ioport_resource, graphics_resources + i); - } -} - -void __init request_standard_io_resources(void) -{ - int i; - - for (i = 0; i < STANDARD_IO_RESOURCES; i++) - request_resource(&ioport_resource, standard_io_resources+i); -} diff -Nru a/arch/i386/mach-pc9800/topology.c b/arch/i386/mach-pc9800/topology.c --- a/arch/i386/mach-pc9800/topology.c 2004-06-28 18:21:59 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,44 +0,0 @@ -/* - * arch/i386/mach-pc9800/topology.c - Populate driverfs with topology information - * - * Written by: Matthew Dobson, IBM Corporation - * Original Code: Paul Dorwin, IBM Corporation, Patrick Mochel, OSDL - * - * Copyright (C) 2002, IBM Corp. - * - * All rights reserved. - * - * 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. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or - * NON INFRINGEMENT. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - * Modify for PC-9800 by Osamu Tomita - * - */ -#include -#include -#include - -struct i386_cpu cpu_devices[NR_CPUS]; - -static int __init topology_init(void) -{ - int i; - - for (i = 0; i < NR_CPUS; i++) - if (cpu_possible(i)) arch_register_cpu(i); - return 0; -} - -subsys_initcall(topology_init); diff -Nru a/arch/i386/mach-visws/mpparse.c b/arch/i386/mach-visws/mpparse.c --- a/arch/i386/mach-visws/mpparse.c 2004-06-28 18:21:54 -07:00 +++ b/arch/i386/mach-visws/mpparse.c 2004-06-28 18:21:54 -07:00 @@ -57,12 +57,12 @@ boot_cpu_logical_apicid = logical_apicid; } - if (m->mpc_apicid > MAX_APICS) { + ver = m->mpc_apicver; + if ((ver >= 0x14 && m->mpc_apicid >= 0xff) || m->mpc_apicid >= 0xf) { printk(KERN_ERR "Processor #%d INVALID. (Max ID: %d).\n", m->mpc_apicid, MAX_APICS); return; } - ver = m->mpc_apicver; apic_cpus = apicid_to_cpu_present(m->mpc_apicid); physids_or(phys_cpu_present_map, phys_cpu_present_map, apic_cpus); diff -Nru a/arch/i386/mach-visws/traps.c b/arch/i386/mach-visws/traps.c --- a/arch/i386/mach-visws/traps.c 2004-06-28 18:21:57 -07:00 +++ b/arch/i386/mach-visws/traps.c 2004-06-28 18:21:57 -07:00 @@ -8,7 +8,6 @@ #include #include -#include #include #include #include "cobalt.h" diff -Nru a/arch/i386/mach-voyager/setup.c b/arch/i386/mach-voyager/setup.c --- a/arch/i386/mach-voyager/setup.c 2004-06-28 18:21:58 -07:00 +++ b/arch/i386/mach-voyager/setup.c 2004-06-28 18:21:58 -07:00 @@ -17,7 +17,7 @@ /* * IRQ2 is cascade interrupt to second interrupt controller */ -static struct irqaction irq2 = { no_action, 0, 0, "cascade", NULL, NULL}; +static struct irqaction irq2 = { no_action, 0, CPU_MASK_NONE, "cascade", NULL, NULL}; void __init intr_init_hook(void) { @@ -40,7 +40,7 @@ { } -static struct irqaction irq0 = { timer_interrupt, SA_INTERRUPT, 0, "timer", NULL, NULL}; +static struct irqaction irq0 = { timer_interrupt, SA_INTERRUPT, CPU_MASK_NONE, "timer", NULL, NULL}; void __init time_init_hook(void) { diff -Nru a/arch/i386/mach-voyager/voyager_basic.c b/arch/i386/mach-voyager/voyager_basic.c --- a/arch/i386/mach-voyager/voyager_basic.c 2004-06-28 18:21:55 -07:00 +++ b/arch/i386/mach-voyager/voyager_basic.c 2004-06-28 18:21:55 -07:00 @@ -24,7 +24,6 @@ #include #include #include -#include #include #include #include diff -Nru a/arch/i386/mach-voyager/voyager_smp.c b/arch/i386/mach-voyager/voyager_smp.c --- a/arch/i386/mach-voyager/voyager_smp.c 2004-06-28 18:21:55 -07:00 +++ b/arch/i386/mach-voyager/voyager_smp.c 2004-06-28 18:21:55 -07:00 @@ -24,7 +24,6 @@ #include #include #include -#include #include #include #include @@ -154,7 +153,7 @@ send_CPI_allbutself(__u8 cpi) { __u8 cpu = smp_processor_id(); - __u32 mask = cpus_coerce(cpu_online_map) & ~(1 << cpu); + __u32 mask = cpus_addr(cpu_online_map)[0] & ~(1 << cpu); send_CPI(mask, cpi); } @@ -403,11 +402,11 @@ /* set up everything for just this CPU, we can alter * this as we start the other CPUs later */ /* now get the CPU disposition from the extended CMOS */ - phys_cpu_present_map = cpus_promote(voyager_extended_cmos_read(VOYAGER_PROCESSOR_PRESENT_MASK)); - cpus_coerce(phys_cpu_present_map) |= voyager_extended_cmos_read(VOYAGER_PROCESSOR_PRESENT_MASK + 1) << 8; - cpus_coerce(phys_cpu_present_map) |= voyager_extended_cmos_read(VOYAGER_PROCESSOR_PRESENT_MASK + 2) << 16; - cpus_coerce(phys_cpu_present_map) |= voyager_extended_cmos_read(VOYAGER_PROCESSOR_PRESENT_MASK + 3) << 24; - printk("VOYAGER SMP: phys_cpu_present_map = 0x%lx\n", cpus_coerce(phys_cpu_present_map)); + cpus_addr(phys_cpu_present_map)[0] = voyager_extended_cmos_read(VOYAGER_PROCESSOR_PRESENT_MASK); + cpus_addr(phys_cpu_present_map)[0] |= voyager_extended_cmos_read(VOYAGER_PROCESSOR_PRESENT_MASK + 1) << 8; + cpus_addr(phys_cpu_present_map)[0] |= voyager_extended_cmos_read(VOYAGER_PROCESSOR_PRESENT_MASK + 2) << 16; + cpus_addr(phys_cpu_present_map)[0] |= voyager_extended_cmos_read(VOYAGER_PROCESSOR_PRESENT_MASK + 3) << 24; + printk("VOYAGER SMP: phys_cpu_present_map = 0x%lx\n", cpus_addr(phys_cpu_present_map)[0]); /* Here we set up the VIC to enable SMP */ /* enable the CPIs by writing the base vector to their register */ outb(VIC_DEFAULT_CPI_BASE, VIC_CPI_BASE_REGISTER); @@ -707,12 +706,12 @@ /* now that the cat has probed the Voyager System Bus, sanity * check the cpu map */ if( ((voyager_quad_processors | voyager_extended_vic_processors) - & cpus_coerce(phys_cpu_present_map)) != cpus_coerce(phys_cpu_present_map)) { + & cpus_addr(phys_cpu_present_map)[0]) != cpus_addr(phys_cpu_present_map)[0]) { /* should panic */ printk("\n\n***WARNING*** Sanity check of CPU present map FAILED\n"); } } else if(voyager_level == 4) - voyager_extended_vic_processors = cpus_coerce(phys_cpu_present_map); + voyager_extended_vic_processors = cpus_addr(phys_cpu_present_map)[0]; /* this sets up the idle task to run on the current cpu */ voyager_extended_cpus = 1; @@ -910,7 +909,7 @@ if (!cpumask) BUG(); - if ((cpumask & cpus_coerce(cpu_online_map)) != cpumask) + if ((cpumask & cpus_addr(cpu_online_map)[0]) != cpumask) BUG(); if (cpumask & (1 << smp_processor_id())) BUG(); @@ -953,7 +952,7 @@ preempt_disable(); - cpu_mask = cpus_coerce(mm->cpu_vm_mask) & ~(1 << smp_processor_id()); + cpu_mask = cpus_addr(mm->cpu_vm_mask)[0] & ~(1 << smp_processor_id()); local_flush_tlb(); if (cpu_mask) flush_tlb_others(cpu_mask, mm, FLUSH_ALL); @@ -969,7 +968,7 @@ preempt_disable(); - cpu_mask = cpus_coerce(mm->cpu_vm_mask) & ~(1 << smp_processor_id()); + cpu_mask = cpus_addr(mm->cpu_vm_mask)[0] & ~(1 << smp_processor_id()); if (current->active_mm == mm) { if (current->mm) @@ -990,7 +989,7 @@ preempt_disable(); - cpu_mask = cpus_coerce(mm->cpu_vm_mask) & ~(1 << smp_processor_id()); + cpu_mask = cpus_addr(mm->cpu_vm_mask)[0] & ~(1 << smp_processor_id()); if (current->active_mm == mm) { if(current->mm) __flush_tlb_one(va); @@ -1099,7 +1098,7 @@ int wait) { struct call_data_struct data; - __u32 mask = cpus_coerce(cpu_online_map); + __u32 mask = cpus_addr(cpu_online_map)[0]; mask &= ~(1< #include #include -#include #include #include diff -Nru a/arch/i386/math-emu/errors.c b/arch/i386/math-emu/errors.c --- a/arch/i386/math-emu/errors.c 2004-06-28 18:21:56 -07:00 +++ b/arch/i386/math-emu/errors.c 2004-06-28 18:21:56 -07:00 @@ -41,18 +41,18 @@ RE_ENTRANT_CHECK_OFF; /* No need to verify_area(), we have previously fetched these bytes. */ - printk("Unimplemented FPU Opcode at eip=%p : ", (void *) address); + printk("Unimplemented FPU Opcode at eip=%p : ", (void __user *) address); if ( FPU_CS == __USER_CS ) { while ( 1 ) { - FPU_get_user(byte1, (u_char *) address); + FPU_get_user(byte1, (u_char __user *) address); if ( (byte1 & 0xf8) == 0xd8 ) break; printk("[%02x]", byte1); address++; } printk("%02x ", byte1); - FPU_get_user(FPU_modrm, 1 + (u_char *) address); + FPU_get_user(FPU_modrm, 1 + (u_char __user *) address); if (FPU_modrm >= 0300) printk("%02x (%02x+%d)\n", FPU_modrm, FPU_modrm & 0xf8, FPU_modrm & 7); @@ -98,7 +98,7 @@ #define MAX_PRINTED_BYTES 20 for ( i = 0; i < MAX_PRINTED_BYTES; i++ ) { - FPU_get_user(byte1, (u_char *) address); + FPU_get_user(byte1, (u_char __user *) address); if ( (byte1 & 0xf8) == 0xd8 ) { printk(" %02x", byte1); @@ -111,7 +111,7 @@ printk(" [more..]\n"); else { - FPU_get_user(FPU_modrm, 1 + (u_char *) address); + FPU_get_user(FPU_modrm, 1 + (u_char __user *) address); if (FPU_modrm >= 0300) printk(" %02x (%02x+%d)\n", FPU_modrm, FPU_modrm & 0xf8, FPU_modrm & 7); diff -Nru a/arch/i386/math-emu/fpu_arith.c b/arch/i386/math-emu/fpu_arith.c --- a/arch/i386/math-emu/fpu_arith.c 2004-06-28 18:21:59 -07:00 +++ b/arch/i386/math-emu/fpu_arith.c 2004-06-28 18:21:59 -07:00 @@ -16,7 +16,7 @@ #include "status_w.h" -void fadd__() +void fadd__(void) { /* fadd st,st(i) */ int i = FPU_rm; @@ -25,7 +25,7 @@ } -void fmul__() +void fmul__(void) { /* fmul st,st(i) */ int i = FPU_rm; @@ -35,7 +35,7 @@ -void fsub__() +void fsub__(void) { /* fsub st,st(i) */ clear_C1(); @@ -43,7 +43,7 @@ } -void fsubr_() +void fsubr_(void) { /* fsubr st,st(i) */ clear_C1(); @@ -51,7 +51,7 @@ } -void fdiv__() +void fdiv__(void) { /* fdiv st,st(i) */ clear_C1(); @@ -59,7 +59,7 @@ } -void fdivr_() +void fdivr_(void) { /* fdivr st,st(i) */ clear_C1(); @@ -68,7 +68,7 @@ -void fadd_i() +void fadd_i(void) { /* fadd st(i),st */ int i = FPU_rm; @@ -77,7 +77,7 @@ } -void fmul_i() +void fmul_i(void) { /* fmul st(i),st */ clear_C1(); @@ -85,7 +85,7 @@ } -void fsubri() +void fsubri(void) { /* fsubr st(i),st */ clear_C1(); @@ -93,7 +93,7 @@ } -void fsub_i() +void fsub_i(void) { /* fsub st(i),st */ clear_C1(); @@ -101,7 +101,7 @@ } -void fdivri() +void fdivri(void) { /* fdivr st(i),st */ clear_C1(); @@ -109,7 +109,7 @@ } -void fdiv_i() +void fdiv_i(void) { /* fdiv st(i),st */ clear_C1(); @@ -118,7 +118,7 @@ -void faddp_() +void faddp_(void) { /* faddp st(i),st */ int i = FPU_rm; @@ -128,7 +128,7 @@ } -void fmulp_() +void fmulp_(void) { /* fmulp st(i),st */ clear_C1(); @@ -138,7 +138,7 @@ -void fsubrp() +void fsubrp(void) { /* fsubrp st(i),st */ clear_C1(); @@ -147,7 +147,7 @@ } -void fsubp_() +void fsubp_(void) { /* fsubp st(i),st */ clear_C1(); @@ -156,7 +156,7 @@ } -void fdivrp() +void fdivrp(void) { /* fdivrp st(i),st */ clear_C1(); @@ -165,7 +165,7 @@ } -void fdivp_() +void fdivp_(void) { /* fdivp st(i),st */ clear_C1(); diff -Nru a/arch/i386/math-emu/fpu_aux.c b/arch/i386/math-emu/fpu_aux.c --- a/arch/i386/math-emu/fpu_aux.c 2004-06-28 18:21:52 -07:00 +++ b/arch/i386/math-emu/fpu_aux.c 2004-06-28 18:21:52 -07:00 @@ -30,7 +30,7 @@ } /* Needs to be externally visible */ -void finit() +void finit(void) { control_word = 0x037f; partial_status = 0; @@ -58,7 +58,7 @@ fsetpm, FPU_illegal, FPU_illegal, FPU_illegal }; -void finit_() +void finit_(void) { (finit_table[FPU_rm])(); } @@ -75,7 +75,7 @@ FPU_illegal, FPU_illegal, FPU_illegal, FPU_illegal }; -void fstsw_() +void fstsw_(void) { (fstsw_table[FPU_rm])(); } @@ -86,13 +86,13 @@ FPU_illegal, FPU_illegal, FPU_illegal, FPU_illegal }; -void fp_nop() +void fp_nop(void) { (fp_nop_table[FPU_rm])(); } -void fld_i_() +void fld_i_(void) { FPU_REG *st_new_ptr; int i; @@ -124,7 +124,7 @@ } -void fxch_i() +void fxch_i(void) { /* fxch st(i) */ FPU_REG t; @@ -173,14 +173,14 @@ } -void ffree_() +void ffree_(void) { /* ffree st(i) */ FPU_settagi(FPU_rm, TAG_Empty); } -void ffreep() +void ffreep(void) { /* ffree st(i) + pop - unofficial code */ FPU_settagi(FPU_rm, TAG_Empty); @@ -188,14 +188,14 @@ } -void fst_i_() +void fst_i_(void) { /* fst st(i) */ FPU_copy_to_regi(&st(0), FPU_gettag0(), FPU_rm); } -void fstp_i() +void fstp_i(void) { /* fstp st(i) */ FPU_copy_to_regi(&st(0), FPU_gettag0(), FPU_rm); diff -Nru a/arch/i386/math-emu/fpu_entry.c b/arch/i386/math-emu/fpu_entry.c --- a/arch/i386/math-emu/fpu_entry.c 2004-06-28 18:21:58 -07:00 +++ b/arch/i386/math-emu/fpu_entry.c 2004-06-28 18:21:58 -07:00 @@ -128,7 +128,7 @@ u_char emulating=0; #endif /* RE_ENTRANT_CHECKING */ -static int valid_prefix(u_char *Byte, u_char **fpu_eip, +static int valid_prefix(u_char *Byte, u_char __user **fpu_eip, overrides *override); asmlinkage void math_emulate(long arg) @@ -140,7 +140,7 @@ FPU_REG loaded_data; FPU_REG *st0_ptr; u_char loaded_tag, st0_tag; - void *data_address; + void __user *data_address; struct address data_sel_off; struct address entry_sel_off; unsigned long code_base = 0; @@ -192,7 +192,8 @@ math_abort(FPU_info, SIGILL); } - if ( SEG_D_SIZE(code_descriptor = LDT_DESCRIPTOR(FPU_CS)) ) + code_descriptor = LDT_DESCRIPTOR(FPU_CS); + if ( SEG_D_SIZE(code_descriptor) ) { /* The above test may be wrong, the book is not clear */ /* Segmented 32 bit protected mode */ @@ -214,7 +215,7 @@ if (current->ptrace & PT_PTRACED) FPU_lookahead = 0; - if ( !valid_prefix(&byte1, (u_char **)&FPU_EIP, + if ( !valid_prefix(&byte1, (u_char __user **)&FPU_EIP, &addr_modes.override) ) { RE_ENTRANT_CHECK_OFF; @@ -257,7 +258,7 @@ RE_ENTRANT_CHECK_OFF; FPU_code_verify_area(1); - FPU_get_user(FPU_modrm, (u_char *) FPU_EIP); + FPU_get_user(FPU_modrm, (u_char __user *) FPU_EIP); RE_ENTRANT_CHECK_ON; FPU_EIP++; @@ -336,23 +337,23 @@ switch ( (byte1 >> 1) & 3 ) { case 0: - unmasked = FPU_load_single((float *)data_address, + unmasked = FPU_load_single((float __user *)data_address, &loaded_data); loaded_tag = unmasked & 0xff; unmasked &= ~0xff; break; case 1: - loaded_tag = FPU_load_int32((long *)data_address, &loaded_data); + loaded_tag = FPU_load_int32((long __user *)data_address, &loaded_data); break; case 2: - unmasked = FPU_load_double((double *)data_address, + unmasked = FPU_load_double((double __user *)data_address, &loaded_data); loaded_tag = unmasked & 0xff; unmasked &= ~0xff; break; case 3: default: /* Used here to suppress gcc warnings. */ - loaded_tag = FPU_load_int16((short *)data_address, &loaded_data); + loaded_tag = FPU_load_int16((short __user *)data_address, &loaded_data); break; } @@ -563,7 +564,7 @@ if (FPU_lookahead && !need_resched()) { FPU_ORIG_EIP = FPU_EIP - code_base; - if ( valid_prefix(&byte1, (u_char **)&FPU_EIP, + if ( valid_prefix(&byte1, (u_char __user **)&FPU_EIP, &addr_modes.override) ) goto do_another_FPU_instruction; } @@ -579,11 +580,11 @@ all prefix bytes, further changes are needed in the emulator code which accesses user address space. Access to separate segments is important for msdos emulation. */ -static int valid_prefix(u_char *Byte, u_char **fpu_eip, +static int valid_prefix(u_char *Byte, u_char __user **fpu_eip, overrides *override) { u_char byte; - u_char *ip = *fpu_eip; + u_char __user *ip = *fpu_eip; *override = (overrides) { 0, 0, PREFIX_DEFAULT }; /* defaults */ @@ -679,9 +680,9 @@ #define sstatus_word() \ ((S387->swd & ~SW_Top & 0xffff) | ((S387->ftop << SW_Top_Shift) & SW_Top)) -int restore_i387_soft(void *s387, struct _fpstate *buf) +int restore_i387_soft(void *s387, struct _fpstate __user *buf) { - u_char *d = (u_char *)buf; + u_char __user *d = (u_char __user *)buf; int offset, other, i, tags, regnr, tag, newtop; RE_ENTRANT_CHECK_OFF; @@ -725,9 +726,9 @@ } -int save_i387_soft(void *s387, struct _fpstate * buf) +int save_i387_soft(void *s387, struct _fpstate __user * buf) { - u_char *d = (u_char *)buf; + u_char __user *d = (u_char __user *)buf; int offset = (S387->ftop & 7) * 10, other = 80 - offset; RE_ENTRANT_CHECK_OFF; diff -Nru a/arch/i386/math-emu/fpu_etc.c b/arch/i386/math-emu/fpu_etc.c --- a/arch/i386/math-emu/fpu_etc.c 2004-06-28 18:21:55 -07:00 +++ b/arch/i386/math-emu/fpu_etc.c 2004-06-28 18:21:55 -07:00 @@ -137,7 +137,7 @@ ftst_, fxam, (FUNC_ST0)FPU_illegal, (FUNC_ST0)FPU_illegal }; -void FPU_etc() +void FPU_etc(void) { (fp_etc_table[FPU_rm])(&st(0), FPU_gettag0()); } diff -Nru a/arch/i386/math-emu/fpu_proto.h b/arch/i386/math-emu/fpu_proto.h --- a/arch/i386/math-emu/fpu_proto.h 2004-06-28 18:21:59 -07:00 +++ b/arch/i386/math-emu/fpu_proto.h 2004-06-28 18:21:59 -07:00 @@ -77,13 +77,13 @@ extern void FPU_triga(void); extern void FPU_trigb(void); /* get_address.c */ -extern void *FPU_get_address(u_char FPU_modrm, unsigned long *fpu_eip, +extern void __user *FPU_get_address(u_char FPU_modrm, unsigned long *fpu_eip, struct address *addr, fpu_addr_modes addr_modes); -extern void *FPU_get_address_16(u_char FPU_modrm, unsigned long *fpu_eip, +extern void __user *FPU_get_address_16(u_char FPU_modrm, unsigned long *fpu_eip, struct address *addr, fpu_addr_modes addr_modes); /* load_store.c */ extern int FPU_load_store(u_char type, fpu_addr_modes addr_modes, - void *data_address); + void __user *data_address); /* poly_2xm1.c */ extern int poly_2xm1(u_char sign, FPU_REG *arg, FPU_REG *result); /* poly_atan.c */ @@ -112,26 +112,26 @@ /* reg_constant.c */ extern void fconst(void); /* reg_ld_str.c */ -extern int FPU_load_extended(long double *s, int stnr); -extern int FPU_load_double(double *dfloat, FPU_REG *loaded_data); -extern int FPU_load_single(float *single, FPU_REG *loaded_data); -extern int FPU_load_int64(long long *_s); -extern int FPU_load_int32(long *_s, FPU_REG *loaded_data); -extern int FPU_load_int16(short *_s, FPU_REG *loaded_data); -extern int FPU_load_bcd(u_char *s); +extern int FPU_load_extended(long double __user *s, int stnr); +extern int FPU_load_double(double __user *dfloat, FPU_REG *loaded_data); +extern int FPU_load_single(float __user *single, FPU_REG *loaded_data); +extern int FPU_load_int64(long long __user *_s); +extern int FPU_load_int32(long __user *_s, FPU_REG *loaded_data); +extern int FPU_load_int16(short __user *_s, FPU_REG *loaded_data); +extern int FPU_load_bcd(u_char __user *s); extern int FPU_store_extended(FPU_REG *st0_ptr, u_char st0_tag, - long double *d); -extern int FPU_store_double(FPU_REG *st0_ptr, u_char st0_tag, double *dfloat); -extern int FPU_store_single(FPU_REG *st0_ptr, u_char st0_tag, float *single); -extern int FPU_store_int64(FPU_REG *st0_ptr, u_char st0_tag, long long *d); -extern int FPU_store_int32(FPU_REG *st0_ptr, u_char st0_tag, long *d); -extern int FPU_store_int16(FPU_REG *st0_ptr, u_char st0_tag, short *d); -extern int FPU_store_bcd(FPU_REG *st0_ptr, u_char st0_tag, u_char *d); + long double __user *d); +extern int FPU_store_double(FPU_REG *st0_ptr, u_char st0_tag, double __user *dfloat); +extern int FPU_store_single(FPU_REG *st0_ptr, u_char st0_tag, float __user *single); +extern int FPU_store_int64(FPU_REG *st0_ptr, u_char st0_tag, long long __user *d); +extern int FPU_store_int32(FPU_REG *st0_ptr, u_char st0_tag, long __user *d); +extern int FPU_store_int16(FPU_REG *st0_ptr, u_char st0_tag, short __user *d); +extern int FPU_store_bcd(FPU_REG *st0_ptr, u_char st0_tag, u_char __user *d); extern int FPU_round_to_int(FPU_REG *r, u_char tag); -extern u_char *fldenv(fpu_addr_modes addr_modes, u_char *s); -extern void frstor(fpu_addr_modes addr_modes, u_char *data_address); -extern u_char *fstenv(fpu_addr_modes addr_modes, u_char *d); -extern void fsave(fpu_addr_modes addr_modes, u_char *data_address); +extern u_char __user *fldenv(fpu_addr_modes addr_modes, u_char __user *s); +extern void frstor(fpu_addr_modes addr_modes, u_char __user *data_address); +extern u_char __user *fstenv(fpu_addr_modes addr_modes, u_char __user *d); +extern void fsave(fpu_addr_modes addr_modes, u_char __user *data_address); extern int FPU_tagof(FPU_REG *ptr); /* reg_mul.c */ extern int FPU_mul(FPU_REG const *b, u_char tagb, int deststnr, int control_w); diff -Nru a/arch/i386/math-emu/fpu_system.h b/arch/i386/math-emu/fpu_system.h --- a/arch/i386/math-emu/fpu_system.h 2004-06-28 18:21:55 -07:00 +++ b/arch/i386/math-emu/fpu_system.h 2004-06-28 18:21:55 -07:00 @@ -80,7 +80,7 @@ /* A simpler test than verify_area() can probably be done for FPU_code_verify_area() because the only possible error is to step past the upper boundary of a legal code area. */ -#define FPU_code_verify_area(z) FPU_verify_area(VERIFY_READ,(void *)FPU_EIP,z) +#define FPU_code_verify_area(z) FPU_verify_area(VERIFY_READ,(void __user *)FPU_EIP,z) #endif #define FPU_get_user(x,y) get_user((x),(y)) diff -Nru a/arch/i386/math-emu/get_address.c b/arch/i386/math-emu/get_address.c --- a/arch/i386/math-emu/get_address.c 2004-06-28 18:21:59 -07:00 +++ b/arch/i386/math-emu/get_address.c 2004-06-28 18:21:59 -07:00 @@ -82,7 +82,7 @@ RE_ENTRANT_CHECK_OFF; FPU_code_verify_area(1); - FPU_get_user(base, (u_char *) (*fpu_eip)); /* The SIB byte */ + FPU_get_user(base, (u_char __user *) (*fpu_eip)); /* The SIB byte */ RE_ENTRANT_CHECK_ON; (*fpu_eip)++; ss = base >> 6; @@ -112,7 +112,7 @@ long displacement; RE_ENTRANT_CHECK_OFF; FPU_code_verify_area(1); - FPU_get_user(displacement, (signed char *) (*fpu_eip)); + FPU_get_user(displacement, (signed char __user *) (*fpu_eip)); offset += displacement; RE_ENTRANT_CHECK_ON; (*fpu_eip)++; @@ -123,7 +123,7 @@ long displacement; RE_ENTRANT_CHECK_OFF; FPU_code_verify_area(4); - FPU_get_user(displacement, (long *) (*fpu_eip)); + FPU_get_user(displacement, (long __user *) (*fpu_eip)); offset += displacement; RE_ENTRANT_CHECK_ON; (*fpu_eip) += 4; @@ -241,7 +241,7 @@ */ -void *FPU_get_address(u_char FPU_modrm, unsigned long *fpu_eip, +void __user *FPU_get_address(u_char FPU_modrm, unsigned long *fpu_eip, struct address *addr, fpu_addr_modes addr_modes) { @@ -277,24 +277,24 @@ /* Special case: disp32 */ RE_ENTRANT_CHECK_OFF; FPU_code_verify_area(4); - FPU_get_user(address, (unsigned long *) (*fpu_eip)); + FPU_get_user(address, (unsigned long __user *) (*fpu_eip)); (*fpu_eip) += 4; RE_ENTRANT_CHECK_ON; addr->offset = address; - return (void *) address; + return (void __user *) address; } else { address = *cpu_reg_ptr; /* Just return the contents of the cpu register */ addr->offset = address; - return (void *) address; + return (void __user *) address; } case 1: /* 8 bit signed displacement */ RE_ENTRANT_CHECK_OFF; FPU_code_verify_area(1); - FPU_get_user(address, (signed char *) (*fpu_eip)); + FPU_get_user(address, (signed char __user *) (*fpu_eip)); RE_ENTRANT_CHECK_ON; (*fpu_eip)++; break; @@ -302,7 +302,7 @@ /* 32 bit displacement */ RE_ENTRANT_CHECK_OFF; FPU_code_verify_area(4); - FPU_get_user(address, (long *) (*fpu_eip)); + FPU_get_user(address, (long __user *) (*fpu_eip)); (*fpu_eip) += 4; RE_ENTRANT_CHECK_ON; break; @@ -331,11 +331,11 @@ EXCEPTION(EX_INTERNAL|0x133); } - return (void *)address; + return (void __user *)address; } -void *FPU_get_address_16(u_char FPU_modrm, unsigned long *fpu_eip, +void __user *FPU_get_address_16(u_char FPU_modrm, unsigned long *fpu_eip, struct address *addr, fpu_addr_modes addr_modes) { @@ -363,7 +363,7 @@ /* Special case: disp16 */ RE_ENTRANT_CHECK_OFF; FPU_code_verify_area(2); - FPU_get_user(address, (unsigned short *) (*fpu_eip)); + FPU_get_user(address, (unsigned short __user *) (*fpu_eip)); (*fpu_eip) += 2; RE_ENTRANT_CHECK_ON; goto add_segment; @@ -373,7 +373,7 @@ /* 8 bit signed displacement */ RE_ENTRANT_CHECK_OFF; FPU_code_verify_area(1); - FPU_get_user(address, (signed char *) (*fpu_eip)); + FPU_get_user(address, (signed char __user *) (*fpu_eip)); RE_ENTRANT_CHECK_ON; (*fpu_eip)++; break; @@ -381,7 +381,7 @@ /* 16 bit displacement */ RE_ENTRANT_CHECK_OFF; FPU_code_verify_area(2); - FPU_get_user(address, (unsigned short *) (*fpu_eip)); + FPU_get_user(address, (unsigned short __user *) (*fpu_eip)); (*fpu_eip) += 2; RE_ENTRANT_CHECK_ON; break; @@ -445,5 +445,5 @@ EXCEPTION(EX_INTERNAL|0x131); } - return (void *)address ; + return (void __user *)address ; } diff -Nru a/arch/i386/math-emu/load_store.c b/arch/i386/math-emu/load_store.c --- a/arch/i386/math-emu/load_store.c 2004-06-28 18:21:53 -07:00 +++ b/arch/i386/math-emu/load_store.c 2004-06-28 18:21:53 -07:00 @@ -61,7 +61,7 @@ }; int FPU_load_store(u_char type, fpu_addr_modes addr_modes, - void *data_address) + void __user *data_address) { FPU_REG loaded_data; FPU_REG *st0_ptr; @@ -119,7 +119,7 @@ { case 000: /* fld m32real */ clear_C1(); - loaded_tag = FPU_load_single((float *)data_address, &loaded_data); + loaded_tag = FPU_load_single((float __user *)data_address, &loaded_data); if ( (loaded_tag == TAG_Special) && isNaN(&loaded_data) && (real_1op_NaN(&loaded_data) < 0) ) @@ -131,12 +131,12 @@ break; case 001: /* fild m32int */ clear_C1(); - loaded_tag = FPU_load_int32((long *)data_address, &loaded_data); + loaded_tag = FPU_load_int32((long __user *)data_address, &loaded_data); FPU_copy_to_reg0(&loaded_data, loaded_tag); break; case 002: /* fld m64real */ clear_C1(); - loaded_tag = FPU_load_double((double *)data_address, &loaded_data); + loaded_tag = FPU_load_double((double __user *)data_address, &loaded_data); if ( (loaded_tag == TAG_Special) && isNaN(&loaded_data) && (real_1op_NaN(&loaded_data) < 0) ) @@ -148,68 +148,68 @@ break; case 003: /* fild m16int */ clear_C1(); - loaded_tag = FPU_load_int16((short *)data_address, &loaded_data); + loaded_tag = FPU_load_int16((short __user *)data_address, &loaded_data); FPU_copy_to_reg0(&loaded_data, loaded_tag); break; case 010: /* fst m32real */ clear_C1(); - FPU_store_single(st0_ptr, st0_tag, (float *)data_address); + FPU_store_single(st0_ptr, st0_tag, (float __user *)data_address); break; case 011: /* fist m32int */ clear_C1(); - FPU_store_int32(st0_ptr, st0_tag, (long *)data_address); + FPU_store_int32(st0_ptr, st0_tag, (long __user *)data_address); break; case 012: /* fst m64real */ clear_C1(); - FPU_store_double(st0_ptr, st0_tag, (double *)data_address); + FPU_store_double(st0_ptr, st0_tag, (double __user *)data_address); break; case 013: /* fist m16int */ clear_C1(); - FPU_store_int16(st0_ptr, st0_tag, (short *)data_address); + FPU_store_int16(st0_ptr, st0_tag, (short __user *)data_address); break; case 014: /* fstp m32real */ clear_C1(); - if ( FPU_store_single(st0_ptr, st0_tag, (float *)data_address) ) + if ( FPU_store_single(st0_ptr, st0_tag, (float __user *)data_address) ) pop_0(); /* pop only if the number was actually stored (see the 80486 manual p16-28) */ break; case 015: /* fistp m32int */ clear_C1(); - if ( FPU_store_int32(st0_ptr, st0_tag, (long *)data_address) ) + if ( FPU_store_int32(st0_ptr, st0_tag, (long __user *)data_address) ) pop_0(); /* pop only if the number was actually stored (see the 80486 manual p16-28) */ break; case 016: /* fstp m64real */ clear_C1(); - if ( FPU_store_double(st0_ptr, st0_tag, (double *)data_address) ) + if ( FPU_store_double(st0_ptr, st0_tag, (double __user *)data_address) ) pop_0(); /* pop only if the number was actually stored (see the 80486 manual p16-28) */ break; case 017: /* fistp m16int */ clear_C1(); - if ( FPU_store_int16(st0_ptr, st0_tag, (short *)data_address) ) + if ( FPU_store_int16(st0_ptr, st0_tag, (short __user *)data_address) ) pop_0(); /* pop only if the number was actually stored (see the 80486 manual p16-28) */ break; case 020: /* fldenv m14/28byte */ - fldenv(addr_modes, (u_char *)data_address); + fldenv(addr_modes, (u_char __user *)data_address); /* Ensure that the values just loaded are not changed by fix-up operations. */ return 1; case 022: /* frstor m94/108byte */ - frstor(addr_modes, (u_char *)data_address); + frstor(addr_modes, (u_char __user *)data_address); /* Ensure that the values just loaded are not changed by fix-up operations. */ return 1; case 023: /* fbld m80dec */ clear_C1(); - loaded_tag = FPU_load_bcd((u_char *)data_address); + loaded_tag = FPU_load_bcd((u_char __user *)data_address); FPU_settag0(loaded_tag); break; case 024: /* fldcw */ RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_READ, data_address, 2); - FPU_get_user(control_word, (unsigned short *) data_address); + FPU_get_user(control_word, (unsigned short __user *) data_address); RE_ENTRANT_CHECK_ON; if ( partial_status & ~control_word & CW_Exceptions ) partial_status |= (SW_Summary | SW_Backward); @@ -221,47 +221,47 @@ return 1; case 025: /* fld m80real */ clear_C1(); - loaded_tag = FPU_load_extended((long double *)data_address, 0); + loaded_tag = FPU_load_extended((long double __user *)data_address, 0); FPU_settag0(loaded_tag); break; case 027: /* fild m64int */ clear_C1(); - loaded_tag = FPU_load_int64((long long *)data_address); + loaded_tag = FPU_load_int64((long long __user *)data_address); FPU_settag0(loaded_tag); break; case 030: /* fstenv m14/28byte */ - fstenv(addr_modes, (u_char *)data_address); + fstenv(addr_modes, (u_char __user *)data_address); return 1; case 032: /* fsave */ - fsave(addr_modes, (u_char *)data_address); + fsave(addr_modes, (u_char __user *)data_address); return 1; case 033: /* fbstp m80dec */ clear_C1(); - if ( FPU_store_bcd(st0_ptr, st0_tag, (u_char *)data_address) ) + if ( FPU_store_bcd(st0_ptr, st0_tag, (u_char __user *)data_address) ) pop_0(); /* pop only if the number was actually stored (see the 80486 manual p16-28) */ break; case 034: /* fstcw m16int */ RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_WRITE,data_address,2); - FPU_put_user(control_word, (unsigned short *) data_address); + FPU_put_user(control_word, (unsigned short __user *) data_address); RE_ENTRANT_CHECK_ON; return 1; case 035: /* fstp m80real */ clear_C1(); - if ( FPU_store_extended(st0_ptr, st0_tag, (long double *)data_address) ) + if ( FPU_store_extended(st0_ptr, st0_tag, (long double __user *)data_address) ) pop_0(); /* pop only if the number was actually stored (see the 80486 manual p16-28) */ break; case 036: /* fstsw m2byte */ RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_WRITE,data_address,2); - FPU_put_user(status_word(),(unsigned short *) data_address); + FPU_put_user(status_word(),(unsigned short __user *) data_address); RE_ENTRANT_CHECK_ON; return 1; case 037: /* fistp m64int */ clear_C1(); - if ( FPU_store_int64(st0_ptr, st0_tag, (long long *)data_address) ) + if ( FPU_store_int64(st0_ptr, st0_tag, (long long __user *)data_address) ) pop_0(); /* pop only if the number was actually stored (see the 80486 manual p16-28) */ break; diff -Nru a/arch/i386/math-emu/reg_compare.c b/arch/i386/math-emu/reg_compare.c --- a/arch/i386/math-emu/reg_compare.c 2004-06-28 18:21:58 -07:00 +++ b/arch/i386/math-emu/reg_compare.c 2004-06-28 18:21:58 -07:00 @@ -324,14 +324,14 @@ /*---------------------------------------------------------------------------*/ -void fcom_st() +void fcom_st(void) { /* fcom st(i) */ compare_st_st(FPU_rm); } -void fcompst() +void fcompst(void) { /* fcomp st(i) */ if ( !compare_st_st(FPU_rm) ) @@ -339,7 +339,7 @@ } -void fcompp() +void fcompp(void) { /* fcompp */ if (FPU_rm != 1) @@ -352,7 +352,7 @@ } -void fucom_() +void fucom_(void) { /* fucom st(i) */ compare_u_st_st(FPU_rm); @@ -360,7 +360,7 @@ } -void fucomp() +void fucomp(void) { /* fucomp st(i) */ if ( !compare_u_st_st(FPU_rm) ) @@ -368,7 +368,7 @@ } -void fucompp() +void fucompp(void) { /* fucompp */ if (FPU_rm == 1) diff -Nru a/arch/i386/math-emu/reg_ld_str.c b/arch/i386/math-emu/reg_ld_str.c --- a/arch/i386/math-emu/reg_ld_str.c 2004-06-28 18:21:57 -07:00 +++ b/arch/i386/math-emu/reg_ld_str.c 2004-06-28 18:21:57 -07:00 @@ -86,7 +86,7 @@ /* Get a long double from user memory */ -int FPU_load_extended(long double *s, int stnr) +int FPU_load_extended(long double __user *s, int stnr) { FPU_REG *sti_ptr = &st(stnr); @@ -100,15 +100,15 @@ /* Get a double from user memory */ -int FPU_load_double(double *dfloat, FPU_REG *loaded_data) +int FPU_load_double(double __user *dfloat, FPU_REG *loaded_data) { int exp, tag, negative; unsigned m64, l64; RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_READ, dfloat, 8); - FPU_get_user(m64, 1 + (unsigned long *) dfloat); - FPU_get_user(l64, (unsigned long *) dfloat); + FPU_get_user(m64, 1 + (unsigned long __user *) dfloat); + FPU_get_user(l64, (unsigned long __user *) dfloat); RE_ENTRANT_CHECK_ON; negative = (m64 & 0x80000000) ? SIGN_Negative : SIGN_Positive; @@ -172,14 +172,14 @@ /* Get a float from user memory */ -int FPU_load_single(float *single, FPU_REG *loaded_data) +int FPU_load_single(float __user *single, FPU_REG *loaded_data) { unsigned m32; int exp, tag, negative; RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_READ, single, 4); - FPU_get_user(m32, (unsigned long *) single); + FPU_get_user(m32, (unsigned long __user *) single); RE_ENTRANT_CHECK_ON; negative = (m32 & 0x80000000) ? SIGN_Negative : SIGN_Positive; @@ -236,7 +236,7 @@ /* Get a long long from user memory */ -int FPU_load_int64(long long *_s) +int FPU_load_int64(long long __user *_s) { long long s; int sign; @@ -268,7 +268,7 @@ /* Get a long from user memory */ -int FPU_load_int32(long *_s, FPU_REG *loaded_data) +int FPU_load_int32(long __user *_s, FPU_REG *loaded_data) { long s; int negative; @@ -297,7 +297,7 @@ /* Get a short from user memory */ -int FPU_load_int16(short *_s, FPU_REG *loaded_data) +int FPU_load_int16(short __user *_s, FPU_REG *loaded_data) { int s, negative; @@ -326,7 +326,7 @@ /* Get a packed bcd array from user memory */ -int FPU_load_bcd(u_char *s) +int FPU_load_bcd(u_char __user *s) { FPU_REG *st0_ptr = &st(0); int pos; @@ -341,7 +341,7 @@ { l *= 10; RE_ENTRANT_CHECK_OFF; - FPU_get_user(bcd, (u_char *) s+pos); + FPU_get_user(bcd, s+pos); RE_ENTRANT_CHECK_ON; l += bcd >> 4; l *= 10; @@ -349,7 +349,7 @@ } RE_ENTRANT_CHECK_OFF; - FPU_get_user(sign, (u_char *) s+9); + FPU_get_user(sign, s+9); sign = sign & 0x80 ? SIGN_Negative : SIGN_Positive; RE_ENTRANT_CHECK_ON; @@ -369,7 +369,7 @@ /*===========================================================================*/ /* Put a long double into user memory */ -int FPU_store_extended(FPU_REG *st0_ptr, u_char st0_tag, long double *d) +int FPU_store_extended(FPU_REG *st0_ptr, u_char st0_tag, long double __user *d) { /* The only exception raised by an attempt to store to an @@ -382,9 +382,9 @@ RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_WRITE, d, 10); - FPU_put_user(st0_ptr->sigl, (unsigned long *) d); - FPU_put_user(st0_ptr->sigh, (unsigned long *) ((u_char *)d + 4)); - FPU_put_user(exponent16(st0_ptr), (unsigned short *) ((u_char *)d + 8)); + FPU_put_user(st0_ptr->sigl, (unsigned long __user *) d); + FPU_put_user(st0_ptr->sigh, (unsigned long __user *) ((u_char __user *)d + 4)); + FPU_put_user(exponent16(st0_ptr), (unsigned short __user *) ((u_char __user *)d + 8)); RE_ENTRANT_CHECK_ON; return 1; @@ -398,9 +398,9 @@ /* Put out the QNaN indefinite */ RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_WRITE,d,10); - FPU_put_user(0, (unsigned long *) d); - FPU_put_user(0xc0000000, 1 + (unsigned long *) d); - FPU_put_user(0xffff, 4 + (short *) d); + FPU_put_user(0, (unsigned long __user *) d); + FPU_put_user(0xc0000000, 1 + (unsigned long __user *) d); + FPU_put_user(0xffff, 4 + (short __user *) d); RE_ENTRANT_CHECK_ON; return 1; } @@ -411,7 +411,7 @@ /* Put a double into user memory */ -int FPU_store_double(FPU_REG *st0_ptr, u_char st0_tag, double *dfloat) +int FPU_store_double(FPU_REG *st0_ptr, u_char st0_tag, double __user *dfloat) { unsigned long l[2]; unsigned long increment = 0; /* avoid gcc warnings */ @@ -607,9 +607,9 @@ /* The masked response */ /* Put out the QNaN indefinite */ RE_ENTRANT_CHECK_OFF; - FPU_verify_area(VERIFY_WRITE,(void *)dfloat,8); - FPU_put_user(0, (unsigned long *) dfloat); - FPU_put_user(0xfff80000, 1 + (unsigned long *) dfloat); + FPU_verify_area(VERIFY_WRITE,dfloat,8); + FPU_put_user(0, (unsigned long __user *) dfloat); + FPU_put_user(0xfff80000, 1 + (unsigned long __user *) dfloat); RE_ENTRANT_CHECK_ON; return 1; } @@ -620,9 +620,9 @@ l[1] |= 0x80000000; RE_ENTRANT_CHECK_OFF; - FPU_verify_area(VERIFY_WRITE,(void *)dfloat,8); - FPU_put_user(l[0], (unsigned long *)dfloat); - FPU_put_user(l[1], 1 + (unsigned long *)dfloat); + FPU_verify_area(VERIFY_WRITE,dfloat,8); + FPU_put_user(l[0], (unsigned long __user *)dfloat); + FPU_put_user(l[1], 1 + (unsigned long __user *)dfloat); RE_ENTRANT_CHECK_ON; return 1; @@ -630,7 +630,7 @@ /* Put a float into user memory */ -int FPU_store_single(FPU_REG *st0_ptr, u_char st0_tag, float *single) +int FPU_store_single(FPU_REG *st0_ptr, u_char st0_tag, float __user *single) { long templ = 0; unsigned long increment = 0; /* avoid gcc warnings */ @@ -826,8 +826,8 @@ /* The masked response */ /* Put out the QNaN indefinite */ RE_ENTRANT_CHECK_OFF; - FPU_verify_area(VERIFY_WRITE,(void *)single,4); - FPU_put_user(0xffc00000, (unsigned long *) single); + FPU_verify_area(VERIFY_WRITE,single,4); + FPU_put_user(0xffc00000, (unsigned long __user *) single); RE_ENTRANT_CHECK_ON; return 1; } @@ -845,8 +845,8 @@ templ |= 0x80000000; RE_ENTRANT_CHECK_OFF; - FPU_verify_area(VERIFY_WRITE,(void *)single,4); - FPU_put_user(templ,(unsigned long *) single); + FPU_verify_area(VERIFY_WRITE,single,4); + FPU_put_user(templ,(unsigned long __user *) single); RE_ENTRANT_CHECK_ON; return 1; @@ -854,7 +854,7 @@ /* Put a long long into user memory */ -int FPU_store_int64(FPU_REG *st0_ptr, u_char st0_tag, long long *d) +int FPU_store_int64(FPU_REG *st0_ptr, u_char st0_tag, long long __user *d) { FPU_REG t; long long tll; @@ -906,7 +906,7 @@ } RE_ENTRANT_CHECK_OFF; - FPU_verify_area(VERIFY_WRITE,(void *)d,8); + FPU_verify_area(VERIFY_WRITE,d,8); copy_to_user(d, &tll, 8); RE_ENTRANT_CHECK_ON; @@ -915,7 +915,7 @@ /* Put a long into user memory */ -int FPU_store_int32(FPU_REG *st0_ptr, u_char st0_tag, long *d) +int FPU_store_int32(FPU_REG *st0_ptr, u_char st0_tag, long __user *d) { FPU_REG t; int precision_loss; @@ -964,7 +964,7 @@ RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_WRITE,d,4); - FPU_put_user(t.sigl, (unsigned long *) d); + FPU_put_user(t.sigl, (unsigned long __user *) d); RE_ENTRANT_CHECK_ON; return 1; @@ -972,7 +972,7 @@ /* Put a short into user memory */ -int FPU_store_int16(FPU_REG *st0_ptr, u_char st0_tag, short *d) +int FPU_store_int16(FPU_REG *st0_ptr, u_char st0_tag, short __user *d) { FPU_REG t; int precision_loss; @@ -1021,7 +1021,7 @@ RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_WRITE,d,2); - FPU_put_user((short)t.sigl,(short *) d); + FPU_put_user((short)t.sigl, d); RE_ENTRANT_CHECK_ON; return 1; @@ -1029,7 +1029,7 @@ /* Put a packed bcd array into user memory */ -int FPU_store_bcd(FPU_REG *st0_ptr, u_char st0_tag, u_char *d) +int FPU_store_bcd(FPU_REG *st0_ptr, u_char st0_tag, u_char __user *d) { FPU_REG t; unsigned long long ll; @@ -1071,10 +1071,10 @@ RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_WRITE,d,10); for ( i = 0; i < 7; i++) - FPU_put_user(0, (u_char *) d+i); /* These bytes "undefined" */ - FPU_put_user(0xc0, (u_char *) d+7); /* This byte "undefined" */ - FPU_put_user(0xff, (u_char *) d+8); - FPU_put_user(0xff, (u_char *) d+9); + FPU_put_user(0, d+i); /* These bytes "undefined" */ + FPU_put_user(0xc0, d+7); /* This byte "undefined" */ + FPU_put_user(0xff, d+8); + FPU_put_user(0xff, d+9); RE_ENTRANT_CHECK_ON; return 1; } @@ -1095,11 +1095,11 @@ b = FPU_div_small(&ll, 10); b |= (FPU_div_small(&ll, 10)) << 4; RE_ENTRANT_CHECK_OFF; - FPU_put_user(b,(u_char *) d+i); + FPU_put_user(b, d+i); RE_ENTRANT_CHECK_ON; } RE_ENTRANT_CHECK_OFF; - FPU_put_user(sign,(u_char *) d+9); + FPU_put_user(sign, d+9); RE_ENTRANT_CHECK_ON; return 1; @@ -1175,7 +1175,7 @@ /*===========================================================================*/ -u_char *fldenv(fpu_addr_modes addr_modes, u_char *s) +u_char __user *fldenv(fpu_addr_modes addr_modes, u_char __user *s) { unsigned short tag_word = 0; u_char tag; @@ -1187,13 +1187,13 @@ { RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_READ, s, 0x0e); - FPU_get_user(control_word, (unsigned short *) s); - FPU_get_user(partial_status, (unsigned short *) (s+2)); - FPU_get_user(tag_word, (unsigned short *) (s+4)); - FPU_get_user(instruction_address.offset, (unsigned short *) (s+6)); - FPU_get_user(instruction_address.selector, (unsigned short *) (s+8)); - FPU_get_user(operand_address.offset, (unsigned short *) (s+0x0a)); - FPU_get_user(operand_address.selector, (unsigned short *) (s+0x0c)); + FPU_get_user(control_word, (unsigned short __user *) s); + FPU_get_user(partial_status, (unsigned short __user *) (s+2)); + FPU_get_user(tag_word, (unsigned short __user *) (s+4)); + FPU_get_user(instruction_address.offset, (unsigned short __user *) (s+6)); + FPU_get_user(instruction_address.selector, (unsigned short __user *) (s+8)); + FPU_get_user(operand_address.offset, (unsigned short __user *) (s+0x0a)); + FPU_get_user(operand_address.selector, (unsigned short __user *) (s+0x0c)); RE_ENTRANT_CHECK_ON; s += 0x0e; if ( addr_modes.default_mode == VM86 ) @@ -1207,14 +1207,14 @@ { RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_READ, s, 0x1c); - FPU_get_user(control_word, (unsigned short *) s); - FPU_get_user(partial_status, (unsigned short *) (s+4)); - FPU_get_user(tag_word, (unsigned short *) (s+8)); - FPU_get_user(instruction_address.offset, (unsigned long *) (s+0x0c)); - FPU_get_user(instruction_address.selector, (unsigned short *) (s+0x10)); - FPU_get_user(instruction_address.opcode, (unsigned short *) (s+0x12)); - FPU_get_user(operand_address.offset, (unsigned long *) (s+0x14)); - FPU_get_user(operand_address.selector, (unsigned long *) (s+0x18)); + FPU_get_user(control_word, (unsigned short __user *) s); + FPU_get_user(partial_status, (unsigned short __user *) (s+4)); + FPU_get_user(tag_word, (unsigned short __user *) (s+8)); + FPU_get_user(instruction_address.offset, (unsigned long __user *) (s+0x0c)); + FPU_get_user(instruction_address.selector, (unsigned short __user *) (s+0x10)); + FPU_get_user(instruction_address.opcode, (unsigned short __user *) (s+0x12)); + FPU_get_user(operand_address.offset, (unsigned long __user *) (s+0x14)); + FPU_get_user(operand_address.selector, (unsigned long __user *) (s+0x18)); RE_ENTRANT_CHECK_ON; s += 0x1c; } @@ -1266,10 +1266,10 @@ } -void frstor(fpu_addr_modes addr_modes, u_char *data_address) +void frstor(fpu_addr_modes addr_modes, u_char __user *data_address) { int i, regnr; - u_char *s = fldenv(addr_modes, data_address); + u_char __user *s = fldenv(addr_modes, data_address); int offset = (top & 7) * 10, other = 80 - offset; /* Copy all registers in stack order. */ @@ -1291,7 +1291,7 @@ } -u_char *fstenv(fpu_addr_modes addr_modes, u_char *d) +u_char __user *fstenv(fpu_addr_modes addr_modes, u_char __user *d) { if ( (addr_modes.default_mode == VM86) || ((addr_modes.default_mode == PM16) @@ -1300,25 +1300,25 @@ RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_WRITE,d,14); #ifdef PECULIAR_486 - FPU_put_user(control_word & ~0xe080, (unsigned long *) d); + FPU_put_user(control_word & ~0xe080, (unsigned long __user *) d); #else - FPU_put_user(control_word, (unsigned short *) d); + FPU_put_user(control_word, (unsigned short __user *) d); #endif /* PECULIAR_486 */ - FPU_put_user(status_word(), (unsigned short *) (d+2)); - FPU_put_user(fpu_tag_word, (unsigned short *) (d+4)); - FPU_put_user(instruction_address.offset, (unsigned short *) (d+6)); - FPU_put_user(operand_address.offset, (unsigned short *) (d+0x0a)); + FPU_put_user(status_word(), (unsigned short __user *) (d+2)); + FPU_put_user(fpu_tag_word, (unsigned short __user *) (d+4)); + FPU_put_user(instruction_address.offset, (unsigned short __user *) (d+6)); + FPU_put_user(operand_address.offset, (unsigned short __user *) (d+0x0a)); if ( addr_modes.default_mode == VM86 ) { FPU_put_user((instruction_address.offset & 0xf0000) >> 4, - (unsigned short *) (d+8)); + (unsigned short __user *) (d+8)); FPU_put_user((operand_address.offset & 0xf0000) >> 4, - (unsigned short *) (d+0x0c)); + (unsigned short __user *) (d+0x0c)); } else { - FPU_put_user(instruction_address.selector, (unsigned short *) (d+8)); - FPU_put_user(operand_address.selector, (unsigned short *) (d+0x0c)); + FPU_put_user(instruction_address.selector, (unsigned short __user *) (d+8)); + FPU_put_user(operand_address.selector, (unsigned short __user *) (d+0x0c)); } RE_ENTRANT_CHECK_ON; d += 0x0e; @@ -1348,9 +1348,9 @@ } -void fsave(fpu_addr_modes addr_modes, u_char *data_address) +void fsave(fpu_addr_modes addr_modes, u_char __user *data_address) { - u_char *d; + u_char __user *d; int offset = (top & 7) * 10, other = 80 - offset; d = fstenv(addr_modes, data_address); diff -Nru a/arch/i386/mm/discontig.c b/arch/i386/mm/discontig.c --- a/arch/i386/mm/discontig.c 2004-06-28 18:21:56 -07:00 +++ b/arch/i386/mm/discontig.c 2004-06-28 18:21:56 -07:00 @@ -129,8 +129,11 @@ } /* - * Allocate memory for the pg_data_t via a crude pre-bootmem method - * We ought to relocate these onto their own node later on during boot. + * Allocate memory for the pg_data_t for this node via a crude pre-bootmem + * method. For node zero take this from the bottom of memory, for + * subsequent nodes place them at node_remap_start_vaddr which contains + * node local data in physically node local memory. See setup_memory() + * for details. */ static void __init allocate_pgdat(int nid) { @@ -233,6 +236,13 @@ unsigned long bootmap_size, system_start_pfn, system_max_low_pfn; unsigned long reserve_pages; + /* + * When mapping a NUMA machine we allocate the node_mem_map arrays + * from node local memory. They are then mapped directly into KVA + * between zone normal and vmalloc space. Calculate the size of + * this space and use it to adjust the boundry between ZONE_NORMAL + * and ZONE_HIGHMEM. + */ get_memcfg_numa(); reserve_pages = calculate_numa_remap_pages(); @@ -240,7 +250,10 @@ system_start_pfn = min_low_pfn = PFN_UP(init_pg_tables_end); find_max_pfn(); - system_max_low_pfn = max_low_pfn = find_max_low_pfn(); + system_max_low_pfn = max_low_pfn = find_max_low_pfn() - reserve_pages; + printk("reserve_pages = %ld find_max_low_pfn() ~ %ld\n", + reserve_pages, max_low_pfn + reserve_pages); + printk("max_pfn = %ld\n", max_pfn); #ifdef CONFIG_HIGHMEM highstart_pfn = highend_pfn = max_pfn; if (max_pfn > system_max_low_pfn) @@ -248,7 +261,6 @@ printk(KERN_NOTICE "%ldMB HIGHMEM available.\n", pages_to_mb(highend_pfn - highstart_pfn)); #endif - system_max_low_pfn = max_low_pfn = max_low_pfn - reserve_pages; printk(KERN_NOTICE "%ldMB LOWMEM available.\n", pages_to_mb(system_max_low_pfn)); printk("min_low_pfn = %ld, max_low_pfn = %ld, highstart_pfn = %ld\n", @@ -258,15 +270,16 @@ (ulong) pfn_to_kaddr(max_low_pfn)); for (nid = 0; nid < numnodes; nid++) { node_remap_start_vaddr[nid] = pfn_to_kaddr( - highstart_pfn - node_remap_offset[nid]); + (highstart_pfn + reserve_pages) - node_remap_offset[nid]); allocate_pgdat(nid); printk ("node %d will remap to vaddr %08lx - %08lx\n", nid, (ulong) node_remap_start_vaddr[nid], - (ulong) pfn_to_kaddr(highstart_pfn + (ulong) pfn_to_kaddr(highstart_pfn + reserve_pages - node_remap_offset[nid] + node_remap_size[nid])); } printk("High memory starts at vaddr %08lx\n", (ulong) pfn_to_kaddr(highstart_pfn)); + vmalloc_earlyreserve = reserve_pages * PAGE_SIZE; for (nid = 0; nid < numnodes; nid++) find_max_pfn_node(nid); diff -Nru a/arch/i386/mm/fault.c b/arch/i386/mm/fault.c --- a/arch/i386/mm/fault.c 2004-06-28 18:21:52 -07:00 +++ b/arch/i386/mm/fault.c 2004-06-28 18:21:52 -07:00 @@ -24,7 +24,6 @@ #include #include -#include #include #include @@ -262,7 +261,27 @@ if (in_atomic() || !mm) goto bad_area_nosemaphore; - down_read(&mm->mmap_sem); + /* When running in the kernel we expect faults to occur only to + * addresses in user space. All other faults represent errors in the + * kernel and should generate an OOPS. Unfortunatly, in the case of an + * erroneous fault occuring in a code path which already holds mmap_sem + * we will deadlock attempting to validate the fault against the + * address space. Luckily the kernel only validly references user + * space from well defined areas of code, which are listed in the + * exceptions table. + * + * As the vast majority of faults will be valid we will only perform + * the source reference check when there is a possibilty of a deadlock. + * Attempt to lock the address space, if we cannot we then validate the + * source. If this is invalid we can skip the address space check, + * thus avoiding the deadlock. + */ + if (!down_read_trylock(&mm->mmap_sem)) { + if ((error_code & 4) == 0 && + !search_exception_tables(regs->eip)) + goto bad_area_nosemaphore; + down_read(&mm->mmap_sem); + } vma = find_vma(mm, address); if (!vma) @@ -406,6 +425,21 @@ bust_spinlocks(1); +#ifdef CONFIG_X86_PAE + { + pgd_t *pgd; + pmd_t *pmd; + + + + pgd = init_mm.pgd + pgd_index(address); + if (pgd_present(*pgd)) { + pmd = pmd_offset(pgd, address); + if (pmd_val(*pmd) & _PAGE_NX) + printk(KERN_CRIT "kernel tried to access NX-protected page - exploit attempt? (uid: %d)\n", current->uid); + } + } +#endif if (address < PAGE_SIZE) printk(KERN_ALERT "Unable to handle kernel NULL pointer dereference"); else diff -Nru a/arch/i386/mm/hugetlbpage.c b/arch/i386/mm/hugetlbpage.c --- a/arch/i386/mm/hugetlbpage.c 2004-06-28 18:21:59 -07:00 +++ b/arch/i386/mm/hugetlbpage.c 2004-06-28 18:21:59 -07:00 @@ -15,7 +15,6 @@ #include #include #include -#include #include #include @@ -245,8 +244,15 @@ ret = -ENOMEM; goto out; } - if (!pte_none(*pte)) - continue; + + if (!pte_none(*pte)) { + pmd_t *pmd = (pmd_t *) pte; + + page = pmd_page(*pmd); + pmd_clear(pmd); + dec_page_state(nr_page_table_pages); + page_cache_release(page); + } idx = ((addr - vma->vm_start) >> HPAGE_SHIFT) + (vma->vm_pgoff >> (HPAGE_SHIFT - PAGE_SHIFT)); diff -Nru a/arch/i386/mm/init.c b/arch/i386/mm/init.c --- a/arch/i386/mm/init.c 2004-06-28 18:21:58 -07:00 +++ b/arch/i386/mm/init.c 2004-06-28 18:21:58 -07:00 @@ -32,7 +32,6 @@ #include #include #include -#include #include #include #include @@ -123,6 +122,13 @@ } } +static inline int is_kernel_text(unsigned long addr) +{ + if (addr >= (unsigned long)_stext && addr <= (unsigned long)__init_end) + return 1; + return 0; +} + /* * This maps the physical memory to kernel virtual address space, a total * of max_low_pfn pages, by creating page tables starting from address @@ -145,18 +151,29 @@ if (pfn >= max_low_pfn) continue; for (pmd_idx = 0; pmd_idx < PTRS_PER_PMD && pfn < max_low_pfn; pmd++, pmd_idx++) { + unsigned int address = pfn * PAGE_SIZE + PAGE_OFFSET; + /* Map with big pages if possible, otherwise create normal page tables. */ if (cpu_has_pse) { - set_pmd(pmd, pfn_pmd(pfn, PAGE_KERNEL_LARGE)); + unsigned int address2 = (pfn + PTRS_PER_PTE - 1) * PAGE_SIZE + PAGE_OFFSET + PAGE_SIZE-1; + + if (is_kernel_text(address) || is_kernel_text(address2)) + set_pmd(pmd, pfn_pmd(pfn, PAGE_KERNEL_LARGE_EXEC)); + else + set_pmd(pmd, pfn_pmd(pfn, PAGE_KERNEL_LARGE)); pfn += PTRS_PER_PTE; } else { pte = one_page_table_init(pmd); - for (pte_ofs = 0; pte_ofs < PTRS_PER_PTE && pfn < max_low_pfn; pte++, pfn++, pte_ofs++) - set_pte(pte, pfn_pte(pfn, PAGE_KERNEL)); + for (pte_ofs = 0; pte_ofs < PTRS_PER_PTE && pfn < max_low_pfn; pte++, pfn++, pte_ofs++) { + if (is_kernel_text(address)) + set_pte(pte, pfn_pte(pfn, PAGE_KERNEL_EXEC)); + else + set_pte(pte, pfn_pte(pfn, PAGE_KERNEL)); + } } } - } + } } static inline int page_kills_ppro(unsigned long pagenr) @@ -273,7 +290,8 @@ #define set_highmem_pages_init(bad_ppro) do { } while (0) #endif /* CONFIG_HIGHMEM */ -unsigned long __PAGE_KERNEL = _PAGE_KERNEL; +unsigned long long __PAGE_KERNEL = _PAGE_KERNEL; +unsigned long long __PAGE_KERNEL_EXEC = _PAGE_KERNEL_EXEC; #ifndef CONFIG_DISCONTIGMEM #define remap_numa_kva() do {} while (0) @@ -302,6 +320,7 @@ if (cpu_has_pge) { set_in_cr4(X86_CR4_PGE); __PAGE_KERNEL |= _PAGE_GLOBAL; + __PAGE_KERNEL_EXEC |= _PAGE_GLOBAL; } kernel_physical_mapping_init(pgd_base); @@ -392,6 +411,52 @@ extern void zone_sizes_init(void); #endif /* !CONFIG_DISCONTIGMEM */ +static int disable_nx __initdata = 0; +u64 __supported_pte_mask = ~_PAGE_NX; + +/* + * noexec = on|off + * + * Control non executable mappings. + * + * on Enable + * off Disable + */ +static int __init noexec_setup(char *str) +{ + if (!strncmp(str, "on",2) && cpu_has_nx) { + __supported_pte_mask |= _PAGE_NX; + disable_nx = 0; + } else if (!strncmp(str,"off",3)) { + disable_nx = 1; + __supported_pte_mask &= ~_PAGE_NX; + } + return 1; +} + +__setup("noexec=", noexec_setup); + +#ifdef CONFIG_X86_PAE +static int use_nx = 0; + +static void __init set_nx(void) +{ + unsigned int v[4], l, h; + + if (cpu_has_pae && (cpuid_eax(0x80000000) > 0x80000001)) { + cpuid(0x80000001, &v[0], &v[1], &v[2], &v[3]); + if ((v[3] & (1 << 20)) && !disable_nx) { + rdmsr(MSR_EFER, l, h); + l |= EFER_NX; + wrmsr(MSR_EFER, l, h); + use_nx = 1; + __supported_pte_mask |= _PAGE_NX; + } + } +} + +#endif + /* * paging_init() sets up the page tables - note that the first 8MB are * already mapped by head.S. @@ -401,6 +466,12 @@ */ void __init paging_init(void) { +#ifdef CONFIG_X86_PAE + set_nx(); + if (use_nx) + printk("NX (Execute Disable) protection: active\n"); +#endif + pagetable_init(); load_cr3(swapper_pg_dir); diff -Nru a/arch/i386/mm/ioremap.c b/arch/i386/mm/ioremap.c --- a/arch/i386/mm/ioremap.c 2004-06-28 18:21:54 -07:00 +++ b/arch/i386/mm/ioremap.c 2004-06-28 18:21:54 -07:00 @@ -12,7 +12,6 @@ #include #include #include -#include #include #include #include diff -Nru a/arch/i386/mm/pgtable.c b/arch/i386/mm/pgtable.c --- a/arch/i386/mm/pgtable.c 2004-06-28 18:22:00 -07:00 +++ b/arch/i386/mm/pgtable.c 2004-06-28 18:22:00 -07:00 @@ -33,7 +33,7 @@ printk("Mem-info:\n"); show_free_areas(); - printk("Free swap: %6dkB\n",nr_swap_pages<<(PAGE_SHIFT-10)); + printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10)); for_each_pgdat(pgdat) { for (i = 0; i < pgdat->node_spanned_pages; ++i) { page = pgdat->node_mem_map + i; diff -Nru a/arch/i386/pci/acpi.c b/arch/i386/pci/acpi.c --- a/arch/i386/pci/acpi.c 2004-06-28 18:21:57 -07:00 +++ b/arch/i386/pci/acpi.c 2004-06-28 18:21:57 -07:00 @@ -1,6 +1,8 @@ #include #include #include +#include +#include #include "pci.h" struct pci_bus * __devinit pci_acpi_scan_root(struct acpi_device *device, int domain, int busnum) @@ -15,18 +17,31 @@ static int __init pci_acpi_init(void) { + struct pci_dev *dev = NULL; + if (pcibios_scanned) return 0; - if (!acpi_noirq) { - if (!acpi_pci_irq_init()) { - printk(KERN_INFO "PCI: Using ACPI for IRQ routing\n"); - pcibios_scanned++; - pcibios_enable_irq = acpi_pci_irq_enable; - } else - printk(KERN_WARNING "PCI: Invalid ACPI-PCI IRQ routing table\n"); + if (acpi_noirq) + return 0; - } + printk(KERN_INFO "PCI: Using ACPI for IRQ routing\n"); + acpi_irq_penalty_init(); + pcibios_scanned++; + pcibios_enable_irq = acpi_pci_irq_enable; + + /* + * PCI IRQ routing is set up by pci_enable_device(), but we + * also do it here in case there are still broken drivers that + * don't use pci_enable_device(). + */ + while ((dev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) + acpi_pci_irq_enable(dev); + +#ifdef CONFIG_X86_IO_APIC + if (acpi_ioapic) + print_IO_APIC(); +#endif return 0; } diff -Nru a/arch/i386/pci/irq.c b/arch/i386/pci/irq.c --- a/arch/i386/pci/irq.c 2004-06-28 18:22:00 -07:00 +++ b/arch/i386/pci/irq.c 2004-06-28 18:22:00 -07:00 @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -22,7 +23,8 @@ #define PIRQ_SIGNATURE (('$' << 0) + ('P' << 8) + ('I' << 16) + ('R' << 24)) #define PIRQ_VERSION 0x0100 -int broken_hp_bios_irq9; +static int broken_hp_bios_irq9; +static int acer_tm360_irqrouting; static struct irq_routing_table *pirq_table; @@ -745,6 +747,14 @@ r->set(pirq_router_dev, dev, pirq, 11); } + /* same for Acer Travelmate 360, but with CB and irq 11 -> 10 */ + if (acer_tm360_irqrouting && dev->irq == 11 && dev->vendor == PCI_VENDOR_ID_O2) { + pirq = 0x68; + mask = 0x400; + dev->irq = r->get(pirq_router_dev, dev, pirq); + pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq); + } + /* * Find the best IRQ to assign: use the one * reported by the device if possible. @@ -893,6 +903,54 @@ } } +/* + * Work around broken HP Pavilion Notebooks which assign USB to + * IRQ 9 even though it is actually wired to IRQ 11 + */ +static int __init fix_broken_hp_bios_irq9(struct dmi_system_id *d) +{ + if (!broken_hp_bios_irq9) { + broken_hp_bios_irq9 = 1; + printk(KERN_INFO "%s detected - fixing broken IRQ routing\n", d->ident); + } + return 0; +} + +/* + * Work around broken Acer TravelMate 360 Notebooks which assign + * Cardbus to IRQ 11 even though it is actually wired to IRQ 10 + */ +static int __init fix_acer_tm360_irqrouting(struct dmi_system_id *d) +{ + if (!acer_tm360_irqrouting) { + acer_tm360_irqrouting = 1; + printk(KERN_INFO "%s detected - fixing broken IRQ routing\n", d->ident); + } + return 0; +} + +static struct dmi_system_id __initdata pciirq_dmi_table[] = { + { + .callback = fix_broken_hp_bios_irq9, + .ident = "HP Pavilion N5400 Series Laptop", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), + DMI_MATCH(DMI_BIOS_VERSION, "GE.M1.03"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP Pavilion Notebook Model GE"), + DMI_MATCH(DMI_BOARD_VERSION, "OmniBook N32N-736"), + }, + }, + { + .callback = fix_acer_tm360_irqrouting, + .ident = "Acer TravelMate 36x Laptop", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Acer"), + DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 360"), + }, + }, + { } +}; + static int __init pcibios_irq_init(void) { DBG("PCI: IRQ init\n"); @@ -900,6 +958,8 @@ if (pcibios_enable_irq || raw_pci_ops == NULL) return 0; + dmi_check_system(pciirq_dmi_table); + pirq_table = pirq_find_routing_table(); #ifdef CONFIG_PCI_BIOS @@ -1000,7 +1060,7 @@ /* VIA bridges use interrupt line for apic/pci steering across the V-Link */ else if (interrupt_line_quirk) - pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq); + pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq & 15); return 0; } diff -Nru a/arch/i386/pci/visws.c b/arch/i386/pci/visws.c --- a/arch/i386/pci/visws.c 2004-06-28 18:21:58 -07:00 +++ b/arch/i386/pci/visws.c 2004-06-28 18:21:58 -07:00 @@ -15,8 +15,6 @@ #include "pci.h" -int broken_hp_bios_irq9; - extern struct pci_raw_ops pci_direct_conf1; static int pci_visws_enable_irq(struct pci_dev *dev) { return 0; } diff -Nru a/arch/i386/power/cpu.c b/arch/i386/power/cpu.c --- a/arch/i386/power/cpu.c 2004-06-28 18:21:58 -07:00 +++ b/arch/i386/power/cpu.c 2004-06-28 18:21:58 -07:00 @@ -27,7 +27,6 @@ #include static struct saved_context saved_context; -static void fix_processor_context(void); unsigned long saved_context_eax, saved_context_ebx; unsigned long saved_context_ecx, saved_context_edx; @@ -37,33 +36,38 @@ extern void enable_sep_cpu(void *); -void save_processor_state(void) +void __save_processor_state(struct saved_context *ctxt) { kernel_fpu_begin(); /* * descriptor tables */ - asm volatile ("sgdt %0" : "=m" (saved_context.gdt_limit)); - asm volatile ("sidt %0" : "=m" (saved_context.idt_limit)); - asm volatile ("sldt %0" : "=m" (saved_context.ldt)); - asm volatile ("str %0" : "=m" (saved_context.tr)); + asm volatile ("sgdt %0" : "=m" (ctxt->gdt_limit)); + asm volatile ("sidt %0" : "=m" (ctxt->idt_limit)); + asm volatile ("sldt %0" : "=m" (ctxt->ldt)); + asm volatile ("str %0" : "=m" (ctxt->tr)); /* * segment registers */ - asm volatile ("movw %%es, %0" : "=m" (saved_context.es)); - asm volatile ("movw %%fs, %0" : "=m" (saved_context.fs)); - asm volatile ("movw %%gs, %0" : "=m" (saved_context.gs)); - asm volatile ("movw %%ss, %0" : "=m" (saved_context.ss)); + asm volatile ("movw %%es, %0" : "=m" (ctxt->es)); + asm volatile ("movw %%fs, %0" : "=m" (ctxt->fs)); + asm volatile ("movw %%gs, %0" : "=m" (ctxt->gs)); + asm volatile ("movw %%ss, %0" : "=m" (ctxt->ss)); /* * control registers */ - asm volatile ("movl %%cr0, %0" : "=r" (saved_context.cr0)); - asm volatile ("movl %%cr2, %0" : "=r" (saved_context.cr2)); - asm volatile ("movl %%cr3, %0" : "=r" (saved_context.cr3)); - asm volatile ("movl %%cr4, %0" : "=r" (saved_context.cr4)); + asm volatile ("movl %%cr0, %0" : "=r" (ctxt->cr0)); + asm volatile ("movl %%cr2, %0" : "=r" (ctxt->cr2)); + asm volatile ("movl %%cr3, %0" : "=r" (ctxt->cr3)); + asm volatile ("movl %%cr4, %0" : "=r" (ctxt->cr4)); +} + +void save_processor_state(void) +{ + __save_processor_state(&saved_context); } static void @@ -75,32 +79,59 @@ mxcsr_feature_mask_init(); } -void restore_processor_state(void) + +static void fix_processor_context(void) +{ + int cpu = smp_processor_id(); + struct tss_struct * t = init_tss + cpu; + + set_tss_desc(cpu,t); /* This just modifies memory; should not be necessary. But... This is necessary, because 386 hardware has concept of busy TSS or some similar stupidity. */ + cpu_gdt_table[cpu][GDT_ENTRY_TSS].b &= 0xfffffdff; + + load_TR_desc(); /* This does ltr */ + load_LDT(¤t->active_mm->context); /* This does lldt */ + + /* + * Now maybe reload the debug registers + */ + if (current->thread.debugreg[7]){ + loaddebug(¤t->thread, 0); + loaddebug(¤t->thread, 1); + loaddebug(¤t->thread, 2); + loaddebug(¤t->thread, 3); + /* no 4 and 5 */ + loaddebug(¤t->thread, 6); + loaddebug(¤t->thread, 7); + } + +} + +void __restore_processor_state(struct saved_context *ctxt) { /* * control registers */ - asm volatile ("movl %0, %%cr4" :: "r" (saved_context.cr4)); - asm volatile ("movl %0, %%cr3" :: "r" (saved_context.cr3)); - asm volatile ("movl %0, %%cr2" :: "r" (saved_context.cr2)); - asm volatile ("movl %0, %%cr0" :: "r" (saved_context.cr0)); + asm volatile ("movl %0, %%cr4" :: "r" (ctxt->cr4)); + asm volatile ("movl %0, %%cr3" :: "r" (ctxt->cr3)); + asm volatile ("movl %0, %%cr2" :: "r" (ctxt->cr2)); + asm volatile ("movl %0, %%cr0" :: "r" (ctxt->cr0)); /* * segment registers */ - asm volatile ("movw %0, %%es" :: "r" (saved_context.es)); - asm volatile ("movw %0, %%fs" :: "r" (saved_context.fs)); - asm volatile ("movw %0, %%gs" :: "r" (saved_context.gs)); - asm volatile ("movw %0, %%ss" :: "r" (saved_context.ss)); + asm volatile ("movw %0, %%es" :: "r" (ctxt->es)); + asm volatile ("movw %0, %%fs" :: "r" (ctxt->fs)); + asm volatile ("movw %0, %%gs" :: "r" (ctxt->gs)); + asm volatile ("movw %0, %%ss" :: "r" (ctxt->ss)); /* * now restore the descriptor tables to their proper values * ltr is done i fix_processor_context(). */ - asm volatile ("lgdt %0" :: "m" (saved_context.gdt_limit)); - asm volatile ("lidt %0" :: "m" (saved_context.idt_limit)); - asm volatile ("lldt %0" :: "m" (saved_context.ldt)); + asm volatile ("lgdt %0" :: "m" (ctxt->gdt_limit)); + asm volatile ("lidt %0" :: "m" (ctxt->idt_limit)); + asm volatile ("lldt %0" :: "m" (ctxt->ldt)); /* * sysenter MSRs @@ -112,31 +143,11 @@ do_fpu_end(); } -static void fix_processor_context(void) +void restore_processor_state(void) { - int cpu = smp_processor_id(); - struct tss_struct * t = init_tss + cpu; - - set_tss_desc(cpu,t); /* This just modifies memory; should not be necessary. But... This is necessary, because 386 hardware has concept of busy TSS or some similar stupidity. */ - cpu_gdt_table[cpu][GDT_ENTRY_TSS].b &= 0xfffffdff; - - load_TR_desc(); /* This does ltr */ - load_LDT(¤t->active_mm->context); /* This does lldt */ - - /* - * Now maybe reload the debug registers - */ - if (current->thread.debugreg[7]){ - loaddebug(¤t->thread, 0); - loaddebug(¤t->thread, 1); - loaddebug(¤t->thread, 2); - loaddebug(¤t->thread, 3); - /* no 4 and 5 */ - loaddebug(¤t->thread, 6); - loaddebug(¤t->thread, 7); - } - + __restore_processor_state(&saved_context); } + EXPORT_SYMBOL(save_processor_state); EXPORT_SYMBOL(restore_processor_state); diff -Nru a/arch/i386/power/swsusp.S b/arch/i386/power/swsusp.S --- a/arch/i386/power/swsusp.S 2004-06-28 18:21:55 -07:00 +++ b/arch/i386/power/swsusp.S 2004-06-28 18:21:55 -07:00 @@ -18,7 +18,7 @@ ENTRY(do_magic) pushl %ebx cmpl $0,8(%esp) - jne .L1450 + jne resume call do_magic_suspend_1 call save_processor_state @@ -33,21 +33,21 @@ pushfl ; popl saved_context_eflags call do_magic_suspend_2 - jmp .L1449 - .p2align 4,,7 -.L1450: + popl %ebx + ret + +resume: movl $swsusp_pg_dir-__PAGE_OFFSET,%ecx movl %ecx,%cr3 call do_magic_resume_1 movl $0,loop cmpl $0,nr_copy_pages - je .L1453 - .p2align 4,,7 -.L1455: + je copy_done +copy_loop: movl $0,loop2 .p2align 4,,7 -.L1459: +copy_one_page: movl pagedir_nosave,%ecx movl loop,%eax movl loop2,%edx @@ -56,23 +56,21 @@ movl (%ecx,%eax),%eax movb (%edx,%eax),%al movb %al,(%edx,%ebx) - movl %cr3, %eax; - movl %eax, %cr3; # flush TLB movl loop2,%eax leal 1(%eax),%edx movl %edx,loop2 movl %edx,%eax cmpl $4095,%eax - jbe .L1459 + jbe copy_one_page movl loop,%eax leal 1(%eax),%edx movl %edx,loop movl %edx,%eax cmpl nr_copy_pages,%eax - jb .L1455 - .p2align 4,,7 -.L1453: + jb copy_loop + +copy_done: movl $__USER_DS,%eax movw %ax, %ds @@ -88,7 +86,6 @@ call restore_processor_state pushl saved_context_eflags ; popfl call do_magic_resume_2 -.L1449: popl %ebx ret diff -Nru a/arch/ia64/Kconfig b/arch/ia64/Kconfig --- a/arch/ia64/Kconfig 2004-06-28 18:21:59 -07:00 +++ b/arch/ia64/Kconfig 2004-06-28 18:21:59 -07:00 @@ -149,20 +149,6 @@ default "6" if ITANIUM # align cache-sensitive data to 64 bytes -config MCKINLEY_ASTEP_SPECIFIC - bool "McKinley A-step specific code" - depends on MCKINLEY - help - Select this option to build a kernel for an IA-64 McKinley prototype - system with any A-stepping CPU. - -config MCKINLEY_A0_SPECIFIC - bool "McKinley A0/A1-step specific code" - depends on MCKINLEY_ASTEP_SPECIFIC - help - Select this option to build a kernel for an IA-64 McKinley prototype - system with an A0 or A1 stepping CPU. - config NUMA bool "NUMA support" depends on !IA64_HP_SIM diff -Nru a/arch/ia64/configs/sn2_defconfig b/arch/ia64/configs/sn2_defconfig --- a/arch/ia64/configs/sn2_defconfig 2004-06-28 18:21:52 -07:00 +++ b/arch/ia64/configs/sn2_defconfig 2004-06-28 18:21:52 -07:00 @@ -14,18 +14,22 @@ # CONFIG_SWAP=y CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set CONFIG_LOG_BUF_SHIFT=20 CONFIG_HOTPLUG=y # CONFIG_IKCONFIG is not set # CONFIG_EMBEDDED is not set CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y CONFIG_FUTEX=y CONFIG_EPOLL=y CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # @@ -60,7 +64,6 @@ CONFIG_IA64_PAGE_SIZE_16KB=y # CONFIG_IA64_PAGE_SIZE_64KB is not set CONFIG_IA64_L1_CACHE_SHIFT=7 -# CONFIG_MCKINLEY_ASTEP_SPECIFIC is not set CONFIG_NUMA=y CONFIG_VIRTUAL_MEM_MAP=y CONFIG_DISCONTIGMEM=y @@ -70,12 +73,17 @@ CONFIG_FORCE_MAX_ZONEORDER=18 CONFIG_SMP=y CONFIG_NR_CPUS=512 +# CONFIG_HOTPLUG_CPU is not set # CONFIG_PREEMPT is not set CONFIG_HAVE_DEC_LOCK=y CONFIG_IA32_SUPPORT=y CONFIG_COMPAT=y CONFIG_PERFMON=y CONFIG_IA64_PALINFO=y + +# +# Firmware Drivers +# CONFIG_EFI_VARS=y CONFIG_BINFMT_ELF=y # CONFIG_BINFMT_MISC is not set @@ -105,6 +113,7 @@ # CONFIG_PCI=y CONFIG_PCI_DOMAINS=y +# CONFIG_PCI_USE_VECTOR is not set CONFIG_PCI_LEGACY_PROC=y CONFIG_PCI_NAMES=y @@ -174,7 +183,6 @@ # CONFIG_BLK_DEV_IDEDISK=y # CONFIG_IDEDISK_MULTI_MODE is not set -# CONFIG_IDEDISK_STROKE is not set CONFIG_BLK_DEV_IDECD=m CONFIG_BLK_DEV_IDETAPE=m CONFIG_BLK_DEV_IDEFLOPPY=y @@ -218,6 +226,7 @@ # CONFIG_BLK_DEV_SLC90E66 is not set # CONFIG_BLK_DEV_TRM290 is not set # CONFIG_BLK_DEV_VIA82CXXX is not set +# CONFIG_IDE_ARM is not set CONFIG_BLK_DEV_IDEDMA=y # CONFIG_IDEDMA_IVB is not set CONFIG_IDEDMA_AUTO=y @@ -243,7 +252,6 @@ # Some SCSI devices (e.g. CD jukebox) support multiple LUNs # # CONFIG_SCSI_MULTI_LUN is not set -CONFIG_SCSI_REPORT_LUNS=y CONFIG_SCSI_CONSTANTS=y # CONFIG_SCSI_LOGGING is not set @@ -281,7 +289,9 @@ CONFIG_SCSI_SATA_SVW=m CONFIG_SCSI_ATA_PIIX=m CONFIG_SCSI_SATA_PROMISE=m +# CONFIG_SCSI_SATA_SX4 is not set # CONFIG_SCSI_SATA_SIL is not set +# CONFIG_SCSI_SATA_SIS is not set CONFIG_SCSI_SATA_VIA=m CONFIG_SCSI_SATA_VITESSE=y # CONFIG_SCSI_BUSLOGIC is not set @@ -298,6 +308,7 @@ CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 # CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set +# CONFIG_SCSI_IPR is not set # CONFIG_SCSI_QLOGIC_ISP is not set # CONFIG_SCSI_QLOGIC_FC is not set CONFIG_SCSI_QLOGIC_1280=y @@ -343,6 +354,7 @@ # # I2O device support # +# CONFIG_I2O is not set # # Networking support @@ -389,8 +401,6 @@ CONFIG_INET6_ESP=m CONFIG_INET6_IPCOMP=m CONFIG_IPV6_TUNNEL=m -# CONFIG_DECNET is not set -CONFIG_BRIDGE=m CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set CONFIG_BRIDGE_NETFILTER=y @@ -452,6 +462,7 @@ CONFIG_IP_NF_ARP_MANGLE=m # CONFIG_IP_NF_COMPAT_IPCHAINS is not set # CONFIG_IP_NF_COMPAT_IPFWADM is not set +# CONFIG_IP_NF_RAW is not set # # IPv6: Netfilter Configuration @@ -471,7 +482,9 @@ # # CONFIG_IP_SCTP is not set # CONFIG_ATM is not set +CONFIG_BRIDGE=m CONFIG_VLAN_8021Q=m +# CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set @@ -516,12 +529,14 @@ # Network testing # # CONFIG_NET_PKTGEN is not set +CONFIG_NETPOLL=y +# CONFIG_NETPOLL_RX is not set +# CONFIG_NETPOLL_TRAP is not set +CONFIG_NET_POLL_CONTROLLER=y +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set CONFIG_NETDEVICES=y - -# -# ARCnet devices -# -# CONFIG_ARCNET is not set CONFIG_DUMMY=m CONFIG_BONDING=m CONFIG_EQUALIZER=m @@ -529,6 +544,11 @@ # CONFIG_ETHERTAP is not set # +# ARCnet devices +# +# CONFIG_ARCNET is not set + +# # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y @@ -582,7 +602,6 @@ CONFIG_HAMACHI=m CONFIG_YELLOWFIN=m CONFIG_R8169=m -CONFIG_SIS190=m CONFIG_SK98LIN=m CONFIG_TIGON3=y @@ -591,6 +610,22 @@ # CONFIG_IXGB=m # CONFIG_IXGB_NAPI is not set +# CONFIG_S2IO is not set + +# +# Token Ring devices +# +# CONFIG_TR is not set + +# +# Wireless LAN (non-hamradio) +# +# CONFIG_NET_RADIO is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set # CONFIG_FDDI is not set # CONFIG_HIPPI is not set CONFIG_PPP=m @@ -602,45 +637,11 @@ # CONFIG_PPP_BSDCOMP is not set # CONFIG_PPPOE is not set # CONFIG_SLIP is not set - -# -# Wireless LAN (non-hamradio) -# -# CONFIG_NET_RADIO is not set - -# -# Token Ring devices -# -# CONFIG_TR is not set CONFIG_NET_FC=y # CONFIG_SHAPER is not set CONFIG_NETCONSOLE=y # -# Wan interfaces -# -# CONFIG_WAN is not set - -# -# Amateur Radio support -# -# CONFIG_HAMRADIO is not set - -# -# IrDA (infrared) support -# -# CONFIG_IRDA is not set - -# -# Bluetooth support -# -# CONFIG_BT is not set -CONFIG_NETPOLL=y -# CONFIG_NETPOLL_RX is not set -# CONFIG_NETPOLL_TRAP is not set -CONFIG_NET_POLL_CONTROLLER=y - -# # ISDN subsystem # # CONFIG_ISDN is not set @@ -703,6 +704,7 @@ CONFIG_HW_CONSOLE=y CONFIG_SERIAL_NONSTANDARD=y # CONFIG_ROCKETPORT is not set +# CONFIG_CYCLADES is not set # CONFIG_SYNCLINK is not set # CONFIG_SYNCLINKMP is not set # CONFIG_N_HDLC is not set @@ -713,18 +715,11 @@ # # Serial drivers # -CONFIG_SERIAL_8250=y -CONFIG_SERIAL_8250_CONSOLE=y -CONFIG_SERIAL_8250_HCDP=y -CONFIG_SERIAL_8250_ACPI=y -CONFIG_SERIAL_8250_NR_UARTS=4 -# CONFIG_SERIAL_8250_EXTENDED is not set +# CONFIG_SERIAL_8250 is not set # # Non-8250 serial port support # -CONFIG_SERIAL_CORE=y -CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_UNIX98_PTYS=y CONFIG_LEGACY_PTYS=y CONFIG_LEGACY_PTY_COUNT=256 @@ -740,7 +735,6 @@ # # CONFIG_WATCHDOG is not set # CONFIG_HW_RANDOM is not set -# CONFIG_GEN_RTC is not set CONFIG_EFI_RTC=y # CONFIG_DTLK is not set # CONFIG_R3964 is not set @@ -852,6 +846,7 @@ # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y +CONFIG_SYSFS=y # CONFIG_DEVFS_FS is not set # CONFIG_DEVPTS_FS_XATTR is not set CONFIG_TMPFS=y @@ -897,7 +892,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -968,6 +962,7 @@ # Library routines # CONFIG_CRC32=y +# CONFIG_LIBCRC32C is not set CONFIG_ZLIB_INFLATE=m CONFIG_ZLIB_DEFLATE=m @@ -1019,4 +1014,5 @@ # CONFIG_CRYPTO_ARC4 is not set CONFIG_CRYPTO_DEFLATE=m # CONFIG_CRYPTO_MICHAEL_MIC is not set +# CONFIG_CRYPTO_CRC32C is not set # CONFIG_CRYPTO_TEST is not set diff -Nru a/arch/ia64/defconfig b/arch/ia64/defconfig --- a/arch/ia64/defconfig 2004-06-28 18:21:53 -07:00 +++ b/arch/ia64/defconfig 2004-06-28 18:21:53 -07:00 @@ -26,6 +26,7 @@ CONFIG_IKCONFIG_PROC=y # CONFIG_EMBEDDED is not set CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set CONFIG_FUTEX=y CONFIG_EPOLL=y CONFIG_IOSCHED_NOOP=y @@ -66,7 +67,6 @@ CONFIG_IA64_PAGE_SIZE_16KB=y # CONFIG_IA64_PAGE_SIZE_64KB is not set CONFIG_IA64_L1_CACHE_SHIFT=7 -# CONFIG_MCKINLEY_ASTEP_SPECIFIC is not set # CONFIG_NUMA is not set CONFIG_VIRTUAL_MEM_MAP=y # CONFIG_IA64_CYCLONE is not set @@ -74,6 +74,7 @@ CONFIG_FORCE_MAX_ZONEORDER=18 CONFIG_SMP=y CONFIG_NR_CPUS=16 +# CONFIG_HOTPLUG_CPU is not set # CONFIG_PREEMPT is not set CONFIG_HAVE_DEC_LOCK=y CONFIG_IA32_SUPPORT=y @@ -178,7 +179,6 @@ # CONFIG_BLK_DEV_IDEDISK=y CONFIG_IDEDISK_MULTI_MODE=y -# CONFIG_IDEDISK_STROKE is not set CONFIG_BLK_DEV_IDECD=y # CONFIG_BLK_DEV_IDETAPE is not set CONFIG_BLK_DEV_IDEFLOPPY=m @@ -220,6 +220,7 @@ # CONFIG_BLK_DEV_SLC90E66 is not set # CONFIG_BLK_DEV_TRM290 is not set # CONFIG_BLK_DEV_VIA82CXXX is not set +# CONFIG_IDE_ARM is not set CONFIG_BLK_DEV_IDEDMA=y # CONFIG_IDEDMA_IVB is not set CONFIG_IDEDMA_AUTO=y @@ -245,7 +246,6 @@ # Some SCSI devices (e.g. CD jukebox) support multiple LUNs # CONFIG_SCSI_MULTI_LUN=y -CONFIG_SCSI_REPORT_LUNS=y CONFIG_SCSI_CONSTANTS=y CONFIG_SCSI_LOGGING=y @@ -282,6 +282,7 @@ CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 # CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set +# CONFIG_SCSI_IPR is not set # CONFIG_SCSI_PCI2000 is not set # CONFIG_SCSI_PCI2220I is not set # CONFIG_SCSI_QLOGIC_ISP is not set @@ -328,6 +329,7 @@ # # I2O device support # +# CONFIG_I2O is not set # # Networking support @@ -573,7 +575,12 @@ # # IPMI # -# CONFIG_IPMI_HANDLER is not set +CONFIG_IPMI_HANDLER=m +CONFIG_IPMI_PANIC_EVENT=y +CONFIG_IPMI_PANIC_STRING=y +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_SI=m +CONFIG_IPMI_WATCHDOG=m # # Watchdog Cards @@ -651,6 +658,7 @@ # CONFIG_SENSORS_LM83 is not set # CONFIG_SENSORS_LM85 is not set # CONFIG_SENSORS_LM90 is not set +# CONFIG_SENSORS_MAX1619 is not set # CONFIG_SENSORS_VIA686A is not set # CONFIG_SENSORS_W83781D is not set # CONFIG_SENSORS_W83L785TS is not set @@ -662,6 +670,7 @@ # CONFIG_SENSORS_EEPROM is not set # CONFIG_SENSORS_PCF8574 is not set # CONFIG_SENSORS_PCF8591 is not set +# CONFIG_SENSORS_RTC8564 is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set @@ -688,6 +697,7 @@ # CONFIG_FB_CIRRUS is not set # CONFIG_FB_PM2 is not set # CONFIG_FB_CYBER2000 is not set +# CONFIG_FB_ASILIANT is not set # CONFIG_FB_IMSTT is not set CONFIG_FB_RIVA=m # CONFIG_FB_MATROX is not set @@ -852,6 +862,7 @@ # CONFIG_USB_KBTAB is not set # CONFIG_USB_POWERMATE is not set # CONFIG_USB_MTOUCH is not set +# CONFIG_USB_EGALAX is not set # CONFIG_USB_XPAD is not set # CONFIG_USB_ATI_REMOTE is not set @@ -901,6 +912,7 @@ # CONFIG_USB_LCD is not set # CONFIG_USB_LED is not set # CONFIG_USB_CYTHERM is not set +# CONFIG_USB_PHIDGETSERVO is not set # CONFIG_USB_TEST is not set # @@ -987,7 +999,7 @@ CONFIG_NFSD=y CONFIG_NFSD_V3=y # CONFIG_NFSD_V4 is not set -# CONFIG_NFSD_TCP is not set +CONFIG_NFSD_TCP=y CONFIG_LOCKD=y CONFIG_LOCKD_V4=y CONFIG_EXPORTFS=y @@ -998,7 +1010,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -1083,7 +1094,7 @@ # CONFIG_IA64_GRANULE_64MB is not set CONFIG_DEBUG_KERNEL=y CONFIG_IA64_PRINT_HAZARDS=y -CONFIG_DISABLE_VHPT=y +# CONFIG_DISABLE_VHPT is not set CONFIG_MAGIC_SYSRQ=y # CONFIG_IA64_EARLY_PRINTK_VGA is not set # CONFIG_DEBUG_SLAB is not set diff -Nru a/arch/ia64/ia32/binfmt_elf32.c b/arch/ia64/ia32/binfmt_elf32.c --- a/arch/ia64/ia32/binfmt_elf32.c 2004-06-28 18:21:59 -07:00 +++ b/arch/ia64/ia32/binfmt_elf32.c 2004-06-28 18:21:59 -07:00 @@ -197,6 +197,10 @@ } up_write(¤t->mm->mmap_sem); + /* Can't do it in ia64_elf32_init(). Needs to be done before calls to + elf32_map() */ + current->thread.ppl = ia32_init_pp_list(); + return 0; } diff -Nru a/arch/ia64/ia32/ia32_entry.S b/arch/ia64/ia32/ia32_entry.S --- a/arch/ia64/ia32/ia32_entry.S 2004-06-28 18:21:56 -07:00 +++ b/arch/ia64/ia32/ia32_entry.S 2004-06-28 18:21:56 -07:00 @@ -349,7 +349,7 @@ data8 sys_setfsuid /* 16-bit version */ data8 sys_setfsgid /* 16-bit version */ data8 sys_llseek /* 140 */ - data8 sys32_getdents + data8 compat_sys_getdents data8 compat_sys_select data8 sys_flock data8 sys32_msync @@ -371,7 +371,7 @@ data8 sys_sched_get_priority_min /* 160 */ data8 sys32_sched_rr_get_interval data8 compat_sys_nanosleep - data8 sys_mremap + data8 sys32_mremap data8 sys_setresuid /* 16-bit version */ data8 sys32_getresuid16 /* 16-bit version */ /* 165 */ data8 sys_ni_syscall /* vm86 */ @@ -428,7 +428,7 @@ data8 sys_pivot_root data8 sys_mincore data8 sys_madvise - data8 sys_getdents64 /* 220 */ + data8 compat_sys_getdents64 /* 220 */ data8 compat_sys_fcntl64 data8 sys_ni_syscall /* reserved for TUX */ data8 sys_ni_syscall /* reserved for Security */ diff -Nru a/arch/ia64/ia32/ia32_support.c b/arch/ia64/ia32/ia32_support.c --- a/arch/ia64/ia32/ia32_support.c 2004-06-28 18:21:53 -07:00 +++ b/arch/ia64/ia32/ia32_support.c 2004-06-28 18:21:53 -07:00 @@ -218,6 +218,18 @@ ia32_exec_domain.signal_map = default_exec_domain.signal_map; ia32_exec_domain.signal_invmap = default_exec_domain.signal_invmap; register_exec_domain(&ia32_exec_domain); + +#if PAGE_SHIFT > IA32_PAGE_SHIFT + { + extern kmem_cache_t *partial_page_cachep; + + partial_page_cachep = kmem_cache_create("partial_page_cache", + sizeof(struct partial_page), 0, 0, + NULL, NULL); + if (!partial_page_cachep) + panic("Cannot create partial page SLAB cache"); + } +#endif return 0; } diff -Nru a/arch/ia64/ia32/ia32priv.h b/arch/ia64/ia32/ia32priv.h --- a/arch/ia64/ia32/ia32priv.h 2004-06-28 18:21:59 -07:00 +++ b/arch/ia64/ia32/ia32priv.h 2004-06-28 18:21:59 -07:00 @@ -1,5 +1,5 @@ -#ifndef _ASM_IA64_IA32_H -#define _ASM_IA64_IA32_H +#ifndef _ASM_IA64_IA32_PRIV_H +#define _ASM_IA64_IA32_PRIV_H #include @@ -9,6 +9,7 @@ #include #include +#include #include @@ -16,12 +17,39 @@ * 32 bit structures for IA32 support. */ -#define IA32_PAGE_SHIFT 12 /* 4KB pages */ #define IA32_PAGE_SIZE (1UL << IA32_PAGE_SHIFT) #define IA32_PAGE_MASK (~(IA32_PAGE_SIZE - 1)) #define IA32_PAGE_ALIGN(addr) (((addr) + IA32_PAGE_SIZE - 1) & IA32_PAGE_MASK) #define IA32_CLOCKS_PER_SEC 100 /* Cast in stone for IA32 Linux */ +/* + * partially mapped pages provide precise accounting of which 4k sub pages + * are mapped and which ones are not, thereby improving IA-32 compatibility. + */ +struct partial_page { + struct partial_page *next; /* linked list, sorted by address */ + struct rb_node pp_rb; + /* 64K is the largest "normal" page supported by ia64 ABI. So 4K*32 + * should suffice.*/ + unsigned int bitmap; + unsigned int base; +}; + +struct partial_page_list { + struct partial_page *pp_head; /* list head, points to the lowest + * addressed partial page */ + struct rb_root ppl_rb; + struct partial_page *pp_hint; /* pp_hint->next is the last + * accessed partial page */ + atomic_t pp_count; /* reference count */ +}; + +#if PAGE_SHIFT > IA32_PAGE_SHIFT +struct partial_page_list* ia32_init_pp_list (void); +#else +# define ia32_init_pp_list() 0 +#endif + /* sigcontext.h */ /* * As documented in the iBCS2 standard.. @@ -528,4 +556,4 @@ #endif /* !CONFIG_IA32_SUPPORT */ -#endif /* _ASM_IA64_IA32_H */ +#endif /* _ASM_IA64_IA32_PRIV_H */ diff -Nru a/arch/ia64/ia32/sys_ia32.c b/arch/ia64/ia32/sys_ia32.c --- a/arch/ia64/ia32/sys_ia32.c 2004-06-28 18:21:57 -07:00 +++ b/arch/ia64/ia32/sys_ia32.c 2004-06-28 18:21:57 -07:00 @@ -8,6 +8,7 @@ * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu) * Copyright (C) 2000-2003 Hewlett-Packard Co * David Mosberger-Tang + * Copyright (C) 2004 Gordon Jin * * These routines maintain argument size conversion between 32bit and 64bit * environment. @@ -48,6 +49,7 @@ #include #include #include +#include #include #include @@ -250,6 +252,508 @@ return ret; } +/* SLAB cache for partial_page structures */ +kmem_cache_t *partial_page_cachep; + +/* + * init partial_page_list. + * return 0 means kmalloc fail. + */ +struct partial_page_list* +ia32_init_pp_list(void) +{ + struct partial_page_list *p; + + if ((p = kmalloc(sizeof(*p), GFP_KERNEL)) == NULL) + return p; + p->pp_head = 0; + p->ppl_rb = RB_ROOT; + p->pp_hint = 0; + atomic_set(&p->pp_count, 1); + return p; +} + +/* + * Search for the partial page with @start in partial page list @ppl. + * If finds the partial page, return the found partial page. + * Else, return 0 and provide @pprev, @rb_link, @rb_parent to + * be used by later __ia32_insert_pp(). + */ +static struct partial_page * +__ia32_find_pp(struct partial_page_list *ppl, unsigned int start, + struct partial_page **pprev, struct rb_node ***rb_link, + struct rb_node **rb_parent) +{ + struct partial_page *pp; + struct rb_node **__rb_link, *__rb_parent, *rb_prev; + + pp = ppl->pp_hint; + if (pp && pp->base == start) + return pp; + + __rb_link = &ppl->ppl_rb.rb_node; + rb_prev = __rb_parent = NULL; + + while (*__rb_link) { + __rb_parent = *__rb_link; + pp = rb_entry(__rb_parent, struct partial_page, pp_rb); + + if (pp->base == start) { + ppl->pp_hint = pp; + return pp; + } else if (pp->base < start) { + rb_prev = __rb_parent; + __rb_link = &__rb_parent->rb_right; + } else { + __rb_link = &__rb_parent->rb_left; + } + } + + *rb_link = __rb_link; + *rb_parent = __rb_parent; + *pprev = NULL; + if (rb_prev) + *pprev = rb_entry(rb_prev, struct partial_page, pp_rb); + return NULL; +} + +/* + * insert @pp into @ppl. + */ +static void +__ia32_insert_pp(struct partial_page_list *ppl, struct partial_page *pp, + struct partial_page *prev, struct rb_node **rb_link, + struct rb_node *rb_parent) +{ + /* link list */ + if (prev) { + pp->next = prev->next; + prev->next = pp; + } else { + ppl->pp_head = pp; + if (rb_parent) + pp->next = rb_entry(rb_parent, + struct partial_page, pp_rb); + else + pp->next = NULL; + } + + /* link rb */ + rb_link_node(&pp->pp_rb, rb_parent, rb_link); + rb_insert_color(&pp->pp_rb, &ppl->ppl_rb); + + ppl->pp_hint = pp; +} + +/* + * delete @pp from partial page list @ppl. + */ +static void +__ia32_delete_pp(struct partial_page_list *ppl, struct partial_page *pp, + struct partial_page *prev) +{ + if (prev) { + prev->next = pp->next; + if (ppl->pp_hint == pp) + ppl->pp_hint = prev; + } else { + ppl->pp_head = pp->next; + if (ppl->pp_hint == pp) + ppl->pp_hint = pp->next; + } + rb_erase(&pp->pp_rb, &ppl->ppl_rb); + kmem_cache_free(partial_page_cachep, pp); +} + +static struct partial_page * +__pp_prev(struct partial_page *pp) +{ + struct rb_node *prev = rb_prev(&pp->pp_rb); + if (prev) + return rb_entry(prev, struct partial_page, pp_rb); + else + return NULL; +} + +/* + * Delete partial pages with address between @start and @end. + * @start and @end are page aligned. + */ +static void +__ia32_delete_pp_range(unsigned int start, unsigned int end) +{ + struct partial_page *pp, *prev; + struct rb_node **rb_link, *rb_parent; + + if (start >= end) + return; + + pp = __ia32_find_pp(current->thread.ppl, start, &prev, + &rb_link, &rb_parent); + if (pp) + prev = __pp_prev(pp); + else { + if (prev) + pp = prev->next; + else + pp = current->thread.ppl->pp_head; + } + + while (pp && pp->base < end) { + struct partial_page *tmp = pp->next; + __ia32_delete_pp(current->thread.ppl, pp, prev); + pp = tmp; + } +} + +/* + * Set the range between @start and @end in bitmap. + * @start and @end should be IA32 page aligned and in the same IA64 page. + */ +static int +__ia32_set_pp(unsigned int start, unsigned int end, int flags) +{ + struct partial_page *pp, *prev; + struct rb_node ** rb_link, *rb_parent; + unsigned int pstart, start_bit, end_bit, i; + + pstart = PAGE_START(start); + start_bit = (start % PAGE_SIZE) / IA32_PAGE_SIZE; + end_bit = (end % PAGE_SIZE) / IA32_PAGE_SIZE; + if (end_bit == 0) + end_bit = PAGE_SIZE / IA32_PAGE_SIZE; + pp = __ia32_find_pp(current->thread.ppl, pstart, &prev, + &rb_link, &rb_parent); + if (pp) { + for (i = start_bit; i < end_bit; i++) + set_bit(i, &pp->bitmap); + /* + * Check: if this partial page has been set to a full page, + * then delete it. + */ + if (find_first_zero_bit(&pp->bitmap, sizeof(pp->bitmap)*8) >= + PAGE_SIZE/IA32_PAGE_SIZE) { + __ia32_delete_pp(current->thread.ppl, pp, __pp_prev(pp)); + } + return 0; + } + + /* + * MAP_FIXED may lead to overlapping mmap. + * In this case, the requested mmap area may already mmaped as a full + * page. So check vma before adding a new partial page. + */ + if (flags & MAP_FIXED) { + struct vm_area_struct *vma = find_vma(current->mm, pstart); + if (vma && vma->vm_start <= pstart) + return 0; + } + + /* new a partial_page */ + pp = kmem_cache_alloc(partial_page_cachep, GFP_KERNEL); + if (!pp) + return -ENOMEM; + pp->base = pstart; + pp->bitmap = 0; + for (i=start_bit; ibitmap)); + pp->next = NULL; + __ia32_insert_pp(current->thread.ppl, pp, prev, rb_link, rb_parent); + return 0; +} + +/* + * @start and @end should be IA32 page aligned, but don't need to be in the + * same IA64 page. Split @start and @end to make sure they're in the same IA64 + * page, then call __ia32_set_pp(). + */ +static void +ia32_set_pp(unsigned int start, unsigned int end, int flags) +{ + down_write(¤t->mm->mmap_sem); + if (flags & MAP_FIXED) { + /* + * MAP_FIXED may lead to overlapping mmap. When this happens, + * a series of complete IA64 pages results in deletion of + * old partial pages in that range. + */ + __ia32_delete_pp_range(PAGE_ALIGN(start), PAGE_START(end)); + } + + if (end < PAGE_ALIGN(start)) { + __ia32_set_pp(start, end, flags); + } else { + if (offset_in_page(start)) + __ia32_set_pp(start, PAGE_ALIGN(start), flags); + if (offset_in_page(end)) + __ia32_set_pp(PAGE_START(end), end, flags); + } + up_write(¤t->mm->mmap_sem); +} + +/* + * Unset the range between @start and @end in bitmap. + * @start and @end should be IA32 page aligned and in the same IA64 page. + * After doing that, if the bitmap is 0, then free the page and return 1, + * else return 0; + * If not find the partial page in the list, then + * If the vma exists, then the full page is set to a partial page; + * Else return -ENOMEM. + */ +static int +__ia32_unset_pp(unsigned int start, unsigned int end) +{ + struct partial_page *pp, *prev; + struct rb_node ** rb_link, *rb_parent; + unsigned int pstart, start_bit, end_bit, i; + struct vm_area_struct *vma; + + pstart = PAGE_START(start); + start_bit = (start % PAGE_SIZE) / IA32_PAGE_SIZE; + end_bit = (end % PAGE_SIZE) / IA32_PAGE_SIZE; + if (end_bit == 0) + end_bit = PAGE_SIZE / IA32_PAGE_SIZE; + + pp = __ia32_find_pp(current->thread.ppl, pstart, &prev, + &rb_link, &rb_parent); + if (pp) { + for (i = start_bit; i < end_bit; i++) + clear_bit(i, &pp->bitmap); + if (pp->bitmap == 0) { + __ia32_delete_pp(current->thread.ppl, pp, __pp_prev(pp)); + return 1; + } + return 0; + } + + vma = find_vma(current->mm, pstart); + if (!vma || vma->vm_start > pstart) { + return -ENOMEM; + } + + /* new a partial_page */ + pp = kmem_cache_alloc(partial_page_cachep, GFP_KERNEL); + if (!pp) + return -ENOMEM; + pp->base = pstart; + pp->bitmap = 0; + for (i = 0; i < start_bit; i++) + set_bit(i, &(pp->bitmap)); + for (i = end_bit; i < PAGE_SIZE / IA32_PAGE_SIZE; i++) + set_bit(i, &(pp->bitmap)); + pp->next = NULL; + __ia32_insert_pp(current->thread.ppl, pp, prev, rb_link, rb_parent); + return 0; +} + +/* + * Delete pp between PAGE_ALIGN(start) and PAGE_START(end) by calling + * __ia32_delete_pp_range(). Unset possible partial pages by calling + * __ia32_unset_pp(). + * The returned value see __ia32_unset_pp(). + */ +static int +ia32_unset_pp(unsigned int *startp, unsigned int *endp) +{ + unsigned int start = *startp, end = *endp; + int ret = 0; + + down_write(¤t->mm->mmap_sem); + + __ia32_delete_pp_range(PAGE_ALIGN(start), PAGE_START(end)); + + if (end < PAGE_ALIGN(start)) { + ret = __ia32_unset_pp(start, end); + if (ret == 1) { + *startp = PAGE_START(start); + *endp = PAGE_ALIGN(end); + } + if (ret == 0) { + /* to shortcut sys_munmap() in sys32_munmap() */ + *startp = PAGE_START(start); + *endp = PAGE_START(end); + } + } else { + if (offset_in_page(start)) { + ret = __ia32_unset_pp(start, PAGE_ALIGN(start)); + if (ret == 1) + *startp = PAGE_START(start); + if (ret == 0) + *startp = PAGE_ALIGN(start); + if (ret < 0) + goto out; + } + if (offset_in_page(end)) { + ret = __ia32_unset_pp(PAGE_START(end), end); + if (ret == 1) + *endp = PAGE_ALIGN(end); + if (ret == 0) + *endp = PAGE_START(end); + } + } + + out: + up_write(¤t->mm->mmap_sem); + return ret; +} + +/* + * Compare the range between @start and @end with bitmap in partial page. + * @start and @end should be IA32 page aligned and in the same IA64 page. + */ +static int +__ia32_compare_pp(unsigned int start, unsigned int end) +{ + struct partial_page *pp, *prev; + struct rb_node ** rb_link, *rb_parent; + unsigned int pstart, start_bit, end_bit, size; + unsigned int first_bit, next_zero_bit; /* the first range in bitmap */ + + pstart = PAGE_START(start); + + pp = __ia32_find_pp(current->thread.ppl, pstart, &prev, + &rb_link, &rb_parent); + if (!pp) + return 1; + + start_bit = (start % PAGE_SIZE) / IA32_PAGE_SIZE; + end_bit = (end % PAGE_SIZE) / IA32_PAGE_SIZE; + size = sizeof(pp->bitmap) * 8; + first_bit = find_first_bit(&pp->bitmap, size); + next_zero_bit = find_next_zero_bit(&pp->bitmap, size, first_bit); + if ((start_bit < first_bit) || (end_bit > next_zero_bit)) { + /* exceeds the first range in bitmap */ + return -ENOMEM; + } else if ((start_bit == first_bit) && (end_bit == next_zero_bit)) { + first_bit = find_next_bit(&pp->bitmap, size, next_zero_bit); + if ((next_zero_bit < first_bit) && (first_bit < size)) + return 1; /* has next range */ + else + return 0; /* no next range */ + } else + return 1; +} + +/* + * @start and @end should be IA32 page aligned, but don't need to be in the + * same IA64 page. Split @start and @end to make sure they're in the same IA64 + * page, then call __ia32_compare_pp(). + * + * Take this as example: the range is the 1st and 2nd 4K page. + * Return 0 if they fit bitmap exactly, i.e. bitmap = 00000011; + * Return 1 if the range doesn't cover whole bitmap, e.g. bitmap = 00001111; + * Return -ENOMEM if the range exceeds the bitmap, e.g. bitmap = 00000001 or + * bitmap = 00000101. + */ +static int +ia32_compare_pp(unsigned int *startp, unsigned int *endp) +{ + unsigned int start = *startp, end = *endp; + int retval = 0; + + down_write(¤t->mm->mmap_sem); + + if (end < PAGE_ALIGN(start)) { + retval = __ia32_compare_pp(start, end); + if (retval == 0) { + *startp = PAGE_START(start); + *endp = PAGE_ALIGN(end); + } + } else { + if (offset_in_page(start)) { + retval = __ia32_compare_pp(start, + PAGE_ALIGN(start)); + if (retval == 0) + *startp = PAGE_START(start); + if (retval < 0) + goto out; + } + if (offset_in_page(end)) { + retval = __ia32_compare_pp(PAGE_START(end), end); + if (retval == 0) + *endp = PAGE_ALIGN(end); + } + } + + out: + up_write(¤t->mm->mmap_sem); + return retval; +} + +static void +__ia32_drop_pp_list(struct partial_page_list *ppl) +{ + struct partial_page *pp = ppl->pp_head; + + while (pp) { + struct partial_page *next = pp->next; + kmem_cache_free(partial_page_cachep, pp); + pp = next; + } + + kfree(ppl); +} + +void +ia32_drop_partial_page_list(struct task_struct *task) +{ + struct partial_page_list* ppl = task->thread.ppl; + + if (ppl && atomic_dec_and_test(&ppl->pp_count)) + __ia32_drop_pp_list(ppl); +} + +/* + * Copy current->thread.ppl to ppl (already initialized). + */ +static int +__ia32_copy_pp_list(struct partial_page_list *ppl) +{ + struct partial_page *pp, *tmp, *prev; + struct rb_node **rb_link, *rb_parent; + + ppl->pp_head = NULL; + ppl->pp_hint = NULL; + ppl->ppl_rb = RB_ROOT; + rb_link = &ppl->ppl_rb.rb_node; + rb_parent = NULL; + prev = NULL; + + for (pp = current->thread.ppl->pp_head; pp; pp = pp->next) { + tmp = kmem_cache_alloc(partial_page_cachep, GFP_KERNEL); + if (!tmp) + return -ENOMEM; + *tmp = *pp; + __ia32_insert_pp(ppl, tmp, prev, rb_link, rb_parent); + prev = tmp; + rb_link = &tmp->pp_rb.rb_right; + rb_parent = &tmp->pp_rb; + } + return 0; +} + +int +ia32_copy_partial_page_list(struct task_struct *p, unsigned long clone_flags) +{ + int retval = 0; + + if (clone_flags & CLONE_VM) { + atomic_inc(¤t->thread.ppl->pp_count); + p->thread.ppl = current->thread.ppl; + } else { + p->thread.ppl = ia32_init_pp_list(); + if (!p->thread.ppl) + return -ENOMEM; + down_write(¤t->mm->mmap_sem); + { + retval = __ia32_copy_pp_list(p->thread.ppl); + } + up_write(¤t->mm->mmap_sem); + } + + return retval; +} + static unsigned long emulate_mmap (struct file *file, unsigned long start, unsigned long len, int prot, int flags, loff_t off) @@ -263,6 +767,7 @@ pend = PAGE_ALIGN(end); if (flags & MAP_FIXED) { + ia32_set_pp((unsigned int)start, (unsigned int)end, flags); if (start > pstart) { if (flags & MAP_SHARED) printk(KERN_INFO @@ -274,7 +779,7 @@ return ret; pstart += PAGE_SIZE; if (pstart >= pend) - return start; /* done */ + goto out; /* done */ } if (end < pend) { if (flags & MAP_SHARED) @@ -287,7 +792,7 @@ return ret; pend -= PAGE_SIZE; if (pstart >= pend) - return start; /* done */ + goto out; /* done */ } } else { /* @@ -341,6 +846,10 @@ if (!(prot & PROT_WRITE) && sys_mprotect(pstart, pend - pstart, prot) < 0) return -EINVAL; } + + if (!(flags & MAP_FIXED)) + ia32_set_pp((unsigned int)start, (unsigned int)end, flags); +out: return start; } @@ -478,11 +987,16 @@ #if PAGE_SHIFT <= IA32_PAGE_SHIFT ret = sys_munmap(start, end - start); #else + if (OFFSET4K(start)) + return -EINVAL; + + end = IA32_PAGE_ALIGN(end); if (start >= end) return -EINVAL; - start = PAGE_ALIGN(start); - end = PAGE_START(end); + ret = ia32_unset_pp(&start, &end); + if (ret < 0) + return ret; if (start >= end) return 0; @@ -521,7 +1035,7 @@ asmlinkage long sys32_mprotect (unsigned int start, unsigned int len, int prot) { - unsigned long end = start + len; + unsigned int end = start + len; #if PAGE_SHIFT > IA32_PAGE_SHIFT long retval = 0; #endif @@ -538,6 +1052,11 @@ if (end < start) return -EINVAL; + retval = ia32_compare_pp(&start, &end); + + if (retval < 0) + return retval; + down(&ia32_mmap_sem); { if (offset_in_page(start)) { @@ -565,6 +1084,59 @@ up(&ia32_mmap_sem); return retval; #endif +} + +asmlinkage long +sys32_mremap (unsigned int addr, unsigned int old_len, unsigned int new_len, + unsigned int flags, unsigned int new_addr) +{ + long ret; + +#if PAGE_SHIFT <= IA32_PAGE_SHIFT + ret = sys_mremap(addr, old_len, new_len, flags, new_addr); +#else + unsigned int old_end, new_end; + + if (OFFSET4K(addr)) + return -EINVAL; + + old_len = IA32_PAGE_ALIGN(old_len); + new_len = IA32_PAGE_ALIGN(new_len); + old_end = addr + old_len; + new_end = addr + new_len; + + if (!new_len) + return -EINVAL; + + if ((flags & MREMAP_FIXED) && (OFFSET4K(new_addr))) + return -EINVAL; + + if (old_len >= new_len) { + ret = sys32_munmap(addr + new_len, old_len - new_len); + if (ret && old_len != new_len) + return ret; + ret = addr; + if (!(flags & MREMAP_FIXED) || (new_addr == addr)) + return ret; + old_len = new_len; + } + + addr = PAGE_START(addr); + old_len = PAGE_ALIGN(old_end) - addr; + new_len = PAGE_ALIGN(new_end) - addr; + + down(&ia32_mmap_sem); + { + ret = sys_mremap(addr, old_len, new_len, flags, new_addr); + } + up(&ia32_mmap_sem); + + if ((ret >= 0) && (old_len < new_len)) { + /* mremap expanded successfully */ + ia32_set_pp(old_end, new_end, flags); + } +#endif + return ret; } asmlinkage long diff -Nru a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c --- a/arch/ia64/kernel/acpi.c 2004-06-28 18:21:56 -07:00 +++ b/arch/ia64/kernel/acpi.c 2004-06-28 18:21:56 -07:00 @@ -521,9 +521,14 @@ #endif /* CONFIG_ACPI_NUMA */ unsigned int -acpi_register_gsi (u32 gsi, int polarity, int trigger) +acpi_register_gsi (u32 gsi, int edge_level, int active_high_low) { - return acpi_register_irq(gsi, polarity, trigger); + if (has_8259 && gsi < 16) + return isa_irq_to_vector(gsi); + + return iosapic_register_intr(gsi, + (active_high_low == ACPI_ACTIVE_HIGH) ? IOSAPIC_POL_HIGH : IOSAPIC_POL_LOW, + (edge_level == ACPI_EDGE_SENSITIVE) ? IOSAPIC_EDGE : IOSAPIC_LEVEL); } EXPORT_SYMBOL(acpi_register_gsi); @@ -548,7 +553,7 @@ if (fadt->iapc_boot_arch & BAF_LEGACY_DEVICES) acpi_legacy_devices = 1; - acpi_register_gsi(fadt->sci_int, ACPI_ACTIVE_LOW, ACPI_LEVEL_SENSITIVE); + acpi_register_gsi(fadt->sci_int, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW); return 0; } @@ -661,17 +666,5 @@ } return 0; } - -int -acpi_register_irq (u32 gsi, u32 polarity, u32 trigger) -{ - if (has_8259 && gsi < 16) - return isa_irq_to_vector(gsi); - - return iosapic_register_intr(gsi, - (polarity == ACPI_ACTIVE_HIGH) ? IOSAPIC_POL_HIGH : IOSAPIC_POL_LOW, - (trigger == ACPI_EDGE_SENSITIVE) ? IOSAPIC_EDGE : IOSAPIC_LEVEL); -} -EXPORT_SYMBOL(acpi_register_irq); #endif /* CONFIG_ACPI_BOOT */ diff -Nru a/arch/ia64/kernel/entry.S b/arch/ia64/kernel/entry.S --- a/arch/ia64/kernel/entry.S 2004-06-28 18:21:54 -07:00 +++ b/arch/ia64/kernel/entry.S 2004-06-28 18:21:54 -07:00 @@ -179,17 +179,19 @@ .body adds r22=IA64_TASK_THREAD_KSP_OFFSET,r13 + movl r25=init_task mov r27=IA64_KR(CURRENT_STACK) + adds r21=IA64_TASK_THREAD_KSP_OFFSET,in0 dep r20=0,in0,61,3 // physical address of "current" ;; st8 [r22]=sp // save kernel stack pointer of old task shr.u r26=r20,IA64_GRANULE_SHIFT - adds r21=IA64_TASK_THREAD_KSP_OFFSET,in0 + cmp.eq p7,p6=r25,in0 ;; /* * If we've already mapped this task's page, we can skip doing it again. */ - cmp.eq p7,p6=r26,r27 +(p6) cmp.eq p7,p6=r26,r27 (p6) br.cond.dpnt .map ;; .done: diff -Nru a/arch/ia64/kernel/head.S b/arch/ia64/kernel/head.S --- a/arch/ia64/kernel/head.S 2004-06-28 18:21:57 -07:00 +++ b/arch/ia64/kernel/head.S 2004-06-28 18:21:57 -07:00 @@ -154,6 +154,10 @@ #endif ;; tpa r3=r2 // r3 == phys addr of task struct + ;; + shr.u r16=r3,IA64_GRANULE_SHIFT +(isBP) br.cond.dpnt .load_current // BP stack is on region 5 --- no need to map it + // load mapping for stack (virtaddr in r2, physaddr in r3) rsm psr.ic movl r17=PAGE_KERNEL @@ -165,7 +169,6 @@ dep r2=-1,r3,61,3 // IMVA of task ;; mov r17=rr[r2] - shr.u r16=r3,IA64_GRANULE_SHIFT ;; dep r17=0,r17,8,24 ;; @@ -180,6 +183,7 @@ srlz.d ;; +.load_current: // load the "current" pointer (r13) and ar.k6 with the current task mov IA64_KR(CURRENT)=r2 // virtual address mov IA64_KR(CURRENT_STACK)=r16 diff -Nru a/arch/ia64/kernel/init_task.c b/arch/ia64/kernel/init_task.c --- a/arch/ia64/kernel/init_task.c 2004-06-28 18:22:00 -07:00 +++ b/arch/ia64/kernel/init_task.c 2004-06-28 18:22:00 -07:00 @@ -11,6 +11,7 @@ #include #include #include +#include #include #include diff -Nru a/arch/ia64/kernel/iosapic.c b/arch/ia64/kernel/iosapic.c --- a/arch/ia64/kernel/iosapic.c 2004-06-28 18:21:56 -07:00 +++ b/arch/ia64/kernel/iosapic.c 2004-06-28 18:21:56 -07:00 @@ -100,7 +100,6 @@ #endif static spinlock_t iosapic_lock = SPIN_LOCK_UNLOCKED; -extern cpumask_t __cacheline_aligned pending_irq_cpumask[NR_IRQS]; /* These tables map IA-64 vectors to the IOSAPIC pin that generates this vector. */ @@ -335,21 +334,6 @@ #endif } -static inline void move_irq(int irq) -{ - /* note - we hold desc->lock */ - cpumask_t tmp; - irq_desc_t *desc = irq_descp(irq); - - if (!cpus_empty(pending_irq_cpumask[irq])) { - cpus_and(tmp, pending_irq_cpumask[irq], cpu_online_map); - if (unlikely(!cpus_empty(tmp))) { - desc->handler->set_affinity(irq, pending_irq_cpumask[irq]); - } - cpus_clear(pending_irq_cpumask[irq]); - } -} - /* * Handlers for level-triggered interrupts. */ @@ -483,7 +467,7 @@ index = find_iosapic(gsi); if (index < 0) { - printk(KERN_WARNING "%s: No IOSAPIC for GSI 0x%x\n", __FUNCTION__, gsi); + printk(KERN_WARNING "%s: No IOSAPIC for GSI %u\n", __FUNCTION__, gsi); return; } @@ -512,6 +496,42 @@ } } +static unsigned int +get_target_cpu (void) +{ +#ifdef CONFIG_SMP + static int cpu = -1; + + /* + * If the platform supports redirection via XTP, let it + * distribute interrupts. + */ + if (smp_int_redirect & SMP_IRQ_REDIRECTION) + return hard_smp_processor_id(); + + /* + * Some interrupts (ACPI SCI, for instance) are registered + * before the BSP is marked as online. + */ + if (!cpu_online(smp_processor_id())) + return hard_smp_processor_id(); + + /* + * Otherwise, round-robin interrupt vectors across all the + * processors. (It'd be nice if we could be smarter in the + * case of NUMA.) + */ + do { + if (++cpu >= NR_CPUS) + cpu = 0; + } while (!cpu_online(cpu)); + + return cpu_physical_id(cpu); +#else + return hard_smp_processor_id(); +#endif +} + /* * ACPI can describe IOSAPIC interrupts via static tables and namespace * methods. This provides an interface to register those interrupts and @@ -522,21 +542,35 @@ unsigned long polarity, unsigned long trigger) { int vector; - unsigned int dest = (ia64_getreg(_IA64_REG_CR_LID) >> 16) & 0xffff; + unsigned int dest; + unsigned long flags; - vector = gsi_to_vector(gsi); - if (vector < 0) - vector = assign_irq_vector(AUTO_ASSIGN); + /* + * If this GSI has already been registered (i.e., it's a + * shared interrupt, or we lost a race to register it), + * don't touch the RTE. + */ + spin_lock_irqsave(&iosapic_lock, flags); + { + vector = gsi_to_vector(gsi); + if (vector > 0) { + spin_unlock_irqrestore(&iosapic_lock, flags); + return vector; + } - register_intr(gsi, vector, IOSAPIC_LOWEST_PRIORITY, - polarity, trigger); + vector = assign_irq_vector(AUTO_ASSIGN); + dest = get_target_cpu(); + register_intr(gsi, vector, IOSAPIC_LOWEST_PRIORITY, + polarity, trigger); + } + spin_unlock_irqrestore(&iosapic_lock, flags); - printk(KERN_INFO "GSI 0x%x(%s,%s) -> CPU 0x%04x vector %d\n", - gsi, (polarity == IOSAPIC_POL_HIGH ? "high" : "low"), - (trigger == IOSAPIC_EDGE ? "edge" : "level"), dest, vector); + printk(KERN_INFO "GSI %u (%s, %s) -> CPU %d (0x%04x) vector %d\n", + gsi, (trigger == IOSAPIC_EDGE ? "edge" : "level"), + (polarity == IOSAPIC_POL_HIGH ? "high" : "low"), + cpu_logical_id(dest), dest, vector); - /* program the IOSAPIC routing table */ - set_rte(vector, dest, 0); + set_rte(vector, dest, 1); return vector; } @@ -549,8 +583,9 @@ int iosapic_vector, u16 eid, u16 id, unsigned long polarity, unsigned long trigger) { + static const char * const name[] = {"unknown", "PMI", "INIT", "CPEI"}; unsigned char delivery; - int vector; + int vector, mask = 0; unsigned int dest = ((id << 8) | eid) & 0xffff; switch (int_type) { @@ -570,21 +605,22 @@ case ACPI_INTERRUPT_CPEI: vector = IA64_CPE_VECTOR; delivery = IOSAPIC_LOWEST_PRIORITY; + mask = 1; break; default: - printk(KERN_ERR "iosapic_register_platform_irq(): invalid int type\n"); + printk(KERN_ERR "iosapic_register_platform_irq(): invalid int type 0x%x\n", int_type); return -1; } - register_intr(gsi, vector, delivery, polarity, - trigger); + register_intr(gsi, vector, delivery, polarity, trigger); - printk(KERN_INFO "PLATFORM int 0x%x: GSI 0x%x(%s,%s) -> CPU 0x%04x vector %d\n", - int_type, gsi, (polarity == IOSAPIC_POL_HIGH ? "high" : "low"), - (trigger == IOSAPIC_EDGE ? "edge" : "level"), dest, vector); + printk(KERN_INFO "PLATFORM int %s (0x%x): GSI %u (%s, %s) -> CPU %d (0x%04x) vector %d\n", + int_type < ARRAY_SIZE(name) ? name[int_type] : "unknown", + int_type, gsi, (trigger == IOSAPIC_EDGE ? "edge" : "level"), + (polarity == IOSAPIC_POL_HIGH ? "high" : "low"), + cpu_logical_id(dest), dest, vector); - /* program the IOSAPIC routing table */ - set_rte(vector, dest, 0); + set_rte(vector, dest, mask); return vector; } @@ -599,18 +635,18 @@ unsigned long trigger) { int vector; - unsigned int dest = (ia64_getreg(_IA64_REG_CR_LID) >> 16) & 0xffff; + unsigned int dest = hard_smp_processor_id(); vector = isa_irq_to_vector(isa_irq); register_intr(gsi, vector, IOSAPIC_LOWEST_PRIORITY, polarity, trigger); - DBG("ISA: IRQ %u -> GSI 0x%x (%s,%s) -> CPU 0x%04x vector %d\n", - isa_irq, gsi, polarity == IOSAPIC_POL_HIGH ? "high" : "low", - trigger == IOSAPIC_EDGE ? "edge" : "level", dest, vector); + DBG("ISA: IRQ %u -> GSI %u (%s,%s) -> CPU %d (0x%04x) vector %d\n", + isa_irq, gsi, trigger == IOSAPIC_EDGE ? "edge" : "level", + polarity == IOSAPIC_POL_HIGH ? "high" : "low", + cpu_logical_id(dest), dest, vector); - /* program the IOSAPIC routing table */ - set_rte(vector, dest, 0); + set_rte(vector, dest, 1); } void __init @@ -665,104 +701,3 @@ iosapic_override_isa_irq(isa_irq, isa_irq, IOSAPIC_POL_HIGH, IOSAPIC_EDGE); } } - -void -iosapic_enable_intr (unsigned int vector) -{ - unsigned int dest; - irq_desc_t *desc; - - /* - * In the case of a shared interrupt, do not re-route the vector, and - * especially do not mask a running interrupt (startup will not get - * called for a shared interrupt). - */ - desc = irq_descp(vector); - if (desc->action) - return; - -#ifdef CONFIG_SMP - /* - * For platforms that do not support interrupt redirect via the XTP interface, we - * can round-robin the PCI device interrupts to the processors - */ - if (!(smp_int_redirect & SMP_IRQ_REDIRECTION)) { - static int cpu_index = -1; - - do - if (++cpu_index >= NR_CPUS) - cpu_index = 0; - while (!cpu_online(cpu_index)); - - dest = cpu_physical_id(cpu_index) & 0xffff; - } else { - /* - * Direct the interrupt vector to the current cpu, platform redirection - * will distribute them. - */ - dest = (ia64_getreg(_IA64_REG_CR_LID) >> 16) & 0xffff; - } -#else - /* direct the interrupt vector to the running cpu id */ - dest = (ia64_getreg(_IA64_REG_CR_LID) >> 16) & 0xffff; -#endif - set_rte(vector, dest, 1); - - printk(KERN_INFO "IOSAPIC: vector %d -> CPU 0x%04x, enabled\n", - vector, dest); -} - -#ifdef CONFIG_ACPI_PCI - -void __init -iosapic_parse_prt (void) -{ - struct acpi_prt_entry *entry; - struct list_head *node; - unsigned int gsi; - int vector; - char pci_id[16]; - struct hw_interrupt_type *irq_type = &irq_type_iosapic_level; - irq_desc_t *idesc; - - list_for_each(node, &acpi_prt.entries) { - entry = list_entry(node, struct acpi_prt_entry, node); - - /* We're only interested in static (non-link) entries. */ - if (entry->link.handle) - continue; - - gsi = entry->link.index; - - vector = gsi_to_vector(gsi); - if (vector < 0) { - if (find_iosapic(gsi) < 0) - continue; - - /* allocate a vector for this interrupt line */ - if (pcat_compat && (gsi < 16)) - vector = isa_irq_to_vector(gsi); - else - /* new GSI; allocate a vector for it */ - vector = assign_irq_vector(AUTO_ASSIGN); - - register_intr(gsi, vector, IOSAPIC_LOWEST_PRIORITY, IOSAPIC_POL_LOW, - IOSAPIC_LEVEL); - } - entry->irq = vector; - snprintf(pci_id, sizeof(pci_id), "%02x:%02x:%02x[%c]", - entry->id.segment, entry->id.bus, entry->id.device, 'A' + entry->pin); - - /* - * If vector was previously initialized to a different - * handler, re-initialize. - */ - idesc = irq_descp(vector); - if (idesc->handler != irq_type) - register_intr(gsi, vector, IOSAPIC_LOWEST_PRIORITY, IOSAPIC_POL_LOW, - IOSAPIC_LEVEL); - - } -} - -#endif /* CONFIG_ACPI */ diff -Nru a/arch/ia64/kernel/irq.c b/arch/ia64/kernel/irq.c --- a/arch/ia64/kernel/irq.c 2004-06-28 18:21:59 -07:00 +++ b/arch/ia64/kernel/irq.c 2004-06-28 18:21:59 -07:00 @@ -607,7 +607,7 @@ action->handler = handler; action->flags = irqflags; - action->mask = 0; + cpus_clear(action->mask); action->name = devname; action->next = NULL; action->dev_id = dev_id; @@ -1017,6 +1017,22 @@ return full_count; } + +void move_irq(int irq) +{ + /* note - we hold desc->lock */ + cpumask_t tmp; + irq_desc_t *desc = irq_descp(irq); + + if (!cpus_empty(pending_irq_cpumask[irq])) { + cpus_and(tmp, pending_irq_cpumask[irq], cpu_online_map); + if (unlikely(!cpus_empty(tmp))) { + desc->handler->set_affinity(irq, pending_irq_cpumask[irq]); + } + cpus_clear(pending_irq_cpumask[irq]); + } +} + #endif /* CONFIG_SMP */ diff -Nru a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c --- a/arch/ia64/kernel/mca.c 2004-06-28 18:21:56 -07:00 +++ b/arch/ia64/kernel/mca.c 2004-06-28 18:21:56 -07:00 @@ -108,6 +108,7 @@ #define MAX_CPE_POLL_INTERVAL (15*60*HZ) /* 15 minutes */ #define MIN_CPE_POLL_INTERVAL (2*60*HZ) /* 2 minutes */ #define CMC_POLL_INTERVAL (1*60*HZ) /* 1 minute */ +#define CPE_HISTORY_LENGTH 5 #define CMC_HISTORY_LENGTH 5 static struct timer_list cpe_poll_timer; @@ -127,6 +128,8 @@ */ static int cpe_poll_enabled = 1; +static int cpe_vector = -1; + extern void salinfo_log_wakeup(int type, u8 *buffer, u64 size, int irqsafe); /* @@ -267,20 +270,65 @@ */ #ifndef PLATFORM_MCA_HANDLERS +#ifdef CONFIG_ACPI + static irqreturn_t ia64_mca_cpe_int_handler (int cpe_irq, void *arg, struct pt_regs *ptregs) { - IA64_MCA_DEBUG("%s: received interrupt. CPU:%d vector = %#x\n", - __FUNCTION__, smp_processor_id(), cpe_irq); + static unsigned long cpe_history[CPE_HISTORY_LENGTH]; + static int index; + static spinlock_t cpe_history_lock = SPIN_LOCK_UNLOCKED; + + IA64_MCA_DEBUG("%s: received interrupt vector = %#x on CPU %d\n", + __FUNCTION__, cpe_irq, smp_processor_id()); /* SAL spec states this should run w/ interrupts enabled */ local_irq_enable(); - /* Get the CMC error record and log it */ + /* Get the CPE error record and log it */ ia64_mca_log_sal_error_record(SAL_INFO_TYPE_CPE); + + spin_lock(&cpe_history_lock); + if (!cpe_poll_enabled && cpe_vector >= 0) { + + int i, count = 1; /* we know 1 happened now */ + unsigned long now = jiffies; + + for (i = 0; i < CPE_HISTORY_LENGTH; i++) { + if (now - cpe_history[i] <= HZ) + count++; + } + + IA64_MCA_DEBUG(KERN_INFO "CPE threshold %d/%d\n", count, CPE_HISTORY_LENGTH); + if (count >= CPE_HISTORY_LENGTH) { + + cpe_poll_enabled = 1; + spin_unlock(&cpe_history_lock); + disable_irq_nosync(local_vector_to_irq(IA64_CPE_VECTOR)); + + /* + * Corrected errors will still be corrected, but + * make sure there's a log somewhere that indicates + * something is generating more than we can handle. + */ + printk(KERN_WARNING "WARNING: Switching to polling CPE handler; error records may be lost\n"); + + mod_timer(&cpe_poll_timer, jiffies + MIN_CPE_POLL_INTERVAL); + + /* lock already released, get out now */ + return IRQ_HANDLED; + } else { + cpe_history[index++] = now; + if (index == CPE_HISTORY_LENGTH) + index = 0; + } + } + spin_unlock(&cpe_history_lock); return IRQ_HANDLED; } +#endif /* CONFIG_ACPI */ + static void show_min_state (pal_min_state_area_t *minstate) { @@ -901,7 +949,7 @@ * handled */ static irqreturn_t -ia64_mca_cmc_int_caller(int cpe_irq, void *arg, struct pt_regs *ptregs) +ia64_mca_cmc_int_caller(int cmc_irq, void *arg, struct pt_regs *ptregs) { static int start_count = -1; unsigned int cpuid; @@ -912,7 +960,7 @@ if (start_count == -1) start_count = IA64_LOG_COUNT(SAL_INFO_TYPE_CMC); - ia64_mca_cmc_int_handler(cpe_irq, arg, ptregs); + ia64_mca_cmc_int_handler(cmc_irq, arg, ptregs); for (++cpuid ; cpuid < NR_CPUS && !cpu_online(cpuid) ; cpuid++); @@ -967,11 +1015,13 @@ * Outputs * handled */ +#ifdef CONFIG_ACPI + static irqreturn_t ia64_mca_cpe_int_caller(int cpe_irq, void *arg, struct pt_regs *ptregs) { static int start_count = -1; - static int poll_time = MAX_CPE_POLL_INTERVAL; + static int poll_time = MIN_CPE_POLL_INTERVAL; unsigned int cpuid; cpuid = smp_processor_id(); @@ -989,20 +1039,30 @@ } else { /* * If a log was recorded, increase our polling frequency, - * otherwise, backoff. + * otherwise, backoff or return to interrupt mode. */ if (start_count != IA64_LOG_COUNT(SAL_INFO_TYPE_CPE)) { poll_time = max(MIN_CPE_POLL_INTERVAL, poll_time / 2); - } else { + } else if (cpe_vector < 0) { poll_time = min(MAX_CPE_POLL_INTERVAL, poll_time * 2); + } else { + poll_time = MIN_CPE_POLL_INTERVAL; + + printk(KERN_WARNING "Returning to interrupt driven CPE handler\n"); + enable_irq(local_vector_to_irq(IA64_CPE_VECTOR)); + cpe_poll_enabled = 0; } + + if (cpe_poll_enabled) + mod_timer(&cpe_poll_timer, jiffies + poll_time); start_count = -1; - mod_timer(&cpe_poll_timer, jiffies + poll_time); } return IRQ_HANDLED; } +#endif /* CONFIG_ACPI */ + /* * ia64_mca_cpe_poll * @@ -1240,21 +1300,23 @@ register_percpu_irq(IA64_MCA_WAKEUP_VECTOR, &mca_wkup_irqaction); #ifdef CONFIG_ACPI - /* Setup the CPE interrupt vector */ + /* Setup the CPEI/P vector and handler */ { irq_desc_t *desc; unsigned int irq; - int cpev = acpi_request_vector(ACPI_INTERRUPT_CPEI); - if (cpev >= 0) { + cpe_vector = acpi_request_vector(ACPI_INTERRUPT_CPEI); + + if (cpe_vector >= 0) { for (irq = 0; irq < NR_IRQS; ++irq) - if (irq_to_vector(irq) == cpev) { + if (irq_to_vector(irq) == cpe_vector) { desc = irq_descp(irq); desc->status |= IRQ_PER_CPU; setup_irq(irq, &mca_cpe_irqaction); } - ia64_mca_register_cpev(cpev); + ia64_mca_register_cpev(cpe_vector); } + register_percpu_irq(IA64_CPEP_VECTOR, &mca_cpep_irqaction); } #endif @@ -1294,9 +1356,10 @@ #ifdef CONFIG_ACPI /* If platform doesn't support CPEI, get the timer going. */ - if (acpi_request_vector(ACPI_INTERRUPT_CPEI) < 0 && cpe_poll_enabled) { - register_percpu_irq(IA64_CPEP_VECTOR, &mca_cpep_irqaction); + if (cpe_vector < 0 && cpe_poll_enabled) { ia64_mca_cpe_poll(0UL); + } else { + cpe_poll_enabled = 0; } #endif diff -Nru a/arch/ia64/kernel/palinfo.c b/arch/ia64/kernel/palinfo.c --- a/arch/ia64/kernel/palinfo.c 2004-06-28 18:21:52 -07:00 +++ b/arch/ia64/kernel/palinfo.c 2004-06-28 18:21:52 -07:00 @@ -515,10 +515,10 @@ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - "Enable Cache Line Repl. Exclusive", "Enable Cache Line Repl. Shared", + "Enable Cache Line Repl. Exclusive", "Disable Transaction Queuing", - "Disable Reponse Error Checking", + "Disable Response Error Checking", "Disable Bus Error Checking", "Disable Bus Requester Internal Error Signalling", "Disable Bus Requester Error Signalling", diff -Nru a/arch/ia64/kernel/perfmon.c b/arch/ia64/kernel/perfmon.c --- a/arch/ia64/kernel/perfmon.c 2004-06-28 18:21:59 -07:00 +++ b/arch/ia64/kernel/perfmon.c 2004-06-28 18:21:59 -07:00 @@ -311,6 +311,7 @@ unsigned int ctx_cpu; /* cpu to which perfmon is applied (system wide) */ int ctx_fd; /* file descriptor used my this context */ + pfm_ovfl_arg_t ctx_ovfl_arg; /* argument to custom buffer format handler */ pfm_buffer_fmt_t *ctx_buf_fmt; /* buffer format callbacks */ void *ctx_smpl_hdr; /* points to sampling buffer header kernel vaddr */ @@ -4584,31 +4585,6 @@ return 0; } -static void -pfm_force_cleanup(pfm_context_t *ctx, struct pt_regs *regs) -{ - struct task_struct *task = ctx->ctx_task; - - ia64_psr(regs)->up = 0; - ia64_psr(regs)->sp = 1; - - if (GET_PMU_OWNER() == task) { - DPRINT(("cleared ownership for [%d]\n", ctx->ctx_task->pid)); - SET_PMU_OWNER(NULL, NULL); - } - - /* - * disconnect the task from the context and vice-versa - */ - PFM_SET_WORK_PENDING(task, 0); - - task->thread.pfm_context = NULL; - task->thread.flags &= ~IA64_THREAD_PM_VALID; - - DPRINT(("force cleanupf for [%d]\n", task->pid)); -} - - /* * called only from exit_thread(): task == current @@ -5185,7 +5161,7 @@ static void pfm_overflow_handler(struct task_struct *task, pfm_context_t *ctx, u64 pmc0, struct pt_regs *regs) { - pfm_ovfl_arg_t ovfl_arg; + pfm_ovfl_arg_t *ovfl_arg; unsigned long mask; unsigned long old_val, ovfl_val, new_val; unsigned long ovfl_notify = 0UL, ovfl_pmds = 0UL, smpl_pmds = 0UL, reset_pmds; @@ -5272,7 +5248,8 @@ int j, k, ret = 0; int this_cpu = smp_processor_id(); - pmd_mask = ovfl_pmds >> PMU_FIRST_COUNTER; + pmd_mask = ovfl_pmds >> PMU_FIRST_COUNTER; + ovfl_arg = &ctx->ctx_ovfl_arg; prefetch(ctx->ctx_smpl_hdr); @@ -5282,15 +5259,15 @@ if ((pmd_mask & 0x1) == 0) continue; - ovfl_arg.ovfl_pmd = (unsigned char )i; - ovfl_arg.ovfl_notify = ovfl_notify & mask ? 1 : 0; - ovfl_arg.active_set = 0; - ovfl_arg.ovfl_ctrl.val = 0; /* module must fill in all fields */ - ovfl_arg.smpl_pmds[0] = smpl_pmds = ctx->ctx_pmds[i].smpl_pmds[0]; - - ovfl_arg.pmd_value = ctx->ctx_pmds[i].val; - ovfl_arg.pmd_last_reset = ctx->ctx_pmds[i].lval; - ovfl_arg.pmd_eventid = ctx->ctx_pmds[i].eventid; + ovfl_arg->ovfl_pmd = (unsigned char )i; + ovfl_arg->ovfl_notify = ovfl_notify & mask ? 1 : 0; + ovfl_arg->active_set = 0; + ovfl_arg->ovfl_ctrl.val = 0; /* module must fill in all fields */ + ovfl_arg->smpl_pmds[0] = smpl_pmds = ctx->ctx_pmds[i].smpl_pmds[0]; + + ovfl_arg->pmd_value = ctx->ctx_pmds[i].val; + ovfl_arg->pmd_last_reset = ctx->ctx_pmds[i].lval; + ovfl_arg->pmd_eventid = ctx->ctx_pmds[i].eventid; /* * copy values of pmds of interest. Sampling format may copy them @@ -5299,8 +5276,8 @@ if (smpl_pmds) { for(j=0, k=0; smpl_pmds; j++, smpl_pmds >>=1) { if ((smpl_pmds & 0x1) == 0) continue; - ovfl_arg.smpl_pmds_values[k++] = PMD_IS_COUNTING(j) ? pfm_read_soft_counter(ctx, j) : ia64_get_pmd(j); - DPRINT_ovfl(("smpl_pmd[%d]=pmd%u=0x%lx\n", k-1, j, ovfl_arg.smpl_pmds_values[k-1])); + ovfl_arg->smpl_pmds_values[k++] = PMD_IS_COUNTING(j) ? pfm_read_soft_counter(ctx, j) : ia64_get_pmd(j); + DPRINT_ovfl(("smpl_pmd[%d]=pmd%u=0x%lx\n", k-1, j, ovfl_arg->smpl_pmds_values[k-1])); } } @@ -5311,7 +5288,7 @@ /* * call custom buffer format record (handler) routine */ - ret = (*ctx->ctx_buf_fmt->fmt_handler)(task, ctx->ctx_smpl_hdr, &ovfl_arg, regs, tstamp); + ret = (*ctx->ctx_buf_fmt->fmt_handler)(task, ctx->ctx_smpl_hdr, ovfl_arg, regs, tstamp); end_cycles = ia64_get_itc(); @@ -5319,13 +5296,13 @@ * For those controls, we take the union because they have * an all or nothing behavior. */ - ovfl_ctrl.bits.notify_user |= ovfl_arg.ovfl_ctrl.bits.notify_user; - ovfl_ctrl.bits.block_task |= ovfl_arg.ovfl_ctrl.bits.block_task; - ovfl_ctrl.bits.mask_monitoring |= ovfl_arg.ovfl_ctrl.bits.mask_monitoring; + ovfl_ctrl.bits.notify_user |= ovfl_arg->ovfl_ctrl.bits.notify_user; + ovfl_ctrl.bits.block_task |= ovfl_arg->ovfl_ctrl.bits.block_task; + ovfl_ctrl.bits.mask_monitoring |= ovfl_arg->ovfl_ctrl.bits.mask_monitoring; /* * build the bitmask of pmds to reset now */ - if (ovfl_arg.ovfl_ctrl.bits.reset_ovfl_pmds) reset_pmds |= mask; + if (ovfl_arg->ovfl_ctrl.bits.reset_ovfl_pmds) reset_pmds |= mask; pfm_stats[this_cpu].pfm_smpl_handler_cycles += end_cycles - start_cycles; } @@ -5793,6 +5770,32 @@ } #ifdef CONFIG_SMP + +static void +pfm_force_cleanup(pfm_context_t *ctx, struct pt_regs *regs) +{ + struct task_struct *task = ctx->ctx_task; + + ia64_psr(regs)->up = 0; + ia64_psr(regs)->sp = 1; + + if (GET_PMU_OWNER() == task) { + DPRINT(("cleared ownership for [%d]\n", ctx->ctx_task->pid)); + SET_PMU_OWNER(NULL, NULL); + } + + /* + * disconnect the task from the context and vice-versa + */ + PFM_SET_WORK_PENDING(task, 0); + + task->thread.pfm_context = NULL; + task->thread.flags &= ~IA64_THREAD_PM_VALID; + + DPRINT(("force cleanup for [%d]\n", task->pid)); +} + + /* * in 2.6, interrupts are masked when we come here and the runqueue lock is held */ diff -Nru a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c --- a/arch/ia64/kernel/process.c 2004-06-28 18:21:56 -07:00 +++ b/arch/ia64/kernel/process.c 2004-06-28 18:21:56 -07:00 @@ -439,6 +439,10 @@ ia32_save_state(p); if (clone_flags & CLONE_SETTLS) retval = ia32_clone_tls(p, child_ptregs); + + /* Copy partially mapped page list */ + if (!retval) + retval = ia32_copy_partial_page_list(p, clone_flags); } #endif @@ -672,6 +676,8 @@ /* drop floating-point and debug-register state if it exists: */ current->thread.flags &= ~(IA64_THREAD_FPH_VALID | IA64_THREAD_DBG_VALID); ia64_drop_fpu(current); + if (IS_IA32_PROCESS(ia64_task_regs(current))) + ia32_drop_partial_page_list(current); } /* @@ -691,6 +697,8 @@ if (current->thread.flags & IA64_THREAD_DBG_VALID) pfm_release_debug_registers(current); #endif + if (IS_IA32_PROCESS(ia64_task_regs(current))) + ia32_drop_partial_page_list(current); } unsigned long diff -Nru a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c --- a/arch/ia64/kernel/setup.c 2004-06-28 18:21:54 -07:00 +++ b/arch/ia64/kernel/setup.c 2004-06-28 18:21:54 -07:00 @@ -47,6 +47,7 @@ #include #include #include +#include #include #include #include @@ -88,10 +89,6 @@ unsigned long ia64_max_iommu_merge_mask = ~0UL; EXPORT_SYMBOL(ia64_max_iommu_merge_mask); -#define COMMAND_LINE_SIZE 512 - -char saved_command_line[COMMAND_LINE_SIZE]; /* used in proc filesystem */ - /* * We use a special marker for the end of memory and it uses the extra (+1) slot */ @@ -288,7 +285,7 @@ ia64_patch_vtop((u64) __start___vtop_patchlist, (u64) __end___vtop_patchlist); *cmdline_p = __va(ia64_boot_param->command_line); - strlcpy(saved_command_line, *cmdline_p, sizeof(saved_command_line)); + strlcpy(saved_command_line, *cmdline_p, COMMAND_LINE_SIZE); efi_init(); io_port_init(); @@ -323,31 +320,30 @@ #ifdef CONFIG_ACPI_BOOT acpi_boot_init(); #endif -#ifdef CONFIG_SERIAL_8250_CONSOLE -#ifdef CONFIG_SERIAL_8250_HCDP - if (efi.hcdp) { - void setup_serial_hcdp(void *); - setup_serial_hcdp(efi.hcdp); - } +#ifdef CONFIG_EFI_PCDP + efi_setup_pcdp_console(*cmdline_p); #endif +#ifdef CONFIG_SERIAL_8250_CONSOLE if (!efi.hcdp) setup_serial_legacy(); #endif #ifdef CONFIG_VT + if (!conswitchp) { # if defined(CONFIG_DUMMY_CONSOLE) - conswitchp = &dummy_con; + conswitchp = &dummy_con; # endif # if defined(CONFIG_VGA_CONSOLE) - /* - * Non-legacy systems may route legacy VGA MMIO range to system - * memory. vga_con probes the MMIO hole, so memory looks like - * a VGA device to it. The EFI memory map can tell us if it's - * memory so we can avoid this problem. - */ - if (efi_mem_type(0xA0000) != EFI_CONVENTIONAL_MEMORY) - conswitchp = &vga_con; + /* + * Non-legacy systems may route legacy VGA MMIO range to system + * memory. vga_con probes the MMIO hole, so memory looks like + * a VGA device to it. The EFI memory map can tell us if it's + * memory so we can avoid this problem. + */ + if (efi_mem_type(0xA0000) != EFI_CONVENTIONAL_MEMORY) + conswitchp = &vga_con; # endif + } #endif /* enable IA-64 Machine Check Abort Handling */ diff -Nru a/arch/ia64/kernel/unwind.c b/arch/ia64/kernel/unwind.c --- a/arch/ia64/kernel/unwind.c 2004-06-28 18:22:00 -07:00 +++ b/arch/ia64/kernel/unwind.c 2004-06-28 18:22:00 -07:00 @@ -385,9 +385,10 @@ } if (write) { - if (read_only(addr)) - UNW_DPRINT(0, "unwind.%s: ignoring attempt to write read-only location\n"); - else { + if (read_only(addr)) { + UNW_DPRINT(0, "unwind.%s: ignoring attempt to write read-only location\n", + __FUNCTION__); + } else { *addr = *val; if (*nat) *nat_addr |= nat_mask; @@ -432,9 +433,10 @@ return -1; } if (write) - if (read_only(addr)) - UNW_DPRINT(0, "unwind.%s: ignoring attempt to write read-only location\n"); - else + if (read_only(addr)) { + UNW_DPRINT(0, "unwind.%s: ignoring attempt to write read-only location\n", + __FUNCTION__); + } else *addr = *val; else *val = *addr; @@ -480,9 +482,10 @@ } if (write) - if (read_only(addr)) - UNW_DPRINT(0, "unwind.%s: ignoring attempt to write read-only location\n"); - else + if (read_only(addr)) { + UNW_DPRINT(0, "unwind.%s: ignoring attempt to write read-only location\n", + __FUNCTION__); + } else *addr = *val; else *val = *addr; @@ -576,9 +579,10 @@ } if (write) { - if (read_only(addr)) - UNW_DPRINT(0, "unwind.%s: ignoring attempt to write read-only location\n"); - else + if (read_only(addr)) { + UNW_DPRINT(0, "unwind.%s: ignoring attempt to write read-only location\n", + __FUNCTION__); + } else *addr = *val; } else *val = *addr; @@ -596,9 +600,10 @@ addr = &info->sw->pr; if (write) { - if (read_only(addr)) - UNW_DPRINT(0, "unwind.%s: ignoring attempt to write read-only location\n"); - else + if (read_only(addr)) { + UNW_DPRINT(0, "unwind.%s: ignoring attempt to write read-only location\n", + __FUNCTION__); + } else *addr = *val; } else *val = *addr; diff -Nru a/arch/ia64/mm/contig.c b/arch/ia64/mm/contig.c --- a/arch/ia64/mm/contig.c 2004-06-28 18:21:55 -07:00 +++ b/arch/ia64/mm/contig.c 2004-06-28 18:21:55 -07:00 @@ -43,7 +43,7 @@ printk("Mem-info:\n"); show_free_areas(); - printk("Free swap: %6dkB\n", nr_swap_pages<<(PAGE_SHIFT-10)); + printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10)); i = max_mapnr; while (i-- > 0) { if (!pfn_valid(i)) diff -Nru a/arch/ia64/mm/discontig.c b/arch/ia64/mm/discontig.c --- a/arch/ia64/mm/discontig.c 2004-06-28 18:21:58 -07:00 +++ b/arch/ia64/mm/discontig.c 2004-06-28 18:21:58 -07:00 @@ -154,6 +154,9 @@ memcpy(numa_slit, numa_slit_fix, sizeof (numa_slit)); + for (i = nnode; i < numnodes; i++) + node_set_offline(i); + numnodes = nnode; return; @@ -495,7 +498,7 @@ printk("Mem-info:\n"); show_free_areas(); - printk("Free swap: %6dkB\n", nr_swap_pages<<(PAGE_SHIFT-10)); + printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10)); for_each_pgdat(pgdat) { printk("Node ID: %d\n", pgdat->node_id); for(i = 0; i < pgdat->node_spanned_pages; i++) { diff -Nru a/arch/ia64/mm/hugetlbpage.c b/arch/ia64/mm/hugetlbpage.c --- a/arch/ia64/mm/hugetlbpage.c 2004-06-28 18:21:56 -07:00 +++ b/arch/ia64/mm/hugetlbpage.c 2004-06-28 18:21:56 -07:00 @@ -297,7 +297,7 @@ unlock_page(page); } else { hugetlb_put_quota(mapping); - free_huge_page(page); + page_cache_release(page); goto out; } } diff -Nru a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c --- a/arch/ia64/pci/pci.c 2004-06-28 18:21:56 -07:00 +++ b/arch/ia64/pci/pci.c 2004-06-28 18:21:56 -07:00 @@ -134,10 +134,18 @@ static int __init pci_acpi_init (void) { - if (!acpi_pci_irq_init()) - printk(KERN_INFO "PCI: Using ACPI for IRQ routing\n"); - else - printk(KERN_WARNING "PCI: Invalid ACPI-PCI IRQ routing table\n"); + struct pci_dev *dev = NULL; + + printk(KERN_INFO "PCI: Using ACPI for IRQ routing\n"); + + /* + * PCI IRQ routing is set up by pci_enable_device(), but we + * also do it here in case there are still broken drivers that + * don't use pci_enable_device(). + */ + while ((dev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) + acpi_pci_irq_enable(dev); + return 0; } diff -Nru a/arch/ia64/sn/io/machvec/pci_bus_cvlink.c b/arch/ia64/sn/io/machvec/pci_bus_cvlink.c --- a/arch/ia64/sn/io/machvec/pci_bus_cvlink.c 2004-06-28 18:21:58 -07:00 +++ b/arch/ia64/sn/io/machvec/pci_bus_cvlink.c 2004-06-28 18:21:58 -07:00 @@ -741,7 +741,7 @@ /* Is this PCI bus associated with this moduleid? */ moduleid = NODE_MODULEID( nasid_to_cnodeid(pcibr_soft->bs_nasid)); - if (modules[i]->id == moduleid) { + if (sn_modules[i]->id == moduleid) { struct pcibr_list_s *new_element; new_element = kmalloc(sizeof (struct pcibr_soft_s), GFP_KERNEL); @@ -781,7 +781,7 @@ /* * We now have a list of all the pci bridges associated with - * the module_id, modules[i]. Call pci_bus_map_create() for + * the module_id, sn_modules[i]. Call pci_bus_map_create() for * each pci bridge */ softlistp = first_in_list; diff -Nru a/arch/ia64/sn/io/sn2/klgraph.c b/arch/ia64/sn/io/sn2/klgraph.c --- a/arch/ia64/sn/io/sn2/klgraph.c 2004-06-28 18:21:57 -07:00 +++ b/arch/ia64/sn/io/sn2/klgraph.c 2004-06-28 18:21:57 -07:00 @@ -527,7 +527,7 @@ /* Use module as module vertex fastinfo */ memset(buffer, 0, 16); - format_module_id(buffer, modules[cm]->id, MODULE_FORMAT_BRIEF); + format_module_id(buffer, sn_modules[cm]->id, MODULE_FORMAT_BRIEF); sprintf(name, EDGE_LBL_MODULE "/%s", buffer); rc = hwgraph_path_add(hwgraph_root, name, &module_vhdl); @@ -535,7 +535,7 @@ rc = rc; HWGRAPH_DEBUG(__FILE__, __FUNCTION__, __LINE__, module_vhdl, NULL, "Created module path.\n"); - hwgraph_fastinfo_set(module_vhdl, (arbitrary_info_t) modules[cm]); + hwgraph_fastinfo_set(module_vhdl, (arbitrary_info_t) sn_modules[cm]); /* Add system controller */ sprintf(name, diff -Nru a/arch/ia64/sn/io/sn2/ml_iograph.c b/arch/ia64/sn/io/sn2/ml_iograph.c --- a/arch/ia64/sn/io/sn2/ml_iograph.c 2004-06-28 18:21:52 -07:00 +++ b/arch/ia64/sn/io/sn2/ml_iograph.c 2004-06-28 18:21:52 -07:00 @@ -518,6 +518,14 @@ ASSERT(hubv != GRAPH_VERTEX_NONE); /* + * attach our hub_provider information to hubv, + * so we can use it as a crosstalk provider "master" + * vertex. + */ + xtalk_provider_register(hubv, &hub_provider); + xtalk_provider_startup(hubv); + + /* * If nothing connected to this hub's xtalk port, we're done. */ early_probe_for_widget(hubv, &hwid); @@ -526,14 +534,6 @@ return; /* NOTREACHED */ } - - /* - * attach our hub_provider information to hubv, - * so we can use it as a crosstalk provider "master" - * vertex. - */ - xtalk_provider_register(hubv, &hub_provider); - xtalk_provider_startup(hubv); /* * Create a vertex to represent the crosstalk bus diff -Nru a/arch/ia64/sn/io/sn2/module.c b/arch/ia64/sn/io/sn2/module.c --- a/arch/ia64/sn/io/sn2/module.c 2004-06-28 18:21:52 -07:00 +++ b/arch/ia64/sn/io/sn2/module.c 2004-06-28 18:21:52 -07:00 @@ -33,7 +33,7 @@ #define DPRINTF(x...) #endif -module_t *modules[MODULE_MAX]; +module_t *sn_modules[MODULE_MAX]; int nummodules; #define SN00_SERIAL_FUDGE 0x3b1af409d513c2 @@ -59,9 +59,9 @@ int i; for (i = 0; i < nummodules; i++) - if (modules[i]->id == id) { - DPRINTF("module_lookup: found m=0x%p\n", modules[i]); - return modules[i]; + if (sn_modules[i]->id == id) { + DPRINTF("module_lookup: found m=0x%p\n", sn_modules[i]); + return sn_modules[i]; } return NULL; @@ -104,10 +104,10 @@ /* Insert in sorted order by module number */ - for (i = nummodules; i > 0 && modules[i - 1]->id > moduleid; i--) - modules[i] = modules[i - 1]; + for (i = nummodules; i > 0 && sn_modules[i - 1]->id > moduleid; i--) + sn_modules[i] = sn_modules[i - 1]; - modules[i] = m; + sn_modules[i] = m; nummodules++; } diff -Nru a/arch/ia64/sn/kernel/irq.c b/arch/ia64/sn/kernel/irq.c --- a/arch/ia64/sn/kernel/irq.c 2004-06-28 18:21:54 -07:00 +++ b/arch/ia64/sn/kernel/irq.c 2004-06-28 18:21:54 -07:00 @@ -41,6 +41,7 @@ extern void pcibr_force_interrupt(pcibr_intr_t intr); extern int sn_force_interrupt_flag; struct irq_desc * sn_irq_desc(unsigned int irq); +extern cpumask_t __cacheline_aligned pending_irq_cpumask[NR_IRQS]; struct sn_intr_list_t { struct sn_intr_list_t *next; @@ -71,6 +72,21 @@ { } +static inline void move_irq(int irq) +{ + /* note - we hold desc->lock */ + cpumask_t tmp; + irq_desc_t *desc = irq_descp(irq); + + if (!cpus_empty(pending_irq_cpumask[irq])) { + cpus_and(tmp, pending_irq_cpumask[irq], cpu_online_map); + if (unlikely(!cpus_empty(tmp))) { + desc->handler->set_affinity(irq, pending_irq_cpumask[irq]); + } + cpus_clear(pending_irq_cpumask[irq]); + } +} + static void sn_ack_irq(unsigned int irq) { @@ -94,6 +110,7 @@ } HUB_S((unsigned long *)GLOBAL_MMR_ADDR(nasid, SH_EVENT_OCCURRED_ALIAS), mask ); __set_bit(irq, (volatile void *)pda->sn_in_service_ivecs); + move_irq(irq); } static void diff -Nru a/arch/ia64/sn/kernel/setup.c b/arch/ia64/sn/kernel/setup.c --- a/arch/ia64/sn/kernel/setup.c 2004-06-28 18:21:54 -07:00 +++ b/arch/ia64/sn/kernel/setup.c 2004-06-28 18:21:54 -07:00 @@ -226,7 +226,25 @@ shub_1_1_found = 1; } - +/** + * sn_set_error_handling_features - Tell the SN prom how to handle certain + * error types. + */ +static void __init +sn_set_error_handling_features(void) +{ + u64 ret; + u64 sn_ehf_bits[7]; /* see ia64_sn_set_error_handling_features */ + memset(sn_ehf_bits, 0, sizeof(sn_ehf_bits)); +#define EHF(x) __set_bit(SN_SAL_EHF_ ## x, sn_ehf_bits) + EHF(MCA_SLV_TO_OS_INIT_SLV); + EHF(NO_RZ_TLBC); + // Uncomment once Jesse's code goes in - EHF(NO_RZ_IO_READ); +#undef EHF + ret = ia64_sn_set_error_handling_features(sn_ehf_bits); + if (ret) + printk(KERN_ERR "%s: failed, return code %ld\n", __FUNCTION__, ret); +} /** * sn_setup - SN platform setup routine @@ -317,6 +335,9 @@ printk(KERN_DEBUG "sn_setup: setting master_node_bedrock_address to 0x%lx\n", master_node_bedrock_address); } + + /* Tell the prom how to handle certain error types */ + sn_set_error_handling_features(); /* * we set the default root device to /dev/hda diff -Nru a/arch/m68k/Makefile b/arch/m68k/Makefile --- a/arch/m68k/Makefile 2004-06-28 18:21:59 -07:00 +++ b/arch/m68k/Makefile 2004-06-28 18:21:59 -07:00 @@ -28,6 +28,8 @@ LDFLAGS_vmlinux = -N endif +CHECK := $(CHECK) -D__mc68000__=1 -I$(shell $(CC) -print-file-name=include) + # without -fno-strength-reduce the 53c7xx.c driver fails ;-( CFLAGS += -pipe -fno-strength-reduce -ffixed-a2 diff -Nru a/arch/m68k/atari/stram.c b/arch/m68k/atari/stram.c --- a/arch/m68k/atari/stram.c 2004-06-28 18:21:58 -07:00 +++ b/arch/m68k/atari/stram.c 2004-06-28 18:21:58 -07:00 @@ -743,7 +743,7 @@ if (map[i]) { entry = swp_entry(stram_swap_type, i); - DPRINTK("unswap: map[i=%lu]=%u nr_swap=%u\n", + DPRINTK("unswap: map[i=%lu]=%u nr_swap=%ld\n", i, map[i], nr_swap_pages); swap_device_lock(stram_swap_info); @@ -772,7 +772,7 @@ #endif } - DPRINTK( "unswap: map[i=%lu]=%u nr_swap=%u\n", + DPRINTK( "unswap: map[i=%lu]=%u nr_swap=%ld\n", i, map[i], nr_swap_pages ); swap_list_lock(); swap_device_lock(stram_swap_info); diff -Nru a/arch/m68k/ifpsp060/iskeleton.S b/arch/m68k/ifpsp060/iskeleton.S --- a/arch/m68k/ifpsp060/iskeleton.S 2004-06-28 18:21:53 -07:00 +++ b/arch/m68k/ifpsp060/iskeleton.S 2004-06-28 18:21:53 -07:00 @@ -196,14 +196,57 @@ | Expected outputs: | d0 = 0 -> success; non-zero -> failure | -| Linux/68k: As long as ints are disabled, no swapping out should -| occur (hopefully...) +| Linux/m68k: Make sure the page is properly paged in, so we use +| plpaw and handle any exception here. The kernel must not be +| preempted until _060_unlock_page(), so that the page stays mapped. | .global _060_real_lock_page _060_real_lock_page: - clr.l %d0 + move.l %d2,-(%sp) + | load sfc/dfc + moveq #5,%d0 + tst.b %d0 + jne 1f + moveq #1,%d0 +1: movec.l %dfc,%d2 + movec.l %d0,%dfc + movec.l %d0,%sfc + + clr.l %d0 + | prefetch address + .chip 68060 + move.l %a0,%a1 +1: plpaw (%a1) + addq.w #1,%a0 + tst.b %d1 + jeq 2f + addq.w #2,%a0 +2: plpaw (%a0) +3: .chip 68k + + | restore sfc/dfc + movec.l %d2,%dfc + movec.l %d2,%sfc + move.l (%sp)+,%d2 rts +.section __ex_table,"a" + .align 4 + .long 1b,11f + .long 2b,21f +.previous +.section .fixup,"ax" + .even +11: move.l #0x020003c0,%d0 + or.l %d2,%d0 + swap %d0 + jra 3b +21: move.l #0x02000bc0,%d0 + or.l %d2,%d0 + swap %d0 + jra 3b +.previous + | | _060_unlock_page(): | @@ -216,8 +259,7 @@ | d0 = `xxxxxxff -> supervisor; `xxxxxx00 -> user | d1 = `xxxxxxff -> longword; `xxxxxx00 -> word | -| Linux/68k: As we do no special locking operation, also no unlocking -| is needed... +| Linux/m68k: perhaps reenable preemption here... .global _060_real_unlock_page _060_real_unlock_page: diff -Nru a/arch/m68k/kernel/process.c b/arch/m68k/kernel/process.c --- a/arch/m68k/kernel/process.c 2004-06-28 18:22:00 -07:00 +++ b/arch/m68k/kernel/process.c 2004-06-28 18:22:00 -07:00 @@ -26,6 +26,7 @@ #include #include #include +#include #include #include diff -Nru a/arch/m68k/kernel/setup.c b/arch/m68k/kernel/setup.c --- a/arch/m68k/kernel/setup.c 2004-06-28 18:21:59 -07:00 +++ b/arch/m68k/kernel/setup.c 2004-06-28 18:21:59 -07:00 @@ -62,7 +62,6 @@ static struct mem_info m68k_ramdisk; static char m68k_command_line[CL_SIZE]; -char saved_command_line[CL_SIZE]; char m68k_debug_device[6] = ""; diff -Nru a/arch/m68k/kernel/signal.c b/arch/m68k/kernel/signal.c --- a/arch/m68k/kernel/signal.c 2004-06-28 18:21:58 -07:00 +++ b/arch/m68k/kernel/signal.c 2004-06-28 18:21:58 -07:00 @@ -228,8 +228,8 @@ goto out; __asm__ volatile (".chip 68k/68881\n\t" - "fmovemx %0,%/fp0-%/fp1\n\t" - "fmoveml %1,%/fpcr/%/fpsr/%/fpiar\n\t" + "fmovemx %0,%%fp0-%%fp1\n\t" + "fmoveml %1,%%fpcr/%%fpsr/%%fpiar\n\t" ".chip 68k" : /* no outputs */ : "m" (*sc->sc_fpregs), "m" (*sc->sc_fpcntl)); @@ -258,7 +258,7 @@ if (FPU_IS_EMU) { /* restore fpu control register */ if (__copy_from_user(current->thread.fpcntl, - &uc->uc_mcontext.fpregs.f_pcr, 12)) + uc->uc_mcontext.fpregs.f_fpcntl, 12)) goto out; /* restore all other fpu register */ if (__copy_from_user(current->thread.fp, @@ -298,12 +298,12 @@ sizeof(fpregs))) goto out; __asm__ volatile (".chip 68k/68881\n\t" - "fmovemx %0,%/fp0-%/fp7\n\t" - "fmoveml %1,%/fpcr/%/fpsr/%/fpiar\n\t" + "fmovemx %0,%%fp0-%%fp7\n\t" + "fmoveml %1,%%fpcr/%%fpsr/%%fpiar\n\t" ".chip 68k" : /* no outputs */ : "m" (*fpregs.f_fpregs), - "m" (fpregs.f_pcr)); + "m" (*fpregs.f_fpcntl)); } if (context_size && __copy_from_user(fpstate + 4, (long *)&uc->uc_fpstate + 1, @@ -586,12 +586,12 @@ sc->sc_fpstate[0x38] |= 1 << 3; } __asm__ volatile (".chip 68k/68881\n\t" - "fmovemx %/fp0-%/fp1,%0\n\t" - "fmoveml %/fpcr/%/fpsr/%/fpiar,%1\n\t" + "fmovemx %%fp0-%%fp1,%0\n\t" + "fmoveml %%fpcr/%%fpsr/%%fpiar,%1\n\t" ".chip 68k" - : /* no outputs */ - : "m" (*sc->sc_fpregs), - "m" (*sc->sc_fpcntl) + : "=m" (*sc->sc_fpregs), + "=m" (*sc->sc_fpcntl) + : /* no inputs */ : "memory"); } } @@ -604,7 +604,7 @@ if (FPU_IS_EMU) { /* save fpu control register */ - err |= copy_to_user(&uc->uc_mcontext.fpregs.f_pcr, + err |= copy_to_user(uc->uc_mcontext.fpregs.f_fpcntl, current->thread.fpcntl, 12); /* save all other fpu register */ err |= copy_to_user(uc->uc_mcontext.fpregs.f_fpregs, @@ -631,12 +631,12 @@ fpstate[0x38] |= 1 << 3; } __asm__ volatile (".chip 68k/68881\n\t" - "fmovemx %/fp0-%/fp7,%0\n\t" - "fmoveml %/fpcr/%/fpsr/%/fpiar,%1\n\t" + "fmovemx %%fp0-%%fp7,%0\n\t" + "fmoveml %%fpcr/%%fpsr/%%fpiar,%1\n\t" ".chip 68k" - : /* no outputs */ - : "m" (*fpregs.f_fpregs), - "m" (fpregs.f_pcr) + : "=m" (*fpregs.f_fpregs), + "=m" (*fpregs.f_fpcntl) + : /* no inputs */ : "memory"); err |= copy_to_user(&uc->uc_mcontext.fpregs, &fpregs, sizeof(fpregs)); diff -Nru a/arch/m68k/kernel/traps.c b/arch/m68k/kernel/traps.c --- a/arch/m68k/kernel/traps.c 2004-06-28 18:22:00 -07:00 +++ b/arch/m68k/kernel/traps.c 2004-06-28 18:22:00 -07:00 @@ -329,7 +329,8 @@ * fault during mem_read/mem_write in ifpsp060/os.S */ send_fault_sig(&fp->ptregs); - } else { + } else if (!(fslw & (MMU060_RE|MMU060_WE)) || + send_fault_sig(&fp->ptregs) > 0) { printk("pc=%#lx, fa=%#lx\n", fp->ptregs.pc, fp->un.fmt4.effaddr); printk( "68060 access error, fslw=%lx\n", fslw ); trap_c( fp ); @@ -517,7 +518,7 @@ if (fp->un.fmt7.wb2a == fp->un.fmt7.faddr) fp->un.fmt7.wb2s &= ~WBV_040; } - } else { + } else if (send_fault_sig(&fp->ptregs) > 0) { printk("68040 access error, ssw=%x\n", ssw); trap_c(fp); } @@ -732,7 +733,7 @@ return; } else if (!(mmusr & MMU_I)) { /* probably a 020 cas fault */ - if (!(ssw & RM)) + if (!(ssw & RM) && send_fault_sig(&fp->ptregs) > 0) printk("unexpected bus error (%#x,%#x)\n", ssw, mmusr); } else if (mmusr & (MMU_B|MMU_L|MMU_S)) { printk("invalid %s access at %#lx from pc %#lx\n", @@ -910,7 +911,7 @@ * down the cause of the crash will be able to figure * out the call path that was taken. */ - if (kernel_text_address(addr)) { + if (__kernel_text_address(addr)) { #ifndef CONFIG_KALLSYMS if (i % 5 == 0) printk("\n "); diff -Nru a/arch/m68k/mac/iop.c b/arch/m68k/mac/iop.c --- a/arch/m68k/mac/iop.c 2004-06-28 18:21:59 -07:00 +++ b/arch/m68k/mac/iop.c 2004-06-28 18:21:59 -07:00 @@ -261,7 +261,7 @@ } else { iop_base[IOP_NUM_ISM] = (struct mac_iop *) ISM_IOP_BASE_QUADRA; } - iop_base[IOP_NUM_SCC]->status_ctrl = 0; + iop_base[IOP_NUM_ISM]->status_ctrl = 0; iop_ism_present = 1; } else { iop_base[IOP_NUM_ISM] = NULL; diff -Nru a/arch/m68k/mm/init.c b/arch/m68k/mm/init.c --- a/arch/m68k/mm/init.c 2004-06-28 18:21:58 -07:00 +++ b/arch/m68k/mm/init.c 2004-06-28 18:21:58 -07:00 @@ -47,7 +47,7 @@ printk("\nMem-info:\n"); show_free_areas(); - printk("Free swap: %6dkB\n",nr_swap_pages<<(PAGE_SHIFT-10)); + printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10)); i = max_mapnr; while (i-- > 0) { total++; diff -Nru a/arch/m68k/mm/memory.c b/arch/m68k/mm/memory.c --- a/arch/m68k/mm/memory.c 2004-06-28 18:21:57 -07:00 +++ b/arch/m68k/mm/memory.c 2004-06-28 18:21:57 -07:00 @@ -54,7 +54,7 @@ /* unreserve the page so it's possible to free that page */ PD_PAGE(dp)->flags &= ~(1 << PG_reserved); - atomic_set(&PD_PAGE(dp)->count, 1); + set_page_count(PD_PAGE(dp), 1); return; } diff -Nru a/arch/m68k/q40/config.c b/arch/m68k/q40/config.c --- a/arch/m68k/q40/config.c 2004-06-28 18:21:56 -07:00 +++ b/arch/m68k/q40/config.c 2004-06-28 18:21:56 -07:00 @@ -64,7 +64,6 @@ extern void q40_mksound(unsigned int /*freq*/, unsigned int /*ticks*/ ); -extern char *saved_command_line; extern char m68k_debug_device[]; static void q40_mem_console_write(struct console *co, const char *b, unsigned int count); diff -Nru a/arch/m68knommu/kernel/init_task.c b/arch/m68knommu/kernel/init_task.c --- a/arch/m68knommu/kernel/init_task.c 2004-06-28 18:21:55 -07:00 +++ b/arch/m68knommu/kernel/init_task.c 2004-06-28 18:21:55 -07:00 @@ -7,6 +7,7 @@ #include #include #include +#include #include #include diff -Nru a/arch/m68knommu/kernel/setup.c b/arch/m68knommu/kernel/setup.c --- a/arch/m68knommu/kernel/setup.c 2004-06-28 18:21:57 -07:00 +++ b/arch/m68knommu/kernel/setup.c 2004-06-28 18:21:57 -07:00 @@ -31,6 +31,7 @@ #include #include #include +#include #include #include @@ -44,8 +45,7 @@ unsigned long memory_start; unsigned long memory_end; -char command_line[512]; -char saved_command_line[512]; +char command_line[COMMAND_LINE_SIZE]; /* setup some dummy routines */ static void dummy_waitbut(void) @@ -216,8 +216,8 @@ /* Keep a copy of command line */ *cmdline_p = &command_line[0]; - memcpy(saved_command_line, command_line, sizeof(saved_command_line)); - saved_command_line[sizeof(saved_command_line)-1] = 0; + memcpy(saved_command_line, command_line, COMMAND_LINE_SIZE); + saved_command_line[COMMAND_LINE_SIZE-1] = 0; #ifdef DEBUG if (strlen(*cmdline_p)) diff -Nru a/arch/mips/Kconfig b/arch/mips/Kconfig --- a/arch/mips/Kconfig 2004-06-28 18:21:56 -07:00 +++ b/arch/mips/Kconfig 2004-06-28 18:21:56 -07:00 @@ -96,11 +96,13 @@ select DMA_NONCOHERENT select IRQ_CPU depends on MACH_VR41XX + select HW_HAS_PCI config TANBAC_TB0226 bool "Support for TANBAC TB0226 (Mbase)" depends on MACH_VR41XX select DMA_NONCOHERENT + select HW_HAS_PCI select IRQ_CPU help The TANBAC TB0226 (Mbase) is a MIPS-based platform manufactured by TANBAC. @@ -110,6 +112,7 @@ bool "Support for TANBAC TB0229 (VR4131DIMM)" depends on MACH_VR41XX select DMA_NONCOHERENT + select HW_HAS_PCI select IRQ_CPU help The TANBAC TB0229 (VR4131DIMM) is a MIPS-based platform manufactured by TANBAC. @@ -118,6 +121,7 @@ config VICTOR_MPC30X bool "Support for Victor MP-C303/304" select DMA_NONCOHERENT + select HW_HAS_PCI select IRQ_CPU depends on MACH_VR41XX @@ -125,17 +129,22 @@ bool "Support for ZAO Networks Capcella" depends on MACH_VR41XX select DMA_NONCOHERENT + select HW_HAS_PCI select IRQ_CPU +config PCI_VR41XX + bool "Add PCI control unit support of NEC VR4100 series" + depends on MACH_VR41XX && PCI + config VRC4171 - tristate "add NEC VRC4171 companion chip support" + tristate "Add NEC VRC4171 companion chip support" depends on MACH_VR41XX && ISA ---help--- The NEC VRC4171/4171A is a companion chip for NEC VR4111/VR4121. config VRC4173 - tristate "add NEC VRC4173 companion chip support" - depends on MACH_VR41XX && PCI + tristate "Add NEC VRC4173 companion chip support" + depends on MACH_VR41XX && PCI_VR41XX ---help--- The NEC VRC4173 is a companion chip for NEC VR4122/VR4131. @@ -143,11 +152,13 @@ bool "Support for Toshiba JMR-TX3927 board" depends on MIPS32 select DMA_NONCOHERENT + select HW_HAS_PCI config MIPS_COBALT bool "Support for Cobalt Server (EXPERIMENTAL)" depends on EXPERIMENTAL select DMA_NONCOHERENT + select HW_HAS_PCI select IRQ_CPU config MACH_DECSTATION @@ -174,6 +185,7 @@ bool "Support for Galileo EV64120 Evaluation board (EXPERIMENTAL)" depends on EXPERIMENTAL select DMA_NONCOHERENT + select HW_HAS_PCI help This is an evaluation board based on the Galileo GT-64120 single-chip system controller that contains a MIPS R5000 compatible @@ -189,6 +201,7 @@ bool "Support for Galileo EV96100 Evaluation board (EXPERIMENTAL)" depends on EXPERIMENTAL select DMA_NONCOHERENT + select HW_HAS_PCI select IRQ_CPU select MIPS_GT96100 select RM7000_CPU_SCACHE @@ -201,6 +214,7 @@ config MIPS_IVR bool "Support for Globespan IVR board" select DMA_NONCOHERENT + select HW_HAS_PCI help This is an evaluation board built by Globespan to showcase thir iVR (Internet Video Recorder) design. It utilizes a QED RM5231 @@ -211,6 +225,7 @@ config LASAT bool "Support for LASAT Networks platforms" select DMA_NONCOHERENT + select HW_HAS_PCI select R5000_CPU_SCACHE config PICVUE @@ -233,11 +248,13 @@ bool "Support for Hewlett Packard LaserJet board" depends on BROKEN select DMA_NONCOHERENT + select HW_HAS_PCI select IRQ_CPU config MIPS_ITE8172 bool "Support for ITE 8172G board" select DMA_NONCOHERENT + select HW_HAS_PCI help Ths is an evaluation board made by ITE with ATX form factor that utilizes a MIPS R5000 to work with its @@ -257,6 +274,7 @@ config MIPS_ATLAS bool "Support for MIPS Atlas board" select DMA_NONCOHERENT + select HW_HAS_PCI help This enables support for the QED R5231-based MIPS Atlas evaluation board. @@ -265,6 +283,7 @@ bool "Support for MIPS Malta board" select HAVE_STD_PC_SERIAL_PORT select DMA_NONCOHERENT + select HW_HAS_PCI help This enables support for the VR5000-based MIPS Malta evaluation board. @@ -278,6 +297,7 @@ config MOMENCO_OCELOT bool "Support for Momentum Ocelot board" select DMA_NONCOHERENT + select HW_HAS_PCI select IRQ_CPU select IRQ_CPU_RM7K select RM7000_CPU_SCACHE @@ -288,6 +308,7 @@ config MOMENCO_OCELOT_G bool "Support for Momentum Ocelot-G board" select DMA_NONCOHERENT + select HW_HAS_PCI select IRQ_CPU select IRQ_CPU_RM7K select RM7000_CPU_SCACHE @@ -298,6 +319,7 @@ config MOMENCO_OCELOT_C bool "Support for Momentum Ocelot-C board" select DMA_NONCOHERENT + select HW_HAS_PCI select IRQ_CPU select RM7000_CPU_SCACHE help @@ -307,6 +329,7 @@ config MOMENCO_JAGUAR_ATX bool "Support for Momentum Jaguar board" select DMA_NONCOHERENT + select HW_HAS_PCI select IRQ_CPU select IRQ_CPU_RM7K select LIMITED_DMA @@ -324,7 +347,10 @@ config PMC_YOSEMITE bool "Support for PMC-Sierra Yosemite eval board" - select DMA_NONCOHERENT + select DMA_COHERENT + select HW_HAS_PCI + select IRQ_CPU + select IRQ_CPU_RM7K help Yosemite is an evaluation board for the RM9000x2 processor manufactured by PMC-Sierra @@ -338,6 +364,7 @@ depends on EXPERIMENTAL select DMA_NONCOHERENT select HAVE_STD_PC_SERIAL_PORT + select HW_HAS_PCI select IRQ_CPU select ISA help @@ -348,6 +375,7 @@ bool "Support for NEC DDB Vrc-5476" select DMA_NONCOHERENT select HAVE_STD_PC_SERIAL_PORT + select HW_HAS_PCI select IRQ_CPU select ISA help @@ -361,6 +389,7 @@ config DDB5477 bool "Support for NEC DDB Vrc-5477" select DMA_NONCOHERENT + select HW_HAS_PCI select IRQ_CPU help This enables support for the R5432-based NEC DDB Vrc-5477, @@ -393,6 +422,7 @@ bool "Support for SGI IP27 (Origin200/2000)" depends on MIPS64 select DMA_IP27 + select HW_HAS_PCI help This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics workstations. To compile a Linux kernel that runs on these, say Y @@ -457,6 +487,7 @@ bool "Support for SGI IP32 (O2) (EXPERIMENTAL)" depends on EXPERIMENTAL select DMA_NONCOHERENT + select HW_HAS_PCI select R5000_CPU_SCACHE select RM7000_CPU_SCACHE help @@ -499,26 +530,31 @@ bool "PB1000 board" depends on SOC_AU1000 select DMA_NONCOHERENT + select HW_HAS_PCI config MIPS_PB1100 bool "PB1100 board" depends on SOC_AU1100 select DMA_NONCOHERENT + select HW_HAS_PCI config MIPS_PB1500 bool "PB1500 board" depends on SOC_AU1500 select DMA_NONCOHERENT + select HW_HAS_PCI config MIPS_PB1550 bool "PB1550 board" depends on SOC_AU1550 select DMA_NONCOHERENT + select HW_HAS_PCI config MIPS_DB1000 bool "DB1000 board" depends on SOC_AU1000 select DMA_NONCOHERENT + select HW_HAS_PCI config MIPS_DB1100 bool "DB1100 board" @@ -529,10 +565,12 @@ bool "DB1500 board" depends on SOC_AU1500 select DMA_NONCOHERENT + select HW_HAS_PCI config MIPS_DB1550 bool "DB1550 board" depends on SOC_AU1550 + select HW_HAS_PCI config MIPS_BOSPORUS bool "Bosporus board" @@ -642,6 +680,7 @@ config SIBYTE_SB1250 bool + select HW_HAS_PCI config SIBYTE_BCM1120 bool @@ -649,10 +688,12 @@ config SIBYTE_BCM1125 bool + select HW_HAS_PCI select SIBYTE_BCM112X config SIBYTE_BCM1125H bool + select HW_HAS_PCI select SIBYTE_BCM112X config SIBYTE_BCM112X @@ -699,11 +740,6 @@ config CPU_SB1_PASS_2 bool -config SIBYTE_HAS_PCI - bool - depends on SIBYTE_SB1250 || SIBYTE_BCM1125 || SIBYTE_BCM1125H - default y - config SIBYTE_HAS_LDT bool depends on PCI && (SIBYTE_SB1250 || SIBYTE_BCM1125H) @@ -770,6 +806,7 @@ bool "Support for SNI RM200 PCI" select DMA_NONCOHERENT select HAVE_STD_PC_SERIAL_PORT + select HW_HAS_PCI select ISA help The SNI RM200 PCI was a MIPS-based platform manufactured by Siemens @@ -781,6 +818,7 @@ bool "Support for Toshiba TBTX49[23]7 board" depends on MIPS32 select DMA_NONCOHERENT + select HW_HAS_PCI select ISA config RWSEM_GENERIC_SPINLOCK @@ -860,11 +898,6 @@ config IRQ_CPU_RM7K bool -config DUMMY_KEYB - bool - depends on ZAO_CAPCELLA || VICTOR_MPC30X || SIBYTE_SB1xxx_SOC || NEC_EAGLE || NEC_OSPREY || DDB5477 || CASIO_E55 || TANBAC_TB0226 || TANBAC_TB0229 - default y - config DDB5XXX_COMMON bool depends on DDB5074 || DDB5476 || DDB5477 @@ -932,11 +965,6 @@ depends on MIPS_PB1500 || MIPS_PB1100 || MIPS_PB1000 default n -config COBALT_LCD - bool - depends on MIPS_COBALT - default y - config MIPS_GT96100 bool depends on MIPS_EV96100 @@ -1169,6 +1197,16 @@ 4kB page size will minimize memory consumption and is therefore recommended for low memory systems. +config PAGE_SIZE_8KB + bool "8kB" + depends on EXPERIMENTAL && CPU_R8000 + help + Using 8kB page size will result in higher performance kernel at + the price of higher memory consumption. This option is available + only on the R8000 processor. Not that at the time of this writing + this option is still high experimental; there are also issues with + compatibility of user applications. + config PAGE_SIZE_16KB bool "16kB" depends on EXPERIMENTAL && !CPU_R3000 && !CPU_TX39XX @@ -1382,9 +1420,12 @@ menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)" +config HW_HAS_PCI + bool + config PCI bool "Support for PCI controller" - depends on MIPS_DB1000 || DDB5074 || DDB5476 || DDB5477 || HP_LASERJET || LASAT || MIPS_IVR || MIPS_ATLAS || MIPS_COBALT || MIPS_EV64120 || MIPS_EV96100 || MIPS_ITE8172 || MIPS_MALTA || MOMENCO_OCELOT || MOMENCO_OCELOT_C || MOMENCO_OCELOT_G || MOMENCO_JAGUAR_ATX || MIPS_PB1000 || MIPS_PB1100 || SOC_AU1500 || SOC_AU1550 || NEC_EAGLE || SGI_IP27 || SGI_IP32 || SIBYTE_HAS_PCI || SNI_RM200_PCI || TANBAC_TB0226 || TANBAC_TB0229 || TOSHIBA_JMR3927 || TOSHIBA_RBTX4927 || VICTOR_MPC30X || ZAO_CAPCELLA + depends on HW_HAS_PCI help Find out whether you have a PCI motherboard. PCI is the name of a bus system, i.e. the way the CPU talks to the other stuff inside @@ -1564,7 +1605,7 @@ config DEBUG_SLAB bool "Debug memory allocations" - depends on DEBUG_KERNEL && !CPU_HAS_LLDSCD + 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 diff -Nru a/arch/mips/Makefile b/arch/mips/Makefile --- a/arch/mips/Makefile 2004-06-28 18:21:52 -07:00 +++ b/arch/mips/Makefile 2004-06-28 18:21:52 -07:00 @@ -406,6 +406,13 @@ load-$(CONFIG_MOMENCO_OCELOT_C) += 0x80100000 # +# PMC-Sierra Yosemite +# +core-$(CONFIG_PMC_YOSEMITE) += arch/mips/pmc-sierra/yosemite/ +cflags-$(CONFIG_PMC_YOSEMITE) += -Iinclude/asm-mips/mach-yosemite +load-$(CONFIG_PMC_YOSEMITE) += 0x80100000 + +# # Momentum Jaguar ATX # core-$(CONFIG_MOMENCO_JAGUAR_ATX) += arch/mips/momentum/jaguar_atx/ @@ -659,8 +666,6 @@ libs-$(CONFIG_MIPS64) += arch/mips/lib-64/ core-y += arch/mips/kernel/ arch/mips/mm/ arch/mips/math-emu/ -core-$(CONFIG_MIPS32) += arch/mips/mm-32/ -core-$(CONFIG_MIPS64) += arch/mips/mm-64/ ifdef CONFIG_BAGET_MIPS diff -Nru a/arch/mips/baget/irq.c b/arch/mips/baget/irq.c --- a/arch/mips/baget/irq.c 2004-06-28 18:21:57 -07:00 +++ b/arch/mips/baget/irq.c 2004-06-28 18:21:57 -07:00 @@ -325,7 +325,7 @@ action->handler = handler; action->flags = irqflags; - action->mask = 0; + cpus_clear(action->mask); action->name = devname; action->next = NULL; action->dev_id = dev_id; @@ -389,7 +389,7 @@ } static struct irqaction irq0 = -{ write_err_interrupt, SA_INTERRUPT, 0, "bus write error", NULL, NULL}; +{ write_err_interrupt, SA_INTERRUPT, CPU_MASK_NONE, "bus write error", NULL, NULL}; void __init init_IRQ(void) { diff -Nru a/arch/mips/baget/time.c b/arch/mips/baget/time.c --- a/arch/mips/baget/time.c 2004-06-28 18:21:52 -07:00 +++ b/arch/mips/baget/time.c 2004-06-28 18:21:52 -07:00 @@ -67,7 +67,7 @@ } static struct irqaction timer_irq = -{ timer_interrupt, SA_INTERRUPT, 0, "timer", NULL, NULL}; +{ timer_interrupt, SA_INTERRUPT, CPU_MASK_NONE, "timer", NULL, NULL}; void __init time_init(void) { diff -Nru a/arch/mips/boot/Makefile b/arch/mips/boot/Makefile --- a/arch/mips/boot/Makefile 2004-06-28 18:21:58 -07:00 +++ b/arch/mips/boot/Makefile 2004-06-28 18:21:58 -07:00 @@ -39,7 +39,7 @@ archhelp: @echo '* vmlinux.ecoff - ECOFF boot image' -CLEAN_FILES += addinitrd \ +clean-files += addinitrd \ elf2ecoff \ vmlinux.ecoff \ vmlinux.srec \ diff -Nru a/arch/mips/configs/atlas_defconfig b/arch/mips/configs/atlas_defconfig --- a/arch/mips/configs/atlas_defconfig 2004-06-28 18:21:59 -07:00 +++ b/arch/mips/configs/atlas_defconfig 2004-06-28 18:21:59 -07:00 @@ -107,6 +107,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set CONFIG_CPU_HAS_PREFETCH=y @@ -121,6 +122,7 @@ # # Bus options (PCI, PCMCIA, EISA, ISA, TC) # +CONFIG_HW_HAS_PCI=y CONFIG_PCI=y CONFIG_PCI_LEGACY_PROC=y CONFIG_PCI_NAMES=y @@ -197,7 +199,6 @@ # Some SCSI devices (e.g. CD jukebox) support multiple LUNs # # CONFIG_SCSI_MULTI_LUN is not set -# CONFIG_SCSI_REPORT_LUNS is not set # CONFIG_SCSI_CONSTANTS is not set # CONFIG_SCSI_LOGGING is not set @@ -216,11 +217,11 @@ # CONFIG_SCSI_AIC7XXX is not set # CONFIG_SCSI_AIC7XXX_OLD is not set # CONFIG_SCSI_AIC79XX is not set +# CONFIG_SCSI_DPT_I2O is not set # CONFIG_SCSI_ADVANSYS is not set # CONFIG_SCSI_MEGARAID is not set # CONFIG_SCSI_SATA is not set # CONFIG_SCSI_BUSLOGIC is not set -# CONFIG_SCSI_CPQFCTS is not set # CONFIG_SCSI_DMX3191D is not set # CONFIG_SCSI_EATA is not set # CONFIG_SCSI_EATA_PIO is not set @@ -229,6 +230,7 @@ # CONFIG_SCSI_IPS is not set # CONFIG_SCSI_INIA100 is not set # CONFIG_SCSI_SYM53C8XX_2 is not set +# CONFIG_SCSI_IPR is not set # CONFIG_SCSI_QLOGIC_ISP is not set # CONFIG_SCSI_QLOGIC_FC is not set # CONFIG_SCSI_QLOGIC_1280 is not set @@ -395,7 +397,6 @@ # CONFIG_PPP is not set # CONFIG_SLIP is not set # CONFIG_NET_FC is not set -# CONFIG_RCPCI is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set @@ -616,7 +617,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -651,3 +651,4 @@ # Library routines # # CONFIG_CRC32 is not set +# CONFIG_LIBCRC32C is not set diff -Nru a/arch/mips/configs/bosporus_defconfig b/arch/mips/configs/bosporus_defconfig --- a/arch/mips/configs/bosporus_defconfig 2004-06-28 18:21:58 -07:00 +++ b/arch/mips/configs/bosporus_defconfig 2004-06-28 18:21:58 -07:00 @@ -105,6 +105,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set CONFIG_CPU_HAS_PREFETCH=y @@ -496,6 +497,9 @@ CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y # CONFIG_JFS_FS is not set CONFIG_FS_POSIX_ACL=y # CONFIG_XFS_FS is not set @@ -567,7 +571,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -652,11 +655,13 @@ # CONFIG_CRYPTO_ARC4 is not set CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_MICHAEL_MIC=y +CONFIG_CRYPTO_CRC32C=m # CONFIG_CRYPTO_TEST is not set # # Library routines # CONFIG_CRC32=y +CONFIG_LIBCRC32C=m CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y diff -Nru a/arch/mips/configs/capcella_defconfig b/arch/mips/configs/capcella_defconfig --- a/arch/mips/configs/capcella_defconfig 2004-06-28 18:21:54 -07:00 +++ b/arch/mips/configs/capcella_defconfig 2004-06-28 18:21:54 -07:00 @@ -59,7 +59,8 @@ # CONFIG_TANBAC_TB0229 is not set # CONFIG_VICTOR_MPC30X is not set CONFIG_ZAO_CAPCELLA=y -# CONFIG_VRC4173 is not set +CONFIG_PCI_VR41XX=y +CONFIG_VRC4173=y # CONFIG_TOSHIBA_JMR3927 is not set # CONFIG_MIPS_COBALT is not set # CONFIG_MACH_DECSTATION is not set @@ -91,7 +92,6 @@ CONFIG_DMA_NONCOHERENT=y CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_IRQ_CPU=y -CONFIG_DUMMY_KEYB=y CONFIG_MIPS_L1_CACHE_SHIFT=5 # CONFIG_FB is not set @@ -116,6 +116,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set # CONFIG_CPU_ADVANCED is not set @@ -126,6 +127,7 @@ # # Bus options (PCI, PCMCIA, EISA, ISA, TC) # +CONFIG_HW_HAS_PCI=y CONFIG_PCI=y CONFIG_PCI_LEGACY_PROC=y CONFIG_PCI_NAMES=y @@ -185,7 +187,6 @@ # CONFIG_BLK_DEV_IDEDISK=y # CONFIG_IDEDISK_MULTI_MODE is not set -# CONFIG_IDEDISK_STROKE is not set # CONFIG_BLK_DEV_IDECD is not set # CONFIG_BLK_DEV_IDETAPE is not set # CONFIG_BLK_DEV_IDEFLOPPY is not set @@ -197,6 +198,7 @@ # CONFIG_IDE_GENERIC=y # CONFIG_BLK_DEV_IDEPCI is not set +# CONFIG_IDE_ARM is not set # CONFIG_BLK_DEV_IDEDMA is not set # CONFIG_IDEDMA_AUTO is not set # CONFIG_BLK_DEV_HD is not set @@ -214,7 +216,6 @@ # # Fusion MPT device support # -# CONFIG_FUSION is not set # # IEEE 1394 (FireWire) support @@ -357,7 +358,6 @@ # CONFIG_HIPPI is not set # CONFIG_PPP is not set # CONFIG_SLIP is not set -# CONFIG_RCPCI is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set @@ -591,7 +591,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -626,3 +625,4 @@ # Library routines # # CONFIG_CRC32 is not set +CONFIG_LIBCRC32C=m diff -Nru a/arch/mips/configs/cobalt_defconfig b/arch/mips/configs/cobalt_defconfig --- a/arch/mips/configs/cobalt_defconfig 2004-06-28 18:21:55 -07:00 +++ b/arch/mips/configs/cobalt_defconfig 2004-06-28 18:21:55 -07:00 @@ -80,7 +80,6 @@ CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_IRQ_CPU=y CONFIG_MIPS_GT64111=y -CONFIG_COBALT_LCD=y CONFIG_MIPS_L1_CACHE_SHIFT=5 # CONFIG_FB is not set @@ -105,6 +104,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set # CONFIG_CPU_ADVANCED is not set @@ -117,6 +117,7 @@ # # Bus options (PCI, PCMCIA, EISA, ISA, TC) # +CONFIG_HW_HAS_PCI=y CONFIG_PCI=y CONFIG_PCI_LEGACY_PROC=y CONFIG_PCI_NAMES=y @@ -177,7 +178,6 @@ # CONFIG_BLK_DEV_IDEDISK=y # CONFIG_IDEDISK_MULTI_MODE is not set -# CONFIG_IDEDISK_STROKE is not set # CONFIG_BLK_DEV_IDECD is not set # CONFIG_BLK_DEV_IDETAPE is not set # CONFIG_BLK_DEV_IDEFLOPPY is not set @@ -189,6 +189,7 @@ # CONFIG_IDE_GENERIC=y # CONFIG_BLK_DEV_IDEPCI is not set +# CONFIG_IDE_ARM is not set # CONFIG_BLK_DEV_IDEDMA is not set # CONFIG_IDEDMA_AUTO is not set # CONFIG_BLK_DEV_HD is not set @@ -206,7 +207,6 @@ # # Fusion MPT device support # -# CONFIG_FUSION is not set # # IEEE 1394 (FireWire) support @@ -345,7 +345,6 @@ # CONFIG_HIPPI is not set # CONFIG_PPP is not set # CONFIG_SLIP is not set -# CONFIG_RCPCI is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set @@ -432,6 +431,7 @@ # # CONFIG_WATCHDOG is not set CONFIG_RTC=y +CONFIG_COBALT_LCD=y # CONFIG_DTLK is not set # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set @@ -567,7 +567,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -602,3 +601,4 @@ # Library routines # # CONFIG_CRC32 is not set +# CONFIG_LIBCRC32C is not set diff -Nru a/arch/mips/configs/db1000_defconfig b/arch/mips/configs/db1000_defconfig --- a/arch/mips/configs/db1000_defconfig 2004-06-28 18:21:56 -07:00 +++ b/arch/mips/configs/db1000_defconfig 2004-06-28 18:21:56 -07:00 @@ -122,6 +122,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set CONFIG_CPU_HAS_PREFETCH=y @@ -136,6 +137,7 @@ # # Bus options (PCI, PCMCIA, EISA, ISA, TC) # +CONFIG_HW_HAS_PCI=y # CONFIG_PCI is not set CONFIG_MMU=y @@ -522,6 +524,9 @@ CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y # CONFIG_JFS_FS is not set CONFIG_FS_POSIX_ACL=y # CONFIG_XFS_FS is not set @@ -593,7 +598,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -678,11 +682,13 @@ # CONFIG_CRYPTO_ARC4 is not set CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_MICHAEL_MIC=y +CONFIG_CRYPTO_CRC32C=m # CONFIG_CRYPTO_TEST is not set # # Library routines # CONFIG_CRC32=y +CONFIG_LIBCRC32C=m CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y diff -Nru a/arch/mips/configs/db1100_defconfig b/arch/mips/configs/db1100_defconfig --- a/arch/mips/configs/db1100_defconfig 2004-06-28 18:21:55 -07:00 +++ b/arch/mips/configs/db1100_defconfig 2004-06-28 18:21:55 -07:00 @@ -122,6 +122,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set CONFIG_CPU_HAS_PREFETCH=y @@ -518,6 +519,9 @@ CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y # CONFIG_JFS_FS is not set CONFIG_FS_POSIX_ACL=y # CONFIG_XFS_FS is not set @@ -589,7 +593,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -674,11 +677,13 @@ # CONFIG_CRYPTO_ARC4 is not set CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_MICHAEL_MIC=y +CONFIG_CRYPTO_CRC32C=m # CONFIG_CRYPTO_TEST is not set # # Library routines # CONFIG_CRC32=y +CONFIG_LIBCRC32C=m CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y diff -Nru a/arch/mips/configs/db1500_defconfig b/arch/mips/configs/db1500_defconfig --- a/arch/mips/configs/db1500_defconfig 2004-06-28 18:21:55 -07:00 +++ b/arch/mips/configs/db1500_defconfig 2004-06-28 18:21:55 -07:00 @@ -122,6 +122,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set CONFIG_CPU_HAS_PREFETCH=y @@ -136,6 +137,7 @@ # # Bus options (PCI, PCMCIA, EISA, ISA, TC) # +CONFIG_HW_HAS_PCI=y # CONFIG_PCI is not set CONFIG_MMU=y @@ -259,7 +261,6 @@ # CONFIG_BLK_DEV_IDEDISK=y # CONFIG_IDEDISK_MULTI_MODE is not set -# CONFIG_IDEDISK_STROKE is not set CONFIG_BLK_DEV_IDECS=m # CONFIG_BLK_DEV_IDECD is not set # CONFIG_BLK_DEV_IDETAPE is not set @@ -271,6 +272,7 @@ # IDE chipset support/bugfixes # CONFIG_IDE_GENERIC=y +# CONFIG_IDE_ARM is not set # CONFIG_BLK_DEV_IDEDMA is not set # CONFIG_IDEDMA_AUTO is not set # CONFIG_BLK_DEV_HD is not set @@ -592,6 +594,9 @@ CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y # CONFIG_JFS_FS is not set CONFIG_FS_POSIX_ACL=y # CONFIG_XFS_FS is not set @@ -665,7 +670,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -750,11 +754,13 @@ # CONFIG_CRYPTO_ARC4 is not set CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_MICHAEL_MIC=y +CONFIG_CRYPTO_CRC32C=m # CONFIG_CRYPTO_TEST is not set # # Library routines # CONFIG_CRC32=y +CONFIG_LIBCRC32C=m CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y diff -Nru a/arch/mips/configs/ddb5476_defconfig b/arch/mips/configs/ddb5476_defconfig --- a/arch/mips/configs/ddb5476_defconfig 2004-06-28 18:21:55 -07:00 +++ b/arch/mips/configs/ddb5476_defconfig 2004-06-28 18:21:55 -07:00 @@ -105,6 +105,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set # CONFIG_CPU_ADVANCED is not set @@ -117,6 +118,7 @@ # # Bus options (PCI, PCMCIA, EISA, ISA, TC) # +CONFIG_HW_HAS_PCI=y CONFIG_PCI=y CONFIG_PCI_LEGACY_PROC=y CONFIG_PCI_NAMES=y @@ -179,7 +181,6 @@ # CONFIG_BLK_DEV_IDEDISK=y # CONFIG_IDEDISK_MULTI_MODE is not set -# CONFIG_IDEDISK_STROKE is not set # CONFIG_BLK_DEV_IDECD is not set # CONFIG_BLK_DEV_IDETAPE is not set # CONFIG_BLK_DEV_IDEFLOPPY is not set @@ -191,6 +192,7 @@ # CONFIG_IDE_GENERIC=y # CONFIG_BLK_DEV_IDEPCI is not set +# CONFIG_IDE_ARM is not set # CONFIG_IDE_CHIPSETS is not set # CONFIG_BLK_DEV_IDEDMA is not set # CONFIG_IDEDMA_AUTO is not set @@ -214,7 +216,6 @@ # # Fusion MPT device support # -# CONFIG_FUSION is not set # # IEEE 1394 (FireWire) support @@ -363,7 +364,6 @@ # CONFIG_HIPPI is not set # CONFIG_PPP is not set # CONFIG_SLIP is not set -# CONFIG_RCPCI is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set @@ -487,6 +487,7 @@ # # CONFIG_FB_PM2 is not set # CONFIG_FB_CYBER2000 is not set +# CONFIG_FB_ASILIANT is not set # CONFIG_FB_IMSTT is not set # CONFIG_FB_RIVA is not set # CONFIG_FB_MATROX is not set @@ -606,7 +607,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -641,3 +641,4 @@ # Library routines # # CONFIG_CRC32 is not set +# CONFIG_LIBCRC32C is not set diff -Nru a/arch/mips/configs/ddb5477_defconfig b/arch/mips/configs/ddb5477_defconfig --- a/arch/mips/configs/ddb5477_defconfig 2004-06-28 18:21:58 -07:00 +++ b/arch/mips/configs/ddb5477_defconfig 2004-06-28 18:21:58 -07:00 @@ -80,7 +80,6 @@ CONFIG_I8259=y CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_IRQ_CPU=y -CONFIG_DUMMY_KEYB=y CONFIG_DDB5XXX_COMMON=y CONFIG_MIPS_L1_CACHE_SHIFT=5 # CONFIG_FB is not set @@ -106,6 +105,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set # CONFIG_CPU_ADVANCED is not set @@ -118,6 +118,7 @@ # # Bus options (PCI, PCMCIA, EISA, ISA, TC) # +CONFIG_HW_HAS_PCI=y CONFIG_PCI=y CONFIG_PCI_LEGACY_PROC=y CONFIG_PCI_NAMES=y @@ -184,7 +185,6 @@ # # Fusion MPT device support # -# CONFIG_FUSION is not set # # IEEE 1394 (FireWire) support @@ -345,7 +345,6 @@ # CONFIG_HIPPI is not set # CONFIG_PPP is not set # CONFIG_SLIP is not set -# CONFIG_RCPCI is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set @@ -567,7 +566,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -602,3 +600,4 @@ # Library routines # CONFIG_CRC32=y +# CONFIG_LIBCRC32C is not set diff -Nru a/arch/mips/configs/decstation_defconfig b/arch/mips/configs/decstation_defconfig --- a/arch/mips/configs/decstation_defconfig 2004-06-28 18:21:57 -07:00 +++ b/arch/mips/configs/decstation_defconfig 2004-06-28 18:21:57 -07:00 @@ -109,6 +109,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set # CONFIG_CPU_ADVANCED is not set @@ -184,7 +185,6 @@ # Some SCSI devices (e.g. CD jukebox) support multiple LUNs # # CONFIG_SCSI_MULTI_LUN is not set -# CONFIG_SCSI_REPORT_LUNS is not set CONFIG_SCSI_CONSTANTS=y # CONFIG_SCSI_LOGGING is not set @@ -537,7 +537,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -587,3 +586,4 @@ # Library routines # CONFIG_CRC32=y +CONFIG_LIBCRC32C=m diff -Nru a/arch/mips/configs/e55_defconfig b/arch/mips/configs/e55_defconfig --- a/arch/mips/configs/e55_defconfig 2004-06-28 18:21:54 -07:00 +++ b/arch/mips/configs/e55_defconfig 2004-06-28 18:21:54 -07:00 @@ -91,7 +91,6 @@ CONFIG_DMA_NONCOHERENT=y CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_IRQ_CPU=y -CONFIG_DUMMY_KEYB=y CONFIG_MIPS_L1_CACHE_SHIFT=5 # CONFIG_FB is not set @@ -116,6 +115,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set # CONFIG_CPU_ADVANCED is not set @@ -180,7 +180,6 @@ # CONFIG_BLK_DEV_IDEDISK=y # CONFIG_IDEDISK_MULTI_MODE is not set -# CONFIG_IDEDISK_STROKE is not set # CONFIG_BLK_DEV_IDECD is not set # CONFIG_BLK_DEV_IDETAPE is not set # CONFIG_BLK_DEV_IDEFLOPPY is not set @@ -191,6 +190,7 @@ # IDE chipset support/bugfixes # CONFIG_IDE_GENERIC=y +# CONFIG_IDE_ARM is not set # CONFIG_IDE_CHIPSETS is not set # CONFIG_BLK_DEV_IDEDMA is not set # CONFIG_IDEDMA_AUTO is not set @@ -570,7 +570,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -605,3 +604,4 @@ # Library routines # # CONFIG_CRC32 is not set +CONFIG_LIBCRC32C=m diff -Nru a/arch/mips/configs/eagle_defconfig b/arch/mips/configs/eagle_defconfig --- a/arch/mips/configs/eagle_defconfig 2004-06-28 18:21:52 -07:00 +++ b/arch/mips/configs/eagle_defconfig 2004-06-28 18:21:52 -07:00 @@ -59,6 +59,7 @@ # CONFIG_TANBAC_TB0229 is not set # CONFIG_VICTOR_MPC30X is not set # CONFIG_ZAO_CAPCELLA is not set +CONFIG_PCI_VR41XX=y CONFIG_VRC4173=y # CONFIG_TOSHIBA_JMR3927 is not set # CONFIG_MIPS_COBALT is not set @@ -91,7 +92,6 @@ CONFIG_DMA_NONCOHERENT=y CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_IRQ_CPU=y -CONFIG_DUMMY_KEYB=y CONFIG_MIPS_L1_CACHE_SHIFT=5 # CONFIG_FB is not set @@ -116,6 +116,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set # CONFIG_CPU_ADVANCED is not set @@ -126,6 +127,7 @@ # # Bus options (PCI, PCMCIA, EISA, ISA, TC) # +CONFIG_HW_HAS_PCI=y CONFIG_PCI=y CONFIG_PCI_LEGACY_PROC=y CONFIG_PCI_NAMES=y @@ -261,7 +263,6 @@ # CONFIG_BLK_DEV_IDEDISK=y CONFIG_IDEDISK_MULTI_MODE=y -# CONFIG_IDEDISK_STROKE is not set CONFIG_BLK_DEV_IDECS=y # CONFIG_BLK_DEV_IDECD is not set # CONFIG_BLK_DEV_IDETAPE is not set @@ -274,6 +275,7 @@ # CONFIG_IDE_GENERIC=y # CONFIG_BLK_DEV_IDEPCI is not set +# CONFIG_IDE_ARM is not set # CONFIG_BLK_DEV_IDEDMA is not set # CONFIG_IDEDMA_AUTO is not set # CONFIG_BLK_DEV_HD is not set @@ -291,7 +293,6 @@ # # Fusion MPT device support # -# CONFIG_FUSION is not set # # IEEE 1394 (FireWire) support @@ -447,7 +448,6 @@ # CONFIG_HIPPI is not set # CONFIG_PPP is not set # CONFIG_SLIP is not set -# CONFIG_RCPCI is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set @@ -692,7 +692,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -739,11 +738,13 @@ # CONFIG_CRYPTO_ARC4 is not set CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_MICHAEL_MIC=y +CONFIG_CRYPTO_CRC32C=m # CONFIG_CRYPTO_TEST is not set # # Library routines # CONFIG_CRC32=y +CONFIG_LIBCRC32C=m CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y diff -Nru a/arch/mips/configs/ev64120_defconfig b/arch/mips/configs/ev64120_defconfig --- a/arch/mips/configs/ev64120_defconfig 2004-06-28 18:21:55 -07:00 +++ b/arch/mips/configs/ev64120_defconfig 2004-06-28 18:21:55 -07:00 @@ -111,6 +111,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set # CONFIG_64BIT_PHYS_ADDR is not set @@ -124,6 +125,7 @@ # # Bus options (PCI, PCMCIA, EISA, ISA, TC) # +CONFIG_HW_HAS_PCI=y CONFIG_PCI=y CONFIG_PCI_LEGACY_PROC=y CONFIG_PCI_NAMES=y @@ -191,7 +193,6 @@ # # Fusion MPT device support # -# CONFIG_FUSION is not set # # IEEE 1394 (FireWire) support @@ -339,7 +340,6 @@ # CONFIG_PPP_BSDCOMP is not set # CONFIG_PPPOE is not set # CONFIG_SLIP is not set -# CONFIG_RCPCI is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set @@ -559,7 +559,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -594,3 +593,4 @@ # Library routines # # CONFIG_CRC32 is not set +CONFIG_LIBCRC32C=m diff -Nru a/arch/mips/configs/ev96100_defconfig b/arch/mips/configs/ev96100_defconfig --- a/arch/mips/configs/ev96100_defconfig 2004-06-28 18:21:57 -07:00 +++ b/arch/mips/configs/ev96100_defconfig 2004-06-28 18:21:57 -07:00 @@ -110,6 +110,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set CONFIG_BOARD_SCACHE=y @@ -126,6 +127,7 @@ # # Bus options (PCI, PCMCIA, EISA, ISA, TC) # +CONFIG_HW_HAS_PCI=y # CONFIG_PCI is not set CONFIG_MMU=y @@ -514,7 +516,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -549,3 +550,4 @@ # Library routines # # CONFIG_CRC32 is not set +CONFIG_LIBCRC32C=m diff -Nru a/arch/mips/configs/ip22_defconfig b/arch/mips/configs/ip22_defconfig --- a/arch/mips/configs/ip22_defconfig 2004-06-28 18:21:55 -07:00 +++ b/arch/mips/configs/ip22_defconfig 2004-06-28 18:21:55 -07:00 @@ -114,6 +114,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set CONFIG_BOARD_SCACHE=y @@ -196,7 +197,6 @@ # Some SCSI devices (e.g. CD jukebox) support multiple LUNs # # CONFIG_SCSI_MULTI_LUN is not set -# CONFIG_SCSI_REPORT_LUNS is not set CONFIG_SCSI_CONSTANTS=y # CONFIG_SCSI_LOGGING is not set @@ -583,7 +583,7 @@ CONFIG_INDYDOG=m # CONFIG_RTC is not set # CONFIG_GEN_RTC is not set -CONFIG_SGI_DS1286=y +CONFIG_SGI_DS1286=m # CONFIG_DTLK is not set # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set @@ -750,7 +750,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -850,11 +849,13 @@ CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_CRC32C=m # CONFIG_CRYPTO_TEST is not set # # Library routines # # CONFIG_CRC32 is not set +CONFIG_LIBCRC32C=m CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y diff -Nru a/arch/mips/configs/ip27_defconfig b/arch/mips/configs/ip27_defconfig --- a/arch/mips/configs/ip27_defconfig 2004-06-28 18:21:56 -07:00 +++ b/arch/mips/configs/ip27_defconfig 2004-06-28 18:21:56 -07:00 @@ -113,6 +113,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set CONFIG_CPU_HAS_PREFETCH=y @@ -128,6 +129,7 @@ # # Bus options (PCI, PCMCIA, EISA, ISA, TC) # +CONFIG_HW_HAS_PCI=y CONFIG_PCI=y CONFIG_PCI_LEGACY_PROC=y CONFIG_PCI_NAMES=y @@ -203,7 +205,6 @@ # Some SCSI devices (e.g. CD jukebox) support multiple LUNs # # CONFIG_SCSI_MULTI_LUN is not set -# CONFIG_SCSI_REPORT_LUNS is not set CONFIG_SCSI_CONSTANTS=y CONFIG_SCSI_LOGGING=y @@ -226,7 +227,6 @@ # CONFIG_SCSI_MEGARAID is not set # CONFIG_SCSI_SATA is not set # CONFIG_SCSI_BUSLOGIC is not set -# CONFIG_SCSI_CPQFCTS is not set # CONFIG_SCSI_DMX3191D is not set # CONFIG_SCSI_EATA is not set # CONFIG_SCSI_EATA_PIO is not set @@ -235,6 +235,7 @@ # CONFIG_SCSI_IPS is not set # CONFIG_SCSI_INIA100 is not set # CONFIG_SCSI_SYM53C8XX_2 is not set +# CONFIG_SCSI_IPR is not set CONFIG_SCSI_QLOGIC_ISP=y # CONFIG_SCSI_QLOGIC_FC is not set # CONFIG_SCSI_QLOGIC_1280 is not set @@ -267,6 +268,7 @@ # # I2O device support # +# CONFIG_I2O is not set # # Networking support @@ -638,7 +640,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -700,11 +701,13 @@ CONFIG_CRYPTO_ARC4=y CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_MICHAEL_MIC=y +CONFIG_CRYPTO_CRC32C=m # CONFIG_CRYPTO_TEST is not set # # Library routines # CONFIG_CRC32=y +CONFIG_LIBCRC32C=m CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y diff -Nru a/arch/mips/configs/ip32_defconfig b/arch/mips/configs/ip32_defconfig --- a/arch/mips/configs/ip32_defconfig 2004-06-28 18:21:55 -07:00 +++ b/arch/mips/configs/ip32_defconfig 2004-06-28 18:21:55 -07:00 @@ -102,6 +102,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set CONFIG_BOARD_SCACHE=y @@ -116,6 +117,7 @@ # # Bus options (PCI, PCMCIA, EISA, ISA, TC) # +CONFIG_HW_HAS_PCI=y CONFIG_PCI=y CONFIG_PCI_LEGACY_PROC=y CONFIG_PCI_NAMES=y @@ -193,7 +195,6 @@ # Some SCSI devices (e.g. CD jukebox) support multiple LUNs # CONFIG_SCSI_MULTI_LUN=y -# CONFIG_SCSI_REPORT_LUNS is not set CONFIG_SCSI_CONSTANTS=y CONFIG_SCSI_LOGGING=y @@ -222,7 +223,6 @@ # CONFIG_SCSI_MEGARAID is not set # CONFIG_SCSI_SATA is not set # CONFIG_SCSI_BUSLOGIC is not set -# CONFIG_SCSI_CPQFCTS is not set # CONFIG_SCSI_DMX3191D is not set # CONFIG_SCSI_EATA is not set # CONFIG_SCSI_EATA_PIO is not set @@ -231,6 +231,7 @@ # CONFIG_SCSI_IPS is not set # CONFIG_SCSI_INIA100 is not set # CONFIG_SCSI_SYM53C8XX_2 is not set +# CONFIG_SCSI_IPR is not set # CONFIG_SCSI_QLOGIC_ISP is not set # CONFIG_SCSI_QLOGIC_FC is not set # CONFIG_SCSI_QLOGIC_1280 is not set @@ -263,6 +264,7 @@ # # I2O device support # +# CONFIG_I2O is not set # # Networking support @@ -617,7 +619,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -663,3 +664,4 @@ # Library routines # # CONFIG_CRC32 is not set +# CONFIG_LIBCRC32C is not set diff -Nru a/arch/mips/configs/it8172_defconfig b/arch/mips/configs/it8172_defconfig --- a/arch/mips/configs/it8172_defconfig 2004-06-28 18:21:54 -07:00 +++ b/arch/mips/configs/it8172_defconfig 2004-06-28 18:21:54 -07:00 @@ -110,6 +110,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set # CONFIG_CPU_ADVANCED is not set @@ -122,6 +123,7 @@ # # Bus options (PCI, PCMCIA, EISA, ISA, TC) # +CONFIG_HW_HAS_PCI=y # CONFIG_PCI is not set CONFIG_MMU=y @@ -231,7 +233,6 @@ # CONFIG_BLK_DEV_IDEDISK=y # CONFIG_IDEDISK_MULTI_MODE is not set -# CONFIG_IDEDISK_STROKE is not set # CONFIG_BLK_DEV_IDECD is not set # CONFIG_BLK_DEV_IDETAPE is not set # CONFIG_BLK_DEV_IDEFLOPPY is not set @@ -242,6 +243,7 @@ # IDE chipset support/bugfixes # CONFIG_IDE_GENERIC=y +# CONFIG_IDE_ARM is not set # CONFIG_BLK_DEV_IDEDMA is not set # CONFIG_IDEDMA_AUTO is not set # CONFIG_BLK_DEV_HD is not set @@ -615,7 +617,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -650,3 +651,4 @@ # Library routines # # CONFIG_CRC32 is not set +CONFIG_LIBCRC32C=m diff -Nru a/arch/mips/configs/ivr_defconfig b/arch/mips/configs/ivr_defconfig --- a/arch/mips/configs/ivr_defconfig 2004-06-28 18:21:54 -07:00 +++ b/arch/mips/configs/ivr_defconfig 2004-06-28 18:21:54 -07:00 @@ -108,6 +108,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set # CONFIG_CPU_ADVANCED is not set @@ -120,6 +121,7 @@ # # Bus options (PCI, PCMCIA, EISA, ISA, TC) # +CONFIG_HW_HAS_PCI=y CONFIG_PCI=y CONFIG_PCI_LEGACY_PROC=y CONFIG_PCI_NAMES=y @@ -179,7 +181,6 @@ # CONFIG_BLK_DEV_IDEDISK=y # CONFIG_IDEDISK_MULTI_MODE is not set -# CONFIG_IDEDISK_STROKE is not set # CONFIG_BLK_DEV_IDECD is not set # CONFIG_BLK_DEV_IDETAPE is not set # CONFIG_BLK_DEV_IDEFLOPPY is not set @@ -191,6 +192,7 @@ # CONFIG_IDE_GENERIC=y # CONFIG_BLK_DEV_IDEPCI is not set +# CONFIG_IDE_ARM is not set # CONFIG_BLK_DEV_IDEDMA is not set # CONFIG_IDEDMA_AUTO is not set # CONFIG_BLK_DEV_HD is not set @@ -208,7 +210,6 @@ # # Fusion MPT device support # -# CONFIG_FUSION is not set # # IEEE 1394 (FireWire) support @@ -350,7 +351,6 @@ # CONFIG_HIPPI is not set # CONFIG_PPP is not set # CONFIG_SLIP is not set -# CONFIG_RCPCI is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set @@ -571,7 +571,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -606,3 +605,4 @@ # Library routines # # CONFIG_CRC32 is not set +CONFIG_LIBCRC32C=m diff -Nru a/arch/mips/configs/jaguar-atx_defconfig b/arch/mips/configs/jaguar-atx_defconfig --- a/arch/mips/configs/jaguar-atx_defconfig 2004-06-28 18:21:59 -07:00 +++ b/arch/mips/configs/jaguar-atx_defconfig 2004-06-28 18:21:59 -07:00 @@ -100,6 +100,7 @@ CONFIG_CPU_RM9000=y # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set CONFIG_BOARD_SCACHE=y @@ -118,6 +119,7 @@ # # Bus options (PCI, PCMCIA, EISA, ISA, TC) # +CONFIG_HW_HAS_PCI=y CONFIG_PCI=y CONFIG_PCI_LEGACY_PROC=y CONFIG_PCI_NAMES=y @@ -184,7 +186,6 @@ # # Fusion MPT device support # -# CONFIG_FUSION is not set # # IEEE 1394 (FireWire) support @@ -538,3 +539,4 @@ # Library routines # # CONFIG_CRC32 is not set +# CONFIG_LIBCRC32C is not set diff -Nru a/arch/mips/configs/jmr3927_defconfig b/arch/mips/configs/jmr3927_defconfig --- a/arch/mips/configs/jmr3927_defconfig 2004-06-28 18:21:54 -07:00 +++ b/arch/mips/configs/jmr3927_defconfig 2004-06-28 18:21:54 -07:00 @@ -104,6 +104,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set # CONFIG_CPU_ADVANCED is not set @@ -115,6 +116,7 @@ # # Bus options (PCI, PCMCIA, EISA, ISA, TC) # +CONFIG_HW_HAS_PCI=y CONFIG_PCI=y CONFIG_PCI_LEGACY_PROC=y CONFIG_PCI_NAMES=y @@ -182,7 +184,6 @@ # # Fusion MPT device support # -# CONFIG_FUSION is not set # # IEEE 1394 (FireWire) support @@ -324,7 +325,6 @@ # CONFIG_HIPPI is not set # CONFIG_PPP is not set # CONFIG_SLIP is not set -# CONFIG_RCPCI is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set @@ -462,6 +462,7 @@ # # CONFIG_FB_PM2 is not set # CONFIG_FB_CYBER2000 is not set +# CONFIG_FB_ASILIANT is not set # CONFIG_FB_IMSTT is not set # CONFIG_FB_RIVA is not set # CONFIG_FB_MATROX is not set @@ -578,7 +579,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -613,3 +613,4 @@ # Library routines # # CONFIG_CRC32 is not set +# CONFIG_LIBCRC32C is not set diff -Nru a/arch/mips/configs/lasat200_defconfig b/arch/mips/configs/lasat200_defconfig --- a/arch/mips/configs/lasat200_defconfig 2004-06-28 18:21:57 -07:00 +++ b/arch/mips/configs/lasat200_defconfig 2004-06-28 18:21:57 -07:00 @@ -112,6 +112,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set CONFIG_BOARD_SCACHE=y @@ -127,6 +128,7 @@ # # Bus options (PCI, PCMCIA, EISA, ISA, TC) # +CONFIG_HW_HAS_PCI=y CONFIG_PCI=y CONFIG_PCI_LEGACY_PROC=y # CONFIG_PCI_NAMES is not set @@ -242,7 +244,6 @@ # CONFIG_BLK_DEV_IDEDISK=y CONFIG_IDEDISK_MULTI_MODE=y -# CONFIG_IDEDISK_STROKE is not set # CONFIG_BLK_DEV_IDECD is not set # CONFIG_BLK_DEV_IDETAPE is not set # CONFIG_BLK_DEV_IDEFLOPPY is not set @@ -283,6 +284,7 @@ # CONFIG_BLK_DEV_SLC90E66 is not set # CONFIG_BLK_DEV_TRM290 is not set # CONFIG_BLK_DEV_VIA82CXXX is not set +# CONFIG_IDE_ARM is not set CONFIG_BLK_DEV_IDEDMA=y # CONFIG_IDEDMA_IVB is not set CONFIG_IDEDMA_AUTO=y @@ -301,7 +303,6 @@ # # Fusion MPT device support # -# CONFIG_FUSION is not set # # IEEE 1394 (FireWire) support @@ -438,7 +439,6 @@ # CONFIG_HIPPI is not set # CONFIG_PPP is not set # CONFIG_SLIP is not set -# CONFIG_RCPCI is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set @@ -665,7 +665,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -700,3 +699,4 @@ # Library routines # CONFIG_CRC32=y +CONFIG_LIBCRC32C=m diff -Nru a/arch/mips/configs/malta_defconfig b/arch/mips/configs/malta_defconfig --- a/arch/mips/configs/malta_defconfig 2004-06-28 18:21:58 -07:00 +++ b/arch/mips/configs/malta_defconfig 2004-06-28 18:21:58 -07:00 @@ -115,6 +115,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set CONFIG_CPU_HAS_PREFETCH=y @@ -129,6 +130,7 @@ # # Bus options (PCI, PCMCIA, EISA, ISA, TC) # +CONFIG_HW_HAS_PCI=y CONFIG_PCI=y CONFIG_PCI_LEGACY_PROC=y CONFIG_PCI_NAMES=y @@ -197,7 +199,6 @@ # # Fusion MPT device support # -# CONFIG_FUSION is not set # # IEEE 1394 (FireWire) support @@ -357,7 +358,6 @@ # CONFIG_HIPPI is not set # CONFIG_PPP is not set # CONFIG_SLIP is not set -# CONFIG_RCPCI is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set @@ -580,7 +580,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -615,3 +614,4 @@ # Library routines # CONFIG_CRC32=y +CONFIG_LIBCRC32C=m diff -Nru a/arch/mips/configs/mirage_defconfig b/arch/mips/configs/mirage_defconfig --- a/arch/mips/configs/mirage_defconfig 2004-06-28 18:21:58 -07:00 +++ b/arch/mips/configs/mirage_defconfig 2004-06-28 18:21:58 -07:00 @@ -105,6 +105,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set CONFIG_CPU_HAS_PREFETCH=y @@ -496,6 +497,9 @@ CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y # CONFIG_JFS_FS is not set CONFIG_FS_POSIX_ACL=y # CONFIG_XFS_FS is not set @@ -567,7 +571,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -652,11 +655,13 @@ # CONFIG_CRYPTO_ARC4 is not set CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_MICHAEL_MIC=y +CONFIG_CRYPTO_CRC32C=m # CONFIG_CRYPTO_TEST is not set # # Library routines # CONFIG_CRC32=y +CONFIG_LIBCRC32C=m CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y diff -Nru a/arch/mips/configs/mpc30x_defconfig b/arch/mips/configs/mpc30x_defconfig --- a/arch/mips/configs/mpc30x_defconfig 2004-06-28 18:21:59 -07:00 +++ b/arch/mips/configs/mpc30x_defconfig 2004-06-28 18:21:59 -07:00 @@ -59,6 +59,7 @@ # CONFIG_TANBAC_TB0229 is not set CONFIG_VICTOR_MPC30X=y # CONFIG_ZAO_CAPCELLA is not set +CONFIG_PCI_VR41XX=y CONFIG_VRC4173=y # CONFIG_TOSHIBA_JMR3927 is not set # CONFIG_MIPS_COBALT is not set @@ -91,7 +92,6 @@ CONFIG_DMA_NONCOHERENT=y CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_IRQ_CPU=y -CONFIG_DUMMY_KEYB=y CONFIG_MIPS_L1_CACHE_SHIFT=5 # CONFIG_FB is not set @@ -116,6 +116,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set # CONFIG_CPU_ADVANCED is not set @@ -126,6 +127,7 @@ # # Bus options (PCI, PCMCIA, EISA, ISA, TC) # +CONFIG_HW_HAS_PCI=y CONFIG_PCI=y CONFIG_PCI_LEGACY_PROC=y CONFIG_PCI_NAMES=y @@ -192,7 +194,6 @@ # # Fusion MPT device support # -# CONFIG_FUSION is not set # # IEEE 1394 (FireWire) support @@ -335,7 +336,6 @@ # CONFIG_HIPPI is not set # CONFIG_PPP is not set # CONFIG_SLIP is not set -# CONFIG_RCPCI is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set @@ -555,7 +555,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -602,11 +601,13 @@ # CONFIG_CRYPTO_ARC4 is not set CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_MICHAEL_MIC=y +CONFIG_CRYPTO_CRC32C=m # CONFIG_CRYPTO_TEST is not set # # Library routines # # CONFIG_CRC32 is not set +CONFIG_LIBCRC32C=m CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y diff -Nru a/arch/mips/configs/mtx1_defconfig b/arch/mips/configs/mtx1_defconfig --- a/arch/mips/configs/mtx1_defconfig 2004-06-28 18:21:57 -07:00 +++ b/arch/mips/configs/mtx1_defconfig 2004-06-28 18:21:57 -07:00 @@ -105,6 +105,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set CONFIG_CPU_HAS_PREFETCH=y @@ -496,6 +497,9 @@ CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y # CONFIG_JFS_FS is not set CONFIG_FS_POSIX_ACL=y # CONFIG_XFS_FS is not set @@ -567,7 +571,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -652,11 +655,13 @@ # CONFIG_CRYPTO_ARC4 is not set CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_MICHAEL_MIC=y +CONFIG_CRYPTO_CRC32C=m # CONFIG_CRYPTO_TEST is not set # # Library routines # CONFIG_CRC32=y +CONFIG_LIBCRC32C=m CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y diff -Nru a/arch/mips/configs/ocelot_c_defconfig b/arch/mips/configs/ocelot_c_defconfig --- a/arch/mips/configs/ocelot_c_defconfig 2004-06-28 18:21:54 -07:00 +++ b/arch/mips/configs/ocelot_c_defconfig 2004-06-28 18:21:54 -07:00 @@ -100,6 +100,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set CONFIG_BOARD_SCACHE=y @@ -114,7 +115,10 @@ # # Bus options (PCI, PCMCIA, EISA, ISA, TC) # -# CONFIG_PCI is not set +CONFIG_HW_HAS_PCI=y +CONFIG_PCI=y +CONFIG_PCI_LEGACY_PROC=y +CONFIG_PCI_NAMES=y CONFIG_MMU=y # @@ -154,8 +158,13 @@ # Block devices # # CONFIG_BLK_DEV_FD is not set +# CONFIG_BLK_CPQ_DA is not set +# CONFIG_BLK_CPQ_CISS_DA is not set +# CONFIG_BLK_DEV_DAC960 is not set +# CONFIG_BLK_DEV_UMEM is not set # CONFIG_BLK_DEV_LOOP is not set # CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_CARMEL is not set # CONFIG_BLK_DEV_RAM is not set # @@ -185,6 +194,7 @@ # # I2O device support # +# CONFIG_I2O is not set # # Networking support @@ -258,26 +268,50 @@ # CONFIG_ETHERTAP is not set # +# ARCnet devices +# +# CONFIG_ARCNET is not set + +# # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y # CONFIG_MII is not set +# CONFIG_HAPPYMEAL is not set +# CONFIG_SUNGEM is not set +# CONFIG_NET_VENDOR_3COM is not set + +# +# Tulip family network device support +# +# CONFIG_NET_TULIP is not set +# CONFIG_HP100 is not set +# CONFIG_NET_PCI is not set # # Ethernet (1000 Mbit) # -CONFIG_MV64340_ETH=y -CONFIG_MV64340_ETH_0=y -# CONFIG_MV64340_ETH_1 is not set -# CONFIG_MV64340_ETH_2 is not set +# CONFIG_ACENIC is not set +# CONFIG_DL2K is not set +# CONFIG_E1000 is not set +# CONFIG_NS83820 is not set +# CONFIG_HAMACHI is not set +# CONFIG_YELLOWFIN is not set +# CONFIG_R8169 is not set +# CONFIG_SK98LIN is not set +# CONFIG_TIGON3 is not set +# CONFIG_MV64340_ETH is not set # # Ethernet (10000 Mbit) # +# CONFIG_IXGB is not set +# CONFIG_S2IO is not set # # Token Ring devices # +# CONFIG_TR is not set # # Wireless LAN (non-hamradio) @@ -288,6 +322,8 @@ # Wan interfaces # # CONFIG_WAN is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set # CONFIG_PPP is not set # CONFIG_SLIP is not set # CONFIG_SHAPER is not set @@ -329,6 +365,7 @@ # CONFIG_SERIO_I8042 is not set CONFIG_SERIO_SERPORT=y # CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_PCIPS2 is not set # # Input Device Drivers @@ -426,6 +463,7 @@ # # USB support # +# CONFIG_USB is not set # # USB Gadget Support @@ -509,7 +547,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -544,3 +581,4 @@ # Library routines # # CONFIG_CRC32 is not set +# CONFIG_LIBCRC32C is not set diff -Nru a/arch/mips/configs/ocelot_defconfig b/arch/mips/configs/ocelot_defconfig --- a/arch/mips/configs/ocelot_defconfig 2004-06-28 18:21:56 -07:00 +++ b/arch/mips/configs/ocelot_defconfig 2004-06-28 18:21:56 -07:00 @@ -108,6 +108,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set CONFIG_BOARD_SCACHE=y @@ -124,6 +125,7 @@ # # Bus options (PCI, PCMCIA, EISA, ISA, TC) # +CONFIG_HW_HAS_PCI=y # CONFIG_PCI is not set CONFIG_MMU=y @@ -513,7 +515,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -548,3 +549,4 @@ # Library routines # # CONFIG_CRC32 is not set +# CONFIG_LIBCRC32C is not set diff -Nru a/arch/mips/configs/ocelot_g_defconfig b/arch/mips/configs/ocelot_g_defconfig --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/mips/configs/ocelot_g_defconfig 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,587 @@ +# +# Automatically generated make config: don't edit +# +CONFIG_MIPS=y +CONFIG_MIPS64=y +CONFIG_64BIT=y + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +CONFIG_CLEAN_COMPILE=y +CONFIG_STANDALONE=y +CONFIG_BROKEN_ON_SMP=y + +# +# General setup +# +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set +# CONFIG_BSD_PROCESS_ACCT is not set +CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set +CONFIG_LOG_BUF_SHIFT=14 +# CONFIG_HOTPLUG is not set +# CONFIG_IKCONFIG is not set +CONFIG_EMBEDDED=y +CONFIG_KALLSYMS=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set + +# +# Loadable module support +# +# CONFIG_MODULES is not set + +# +# Machine selection +# +# CONFIG_MACH_JAZZ is not set +# CONFIG_MACH_VR41XX is not set +# CONFIG_MIPS_COBALT is not set +# CONFIG_MACH_DECSTATION is not set +# CONFIG_MIPS_EV64120 is not set +# CONFIG_MIPS_EV96100 is not set +# CONFIG_MIPS_IVR is not set +# CONFIG_LASAT is not set +# CONFIG_MIPS_ITE8172 is not set +# CONFIG_MIPS_ATLAS is not set +# CONFIG_MIPS_MALTA is not set +# CONFIG_MIPS_SEAD is not set +# CONFIG_MOMENCO_OCELOT is not set +CONFIG_MOMENCO_OCELOT_G=y +# CONFIG_MOMENCO_OCELOT_C is not set +# CONFIG_MOMENCO_JAGUAR_ATX is not set +# CONFIG_PMC_YOSEMITE is not set +# CONFIG_DDB5074 is not set +# CONFIG_DDB5476 is not set +# CONFIG_DDB5477 is not set +# CONFIG_NEC_OSPREY is not set +# CONFIG_SGI_IP22 is not set +# CONFIG_SGI_IP27 is not set +# CONFIG_SGI_IP32 is not set +# CONFIG_SIBYTE_SB1xxx_SOC is not set +# CONFIG_SNI_RM200_PCI is not set +CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_HAVE_DEC_LOCK=y +CONFIG_DMA_NONCOHERENT=y +# CONFIG_CPU_LITTLE_ENDIAN is not set +CONFIG_IRQ_CPU=y +CONFIG_IRQ_CPU_RM7K=y +CONFIG_SWAP_IO_SPACE=y +# CONFIG_SYSCLK_75 is not set +# CONFIG_SYSCLK_83 is not set +CONFIG_SYSCLK_100=y +CONFIG_MIPS_L1_CACHE_SHIFT=5 +# CONFIG_FB is not set + +# +# CPU selection +# +# CONFIG_CPU_MIPS32 is not set +# CONFIG_CPU_MIPS64 is not set +# CONFIG_CPU_R3000 is not set +# CONFIG_CPU_TX39XX is not set +# CONFIG_CPU_VR41XX is not set +# CONFIG_CPU_R4300 is not set +# CONFIG_CPU_R4X00 is not set +# CONFIG_CPU_TX49XX is not set +# CONFIG_CPU_R5000 is not set +# CONFIG_CPU_R5432 is not set +# CONFIG_CPU_R6000 is not set +# CONFIG_CPU_NEVADA is not set +# CONFIG_CPU_R8000 is not set +# CONFIG_CPU_R10000 is not set +CONFIG_CPU_RM7000=y +# CONFIG_CPU_RM9000 is not set +# CONFIG_CPU_SB1 is not set +CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set +# CONFIG_PAGE_SIZE_16KB is not set +# CONFIG_PAGE_SIZE_64KB is not set +CONFIG_BOARD_SCACHE=y +CONFIG_RM7000_CPU_SCACHE=y +CONFIG_CPU_HAS_PREFETCH=y +CONFIG_CPU_HAS_LLSC=y +CONFIG_CPU_HAS_LLDSCD=y +CONFIG_CPU_HAS_SYNC=y +# CONFIG_PREEMPT is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set + +# +# Bus options (PCI, PCMCIA, EISA, ISA, TC) +# +CONFIG_HW_HAS_PCI=y +CONFIG_PCI=y +CONFIG_PCI_LEGACY_PROC=y +CONFIG_PCI_NAMES=y +CONFIG_MMU=y + +# +# Executable file formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_MISC is not set +CONFIG_MIPS32_COMPAT=y +CONFIG_COMPAT=y +CONFIG_MIPS32_O32=y +CONFIG_MIPS32_N32=y +CONFIG_BINFMT_ELF32=y + +# +# Device Drivers +# + +# +# Generic Driver Options +# + +# +# Memory Technology Devices (MTD) +# +# CONFIG_MTD is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set + +# +# Plug and Play support +# + +# +# Block devices +# +# CONFIG_BLK_DEV_FD is not set +# CONFIG_BLK_CPQ_DA is not set +# CONFIG_BLK_CPQ_CISS_DA is not set +# CONFIG_BLK_DEV_DAC960 is not set +# CONFIG_BLK_DEV_UMEM is not set +# CONFIG_BLK_DEV_LOOP is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_CARMEL is not set +# CONFIG_BLK_DEV_RAM is not set + +# +# ATA/ATAPI/MFM/RLL support +# +# CONFIG_IDE is not set + +# +# SCSI device support +# +# CONFIG_SCSI is not set + +# +# Multi-device support (RAID and LVM) +# +# CONFIG_MD is not set + +# +# Fusion MPT device support +# + +# +# IEEE 1394 (FireWire) support +# +# CONFIG_IEEE1394 is not set + +# +# I2O device support +# +# CONFIG_I2O is not set + +# +# Networking support +# +CONFIG_NET=y + +# +# Networking options +# +# CONFIG_PACKET is not set +CONFIG_NETLINK_DEV=y +CONFIG_UNIX=y +CONFIG_NET_KEY=y +CONFIG_INET=y +# CONFIG_IP_MULTICAST is not set +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +# CONFIG_IP_PNP_BOOTP is not set +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_ARPD is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_IPV6 is not set +# CONFIG_NETFILTER is not set +CONFIG_XFRM=y +# CONFIG_XFRM_USER is not set + +# +# SCTP Configuration (EXPERIMENTAL) +# +# CONFIG_IP_SCTP is not set +# CONFIG_ATM is not set +# CONFIG_BRIDGE is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_NET_DIVERT is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set +# CONFIG_NET_FASTROUTE is not set +# CONFIG_NET_HW_FLOWCONTROL is not set + +# +# QoS and/or fair queueing +# +# CONFIG_NET_SCHED is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set +CONFIG_NETDEVICES=y +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set +# CONFIG_ETHERTAP is not set + +# +# ARCnet devices +# +# CONFIG_ARCNET is not set + +# +# Ethernet (10 or 100Mbit) +# +CONFIG_NET_ETHERNET=y +CONFIG_MII=y +CONFIG_GALILEO_64240_ETH=y +# CONFIG_HAPPYMEAL is not set +# CONFIG_SUNGEM is not set +# CONFIG_NET_VENDOR_3COM is not set + +# +# Tulip family network device support +# +# CONFIG_NET_TULIP is not set +# CONFIG_HP100 is not set +# CONFIG_NET_PCI is not set + +# +# Ethernet (1000 Mbit) +# +# CONFIG_ACENIC is not set +# CONFIG_DL2K is not set +# CONFIG_E1000 is not set +# CONFIG_NS83820 is not set +# CONFIG_HAMACHI is not set +# CONFIG_YELLOWFIN is not set +# CONFIG_R8169 is not set +# CONFIG_SK98LIN is not set +# CONFIG_TIGON3 is not set + +# +# Ethernet (10000 Mbit) +# +# CONFIG_IXGB is not set +# CONFIG_S2IO is not set + +# +# Token Ring devices +# +# CONFIG_TR is not set + +# +# Wireless LAN (non-hamradio) +# +# CONFIG_NET_RADIO is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set + +# +# ISDN subsystem +# +# CONFIG_ISDN is not set + +# +# Telephony Support +# +# CONFIG_PHONE is not set + +# +# Input device support +# +CONFIG_INPUT=y + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_TSDEV is not set +# CONFIG_INPUT_EVDEV is not set +# CONFIG_INPUT_EVBUG is not set + +# +# Input I/O drivers +# +# CONFIG_GAMEPORT is not set +CONFIG_SOUND_GAMEPORT=y +CONFIG_SERIO=y +# CONFIG_SERIO_I8042 is not set +CONFIG_SERIO_SERPORT=y +# CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_PCIPS2 is not set + +# +# Input Device Drivers +# +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_INPUT_MISC is not set + +# +# Character devices +# +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +# CONFIG_SERIAL_NONSTANDARD is not set + +# +# Serial drivers +# +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_NR_UARTS=4 +# CONFIG_SERIAL_8250_EXTENDED is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 +# CONFIG_QIC02_TAPE is not set + +# +# IPMI +# +# CONFIG_IPMI_HANDLER is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_RTC is not set +# CONFIG_GEN_RTC is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set + +# +# Ftape, the floppy tape device driver +# +# CONFIG_FTAPE is not set +# CONFIG_AGP is not set +# CONFIG_DRM is not set +# CONFIG_RAW_DRIVER is not set + +# +# I2C support +# +# CONFIG_I2C is not set + +# +# Misc devices +# + +# +# Multimedia devices +# +# CONFIG_VIDEO_DEV is not set + +# +# Digital Video Broadcasting Devices +# +# CONFIG_DVB is not set + +# +# Graphics support +# + +# +# Console display driver support +# +# CONFIG_VGA_CONSOLE is not set +# CONFIG_MDA_CONSOLE is not set +CONFIG_DUMMY_CONSOLE=y + +# +# Sound +# +# CONFIG_SOUND is not set + +# +# USB support +# +# CONFIG_USB is not set + +# +# USB Gadget Support +# +# CONFIG_USB_GADGET is not set + +# +# File systems +# +CONFIG_EXT2_FS=y +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT3_FS is not set +# CONFIG_JBD is not set +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +# CONFIG_XFS_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_ROMFS_FS is not set +# CONFIG_QUOTA is not set +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +# CONFIG_FAT_FS is not set +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_SYSFS=y +# CONFIG_DEVFS_FS is not set +CONFIG_DEVPTS_FS_XATTR=y +CONFIG_DEVPTS_FS_SECURITY=y +# CONFIG_TMPFS is not set +# CONFIG_HUGETLB_PAGE is not set +CONFIG_RAMFS=y + +# +# Miscellaneous filesystems +# +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +# CONFIG_CRAMFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set + +# +# Network File Systems +# +CONFIG_NFS_FS=y +# CONFIG_NFS_V3 is not set +# CONFIG_NFS_V4 is not set +# CONFIG_NFS_DIRECTIO is not set +CONFIG_NFSD=y +# CONFIG_NFSD_V3 is not set +# CONFIG_NFSD_TCP is not set +CONFIG_ROOT_NFS=y +CONFIG_LOCKD=y +CONFIG_EXPORTFS=y +CONFIG_SUNRPC=y +# CONFIG_RPCSEC_GSS_KRB5 is not set +# CONFIG_SMB_FS is not set +# CONFIG_CIFS is not set +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y + +# +# Native Language Support +# +# CONFIG_NLS is not set + +# +# Kernel hacking +# +CONFIG_CROSSCOMPILE=y +CONFIG_CMDLINE="" +# CONFIG_DEBUG_KERNEL is not set + +# +# Security options +# +# CONFIG_SECURITY is not set + +# +# Cryptographic options +# +# CONFIG_CRYPTO is not set + +# +# Library routines +# +# CONFIG_CRC32 is not set +# CONFIG_LIBCRC32C is not set diff -Nru a/arch/mips/configs/osprey_defconfig b/arch/mips/configs/osprey_defconfig --- a/arch/mips/configs/osprey_defconfig 2004-06-28 18:21:52 -07:00 +++ b/arch/mips/configs/osprey_defconfig 2004-06-28 18:21:52 -07:00 @@ -83,7 +83,6 @@ CONFIG_DMA_NONCOHERENT=y CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_IRQ_CPU=y -CONFIG_DUMMY_KEYB=y CONFIG_MIPS_L1_CACHE_SHIFT=5 # CONFIG_FB is not set CONFIG_VR4181=y @@ -109,6 +108,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set # CONFIG_CPU_ADVANCED is not set @@ -507,7 +507,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -542,3 +541,4 @@ # Library routines # # CONFIG_CRC32 is not set +CONFIG_LIBCRC32C=m diff -Nru a/arch/mips/configs/pb1000_defconfig b/arch/mips/configs/pb1000_defconfig --- a/arch/mips/configs/pb1000_defconfig 2004-06-28 18:21:52 -07:00 +++ b/arch/mips/configs/pb1000_defconfig 2004-06-28 18:21:52 -07:00 @@ -105,6 +105,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set CONFIG_CPU_HAS_PREFETCH=y @@ -496,6 +497,9 @@ CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y # CONFIG_JFS_FS is not set CONFIG_FS_POSIX_ACL=y # CONFIG_XFS_FS is not set @@ -567,7 +571,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -652,11 +655,13 @@ # CONFIG_CRYPTO_ARC4 is not set CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_MICHAEL_MIC=y +CONFIG_CRYPTO_CRC32C=m # CONFIG_CRYPTO_TEST is not set # # Library routines # CONFIG_CRC32=y +CONFIG_LIBCRC32C=m CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y diff -Nru a/arch/mips/configs/pb1100_defconfig b/arch/mips/configs/pb1100_defconfig --- a/arch/mips/configs/pb1100_defconfig 2004-06-28 18:21:56 -07:00 +++ b/arch/mips/configs/pb1100_defconfig 2004-06-28 18:21:56 -07:00 @@ -105,6 +105,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set CONFIG_CPU_HAS_PREFETCH=y @@ -496,6 +497,9 @@ CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y # CONFIG_JFS_FS is not set CONFIG_FS_POSIX_ACL=y # CONFIG_XFS_FS is not set @@ -567,7 +571,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -652,11 +655,13 @@ # CONFIG_CRYPTO_ARC4 is not set CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_MICHAEL_MIC=y +CONFIG_CRYPTO_CRC32C=m # CONFIG_CRYPTO_TEST is not set # # Library routines # CONFIG_CRC32=y +CONFIG_LIBCRC32C=m CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y diff -Nru a/arch/mips/configs/pb1500_defconfig b/arch/mips/configs/pb1500_defconfig --- a/arch/mips/configs/pb1500_defconfig 2004-06-28 18:21:55 -07:00 +++ b/arch/mips/configs/pb1500_defconfig 2004-06-28 18:21:55 -07:00 @@ -123,6 +123,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set CONFIG_CPU_HAS_PREFETCH=y @@ -137,6 +138,7 @@ # # Bus options (PCI, PCMCIA, EISA, ISA, TC) # +CONFIG_HW_HAS_PCI=y CONFIG_PCI=y CONFIG_PCI_LEGACY_PROC=y CONFIG_PCI_NAMES=y @@ -213,7 +215,6 @@ # CONFIG_BLK_DEV_IDEDISK=y # CONFIG_IDEDISK_MULTI_MODE is not set -# CONFIG_IDEDISK_STROKE is not set # CONFIG_BLK_DEV_IDECS is not set # CONFIG_BLK_DEV_IDECD is not set # CONFIG_BLK_DEV_IDETAPE is not set @@ -254,6 +255,7 @@ # CONFIG_BLK_DEV_SLC90E66 is not set # CONFIG_BLK_DEV_TRM290 is not set # CONFIG_BLK_DEV_VIA82CXXX is not set +# CONFIG_IDE_ARM is not set CONFIG_BLK_DEV_IDEDMA=y # CONFIG_IDEDMA_IVB is not set # CONFIG_IDEDMA_AUTO is not set @@ -272,7 +274,6 @@ # # Fusion MPT device support # -# CONFIG_FUSION is not set # # IEEE 1394 (FireWire) support @@ -452,7 +453,6 @@ # CONFIG_PPP_BSDCOMP is not set CONFIG_PPPOE=m # CONFIG_SLIP is not set -# CONFIG_RCPCI is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set @@ -611,6 +611,9 @@ CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y # CONFIG_JFS_FS is not set CONFIG_FS_POSIX_ACL=y # CONFIG_XFS_FS is not set @@ -682,7 +685,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -767,11 +769,13 @@ # CONFIG_CRYPTO_ARC4 is not set CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_MICHAEL_MIC=y +# CONFIG_CRYPTO_CRC32C is not set # CONFIG_CRYPTO_TEST is not set # # Library routines # CONFIG_CRC32=y +# CONFIG_LIBCRC32C is not set CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y diff -Nru a/arch/mips/configs/pb1550_defconfig b/arch/mips/configs/pb1550_defconfig --- a/arch/mips/configs/pb1550_defconfig 2004-06-28 18:21:54 -07:00 +++ b/arch/mips/configs/pb1550_defconfig 2004-06-28 18:21:54 -07:00 @@ -122,6 +122,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set CONFIG_CPU_HAS_PREFETCH=y @@ -136,6 +137,7 @@ # # Bus options (PCI, PCMCIA, EISA, ISA, TC) # +CONFIG_HW_HAS_PCI=y CONFIG_PCI=y CONFIG_PCI_LEGACY_PROC=y CONFIG_PCI_NAMES=y @@ -212,7 +214,6 @@ # CONFIG_BLK_DEV_IDEDISK=y # CONFIG_IDEDISK_MULTI_MODE is not set -# CONFIG_IDEDISK_STROKE is not set # CONFIG_BLK_DEV_IDECS is not set # CONFIG_BLK_DEV_IDECD is not set # CONFIG_BLK_DEV_IDETAPE is not set @@ -253,6 +254,7 @@ # CONFIG_BLK_DEV_SLC90E66 is not set # CONFIG_BLK_DEV_TRM290 is not set # CONFIG_BLK_DEV_VIA82CXXX is not set +# CONFIG_IDE_ARM is not set CONFIG_BLK_DEV_IDEDMA=y # CONFIG_IDEDMA_IVB is not set # CONFIG_IDEDMA_AUTO is not set @@ -271,7 +273,6 @@ # # Fusion MPT device support # -# CONFIG_FUSION is not set # # IEEE 1394 (FireWire) support @@ -451,7 +452,6 @@ # CONFIG_PPP_BSDCOMP is not set CONFIG_PPPOE=m # CONFIG_SLIP is not set -# CONFIG_RCPCI is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set @@ -610,6 +610,9 @@ CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y # CONFIG_JFS_FS is not set CONFIG_FS_POSIX_ACL=y # CONFIG_XFS_FS is not set @@ -681,7 +684,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -766,11 +768,13 @@ # CONFIG_CRYPTO_ARC4 is not set CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_MICHAEL_MIC=y +CONFIG_CRYPTO_CRC32C=m # CONFIG_CRYPTO_TEST is not set # # Library routines # CONFIG_CRC32=y +CONFIG_LIBCRC32C=m CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y diff -Nru a/arch/mips/configs/rm200_defconfig b/arch/mips/configs/rm200_defconfig --- a/arch/mips/configs/rm200_defconfig 2004-06-28 18:21:55 -07:00 +++ b/arch/mips/configs/rm200_defconfig 2004-06-28 18:21:55 -07:00 @@ -116,6 +116,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set # CONFIG_64BIT_PHYS_ADDR is not set @@ -129,6 +130,7 @@ # # Bus options (PCI, PCMCIA, EISA, ISA, TC) # +CONFIG_HW_HAS_PCI=y CONFIG_PCI=y CONFIG_PCI_LEGACY_PROC=y # CONFIG_PCI_NAMES is not set @@ -246,7 +248,6 @@ # Some SCSI devices (e.g. CD jukebox) support multiple LUNs # # CONFIG_SCSI_MULTI_LUN is not set -# CONFIG_SCSI_REPORT_LUNS is not set CONFIG_SCSI_CONSTANTS=y # CONFIG_SCSI_LOGGING is not set @@ -268,12 +269,12 @@ # CONFIG_SCSI_AIC7XXX is not set # CONFIG_SCSI_AIC7XXX_OLD is not set # CONFIG_SCSI_AIC79XX is not set +# CONFIG_SCSI_DPT_I2O is not set # CONFIG_SCSI_ADVANSYS is not set # CONFIG_SCSI_IN2000 is not set # CONFIG_SCSI_MEGARAID is not set # CONFIG_SCSI_SATA is not set # CONFIG_SCSI_BUSLOGIC is not set -# CONFIG_SCSI_CPQFCTS is not set # CONFIG_SCSI_DMX3191D is not set # CONFIG_SCSI_DTC3280 is not set # CONFIG_SCSI_EATA is not set @@ -294,6 +295,7 @@ CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 # CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set +# CONFIG_SCSI_IPR is not set # CONFIG_SCSI_PAS16 is not set # CONFIG_SCSI_PSI240I is not set # CONFIG_SCSI_QLOGIC_FAS is not set @@ -695,7 +697,6 @@ # CONFIG_PPP is not set # CONFIG_SLIP is not set # CONFIG_NET_FC is not set -# CONFIG_RCPCI is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set @@ -908,6 +909,7 @@ CONFIG_USB_KBTAB=m CONFIG_USB_POWERMATE=m # CONFIG_USB_MTOUCH is not set +CONFIG_USB_EGALAX=m CONFIG_USB_XPAD=m # CONFIG_USB_ATI_REMOTE is not set @@ -1016,6 +1018,7 @@ CONFIG_USB_LCD=m CONFIG_USB_LED=m CONFIG_USB_CYTHERM=m +CONFIG_USB_PHIDGETSERVO=m CONFIG_USB_TEST=m # @@ -1051,10 +1054,14 @@ CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y CONFIG_JFS_FS=m # CONFIG_JFS_POSIX_ACL is not set # CONFIG_JFS_DEBUG is not set # CONFIG_JFS_STATISTICS is not set +CONFIG_FS_POSIX_ACL=y CONFIG_XFS_FS=m # CONFIG_XFS_RT is not set CONFIG_XFS_QUOTA=y @@ -1140,6 +1147,7 @@ CONFIG_SMB_FS=m # CONFIG_SMB_NLS_DEFAULT is not set CONFIG_CIFS=m +# CONFIG_CIFS_STATS is not set CONFIG_NCP_FS=m CONFIG_NCPFS_PACKET_SIGNING=y CONFIG_NCPFS_IOCTL_LOCKING=y @@ -1151,7 +1159,6 @@ CONFIG_NCPFS_EXTRAS=y CONFIG_CODA_FS=m CONFIG_CODA_FS_OLD_API=y -CONFIG_INTERMEZZO_FS=m CONFIG_AFS_FS=m CONFIG_RXRPC=m @@ -1252,11 +1259,13 @@ # CONFIG_CRYPTO_ARC4 is not set CONFIG_CRYPTO_DEFLATE=m CONFIG_CRYPTO_MICHAEL_MIC=m +# CONFIG_CRYPTO_CRC32C is not set CONFIG_CRYPTO_TEST=m # # Library routines # CONFIG_CRC32=y +# CONFIG_LIBCRC32C is not set CONFIG_ZLIB_INFLATE=m CONFIG_ZLIB_DEFLATE=m diff -Nru a/arch/mips/configs/sb1250-swarm_defconfig b/arch/mips/configs/sb1250-swarm_defconfig --- a/arch/mips/configs/sb1250-swarm_defconfig 2004-06-28 18:22:00 -07:00 +++ b/arch/mips/configs/sb1250-swarm_defconfig 2004-06-28 18:22:00 -07:00 @@ -93,7 +93,6 @@ # CONFIG_CPU_SB1_PASS_4 is not set # CONFIG_CPU_SB1_PASS_2_112x is not set # CONFIG_CPU_SB1_PASS_3 is not set -CONFIG_SIBYTE_HAS_PCI=y CONFIG_SIBYTE_HAS_LDT=y # CONFIG_SIMULATION is not set CONFIG_SIBYTE_CFE=y @@ -107,7 +106,6 @@ CONFIG_HAVE_DEC_LOCK=y CONFIG_DMA_COHERENT=y # CONFIG_CPU_LITTLE_ENDIAN is not set -CONFIG_DUMMY_KEYB=y CONFIG_SWAP_IO_SPACE=y CONFIG_BOOT_ELF32=y CONFIG_MIPS_L1_CACHE_SHIFT=5 @@ -134,6 +132,7 @@ # CONFIG_CPU_RM9000 is not set CONFIG_CPU_SB1=y CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set # CONFIG_SIBYTE_DMA_PAGEOPS is not set @@ -154,6 +153,7 @@ # # Bus options (PCI, PCMCIA, EISA, ISA, TC) # +CONFIG_HW_HAS_PCI=y CONFIG_PCI=y CONFIG_PCI_LEGACY_PROC=y CONFIG_PCI_NAMES=y @@ -213,7 +213,30 @@ # # ATA/ATAPI/MFM/RLL support # -# CONFIG_IDE is not set +CONFIG_IDE=y +CONFIG_BLK_DEV_IDE=y + +# +# Please see Documentation/ide.txt for help/info on IDE drives +# +CONFIG_BLK_DEV_IDEDISK=y +# CONFIG_IDEDISK_MULTI_MODE is not set +CONFIG_BLK_DEV_IDECD=y +CONFIG_BLK_DEV_IDETAPE=y +CONFIG_BLK_DEV_IDEFLOPPY=y +# CONFIG_IDE_TASK_IOCTL is not set +# CONFIG_IDE_TASKFILE_IO is not set + +# +# IDE chipset support/bugfixes +# +CONFIG_IDE_GENERIC=y +# CONFIG_BLK_DEV_IDEPCI is not set +CONFIG_BLK_DEV_IDE_SWARM=y +# CONFIG_IDE_ARM is not set +# CONFIG_BLK_DEV_IDEDMA is not set +# CONFIG_IDEDMA_AUTO is not set +# CONFIG_BLK_DEV_HD is not set # # SCSI device support @@ -228,7 +251,6 @@ # # Fusion MPT device support # -# CONFIG_FUSION is not set # # IEEE 1394 (FireWire) support @@ -371,7 +393,6 @@ # CONFIG_HIPPI is not set # CONFIG_PPP is not set # CONFIG_SLIP is not set -# CONFIG_RCPCI is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set @@ -575,7 +596,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -623,11 +643,13 @@ # CONFIG_CRYPTO_ARC4 is not set CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_MICHAEL_MIC=y +# CONFIG_CRYPTO_CRC32C is not set # CONFIG_CRYPTO_TEST is not set # # Library routines # CONFIG_CRC32=y +# CONFIG_LIBCRC32C is not set CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y diff -Nru a/arch/mips/configs/sead_defconfig b/arch/mips/configs/sead_defconfig --- a/arch/mips/configs/sead_defconfig 2004-06-28 18:21:57 -07:00 +++ b/arch/mips/configs/sead_defconfig 2004-06-28 18:21:57 -07:00 @@ -19,7 +19,6 @@ # CONFIG_SWAP=y # CONFIG_SYSVIPC is not set -# CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y # CONFIG_AUDIT is not set @@ -103,6 +102,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set CONFIG_CPU_HAS_PREFETCH=y @@ -429,3 +429,4 @@ # Library routines # # CONFIG_CRC32 is not set +# CONFIG_LIBCRC32C is not set diff -Nru a/arch/mips/configs/tb0226_defconfig b/arch/mips/configs/tb0226_defconfig --- a/arch/mips/configs/tb0226_defconfig 2004-06-28 18:21:57 -07:00 +++ b/arch/mips/configs/tb0226_defconfig 2004-06-28 18:21:57 -07:00 @@ -90,7 +90,6 @@ CONFIG_DMA_NONCOHERENT=y CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_IRQ_CPU=y -CONFIG_DUMMY_KEYB=y CONFIG_MIPS_L1_CACHE_SHIFT=5 CONFIG_FB=y @@ -115,6 +114,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set # CONFIG_CPU_ADVANCED is not set @@ -125,6 +125,7 @@ # # Bus options (PCI, PCMCIA, EISA, ISA, TC) # +CONFIG_HW_HAS_PCI=y # CONFIG_PCI is not set CONFIG_MMU=y @@ -179,7 +180,6 @@ # CONFIG_BLK_DEV_IDEDISK=y CONFIG_IDEDISK_MULTI_MODE=y -# CONFIG_IDEDISK_STROKE is not set # CONFIG_BLK_DEV_IDECD is not set # CONFIG_BLK_DEV_IDETAPE is not set # CONFIG_BLK_DEV_IDEFLOPPY is not set @@ -191,6 +191,7 @@ # IDE chipset support/bugfixes # CONFIG_IDE_GENERIC=y +# CONFIG_IDE_ARM is not set # CONFIG_BLK_DEV_IDEDMA is not set # CONFIG_IDEDMA_AUTO is not set # CONFIG_BLK_DEV_HD is not set @@ -215,7 +216,6 @@ # Some SCSI devices (e.g. CD jukebox) support multiple LUNs # CONFIG_SCSI_MULTI_LUN=y -# CONFIG_SCSI_REPORT_LUNS is not set CONFIG_SCSI_CONSTANTS=y # CONFIG_SCSI_LOGGING is not set @@ -608,7 +608,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -681,5 +680,6 @@ # Library routines # # CONFIG_CRC32 is not set +# CONFIG_LIBCRC32C is not set CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=m diff -Nru a/arch/mips/configs/tb0229_defconfig b/arch/mips/configs/tb0229_defconfig --- a/arch/mips/configs/tb0229_defconfig 2004-06-28 18:21:59 -07:00 +++ b/arch/mips/configs/tb0229_defconfig 2004-06-28 18:21:59 -07:00 @@ -59,7 +59,8 @@ CONFIG_TANBAC_TB0229=y # CONFIG_VICTOR_MPC30X is not set # CONFIG_ZAO_CAPCELLA is not set -# CONFIG_VRC4173 is not set +CONFIG_PCI_VR41XX=y +CONFIG_VRC4173=y # CONFIG_TOSHIBA_JMR3927 is not set # CONFIG_MIPS_COBALT is not set # CONFIG_MACH_DECSTATION is not set @@ -91,7 +92,6 @@ CONFIG_DMA_NONCOHERENT=y CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_IRQ_CPU=y -CONFIG_DUMMY_KEYB=y CONFIG_MIPS_L1_CACHE_SHIFT=5 # CONFIG_FB is not set CONFIG_TANBAC_TB0219=y @@ -117,6 +117,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set # CONFIG_CPU_ADVANCED is not set @@ -127,6 +128,7 @@ # # Bus options (PCI, PCMCIA, EISA, ISA, TC) # +CONFIG_HW_HAS_PCI=y CONFIG_PCI=y CONFIG_PCI_LEGACY_PROC=y CONFIG_PCI_NAMES=y @@ -196,7 +198,6 @@ # # Fusion MPT device support # -# CONFIG_FUSION is not set # # IEEE 1394 (FireWire) support @@ -355,7 +356,6 @@ CONFIG_SLIP_COMPRESSED=y CONFIG_SLIP_SMART=y CONFIG_SLIP_MODE_SLIP6=y -# CONFIG_RCPCI is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set @@ -599,7 +599,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -672,5 +671,6 @@ # Library routines # # CONFIG_CRC32 is not set +# CONFIG_LIBCRC32C is not set CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=m diff -Nru a/arch/mips/configs/workpad_defconfig b/arch/mips/configs/workpad_defconfig --- a/arch/mips/configs/workpad_defconfig 2004-06-28 18:21:58 -07:00 +++ b/arch/mips/configs/workpad_defconfig 2004-06-28 18:21:58 -07:00 @@ -115,6 +115,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set # CONFIG_CPU_ADVANCED is not set @@ -179,7 +180,6 @@ # CONFIG_BLK_DEV_IDEDISK=y # CONFIG_IDEDISK_MULTI_MODE is not set -# CONFIG_IDEDISK_STROKE is not set # CONFIG_BLK_DEV_IDECD is not set # CONFIG_BLK_DEV_IDETAPE is not set # CONFIG_BLK_DEV_IDEFLOPPY is not set @@ -190,6 +190,7 @@ # IDE chipset support/bugfixes # CONFIG_IDE_GENERIC=y +# CONFIG_IDE_ARM is not set # CONFIG_IDE_CHIPSETS is not set # CONFIG_BLK_DEV_IDEDMA is not set # CONFIG_IDEDMA_AUTO is not set @@ -573,7 +574,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -608,3 +608,4 @@ # Library routines # # CONFIG_CRC32 is not set +# CONFIG_LIBCRC32C is not set diff -Nru a/arch/mips/configs/xxs1500_defconfig b/arch/mips/configs/xxs1500_defconfig --- a/arch/mips/configs/xxs1500_defconfig 2004-06-28 18:21:59 -07:00 +++ b/arch/mips/configs/xxs1500_defconfig 2004-06-28 18:21:59 -07:00 @@ -105,6 +105,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set CONFIG_CPU_HAS_PREFETCH=y @@ -496,6 +497,9 @@ CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y # CONFIG_JFS_FS is not set CONFIG_FS_POSIX_ACL=y # CONFIG_XFS_FS is not set @@ -567,7 +571,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -652,11 +655,13 @@ # CONFIG_CRYPTO_ARC4 is not set CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_MICHAEL_MIC=y +# CONFIG_CRYPTO_CRC32C is not set # CONFIG_CRYPTO_TEST is not set # # Library routines # CONFIG_CRC32=y +# CONFIG_LIBCRC32C is not set CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y diff -Nru a/arch/mips/configs/yosemite_defconfig b/arch/mips/configs/yosemite_defconfig --- a/arch/mips/configs/yosemite_defconfig 2004-06-28 18:21:59 -07:00 +++ b/arch/mips/configs/yosemite_defconfig 2004-06-28 18:21:59 -07:00 @@ -9,20 +9,20 @@ # # Code maturity level options # -CONFIG_EXPERIMENTAL=y +# CONFIG_EXPERIMENTAL is not set CONFIG_CLEAN_COMPILE=y CONFIG_STANDALONE=y +CONFIG_BROKEN_ON_SMP=y # # General setup # CONFIG_SWAP=y CONFIG_SYSVIPC=y -# CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y # CONFIG_AUDIT is not set -CONFIG_LOG_BUF_SHIFT=15 +CONFIG_LOG_BUF_SHIFT=14 # CONFIG_HOTPLUG is not set CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y @@ -41,47 +41,40 @@ # CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y -# CONFIG_MODULE_FORCE_UNLOAD is not set CONFIG_OBSOLETE_MODPARM=y -CONFIG_MODVERSIONS=y CONFIG_KMOD=y -CONFIG_STOP_MACHINE=y # # Machine selection # # CONFIG_MACH_JAZZ is not set -# CONFIG_BAGET_MIPS is not set # CONFIG_MACH_VR41XX is not set # CONFIG_TOSHIBA_JMR3927 is not set -# CONFIG_MIPS_COBALT is not set # CONFIG_MACH_DECSTATION is not set -# CONFIG_MIPS_EV64120 is not set -# CONFIG_MIPS_EV96100 is not set # CONFIG_MIPS_IVR is not set # CONFIG_LASAT is not set # CONFIG_MIPS_ITE8172 is not set # CONFIG_MIPS_ATLAS is not set # CONFIG_MIPS_MALTA is not set -# CONFIG_MIPS_SEAD is not set # CONFIG_MOMENCO_OCELOT is not set # CONFIG_MOMENCO_OCELOT_G is not set # CONFIG_MOMENCO_OCELOT_C is not set # CONFIG_MOMENCO_JAGUAR_ATX is not set -# CONFIG_PMC_YOSEMITE is not set -# CONFIG_DDB5074 is not set +CONFIG_PMC_YOSEMITE=y +# CONFIG_HYPERTRANSPORT is not set # CONFIG_DDB5476 is not set # CONFIG_DDB5477 is not set # CONFIG_NEC_OSPREY is not set # CONFIG_SGI_IP22 is not set -# CONFIG_SGI_IP32 is not set # CONFIG_SOC_AU1X00 is not set -# CONFIG_SIBYTE_SB1xxx_SOC is not set # CONFIG_SNI_RM200_PCI is not set # CONFIG_TOSHIBA_RBTX4927 is not set CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_HAVE_DEC_LOCK=y +CONFIG_DMA_COHERENT=y # CONFIG_CPU_LITTLE_ENDIAN is not set +CONFIG_IRQ_CPU=y +CONFIG_IRQ_CPU_RM7K=y CONFIG_MIPS_L1_CACHE_SHIFT=5 # CONFIG_FB is not set @@ -106,6 +99,7 @@ CONFIG_CPU_RM9000=y # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set CONFIG_CPU_HAS_PREFETCH=y @@ -114,15 +108,18 @@ CONFIG_CPU_HAS_LLSC=y CONFIG_CPU_HAS_LLDSCD=y CONFIG_CPU_HAS_SYNC=y -# CONFIG_HIGHMEM is not set -CONFIG_SMP=y -CONFIG_NR_CPUS=2 +CONFIG_HIGHMEM=y +# CONFIG_SMP is not set # CONFIG_PREEMPT is not set # CONFIG_DEBUG_SPINLOCK_SLEEP is not set # # Bus options (PCI, PCMCIA, EISA, ISA, TC) # +CONFIG_HW_HAS_PCI=y +CONFIG_PCI=y +CONFIG_PCI_LEGACY_PROC=y +CONFIG_PCI_NAMES=y CONFIG_MMU=y # @@ -159,11 +156,14 @@ # Block devices # # CONFIG_BLK_DEV_FD is not set -CONFIG_BLK_DEV_LOOP=y -# CONFIG_BLK_DEV_CRYPTOLOOP is not set +# CONFIG_BLK_CPQ_DA is not set +# CONFIG_BLK_CPQ_CISS_DA is not set +# CONFIG_BLK_DEV_DAC960 is not set +# CONFIG_BLK_DEV_LOOP is not set # CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_CARMEL is not set # CONFIG_BLK_DEV_RAM is not set -CONFIG_LBD=y +# CONFIG_LBD is not set # # ATA/ATAPI/MFM/RLL support @@ -173,40 +173,7 @@ # # SCSI device support # -CONFIG_SCSI=y -CONFIG_SCSI_PROC_FS=y - -# -# SCSI support type (disk, tape, CD-ROM) -# -CONFIG_BLK_DEV_SD=y -# CONFIG_CHR_DEV_ST is not set -# CONFIG_CHR_DEV_OSST is not set -CONFIG_BLK_DEV_SR=y -# CONFIG_BLK_DEV_SR_VENDOR is not set -CONFIG_CHR_DEV_SG=y - -# -# Some SCSI devices (e.g. CD jukebox) support multiple LUNs -# -# CONFIG_SCSI_MULTI_LUN is not set -CONFIG_SCSI_REPORT_LUNS=y -# CONFIG_SCSI_CONSTANTS is not set -# CONFIG_SCSI_LOGGING is not set - -# -# SCSI Transport Attributes -# -# CONFIG_SCSI_SPI_ATTRS is not set -# CONFIG_SCSI_FC_ATTRS is not set - -# -# SCSI low-level drivers -# -# CONFIG_SCSI_AIC7XXX_OLD is not set -# CONFIG_SCSI_SATA is not set -# CONFIG_SCSI_EATA_PIO is not set -# CONFIG_SCSI_DEBUG is not set +# CONFIG_SCSI is not set # # Multi-device support (RAID and LVM) @@ -225,6 +192,7 @@ # # I2O device support # +# CONFIG_I2O is not set # # Networking support @@ -234,46 +202,31 @@ # # Networking options # -CONFIG_PACKET=y +CONFIG_PACKET=m CONFIG_PACKET_MMAP=y -# CONFIG_NETLINK_DEV is not set +CONFIG_NETLINK_DEV=m CONFIG_UNIX=y # CONFIG_NET_KEY is not set CONFIG_INET=y # CONFIG_IP_MULTICAST is not set # CONFIG_IP_ADVANCED_ROUTER is not set CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -# CONFIG_IP_PNP_BOOTP is not set +# CONFIG_IP_PNP_DHCP is not set +CONFIG_IP_PNP_BOOTP=y # CONFIG_IP_PNP_RARP is not set # CONFIG_NET_IPIP is not set # CONFIG_NET_IPGRE is not set -# CONFIG_ARPD is not set # CONFIG_SYN_COOKIES is not set # CONFIG_INET_AH is not set # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set -# CONFIG_IPV6 is not set # CONFIG_NETFILTER is not set - -# -# SCTP Configuration (EXPERIMENTAL) -# -# CONFIG_IP_SCTP is not set -# CONFIG_ATM is not set # CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set # CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set -# CONFIG_X25 is not set -# CONFIG_LAPB is not set -# CONFIG_NET_DIVERT is not set -# CONFIG_ECONET is not set -# CONFIG_WAN_ROUTER is not set -# CONFIG_NET_FASTROUTE is not set -# CONFIG_NET_HW_FLOWCONTROL is not set # # QoS and/or fair queueing @@ -296,22 +249,49 @@ # CONFIG_TUN is not set # +# ARCnet devices +# +# CONFIG_ARCNET is not set + +# # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y -# CONFIG_MII is not set +CONFIG_MII=y +# CONFIG_HAPPYMEAL is not set +# CONFIG_SUNGEM is not set +# CONFIG_NET_VENDOR_3COM is not set + +# +# Tulip family network device support +# +# CONFIG_NET_TULIP is not set +# CONFIG_HP100 is not set +# CONFIG_NET_PCI is not set # # Ethernet (1000 Mbit) # +# CONFIG_ACENIC is not set +# CONFIG_DL2K is not set +# CONFIG_E1000 is not set +# CONFIG_NS83820 is not set +# CONFIG_HAMACHI is not set +# CONFIG_R8169 is not set +# CONFIG_SK98LIN is not set +# CONFIG_TIGON3 is not set +CONFIG_TITAN_GE=y # # Ethernet (10000 Mbit) # +# CONFIG_IXGB is not set +# CONFIG_S2IO is not set # # Token Ring devices # +# CONFIG_TR is not set # # Wireless LAN (non-hamradio) @@ -322,10 +302,9 @@ # Wan interfaces # # CONFIG_WAN is not set +# CONFIG_FDDI is not set # CONFIG_PPP is not set # CONFIG_SLIP is not set -# CONFIG_SHAPER is not set -# CONFIG_NETCONSOLE is not set # # ISDN subsystem @@ -351,10 +330,8 @@ # # CONFIG_GAMEPORT is not set CONFIG_SOUND_GAMEPORT=y -CONFIG_SERIO=y -CONFIG_SERIO_I8042=y -CONFIG_SERIO_SERPORT=y -# CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO is not set +# CONFIG_SERIO_I8042 is not set # # Input Device Drivers @@ -364,22 +341,21 @@ # Character devices # # CONFIG_VT is not set -CONFIG_SERIAL_NONSTANDARD=y -# CONFIG_ROCKETPORT is not set -# CONFIG_CYCLADES is not set -# CONFIG_SYNCLINK is not set -# CONFIG_SYNCLINKMP is not set -# CONFIG_N_HDLC is not set -# CONFIG_STALDRV is not set +# CONFIG_SERIAL_NONSTANDARD is not set # # Serial drivers # -# CONFIG_SERIAL_8250 is not set +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_NR_UARTS=4 +# CONFIG_SERIAL_8250_EXTENDED is not set # # Non-8250 serial port support # +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_UNIX98_PTYS=y CONFIG_LEGACY_PTYS=y CONFIG_LEGACY_PTY_COUNT=256 @@ -403,6 +379,7 @@ # # Ftape, the floppy tape device driver # +# CONFIG_FTAPE is not set # CONFIG_AGP is not set # CONFIG_DRM is not set # CONFIG_RAW_DRIVER is not set @@ -438,6 +415,7 @@ # # USB support # +# CONFIG_USB is not set # # USB Gadget Support @@ -448,13 +426,8 @@ # File systems # # CONFIG_EXT2_FS is not set -CONFIG_EXT3_FS=y -CONFIG_EXT3_FS_XATTR=y -# CONFIG_EXT3_FS_POSIX_ACL is not set -# CONFIG_EXT3_FS_SECURITY is not set -CONFIG_JBD=y -# CONFIG_JBD_DEBUG is not set -CONFIG_FS_MBCACHE=y +# CONFIG_EXT3_FS is not set +# CONFIG_JBD is not set # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set # CONFIG_XFS_FS is not set @@ -482,7 +455,6 @@ CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y CONFIG_SYSFS=y -# CONFIG_DEVFS_FS is not set # CONFIG_DEVPTS_FS_XATTR is not set CONFIG_TMPFS=y # CONFIG_HUGETLB_PAGE is not set @@ -491,13 +463,7 @@ # # Miscellaneous filesystems # -# CONFIG_ADFS_FS is not set -# CONFIG_AFFS_FS is not set -# CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set -# CONFIG_BEFS_FS is not set -# CONFIG_BFS_FS is not set -# CONFIG_EFS_FS is not set # CONFIG_CRAMFS is not set # CONFIG_VXFS_FS is not set # CONFIG_HPFS_FS is not set @@ -509,22 +475,16 @@ # Network File Systems # CONFIG_NFS_FS=y -CONFIG_NFS_V3=y -# CONFIG_NFS_V4 is not set -# CONFIG_NFS_DIRECTIO is not set +# CONFIG_NFS_V3 is not set # CONFIG_NFSD is not set CONFIG_ROOT_NFS=y CONFIG_LOCKD=y -CONFIG_LOCKD_V4=y # CONFIG_EXPORTFS is not set CONFIG_SUNRPC=y -# CONFIG_RPCSEC_GSS_KRB5 is not set # CONFIG_SMB_FS is not set # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set -# CONFIG_AFS_FS is not set # # Partition Types @@ -558,3 +518,4 @@ # Library routines # # CONFIG_CRC32 is not set +# CONFIG_LIBCRC32C is not set diff -Nru a/arch/mips/ddb5xxx/ddb5074/irq.c b/arch/mips/ddb5xxx/ddb5074/irq.c --- a/arch/mips/ddb5xxx/ddb5074/irq.c 2004-06-28 18:21:59 -07:00 +++ b/arch/mips/ddb5xxx/ddb5074/irq.c 2004-06-28 18:21:59 -07:00 @@ -24,7 +24,7 @@ extern asmlinkage void ddbIRQ(void); -static struct irqaction irq_cascade = { no_action, 0, 0, "cascade", NULL, NULL }; +static struct irqaction irq_cascade = { no_action, 0, CPU_MASK_NONE, "cascade", NULL, NULL }; #define M1543_PNP_CONFIG 0x03f0 /* PnP Config Port */ #define M1543_PNP_INDEX 0x03f0 /* PnP Index Port */ diff -Nru a/arch/mips/ddb5xxx/ddb5476/irq.c b/arch/mips/ddb5xxx/ddb5476/irq.c --- a/arch/mips/ddb5xxx/ddb5476/irq.c 2004-06-28 18:21:58 -07:00 +++ b/arch/mips/ddb5xxx/ddb5476/irq.c 2004-06-28 18:21:58 -07:00 @@ -107,8 +107,8 @@ /* memory resource acquire in ddb_setup */ } -static struct irqaction irq_cascade = { no_action, 0, 0, "cascade", NULL, NULL }; -static struct irqaction irq_error = { no_action, 0, 0, "error", NULL, NULL }; +static struct irqaction irq_cascade = { no_action, 0, CPU_MASK_NONE, "cascade", NULL, NULL }; +static struct irqaction irq_error = { no_action, 0, CPU_MASK_NONE, "error", NULL, NULL }; extern asmlinkage void ddb5476_handle_int(void); extern int setup_irq(unsigned int irq, struct irqaction *irqaction); diff -Nru a/arch/mips/ddb5xxx/ddb5477/irq.c b/arch/mips/ddb5xxx/ddb5477/irq.c --- a/arch/mips/ddb5xxx/ddb5477/irq.c 2004-06-28 18:21:54 -07:00 +++ b/arch/mips/ddb5xxx/ddb5477/irq.c 2004-06-28 18:21:54 -07:00 @@ -77,7 +77,7 @@ extern void mips_cpu_irq_init(u32 base); extern asmlinkage void ddb5477_handle_int(void); extern int setup_irq(unsigned int irq, struct irqaction *irqaction); -static struct irqaction irq_cascade = { no_action, 0, 0, "cascade", NULL, NULL }; +static struct irqaction irq_cascade = { no_action, 0, CPU_MASK_NONE, "cascade", NULL, NULL }; void ddb5477_irq_setup(void) diff -Nru a/arch/mips/defconfig b/arch/mips/defconfig --- a/arch/mips/defconfig 2004-06-28 18:21:54 -07:00 +++ b/arch/mips/defconfig 2004-06-28 18:21:54 -07:00 @@ -114,6 +114,7 @@ # CONFIG_CPU_RM9000 is not set # CONFIG_CPU_SB1 is not set CONFIG_PAGE_SIZE_4KB=y +# CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_16KB is not set # CONFIG_PAGE_SIZE_64KB is not set CONFIG_BOARD_SCACHE=y @@ -196,7 +197,6 @@ # Some SCSI devices (e.g. CD jukebox) support multiple LUNs # # CONFIG_SCSI_MULTI_LUN is not set -# CONFIG_SCSI_REPORT_LUNS is not set CONFIG_SCSI_CONSTANTS=y # CONFIG_SCSI_LOGGING is not set @@ -583,7 +583,7 @@ CONFIG_INDYDOG=m # CONFIG_RTC is not set # CONFIG_GEN_RTC is not set -CONFIG_SGI_DS1286=y +CONFIG_SGI_DS1286=m # CONFIG_DTLK is not set # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set @@ -750,7 +750,6 @@ # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set -# CONFIG_INTERMEZZO_FS is not set # CONFIG_AFS_FS is not set # @@ -850,11 +849,13 @@ CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_CRC32C=m # CONFIG_CRYPTO_TEST is not set # # Library routines # # CONFIG_CRC32 is not set +CONFIG_LIBCRC32C=m CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y diff -Nru a/arch/mips/gt64120/common/time.c b/arch/mips/gt64120/common/time.c --- a/arch/mips/gt64120/common/time.c 2004-06-28 18:21:58 -07:00 +++ b/arch/mips/gt64120/common/time.c 2004-06-28 18:21:58 -07:00 @@ -80,7 +80,7 @@ timer.name = "timer"; timer.dev_id = NULL; timer.next = NULL; - timer.mask = 0; + timer.mask = CPU_MASK_NONE; irq_desc[GT_TIMER].action = &timer; enable_irq(GT_TIMER); diff -Nru a/arch/mips/jmr3927/rbhma3100/irq.c b/arch/mips/jmr3927/rbhma3100/irq.c --- a/arch/mips/jmr3927/rbhma3100/irq.c 2004-06-28 18:21:55 -07:00 +++ b/arch/mips/jmr3927/rbhma3100/irq.c 2004-06-28 18:21:55 -07:00 @@ -301,7 +301,7 @@ } static struct irqaction ioc_action = { - jmr3927_ioc_interrupt, 0, 0, "IOC", NULL, NULL, + jmr3927_ioc_interrupt, 0, CPU_MASK_NONE, "IOC", NULL, NULL, }; static void jmr3927_isac_interrupt(int irq, void *dev_id, struct pt_regs *regs) @@ -318,7 +318,7 @@ } static struct irqaction isac_action = { - jmr3927_isac_interrupt, 0, 0, "ISAC", NULL, NULL, + jmr3927_isac_interrupt, 0, CPU_MASK_NONE, "ISAC", NULL, NULL, }; @@ -327,7 +327,7 @@ printk(KERN_WARNING "ISA error interrupt (irq 0x%x).\n", irq); } static struct irqaction isaerr_action = { - jmr3927_isaerr_interrupt, 0, 0, "ISA error", NULL, NULL, + jmr3927_isaerr_interrupt, 0, CPU_MASK_NONE, "ISA error", NULL, NULL, }; static void jmr3927_pcierr_interrupt(int irq, void * dev_id, struct pt_regs * regs) @@ -337,7 +337,7 @@ tx3927_pcicptr->pcistat, tx3927_pcicptr->lbstat); } static struct irqaction pcierr_action = { - jmr3927_pcierr_interrupt, 0, 0, "PCI error", NULL, NULL, + jmr3927_pcierr_interrupt, 0, CPU_MASK_NONE, "PCI error", NULL, NULL, }; int jmr3927_ether1_irq = 0; diff -Nru a/arch/mips/kernel/Makefile b/arch/mips/kernel/Makefile --- a/arch/mips/kernel/Makefile 2004-06-28 18:21:55 -07:00 +++ b/arch/mips/kernel/Makefile 2004-06-28 18:21:55 -07:00 @@ -9,7 +9,7 @@ time.o traps.o unaligned.o ifdef CONFIG_MODULES -obj-y += mips_ksyms.o +obj-y += mips_ksyms.o module.o obj-$(CONFIG_MIPS32) += module-elf32.o obj-$(CONFIG_MIPS64) += module-elf64.o endif @@ -23,6 +23,7 @@ obj-$(CONFIG_CPU_R4X00) += r4k_fpu.o r4k_switch.o obj-$(CONFIG_CPU_R5000) += r4k_fpu.o r4k_switch.o obj-$(CONFIG_CPU_R5432) += r4k_fpu.o r4k_switch.o +obj-$(CONFIG_CPU_R8000) += r4k_fpu.o r4k_switch.o obj-$(CONFIG_CPU_RM7000) += r4k_fpu.o r4k_switch.o obj-$(CONFIG_CPU_RM9000) += r4k_fpu.o r4k_switch.o obj-$(CONFIG_CPU_NEVADA) += r4k_fpu.o r4k_switch.o diff -Nru a/arch/mips/kernel/cpu-bugs64.c b/arch/mips/kernel/cpu-bugs64.c --- a/arch/mips/kernel/cpu-bugs64.c 2004-06-28 18:21:58 -07:00 +++ b/arch/mips/kernel/cpu-bugs64.c 2004-06-28 18:21:58 -07:00 @@ -177,7 +177,7 @@ extern asmlinkage void handle_daddi_ov(void); unsigned long flags; void *handler; - long v; + long v, tmp; printk("Checking for the daddi bug... "); @@ -197,13 +197,15 @@ ".set noat\n\t" ".set noreorder\n\t" ".set nomacro\n\t" + "addiu %1, $0, %2\n\t" + "dsrl %1, %1, 1\n\t" #ifdef HAVE_AS_SET_DADDI ".set daddi\n\t" #endif - "daddi %0, %1, %2\n\t" + "daddi %0, %1, %3\n\t" ".set pop" - : "=r" (v) - : "r" (0x7fffffffffffedcd), "I" (0x1234)); + : "=r" (v), "=&r" (tmp) + : "I" (0xffffffffffffdb9a), "I" (0x1234)); set_except_vector(12, handler); local_irq_restore(flags); @@ -217,9 +219,11 @@ local_irq_save(flags); handler = set_except_vector(12, handle_daddi_ov); asm volatile( - "daddi %0, %1, %2" - : "=r" (v) - : "r" (0x7fffffffffffedcd), "I" (0x1234)); + "addiu %1, $0, %2\n\t" + "dsrl %1, %1, 1\n\t" + "daddi %0, %1, %3" + : "=r" (v), "=&r" (tmp) + : "I" (0xffffffffffffdb9a), "I" (0x1234)); set_except_vector(12, handler); local_irq_restore(flags); @@ -240,7 +244,7 @@ static inline void check_daddiu(void) { - long v, w; + long v, w, tmp; printk("Checking for the daddiu bug... "); @@ -265,15 +269,17 @@ ".set noat\n\t" ".set noreorder\n\t" ".set nomacro\n\t" + "addiu %2, $0, %3\n\t" + "dsrl %2, %2, 1\n\t" #ifdef HAVE_AS_SET_DADDI ".set daddi\n\t" #endif - "daddiu %0, %2, %3\n\t" - "addiu %1, $0, %3\n\t" + "daddiu %0, %2, %4\n\t" + "addiu %1, $0, %4\n\t" "daddu %1, %2\n\t" ".set pop" - : "=&r" (v), "=&r" (w) - : "r" (0x7fffffffffffedcd), "I" (0x1234)); + : "=&r" (v), "=&r" (w), "=&r" (tmp) + : "I" (0xffffffffffffdb9a), "I" (0x1234)); if (v == w) { printk("no.\n"); @@ -283,11 +289,13 @@ printk("yes, workaround... "); asm volatile( - "daddiu %0, %2, %3\n\t" - "addiu %1, $0, %3\n\t" + "addiu %2, $0, %3\n\t" + "dsrl %2, %2, 1\n\t" + "daddiu %0, %2, %4\n\t" + "addiu %1, $0, %4\n\t" "daddu %1, %2" - : "=&r" (v), "=&r" (w) - : "r" (0x7fffffffffffedcd), "I" (0x1234)); + : "=&r" (v), "=&r" (w), "=&r" (tmp) + : "I" (0xffffffffffffdb9a), "I" (0x1234)); if (v == w) { printk("yes.\n"); diff -Nru a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c --- a/arch/mips/kernel/cpu-probe.c 2004-06-28 18:21:55 -07:00 +++ b/arch/mips/kernel/cpu-probe.c 2004-06-28 18:21:55 -07:00 @@ -1,6 +1,8 @@ /* * Processor capabilities determination functions. * + * Copyright (C) xxxx the Anonymous + * Copyright (C) 2003 Maciej W. Rozycki * Copyright (C) 1994 - 2003 Ralf Baechle * Copyright (C) 2001 MIPS Inc. * @@ -49,6 +51,14 @@ ".set\tmips0"); } +/* + * The Au1xxx wait is available only if we run CONFIG_PM and + * the timer setup found we had a 32KHz counter available. + * There are still problems with functions that may call au1k_wait + * directly, but that will be discovered pretty quickly. + */ +extern void (*au1k_wait_ptr)(void); + void au1k_wait(void) { #ifdef CONFIG_PM @@ -90,7 +100,6 @@ case CPU_R5000: case CPU_NEVADA: case CPU_RM7000: -/* case CPU_RM9000: */ case CPU_TX49XX: case CPU_4KC: case CPU_4KEC: @@ -102,12 +111,19 @@ cpu_wait = r4k_wait; printk(" available.\n"); break; +#ifdef CONFIG_PM case CPU_AU1000: case CPU_AU1100: case CPU_AU1500: - cpu_wait = au1k_wait; - printk(" available.\n"); + if (au1k_wait_ptr != NULL) { + cpu_wait = au1k_wait_ptr; + printk(" available.\n"); + } + else { + printk(" unavailable.\n"); + } break; +#endif default: printk(" unavailable.\n"); break; @@ -238,8 +254,8 @@ break; default: printk(KERN_INFO "Unexpected CPU of NEC VR4100 series\n"); - c->cputype = CPU_VR41XX; - break; + c->cputype = CPU_VR41XX; + break; } c->isa_level = MIPS_CPU_ISA_III; c->options = R4K_OPTS; @@ -371,7 +387,7 @@ c->cputype = CPU_RM9000; c->isa_level = MIPS_CPU_ISA_IV; c->options = R4K_OPTS | MIPS_CPU_FPU | MIPS_CPU_32FPR | - MIPS_CPU_LLSC; + MIPS_CPU_LLSC; /* * Bit 29 in the info register of the RM9000 * indicates if the TLB has 48 or 64 entries. @@ -407,9 +423,6 @@ MIPS_CPU_LLSC; c->tlbsize = 64; break; - default: - c->cputype = CPU_UNKNOWN; - break; } } @@ -475,9 +488,6 @@ /* Probe for L2 cache */ c->scache.flags &= ~MIPS_CACHE_NOT_PRESENT; break; - default: - c->cputype = CPU_UNKNOWN; - break; } } @@ -505,9 +515,6 @@ break; } c->isa_level = MIPS_CPU_ISA_M32; - break; - default: - c->cputype = CPU_UNKNOWN; break; } } @@ -528,9 +535,6 @@ c->options |= MIPS_CPU_FPU | MIPS_CPU_32FPR; #endif break; - default: - c->cputype = CPU_UNKNOWN; - break; } } @@ -542,14 +546,11 @@ c->cputype = CPU_SR71000; c->isa_level = MIPS_CPU_ISA_M64; c->options = MIPS_CPU_TLB | MIPS_CPU_4KEX | - MIPS_CPU_4KTLB | MIPS_CPU_FPU | + MIPS_CPU_4KTLB | MIPS_CPU_FPU | MIPS_CPU_COUNTER | MIPS_CPU_MCHECK; c->scache.ways = 8; c->tlbsize = 64; break; - default: - c->cputype = CPU_UNKNOWN; - break; } } @@ -563,7 +564,6 @@ c->processor_id = read_c0_prid(); switch (c->processor_id & 0xff0000) { - case PRID_COMP_LEGACY: cpu_probe_legacy(c); break; diff -Nru a/arch/mips/kernel/init_task.c b/arch/mips/kernel/init_task.c --- a/arch/mips/kernel/init_task.c 2004-06-28 18:21:54 -07:00 +++ b/arch/mips/kernel/init_task.c 2004-06-28 18:21:54 -07:00 @@ -3,6 +3,7 @@ #include #include #include +#include #include #include diff -Nru a/arch/mips/kernel/irq.c b/arch/mips/kernel/irq.c --- a/arch/mips/kernel/irq.c 2004-06-28 18:21:54 -07:00 +++ b/arch/mips/kernel/irq.c 2004-06-28 18:21:54 -07:00 @@ -487,7 +487,7 @@ action->handler = handler; action->flags = irqflags; - action->mask = 0; + cpus_clear(action->mask); action->name = devname; action->next = NULL; action->dev_id = dev_id; diff -Nru a/arch/mips/kernel/module-elf32.c b/arch/mips/kernel/module-elf32.c --- a/arch/mips/kernel/module-elf32.c 2004-06-28 18:21:53 -07:00 +++ b/arch/mips/kernel/module-elf32.c 2004-06-28 18:21:53 -07:00 @@ -248,14 +248,3 @@ me->name); return -ENOEXEC; } - -int module_finalize(const Elf_Ehdr *hdr, - const Elf_Shdr *sechdrs, - struct module *me) -{ - return 0; -} - -void module_arch_cleanup(struct module *mod) -{ -} diff -Nru a/arch/mips/kernel/module-elf64.c b/arch/mips/kernel/module-elf64.c --- a/arch/mips/kernel/module-elf64.c 2004-06-28 18:21:57 -07:00 +++ b/arch/mips/kernel/module-elf64.c 2004-06-28 18:21:57 -07:00 @@ -272,14 +272,3 @@ return 0; } - -int module_finalize(const Elf_Ehdr *hdr, - const Elf_Shdr *sechdrs, - struct module *me) -{ - return 0; -} - -void module_arch_cleanup(struct module *mod) -{ -} diff -Nru a/arch/mips/kernel/module.c b/arch/mips/kernel/module.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/mips/kernel/module.c 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,53 @@ +#include +#include + +static LIST_HEAD(dbe_list); +static spinlock_t dbe_lock = SPIN_LOCK_UNLOCKED; + +/* Given an address, look for it in the module exception tables. */ +const struct exception_table_entry *search_module_dbetables(unsigned long addr) +{ + unsigned long flags; + const struct exception_table_entry *e = NULL; + struct mod_arch_specific *dbe; + + spin_lock_irqsave(&dbe_lock, flags); + list_for_each_entry(dbe, &dbe_list, dbe_list) { + e = search_extable(dbe->dbe_start, dbe->dbe_end - 1, addr); + if (e) + break; + } + spin_unlock_irqrestore(&dbe_lock, flags); + + /* Now, if we found one, we are running inside it now, hence + we cannot unload the module, hence no refcnt needed. */ + return e; +} + +/* Put in dbe list if neccessary. */ +int module_finalize(const Elf_Ehdr *hdr, + const Elf_Shdr *sechdrs, + struct module *me) +{ + const Elf_Shdr *s; + char *secstrings = (void *)hdr + sechdrs[hdr->e_shstrndx].sh_offset; + + INIT_LIST_HEAD(&me->arch.dbe_list); + for (s = sechdrs; s < sechdrs + hdr->e_shnum; s++) { + if (strcmp("__dbe_table", secstrings + s->sh_name) != 0) + continue; + me->arch.dbe_start = (void *)s->sh_addr; + me->arch.dbe_end = (void *)s->sh_addr + s->sh_size; + spin_lock_irq(&dbe_lock); + list_add(&me->arch.dbe_list, &dbe_list); + spin_unlock_irq(&dbe_lock); + } + return 0; +} + +void module_arch_cleanup(struct module *mod) +{ + spin_lock_irq(&dbe_lock); + list_del(&mod->arch.dbe_list); + spin_unlock_irq(&dbe_lock); +} diff -Nru a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S --- a/arch/mips/kernel/scall32-o32.S 2004-06-28 18:21:53 -07:00 +++ b/arch/mips/kernel/scall32-o32.S 2004-06-28 18:21:53 -07:00 @@ -627,6 +627,7 @@ sys sys_mq_timedreceive 5 sys sys_mq_notify 2 /* 4275 */ sys sys_mq_getsetattr 3 + sys sys_ni_syscall 0 /* sys_vserver */ .endm diff -Nru a/arch/mips/kernel/scall64-64.S b/arch/mips/kernel/scall64-64.S --- a/arch/mips/kernel/scall64-64.S 2004-06-28 18:21:57 -07:00 +++ b/arch/mips/kernel/scall64-64.S 2004-06-28 18:21:57 -07:00 @@ -447,3 +447,4 @@ PTR sys_mq_timedreceive PTR sys_mq_notify PTR sys_mq_getsetattr /* 5235 */ + PTR sys_ni_syscall /* sys_vserver */ diff -Nru a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S --- a/arch/mips/kernel/scall64-n32.S 2004-06-28 18:21:59 -07:00 +++ b/arch/mips/kernel/scall64-n32.S 2004-06-28 18:21:59 -07:00 @@ -357,3 +357,4 @@ PTR compat_sys_mq_timedreceive PTR compat_sys_mq_notify PTR compat_sys_mq_getsetattr /* 6239 */ + PTR sys_ni_syscall /* sys_vserver */ diff -Nru a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S --- a/arch/mips/kernel/scall64-o32.S 2004-06-28 18:21:52 -07:00 +++ b/arch/mips/kernel/scall64-o32.S 2004-06-28 18:21:52 -07:00 @@ -535,6 +535,7 @@ sys compat_sys_mq_timedreceive 5 sys compat_sys_mq_notify 2 /* 4275 */ sys compat_sys_mq_getsetattr 3 + sys sys_ni_syscall 0 /* sys_vserver */ .endm diff -Nru a/arch/mips/kernel/semaphore.c b/arch/mips/kernel/semaphore.c --- a/arch/mips/kernel/semaphore.c 2004-06-28 18:21:57 -07:00 +++ b/arch/mips/kernel/semaphore.c 2004-06-28 18:21:57 -07:00 @@ -1,273 +1,165 @@ /* - * Copyright (C) 1999, 2001, 02, 03 Ralf Baechle + * MIPS-specific semaphore code. * - * Heavily inspired by the Alpha implementation + * Copyright (C) 1999 Cort Dougan + * Copyright (C) 2004 Ralf Baechle + * + * 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. + * + * April 2001 - Reworked by Paul Mackerras + * to eliminate the SMP races in the old version between the updates + * of `count' and `waking'. Now we use negative `count' values to + * indicate that some process(es) are waiting for the semaphore. */ + #include -#include #include -#include #include +#include +#include +#include +#include -#ifdef CONFIG_CPU_HAS_LLDSCD -/* - * On machines without lld/scd we need a spinlock to make the manipulation of - * sem->count and sem->waking atomic. Scalability isn't an issue because - * this lock is used on UP only so it's just an empty variable. - */ -spinlock_t semaphore_lock = SPIN_LOCK_UNLOCKED; - -EXPORT_SYMBOL(semaphore_lock); -#endif +#ifdef CONFIG_CPU_HAS_LLSC /* - * Semaphores are implemented using a two-way counter: The "count" variable is - * decremented for each process that tries to sleep, while the "waking" variable - * is incremented when the "up()" code goes to wake up waiting processes. - * - * Notably, the inline "up()" and "down()" functions can efficiently test if - * they need to do any extra work (up needs to do something only if count was - * negative before the increment operation. - * - * waking_non_zero() must execute atomically. - * - * When __up() is called, the count was negative before incrementing it, and we - * need to wake up somebody. + * Atomically update sem->count. + * This does the equivalent of the following: * - * This routine adds one to the count of processes that need to wake up and - * exit. ALL waiting processes actually wake up but only the one that gets to - * the "waking" field first will gate through and acquire the semaphore. The - * others will go back to sleep. - * - * Note that these functions are only called when there is contention on the - * lock, and as such all this is the "non-critical" part of the whole semaphore - * business. The critical part is the inline stuff in where - * we want to avoid any extra jumps and calls. + * old_count = sem->count; + * tmp = MAX(old_count, 0) + incr; + * sem->count = tmp; + * return old_count; */ -void __up_wakeup(struct semaphore *sem) -{ - wake_up(&sem->wait); -} - -EXPORT_SYMBOL(__up_wakeup); - -#ifdef CONFIG_CPU_HAS_LLSC - -static inline int waking_non_zero(struct semaphore *sem) +static inline int __sem_update_count(struct semaphore *sem, int incr) { - int ret, tmp; + int old_count, tmp; __asm__ __volatile__( - "1: ll %1, %2 # waking_non_zero \n" - " blez %1, 2f \n" - " subu %0, %1, 1 \n" - " sc %0, %2 \n" - " beqz %0, 1b \n" - "2: \n" - : "=r" (ret), "=r" (tmp), "+m" (sem->waking) - : "0" (0)); + "1: ll %0, %2 \n" + " sra %1, %0, 31 \n" + " not %1 \n" + " and %1, %0, %1 \n" + " add %1, %1, %3 \n" + " sc %1, %2 \n" + " beqz %1, 1b \n" + : "=&r" (old_count), "=&r" (tmp), "=m" (sem->count) + : "r" (incr), "m" (sem->count)); - return ret; + return old_count; } -#else /* !CONFIG_CPU_HAS_LLSC */ +#else + +/* + * On machines without lld/scd we need a spinlock to make the manipulation of + * sem->count and sem->waking atomic. Scalability isn't an issue because + * this lock is used on UP only so it's just an empty variable. + */ +static spinlock_t semaphore_lock = SPIN_LOCK_UNLOCKED; -static inline int waking_non_zero(struct semaphore *sem) +static inline int __sem_update_count(struct semaphore *sem, int incr) { unsigned long flags; - int waking, ret = 0; + int old_count, tmp; spin_lock_irqsave(&semaphore_lock, flags); - waking = atomic_read(&sem->waking); - if (waking > 0) { - atomic_set(&sem->waking, waking - 1); - ret = 1; - } + old_count = atomic_read(&sem->count); + tmp = max_t(int, old_count, 0) + incr; + atomic_set(&sem->count, tmp); spin_unlock_irqrestore(&semaphore_lock, flags); - return ret; + return old_count; } -#endif /* !CONFIG_CPU_HAS_LLSC */ - -/* - * Perform the "down" function. Return zero for semaphore acquired, return - * negative for signalled out of the function. - * - * If called from down, the return is ignored and the wait loop is not - * interruptible. This means that a task waiting on a semaphore using "down()" - * cannot be killed until someone does an "up()" on the semaphore. - * - * If called from down_interruptible, the return value gets checked upon return. - * If the return value is negative then the task continues with the negative - * value in the return register (it can be tested by the caller). - * - * Either form may be used in conjunction with "up()". - */ +#endif -void __sched __down_failed(struct semaphore * sem) +void __up(struct semaphore *sem) { - struct task_struct *tsk = current; - wait_queue_t wait; - - init_waitqueue_entry(&wait, tsk); - __set_current_state(TASK_UNINTERRUPTIBLE); - add_wait_queue_exclusive(&sem->wait, &wait); - /* - * Ok, we're set up. sem->count is known to be less than zero - * so we must wait. - * - * We can let go the lock for purposes of waiting. - * We re-acquire it after awaking so as to protect - * all semaphore operations. - * - * If "up()" is called before we call waking_non_zero() then - * we will catch it right away. If it is called later then - * we will have to go through a wakeup cycle to catch it. - * - * Multiple waiters contend for the semaphore lock to see - * who gets to gate through and who has to wait some more. + * Note that we incremented count in up() before we came here, + * but that was ineffective since the result was <= 0, and + * any negative value of count is equivalent to 0. + * This ends up setting count to 1, unless count is now > 0 + * (i.e. because some other cpu has called up() in the meantime), + * in which case we just increment count. */ - for (;;) { - if (waking_non_zero(sem)) - break; - schedule(); - __set_current_state(TASK_UNINTERRUPTIBLE); - } - __set_current_state(TASK_RUNNING); - remove_wait_queue(&sem->wait, &wait); + __sem_update_count(sem, 1); + wake_up(&sem->wait); } -EXPORT_SYMBOL(__down_failed); - -#ifdef CONFIG_CPU_HAS_LLDSCD +EXPORT_SYMBOL(__up); /* - * waking_non_zero_interruptible: - * 1 got the lock - * 0 go to sleep - * -EINTR interrupted - * - * We must undo the sem->count down_interruptible decrement - * simultaneously and atomically with the sem->waking adjustment, - * otherwise we can race with wake_one_more. - * - * This is accomplished by doing a 64-bit lld/scd on the 2 32-bit words. - * - * This is crazy. Normally it's strictly forbidden to use 64-bit operations - * in the 32-bit MIPS kernel. In this case it's however ok because if an - * interrupt has destroyed the upper half of registers sc will fail. - * Note also that this will not work for MIPS32 CPUs! - * - * Pseudocode: - * - * If(sem->waking > 0) { - * Decrement(sem->waking) - * Return(SUCCESS) - * } else If(signal_pending(tsk)) { - * Increment(sem->count) - * Return(-EINTR) - * } else { - * Return(SLEEP) - * } + * Note that when we come in to __down or __down_interruptible, + * we have already decremented count, but that decrement was + * ineffective since the result was < 0, and any negative value + * of count is equivalent to 0. + * Thus it is only when we decrement count from some value > 0 + * that we have actually got the semaphore. */ - -static inline int -waking_non_zero_interruptible(struct semaphore *sem, struct task_struct *tsk) +void __sched __down(struct semaphore *sem) { - long ret, tmp; - - __asm__ __volatile__( - " .set push # waking_non_zero_interruptible \n" - " .set mips3 \n" - " .set noat \n" - "0: lld %1, %2 \n" - " li %0, 0 \n" - " sll $1, %1, 0 \n" - " blez $1, 1f \n" - " daddiu %1, %1, -1 \n" - " li %0, 1 \n" - " b 2f \n" - "1: beqz %3, 2f \n" - " li %0, %4 \n" - " dli $1, 0x0000000100000000 \n" - " daddu %1, %1, $1 \n" - "2: scd %1, %2 \n" - " beqz %1, 0b \n" - " .set pop \n" - : "=&r" (ret), "=&r" (tmp), "=m" (*sem) - : "r" (signal_pending(tsk)), "i" (-EINTR)); - - return ret; -} - -#else /* !CONFIG_CPU_HAS_LLDSCD */ - -static inline int waking_non_zero_interruptible(struct semaphore *sem, - struct task_struct *tsk) -{ - int waking, pending, ret = 0; - unsigned long flags; + struct task_struct *tsk = current; + DECLARE_WAITQUEUE(wait, tsk); - pending = signal_pending(tsk); + __set_task_state(tsk, TASK_UNINTERRUPTIBLE); + add_wait_queue_exclusive(&sem->wait, &wait); - spin_lock_irqsave(&semaphore_lock, flags); - waking = atomic_read(&sem->waking); - if (waking > 0) { - atomic_set(&sem->waking, waking - 1); - ret = 1; - } else if (pending) { - atomic_set(&sem->count, atomic_read(&sem->count) + 1); - ret = -EINTR; + /* + * Try to get the semaphore. If the count is > 0, then we've + * got the semaphore; we decrement count and exit the loop. + * If the count is 0 or negative, we set it to -1, indicating + * that we are asleep, and then sleep. + */ + while (__sem_update_count(sem, -1) <= 0) { + schedule(); + set_task_state(tsk, TASK_UNINTERRUPTIBLE); } - spin_unlock_irqrestore(&semaphore_lock, flags); + remove_wait_queue(&sem->wait, &wait); + __set_task_state(tsk, TASK_RUNNING); - return ret; + /* + * If there are any more sleepers, wake one of them up so + * that it can either get the semaphore, or set count to -1 + * indicating that there are still processes sleeping. + */ + wake_up(&sem->wait); } -#endif /* !CONFIG_CPU_HAS_LLDSCD */ +EXPORT_SYMBOL(__down); -int __sched __down_failed_interruptible(struct semaphore * sem) +int __sched __down_interruptible(struct semaphore * sem) { + int retval = 0; struct task_struct *tsk = current; - wait_queue_t wait; - int ret = 0; + DECLARE_WAITQUEUE(wait, tsk); - init_waitqueue_entry(&wait, tsk); - __set_current_state(TASK_INTERRUPTIBLE); + __set_task_state(tsk, TASK_INTERRUPTIBLE); add_wait_queue_exclusive(&sem->wait, &wait); - /* - * Ok, we're set up. sem->count is known to be less than zero - * so we must wait. - * - * We can let go the lock for purposes of waiting. - * We re-acquire it after awaking so as to protect - * all semaphore operations. - * - * If "up()" is called before we call waking_non_zero() then - * we will catch it right away. If it is called later then - * we will have to go through a wakeup cycle to catch it. - * - * Multiple waiters contend for the semaphore lock to see - * who gets to gate through and who has to wait some more. - */ - for (;;) { - ret = waking_non_zero_interruptible(sem, tsk); - if (ret) { - if (ret == 1) - /* ret != 0 only if we get interrupted -arca */ - ret = 0; + while (__sem_update_count(sem, -1) <= 0) { + if (signal_pending(current)) { + /* + * A signal is pending - give up trying. + * Set sem->count to 0 if it is negative, + * since we are no longer sleeping. + */ + __sem_update_count(sem, 0); + retval = -EINTR; break; } schedule(); - __set_current_state(TASK_INTERRUPTIBLE); + set_task_state(tsk, TASK_INTERRUPTIBLE); } - __set_current_state(TASK_RUNNING); remove_wait_queue(&sem->wait, &wait); + __set_task_state(tsk, TASK_RUNNING); - return ret; + wake_up(&sem->wait); + return retval; } -EXPORT_SYMBOL(__down_failed_interruptible); +EXPORT_SYMBOL(__down_interruptible); diff -Nru a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c --- a/arch/mips/kernel/setup.c 2004-06-28 18:21:54 -07:00 +++ b/arch/mips/kernel/setup.c 2004-06-28 18:21:54 -07:00 @@ -38,6 +38,7 @@ #include #include #include +#include #include struct cpuinfo_mips cpu_data[NR_CPUS]; @@ -71,7 +72,6 @@ struct boot_mem_map boot_mem_map; static char command_line[CL_SIZE]; - char saved_command_line[CL_SIZE]; char arcs_cmdline[CL_SIZE]=CONFIG_CMDLINE; /* @@ -453,14 +453,18 @@ void __init setup_arch(char **cmdline_p) { + unsigned int status; + cpu_probe(); prom_init(); cpu_report(); #ifdef CONFIG_MIPS32 /* Disable coprocessors and set FPU for 16/32 FPR register model */ - clear_c0_status(ST0_CU1|ST0_CU2|ST0_CU3|ST0_KX|ST0_SX|ST0_FR); - set_c0_status(ST0_CU0); + status = read_c0_status(); + status &= ~(ST0_CU1|ST0_CU2|ST0_CU3|ST0_KX|ST0_SX|ST0_FR); + status |= ST0_CU0; + write_c0_status(status); #endif #ifdef CONFIG_MIPS64 /* @@ -468,8 +472,10 @@ * Maybe because the kernel is in ckseg0 and not xkphys? Clear it * anyway ... */ - clear_c0_status(ST0_BEV|ST0_TS|ST0_CU1|ST0_CU2|ST0_CU3); - set_c0_status(ST0_CU0|ST0_KX|ST0_SX|ST0_FR); + status = read_c0_status(); + status &= ~(ST0_BEV|ST0_TS|ST0_CU1|ST0_CU2|ST0_CU3); + status |= (ST0_CU0|ST0_KX|ST0_SX|ST0_FR); + write_c0_status(status); #endif #if defined(CONFIG_VT) @@ -484,7 +490,7 @@ do_earlyinitcalls(); strlcpy(command_line, arcs_cmdline, sizeof(command_line)); - strlcpy(saved_command_line, command_line, sizeof(saved_command_line)); + strlcpy(saved_command_line, command_line, COMMAND_LINE_SIZE); *cmdline_p = command_line; diff -Nru a/arch/mips/kernel/syscall.c b/arch/mips/kernel/syscall.c --- a/arch/mips/kernel/syscall.c 2004-06-28 18:21:58 -07:00 +++ b/arch/mips/kernel/syscall.c 2004-06-28 18:21:58 -07:00 @@ -36,7 +36,7 @@ #include #include -asmlinkage int sys_pipe(nabi_no_regargs struct pt_regs regs) +asmlinkage int sys_pipe(nabi_no_regargs volatile struct pt_regs regs) { int fd[2]; int error, res; diff -Nru a/arch/mips/kernel/sysirix.c b/arch/mips/kernel/sysirix.c --- a/arch/mips/kernel/sysirix.c 2004-06-28 18:21:59 -07:00 +++ b/arch/mips/kernel/sysirix.c 2004-06-28 18:21:59 -07:00 @@ -1639,7 +1639,7 @@ printk("[%s:%d] Wheee.. irix_statvfs(%s,%p)\n", current->comm, current->pid, fname, buf); - error = verify_area(VERIFY_WRITE, buf, sizeof(struct irix_statvfs)); + error = verify_area(VERIFY_WRITE, buf, sizeof(struct irix_statvfs64)); if(error) goto out; error = user_path_walk(fname, &nd); diff -Nru a/arch/mips/kernel/time.c b/arch/mips/kernel/time.c --- a/arch/mips/kernel/time.c 2004-06-28 18:21:56 -07:00 +++ b/arch/mips/kernel/time.c 2004-06-28 18:21:56 -07:00 @@ -789,3 +789,8 @@ EXPORT_SYMBOL(to_tm); EXPORT_SYMBOL(rtc_set_time); EXPORT_SYMBOL(rtc_get_time); + +unsigned long long sched_clock(void) +{ + return (unsigned long long)jiffies*(1000000000/HZ); +} diff -Nru a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c --- a/arch/mips/kernel/traps.c 2004-06-28 18:21:56 -07:00 +++ b/arch/mips/kernel/traps.c 2004-06-28 18:21:56 -07:00 @@ -118,7 +118,7 @@ #endif while (!kstack_end(stack)) { addr = *stack++; - if (kernel_text_address(addr)) { + if (__kernel_text_address(addr)) { printk(" [<%0*lx>] ", field, addr); print_symbol("%s\n", addr); } @@ -234,6 +234,7 @@ void show_registers(struct pt_regs *regs) { show_regs(regs); + print_modules(); printk("Process %s (pid: %d, threadinfo=%p, task=%p)\n", current->comm, current->pid, current_thread_info(), current); show_stack(current, (long *) regs->regs[29]); @@ -278,47 +279,8 @@ ); } -#ifdef CONFIG_MDULES - -/* Given an address, look for it in the module exception tables. */ -const struct exception_table_entry *search_module_dbetables(unsigned long addr) -{ - unsigned long flags; - const struct exception_table_entry *e = NULL; - struct module *mod; - - spin_lock_irqsave(&modlist_lock, flags); - list_for_each_entry(mod, &modules, list) { - if (mod->arch.num_dbeentries == 0) - continue; - - e = search_extable(mod->arch.dbe_table_start, - mod->arch.dbe_table_end + - mod->arch.num_dbeentries - 1, - addr); - if (e) - break; - } - spin_unlock_irqrestore(&modlist_lock, flags); - - /* Now, if we found one, we are running inside it now, hence - we cannot unload the module, hence no refcnt needed. */ - return e; -} - -#else - -/* Given an address, look for it in the exception tables. */ -static inline const struct exception_table_entry * -search_module_dbetables(unsigned long addr) -{ - return NULL; -} - -#endif - /* Given an address, look for it in the exception tables. */ -const struct exception_table_entry *search_dbe_tables(unsigned long addr) +static const struct exception_table_entry *search_dbe_tables(unsigned long addr) { const struct exception_table_entry *e; @@ -745,11 +707,24 @@ static inline void parity_protection_init(void) { switch (current_cpu_data.cputype) { + case CPU_24K: + /* 24K cache parity not currently implemented in FPGA */ + printk(KERN_INFO "Disable cache parity protection for " + "MIPS 24K CPU.\n"); + write_c0_ecc(read_c0_ecc() & ~0x80000000); + break; case CPU_5KC: /* Set the PE bit (bit 31) in the c0_ecc register. */ - printk(KERN_INFO "Enable the cache parity protection for " - "MIPS 5KC CPUs.\n"); + printk(KERN_INFO "Enable cache parity protection for " + "MIPS 5KC/24K CPUs.\n"); write_c0_ecc(read_c0_ecc() | 0x80000000); + break; + case CPU_20KC: + case CPU_25KF: + /* Clear the DE bit (bit 16) in the c0_status register. */ + printk(KERN_INFO "Enable cache parity protection for " + "MIPS 20KC/25KF CPUs.\n"); + clear_c0_status(ST0_DE); break; default: break; diff -Nru a/arch/mips/lib-32/Makefile b/arch/mips/lib-32/Makefile --- a/arch/mips/lib-32/Makefile 2004-06-28 18:21:55 -07:00 +++ b/arch/mips/lib-32/Makefile 2004-06-28 18:21:55 -07:00 @@ -4,10 +4,22 @@ lib-y += csum_partial.o memset.o watch.o -ifeq ($(CONFIG_CPU_R3000)$(CONFIG_CPU_TX39XX),y) - lib-y += r3k_dump_tlb.o -else - lib-y += dump_tlb.o -endif +obj-$(CONFIG_CPU_MIPS32) += dump_tlb.o +obj-$(CONFIG_CPU_MIPS64) += dump_tlb.o +obj-$(CONFIG_CPU_NEVADA) += dump_tlb.o +obj-$(CONFIG_CPU_R10000) += dump_tlb.o +obj-$(CONFIG_CPU_R3000) += r3k_dump_tlb.o +obj-$(CONFIG_CPU_R4300) += dump_tlb.o +obj-$(CONFIG_CPU_R4X00) += dump_tlb.o +obj-$(CONFIG_CPU_R5000) += dump_tlb.o +obj-$(CONFIG_CPU_R5432) += dump_tlb.o +obj-$(CONFIG_CPU_R6000) += +obj-$(CONFIG_CPU_R8000) += +obj-$(CONFIG_CPU_RM7000) += dump_tlb.o +obj-$(CONFIG_CPU_RM9000) += dump_tlb.o +obj-$(CONFIG_CPU_SB1) += dump_tlb.o +obj-$(CONFIG_CPU_TX39XX) += r3k_dump_tlb.o +obj-$(CONFIG_CPU_TX49XX) += dump_tlb.o +obj-$(CONFIG_CPU_VR41XX) += dump_tlb.o EXTRA_AFLAGS := $(CFLAGS) diff -Nru a/arch/mips/lib-64/Makefile b/arch/mips/lib-64/Makefile --- a/arch/mips/lib-64/Makefile 2004-06-28 18:21:56 -07:00 +++ b/arch/mips/lib-64/Makefile 2004-06-28 18:21:56 -07:00 @@ -4,10 +4,22 @@ lib-y += csum_partial.o memset.o watch.o -ifeq ($(CONFIG_CPU_R3000)$(CONFIG_CPU_TX39XX),y) - lib-y += r3k_dump_tlb.o -else - lib-y += dump_tlb.o -endif +obj-$(CONFIG_CPU_MIPS32) += dump_tlb.o +obj-$(CONFIG_CPU_MIPS64) += dump_tlb.o +obj-$(CONFIG_CPU_NEVADA) += dump_tlb.o +obj-$(CONFIG_CPU_R10000) += dump_tlb.o +obj-$(CONFIG_CPU_R3000) += r3k_dump_tlb.o +obj-$(CONFIG_CPU_R4300) += dump_tlb.o +obj-$(CONFIG_CPU_R4X00) += dump_tlb.o +obj-$(CONFIG_CPU_R5000) += dump_tlb.o +obj-$(CONFIG_CPU_R5432) += dump_tlb.o +obj-$(CONFIG_CPU_R6000) += +obj-$(CONFIG_CPU_R8000) += +obj-$(CONFIG_CPU_RM7000) += dump_tlb.o +obj-$(CONFIG_CPU_RM9000) += dump_tlb.o +obj-$(CONFIG_CPU_SB1) += dump_tlb.o +obj-$(CONFIG_CPU_TX39XX) += r3k_dump_tlb.o +obj-$(CONFIG_CPU_TX49XX) += dump_tlb.o +obj-$(CONFIG_CPU_VR41XX) += dump_tlb.o EXTRA_AFLAGS := $(CFLAGS) diff -Nru a/arch/mips/mips-boards/generic/cmdline.c b/arch/mips/mips-boards/generic/cmdline.c --- a/arch/mips/mips-boards/generic/cmdline.c 2004-06-28 18:21:58 -07:00 +++ b/arch/mips/mips-boards/generic/cmdline.c 2004-06-28 18:21:58 -07:00 @@ -51,7 +51,9 @@ *cp++ = ' '; actr++; } - if (cp != &(arcs_cmdline[0])) /* get rid of trailing space */ + if (cp != &(arcs_cmdline[0])) { + /* get rid of trailing space */ --cp; - *cp = '\0'; + *cp = '\0'; + } } diff -Nru a/arch/mips/mips-boards/generic/printf.c b/arch/mips/mips-boards/generic/printf.c --- a/arch/mips/mips-boards/generic/printf.c 2004-06-28 18:21:58 -07:00 +++ b/arch/mips/mips-boards/generic/printf.c 2004-06-28 18:21:58 -07:00 @@ -59,7 +59,7 @@ outb(value, PORT(offset)); } -int putPromChar(char c) +int prom_putchar(char c) { while ((serial_in(UART_LSR) & UART_LSR_THRE) == 0) ; @@ -69,7 +69,7 @@ return 1; } -char getPromChar(void) +char prom_getchar(void) { while (!(serial_in(UART_LSR) & UART_LSR_DR)) ; @@ -77,33 +77,3 @@ return serial_in(UART_RX); } -static spinlock_t con_lock = SPIN_LOCK_UNLOCKED; - -static char buf[1024]; - -void __init prom_printf(char *fmt, ...) -{ - va_list args; - int l; - char *p, *buf_end; - long flags; - - spin_lock_irqsave(con_lock, flags); - - va_start(args, fmt); - l = vsprintf(buf, fmt, args); /* hopefully i < sizeof(buf) */ - va_end(args); - - buf_end = buf + l; - - for (p = buf; p < buf_end; p++) { - /* Crude cr/nl handling is better than none */ - if (*p == '\n') - putPromChar('\r'); - putPromChar(*p); - } - /* wait for output to drain */ - while ((serial_in(UART_LSR) & UART_LSR_TEMT) == 0) - ; - spin_unlock_irqrestore(con_lock, flags); -} diff -Nru a/arch/mips/mm/Makefile b/arch/mips/mm/Makefile --- a/arch/mips/mm/Makefile 2004-06-28 18:21:57 -07:00 +++ b/arch/mips/mm/Makefile 2004-06-28 18:21:57 -07:00 @@ -12,18 +12,53 @@ obj-$(CONFIG_CPU_MIPS64) += c-r4k.o cex-gen.o pg-r4k.o tlb-r4k.o obj-$(CONFIG_CPU_NEVADA) += c-r4k.o cex-gen.o pg-r4k.o tlb-r4k.o obj-$(CONFIG_CPU_R10000) += c-r4k.o cex-gen.o pg-r4k.o tlb-andes.o -obj-$(CONFIG_CPU_R3000) += c-r3k.o tlb-r3k.o pg-r4k.o tlbex-r3k.o +obj-$(CONFIG_CPU_R3000) += c-r3k.o tlb-r3k.o pg-r4k.o obj-$(CONFIG_CPU_R4300) += c-r4k.o cex-gen.o pg-r4k.o tlb-r4k.o obj-$(CONFIG_CPU_R4X00) += c-r4k.o cex-gen.o pg-r4k.o tlb-r4k.o obj-$(CONFIG_CPU_R5000) += c-r4k.o cex-gen.o pg-r4k.o tlb-r4k.o obj-$(CONFIG_CPU_R5432) += c-r4k.o cex-gen.o pg-r4k.o tlb-r4k.o +obj-$(CONFIG_CPU_R8000) += c-r4k.o cex-gen.o pg-r4k.o tlb-r8k.o obj-$(CONFIG_CPU_RM7000) += c-r4k.o cex-gen.o pg-r4k.o tlb-r4k.o obj-$(CONFIG_CPU_RM9000) += c-r4k.o cex-gen.o pg-r4k.o tlb-r4k.o obj-$(CONFIG_CPU_SB1) += c-sb1.o cerr-sb1.o cex-sb1.o pg-sb1.o \ tlb-sb1.o -obj-$(CONFIG_CPU_TX39XX) += c-tx39.o pg-r4k.o tlb-r3k.o tlbex-r3k.o +obj-$(CONFIG_CPU_TX39XX) += c-tx39.o pg-r4k.o tlb-r3k.o obj-$(CONFIG_CPU_TX49XX) += c-r4k.o cex-gen.o pg-r4k.o tlb-r4k.o obj-$(CONFIG_CPU_VR41XX) += c-r4k.o cex-gen.o pg-r4k.o tlb-r4k.o + +# +# TLB exception handling code differs between 32-bit and 64-bit kernels. +# +ifdef CONFIG_MIPS32 +obj-$(CONFIG_CPU_R3000) += tlbex32-r3k.o +obj-$(CONFIG_CPU_TX49XX) += tlbex32-r4k.o +obj-$(CONFIG_CPU_R4300) += tlbex32-r4k.o +obj-$(CONFIG_CPU_R4X00) += tlbex32-r4k.o +obj-$(CONFIG_CPU_VR41XX) += tlbex32-r4k.o +obj-$(CONFIG_CPU_R5000) += tlbex32-r4k.o +obj-$(CONFIG_CPU_NEVADA) += tlbex32-r4k.o +obj-$(CONFIG_CPU_R5432) += tlbex32-r4k.o +obj-$(CONFIG_CPU_RM7000) += tlbex32-r4k.o +obj-$(CONFIG_CPU_RM9000) += tlbex32-r4k.o +obj-$(CONFIG_CPU_R10000) += tlbex32-r4k.o +obj-$(CONFIG_CPU_MIPS32) += tlbex32-r4k.o +obj-$(CONFIG_CPU_MIPS64) += tlbex32-r4k.o +obj-$(CONFIG_CPU_SB1) += tlbex32-r4k.o +obj-$(CONFIG_CPU_TX39XX) += tlbex32-r3k.o +endif +ifdef CONFIG_MIPS64 +obj-$(CONFIG_CPU_R4300) += tlb64-glue-r4k.o tlbex64-r4k.o +obj-$(CONFIG_CPU_R4X00) += tlb64-glue-r4k.o tlbex64-r4k.o +obj-$(CONFIG_CPU_R5000) += tlb64-glue-r4k.o tlbex64-r4k.o +obj-$(CONFIG_CPU_NEVADA) += tlb64-glue-r4k.o tlbex64-r4k.o +obj-$(CONFIG_CPU_R5432) += tlb64-glue-r4k.o tlbex64-r4k.o +obj-$(CONFIG_CPU_RM7000) += tlb64-glue-r4k.o tlbex64-r4k.o +obj-$(CONFIG_CPU_RM9000) += tlb64-glue-r4k.o tlbex64-r4k.o +obj-$(CONFIG_CPU_R10000) += tlb64-glue-r4k.o tlbex64-r4k.o +obj-$(CONFIG_CPU_SB1) += tlb64-glue-sb1.o tlbex64-r4k.o +obj-$(CONFIG_CPU_MIPS64) += tlb64-glue-r4k.o tlbex64-r4k.o +endif + obj-$(CONFIG_IP22_CPU_SCACHE) += sc-ip22.o obj-$(CONFIG_R5000_CPU_SCACHE) += sc-r5k.o diff -Nru a/arch/mips/mm/pgtable.c b/arch/mips/mm/pgtable.c --- a/arch/mips/mm/pgtable.c 2004-06-28 18:21:55 -07:00 +++ b/arch/mips/mm/pgtable.c 2004-06-28 18:21:55 -07:00 @@ -12,7 +12,7 @@ printk("Mem-info:\n"); show_free_areas(); - printk("Free swap: %6dkB\n",nr_swap_pages<<(PAGE_SHIFT-10)); + printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10)); pfn = max_mapnr; while (pfn-- > 0) { page = pfn_to_page(pfn); diff -Nru a/arch/mips/mm/tlb-r8k.c b/arch/mips/mm/tlb-r8k.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/mips/mm/tlb-r8k.c 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,253 @@ +/* + * 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) 1996 David S. Miller (dm@engr.sgi.com) + * Copyright (C) 1997, 1998, 1999, 2000 Ralf Baechle ralf@gnu.org + * Carsten Langgaard, carstenl@mips.com + * Copyright (C) 2002 MIPS Technologies, Inc. All rights reserved. + */ +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +extern void except_vec0_generic(void); +extern void except_vec1_r8k(void); + +#define TFP_TLB_SIZE 384 +#define TFP_TLB_SET_SHIFT 7 + +/* CP0 hazard avoidance. */ +#define BARRIER __asm__ __volatile__(".set noreorder\n\t" \ + "nop; nop; nop; nop; nop; nop;\n\t" \ + ".set reorder\n\t") + +void local_flush_tlb_all(void) +{ + unsigned long flags; + unsigned long old_ctx; + int entry; + + local_irq_save(flags); + /* Save old context and create impossible VPN2 value */ + old_ctx = read_c0_entryhi(); + write_c0_entrylo(0); + + for (entry = 0; entry < TFP_TLB_SIZE; entry++) { + write_c0_tlbset(entry >> TFP_TLB_SET_SHIFT); + write_c0_vaddr(entry << PAGE_SHIFT); + write_c0_entryhi(CKSEG0 + (entry << (PAGE_SHIFT + 1))); + mtc0_tlbw_hazard(); + tlb_write(); + } + tlbw_use_hazard(); + write_c0_entryhi(old_ctx); + local_irq_restore(flags); +} + +void local_flush_tlb_mm(struct mm_struct *mm) +{ + int cpu = smp_processor_id(); + + if (cpu_context(cpu, mm) != 0) + drop_mmu_context(mm,cpu); +} + +void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start, + unsigned long end) +{ + struct mm_struct *mm = vma->vm_mm; + int cpu = smp_processor_id(); + unsigned long flags; + int oldpid, newpid, size; + + if (!cpu_context(cpu, mm)) + return; + + size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT; + size = (size + 1) >> 1; + + local_irq_save(flags); + + if (size > TFP_TLB_SIZE / 2) { + drop_mmu_context(mm, cpu); + goto out_restore; + } + + oldpid = read_c0_entryhi(); + newpid = cpu_asid(cpu, mm); + + write_c0_entrylo(0); + + start &= PAGE_MASK; + end += (PAGE_SIZE - 1); + end &= PAGE_MASK; + while (start < end) { + signed long idx; + + write_c0_vaddr(start); + write_c0_entryhi(start); + start += PAGE_SIZE; + tlb_probe(); + idx = read_c0_tlbset(); + if (idx < 0) + continue; + + write_c0_entryhi(CKSEG0 + (idx << (PAGE_SHIFT + 1))); + tlb_write(); + } + write_c0_entryhi(oldpid); + +out_restore: + local_irq_restore(flags); +} + +/* Usable for KV1 addresses only! */ +void local_flush_tlb_kernel_range(unsigned long start, unsigned long end) +{ + unsigned long flags; + int size; + + size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT; + size = (size + 1) >> 1; + + if (size > TFP_TLB_SIZE / 2) { + local_flush_tlb_all(); + return; + } + + local_irq_save(flags); + + write_c0_entrylo(0); + + start &= PAGE_MASK; + end += (PAGE_SIZE - 1); + end &= PAGE_MASK; + while (start < end) { + signed long idx; + + write_c0_vaddr(start); + write_c0_entryhi(start); + start += PAGE_SIZE; + tlb_probe(); + idx = read_c0_tlbset(); + if (idx < 0) + continue; + + write_c0_entryhi(CKSEG0 + (idx << (PAGE_SHIFT + 1))); + tlb_write(); + } + + local_irq_restore(flags); +} + +void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page) +{ + int cpu = smp_processor_id(); + unsigned long flags; + int oldpid, newpid; + signed long idx; + + if (!cpu_context(cpu, vma->vm_mm)) + return; + + newpid = cpu_asid(cpu, vma->vm_mm); + page &= PAGE_MASK; + local_irq_save(flags); + oldpid = read_c0_entryhi(); + write_c0_vaddr(page); + write_c0_entryhi(newpid); + tlb_probe(); + idx = read_c0_tlbset(); + if (idx < 0) + goto finish; + + write_c0_entrylo(0); + write_c0_entryhi(CKSEG0 + (idx << (PAGE_SHIFT + 1))); + tlb_write(); + +finish: + write_c0_entryhi(oldpid); + local_irq_restore(flags); +} + +/* + * We will need multiple versions of update_mmu_cache(), one that just + * updates the TLB with the new pte(s), and another which also checks + * for the R4k "end of page" hardware bug and does the needy. + */ +void __update_tlb(struct vm_area_struct * vma, unsigned long address, pte_t pte) +{ + unsigned long flags; + pgd_t *pgdp; + pmd_t *pmdp; + pte_t *ptep; + int pid; + + /* + * Handle debugger faulting in for debugee. + */ + if (current->active_mm != vma->vm_mm) + return; + + pid = read_c0_entryhi() & ASID_MASK; + + local_irq_save(flags); + address &= PAGE_MASK; + write_c0_vaddr(address); + write_c0_entryhi(pid); + pgdp = pgd_offset(vma->vm_mm, address); + pmdp = pmd_offset(pgdp, address); + ptep = pte_offset_map(pmdp, address); + tlb_probe(); + + write_c0_entrylo(pte_val(*ptep++) >> 6); + tlb_write(); + + write_c0_entryhi(pid); + local_irq_restore(flags); +} + +static void __init probe_tlb(unsigned long config) +{ + struct cpuinfo_mips *c = ¤t_cpu_data; + + c->tlbsize = 3 * 128; /* 3 sets each 128 entries */ +} + +void __init tlb_init(void) +{ + unsigned int config = read_c0_config(); + unsigned long status; + + probe_tlb(config); + + status = read_c0_status(); + status &= ~(ST0_UPS | ST0_KPS); +#ifdef CONFIG_PAGE_SIZE_4KB + status |= (TFP_PAGESIZE_4K << 32) | (TFP_PAGESIZE_4K << 36); +#elif defined(CONFIG_PAGE_SIZE_8KB) + status |= (TFP_PAGESIZE_8K << 32) | (TFP_PAGESIZE_8K << 36); +#elif defined(CONFIG_PAGE_SIZE_16KB) + status |= (TFP_PAGESIZE_16K << 32) | (TFP_PAGESIZE_16K << 36); +#elif defined(CONFIG_PAGE_SIZE_64KB) + status |= (TFP_PAGESIZE_64K << 32) | (TFP_PAGESIZE_64K << 36); +#endif + write_c0_status(status); + + write_c0_wired(0); + + local_flush_tlb_all(); + + memcpy((void *)(CKSEG0 + 0x00), &except_vec0_generic, 0x80); + memcpy((void *)(CKSEG0 + 0x80), except_vec1_r8k, 0x80); + flush_icache_range(CKSEG0 + 0x80, CKSEG0 + 0x100); +} diff -Nru a/arch/mips/mm/tlb-sb1.c b/arch/mips/mm/tlb-sb1.c --- a/arch/mips/mm/tlb-sb1.c 2004-06-28 18:22:00 -07:00 +++ b/arch/mips/mm/tlb-sb1.c 2004-06-28 18:22:00 -07:00 @@ -125,7 +125,7 @@ * with the firmware, go back and give all the entries invalid addresses with * the normal flush routine. Wired entries will be killed as well! */ -void sb1_sanitize_tlb(void) +static void __init sb1_sanitize_tlb(void) { int entry; long addr = 0; diff -Nru a/arch/mips/mm/tlb64-glue-r4k.S b/arch/mips/mm/tlb64-glue-r4k.S --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/mips/mm/tlb64-glue-r4k.S 2004-06-28 18:21:59 -07:00 @@ -0,0 +1,41 @@ +/* + * 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) 1999 Ralf Baechle + * Copyright (C) 1999 Silicon Graphics, Inc. + */ +#include +#include +#include +#include + + .macro __BUILD_cli + CLI + .endm + + .macro __BUILD_sti + STI + .endm + + .macro __BUILD_kmode + KMODE + .endm + + .macro tlb_handler name interruptible writebit + NESTED(__\name, PT_SIZE, sp) + SAVE_ALL + dmfc0 a2, CP0_BADVADDR + __BUILD_\interruptible + li a1, \writebit + sd a2, PT_BVADDR(sp) + move a0, sp + jal do_page_fault + j ret_from_exception + END(__\name) + .endm + + tlb_handler xtlb_mod kmode 1 + tlb_handler xtlb_tlbl kmode 0 + tlb_handler xtlb_tlbs kmode 1 diff -Nru a/arch/mips/mm/tlb64-glue-sb1.S b/arch/mips/mm/tlb64-glue-sb1.S --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/mips/mm/tlb64-glue-sb1.S 2004-06-28 18:21:59 -07:00 @@ -0,0 +1,66 @@ +/* + * 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) 1999 Ralf Baechle + * Copyright (C) 1999 Silicon Graphics, Inc. + */ +#include +#include +#include +#include +#include +#include + + .macro __BUILD_cli + CLI + .endm + + .macro __BUILD_sti + STI + .endm + + .macro __BUILD_kmode + KMODE + .endm + + .macro tlb_handler name interruptible writebit + NESTED(__\name, PT_SIZE, sp) + SAVE_ALL + dmfc0 a2, CP0_BADVADDR + __BUILD_\interruptible + li a1, \writebit + sd a2, PT_BVADDR(sp) + move a0, sp + jal do_page_fault + j ret_from_exception + END(__\name) + .endm + + .macro tlb_handler_m3 name interruptible writebit + NESTED(__\name, PT_SIZE, sp) + dmfc0 k0, CP0_BADVADDR + dmfc0 k1, CP0_ENTRYHI + xor k0, k1 + dsrl k0, k0, PAGE_SHIFT + 1 + bnez k0, 1f + SAVE_ALL + dmfc0 a2, CP0_BADVADDR + __BUILD_\interruptible + li a1, \writebit + sd a2, PT_BVADDR(sp) + move a0, sp + jal do_page_fault +1: + j ret_from_exception + END(__\name) + .endm + + tlb_handler xtlb_mod kmode 1 +#if BCM1250_M3_WAR + tlb_handler_m3 xtlb_tlbl kmode 0 +#else + tlb_handler xtlb_tlbl kmode 0 +#endif + tlb_handler xtlb_tlbs kmode 1 diff -Nru a/arch/mips/mm/tlbex-r3k.S b/arch/mips/mm/tlbex-r3k.S --- a/arch/mips/mm/tlbex-r3k.S 2004-06-28 18:21:57 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,224 +0,0 @@ -/* - * TLB exception handling code for R2000/R3000. - * - * Copyright (C) 1994, 1995, 1996 by Ralf Baechle and Andreas Busse - * - * Multi-CPU abstraction reworking: - * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com) - * - * Further modifications to make this work: - * Copyright (c) 1998 Harald Koerfgen - * Copyright (c) 1998, 1999 Gleb Raiko & Vladimir Roganov - * Copyright (c) 2001 Ralf Baechle - * Copyright (c) 2001 MIPS Technologies, Inc. - */ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define TLB_OPTIMIZE /* If you are paranoid, disable this. */ - - .text - .set mips1 - .set noreorder - - __INIT - - /* TLB refill, R[23]00 version */ - LEAF(except_vec0_r2300) - .set noat - .set mips1 - mfc0 k0, CP0_BADVADDR - lw k1, pgd_current # get pgd pointer - srl k0, k0, 22 - sll k0, k0, 2 - addu k1, k1, k0 - mfc0 k0, CP0_CONTEXT - lw k1, (k1) - and k0, k0, 0xffc - addu k1, k1, k0 - lw k0, (k1) - nop - mtc0 k0, CP0_ENTRYLO0 - mfc0 k1, CP0_EPC - tlbwr - jr k1 - rfe - END(except_vec0_r2300) - - __FINIT - - /* ABUSE of CPP macros 101. */ - - /* After this macro runs, the pte faulted on is - * in register PTE, a ptr into the table in which - * the pte belongs is in PTR. - */ -#define LOAD_PTE(pte, ptr) \ - mfc0 pte, CP0_BADVADDR; \ - lw ptr, pgd_current; \ - srl pte, pte, 22; \ - sll pte, pte, 2; \ - addu ptr, ptr, pte; \ - mfc0 pte, CP0_CONTEXT; \ - lw ptr, (ptr); \ - andi pte, pte, 0xffc; \ - addu ptr, ptr, pte; \ - lw pte, (ptr); \ - nop; - - /* This places the even/odd pte pair in the page - * table at PTR into ENTRYLO0 and ENTRYLO1 using - * TMP as a scratch register. - */ -#define PTE_RELOAD(ptr) \ - lw ptr, (ptr) ; \ - nop ; \ - mtc0 ptr, CP0_ENTRYLO0; \ - nop; - -#define DO_FAULT(write) \ - .set noat; \ - .set macro; \ - SAVE_ALL; \ - mfc0 a2, CP0_BADVADDR; \ - KMODE; \ - .set at; \ - move a0, sp; \ - jal do_page_fault; \ - li a1, write; \ - j ret_from_exception; \ - nop; \ - .set noat; \ - .set nomacro; - - /* Check is PTE is present, if not then jump to LABEL. - * PTR points to the page table where this PTE is located, - * when the macro is done executing PTE will be restored - * with it's original value. - */ -#define PTE_PRESENT(pte, ptr, label) \ - andi pte, pte, (_PAGE_PRESENT | _PAGE_READ); \ - xori pte, pte, (_PAGE_PRESENT | _PAGE_READ); \ - bnez pte, label; \ - .set push; \ - .set reorder; \ - lw pte, (ptr); \ - .set pop; - - /* Make PTE valid, store result in PTR. */ -#define PTE_MAKEVALID(pte, ptr) \ - ori pte, pte, (_PAGE_VALID | _PAGE_ACCESSED); \ - sw pte, (ptr); - - /* Check if PTE can be written to, if not branch to LABEL. - * Regardless restore PTE with value from PTR when done. - */ -#define PTE_WRITABLE(pte, ptr, label) \ - andi pte, pte, (_PAGE_PRESENT | _PAGE_WRITE); \ - xori pte, pte, (_PAGE_PRESENT | _PAGE_WRITE); \ - bnez pte, label; \ - .set push; \ - .set reorder; \ - lw pte, (ptr); \ - .set pop; - - - /* Make PTE writable, update software status bits as well, - * then store at PTR. - */ -#define PTE_MAKEWRITE(pte, ptr) \ - ori pte, pte, (_PAGE_ACCESSED | _PAGE_MODIFIED | \ - _PAGE_VALID | _PAGE_DIRTY); \ - sw pte, (ptr); - -/* - * The index register may have the probe fail bit set, - * because we would trap on access kseg2, i.e. without refill. - */ -#define TLB_WRITE(reg) \ - mfc0 reg, CP0_INDEX; \ - nop; \ - bltz reg, 1f; \ - nop; \ - tlbwi; \ - j 2f; \ - nop; \ -1: tlbwr; \ -2: - -#define RET(reg) \ - mfc0 reg, CP0_EPC; \ - nop; \ - jr reg; \ - rfe - - .set noreorder - - .align 5 -NESTED(handle_tlbl, PT_SIZE, sp) - .set noat - -#ifdef TLB_OPTIMIZE - /* Test present bit in entry. */ - LOAD_PTE(k0, k1) - tlbp - PTE_PRESENT(k0, k1, nopage_tlbl) - PTE_MAKEVALID(k0, k1) - PTE_RELOAD(k1) - TLB_WRITE(k0) - RET(k0) -nopage_tlbl: -#endif - - DO_FAULT(0) -END(handle_tlbl) - -NESTED(handle_tlbs, PT_SIZE, sp) - .set noat - -#ifdef TLB_OPTIMIZE - LOAD_PTE(k0, k1) - tlbp # find faulting entry - PTE_WRITABLE(k0, k1, nopage_tlbs) - PTE_MAKEWRITE(k0, k1) - PTE_RELOAD(k1) - TLB_WRITE(k0) - RET(k0) -nopage_tlbs: -#endif - - DO_FAULT(1) -END(handle_tlbs) - - .align 5 -NESTED(handle_mod, PT_SIZE, sp) - .set noat -#ifdef TLB_OPTIMIZE - LOAD_PTE(k0, k1) - tlbp # find faulting entry - andi k0, k0, _PAGE_WRITE - beqz k0, nowrite_mod - .set push - .set reorder - lw k0, (k1) - .set pop - - /* Present and writable bits set, set accessed and dirty bits. */ - PTE_MAKEWRITE(k0, k1) - - /* Now reload the entry into the tlb. */ - PTE_RELOAD(k1) - tlbwi - RET(k0) -#endif - -nowrite_mod: - DO_FAULT(1) -END(handle_mod) diff -Nru a/arch/mips/mm/tlbex32-r3k.S b/arch/mips/mm/tlbex32-r3k.S --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/mips/mm/tlbex32-r3k.S 2004-06-28 18:21:57 -07:00 @@ -0,0 +1,224 @@ +/* + * TLB exception handling code for R2000/R3000. + * + * Copyright (C) 1994, 1995, 1996 by Ralf Baechle and Andreas Busse + * + * Multi-CPU abstraction reworking: + * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com) + * + * Further modifications to make this work: + * Copyright (c) 1998 Harald Koerfgen + * Copyright (c) 1998, 1999 Gleb Raiko & Vladimir Roganov + * Copyright (c) 2001 Ralf Baechle + * Copyright (c) 2001 MIPS Technologies, Inc. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define TLB_OPTIMIZE /* If you are paranoid, disable this. */ + + .text + .set mips1 + .set noreorder + + __INIT + + /* TLB refill, R[23]00 version */ + LEAF(except_vec0_r2300) + .set noat + .set mips1 + mfc0 k0, CP0_BADVADDR + lw k1, pgd_current # get pgd pointer + srl k0, k0, 22 + sll k0, k0, 2 + addu k1, k1, k0 + mfc0 k0, CP0_CONTEXT + lw k1, (k1) + and k0, k0, 0xffc + addu k1, k1, k0 + lw k0, (k1) + nop + mtc0 k0, CP0_ENTRYLO0 + mfc0 k1, CP0_EPC + tlbwr + jr k1 + rfe + END(except_vec0_r2300) + + __FINIT + + /* ABUSE of CPP macros 101. */ + + /* After this macro runs, the pte faulted on is + * in register PTE, a ptr into the table in which + * the pte belongs is in PTR. + */ +#define LOAD_PTE(pte, ptr) \ + mfc0 pte, CP0_BADVADDR; \ + lw ptr, pgd_current; \ + srl pte, pte, 22; \ + sll pte, pte, 2; \ + addu ptr, ptr, pte; \ + mfc0 pte, CP0_CONTEXT; \ + lw ptr, (ptr); \ + andi pte, pte, 0xffc; \ + addu ptr, ptr, pte; \ + lw pte, (ptr); \ + nop; + + /* This places the even/odd pte pair in the page + * table at PTR into ENTRYLO0 and ENTRYLO1 using + * TMP as a scratch register. + */ +#define PTE_RELOAD(ptr) \ + lw ptr, (ptr) ; \ + nop ; \ + mtc0 ptr, CP0_ENTRYLO0; \ + nop; + +#define DO_FAULT(write) \ + .set noat; \ + .set macro; \ + SAVE_ALL; \ + mfc0 a2, CP0_BADVADDR; \ + KMODE; \ + .set at; \ + move a0, sp; \ + jal do_page_fault; \ + li a1, write; \ + j ret_from_exception; \ + nop; \ + .set noat; \ + .set nomacro; + + /* Check is PTE is present, if not then jump to LABEL. + * PTR points to the page table where this PTE is located, + * when the macro is done executing PTE will be restored + * with it's original value. + */ +#define PTE_PRESENT(pte, ptr, label) \ + andi pte, pte, (_PAGE_PRESENT | _PAGE_READ); \ + xori pte, pte, (_PAGE_PRESENT | _PAGE_READ); \ + bnez pte, label; \ + .set push; \ + .set reorder; \ + lw pte, (ptr); \ + .set pop; + + /* Make PTE valid, store result in PTR. */ +#define PTE_MAKEVALID(pte, ptr) \ + ori pte, pte, (_PAGE_VALID | _PAGE_ACCESSED); \ + sw pte, (ptr); + + /* Check if PTE can be written to, if not branch to LABEL. + * Regardless restore PTE with value from PTR when done. + */ +#define PTE_WRITABLE(pte, ptr, label) \ + andi pte, pte, (_PAGE_PRESENT | _PAGE_WRITE); \ + xori pte, pte, (_PAGE_PRESENT | _PAGE_WRITE); \ + bnez pte, label; \ + .set push; \ + .set reorder; \ + lw pte, (ptr); \ + .set pop; + + + /* Make PTE writable, update software status bits as well, + * then store at PTR. + */ +#define PTE_MAKEWRITE(pte, ptr) \ + ori pte, pte, (_PAGE_ACCESSED | _PAGE_MODIFIED | \ + _PAGE_VALID | _PAGE_DIRTY); \ + sw pte, (ptr); + +/* + * The index register may have the probe fail bit set, + * because we would trap on access kseg2, i.e. without refill. + */ +#define TLB_WRITE(reg) \ + mfc0 reg, CP0_INDEX; \ + nop; \ + bltz reg, 1f; \ + nop; \ + tlbwi; \ + j 2f; \ + nop; \ +1: tlbwr; \ +2: + +#define RET(reg) \ + mfc0 reg, CP0_EPC; \ + nop; \ + jr reg; \ + rfe + + .set noreorder + + .align 5 +NESTED(handle_tlbl, PT_SIZE, sp) + .set noat + +#ifdef TLB_OPTIMIZE + /* Test present bit in entry. */ + LOAD_PTE(k0, k1) + tlbp + PTE_PRESENT(k0, k1, nopage_tlbl) + PTE_MAKEVALID(k0, k1) + PTE_RELOAD(k1) + TLB_WRITE(k0) + RET(k0) +nopage_tlbl: +#endif + + DO_FAULT(0) +END(handle_tlbl) + +NESTED(handle_tlbs, PT_SIZE, sp) + .set noat + +#ifdef TLB_OPTIMIZE + LOAD_PTE(k0, k1) + tlbp # find faulting entry + PTE_WRITABLE(k0, k1, nopage_tlbs) + PTE_MAKEWRITE(k0, k1) + PTE_RELOAD(k1) + TLB_WRITE(k0) + RET(k0) +nopage_tlbs: +#endif + + DO_FAULT(1) +END(handle_tlbs) + + .align 5 +NESTED(handle_mod, PT_SIZE, sp) + .set noat +#ifdef TLB_OPTIMIZE + LOAD_PTE(k0, k1) + tlbp # find faulting entry + andi k0, k0, _PAGE_WRITE + beqz k0, nowrite_mod + .set push + .set reorder + lw k0, (k1) + .set pop + + /* Present and writable bits set, set accessed and dirty bits. */ + PTE_MAKEWRITE(k0, k1) + + /* Now reload the entry into the tlb. */ + PTE_RELOAD(k1) + tlbwi + RET(k0) +#endif + +nowrite_mod: + DO_FAULT(1) +END(handle_mod) diff -Nru a/arch/mips/mm/tlbex32-r4k.S b/arch/mips/mm/tlbex32-r4k.S --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/mips/mm/tlbex32-r4k.S 2004-06-28 18:21:59 -07:00 @@ -0,0 +1,524 @@ +/* + * TLB exception handling code for r4k. + * + * Copyright (C) 1994, 1995, 1996 by Ralf Baechle and Andreas Busse + * + * Multi-cpu abstraction and reworking: + * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com) + * + * Carsten Langgaard, carstenl@mips.com + * Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved. + */ +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define TLB_OPTIMIZE /* If you are paranoid, disable this. */ + +#ifdef CONFIG_64BIT_PHYS_ADDR +#define PTE_L ld +#define PTE_S sd +#define PTE_SRL dsrl +#define P_MTC0 dmtc0 +#define PTE_SIZE 8 +#define PTEP_INDX_MSK 0xff0 +#define PTE_INDX_MSK 0xff8 +#define PTE_INDX_SHIFT 9 +#else +#define PTE_L lw +#define PTE_S sw +#define PTE_SRL srl +#define P_MTC0 mtc0 +#define PTE_SIZE 4 +#define PTEP_INDX_MSK 0xff8 +#define PTE_INDX_MSK 0xffc +#define PTE_INDX_SHIFT 10 +#endif + +/* + * ABUSE of CPP macros 101. + * + * After this macro runs, the pte faulted on is + * in register PTE, a ptr into the table in which + * the pte belongs is in PTR. + */ + +#ifdef CONFIG_SMP +#define GET_PGD(scratch, ptr) \ + mfc0 ptr, CP0_CONTEXT; \ + la scratch, pgd_current;\ + srl ptr, 23; \ + sll ptr, 2; \ + addu ptr, scratch, ptr; \ + lw ptr, (ptr); +#else +#define GET_PGD(scratch, ptr) \ + lw ptr, pgd_current; +#endif + +#define LOAD_PTE(pte, ptr) \ + GET_PGD(pte, ptr) \ + mfc0 pte, CP0_BADVADDR; \ + srl pte, pte, _PGDIR_SHIFT; \ + sll pte, pte, 2; \ + addu ptr, ptr, pte; \ + mfc0 pte, CP0_BADVADDR; \ + lw ptr, (ptr); \ + srl pte, pte, PTE_INDX_SHIFT; \ + and pte, pte, PTE_INDX_MSK; \ + addu ptr, ptr, pte; \ + PTE_L pte, (ptr); + + /* This places the even/odd pte pair in the page + * table at PTR into ENTRYLO0 and ENTRYLO1 using + * TMP as a scratch register. + */ +#define PTE_RELOAD(ptr, tmp) \ + ori ptr, ptr, PTE_SIZE; \ + xori ptr, ptr, PTE_SIZE; \ + PTE_L tmp, PTE_SIZE(ptr); \ + PTE_L ptr, 0(ptr); \ + PTE_SRL tmp, tmp, 6; \ + P_MTC0 tmp, CP0_ENTRYLO1; \ + PTE_SRL ptr, ptr, 6; \ + P_MTC0 ptr, CP0_ENTRYLO0; + +#define DO_FAULT(write) \ + .set noat; \ + SAVE_ALL; \ + mfc0 a2, CP0_BADVADDR; \ + KMODE; \ + .set at; \ + move a0, sp; \ + jal do_page_fault; \ + li a1, write; \ + j ret_from_exception; \ + nop; \ + .set noat; + + /* Check is PTE is present, if not then jump to LABEL. + * PTR points to the page table where this PTE is located, + * when the macro is done executing PTE will be restored + * with it's original value. + */ +#define PTE_PRESENT(pte, ptr, label) \ + andi pte, pte, (_PAGE_PRESENT | _PAGE_READ); \ + xori pte, pte, (_PAGE_PRESENT | _PAGE_READ); \ + bnez pte, label; \ + PTE_L pte, (ptr); + + /* Make PTE valid, store result in PTR. */ +#define PTE_MAKEVALID(pte, ptr) \ + ori pte, pte, (_PAGE_VALID | _PAGE_ACCESSED); \ + PTE_S pte, (ptr); + + /* Check if PTE can be written to, if not branch to LABEL. + * Regardless restore PTE with value from PTR when done. + */ +#define PTE_WRITABLE(pte, ptr, label) \ + andi pte, pte, (_PAGE_PRESENT | _PAGE_WRITE); \ + xori pte, pte, (_PAGE_PRESENT | _PAGE_WRITE); \ + bnez pte, label; \ + PTE_L pte, (ptr); + + /* Make PTE writable, update software status bits as well, + * then store at PTR. + */ +#define PTE_MAKEWRITE(pte, ptr) \ + ori pte, pte, (_PAGE_ACCESSED | _PAGE_MODIFIED | \ + _PAGE_VALID | _PAGE_DIRTY); \ + PTE_S pte, (ptr); + + __INIT + +#ifdef CONFIG_64BIT_PHYS_ADDR +#define GET_PTE_OFF(reg) +#elif CONFIG_CPU_VR41XX +#define GET_PTE_OFF(reg) srl reg, reg, 3 +#else +#define GET_PTE_OFF(reg) srl reg, reg, 1 +#endif + +/* + * These handlers much be written in a relocatable manner + * because based upon the cpu type an arbitrary one of the + * following pieces of code will be copied to the KSEG0 + * vector location. + */ + /* TLB refill, EXL == 0, R4xx0, non-R4600 version */ + .set noreorder + .set noat + LEAF(except_vec0_r4000) + .set mips3 + GET_PGD(k0, k1) # get pgd pointer + mfc0 k0, CP0_BADVADDR # Get faulting address + srl k0, k0, _PGDIR_SHIFT # get pgd only bits + + sll k0, k0, 2 + addu k1, k1, k0 # add in pgd offset + mfc0 k0, CP0_CONTEXT # get context reg + lw k1, (k1) + GET_PTE_OFF(k0) # get pte offset + and k0, k0, PTEP_INDX_MSK + addu k1, k1, k0 # add in offset + PTE_L k0, 0(k1) # get even pte + PTE_L k1, PTE_SIZE(k1) # get odd pte + PTE_SRL k0, k0, 6 # convert to entrylo0 + P_MTC0 k0, CP0_ENTRYLO0 # load it + PTE_SRL k1, k1, 6 # convert to entrylo1 + P_MTC0 k1, CP0_ENTRYLO1 # load it + mtc0_tlbw_hazard + tlbwr # write random tlb entry + tlbw_eret_hazard + eret # return from trap + END(except_vec0_r4000) + + /* TLB refill, EXL == 0, R4600 version */ + LEAF(except_vec0_r4600) + .set mips3 + GET_PGD(k0, k1) # get pgd pointer + mfc0 k0, CP0_BADVADDR + srl k0, k0, _PGDIR_SHIFT + sll k0, k0, 2 # log2(sizeof(pgd_t) + addu k1, k1, k0 + mfc0 k0, CP0_CONTEXT + lw k1, (k1) + GET_PTE_OFF(k0) # get pte offset + and k0, k0, PTEP_INDX_MSK + addu k1, k1, k0 + PTE_L k0, 0(k1) + PTE_L k1, PTE_SIZE(k1) + PTE_SRL k0, k0, 6 + P_MTC0 k0, CP0_ENTRYLO0 + PTE_SRL k1, k1, 6 + P_MTC0 k1, CP0_ENTRYLO1 + nop + tlbwr + nop + eret + END(except_vec0_r4600) + + /* TLB refill, EXL == 0, R52x0 "Nevada" version */ + /* + * This version has a bug workaround for the Nevada. It seems + * as if under certain circumstances the move from cp0_context + * might produce a bogus result when the mfc0 instruction and + * it's consumer are in a different cacheline or a load instruction, + * probably any memory reference, is between them. This is + * potencially slower than the R4000 version, so we use this + * special version. + */ + .set noreorder + .set noat + LEAF(except_vec0_nevada) + .set mips3 + mfc0 k0, CP0_BADVADDR # Get faulting address + srl k0, k0, _PGDIR_SHIFT # get pgd only bits + lw k1, pgd_current # get pgd pointer + sll k0, k0, 2 # log2(sizeof(pgd_t) + addu k1, k1, k0 # add in pgd offset + lw k1, (k1) + mfc0 k0, CP0_CONTEXT # get context reg + GET_PTE_OFF(k0) # get pte offset + and k0, k0, PTEP_INDX_MSK + addu k1, k1, k0 # add in offset + PTE_L k0, 0(k1) # get even pte + PTE_L k1, PTE_SIZE(k1) # get odd pte + PTE_SRL k0, k0, 6 # convert to entrylo0 + P_MTC0 k0, CP0_ENTRYLO0 # load it + PTE_SRL k1, k1, 6 # convert to entrylo1 + P_MTC0 k1, CP0_ENTRYLO1 # load it + nop # QED specified nops + nop + tlbwr # write random tlb entry + nop # traditional nop + eret # return from trap + END(except_vec0_nevada) + + /* TLB refill, EXL == 0, SB1 with M3 errata handling version */ + LEAF(except_vec0_sb1) +#if BCM1250_M3_WAR + mfc0 k0, CP0_BADVADDR + mfc0 k1, CP0_ENTRYHI + xor k0, k1 + srl k0, k0, PAGE_SHIFT+1 + bnez k0, 1f +#endif + GET_PGD(k0, k1) # get pgd pointer + mfc0 k0, CP0_BADVADDR # Get faulting address + srl k0, k0, _PGDIR_SHIFT # get pgd only bits + sll k0, k0, 2 + addu k1, k1, k0 # add in pgd offset + mfc0 k0, CP0_CONTEXT # get context reg + lw k1, (k1) + GET_PTE_OFF(k0) # get pte offset + and k0, k0, PTEP_INDX_MSK + addu k1, k1, k0 # add in offset + PTE_L k0, 0(k1) # get even pte + PTE_L k1, PTE_SIZE(k1) # get odd pte + PTE_SRL k0, k0, 6 # convert to entrylo0 + P_MTC0 k0, CP0_ENTRYLO0 # load it + PTE_SRL k1, k1, 6 # convert to entrylo1 + P_MTC0 k1, CP0_ENTRYLO1 # load it + tlbwr # write random tlb entry +1: eret # return from trap + END(except_vec0_sb1) + + /* TLB refill, EXL == 0, R4[40]00/R5000 badvaddr hwbug version */ + LEAF(except_vec0_r45k_bvahwbug) + .set mips3 + GET_PGD(k0, k1) # get pgd pointer + mfc0 k0, CP0_BADVADDR + srl k0, k0, _PGDIR_SHIFT + sll k0, k0, 2 # log2(sizeof(pgd_t) + addu k1, k1, k0 + mfc0 k0, CP0_CONTEXT + lw k1, (k1) +#ifndef CONFIG_64BIT_PHYS_ADDR + srl k0, k0, 1 +#endif + and k0, k0, PTEP_INDX_MSK + addu k1, k1, k0 + PTE_L k0, 0(k1) + PTE_L k1, PTE_SIZE(k1) + nop /* XXX */ + tlbp + PTE_SRL k0, k0, 6 + P_MTC0 k0, CP0_ENTRYLO0 + PTE_SRL k1, k1, 6 + mfc0 k0, CP0_INDEX + P_MTC0 k1, CP0_ENTRYLO1 + bltzl k0, 1f + tlbwr +1: + nop + eret + END(except_vec0_r45k_bvahwbug) + +#ifdef CONFIG_SMP + /* TLB refill, EXL == 0, R4000 MP badvaddr hwbug version */ + LEAF(except_vec0_r4k_mphwbug) + .set mips3 + GET_PGD(k0, k1) # get pgd pointer + mfc0 k0, CP0_BADVADDR + srl k0, k0, _PGDIR_SHIFT + sll k0, k0, 2 # log2(sizeof(pgd_t) + addu k1, k1, k0 + mfc0 k0, CP0_CONTEXT + lw k1, (k1) +#ifndef CONFIG_64BIT_PHYS_ADDR + srl k0, k0, 1 +#endif + and k0, k0, PTEP_INDX_MSK + addu k1, k1, k0 + PTE_L k0, 0(k1) + PTE_L k1, PTE_SIZE(k1) + nop /* XXX */ + tlbp + PTE_SRL k0, k0, 6 + P_MTC0 k0, CP0_ENTRYLO0 + PTE_SRL k1, k1, 6 + mfc0 k0, CP0_INDEX + P_MTC0 k1, CP0_ENTRYLO1 + bltzl k0, 1f + tlbwr +1: + nop + eret + END(except_vec0_r4k_mphwbug) +#endif + + /* TLB refill, EXL == 0, R4000 UP 250MHZ entrylo[01] hwbug version */ + LEAF(except_vec0_r4k_250MHZhwbug) + .set mips3 + GET_PGD(k0, k1) # get pgd pointer + mfc0 k0, CP0_BADVADDR + srl k0, k0, _PGDIR_SHIFT + sll k0, k0, 2 # log2(sizeof(pgd_t) + addu k1, k1, k0 + mfc0 k0, CP0_CONTEXT + lw k1, (k1) +#ifndef CONFIG_64BIT_PHYS_ADDR + srl k0, k0, 1 +#endif + and k0, k0, PTEP_INDX_MSK + addu k1, k1, k0 + PTE_L k0, 0(k1) + PTE_L k1, PTE_SIZE(k1) + PTE_SRL k0, k0, 6 + P_MTC0 zero, CP0_ENTRYLO0 + P_MTC0 k0, CP0_ENTRYLO0 + PTE_SRL k1, k1, 6 + P_MTC0 zero, CP0_ENTRYLO1 + P_MTC0 k1, CP0_ENTRYLO1 + b 1f + tlbwr +1: + nop + eret + END(except_vec0_r4k_250MHZhwbug) + +#ifdef CONFIG_SMP + /* TLB refill, EXL == 0, R4000 MP 250MHZ entrylo[01]+badvaddr bug version */ + LEAF(except_vec0_r4k_MP250MHZhwbug) + .set mips3 + GET_PGD(k0, k1) # get pgd pointer + mfc0 k0, CP0_BADVADDR + srl k0, k0, _PGDIR_SHIFT + sll k0, k0, 2 # log2(sizeof(pgd_t) + addu k1, k1, k0 + mfc0 k0, CP0_CONTEXT + lw k1, (k1) +#ifndef CONFIG_64BIT_PHYS_ADDR + srl k0, k0, 1 +#endif + and k0, k0, PTEP_INDX_MSK + addu k1, k1, k0 + PTE_L k0, 0(k1) + PTE_L k1, PTE_SIZE(k1) + nop /* XXX */ + tlbp + PTE_SRL k0, k0, 6 + P_MTC0 zero, CP0_ENTRYLO0 + P_MTC0 k0, CP0_ENTRYLO0 + mfc0 k0, CP0_INDEX + PTE_SRL k1, k1, 6 + P_MTC0 zero, CP0_ENTRYLO1 + P_MTC0 k1, CP0_ENTRYLO1 + bltzl k0, 1f + tlbwr +1: + nop + eret + END(except_vec0_r4k_MP250MHZhwbug) +#endif + + __FINIT + + .set noreorder + +/* + * From the IDT errata for the QED RM5230 (Nevada), processor revision 1.0: + * 2. A timing hazard exists for the TLBP instruction. + * + * stalling_instruction + * TLBP + * + * The JTLB is being read for the TLBP throughout the stall generated by the + * previous instruction. This is not really correct as the stalling instruction + * can modify the address used to access the JTLB. The failure symptom is that + * the TLBP instruction will use an address created for the stalling instruction + * and not the address held in C0_ENHI and thus report the wrong results. + * + * The software work-around is to not allow the instruction preceding the TLBP + * to stall - make it an NOP or some other instruction guaranteed not to stall. + * + * Errata 2 will not be fixed. This errata is also on the R5000. + * + * As if we MIPS hackers wouldn't know how to nop pipelines happy ... + */ +#define R5K_HAZARD nop + + /* + * Note for many R4k variants tlb probes cannot be executed out + * of the instruction cache else you get bogus results. + */ + .align 5 + NESTED(handle_tlbl, PT_SIZE, sp) + .set noat +#if BCM1250_M3_WAR + mfc0 k0, CP0_BADVADDR + mfc0 k1, CP0_ENTRYHI + xor k0, k1 + srl k0, k0, PAGE_SHIFT+1 + beqz k0, 1f + nop + .set mips3 + eret + .set mips0 +1: +#endif +invalid_tlbl: +#ifdef TLB_OPTIMIZE + .set mips3 + /* Test present bit in entry. */ + LOAD_PTE(k0, k1) + R5K_HAZARD + tlbp + PTE_PRESENT(k0, k1, nopage_tlbl) + PTE_MAKEVALID(k0, k1) + PTE_RELOAD(k1, k0) + mtc0_tlbw_hazard + tlbwi + tlbw_eret_hazard + .set mips3 + eret + .set mips0 +#endif + +nopage_tlbl: + DO_FAULT(0) + END(handle_tlbl) + + .align 5 + NESTED(handle_tlbs, PT_SIZE, sp) + .set noat +#ifdef TLB_OPTIMIZE + .set mips3 + li k0,0 + LOAD_PTE(k0, k1) + R5K_HAZARD + tlbp # find faulting entry + PTE_WRITABLE(k0, k1, nopage_tlbs) + PTE_MAKEWRITE(k0, k1) + PTE_RELOAD(k1, k0) + mtc0_tlbw_hazard + tlbwi + tlbw_eret_hazard + .set mips3 + eret + .set mips0 +#endif + +nopage_tlbs: + DO_FAULT(1) + END(handle_tlbs) + + .align 5 + NESTED(handle_mod, PT_SIZE, sp) + .set noat +#ifdef TLB_OPTIMIZE + .set mips3 + LOAD_PTE(k0, k1) + R5K_HAZARD + tlbp # find faulting entry + andi k0, k0, _PAGE_WRITE + beqz k0, nowrite_mod + PTE_L k0, (k1) + + /* Present and writable bits set, set accessed and dirty bits. */ + PTE_MAKEWRITE(k0, k1) + + /* Now reload the entry into the tlb. */ + PTE_RELOAD(k1, k0) + mtc0_tlbw_hazard + tlbwi + tlbw_eret_hazard + .set mips3 + eret + .set mips0 +#endif + +nowrite_mod: + DO_FAULT(1) + END(handle_mod) diff -Nru a/arch/mips/mm/tlbex64-r4k.S b/arch/mips/mm/tlbex64-r4k.S --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/mips/mm/tlbex64-r4k.S 2004-06-28 18:21:54 -07:00 @@ -0,0 +1,203 @@ +/* + * 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) 2000 Silicon Graphics, Inc. + * Written by Ulf Carlsson (ulfc@engr.sgi.com) + * Copyright (C) 2002 Maciej W. Rozycki + */ +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#define _VMALLOC_START 0xc000000000000000 + + /* + * After this macro runs we have a pointer to the pte of the address + * that caused the fault in PTR. + */ + .macro LOAD_PTE2, ptr, tmp, kaddr +#ifdef CONFIG_SMP + dmfc0 \ptr, CP0_CONTEXT + dmfc0 \tmp, CP0_BADVADDR + dsra \ptr, 23 # get pgd_current[cpu] +#else + dmfc0 \tmp, CP0_BADVADDR + dla \ptr, pgd_current +#endif + bltz \tmp, \kaddr + ld \ptr, (\ptr) + dsrl \tmp, (_PGDIR_SHIFT-3) # get pgd offset in bytes + andi \tmp, ((_PTRS_PER_PGD - 1)<<3) + daddu \ptr, \tmp # add in pgd offset + dmfc0 \tmp, CP0_BADVADDR + ld \ptr, (\ptr) # get pmd pointer + dsrl \tmp, (_PMD_SHIFT-3) # get pmd offset in bytes + andi \tmp, ((_PTRS_PER_PMD - 1)<<3) + daddu \ptr, \tmp # add in pmd offset + dmfc0 \tmp, CP0_XCONTEXT + ld \ptr, (\ptr) # get pte pointer + andi \tmp, 0xff0 # get pte offset + daddu \ptr, \tmp + .endm + + + /* + * Ditto for the kernel table. + */ + .macro LOAD_KPTE2, ptr, tmp, not_vmalloc + /* + * First, determine that the address is in/above vmalloc range. + */ + dmfc0 \tmp, CP0_BADVADDR + dli \ptr, _VMALLOC_START + + /* + * Now find offset into kptbl. + */ + dsubu \tmp, \tmp, \ptr + dla \ptr, kptbl + dsrl \tmp, (_PAGE_SHIFT+1) # get vpn2 + dsll \tmp, 4 # byte offset of pte + daddu \ptr, \ptr, \tmp + + /* + * Determine that fault address is within vmalloc range. + */ + dla \tmp, ekptbl + slt \tmp, \ptr, \tmp + beqz \tmp, \not_vmalloc # not vmalloc + nop + .endm + + + /* + * This places the even/odd pte pair in the page table at the pte + * entry pointed to by PTE into ENTRYLO0 and ENTRYLO1. + */ + .macro PTE_RELOAD, pte0, pte1 + dsrl \pte0, 6 # convert to entrylo0 + dmtc0 \pte0, CP0_ENTRYLO0 # load it + dsrl \pte1, 6 # convert to entrylo1 + dmtc0 \pte1, CP0_ENTRYLO1 # load it + .endm + + + .text + .set noreorder + .set mips3 + + __INIT + + /* + * TLB refill handlers for the R4000 and SB1. + * Attention: We may only use 32 instructions / 128 bytes. + */ + .align 5 +LEAF(except_vec1_r4k) + .set noat + dla k0, handle_vec1_r4k + jr k0 + nop +END(except_vec1_r4k) + +LEAF(except_vec1_sb1) +#if BCM1250_M3_WAR + dmfc0 k0, CP0_BADVADDR + dmfc0 k1, CP0_ENTRYHI + xor k0, k1 + dsrl k0, k0, _PAGE_SHIFT+1 + bnez k0, 1f +#endif + .set noat + dla k0, handle_vec1_r4k + jr k0 + nop + +1: eret + nop +END(except_vec1_sb1) + + __FINIT + + .align 5 +LEAF(handle_vec1_r4k) + .set noat + LOAD_PTE2 k1 k0 9f + ld k0, 0(k1) # get even pte + ld k1, 8(k1) # get odd pte + PTE_RELOAD k0 k1 + mtc0_tlbw_hazard + tlbwr + tlbw_eret_hazard + eret + +9: # handle the vmalloc range + LOAD_KPTE2 k1 k0 invalid_vmalloc_address + ld k0, 0(k1) # get even pte + ld k1, 8(k1) # get odd pte + PTE_RELOAD k0 k1 + mtc0_tlbw_hazard + tlbwr + tlbw_eret_hazard + eret +END(handle_vec1_r4k) + + + __INIT + + /* + * TLB refill handler for the R10000. + * Attention: We may only use 32 instructions / 128 bytes. + */ + .align 5 +LEAF(except_vec1_r10k) + .set noat + dla k0, handle_vec1_r10k + jr k0 + nop +END(except_vec1_r10k) + + __FINIT + + .align 5 +LEAF(handle_vec1_r10k) + .set noat + LOAD_PTE2 k1 k0 9f + ld k0, 0(k1) # get even pte + ld k1, 8(k1) # get odd pte + PTE_RELOAD k0 k1 + nop + tlbwr + eret + +9: # handle the vmalloc range + LOAD_KPTE2 k1 k0 invalid_vmalloc_address + ld k0, 0(k1) # get even pte + ld k1, 8(k1) # get odd pte + PTE_RELOAD k0 k1 + nop + tlbwr + eret +END(handle_vec1_r10k) + + + .align 5 +LEAF(invalid_vmalloc_address) + .set noat + SAVE_ALL + CLI + dmfc0 t0, CP0_BADVADDR + sd t0, PT_BVADDR(sp) + move a0, sp + jal show_regs + PANIC("Invalid kernel address") +END(invalid_vmalloc_address) diff -Nru a/arch/mips/mm-32/Makefile b/arch/mips/mm-32/Makefile --- a/arch/mips/mm-32/Makefile 2004-06-28 18:21:54 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,19 +0,0 @@ -# -# Makefile for the Linux/MIPS-specific parts of the memory manager. -# - -obj-$(CONFIG_CPU_TX49XX) += tlbex-r4k.o -obj-$(CONFIG_CPU_R4300) += tlbex-r4k.o -obj-$(CONFIG_CPU_R4X00) += tlbex-r4k.o -obj-$(CONFIG_CPU_VR41XX) += tlbex-r4k.o -obj-$(CONFIG_CPU_R5000) += tlbex-r4k.o -obj-$(CONFIG_CPU_NEVADA) += tlbex-r4k.o -obj-$(CONFIG_CPU_R5432) += tlbex-r4k.o -obj-$(CONFIG_CPU_RM7000) += tlbex-r4k.o -obj-$(CONFIG_CPU_RM9000) += tlbex-r4k.o -obj-$(CONFIG_CPU_R10000) += tlbex-r4k.o -obj-$(CONFIG_CPU_MIPS32) += tlbex-r4k.o -obj-$(CONFIG_CPU_MIPS64) += tlbex-r4k.o -obj-$(CONFIG_CPU_SB1) += tlbex-r4k.o - -EXTRA_AFLAGS := $(CFLAGS) diff -Nru a/arch/mips/mm-32/tlbex-r4k.S b/arch/mips/mm-32/tlbex-r4k.S --- a/arch/mips/mm-32/tlbex-r4k.S 2004-06-28 18:21:59 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,524 +0,0 @@ -/* - * TLB exception handling code for r4k. - * - * Copyright (C) 1994, 1995, 1996 by Ralf Baechle and Andreas Busse - * - * Multi-cpu abstraction and reworking: - * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com) - * - * Carsten Langgaard, carstenl@mips.com - * Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved. - */ -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define TLB_OPTIMIZE /* If you are paranoid, disable this. */ - -#ifdef CONFIG_64BIT_PHYS_ADDR -#define PTE_L ld -#define PTE_S sd -#define PTE_SRL dsrl -#define P_MTC0 dmtc0 -#define PTE_SIZE 8 -#define PTEP_INDX_MSK 0xff0 -#define PTE_INDX_MSK 0xff8 -#define PTE_INDX_SHIFT 9 -#else -#define PTE_L lw -#define PTE_S sw -#define PTE_SRL srl -#define P_MTC0 mtc0 -#define PTE_SIZE 4 -#define PTEP_INDX_MSK 0xff8 -#define PTE_INDX_MSK 0xffc -#define PTE_INDX_SHIFT 10 -#endif - -/* - * ABUSE of CPP macros 101. - * - * After this macro runs, the pte faulted on is - * in register PTE, a ptr into the table in which - * the pte belongs is in PTR. - */ - -#ifdef CONFIG_SMP -#define GET_PGD(scratch, ptr) \ - mfc0 ptr, CP0_CONTEXT; \ - la scratch, pgd_current;\ - srl ptr, 23; \ - sll ptr, 2; \ - addu ptr, scratch, ptr; \ - lw ptr, (ptr); -#else -#define GET_PGD(scratch, ptr) \ - lw ptr, pgd_current; -#endif - -#define LOAD_PTE(pte, ptr) \ - GET_PGD(pte, ptr) \ - mfc0 pte, CP0_BADVADDR; \ - srl pte, pte, _PGDIR_SHIFT; \ - sll pte, pte, 2; \ - addu ptr, ptr, pte; \ - mfc0 pte, CP0_BADVADDR; \ - lw ptr, (ptr); \ - srl pte, pte, PTE_INDX_SHIFT; \ - and pte, pte, PTE_INDX_MSK; \ - addu ptr, ptr, pte; \ - PTE_L pte, (ptr); - - /* This places the even/odd pte pair in the page - * table at PTR into ENTRYLO0 and ENTRYLO1 using - * TMP as a scratch register. - */ -#define PTE_RELOAD(ptr, tmp) \ - ori ptr, ptr, PTE_SIZE; \ - xori ptr, ptr, PTE_SIZE; \ - PTE_L tmp, PTE_SIZE(ptr); \ - PTE_L ptr, 0(ptr); \ - PTE_SRL tmp, tmp, 6; \ - P_MTC0 tmp, CP0_ENTRYLO1; \ - PTE_SRL ptr, ptr, 6; \ - P_MTC0 ptr, CP0_ENTRYLO0; - -#define DO_FAULT(write) \ - .set noat; \ - SAVE_ALL; \ - mfc0 a2, CP0_BADVADDR; \ - KMODE; \ - .set at; \ - move a0, sp; \ - jal do_page_fault; \ - li a1, write; \ - j ret_from_exception; \ - nop; \ - .set noat; - - /* Check is PTE is present, if not then jump to LABEL. - * PTR points to the page table where this PTE is located, - * when the macro is done executing PTE will be restored - * with it's original value. - */ -#define PTE_PRESENT(pte, ptr, label) \ - andi pte, pte, (_PAGE_PRESENT | _PAGE_READ); \ - xori pte, pte, (_PAGE_PRESENT | _PAGE_READ); \ - bnez pte, label; \ - PTE_L pte, (ptr); - - /* Make PTE valid, store result in PTR. */ -#define PTE_MAKEVALID(pte, ptr) \ - ori pte, pte, (_PAGE_VALID | _PAGE_ACCESSED); \ - PTE_S pte, (ptr); - - /* Check if PTE can be written to, if not branch to LABEL. - * Regardless restore PTE with value from PTR when done. - */ -#define PTE_WRITABLE(pte, ptr, label) \ - andi pte, pte, (_PAGE_PRESENT | _PAGE_WRITE); \ - xori pte, pte, (_PAGE_PRESENT | _PAGE_WRITE); \ - bnez pte, label; \ - PTE_L pte, (ptr); - - /* Make PTE writable, update software status bits as well, - * then store at PTR. - */ -#define PTE_MAKEWRITE(pte, ptr) \ - ori pte, pte, (_PAGE_ACCESSED | _PAGE_MODIFIED | \ - _PAGE_VALID | _PAGE_DIRTY); \ - PTE_S pte, (ptr); - - __INIT - -#ifdef CONFIG_64BIT_PHYS_ADDR -#define GET_PTE_OFF(reg) -#elif CONFIG_CPU_VR41XX -#define GET_PTE_OFF(reg) srl reg, reg, 3 -#else -#define GET_PTE_OFF(reg) srl reg, reg, 1 -#endif - -/* - * These handlers much be written in a relocatable manner - * because based upon the cpu type an arbitrary one of the - * following pieces of code will be copied to the KSEG0 - * vector location. - */ - /* TLB refill, EXL == 0, R4xx0, non-R4600 version */ - .set noreorder - .set noat - LEAF(except_vec0_r4000) - .set mips3 - GET_PGD(k0, k1) # get pgd pointer - mfc0 k0, CP0_BADVADDR # Get faulting address - srl k0, k0, _PGDIR_SHIFT # get pgd only bits - - sll k0, k0, 2 - addu k1, k1, k0 # add in pgd offset - mfc0 k0, CP0_CONTEXT # get context reg - lw k1, (k1) - GET_PTE_OFF(k0) # get pte offset - and k0, k0, PTEP_INDX_MSK - addu k1, k1, k0 # add in offset - PTE_L k0, 0(k1) # get even pte - PTE_L k1, PTE_SIZE(k1) # get odd pte - PTE_SRL k0, k0, 6 # convert to entrylo0 - P_MTC0 k0, CP0_ENTRYLO0 # load it - PTE_SRL k1, k1, 6 # convert to entrylo1 - P_MTC0 k1, CP0_ENTRYLO1 # load it - mtc0_tlbw_hazard - tlbwr # write random tlb entry - tlbw_eret_hazard - eret # return from trap - END(except_vec0_r4000) - - /* TLB refill, EXL == 0, R4600 version */ - LEAF(except_vec0_r4600) - .set mips3 - GET_PGD(k0, k1) # get pgd pointer - mfc0 k0, CP0_BADVADDR - srl k0, k0, _PGDIR_SHIFT - sll k0, k0, 2 # log2(sizeof(pgd_t) - addu k1, k1, k0 - mfc0 k0, CP0_CONTEXT - lw k1, (k1) - GET_PTE_OFF(k0) # get pte offset - and k0, k0, PTEP_INDX_MSK - addu k1, k1, k0 - PTE_L k0, 0(k1) - PTE_L k1, PTE_SIZE(k1) - PTE_SRL k0, k0, 6 - P_MTC0 k0, CP0_ENTRYLO0 - PTE_SRL k1, k1, 6 - P_MTC0 k1, CP0_ENTRYLO1 - nop - tlbwr - nop - eret - END(except_vec0_r4600) - - /* TLB refill, EXL == 0, R52x0 "Nevada" version */ - /* - * This version has a bug workaround for the Nevada. It seems - * as if under certain circumstances the move from cp0_context - * might produce a bogus result when the mfc0 instruction and - * it's consumer are in a different cacheline or a load instruction, - * probably any memory reference, is between them. This is - * potencially slower than the R4000 version, so we use this - * special version. - */ - .set noreorder - .set noat - LEAF(except_vec0_nevada) - .set mips3 - mfc0 k0, CP0_BADVADDR # Get faulting address - srl k0, k0, _PGDIR_SHIFT # get pgd only bits - lw k1, pgd_current # get pgd pointer - sll k0, k0, 2 # log2(sizeof(pgd_t) - addu k1, k1, k0 # add in pgd offset - lw k1, (k1) - mfc0 k0, CP0_CONTEXT # get context reg - GET_PTE_OFF(k0) # get pte offset - and k0, k0, PTEP_INDX_MSK - addu k1, k1, k0 # add in offset - PTE_L k0, 0(k1) # get even pte - PTE_L k1, PTE_SIZE(k1) # get odd pte - PTE_SRL k0, k0, 6 # convert to entrylo0 - P_MTC0 k0, CP0_ENTRYLO0 # load it - PTE_SRL k1, k1, 6 # convert to entrylo1 - P_MTC0 k1, CP0_ENTRYLO1 # load it - nop # QED specified nops - nop - tlbwr # write random tlb entry - nop # traditional nop - eret # return from trap - END(except_vec0_nevada) - - /* TLB refill, EXL == 0, SB1 with M3 errata handling version */ - LEAF(except_vec0_sb1) -#if BCM1250_M3_WAR - mfc0 k0, CP0_BADVADDR - mfc0 k1, CP0_ENTRYHI - xor k0, k1 - srl k0, k0, PAGE_SHIFT+1 - bnez k0, 1f -#endif - GET_PGD(k0, k1) # get pgd pointer - mfc0 k0, CP0_BADVADDR # Get faulting address - srl k0, k0, _PGDIR_SHIFT # get pgd only bits - sll k0, k0, 2 - addu k1, k1, k0 # add in pgd offset - mfc0 k0, CP0_CONTEXT # get context reg - lw k1, (k1) - GET_PTE_OFF(k0) # get pte offset - and k0, k0, PTEP_INDX_MSK - addu k1, k1, k0 # add in offset - PTE_L k0, 0(k1) # get even pte - PTE_L k1, PTE_SIZE(k1) # get odd pte - PTE_SRL k0, k0, 6 # convert to entrylo0 - P_MTC0 k0, CP0_ENTRYLO0 # load it - PTE_SRL k1, k1, 6 # convert to entrylo1 - P_MTC0 k1, CP0_ENTRYLO1 # load it - tlbwr # write random tlb entry -1: eret # return from trap - END(except_vec0_sb1) - - /* TLB refill, EXL == 0, R4[40]00/R5000 badvaddr hwbug version */ - LEAF(except_vec0_r45k_bvahwbug) - .set mips3 - GET_PGD(k0, k1) # get pgd pointer - mfc0 k0, CP0_BADVADDR - srl k0, k0, _PGDIR_SHIFT - sll k0, k0, 2 # log2(sizeof(pgd_t) - addu k1, k1, k0 - mfc0 k0, CP0_CONTEXT - lw k1, (k1) -#ifndef CONFIG_64BIT_PHYS_ADDR - srl k0, k0, 1 -#endif - and k0, k0, PTEP_INDX_MSK - addu k1, k1, k0 - PTE_L k0, 0(k1) - PTE_L k1, PTE_SIZE(k1) - nop /* XXX */ - tlbp - PTE_SRL k0, k0, 6 - P_MTC0 k0, CP0_ENTRYLO0 - PTE_SRL k1, k1, 6 - mfc0 k0, CP0_INDEX - P_MTC0 k1, CP0_ENTRYLO1 - bltzl k0, 1f - tlbwr -1: - nop - eret - END(except_vec0_r45k_bvahwbug) - -#ifdef CONFIG_SMP - /* TLB refill, EXL == 0, R4000 MP badvaddr hwbug version */ - LEAF(except_vec0_r4k_mphwbug) - .set mips3 - GET_PGD(k0, k1) # get pgd pointer - mfc0 k0, CP0_BADVADDR - srl k0, k0, _PGDIR_SHIFT - sll k0, k0, 2 # log2(sizeof(pgd_t) - addu k1, k1, k0 - mfc0 k0, CP0_CONTEXT - lw k1, (k1) -#ifndef CONFIG_64BIT_PHYS_ADDR - srl k0, k0, 1 -#endif - and k0, k0, PTEP_INDX_MSK - addu k1, k1, k0 - PTE_L k0, 0(k1) - PTE_L k1, PTE_SIZE(k1) - nop /* XXX */ - tlbp - PTE_SRL k0, k0, 6 - P_MTC0 k0, CP0_ENTRYLO0 - PTE_SRL k1, k1, 6 - mfc0 k0, CP0_INDEX - P_MTC0 k1, CP0_ENTRYLO1 - bltzl k0, 1f - tlbwr -1: - nop - eret - END(except_vec0_r4k_mphwbug) -#endif - - /* TLB refill, EXL == 0, R4000 UP 250MHZ entrylo[01] hwbug version */ - LEAF(except_vec0_r4k_250MHZhwbug) - .set mips3 - GET_PGD(k0, k1) # get pgd pointer - mfc0 k0, CP0_BADVADDR - srl k0, k0, _PGDIR_SHIFT - sll k0, k0, 2 # log2(sizeof(pgd_t) - addu k1, k1, k0 - mfc0 k0, CP0_CONTEXT - lw k1, (k1) -#ifndef CONFIG_64BIT_PHYS_ADDR - srl k0, k0, 1 -#endif - and k0, k0, PTEP_INDX_MSK - addu k1, k1, k0 - PTE_L k0, 0(k1) - PTE_L k1, PTE_SIZE(k1) - PTE_SRL k0, k0, 6 - P_MTC0 zero, CP0_ENTRYLO0 - P_MTC0 k0, CP0_ENTRYLO0 - PTE_SRL k1, k1, 6 - P_MTC0 zero, CP0_ENTRYLO1 - P_MTC0 k1, CP0_ENTRYLO1 - b 1f - tlbwr -1: - nop - eret - END(except_vec0_r4k_250MHZhwbug) - -#ifdef CONFIG_SMP - /* TLB refill, EXL == 0, R4000 MP 250MHZ entrylo[01]+badvaddr bug version */ - LEAF(except_vec0_r4k_MP250MHZhwbug) - .set mips3 - GET_PGD(k0, k1) # get pgd pointer - mfc0 k0, CP0_BADVADDR - srl k0, k0, _PGDIR_SHIFT - sll k0, k0, 2 # log2(sizeof(pgd_t) - addu k1, k1, k0 - mfc0 k0, CP0_CONTEXT - lw k1, (k1) -#ifndef CONFIG_64BIT_PHYS_ADDR - srl k0, k0, 1 -#endif - and k0, k0, PTEP_INDX_MSK - addu k1, k1, k0 - PTE_L k0, 0(k1) - PTE_L k1, PTE_SIZE(k1) - nop /* XXX */ - tlbp - PTE_SRL k0, k0, 6 - P_MTC0 zero, CP0_ENTRYLO0 - P_MTC0 k0, CP0_ENTRYLO0 - mfc0 k0, CP0_INDEX - PTE_SRL k1, k1, 6 - P_MTC0 zero, CP0_ENTRYLO1 - P_MTC0 k1, CP0_ENTRYLO1 - bltzl k0, 1f - tlbwr -1: - nop - eret - END(except_vec0_r4k_MP250MHZhwbug) -#endif - - __FINIT - - .set noreorder - -/* - * From the IDT errata for the QED RM5230 (Nevada), processor revision 1.0: - * 2. A timing hazard exists for the TLBP instruction. - * - * stalling_instruction - * TLBP - * - * The JTLB is being read for the TLBP throughout the stall generated by the - * previous instruction. This is not really correct as the stalling instruction - * can modify the address used to access the JTLB. The failure symptom is that - * the TLBP instruction will use an address created for the stalling instruction - * and not the address held in C0_ENHI and thus report the wrong results. - * - * The software work-around is to not allow the instruction preceding the TLBP - * to stall - make it an NOP or some other instruction guaranteed not to stall. - * - * Errata 2 will not be fixed. This errata is also on the R5000. - * - * As if we MIPS hackers wouldn't know how to nop pipelines happy ... - */ -#define R5K_HAZARD nop - - /* - * Note for many R4k variants tlb probes cannot be executed out - * of the instruction cache else you get bogus results. - */ - .align 5 - NESTED(handle_tlbl, PT_SIZE, sp) - .set noat -#if BCM1250_M3_WAR - mfc0 k0, CP0_BADVADDR - mfc0 k1, CP0_ENTRYHI - xor k0, k1 - srl k0, k0, PAGE_SHIFT+1 - beqz k0, 1f - nop - .set mips3 - eret - .set mips0 -1: -#endif -invalid_tlbl: -#ifdef TLB_OPTIMIZE - .set mips3 - /* Test present bit in entry. */ - LOAD_PTE(k0, k1) - R5K_HAZARD - tlbp - PTE_PRESENT(k0, k1, nopage_tlbl) - PTE_MAKEVALID(k0, k1) - PTE_RELOAD(k1, k0) - mtc0_tlbw_hazard - tlbwi - tlbw_eret_hazard - .set mips3 - eret - .set mips0 -#endif - -nopage_tlbl: - DO_FAULT(0) - END(handle_tlbl) - - .align 5 - NESTED(handle_tlbs, PT_SIZE, sp) - .set noat -#ifdef TLB_OPTIMIZE - .set mips3 - li k0,0 - LOAD_PTE(k0, k1) - R5K_HAZARD - tlbp # find faulting entry - PTE_WRITABLE(k0, k1, nopage_tlbs) - PTE_MAKEWRITE(k0, k1) - PTE_RELOAD(k1, k0) - mtc0_tlbw_hazard - tlbwi - tlbw_eret_hazard - .set mips3 - eret - .set mips0 -#endif - -nopage_tlbs: - DO_FAULT(1) - END(handle_tlbs) - - .align 5 - NESTED(handle_mod, PT_SIZE, sp) - .set noat -#ifdef TLB_OPTIMIZE - .set mips3 - LOAD_PTE(k0, k1) - R5K_HAZARD - tlbp # find faulting entry - andi k0, k0, _PAGE_WRITE - beqz k0, nowrite_mod - PTE_L k0, (k1) - - /* Present and writable bits set, set accessed and dirty bits. */ - PTE_MAKEWRITE(k0, k1) - - /* Now reload the entry into the tlb. */ - PTE_RELOAD(k1, k0) - mtc0_tlbw_hazard - tlbwi - tlbw_eret_hazard - .set mips3 - eret - .set mips0 -#endif - -nowrite_mod: - DO_FAULT(1) - END(handle_mod) diff -Nru a/arch/mips/mm-64/Makefile b/arch/mips/mm-64/Makefile --- a/arch/mips/mm-64/Makefile 2004-06-28 18:21:52 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,25 +0,0 @@ -# -# Makefile for the Linux/MIPS-specific parts of the memory manager. -# - -obj-y := tlbex-r4k.o - -obj-$(CONFIG_CPU_R4300) += tlb-glue-r4k.o -obj-$(CONFIG_CPU_R4X00) += tlb-glue-r4k.o -obj-$(CONFIG_CPU_R5000) += tlb-glue-r4k.o -obj-$(CONFIG_CPU_NEVADA) += tlb-glue-r4k.o -obj-$(CONFIG_CPU_R5432) += tlb-glue-r4k.o -obj-$(CONFIG_CPU_RM7000) += tlb-glue-r4k.o -obj-$(CONFIG_CPU_RM9000) += tlb-glue-r4k.o -obj-$(CONFIG_CPU_R10000) += tlb-glue-r4k.o -obj-$(CONFIG_CPU_SB1) += tlb-glue-sb1.o -obj-$(CONFIG_CPU_MIPS64) += tlb-glue-r4k.o - -# -# Debug TLB exception handler, currently unused -# -#obj-y += tlb-dbg-r4k.o - -AFLAGS_tlb-glue-r4k.o := -P - -EXTRA_AFLAGS := $(CFLAGS) diff -Nru a/arch/mips/mm-64/tlb-dbg-r4k.c b/arch/mips/mm-64/tlb-dbg-r4k.c --- a/arch/mips/mm-64/tlb-dbg-r4k.c 2004-06-28 18:21:56 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,71 +0,0 @@ -/* - * 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) 1999 Ralf Baechle - * Copyright (C) 1999 Silicon Graphics, Inc. - * - * TLB debugging routines. These perform horribly slow but can easily be - * modified for debugging purposes. - */ -#include -#include -#include -#include -#include -#include -#include -#include - -asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long write, - unsigned long address); - -asmlinkage void tlb_refill_debug(struct pt_regs regs) -{ - show_regs(®s); - panic("%s called. This Does Not Happen (TM).", __FUNCTION__); -} - -asmlinkage void xtlb_refill_debug(struct pt_regs *regs) -{ - unsigned long addr; - pgd_t *pgd; - pmd_t *pmd; - pte_t *pte; - - addr = regs->cp0_badvaddr & ~((PAGE_SIZE << 1) - 1); - pgd = pgd_offset(current->active_mm, addr); - pmd = pmd_offset(pgd, addr); - pte = pte_offset(pmd, addr); - - write_c0_entrylo0(pte_val(pte[0]) >> 6); - write_c0_entrylo1(pte_val(pte[1]) >> 6); - __asm__ __volatile__("nop;nop;nop"); - - tlb_write_random(); -} - -asmlinkage void xtlb_mod_debug(struct pt_regs *regs) -{ - unsigned long addr; - - addr = regs->cp0_badvaddr; - do_page_fault(regs, 1, addr); -} - -asmlinkage void xtlb_tlbl_debug(struct pt_regs *regs) -{ - unsigned long addr; - - addr = regs->cp0_badvaddr; - do_page_fault(regs, 0, addr); -} - -asmlinkage void xtlb_tlbs_debug(struct pt_regs *regs) -{ - unsigned long addr; - - addr = regs->cp0_badvaddr; - do_page_fault(regs, 1, addr); -} diff -Nru a/arch/mips/mm-64/tlb-glue-r4k.S b/arch/mips/mm-64/tlb-glue-r4k.S --- a/arch/mips/mm-64/tlb-glue-r4k.S 2004-06-28 18:21:59 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,41 +0,0 @@ -/* - * 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) 1999 Ralf Baechle - * Copyright (C) 1999 Silicon Graphics, Inc. - */ -#include -#include -#include -#include - - .macro __BUILD_cli - CLI - .endm - - .macro __BUILD_sti - STI - .endm - - .macro __BUILD_kmode - KMODE - .endm - - .macro tlb_handler name interruptible writebit - NESTED(__\name, PT_SIZE, sp) - SAVE_ALL - dmfc0 a2, CP0_BADVADDR - __BUILD_\interruptible - li a1, \writebit - sd a2, PT_BVADDR(sp) - move a0, sp - jal do_page_fault - j ret_from_exception - END(__\name) - .endm - - tlb_handler xtlb_mod kmode 1 - tlb_handler xtlb_tlbl kmode 0 - tlb_handler xtlb_tlbs kmode 1 diff -Nru a/arch/mips/mm-64/tlb-glue-sb1.S b/arch/mips/mm-64/tlb-glue-sb1.S --- a/arch/mips/mm-64/tlb-glue-sb1.S 2004-06-28 18:21:59 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,66 +0,0 @@ -/* - * 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) 1999 Ralf Baechle - * Copyright (C) 1999 Silicon Graphics, Inc. - */ -#include -#include -#include -#include -#include -#include - - .macro __BUILD_cli - CLI - .endm - - .macro __BUILD_sti - STI - .endm - - .macro __BUILD_kmode - KMODE - .endm - - .macro tlb_handler name interruptible writebit - NESTED(__\name, PT_SIZE, sp) - SAVE_ALL - dmfc0 a2, CP0_BADVADDR - __BUILD_\interruptible - li a1, \writebit - sd a2, PT_BVADDR(sp) - move a0, sp - jal do_page_fault - j ret_from_exception - END(__\name) - .endm - - .macro tlb_handler_m3 name interruptible writebit - NESTED(__\name, PT_SIZE, sp) - dmfc0 k0, CP0_BADVADDR - dmfc0 k1, CP0_ENTRYHI - xor k0, k1 - dsrl k0, k0, PAGE_SHIFT + 1 - bnez k0, 1f - SAVE_ALL - dmfc0 a2, CP0_BADVADDR - __BUILD_\interruptible - li a1, \writebit - sd a2, PT_BVADDR(sp) - move a0, sp - jal do_page_fault -1: - j ret_from_exception - END(__\name) - .endm - - tlb_handler xtlb_mod kmode 1 -#if BCM1250_M3_WAR - tlb_handler_m3 xtlb_tlbl kmode 0 -#else - tlb_handler xtlb_tlbl kmode 0 -#endif - tlb_handler xtlb_tlbs kmode 1 diff -Nru a/arch/mips/mm-64/tlbex-r4k.S b/arch/mips/mm-64/tlbex-r4k.S --- a/arch/mips/mm-64/tlbex-r4k.S 2004-06-28 18:21:54 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,203 +0,0 @@ -/* - * 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) 2000 Silicon Graphics, Inc. - * Written by Ulf Carlsson (ulfc@engr.sgi.com) - * Copyright (C) 2002 Maciej W. Rozycki - */ -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#define _VMALLOC_START 0xc000000000000000 - - /* - * After this macro runs we have a pointer to the pte of the address - * that caused the fault in PTR. - */ - .macro LOAD_PTE2, ptr, tmp, kaddr -#ifdef CONFIG_SMP - dmfc0 \ptr, CP0_CONTEXT - dmfc0 \tmp, CP0_BADVADDR - dsra \ptr, 23 # get pgd_current[cpu] -#else - dmfc0 \tmp, CP0_BADVADDR - dla \ptr, pgd_current -#endif - bltz \tmp, \kaddr - ld \ptr, (\ptr) - dsrl \tmp, (_PGDIR_SHIFT-3) # get pgd offset in bytes - andi \tmp, ((_PTRS_PER_PGD - 1)<<3) - daddu \ptr, \tmp # add in pgd offset - dmfc0 \tmp, CP0_BADVADDR - ld \ptr, (\ptr) # get pmd pointer - dsrl \tmp, (_PMD_SHIFT-3) # get pmd offset in bytes - andi \tmp, ((_PTRS_PER_PMD - 1)<<3) - daddu \ptr, \tmp # add in pmd offset - dmfc0 \tmp, CP0_XCONTEXT - ld \ptr, (\ptr) # get pte pointer - andi \tmp, 0xff0 # get pte offset - daddu \ptr, \tmp - .endm - - - /* - * Ditto for the kernel table. - */ - .macro LOAD_KPTE2, ptr, tmp, not_vmalloc - /* - * First, determine that the address is in/above vmalloc range. - */ - dmfc0 \tmp, CP0_BADVADDR - dli \ptr, _VMALLOC_START - - /* - * Now find offset into kptbl. - */ - dsubu \tmp, \tmp, \ptr - dla \ptr, kptbl - dsrl \tmp, (_PAGE_SHIFT+1) # get vpn2 - dsll \tmp, 4 # byte offset of pte - daddu \ptr, \ptr, \tmp - - /* - * Determine that fault address is within vmalloc range. - */ - dla \tmp, ekptbl - slt \tmp, \ptr, \tmp - beqz \tmp, \not_vmalloc # not vmalloc - nop - .endm - - - /* - * This places the even/odd pte pair in the page table at the pte - * entry pointed to by PTE into ENTRYLO0 and ENTRYLO1. - */ - .macro PTE_RELOAD, pte0, pte1 - dsrl \pte0, 6 # convert to entrylo0 - dmtc0 \pte0, CP0_ENTRYLO0 # load it - dsrl \pte1, 6 # convert to entrylo1 - dmtc0 \pte1, CP0_ENTRYLO1 # load it - .endm - - - .text - .set noreorder - .set mips3 - - __INIT - - /* - * TLB refill handlers for the R4000 and SB1. - * Attention: We may only use 32 instructions / 128 bytes. - */ - .align 5 -LEAF(except_vec1_r4k) - .set noat - dla k0, handle_vec1_r4k - jr k0 - nop -END(except_vec1_r4k) - -LEAF(except_vec1_sb1) -#if BCM1250_M3_WAR - dmfc0 k0, CP0_BADVADDR - dmfc0 k1, CP0_ENTRYHI - xor k0, k1 - dsrl k0, k0, _PAGE_SHIFT+1 - bnez k0, 1f -#endif - .set noat - dla k0, handle_vec1_r4k - jr k0 - nop - -1: eret - nop -END(except_vec1_sb1) - - __FINIT - - .align 5 -LEAF(handle_vec1_r4k) - .set noat - LOAD_PTE2 k1 k0 9f - ld k0, 0(k1) # get even pte - ld k1, 8(k1) # get odd pte - PTE_RELOAD k0 k1 - mtc0_tlbw_hazard - tlbwr - tlbw_eret_hazard - eret - -9: # handle the vmalloc range - LOAD_KPTE2 k1 k0 invalid_vmalloc_address - ld k0, 0(k1) # get even pte - ld k1, 8(k1) # get odd pte - PTE_RELOAD k0 k1 - mtc0_tlbw_hazard - tlbwr - tlbw_eret_hazard - eret -END(handle_vec1_r4k) - - - __INIT - - /* - * TLB refill handler for the R10000. - * Attention: We may only use 32 instructions / 128 bytes. - */ - .align 5 -LEAF(except_vec1_r10k) - .set noat - dla k0, handle_vec1_r10k - jr k0 - nop -END(except_vec1_r10k) - - __FINIT - - .align 5 -LEAF(handle_vec1_r10k) - .set noat - LOAD_PTE2 k1 k0 9f - ld k0, 0(k1) # get even pte - ld k1, 8(k1) # get odd pte - PTE_RELOAD k0 k1 - nop - tlbwr - eret - -9: # handle the vmalloc range - LOAD_KPTE2 k1 k0 invalid_vmalloc_address - ld k0, 0(k1) # get even pte - ld k1, 8(k1) # get odd pte - PTE_RELOAD k0 k1 - nop - tlbwr - eret -END(handle_vec1_r10k) - - - .align 5 -LEAF(invalid_vmalloc_address) - .set noat - SAVE_ALL - CLI - dmfc0 t0, CP0_BADVADDR - sd t0, PT_BVADDR(sp) - move a0, sp - jal show_regs - PANIC("Invalid kernel address") -END(invalid_vmalloc_address) diff -Nru a/arch/mips/momentum/jaguar_atx/irq.c b/arch/mips/momentum/jaguar_atx/irq.c --- a/arch/mips/momentum/jaguar_atx/irq.c 2004-06-28 18:21:57 -07:00 +++ b/arch/mips/momentum/jaguar_atx/irq.c 2004-06-28 18:21:57 -07:00 @@ -42,7 +42,7 @@ extern asmlinkage void jaguar_handle_int(void); static struct irqaction cascade_mv64340 = { - no_action, SA_INTERRUPT, 0, "MV64340-Cascade", NULL, NULL + no_action, SA_INTERRUPT, CPU_MASK_NONE, "MV64340-Cascade", NULL, NULL }; void __init init_IRQ(void) diff -Nru a/arch/mips/momentum/jaguar_atx/prom.c b/arch/mips/momentum/jaguar_atx/prom.c --- a/arch/mips/momentum/jaguar_atx/prom.c 2004-06-28 18:22:00 -07:00 +++ b/arch/mips/momentum/jaguar_atx/prom.c 2004-06-28 18:22:00 -07:00 @@ -245,20 +245,6 @@ { } -/* - * SMP support - */ -int prom_setup_smp(void) -{ - int num_cpus = 2; - - /* - * We know that the RM9000 on the Jaguar ATX board has 2 cores. - * Hence, this can be hardcoded for now. - */ - return num_cpus; -} - int prom_boot_secondary(int cpu, unsigned long sp, unsigned long gp) { /* Clear the semaphore */ diff -Nru a/arch/mips/momentum/jaguar_atx/setup.c b/arch/mips/momentum/jaguar_atx/setup.c --- a/arch/mips/momentum/jaguar_atx/setup.c 2004-06-28 18:21:59 -07:00 +++ b/arch/mips/momentum/jaguar_atx/setup.c 2004-06-28 18:21:59 -07:00 @@ -46,6 +46,7 @@ #include #include #include +#include #include #include #include @@ -57,7 +58,6 @@ #include #include #include -#include #include #include #include diff -Nru a/arch/mips/momentum/ocelot_c/Makefile b/arch/mips/momentum/ocelot_c/Makefile --- a/arch/mips/momentum/ocelot_c/Makefile 2004-06-28 18:21:59 -07:00 +++ b/arch/mips/momentum/ocelot_c/Makefile 2004-06-28 18:21:59 -07:00 @@ -2,7 +2,7 @@ # Makefile for Momentum Computer's Ocelot-C and -CS boards. # -obj-y += cpci-irq.o uart-irq.o int-handler.o irq.o pci-irq.o \ - prom.o reset.o setup.o +obj-y += cpci-irq.o int-handler.o irq.o prom.o reset.o \ + setup.o uart-irq.o obj-$(CONFIG_KGDB) += dbg_io.o diff -Nru a/arch/mips/momentum/ocelot_c/irq.c b/arch/mips/momentum/ocelot_c/irq.c --- a/arch/mips/momentum/ocelot_c/irq.c 2004-06-28 18:21:58 -07:00 +++ b/arch/mips/momentum/ocelot_c/irq.c 2004-06-28 18:21:58 -07:00 @@ -44,8 +44,9 @@ #include #include #include -#include +#include #include +#include #include extern asmlinkage void ocelot_handle_int(void); @@ -53,11 +54,11 @@ extern void cpci_irq_init(void); static struct irqaction cascade_fpga = { - no_action, SA_INTERRUPT, 0, "cascade via FPGA", NULL, NULL + no_action, SA_INTERRUPT, CPU_MASK_NONE, "cascade via FPGA", NULL, NULL }; static struct irqaction cascade_mv64340 = { - no_action, SA_INTERRUPT, 0, "cascade via MV64340", NULL, NULL + no_action, SA_INTERRUPT, CPU_MASK_NONE, "cascade via MV64340", NULL, NULL }; void __init init_IRQ(void) diff -Nru a/arch/mips/momentum/ocelot_c/pci-irq.c b/arch/mips/momentum/ocelot_c/pci-irq.c --- a/arch/mips/momentum/ocelot_c/pci-irq.c 2004-06-28 18:21:52 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,72 +0,0 @@ -/* - * Copyright 2002 Momentum Computer Inc. - * Author: Matthew Dharm - * - * Based on work for the Linux port to the Ocelot board, which is - * Copyright 2001 MontaVista Software Inc. - * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net - * - * arch/mips/momentum/ocelot_g/pci.c - * Board-specific PCI routines for mv64340 controller. - * - * 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 - - -void __init mv64340_board_pcibios_fixup_bus(struct pci_bus *bus) -{ - struct pci_bus *current_bus = bus; - struct pci_dev *devices; - struct list_head *devices_link; - u16 cmd; - - /* loop over all known devices on this bus */ - list_for_each(devices_link, &(current_bus->devices)) { - - devices = pci_dev_b(devices_link); - if (devices == NULL) - continue; - - if ((current_bus->number == 0) && - (PCI_SLOT(devices->devfn) == 1) && - (PCI_FUNC(devices->devfn) == 0)) { - /* LSI 53C10101R SCSI (A) */ - devices->irq = 2; - } else if ((current_bus->number == 0) && - (PCI_SLOT(devices->devfn) == 1) && - (PCI_FUNC(devices->devfn) == 1)) { - /* LSI 53C10101R SCSI (B) */ - devices->irq = 2; - } else if ((current_bus->number == 1) && - (PCI_SLOT(devices->devfn) == 1)) { - /* Intel 21555 bridge */ - devices->irq = 12; - } else if ((current_bus->number == 1) && - (PCI_SLOT(devices->devfn) == 2)) { - /* PMC Slot */ - devices->irq = 4; - } else { - /* We don't have assign interrupts for other devices. */ - devices->irq = 0xff; - } - - /* Assign an interrupt number for the device */ - bus->ops->write_byte(devices, PCI_INTERRUPT_LINE, devices->irq); - - /* enable master for everything but the MV-64340 */ - if (((current_bus->number != 0) && (current_bus->number != 1)) - || (PCI_SLOT(devices->devfn) != 0)) { - bus->ops->read_word(devices, PCI_COMMAND, &cmd); - cmd |= PCI_COMMAND_MASTER; - bus->ops->write_word(devices, PCI_COMMAND, cmd); - } - } -} diff -Nru a/arch/mips/momentum/ocelot_c/prom.c b/arch/mips/momentum/ocelot_c/prom.c --- a/arch/mips/momentum/ocelot_c/prom.c 2004-06-28 18:21:56 -07:00 +++ b/arch/mips/momentum/ocelot_c/prom.c 2004-06-28 18:21:56 -07:00 @@ -147,13 +147,14 @@ #endif /* CONFIG_MIPS64 */ -/* [jsun@junsun.net] PMON passes arguments in C main() style */ void __init prom_init(void) { int argc = fw_arg0; char **arg = (char **) fw_arg1; char **env = (char **) fw_arg2; + struct callvectors *cv = (struct callvectors *) fw_arg3; int i; + #ifdef CONFIG_MIPS64 char *ptr; diff -Nru a/arch/mips/momentum/ocelot_c/setup.c b/arch/mips/momentum/ocelot_c/setup.c --- a/arch/mips/momentum/ocelot_c/setup.c 2004-06-28 18:21:54 -07:00 +++ b/arch/mips/momentum/ocelot_c/setup.c 2004-06-28 18:21:54 -07:00 @@ -193,7 +193,7 @@ rtc_base[0x7ff9] = BIN2BCD(tm.tm_sec); /* day of week -- not really used, but let's keep it up-to-date */ - rtc_base[0x7ffc] = CONV_BIN2BCD(tm.tm_wday + 1); + rtc_base[0x7ffc] = BIN2BCD(tm.tm_wday + 1); /* disable writing */ rtc_base[0x7ff8] = 0x00; diff -Nru a/arch/mips/momentum/ocelot_g/Makefile b/arch/mips/momentum/ocelot_g/Makefile --- a/arch/mips/momentum/ocelot_g/Makefile 2004-06-28 18:21:54 -07:00 +++ b/arch/mips/momentum/ocelot_g/Makefile 2004-06-28 18:21:54 -07:00 @@ -2,8 +2,7 @@ # Makefile for Momentum Computer's Ocelot-G board. # -obj-y += gt-irq.o pci-irq.o int-handler.o irq.o prom.o \ - reset.o setup.o +obj-y += int-handler.o irq.o gt-irq.o prom.o reset.o setup.o obj-$(CONFIG_KGDB) += dbg_io.o EXTRA_AFLAGS := $(CFLAGS) diff -Nru a/arch/mips/momentum/ocelot_g/gt-irq.c b/arch/mips/momentum/ocelot_g/gt-irq.c --- a/arch/mips/momentum/ocelot_g/gt-irq.c 2004-06-28 18:21:54 -07:00 +++ b/arch/mips/momentum/ocelot_g/gt-irq.c 2004-06-28 18:21:54 -07:00 @@ -17,8 +17,8 @@ #include #include #include +#include #include -#include "gt64240.h" unsigned long bus_clock; @@ -108,25 +108,25 @@ * we keep this particular structure in the function. */ -static void gt64240_p0int_irq(int irq, void *dev_id, struct pt_regs *regs) +static irqreturn_t gt64240_p0int_irq(int irq, void *dev, struct pt_regs *regs) { uint32_t irq_src, irq_src_mask; int handled; /* get the low interrupt cause register */ - GT_READ(LOW_INTERRUPT_CAUSE_REGISTER, &irq_src); + irq_src = GT_READ(LOW_INTERRUPT_CAUSE_REGISTER); /* get the mask register for this pin */ - GT_READ(PCI_0INTERRUPT_CAUSE_MASK_REGISTER_LOW, &irq_src_mask); + irq_src_mask = GT_READ(PCI_0INTERRUPT_CAUSE_MASK_REGISTER_LOW); /* mask off only the interrupts we're interested in */ irq_src = irq_src & irq_src_mask; - handled = 0; + handled = IRQ_NONE; /* Check for timer interrupt */ if (irq_src & 0x00000100) { - handled = 1; + handled = IRQ_HANDLED; irq_src &= ~0x00000100; /* Clear any pending cause bits */ @@ -141,90 +141,8 @@ "UNKNOWN P0_INT# interrupt received, irq_src=0x%x\n", irq_src); } -} - -/* - * Interrupt handler for interrupts coming from the Galileo chip. - * It could be built in ethernet ports etc... - */ -static void gt64240_irq(int irq, void *dev_id, struct pt_regs *regs) -{ - unsigned int irq_src, int_high_src, irq_src_mask, - int_high_src_mask; - int handled; - -#if 0 - GT_READ(GT_INTRCAUSE_OFS, &irq_src); - GT_READ(GT_INTRMASK_OFS, &irq_src_mask); - GT_READ(GT_HINTRCAUSE_OFS, &int_high_src); - GT_READ(GT_HINTRMASK_OFS, &int_high_src_mask); -#endif - irq_src = irq_src & irq_src_mask; - int_high_src = int_high_src & int_high_src_mask; - - handled = 0; - - /* Execute all interrupt handlers */ - /* Check for timer interrupt */ - if (irq_src & 0x00000800) { - handled = 1; - irq_src &= ~0x00000800; - // RESET_REG_BITS (INTERRUPT_CAUSE_REGISTER,BIT8); - do_timer(regs); - } - - if (irq_src) { - printk(KERN_INFO - "Other Galileo interrupt received irq_src %x\n", - irq_src); -#if CURRENTLY_UNUSED - for (count = 0; count < MAX_CAUSE_REG_WIDTH; count++) { - if (irq_src & (1 << count)) { - if (irq_handlers[INT_CAUSE_MAIN][count]. - routine) { - queue_task(&irq_handlers - [INT_CAUSE_MAIN][count], - &tq_immediate); - mark_bh(IMMEDIATE_BH); - handled = 1; - } - } - } -#endif /* UNUSED */ - } -#if 0 - GT_WRITE(GT_INTRCAUSE_OFS, 0); - GT_WRITE(GT_HINTRCAUSE_OFS, 0); -#endif - -#undef GALILEO_I2O -#ifdef GALILEO_I2O - /* - * Future I2O support. We currently attach I2O interrupt handlers to - * the Galileo interrupt (int 4) and handle them in do_IRQ. - */ - if (isInBoundDoorBellInterruptSet()) { - printk(KERN_INFO "I2O doorbell interrupt received.\n"); - handled = 1; - } - if (isInBoundPostQueueInterruptSet()) { - printk(KERN_INFO "I2O Queue interrupt received.\n"); - handled = 1; - } - - /* - * This normally would be outside of the ifdef, but since we're - * handling I2O outside of this handler, this printk shows up every - * time we get a valid I2O interrupt. So turn this off for now. - */ - if (handled == 0) { - if (counter < 50) { - printk("Spurious Galileo interrupt...\n"); - counter++; - } - } -#endif + return handled; } /* diff -Nru a/arch/mips/momentum/ocelot_g/gt64240.h b/arch/mips/momentum/ocelot_g/gt64240.h --- a/arch/mips/momentum/ocelot_g/gt64240.h 2004-06-28 18:21:58 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,1238 +0,0 @@ -/* gt64240r.h - GT-64240 Internal registers definition file */ - -/* Copyright - Galileo technology. */ - -#ifndef __INCgt64240rh -#define __INCgt64240rh - -#define GTREG(v) (((v) & 0xff) << 24) | (((v) & 0xff00) << 8) | \ - (((v) >> 24) & 0xff) | (((v) >> 8) & 0xff00) - -#if 0 -#define GTREG_SHORT(X) (((X) << 8) | ((X) >> 8)) - -#define LONG_GTREG(X) ((l64) \ - (((X)&0x00000000000000ffULL) << 56) | \ - (((X)&0x000000000000ff00ULL) << 40) | \ - (((X)&0x0000000000ff0000ULL) << 24) | \ - (((X)&0x00000000ff000000ULL) << 8) | \ - (((X)&0x000000ff00000000ULL) >> 8) | \ - (((X)&0x0000ff0000000000ULL) >> 24) | \ - (((X)&0x00ff000000000000ULL) >> 40) | \ - (((X)&0xff00000000000000ULL) >> 56)) -#endif - -#include "gt64240_dep.h" - -/****************************************/ -/* CPU Control Registers */ -/****************************************/ - -#define CPU_CONFIGURATION 0x000 -#define CPU_MODE 0x120 -#define CPU_READ_RESPONSE_CROSSBAR_LOW 0x170 -#define CPU_READ_RESPONSE_CROSSBAR_HIGH 0x178 - -/****************************************/ -/* Processor Address Space */ -/****************************************/ - -/* Sdram's BAR'S */ -#define SCS_0_LOW_DECODE_ADDRESS 0x008 -#define SCS_0_HIGH_DECODE_ADDRESS 0x010 -#define SCS_1_LOW_DECODE_ADDRESS 0x208 -#define SCS_1_HIGH_DECODE_ADDRESS 0x210 -#define SCS_2_LOW_DECODE_ADDRESS 0x018 -#define SCS_2_HIGH_DECODE_ADDRESS 0x020 -#define SCS_3_LOW_DECODE_ADDRESS 0x218 -#define SCS_3_HIGH_DECODE_ADDRESS 0x220 -/* Devices BAR'S */ -#define CS_0_LOW_DECODE_ADDRESS 0x028 -#define CS_0_HIGH_DECODE_ADDRESS 0x030 -#define CS_1_LOW_DECODE_ADDRESS 0x228 -#define CS_1_HIGH_DECODE_ADDRESS 0x230 -#define CS_2_LOW_DECODE_ADDRESS 0x248 -#define CS_2_HIGH_DECODE_ADDRESS 0x250 -#define CS_3_LOW_DECODE_ADDRESS 0x038 -#define CS_3_HIGH_DECODE_ADDRESS 0x040 -#define BOOTCS_LOW_DECODE_ADDRESS 0x238 -#define BOOTCS_HIGH_DECODE_ADDRESS 0x240 - -#define PCI_0I_O_LOW_DECODE_ADDRESS 0x048 -#define PCI_0I_O_HIGH_DECODE_ADDRESS 0x050 -#define PCI_0MEMORY0_LOW_DECODE_ADDRESS 0x058 -#define PCI_0MEMORY0_HIGH_DECODE_ADDRESS 0x060 -#define PCI_0MEMORY1_LOW_DECODE_ADDRESS 0x080 -#define PCI_0MEMORY1_HIGH_DECODE_ADDRESS 0x088 -#define PCI_0MEMORY2_LOW_DECODE_ADDRESS 0x258 -#define PCI_0MEMORY2_HIGH_DECODE_ADDRESS 0x260 -#define PCI_0MEMORY3_LOW_DECODE_ADDRESS 0x280 -#define PCI_0MEMORY3_HIGH_DECODE_ADDRESS 0x288 - -#define PCI_1I_O_LOW_DECODE_ADDRESS 0x090 -#define PCI_1I_O_HIGH_DECODE_ADDRESS 0x098 -#define PCI_1MEMORY0_LOW_DECODE_ADDRESS 0x0a0 -#define PCI_1MEMORY0_HIGH_DECODE_ADDRESS 0x0a8 -#define PCI_1MEMORY1_LOW_DECODE_ADDRESS 0x0b0 -#define PCI_1MEMORY1_HIGH_DECODE_ADDRESS 0x0b8 -#define PCI_1MEMORY2_LOW_DECODE_ADDRESS 0x2a0 -#define PCI_1MEMORY2_HIGH_DECODE_ADDRESS 0x2a8 -#define PCI_1MEMORY3_LOW_DECODE_ADDRESS 0x2b0 -#define PCI_1MEMORY3_HIGH_DECODE_ADDRESS 0x2b8 - -#define INTERNAL_SPACE_DECODE 0x068 - -#define CPU_0_LOW_DECODE_ADDRESS 0x290 -#define CPU_0_HIGH_DECODE_ADDRESS 0x298 -#define CPU_1_LOW_DECODE_ADDRESS 0x2c0 -#define CPU_1_HIGH_DECODE_ADDRESS 0x2c8 - -#define PCI_0I_O_ADDRESS_REMAP 0x0f0 -#define PCI_0MEMORY0_ADDRESS_REMAP 0x0f8 -#define PCI_0MEMORY0_HIGH_ADDRESS_REMAP 0x320 -#define PCI_0MEMORY1_ADDRESS_REMAP 0x100 -#define PCI_0MEMORY1_HIGH_ADDRESS_REMAP 0x328 -#define PCI_0MEMORY2_ADDRESS_REMAP 0x2f8 -#define PCI_0MEMORY2_HIGH_ADDRESS_REMAP 0x330 -#define PCI_0MEMORY3_ADDRESS_REMAP 0x300 -#define PCI_0MEMORY3_HIGH_ADDRESS_REMAP 0x338 - -#define PCI_1I_O_ADDRESS_REMAP 0x108 -#define PCI_1MEMORY0_ADDRESS_REMAP 0x110 -#define PCI_1MEMORY0_HIGH_ADDRESS_REMAP 0x340 -#define PCI_1MEMORY1_ADDRESS_REMAP 0x118 -#define PCI_1MEMORY1_HIGH_ADDRESS_REMAP 0x348 -#define PCI_1MEMORY2_ADDRESS_REMAP 0x310 -#define PCI_1MEMORY2_HIGH_ADDRESS_REMAP 0x350 -#define PCI_1MEMORY3_ADDRESS_REMAP 0x318 -#define PCI_1MEMORY3_HIGH_ADDRESS_REMAP 0x358 - -/****************************************/ -/* CPU Sync Barrier */ -/****************************************/ - -#define PCI_0SYNC_BARIER_VIRTUAL_REGISTER 0x0c0 -#define PCI_1SYNC_BARIER_VIRTUAL_REGISTER 0x0c8 - - -/****************************************/ -/* CPU Access Protect */ -/****************************************/ - -#define CPU_LOW_PROTECT_ADDRESS_0 0X180 -#define CPU_HIGH_PROTECT_ADDRESS_0 0X188 -#define CPU_LOW_PROTECT_ADDRESS_1 0X190 -#define CPU_HIGH_PROTECT_ADDRESS_1 0X198 -#define CPU_LOW_PROTECT_ADDRESS_2 0X1a0 -#define CPU_HIGH_PROTECT_ADDRESS_2 0X1a8 -#define CPU_LOW_PROTECT_ADDRESS_3 0X1b0 -#define CPU_HIGH_PROTECT_ADDRESS_3 0X1b8 -#define CPU_LOW_PROTECT_ADDRESS_4 0X1c0 -#define CPU_HIGH_PROTECT_ADDRESS_4 0X1c8 -#define CPU_LOW_PROTECT_ADDRESS_5 0X1d0 -#define CPU_HIGH_PROTECT_ADDRESS_5 0X1d8 -#define CPU_LOW_PROTECT_ADDRESS_6 0X1e0 -#define CPU_HIGH_PROTECT_ADDRESS_6 0X1e8 -#define CPU_LOW_PROTECT_ADDRESS_7 0X1f0 -#define CPU_HIGH_PROTECT_ADDRESS_7 0X1f8 - - -/****************************************/ -/* Snoop Control */ -/****************************************/ - -#define SNOOP_BASE_ADDRESS_0 0x380 -#define SNOOP_TOP_ADDRESS_0 0x388 -#define SNOOP_BASE_ADDRESS_1 0x390 -#define SNOOP_TOP_ADDRESS_1 0x398 -#define SNOOP_BASE_ADDRESS_2 0x3a0 -#define SNOOP_TOP_ADDRESS_2 0x3a8 -#define SNOOP_BASE_ADDRESS_3 0x3b0 -#define SNOOP_TOP_ADDRESS_3 0x3b8 - -/****************************************/ -/* CPU Error Report */ -/****************************************/ - -#define CPU_ERROR_ADDRESS_LOW 0x070 -#define CPU_ERROR_ADDRESS_HIGH 0x078 -#define CPU_ERROR_DATA_LOW 0x128 -#define CPU_ERROR_DATA_HIGH 0x130 -#define CPU_ERROR_PARITY 0x138 -#define CPU_ERROR_CAUSE 0x140 -#define CPU_ERROR_MASK 0x148 - -/****************************************/ -/* Pslave Debug */ -/****************************************/ - -#define X_0_ADDRESS 0x360 -#define X_0_COMMAND_ID 0x368 -#define X_1_ADDRESS 0x370 -#define X_1_COMMAND_ID 0x378 -#define WRITE_DATA_LOW 0x3c0 -#define WRITE_DATA_HIGH 0x3c8 -#define WRITE_BYTE_ENABLE 0X3e0 -#define READ_DATA_LOW 0x3d0 -#define READ_DATA_HIGH 0x3d8 -#define READ_ID 0x3e8 - - -/****************************************/ -/* SDRAM and Device Address Space */ -/****************************************/ - - -/****************************************/ -/* SDRAM Configuration */ -/****************************************/ - -#define SDRAM_CONFIGURATION 0x448 -#define SDRAM_OPERATION_MODE 0x474 -#define SDRAM_ADDRESS_DECODE 0x47C -#define SDRAM_TIMING_PARAMETERS 0x4b4 -#define SDRAM_UMA_CONTROL 0x4a4 -#define SDRAM_CROSS_BAR_CONTROL_LOW 0x4a8 -#define SDRAM_CROSS_BAR_CONTROL_HIGH 0x4ac -#define SDRAM_CROSS_BAR_TIMEOUT 0x4b0 - - -/****************************************/ -/* SDRAM Parameters */ -/****************************************/ - -#define SDRAM_BANK0PARAMETERS 0x44C -#define SDRAM_BANK1PARAMETERS 0x450 -#define SDRAM_BANK2PARAMETERS 0x454 -#define SDRAM_BANK3PARAMETERS 0x458 - - -/****************************************/ -/* SDRAM Error Report */ -/****************************************/ - -#define SDRAM_ERROR_DATA_LOW 0x484 -#define SDRAM_ERROR_DATA_HIGH 0x480 -#define SDRAM_AND_DEVICE_ERROR_ADDRESS 0x490 -#define SDRAM_RECEIVED_ECC 0x488 -#define SDRAM_CALCULATED_ECC 0x48c -#define SDRAM_ECC_CONTROL 0x494 -#define SDRAM_ECC_ERROR_COUNTER 0x498 - - -/****************************************/ -/* SDunit Debug (for internal use) */ -/****************************************/ - -#define X0_ADDRESS 0x500 -#define X0_COMMAND_AND_ID 0x504 -#define X0_WRITE_DATA_LOW 0x508 -#define X0_WRITE_DATA_HIGH 0x50c -#define X0_WRITE_BYTE_ENABLE 0x518 -#define X0_READ_DATA_LOW 0x510 -#define X0_READ_DATA_HIGH 0x514 -#define X0_READ_ID 0x51c -#define X1_ADDRESS 0x520 -#define X1_COMMAND_AND_ID 0x524 -#define X1_WRITE_DATA_LOW 0x528 -#define X1_WRITE_DATA_HIGH 0x52c -#define X1_WRITE_BYTE_ENABLE 0x538 -#define X1_READ_DATA_LOW 0x530 -#define X1_READ_DATA_HIGH 0x534 -#define X1_READ_ID 0x53c -#define X0_SNOOP_ADDRESS 0x540 -#define X0_SNOOP_COMMAND 0x544 -#define X1_SNOOP_ADDRESS 0x548 -#define X1_SNOOP_COMMAND 0x54c - - -/****************************************/ -/* Device Parameters */ -/****************************************/ - -#define DEVICE_BANK0PARAMETERS 0x45c -#define DEVICE_BANK1PARAMETERS 0x460 -#define DEVICE_BANK2PARAMETERS 0x464 -#define DEVICE_BANK3PARAMETERS 0x468 -#define DEVICE_BOOT_BANK_PARAMETERS 0x46c -#define DEVICE_CONTROL 0x4c0 -#define DEVICE_CROSS_BAR_CONTROL_LOW 0x4c8 -#define DEVICE_CROSS_BAR_CONTROL_HIGH 0x4cc -#define DEVICE_CROSS_BAR_TIMEOUT 0x4c4 - - -/****************************************/ -/* Device Interrupt */ -/****************************************/ - -#define DEVICE_INTERRUPT_CAUSE 0x4d0 -#define DEVICE_INTERRUPT_MASK 0x4d4 -#define DEVICE_ERROR_ADDRESS 0x4d8 - -/****************************************/ -/* DMA Record */ -/****************************************/ - -#define CHANNEL0_DMA_BYTE_COUNT 0x800 -#define CHANNEL1_DMA_BYTE_COUNT 0x804 -#define CHANNEL2_DMA_BYTE_COUNT 0x808 -#define CHANNEL3_DMA_BYTE_COUNT 0x80C -#define CHANNEL4_DMA_BYTE_COUNT 0x900 -#define CHANNEL5_DMA_BYTE_COUNT 0x904 -#define CHANNEL6_DMA_BYTE_COUNT 0x908 -#define CHANNEL7_DMA_BYTE_COUNT 0x90C -#define CHANNEL0_DMA_SOURCE_ADDRESS 0x810 -#define CHANNEL1_DMA_SOURCE_ADDRESS 0x814 -#define CHANNEL2_DMA_SOURCE_ADDRESS 0x818 -#define CHANNEL3_DMA_SOURCE_ADDRESS 0x81C -#define CHANNEL4_DMA_SOURCE_ADDRESS 0x910 -#define CHANNEL5_DMA_SOURCE_ADDRESS 0x914 -#define CHANNEL6_DMA_SOURCE_ADDRESS 0x918 -#define CHANNEL7_DMA_SOURCE_ADDRESS 0x91C -#define CHANNEL0_DMA_DESTINATION_ADDRESS 0x820 -#define CHANNEL1_DMA_DESTINATION_ADDRESS 0x824 -#define CHANNEL2_DMA_DESTINATION_ADDRESS 0x828 -#define CHANNEL3_DMA_DESTINATION_ADDRESS 0x82C -#define CHANNEL4_DMA_DESTINATION_ADDRESS 0x920 -#define CHANNEL5_DMA_DESTINATION_ADDRESS 0x924 -#define CHANNEL6_DMA_DESTINATION_ADDRESS 0x928 -#define CHANNEL7_DMA_DESTINATION_ADDRESS 0x92C -#define CHANNEL0NEXT_RECORD_POINTER 0x830 -#define CHANNEL1NEXT_RECORD_POINTER 0x834 -#define CHANNEL2NEXT_RECORD_POINTER 0x838 -#define CHANNEL3NEXT_RECORD_POINTER 0x83C -#define CHANNEL4NEXT_RECORD_POINTER 0x930 -#define CHANNEL5NEXT_RECORD_POINTER 0x934 -#define CHANNEL6NEXT_RECORD_POINTER 0x938 -#define CHANNEL7NEXT_RECORD_POINTER 0x93C -#define CHANNEL0CURRENT_DESCRIPTOR_POINTER 0x870 -#define CHANNEL1CURRENT_DESCRIPTOR_POINTER 0x874 -#define CHANNEL2CURRENT_DESCRIPTOR_POINTER 0x878 -#define CHANNEL3CURRENT_DESCRIPTOR_POINTER 0x87C -#define CHANNEL4CURRENT_DESCRIPTOR_POINTER 0x970 -#define CHANNEL5CURRENT_DESCRIPTOR_POINTER 0x974 -#define CHANNEL6CURRENT_DESCRIPTOR_POINTER 0x978 -#define CHANNEL7CURRENT_DESCRIPTOR_POINTER 0x97C -#define CHANNEL0_DMA_SOURCE_HIGH_PCI_ADDRESS 0x890 -#define CHANNEL1_DMA_SOURCE_HIGH_PCI_ADDRESS 0x894 -#define CHANNEL2_DMA_SOURCE_HIGH_PCI_ADDRESS 0x898 -#define CHANNEL3_DMA_SOURCE_HIGH_PCI_ADDRESS 0x89c -#define CHANNEL4_DMA_SOURCE_HIGH_PCI_ADDRESS 0x990 -#define CHANNEL5_DMA_SOURCE_HIGH_PCI_ADDRESS 0x994 -#define CHANNEL6_DMA_SOURCE_HIGH_PCI_ADDRESS 0x998 -#define CHANNEL7_DMA_SOURCE_HIGH_PCI_ADDRESS 0x99c -#define CHANNEL0_DMA_DESTINATION_HIGH_PCI_ADDRESS 0x8a0 -#define CHANNEL1_DMA_DESTINATION_HIGH_PCI_ADDRESS 0x8a4 -#define CHANNEL2_DMA_DESTINATION_HIGH_PCI_ADDRESS 0x8a8 -#define CHANNEL3_DMA_DESTINATION_HIGH_PCI_ADDRESS 0x8ac -#define CHANNEL4_DMA_DESTINATION_HIGH_PCI_ADDRESS 0x9a0 -#define CHANNEL5_DMA_DESTINATION_HIGH_PCI_ADDRESS 0x9a4 -#define CHANNEL6_DMA_DESTINATION_HIGH_PCI_ADDRESS 0x9a8 -#define CHANNEL7_DMA_DESTINATION_HIGH_PCI_ADDRESS 0x9ac -#define CHANNEL0_DMA_NEXT_RECORD_POINTER_HIGH_PCI_ADDRESS 0x8b0 -#define CHANNEL1_DMA_NEXT_RECORD_POINTER_HIGH_PCI_ADDRESS 0x8b4 -#define CHANNEL2_DMA_NEXT_RECORD_POINTER_HIGH_PCI_ADDRESS 0x8b8 -#define CHANNEL3_DMA_NEXT_RECORD_POINTER_HIGH_PCI_ADDRESS 0x8bc -#define CHANNEL4_DMA_NEXT_RECORD_POINTER_HIGH_PCI_ADDRESS 0x9b0 -#define CHANNEL5_DMA_NEXT_RECORD_POINTER_HIGH_PCI_ADDRESS 0x9b4 -#define CHANNEL6_DMA_NEXT_RECORD_POINTER_HIGH_PCI_ADDRESS 0x9b8 -#define CHANNEL7_DMA_NEXT_RECORD_POINTER_HIGH_PCI_ADDRESS 0x9bc - -/****************************************/ -/* DMA Channel Control */ -/****************************************/ - -#define CHANNEL0CONTROL 0x840 -#define CHANNEL0CONTROL_HIGH 0x880 - -#define CHANNEL1CONTROL 0x844 -#define CHANNEL1CONTROL_HIGH 0x884 - -#define CHANNEL2CONTROL 0x848 -#define CHANNEL2CONTROL_HIGH 0x888 - -#define CHANNEL3CONTROL 0x84C -#define CHANNEL3CONTROL_HIGH 0x88C - -#define CHANNEL4CONTROL 0x940 -#define CHANNEL4CONTROL_HIGH 0x980 - -#define CHANNEL5CONTROL 0x944 -#define CHANNEL5CONTROL_HIGH 0x984 - -#define CHANNEL6CONTROL 0x948 -#define CHANNEL6CONTROL_HIGH 0x988 - -#define CHANNEL7CONTROL 0x94C -#define CHANNEL7CONTROL_HIGH 0x98C - - -/****************************************/ -/* DMA Arbiter */ -/****************************************/ - -#define ARBITER_CONTROL_0_3 0x860 -#define ARBITER_CONTROL_4_7 0x960 - - -/****************************************/ -/* DMA Interrupt */ -/****************************************/ - -#define CHANELS0_3_INTERRUPT_CAUSE 0x8c0 -#define CHANELS0_3_INTERRUPT_MASK 0x8c4 -#define CHANELS0_3_ERROR_ADDRESS 0x8c8 -#define CHANELS0_3_ERROR_SELECT 0x8cc -#define CHANELS4_7_INTERRUPT_CAUSE 0x9c0 -#define CHANELS4_7_INTERRUPT_MASK 0x9c4 -#define CHANELS4_7_ERROR_ADDRESS 0x9c8 -#define CHANELS4_7_ERROR_SELECT 0x9cc - - -/****************************************/ -/* DMA Debug (for internal use) */ -/****************************************/ - -#define DMA_X0_ADDRESS 0x8e0 -#define DMA_X0_COMMAND_AND_ID 0x8e4 -#define DMA_X0_WRITE_DATA_LOW 0x8e8 -#define DMA_X0_WRITE_DATA_HIGH 0x8ec -#define DMA_X0_WRITE_BYTE_ENABLE 0x8f8 -#define DMA_X0_READ_DATA_LOW 0x8f0 -#define DMA_X0_READ_DATA_HIGH 0x8f4 -#define DMA_X0_READ_ID 0x8fc -#define DMA_X1_ADDRESS 0x9e0 -#define DMA_X1_COMMAND_AND_ID 0x9e4 -#define DMA_X1_WRITE_DATA_LOW 0x9e8 -#define DMA_X1_WRITE_DATA_HIGH 0x9ec -#define DMA_X1_WRITE_BYTE_ENABLE 0x9f8 -#define DMA_X1_READ_DATA_LOW 0x9f0 -#define DMA_X1_READ_DATA_HIGH 0x9f4 -#define DMA_X1_READ_ID 0x9fc - -/****************************************/ -/* Timer_Counter */ -/****************************************/ - -#define TIMER_COUNTER0 0x850 -#define TIMER_COUNTER1 0x854 -#define TIMER_COUNTER2 0x858 -#define TIMER_COUNTER3 0x85C -#define TIMER_COUNTER_0_3_CONTROL 0x864 -#define TIMER_COUNTER_0_3_INTERRUPT_CAUSE 0x868 -#define TIMER_COUNTER_0_3_INTERRUPT_MASK 0x86c -#define TIMER_COUNTER4 0x950 -#define TIMER_COUNTER5 0x954 -#define TIMER_COUNTER6 0x958 -#define TIMER_COUNTER7 0x95C -#define TIMER_COUNTER_4_7_CONTROL 0x964 -#define TIMER_COUNTER_4_7_INTERRUPT_CAUSE 0x968 -#define TIMER_COUNTER_4_7_INTERRUPT_MASK 0x96c - -/****************************************/ -/* PCI Slave Address Decoding */ -/****************************************/ - -#define PCI_0SCS_0_BANK_SIZE 0xc08 -#define PCI_1SCS_0_BANK_SIZE 0xc88 -#define PCI_0SCS_1_BANK_SIZE 0xd08 -#define PCI_1SCS_1_BANK_SIZE 0xd88 -#define PCI_0SCS_2_BANK_SIZE 0xc0c -#define PCI_1SCS_2_BANK_SIZE 0xc8c -#define PCI_0SCS_3_BANK_SIZE 0xd0c -#define PCI_1SCS_3_BANK_SIZE 0xd8c -#define PCI_0CS_0_BANK_SIZE 0xc10 -#define PCI_1CS_0_BANK_SIZE 0xc90 -#define PCI_0CS_1_BANK_SIZE 0xd10 -#define PCI_1CS_1_BANK_SIZE 0xd90 -#define PCI_0CS_2_BANK_SIZE 0xd18 -#define PCI_1CS_2_BANK_SIZE 0xd98 -#define PCI_0CS_3_BANK_SIZE 0xc14 -#define PCI_1CS_3_BANK_SIZE 0xc94 -#define PCI_0CS_BOOT_BANK_SIZE 0xd14 -#define PCI_1CS_BOOT_BANK_SIZE 0xd94 -#define PCI_0P2P_MEM0_BAR_SIZE 0xd1c -#define PCI_1P2P_MEM0_BAR_SIZE 0xd9c -#define PCI_0P2P_MEM1_BAR_SIZE 0xd20 -#define PCI_1P2P_MEM1_BAR_SIZE 0xda0 -#define PCI_0P2P_I_O_BAR_SIZE 0xd24 -#define PCI_1P2P_I_O_BAR_SIZE 0xda4 -#define PCI_0CPU_BAR_SIZE 0xd28 -#define PCI_1CPU_BAR_SIZE 0xda8 -#define PCI_0DAC_SCS_0_BANK_SIZE 0xe00 -#define PCI_1DAC_SCS_0_BANK_SIZE 0xe80 -#define PCI_0DAC_SCS_1_BANK_SIZE 0xe04 -#define PCI_1DAC_SCS_1_BANK_SIZE 0xe84 -#define PCI_0DAC_SCS_2_BANK_SIZE 0xe08 -#define PCI_1DAC_SCS_2_BANK_SIZE 0xe88 -#define PCI_0DAC_SCS_3_BANK_SIZE 0xe0c -#define PCI_1DAC_SCS_3_BANK_SIZE 0xe8c -#define PCI_0DAC_CS_0_BANK_SIZE 0xe10 -#define PCI_1DAC_CS_0_BANK_SIZE 0xe90 -#define PCI_0DAC_CS_1_BANK_SIZE 0xe14 -#define PCI_1DAC_CS_1_BANK_SIZE 0xe94 -#define PCI_0DAC_CS_2_BANK_SIZE 0xe18 -#define PCI_1DAC_CS_2_BANK_SIZE 0xe98 -#define PCI_0DAC_CS_3_BANK_SIZE 0xe1c -#define PCI_1DAC_CS_3_BANK_SIZE 0xe9c -#define PCI_0DAC_BOOTCS_BANK_SIZE 0xe20 -#define PCI_1DAC_BOOTCS_BANK_SIZE 0xea0 -#define PCI_0DAC_P2P_MEM0_BAR_SIZE 0xe24 -#define PCI_1DAC_P2P_MEM0_BAR_SIZE 0xea4 -#define PCI_0DAC_P2P_MEM1_BAR_SIZE 0xe28 -#define PCI_1DAC_P2P_MEM1_BAR_SIZE 0xea8 -#define PCI_0DAC_CPU_BAR_SIZE 0xe2c -#define PCI_1DAC_CPU_BAR_SIZE 0xeac -#define PCI_0EXPANSION_ROM_BAR_SIZE 0xd2c -#define PCI_1EXPANSION_ROM_BAR_SIZE 0xdac -#define PCI_0BASE_ADDRESS_REGISTERS_ENABLE 0xc3c -#define PCI_1BASE_ADDRESS_REGISTERS_ENABLE 0xcbc -#define PCI_0SCS_0_BASE_ADDRESS_REMAP 0xc48 -#define PCI_1SCS_0_BASE_ADDRESS_REMAP 0xcc8 -#define PCI_0SCS_1_BASE_ADDRESS_REMAP 0xd48 -#define PCI_1SCS_1_BASE_ADDRESS_REMAP 0xdc8 -#define PCI_0SCS_2_BASE_ADDRESS_REMAP 0xc4c -#define PCI_1SCS_2_BASE_ADDRESS_REMAP 0xccc -#define PCI_0SCS_3_BASE_ADDRESS_REMAP 0xd4c -#define PCI_1SCS_3_BASE_ADDRESS_REMAP 0xdcc -#define PCI_0CS_0_BASE_ADDRESS_REMAP 0xc50 -#define PCI_1CS_0_BASE_ADDRESS_REMAP 0xcd0 -#define PCI_0CS_1_BASE_ADDRESS_REMAP 0xd50 -#define PCI_1CS_1_BASE_ADDRESS_REMAP 0xdd0 -#define PCI_0CS_2_BASE_ADDRESS_REMAP 0xd58 -#define PCI_1CS_2_BASE_ADDRESS_REMAP 0xdd8 -#define PCI_0CS_3_BASE_ADDRESS_REMAP 0xc54 -#define PCI_1CS_3_BASE_ADDRESS_REMAP 0xcd4 -#define PCI_0CS_BOOTCS_BASE_ADDRESS_REMAP 0xd54 -#define PCI_1CS_BOOTCS_BASE_ADDRESS_REMAP 0xdd4 -#define PCI_0P2P_MEM0_BASE_ADDRESS_REMAP_LOW 0xd5c -#define PCI_1P2P_MEM0_BASE_ADDRESS_REMAP_LOW 0xddc -#define PCI_0P2P_MEM0_BASE_ADDRESS_REMAP_HIGH 0xd60 -#define PCI_1P2P_MEM0_BASE_ADDRESS_REMAP_HIGH 0xde0 -#define PCI_0P2P_MEM1_BASE_ADDRESS_REMAP_LOW 0xd64 -#define PCI_1P2P_MEM1_BASE_ADDRESS_REMAP_LOW 0xde4 -#define PCI_0P2P_MEM1_BASE_ADDRESS_REMAP_HIGH 0xd68 -#define PCI_1P2P_MEM1_BASE_ADDRESS_REMAP_HIGH 0xde8 -#define PCI_0P2P_I_O_BASE_ADDRESS_REMAP 0xd6c -#define PCI_1P2P_I_O_BASE_ADDRESS_REMAP 0xdec -#define PCI_0CPU_BASE_ADDRESS_REMAP 0xd70 -#define PCI_1CPU_BASE_ADDRESS_REMAP 0xdf0 -#define PCI_0DAC_SCS_0_BASE_ADDRESS_REMAP 0xf00 -#define PCI_1DAC_SCS_0_BASE_ADDRESS_REMAP 0xff0 -#define PCI_0DAC_SCS_1_BASE_ADDRESS_REMAP 0xf04 -#define PCI_1DAC_SCS_1_BASE_ADDRESS_REMAP 0xf84 -#define PCI_0DAC_SCS_2_BASE_ADDRESS_REMAP 0xf08 -#define PCI_1DAC_SCS_2_BASE_ADDRESS_REMAP 0xf88 -#define PCI_0DAC_SCS_3_BASE_ADDRESS_REMAP 0xf0c -#define PCI_1DAC_SCS_3_BASE_ADDRESS_REMAP 0xf8c -#define PCI_0DAC_CS_0_BASE_ADDRESS_REMAP 0xf10 -#define PCI_1DAC_CS_0_BASE_ADDRESS_REMAP 0xf90 -#define PCI_0DAC_CS_1_BASE_ADDRESS_REMAP 0xf14 -#define PCI_1DAC_CS_1_BASE_ADDRESS_REMAP 0xf94 -#define PCI_0DAC_CS_2_BASE_ADDRESS_REMAP 0xf18 -#define PCI_1DAC_CS_2_BASE_ADDRESS_REMAP 0xf98 -#define PCI_0DAC_CS_3_BASE_ADDRESS_REMAP 0xf1c -#define PCI_1DAC_CS_3_BASE_ADDRESS_REMAP 0xf9c -#define PCI_0DAC_BOOTCS_BASE_ADDRESS_REMAP 0xf20 -#define PCI_1DAC_BOOTCS_BASE_ADDRESS_REMAP 0xfa0 -#define PCI_0DAC_P2P_MEM0_BASE_ADDRESS_REMAP_LOW 0xf24 -#define PCI_1DAC_P2P_MEM0_BASE_ADDRESS_REMAP_LOW 0xfa4 -#define PCI_0DAC_P2P_MEM0_BASE_ADDRESS_REMAP_HIGH 0xf28 -#define PCI_1DAC_P2P_MEM0_BASE_ADDRESS_REMAP_HIGH 0xfa8 -#define PCI_0DAC_P2P_MEM1_BASE_ADDRESS_REMAP_LOW 0xf2c -#define PCI_1DAC_P2P_MEM1_BASE_ADDRESS_REMAP_LOW 0xfac -#define PCI_0DAC_P2P_MEM1_BASE_ADDRESS_REMAP_HIGH 0xf30 -#define PCI_1DAC_P2P_MEM1_BASE_ADDRESS_REMAP_HIGH 0xfb0 -#define PCI_0DAC_CPU_BASE_ADDRESS_REMAP 0xf34 -#define PCI_1DAC_CPU_BASE_ADDRESS_REMAP 0xfb4 -#define PCI_0EXPANSION_ROM_BASE_ADDRESS_REMAP 0xf38 -#define PCI_1EXPANSION_ROM_BASE_ADDRESS_REMAP 0xfb8 -#define PCI_0ADDRESS_DECODE_CONTROL 0xd3c -#define PCI_1ADDRESS_DECODE_CONTROL 0xdbc - -/****************************************/ -/* PCI Control */ -/****************************************/ - -#define PCI_0COMMAND 0xc00 -#define PCI_1COMMAND 0xc80 -#define PCI_0MODE 0xd00 -#define PCI_1MODE 0xd80 -#define PCI_0TIMEOUT_RETRY 0xc04 -#define PCI_1TIMEOUT_RETRY 0xc84 -#define PCI_0READ_BUFFER_DISCARD_TIMER 0xd04 -#define PCI_1READ_BUFFER_DISCARD_TIMER 0xd84 -#define MSI_0TRIGGER_TIMER 0xc38 -#define MSI_1TRIGGER_TIMER 0xcb8 -#define PCI_0ARBITER_CONTROL 0x1d00 -#define PCI_1ARBITER_CONTROL 0x1d80 -/* changing untill here */ -#define PCI_0CROSS_BAR_CONTROL_LOW 0x1d08 -#define PCI_0CROSS_BAR_CONTROL_HIGH 0x1d0c -#define PCI_0CROSS_BAR_TIMEOUT 0x1d04 -#define PCI_0READ_RESPONSE_CROSS_BAR_CONTROL_LOW 0x1d18 -#define PCI_0READ_RESPONSE_CROSS_BAR_CONTROL_HIGH 0x1d1c -#define PCI_0SYNC_BARRIER_VIRTUAL_REGISTER 0x1d10 -#define PCI_0P2P_CONFIGURATION 0x1d14 -#define PCI_0ACCESS_CONTROL_BASE_0_LOW 0x1e00 -#define PCI_0ACCESS_CONTROL_BASE_0_HIGH 0x1e04 -#define PCI_0ACCESS_CONTROL_TOP_0 0x1e08 -#define PCI_0ACCESS_CONTROL_BASE_1_LOW 0c1e10 -#define PCI_0ACCESS_CONTROL_BASE_1_HIGH 0x1e14 -#define PCI_0ACCESS_CONTROL_TOP_1 0x1e18 -#define PCI_0ACCESS_CONTROL_BASE_2_LOW 0c1e20 -#define PCI_0ACCESS_CONTROL_BASE_2_HIGH 0x1e24 -#define PCI_0ACCESS_CONTROL_TOP_2 0x1e28 -#define PCI_0ACCESS_CONTROL_BASE_3_LOW 0c1e30 -#define PCI_0ACCESS_CONTROL_BASE_3_HIGH 0x1e34 -#define PCI_0ACCESS_CONTROL_TOP_3 0x1e38 -#define PCI_0ACCESS_CONTROL_BASE_4_LOW 0c1e40 -#define PCI_0ACCESS_CONTROL_BASE_4_HIGH 0x1e44 -#define PCI_0ACCESS_CONTROL_TOP_4 0x1e48 -#define PCI_0ACCESS_CONTROL_BASE_5_LOW 0c1e50 -#define PCI_0ACCESS_CONTROL_BASE_5_HIGH 0x1e54 -#define PCI_0ACCESS_CONTROL_TOP_5 0x1e58 -#define PCI_0ACCESS_CONTROL_BASE_6_LOW 0c1e60 -#define PCI_0ACCESS_CONTROL_BASE_6_HIGH 0x1e64 -#define PCI_0ACCESS_CONTROL_TOP_6 0x1e68 -#define PCI_0ACCESS_CONTROL_BASE_7_LOW 0c1e70 -#define PCI_0ACCESS_CONTROL_BASE_7_HIGH 0x1e74 -#define PCI_0ACCESS_CONTROL_TOP_7 0x1e78 -#define PCI_1CROSS_BAR_CONTROL_LOW 0x1d88 -#define PCI_1CROSS_BAR_CONTROL_HIGH 0x1d8c -#define PCI_1CROSS_BAR_TIMEOUT 0x1d84 -#define PCI_1READ_RESPONSE_CROSS_BAR_CONTROL_LOW 0x1d98 -#define PCI_1READ_RESPONSE_CROSS_BAR_CONTROL_HIGH 0x1d9c -#define PCI_1SYNC_BARRIER_VIRTUAL_REGISTER 0x1d90 -#define PCI_1P2P_CONFIGURATION 0x1d94 -#define PCI_1ACCESS_CONTROL_BASE_0_LOW 0x1e80 -#define PCI_1ACCESS_CONTROL_BASE_0_HIGH 0x1e84 -#define PCI_1ACCESS_CONTROL_TOP_0 0x1e88 -#define PCI_1ACCESS_CONTROL_BASE_1_LOW 0c1e90 -#define PCI_1ACCESS_CONTROL_BASE_1_HIGH 0x1e94 -#define PCI_1ACCESS_CONTROL_TOP_1 0x1e98 -#define PCI_1ACCESS_CONTROL_BASE_2_LOW 0c1ea0 -#define PCI_1ACCESS_CONTROL_BASE_2_HIGH 0x1ea4 -#define PCI_1ACCESS_CONTROL_TOP_2 0x1ea8 -#define PCI_1ACCESS_CONTROL_BASE_3_LOW 0c1eb0 -#define PCI_1ACCESS_CONTROL_BASE_3_HIGH 0x1eb4 -#define PCI_1ACCESS_CONTROL_TOP_3 0x1eb8 -#define PCI_1ACCESS_CONTROL_BASE_4_LOW 0c1ec0 -#define PCI_1ACCESS_CONTROL_BASE_4_HIGH 0x1ec4 -#define PCI_1ACCESS_CONTROL_TOP_4 0x1ec8 -#define PCI_1ACCESS_CONTROL_BASE_5_LOW 0c1ed0 -#define PCI_1ACCESS_CONTROL_BASE_5_HIGH 0x1ed4 -#define PCI_1ACCESS_CONTROL_TOP_5 0x1ed8 -#define PCI_1ACCESS_CONTROL_BASE_6_LOW 0c1ee0 -#define PCI_1ACCESS_CONTROL_BASE_6_HIGH 0x1ee4 -#define PCI_1ACCESS_CONTROL_TOP_6 0x1ee8 -#define PCI_1ACCESS_CONTROL_BASE_7_LOW 0c1ef0 -#define PCI_1ACCESS_CONTROL_BASE_7_HIGH 0x1ef4 -#define PCI_1ACCESS_CONTROL_TOP_7 0x1ef8 - -/****************************************/ -/* PCI Snoop Control */ -/****************************************/ - -#define PCI_0SNOOP_CONTROL_BASE_0_LOW 0x1f00 -#define PCI_0SNOOP_CONTROL_BASE_0_HIGH 0x1f04 -#define PCI_0SNOOP_CONTROL_TOP_0 0x1f08 -#define PCI_0SNOOP_CONTROL_BASE_1_0_LOW 0x1f10 -#define PCI_0SNOOP_CONTROL_BASE_1_0_HIGH 0x1f14 -#define PCI_0SNOOP_CONTROL_TOP_1 0x1f18 -#define PCI_0SNOOP_CONTROL_BASE_2_0_LOW 0x1f20 -#define PCI_0SNOOP_CONTROL_BASE_2_0_HIGH 0x1f24 -#define PCI_0SNOOP_CONTROL_TOP_2 0x1f28 -#define PCI_0SNOOP_CONTROL_BASE_3_0_LOW 0x1f30 -#define PCI_0SNOOP_CONTROL_BASE_3_0_HIGH 0x1f34 -#define PCI_0SNOOP_CONTROL_TOP_3 0x1f38 -#define PCI_1SNOOP_CONTROL_BASE_0_LOW 0x1f80 -#define PCI_1SNOOP_CONTROL_BASE_0_HIGH 0x1f84 -#define PCI_1SNOOP_CONTROL_TOP_0 0x1f88 -#define PCI_1SNOOP_CONTROL_BASE_1_0_LOW 0x1f90 -#define PCI_1SNOOP_CONTROL_BASE_1_0_HIGH 0x1f94 -#define PCI_1SNOOP_CONTROL_TOP_1 0x1f98 -#define PCI_1SNOOP_CONTROL_BASE_2_0_LOW 0x1fa0 -#define PCI_1SNOOP_CONTROL_BASE_2_0_HIGH 0x1fa4 -#define PCI_1SNOOP_CONTROL_TOP_2 0x1fa8 -#define PCI_1SNOOP_CONTROL_BASE_3_0_LOW 0x1fb0 -#define PCI_1SNOOP_CONTROL_BASE_3_0_HIGH 0x1fb4 -#define PCI_1SNOOP_CONTROL_TOP_3 0x1fb8 - -/****************************************/ -/* PCI Configuration Address */ -/****************************************/ - -#define PCI_0CONFIGURATION_ADDRESS 0xcf8 -#define PCI_0CONFIGURATION_DATA_VIRTUAL_REGISTER 0xcfc -#define PCI_1CONFIGURATION_ADDRESS 0xc78 -#define PCI_1CONFIGURATION_DATA_VIRTUAL_REGISTER 0xc7c -#define PCI_0INTERRUPT_ACKNOWLEDGE_VIRTUAL_REGISTER 0xc34 -#define PCI_1INTERRUPT_ACKNOWLEDGE_VIRTUAL_REGISTER 0xcb4 - -/****************************************/ -/* PCI Error Report */ -/****************************************/ - -#define PCI_0SERR_MASK 0xc28 -#define PCI_0ERROR_ADDRESS_LOW 0x1d40 -#define PCI_0ERROR_ADDRESS_HIGH 0x1d44 -#define PCI_0ERROR_DATA_LOW 0x1d48 -#define PCI_0ERROR_DATA_HIGH 0x1d4c -#define PCI_0ERROR_COMMAND 0x1d50 -#define PCI_0ERROR_CAUSE 0x1d58 -#define PCI_0ERROR_MASK 0x1d5c - -#define PCI_1SERR_MASK 0xca8 -#define PCI_1ERROR_ADDRESS_LOW 0x1dc0 -#define PCI_1ERROR_ADDRESS_HIGH 0x1dc4 -#define PCI_1ERROR_DATA_LOW 0x1dc8 -#define PCI_1ERROR_DATA_HIGH 0x1dcc -#define PCI_1ERROR_COMMAND 0x1dd0 -#define PCI_1ERROR_CAUSE 0x1dd8 -#define PCI_1ERROR_MASK 0x1ddc - - -/****************************************/ -/* Lslave Debug (for internal use) */ -/****************************************/ - -#define L_SLAVE_X0_ADDRESS 0x1d20 -#define L_SLAVE_X0_COMMAND_AND_ID 0x1d24 -#define L_SLAVE_X1_ADDRESS 0x1d28 -#define L_SLAVE_X1_COMMAND_AND_ID 0x1d2c -#define L_SLAVE_WRITE_DATA_LOW 0x1d30 -#define L_SLAVE_WRITE_DATA_HIGH 0x1d34 -#define L_SLAVE_WRITE_BYTE_ENABLE 0x1d60 -#define L_SLAVE_READ_DATA_LOW 0x1d38 -#define L_SLAVE_READ_DATA_HIGH 0x1d3c -#define L_SLAVE_READ_ID 0x1d64 - -/****************************************/ -/* PCI Configuration Function 0 */ -/****************************************/ - -#define PCI_DEVICE_AND_VENDOR_ID 0x000 -#define PCI_STATUS_AND_COMMAND 0x004 -#define PCI_CLASS_CODE_AND_REVISION_ID 0x008 -#define PCI_BIST_HEADER_TYPE_LATENCY_TIMER_CACHE_LINE 0x00C -#define PCI_SCS_0_BASE_ADDRESS 0x010 -#define PCI_SCS_1_BASE_ADDRESS 0x014 -#define PCI_SCS_2_BASE_ADDRESS 0x018 -#define PCI_SCS_3_BASE_ADDRESS 0x01C -#define PCI_INTERNAL_REGISTERS_MEMORY_MAPPED_BASE_ADDRESS 0x020 -#define PCI_INTERNAL_REGISTERS_I_OMAPPED_BASE_ADDRESS 0x024 -#define PCI_SUBSYSTEM_ID_AND_SUBSYSTEM_VENDOR_ID 0x02C -#define PCI_EXPANSION_ROM_BASE_ADDRESS_REGISTER 0x030 -#define PCI_CAPABILTY_LIST_POINTER 0x034 -#define PCI_INTERRUPT_PIN_AND_LINE 0x03C -#define PCI_POWER_MANAGEMENT_CAPABILITY 0x040 -#define PCI_POWER_MANAGEMENT_STATUS_AND_CONTROL 0x044 -#define PCI_VPD_ADDRESS 0x048 -#define PCI_VPD_DATA 0X04c -#define PCI_MSI_MESSAGE_CONTROL 0x050 -#define PCI_MSI_MESSAGE_ADDRESS 0x054 -#define PCI_MSI_MESSAGE_UPPER_ADDRESS 0x058 -#define PCI_MSI_MESSAGE_DATA 0x05c -#define PCI_COMPACT_PCI_HOT_SWAP_CAPABILITY 0x058 - -/****************************************/ -/* PCI Configuration Function 1 */ -/****************************************/ - -#define PCI_CS_0_BASE_ADDRESS 0x110 -#define PCI_CS_1_BASE_ADDRESS 0x114 -#define PCI_CS_2_BASE_ADDRESS 0x118 -#define PCI_CS_3_BASE_ADDRESS 0x11c -#define PCI_BOOTCS_BASE_ADDRESS 0x120 - -/****************************************/ -/* PCI Configuration Function 2 */ -/****************************************/ - -#define PCI_P2P_MEM0_BASE_ADDRESS 0x210 -#define PCI_P2P_MEM1_BASE_ADDRESS 0x214 -#define PCI_P2P_I_O_BASE_ADDRESS 0x218 -#define PCI_CPU_BASE_ADDRESS 0x21c - -/****************************************/ -/* PCI Configuration Function 4 */ -/****************************************/ - -#define PCI_DAC_SCS_0_BASE_ADDRESS_LOW 0x410 -#define PCI_DAC_SCS_0_BASE_ADDRESS_HIGH 0x414 -#define PCI_DAC_SCS_1_BASE_ADDRESS_LOW 0x418 -#define PCI_DAC_SCS_1_BASE_ADDRESS_HIGH 0x41c -#define PCI_DAC_P2P_MEM0_BASE_ADDRESS_LOW 0x420 -#define PCI_DAC_P2P_MEM0_BASE_ADDRESS_HIGH 0x424 - - -/****************************************/ -/* PCI Configuration Function 5 */ -/****************************************/ - -#define PCI_DAC_SCS_2_BASE_ADDRESS_LOW 0x510 -#define PCI_DAC_SCS_2_BASE_ADDRESS_HIGH 0x514 -#define PCI_DAC_SCS_3_BASE_ADDRESS_LOW 0x518 -#define PCI_DAC_SCS_3_BASE_ADDRESS_HIGH 0x51c -#define PCI_DAC_P2P_MEM1_BASE_ADDRESS_LOW 0x520 -#define PCI_DAC_P2P_MEM1_BASE_ADDRESS_HIGH 0x524 - - -/****************************************/ -/* PCI Configuration Function 6 */ -/****************************************/ - -#define PCI_DAC_CS_0_BASE_ADDRESS_LOW 0x610 -#define PCI_DAC_CS_0_BASE_ADDRESS_HIGH 0x614 -#define PCI_DAC_CS_1_BASE_ADDRESS_LOW 0x618 -#define PCI_DAC_CS_1_BASE_ADDRESS_HIGH 0x61c -#define PCI_DAC_CS_2_BASE_ADDRESS_LOW 0x620 -#define PCI_DAC_CS_2_BASE_ADDRESS_HIGH 0x624 - -/****************************************/ -/* PCI Configuration Function 7 */ -/****************************************/ - -#define PCI_DAC_CS_3_BASE_ADDRESS_LOW 0x710 -#define PCI_DAC_CS_3_BASE_ADDRESS_HIGH 0x714 -#define PCI_DAC_BOOTCS_BASE_ADDRESS_LOW 0x718 -#define PCI_DAC_BOOTCS_BASE_ADDRESS_HIGH 0x71c -#define PCI_DAC_CPU_BASE_ADDRESS_LOW 0x720 -#define PCI_DAC_CPU_BASE_ADDRESS_HIGH 0x724 - -/****************************************/ -/* Interrupts */ -/****************************************/ - -#define LOW_INTERRUPT_CAUSE_REGISTER 0xc18 -#define HIGH_INTERRUPT_CAUSE_REGISTER 0xc68 -#define CPU_INTERRUPT_MASK_REGISTER_LOW 0xc1c -#define CPU_INTERRUPT_MASK_REGISTER_HIGH 0xc6c -#define CPU_SELECT_CAUSE_REGISTER 0xc70 -#define PCI_0INTERRUPT_CAUSE_MASK_REGISTER_LOW 0xc24 -#define PCI_0INTERRUPT_CAUSE_MASK_REGISTER_HIGH 0xc64 -#define PCI_0SELECT_CAUSE 0xc74 -#define PCI_1INTERRUPT_CAUSE_MASK_REGISTER_LOW 0xca4 -#define PCI_1INTERRUPT_CAUSE_MASK_REGISTER_HIGH 0xce4 -#define PCI_1SELECT_CAUSE 0xcf4 -#define CPU_INT_0_MASK 0xe60 -#define CPU_INT_1_MASK 0xe64 -#define CPU_INT_2_MASK 0xe68 -#define CPU_INT_3_MASK 0xe6c - -/****************************************/ -/* I20 Support registers */ -/****************************************/ - -#define INBOUND_MESSAGE_REGISTER0_PCI0_SIDE 0x010 -#define INBOUND_MESSAGE_REGISTER1_PCI0_SIDE 0x014 -#define OUTBOUND_MESSAGE_REGISTER0_PCI0_SIDE 0x018 -#define OUTBOUND_MESSAGE_REGISTER1_PCI0_SIDE 0x01C -#define INBOUND_DOORBELL_REGISTER_PCI0_SIDE 0x020 -#define INBOUND_INTERRUPT_CAUSE_REGISTER_PCI0_SIDE 0x024 -#define INBOUND_INTERRUPT_MASK_REGISTER_PCI0_SIDE 0x028 -#define OUTBOUND_DOORBELL_REGISTER_PCI0_SIDE 0x02C -#define OUTBOUND_INTERRUPT_CAUSE_REGISTER_PCI0_SIDE 0x030 -#define OUTBOUND_INTERRUPT_MASK_REGISTER_PCI0_SIDE 0x034 -#define INBOUND_QUEUE_PORT_VIRTUAL_REGISTER_PCI0_SIDE 0x040 -#define OUTBOUND_QUEUE_PORT_VIRTUAL_REGISTER_PCI0_SIDE 0x044 -#define QUEUE_CONTROL_REGISTER_PCI0_SIDE 0x050 -#define QUEUE_BASE_ADDRESS_REGISTER_PCI0_SIDE 0x054 -#define INBOUND_FREE_HEAD_POINTER_REGISTER_PCI0_SIDE 0x060 -#define INBOUND_FREE_TAIL_POINTER_REGISTER_PCI0_SIDE 0x064 -#define INBOUND_POST_HEAD_POINTER_REGISTER_PCI0_SIDE 0x068 -#define INBOUND_POST_TAIL_POINTER_REGISTER_PCI0_SIDE 0x06C -#define OUTBOUND_FREE_HEAD_POINTER_REGISTER_PCI0_SIDE 0x070 -#define OUTBOUND_FREE_TAIL_POINTER_REGISTER_PCI0_SIDE 0x074 -#define OUTBOUND_POST_HEAD_POINTER_REGISTER_PCI0_SIDE 0x0F8 -#define OUTBOUND_POST_TAIL_POINTER_REGISTER_PCI0_SIDE 0x0FC - -#define INBOUND_MESSAGE_REGISTER0_PCI1_SIDE 0x090 -#define INBOUND_MESSAGE_REGISTER1_PCI1_SIDE 0x094 -#define OUTBOUND_MESSAGE_REGISTER0_PCI1_SIDE 0x098 -#define OUTBOUND_MESSAGE_REGISTER1_PCI1_SIDE 0x09C -#define INBOUND_DOORBELL_REGISTER_PCI1_SIDE 0x0A0 -#define INBOUND_INTERRUPT_CAUSE_REGISTER_PCI1_SIDE 0x0A4 -#define INBOUND_INTERRUPT_MASK_REGISTER_PCI1_SIDE 0x0A8 -#define OUTBOUND_DOORBELL_REGISTER_PCI1_SIDE 0x0AC -#define OUTBOUND_INTERRUPT_CAUSE_REGISTER_PCI1_SIDE 0x0B0 -#define OUTBOUND_INTERRUPT_MASK_REGISTER_PCI1_SIDE 0x0B4 -#define INBOUND_QUEUE_PORT_VIRTUAL_REGISTER_PCI1_SIDE 0x0C0 -#define OUTBOUND_QUEUE_PORT_VIRTUAL_REGISTER_PCI1_SIDE 0x0C4 -#define QUEUE_CONTROL_REGISTER_PCI1_SIDE 0x0D0 -#define QUEUE_BASE_ADDRESS_REGISTER_PCI1_SIDE 0x0D4 -#define INBOUND_FREE_HEAD_POINTER_REGISTER_PCI1_SIDE 0x0E0 -#define INBOUND_FREE_TAIL_POINTER_REGISTER_PCI1_SIDE 0x0E4 -#define INBOUND_POST_HEAD_POINTER_REGISTER_PCI1_SIDE 0x0E8 -#define INBOUND_POST_TAIL_POINTER_REGISTER_PCI1_SIDE 0x0EC -#define OUTBOUND_FREE_HEAD_POINTER_REGISTER_PCI1_SIDE 0x0F0 -#define OUTBOUND_FREE_TAIL_POINTER_REGISTER_PCI1_SIDE 0x0F4 -#define OUTBOUND_POST_HEAD_POINTER_REGISTER_PCI1_SIDE 0x078 -#define OUTBOUND_POST_TAIL_POINTER_REGISTER_PCI1_SIDE 0x07C - -#define INBOUND_MESSAGE_REGISTER0_CPU0_SIDE 0X1C10 -#define INBOUND_MESSAGE_REGISTER1_CPU0_SIDE 0X1C14 -#define OUTBOUND_MESSAGE_REGISTER0_CPU0_SIDE 0X1C18 -#define OUTBOUND_MESSAGE_REGISTER1_CPU0_SIDE 0X1C1C -#define INBOUND_DOORBELL_REGISTER_CPU0_SIDE 0X1C20 -#define INBOUND_INTERRUPT_CAUSE_REGISTER_CPU0_SIDE 0X1C24 -#define INBOUND_INTERRUPT_MASK_REGISTER_CPU0_SIDE 0X1C28 -#define OUTBOUND_DOORBELL_REGISTER_CPU0_SIDE 0X1C2C -#define OUTBOUND_INTERRUPT_CAUSE_REGISTER_CPU0_SIDE 0X1C30 -#define OUTBOUND_INTERRUPT_MASK_REGISTER_CPU0_SIDE 0X1C34 -#define INBOUND_QUEUE_PORT_VIRTUAL_REGISTER_CPU0_SIDE 0X1C40 -#define OUTBOUND_QUEUE_PORT_VIRTUAL_REGISTER_CPU0_SIDE 0X1C44 -#define QUEUE_CONTROL_REGISTER_CPU0_SIDE 0X1C50 -#define QUEUE_BASE_ADDRESS_REGISTER_CPU0_SIDE 0X1C54 -#define INBOUND_FREE_HEAD_POINTER_REGISTER_CPU0_SIDE 0X1C60 -#define INBOUND_FREE_TAIL_POINTER_REGISTER_CPU0_SIDE 0X1C64 -#define INBOUND_POST_HEAD_POINTER_REGISTER_CPU0_SIDE 0X1C68 -#define INBOUND_POST_TAIL_POINTER_REGISTER_CPU0_SIDE 0X1C6C -#define OUTBOUND_FREE_HEAD_POINTER_REGISTER_CPU0_SIDE 0X1C70 -#define OUTBOUND_FREE_TAIL_POINTER_REGISTER_CPU0_SIDE 0X1C74 -#define OUTBOUND_POST_HEAD_POINTER_REGISTER_CPU0_SIDE 0X1CF8 -#define OUTBOUND_POST_TAIL_POINTER_REGISTER_CPU0_SIDE 0X1CFC - -#define INBOUND_MESSAGE_REGISTER0_CPU1_SIDE 0X1C90 -#define INBOUND_MESSAGE_REGISTER1_CPU1_SIDE 0X1C94 -#define OUTBOUND_MESSAGE_REGISTER0_CPU1_SIDE 0X1C98 -#define OUTBOUND_MESSAGE_REGISTER1_CPU1_SIDE 0X1C9C -#define INBOUND_DOORBELL_REGISTER_CPU1_SIDE 0X1CA0 -#define INBOUND_INTERRUPT_CAUSE_REGISTER_CPU1_SIDE 0X1CA4 -#define INBOUND_INTERRUPT_MASK_REGISTER_CPU1_SIDE 0X1CA8 -#define OUTBOUND_DOORBELL_REGISTER_CPU1_SIDE 0X1CAC -#define OUTBOUND_INTERRUPT_CAUSE_REGISTER_CPU1_SIDE 0X1CB0 -#define OUTBOUND_INTERRUPT_MASK_REGISTER_CPU1_SIDE 0X1CB4 -#define INBOUND_QUEUE_PORT_VIRTUAL_REGISTER_CPU1_SIDE 0X1CC0 -#define OUTBOUND_QUEUE_PORT_VIRTUAL_REGISTER_CPU1_SIDE 0X1CC4 -#define QUEUE_CONTROL_REGISTER_CPU1_SIDE 0X1CD0 -#define QUEUE_BASE_ADDRESS_REGISTER_CPU1_SIDE 0X1CD4 -#define INBOUND_FREE_HEAD_POINTER_REGISTER_CPU1_SIDE 0X1CE0 -#define INBOUND_FREE_TAIL_POINTER_REGISTER_CPU1_SIDE 0X1CE4 -#define INBOUND_POST_HEAD_POINTER_REGISTER_CPU1_SIDE 0X1CE8 -#define INBOUND_POST_TAIL_POINTER_REGISTER_CPU1_SIDE 0X1CEC -#define OUTBOUND_FREE_HEAD_POINTER_REGISTER_CPU1_SIDE 0X1CF0 -#define OUTBOUND_FREE_TAIL_POINTER_REGISTER_CPU1_SIDE 0X1CF4 -#define OUTBOUND_POST_HEAD_POINTER_REGISTER_CPU1_SIDE 0X1C78 -#define OUTBOUND_POST_TAIL_POINTER_REGISTER_CPU1_SIDE 0X1C7C - -/****************************************/ -/* Communication Unit Registers */ -/****************************************/ - -#define ETHERNET_0_ADDRESS_CONTROL_LOW -#define ETHERNET_0_ADDRESS_CONTROL_HIGH 0xf204 -#define ETHERNET_0_RECEIVE_BUFFER_PCI_HIGH_ADDRESS 0xf208 -#define ETHERNET_0_TRANSMIT_BUFFER_PCI_HIGH_ADDRESS 0xf20c -#define ETHERNET_0_RECEIVE_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf210 -#define ETHERNET_0_TRANSMIT_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf214 -#define ETHERNET_0_HASH_TABLE_PCI_HIGH_ADDRESS 0xf218 -#define ETHERNET_1_ADDRESS_CONTROL_LOW 0xf220 -#define ETHERNET_1_ADDRESS_CONTROL_HIGH 0xf224 -#define ETHERNET_1_RECEIVE_BUFFER_PCI_HIGH_ADDRESS 0xf228 -#define ETHERNET_1_TRANSMIT_BUFFER_PCI_HIGH_ADDRESS 0xf22c -#define ETHERNET_1_RECEIVE_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf230 -#define ETHERNET_1_TRANSMIT_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf234 -#define ETHERNET_1_HASH_TABLE_PCI_HIGH_ADDRESS 0xf238 -#define ETHERNET_2_ADDRESS_CONTROL_LOW 0xf240 -#define ETHERNET_2_ADDRESS_CONTROL_HIGH 0xf244 -#define ETHERNET_2_RECEIVE_BUFFER_PCI_HIGH_ADDRESS 0xf248 -#define ETHERNET_2_TRANSMIT_BUFFER_PCI_HIGH_ADDRESS 0xf24c -#define ETHERNET_2_RECEIVE_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf250 -#define ETHERNET_2_TRANSMIT_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf254 -#define ETHERNET_2_HASH_TABLE_PCI_HIGH_ADDRESS 0xf258 -#define MPSC_0_ADDRESS_CONTROL_LOW 0xf280 -#define MPSC_0_ADDRESS_CONTROL_HIGH 0xf284 -#define MPSC_0_RECEIVE_BUFFER_PCI_HIGH_ADDRESS 0xf288 -#define MPSC_0_TRANSMIT_BUFFER_PCI_HIGH_ADDRESS 0xf28c -#define MPSC_0_RECEIVE_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf290 -#define MPSC_0_TRANSMIT_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf294 -#define MPSC_1_ADDRESS_CONTROL_LOW 0xf2a0 -#define MPSC_1_ADDRESS_CONTROL_HIGH 0xf2a4 -#define MPSC_1_RECEIVE_BUFFER_PCI_HIGH_ADDRESS 0xf2a8 -#define MPSC_1_TRANSMIT_BUFFER_PCI_HIGH_ADDRESS 0xf2ac -#define MPSC_1_RECEIVE_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf2b0 -#define MPSC_1_TRANSMIT_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf2b4 -#define MPSC_2_ADDRESS_CONTROL_LOW 0xf2c0 -#define MPSC_2_ADDRESS_CONTROL_HIGH 0xf2c4 -#define MPSC_2_RECEIVE_BUFFER_PCI_HIGH_ADDRESS 0xf2c8 -#define MPSC_2_TRANSMIT_BUFFER_PCI_HIGH_ADDRESS 0xf2cc -#define MPSC_2_RECEIVE_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf2d0 -#define MPSC_2_TRANSMIT_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf2d4 -#define SERIAL_INIT_PCI_HIGH_ADDRESS 0xf320 -#define SERIAL_INIT_LAST_DATA 0xf324 -#define SERIAL_INIT_STATUS_AND_CONTROL 0xf328 -#define COMM_UNIT_ARBITER_CONTROL 0xf300 -#define COMM_UNIT_CROSS_BAR_TIMEOUT 0xf304 -#define COMM_UNIT_INTERRUPT_CAUSE 0xf310 -#define COMM_UNIT_INTERRUPT_MASK 0xf314 -#define COMM_UNIT_ERROR_ADDRESS 0xf314 - -/****************************************/ -/* Cunit Debug (for internal use) */ -/****************************************/ - -#define CUNIT_ADDRESS 0xf340 -#define CUNIT_COMMAND_AND_ID 0xf344 -#define CUNIT_WRITE_DATA_LOW 0xf348 -#define CUNIT_WRITE_DATA_HIGH 0xf34c -#define CUNIT_WRITE_BYTE_ENABLE 0xf358 -#define CUNIT_READ_DATA_LOW 0xf350 -#define CUNIT_READ_DATA_HIGH 0xf354 -#define CUNIT_READ_ID 0xf35c - -/****************************************/ -/* Fast Ethernet Unit Registers */ -/****************************************/ - -/* Ethernet */ - -#define ETHERNET_PHY_ADDRESS_REGISTER 0x2000 -#define ETHERNET_SMI_REGISTER 0x2010 - -/* Ethernet 0 */ - -#define ETHERNET0_PORT_CONFIGURATION_REGISTER 0x2400 -#define ETHERNET0_PORT_CONFIGURATION_EXTEND_REGISTER 0x2408 -#define ETHERNET0_PORT_COMMAND_REGISTER 0x2410 -#define ETHERNET0_PORT_STATUS_REGISTER 0x2418 -#define ETHERNET0_SERIAL_PARAMETRS_REGISTER 0x2420 -#define ETHERNET0_HASH_TABLE_POINTER_REGISTER 0x2428 -#define ETHERNET0_FLOW_CONTROL_SOURCE_ADDRESS_LOW 0x2430 -#define ETHERNET0_FLOW_CONTROL_SOURCE_ADDRESS_HIGH 0x2438 -#define ETHERNET0_SDMA_CONFIGURATION_REGISTER 0x2440 -#define ETHERNET0_SDMA_COMMAND_REGISTER 0x2448 -#define ETHERNET0_INTERRUPT_CAUSE_REGISTER 0x2450 -#define ETHERNET0_INTERRUPT_MASK_REGISTER 0x2458 -#define ETHERNET0_FIRST_RX_DESCRIPTOR_POINTER0 0x2480 -#define ETHERNET0_FIRST_RX_DESCRIPTOR_POINTER1 0x2484 -#define ETHERNET0_FIRST_RX_DESCRIPTOR_POINTER2 0x2488 -#define ETHERNET0_FIRST_RX_DESCRIPTOR_POINTER3 0x248c -#define ETHERNET0_CURRENT_RX_DESCRIPTOR_POINTER0 0x24a0 -#define ETHERNET0_CURRENT_RX_DESCRIPTOR_POINTER1 0x24a4 -#define ETHERNET0_CURRENT_RX_DESCRIPTOR_POINTER2 0x24a8 -#define ETHERNET0_CURRENT_RX_DESCRIPTOR_POINTER3 0x24ac -#define ETHERNET0_CURRENT_TX_DESCRIPTOR_POINTER0 0x24e0 -#define ETHERNET0_CURRENT_TX_DESCRIPTOR_POINTER1 0x24e4 -#define ETHERNET0_MIB_COUNTER_BASE 0x2500 - -/* Ethernet 1 */ - -#define ETHERNET1_PORT_CONFIGURATION_REGISTER 0x2800 -#define ETHERNET1_PORT_CONFIGURATION_EXTEND_REGISTER 0x2808 -#define ETHERNET1_PORT_COMMAND_REGISTER 0x2810 -#define ETHERNET1_PORT_STATUS_REGISTER 0x2818 -#define ETHERNET1_SERIAL_PARAMETRS_REGISTER 0x2820 -#define ETHERNET1_HASH_TABLE_POINTER_REGISTER 0x2828 -#define ETHERNET1_FLOW_CONTROL_SOURCE_ADDRESS_LOW 0x2830 -#define ETHERNET1_FLOW_CONTROL_SOURCE_ADDRESS_HIGH 0x2838 -#define ETHERNET1_SDMA_CONFIGURATION_REGISTER 0x2840 -#define ETHERNET1_SDMA_COMMAND_REGISTER 0x2848 -#define ETHERNET1_INTERRUPT_CAUSE_REGISTER 0x2850 -#define ETHERNET1_INTERRUPT_MASK_REGISTER 0x2858 -#define ETHERNET1_FIRST_RX_DESCRIPTOR_POINTER0 0x2880 -#define ETHERNET1_FIRST_RX_DESCRIPTOR_POINTER1 0x2884 -#define ETHERNET1_FIRST_RX_DESCRIPTOR_POINTER2 0x2888 -#define ETHERNET1_FIRST_RX_DESCRIPTOR_POINTER3 0x288c -#define ETHERNET1_CURRENT_RX_DESCRIPTOR_POINTER0 0x28a0 -#define ETHERNET1_CURRENT_RX_DESCRIPTOR_POINTER1 0x28a4 -#define ETHERNET1_CURRENT_RX_DESCRIPTOR_POINTER2 0x28a8 -#define ETHERNET1_CURRENT_RX_DESCRIPTOR_POINTER3 0x28ac -#define ETHERNET1_CURRENT_TX_DESCRIPTOR_POINTER0 0x28e0 -#define ETHERNET1_CURRENT_TX_DESCRIPTOR_POINTER1 0x28e4 -#define ETHERNET1_MIB_COUNTER_BASE 0x2900 - -/* Ethernet 2 */ - -#define ETHERNET2_PORT_CONFIGURATION_REGISTER 0x2c00 -#define ETHERNET2_PORT_CONFIGURATION_EXTEND_REGISTER 0x2c08 -#define ETHERNET2_PORT_COMMAND_REGISTER 0x2c10 -#define ETHERNET2_PORT_STATUS_REGISTER 0x2c18 -#define ETHERNET2_SERIAL_PARAMETRS_REGISTER 0x2c20 -#define ETHERNET2_HASH_TABLE_POINTER_REGISTER 0x2c28 -#define ETHERNET2_FLOW_CONTROL_SOURCE_ADDRESS_LOW 0x2c30 -#define ETHERNET2_FLOW_CONTROL_SOURCE_ADDRESS_HIGH 0x2c38 -#define ETHERNET2_SDMA_CONFIGURATION_REGISTER 0x2c40 -#define ETHERNET2_SDMA_COMMAND_REGISTER 0x2c48 -#define ETHERNET2_INTERRUPT_CAUSE_REGISTER 0x2c50 -#define ETHERNET2_INTERRUPT_MASK_REGISTER 0x2c58 -#define ETHERNET2_FIRST_RX_DESCRIPTOR_POINTER0 0x2c80 -#define ETHERNET2_FIRST_RX_DESCRIPTOR_POINTER1 0x2c84 -#define ETHERNET2_FIRST_RX_DESCRIPTOR_POINTER2 0x2c88 -#define ETHERNET2_FIRST_RX_DESCRIPTOR_POINTER3 0x2c8c -#define ETHERNET2_CURRENT_RX_DESCRIPTOR_POINTER0 0x2ca0 -#define ETHERNET2_CURRENT_RX_DESCRIPTOR_POINTER1 0x2ca4 -#define ETHERNET2_CURRENT_RX_DESCRIPTOR_POINTER2 0x2ca8 -#define ETHERNET2_CURRENT_RX_DESCRIPTOR_POINTER3 0x2cac -#define ETHERNET2_CURRENT_TX_DESCRIPTOR_POINTER0 0x2ce0 -#define ETHERNET2_CURRENT_TX_DESCRIPTOR_POINTER1 0x2ce4 -#define ETHERNET2_MIB_COUNTER_BASE 0x2d00 - -/****************************************/ -/* SDMA Registers */ -/****************************************/ - -#define SDMA_GROUP_CONFIGURATION_REGISTER 0xb1f0 -#define CHANNEL0_CONFIGURATION_REGISTER 0x4000 -#define CHANNEL0_COMMAND_REGISTER 0x4008 -#define CHANNEL0_RX_CMD_STATUS 0x4800 -#define CHANNEL0_RX_PACKET_AND_BUFFER_SIZES 0x4804 -#define CHANNEL0_RX_BUFFER_POINTER 0x4808 -#define CHANNEL0_RX_NEXT_POINTER 0x480c -#define CHANNEL0_CURRENT_RX_DESCRIPTOR_POINTER 0x4810 -#define CHANNEL0_TX_CMD_STATUS 0x4C00 -#define CHANNEL0_TX_PACKET_SIZE 0x4C04 -#define CHANNEL0_TX_BUFFER_POINTER 0x4C08 -#define CHANNEL0_TX_NEXT_POINTER 0x4C0c -#define CHANNEL0_CURRENT_TX_DESCRIPTOR_POINTER 0x4c10 -#define CHANNEL0_FIRST_TX_DESCRIPTOR_POINTER 0x4c14 -#define CHANNEL1_CONFIGURATION_REGISTER 0x6000 -#define CHANNEL1_COMMAND_REGISTER 0x6008 -#define CHANNEL1_RX_CMD_STATUS 0x6800 -#define CHANNEL1_RX_PACKET_AND_BUFFER_SIZES 0x6804 -#define CHANNEL1_RX_BUFFER_POINTER 0x6808 -#define CHANNEL1_RX_NEXT_POINTER 0x680c -#define CHANNEL1_CURRENT_RX_DESCRIPTOR_POINTER 0x6810 -#define CHANNEL1_TX_CMD_STATUS 0x6C00 -#define CHANNEL1_TX_PACKET_SIZE 0x6C04 -#define CHANNEL1_TX_BUFFER_POINTER 0x6C08 -#define CHANNEL1_TX_NEXT_POINTER 0x6C0c -#define CHANNEL1_CURRENT_RX_DESCRIPTOR_POINTER 0x6810 -#define CHANNEL1_CURRENT_TX_DESCRIPTOR_POINTER 0x6c10 -#define CHANNEL1_FIRST_TX_DESCRIPTOR_POINTER 0x6c14 - -/* SDMA Interrupt */ - -#define SDMA_CAUSE 0xb820 -#define SDMA_MASK 0xb8a0 - - -/****************************************/ -/* Baude Rate Generators Registers */ -/****************************************/ - -/* BRG 0 */ - -#define BRG0_CONFIGURATION_REGISTER 0xb200 -#define BRG0_BAUDE_TUNING_REGISTER 0xb204 - -/* BRG 1 */ - -#define BRG1_CONFIGURATION_REGISTER 0xb208 -#define BRG1_BAUDE_TUNING_REGISTER 0xb20c - -/* BRG 2 */ - -#define BRG2_CONFIGURATION_REGISTER 0xb210 -#define BRG2_BAUDE_TUNING_REGISTER 0xb214 - -/* BRG Interrupts */ - -#define BRG_CAUSE_REGISTER 0xb834 -#define BRG_MASK_REGISTER 0xb8b4 - -/* MISC */ - -#define MAIN_ROUTING_REGISTER 0xb400 -#define RECEIVE_CLOCK_ROUTING_REGISTER 0xb404 -#define TRANSMIT_CLOCK_ROUTING_REGISTER 0xb408 -#define COMM_UNIT_ARBITER_CONFIGURATION_REGISTER 0xb40c -#define WATCHDOG_CONFIGURATION_REGISTER 0xb410 -#define WATCHDOG_VALUE_REGISTER 0xb414 - - -/****************************************/ -/* Flex TDM Registers */ -/****************************************/ - -/* FTDM Port */ - -#define FLEXTDM_TRANSMIT_READ_POINTER 0xa800 -#define FLEXTDM_RECEIVE_READ_POINTER 0xa804 -#define FLEXTDM_CONFIGURATION_REGISTER 0xa808 -#define FLEXTDM_AUX_CHANNELA_TX_REGISTER 0xa80c -#define FLEXTDM_AUX_CHANNELA_RX_REGISTER 0xa810 -#define FLEXTDM_AUX_CHANNELB_TX_REGISTER 0xa814 -#define FLEXTDM_AUX_CHANNELB_RX_REGISTER 0xa818 - -/* FTDM Interrupts */ - -#define FTDM_CAUSE_REGISTER 0xb830 -#define FTDM_MASK_REGISTER 0xb8b0 - - -/****************************************/ -/* GPP Interface Registers */ -/****************************************/ - -#define GPP_IO_CONTROL 0xf100 -#define GPP_LEVEL_CONTROL 0xf110 -#define GPP_VALUE 0xf104 -#define GPP_INTERRUPT_CAUSE 0xf108 -#define GPP_INTERRUPT_MASK 0xf10c - -#define MPP_CONTROL0 0xf000 -#define MPP_CONTROL1 0xf004 -#define MPP_CONTROL2 0xf008 -#define MPP_CONTROL3 0xf00c -#define DEBUG_PORT_MULTIPLEX 0xf014 -#define SERIAL_PORT_MULTIPLEX 0xf010 - -/****************************************/ -/* I2C Registers */ -/****************************************/ - -#define I2C_SLAVE_ADDRESS 0xc000 -#define I2C_EXTENDED_SLAVE_ADDRESS 0xc040 -#define I2C_DATA 0xc004 -#define I2C_CONTROL 0xc008 -#define I2C_STATUS_BAUDE_RATE 0xc00C -#define I2C_SOFT_RESET 0xc01c - -/****************************************/ -/* MPSC Registers */ -/****************************************/ - -/* MPSC0 */ - -#define MPSC0_MAIN_CONFIGURATION_LOW 0x8000 -#define MPSC0_MAIN_CONFIGURATION_HIGH 0x8004 -#define MPSC0_PROTOCOL_CONFIGURATION 0x8008 -#define CHANNEL0_REGISTER1 0x800c -#define CHANNEL0_REGISTER2 0x8010 -#define CHANNEL0_REGISTER3 0x8014 -#define CHANNEL0_REGISTER4 0x8018 -#define CHANNEL0_REGISTER5 0x801c -#define CHANNEL0_REGISTER6 0x8020 -#define CHANNEL0_REGISTER7 0x8024 -#define CHANNEL0_REGISTER8 0x8028 -#define CHANNEL0_REGISTER9 0x802c -#define CHANNEL0_REGISTER10 0x8030 -#define CHANNEL0_REGISTER11 0x8034 - -/* MPSC1 */ - -#define MPSC1_MAIN_CONFIGURATION_LOW 0x9000 -#define MPSC1_MAIN_CONFIGURATION_HIGH 0x9004 -#define MPSC1_PROTOCOL_CONFIGURATION 0x9008 -#define CHANNEL1_REGISTER1 0x900c -#define CHANNEL1_REGISTER2 0x9010 -#define CHANNEL1_REGISTER3 0x9014 -#define CHANNEL1_REGISTER4 0x9018 -#define CHANNEL1_REGISTER5 0x901c -#define CHANNEL1_REGISTER6 0x9020 -#define CHANNEL1_REGISTER7 0x9024 -#define CHANNEL1_REGISTER8 0x9028 -#define CHANNEL1_REGISTER9 0x902c -#define CHANNEL1_REGISTER10 0x9030 -#define CHANNEL1_REGISTER11 0x9034 - -/* MPSCs Interupts */ - -#define MPSC0_CAUSE 0xb804 -#define MPSC0_MASK 0xb884 -#define MPSC1_CAUSE 0xb80c -#define MPSC1_MASK 0xb88c - -#endif /* __INCgt64240rh */ diff -Nru a/arch/mips/momentum/ocelot_g/gt64240_dep.h b/arch/mips/momentum/ocelot_g/gt64240_dep.h --- a/arch/mips/momentum/ocelot_g/gt64240_dep.h 2004-06-28 18:21:56 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,57 +0,0 @@ -/*********************************************************************** - * Copyright 2001 MontaVista Software Inc. - * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net - * - * arch/mips/gt64240/gt64240-dep.h - * Board-dependent definitions for GT-64120 chip. - * - * 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 _ASM_GT64240_DEP_H -#define _ASM_GT64240_DEP_H - -#include /* for KSEG1ADDR() */ -#include /* for cpu_to_le32() */ - -/* - * PCI address allocation - */ -#if 0 -#define GT_PCI_MEM_BASE (0x22000000) -#define GT_PCI_MEM_SIZE GT_DEF_PCI0_MEM0_SIZE -#define GT_PCI_IO_BASE (0x20000000) -#define GT_PCI_IO_SIZE GT_DEF_PCI0_IO_SIZE -#endif - -extern unsigned long gt64240_base; - -#define GT64240_BASE (gt64240_base) - -/* - * Because of an error/peculiarity in the Galileo chip, we need to swap the - * bytes when running bigendian. - */ - -#define GT_WRITE(ofs, data) \ - *(volatile u32 *)(GT64240_BASE+(ofs)) = cpu_to_le32(data) -#define GT_READ(ofs, data) \ - *(data) = le32_to_cpu(*(volatile u32 *)(GT64240_BASE+(ofs))) -#define GT_READ_DATA(ofs) \ - le32_to_cpu(*(volatile u32 *)(GT64240_BASE+(ofs))) - -#define GT_WRITE_16(ofs, data) \ - *(volatile u16 *)(GT64240_BASE+(ofs)) = cpu_to_le16(data) -#define GT_READ_16(ofs, data) \ - *(data) = le16_to_cpu(*(volatile u16 *)(GT64240_BASE+(ofs))) - -#define GT_WRITE_8(ofs, data) \ - *(volatile u8 *)(GT64240_BASE+(ofs)) = data -#define GT_READ_8(ofs, data) \ - *(data) = *(volatile u8 *)(GT64240_BASE+(ofs)) - -#endif /* _ASM_GT64120_MOMENCO_OCELOT_GT64120_DEP_H */ diff -Nru a/arch/mips/momentum/ocelot_g/pci-irq.c b/arch/mips/momentum/ocelot_g/pci-irq.c --- a/arch/mips/momentum/ocelot_g/pci-irq.c 2004-06-28 18:21:58 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,73 +0,0 @@ -/* - * Copyright 2002 Momentum Computer Inc. - * Author: Matthew Dharm - * - * Based on work for the Linux port to the Ocelot board, which is - * Copyright 2001 MontaVista Software Inc. - * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net - * - * arch/mips/momentum/ocelot_g/pci.c - * Board-specific PCI routines for gt64240 controller. - * - * 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 - - -void __devinit gt64240_board_pcibios_fixup_bus(struct pci_bus *bus) -{ - struct pci_bus *current_bus = bus; - struct pci_dev *devices; - struct list_head *devices_link; - u16 cmd; - - /* loop over all known devices on this bus */ - list_for_each(devices_link, &(current_bus->devices)) { - - devices = pci_dev_b(devices_link); - if (devices == NULL) - continue; - - if ((current_bus->number == 0) && - PCI_SLOT(devices->devfn) == 1) { - /* Intel 82543 Gigabit MAC */ - devices->irq = 2; /* irq_nr is 2 for INT0 */ - } else if ((current_bus->number == 0) && - PCI_SLOT(devices->devfn) == 2) { - /* Intel 82543 Gigabit MAC */ - devices->irq = 3; /* irq_nr is 3 for INT1 */ - } else if ((current_bus->number == 1) && - PCI_SLOT(devices->devfn) == 3) { - /* Intel 21555 bridge */ - devices->irq = 5; /* irq_nr is 8 for INT6 */ - } else if ((current_bus->number == 1) && - PCI_SLOT(devices->devfn) == 4) { - /* PMC Slot */ - devices->irq = 9; /* irq_nr is 9 for INT7 */ - } else { - /* We don't have assign interrupts for other devices. */ - devices->irq = 0xff; - } - - /* Assign an interrupt number for the device */ - bus->ops->write(current_bus, devices, - PCI_INTERRUPT_LINE, 1, devices->irq); - - /* enable master for everything but the GT-64240 */ - if (((current_bus->number != 0) && (current_bus->number != 1)) - || (PCI_SLOT(devices->devfn) != 0)) { - bus->ops->read(current_bus, devices, - PCI_COMMAND, 2, &cmd); - cmd |= PCI_COMMAND_MASTER; - bus->ops->write(current_bus, devices, - PCI_COMMAND, 2, cmd); - } - } -} diff -Nru a/arch/mips/momentum/ocelot_g/prom.c b/arch/mips/momentum/ocelot_g/prom.c --- a/arch/mips/momentum/ocelot_g/prom.c 2004-06-28 18:21:54 -07:00 +++ b/arch/mips/momentum/ocelot_g/prom.c 2004-06-28 18:21:54 -07:00 @@ -20,8 +20,8 @@ #include #include #include +#include -#include "gt64240.h" #include "ocelot_pld.h" struct callvectors* debug_vectors; @@ -38,10 +38,8 @@ return "Momentum Ocelot"; } -/* [jsun@junsun.net] PMON passes arguments in C main() style */ void __init prom_init(void) { - uint32_t tmp; int argc = fw_arg0; char **arg = (char **) fw_arg1; char **env = (char **) fw_arg2; @@ -78,10 +76,8 @@ bus_clock = simple_strtol(*env + strlen("busclock="), NULL, 10); } - *env++; + env++; } - - debug_vectors->printf("Booting Linux kernel...\n"); } unsigned long __init prom_free_prom_memory(void) diff -Nru a/arch/mips/momentum/ocelot_g/setup.c b/arch/mips/momentum/ocelot_g/setup.c --- a/arch/mips/momentum/ocelot_g/setup.c 2004-06-28 18:21:55 -07:00 +++ b/arch/mips/momentum/ocelot_g/setup.c 2004-06-28 18:21:55 -07:00 @@ -1,6 +1,4 @@ /* - * setup.c - * * BRIEF MODULE DESCRIPTION * Momentum Computer Ocelot-G (CP7000G) - board dependent boot routines * @@ -55,14 +53,14 @@ #include #include #include +#include #include #include #include #include #include #include -#include -#include "gt64240.h" + #include "ocelot_pld.h" #ifdef CONFIG_GALILLEO_GT64240_ETH @@ -88,8 +86,6 @@ _CACHE_UNCACHED)) >> 6; } -static void __init setup_l3cache(unsigned long size); - /* setup code for a handoff from a version 2 PMON 2000 PROM */ void PMON_v2_setup(void) { @@ -104,8 +100,10 @@ GT64240 Internal Regs 0xf4000000 0xe0000000 UARTs (CS2) 0xfd000000 0xe0001000 */ - add_wired_entry(ENTRYLO(0xf4000000), ENTRYLO(0xf4010000), 0xf4000000, PM_64K); - add_wired_entry(ENTRYLO(0xfd000000), ENTRYLO(0xfd001000), 0xfd000000, PM_4K); + add_wired_entry(ENTRYLO(0xf4000000), ENTRYLO(0xf4010000), + 0xf4000000, PM_64K); + add_wired_entry(ENTRYLO(0xfd000000), ENTRYLO(0xfd001000), + 0xfd000000, PM_4K); /* Also a temporary entry to let us talk to the Ocelot PLD and NVRAM in the CS[012] region. We can't use ioremap() yet. The NVRAM @@ -114,15 +112,57 @@ Ocelot PLD (CS0) 0xfc000000 0xe0020000 NVRAM (CS1) 0xfc800000 0xe0030000 */ - add_temporary_entry(ENTRYLO(0xfc000000), ENTRYLO(0xfc010000), 0xfc000000, PM_64K); - add_temporary_entry(ENTRYLO(0xfc800000), ENTRYLO(0xfc810000), 0xfc800000, PM_64K); + add_temporary_entry(ENTRYLO(0xfc000000), ENTRYLO(0xfc010000), + 0xfc000000, PM_64K); + add_temporary_entry(ENTRYLO(0xfc800000), ENTRYLO(0xfc810000), + 0xfc800000, PM_64K); gt64240_base = 0xf4000000; } -static void __init momenco_ocelot_g_setup(void) +extern int rm7k_tcache_enabled; + +/* + * This runs in KSEG1. See the verbiage in rm7k.c::probe_scache() + */ +#define Page_Invalidate_T 0x16 +static void __init setup_l3cache(unsigned long size) +{ + int register i; + + printk("Enabling L3 cache..."); + + /* Enable the L3 cache in the GT64120A's CPU Configuration register */ + GT_WRITE(0, GT_READ(0) | (1<<14)); + + /* Enable the L3 cache in the CPU */ + set_c0_config(1<<12 /* CONF_TE */); + + /* Clear the cache */ + write_c0_taglo(0); + write_c0_taghi(0); + + for (i=0; i < size; i+= 4096) { + __asm__ __volatile__ ( + ".set noreorder\n\t" + ".set mips3\n\t" + "cache %1, (%0)\n\t" + ".set mips0\n\t" + ".set reorder" + : + : "r" (KSEG0ADDR(i)), + "i" (Page_Invalidate_T)); + } + + /* Let the RM7000 MM code know that the tertiary cache is enabled */ + rm7k_tcache_enabled = 1; + + printk("Done\n"); +} + +static int __init momenco_ocelot_g_setup(void) { - void (*l3func)(unsigned long)=KSEG1ADDR(&setup_l3cache); + void (*l3func)(unsigned long) = (void *) KSEG1ADDR(setup_l3cache); unsigned int tmpword; board_time_init = gt64240_time_init; @@ -200,51 +240,11 @@ /* FIXME: Fix up the DiskOnChip mapping */ GT_WRITE(0x468, 0xfef73); -} - -early_initcall(momenco_ocelot_g_setup); - -extern int rm7k_tcache_enabled; -/* - * This runs in KSEG1. See the verbiage in rm7k.c::probe_scache() - */ -#define Page_Invalidate_T 0x16 -static void __init setup_l3cache(unsigned long size) -{ - int register i; - unsigned long tmp; - - printk("Enabling L3 cache..."); - - /* Enable the L3 cache in the GT64120A's CPU Configuration register */ - GT_READ(0, &tmp); - GT_WRITE(0, tmp | (1<<14)); - - /* Enable the L3 cache in the CPU */ - set_c0_config(1<<12 /* CONF_TE */); - - /* Clear the cache */ - write_c0_taglo(0); - write_c0_taghi(0); - for (i=0; i < size; i+= 4096) { - __asm__ __volatile__ ( - ".set noreorder\n\t" - ".set mips3\n\t" - "cache %1, (%0)\n\t" - ".set mips0\n\t" - ".set reorder" - : - : "r" (KSEG0ADDR(i)), - "i" (Page_Invalidate_T)); - } - - /* Let the RM7000 MM code know that the tertiary cache is enabled */ - rm7k_tcache_enabled = 1; - - printk("Done\n"); + return 0; } +early_initcall(momenco_ocelot_g_setup); /* This needs to be one of the first initcalls, because no I/O port access can work before this */ @@ -252,12 +252,12 @@ static int io_base_ioremap(void) { /* we're mapping PCI accesses from 0xc0000000 to 0xf0000000 */ - void *io_remap_range = ioremap(0xc0000000, 0x30000000); + unsigned long io_remap_range; - if (!io_remap_range) { + io_remap_range = (unsigned long) ioremap(0xc0000000, 0x30000000); + if (!io_remap_range) panic("Could not ioremap I/O port range"); - } - printk("io_remap_range set at 0x%08x\n", (uint32_t)io_remap_range); + set_io_port_base(io_remap_range - 0xc0000000); return 0; diff -Nru a/arch/mips/pci/Makefile b/arch/mips/pci/Makefile --- a/arch/mips/pci/Makefile 2004-06-28 18:21:52 -07:00 +++ b/arch/mips/pci/Makefile 2004-06-28 18:21:52 -07:00 @@ -16,6 +16,7 @@ obj-$(CONFIG_MIPS_MSC) += ops-msc.o obj-$(CONFIG_MIPS_NILE4) += ops-nile4.o obj-$(CONFIG_MIPS_TX3927) += ops-jmr3927.o +obj-$(CONFIG_PCI_VR41XX) += ops-vr41xx.o pci-vr41xx.o # # These are still pretty much in the old state, watch, go blind. @@ -34,20 +35,20 @@ obj-$(CONFIG_SOC_AU1500) += fixup-au1000.o ops-au1000.o obj-$(CONFIG_SOC_AU1550) += fixup-au1000.o ops-au1000.o obj-$(CONFIG_MIPS_MALTA) += fixup-malta.o -obj-$(CONFIG_MIPS_MV64340) += fixup-mv64340.o +obj-$(CONFIG_MOMENCO_JAGUAR_ATX)+= fixup-jaguar.o obj-$(CONFIG_MOMENCO_OCELOT) += fixup-ocelot.o pci-ocelot.o -obj-$(CONFIG_MOMENCO_OCELOT_C) += pci-ocelot-c.o -obj-$(CONFIG_MOMENCO_OCELOT_G) += pci-ocelot-g.o +obj-$(CONFIG_MOMENCO_OCELOT_C) += fixup-ocelot-c.o pci-ocelot-c.o +obj-$(CONFIG_MOMENCO_OCELOT_G) += fixup-ocelot-g.o ops-gt64240.o pci-ocelot-g.o obj-$(CONFIG_NEC_EAGLE) += fixup-eagle.o ops-vrc4173.o -obj-$(CONFIG_PMC_YOSEMITE) += fixup-yosemite.o ops-titan.o +obj-$(CONFIG_PMC_YOSEMITE) += fixup-yosemite.o ops-titan.o ops-titan-ht.o \ + pci-yosemite.o obj-$(CONFIG_SGI_IP27) += pci-ip27.o obj-$(CONFIG_SGI_IP32) += fixup-ip32.o ops-mace.o pci-ip32.o obj-$(CONFIG_SIBYTE_SB1250) += pci-sb1250.o obj-$(CONFIG_SNI_RM200_PCI) += fixup-sni.o ops-sni.o +obj-$(CONFIG_TANBAC_TB0219) += fixup-tb0219.o obj-$(CONFIG_TANBAC_TB0226) += fixup-tb0226.o -obj-$(CONFIG_TANBAC_TB0229) += fixup-tb0229.o obj-$(CONFIG_TOSHIBA_JMR3927) += fixup-jmr3927.o pci-jmr3927.o obj-$(CONFIG_TOSHIBA_RBTX4927) += fixup-rbtx4927.o ops-tx4927.o -obj-$(CONFIG_VICTOR_MPC30X) += fixup-capcella.o -obj-$(CONFIG_MACH_VR41XX) += pci-vr41xx.o -obj-$(CONFIG_ZAO_CAPCELLA) += fixup-victor-mpc30x.o +obj-$(CONFIG_VICTOR_MPC30X) += fixup-mpc30x.o +obj-$(CONFIG_ZAO_CAPCELLA) += fixup-capcella.o diff -Nru a/arch/mips/pci/fixup-capcella.c b/arch/mips/pci/fixup-capcella.c --- a/arch/mips/pci/fixup-capcella.c 2004-06-28 18:21:55 -07:00 +++ b/arch/mips/pci/fixup-capcella.c 2004-06-28 18:21:55 -07:00 @@ -1,17 +1,21 @@ /* - * FILE NAME - * arch/mips/vr41xx/zao-capcella/pci_fixup.c + * fixup-cappcela.c, The ZAO Networks Capcella specific PCI fixups. * - * BRIEF MODULE DESCRIPTION - * The ZAO Networks Capcella specific PCI fixups. + * Copyright (C) 2002,2004 Yoichi Yuasa * - * Copyright 2002 Yoichi Yuasa - * yuasa@hh.iij4u.or.jp + * 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. * - * 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. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include @@ -38,3 +42,7 @@ { return irq_tab_capcella[slot][pin]; } + +struct pci_fixup pcibios_fixups[] __initdata = { + { .pass = 0, }, +}; diff -Nru a/arch/mips/pci/fixup-jaguar.c b/arch/mips/pci/fixup-jaguar.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/mips/pci/fixup-jaguar.c 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,42 @@ +/* + * 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. + * + * Marvell MV64340 interrupt fixup code. + * + * Marvell wants an NDA for their docs so this was written without + * documentation. You've been warned. + * + * Copyright (C) 2004 Ralf Baechle + */ +#include +#include +#include + +#include +#include + +/* + * WARNING: Example of how _NOT_ to do it. + */ +int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) +{ + int bus = dev->bus->number; + + if (bus == 0 && slot == 1) + return 3; /* PCI-X A */ + if (bus == 0 && slot == 2) + return 4; /* PCI-X B */ + if (bus == 1 && slot == 1) + return 5; /* PCI A */ + if (bus == 1 && slot == 2) + return 6; /* PCI B */ + +return 0; + panic("Whooops in pcibios_map_irq"); +} + +struct pci_fixup pcibios_fixups[] = { + {0} +}; diff -Nru a/arch/mips/pci/fixup-mpc30x.c b/arch/mips/pci/fixup-mpc30x.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/mips/pci/fixup-mpc30x.c 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,48 @@ +/* + * fixup-mpc30x.c, The Victor MP-C303/304 specific PCI fixups. + * + * Copyright (C) 2002,2004 Yoichi Yuasa + * + * 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. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +#include +#include + +#include +#include + +static const int internal_func_irqs[] __initdata = { + VRC4173_CASCADE_IRQ, + VRC4173_AC97_IRQ, + VRC4173_USB_IRQ, +}; + +static char irq_tab_mpc30x[] __initdata = { + [12] = VRC4173_PCMCIA1_IRQ, + [13] = VRC4173_PCMCIA2_IRQ, + [29] = MQ200_IRQ, +}; + +int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) +{ + if (slot == 30) + return internal_func_irqs[PCI_FUNC(dev->devfn)]; + + return irq_tab_mpc30x[slot]; +} + +struct pci_fixup pcibios_fixups[] __initdata = { + { .pass = 0, }, +}; diff -Nru a/arch/mips/pci/fixup-mv64340.c b/arch/mips/pci/fixup-mv64340.c --- a/arch/mips/pci/fixup-mv64340.c 2004-06-28 18:21:59 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,42 +0,0 @@ -/* - * 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. - * - * Marvell MV64340 interrupt fixup code. - * - * Marvell wants an NDA for their docs so this was written without - * documentation. You've been warned. - * - * Copyright (C) 2004 Ralf Baechle - */ -#include -#include -#include - -#include -#include - -/* - * WARNING: Example of how _NOT_ to do it. - */ -int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) -{ - int bus = dev->bus->number; - - if (bus == 0 && slot == 1) - return 3; /* PCI-X A */ - if (bus == 0 && slot == 2) - return 4; /* PCI-X B */ - if (bus == 1 && slot == 1) - return 5; /* PCI A */ - if (bus == 1 && slot == 2) - return 6; /* PCI B */ - -return 0; - panic("Whooops in pcibios_map_irq"); -} - -struct pci_fixup pcibios_fixups[] = { - {0} -}; diff -Nru a/arch/mips/pci/fixup-ocelot-c.c b/arch/mips/pci/fixup-ocelot-c.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/mips/pci/fixup-ocelot-c.c 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,39 @@ +/* + * Copyright 2002 Momentum Computer Inc. + * Author: Matthew Dharm + * + * Based on work for the Linux port to the Ocelot board, which is + * Copyright 2001 MontaVista Software Inc. + * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net + * + * arch/mips/momentum/ocelot_g/pci.c + * Board-specific PCI routines for mv64340 controller. + * + * 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 + +int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) +{ + int bus = dev->bus->number; + + if (bus == 0 && slot == 1) + return 2; /* PCI-X A */ + if (bus == 1 && slot == 1) + return 12; /* PCI-X B */ + if (bus == 1 && slot == 2) + return 4; /* PCI B */ + +return 0; + panic("Whooops in pcibios_map_irq"); +} + +struct pci_fixup pcibios_fixups[] = { + {0} +}; diff -Nru a/arch/mips/pci/fixup-ocelot-g.c b/arch/mips/pci/fixup-ocelot-g.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/mips/pci/fixup-ocelot-g.c 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,35 @@ +/* + * 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. + * + * Copyright (C) 2004 Ralf Baechle (ralf@linux-mips.org) + */ +#include +#include +#include +#include + +int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) +{ + int bus = dev->bus->number; + + if (bus == 0 && slot == 1) /* Intel 82543 Gigabit MAC */ + return 2; /* irq_nr is 2 for INT0 */ + + if (bus == 0 && slot == 2) /* Intel 82543 Gigabit MAC */ + return 3; /* irq_nr is 3 for INT1 */ + + if (bus == 1 && slot == 3) /* Intel 21555 bridge */ + return 5; /* irq_nr is 8 for INT6 */ + + if (bus == 1 && slot == 4) /* PMC Slot */ + return 9; /* irq_nr is 9 for INT7 */ + + return -1; +} + +struct pci_fixup pcibios_fixups[] = { + {0} +}; diff -Nru a/arch/mips/pci/fixup-tb0219.c b/arch/mips/pci/fixup-tb0219.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/arch/mips/pci/fixup-tb0219.c 2004-06-28 18:22:00 -07:00 @@ -0,0 +1,64 @@ +/* + * fixup-tb0219.c, The TANBAC TB0219 specific PCI fixups. + * + * Copyright (C) 2003 Megasolution Inc. + * Copyright (C) 2004 Yoichi Yuasa + * + * 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. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ +#include +#include + +#include + +int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) +{ + int irq = -1; + + switch (slot) { + case 12: + vr41xx_set_irq_trigger(TB0219_PCI_SLOT1_PIN, + TRIGGER_LEVEL, + SIGNAL_THROUGH); + vr41xx_set_irq_level(TB0219_PCI_SLOT1_PIN, + LEVEL_LOW); + irq = TB0219_PCI_SLOT1_IRQ; + break; + case 13: + vr41xx_set_irq_trigger(TB0219_PCI_SLOT2_PIN, + TRIGGER_LEVEL, + SIGNAL_THROUGH); + vr41xx_set_irq_level(TB0219_PCI_SLOT2_PIN, + LEVEL_LOW); + irq = TB0219_PCI_SLOT2_IRQ; + break; + case 14: + vr41xx_set_irq_trigger(TB0219_PCI_SLOT3_PIN, + TRIGGER_LEVEL, + SIGNAL_THROUGH); + vr41xx_set_irq_level(TB0219_PCI_SLOT3_PIN, + LEVEL_LOW); + irq = TB0219_PCI_SLOT3_IRQ; + break; + default: + break; + } + + return irq; +} + +struct pci_fixup pcibios_fixups[] __initdata = { + { .pass = 0, }, +}; diff -Nru a/arch/mips/pci/fixup-tb0226.c b/arch/mips/pci/fixup-tb0226.c --- a/arch/mips/pci/fixup-tb0226.c 2004-06-28 18:21:58 -07:00 +++ b/arch/mips/pci/fixup-tb0226.c 2004-06-28 18:21:58 -07:00 @@ -1,78 +1,83 @@ /* - * FILE NAME - * arch/mips/vr41xx/tanbac-tb0226/pci_fixup.c + * fixup-tb0226.c, The TANBAC TB0226 specific PCI fixups. * - * BRIEF MODULE DESCRIPTION - * The TANBAC TB0226 specific PCI fixups. + * Copyright (C) 2002-2004 Yoichi Yuasa * - * Copyright 2002,2003 Yoichi Yuasa - * yuasa@hh.iij4u.or.jp + * 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. * - * 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. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include -void __init pcibios_fixup_irqs(void) +int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) { - struct pci_dev *dev = NULL; - u8 slot, pin; - - while ((dev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) { - slot = PCI_SLOT(dev->devfn); - dev->irq = 0; + int irq = -1; - switch (slot) { - case 12: - vr41xx_set_irq_trigger(GD82559_1_PIN, + switch (slot) { + case 12: + vr41xx_set_irq_trigger(GD82559_1_PIN, + TRIGGER_LEVEL, + SIGNAL_THROUGH); + vr41xx_set_irq_level(GD82559_1_PIN, LEVEL_LOW); + irq = GD82559_1_IRQ; + break; + case 13: + vr41xx_set_irq_trigger(GD82559_2_PIN, + TRIGGER_LEVEL, + SIGNAL_THROUGH); + vr41xx_set_irq_level(GD82559_2_PIN, LEVEL_LOW); + irq = GD82559_2_IRQ; + break; + case 14: + switch (pin) { + case 1: + vr41xx_set_irq_trigger(UPD720100_INTA_PIN, + TRIGGER_LEVEL, + SIGNAL_THROUGH); + vr41xx_set_irq_level(UPD720100_INTA_PIN, + LEVEL_LOW); + irq = UPD720100_INTA_IRQ; + break; + case 2: + vr41xx_set_irq_trigger(UPD720100_INTB_PIN, TRIGGER_LEVEL, SIGNAL_THROUGH); - vr41xx_set_irq_level(GD82559_1_PIN, LEVEL_LOW); - dev->irq = GD82559_1_IRQ; + vr41xx_set_irq_level(UPD720100_INTB_PIN, + LEVEL_LOW); + irq = UPD720100_INTB_IRQ; break; - case 13: - vr41xx_set_irq_trigger(GD82559_2_PIN, + case 3: + vr41xx_set_irq_trigger(UPD720100_INTC_PIN, TRIGGER_LEVEL, SIGNAL_THROUGH); - vr41xx_set_irq_level(GD82559_2_PIN, LEVEL_LOW); - dev->irq = GD82559_2_IRQ; + vr41xx_set_irq_level(UPD720100_INTC_PIN, + LEVEL_LOW); + irq = UPD720100_INTC_IRQ; break; - case 14: - pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin); - switch (pin) { - case 1: - vr41xx_set_irq_trigger(UPD720100_INTA_PIN, - TRIGGER_LEVEL, - SIGNAL_THROUGH); - vr41xx_set_irq_level(UPD720100_INTA_PIN, - LEVEL_LOW); - dev->irq = UPD720100_INTA_IRQ; - break; - case 2: - vr41xx_set_irq_trigger(UPD720100_INTB_PIN, - TRIGGER_LEVEL, - SIGNAL_THROUGH); - vr41xx_set_irq_level(UPD720100_INTB_PIN, - LEVEL_LOW); - dev->irq = UPD720100_INTB_IRQ; - break; - case 3: - vr41xx_set_irq_trigger(UPD720100_INTC_PIN, - TRIGGER_LEVEL, - SIGNAL_THROUGH); - vr41xx_set_irq_level(UPD720100_INTC_PIN, - LEVEL_LOW); - dev->irq = UPD720100_