aboutsummaryrefslogtreecommitdiffstats
path: root/arch
Commit message (Collapse)AuthorAge
* [PATCH] arch/i386/kernel/smpboot.c: remove unneeded ifdefAndrew Morton2006-12-13
| | | | | | | #ifdef CONFIG_SMP in a file which isn't compiled in non-SMP kernels. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Merge branch 'release' of ↵Linus Torvalds2006-12-12
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6: [IA64] kprobe clears qp bits for special instructions [IA64] enable trap code on slot 1 [IA64] Take defensive stance on ia64_pal_get_brand_info() [IA64] fix possible XPC deadlock when disconnecting [IA64] - Reduce overhead of FP exception logging messages [IA64] fix arch/ia64/mm/contig.c:235: warning: unused variable `nid' [IA64] s/termios/ktermios/ in simserial.c [IA64] kexec/kdump: tidy up declaration of relocate_new_kernel_t [IA64] Kexec/Kdump: honour non-zero crashkernel offset. [IA64] CONFIG_KEXEC/CONFIG_CRASH_DUMP permutations [IA64] Do not call SN_SAL_SET_CPU_NUMBER twice on cpu 0
| * [IA64] kprobe clears qp bits for special instructionsbibo,mao2006-12-12
| | | | | | | | | | | | | | | | | | | | | | | | On IA64 there exists some special instructions which always need to be executed regradless of qp bits, such as com.crel.unc, tbit.trel.unc etc. This patch clears qp bits when inserting kprobe trap code and disables probepoint on slot 1 for these special instructions. Signed-off-by: bibo,mao <bibo.mao@intel.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
| * [IA64] enable trap code on slot 1Tony Luck2006-12-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Because slot 1 of one instr bundle crosses border of two consecutive 8-bytes, kprobe on slot 1 is disabled. This patch enables kprobe on slot1, it only replaces higher 8-bytes of the instruction bundle and changes the exception code to ignore the low 12 bits of the break number (which is across the border in the lower 8-bytes of the bundle). For those instructions which must execute regardless qp bits, kprobe on slot 1 is still disabled. Signed-off-by: bibo,mao <bibo.mao@intel.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
| * [IA64] Take defensive stance on ia64_pal_get_brand_info()Tony Luck2006-12-12
| | | | | | | | | | | | | | | | | | Stephane thought he saw a problem here (but was just confused by the return value from ia64_pal_get_brand_info()). But we should be more defensive here in case an prototype PAL for a future processor doesn't implement this PAL call. Signed-off-by: Tony Luck <tony.luck@intel.com>
| * [IA64] fix possible XPC deadlock when disconnectingDean Nelson2006-12-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch eliminates a potential deadlock that is possible when XPC disconnects a channel to a partition that has gone down. This deadlock will occur if at least one of the kthreads created by XPC for the purpose of making callouts to the channel's registerer is detained in the registerer and will not be returning back to XPC until some registerer request occurs on the now downed partition. The potential for a deadlock is removed by ensuring that there always is a kthread available to make the channel disconnecting callout to the registerer. Signed-off-by: Dean Nelson <dcn@sgi.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
| * [IA64] - Reduce overhead of FP exception logging messagesJack Steiner2006-12-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Improve the scalability of the fpswa code that rate-limits logging of messages. There are 2 distinctly different problems in this code. 1) If prctl is used to disable logging, last_time is never updated. The result is that fpu_swa_count is zeroed out on EVERY fp fault. This causes a very very hot cache line. The fix reduces the wallclock time of a 1024p FP exception test from 28734 sec to 19 sec!!! 2) On VERY large systems, excessive messages are logged because multiple cpus can each reset or increment fpu_swa_count at about the same time. The result is that hundreds of messages are logged each second. The fixes reduces the logging rate to ~1 per second. Signed-off-by: Jack Steiner <steiner@sgi.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
| * [IA64] fix arch/ia64/mm/contig.c:235: warning: unused variable `nid'Tony Luck2006-12-12
| | | | | | | | | | | | | | | | | | | | | | This warning only shows up with CONFIG_VIRTUAL_MEM_MAP=y and CONFIG_FLATMEM=y. There is only one caller left for register_active_ranges() from the contig.c code ... so it doesn't need to pick up the node number, the node number is always zero. Signed-off-by: Tony Luck <tony.luck@intel.com>
| * [IA64] s/termios/ktermios/ in simserial.cTony Luck2006-12-12
| | | | | | | | | | | | This got missed in 606d099cdd1080bbb50ea50dc52d98252f8f10a1 Signed-off-by: Tony Luck <tony.luck@intel.com>
| * [IA64] kexec/kdump: tidy up declaration of relocate_new_kernel_tHorms2006-12-12
| | | | | | | | | | | | | | | | | | * Make NORET_TYPE and ATTRIB_NORET in line with the declaration for other architectures * Add parameter names Signed-Off-By: Simon Horman <horms@verge.net.au> Signed-off-by: Tony Luck <tony.luck@intel.com>
| * [IA64] Kexec/Kdump: honour non-zero crashkernel offset.Horms2006-12-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There seems to be a value in both allowing the kernel to determine the base offset of the crashkernel automatically and allowing users's to sepcify it. The old behaviour on ia64, which is still the current behaviour on most architectures is for the user to always specify the address. Recently ia64 was changed so that it is always automatically determined. With this patch the kernel automatically determines the offset if the supplied value is 0, otherwise it uses the value provided. This should probably be backed by a documentation change. Signed-Off-By: Simon Horman <horms@verge.net.au> Signed-off-by: Tony Luck <tony.luck@intel.com>
| * [IA64] CONFIG_KEXEC/CONFIG_CRASH_DUMP permutationsHorms2006-12-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Actually, on reflection I think that there is a good case for keeping the options separate. I am thinking particularly of people who want a very small crashdump kernel and thus don't want to compile in kexec. The patch below should fix things up so that all valid combinations of KEXEC, CRASH_DUMP and VMCORE compile cleanly - VMCORE depends on CRASH_DUMP which is why I said valid combinations. In a nutshell it just untangles unrelated code and switches around a few defines. Please note that it creats a new file, arch/ia64/kernel/crash_dump.c This is in keeping with the i386 implementation. Signed-off-by: Simon Horman <horms@verge.net.au> Signed-off-by: Tony Luck <tony.luck@intel.com>
| * [IA64] Do not call SN_SAL_SET_CPU_NUMBER twice on cpu 0Jay Lan2006-12-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is an SN specific patch. Architectually, cpu_init is always called twice on cpu 0 and thus resulted in two SN_SAL_SET_CPU_NUMBER calls. This was harmless in production kernel; however, it can cause problem on booting up a crashdump kernel at Altix. Here is the patch that detects the second sn_cpu_init call and skips the second call to SN_SAL_SET_CPU_NUMBER. Signed-Off-By: Jay Lan <jlan@sgi.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
* | Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivialLinus Torvalds2006-12-12
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial: Fix inotify maintainers entry Fix typo in new debug options. Jon needs a new shift key. fs: Convert kmalloc() + memset() to kzalloc() in fs/. configfs.h: Remove dead macro definitions. kconfig: Standardize "depends" -> "depends on" in Kconfig files e100: replace kmalloc with kcalloc um: replace kmalloc+memset with kzalloc fix typo in net/ipv4/ip_fragment.c include/linux/compiler.h: reject gcc 3 < gcc 3.2 Kconfig: fix spelling error in config KALLSYMS help text Remove duplicate "have to" in comment Fix small typo in drivers/serial/icom.c Use consistent casing in help message EXT{2,3,4}_FS: remove outdated part of the help text
| * | kconfig: Standardize "depends" -> "depends on" in Kconfig filesRobert P. J. Day2006-12-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | Standardize the miniscule percentage of occurrences of "depends" in Kconfig files to "depends on", and update kconfig-language.txt to reflect that. Signed-off-by: Robert P. J. Day <rpjday@mindspring.com> Signed-off-by: Adrian Bunk <bunk@stusta.de>
| * | um: replace kmalloc+memset with kzallocYan Burman2006-12-12
| | | | | | | | | | | | | | | | | | | | | Replace kmalloc+memset with kzalloc Signed-off-by: Yan Burman <burman.yan@gmail.com> Signed-off-by: Adrian Bunk <bunk@stusta.de>
* | | Merge ../linusDave Jones2006-12-12
|\ \ \ | | | | | | | | | | | | | | | | | | | | Conflicts: drivers/cpufreq/cpufreq.c
| * \ \ Merge branch 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6Linus Torvalds2006-12-12
| |\ \ \ | | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6: i2c: Fix OMAP clock prescaler to match the comment i2c: Refactor a kfree in i2c-dev i2c: Fix return value check in i2c-dev i2c: Enable PEC on more i2c-i801 devices i2c: Discard the i2c algo del_bus wrappers i2c: New ARM Versatile/Realview bus driver i2c: fix broken ds1337 initialization i2c: i2c-i801 documentation update i2c: Use the __ATTR macro where possible i2c: Whitespace cleanups i2c: Use put_user instead of copy_to_user where possible i2c: New Atmel AT91 bus driver i2c: Add support for nested i2c bus locking i2c: Cleanups to the i2c-nforce2 bus driver i2c: Add request/release_mem_region to i2c-ibm_iic bus driver i2c: New Philips PNX bus driver i2c: Delete the broken i2c-ite bus driver i2c: Update the list of driver IDs i2c: Fix documentation typos
| | * | i2c: New ARM Versatile/Realview bus driverRussell King2006-12-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for the I2C bus found on the ARM Versatile and Realview platforms. The I2C bus has a RTC and optionally some EEPROMs attached. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * | i2c: New Philips PNX bus driverVitaly Wool2006-12-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New I2C bus driver for Philips ARM boards (Philips IP3204 I2C IP block). This I2C controller can be found on (at least) PNX010x, PNX52xx and PNX4008 Philips boards. Signed-off-by: Vitaly Wool <vitalywool@gmail.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * | | Merge master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6Linus Torvalds2006-12-12
| |\ \ \ | | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6: (29 commits) sh: Fixup SH-2 BUG() trap handling. sh: Use early_param() for earlyprintk parsing. sh: Fix .empty_zero_page alignment for PAGE_SIZE > 4096. sh: Fixup .data.page_aligned. sh: Hook up SH7722 scif ipr interrupts. sh: Fixup sh_bios() trap handling. sh: SH-MobileR SH7722 CPU support. sh: Fixup dma_cache_sync() callers. sh: Convert remaining remap_area_pages() users to ioremap_page_range(). sh: Fixup kernel_execve() for syscall cleanups. sh: Fix get_wchan(). sh: BUG() handling through trapa vector. rtc: rtc-sh: alarm support. rtc: rtc-sh: fix rtc for out-by-one for the month. sh: Kill off unused SE7619 I/O ops. serial: sh-sci: Shut up various sci_rxd_in() gcc4 warnings. sh: Split out atomic ops logically. sh: Fix Solution Engine 7619 build. sh: Trivial build fixes for SH-2 support. sh: IPR IRQ updates for SH7619/SH7206. ...
| | * | sh: Fixup SH-2 BUG() trap handling.Yoshinori Sato2006-12-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds in support for the BUG() trap on SH-2. Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * | sh: Use early_param() for earlyprintk parsing.Paul Mundt2006-12-11
| | | | | | | | | | | | | | | | Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * | sh: Fix .empty_zero_page alignment for PAGE_SIZE > 4096.Paul Mundt2006-12-11
| | | | | | | | | | | | | | | | Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * | sh: Fixup .data.page_aligned.Paul Mundt2006-12-11
| | | | | | | | | | | | | | | | | | | | | | | | This had a bogus .data.idt reference, fix it up.. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * | sh: Hook up SH7722 scif ipr interrupts.Paul Mundt2006-12-11
| | | | | | | | | | | | | | | | | | | | | | | | Add the SCIF IRQs to the IPR table for SH7722. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * | sh: Fixup sh_bios() trap handling.Paul Mundt2006-12-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was inadvertently broken when the entry.S code split up, restore the missing branch and get subsequent traps working under debug again. This manifested itself as a lockup when attempting to reload the VBR base. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * | sh: SH-MobileR SH7722 CPU support.Paul Mundt2006-12-11
| | | | | | | | | | | | | | | | | | | | | | | | This adds CPU support for the SH7722. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * | sh: Convert remaining remap_area_pages() users to ioremap_page_range().Paul Mundt2006-12-11
| | | | | | | | | | | | | | | | | | | | | | | | A couple of these were missed. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * | sh: Fixup kernel_execve() for syscall cleanups.Paul Mundt2006-12-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SH-2 and SH-2A need to use a different syscall base for the trapa vector than the other parts, so fixup the logic in the kernel_execve() case. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * | sh: Fix get_wchan().Paul Mundt2006-12-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some time ago the schedule frame size changed and we failed to reflect this in get_wchan() at the time. This first popped up as a problem on SH7751R where schedule_frame ended up being unaligned and generating an unaligned trap. This fixes it up again.. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * | sh: BUG() handling through trapa vector.Paul Mundt2006-12-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we haven't been doing anything with verbose BUG() reporting, and we've been relying on the oops path for handling BUG()'s, which is rather sub-optimal. This switches BUG handling to use a fixed trapa vector (#0x3e) where we construct a small bug frame post trapa instruction to get the context right. This also makes it trivial to wire up a DIE_BUG for the atomic die chain, which we couldn't really do before. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * | sh: Kill off unused SE7619 I/O ops.Yoshinori Sato2006-12-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This can use the generic routines, so kill off the board-specific ones. Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * | sh: Fix Solution Engine 7619 build.Yoshinori Sato2006-12-11
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * | sh: Trivial build fixes for SH-2 support.Yoshinori Sato2006-12-11
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * | sh: IPR IRQ updates for SH7619/SH7206.Yoshinori Sato2006-12-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This updates the SH7619 and SH7206 code for the IPR IRQ changes. Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * | sh: gcc4 symbol export fixups.Stuart Menefy2006-12-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gcc 4 for sh changes the names of some compiler intrinsic functions and adds some additional ones. This patch adds the new ones, and fixes up various module symbol resolution issues. Signed-off-by: Stuart Menefy <stuart.menefy@st.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * | sh: landisk board build fixes.Paul Mundt2006-12-11
| | | | | | | | | | | | | | | | | | | | | | | | Get the landisk board building again.. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * | sh: register rtc resources for sh775x.Jamie Lenehan2006-12-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Register the RTC resources for the sh775x subtype so that the new generic RTC support in drivers/rtc/rtc-sh.c will work. Signed-off-by: Jamie Lenehan <lenehan@twibble.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * | sh: SH-2 defconfig updates.Yoshinori Sato2006-12-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a new defconfig for SE7619 and updates SE7206. Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * | sh: Add uImage and S-rec generation support.Paul Mundt2006-12-11
| | | | | | | | | | | | | | | | | | | | | | | | Add a couple of new targets, both for uImage and S-rec generation. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * | sh: push-switch fixups for work_struct API damage.Paul Mundt2006-12-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | INIT_WORK() dropped the data arg, so now we have to stash an extra pointer and backpedal instead. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * | | Merge branch 'for-linus' of git://www.atmel.no/~hskinnemoen/linux/kernel/avr32Linus Torvalds2006-12-11
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'for-linus' of git://www.atmel.no/~hskinnemoen/linux/kernel/avr32: [AVR32] Add missing #include <linux/param.h> to delay.c [AVR32] Pass dev parameter to dma_cache_sync() [AVR32] Implement intc_get_pending() [AVR32] Don't include <asm/delay.h> [AVR32] Put the chip in "stop" mode when halting the system [AVR32] Set flow handler for external interrupts [AVR32] Remove unused file [AVR32] Remove mii_phy_addr and eth_addr from eth_platform_data [AVR32] Move ethernet tag parsing to board-specific code [AVR32] Add macb1 platform_device [AVR32] Portmux API update
| | * | | [AVR32] Add missing #include <linux/param.h> to delay.cHaavard Skinnemoen2006-12-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | __const_udelay() needs HZ, which is defined in <asm/param.h>. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
| | * | | [AVR32] Implement intc_get_pending()Haavard Skinnemoen2006-12-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | intc_get_pending() returns a bitmask with pending interrupts in a interrupt controller group (irq). This is used by the upcoming oprofile implementation for avr32 and may also be useful for chained interrupt controller drivers. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
| | * | | [AVR32] Don't include <asm/delay.h>Haavard Skinnemoen2006-12-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Include <linux/delay.h> instead of <asm/delay.h> from a few places. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
| | * | | [AVR32] Put the chip in "stop" mode when halting the systemHaavard Skinnemoen2006-12-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make machine_halt() execute a sleep instruction to put the chip in "stop" mode when the system is halted. This switches off all clocks except the 32 kHz oscillator, which is needed for the RTC to keep ticking. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
| | * | | [AVR32] Set flow handler for external interruptsHaavard Skinnemoen2006-12-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make sure that the flow handler for external interrupts is updated whenever they type is changed. Also make sure that the defaults correspond with how the interrupt controller is configured. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
| | * | | [AVR32] Remove unused fileHaavard Skinnemoen2006-12-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove arch/avr32/mach-at32ap/sm.c, which is not referenced by any Makefile. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
| | * | | [AVR32] Remove mii_phy_addr and eth_addr from eth_platform_dataHaavard Skinnemoen2006-12-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The macb driver will probe for the PHY chip and read the mac address from the MACB registers, so we don't need them in eth_platform_data anymore. Since u-boot doesn't currently initialize the MACB registers with the mac addresses, the tag parsing code is kept but instead of sticking the information into eth_platform_data, it uses it to initialize the MACB registers (in case the boot loader didn't do it.) This code should be unnecessary at some point in the future. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>