Commit b332af53 authored by Jakob Koschel's avatar Jakob Koschel Committed by Krzysztof Kozlowski
Browse files

w1: Replace usage of found with dedicated list iterator variable

To move the list iterator variable into the list_for_each_entry_*()
macro in the future it should be avoided to use the list iterator
variable after the loop body.

To *never* use the list iterator variable after the loop it was
concluded to use a separate iterator variable instead of a
found boolean [1].

This removes the need to use a found variable and simply checking if
the variable was set, can determine if the break/goto was hit.

Link: https://lore.kernel.org/all/CAHk-=wgRr_D8CB-D9Kg-c=EHreAsk5SqXPwr9Y7k9sA6cWXJ6w@mail.gmail.com/

 [1]
Signed-off-by: default avatarJakob Koschel <jkl820.git@gmail.com>
Link: https://lore.kernel.org/r/20230509-w1-replace-usage-of-found-with-tmp-list-iterator-variable-v3-1-e07c9603fd9d@gmail.com


Signed-off-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
parent 0df2a5e9
Loading
Loading
Loading
Loading
+15 −17
Original line number Diff line number Diff line
@@ -821,49 +821,47 @@ int w1_slave_detach(struct w1_slave *sl)

struct w1_master *w1_search_master_id(u32 id)
{
	struct w1_master *dev;
	int found = 0;
	struct w1_master *dev = NULL, *iter;

	mutex_lock(&w1_mlock);
	list_for_each_entry(dev, &w1_masters, w1_master_entry) {
		if (dev->id == id) {
			found = 1;
			atomic_inc(&dev->refcnt);
	list_for_each_entry(iter, &w1_masters, w1_master_entry) {
		if (iter->id == id) {
			dev = iter;
			atomic_inc(&iter->refcnt);
			break;
		}
	}
	mutex_unlock(&w1_mlock);

	return (found)?dev:NULL;
	return dev;
}

struct w1_slave *w1_search_slave(struct w1_reg_num *id)
{
	struct w1_master *dev;
	struct w1_slave *sl = NULL;
	int found = 0;
	struct w1_slave *sl = NULL, *iter;

	mutex_lock(&w1_mlock);
	list_for_each_entry(dev, &w1_masters, w1_master_entry) {
		mutex_lock(&dev->list_mutex);
		list_for_each_entry(sl, &dev->slist, w1_slave_entry) {
			if (sl->reg_num.family == id->family &&
					sl->reg_num.id == id->id &&
					sl->reg_num.crc == id->crc) {
				found = 1;
		list_for_each_entry(iter, &dev->slist, w1_slave_entry) {
			if (iter->reg_num.family == id->family &&
			    iter->reg_num.id == id->id &&
			    iter->reg_num.crc == id->crc) {
				sl = iter;
				atomic_inc(&dev->refcnt);
				atomic_inc(&sl->refcnt);
				atomic_inc(&iter->refcnt);
				break;
			}
		}
		mutex_unlock(&dev->list_mutex);

		if (found)
		if (sl)
			break;
	}
	mutex_unlock(&w1_mlock);

	return (found)?sl:NULL;
	return sl;
}

void w1_reconnect_slaves(struct w1_family *f, int attach)