- 14 Oct, 2008 35 commits
-
-
Linus Torvalds authored
This reverts commit c9e587ab, and the subsequent commits that fixed it up: - afa9b649 "fbcon: prevent cursor disappearance after switching to 512 character font" - d850a2fa "vt/fbcon: fix background color on line feed" - 7fe3915a "vt/fbcon: update scrl_erase_char after 256/512-glyph font switch" by request of Alan Cox. Quoth Alan: "Unfortunately it's wrong and its been causing breakages because various apps like ncurses expect our previous (and correct) behaviour." Alexander sent out a similar patch. Requested-by: Alan Cox <alan@lxorguk.ukuu.org.uk> Tested-by: Jan Engelhardt <jengelh@medozas.de> Cc: Alexander V. Lukyanov <lav@netis.ru> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-
git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6Linus Torvalds authored
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: qlge: Fix page size ifdef test. net: Rationalise email address: Network Specific Parts dsa: fix compile bug on s390 netns: mib6 section fixlet enic: Fix Kconfig headline description de2104x: wrong MAC address fix s390: claw compile fixlet net: export genphy_restart_aneg cxgb3: extend copyrights to 2008 cxgb3: update driver version net/phy: add missing kernel-doc pktgen: fix skb leak in case of failure mISDN/dsp_cmx.c: fix size checks misdn: use nonseekable_open() net: fix driver build errors due to missing net/ip6_checksum.h include
-
Julia Lawall authored
Error handling code following a kmalloc should free the allocated data. The semantic match that finds the problem is as follows: (http://www.emn.fr/x-info/coccinelle/) // <smpl> @r exists@ local idexpression x; statement S; expression E; identifier f,l; position p1,p2; expression *ptr != NULL; @@ ( if ((x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(...)) == NULL) S | x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(...); .. if (x == NULL) S ) <... when != x when != if (...) { <+...x...+> } x->f = E ..> ( return \(0\|<+...x...+>\|ptr\); | return@p2 ...; ) @script:python@ p1 << r.p1; p2 << r.p2; @@ print "* file: %s kmalloc %s return %s" % (p1[0].file,p1[0].line,p2[0].line) // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-
Geert Uytterhoeven authored
For some m68k configs, I get: | net/rfkill/rfkill-input.c: In function 'rfkill_start': | net/rfkill/rfkill-input.c:208: error: dereferencing pointer to incomplete type As the incomplete type is `struct task_struct', including <linux/sched.h> fixes it. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-
Geert Uytterhoeven authored
ERROR: "nvram_read_byte" [drivers/scsi/atari_scsi.ko] undefined! ERROR: "nvram_check_checksum" [drivers/scsi/atari_scsi.ko] undefined! Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-
Geert Uytterhoeven authored
If CONFIG_PROC_FS is not set, I get: | arch/m68k/kernel/ints.c:433: error: redefinition of 'init_irq_proc' | include/linux/interrupt.h:438: error: previous definition of 'init_irq_proc' was here This was introduced by commit 6168a702 ("Declare init_irq_proc before we use it."), which replaced the #ifdef protection of the init_irq_proc() call by a static inline dummy if CONFIG_PROC_FS is not set. Make init_irq_proc() depend on CONFIG_PROC_FS to fix this. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-
Adrian Bunk authored
This patch removes the no longer used m68k PCI code. Signed-off-by: Adrian Bunk <bunk@kernel.org> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-
Adrian Bunk authored
This patch removes the Hades support that was marked as BROKEN 5 years ago. Signed-off-by: Adrian Bunk <bunk@kernel.org> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-
Geert Uytterhoeven authored
Kill compiler warnings related to printf() formats in the input drivers for various HP9000 machines, which are shared between PA-RISC (suseconds_t is int) and m68k (suseconds_t is long). As both are 32-bit, it's safe to cast to int. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Acked-by: Helge Deller <deller@gmx.de> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-
Geert Uytterhoeven authored
Several multi-bus subsystems: | include/linux/ssb/ssb.h: In function 'ssb_dma_mapping_error': | include/linux/ssb/ssb.h:430: error: implicit declaration of function 'pci_dma_mapping_error' | include/linux/ssb/ssb.h: In function 'ssb_dma_map_single': | include/linux/ssb/ssb.h:444: error: implicit declaration of function 'pci_map_single' | include/linux/ssb/ssb.h: In function 'ssb_dma_unmap_single': | include/linux/ssb/ssb.h:458: error: implicit declaration of function 'pci_unmap_single' | include/linux/ssb/ssb.h: In function 'ssb_dma_sync_single_for_cpu': | include/linux/ssb/ssb.h:475: error: implicit declaration of function 'pci_dma_sync_single_for_cpu' | include/linux/ssb/ssb.h: In function 'ssb_dma_sync_single_for_device': | include/linux/ssb/ssb.h:493: error: implicit declaration of function 'pci_dma_sync_single_for_device' or legacy drivers: | drivers/net/hp100.c: In function 'pdl_map_data': | drivers/net/hp100.c:291: error: implicit declaration of function 'pci_map_single' | drivers/net/hp100.c: In function 'hp100_probe1': | drivers/net/hp100.c:707: error: implicit declaration of function 'pci_alloc_consistent' | drivers/net/hp100.c:782: error: implicit declaration of function 'pci_free_consistent' | drivers/net/hp100.c: In function 'hp100_clean_txring': | drivers/net/hp100.c:1614: error: implicit declaration of function 'pci_unmap_single' and | drivers/scsi/aic7xxx_old.c: In function 'aic7xxx_allocate_scb': | drivers/scsi/aic7xxx_old.c:2573: error: implicit declaration of function 'pci_alloc_consistent' | drivers/scsi/aic7xxx_old.c: In function 'aic7xxx_done': | drivers/scsi/aic7xxx_old.c:2697: error: implicit declaration of function 'pci_unmap_single' | drivers/scsi/aic7xxx_old.c: In function 'aic7xxx_handle_seqint': | drivers/scsi/aic7xxx_old.c:4275: error: implicit declaration of function 'pci_map_single' | drivers/scsi/aic7xxx_old.c: In function 'aic7xxx_free': | drivers/scsi/aic7xxx_old.c:8460: error: implicit declaration of function 'pci_free_consistent' rely on PCI DMA operations to be always available. Add #include <asm-generic/pci-dma-compat.h> to <asm/pci.h> to make them happy. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-
Geert Uytterhoeven authored
| include/linux/ssb/ssb.h: In function 'ssb_dma_sync_single_range_for_cpu': | include/linux/ssb/ssb.h:517: error: implicit declaration of function 'dma_sync_single_range_for_cpu' | include/linux/ssb/ssb.h: In function 'ssb_dma_sync_single_range_for_device': | include/linux/ssb/ssb.h:538: error: implicit declaration of function 'dma_sync_single_range_for_device' Add the missing dma_sync_single_range_for_{cpu,device}(), and remove the `inline' for the non-static function dma_sync_single_for_device(). Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-
Geert Uytterhoeven authored
The nvram and rtc-cmos drivers use the spinlock rtc_lock to protect against concurrent accesses to the CMOS memory. As m68k doesn't support SMP or preempt yet, the spinlock calls tend to get optimized away, but not for all configurations, causing in some rare cases: | ERROR: "rtc_lock" [drivers/rtc/rtc-cmos.ko] undefined! | ERROR: "rtc_lock" [drivers/char/nvram.ko] undefined! Add the spinlock to the Atari core code to avoid this. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Acked-by: Michael Schmitz <schmitz@debian.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-
Geert Uytterhoeven authored
If CONFIG_VT=n, I get: | arch/m68k/atari/built-in.o: In function `atari_kbd_translate': | arch/m68k/atari/atakeyb.c:640: undefined reference to `shift_state' Just remove atari_kbd_translate(), as it's unused. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Acked-by: Michael Schmitz <schmitz@debian.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-
Geert Uytterhoeven authored
| ERROR: "key_maps" [drivers/input/keyboard/amikbd.ko] undefined! Export key_maps in the Amiga core code, as its defined in an autogenerated file (drivers/char/defkeymap.c) Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-
Geert Uytterhoeven authored
Currently Sun 3 support is the first platform option, as the Sun 3 MMU is incompatible with standard Motorola MMUs. However, this means that `allmodconfig' enables support for Sun 3, and thus disables support for all other platforms. Reverse the logic and move Sun 3 last, so `allmodconfig' enables all platforms except for Sun 3, increasing compile-coverage. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-
Roman Zippel authored
Add .note.gnu.build-id to init data so it's discarded at boot. [Andreas Schwab] Use NOTES macro Signed-off-by: Roman Zippel <zippel@linux-m68k.org> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-
Roman Zippel authored
Put .bss at the end of the data section Signed-off-by: Roman Zippel <zippel@linux-m68k.org> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-
Geert Uytterhoeven authored
This changes the oops and backtrace code to use the new `%pS' printk() extension to print out symbols rather than manually calling print_symbol. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-
Adrian Bunk authored
This patch changes m68k to use the new bcd2bin/bin2bcd functions instead of the obsolete BCD_TO_BIN/BIN_TO_BCD/BCD2BIN/BIN2BCD macros. It also remove local bcd2bin/bin2bcd implementations in favor of the global ones. Signed-off-by: Adrian Bunk <bunk@kernel.org> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-
Alan Cox authored
Splitting the 8250 code back up to avoid a clash with the NR_IRQS removal patch introduced a last minute bug. Put back the additional needed lines for the old lock init Signed-off-by: Alan Cox <alan@redhat.com> [ Ingo also reports that this can cause a spontaneous reboot crash with certain configs, and sends in an identical patch ] Tested-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-
Ron Mercer authored
This ASIC does support all page sizes. For 4k and 8k page size the TX control block needs an external scatter gather list. For page sizes larger than 8k the max frags is satisfied by the original TX control block. Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-
Alan Cox authored
Clean up the various different email addresses of mine listed in the code to a single current and valid address. As Dave says his network merges for 2.6.28 are now done this seems a good point to send them in where they won't risk disrupting real changes. Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-
Heiko Carstens authored
git commit 45cec1ba "dsa: Need to select PHYLIB." causes this build bug on s390: drivers/built-in.o: In function `phy_stop_interrupts': /home/heicarst/linux-2.6/drivers/net/phy/phy.c:631: undefined reference to `free_irq' /home/heicarst/linux-2.6/drivers/net/phy/phy.c:646: undefined reference to `enable_irq' drivers/built-in.o: In function `phy_start_interrupts': /home/heicarst/linux-2.6/drivers/net/phy/phy.c:601: undefined reference to `request_irq' drivers/built-in.o: In function `phy_interrupt': /home/heicarst/linux-2.6/drivers/net/phy/phy.c:528: undefined reference to `disable_irq_nosync' drivers/built-in.o: In function `phy_change': /home/heicarst/linux-2.6/drivers/net/phy/phy.c:674: undefined reference to `enable_irq' /home/heicarst/linux-2.6/drivers/net/phy/phy.c:692: undefined reference to `disable_irq' PHYLIB has alread a depend on !S390, however select PHYLIB at DSA overrides that unfortunately. So add a depend on !S390 to DSA as well. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-
Alexey Dobriyan authored
LD net/ipv6/ipv6.o WARNING: net/ipv6/ipv6.o(.text+0xd8): Section mismatch in reference from the function inet6_net_init() to the function .init.text:ipv6_init_mibs() Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-
Roland Dreier authored
I don't think the enic driver has anything to do with Mark Everett (http://en.wikipedia.org/wiki/A_Man_Called_E). Fix the Kconfig description. Signed-off-by: Roland Dreier <rolandd@cisco.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-
Martin Langer authored
The de2104x returns sometimes a wrong MAC address. The wrong one is like the original one, but it comes with an one byte shift. I found this bug on an older alpha ev5 cpu. More details are available in Gentoo bugreport #240718. It seems the hardware is sometimes a little bit too slow for an immediate access. This patch solves the problem by introducing a small udelay. Signed-off-by: Martin Langer <martin-langer@gmx.de> Signed-off-by: David S. Miller <davem@davemloft.net>
-
Alexey Dobriyan authored
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-
Adrian Bunk authored
This patch fixes the following build error caused by commit ed94493f (mv643xx_eth: convert to phylib): <-- snip --> ... Building modules, stage 2. MODPOST 1280 modules ERROR: "genphy_restart_aneg" [drivers/net/mv643xx_eth.ko] undefined! ... make[2]: *** [__modpost] Error 1 <-- snip --> Signed-off-by: Adrian Bunk <bunk@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
-
Divy Le Ray authored
Update copyright banner to 2008. Signed-off-by: Divy Le Ray <divy@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-
Divy Le Ray authored
Add a field to the driver versioning info. Update version to 1.1.0. Signed-off-by: Divy Le Ray <divy@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-
Randy Dunlap authored
Fix kernel-doc warning, missing description: Warning(lin2627-g3-kdocfixes//drivers/net/phy/mdio_bus.c:63): No description found for parameter 'd' Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-
Ilpo Järvinen authored
Seems that skb goes into void unless something magic happened in pskb_expand_head in case of failure. Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-
Adrian Bunk authored
The checks for ensuring that the array indices are inside the range were flipped. Reported-by: Adrian Bunk <bunk@kernel.org> Signed-off-by: Adrian Bunk <bunk@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: David S. Miller <davem@davemloft.net>
-
Andrew Morton authored
The driver just sets ->llseek to NULL. It should also clear FMODE_LSEEK to tell the VFS that seeks are not supported. Pointed out by Christoph Hellwig. Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: David S. Miller <davem@davemloft.net>
-
Kamalesh Babulal authored
2.6.27-git2 kernel build fails with allyesconfig on powerpc with build error <introduced by commit 01f2e4ea> CC drivers/net/enic/enic_main.o drivers/net/enic/enic_main.c: In function âenic_queue_wq_skb_tsoâ: drivers/net/enic/enic_main.c:576: error: implicit declaration of function âcsum_ipv6_magicâ make[3]: *** [drivers/net/enic/enic_main.o] Error 1 <introduced by commit c4e84bde> drivers/net/qlge/qlge_main.c: In function âql_tsoâ: drivers/net/qlge/qlge_main.c:1862: error: implicit declaration of function âcsum_ipv6_magicâ make[3]: *** [drivers/net/qlge/qlge_main.o] Error 1 <introduced by commit 95252236> drivers/net/jme.c: In function âjme_tx_tsoâ: drivers/net/jme.c:1784: error: implicit declaration of function âcsum_ipv6_magicâ make[2]: *** [drivers/net/jme.o] Error 1 Signed-off-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com> Signed-off-by: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-
- 13 Oct, 2008 5 commits
-
-
git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6Linus Torvalds authored
* git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (66 commits) ata: Add documentation for hard disk shock protection interface (v3) ide: Implement disk shock protection support (v4) ide-cd: fix printk format warning piix: add Hercules EC-900 mini-notebook to ich_laptop short cable list ide-atapi: assign taskfile flags per device type ide-cd: move cdrom_info.dma to ide_drive_t.dma ide: add ide_drive_t.dma flag ide-cd: add a debug_mask module parameter ide-cd: convert driver to new ide debugging macro (v3) ide: move SFF DMA code to ide-dma-sff.c ide: cleanup ide-dma.c ide: cleanup ide_build_dmatable() ide: remove needless includes from ide-dma.c ide: switch to DMA-mapping API part #2 ide: make ide_dma_timeout() available also for CONFIG_BLK_DEV_IDEDMA_SFF=n ide: make ide_dma_lost_irq() available also for CONFIG_BLK_DEV_IDEDMA_SFF=n ide: __ide_dma_end() -> ide_dma_end() pmac: remove needless pmac_ide_destroy_dmatable() wrapper pmac: remove superfluous pmif == NULL checks ide: Two fixes regarding memory allocation ...
-
git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6Linus Torvalds authored
* git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6: (49 commits) pcmcia: ioctl-internal definitions pcmcia: cistpl header cleanup pcmcia: remove unused argument to pcmcia_parse_tuple() pcmcia: card services header cleanup pcmcia: device_id header cleanup pcmcia: encapsulate ioaddr_t pcmcia: cleanup device driver header file pcmcia: cleanup socket services header file pcmcia: merge ds_internal.h into cs_internal.h pcmcia: cleanup cs_internal.h pcmcia: cs_internal.h is internal pcmcia: use dev_printk for cs_error() pcmcia: remove CS_ error codes alltogether pcmcia: deprecate CS_BAD_TUPLE pcmcia: deprecate CS_BAD_ARGS pcmcia: deprecate CS_BAD_BASE, CS_BAD_IRQ, CS_BAD_OFFSET and CS_BAD_SIZE pcmcia: deprecate CS_BAD_ATTRIBUTE, CS_BAD_TYPE and CS_BAD_PAGE pcmcia: deprecate CS_NO_MORE_ITEMS pcmcia: deprecate CS_IN_USE pcmcia: deprecate CS_CONFIGURATION_LOCKED ... Fix trivial conflict in drivers/pcmcia/ds.c manually
-
git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6Linus Torvalds authored
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (313 commits) V4L/DVB (9186): Added support for Prof 7300 DVB-S/S2 cards V4L/DVB (9185): S2API: Ensure we have a reasonable ROLLOFF default V4L/DVB (9184): cx24116: Change the default SNR units back to percentage by default. V4L/DVB (9183): S2API: Return error of the caller provides 0 commands. V4L/DVB (9182): S2API: Added support for DTV_HIERARCHY V4L/DVB (9181): S2API: Add support fot DTV_GUARD_INTERVAL and DTV_TRANSMISSION_MODE V4L/DVB (9180): S2API: Added support for DTV_CODE_RATE_HP/LP V4L/DVB (9179): S2API: frontend.h cleanup V4L/DVB (9178): cx24116: Add module parameter to return SNR as ESNO. V4L/DVB (9177): S2API: Change _8PSK / _16APSK to PSK_8 and APSK_16 V4L/DVB (9176): Add support for DvbWorld USB cards with STV0288 demodulator. V4L/DVB (9175): Remove NULL pointer in stb6000 driver. V4L/DVB (9174): Allow custom inittab for ST STV0288 demodulator. V4L/DVB (9173): S2API: Remove the hardcoded command limit during validation V4L/DVB (9172): S2API: Bugfix related to DVB-S / DVB-S2 tuning for the legacy API. V4L/DVB (9171): S2API: Stop an OOPS if illegal commands are dumped in S2API. V4L/DVB (9170): cx24116: Sanity checking to data input via S2API to the cx24116 demod. V4L/DVB (9169): uvcvideo: Support two new Bison Electronics webcams. V4L/DVB (9168): Add support for MSI TV@nywhere Plus remote V4L/DVB: v4l2-dev: remove duplicated #include ...
-
Elias Oltmanns authored
Put some information (and pointers to more) into the kernel's doc tree, describing briefly the interface to the kernel's disk head unloading facility. Information about how to set up a complete shock protection system under GNU/Linux can be found on the web and is referenced accordingly. v3: Here is some final polish including various spelling corrections pointed out by Grant Grundler and Peter Moulder. Also, I have added some information about the timing constraints related to disk head parking. The patch looks more impressive than it really is and I think it would be alright just to incorporate it into the original patch so as not to clutter up the git log. Signed-off-by: Elias Oltmanns <eo@nebensachen.de> Cc: Jeff Garzik <jeff@garzik.org> Cc: Randy Dunlap <randy.dunlap@oracle.com> Cc: Tejun Heo <htejun@gmail.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
-
Elias Oltmanns authored
On user request (through sysfs), the IDLE IMMEDIATE command with UNLOAD FEATURE as specified in ATA-7 is issued to the device and processing of the request queue is stopped thereafter until the specified timeout expires or user space asks to resume normal operation. This is supposed to prevent the heads of a hard drive from accidentally crashing onto the platter when a heavy shock is anticipated (like a falling laptop expected to hit the floor). Port resets are deferred whenever a device on that port is in the parked state. v3: Elias Oltmanns <eo@nebensachen.de> wrote: [...] > >> 1. Make sure that no negative value is being passed to > >> jiffies_to_msecs() in ide_park_show(). > >> 2. Drop the superfluous variable hwif in ide_special_rq(). > >> 3. Skip initialisation of task and tf in ide_special_rq() if we are not > >> handling a (un)park request. > > > > Well, #3 should have been done differently because we donn't want to > > check for REQ_(UN)?PARK_HEADS more often than is necessary. > > While preparing the backport to 2.6.27, it has just occurred to me that > we need to clear the IDE_DFLAG_PARKED flag in ide_disk_pre_reset() > because this flag must not be set after *any* sort of access to the > device. v4: Fix a memory leak due to a missing blk_put_request() in issue_park_cmd(). Additionally, we should plug the queue when enqueueing the unpark request because there is no guarantee that the park timeout has not expired by then. Even though the chance for that to happen is very slim, the request might end up hanging in the queue until the next I/O operation is queued up. While at it, clean up the code a little: - make issue_park_cmd() a function of type void since nobody cares for the return value anyway; - use blk_start_queueing() instead of __blk_run_queue() since we don't have to worry about recursion; - remove a superfluous pointer deference in task_no_data_intr(). Signed-off-by: Elias Oltmanns <eo@nebensachen.de> Cc: Jeff Garzik <jeff@garzik.org>, Cc: Randy Dunlap <randy.dunlap@oracle.com> Cc: Tejun Heo <htejun@gmail.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
-