diff --git a/[refs] b/[refs] index 19060a40b7d9..e29aaa473450 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5be37bf9c17ffad0590a4044dbb110fe08066923 +refs/heads/master: 5460fc03105fbed01fe27aa572d9f65bb410a61d diff --git a/trunk/drivers/block/nvme-core.c b/trunk/drivers/block/nvme-core.c index 8efdfaa44a59..437637551d1e 100644 --- a/trunk/drivers/block/nvme-core.c +++ b/trunk/drivers/block/nvme-core.c @@ -1206,7 +1206,7 @@ struct nvme_iod *nvme_map_user_pages(struct nvme_dev *dev, int write, if (addr & 3) return ERR_PTR(-EINVAL); - if (!length) + if (!length || length > INT_MAX - PAGE_SIZE) return ERR_PTR(-EINVAL); offset = offset_in_page(addr); @@ -1227,7 +1227,8 @@ struct nvme_iod *nvme_map_user_pages(struct nvme_dev *dev, int write, sg_init_table(sg, count); for (i = 0; i < count; i++) { sg_set_page(&sg[i], pages[i], - min_t(int, length, PAGE_SIZE - offset), offset); + min_t(unsigned, length, PAGE_SIZE - offset), + offset); length -= (PAGE_SIZE - offset); offset = 0; }