From: David Miller <da...@davemloft.net> Date: Sat, 12 Oct 2019 17:20:55 -0700 (PDT)
> From: Marek Vasut <ma...@denx.de> > Date: Thu, 10 Oct 2019 20:25:08 +0200 > >> The KSZ driver uses one regmap per register width (8/16/32), each with >> it's own lock, but accessing the same set of registers. In theory, it >> is possible to create a race condition between these regmaps, although >> the underlying bus (SPI or I2C) locking should assure nothing bad will >> really happen and the accesses would be correct. >> >> To make the driver do the right thing, add one single shared mutex for >> all the regmaps used by the driver instead. This assures that even if >> some future hardware is on a bus which does not serialize the accesses >> the same way SPI or I2C does, nothing bad will happen. >> >> Note that the status_mutex was unused and only initied, hence it was >> renamed and repurposed as the regmap mutex. >> >> Signed-off-by: Marek Vasut <ma...@denx.de> > > Applied. Actually, both patches reverted. Please test your changes properly: ERROR: "ksz_regmap_unlock" [drivers/net/dsa/microchip/ksz8795_spi.ko] undefined! ERROR: "ksz_regmap_lock" [drivers/net/dsa/microchip/ksz8795_spi.ko] undefined! ERROR: "ksz_regmap_unlock" [drivers/net/dsa/microchip/ksz9477_spi.ko] undefined! ERROR: "ksz_regmap_lock" [drivers/net/dsa/microchip/ksz9477_spi.ko] undefined! ERROR: "ksz_regmap_unlock" [drivers/net/dsa/microchip/ksz9477_i2c.ko] undefined! ERROR: "ksz_regmap_lock" [drivers/net/dsa/microchip/ksz9477_i2c.ko] undefined!