diff options
| author | Dan Williams <dan.j.williams@intel.com> | 2009-12-22 19:21:47 -0500 |
|---|---|---|
| committer | Dan Williams <dan.j.williams@intel.com> | 2009-12-22 19:21:47 -0500 |
| commit | f80ca163d65903276bec7045a484a79c0897eb2d (patch) | |
| tree | 97c7d61d43248b9db0757a76af80ff58b98b5599 /drivers/net/can/dev.c | |
| parent | 0794ec8ce327ec74416b569b8fb1951274693700 (diff) | |
| parent | a6d52d70677e99bdb89b6921c265d0a58c22e597 (diff) | |
Merge branch 'ioat' into fixes
Diffstat (limited to 'drivers/net/can/dev.c')
| -rw-r--r-- | drivers/net/can/dev.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/net/can/dev.c b/drivers/net/can/dev.c index f0b9a1e1db46..2868fe842a41 100644 --- a/drivers/net/can/dev.c +++ b/drivers/net/can/dev.c | |||
| @@ -589,6 +589,22 @@ static int can_changelink(struct net_device *dev, | |||
| 589 | return 0; | 589 | return 0; |
| 590 | } | 590 | } |
| 591 | 591 | ||
| 592 | static size_t can_get_size(const struct net_device *dev) | ||
| 593 | { | ||
| 594 | struct can_priv *priv = netdev_priv(dev); | ||
| 595 | size_t size; | ||
| 596 | |||
| 597 | size = nla_total_size(sizeof(u32)); /* IFLA_CAN_STATE */ | ||
| 598 | size += sizeof(struct can_ctrlmode); /* IFLA_CAN_CTRLMODE */ | ||
| 599 | size += nla_total_size(sizeof(u32)); /* IFLA_CAN_RESTART_MS */ | ||
| 600 | size += sizeof(struct can_bittiming); /* IFLA_CAN_BITTIMING */ | ||
| 601 | size += sizeof(struct can_clock); /* IFLA_CAN_CLOCK */ | ||
| 602 | if (priv->bittiming_const) /* IFLA_CAN_BITTIMING_CONST */ | ||
| 603 | size += sizeof(struct can_bittiming_const); | ||
| 604 | |||
| 605 | return size; | ||
| 606 | } | ||
| 607 | |||
| 592 | static int can_fill_info(struct sk_buff *skb, const struct net_device *dev) | 608 | static int can_fill_info(struct sk_buff *skb, const struct net_device *dev) |
| 593 | { | 609 | { |
| 594 | struct can_priv *priv = netdev_priv(dev); | 610 | struct can_priv *priv = netdev_priv(dev); |
| @@ -613,6 +629,11 @@ nla_put_failure: | |||
| 613 | return -EMSGSIZE; | 629 | return -EMSGSIZE; |
| 614 | } | 630 | } |
| 615 | 631 | ||
| 632 | static size_t can_get_xstats_size(const struct net_device *dev) | ||
| 633 | { | ||
| 634 | return sizeof(struct can_device_stats); | ||
| 635 | } | ||
| 636 | |||
| 616 | static int can_fill_xstats(struct sk_buff *skb, const struct net_device *dev) | 637 | static int can_fill_xstats(struct sk_buff *skb, const struct net_device *dev) |
| 617 | { | 638 | { |
| 618 | struct can_priv *priv = netdev_priv(dev); | 639 | struct can_priv *priv = netdev_priv(dev); |
| @@ -639,7 +660,9 @@ static struct rtnl_link_ops can_link_ops __read_mostly = { | |||
| 639 | .setup = can_setup, | 660 | .setup = can_setup, |
| 640 | .newlink = can_newlink, | 661 | .newlink = can_newlink, |
| 641 | .changelink = can_changelink, | 662 | .changelink = can_changelink, |
| 663 | .get_size = can_get_size, | ||
| 642 | .fill_info = can_fill_info, | 664 | .fill_info = can_fill_info, |
| 665 | .get_xstats_size = can_get_xstats_size, | ||
| 643 | .fill_xstats = can_fill_xstats, | 666 | .fill_xstats = can_fill_xstats, |
| 644 | }; | 667 | }; |
| 645 | 668 | ||
