summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [x86 setup] Document grub < 0.93 as brokenH. Peter Anvin2007-08-021-0/+1
| | | | | | | | Grub older than 0.93 are broken when the kernel setup is bigger than 8K. This was fixed in 2002, and 0.93 was the first grub version which fixed this bug. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* [x86 setup] EDD: add missing =m constraintH. Peter Anvin2007-08-021-1/+1
| | | | | | | Add a missing =m constraint to the EDD-probing code, that could have caused improper dead-code elimination. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* [x86 setup] video setup: Fix VBE DDC readingAntonino A. Daplas2007-08-021-1/+1
| | | | | | | | | | | Add memory operand constraint and write-only modifier to the inline assembly to effect the writing of the EDID block to boot_params.edid_info. Without this, gcc would think the EDID query was dead code and would eliminate it. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* Merge branch 'release' of ↵Linus Torvalds2007-08-0110-39/+50
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | 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] ITC: Reduce rating for ITC clock if ITCs are drifty [IA64] SN2: Fix up sn2_rtc clock [IA64] Fix wrong access to irq_desc[] in iosapic_register_intr(). [IA64] Fix possible race in destroy_and_reserve_irq() [IA64] Fix registered interrupt check [IA64] Remove a few duplicate includes [IA64] Allow smp_call_function_single() to current cpu [IA64] fix a few section mismatch warnings
| * [IA64] ITC: Reduce rating for ITC clock if ITCs are driftyChristoph Lameter2007-08-011-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make sure to reduce the rating of the ITC clock if ITCs are drifty. If they are drifting then we have not synchronized the ITC values, nor are we doing the jitter compensation (useless since drift may increase the differentials arbitrarily). Without this patch it is possible that the ITC clock becomes selected as the system clock on systems with drifty ITCs which will result in nanosleep hanging. One can still select the itc clock manually on such systems via clocksource=itc (Produces nice hangs on SGI Altix.) Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
| * [IA64] SN2: Fix up sn2_rtc clockChristoph Lameter2007-08-011-5/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the sn2_rtc clock is present then it is a must have since sn2_rtc provides a synchronized time source on Altix systems. So elevate the priority to 450. Otherwise the ITC would take precendence. Altix systems currently do not boot because the ITC clocksource is broken. It seems to assume that ITCs are synchronized and as a result nanosleep hangs (may be fixed in a different patch). While we are at it: Remove the sn2_mc definition. The sn2_rtc has a fixed address. No point in reading the address from memory. Removing it avoids touching one cacheline. Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
| * [IA64] Fix wrong access to irq_desc[] in iosapic_register_intr().Kenji Kaneshige2007-08-011-2/+3
| | | | | | | | | | | | | | | | In error path we must unlock irq_desc[irq].lock before we change 'irq'. Signed-off-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
| * [IA64] Fix possible race in destroy_and_reserve_irq()Kenji Kaneshige2007-07-301-11/+6
| | | | | | | | | | | | | | | | | | | | Currently, destroy_and_reserve_irq() sets irq_status[irq] UNUSED using clear_irq_vector() and sets irq_status[irq] RSVD using reserve_irq(). But there is a race window because vector_lock is once released between them. This patch fixes this race window. Signed-off-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
| * [IA64] Fix registered interrupt checkKenji Kaneshige2007-07-301-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix the problem that interrupts are not initialized correctly at PCI hotplug or driver reloading time. By vector domain change, the iosapic_rte_info structure was changed to be on the iosapic_intr_info[irq].rtes list even after the interrupts are unregistered. So iosapic_intr_info[irq].rtes list must not be checked to see if there are registered interrupts (RTEs) on the irq. We must check iosapic_intr_info[irq].count counter instead. Signed-off-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
| * [IA64] Remove a few duplicate includesJesper Juhl2007-07-303-3/+0
| | | | | | | | | | | | | | | | This patch removes a few duplicate includes from arch/ia64/ Acked-by: Jes Sorensen <jes@sgi.com> Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
| * [IA64] Allow smp_call_function_single() to current cpuAvi Kivity2007-07-301-3/+5
| | | | | | | | | | | | | | | | This removes the requirement for callers to get_cpu() to check in simple cases. i386 and x86_64 already received a similar treatment. Signed-off-by: Avi Kivity <avi@qumranet.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
| * [IA64] fix a few section mismatch warningsSam Ravnborg2007-07-303-8/+13
| | | | | | | | | | | | | | | | | | | | | | Fix the following section mismatch warnings: WARNING: vmlinux.o(.text+0x41902): Section mismatch: reference to .init.text:__alloc_bootmem (between 'ia64_mca_cpu_init' and 'ia64_do_tlb_purge') WARNING: vmlinux.o(.text+0x49222): Section mismatch: reference to .init.text:__alloc_bootmem (between 'register_intr' and 'iosapic_register_intr') WARNING: vmlinux.o(.text+0x62beb2): Section mismatch: reference to .init.text:__alloc_bootmem_node (between 'hubdev_init_node' and 'cnodeid_get_geoid') Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Tony Luck <tony.luck@intel.com>
* | Merge master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6Linus Torvalds2007-08-0113-128/+85
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6: scc_pata: PIO fixes piix/slc90e66: fix PIO1 handling in ->speedproc method (take 2) jmicron: PIO fixes it8213: PIO fixes (take 2) cs5535: PIO fixes cs5520: fix PIO auto-tuning in ->ide_dma_check method drivers/scsi/ide-scsi.c: kmalloc + memset conversion to kzalloc drivers/ide/arm/icside.c: kmalloc + memset conversion to kzalloc ide: eliminate warnings in ide-tape.c ide: fix runtogether printk's in cmd64x IDE driver sis5513: Add FSC Amilo A1630 PCI subvendor/dev to laptops alim15x3: Correct HP detect ide: Fix an overrun found in the CS5535 IDE driver
| * | scc_pata: PIO fixesBartlomiej Zolnierkiewicz2007-08-011-41/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Use pio == 255 == "auto-tune" in scc_config_drive_for_dma() instead of forcing PIO4 on PIO fallback. Fix comment while at it. * Rename scc_tuneproc() to scc_tune_pio() and add scc_tuneproc() wrapper. Move finding of the best PIO mode and setting of transfer mode on the device to the new wrapper. * Fix scc_tune_chipset() to tune PIO modes. Do a small cleanup while at it. Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * | piix/slc90e66: fix PIO1 handling in ->speedproc method (take 2)Bartlomiej Zolnierkiewicz2007-08-012-17/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Don't call {piix,slc90e66}_dma_2_pio() for PIO modes in {piix,slc90e66}_tune_chipset(). * Add PIO1 handling to {piix,slc90e66}_tune_chipset(). * Bump driver version. v2: * Remove PIO modes from {piix,slc90e66}_dma_2_pio(), they are no longer needed there (Noticed by Sergei) Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * | jmicron: PIO fixesBartlomiej Zolnierkiewicz2007-08-011-17/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Set transfer mode on the device in jmicron_tuneproc(), also add pio == 255 == "auto-tune" handling. * Use jmicron_tuneproc() in jmicron_config_drive_for_dma(). * Remove no longer needed config_jmicron_chipset_for_pio(). Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * | it8213: PIO fixes (take 2)Bartlomiej Zolnierkiewicz2007-08-011-16/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Rename it8213_tuneproc() to it8213_tune_pio() and add it8213_tuneproc() wrapper. Move finding of the best PIO mode to the new wrapper. * Add setting of transfer mode on the device to it8213_tuneproc(). * Don't call it8213_dma_2_pio() for PIO modes in it8213_tune_chipset(). * Use it8213_tuneproc() in it8213_config_drive_for_dma(). v2: * Remove PIO modes from it8213_dma_2_pio(), they are no longer needed there (Noticed by Sergei) Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * | cs5535: PIO fixesBartlomiej Zolnierkiewicz2007-08-011-23/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix cs5535_tuneproc() to pass PIO transfer mode value instead of PIO mode number to cs5535_set_speed() (fixes random PIO timings being programmed and a possible OOPS). Do a little cleanup while at it. * Fix cs5535_set_speed() to check if the mate device is present (fixes PIO0 taskfile timings being used if there is no other device on the cable). * Use cs5535_tuneproc() in cs5535_dma_check(). The old code had the same issue as cs5535_tuneproc() and add additionally caused 0x00-0x04 transfer mode values (== default PIO, default PIO w/ IORDY + two invalid values) being set on the device instead of values 0x08-0x0c (XFER_PIO_[0,4]). Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * | cs5520: fix PIO auto-tuning in ->ide_dma_check methodBartlomiej Zolnierkiewicz2007-08-011-1/+1
| | | | | | | | | | | | | | | Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * | drivers/scsi/ide-scsi.c: kmalloc + memset conversion to kzallocMariusz Kozlowski2007-08-011-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | drivers/scsi/ide-scsi.c | 34642 -> 34536 (-106 bytes) drivers/scsi/ide-scsi.o | 171728 -> 171524 (-204 bytes) Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl> Cc: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * | drivers/ide/arm/icside.c: kmalloc + memset conversion to kzallocMariusz Kozlowski2007-08-011-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Is this a bug? In original verison memset cleared sizeof(state) bytes instead of sizeof(*state). If it was intentional then this patch is invalid. If not intentional -> valid :) Please review. Bart: Yes, it is a bug so this patch is a valid bugfix. :-) drivers/ide/arm/icside.c | 18883 -> 18849 (-34 bytes) Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Russell King <rmk@arm.linux.org.uk> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * | ide: eliminate warnings in ide-tape.cStephen Rothwell2007-08-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | drivers/ide/ide-tape.c: In function '__idetape_kmalloc_stage': drivers/ide/ide-tape.c:2588: warning: large integer implicitly truncated to unsigned type drivers/ide/ide-tape.c:2616: warning: large integer implicitly truncated to unsigned type b_size in struct idetape_bh is an unsigned short. We sometimes assigne PAGE_SIZE to it and PAGE_SIZE can be 64K or larger, so make it a u32. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * | ide: fix runtogether printk's in cmd64x IDE driverMeelis Roos2007-08-011-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Fix a couple of runtogether printks in cmd64x.c IDE driver by adding proper newlines. Signed-off-by: Meelis Roos <mroos@linux.ee> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * | sis5513: Add FSC Amilo A1630 PCI subvendor/dev to laptopsDavid Lamparter2007-08-011-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Recognise the FSC Amilo A1630's incarnation of a SiS5513 chip as laptop to get UDMA100 support. Signed-off-by: David Lamparter <equinox@diac24.net> Cc: Lionel Bouton <Lionel.Bouton@inet6.fr> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * | alim15x3: Correct HP detectBartlomiej Zolnierkiewicz2007-08-011-1/+1
| | | | | | | | | | | | | | | | | | | | | Direct port of Alan's fix for pata_ali. Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| * | ide: Fix an overrun found in the CS5535 IDE driverJordan Crouse2007-08-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As found by the Coverity checker, and reported by Adrian Bunk, this fixes a overrun error in the CS5535 IDE driver. Somebody got a little excited with the if() statement - the CS5535 only supports UDMA 0-4. Bart: Not a bug per se since the upper layer will never feed this function with speed > XFER_UDMA_4 (thanks to ->ultra_mask being set to 0x1f). Worth fixing anyway. Signed-off-by: Jordan Crouse <jordan.crouse@amd.com> Cc: Adrian Bunk <bunk@stusta.de> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* | | FRV: Enable the MB86943 PCI arbiter correctlyDavid Howells2007-08-012-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | Enable the MB93090 motherboard's MB86943 PCI arbiter correctly by assigning to the register rather than comparing against it. This is required to support bus mastering. Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | | Merge branch 'upstream-linus' of ↵Linus Torvalds2007-08-018-54/+64
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev: pata_sis: fix MWDMA for <= UDMA66 chipsets and UDMA for UDMA33 chipsets libata: blacklist SAMSUNG HD401LJ / ZZ100-15 for NCQ ata_piix: add Tecra M3 to broken suspend blacklist ata_piix: implement piix_borken_suspend() pci: rename __pci_reenable_device() to pci_reenable_device() libata-sff; Unbreak non DMA capable controllers again pata_cmd64x: Correct the speed ranges
| * | | pata_sis: fix MWDMA for <= UDMA66 chipsets and UDMA for UDMA33 chipsetsBartlomiej Zolnierkiewicz2007-08-011-11/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix MWDMA timings setup in sis_old_set_dmamode() and sis_66_set_dmamode(). The old timings were overclocked (even worse behavior than sis5513 IDE driver which depends on BIOS to program correct timings), the new timings are taken from the datasheet (they match timings from ATA spec). * Fix UDMA timings setup in sis_old_set_dmamode(). Misplaced pci_write_config_word() call resulted in UDMA timings never being set. * Fix comments for sis_133_early_set_dmamode() and sis_133_set_dmamode(): - only the former function handles early SiS 961 bridges - both functions lack MWDMA timings setup * Fix typos in sis_100_set_piomode() and sis_133_set_piomode() comments. * Bump driver version. Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * | | libata: blacklist SAMSUNG HD401LJ / ZZ100-15 for NCQTejun Heo2007-08-011-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SAMSUNG HD401LJ / ZZ100-15 does spurious completion of NCQ commands. Disable NCQ. Reported by Ulrich in bugzilla #8805. Signed-off-by: Tejun Heo <htejun@gmail.com> Cc: Ulrich <stellplatz-nr.13a@datenparkplatz.de> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * | | ata_piix: add Tecra M3 to broken suspend blacklistTejun Heo2007-08-011-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add Tecra M3 to the broken suspend blacklist. Tecra M3 doesn't have proper DMI_PRODUCT_NAME but has an OEM_STRING instead. Match it. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * | | ata_piix: implement piix_borken_suspend()Tejun Heo2007-08-011-30/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Separate out broken suspend blacklist matching into piix_broken_suspend(). Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * | | pci: rename __pci_reenable_device() to pci_reenable_device()Tejun Heo2007-08-014-9/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Rename __pci_reenable_device() to pci_reenable_device(). Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * | | libata-sff; Unbreak non DMA capable controllers againAlan Cox2007-08-011-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Seems nobody else is checking/testing this case as it keeps getting horked. If we have no BAR4 mapping on an SFF controller this is *NOT* an error, it just means it isn't doing BMDMA. Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * | | pata_cmd64x: Correct the speed rangesAlan Cox2007-08-011-4/+4
| |/ / | | | | | | | | | | | | | | | | | | I must have been half asleep when doing the original code Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* | | genirq: temporary fix for level-triggered IRQ resendThomas Gleixner2007-08-011-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Marcin Slusarz reported a ne2k-pci "hung network interface" regression. delayed disable relies on the ability to re-trigger the interrupt in the case that a real interrupt happens after the software disable was set. In this case we actually disable the interrupt on the hardware level _after_ it occurred. On enable_irq, we need to re-trigger the interrupt. On i386 this relies on a hardware resend mechanism (send_IPI_self()). Actually we only need the resend for edge type interrupts. Level type interrupts come back once enable_irq() re-enables the interrupt line. I assume that the interrupt in question is level triggered because it is shared and above the legacy irqs 0-15: 17: 12 IO-APIC-fasteoi eth1, eth0 Looking into the IO_APIC code, the resend via send_IPI_self() happens unconditionally. So the resend is done for level and edge interrupts. This makes the problem more mysterious. The code in question lib8390.c does disable_irq(); fiddle_with_the_network_card_hardware() enable_irq(); The fiddle_with_the_network_card_hardware() might cause interrupts, which are cleared in the same code path again, Marcin found that when he disables the irq line on the hardware level (removing the delayed disable) the card is kept alive. So the difference is that we can get a resend on enable_irq, when an interrupt happens during the time, where we are in the disabled region. Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | | Fix WARN_ON() on bitfield ops for all other archsHeiko Carstens2007-08-014-4/+4
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes WARN_ON() on bitfiels ops for all architectures that have been left out in 8d4fbcfbe0a4bfc73e7f0297c59ae514e1f1436f. Cc: Alexey Dobriyan <adobriyan@sw.ru> Cc: Herbert Xu <herbert@gondor.apana.org.au> Cc: Haavard Skinnemoen <hskinnemoen@atmel.com> Cc: Matthew Wilcox <matthew@wil.cx> Cc: Kyle McMartin <kyle@parisc-linux.org> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Acked-by: Paul Mundt <lethal@linux-sh.org> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | Fix WARN_ON() on bitfield opsLinus Torvalds2007-07-312-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Alexey Dobriyan noticed that the new WARN_ON() semantics that were introduced by commit 684f978347deb42d180373ac4c427f82ef963171 (to also return the value to be warned on) didn't compile when given a bitfield, because the typeof doesn't work for bitfields. So instead of the typeof trick, use an "int" variable together with a "!!(x)" expression, as suggested by Al Viro. To make matters more interesting, Paul Mackerras points out that that is sub-optimal on Power, but the old asm-coded comparison seems to be buggy anyway on 32-bit Power if the conditional was 64-bit, so I think there are more problems there. Regardless, the new WARN_ON() semantics may have been a bad idea. But this at least avoids the more serious complications. Cc: Alexey Dobriyan <adobriyan@sw.ru> Cc: Herbert Xu <herbert@gondor.apana.org.au> Cc: Paul Mackerras <paulus@samba.org> Cc: Al Viro <viro@ftp.linux.org.uk> Cc: Ingo Molnar <mingo@elte.hu> Cc: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | Merge git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdogLinus Torvalds2007-07-3129-156/+1509
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog: (28 commits) [WATCHDOG] Fix pcwd_init_module crash [WATCHDOG] ICH9 support for iTCO_wdt [WATCHDOG] 631xESB/632xESB support for iTCO_wdt - add all LPC bridges [WATCHDOG] 631xESB/632xESB support for iTCO_wdt [WATCHDOG] omap_wdt.c - default error for IOCTL is -ENOTTY [WATCHDOG] Return value of nonseekable_open [WATCHDOG] mv64x60_wdt: Rework the timeout register manipulation [WATCHDOG] mv64x60_wdt: disable watchdog timer when driver is probed [WATCHDOG] mv64x60_wdt: Support the WDIOF_MAGICCLOSE feature [WATCHDOG] mv64x60_wdt: Add a module parameter to change nowayout setting [WATCHDOG] mv64x60_wdt: Add WDIOC_SETOPTIONS ioctl support [WATCHDOG] mv64x60_wdt: Support for WDIOC_SETTIMEOUT ioctl [WATCHDOG] mv64x60_wdt: Fix WDIOC_GETTIMEOUT return value [WATCHDOG] mv64x60_wdt: Check return value of nonseekable_open [WATCHDOG] mv64x60_wdt: Add arch/powerpc platform support [WATCHDOG] mv64x60_wdt: Get register address from platform data [WATCHDOG] mv64x60_wdt: set up platform_device in platform code [WATCHDOG] ensure mouse and keyboard ignored in w83627hf_wdt [WATCHDOG] s3c2410_wdt: fixup after arch include moves [WATCHDOG] git-watchdog-typo ...
| * | [WATCHDOG] Fix pcwd_init_module crashWim Van Sebroeck2007-07-292-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix for the problem detected by Ingo Molnar: enabling CONFIG_PCWATCHDOG=y crashes bzImage bootup. The reason for this can be found in drivers/makefile We first do: obj-y += char/ and later we do: obj-y += base/ block/ misc/ mfd/ net/ media/ So if we put a platform or isa or usb bus driver in char/watchdog (which is called from the Makefile in drivers/char/Makefile) then we didn't have the different device drivers initialized yet (they are in drivers/base and drivers/usb and ...) This fix makes sure that we compile the watchdog drivers after drivers/base, drivers/misc, drivers/pci and drivers/usb. We also do the compile after hwmon because in the future the watchdog temperature support will use the hwmon system. Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
| * | [WATCHDOG] ICH9 support for iTCO_wdtWim Van Sebroeck2007-07-261-3/+15
| | | | | | | | | | | | | | | | | | | | | Add support for the ICH9 I/O chipsets to iTCO_wdt. Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
| * | [WATCHDOG] 631xESB/632xESB support for iTCO_wdt - add all LPC bridgesWim Van Sebroeck2007-07-261-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add all LPC bridges for the 631xESB/632xESB I/O chipset. The datasheet says: * Device Function = B0:D31:FO * Function Description = LPC interface * DEV ID = 267xh * Comment = 2670h-267Fh Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
| * | [WATCHDOG] 631xESB/632xESB support for iTCO_wdtSergey Kononenko2007-07-261-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | Add 631xESB/632xESB support to the iTCO_wdt driver. Signed-off-by: Sergey Kononenko <sergk@sergk.org.ua> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
| * | [WATCHDOG] omap_wdt.c - default error for IOCTL is -ENOTTYWim Van Sebroeck2007-07-241-1/+1
| | | | | | | | | | | | | | | | | | | | | The default value for an unknown ioctl call is -ENOTTY. Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
| * | [WATCHDOG] Return value of nonseekable_openWim Van Sebroeck2007-07-244-11/+4
| | | | | | | | | | | | | | | | | | | | | Return the value of the nonseekable_open function and not 0. Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
| * | [WATCHDOG] mv64x60_wdt: Rework the timeout register manipulationDale Farnsworth2007-07-241-36/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Consolidate the timeout config register modification into a single function. Also, use the enabled flag in the config register to determine whether the timer is enabled instead of a separately maintained flag, MV64x60_WDOG_FLAG_ENABLED. Add spinlock protection around enabling/disabling the watchdog timer. Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
| * | [WATCHDOG] mv64x60_wdt: disable watchdog timer when driver is probedDale Farnsworth2007-07-241-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | Make sure that we disable the watchdog at start-up. Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
| * | [WATCHDOG] mv64x60_wdt: Support the WDIOF_MAGICCLOSE featureDale Farnsworth2007-07-241-4/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | Disallow disabling of the watchdog timer unless a particular character ('V') was recently written to the watchdog device. Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
| * | [WATCHDOG] mv64x60_wdt: Add a module parameter to change nowayout settingDale Farnsworth2007-07-241-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also, use the WATCHDOG_NOWAYOUT macro, rather than #ifdefs, and use __module_get to prevent module unloading if WATCHDOG_NOWAYOUT is set. Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
| * | [WATCHDOG] mv64x60_wdt: Add WDIOC_SETOPTIONS ioctl supportDale Farnsworth2007-07-241-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | Allow the watchdog timer to be enabled or disabled via the WDIOC_SETOPTIONS ioctl. Signed-off-by: Dale Farnsworth <dale@farnsworth.org> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
OpenPOWER on IntegriCloud