Bug 16733 - I2O Block Device support in LILO
I2O Block Device support in LILO
Status: CLOSED RAWHIDE
Product: Red Hat Linux
Classification: Retired
Component: lilo (Show other bugs)
7.0
i386 Linux
medium Severity medium
: ---
: ---
Assigned To: Michael K. Johnson
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2000-08-22 13:14 EDT by Boji Tony Kannanthanam
Modified: 2008-05-01 11:37 EDT (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2000-08-22 13:14:42 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Boji Tony Kannanthanam 2000-08-22 13:14:40 EDT
Linux I2O Stack introduces a new type of Block device: I2O Block device. 
The following patch taken against LILO ver 21, adds support for such 
devices. Please include this in the LILO version which ships with 
Pinstripe.
Thanks
Boji

==========================================================

diff -u lilo/VERSION lilo-i2o/VERSION
--- lilo/VERSION	Fri Dec  4 13:20:12 1998
+++ lilo-i2o/VERSION	Thu Apr  6 13:19:17 2000
@@ -1 +1 @@
-21
+21-i2o
diff -u lilo/geometry.c lilo-i2o/geometry.c
--- lilo/geometry.c	Wed Oct 14 13:24:41 1998
+++ lilo-i2o/geometry.c	Thu Apr  6 13:23:09 2000
@@ -120,7 +120,8 @@
       MAJOR(dev) == MAJOR_IDE3 || MAJOR(dev) == MAJOR_IDE4 ||
       MAJOR(dev) == MAJOR_IDE5 || MAJOR(dev) == MAJOR_IDE6 ||
       MAJOR(dev) == MAJOR_XT || MAJOR(dev) == MAJOR_SD ||
-      MAJOR(dev) == MAJOR_ESDI || MAJOR(dev) == MAJOR_DAC960;
+      MAJOR(dev) == MAJOR_ESDI || MAJOR(dev) == MAJOR_DAC960 ||
+      MAJOR(dev) == MAJOR_I2O;
 }
 
 
@@ -342,6 +343,16 @@
 	    geo->sectors = hdprm.sectors;
 	    geo->start = hdprm.start;
 	    break;
+	case MAJOR_I2O:
+	     geo->device = 0x80+last_dev(MAJOR_HD,64)+(MINOR(device) >> 4);
+	    if (ioctl(fd,HDIO_GETGEO,&hdprm) < 0)
+		die("geo_query_dev HDIO_GETGEO (dev 0x%04x): %s",device,
+		  strerror(errno));
+	    geo->heads = hdprm.heads;
+	    geo->cylinders = hdprm.cylinders;
+	    geo->sectors = hdprm.sectors;
+	    geo->start = hdprm.start;
+	    break;
 	default:
 	    die("Sorry, don't know how to handle device 0x%04x",device);
     }
@@ -384,6 +395,8 @@
 	    return MINOR(device) >> 4 ? 0 : !last_dev(MAJOR_HD,64);
 	case MAJOR_DAC960:
 	    return MINOR(device) >> 3 ? 0 : !last_dev(MAJOR_HD,64);
+	case MAJOR_I2O:
+	    return MINOR(device) >> 4 ? 0 : !last_dev(MAJOR_HD,64);
 	default:
 	    return 1; /* user knows what (s)he's doing ... I hope */
     }
diff -u lilo/lilo.h lilo-i2o/lilo.h
--- lilo/lilo.h	Fri Dec  4 11:55:31 1998
+++ lilo-i2o/lilo.h	Mon Mar  6 16:08:06 2000
@@ -39,6 +39,7 @@
 #define MAJOR_DAC960	48 /* First Mylex DAC960 PCI RAID controller */
 #define MAJOR_IDE5	55 /* IDE on fifth interface */
 #define MAJOR_IDE6	57 /* IDE on sixth interface */
+#define MAJOR_I2O	80 /* I2O based controller */
 
 #define MAX_IMAGES      ((SECTOR_SIZE*2-2)/sizeof(IMAGE_DESCR))
 			  /* maximum number of images */
--- lilo/partition.c	Wed Oct 14 13:12:42 1998
+++ lilo-i2o/partition.c	Wed Apr  5 14:25:14 2000
@@ -46,7 +46,7 @@
        MAJOR(dev_nr) != MAJOR_SD && MAJOR(dev_nr) != MAJOR_IDE2 &&
        MAJOR(dev_nr) != MAJOR_IDE3 && MAJOR(dev_nr) != MAJOR_IDE4 &&
        MAJOR(dev_nr) != MAJOR_IDE5 && MAJOR(dev_nr) != MAJOR_IDE6 &&
-      MAJOR(dev_nr) != MAJOR_DAC960)) return;
+      MAJOR(dev_nr) != MAJOR_DAC960) || MAJOR(dev_nr) != MAJOR_I2O) 
return;
     geo_get(&geo,dev_nr & ~PART_MASK,-1,1);
     fd = dev_open(&dev,dev_nr & ~PART_MASK,cfg_get_flag(cf_options,"fix-
table")
       && !test ? O_RDWR : O_RDONLY);
Comment 1 Preston Brown 2000-08-23 11:16:45 EDT
included in 21.4.4-10 and later.

Note You need to log in before you can comment on or make changes to this bug.