diff options
-rw-r--r-- | drivers/ntb/ntb_transport.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/ntb/ntb_transport.c b/drivers/ntb/ntb_transport.c index b82171e3e07d..bc556e2d7f62 100644 --- a/drivers/ntb/ntb_transport.c +++ b/drivers/ntb/ntb_transport.c | |||
@@ -629,13 +629,16 @@ static void ntb_free_mw(struct ntb_transport_ctx *nt, int num_mw) | |||
629 | } | 629 | } |
630 | 630 | ||
631 | static int ntb_set_mw(struct ntb_transport_ctx *nt, int num_mw, | 631 | static int ntb_set_mw(struct ntb_transport_ctx *nt, int num_mw, |
632 | unsigned int size) | 632 | resource_size_t size) |
633 | { | 633 | { |
634 | struct ntb_transport_mw *mw = &nt->mw_vec[num_mw]; | 634 | struct ntb_transport_mw *mw = &nt->mw_vec[num_mw]; |
635 | struct pci_dev *pdev = nt->ndev->pdev; | 635 | struct pci_dev *pdev = nt->ndev->pdev; |
636 | unsigned int xlat_size, buff_size; | 636 | size_t xlat_size, buff_size; |
637 | int rc; | 637 | int rc; |
638 | 638 | ||
639 | if (!size) | ||
640 | return -EINVAL; | ||
641 | |||
639 | xlat_size = round_up(size, mw->xlat_align_size); | 642 | xlat_size = round_up(size, mw->xlat_align_size); |
640 | buff_size = round_up(size, mw->xlat_align); | 643 | buff_size = round_up(size, mw->xlat_align); |
641 | 644 | ||
@@ -655,7 +658,7 @@ static int ntb_set_mw(struct ntb_transport_ctx *nt, int num_mw, | |||
655 | if (!mw->virt_addr) { | 658 | if (!mw->virt_addr) { |
656 | mw->xlat_size = 0; | 659 | mw->xlat_size = 0; |
657 | mw->buff_size = 0; | 660 | mw->buff_size = 0; |
658 | dev_err(&pdev->dev, "Unable to alloc MW buff of size %d\n", | 661 | dev_err(&pdev->dev, "Unable to alloc MW buff of size %zu\n", |
659 | buff_size); | 662 | buff_size); |
660 | return -ENOMEM; | 663 | return -ENOMEM; |
661 | } | 664 | } |