[ros-kernel] Removable Media Support is Broken.

James Tabor jimtabor at adsl-64-217-116-74.dsl.hstntx.swbell.net
Tue Jul 13 03:07:30 CEST 2004


Ok~

 From Class2.c, line 2345;

  /* Adjust partition-relative starting offset to absolute offset */
   IrpStack->Parameters.Read.ByteOffset.QuadPart +=
     (DeviceExtension->StartingOffset.QuadPart + DeviceExtension->DMByteSkew);
 >>>> added this
DPRINT1("ScsiClassReadWrite() %d\n",IrpStack->Parameters.Read.ByteOffset.QuadPart);
<<<<

Debug dump,

(class2.c:2349) ScsiClassReadWrite() 0
(io/xhaldrv.c:716) xHalIoReadPartitionTable(c1619568 512 1 dedf5ab0)
(class2.c:2349) ScsiClassReadWrite() 0
(class2.c:2349) ScsiClassReadWrite() 0
(io/xhaldrv.c:778) PartitionOffset: 0
(io/xhaldrv.c:801) RealPartitionOffset: 0
(class2.c:2349) ScsiClassReadWrite() 0
(io/xhaldrv.c:817) Magic aa55
(io/xhaldrv.c:853) Disk signature: 0
(io/xhaldrv.c:877) Partition 0: Normal Partition
(io/xhaldrv.c:879) Logical Partition 0
(io/xhaldrv.c:927)  0: nr: 1 boot: 1 type: 6 start: 0x4000 count: 0x5ffc000
(io/xhaldrv.c:716) xHalIoReadPartitionTable(c1619568 512 1 dedf5ab0)
(class2.c:2349) ScsiClassReadWrite() 0
(class2.c:2349) ScsiClassReadWrite() 0
(io/xhaldrv.c:778) PartitionOffset: 0
(io/xhaldrv.c:801) RealPartitionOffset: 0
(class2.c:2349) ScsiClassReadWrite() 0
(io/xhaldrv.c:817) Magic aa55
(io/xhaldrv.c:853) Disk signature: 0
(io/xhaldrv.c:877) Partition 0: Normal Partition
(io/xhaldrv.c:879) Logical Partition 0
(io/xhaldrv.c:927)  0: nr: 1 boot: 1 type: 6 start: 0x4000 count: 0x5ffc000

*BOOM!* Partition built in DeviceObject!

(disk.c:927) Partition 00: nr: 1 boot: 1 type: 6 offset: 32 size: 196576

Here it gets lost, it reading the boot sector!

(class2.c:2349) ScsiClassReadWrite() 16384 				/512 = 32!!!
(io/xhaldrv.c:716) xHalIoReadPartitionTable(c1619568 512 1 dedf5ab0)
(class2.c:2349) ScsiClassReadWrite() 16384
(class2.c:2349) ScsiClassReadWrite() 16384
(io/xhaldrv.c:778) PartitionOffset: 0
(io/xhaldrv.c:801) RealPartitionOffset: 0
(class2.c:2349) ScsiClassReadWrite() 16384
(io/xhaldrv.c:817) Magic aa55						Magic for a boot sec!
(io/xhaldrv.c:853) Disk signature: 0
(io/xhaldrv.c:716) xHalIoReadPartitionTable(c1619568 512 1 dedf5ab0)
(class2.c:2349) ScsiClassReadWrite() 16384
(class2.c:2349) ScsiClassReadWrite() 16384
(io/xhaldrv.c:778) PartitionOffset: 0
(io/xhaldrv.c:801) RealPartitionOffset: 0
(class2.c:2349) ScsiClassReadWrite() 16384
(io/xhaldrv.c:817) Magic aa55
(io/xhaldrv.c:853) Disk signature: 0
(class2.c:2349) ScsiClassReadWrite() 16384


The re-read for the partition table is getting hosed up. It seems class2 can not
tell if it is real zero or relative zero after the device object is built.
We found our bug,
James



More information about the Ros-kernel mailing list