Commit a00db1ba authored by Pavel Roskin's avatar Pavel Roskin Committed by Linus Torvalds

[PATCH] pcmcia: remove client services version

The Linux PCMCIA code has some data that was apparently used (or meant to be
used) to ensure that only proper client drivers are loaded.  This is now
ensured (to a certain degree) by the fact that the most client drivers are
part of the kernel.  Also, the version information has not been updated
despite major changes in PCMCIA API.  This has made it meaningless.

This patch removes servinfo_t and pcmcia_get_card_services_info.  They are not
used in any userspace utilities such as pcmcia-cs and pcmciautils.
drivers/pcmcia/pcmcia_ioctl.c is adjusted accordingly.

CS_RELEASE and CS_RELEASE_CODE are removed.  include/pcmcia/version.h is empty
now.  It will be removed later, but for now it's left in the tree to avoid
touching all PCMCIA clients.

The only driver that needs to be changed is drivers/scsi/pcmcia/nsp_cs.c,
which uses CS_RELEASE_CODE.
Signed-off-by: default avatarPavel Roskin <proski@gnu.org>
Signed-off-by: default avatarDominik Brodowski <linux@dominikbrodowski.net>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 2bc5a9bd
...@@ -71,29 +71,6 @@ extern int ds_pc_debug; ...@@ -71,29 +71,6 @@ extern int ds_pc_debug;
#define ds_dbg(lvl, fmt, arg...) do { } while (0) #define ds_dbg(lvl, fmt, arg...) do { } while (0)
#endif #endif
static const char *release = "Linux Kernel Card Services";
/** pcmcia_get_card_services_info
*
* Return information about this version of Card Services
*/
static int pcmcia_get_card_services_info(servinfo_t *info)
{
unsigned int socket_count = 0;
struct list_head *tmp;
info->Signature[0] = 'C';
info->Signature[1] = 'S';
down_read(&pcmcia_socket_list_rwsem);
list_for_each(tmp, &pcmcia_socket_list)
socket_count++;
up_read(&pcmcia_socket_list_rwsem);
info->Count = socket_count;
info->Revision = CS_RELEASE_CODE;
info->CSLevel = 0x0210;
info->VendorString = (char *)release;
return CS_SUCCESS;
} /* get_card_services_info */
/* backwards-compatible accessing of driver --- by name! */ /* backwards-compatible accessing of driver --- by name! */
...@@ -591,9 +568,6 @@ static int ds_ioctl(struct inode * inode, struct file * file, ...@@ -591,9 +568,6 @@ static int ds_ioctl(struct inode * inode, struct file * file,
case DS_ADJUST_RESOURCE_INFO: case DS_ADJUST_RESOURCE_INFO:
ret = pcmcia_adjust_resource_info(&buf->adjust); ret = pcmcia_adjust_resource_info(&buf->adjust);
break; break;
case DS_GET_CARD_SERVICES_INFO:
ret = pcmcia_get_card_services_info(&buf->servinfo);
break;
case DS_GET_CONFIGURATION_INFO: case DS_GET_CONFIGURATION_INFO:
if (buf->config.Function && if (buf->config.Function &&
(buf->config.Function >= s->functions)) (buf->config.Function >= s->functions))
......
...@@ -2155,10 +2155,6 @@ static int __init nsp_cs_init(void) ...@@ -2155,10 +2155,6 @@ static int __init nsp_cs_init(void)
nsp_msg(KERN_INFO, "loading..."); nsp_msg(KERN_INFO, "loading...");
pcmcia_get_card_services_info(&serv); pcmcia_get_card_services_info(&serv);
if (serv.Revision != CS_RELEASE_CODE) {
nsp_msg(KERN_DEBUG, "Card Services release does not match!");
return -EINVAL;
}
register_pcmcia_driver(&dev_info, &nsp_cs_attach, &nsp_cs_detach); register_pcmcia_driver(&dev_info, &nsp_cs_attach, &nsp_cs_detach);
nsp_dbg(NSP_DEBUG_INIT, "out"); nsp_dbg(NSP_DEBUG_INIT, "out");
......
...@@ -68,14 +68,6 @@ typedef struct adjust_t { ...@@ -68,14 +68,6 @@ typedef struct adjust_t {
#define RES_ALLOCATED 0x20 #define RES_ALLOCATED 0x20
#define RES_REMOVED 0x40 #define RES_REMOVED 0x40
typedef struct servinfo_t {
char Signature[2];
u_int Count;
u_int Revision;
u_int CSLevel;
char *VendorString;
} servinfo_t;
typedef struct event_callback_args_t { typedef struct event_callback_args_t {
struct pcmcia_device *client_handle; struct pcmcia_device *client_handle;
void *client_data; void *client_data;
......
...@@ -49,7 +49,6 @@ typedef struct mtd_info_t { ...@@ -49,7 +49,6 @@ typedef struct mtd_info_t {
} mtd_info_t; } mtd_info_t;
typedef union ds_ioctl_arg_t { typedef union ds_ioctl_arg_t {
servinfo_t servinfo;
adjust_t adjust; adjust_t adjust;
config_info_t config; config_info_t config;
tuple_t tuple; tuple_t tuple;
...@@ -65,7 +64,6 @@ typedef union ds_ioctl_arg_t { ...@@ -65,7 +64,6 @@ typedef union ds_ioctl_arg_t {
cisdump_t cisdump; cisdump_t cisdump;
} ds_ioctl_arg_t; } ds_ioctl_arg_t;
#define DS_GET_CARD_SERVICES_INFO _IOR ('d', 1, servinfo_t)
#define DS_ADJUST_RESOURCE_INFO _IOWR('d', 2, adjust_t) #define DS_ADJUST_RESOURCE_INFO _IOWR('d', 2, adjust_t)
#define DS_GET_CONFIGURATION_INFO _IOWR('d', 3, config_info_t) #define DS_GET_CONFIGURATION_INFO _IOWR('d', 3, config_info_t)
#define DS_GET_FIRST_TUPLE _IOWR('d', 4, tuple_t) #define DS_GET_FIRST_TUPLE _IOWR('d', 4, tuple_t)
......
/* version.h 1.94 2000/10/03 17:55:48 (David Hinds) */ /* version.h 1.94 2000/10/03 17:55:48 (David Hinds) */
#define CS_RELEASE "3.1.22" /* This file will be removed, please don't include it */
#define CS_RELEASE_CODE 0x3116
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment