On Tue, Jul 05, 2022 at 04:50:33PM +0000, Chaitanya Kulkarni wrote: > Darrik, > > Thanks for the reply. > > >> + > >> +/** > >> + * __blkdev_issue_verify - generate number of verify operations > >> + * @bdev: blockdev to issue > >> + * @sector: start sector > >> + * @nr_sects: number of sectors to verify > >> + * @gfp_mask: memory allocation flags (for bio_alloc()) > >> + * @biop: pointer to anchor bio > >> + * > >> + * Description: > >> + * Verify a block range using hardware offload. > >> + * > >> + * The function will emulate verify operation if no explicit hardware > >> + * offloading for verifying is provided. > >> + */ > >> +int __blkdev_issue_verify(struct block_device *bdev, sector_t sector, > >> + sector_t nr_sects, gfp_t gfp_mask, struct bio **biop) > >> +{ > >> + unsigned int max_verify_sectors = bdev_verify_sectors(bdev); > >> + sector_t min_io_sect = (BIO_MAX_VECS << PAGE_SHIFT) >> 9; > >> + struct bio *bio = *biop; > >> + sector_t curr_sects; > >> + char *buf; > >> + > >> + if (!max_verify_sectors) { > >> + int ret = 0; > >> + > >> + buf = kzalloc(min_io_sect << 9, GFP_KERNEL); > > > > k*z*alloc? I don't think you need to zero a buffer that we're reading > > into, right? > > > > --D > > we don't need to but I guess it is just a habit to make sure alloced > buffer is zeored, should I remove it for any particular reason ? What's the point in wasting CPU time zeroing a buffer if you're just going to DMA into it? --D > -ck > >