Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1485153
| From | Bartosz Golaszewski <bgolaszewski@baylibre.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH v2 0/4] gpio: fix an incorrect lockdep warning |
| Date | 2016-09-16 18:10 +0200 |
| Message-ID | <si3S9-6Ya-3@gated-at.bofh.it> (permalink) |
| Organization | linux.* mail to news gateway |
If an I2C GPIO multiplexer is driven by a GPIO provided by an expander
when there's a second expander using the same device driver on one of
the I2C bus segments, lockdep prints a deadlock warning when trying to
set the direction or the value of the GPIOs provided by the second
expander.
This series exports an already existing function from i2c-core as
public API and reuses it in pca953x to pass a correct lock subclass
to lockdep.
Note: if this series gets merged, I'll prepare follow-up patches for
other expanders for which a similar problem could potentially occur.
Tested with the following setup:
------- --------- Bus segment 1 | |
| | | |--------------- Devices
| | SCL/SDA | | | |
| Linux |-----------| I2C MUX | - - - - -
| | | | | Bus segment 2
| | | | |-------------------
------- | --------- |
| | - - - - -
------------ | MUX GPIO | |
| | | Devices
| GPIO | | | |
| Expander 1 |---- - - - - -
| | |
------------ | SCL/SDA
|
------------
| |
| GPIO |
| Expander 2 |
| |
------------
where expander 1 is a pca9534 and expander 2 is a pca9535.
v1 -> v2:
- added patches 1/4, 2/4 & 3/4
- used i2c_adapter_depth() in patch 4/4 in order to detect multiple
adapter nesting
Bartosz Golaszewski (4):
i2c: export i2c_adapter_depth()
lockdep: make MAX_LOCKDEP_SUBCLASSES unconditionally visible
i2c: add a warning to i2c_adapter_depth()
gpio: pca953x: fix an incorrect lockdep warning
drivers/gpio/gpio-pca953x.c | 2 ++
drivers/i2c/i2c-core.c | 12 +++++-------
include/linux/i2c.h | 1 +
include/linux/lockdep.h | 4 ++--
4 files changed, 10 insertions(+), 9 deletions(-)
--
2.7.4
Back to linux.kernel | Previous | Next — Next in thread | Find similar | Unroll thread
[PATCH v2 0/4] gpio: fix an incorrect lockdep warning Bartosz Golaszewski <bgolaszewski@baylibre.com> - 2016-09-16 18:10 +0200
[PATCH v2 3/4] i2c: add a warning to i2c_adapter_depth() Bartosz Golaszewski <bgolaszewski@baylibre.com> - 2016-09-16 18:10 +0200
Re: [PATCH v2 0/4] gpio: fix an incorrect lockdep warning Wolfram Sang <wsa@the-dreams.de> - 2016-09-16 19:30 +0200
Re: [PATCH v2 0/4] gpio: fix an incorrect lockdep warning Wolfram Sang <wsa@the-dreams.de> - 2016-09-16 20:00 +0200
Re: [PATCH v2 0/4] gpio: fix an incorrect lockdep warning Bartosz Golaszewski <bgolaszewski@baylibre.com> - 2016-09-18 21:50 +0200
Re: [PATCH v2 0/4] gpio: fix an incorrect lockdep warning Peter Zijlstra <peterz@infradead.org> - 2016-09-19 10:20 +0200
Re: [PATCH v2 0/4] gpio: fix an incorrect lockdep warning Peter Zijlstra <peterz@infradead.org> - 2016-09-19 11:10 +0200
Re: [PATCH v2 0/4] gpio: fix an incorrect lockdep warning Bartosz Golaszewski <bgolaszewski@baylibre.com> - 2016-09-20 12:10 +0200
Re: [PATCH v2 0/4] gpio: fix an incorrect lockdep warning Peter Zijlstra <peterz@infradead.org> - 2016-09-20 12:30 +0200
Re: [PATCH v2 0/4] gpio: fix an incorrect lockdep warning Geert Uytterhoeven <geert@linux-m68k.org> - 2016-09-20 13:40 +0200
Re: [PATCH v2 0/4] gpio: fix an incorrect lockdep warning Bartosz Golaszewski <bgolaszewski@baylibre.com> - 2016-09-20 14:40 +0200
Re: [PATCH v2 0/4] gpio: fix an incorrect lockdep warning Thomas Gleixner <tglx@linutronix.de> - 2016-09-20 17:40 +0200
Re: [PATCH v2 0/4] gpio: fix an incorrect lockdep warning Bartosz Golaszewski <bgolaszewski@baylibre.com> - 2016-09-18 21:50 +0200
Re: [PATCH v2 0/4] gpio: fix an incorrect lockdep warning Peter Zijlstra <peterz@infradead.org> - 2016-09-17 03:30 +0200
Re: [PATCH v2 0/4] gpio: fix an incorrect lockdep warning Wolfram Sang <wsa@the-dreams.de> - 2016-09-17 12:20 +0200
Re: [PATCH v2 0/4] gpio: fix an incorrect lockdep warning Bartosz Golaszewski <bgolaszewski@baylibre.com> - 2016-09-17 21:10 +0200
csiph-web