summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthijs Kooijman <matthijs@stdin.nl>2013-08-30 16:45:12 (GMT)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-08-30 21:14:51 (GMT)
commit3b9edf88472e9259f9361aa485a1f399e54c4c77 (patch)
tree6135c53b044f77e975ad1e8773c15aebdfa3cc89
parent4ab799df6d71694ce091780af31484d6a63c2939 (diff)
downloadlinux-fsl-qoriq-3b9edf88472e9259f9361aa485a1f399e54c4c77.tar.xz
staging: dwc2: fix off-by-one in check for max_packet_count parameter
Previously, the max_packet_count could be set to 1 << x, where x is the number of bits available (width + 4 in the code). Since 1 << x requires x + 1 bits to represent, this will not work. The real maximum value is (1 << x) - 1. This value is already used the default when the set value is invalid, but the upper limit for the set value was off-by-one. This change makes the check the same as the one for max_transfer_size, which was already correct. Signed-off-by: Matthijs Kooijman <matthijs@stdin.nl> Acked-by: Paul Zimmerman <paulz@synopsys.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/staging/dwc2/core.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/staging/dwc2/core.c b/drivers/staging/dwc2/core.c
index a090f79..5f09f47 100644
--- a/drivers/staging/dwc2/core.c
+++ b/drivers/staging/dwc2/core.c
@@ -2209,7 +2209,7 @@ int dwc2_set_param_max_packet_count(struct dwc2_hsotg *hsotg, int val)
GHWCFG3_PACKET_SIZE_CNTR_WIDTH_MASK >>
GHWCFG3_PACKET_SIZE_CNTR_WIDTH_SHIFT;
- if (val < 15 || val > (1 << (width + 4)))
+ if (val < 15 || val >= (1 << (width + 4)))
valid = 0;
if (!valid) {