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
Raw File
ibmaem.rst
Kernel driver ibmaem
====================

This driver talks to the IBM Systems Director Active Energy Manager, known
henceforth as AEM.

Supported systems:

  * Any recent IBM System X server with AEM support.

    This includes the x3350, x3550, x3650, x3655, x3755, x3850 M2,
    x3950 M2, and certain HC10/HS2x/LS2x/QS2x blades.

    The IPMI host interface
    driver ("ipmi-si") needs to be loaded for this driver to do anything.

    Prefix: 'ibmaem'

    Datasheet: Not available

Author: Darrick J. Wong

Description
-----------

This driver implements sensor reading support for the energy and power meters
available on various IBM System X hardware through the BMC.  All sensor banks
will be exported as platform devices; this driver can talk to both v1 and v2
interfaces.  This driver is completely separate from the older ibmpex driver.

The v1 AEM interface has a simple set of features to monitor energy use.  There
is a register that displays an estimate of raw energy consumption since the
last BMC reset, and a power sensor that returns average power use over a
configurable interval.

The v2 AEM interface is a bit more sophisticated, being able to present a wider
range of energy and power use registers, the power cap as set by the AEM
software, and temperature sensors.

Special Features
----------------

The "power_cap" value displays the current system power cap, as set by the AEM
software.  Setting the power cap from the host is not currently supported.
back to top