aboutsummaryrefslogtreecommitdiffstats
ModeNameSize
-rw-r--r--COPYING18691logstatsplainblame
-rw-r--r--CREDITS89360logstatsplainblame
d---------Documentation6137logstatsplain
-rw-r--r--MAINTAINERS57498logstatsplainblame
-rw-r--r--Makefile44185logstatsplainblame
-rw-r--r--README13970logstatsplainblame
-rw-r--r--REPORTING-BUGS3013logstatsplainblame
d---------arch723logstatsplain
d---------crypto1259logstatsplain
d---------drivers1595logstatsplain
d---------fs3822logstatsplain
d---------include1203logstatsplain
d---------init473logstatsplain
d---------ipc351logstatsplain
d---------kernel1886logstatsplain
d---------lib1636logstatsplain
d---------mm1441logstatsplain
d---------net1214logstatsplain
d---------scripts1567logstatsplain
d---------security363logstatsplain
d---------sound625logstatsplain
d---------usr123logstatsplain
> dev->flags &= ~IFF_MULTICAST; dev->features |= NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_TSO; dev->features |= NETIF_F_HW_CSUM | NETIF_F_HIGHDMA | NETIF_F_LLTX; eth_hw_addr_random(dev); } static int dummy_validate(struct nlattr *tb[], struct nlattr *data[]) { if (tb[IFLA_ADDRESS]) { if (nla_len(tb[IFLA_ADDRESS]) != ETH_ALEN) return -EINVAL; if (!is_valid_ether_addr(nla_data(tb[IFLA_ADDRESS]))) return -EADDRNOTAVAIL; } return 0; } static struct rtnl_link_ops dummy_link_ops __read_mostly = { .kind = "dummy", .setup = dummy_setup, .validate = dummy_validate, }; /* Number of dummy devices to be set up by this module. */ module_param(numdummies, int, 0); MODULE_PARM_DESC(numdummies, "Number of dummy pseudo devices"); static int __init dummy_init_one(void) { struct net_device *dev_dummy; int err; dev_dummy = alloc_netdev(0, "dummy%d", dummy_setup); if (!dev_dummy) return -ENOMEM; dev_dummy->rtnl_link_ops = &dummy_link_ops; err = register_netdevice(dev_dummy); if (err < 0) goto err; return 0; err: free_netdev(dev_dummy); return err; } static int __init dummy_init_module(void) { int i, err = 0; rtnl_lock(); err = __rtnl_link_register(&dummy_link_ops); for (i = 0; i < numdummies && !err; i++) err = dummy_init_one(); if (err < 0) __rtnl_link_unregister(&dummy_link_ops); rtnl_unlock(); return err; } static void __exit dummy_cleanup_module(void) { rtnl_link_unregister(&dummy_link_ops); } module_init(dummy_init_module); module_exit(dummy_cleanup_module); MODULE_LICENSE("GPL"); MODULE_ALIAS_RTNL_LINK("dummy");