diff --git a/libwifi/wifi.c b/libwifi/wifi.c
index eda0b39e8bbf1cf692272b1dcbf37817f9d13b86..720bc3e9544af45f17f4247b22fa391766fb9fa3 100644
--- a/libwifi/wifi.c
+++ b/libwifi/wifi.c
@@ -176,9 +176,8 @@ int wifi_radio_get_ifstatus(const char *ifname, ifstatus_t *f)
 	int ret;
 
 	ENTER();
-	if (drv && drv->radio.get_ifstatus)
-		ret = drv->radio.get_ifstatus(ifname, f);
-	else
+	ret = drv_op(drv, radio.get_ifstatus, ifname, f);
+	if (ret == -ENOTSUP)
 		ret = wifi_get_ifstatus(ifname, f);
 
 	EXIT(ret);