hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/infiniband/hw/hfi1/firmware.c
....@@ -1786,6 +1786,7 @@
17861786
17871787 if (!dd->platform_config.data) {
17881788 dd_dev_err(dd, "%s: Missing config file\n", __func__);
1789
+ ret = -EINVAL;
17891790 goto bail;
17901791 }
17911792 ptr = (u32 *)dd->platform_config.data;
....@@ -1794,6 +1795,7 @@
17941795 ptr++;
17951796 if (magic_num != PLATFORM_CONFIG_MAGIC_NUM) {
17961797 dd_dev_err(dd, "%s: Bad config file\n", __func__);
1798
+ ret = -EINVAL;
17971799 goto bail;
17981800 }
17991801
....@@ -1817,6 +1819,7 @@
18171819 if (file_length > dd->platform_config.size) {
18181820 dd_dev_info(dd, "%s:File claims to be larger than read size\n",
18191821 __func__);
1822
+ ret = -EINVAL;
18201823 goto bail;
18211824 } else if (file_length < dd->platform_config.size) {
18221825 dd_dev_info(dd,
....@@ -1837,6 +1840,7 @@
18371840 dd_dev_err(dd, "%s: Failed validation at offset %ld\n",
18381841 __func__, (ptr - (u32 *)
18391842 dd->platform_config.data));
1843
+ ret = -EINVAL;
18401844 goto bail;
18411845 }
18421846
....@@ -1868,11 +1872,8 @@
18681872 2;
18691873 break;
18701874 case PLATFORM_CONFIG_RX_PRESET_TABLE:
1871
- /* fall through */
18721875 case PLATFORM_CONFIG_TX_PRESET_TABLE:
1873
- /* fall through */
18741876 case PLATFORM_CONFIG_QSFP_ATTEN_TABLE:
1875
- /* fall through */
18761877 case PLATFORM_CONFIG_VARIABLE_SETTINGS_TABLE:
18771878 pcfgcache->config_tables[table_type].num_table =
18781879 table_length_dwords;
....@@ -1883,6 +1884,7 @@
18831884 __func__, table_type,
18841885 (ptr - (u32 *)
18851886 dd->platform_config.data));
1887
+ ret = -EINVAL;
18861888 goto bail; /* We don't trust this file now */
18871889 }
18881890 pcfgcache->config_tables[table_type].table = ptr;
....@@ -1890,15 +1892,10 @@
18901892 /* metadata table */
18911893 switch (table_type) {
18921894 case PLATFORM_CONFIG_SYSTEM_TABLE:
1893
- /* fall through */
18941895 case PLATFORM_CONFIG_PORT_TABLE:
1895
- /* fall through */
18961896 case PLATFORM_CONFIG_RX_PRESET_TABLE:
1897
- /* fall through */
18981897 case PLATFORM_CONFIG_TX_PRESET_TABLE:
1899
- /* fall through */
19001898 case PLATFORM_CONFIG_QSFP_ATTEN_TABLE:
1901
- /* fall through */
19021899 case PLATFORM_CONFIG_VARIABLE_SETTINGS_TABLE:
19031900 break;
19041901 default:
....@@ -1907,6 +1904,7 @@
19071904 __func__, table_type,
19081905 (ptr -
19091906 (u32 *)dd->platform_config.data));
1907
+ ret = -EINVAL;
19101908 goto bail; /* We don't trust this file now */
19111909 }
19121910 pcfgcache->config_tables[table_type].table_metadata =
....@@ -2028,15 +2026,10 @@
20282026
20292027 switch (table) {
20302028 case PLATFORM_CONFIG_SYSTEM_TABLE:
2031
- /* fall through */
20322029 case PLATFORM_CONFIG_PORT_TABLE:
2033
- /* fall through */
20342030 case PLATFORM_CONFIG_RX_PRESET_TABLE:
2035
- /* fall through */
20362031 case PLATFORM_CONFIG_TX_PRESET_TABLE:
2037
- /* fall through */
20382032 case PLATFORM_CONFIG_QSFP_ATTEN_TABLE:
2039
- /* fall through */
20402033 case PLATFORM_CONFIG_VARIABLE_SETTINGS_TABLE:
20412034 if (field && field < platform_config_table_limits[table])
20422035 src_ptr =
....@@ -2139,11 +2132,8 @@
21392132 pcfgcache->config_tables[table_type].table;
21402133 break;
21412134 case PLATFORM_CONFIG_RX_PRESET_TABLE:
2142
- /* fall through */
21432135 case PLATFORM_CONFIG_TX_PRESET_TABLE:
2144
- /* fall through */
21452136 case PLATFORM_CONFIG_QSFP_ATTEN_TABLE:
2146
- /* fall through */
21472137 case PLATFORM_CONFIG_VARIABLE_SETTINGS_TABLE:
21482138 src_ptr = pcfgcache->config_tables[table_type].table;
21492139