git.samba.org
/
sfrench
/
cifs-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Pull vector-domain into release branch
[sfrench/cifs-2.6.git]
/
drivers
/
net
/
tokenring
/
skisa.c
diff --git
a/drivers/net/tokenring/skisa.c
b/drivers/net/tokenring/skisa.c
index 3c7c66204f7474d0005021afc7fe740698fc2d3a..33afea31d87b93b591a640cc3a4771923f7184d2 100644
(file)
--- a/
drivers/net/tokenring/skisa.c
+++ b/
drivers/net/tokenring/skisa.c
@@
-36,6
+36,7
@@
static const char version[] = "skisa.c: v1.03 09/12/2002 by Jochen Friedrich\n";
#include <linux/init.h>
#include <linux/netdevice.h>
#include <linux/trdevice.h>
#include <linux/init.h>
#include <linux/netdevice.h>
#include <linux/trdevice.h>
+#include <linux/platform_device.h>
#include <asm/system.h>
#include <asm/io.h>
#include <asm/system.h>
#include <asm/io.h>
@@
-353,9
+354,10
@@
module_param_array(dma, int, NULL, 0);
static struct platform_device *sk_isa_dev[ISATR_MAX_ADAPTERS];
static struct platform_device *sk_isa_dev[ISATR_MAX_ADAPTERS];
-static struct device_driver sk_isa_driver = {
- .name = "skisa",
- .bus = &platform_bus_type,
+static struct platform_driver sk_isa_driver = {
+ .driver = {
+ .name = "skisa",
+ },
};
static int __init sk_isa_init(void)
};
static int __init sk_isa_init(void)
@@
-364,7
+366,7
@@
static int __init sk_isa_init(void)
struct platform_device *pdev;
int i, num = 0, err = 0;
struct platform_device *pdev;
int i, num = 0, err = 0;
- err = driver_register(&sk_isa_driver);
+ err =
platform_
driver_register(&sk_isa_driver);
if (err)
return err;
if (err)
return err;
@@
-378,10
+380,14
@@
static int __init sk_isa_init(void)
dev->dma = dma[i];
pdev = platform_device_register_simple("skisa",
i, NULL, 0);
dev->dma = dma[i];
pdev = platform_device_register_simple("skisa",
i, NULL, 0);
+ if (IS_ERR(pdev)) {
+ free_netdev(dev);
+ continue;
+ }
err = setup_card(dev, &pdev->dev);
if (!err) {
sk_isa_dev[i] = pdev;
err = setup_card(dev, &pdev->dev);
if (!err) {
sk_isa_dev[i] = pdev;
-
dev_set_drvdata(&sk_isa_dev[i]->dev
, dev);
+
platform_set_drvdata(sk_isa_dev[i]
, dev);
++num;
} else {
platform_device_unregister(pdev);
++num;
} else {
platform_device_unregister(pdev);
@@
-393,9
+399,10
@@
static int __init sk_isa_init(void)
/* Probe for cards. */
if (num == 0) {
printk(KERN_NOTICE "skisa.c: No cards found.\n");
/* Probe for cards. */
if (num == 0) {
printk(KERN_NOTICE "skisa.c: No cards found.\n");
- return (-ENODEV);
+ platform_driver_unregister(&sk_isa_driver);
+ return -ENODEV;
}
}
- return
(0)
;
+ return
0
;
}
static void __exit sk_isa_cleanup(void)
}
static void __exit sk_isa_cleanup(void)
@@
-408,17
+415,17
@@
static void __exit sk_isa_cleanup(void)
if (!pdev)
continue;
if (!pdev)
continue;
- dev =
dev_get_drvdata(&pdev->
dev);
+ dev =
platform_get_drvdata(p
dev);
unregister_netdev(dev);
release_region(dev->base_addr, SK_ISA_IO_EXTENT);
free_irq(dev->irq, dev);
free_dma(dev->dma);
tmsdev_term(dev);
free_netdev(dev);
unregister_netdev(dev);
release_region(dev->base_addr, SK_ISA_IO_EXTENT);
free_irq(dev->irq, dev);
free_dma(dev->dma);
tmsdev_term(dev);
free_netdev(dev);
-
dev_set_drvdata(&pdev->
dev, NULL);
+
platform_set_drvdata(p
dev, NULL);
platform_device_unregister(pdev);
}
platform_device_unregister(pdev);
}
- driver_unregister(&sk_isa_driver);
+
platform_
driver_unregister(&sk_isa_driver);
}
module_init(sk_isa_init);
}
module_init(sk_isa_init);