[IDE] siimage.c: fix PIO settings programming

From: Ryan Earl <heretic@clanhk.org>.

A 32-bit argument was being passed instead of a 16-bit argument to the
function referenced by hwif->OUTW(val, port), thus clobbering the stack.

The 16 most significant bits of speedt were being used as the whole first
argument (this will always be 0) and the lower order 16-bits of speedt were
then being used as the upper order 16-bits of the address/port, while the
upper 16-bits of the real address/port were the lower 16-bits.

 drivers/ide/pci/siimage.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff -puN drivers/ide/pci/siimage.c~ide-siimage-stack-fix drivers/ide/pci/siimage.c
--- linux-2.6.0-test11/drivers/ide/pci/siimage.c~ide-siimage-stack-fix	2003-12-07 18:04:46.512116120 +0100
+++ linux-2.6.0-test11-root/drivers/ide/pci/siimage.c	2003-12-07 18:10:07.997242952 +0100
@@ -1,5 +1,5 @@
 /*
- * linux/drivers/ide/pci/siimage.c		Version 1.07	Nov 30, 2003
+ * linux/drivers/ide/pci/siimage.c		Version 1.08	Dec 7, 2003
  *
  * Copyright (C) 2001-2002	Andre Hedrick <andre@linux-ide.org>
  * Copyright (C) 2003		Red Hat <alan@redhat.com>
@@ -266,7 +266,7 @@ static byte siimage_taskfile_timing (ide
 static void siimage_tuneproc (ide_drive_t *drive, byte mode_wanted)
 {
 	ide_hwif_t *hwif	= HWIF(drive);
-	u32 speedt		= 0;
+	u16 speedt		= 0;
 	u16 speedp		= 0;
 	unsigned long addr	= siimage_seldev(drive, 0x04);
 	unsigned long tfaddr	= siimage_selreg(hwif, 0x02);

_