Message ID | 20220316175317.465-1-biju.das.jz@bp.renesas.com (mailing list archive) |
---|---|
State | Mainlined |
Commit | ebc4cb43ea5ada3db46c80156fca58a54b9bbca8 |
Delegated to: | Geert Uytterhoeven |
Headers | show |
Series | spi: Fix erroneous sgs value with min_t() | expand |
On Wed, 16 Mar 2022 17:53:17 +0000, Biju Das wrote: > While computing sgs in spi_map_buf(), the data type > used in min_t() for max_seg_size is 'unsigned int' where > as that of ctlr->max_dma_len is 'size_t'. > > min_t(unsigned int,x,y) gives wrong results if one of x/y is > 'size_t' > > [...] Applied to https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git for-next Thanks! [1/1] spi: Fix erroneous sgs value with min_t() commit: ebc4cb43ea5ada3db46c80156fca58a54b9bbca8 All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted. You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed. If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced. Please add any relevant lists and maintainers to the CCs when replying to this mail. Thanks, Mark
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index d96082dc3340..fb2896cdb3ce 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -1019,10 +1019,10 @@ int spi_map_buf(struct spi_controller *ctlr, struct device *dev, int i, ret; if (vmalloced_buf || kmap_buf) { - desc_len = min_t(unsigned int, max_seg_size, PAGE_SIZE); + desc_len = min_t(unsigned long, max_seg_size, PAGE_SIZE); sgs = DIV_ROUND_UP(len + offset_in_page(buf), desc_len); } else if (virt_addr_valid(buf)) { - desc_len = min_t(unsigned int, max_seg_size, ctlr->max_dma_len); + desc_len = min_t(size_t, max_seg_size, ctlr->max_dma_len); sgs = DIV_ROUND_UP(len, desc_len); } else { return -EINVAL;