pcmcia: deprecate CS_BAD_ARGS
Dominik Brodowski [Sun, 3 Aug 2008 10:15:11 +0000 (12:15 +0200)]
CS_BAD_ARGS mean a badly written driver or invalid userspace ioctl access,
so translate that to -EINVAL.

Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>

drivers/pcmcia/ds.c
drivers/pcmcia/pcmcia_ioctl.c
drivers/pcmcia/pcmcia_resource.c
include/pcmcia/cs.h

index 3ccf409..5b24938 100644 (file)
@@ -78,7 +78,6 @@ static const lookup_t error_table[] = {
     { -EIO,                    "Input/Output error" },
     { -ENODEV,                 "No card present" },
     { -EINVAL,                 "Bad parameter" },
-    { CS_BAD_ARGS,             "Bad arguments" },
     { -EACCES,                 "Configuration locked" },
     { -EBUSY,                  "Resource in use" },
     { -ENOSPC,                 "No more items" },
index 9956313..f2352c2 100644 (file)
@@ -836,7 +836,7 @@ static int ds_ioctl(struct inode * inode, struct file * file,
     case DS_GET_CONFIGURATION_INFO:
        if (buf->config.Function &&
           (buf->config.Function >= s->functions))
-           ret = CS_BAD_ARGS;
+           ret = -EINVAL;
        else {
            struct pcmcia_device *p_dev = get_pcmcia_device(s, buf->config.Function);
            ret = pccard_get_configuration_info(s, p_dev, &buf->config);
@@ -867,7 +867,7 @@ static int ds_ioctl(struct inode * inode, struct file * file,
     case DS_GET_STATUS:
            if (buf->status.Function &&
                (buf->status.Function >= s->functions))
-                   ret = CS_BAD_ARGS;
+                   ret = -EINVAL;
            else {
                    struct pcmcia_device *p_dev = get_pcmcia_device(s, buf->status.Function);
                    ret = pccard_get_status(s, p_dev, &buf->status);
@@ -898,7 +898,7 @@ static int ds_ioctl(struct inode * inode, struct file * file,
            goto free_out;
        }
 
-       ret = CS_BAD_ARGS;
+       ret = -EINVAL;
 
        if (!(buf->conf_reg.Function &&
             (buf->conf_reg.Function >= s->functions))) {
@@ -970,7 +970,7 @@ static int ds_ioctl(struct inode * inode, struct file * file,
        case -ENOSYS:
            err = ret;
            break;
-       case CS_BAD_ARGS: case CS_BAD_TUPLE:
+       case CS_BAD_TUPLE:
            err = -EINVAL; break;
        case -ENOMEM:
            err = -ENOSPC; break;
index fee5713..de13c42 100644 (file)
@@ -189,7 +189,7 @@ int pcmcia_access_configuration_register(struct pcmcia_device *p_dev,
                pcmcia_write_cis_mem(s, 1, addr, 1, &val);
                break;
        default:
-               return CS_BAD_ARGS;
+               return -EINVAL;
                break;
        }
        return 0;
@@ -401,7 +401,7 @@ static int pcmcia_release_io(struct pcmcia_device *p_dev, io_req_t *req)
            (c->io.NumPorts1 != req->NumPorts1) ||
            (c->io.BasePort2 != req->BasePort2) ||
            (c->io.NumPorts2 != req->NumPorts2))
-               return CS_BAD_ARGS;
+               return -EINVAL;
 
        c->state &= ~CONFIG_IO_REQ;
 
@@ -855,8 +855,10 @@ int pcmcia_request_window(struct pcmcia_device **p_dev, win_req_t *req, window_h
        if (req->Attributes & WIN_USE_WAIT)
                win->ctl.flags |= MAP_USE_WAIT;
        win->ctl.card_start = 0;
-       if (s->ops->set_mem_map(s, &win->ctl) != 0)
-               return CS_BAD_ARGS;
+       if (s->ops->set_mem_map(s, &win->ctl) != 0) {
+               ds_dbg(s, 0, "failed to set memory mapping\n");
+               return -EIO;
+       }
        s->state |= SOCKET_WIN_REQ(w);
 
        /* Return window handle */
index 4951eb9..56f94e2 100644 (file)
@@ -294,7 +294,7 @@ typedef struct error_info_t {
 #define CS_BAD_BASE            -EINVAL
 #define CS_BAD_EDC             -ENODEV
 #define CS_BAD_IRQ             -EINVAL
-#define CS_BAD_OFFSET          -EIO
+#define CS_BAD_OFFSET          -EINVAL
 #define CS_BAD_PAGE            -EINVAL
 #define CS_READ_FAILURE                -EIO
 #define CS_BAD_SIZE            -EINVAL
@@ -312,7 +312,7 @@ typedef struct error_info_t {
 #define CS_GENERAL_FAILURE     -ETIMEDOUT
 #define CS_WRITE_PROTECTED     -EPERM
 #define CS_BAD_ARG_LENGTH      -ENODEV
-#define CS_BAD_ARGS            0x1c
+#define CS_BAD_ARGS            -EINVAL
 #define CS_CONFIGURATION_LOCKED        -EACCES
 #define CS_IN_USE              -EBUSY
 #define CS_NO_MORE_ITEMS       -ENOSPC