On Tue, Sep 14, 2010 at 9:52 PM, Denis Kirjanov <kirjanov@gmail.com> wrote:

+static struct pci_driver pcnet_dummy_driver = {
+       .name           = DRV_NAME,
+       .id_table       = pcnet_dummy_pci_tbl,
+       .probe          = pcnet_dummy_init_one,
+       .remove         = __devexit_p(pcnet_dummy_remove_one),


Это ничего, что мы оставляем столько элементов неинициализированными?

struct pci_driver {
        struct list_head node;
        char *name;
        const struct pci_device_id *id_table;   /* must be non-NULL for probe to be called */
        int  (*probe)  (struct pci_dev *dev, const struct pci_device_id *id);   /* New device inserted */
        void (*remove) (struct pci_dev *dev);   /* Device removed (NULL if not a hot-plug capable driver) */
        int  (*suspend) (struct pci_dev *dev, pm_message_t state);      /* Device suspended */
        int  (*suspend_late) (struct pci_dev *dev, pm_message_t state);
        int  (*resume_early) (struct pci_dev *dev);
        int  (*resume) (struct pci_dev *dev);                   /* Device woken up */
        void (*shutdown) (struct pci_dev *dev);
        struct pm_ext_ops *pm;
        struct pci_error_handlers *err_handler;
        struct device_driver    driver;
        struct pci_dynids dynids;
};

Было бы здорово, Ден, некоторые комментарии к коду ;)