summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-04-08drm/radeon: Fix size overflowxinhui pan
ttm->num_pages is uint32. Hit overflow when << PAGE_SHIFT directly Fixes: 230c079fdcf4 ("drm/ttm: make num_pages uint32_t") Signed-off-by: xinhui pan <xinhui.pan@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
2021-04-08drm/amdgpu: Fix size overflowxinhui pan
ttm->num_pages is uint32. Hit overflow when << PAGE_SHIFT directly Fixes: 230c079fdcf4 ("drm/ttm: make num_pages uint32_t") Signed-off-by: xinhui pan <xinhui.pan@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
2021-04-08PM / devfreq: imx8m-ddrc: Remove unneeded of_match_ptr()Fabio Estevam
i.MX is a DT-only platform, so of_match_ptr() can be safely removed. Remove the unneeded of_match_ptr(). Signed-off-by: Fabio Estevam <festevam@gmail.com> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2021-04-08PM / devfreq: imx-bus: Remove unneeded of_match_ptr()Fabio Estevam
i.MX is a DT-only platform, so of_match_ptr() can be safely removed. Remove the unneeded of_match_ptr(). Signed-off-by: Fabio Estevam <festevam@gmail.com> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2021-04-08PM / devfreq: imx8m-ddrc: Remove imx8m_ddrc_get_dev_statusDong Aisheng
Current driver actually does not support simple ondemand governor as it's unable to provide device load information. So removing the unnecessary callback to avoid confusing. Right now the driver is using userspace governor by default. polling_ms was also dropped as it's not needed for non-ondemand governor. Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2021-04-08PM / devfreq: Remove the invalid description for get_target_freqDong Aisheng
First of all, no_central_polling was removed since commit 7e6fdd4bad03 ("PM / devfreq: Core updates to support devices which can idle") Secondly, get_target_freq() is not only called only with update_devfreq() notified by OPP now, but also min/max freq qos notifier. So remove this invalid description now to avoid confusing. Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2021-04-08PM / devfreq: Check get_dev_status in devfreq_update_statsDong Aisheng
Check .get_dev_status() in devfreq_update_stats in case it's abused when a device does not provide it. Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2021-04-08PM / devfreq: Fix the wrong set_freq path for userspace governor in KconfigDong Aisheng
Fix the wrong set_freq path for userspace governor in Kconfig. Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2021-04-08dt-bindings: devfreq: rk3399_dmc: Remove references of unexistant definesGaël PORTAY
Those DDR related defines do not exist. Replace their references with their numerical constant. Signed-off-by: Gaël PORTAY <gael.portay@collabora.com> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2021-04-08dt-bindings: devfreq: rk3399_dmc: Add rockchip,pmu phandle.Enric Balletbo i Serra
The Rockchip DMC (Dynamic Memory Interface) needs to access to the PMU general register files to know the DRAM type, so add a phandle to the syscon that manages these registers. Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com> Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com> Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Gaël PORTAY <gael.portay@collabora.com> Acked-by: MyungJoo Ham <myungjoo.ham@samsung.com> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2021-04-08PM / devfreq: rk3399_dmc: Simplify with dev_err_probe()Krzysztof Kozlowski
Common pattern of handling deferred probe can be simplified with dev_err_probe(). Less code and the error value gets printed. Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2021-04-08PM / devfreq: Use more accurate returned new_freq as resume_freqDong Aisheng
Use the more accurate returned new_freq as resume_freq. It's the same as how devfreq->previous_freq was updated. Fixes: 83f8ca45afbf0 ("PM / devfreq: add support for suspend/resume of a devfreq device") Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2021-04-08PM / devfreq: Unlock mutex and free devfreq struct in error pathLukasz Luba
The devfreq->lock is held for time of setup. Release the lock in the error path, before jumping to the end of the function. Change the goto destination which frees the allocated memory. Cc: v5.9+ <stable@vger.kernel.org> # v5.9+ Fixes: 4dc3bab8687f ("PM / devfreq: Add support delayed timer for polling mode") Signed-off-by: Lukasz Luba <lukasz.luba@arm.com> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2021-04-08Merge branch 'immutable-devfreq-v5.13-rc1' into devfreq-nextChanwoo Choi
2021-04-07io_uring: clear F_REISSUE right after getting itPavel Begunkov
There are lots of ways r/w request may continue its path after getting REQ_F_REISSUE, it's not necessarily io-wq and can be, e.g. apoll, and submitted via io_async_task_func() -> __io_req_task_submit() Clear the flag right after getting it, so the next attempt is well prepared regardless how the request will be executed. Fixes: 230d50d448ac ("io_uring: move reissue into regular IO path") Signed-off-by: Pavel Begunkov <asml.silence@gmail.com> Link: https://lore.kernel.org/r/11dcead939343f4e27cab0074d34afcab771bfa4.1617842918.git.asml.silence@gmail.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
2021-04-08extcon: qcom-spmi: Add support for VBUS detectionAnirudh Ghayal
VBUS can be detected via a dedicated PMIC pin. Add support for reporting the VBUS status. Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org> Signed-off-by: Kavya Nunna <knunna@codeaurora.org> Signed-off-by: Guru Das Srinagesh <gurus@codeaurora.org> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2021-04-08bindings: pm8941-misc: Add support for VBUS detectionGuru Das Srinagesh
Add interrupt support for reporting VBUS detection status that can be detected via a dedicated PMIC pin. Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org> Signed-off-by: Guru Das Srinagesh <gurus@codeaurora.org> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2021-04-08bindings: pm8941-misc: Convert bindings to YAMLGuru Das Srinagesh
Convert bindings from txt to YAML. Signed-off-by: Guru Das Srinagesh <gurus@codeaurora.org> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2021-04-08extcon: sm5502: Detect OTG when USB_ID is connected to groundNikita Travkin
In it's curent state this driver ignores OTG adapters with ID pin connected to ground. This commit adds a check to set extcon into host mode when such OTG adapter is connected. Signed-off-by: Nikita Travkin <nikitos.tr@gmail.com> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2021-04-08extcon: max8997: Add CHGINS and CHGRM interrupt handlingTimon Baetz
This allows the MAX8997 charger to set the current limit depending on the detected extcon charger type. Signed-off-by: Timon Baetz <timon.baetz@protonmail.com> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2021-04-07soc: qcom: pdr: Fix error return code in pdr_register_listenerQinglang Miao
Fix to return the error code -EREMOTEIO from pdr_register_listener rather than 0. Fixes: fbe639b44a82 ("soc: qcom: Introduce Protection Domain Restart helpers") Reported-by: Hulk Robot <hulkci@huawei.com> Signed-off-by: Qinglang Miao <miaoqinglang@huawei.com> Link: https://lore.kernel.org/r/20201125065034.154217-1-miaoqinglang@huawei.com Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
2021-04-07cifs: escape spaces in share namesMaciek Borzecki
Commit 653a5efb849a ("cifs: update super_operations to show_devname") introduced the display of devname for cifs mounts. However, when mounting a share which has a whitespace in the name, that exact share name is also displayed in mountinfo. Make sure that all whitespace is escaped. Signed-off-by: Maciek Borzecki <maciek.borzecki@gmail.com> CC: <stable@vger.kernel.org> # 5.11+ Reviewed-by: Shyam Prasad N <sprasad@microsoft.com> Signed-off-by: Steve French <stfrench@microsoft.com>
2021-04-07fs: cifs: Remove unnecessary struct declarationWan Jiabing
struct cifs_readdata is declared twice. One is declared at 208th line. And struct cifs_readdata is defined blew. The declaration here is not needed. Remove the duplicate. Signed-off-by: Wan Jiabing <wanjiabing@vivo.com> Reviewed-by: Shyam Prasad N <sprasad@microsoft.com> Signed-off-by: Steve French <stfrench@microsoft.com>
2021-04-07cifs: On cifs_reconnect, resolve the hostname again.Shyam Prasad N
On cifs_reconnect, make sure that DNS resolution happens again. It could be the cause of connection to go dead in the first place. This also contains the fix for a build issue identified by Intel bot. Reported-by: kernel test robot <lkp@intel.com> Signed-off-by: Shyam Prasad N <sprasad@microsoft.com> Reviewed-by: Paulo Alcantara (SUSE) <pc@cjr.nz> Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com> CC: <stable@vger.kernel.org> # 5.11+ Signed-off-by: Steve French <stfrench@microsoft.com>
2021-04-08ARM: dts: Add board-specific compatible string to npcm750-evb devicetreeJonathan Neuschäfer
According to the revised binding, the devicetree needs a board-specific compatible string. Signed-off-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net> Link: https://lore.kernel.org/r/20210320164023.614059-2-j.neuschaefer@gmx.net Signed-off-by: Joel Stanley <joel@jms.id.au>
2021-04-08dt-bindings: arm: Convert nuvoton,npcm750 binding to YAMLJonathan Neuschäfer
The general trend is to have devicetree bindings in YAML format, to allow automatic validation of bindings and devicetrees. Convert the NPCM SoC family's binding to YAML before it accumulates more entries. The nuvoton,npcm750-evb compatible string is introduced to keep the structure of the binding a little simpler. Signed-off-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net> Reviewed-by: Rob Herring <robh@kernel.org> Link: https://lore.kernel.org/r/20210320164023.614059-1-j.neuschaefer@gmx.net Signed-off-by: Joel Stanley <joel@jms.id.au>
2021-04-08ARM: dts: nuvoton: Add Quanta GBS BMC Device TreeGeorge Hung
Add the device tree for the Quanta GBS BMC based on NPCM730 SoC. Signed-off-by: George Hung <george.hung@quantatw.com> Reviewed-by: Joel Stanley <joel@jms.id.au> Link: https://lore.kernel.org/r/20210330071336.18370-1-george.hung@quantatw.com Signed-off-by: Joel Stanley <joel@jms.id.au>
2021-04-07scsi: libsas: Reset num_scatter if libata marks qc as NODATAJolly Shah
When the cache_type for the SCSI device is changed, the SCSI layer issues a MODE_SELECT command. The caching mode details are communicated via a request buffer associated with the SCSI command with data direction set as DMA_TO_DEVICE (scsi_mode_select()). When this command reaches the libata layer, as a part of generic initial setup, libata layer sets up the scatterlist for the command using the SCSI command (ata_scsi_qc_new()). This command is then translated by the libata layer into ATA_CMD_SET_FEATURES (ata_scsi_mode_select_xlat()). The libata layer treats this as a non-data command (ata_mselect_caching()), since it only needs an ATA taskfile to pass the caching on/off information to the device. It does not need the scatterlist that has been setup, so it does not perform dma_map_sg() on the scatterlist (ata_qc_issue()). Unfortunately, when this command reaches the libsas layer (sas_ata_qc_issue()), libsas layer sees it as a non-data command with a scatterlist. It cannot extract the correct DMA length since the scatterlist has not been mapped with dma_map_sg() for a DMA operation. When this partially constructed SAS task reaches pm80xx LLDD, it results in the following warning: "pm80xx_chip_sata_req 6058: The sg list address start_addr=0x0000000000000000 data_len=0x0end_addr_high=0xffffffff end_addr_low=0xffffffff has crossed 4G boundary" Update libsas to handle ATA non-data commands separately so num_scatter and total_xfer_len remain 0. Link: https://lore.kernel.org/r/20210318225632.2481291-1-jollys@google.com Fixes: 53de092f47ff ("scsi: libsas: Set data_dir as DMA_NONE if libata marks qc as NODATA") Tested-by: Luo Jiaxing <luojiaxing@huawei.com> Reviewed-by: John Garry <john.garry@huawei.com> Signed-off-by: Jolly Shah <jollys@google.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2021-04-08ARM: dts: aspeed: mihawk: Add GPIO line namesNichole Wang
Name the GPIOs to help userspace work with them. The names describe the functionality the lines provide, not the net or ball name. This makes it easier to share userspace code across different systems and makes the use of the lines more obvious. Signed-off-by: Nichole Wang <Nichole_Wang@wistron.com> Reviewed-by: Joel Stanley <joel@jms.id.au> Link: https://lore.kernel.org/r/20210330020808.830-1-Nichole_Wang@wistron.com Signed-off-by: Joel Stanley <joel@jms.id.au>
2021-04-08ARM: dts: aspeed: Add Rainier 1S4U machineEddie James
The 1S4U version of the Rainier system has only 4 fans. Create a new tree, include the 4U version, and delete the 2 extra fans. Signed-off-by: Eddie James <eajames@linux.ibm.com> Link: https://lore.kernel.org/r/20210329150020.13632-23-eajames@linux.ibm.com Signed-off-by: Joel Stanley <joel@jms.id.au>
2021-04-08ARM: dts: aspeed: everest: Add size/address cellsJoel Stanley
The gpio and fan nodes reg properties cause dtc to emit a noisy warning about relying on default sizes. Signed-off-by: Joel Stanley <joel@jms.id.au>
2021-04-08ARM: dts: aspeed: everest: Enable fan watchdogEddie James
Set watchdog 1 to pulse the fan watchdog circuit that drives the FAULT pin of the MAX31785, resulting in fans running at full speed, if at any point the BMC stops pulsing it, such as a BMC reboot at runtime. Enable watchdog 2 for BMC reboots. Signed-off-by: Matthew Barth <msbarth@linux.ibm.com> Signed-off-by: Eddie James <eajames@linux.ibm.com> Link: https://lore.kernel.org/r/20210329150020.13632-21-eajames@linux.ibm.com Signed-off-by: Joel Stanley <joel@jms.id.au>
2021-04-08ARM: dts: aspeed: everest: Add RTCEddie James
Add the RTC at the appropriate I2C bus and address. Signed-off-by: Eddie James <eajames@linux.ibm.com> Link: https://lore.kernel.org/r/20210329150020.13632-20-eajames@linux.ibm.com Signed-off-by: Joel Stanley <joel@jms.id.au>
2021-04-08ARM: dts: aspeed: everest: GPIOs supportAlpana Kumari
This commit adds support for- - Presence GPIOs - I2C control GPIOs - Op-panel GPIOs (ex PHR) Signed-off-by: Alpana Kumari <alpankum@in.ibm.com> Signed-off-by: Eddie James <eajames@linux.ibm.com> Reviewed-by: Brandon Wyman <bjwyman@gmail.com> Link: https://lore.kernel.org/r/20210329150020.13632-19-eajames@linux.ibm.com Signed-off-by: Joel Stanley <joel@jms.id.au>
2021-04-08ARM: dts: aspeed: everest: Add UCD90320 power sequencerJim Wright
Add UCD90320 chip to Everest device tree. Signed-off-by: Jim Wright <jlwright@us.ibm.com> Signed-off-by: Eddie James <eajames@linux.ibm.com> Link: https://lore.kernel.org/r/20210329150020.13632-18-eajames@linux.ibm.com Signed-off-by: Joel Stanley <joel@jms.id.au>
2021-04-08ARM: dts: aspeed: everest: Add power supply i2c devicesBrandon Wyman
Add the i2c/pmbus power supply devices to the everest device tree. Signed-off-by: Brandon Wyman <bjwyman@gmail.com> Signed-off-by: Eddie James <eajames@linux.ibm.com> Link: https://lore.kernel.org/r/20210329150020.13632-17-eajames@linux.ibm.com Signed-off-by: Joel Stanley <joel@jms.id.au>
2021-04-08ARM: dts: aspeed: everest: Add pca9552 fan presenceMatthew Barth
Add the pca9552 at address 0x61 on i2c14 behind mux0 channel 3 with the 4 GPIO fan presence inputs. Signed-off-by: Matthew Barth <msbarth@us.ibm.com> Signed-off-by: Eddie James <eajames@linux.ibm.com> Reviewed-by: Brandon Wyman <bjwyman@gmail.com> Link: https://lore.kernel.org/r/20210329150020.13632-16-eajames@linux.ibm.com Signed-off-by: Joel Stanley <joel@jms.id.au>
2021-04-08ARM: dts: aspeed: everest: Add FSI CFAMs and re-number enginesEddie James
Add additional CFAMs and re-number the existing engines for the extra processors present on the Everest system. Signed-off-by: Eddie James <eajames@linux.ibm.com> Link: https://lore.kernel.org/r/20210329150020.13632-15-eajames@linux.ibm.com Signed-off-by: Joel Stanley <joel@jms.id.au>
2021-04-08ARM: dts: aspeed: everest: Add max31785 fan controller deviceMatthew Barth
Add the max31785 configuration at address 0x52 on i2c14 behind mux0 channel 3. Signed-off-by: Matthew Barth <msbarth@us.ibm.com> Signed-off-by: Eddie James <eajames@linux.ibm.com> Link: https://lore.kernel.org/r/20210329150020.13632-14-eajames@linux.ibm.com Signed-off-by: Joel Stanley <joel@jms.id.au>
2021-04-08ARM: dts: aspeed: everest: Add I2C componentsPriyanga Ramasamy
Tested and able to bound the devices with i2c driver. Signed-off-by: Priyanga Ramasamy <priyanga24@in.ibm.com> Signed-off-by: Eddie James <eajames@linux.ibm.com> Link: https://lore.kernel.org/r/20210329150020.13632-13-eajames@linux.ibm.com Signed-off-by: Joel Stanley <joel@jms.id.au>
2021-04-08ARM: dts: aspeed: rainier 4U: Fix fan configurationEddie James
The 4U fans didn't have the correct properties since the fan nodes were redefined. Fix this by referencing each fan individually and adding the differences to the 4U fans. Signed-off-by: Eddie James <eajames@linux.ibm.com> Link: https://lore.kernel.org/r/20210329150020.13632-12-eajames@linux.ibm.com Signed-off-by: Joel Stanley <joel@jms.id.au>
2021-04-08ARM: dts: aspeed: rainier: Add missing fan nodesJoel Stanley
The Maxim fan controller has six fans attached. Two of these were missing from the description. Signed-off-by: Joel Stanley <joel@jms.id.au>
2021-04-08ARM: dts: aspeed: rainier: Enable fan watchdogEddie James
Set watchdog 1 to pulse the fan watchdog circuit that drives the FAULT pin of the MAX31785, resulting in fans running at full speed, if at any point the BMC stops pulsing it, such as a BMC reboot at runtime. Enable watchdog 2 for BMC reboots. Signed-off-by: Matthew Barth <msbarth@linux.ibm.com> Signed-off-by: Eddie James <eajames@linux.ibm.com> Acked-by: Andrew Jeffery <andrew@aj.id.au> Link: https://lore.kernel.org/r/20210329150020.13632-11-eajames@linux.ibm.com Signed-off-by: Joel Stanley <joel@jms.id.au>
2021-04-08ARM: dts: aspeed: rainier: Add presence GPIOsAlpana Kumari
This commit adds presence detect GPIO chips for various FRUs on Rainier. Also, correct the I2C address for the tca9554. Signed-off-by: Alpana Kumari <alpankum@in.ibm.com> Signed-off-by: Eddie James <eajames@linux.ibm.com> Link: https://lore.kernel.org/r/20210329150020.13632-10-eajames@linux.ibm.com Signed-off-by: Joel Stanley <joel@jms.id.au>
2021-04-08ARM: dts: aspeed: rainier: Add additional processor CFAMsEddie James
Rainier has two dual-chip modules and therefore four CFAMs with their associated engines. Add these to the devicetree with the i2c busses that have devices on them. Signed-off-by: Eddie James <eajames@linux.ibm.com> Signed-off-by: Joel Stanley <joel@jms.id.au> Link: https://lore.kernel.org/r/20210329150020.13632-5-eajames@linux.ibm.com Signed-off-by: Joel Stanley <joel@jms.id.au>
2021-04-08ARM: dts: aspeed: rainier: Add gpio-keys-polled for fansBrandon Wyman
Add a gpio-keys-polled section to the Rainier device tree for the fan presence signals on the PCA9552 I2C device on bus 7. Signed-off-by: Brandon Wyman <bjwyman@gmail.com> Signed-off-by: Matthew Barth <msbarth@linux.ibm.com> Signed-off-by: Eddie James <eajames@linux.ibm.com> Link: https://lore.kernel.org/r/20210329150020.13632-4-eajames@linux.ibm.com Signed-off-by: Joel Stanley <joel@jms.id.au>
2021-04-08ARM: dts: aspeed: rainier: Add directly controlled LEDsVishwanatha Subbanna
These LEDs are directly connected to the BMC's GPIO bank. Signed-off-by: Vishwanatha Subbanna <vishwa@linux.ibm.com> Signed-off-by: Eddie James <eajames@linux.ibm.com> Link: https://lore.kernel.org/r/20210329150020.13632-3-eajames@linux.ibm.com Signed-off-by: Joel Stanley <joel@jms.id.au>
2021-04-08ARM: dts: aspeed: Add ASRock E3C246D4I BMCZev Weiss
This is a relatively low-cost AST2500-based Xeon E-2100/E-2200 series mini-ITX board that we hope can provide a decent platform for OpenBMC development. This initial device-tree provides the necessary configuration for basic BMC functionality such as host power control, serial console and KVM support, and POST code snooping. Signed-off-by: Zev Weiss <zev@bewilderbeest.net> Reviewed-by: Joel Stanley <joel@jms.id.au> Link: https://lore.kernel.org/r/20210401044232.9637-1-zev@bewilderbeest.net Signed-off-by: Joel Stanley <joel@jms.id.au>
2021-04-07scsi: iscsi: Fix iSCSI cls conn stateMike Christie
In commit 9e67600ed6b8 ("scsi: iscsi: Fix race condition between login and sync thread") I missed that libiscsi was now setting the iSCSI class state, and that patch ended up resetting the state during conn stoppage and using the wrong state value during ep_disconnect. This patch moves the setting of the class state to the class module and then fixes the two issues above. Link: https://lore.kernel.org/r/20210406171746.5016-1-michael.christie@oracle.com Fixes: 9e67600ed6b8 ("scsi: iscsi: Fix race condition between login and sync thread") Cc: Gulam Mohamed <gulam.mohamed@oracle.com> Signed-off-by: Mike Christie <michael.christie@oracle.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2021-04-07selinux: fix race between old and new sidtabOndrej Mosnacek
Since commit 1b8b31a2e612 ("selinux: convert policy read-write lock to RCU"), there is a small window during policy load where the new policy pointer has already been installed, but some threads may still be holding the old policy pointer in their read-side RCU critical sections. This means that there may be conflicting attempts to add a new SID entry to both tables via sidtab_context_to_sid(). See also (and the rest of the thread): https://lore.kernel.org/selinux/CAFqZXNvfux46_f8gnvVvRYMKoes24nwm2n3sPbMjrB8vKTW00g@mail.gmail.com/ Fix this by installing the new policy pointer under the old sidtab's spinlock along with marking the old sidtab as "frozen". Then, if an attempt to add new entry to a "frozen" sidtab is detected, make sidtab_context_to_sid() return -ESTALE to indicate that a new policy has been installed and that the caller will have to abort the policy transaction and try again after re-taking the policy pointer (which is guaranteed to be a newer policy). This requires adding a retry-on-ESTALE logic to all callers of sidtab_context_to_sid(), but fortunately these are easy to determine and aren't that many. This seems to be the simplest solution for this problem, even if it looks somewhat ugly. Note that other places in the kernel (e.g. do_mknodat() in fs/namei.c) use similar stale-retry patterns, so I think it's reasonable. Cc: stable@vger.kernel.org Fixes: 1b8b31a2e612 ("selinux: convert policy read-write lock to RCU") Signed-off-by: Ondrej Mosnacek <omosnace@redhat.com> Signed-off-by: Paul Moore <paul@paul-moore.com>