Skip to contentSkip to conversation

I2C: Fix broken force parameter handling

PATCH New Jean Delvare 2 participants 2 messages May 19, 2005 I2C

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 I2C: Fix broken force parameter handling

Hi Greg,

I just noticed a nasty bug in the way the "force" parameter is handled for non-sensors i2c chip drivers. The "force" parameter supposedy is a list of adapter, address *pairs* where supported chips are unquestionably assumed to be. However, after handling one pair, the i2c core code searches for the next one *three* values later, not two. So with the current code, the second and third pairs wouldn't be properly handled. The fourth one would be, and so on.

As a side note, this questions the need of an array parameter handling up to 24 of such pairs, when obviously nobody ever required more than one for the past 6 years.

Please apply,
thanks.

drivers/i2c/i2c-core.c renamed from drivers/i2c/i2c-core.c.orig +1 -1
@@ -715,7 +715,7 @@
 		   at all */
 		found = 0;
 
-		for (i = 0; !found && (address_data->force[i] != I2C_CLIENT_END); i += 3) {
+		for (i = 0; !found && (address_data->force[i] != I2C_CLIENT_END); i += 2) {
 			if (((adap_id = address_data->force[i]) || 
 			     (address_data->force[i] = ANY_I2C_BUS)) &&
 			     (addr = address_data->force[i+1])) {
Signature · 1 line
Jean Delvare
Applied
#1 lore raw

PATCH 1/1 I2C: Fix broken force parameter handling

Quoted 10 lines · Jean Delvare

Hi Greg,

I just noticed a nasty bug in the way the "force" parameter is handled for non-sensors i2c chip drivers. The "force" parameter supposedy is a list of adapter, address *pairs* where supported chips are unquestionably assumed to be. However, after handling one pair, the i2c core code searches for the next one *three* values later, not two. So with the current code, the second and third pairs wouldn't be properly handled. The fourth one would be, and so on.

Quoted 5 lines

As a side note, this questions the need of an array parameter handling up to 24 of such pairs, when obviously nobody ever required more than one for the past 6 years.

Please apply,

Applied, thanks.

greg k-h