lkml.org 
[lkml]   [2004]   [May]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [patch 2.6] don't put IDE disks in standby mode on halt on Alpha
Date
On Thursday 27 of May 2004 17:49, Ivan Kokshaysky wrote:
> Spinning the disks down across a 'halt' on Alpha is even
> worse than doing that on reboot on i386 (assuming the
> boot device is IDE disk).
> Typically, the sequence to boot another kernel is:
> # halt
> kernel shuts down, firmware re-initializes,
> then on firmware prompt we type something like
>
> >>> boot -file new_kernel_image.gz

How is it different from reboot?
[ I don't know much about alpha. ]

> Unfortunately, the firmware does not expect the IDE drive
> to be in standby mode and reports 'bootstrap failure' on
> the first and all subsequent boot attempts until the
> drive spins up, which is extremely annoying and
> confuses users a lot.

So how does it work in 2.4?

> This patch allows architectures override the default
> behavior (don't spin the disks down on reboot only)
> in asm/ide.h.

No more <asm/ide.h> crap, please.

> Ivan.
>
> --- 2.6/drivers/ide/ide-disk.c Fri May 21 21:06:12 2004
> +++ linux/drivers/ide/ide-disk.c Fri May 21 21:48:09 2004
> @@ -1723,7 +1723,7 @@ static void ide_device_shutdown(struct d
> {
> ide_drive_t *drive = container_of(dev, ide_drive_t, gendev);
>
> - if (system_state == SYSTEM_RESTART) {
> + if (ide_shutdown_omit_standby(system_state)) {
> ide_cacheflush_p(drive);
> return;
> }
> --- 2.6/include/linux/ide.h Fri May 21 21:47:13 2004
> +++ linux/include/linux/ide.h Fri May 21 21:48:09 2004
> @@ -1709,4 +1709,8 @@ static inline int ata_can_queue(ide_driv
>
> extern struct bus_type ide_bus_type;
>
> +#ifndef ide_shutdown_omit_standby
> +#define ide_shutdown_omit_standby(sys_state) (sys_state == SYSTEM_RESTART)
> +#endif
> +
> #endif /* _IDE_H */
> --- 2.6/include/asm-alpha/ide.h Fri May 21 21:47:54 2004
> +++ linux/include/asm-alpha/ide.h Fri May 21 21:48:34 2004
> @@ -52,6 +52,8 @@ static inline unsigned long ide_default_
> #define ide_init_default_irq(base) ide_default_irq(base)
> #endif
>
> +#define ide_shutdown_omit_standby(sys_state) (sys_state !=
> SYSTEM_POWER_OFF) +
> #include <asm-generic/ide_iops.h>
>
> #endif /* __KERNEL__ */

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 14:03    [W:0.075 / U:0.712 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site