Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2f73b9a8 authored by Roland Dreier's avatar Roland Dreier Committed by James Bottomley
Browse files

[SCSI] mpt2sas: Fix possible integer truncation of cpu_count



When computing reply_queue_count (the number of MSI-X vectors to use),
the driver does

	ioc->reply_queue_count = min_t(u8, ioc->cpu_count,
	    ioc->msix_vector_count);

However, on a big machine, ioc->cpu_count could be outside the range
that fits in a u8; eg a system with 256 CPUs will end up
reply_queue_count set to 0.

Fix this by calculating the minimum as ints and then letting the
assignment to reply_queue_count handle integer demotion.

Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
Acked-by: default avatar"Nandigama, Nagalakshmi" <Nagalakshmi.Nandigama@lsi.com>
Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
parent c24a1710
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1407,7 +1407,7 @@ _base_enable_msix(struct MPT2SAS_ADAPTER *ioc)
	if (_base_check_enable_msix(ioc) != 0)
		goto try_ioapic;

	ioc->reply_queue_count = min_t(u8, ioc->cpu_count,
	ioc->reply_queue_count = min_t(int, ioc->cpu_count,
	    ioc->msix_vector_count);

	entries = kcalloc(ioc->reply_queue_count, sizeof(struct msix_entry),