ソースを参照

IB/qib: Fix size of cc_supported_table_entries

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>
Mike Marciniszyn 13 年 前
コミット
5d7fe4efbf
1 ファイル変更5 行追加5 行削除
  1. 5 5
      drivers/infiniband/hw/qib/qib.h

+ 5 - 5
drivers/infiniband/hw/qib/qib.h

@@ -656,6 +656,11 @@ struct qib_pportdata {
 	/* 16 congestion entries with each entry corresponding to a SL */
 	/* 16 congestion entries with each entry corresponding to a SL */
 	struct ib_cc_congestion_entry_shadow *congestion_entries;
 	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 */
 	/* Total number of congestion control table entries */
 	u16 total_cct_entry;
 	u16 total_cct_entry;
 
 
@@ -667,11 +672,6 @@ struct qib_pportdata {
 
 
 	/* CA's max number of 64 entry units in the congestion control table */
 	/* CA's max number of 64 entry units in the congestion control table */
 	u8 cc_max_table_entries;
 	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. */
 /* Observers. Not to be taken lightly, possibly not to ship. */