Dominik Brodowski wrote:
> If a resource is already in use, mark it with -EBUSY. Same for cards already
> asleep.
> 
> Signed-off-by: Dominik Brodowski <[EMAIL PROTECTED]>
> ---
>  drivers/pcmcia/cs.c              |    6 ++--
>  drivers/pcmcia/pcmcia_resource.c |   39 +++++++++++++++++++++++++------------
>  include/pcmcia/cs.h              |    2 +-
>  3 files changed, 30 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/pcmcia/cs.c b/drivers/pcmcia/cs.c
> index 30d7b49..940c9aa 100644
> --- a/drivers/pcmcia/cs.c
> +++ b/drivers/pcmcia/cs.c
> @@ -534,7 +534,7 @@ static int socket_insert(struct pcmcia_socket *skt)
>  static int socket_suspend(struct pcmcia_socket *skt)
>  {
>       if (skt->state & SOCKET_SUSPEND)
> -             return CS_IN_USE;
> +             return -EBUSY;
>  
>       send_event(skt, CS_EVENT_PM_SUSPEND, CS_EVENT_PRI_LOW);
>       skt->socket = dead_socket;
> @@ -556,7 +556,7 @@ static int socket_resume(struct pcmcia_socket *skt)
>       int ret;
>  
>       if (!(skt->state & SOCKET_SUSPEND))
> -             return CS_IN_USE;
> +             return -EBUSY;
>  
>       skt->socket = dead_socket;
>       skt->ops->init(skt);
> @@ -765,7 +765,7 @@ int pccard_reset_card(struct pcmcia_socket *skt)
>                       break;
>               }
>               if (skt->state & SOCKET_SUSPEND) {
> -                     ret = CS_IN_USE;
> +                     ret = -EBUSY;
>                       break;
>               }
>               if (skt->state & SOCKET_CARDBUS) {
> diff --git a/drivers/pcmcia/pcmcia_resource.c 
> b/drivers/pcmcia/pcmcia_resource.c
> index 14949fc..049e29f 100644
> --- a/drivers/pcmcia/pcmcia_resource.c
> +++ b/drivers/pcmcia/pcmcia_resource.c
> @@ -609,23 +609,29 @@ int pcmcia_request_io(struct pcmcia_device *p_dev, 
> io_req_t *req)
>       c = p_dev->function_config;
>       if (c->state & CONFIG_LOCKED)
>               return -EACCES;
> -     if (c->state & CONFIG_IO_REQ)
> -             return CS_IN_USE;
> +     if (c->state & CONFIG_IO_REQ) {
> +             ds_dbg(s, 0, "IO already configured\n");
> +             return -EBUSY;
> +     }
>       if (req->Attributes1 & (IO_SHARED | IO_FORCE_ALIAS_ACCESS))
>               return CS_BAD_ATTRIBUTE;
>       if ((req->NumPorts2 > 0) &&
>           (req->Attributes2 & (IO_SHARED | IO_FORCE_ALIAS_ACCESS)))
>               return CS_BAD_ATTRIBUTE;
>  
> +     ds_dbg(s, 1, "trying to allocate resource 1\n");
>       if (alloc_io_space(s, req->Attributes1, &req->BasePort1,
>                          req->NumPorts1, req->IOAddrLines))
> -             return CS_IN_USE;
> +             ds_dbg(s, 0, "allocation of resource 1 failed\n");
> +             return -EBUSY;

The if statement above needs braces to include both the ds_dbg 
statement and the return when debugging is enabled. This one broke 
ide_cs for me.

Larry


_______________________________________________
Linux PCMCIA reimplementation list
http://lists.infradead.org/mailman/listinfo/linux-pcmcia

Reply via email to