|
@@ -186,12 +186,6 @@ int pcmcia_register_socket(struct pcmcia_socket *socket)
|
|
|
|
|
|
spin_lock_init(&socket->lock);
|
|
|
|
|
|
- if (socket->resource_ops->init) {
|
|
|
- ret = socket->resource_ops->init(socket);
|
|
|
- if (ret)
|
|
|
- return (ret);
|
|
|
- }
|
|
|
-
|
|
|
/* try to obtain a socket number [yes, it gets ugly if we
|
|
|
* register more than 2^sizeof(unsigned int) pcmcia
|
|
|
* sockets... but the socket number is deprecated
|
|
@@ -239,6 +233,12 @@ int pcmcia_register_socket(struct pcmcia_socket *socket)
|
|
|
mutex_init(&socket->skt_mutex);
|
|
|
spin_lock_init(&socket->thread_lock);
|
|
|
|
|
|
+ if (socket->resource_ops->init) {
|
|
|
+ ret = socket->resource_ops->init(socket);
|
|
|
+ if (ret)
|
|
|
+ goto err;
|
|
|
+ }
|
|
|
+
|
|
|
tsk = kthread_run(pccardd, socket, "pccardd");
|
|
|
if (IS_ERR(tsk)) {
|
|
|
ret = PTR_ERR(tsk);
|