Lines Matching refs:tuna
2761 static int ethtool_tunable_valid(const struct ethtool_tunable *tuna) in ethtool_tunable_valid() argument
2763 switch (tuna->id) { in ethtool_tunable_valid()
2767 if (tuna->len != sizeof(u32) || in ethtool_tunable_valid()
2768 tuna->type_id != ETHTOOL_TUNABLE_U32) in ethtool_tunable_valid()
2772 if (tuna->len != sizeof(u16) || in ethtool_tunable_valid()
2773 tuna->type_id != ETHTOOL_TUNABLE_U16) in ethtool_tunable_valid()
2786 struct ethtool_tunable tuna; in ethtool_get_tunable() local
2792 if (copy_from_user(&tuna, useraddr, sizeof(tuna))) in ethtool_get_tunable()
2794 ret = ethtool_tunable_valid(&tuna); in ethtool_get_tunable()
2797 data = kzalloc(tuna.len, GFP_USER); in ethtool_get_tunable()
2800 ret = ops->get_tunable(dev, &tuna, data); in ethtool_get_tunable()
2803 useraddr += sizeof(tuna); in ethtool_get_tunable()
2805 if (copy_to_user(useraddr, data, tuna.len)) in ethtool_get_tunable()
2817 struct ethtool_tunable tuna; in ethtool_set_tunable() local
2823 if (copy_from_user(&tuna, useraddr, sizeof(tuna))) in ethtool_set_tunable()
2825 ret = ethtool_tunable_valid(&tuna); in ethtool_set_tunable()
2828 useraddr += sizeof(tuna); in ethtool_set_tunable()
2829 data = memdup_user(useraddr, tuna.len); in ethtool_set_tunable()
2832 ret = ops->set_tunable(dev, &tuna, data); in ethtool_set_tunable()
2952 static int ethtool_phy_tunable_valid(const struct ethtool_tunable *tuna) in ethtool_phy_tunable_valid() argument
2954 switch (tuna->id) { in ethtool_phy_tunable_valid()
2957 if (tuna->len != sizeof(u8) || in ethtool_phy_tunable_valid()
2958 tuna->type_id != ETHTOOL_TUNABLE_U8) in ethtool_phy_tunable_valid()
2962 if (tuna->len != sizeof(u16) || in ethtool_phy_tunable_valid()
2963 tuna->type_id != ETHTOOL_TUNABLE_U16) in ethtool_phy_tunable_valid()
2976 struct ethtool_tunable tuna; in get_phy_tunable() local
2984 if (copy_from_user(&tuna, useraddr, sizeof(tuna))) in get_phy_tunable()
2986 ret = ethtool_phy_tunable_valid(&tuna); in get_phy_tunable()
2989 data = kzalloc(tuna.len, GFP_USER); in get_phy_tunable()
2994 ret = phydev->drv->get_tunable(phydev, &tuna, data); in get_phy_tunable()
2997 ret = dev->ethtool_ops->get_phy_tunable(dev, &tuna, data); in get_phy_tunable()
3001 useraddr += sizeof(tuna); in get_phy_tunable()
3003 if (copy_to_user(useraddr, data, tuna.len)) in get_phy_tunable()
3015 struct ethtool_tunable tuna; in set_phy_tunable() local
3023 if (copy_from_user(&tuna, useraddr, sizeof(tuna))) in set_phy_tunable()
3025 ret = ethtool_phy_tunable_valid(&tuna); in set_phy_tunable()
3028 useraddr += sizeof(tuna); in set_phy_tunable()
3029 data = memdup_user(useraddr, tuna.len); in set_phy_tunable()
3034 ret = phydev->drv->set_tunable(phydev, &tuna, data); in set_phy_tunable()
3037 ret = dev->ethtool_ops->set_phy_tunable(dev, &tuna, data); in set_phy_tunable()