- 19 May, 2021 14 commits
-
-
Martin Kaiser authored
This is another case where we may remove list entries while we iterate over the list. Use list_for_each_entry_safe to avoid an endless loop. Fixes: 23017c88 ("staging: rtl8188eu: Use list iterators and helpers") Signed-off-by: Martin Kaiser <martin@kaiser.cx> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Link: https://lore.kernel.org/r/20210517201826.25150-2-martin@kaiser.cxSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
Martin Kaiser authored
rtw_free_network_queue iterates over the scanned wireless networks and calls _rtw_free_network for each of them. In some cases, _rtw_free_network removes a network from the list. We have to use list_for_each_entry_safe if we remove list entries while we iterate over a list. Fixes: 23017c88 ("staging: rtl8188eu: Use list iterators and helpers") Signed-off-by: Martin Kaiser <martin@kaiser.cx> Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Link: https://lore.kernel.org/r/20210517201826.25150-1-martin@kaiser.cxSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
Desmond Cheong Zhi Xi authored
This commit removes dead code to resolve the following checkpatch.pl warning: WARNING: Block comments use * on subsequent lines + /* + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x ", "Latest error condition(should be 0)", \ Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Desmond Cheong Zhi Xi <desmondcheongzx@gmail.com> Link: https://lore.kernel.org/r/20210518044119.2960494-8-desmondcheongzx@gmail.comSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
Desmond Cheong Zhi Xi authored
In addition to removing line continuations, the indentation of some lines were fixed. This was done to avoid the introduction of new warnings because removing the line continuations caused checkpatch.pl to emit "CHECK: Alignment should match open parenthesis". This commit fixes the following checkpatch.pl warnings: WARNING: Avoid unnecessary line continuations + "\r\n %-35s = %d/ %d/ %d", "Ant PG Num/ Ant Mech/ Ant Pos:", \ WARNING: Avoid unnecessary line continuations + "\r\n %-35s = %s / %d", "BT stack/ hci ext ver", \ WARNING: Avoid unnecessary line continuations + "\r\n %-35s = %d_%x/ 0x%x/ 0x%x(%d)", "CoexVer/ FwVer/ PatchVer", \ WARNING: Avoid unnecessary line continuations + "\r\n %-35s = %d / %d(%d)", "Dot11 channel / HsChnl(HsMode)", \ WARNING: Avoid unnecessary line continuations + "\r\n %-35s = %02x %02x %02x ", "H2C Wifi inform bt chnl Info", \ WARNING: Avoid unnecessary line continuations + "\r\n %-35s = %d/ %d", "Wifi rssi/ HS rssi", \ WARNING: Avoid unnecessary line continuations + "\r\n %-35s = %d/ %d/ %d/ %s", "Wifi bLink/ bRoam/ bScan/ bHi-Pri", \ WARNING: Avoid unnecessary line continuations + "\r\n %-35s = %s / %s/ %s/ AP =%d/ %s ", "Wifi status", \ WARNING: Avoid unnecessary line continuations + "\r\n %-35s = %d/ %d/ %d/ %d/ %d", "sta/vwifi/hs/p2pGo/p2pGc", \ WARNING: Avoid unnecessary line continuations + "\r\n %-35s = [%s/ %d/ %d/ %d] ", "BT [status/ rssi/ retryCnt/ popCnt]", \ WARNING: Avoid unnecessary line continuations + "\r\n %-35s = %d / %d / %d / %d", "SCO/HID/PAN/A2DP", \ WARNING: Avoid unnecessary line continuations + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s", "BT Role", \ WARNING: Avoid unnecessary line continuations + "\r\n %-35s = %s", "BT Info A2DP rate", \ WARNING: Avoid unnecessary line continuations + "\r\n %-35s = %02x %02x %02x %02x %02x %02x %02x(%d)", GLBtInfoSrc8723b1Ant[i], \ WARNING: Avoid unnecessary line continuations + "\r\n %-35s = %s/%s, (0x%x/0x%x)", "PS state, IPS/LPS, (lps/rpwm)", \ WARNING: Avoid unnecessary line continuations + "\r\n %-35s = %d", "SM[LowPenaltyRA]", \ WARNING: Avoid unnecessary line continuations + "\r\n %-35s = %s/ %s/ %d ", "DelBA/ BtCtrlAgg/ AggSize", \ WARNING: Avoid unnecessary line continuations + "\r\n %-35s = 0x%x ", "Rate Mask", \ WARNING: Avoid unnecessary line continuations + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %02x %02x %02x %02x %02x case-%d (auto:%d)", "PS TDMA", \ WARNING: Avoid unnecessary line continuations + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d", "Coex Table Type", \ WARNING: Avoid unnecessary line continuations + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d", "IgnWlanAct", \ WARNING: Avoid unnecessary line continuations + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/0x%x/0x%x/0x%x", "backup ARFR1/ARFR2/RL/AMaxTime", \ WARNING: Avoid unnecessary line continuations + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/0x%x/0x%x/0x%x", "0x430/0x434/0x42a/0x456", \ WARNING: Avoid unnecessary line continuations + "\r\n %-35s = 0x%x/ 0x%x/ 0x%x", "0x778/0x6cc/0x880[29:25]", \ WARNING: Avoid unnecessary line continuations + "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x", "0x948/ 0x67[5] / 0x764 / 0x76e", \ WARNING: Avoid unnecessary line continuations + "\r\n %-35s = 0x%x/ 0x%x/ 0x%x", "0x92c[1:0]/ 0x930[7:0]/0x944[1:0]", \ WARNING: Avoid unnecessary line continuations + "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x", "0x38[11]/0x40/0x4c[24:23]/0x64[0]", \ WARNING: Avoid unnecessary line continuations + "\r\n %-35s = 0x%x/ 0x%x", "0x550(bcn ctrl)/0x522", \ WARNING: Avoid unnecessary line continuations + "\r\n %-35s = 0x%x/ 0x%x", "0xc50(dig)/0x49c(null-drop)", \ WARNING: Avoid unnecessary line continuations + (u4Tmp[1] & 0xffff) + (u4Tmp[2] & 0xffff) + \ WARNING: Avoid unnecessary line continuations + "\r\n %-35s = 0x%x/ 0x%x/ 0x%x", "OFDM-CCA/OFDM-FA/CCK-FA", \ WARNING: Avoid unnecessary line continuations + "\r\n %-35s = %d/ %d/ %d/ %d", "CRC_OK CCK/11g/11n/11n-Agg", \ WARNING: Avoid unnecessary line continuations + "\r\n %-35s = %d/ %d/ %d/ %d", "CRC_Err CCK/11g/11n/11n-Agg", \ WARNING: Avoid unnecessary line continuations + "\r\n %-35s = 0x%x/ 0x%x/ 0x%x", "0x6c0/0x6c4/0x6c8(coexTable)", \ WARNING: Avoid unnecessary line continuations + "\r\n %-35s = %d/ %d", "0x770(high-pri rx/tx)", \ WARNING: Avoid unnecessary line continuations + "\r\n %-35s = %d/ %d", "0x774(low-pri rx/tx)", \ Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Desmond Cheong Zhi Xi <desmondcheongzx@gmail.com> Link: https://lore.kernel.org/r/20210518044119.2960494-7-desmondcheongzx@gmail.comSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
Desmond Cheong Zhi Xi authored
This commit fixes the following checkpatch.pl warning: WARNING: Missing a blank line after declarations + struct btc_bt_link_info *pBtLinkInfo = &pBtCoexist->btLinkInfo; + halbtc8723b1ant_BtRssiState(2, 28, 0); Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Desmond Cheong Zhi Xi <desmondcheongzx@gmail.com> Link: https://lore.kernel.org/r/20210518044119.2960494-6-desmondcheongzx@gmail.comSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
Desmond Cheong Zhi Xi authored
This commit fixes the following checkpatch.pl warnings: WARNING: Comparisons should place the constant on the right side of the test + BT_8723B_1ANT_BT_STATUS_NON_CONNECTED_IDLE == pCoexDm->btStatus WARNING: Comparisons should place the constant on the right side of the test + (BT_8723B_1ANT_BT_STATUS_NON_CONNECTED_IDLE == pCoexDm->btStatus) WARNING: Comparisons should place the constant on the right side of the test + (BT_8723B_1ANT_BT_STATUS_CONNECTED_IDLE == pCoexDm->btStatus) WARNING: Comparisons should place the constant on the right side of the test + (BT_8723B_1ANT_BT_STATUS_CONNECTED_IDLE == pCoexDm->btStatus) WARNING: Comparisons should place the constant on the right side of the test + (BT_8723B_1ANT_BT_STATUS_CONNECTED_IDLE != pCoexDm->btStatus) WARNING: Comparisons should place the constant on the right side of the test + (BT_8723B_1ANT_WIFI_STATUS_NON_CONNECTED_ASSO_AUTH_SCAN == wifiStatus) || WARNING: Comparisons should place the constant on the right side of the test + (BT_8723B_1ANT_WIFI_STATUS_CONNECTED_SCAN == wifiStatus) || WARNING: Comparisons should place the constant on the right side of the test + (BT_8723B_1ANT_WIFI_STATUS_CONNECTED_SPECIAL_PKT == wifiStatus) WARNING: Comparisons should place the constant on the right side of the test + if (BT_8723B_1ANT_WIFI_STATUS_CONNECTED_IDLE == wifiStatus) { WARNING: Comparisons should place the constant on the right side of the test + if (BT_8723B_1ANT_BT_STATUS_ACL_BUSY == pCoexDm->btStatus) { WARNING: Comparisons should place the constant on the right side of the test + (BT_8723B_1ANT_BT_STATUS_SCO_BUSY == pCoexDm->btStatus) || WARNING: Comparisons should place the constant on the right side of the test + (BT_8723B_1ANT_BT_STATUS_ACL_SCO_BUSY == pCoexDm->btStatus) WARNING: Comparisons should place the constant on the right side of the test + if (BT_8723B_1ANT_BT_STATUS_ACL_BUSY == pCoexDm->btStatus) { WARNING: Comparisons should place the constant on the right side of the test + (BT_8723B_1ANT_BT_STATUS_SCO_BUSY == pCoexDm->btStatus) || WARNING: Comparisons should place the constant on the right side of the test + (BT_8723B_1ANT_BT_STATUS_ACL_SCO_BUSY == pCoexDm->btStatus) WARNING: Comparisons should place the constant on the right side of the test + BT_8723B_1ANT_BT_STATUS_ACL_BUSY == pCoexDm->btStatus && WARNING: Comparisons should place the constant on the right side of the test + if (BT_8723B_1ANT_BT_STATUS_ACL_BUSY == pCoexDm->btStatus) { WARNING: Comparisons should place the constant on the right side of the test + (BT_8723B_1ANT_BT_STATUS_SCO_BUSY == pCoexDm->btStatus) || WARNING: Comparisons should place the constant on the right side of the test + (BT_8723B_1ANT_BT_STATUS_ACL_SCO_BUSY == pCoexDm->btStatus) WARNING: Comparisons should place the constant on the right side of the test + if (BT_8723B_1ANT_BT_STATUS_ACL_BUSY == pCoexDm->btStatus) { WARNING: Comparisons should place the constant on the right side of the test + (BT_8723B_1ANT_BT_STATUS_SCO_BUSY == pCoexDm->btStatus) || WARNING: Comparisons should place the constant on the right side of the test + (BT_8723B_1ANT_BT_STATUS_ACL_SCO_BUSY == pCoexDm->btStatus) WARNING: Comparisons should place the constant on the right side of the test + (BT_8723B_1ANT_BT_STATUS_ACL_BUSY == pCoexDm->btStatus) || WARNING: Comparisons should place the constant on the right side of the test + (BT_8723B_1ANT_BT_STATUS_SCO_BUSY == pCoexDm->btStatus) || WARNING: Comparisons should place the constant on the right side of the test + (BT_8723B_1ANT_BT_STATUS_ACL_SCO_BUSY == pCoexDm->btStatus) WARNING: Comparisons should place the constant on the right side of the test + ((bWifiUnderBMode) ? "11b" : ((BTC_WIFI_BW_LEGACY == wifiBw) ? "11bg" : (((BTC_WIFI_BW_HT40 == wifiBw) ? "HT40" : "HT20")))), WARNING: Comparisons should place the constant on the right side of the test + ((!bWifiBusy) ? "idle" : ((BTC_WIFI_TRAFFIC_TX == wifiTrafficDir) ? "uplink" : "downlink")), WARNING: Comparisons should place the constant on the right side of the test + ((pBtCoexist->btInfo.bBtDisabled) ? ("disabled") : ((pCoexSta->bC2hBtInquiryPage) ? ("inquiry/page scan") : ((BT_8723B_1ANT_BT_STATUS_NON_CONNECTED_IDLE == pCoexDm->btStatus) ? "non-connected idle" : WARNING: Comparisons should place the constant on the right side of the test + ((BT_8723B_1ANT_BT_STATUS_CONNECTED_IDLE == pCoexDm->btStatus) ? "connected-idle" : "busy")))), WARNING: Comparisons should place the constant on the right side of the test + if (BTC_IPS_ENTER == type) { WARNING: Comparisons should place the constant on the right side of the test + } else if (BTC_IPS_LEAVE == type) { WARNING: Comparisons should place the constant on the right side of the test + if (BTC_LPS_ENABLE == type) { WARNING: Comparisons should place the constant on the right side of the test + } else if (BTC_LPS_DISABLE == type) { WARNING: Comparisons should place the constant on the right side of the test + if (BTC_SCAN_START == type) { WARNING: Comparisons should place the constant on the right side of the test + if (BTC_SCAN_START == type) { WARNING: Comparisons should place the constant on the right side of the test + } else if (BTC_SCAN_FINISH == type) { WARNING: Comparisons should place the constant on the right side of the test + if (BTC_ASSOCIATE_START == type) { WARNING: Comparisons should place the constant on the right side of the test + if (BTC_ASSOCIATE_START == type) { WARNING: Comparisons should place the constant on the right side of the test + } else if (BTC_ASSOCIATE_FINISH == type) { WARNING: Comparisons should place the constant on the right side of the test + if (BTC_MEDIA_CONNECT == type) { WARNING: Comparisons should place the constant on the right side of the test + if ((BTC_MEDIA_CONNECT == type) && (wifiCentralChnl <= 14)) { WARNING: Comparisons should place the constant on the right side of the test + if (BTC_WIFI_BW_HT40 == wifiBw) WARNING: Comparisons should place the constant on the right side of the test + BTC_PACKET_DHCP == type || WARNING: Comparisons should place the constant on the right side of the test + BTC_PACKET_EAPOL == type || WARNING: Comparisons should place the constant on the right side of the test + BTC_PACKET_ARP == type WARNING: Comparisons should place the constant on the right side of the test + if (BTC_PACKET_ARP == type) { WARNING: Comparisons should place the constant on the right side of the test + BTC_PACKET_DHCP == type || WARNING: Comparisons should place the constant on the right side of the test + BTC_PACKET_EAPOL == type || WARNING: Comparisons should place the constant on the right side of the test + ((BTC_PACKET_ARP == type) && (pCoexSta->bWiFiIsHighPriTask)) WARNING: Comparisons should place the constant on the right side of the test + if (BT_INFO_SRC_8723B_1ANT_WIFI_FW != rspSource) { WARNING: Comparisons should place the constant on the right side of the test + if (BT_8723B_1ANT_BT_STATUS_ACL_BUSY != pCoexDm->btStatus) WARNING: Comparisons should place the constant on the right side of the test + (BT_8723B_1ANT_BT_STATUS_ACL_BUSY == pCoexDm->btStatus) || WARNING: Comparisons should place the constant on the right side of the test + (BT_8723B_1ANT_BT_STATUS_SCO_BUSY == pCoexDm->btStatus) || WARNING: Comparisons should place the constant on the right side of the test + (BT_8723B_1ANT_BT_STATUS_ACL_SCO_BUSY == pCoexDm->btStatus) WARNING: Comparisons should place the constant on the right side of the test + if (BTC_WIFI_PNP_SLEEP == pnpState) { WARNING: Comparisons should place the constant on the right side of the test + } else if (BTC_WIFI_PNP_WAKE_UP == pnpState) { Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Desmond Cheong Zhi Xi <desmondcheongzx@gmail.com> Link: https://lore.kernel.org/r/20210518044119.2960494-5-desmondcheongzx@gmail.comSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
Desmond Cheong Zhi Xi authored
This commit fixes the following checkpatch.pl errors: WARNING: suspect code indent for conditional statements (32, 33) + if (nCCKLockCounter < 5) + nCCKLockCounter++; WARNING: suspect code indent for conditional statements (32, 33) + if (nCCKLockCounter > 0) + nCCKLockCounter--; WARNING: suspect code indent for conditional statements (24, 26) + if (nCCKLockCounter > 0) + nCCKLockCounter--; WARNING: suspect code indent for conditional statements (16, 17) + if (nCCKLockCounter >= 5) + pCoexSta->bCCKLock = true; WARNING: suspect code indent for conditional statements (16, 17) + else + pCoexSta->bCCKLock = false; WARNING: suspect code indent for conditional statements (16, 17) + if (nCCKLockCounter == 0) + pCoexSta->bCCKLock = false; WARNING: suspect code indent for conditional statements (16, 17) + else + pCoexSta->bCCKLock = true; WARNING: suspect code indent for conditional statements (16, 25) + if (bScan || bLink || bRoam) { + if (bScan) WARNING: Statements should start on a tabstop + if (bScan) WARNING: Statements should start on a tabstop + else Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Desmond Cheong Zhi Xi <desmondcheongzx@gmail.com> Link: https://lore.kernel.org/r/20210518044119.2960494-4-desmondcheongzx@gmail.comSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
Desmond Cheong Zhi Xi authored
This commit fixes the following checkpatch.pl errors: WARNING: please, no space before tabs +^I/* ^IRx Aggregation related setting */$ WARNING: please, no space before tabs +^Iu8 ^IH2C_Parameter[1] = {0};$ WARNING: please, no space before tabs +^Iu8 ^IH2C_Parameter[6] = {0};$ WARNING: please, no space before tabs +^I/* u32 ^I^IfwVer = 0; */$ WARNING: please, no space before tabs +/* ^ISoftware Coex Mechanism start */$ WARNING: please, no space before tabs +/* ^INon-Software Coex Mechanism start */$ WARNING: please, no space before tabs +^I/* ^IBIT0: "0" for no antenna inverse; "1" for antenna inverse */$ WARNING: please, no space before tabs +^I/* ^IBIT1: "0" for internal switch; "1" for external switch */$ WARNING: please, no space before tabs +^I/* ^IBIT2: "0" for one antenna; "1" for two antenna */$ Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Desmond Cheong Zhi Xi <desmondcheongzx@gmail.com> Link: https://lore.kernel.org/r/20210518044119.2960494-3-desmondcheongzx@gmail.comSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
Desmond Cheong Zhi Xi authored
This commit fixes the following checkpatch.pl warnings: WARNING: braces {} are not necessary for any arm of this statement + if (btRssi >= (rssiThresh + BTC_RSSI_COEX_THRESH_TOL_8723B_1ANT)) { [...] + } else { [...] WARNING: braces {} are not necessary for any arm of this statement + if (btRssi < rssiThresh) { [...] + } else { [...] WARNING: braces {} are not necessary for single statement blocks + if (rssiThresh > rssiThresh1) { + return pCoexSta->preBtRssiState; + } WARNING: braces {} are not necessary for any arm of this statement + if (btRssi >= (rssiThresh + BTC_RSSI_COEX_THRESH_TOL_8723B_1ANT)) { [...] + } else { [...] WARNING: braces {} are not necessary for any arm of this statement + if (btRssi >= (rssiThresh1 + BTC_RSSI_COEX_THRESH_TOL_8723B_1ANT)) { [...] + } else if (btRssi < rssiThresh) { [...] + } else { [...] WARNING: braces {} are not necessary for any arm of this statement + if (btRssi < rssiThresh1) { [...] + } else { [...] WARNING: braces {} are not necessary for single statement blocks + if (!pBtLinkInfo->bBtLinkExist) { + return algorithm; + } WARNING: braces {} are not necessary for any arm of this statement + if (bBtHsOn) { [...] + } else { [...] WARNING: braces {} are not necessary for any arm of this statement + if (bBtHsOn) { [...] + } else { [...] WARNING: braces {} are not necessary for any arm of this statement + if (bBtHsOn) { [...] + } else { [...] WARNING: braces {} are not necessary for any arm of this statement + if (bBtHsOn) { [...] + } else { [...] WARNING: braces {} are not necessary for any arm of this statement + if (bBtHsOn) { [...] + } else { [...] WARNING: braces {} are not necessary for any arm of this statement + if (bBtHsOn) { [...] + } else { [...] WARNING: braces {} are not necessary for any arm of this statement + if (bBtHsOn) { [...] + } else { [...] WARNING: braces {} are not necessary for any arm of this statement + if (u1Tmp & BIT0) { [...] + } else { [...] WARNING: braces {} are not necessary for single statement blocks + if (pBtCoexist->bManualControl) { + return; + } WARNING: braces {} are not necessary for single statement blocks + if (pBtCoexist->bStopCoexDm) { + return; + } WARNING: braces {} are not necessary for single statement blocks + if (pCoexSta->bUnderIps) { + return; + } WARNING: braces {} are not necessary for any arm of this statement + if ((pBtLinkInfo->bA2dpExist) && (pCoexSta->bC2hBtInquiryPage)) { [...] + } else [...] WARNING: braces {} are not necessary for any arm of this statement + if (BTC_LPS_ENABLE == type) { [...] + } else if (BTC_LPS_DISABLE == type) { [...] WARNING: braces {} are not necessary for single statement blocks + if (!pBtCoexist->bManualControl && !pBtCoexist->bStopCoexDm) { + halbtc8723b1ant_IgnoreWlanAct(pBtCoexist, FORCE_EXEC, false); + } Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Desmond Cheong Zhi Xi <desmondcheongzx@gmail.com> Link: https://lore.kernel.org/r/20210518044119.2960494-2-desmondcheongzx@gmail.comSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
Michael Straube authored
Rename field bLedOn of struct LED_871x to avoid camel case. bLedOn -> led_on Signed-off-by: Michael Straube <straube.linux@gmail.com> Link: https://lore.kernel.org/r/20210516103009.7184-1-straube.linux@gmail.comSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
Shreyansh Chouhan authored
Placed constants on the right side of the equality tests in rtw_xmit.c Signed-off-by: Shreyansh Chouhan <chouhan.shreyansh630@gmail.com> Link: https://lore.kernel.org/r/20210515081446.676500-1-chouhan.shreyansh630@gmail.comSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
Cláudio Maia authored
Fixes the following sparse warnings: drivers/staging/rtl8192u/r8192U_core.c:2306:21: warning: symbol 'i' shadows an earlier one drivers/staging/rtl8192u/r8192U_core.c:2254:13: originally declared here drivers/staging/rtl8192u/r8192U_core.c:2371:29: warning: symbol 'i' shadows an earlier one drivers/staging/rtl8192u/r8192U_core.c:2254:13: originally declared here Signed-off-by: Cláudio Maia <clrrm@isep.ipp.pt> Link: https://lore.kernel.org/r/20210514230459.15752-1-clrrm@isep.ipp.ptSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
Guenter Roeck authored
The result of container_of() operations is never NULL unless the extracted element is the first element of the embedded structure. This is not the case here. The NULL check is therefore unnecessary and misleading. Remove it. This change was made automatically with the following Coccinelle script. @@ type t; identifier v; statement s; @@ <+... ( t v = container_of(...); | v = container_of(...); ) ... when != v - if (\( !v \| v == NULL \) ) s ...+> Signed-off-by: Guenter Roeck <linux@roeck-us.net> Link: https://lore.kernel.org/r/20210514165557.1384106-1-linux@roeck-us.netSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
Dan Carpenter authored
We recently moved "bssid" off the stack, and allocated it with kmalloc() instead. Unfortunately, this one line was overlooked so it will copy random data into the &tgt_network->network instead of the data we want. Fixes: 0b18e5fe ("staging: rtl8712: rtl871x_mp_ioctl: Move a large data struct onto the heap") Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Link: https://lore.kernel.org/r/YJ6IrfkbdaTHgpEv@mwandaSigned-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 17 May, 2021 1 commit
-
-
Greg Kroah-Hartman authored
We need the staging and iio fixes in here as well. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 16 May, 2021 7 commits
-
-
Linus Torvalds authored
-
Linus Torvalds authored
Merge tag 'driver-core-5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core Pull driver core fixes from Greg KH: "Here are two driver fixes for driver core changes that happened in 5.13-rc1. The clk driver fix resolves a many-reported issue with booting some devices, and the USB typec fix resolves the reported problem of USB systems on some embedded boards. Both of these have been in linux-next this week with no reported issues" * tag 'driver-core-5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: clk: Skip clk provider registration when np is NULL usb: typec: tcpm: Don't block probing of consumers of "connector" nodes
-
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/stagingLinus Torvalds authored
Pull staging and IIO driver fixes from Greg KH: "Here are some small IIO driver fixes and one Staging driver fix for 5.13-rc2. Nothing major, just some resolutions for reported problems: - gcc-11 bogus warning fix for rtl8723bs - iio driver tiny fixes All of these have been in linux-next for many days with no reported issues" * tag 'staging-5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: iio: tsl2583: Fix division by a zero lux_val iio: core: return ENODEV if ioctl is unknown iio: core: fix ioctl handlers removal iio: gyro: mpu3050: Fix reported temperature value iio: hid-sensors: select IIO_TRIGGERED_BUFFER under HID_SENSOR_IIO_TRIGGER iio: proximity: pulsedlight: Fix rumtime PM imbalance on error iio: light: gp2ap002: Fix rumtime PM imbalance on error staging: rtl8723bs: avoid bogus gcc warning
-
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usbLinus Torvalds authored
Pull USB fixes from Greg KH: "Here are some small USB fixes for 5.13-rc2. They consist of a number of resolutions for reported issues: - typec fixes for found problems - xhci fixes and quirk additions - dwc3 driver fixes - minor fixes found by Coverity - cdc-wdm fixes for reported problems All of these have been in linux-next for a few days with no reported issues" * tag 'usb-5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (28 commits) usb: core: hub: fix race condition about TRSMRCY of resume usb: typec: tcpm: Fix SINK_DISCOVERY current limit for Rp-default xhci: Add reset resume quirk for AMD xhci controller. usb: xhci: Increase timeout for HC halt xhci: Do not use GFP_KERNEL in (potentially) atomic context xhci: Fix giving back cancelled URBs even if halted endpoint can't reset xhci-pci: Allow host runtime PM as default for Intel Alder Lake xHCI usb: musb: Fix an error message usb: typec: tcpm: Fix wrong handling for Not_Supported in VDM AMS usb: typec: tcpm: Send DISCOVER_IDENTITY from dedicated work usb: typec: ucsi: Retrieve all the PDOs instead of just the first 4 usb: fotg210-hcd: Fix an error message docs: usb: function: Modify path name usb: dwc3: omap: improve extcon initialization usb: typec: ucsi: Put fwnode in any case during ->probe() usb: typec: tcpm: Fix wrong handling in GET_SINK_CAP usb: dwc2: Remove obsolete MODULE_ constants from platform.c usb: dwc3: imx8mp: fix error return code in dwc3_imx8mp_probe() usb: dwc3: imx8mp: detect dwc3 core node via compatible string usb: dwc3: gadget: Return success always for kick transfer in ep queue ...
-
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tipLinus Torvalds authored
Pull timer fixes from Thomas Gleixner: "Two fixes for timers: - Use the ALARM feature check in the alarmtimer core code insted of the old method of checking for the set_alarm() callback. Drivers can have that callback set but the feature bit cleared. If such a RTC device is selected then alarms wont work. - Use a proper define to let the preprocessor check whether Hyper-V VDSO clocksource should be active. The code used a constant in an enum with #ifdef, which evaluates to always false and disabled the clocksource for VDSO" * tag 'timers-urgent-2021-05-16' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: clocksource/drivers/hyper-v: Re-enable VDSO_CLOCKMODE_HVCLOCK on X86 alarmtimer: Check RTC features instead of ops
-
git://git.kernel.org/pub/scm/linux/kernel/git/xen/tipLinus Torvalds authored
Pull xen fixes from Juergen Gross: - two patches for error path fixes - a small series for fixing a regression with swiotlb with Xen on Arm * tag 'for-linus-5.13b-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: xen/swiotlb: check if the swiotlb has already been initialized arm64: do not set SWIOTLB_NO_FORCE when swiotlb is required xen/arm: move xen_swiotlb_detect to arm/swiotlb-xen.h xen/unpopulated-alloc: fix error return code in fill_list() xen/gntdev: fix gntdev_mmap() error exit path
-
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tipLinus Torvalds authored
Pull x86 fixes from Borislav Petkov: "The three SEV commits are not really urgent material. But we figured since getting them in now will avoid a huge amount of conflicts between future SEV changes touching tip, the kvm and probably other trees, sending them to you now would be best. The idea is that the tip, kvm etc branches for 5.14 will all base ontop of -rc2 and thus everything will be peachy. What is more, those changes are purely mechanical and defines movement so they should be fine to go now (famous last words). Summary: - Enable -Wundef for the compressed kernel build stage - Reorganize SEV code to streamline and simplify future development" * tag 'x86_urgent_for_v5.13_rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/boot/compressed: Enable -Wundef x86/msr: Rename MSR_K8_SYSCFG to MSR_AMD64_SYSCFG x86/sev: Move GHCB MSR protocol and NAE definitions in a common header x86/sev-es: Rename sev-es.{ch} to sev.{ch}
-
- 15 May, 2021 18 commits
-
-
git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linuxLinus Torvalds authored
Pull powerpc fixes from Michael Ellerman: - Fix a regression in the conversion of the 64-bit BookE interrupt entry to C. - Fix KVM hosts running with the hash MMU since the recent KVM gfn changes. - Fix a deadlock in our paravirt spinlocks when hcall tracing is enabled. - Several fixes for oopses in our runtime code patching for security mitigations. - A couple of minor fixes for the recent conversion of 32-bit interrupt entry/exit to C. - Fix __get_user() causing spurious crashes in sigreturn due to a bad inline asm constraint, spotted with GCC 11. - A fix for the way we track IRQ masking state vs NMI interrupts when using the new scv system call entry path. - A couple more minor fixes. Thanks to Cédric Le Goater, Christian Zigotzky, Christophe Leroy, Naveen N. Rao, Nicholas Piggin Paul Menzel, and Sean Christopherson. * tag 'powerpc-5.13-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: powerpc/64e/interrupt: Fix nvgprs being clobbered powerpc/64s: Make NMI record implicitly soft-masked code as irqs disabled powerpc/64s: Fix stf mitigation patching w/strict RWX & hash powerpc/64s: Fix entry flush patching w/strict RWX & hash powerpc/64s: Fix crashes when toggling entry flush barrier powerpc/64s: Fix crashes when toggling stf barrier KVM: PPC: Book3S HV: Fix kvm_unmap_gfn_range_hv() for Hash MMU powerpc/legacy_serial: Fix UBSAN: array-index-out-of-bounds powerpc/signal: Fix possible build failure with unsafe_copy_fpr_{to/from}_user powerpc/uaccess: Fix __get_user() with CONFIG_CC_HAS_ASM_GOTO_OUTPUT powerpc/pseries: warn if recursing into the hcall tracing code powerpc/pseries: use notrace hcall variant for H_CEDE idle powerpc/pseries: Don't trace hcall tracing wrapper powerpc/pseries: Fix hcall tracing recursion in pv queued spinlocks powerpc/syscall: Calling kuap_save_and_lock() is wrong powerpc/interrupts: Fix kuep_unlock() call
-
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tipLinus Torvalds authored
Pull scheduler fixes from Ingo Molnar: "Fix an idle CPU selection bug, and an AMD Ryzen maximum frequency enumeration bug" * tag 'sched-urgent-2021-05-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86, sched: Fix the AMD CPPC maximum performance value on certain AMD Ryzen generations sched/fair: Fix clearing of has_idle_cores flag in select_idle_cpu()
-
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tipLinus Torvalds authored
Pull objtool fixes from Ingo Molnar: "Fix a couple of endianness bugs that crept in" * tag 'objtool-urgent-2021-05-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: objtool/x86: Fix elf_add_alternative() endianness objtool: Fix elf_create_undef_symbol() endianness
-
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tipLinus Torvalds authored
Pull irq fix from Ingo Molnar: "Fix build warning on SH" * tag 'irq-urgent-2021-05-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: sh: Remove unused variable
-
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tipLinus Torvalds authored
Pull x86 stack randomization fix from Ingo Molnar: "Fix an assembly constraint that affected LLVM up to version 12" * tag 'core-urgent-2021-05-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: stack: Replace "o" output with "r" input constraint
-
Linus Torvalds authored
Merge misc fixes from Andrew Morton: "13 patches. Subsystems affected by this patch series: resource, squashfs, hfsplus, modprobe, and mm (hugetlb, slub, userfaultfd, ksm, pagealloc, kasan, pagemap, and ioremap)" * emailed patches from Andrew Morton <akpm@linux-foundation.org>: mm/ioremap: fix iomap_max_page_shift docs: admin-guide: update description for kernel.modprobe sysctl hfsplus: prevent corruption in shrinking truncate mm/filemap: fix readahead return types kasan: fix unit tests with CONFIG_UBSAN_LOCAL_BOUNDS enabled mm: fix struct page layout on 32-bit systems ksm: revert "use GET_KSM_PAGE_NOLOCK to get ksm page in remove_rmap_item_from_tree()" userfaultfd: release page in error path to avoid BUG_ON squashfs: fix divide error in calculate_skip() kernel/resource: fix return code check in __request_free_mem_region mm, slub: move slub_debug static key enabling outside slab_mutex mm/hugetlb: fix cow where page writtable in child mm/hugetlb: fix F_SEAL_FUTURE_WRITE
-
git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arcLinus Torvalds authored
Pull ARC fixes from Vineet Gupta: - PAE fixes - syscall num check off-by-one bug - misc fixes * tag 'arc-5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc: ARC: mm: Use max_high_pfn as a HIGHMEM zone border ARC: mm: PAE: use 40-bit physical page mask ARC: entry: fix off-by-one error in syscall number validation ARC: kgdb: add 'fallthrough' to prevent a warning arc: Fix typos/spellos
-
git://git.kernel.dk/linux-blockLinus Torvalds authored
Pull block fixes from Jens Axboe: - Fix for shared tag set exit (Bart) - Correct ioctl range for zoned ioctls (Damien) - Removed dead/unused function (Lin) - Fix perf regression for shared tags (Ming) - Fix out-of-bounds issue with kyber and preemption (Omar) - BFQ merge fix (Paolo) - Two error handling fixes for nbd (Sun) - Fix weight update in blk-iocost (Tejun) - NVMe pull request (Christoph): - correct the check for using the inline bio in nvmet (Chaitanya Kulkarni) - demote unsupported command warnings (Chaitanya Kulkarni) - fix corruption due to double initializing ANA state (me, Hou Pu) - reset ns->file when open fails (Daniel Wagner) - fix a NULL deref when SEND is completed with error in nvmet-rdma (Michal Kalderon) - Fix kernel-doc warning (Bart) * tag 'block-5.13-2021-05-14' of git://git.kernel.dk/linux-block: block/partitions/efi.c: Fix the efi_partition() kernel-doc header blk-mq: Swap two calls in blk_mq_exit_queue() blk-mq: plug request for shared sbitmap nvmet: use new ana_log_size instead the old one nvmet: seset ns->file when open fails nbd: share nbd_put and return by goto put_nbd nbd: Fix NULL pointer in flush_workqueue blkdev.h: remove unused codes blk_account_rq block, bfq: avoid circular stable merges blk-iocost: fix weight updates of inner active iocgs nvmet: demote fabrics cmd parse err msg to debug nvmet: use helper to remove the duplicate code nvmet: demote discovery cmd parse err msg to debug nvmet-rdma: Fix NULL deref when SEND is completed with error nvmet: fix inline bio check for passthru nvmet: fix inline bio check for bdev-ns nvme-multipath: fix double initialization of ANA state kyber: fix out of bounds access when preempted block: uapi: fix comment about block device ioctl
-
git://git.kernel.dk/linux-blockLinus Torvalds authored
Pull io_uring fixes from Jens Axboe: "Just a few minor fixes/changes: - Fix issue with double free race for linked timeout completions - Fix reference issue with timeouts - Remove last few places that make SQPOLL special, since it's just an io thread now. - Bump maximum allowed registered buffers, as we don't allocate as much anymore" * tag 'io_uring-5.13-2021-05-14' of git://git.kernel.dk/linux-block: io_uring: increase max number of reg buffers io_uring: further remove sqpoll limits on opcodes io_uring: fix ltout double free on completion race io_uring: fix link timeout refs
-
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofsLinus Torvalds authored
Pull erofs fixes from Gao Xiang: "This mainly fixes 1 lcluster-sized pclusters for the big pcluster feature, which can be forcely generated by mkfs as a specific on-disk case for per-(sub)file compression strategies but missed to handle in runtime properly. Also, documentation updates are included to fix the broken illustration due to the ReST conversion by accident and complete the big pcluster introduction. Summary: - update documentation to fix the broken illustration due to ReST conversion by accident at that time and complete the big pcluster introduction - fix 1 lcluster-sized pclusters for the big pcluster feature" * tag 'erofs-for-5.13-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs: erofs: fix 1 lcluster-sized pcluster for big pcluster erofs: update documentation about data compression erofs: fix broken illustration in documentation
-
git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimmLinus Torvalds authored
Pull libnvdimm fixes from Dan Williams: "A regression fix for a bootup crash condition introduced in this merge window and some other minor fixups: - Fix regression in ACPI NFIT table handling leading to crashes and driver load failures. - Move the nvdimm mailing list - Miscellaneous minor fixups" * tag 'libnvdimm-fixes-5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: ACPI: NFIT: Fix support for variable 'SPA' structure size MAINTAINERS: Move nvdimm mailing list tools/testing/nvdimm: Make symbol '__nfit_test_ioremap' static libnvdimm: Remove duplicate struct declaration
-
git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimmLinus Torvalds authored
Pull dax fixes from Dan Williams: "A fix for a hang condition due to missed wakeups in the filesystem-dax core when exercised by virtiofs. This bug has been there from the beginning, but the condition has not triggered on other filesystems since they hold a lock over invalidation events" * tag 'dax-fixes-5.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: dax: Wake up all waiters after invalidating dax entry dax: Add a wakeup mode parameter to put_unlocked_entry() dax: Add an enum for specifying dax wakup mode
-
git://anongit.freedesktop.org/drm/drmLinus Torvalds authored
Pull more drm fixes from Dave Airlie: "Looks like I wasn't the only one not fully switched on this week. The msm pull has a missing tag so I missed it, and i915 team were a bit late. In my defence I did have a day with the roof of my home office removed, so was sitting at my kids desk. msm: - dsi regression fix - dma-buf pinning fix - displayport fixes - llc fix i915: - Fix active callback alignment annotations and subsequent crashes - Retract link training strategy to slow and wide, again - Avoid division by zero on gen2 - Use correct width reads for C0DRB3/C1DRB3 registers - Fix double free in pdp allocation failure path - Fix HDMI 2.1 PCON downstream caps check" * tag 'drm-fixes-2021-05-15' of git://anongit.freedesktop.org/drm/drm: drm/i915: Use correct downstream caps for check Src-Ctl mode for PCON drm/i915/overlay: Fix active retire callback alignment drm/i915: Fix crash in auto_retire drm/i915/gt: Fix a double free in gen8_preallocate_top_level_pdp drm/i915: Read C0DRB3/C1DRB3 as 16 bits again drm/i915: Avoid div-by-zero on gen2 drm/i915/dp: Use slow and wide link training for everything drm/msm/dp: initialize audio_comp when audio starts drm/msm/dp: check sink_count before update is_connected status drm/msm: fix minor version to indicate MSM_PARAM_SUSPENDS support drm/msm/dsi: fix msm_dsi_phy_get_clk_provider return code drm/msm/dsi: dsi_phy_28nm_8960: fix uninitialized variable access drm/msm: fix LLC not being enabled for mmu500 targets drm/msm: Do not unpin/evict exported dma-buf's
-
Tetsuo Handa authored
syzbot is reporting OOB write at vga16fb_imageblit() [1], for resize_screen() from ioctl(VT_RESIZE) returns 0 without checking whether requested rows/columns fit the amount of memory reserved for the graphical screen if current mode is KD_GRAPHICS. ---------- #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <sys/ioctl.h> #include <linux/kd.h> #include <linux/vt.h> int main(int argc, char *argv[]) { const int fd = open("/dev/char/4:1", O_RDWR); struct vt_sizes vt = { 0x4100, 2 }; ioctl(fd, KDSETMODE, KD_GRAPHICS); ioctl(fd, VT_RESIZE, &vt); ioctl(fd, KDSETMODE, KD_TEXT); return 0; } ---------- Allow framebuffer drivers to return -EINVAL, by moving vc->vc_mode != KD_GRAPHICS check from resize_screen() to fbcon_resize(). Link: https://syzkaller.appspot.com/bug?extid=1f29e126cf461c4de3b3 [1] Reported-by: syzbot <syzbot+1f29e126cf461c4de3b3@syzkaller.appspotmail.com> Suggested-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> Tested-by: syzbot <syzbot+1f29e126cf461c4de3b3@syzkaller.appspotmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-
Christophe Leroy authored
iomap_max_page_shift is expected to contain a page shift, so it can't be a 'bool', has to be an 'unsigned int' And fix the default values: P4D_SHIFT is when huge iomap is allowed. However, on some architectures (eg: powerpc book3s/64), P4D_SHIFT is not a constant so it can't be used to initialise a static variable. So, initialise iomap_max_page_shift with a maximum shift supported by the architecture, it is gated by P4D_SHIFT in vmap_try_huge_p4d() anyway. Link: https://lkml.kernel.org/r/ad2d366015794a9f21320dcbdd0a8eb98979e9df.1620898113.git.christophe.leroy@csgroup.eu Fixes: bbc180a5 ("mm: HUGE_VMAP arch support cleanup") Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> Reviewed-by: Nicholas Piggin <npiggin@gmail.com> Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-
Rasmus Villemoes authored
When I added CONFIG_MODPROBE_PATH, I neglected to update Documentation/. It's still true that this defaults to /sbin/modprobe, but now via a level of indirection. So document that the kernel might have been built with something other than /sbin/modprobe as the initial value. Link: https://lkml.kernel.org/r/20210420125324.1246826-1-linux@rasmusvillemoes.dk Fixes: 17652f42 ("modules: add CONFIG_MODPROBE_PATH") Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Jessica Yu <jeyu@kernel.org> Cc: Luis Chamberlain <mcgrof@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-
Jouni Roivas authored
I believe there are some issues introduced by commit 31651c60 ("hfsplus: avoid deadlock on file truncation") HFS+ has extent records which always contains 8 extents. In case the first extent record in catalog file gets full, new ones are allocated from extents overflow file. In case shrinking truncate happens to middle of an extent record which locates in extents overflow file, the logic in hfsplus_file_truncate() was changed so that call to hfs_brec_remove() is not guarded any more. Right action would be just freeing the extents that exceed the new size inside extent record by calling hfsplus_free_extents(), and then check if the whole extent record should be removed. However since the guard (blk_cnt > start) is now after the call to hfs_brec_remove(), this has unfortunate effect that the last matching extent record is removed unconditionally. To reproduce this issue, create a file which has at least 10 extents, and then perform shrinking truncate into middle of the last extent record, so that the number of remaining extents is not under or divisible by 8. This causes the last extent record (8 extents) to be removed totally instead of truncating into middle of it. Thus this causes corruption, and lost data. Fix for this is simply checking if the new truncated end is below the start of this extent record, making it safe to remove the full extent record. However call to hfs_brec_remove() can't be moved to it's previous place since we're dropping ->tree_lock and it can cause a race condition and the cached info being invalidated possibly corrupting the node data. Another issue is related to this one. When entering into the block (blk_cnt > start) we are not holding the ->tree_lock. We break out from the loop not holding the lock, but hfs_find_exit() does unlock it. Not sure if it's possible for someone else to take the lock under our feet, but it can cause hard to debug errors and premature unlocking. Even if there's no real risk of it, the locking should still always be kept in balance. Thus taking the lock now just before the check. Link: https://lkml.kernel.org/r/20210429165139.3082828-1-jouni.roivas@tuxera.com Fixes: 31651c60 ("hfsplus: avoid deadlock on file truncation") Signed-off-by: Jouni Roivas <jouni.roivas@tuxera.com> Reviewed-by: Anton Altaparmakov <anton@tuxera.com> Cc: Anatoly Trosinenko <anatoly.trosinenko@gmail.com> Cc: Viacheslav Dubeyko <slava@dubeyko.com> Cc: <stable@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-
Matthew Wilcox (Oracle) authored
A readahead request will not allocate more memory than can be represented by a size_t, even on systems that have HIGHMEM available. Change the length functions from returning an loff_t to a size_t. Link: https://lkml.kernel.org/r/20210510201201.1558972-1-willy@infradead.org Fixes: 32c0a6bc ("btrfs: add and use readahead_batch_length") Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Reviewed-by: Darrick J. Wong <djwong@kernel.org> Reported-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-