git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'upstream'
[pandora-kernel.git]
/
arch
/
um
/
drivers
/
net_kern.c
diff --git
a/arch/um/drivers/net_kern.c
b/arch/um/drivers/net_kern.c
index
4cf31a2
..
fb1f9fb
100644
(file)
--- a/
arch/um/drivers/net_kern.c
+++ b/
arch/um/drivers/net_kern.c
@@
-34,7
+34,7
@@
#define DRIVER_NAME "uml-netdev"
static DEFINE_SPINLOCK(opened_lock);
#define DRIVER_NAME "uml-netdev"
static DEFINE_SPINLOCK(opened_lock);
-LIST_HEAD(opened);
+
static
LIST_HEAD(opened);
static int uml_net_rx(struct net_device *dev)
{
static int uml_net_rx(struct net_device *dev)
{
@@
-150,6
+150,7
@@
static int uml_net_close(struct net_device *dev)
if(lp->close != NULL)
(*lp->close)(lp->fd, &lp->user);
lp->fd = -1;
if(lp->close != NULL)
(*lp->close)(lp->fd, &lp->user);
lp->fd = -1;
+ list_del(&lp->list);
spin_unlock(&lp->lock);
return 0;
spin_unlock(&lp->lock);
return 0;
@@
-266,11
+267,12
@@
void uml_net_user_timer_expire(unsigned long _conn)
}
static DEFINE_SPINLOCK(devices_lock);
}
static DEFINE_SPINLOCK(devices_lock);
-static
struct list_head devices = LIST_HEAD_INIT
(devices);
+static
LIST_HEAD
(devices);
-static struct device_driver uml_net_driver = {
- .name = DRIVER_NAME,
- .bus = &platform_bus_type,
+static struct platform_driver uml_net_driver = {
+ .driver = {
+ .name = DRIVER_NAME,
+ },
};
static int driver_registered;
};
static int driver_registered;
@@
-317,7
+319,7
@@
static int eth_configure(int n, void *init, char *mac,
/* sysfs register */
if (!driver_registered) {
/* sysfs register */
if (!driver_registered) {
- driver_register(¨_net_driver);
+
platform_
driver_register(¨_net_driver);
driver_registered = 1;
}
device->pdev.id = n;
driver_registered = 1;
}
device->pdev.id = n;
@@
-585,7
+587,7
@@
static int net_config(char *str)
err = eth_parse(str, &n, &str);
if(err) return(err);
err = eth_parse(str, &n, &str);
if(err) return(err);
- str =
uml_strdup(str
);
+ str =
kstrdup(str, GFP_KERNEL
);
if(str == NULL){
printk(KERN_ERR "net_config failed to strdup string\n");
return(-1);
if(str == NULL){
printk(KERN_ERR "net_config failed to strdup string\n");
return(-1);
@@
-714,6
+716,7
@@
static void close_devices(void)
list_for_each(ele, &opened){
lp = list_entry(ele, struct uml_net_private, list);
list_for_each(ele, &opened){
lp = list_entry(ele, struct uml_net_private, list);
+ free_irq(lp->dev->irq, lp->dev);
if((lp->close != NULL) && (lp->fd >= 0))
(*lp->close)(lp->fd, &lp->user);
if(lp->remove != NULL) (*lp->remove)(&lp->user);
if((lp->close != NULL) && (lp->fd >= 0))
(*lp->close)(lp->fd, &lp->user);
if(lp->remove != NULL) (*lp->remove)(&lp->user);