- don't abort command when setting maximum logical head number to 0 (Linux 2.6.x
kernels use this value when LBA48 support is available)
This commit is contained in:
parent
8beb290f67
commit
a3b352d4fd
@ -1,5 +1,5 @@
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: harddrv.cc,v 1.194 2006-12-29 11:57:04 vruppert Exp $
|
||||
// $Id: harddrv.cc,v 1.195 2007-02-27 18:16:20 vruppert Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2002 MandrakeSoft S.A.
|
||||
@ -164,7 +164,7 @@ void bx_hard_drive_c::init(void)
|
||||
char ata_name[20];
|
||||
bx_list_c *base;
|
||||
|
||||
BX_DEBUG(("Init $Id: harddrv.cc,v 1.194 2006-12-29 11:57:04 vruppert Exp $"));
|
||||
BX_DEBUG(("Init $Id: harddrv.cc,v 1.195 2007-02-27 18:16:20 vruppert Exp $"));
|
||||
|
||||
for (channel=0; channel<BX_MAX_ATA_CHANNEL; channel++) {
|
||||
sprintf(ata_name, "ata.%d.resources", channel);
|
||||
@ -2226,7 +2226,10 @@ void bx_hard_drive_c::write(Bit32u address, Bit32u value, unsigned io_len)
|
||||
command_aborted(channel, value);
|
||||
break;
|
||||
}
|
||||
if ( BX_SELECTED_CONTROLLER(channel).head_no != (BX_SELECTED_DRIVE(channel).hard_drive->heads-1) ) {
|
||||
if (BX_SELECTED_CONTROLLER(channel).head_no == 0) {
|
||||
// Linux 2.6.x kernels use this value and don't like aborting here
|
||||
BX_ERROR(("ata%d-%d: init drive params: max. logical head number 0 not supported", channel, BX_SLAVE_SELECTED(channel)));
|
||||
} else if (BX_SELECTED_CONTROLLER(channel).head_no != (BX_SELECTED_DRIVE(channel).hard_drive->heads-1)) {
|
||||
BX_ERROR(("ata%d-%d: init drive params: max. logical head number %d not supported", channel, BX_SLAVE_SELECTED(channel),
|
||||
BX_SELECTED_CONTROLLER(channel).head_no));
|
||||
command_aborted(channel, value);
|
||||
|
Loading…
Reference in New Issue
Block a user