1
0
mirror of https://git.openwrt.org/openwrt/openwrt.git synced 2024-10-19 05:58:53 +02:00

umbim: fail connect step immediately

Subsequent calls to 'umbim connect' do not have any effect if a failure
occured, and in such case an infinite loop without timeout is created,
leading to possibility of interface stuck at connecting forever.
Drop this loop, and issue MBIM disconnect properly, so netifd can
restart from scratch.
This issue can be observed with Sierra EM7455 at changing APN, which
causes network re-registration by default, and a MBIM transaction
timeout, which is resolved on next interface bringup by netifd.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
This commit is contained in:
Lech Perczak 2023-01-09 22:08:07 +01:00 committed by Hauke Mehrtens
parent 0be14c622b
commit da84eddedb

@ -152,10 +152,13 @@ _proto_mbim_setup() {
[ "$pdptype" = "ipv4" -o "$pdptype" = "ipv6" -o "$pdptype" = "ipv4v6" ] || pdptype="ipv4v6"
echo "mbim[$$]" "Connect to network"
while ! umbim $DBG -n -t $tid -d $device connect "$pdptype:$apn" "$auth" "$username" "$password"; do
umbim $DBG -n -t $tid -d $device connect "$pdptype:$apn" "$auth" "$username" "$password" || {
echo "mbim[$$]" "Failed to connect bearer"
tid=$((tid + 1))
sleep 1;
done
umbim $DBG -t $tid -d "$device" disconnect
proto_notify_error "$interface" CONNECT_FAILED
return 1
}
tid=$((tid + 1))
echo "mbim[$$]" "Connected"