IB/qib: Fix size of cc_supported_table_entries
authorMike Marciniszyn <mike.marciniszyn@intel.com>
Mon, 23 Jul 2012 16:38:15 +0000 (16:38 +0000)
committerRoland Dreier <roland@purestorage.com>
Mon, 30 Jul 2012 03:26:10 +0000 (20:26 -0700)
Commit 36a8f01cd24b ("IB/qib: Add congestion control agent
implementation") tries to store the value 1984 in a u8, which leads to
truncation.  Fix this by making the member big enough.

This bug was detected by a smatch warning.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Ramkrishna Vepa <ramkrishna.vepa@intel.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/infiniband/hw/qib/qib.h

index 6e19ec8..7b1b866 100644 (file)
@@ -656,6 +656,11 @@ struct qib_pportdata {
        /* 16 congestion entries with each entry corresponding to a SL */
        struct ib_cc_congestion_entry_shadow *congestion_entries;
 
+       /* Maximum number of congestion control entries that the agent expects
+        * the manager to send.
+        */
+       u16 cc_supported_table_entries;
+
        /* Total number of congestion control table entries */
        u16 total_cct_entry;
 
@@ -667,11 +672,6 @@ struct qib_pportdata {
 
        /* CA's max number of 64 entry units in the congestion control table */
        u8 cc_max_table_entries;
-
-       /* Maximum number of congestion control entries that the agent expects
-        * the manager to send.
-        */
-       u8 cc_supported_table_entries;
 };
 
 /* Observers. Not to be taken lightly, possibly not to ship. */