Lines Matching refs:tuna

2443 static int ethtool_tunable_valid(const struct ethtool_tunable *tuna)
2445 switch (tuna->id) {
2449 if (tuna->len != sizeof(u32) ||
2450 tuna->type_id != ETHTOOL_TUNABLE_U32)
2454 if (tuna->len != sizeof(u16) ||
2455 tuna->type_id != ETHTOOL_TUNABLE_U16)
2468 struct ethtool_tunable tuna;
2474 if (copy_from_user(&tuna, useraddr, sizeof(tuna)))
2476 ret = ethtool_tunable_valid(&tuna);
2479 data = kzalloc(tuna.len, GFP_USER);
2482 ret = ops->get_tunable(dev, &tuna, data);
2485 useraddr += sizeof(tuna);
2487 if (copy_to_user(useraddr, data, tuna.len))
2499 struct ethtool_tunable tuna;
2505 if (copy_from_user(&tuna, useraddr, sizeof(tuna)))
2507 ret = ethtool_tunable_valid(&tuna);
2510 useraddr += sizeof(tuna);
2511 data = memdup_user(useraddr, tuna.len);
2514 ret = ops->set_tunable(dev, &tuna, data);
2634 static int ethtool_phy_tunable_valid(const struct ethtool_tunable *tuna)
2636 switch (tuna->id) {
2639 if (tuna->len != sizeof(u8) ||
2640 tuna->type_id != ETHTOOL_TUNABLE_U8)
2644 if (tuna->len != sizeof(u16) ||
2645 tuna->type_id != ETHTOOL_TUNABLE_U16)
2658 struct ethtool_tunable tuna;
2666 if (copy_from_user(&tuna, useraddr, sizeof(tuna)))
2668 ret = ethtool_phy_tunable_valid(&tuna);
2671 data = kzalloc(tuna.len, GFP_USER);
2676 ret = phydev->drv->get_tunable(phydev, &tuna, data);
2679 ret = dev->ethtool_ops->get_phy_tunable(dev, &tuna, data);
2683 useraddr += sizeof(tuna);
2685 if (copy_to_user(useraddr, data, tuna.len))
2697 struct ethtool_tunable tuna;
2705 if (copy_from_user(&tuna, useraddr, sizeof(tuna)))
2707 ret = ethtool_phy_tunable_valid(&tuna);
2710 useraddr += sizeof(tuna);
2711 data = memdup_user(useraddr, tuna.len);
2716 ret = phydev->drv->set_tunable(phydev, &tuna, data);
2719 ret = dev->ethtool_ops->set_phy_tunable(dev, &tuna, data);