Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

w1: fix for loop in w1_f29_remove_slave()

The for loop was looking for i <= 0 instead of i >= 0 so this function
never did anything. Also we started with i = NB_SYSFS_BIN_FILES instead
of "NB_SYSFS_BIN_FILES - 1" which is an off by one bug.

Reported-by: Bojan Prtvar <prtvar.b@gmail.com>
Signed-off-by: Dan Carpenter <error27@gmail.com>
Acked-by: Jean-Franois Dagenais <dagenaisj@sonatest.com>
Cc: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Dan Carpenter and committed by
Linus Torvalds
58299449 2df7a7d1

+1 -1
+1 -1
drivers/w1/slaves/w1_ds2408.c
··· 373 373 static void w1_f29_remove_slave(struct w1_slave *sl) 374 374 { 375 375 int i; 376 - for (i = NB_SYSFS_BIN_FILES; i <= 0; --i) 376 + for (i = NB_SYSFS_BIN_FILES - 1; i >= 0; --i) 377 377 sysfs_remove_bin_file(&sl->dev.kobj, 378 378 &(w1_f29_sysfs_bin_files[i])); 379 379 }