Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mailbox: mailbox-test: fix null pointer if no mmio

Fix null pointer issue if resource_size is called with no ioresource.

Signed-off-by: Ludovic Barre <ludovic.barre@st.com>
Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com>
Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>

authored by

Fabien Dessenne and committed by
Jassi Brar
6899b4f7 10cfc5a9

+8 -6
+8 -6
drivers/mailbox/mailbox-test.c
··· 363 363 364 364 /* It's okay for MMIO to be NULL */ 365 365 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 366 - size = resource_size(res); 367 366 tdev->tx_mmio = devm_ioremap_resource(&pdev->dev, res); 368 - if (PTR_ERR(tdev->tx_mmio) == -EBUSY) 367 + if (PTR_ERR(tdev->tx_mmio) == -EBUSY) { 369 368 /* if reserved area in SRAM, try just ioremap */ 369 + size = resource_size(res); 370 370 tdev->tx_mmio = devm_ioremap(&pdev->dev, res->start, size); 371 - else if (IS_ERR(tdev->tx_mmio)) 371 + } else if (IS_ERR(tdev->tx_mmio)) { 372 372 tdev->tx_mmio = NULL; 373 + } 373 374 374 375 /* If specified, second reg entry is Rx MMIO */ 375 376 res = platform_get_resource(pdev, IORESOURCE_MEM, 1); 376 - size = resource_size(res); 377 377 tdev->rx_mmio = devm_ioremap_resource(&pdev->dev, res); 378 - if (PTR_ERR(tdev->rx_mmio) == -EBUSY) 378 + if (PTR_ERR(tdev->rx_mmio) == -EBUSY) { 379 + size = resource_size(res); 379 380 tdev->rx_mmio = devm_ioremap(&pdev->dev, res->start, size); 380 - else if (IS_ERR(tdev->rx_mmio)) 381 + } else if (IS_ERR(tdev->rx_mmio)) { 381 382 tdev->rx_mmio = tdev->tx_mmio; 383 + } 382 384 383 385 tdev->tx_channel = mbox_test_request_channel(pdev, "tx"); 384 386 tdev->rx_channel = mbox_test_request_channel(pdev, "rx");