[netdrvr] tc35815: fix obvious bugs
* clear_page() use is wrong. We might have multiple pages. Use memset() instead. * Call pci_unregister_driver() in module exit. Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
Родитель
c68644d330
Коммит
420e85241e
|
@ -657,7 +657,7 @@ tc35815_init_queues(struct net_device *dev)
|
||||||
dma_cache_wback_inv((unsigned long)lp->fd_buf, PAGE_SIZE * FD_PAGE_NUM);
|
dma_cache_wback_inv((unsigned long)lp->fd_buf, PAGE_SIZE * FD_PAGE_NUM);
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
clear_page(lp->fd_buf);
|
memset(lp->fd_buf, 0, PAGE_SIZE * FD_PAGE_NUM);
|
||||||
#ifdef __mips__
|
#ifdef __mips__
|
||||||
dma_cache_wback_inv((unsigned long)lp->fd_buf, PAGE_SIZE * FD_PAGE_NUM);
|
dma_cache_wback_inv((unsigned long)lp->fd_buf, PAGE_SIZE * FD_PAGE_NUM);
|
||||||
#endif
|
#endif
|
||||||
|
@ -1732,6 +1732,11 @@ static void __exit tc35815_cleanup_module(void)
|
||||||
{
|
{
|
||||||
struct net_device *next_dev;
|
struct net_device *next_dev;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* TODO: implement a tc35815_driver.remove hook, and
|
||||||
|
* move this code into that function. Then, delete
|
||||||
|
* all root_tc35815_dev list handling code.
|
||||||
|
*/
|
||||||
while (root_tc35815_dev) {
|
while (root_tc35815_dev) {
|
||||||
struct net_device *dev = root_tc35815_dev;
|
struct net_device *dev = root_tc35815_dev;
|
||||||
next_dev = ((struct tc35815_local *)dev->priv)->next_module;
|
next_dev = ((struct tc35815_local *)dev->priv)->next_module;
|
||||||
|
@ -1740,6 +1745,9 @@ static void __exit tc35815_cleanup_module(void)
|
||||||
free_netdev(dev);
|
free_netdev(dev);
|
||||||
root_tc35815_dev = next_dev;
|
root_tc35815_dev = next_dev;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pci_unregister_driver(&tc35815_driver);
|
||||||
}
|
}
|
||||||
|
|
||||||
module_init(tc35815_init_module);
|
module_init(tc35815_init_module);
|
||||||
module_exit(tc35815_cleanup_module);
|
module_exit(tc35815_cleanup_module);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче