Revision 7ff57e98fb78ad94edafbdc7435f2d745e9e6bb5 authored by Fabio M. De Francesco on 23 February 2022, 10:02:52 UTC, committed by Jakub Kicinski on 24 February 2022, 17:09:33 UTC
smc_pnetid_by_table_ib() uses read_lock() and then it calls smc_pnet_apply_ib() which, in turn, calls mutex_lock(&smc_ib_devices.mutex). read_lock() disables preemption. Therefore, the code acquires a mutex while in atomic context and it leads to a SAC bug. Fix this bug by replacing the rwlock with a mutex. Reported-and-tested-by: syzbot+4f322a6d84e991c38775@syzkaller.appspotmail.com Fixes: 64e28b52c7a6 ("net/smc: add pnet table namespace support") Confirmed-by: Tony Lu <tonylu@linux.alibaba.com> Signed-off-by: Fabio M. De Francesco <fmdefrancesco@gmail.com> Acked-by: Karsten Graul <kgraul@linux.ibm.com> Link: https://lore.kernel.org/r/20220223100252.22562-1-fmdefrancesco@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
1 parent e13ad14
bel-pfe.rst
Kernel driver bel-pfe
======================
Supported chips:
* BEL PFE1100
Prefixes: 'pfe1100'
Addresses scanned: -
Datasheet: https://www.belfuse.com/resources/datasheets/powersolutions/ds-bps-pfe1100-12-054xa.pdf
* BEL PFE3000
Prefixes: 'pfe3000'
Addresses scanned: -
Datasheet: https://www.belfuse.com/resources/datasheets/powersolutions/ds-bps-pfe3000-series.pdf
Author: Tao Ren <rentao.bupt@gmail.com>
Description
-----------
This driver supports hardware monitoring for below power supply devices
which support PMBus Protocol:
* BEL PFE1100
1100 Watt AC to DC power-factor-corrected (PFC) power supply.
PMBus Communication Manual is not publicly available.
* BEL PFE3000
3000 Watt AC/DC power-factor-corrected (PFC) and DC-DC power supply.
PMBus Communication Manual is not publicly available.
The driver is a client driver to the core PMBus driver. Please see
Documentation/hwmon/pmbus.rst for details on PMBus client drivers.
Usage Notes
-----------
This driver does not auto-detect devices. You will have to instantiate the
devices explicitly. Please see Documentation/i2c/instantiating-devices.rst for
details.
Example: the following will load the driver for an PFE3000 at address 0x20
on I2C bus #1::
$ modprobe bel-pfe
$ echo pfe3000 0x20 > /sys/bus/i2c/devices/i2c-1/new_device
Platform data support
---------------------
The driver supports standard PMBus driver platform data.
Sysfs entries
-------------
======================= =======================================================
curr1_label "iin"
curr1_input Measured input current
curr1_max Input current max value
curr1_max_alarm Input current max alarm
curr[2-3]_label "iout[1-2]"
curr[2-3]_input Measured output current
curr[2-3]_max Output current max value
curr[2-3]_max_alarm Output current max alarm
fan[1-2]_input Fan 1 and 2 speed in RPM
fan1_target Set fan speed reference for both fans
in1_label "vin"
in1_input Measured input voltage
in1_crit Input voltage critical max value
in1_crit_alarm Input voltage critical max alarm
in1_lcrit Input voltage critical min value
in1_lcrit_alarm Input voltage critical min alarm
in1_max Input voltage max value
in1_max_alarm Input voltage max alarm
in2_label "vcap"
in2_input Hold up capacitor voltage
in[3-8]_label "vout[1-3,5-7]"
in[3-8]_input Measured output voltage
in[3-4]_alarm vout[1-2] output voltage alarm
power[1-2]_label "pin[1-2]"
power[1-2]_input Measured input power
power[1-2]_alarm Input power high alarm
power[3-4]_label "pout[1-2]"
power[3-4]_input Measured output power
temp[1-3]_input Measured temperature
temp[1-3]_alarm Temperature alarm
======================= =======================================================
.. note::
- curr3, fan2, vout[2-7], vcap, pin2, pout2 and temp3 attributes only
exist for PFE3000.
Computing file changes ...