On Mon, Nov 11, 2019 at 11:39:29AM +0900, Damien Le Moal wrote: > There is no need to arbitrarily limit the size of a report zone to the > number of zones defined by SD_ZBC_REPORT_MAX_ZONES. Rather, simply > calculate the report buffer size needed for the requested number of > zones without exceeding the device total number of zones. This buffer > size limitation to the hardware maximum transfer size and page mapping > capabilities is kept unchanged. Starting with this initial buffer size, > the allocation is optimized by iterating over decreasing buffer size > until the allocation succeeds (each iteration is allowed to fail fast > using the __GFP_NORETRY flag). This ensures forward progress for zone > reports and avoids failures of zones revalidation under memory pressure. > > While at it, also replace the hard coded 512 B sector size with the > SECTOR_SIZE macro. > > Signed-off-by: Damien Le Moal <damien.lemoal@xxxxxxx> Looks fine even with the __vmalloc usage: Reviewed-by: Christoph Hellwig <hch@xxxxxx>