On 6/4/20 5:04 AM, Paolo Bonzini wrote: > On 04/06/20 11:31, Ye Bin wrote: >> diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c >> index 435781a16875..03dd265c30be 100644 >> --- a/drivers/ata/libata-scsi.c >> +++ b/drivers/ata/libata-scsi.c >> @@ -3684,12 +3684,13 @@ static unsigned int ata_scsi_mode_select_xlat(struct ata_queued_cmd *qc) >> { >> struct scsi_cmnd *scmd = qc->scsicmd; >> const u8 *cdb = scmd->cmnd; >> - const u8 *p; >> u8 pg, spg; >> unsigned six_byte, pg_len, hdr_len, bd_len; >> int len; >> u16 fp = (u16)-1; >> u8 bp = 0xff; >> + u8 buffer[64]; >> + const u8 *p = buffer; >> >> VPRINTK("ENTER\n"); >> >> @@ -3723,12 +3724,14 @@ static unsigned int ata_scsi_mode_select_xlat(struct ata_queued_cmd *qc) >> if (!scsi_sg_count(scmd) || scsi_sglist(scmd)->length < len) >> goto invalid_param_len; >> >> - p = page_address(sg_page(scsi_sglist(scmd))); >> - >> /* Move past header and block descriptors. */ >> if (len < hdr_len) >> goto invalid_param_len; >> >> + if (!sg_copy_to_buffer(scsi_sglist(scmd), scsi_sg_count(scmd), >> + buffer, 64)) > > sizeof(buffer) would be better. But anyway: > > Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> > > Perhaps the maintainer can fix it up on commit. Please resend it it, thanks. -- Jens Axboe