Lines Matching refs:tuna
2263 static int ethtool_tunable_valid(const struct ethtool_tunable *tuna) in ethtool_tunable_valid() argument
2265 switch (tuna->id) { in ethtool_tunable_valid()
2268 if (tuna->len != sizeof(u32) || in ethtool_tunable_valid()
2269 tuna->type_id != ETHTOOL_TUNABLE_U32) in ethtool_tunable_valid()
2273 if (tuna->len != sizeof(u16) || in ethtool_tunable_valid()
2274 tuna->type_id != ETHTOOL_TUNABLE_U16) in ethtool_tunable_valid()
2287 struct ethtool_tunable tuna; in ethtool_get_tunable() local
2293 if (copy_from_user(&tuna, useraddr, sizeof(tuna))) in ethtool_get_tunable()
2295 ret = ethtool_tunable_valid(&tuna); in ethtool_get_tunable()
2298 data = kmalloc(tuna.len, GFP_USER); in ethtool_get_tunable()
2301 ret = ops->get_tunable(dev, &tuna, data); in ethtool_get_tunable()
2304 useraddr += sizeof(tuna); in ethtool_get_tunable()
2306 if (copy_to_user(useraddr, data, tuna.len)) in ethtool_get_tunable()
2318 struct ethtool_tunable tuna; in ethtool_set_tunable() local
2324 if (copy_from_user(&tuna, useraddr, sizeof(tuna))) in ethtool_set_tunable()
2326 ret = ethtool_tunable_valid(&tuna); in ethtool_set_tunable()
2329 useraddr += sizeof(tuna); in ethtool_set_tunable()
2330 data = memdup_user(useraddr, tuna.len); in ethtool_set_tunable()
2333 ret = ops->set_tunable(dev, &tuna, data); in ethtool_set_tunable()
2448 static int ethtool_phy_tunable_valid(const struct ethtool_tunable *tuna) in ethtool_phy_tunable_valid() argument
2450 switch (tuna->id) { in ethtool_phy_tunable_valid()
2453 if (tuna->len != sizeof(u8) || in ethtool_phy_tunable_valid()
2454 tuna->type_id != ETHTOOL_TUNABLE_U8) in ethtool_phy_tunable_valid()
2458 if (tuna->len != sizeof(u16) || in ethtool_phy_tunable_valid()
2459 tuna->type_id != ETHTOOL_TUNABLE_U16) in ethtool_phy_tunable_valid()
2472 struct ethtool_tunable tuna; in get_phy_tunable() local
2479 if (copy_from_user(&tuna, useraddr, sizeof(tuna))) in get_phy_tunable()
2481 ret = ethtool_phy_tunable_valid(&tuna); in get_phy_tunable()
2484 data = kmalloc(tuna.len, GFP_USER); in get_phy_tunable()
2488 ret = phydev->drv->get_tunable(phydev, &tuna, data); in get_phy_tunable()
2492 useraddr += sizeof(tuna); in get_phy_tunable()
2494 if (copy_to_user(useraddr, data, tuna.len)) in get_phy_tunable()
2506 struct ethtool_tunable tuna; in set_phy_tunable() local
2512 if (copy_from_user(&tuna, useraddr, sizeof(tuna))) in set_phy_tunable()
2514 ret = ethtool_phy_tunable_valid(&tuna); in set_phy_tunable()
2517 useraddr += sizeof(tuna); in set_phy_tunable()
2518 data = memdup_user(useraddr, tuna.len); in set_phy_tunable()
2522 ret = phydev->drv->set_tunable(phydev, &tuna, data); in set_phy_tunable()