On 1/17/23 16:12, Christoph Hellwig wrote: > On Tue, Jan 17, 2023 at 04:10:15PM +0900, Damien Le Moal wrote: >>>> + bool check_condition, u8 sk, u8 asc, u8 ascq) >>>> { >>>> bool d_sense = (dev->flags & ATA_DFLAG_D_SENSE); >>>> >>>> if (!cmd) >>>> return; >>>> >>>> - scsi_build_sense(cmd, d_sense, sk, asc, ascq); >>>> + scsi_build_sense_buffer(d_sense, cmd->sense_buffer, sk, asc, ascq); >>>> + if (check_condition) >>>> + set_status_byte(cmd, SAM_STAT_CHECK_CONDITION); >>>> } >>> >>> Adding a bool parameter do do something conditional at the end >>> of a function is always a bad idea. Just split out a >>> __ata_scsi_set_sense helper that doesn't set the flag. >> >> What about passing the SAM_STAT_XXX status to set as an argument ? >> Most current call site will be modified to pass SAM_STAT_CHECK_CONDITION, >> and we could add a wrapper ata_scsi_set_check_condition_sense() to >> simplify this most common case. > > What's the point of that? Trying to get to a pretty solution keeping a single line for setting sense + status. But sure, splitting out the status setting works too. -- Damien Le Moal Western Digital Research