From b409d7d2909086efad3149837c2063046051ff15 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Mon, 12 Apr 2010 18:36:34 -0700 Subject: [PATCH] --- yaml --- r: 189799 b: refs/heads/master c: 50fc88cb03786a79e9982d9d8dfb3fd225de9099 h: refs/heads/master i: 189797: 183ff7cc33340d509e1be5044e870de3a1b45672 189795: 8c1f7ade60dc62bba0e4fdbceb528c32ddabbaf3 189791: 03e48d388bffed9df65647b916d00b98832ccfe0 v: v3 --- [refs] | 2 +- trunk/Documentation/DocBook/tracepoint.tmpl | 13 + trunk/Documentation/block/biodoc.txt | 4 +- .../fb/{imacfb.txt => efifb.txt} | 14 +- trunk/Documentation/sound/alsa/HD-Audio.txt | 16 +- trunk/MAINTAINERS | 13 +- trunk/arch/arm/mach-davinci/dm365.c | 1 - trunk/arch/arm/mach-davinci/dma.c | 3 +- .../arm/mach-davinci/include/mach/da8xx.h | 8 +- trunk/arch/arm/mach-davinci/time.c | 6 +- trunk/arch/frv/include/asm/segment.h | 6 +- trunk/arch/frv/include/asm/uaccess.h | 2 - trunk/arch/microblaze/include/asm/futex.h | 2 +- trunk/arch/microblaze/include/asm/io.h | 5 + trunk/arch/microblaze/kernel/ftrace.c | 12 +- trunk/arch/microblaze/kernel/ptrace.c | 1 - .../mips/alchemy/devboards/db1200/setup.c | 40 -- trunk/arch/mips/ar7/platform.c | 3 +- .../arch/mips/bcm63xx/boards/board_bcm963xx.c | 231 +++--- trunk/arch/mips/bcm63xx/cpu.c | 5 + trunk/arch/mips/bcm63xx/dev-uart.c | 66 +- trunk/arch/mips/bcm63xx/gpio.c | 4 +- trunk/arch/mips/cavium-octeon/setup.c | 82 +-- trunk/arch/mips/cavium-octeon/smp.c | 8 - trunk/arch/mips/configs/bigsur_defconfig | 680 +++++++++++++----- trunk/arch/mips/include/asm/abi.h | 6 +- trunk/arch/mips/include/asm/elf.h | 5 + trunk/arch/mips/include/asm/fpu_emulator.h | 6 +- .../include/asm/mach-bcm63xx/bcm63xx_cpu.h | 15 + .../asm/mach-bcm63xx/bcm63xx_dev_uart.h | 6 + .../include/asm/mach-bcm63xx/bcm63xx_gpio.h | 4 + .../include/asm/mach-bcm63xx/board_bcm963xx.h | 2 + .../asm/mach-bcm63xx/cpu-feature-overrides.h | 2 +- trunk/arch/mips/include/asm/mach-sibyte/war.h | 6 +- trunk/arch/mips/include/asm/mmu.h | 5 +- trunk/arch/mips/include/asm/mmu_context.h | 2 +- trunk/arch/mips/include/asm/page.h | 6 +- trunk/arch/mips/include/asm/processor.h | 11 +- trunk/arch/mips/include/asm/stackframe.h | 19 + trunk/arch/mips/include/asm/uasm.h | 2 + trunk/arch/mips/include/asm/vdso.h | 29 + trunk/arch/mips/kernel/Makefile | 2 +- .../mips/kernel/cpufreq/loongson2_clock.c | 4 + trunk/arch/mips/kernel/process.c | 7 +- trunk/arch/mips/kernel/signal-common.h | 5 - trunk/arch/mips/kernel/signal.c | 86 +-- trunk/arch/mips/kernel/signal32.c | 55 +- trunk/arch/mips/kernel/signal_n32.c | 26 +- trunk/arch/mips/kernel/smtc.c | 2 +- trunk/arch/mips/kernel/syscall.c | 6 +- trunk/arch/mips/kernel/traps.c | 2 +- trunk/arch/mips/kernel/vdso.c | 112 +++ trunk/arch/mips/lib/delay.c | 4 +- trunk/arch/mips/lib/libgcc.h | 3 +- trunk/arch/mips/mm/cache.c | 2 +- trunk/arch/mips/mm/tlbex.c | 22 +- trunk/arch/mips/mm/uasm.c | 23 +- trunk/arch/mips/pci/ops-loongson2.c | 10 + trunk/arch/mips/sibyte/sb1250/setup.c | 15 + trunk/arch/s390/defconfig | 40 +- trunk/arch/s390/include/asm/pgtable.h | 6 +- trunk/arch/s390/kernel/early.c | 3 +- trunk/arch/s390/kernel/entry.S | 8 +- trunk/arch/s390/kernel/entry64.S | 8 +- trunk/arch/s390/kernel/topology.c | 3 +- trunk/arch/s390/mm/vmem.c | 11 +- trunk/arch/x86/Kconfig | 4 +- trunk/arch/x86/kernel/apic/apic.c | 2 + trunk/arch/x86/kernel/cpu/perf_event_intel.c | 1 + trunk/arch/x86/kernel/e820.c | 24 +- trunk/arch/x86/kernel/hpet.c | 9 +- trunk/arch/x86/kernel/mpparse.c | 4 +- trunk/arch/x86/kernel/setup.c | 14 +- trunk/arch/x86/power/hibernate_asm_32.S | 15 +- trunk/block/Kconfig | 3 +- trunk/block/blk-settings.c | 11 +- trunk/block/blk-sysfs.c | 25 + trunk/block/cfq-iosched.c | 41 +- trunk/block/elevator.c | 2 +- trunk/drivers/acpi/acpica/evgpe.c | 19 +- trunk/drivers/acpi/acpica/exprep.c | 12 + trunk/drivers/acpi/battery.c | 6 +- trunk/drivers/acpi/dock.c | 7 +- trunk/drivers/acpi/ec.c | 35 +- trunk/drivers/acpi/numa.c | 6 +- trunk/drivers/acpi/osl.c | 23 +- trunk/drivers/acpi/scan.c | 12 +- trunk/drivers/acpi/video.c | 67 +- trunk/drivers/base/memory.c | 2 +- trunk/drivers/base/node.c | 2 +- trunk/drivers/block/DAC960.c | 1 - trunk/drivers/block/cciss.c | 1 + trunk/drivers/block/drbd/drbd_actlog.c | 19 +- trunk/drivers/block/drbd/drbd_bitmap.c | 10 +- trunk/drivers/block/drbd/drbd_int.h | 12 +- trunk/drivers/block/drbd/drbd_main.c | 20 +- trunk/drivers/block/drbd/drbd_nl.c | 44 +- trunk/drivers/block/drbd/drbd_receiver.c | 34 +- trunk/drivers/block/drbd/drbd_worker.c | 18 +- trunk/drivers/block/loop.c | 2 + trunk/drivers/block/paride/pcd.c | 4 +- trunk/drivers/block/paride/pf.c | 4 +- trunk/drivers/block/paride/pt.c | 4 +- trunk/drivers/block/virtio_blk.c | 5 +- trunk/drivers/char/amiserial.c | 4 +- trunk/drivers/char/hvc_console.c | 4 - trunk/drivers/char/mem.c | 10 +- trunk/drivers/char/mxser.c | 6 +- trunk/drivers/char/raw.c | 1 + trunk/drivers/char/virtio_console.c | 65 +- trunk/drivers/firmware/iscsi_ibft_find.c | 11 +- trunk/drivers/gpio/timbgpio.c | 12 +- trunk/drivers/gpu/drm/drm_edid.c | 2 + trunk/drivers/gpu/drm/nouveau/Makefile | 2 +- trunk/drivers/gpu/drm/nouveau/nouveau_bios.c | 127 ++-- trunk/drivers/gpu/drm/nouveau/nouveau_bios.h | 4 +- trunk/drivers/gpu/drm/nouveau/nouveau_bo.c | 67 +- .../drivers/gpu/drm/nouveau/nouveau_channel.c | 2 - .../drivers/gpu/drm/nouveau/nouveau_debugfs.c | 5 +- trunk/drivers/gpu/drm/nouveau/nouveau_dp.c | 8 +- trunk/drivers/gpu/drm/nouveau/nouveau_drv.h | 40 +- .../drivers/gpu/drm/nouveau/nouveau_encoder.h | 1 + trunk/drivers/gpu/drm/nouveau/nouveau_gem.c | 55 +- trunk/drivers/gpu/drm/nouveau/nouveau_irq.c | 1 + trunk/drivers/gpu/drm/nouveau/nouveau_mem.c | 124 ++-- trunk/drivers/gpu/drm/nouveau/nouveau_sgdma.c | 18 + trunk/drivers/gpu/drm/nouveau/nouveau_state.c | 14 +- trunk/drivers/gpu/drm/nouveau/nv40_fifo.c | 2 +- trunk/drivers/gpu/drm/nouveau/nv40_graph.c | 21 + trunk/drivers/gpu/drm/nouveau/nv50_display.c | 22 +- trunk/drivers/gpu/drm/nouveau/nv50_display.h | 1 + trunk/drivers/gpu/drm/nouveau/nv50_fbcon.c | 13 +- trunk/drivers/gpu/drm/nouveau/nv50_gpio.c | 76 ++ trunk/drivers/gpu/drm/nouveau/nv50_graph.c | 7 +- trunk/drivers/gpu/drm/nouveau/nv50_grctx.c | 19 +- trunk/drivers/gpu/drm/nouveau/nv50_instmem.c | 16 +- trunk/drivers/gpu/drm/nouveau/nv50_sor.c | 25 +- trunk/drivers/gpu/drm/radeon/atom.c | 7 +- trunk/drivers/gpu/drm/radeon/r300.c | 5 +- .../drivers/gpu/drm/radeon/radeon_atombios.c | 11 +- trunk/drivers/gpu/drm/radeon/radeon_combios.c | 20 +- .../gpu/drm/radeon/radeon_connectors.c | 2 +- trunk/drivers/gpu/drm/radeon/radeon_cp.c | 10 +- .../drivers/gpu/drm/radeon/radeon_encoders.c | 21 +- .../gpu/drm/radeon/radeon_legacy_encoders.c | 58 +- trunk/drivers/ide/ide-atapi.c | 2 +- trunk/drivers/ide/ide-dma.c | 1 + trunk/drivers/ide/ide-io.c | 2 +- trunk/drivers/ide/ide-taskfile.c | 6 +- trunk/drivers/infiniband/core/cm.c | 2 +- trunk/drivers/infiniband/core/cma.c | 1 + trunk/drivers/infiniband/hw/mlx4/mr.c | 2 +- trunk/drivers/infiniband/hw/nes/nes_verbs.c | 9 +- trunk/drivers/macintosh/windfarm_core.c | 1 + .../media/video/pvrusb2/pvrusb2-sysfs.c | 8 + trunk/drivers/mmc/host/omap_hsmmc.c | 9 +- trunk/drivers/platform/x86/intel_menlow.c | 1 + trunk/drivers/pnp/pnpacpi/rsparser.c | 42 +- trunk/drivers/rtc/rtc-mxc.c | 26 +- trunk/drivers/s390/char/sclp_async.c | 2 +- trunk/drivers/scsi/sd.c | 2 +- trunk/drivers/ssb/driver_pcicore.c | 29 - trunk/drivers/thermal/thermal_sys.c | 3 + trunk/drivers/video/fsl-diu-fb.c | 1 + trunk/drivers/video/mb862xx/mb862xxfb_accel.c | 5 +- trunk/drivers/video/vesafb.c | 26 +- trunk/fs/bio.c | 4 +- trunk/fs/block_dev.c | 5 +- trunk/fs/cifs/cifsfs.c | 1 + trunk/fs/cifs/cifssmb.c | 34 +- trunk/fs/cifs/file.c | 28 +- trunk/fs/fs-writeback.c | 133 ++-- trunk/fs/fscache/stats.c | 4 +- trunk/fs/nfs/nfs4proc.c | 3 +- trunk/fs/nilfs2/alloc.c | 2 +- trunk/fs/nilfs2/btree.c | 2 +- trunk/fs/nilfs2/ioctl.c | 2 +- trunk/fs/proc/task_mmu.c | 27 +- trunk/include/linux/ata.h | 4 +- trunk/include/linux/bitops.h | 3 - trunk/include/linux/blkdev.h | 35 +- trunk/include/linux/drbd.h | 2 +- trunk/include/linux/drbd_nl.h | 3 +- trunk/include/linux/fs.h | 1 + trunk/include/linux/genhd.h | 2 +- trunk/include/linux/i2o.h | 1 - trunk/include/linux/ide.h | 1 + trunk/include/linux/iscsi_ibft.h | 8 +- trunk/include/linux/kernel.h | 2 +- trunk/include/linux/kfifo.h | 3 +- trunk/include/linux/lcm.h | 8 + trunk/include/linux/mm.h | 4 +- trunk/include/linux/page_cgroup.h | 6 + trunk/include/linux/radix-tree.h | 7 + trunk/include/linux/slab.h | 1 + trunk/include/linux/virtio_console.h | 23 - trunk/include/linux/writeback.h | 3 + trunk/include/sound/ak4113.h | 2 +- trunk/include/sound/soc-dai.h | 18 +- trunk/include/sound/soc.h | 1 + trunk/include/trace/events/block.h | 164 +++++ trunk/kernel/exit.c | 3 +- trunk/kernel/fork.c | 3 + trunk/kernel/sched.c | 2 +- trunk/lib/Kconfig.debug | 2 +- trunk/lib/Makefile | 2 +- trunk/lib/lcm.c | 15 + trunk/lib/radix-tree.c | 12 +- trunk/lib/ratelimit.c | 11 +- trunk/lib/rwsem-spinlock.c | 14 +- trunk/mm/backing-dev.c | 3 + trunk/mm/bootmem.c | 17 +- trunk/mm/memcontrol.c | 18 +- trunk/mm/memory.c | 3 +- trunk/mm/pagewalk.c | 47 +- trunk/mm/readahead.c | 2 +- trunk/mm/slab.c | 13 +- trunk/mm/slub.c | 3 + trunk/mm/util.c | 21 + trunk/mm/vmscan.c | 23 +- .../net/sunrpc/xprtrdma/svc_rdma_transport.c | 5 +- trunk/sound/i2c/other/ak4113.c | 2 +- trunk/sound/pci/echoaudio/echoaudio.c | 5 +- trunk/sound/pci/hda/hda_intel.c | 1 + trunk/sound/pci/hda/patch_analog.c | 8 + trunk/sound/pci/hda/patch_realtek.c | 164 +++-- trunk/sound/pci/mixart/mixart.c | 24 +- trunk/sound/soc/atmel/atmel-pcm.c | 2 +- trunk/sound/soc/atmel/atmel_ssc_dai.c | 6 +- trunk/sound/soc/codecs/ac97.c | 15 +- trunk/sound/soc/codecs/wm8994.c | 58 +- trunk/sound/soc/codecs/wm_hubs.c | 83 ++- trunk/sound/soc/codecs/wm_hubs.h | 1 + trunk/sound/soc/davinci/davinci-i2s.c | 3 +- trunk/sound/soc/davinci/davinci-mcasp.c | 3 +- trunk/sound/soc/davinci/davinci-pcm.c | 4 +- trunk/sound/soc/imx/imx-pcm-dma-mx2.c | 8 +- trunk/sound/soc/imx/imx-ssi.c | 7 +- trunk/sound/soc/omap/omap-mcbsp.c | 4 +- trunk/sound/soc/omap/omap-mcpdm.c | 3 +- trunk/sound/soc/omap/omap-pcm.c | 21 +- trunk/sound/soc/pxa/pxa-ssp.c | 23 +- trunk/sound/soc/pxa/pxa2xx-ac97.c | 17 +- trunk/sound/soc/pxa/pxa2xx-i2s.c | 7 +- trunk/sound/soc/pxa/pxa2xx-pcm.c | 4 +- trunk/sound/soc/s3c24xx/s3c-ac97.c | 21 +- trunk/sound/soc/s3c24xx/s3c-dma.c | 4 +- trunk/sound/soc/s3c24xx/s3c-i2s-v2.c | 13 +- trunk/sound/soc/s3c24xx/s3c-pcm.c | 7 +- trunk/sound/soc/s3c24xx/s3c24xx-i2s.c | 19 +- trunk/sound/soc/s6000/s6000-i2s.c | 3 +- trunk/sound/soc/s6000/s6000-pcm.c | 40 +- trunk/sound/soc/soc-core.c | 3 +- trunk/tools/perf/builtin-kmem.c | 1 - 254 files changed, 3086 insertions(+), 1705 deletions(-) rename trunk/Documentation/fb/{imacfb.txt => efifb.txt} (66%) create mode 100644 trunk/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_uart.h create mode 100644 trunk/arch/mips/include/asm/vdso.h create mode 100644 trunk/arch/mips/kernel/vdso.c create mode 100644 trunk/drivers/gpu/drm/nouveau/nv50_gpio.c create mode 100644 trunk/include/linux/lcm.h create mode 100644 trunk/lib/lcm.c diff --git a/[refs] b/[refs] index be9e46012911..d18e0e117f18 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c15d0fc0fc399d2639240b35ad7ed93ed5a59412 +refs/heads/master: 50fc88cb03786a79e9982d9d8dfb3fd225de9099 diff --git a/trunk/Documentation/DocBook/tracepoint.tmpl b/trunk/Documentation/DocBook/tracepoint.tmpl index 8bca1d5cec09..e8473eae2a20 100644 --- a/trunk/Documentation/DocBook/tracepoint.tmpl +++ b/trunk/Documentation/DocBook/tracepoint.tmpl @@ -16,6 +16,15 @@ + + William + Cohen + +
+ wcohen@redhat.com +
+
+
@@ -91,4 +100,8 @@ !Iinclude/trace/events/signal.h + + Block IO +!Iinclude/trace/events/block.h + diff --git a/trunk/Documentation/block/biodoc.txt b/trunk/Documentation/block/biodoc.txt index 6fab97ea7e6b..508b5b2b0289 100644 --- a/trunk/Documentation/block/biodoc.txt +++ b/trunk/Documentation/block/biodoc.txt @@ -1162,8 +1162,8 @@ where a driver received a request ala this before: As mentioned, there is no virtual mapping of a bio. For DMA, this is not a problem as the driver probably never will need a virtual mapping. -Instead it needs a bus mapping (pci_map_page for a single segment or -use blk_rq_map_sg for scatter gather) to be able to ship it to the driver. For +Instead it needs a bus mapping (dma_map_page for a single segment or +use dma_map_sg for scatter gather) to be able to ship it to the driver. For PIO drivers (or drivers that need to revert to PIO transfer once in a while (IDE for example)), where the CPU is doing the actual data transfer a virtual mapping is needed. If the driver supports highmem I/O, diff --git a/trunk/Documentation/fb/imacfb.txt b/trunk/Documentation/fb/efifb.txt similarity index 66% rename from trunk/Documentation/fb/imacfb.txt rename to trunk/Documentation/fb/efifb.txt index 316ec9bb7deb..a59916c29b33 100644 --- a/trunk/Documentation/fb/imacfb.txt +++ b/trunk/Documentation/fb/efifb.txt @@ -1,9 +1,9 @@ -What is imacfb? +What is efifb? =============== This is a generic EFI platform driver for Intel based Apple computers. -Imacfb is only for EFI booted Intel Macs. +efifb is only for EFI booted Intel Macs. Supported Hardware ================== @@ -16,16 +16,16 @@ MacMini How to use it? ============== -Imacfb does not have any kind of autodetection of your machine. +efifb does not have any kind of autodetection of your machine. You have to add the following kernel parameters in your elilo.conf: Macbook : - video=imacfb:macbook + video=efifb:macbook MacMini : - video=imacfb:mini + video=efifb:mini Macbook Pro 15", iMac 17" : - video=imacfb:i17 + video=efifb:i17 Macbook Pro 17", iMac 20" : - video=imacfb:i20 + video=efifb:i20 -- Edgar Hucek diff --git a/trunk/Documentation/sound/alsa/HD-Audio.txt b/trunk/Documentation/sound/alsa/HD-Audio.txt index f4dd3bf99d12..98d14cb8a85d 100644 --- a/trunk/Documentation/sound/alsa/HD-Audio.txt +++ b/trunk/Documentation/sound/alsa/HD-Audio.txt @@ -119,10 +119,18 @@ the codec slots 0 and 1 no matter what the hardware reports. Interrupt Handling ~~~~~~~~~~~~~~~~~~ -In rare but some cases, the interrupt isn't properly handled as -default. You would notice this by the DMA transfer error reported by -ALSA PCM core, for example. Using MSI might help in such a case. -Pass `enable_msi=1` option for enabling MSI. +HD-audio driver uses MSI as default (if available) since 2.6.33 +kernel as MSI works better on some machines, and in general, it's +better for performance. However, Nvidia controllers showed bad +regressions with MSI (especially in a combination with AMD chipset), +thus we disabled MSI for them. + +There seem also still other devices that don't work with MSI. If you +see a regression wrt the sound quality (stuttering, etc) or a lock-up +in the recent kernel, try to pass `enable_msi=0` option to disable +MSI. If it works, you can add the known bad device to the blacklist +defined in hda_intel.c. In such a case, please report and give the +patch back to the upstream developer. HD-AUDIO CODEC diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index 3d29fa389888..7a9ccda2a307 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -2474,12 +2474,6 @@ L: linuxppc-dev@ozlabs.org S: Odd Fixes F: drivers/char/hvc_* -VIRTIO CONSOLE DRIVER -M: Amit Shah -L: virtualization@lists.linux-foundation.org -S: Maintained -F: drivers/char/virtio_console.c - iSCSI BOOT FIRMWARE TABLE (iBFT) DRIVER M: Peter Jones M: Konrad Rzeszutek Wilk @@ -5971,6 +5965,13 @@ S: Maintained F: Documentation/filesystems/vfat.txt F: fs/fat/ +VIRTIO CONSOLE DRIVER +M: Amit Shah +L: virtualization@lists.linux-foundation.org +S: Maintained +F: drivers/char/virtio_console.c +F: include/linux/virtio_console.h + VIRTIO HOST (VHOST) M: "Michael S. Tsirkin" L: kvm@vger.kernel.org diff --git a/trunk/arch/arm/mach-davinci/dm365.c b/trunk/arch/arm/mach-davinci/dm365.c index 27772e18e45b..0d6ee583f65c 100644 --- a/trunk/arch/arm/mach-davinci/dm365.c +++ b/trunk/arch/arm/mach-davinci/dm365.c @@ -758,7 +758,6 @@ static u8 dm365_default_priorities[DAVINCI_N_AINTC_IRQ] = { [IRQ_MMCINT] = 7, [IRQ_DM365_MMCINT1] = 7, [IRQ_DM365_PWMINT3] = 7, - [IRQ_DDRINT] = 4, [IRQ_AEMIFINT] = 2, [IRQ_DM365_SDIOINT1] = 2, [IRQ_TINT0_TINT12] = 7, diff --git a/trunk/arch/arm/mach-davinci/dma.c b/trunk/arch/arm/mach-davinci/dma.c index 02d939853b88..53137387aee1 100644 --- a/trunk/arch/arm/mach-davinci/dma.c +++ b/trunk/arch/arm/mach-davinci/dma.c @@ -1267,7 +1267,8 @@ int edma_start(unsigned channel) /* EDMA channel with event association */ pr_debug("EDMA: ER%d %08x\n", j, edma_shadow0_read_array(ctlr, SH_ER, j)); - /* Clear any pending error */ + /* Clear any pending event or error */ + edma_write_array(ctlr, EDMA_ECR, j, mask); edma_write_array(ctlr, EDMA_EMCR, j, mask); /* Clear any SER */ edma_shadow0_write_array(ctlr, SH_SECR, j, mask); diff --git a/trunk/arch/arm/mach-davinci/include/mach/da8xx.h b/trunk/arch/arm/mach-davinci/include/mach/da8xx.h index cc9be7fee627..03acfd39042b 100644 --- a/trunk/arch/arm/mach-davinci/include/mach/da8xx.h +++ b/trunk/arch/arm/mach-davinci/include/mach/da8xx.h @@ -3,7 +3,7 @@ * * Author: Mark A. Greer * - * 2007, 2009 (c) MontaVista Software, Inc. This file is licensed under + * 2007, 2009-2010 (c) MontaVista Software, Inc. This file is licensed under * the terms of the GNU General Public License version 2. This program * is licensed "as is" without any warranty of any kind, whether express * or implied. @@ -13,7 +13,9 @@ #include