summaryrefslogtreecommitdiffstats
path: root/arch/sparc64
Commit message (Collapse)AuthorAgeFilesLines
* [SPARC64]: Fix section-mismatch errors in solaris emul module.David S. Miller2006-09-252-20/+6
| | | | | | | | | | init_socksys() was marked __init but invoked from a non-__init function. Use the correct module_{init,exit}() faciltiies while we're here and eliminate some seriously bogus ifdefs. Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: Update defconfig.David S. Miller2006-09-231-6/+19
| | | | Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: Fix sched_clock() wrapping every ~17 seconds.David S. Miller2006-09-231-1/+1
| | | | | | | | | | | | | | | Unfortunately, sparc64 doesn't have an easy way to do a "64 X 64 --> 128" bit multiply like PowerPC and IA64 do. We were doing a "64 X 64 --> 64" bit multiple which causes overflow very quickly with a 30-bit quotient shift. So use a quotientshift count of 10 instead of 30, just like x86 and ARM do. This also fixes the wrapping of printk timestamp values every ~17 seconds. Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC]: Fix regression in sys_getdomainname()Andy Walker2006-09-181-4/+6
| | | | | | | | This patch corrects the buffer length checking in the sys_getdomainname() implementation for sparc/sparc64. Signed-off-by: Andy Walker <andy@puszczka.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* [PATCH] sparc64 audit syscall classes hookupAl Viro2006-09-124-0/+110
| | | | | | | | | ... that should do it for all targets; the only remaining issues are mips (currently treated as non-biarch) and handling of other OS emulations (OSF/SunOS/Solaris/???). The latter would need to be assigned new AUDIT_ARCH_... ABI numbers anyway... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* [PATCH] IA64,sparc: local DoS with corrupted ELFsKirill Korotaev2006-09-081-16/+20
| | | | | | | | | | | | | | | | | | | | | This prevents cross-region mappings on IA64 and SPARC which could lead to system crash. They were correctly trapped for normal mmap() calls, but not for the kernel internal calls generated by executable loading. This code just moves the architecture-specific cross-region checks into an arch-specific "arch_mmap_check()" macro, and defines that for the architectures that needed it (ia64, sparc and sparc64). Architectures that don't have any special requirements can just ignore the new cross-region check, since the mmap() code will just notice on its own when the macro isn't defined. Signed-off-by: Pavel Emelianov <xemul@openvz.org> Signed-off-by: Kirill Korotaev <dev@openvz.org> Acked-by: David Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> [ Cleaned up to not affect architectures that don't need it ] Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [SPARC64]: Fix X server hangs due to large pages.David S. Miller2006-08-291-0/+2
| | | | | | | | | | | | | | | | | | | | | | | This problem was introduced by changeset 14778d9072e53d2171f66ffd9657daff41acfaed Unlike the hugetlb code paths, the normal fault code is not setup to propagate PTE changes for large page sizes correctly like the ones we make for I/O mappings in io_remap_pfn_range(). It is absolutely necessary to update all sub-ptes of a largepage mapping on a fault. Adding special handling for this would add considerably complexity to tlb_batch_add(). So let's just side-step the issue and forcefully dirty any writable PTEs created by io_remap_pfn_range(). The only other real option would be to disable to large PTE code of io_remap_pfn_range() and we really don't want to do that. Much thanks to Mikael Pettersson for tracking down this problem and testing debug patches. Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: Explicitly print return PC when the kernel fault PC is bogus.David S. Miller2006-07-241-0/+3
| | | | | | | That way we'll have at least some debugging info even if the stack dump explodes. Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: Update defconfig.David S. Miller2006-07-211-4/+4
| | | | Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC]: Fix length parameter verification in sys_getdomainname().David S. Miller2006-07-211-9/+9
| | | | | | Found by scrashme. Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC]: Simplify and correct __cpu_find_by()David S. Miller2006-07-211-3/+0
| | | | | | | | | By using for_each_node_by_type(). Also, correct a spurioud test in check_cpu_node() on sparc64. It is only called with nodes that have device_type "cpu". Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC]: Kill prom_getname, unused and not implemented properly.David S. Miller2006-07-212-86/+0
| | | | | | | The m68k port's sun3 asm/oplib.h had a stray reference too, so I killed that off as well. Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: Fix more of_device layer IRQ bugs, and correct PROMREG_MAX.David S. Miller2006-07-212-4/+42
| | | | | | | | | | | | | | | | | | Sabre and Psycho PCI controllers can have partial interrupt-map properties, meaning that on-board devices don't match up to any entries. Instead, they are fully specified from the beginning and we should pass them directly to the IRQ translator as-is. Also, fill in the necessary translator slots for the "graphics" and "expansion UPA" interrupts on Sabre, Psycho, and SYSIO SBUS. Increase PROMREG_MAX to 24, as seen on SUNW,ffb devices. Finally, prevent accidentally writing past the end of the of_device struct resource[] and irqs[] arrays. Spit out a log message when we ignore some entries because there are too many of them. Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64] Fix PSYCHO PCI controler init.Marc Zyngier2006-07-141-1/+2
| | | | | | | | | pbm->name should be initialized before calling pbm_register_toplevel_resources. Move the call a few lines down to avoid a nice Oops. Signed-off-by: Marc Zyngier <maz@misterjones.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64] psycho: Fix pbm->name handling in pbm_register_toplevel_resources()David S. Miller2006-07-141-3/+0
| | | | | | | | | We shouldn't overwrite it, it's the device node full name already and that's what we want. Based upon a report from Marc Zyngier. Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: Make sure IRQs are disabled properly during early boot.David S. Miller2006-07-142-9/+6
| | | | | | Else we trigger the new irqs_disable() assertion in start_kernel(). Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC]: Fix OF register translations under sub-PCI busses.David S. Miller2006-07-131-146/+162
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is an implicit assumption in the code that ranges will translate to something that can fit in 2 32-bit cells, or a 64-bit value. For certain kinds of things below PCI this isn't necessarily true. Here is what the relevant OF device hierarchy looks like for one of the serial controllers on an Ultra5: Node 0xf005f1e0 ranges: 00000000.00000000.00000000.000001fe.01000000.00000000.01000000 01000000.00000000.00000000.000001fe.02000000.00000000.01000000 02000000.00000000.00000000.000001ff.00000000.00000001.00000000 03000000.00000000.00000000.000001ff.00000000.00000001.00000000 device_type: 'pci' model: 'SUNW,sabre' Node 0xf005f9d4 device_type: 'pci' model: 'SUNW,simba' Node 0xf0060d24 ranges: 00000010.00000000 82010810.00000000.f0000000 01000000 00000014.00000000 82010814.00000000.f1000000 00800000 name: 'ebus' Node 0xf0062dac reg: 00000014.003083f8.00000008 --> 0x1ff.f13083f8 device_type: 'serial' name: 'su' So the correct translation here is: 1) Match "su" register to second ranges entry of 'ebus', which translates into a PCI triplet "82010814.00000000.f1000000" of size 00800000, which gives us "82010814.00000000.f13083f8". 2) Pass-through "SUNW,simba" since it lacks ranges property 3) Match "82010814.00000000.f13083f8" to third ranges property of PCI controller node 'SUNW,sabre', and we arrive at the final physical MMIO address of "0x1fff13083f8". Due to the 2-cell assumption, we couldn't translate to a PCI 3-cell value, and we couldn't perform a pass-thru on it either. It was easiest to just stop splitting the ranges application operation between two methods, ->map and ->translate, and just let ->map do all the work. That way it would work purely on 32-bit cell arrays instead of having to "return" some value like a u64. It's still not %100 correct because the out-of-range check is still done using the 64 least significant bits of the range and address. But it does work for all the cases I've thrown at it so far. Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: Refine Sabre wsync logic.David S. Miller2006-07-131-8/+27
| | | | | | | | | | | | | It is only needed when there is a PCI-PCI bridge sitting between the device and the PCI host controller which is not a Simba APB bridge. Add logic to handle two special cases: 1) device behind EBUS, which sits on PCI 2) PCI controller interrupts Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: Fix 2 bugs in sabre_irq_build()David S. Miller2006-07-131-4/+26
| | | | | | | | | | | When installing the IRQ pre-handler, we were not setting up the second argument correctly. It should be a pointer to the sabre_irq_data, not the config space PIO address. Furthermore, we only need this pre-handler installed if the device sits behind a PCI bridge that is not Sabre or Simba/APB. Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: Update defconfig.David S. Miller2006-07-131-8/+31
| | | | Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: of_device_register() error checking fixAndrew Morton2006-07-131-2/+4
| | | | | | | | | | device_create_file() can fail. This causes the sparc64 compile to fail when my fanatical __must_check patch is applied, due to -Werror. [ Added necessary identical fix for sparc32. -DaveM] Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* [PATCH] disallow modular binfmt_elf32Christoph Hellwig2006-07-101-1/+1
| | | | | | | | | | | | | | | | | | | | Currently most architectures either always build binfmt_elf32 in the kernel image or make it a boolean option. Only sparc64 and s390 allow to build it modularly. This patch turns the option into a boolean aswell because elf requires various symbols that shouldn't be available to modules. The most urgent one is tasklist_lock whos export this patch series kills, but there are others like force_sgi aswell. Note that sparc doesn't allow a modular 32bit a.out handler either, and that would be the more useful case as only few people want 32bit sunos compatibility and 99.9% of all sparc64 users need 32bit linux native elf support. Signed-off-by: Christoph Hellwig <hch@lst.de> Acked-by: "David S. Miller" <davem@davemloft.net> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] tty: Remove include of screen_info.h from tty.hJon Smirl2006-07-101-1/+1
| | | | | | | | | | | | | | | | screen_info.h doesn't have anything to do with the tty layer and shouldn't be included by tty.h. This patches removes the include and modifies all users to directly include screen_info.h. struct screen_info is mainly used to communicate with the console drivers in drivers/video/console. Note that this patch touches every arch and I have no way of testing it. If there is a mistake the worst thing that will happen is a compile error. [akpm@osdl.org: fix arm build] [akpm@osdl.org: fix alpha build] Signed-off-by: Jon Smirl <jonsmir@gmail.com> Signed-off-by: Antonino Daplas <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [SPARC64]: Fix stack overflow checking in modular non-SMP kernels.Mikael Pettersson2006-07-051-5/+5
| | | | | | | | | | | | | | | The sparc64 kernel's EXPORT_SYMBOL(_mcount) is inside an #ifdef CONFIG_SMP. This breaks modules in non-SMP kernels built with stack overflow checking (CONFIG_STACK_DEBUG=y), as modules_install reports: WARNING: /lib/modules/2.6.17/kernel/drivers/ide/ide-cd.ko needs unknown symbol _mcount Trivially fixed by moving EXPORT_SYMBOL(_mcount) outside of the #ifdef CONFIG_SMP. Signed-off-by: Mikael Pettersson <mikpe@it.uu.se> Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: Fix sparc64 build errors when CONFIG_PCI=n.Randy Dunlap2006-07-052-1/+6
| | | | | Signed-off-by: Randy Dunlap <rdunlap@xenotime.net> Signed-off-by: David S. Miller <davem@davemloft.net>
* [PATCH] irq-flags: SPARC64: Use the new IRQF_ constantsThomas Gleixner2006-07-025-21/+21
| | | | | | | | | | | Use the new IRQF_ constants and remove the SA_INTERRUPT define Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@elte.hu> Cc: "David S. Miller" <davem@davemloft.net> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6Linus Torvalds2006-06-303-97/+26
|\ | | | | | | | | | | | | | | * master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6: [SPARC64]: Kill sun4v virtual device layer. [SERIAL] sunhv: Convert to of_driver layer. [SPARC64]: Mask out top 8-bits in physical address when building resources. [SERIAL] sunsu: Missing return statement in su_probe().
| * [SPARC64]: Kill sun4v virtual device layer.David S. Miller2006-06-302-97/+23
| | | | | | | | | | | | | | Replace with a simple IRQ translater in the PROM device tree builder. Signed-off-by: David S. Miller <davem@davemloft.net>
| * [SPARC64]: Mask out top 8-bits in physical address when building resources.David S. Miller2006-06-301-0/+3
| | | | | | | | | | | | | | These top 8-bits are supposed to be ignored in the ranges and top-level reg properties on this platform. Signed-off-by: David S. Miller <davem@davemloft.net>
* | Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivialLinus Torvalds2006-06-3033-34/+0
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial: Remove obsolete #include <linux/config.h> remove obsolete swsusp_encrypt arch/arm26/Kconfig typos Documentation/IPMI typos Kconfig: Typos in net/sched/Kconfig v9fs: do not include linux/version.h Documentation/DocBook/mtdnand.tmpl: typo fixes typo fixes: specfic -> specific typo fixes in Documentation/networking/pktgen.txt typo fixes: occuring -> occurring typo fixes: infomation -> information typo fixes: disadvantadge -> disadvantage typo fixes: aquire -> acquire typo fixes: mecanism -> mechanism typo fixes: bandwith -> bandwidth fix a typo in the RTC_CLASS help text smb is no longer maintained Manually merged trivial conflict in arch/um/kernel/vmlinux.lds.S
| * Remove obsolete #include <linux/config.h>Jörn Engel2006-06-3033-34/+0
| | | | | | | | | | Signed-off-by: Jörn Engel <joern@wohnheim.fh-wedel.de> Signed-off-by: Adrian Bunk <bunk@stusta.de>
* | [PATCH] zoned vm counters: conversion of nr_pagecache to per zone counterChristoph Lameter2006-06-301-1/+1
|/ | | | | | | | | | | | | | | | | | Currently a single atomic variable is used to establish the size of the page cache in the whole machine. The zoned VM counters have the same method of implementation as the nr_pagecache code but also allow the determination of the pagecache size per zone. Remove the special implementation for nr_pagecache and make it a zoned counter named NR_FILE_PAGES. Updates of the page cache counters are always performed with interrupts off. We can therefore use the __ variant here. Signed-off-by: Christoph Lameter <clameter@sgi.com> Cc: Trond Myklebust <trond.myklebust@fys.uio.no> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [SPARC64]: Print symbol name of regs->tpc on kernel unaligned accesses.David S. Miller2006-06-291-1/+3
| | | | | | This makes things easier to track down, especially in modules. Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: time: Kill unnecessary asm/{fhc,sbus,ebus,isa}.h includes.David S. Miller2006-06-291-5/+2
| | | | Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64] power: Convert to of_driver.David S. Miller2006-06-291-39/+18
| | | | Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64] auxio: Remove asm/{sbus,ebus}.h includes.David S. Miller2006-06-291-3/+2
| | | | Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: of_device layer IRQ resolutionDavid S. Miller2006-06-2910-1048/+1091
| | | | | | | | | | | | | | | | | | Do IRQ determination generically by parsing the PROM properties, and using IRQ controller drivers for final resolution. One immediate positive effect is that all of the IRQ frobbing in the EBUS, ISA, and PCI controller layers has been eliminated. We just look up the of_device and use the properly computed value. The PCI controller irq_build() routines are gone and no longer used. Unfortunately sbus_build_irq() has to remain as there is a direct reference to this in the sunzilog driver. That can be killed off once the sparc32 side of this is written and the sunzilog driver is transformed into an "of" bus driver. Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: Fix typo in clock_probe().David S. Miller2006-06-291-2/+2
| | | | Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64] clock: Only probe central fhc clock on Enterprise boxes.David S. Miller2006-06-291-0/+7
| | | | Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64] power: Do not pass SA_SHIRQ to request_irq().David S. Miller2006-06-291-1/+1
| | | | | | | | | | This needs to be a unique interrupt source because we do not have a register or similar to poll to make sure the IRQ is really for us. We do not have any dev_id to pass in anyways, and the generic IRQ layer is now enforcing that when SA_SHIRQ is specified, dev_id must be non-NULL. Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: Fix typo in isa_dev_get_irq_using_imap().David S. Miller2006-06-291-1/+1
| | | | Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: Let irq_install_pre_handler() get called multiple times.David S. Miller2006-06-291-0/+4
| | | | Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC]: Convert clock drivers to of_driver framework.David S. Miller2006-06-293-196/+54
| | | | Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64] auxio: Convert to pure of_device driver.David S. Miller2006-06-291-49/+24
| | | | Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC]: Add of_io{remap,unmap}().David S. Miller2006-06-291-0/+17
| | | | Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC]: Beginnings of generic of_device framework.David S. Miller2006-06-291-2/+488
| | | | | | | | | | The idea is to fully construct the device register and interrupt values into these of_device objects, and convert all of SBUS, EBUS, ISA drivers to use this new stuff. Much ideas and code taken from Ben H.'s powerpc work. Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC]: Add of_n_{addr,size}_cells().David S. Miller2006-06-291-0/+30
| | | | Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: Kill starfire_cookie from SBUS/PCI.David S. Miller2006-06-293-9/+3
| | | | | | | | | Totally unused. We need to traverse the list of global IRQ translaters, so storing it in the per-bus structures was useless. Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/devfs-2.6Linus Torvalds2006-06-291-4/+0
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/devfs-2.6: (22 commits) [PATCH] devfs: Remove it from the feature_removal.txt file [PATCH] devfs: Last little devfs cleanups throughout the kernel tree. [PATCH] devfs: Rename TTY_DRIVER_NO_DEVFS to TTY_DRIVER_DYNAMIC_DEV [PATCH] devfs: Remove the tty_driver devfs_name field as it's no longer needed [PATCH] devfs: Remove the line_driver devfs_name field as it's no longer needed [PATCH] devfs: Remove the videodevice devfs_name field as it's no longer needed [PATCH] devfs: Remove the gendisk devfs_name field as it's no longer needed [PATCH] devfs: Remove the miscdevice devfs_name field as it's no longer needed [PATCH] devfs: Remove the devfs_fs_kernel.h file from the tree [PATCH] devfs: Remove devfs_remove() function from the kernel tree [PATCH] devfs: Remove devfs_mk_cdev() function from the kernel tree [PATCH] devfs: Remove devfs_mk_bdev() function from the kernel tree [PATCH] devfs: Remove devfs_mk_symlink() function from the kernel tree [PATCH] devfs: Remove devfs_mk_dir() function from the kernel tree [PATCH] devfs: Remove devfs_*_tape() functions from the kernel tree [PATCH] devfs: Remove devfs support from the sound subsystem [PATCH] devfs: Remove devfs support from the ide subsystem. [PATCH] devfs: Remove devfs support from the serial subsystem [PATCH] devfs: Remove devfs from the init code [PATCH] devfs: Remove devfs from the partition code ...
| * [PATCH] devfs: Remove the devfs_fs_kernel.h file from the treeGreg Kroah-Hartman2006-06-261-1/+0
| | | | | | | | | | | | Also fixes up all files that #include it. Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>