Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@xxxxxxxxx> --- drivers/ide/ide-taskfile.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) Index: b/drivers/ide/ide-taskfile.c =================================================================== --- a/drivers/ide/ide-taskfile.c +++ b/drivers/ide/ide-taskfile.c @@ -758,15 +758,25 @@ int ide_cmd_ioctl (ide_drive_t *drive, u tf->lbam = 0x4f; tf->lbah = 0xc2; tfargs.tf_flags = IDE_TFLAG_OUT_TF | IDE_TFLAG_IN_NSECT; + + /* SMART READ DATA / LOG */ + if (tf->feature == 0xD0 || tf->feature == 0xD5) + tfargs.data_phase = TASKFILE_IN; + else + tfargs.data_phase = TASKFILE_NO_DATA; } else { tf->nsect = args[1]; tfargs.tf_flags = IDE_TFLAG_OUT_FEATURE | IDE_TFLAG_OUT_NSECT | IDE_TFLAG_IN_NSECT; + + if (args[3]) + tfargs.data_phase = TASKFILE_IN; + else + tfargs.data_phase = TASKFILE_NO_DATA; } tf->command = args[0]; - tfargs.data_phase = args[3] ? TASKFILE_IN : TASKFILE_NO_DATA; - if (args[3]) { + if (tfargs.data_phase == TASKFILE_IN) { tfargs.tf_flags |= IDE_TFLAG_IO_16BIT; bufsize = SECTOR_WORDS * 4 * args[3]; buf = kzalloc(bufsize, GFP_KERNEL); -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html