#include <asm/uaccess.h>
#include <asm/atomic.h>
#include "nicstar.h"
-#include "nicstarmac.h"
#ifdef CONFIG_ATM_NICSTAR_USE_SUNI
#include "suni.h"
#endif /* CONFIG_ATM_NICSTAR_USE_SUNI */
static void dequeue_sm_buf(ns_dev *card, struct sk_buff *sb);
static void dequeue_lg_buf(ns_dev *card, struct sk_buff *lb);
static int ns_proc_read(struct atm_dev *dev, loff_t *pos, char *page);
-static int ns_ioctl(struct atm_dev *dev, unsigned int cmd, void *arg);
+static int ns_ioctl(struct atm_dev *dev, unsigned int cmd, void __user *arg);
static void which_list(ns_dev *card, struct sk_buff *skb);
static void ns_poll(unsigned long arg);
static int ns_parse_mac(char *mac, unsigned char *esi);
};
static struct timer_list ns_timer;
static char *mac[NS_MAX_CARDS];
-MODULE_PARM(mac, "1-" __MODULE_STRING(NS_MAX_CARDS) "s");
+module_param_array(mac, charp, NULL, 0);
MODULE_LICENSE("GPL");
u32 u32d[4];
u32 ns_cfg_rctsize;
int bcount;
+ unsigned long membase;
error = 0;
card->index = i;
card->atmdev = NULL;
card->pcidev = pcidev;
- card->membase = pci_resource_start(pcidev, 1);
- card->membase = (unsigned long) ioremap(card->membase, NS_IOREMAP_SIZE);
+ membase = pci_resource_start(pcidev, 1);
+ card->membase = ioremap(membase, NS_IOREMAP_SIZE);
if (card->membase == 0)
{
printk("nicstar%d: can't ioremap() membase.\n",i);
-static int ns_ioctl(struct atm_dev *dev, unsigned int cmd, void *arg)
+static int ns_ioctl(struct atm_dev *dev, unsigned int cmd, void __user *arg)
{
ns_dev *card;
pool_levels pl;
switch (cmd)
{
case NS_GETPSTAT:
- if (get_user(pl.buftype, &((pool_levels *) arg)->buftype))
+ if (get_user(pl.buftype, &((pool_levels __user *) arg)->buftype))
return -EFAULT;
switch (pl.buftype)
{
return -ENOIOCTLCMD;
}
- if (!copy_to_user((pool_levels *) arg, &pl, sizeof(pl)))
+ if (!copy_to_user((pool_levels __user *) arg, &pl, sizeof(pl)))
return (sizeof(pl));
else
return -EFAULT;
case NS_SETBUFLEV:
if (!capable(CAP_NET_ADMIN))
return -EPERM;
- if (copy_from_user(&pl, (pool_levels *) arg, sizeof(pl)))
+ if (copy_from_user(&pl, (pool_levels __user *) arg, sizeof(pl)))
return -EFAULT;
if (pl.level.min >= pl.level.init || pl.level.init >= pl.level.max)
return -EINVAL;