Hi Christoph, > From: Christoph Hellwig, Sent: Friday, June 14, 2019 4:25 PM > > On Thu, Jun 13, 2019 at 07:20:15PM +0900, Yoshihiro Shimoda wrote: > > +static unsigned int mmc_get_max_segments(struct mmc_host *host) > > +{ > > + return host->can_merge ? BLK_MAX_SEGMENTS : host->max_segs; > > +} > > Note that BLK_MAX_SEGMENTS is really a little misnamed, it just > is a BLK_DEFAULT_SEGMENTS. I think you are better of picking your > own value here (even if 128 ends up ok) than reusing this somewhat > confusing constant. Thank you for your comments. I got it. I'll fix this. > > + /* > > + * Since blk_mq_alloc_tag_set() calls .init_request() of mmc_mq_ops, > > + * the host->can_merge should be set before to get max_segs from > > + * mmc_get_max_segments(). > > + */ > > + if (host->max_segs < BLK_MAX_SEGMENTS && > > + device_iommu_mapped(mmc_dev(host))) > > + host->can_merge = 1; > > + else > > + host->can_merge = 0; > > + > > can_merge seems a little too generic a name to me. Maybe can_iommu_merge? I'll fix the name. Also, only the device_iommu_mapped() condition wiil cause a problem on iommu=pt [1]. So, I'll add another condition here. [1] https://marc.info/?l=linux-mmc&m=156050608709643&w=2 Best regards, Yoshihiro Shimoda