Patch "i2c: piix4: Request the SMBUS semaphore inside the mutex" has been added to the 4.9-stable tree
This is a note to let you know that I've just added the patch titled
i2c: piix4: Request the SMBUS semaphore inside the mutex
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
i2c-piix4-request-the-smbus-semaphore-inside-the-mutex.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Thu Jun 15 11:12:23 CEST 2017
From: Ricardo Ribalda <[email protected]>
Date: Tue, 23 May 2017 21:53:44 -0400
Subject: i2c: piix4: Request the SMBUS semaphore inside the mutex
From: Ricardo Ribalda <[email protected]>
[ Upstream commit bbb27fc33d44e7b8d96369810654df4ee1837566 ]
SMBSLVCNT must be protected with the piix4_mutex_sb800 in order to avoid multiple buses accessing to the semaphore at the same time.
--- drivers/i2c/busses/i2c-piix4.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-)
drivers/i2c/busses/i2c-piix4.c +7 -5
@@ -592,6 +592,8 @@ static s32 piix4_access_sb800(struct i2cu8 port;int retval; +mutex_lock (&piix4_mutex_sb800); +/* Request the SMBUS semaphore, avoid conflicts with the IMC */ smbslvcnt =inb_p (SMBSLVCNT ); do {
@@ -605,10 +607,10 @@ static s32 piix4_access_sb800(struct i2cusleep_range (1000 ,2000 ); }while (--retries);/* SMBus is still owned by the IMC, we give up */ -if (!retries) +if (!retries) { +mutex_unlock (&piix4_mutex_sb800);return -EBUSY ; - -mutex_lock (&piix4_mutex_sb800); + }outb_p (piix4_port_sel_sb800,SB800_PIIX4_SMB_IDX ); smba_en_lo =inb_p (SB800_PIIX4_SMB_IDX +1 );
@@ -623,11 +625,11 @@ static s32 piix4_access_sb800(struct i2coutb_p (smba_en_lo,SB800_PIIX4_SMB_IDX +1 ); -mutex_unlock (&piix4_mutex_sb800); -/* Release the semaphore */ outb_p (smbslvcnt |0x20 ,SMBSLVCNT ); +mutex_unlock (&piix4_mutex_sb800); +return retval; }
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/i2c-piix4-request-the-smbus-semaphore-inside-the-mutex.patch queue-4.9/i2c-piix4-fix-request_region-size.patch