Skip to content

Commit 38ef52b

Browse files
ndrs-pstkartben
authored andcommitted
drivers: ethernet: ksz8081: simplify error handling in get_link
Simplifies error handling in `phy_mc_ksz8081_get_link()` by centralizing mutex unlocking with a `done` label. Signed-off-by: Pisit Sawangvonganan <[email protected]>
1 parent 51efc60 commit 38ef52b

File tree

1 file changed

+6
-10
lines changed

1 file changed

+6
-10
lines changed

drivers/ethernet/phy/phy_microchip_ksz8081.c

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -161,35 +161,28 @@ static int phy_mc_ksz8081_get_link(const struct device *dev,
161161
ret = phy_mc_ksz8081_read(dev, MII_BMSR, &bmsr);
162162
if (ret) {
163163
LOG_ERR("Error reading phy (%d) basic status register", config->addr);
164-
k_mutex_unlock(&data->mutex);
165-
return ret;
164+
goto done;
166165
}
167166
state->is_up = bmsr & MII_BMSR_LINK_STATUS;
168167

169168
if (!state->is_up) {
170-
k_mutex_unlock(&data->mutex);
171169
goto result;
172170
}
173171

174172
/* Read currently configured advertising options */
175173
ret = phy_mc_ksz8081_read(dev, MII_ANAR, &anar);
176174
if (ret) {
177175
LOG_ERR("Error reading phy (%d) advertising register", config->addr);
178-
k_mutex_unlock(&data->mutex);
179-
return ret;
176+
goto done;
180177
}
181178

182179
/* Read link partner capability */
183180
ret = phy_mc_ksz8081_read(dev, MII_ANLPAR, &anlpar);
184181
if (ret) {
185182
LOG_ERR("Error reading phy (%d) link partner register", config->addr);
186-
k_mutex_unlock(&data->mutex);
187-
return ret;
183+
goto done;
188184
}
189185

190-
/* Unlock mutex */
191-
k_mutex_unlock(&data->mutex);
192-
193186
uint32_t mutual_capabilities = anar & anlpar;
194187

195188
if (mutual_capabilities & MII_ADVERTISE_100_FULL) {
@@ -214,6 +207,9 @@ static int phy_mc_ksz8081_get_link(const struct device *dev,
214207
}
215208
}
216209

210+
done:
211+
k_mutex_unlock(&data->mutex);
212+
217213
return ret;
218214
}
219215

0 commit comments

Comments
 (0)