port-probe: avoid subsystem based checks when reading probe results

There should be no need to do an early check to filter out ports of
the wrong subsystem.

For the user of these methods it is irrelevant if the FALSE is
returned because the port is of the wrong subsystem, or because the
test wasn't added to be probed, or because the test actually failed.

In other words, the ports where the test succeeded will only have
succeeded if they are of the correct subsystem and if the test was
actually executed successfully.
This commit is contained in:
Aleksander Morgado
2020-10-21 13:02:50 +02:00
parent 50c69d5403
commit 5aa7632e88

View File

@@ -1543,18 +1543,8 @@ mm_port_probe_list_has_at_port (GList *list)
gboolean
mm_port_probe_is_qcdm (MMPortProbe *self)
{
const gchar *subsys;
const gchar *name;
g_return_val_if_fail (MM_IS_PORT_PROBE (self), FALSE);
subsys = mm_kernel_device_get_subsystem (self->priv->port);
name = mm_kernel_device_get_name (self->priv->port);
if (g_str_equal (subsys, "net") ||
(g_str_has_prefix (subsys, "usb") &&
g_str_has_prefix (name, "cdc-wdm")))
return FALSE;
return (self->priv->flags & MM_PORT_PROBE_QCDM ?
self->priv->is_qcdm :
FALSE);
@@ -1563,19 +1553,11 @@ mm_port_probe_is_qcdm (MMPortProbe *self)
gboolean
mm_port_probe_is_qmi (MMPortProbe *self)
{
const gchar *subsys;
const gchar *name;
g_return_val_if_fail (MM_IS_PORT_PROBE (self), FALSE);
subsys = mm_kernel_device_get_subsystem (self->priv->port);
name = mm_kernel_device_get_name (self->priv->port);
if (!g_str_has_prefix (subsys, "usb") ||
!name ||
!g_str_has_prefix (name, "cdc-wdm"))
return FALSE;
return self->priv->is_qmi;
return (self->priv->flags & MM_PORT_PROBE_QMI ?
self->priv->is_qmi :
FALSE);
}
gboolean
@@ -1597,19 +1579,11 @@ mm_port_probe_list_has_qmi_port (GList *list)
gboolean
mm_port_probe_is_mbim (MMPortProbe *self)
{
const gchar *subsys;
const gchar *name;
g_return_val_if_fail (MM_IS_PORT_PROBE (self), FALSE);
subsys = mm_kernel_device_get_subsystem (self->priv->port);
name = mm_kernel_device_get_name (self->priv->port);
if (!g_str_has_prefix (subsys, "usb") ||
!name ||
!g_str_has_prefix (name, "cdc-wdm"))
return FALSE;
return self->priv->is_mbim;
return (self->priv->flags & MM_PORT_PROBE_MBIM ?
self->priv->is_mbim :
FALSE);
}
gboolean
@@ -1640,21 +1614,17 @@ mm_port_probe_get_port_type (MMPortProbe *self)
if (g_str_equal (subsys, "net"))
return MM_PORT_TYPE_NET;
if (g_str_has_prefix (subsys, "usb")) {
const gchar *name;
name = mm_kernel_device_get_name (self->priv->port);
if (g_str_has_prefix (name, "cdc-wdm")) {
#if defined WITH_QMI
if (self->priv->is_qmi)
return MM_PORT_TYPE_QMI;
if (self->priv->flags & MM_PORT_PROBE_QMI &&
self->priv->is_qmi)
return MM_PORT_TYPE_QMI;
#endif
#if defined WITH_MBIM
if (self->priv->is_mbim)
return MM_PORT_TYPE_MBIM;
if (self->priv->flags & MM_PORT_PROBE_MBIM &&
self->priv->is_mbim)
return MM_PORT_TYPE_MBIM;
#endif
}
}
if (self->priv->flags & MM_PORT_PROBE_QCDM &&
self->priv->is_qcdm)
@@ -1708,18 +1678,8 @@ mm_port_probe_get_port (MMPortProbe *self)
const gchar *
mm_port_probe_get_vendor (MMPortProbe *self)
{
const gchar *subsys;
const gchar *name;
g_return_val_if_fail (MM_IS_PORT_PROBE (self), FALSE);
subsys = mm_kernel_device_get_subsystem (self->priv->port);
name = mm_kernel_device_get_name (self->priv->port);
if (g_str_equal (subsys, "net") ||
(g_str_has_prefix (subsys, "usb") &&
g_str_has_prefix (name, "cdc-wdm")))
return NULL;
return (self->priv->flags & MM_PORT_PROBE_AT_VENDOR ?
self->priv->vendor :
NULL);
@@ -1728,18 +1688,8 @@ mm_port_probe_get_vendor (MMPortProbe *self)
const gchar *
mm_port_probe_get_product (MMPortProbe *self)
{
const gchar *subsys;
const gchar *name;
g_return_val_if_fail (MM_IS_PORT_PROBE (self), FALSE);
subsys = mm_kernel_device_get_subsystem (self->priv->port);
name = mm_kernel_device_get_name (self->priv->port);
if (g_str_equal (subsys, "net") ||
(g_str_has_prefix (subsys, "usb") &&
g_str_has_prefix (name, "cdc-wdm")))
return NULL;
return (self->priv->flags & MM_PORT_PROBE_AT_PRODUCT ?
self->priv->product :
NULL);
@@ -1750,9 +1700,6 @@ mm_port_probe_is_icera (MMPortProbe *self)
{
g_return_val_if_fail (MM_IS_PORT_PROBE (self), FALSE);
if (g_str_equal (mm_kernel_device_get_subsystem (self->priv->port), "net"))
return FALSE;
return (self->priv->flags & MM_PORT_PROBE_AT_ICERA ?
self->priv->is_icera :
FALSE);
@@ -1776,9 +1723,6 @@ mm_port_probe_is_xmm (MMPortProbe *self)
{
g_return_val_if_fail (MM_IS_PORT_PROBE (self), FALSE);
if (g_str_equal (mm_kernel_device_get_subsystem (self->priv->port), "net"))
return FALSE;
return (self->priv->flags & MM_PORT_PROBE_AT_XMM ?
self->priv->is_xmm :
FALSE);