[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Re: [RFC PATCH 34/35] Add the Xen virtual network device driver.



> +static int setup_device(struct xenbus_device *dev, struct
> netfront_info *info) +{
> +     struct netif_tx_sring *txs;
> +     struct netif_rx_sring *rxs;
> +     int err;
> +     struct net_device *netdev = info->netdev;
> +
> +     info->tx_ring_ref = GRANT_INVALID_REF;
> +     info->rx_ring_ref = GRANT_INVALID_REF;
> +     info->rx.sring = NULL;
> +     info->tx.sring = NULL;
> +     info->irq = 0;
> +
> +     txs = (struct netif_tx_sring *)get_zeroed_page(GFP_KERNEL);
> +     if (!txs) {
> +             err = -ENOMEM;
> +             xenbus_dev_fatal(dev, err, "allocating tx ring
> page");
> +             goto fail;
> +     }
> +     rxs = (struct netif_rx_sring *)get_zeroed_page(GFP_KERNEL);
> +     if (!rxs) {
> +             err = -ENOMEM;
> +             xenbus_dev_fatal(dev, err, "allocating rx ring
> page");
> +             free_page((unsigned long)txs);
> +             goto fail;
> +     }
> +     info->backend_state = BEST_DISCONNECTED;
> +
> +     SHARED_RING_INIT(txs);
> +     FRONT_RING_INIT(&info->tx, txs, PAGE_SIZE);
> +
> +     SHARED_RING_INIT(rxs);
> +     FRONT_RING_INIT(&info->rx, rxs, PAGE_SIZE);
> +
> +     err = xenbus_grant_ring(dev, virt_to_mfn(txs));
> +     if (err < 0)
> +             goto fail;
> +     info->tx_ring_ref = err;
> +
> +     err = xenbus_grant_ring(dev, virt_to_mfn(rxs));
> +     if (err < 0)
> +             goto fail;
> +     info->rx_ring_ref = err;
> +
> +     err = xenbus_alloc_evtchn(dev, &info->evtchn);
> +     if (err)
> +             goto fail;
> +
> +     memcpy(netdev->dev_addr, info->mac, ETH_ALEN);
> +     network_connect(netdev);
> +     info->irq = bind_evtchn_to_irqhandler(
> +             info->evtchn, netif_int, SA_SAMPLE_RANDOM,
> netdev->name,
> 

This doesn't look like a real random entropy source. packets
arriving from another domain are easily timed.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.