Commit 7ece26ee authored by Alan Cox's avatar Alan Cox Committed by Linus Torvalds

[PATCH] remove a pile of 2.0 and 2.2 support

parent e49392aa
......@@ -812,13 +812,8 @@ static int munich_probe(void)
printk("munich_probe: munich chip found, IRQ %d\n", pci->irq);
#if (LINUX_VERSION_CODE < 0x02030d)
bar1 = ioremap_nocache(pci->base_address[0], 0x100);
lbi = ioremap_nocache(pci->base_address[1], 0x100);
#else
bar1 = ioremap_nocache(pci->resource[0].start, 0x100);
lbi = ioremap_nocache(pci->resource[1].start, 0x100);
#endif
if (bar1 && lbi)
{
......
......@@ -198,12 +198,6 @@ void cpc_tty_init(pc300dev_t *pc300dev)
int port, aux;
st_cpc_tty_area * cpc_tty;
if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,0)) {
printk("%s-tty: Error: TTY driver is supported on 2.4.X kernel!\n",
((struct net_device*)(pc300dev->hdlc))->name);
return;
}
/* hdlcX - X=interface number */
port = ((struct net_device*)(pc300dev->hdlc))->name[4] - '0';
if (port >= CPC_TTY_NPORTS) {
......
This diff is collapsed.
This diff is collapsed.
......@@ -252,8 +252,6 @@ static int wpft1_exec(sdla_t *card, void *u_cmd, void *u_data)
CHDLC_MAILBOX_STRUCT* mbox = card->mbox;
int len;
#if defined(LINUX_2_1) || defined(LINUX_2_4)
if (copy_from_user((void*)&mbox->command, u_cmd, sizeof(ft1_exec_cmd_t))){
return -EFAULT;
}
......@@ -282,36 +280,6 @@ static int wpft1_exec(sdla_t *card, void *u_cmd, void *u_data)
return -EFAULT;
}
#else
if (!u_cmd || verify_area(VERIFY_WRITE, u_cmd, sizeof(ft1_exec_cmd_t))){
return -EFAULT;
}
memcpy_fromfs((void*)&mbox->command, u_cmd, sizeof(ft1_exec_cmd_t));
len = mbox->buffer_length;
if (len) {
if (!u_data || verify_area(VERIFY_READ, u_data, len))
return -EFAULT;
memcpy_fromfs((void*)&mbox->data, u_data, len);
}
/* execute command */
if (!sdla_exec(mbox))
return -EIO;
/* return result */
memcpy_tofs(u_cmd, (void*)&mbox->command, sizeof(ft1_exec_cmd_t));
len = mbox->buffer_length;
if (len && u_data && !verify_area(VERIFY_WRITE, u_data, len)){
memcpy_tofs(u_data, (void*)&mbox->data, len);
}
#endif
return 0;
}
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -64,26 +64,10 @@
#include <linux/sdlapci.h>
#include <linux/if_wanpipe_common.h>
#if defined(LINUX_2_4)
#define netdevice_t struct net_device
#include <asm/uaccess.h> /* kernel <-> user copy */
#include <linux/inetdevice.h>
#define netdevice_t struct net_device
#elif defined(LINUX_2_1)
#include <asm/uaccess.h> /* kernel <-> user copy */
#include <linux/inetdevice.h>
#define netdevice_t struct device
#else
#include <asm/segment.h>
#define devinet_ioctl(x,y) dev_ioctl(x,y)
#define netdevice_t struct device
#define test_and_set_bit set_bit
typedef unsigned long mm_segment_t;
#endif
#include <asm/uaccess.h> /* kernel <-> user copy */
#include <linux/inetdevice.h>
#include <linux/ip.h>
#include <net/route.h>
......@@ -240,23 +224,12 @@ static sdla_t* card_array = NULL; /* adapter data space */
* function, which will execute all pending,
* tasks in wanpipe_tq_custom queue */
#ifdef LINUX_2_4
DECLARE_TASK_QUEUE(wanpipe_tq_custom);
static struct tq_struct wanpipe_tq_task =
{
.routine = (void (*)(void *)) run_wanpipe_tq,
.data = &wanpipe_tq_custom
};
#else
static struct tq_struct *wanpipe_tq_custom = NULL;
static struct tq_struct wanpipe_tq_task =
{
NULL,
0,
(void *)(void *) run_wanpipe_tq,
&wanpipe_tq_custom
};
#endif
static int wanpipe_bh_critical=0;
......@@ -511,9 +484,7 @@ static int setup (wan_device_t* wandev, wandev_conf_t* conf)
if (!card->configured){
/* Initialize the Spin lock */
#if defined(__SMP__) || defined(LINUX_2_4)
printk(KERN_INFO "%s: Initializing for SMP\n",wandev->name);
#endif
/* Piggyback spin lock has already been initialized,
* in check_s514/s508_conflicts() */
......@@ -974,26 +945,13 @@ static int ioctl_dump (sdla_t* card, sdla_dump_t* u_dump)
unsigned long smp_flags;
int err = 0;
#if defined(LINUX_2_1) || defined(LINUX_2_4)
if(copy_from_user((void*)&dump, (void*)u_dump, sizeof(sdla_dump_t)))
return -EFAULT;
#else
if ((u_dump == NULL) ||
verify_area(VERIFY_READ, u_dump, sizeof(sdla_dump_t)))
return -EFAULT;
memcpy_fromfs((void*)&dump, (void*)u_dump, sizeof(sdla_dump_t));
#endif
if ((dump.magic != WANPIPE_MAGIC) ||
(dump.offset + dump.length > card->hw.memory))
return -EINVAL;
#ifdef LINUX_2_0
if ((dump.ptr == NULL) ||
verify_area(VERIFY_WRITE, dump.ptr, dump.length))
return -EFAULT;
#endif
winsize = card->hw.dpmsize;
if(card->hw.type != SDLA_S514) {
......@@ -1014,17 +972,13 @@ static int ioctl_dump (sdla_t* card, sdla_dump_t* u_dump)
break;
}
#if defined(LINUX_2_1) || defined(LINUX_2_4)
if(copy_to_user((void *)dump.ptr,
(u8 *)card->hw.dpmbase + pos, len)){
unlock_adapter_irq(&card->wandev.lock, &smp_flags);
return -EFAULT;
}
#else
memcpy_tofs((void*)(dump.ptr),
(void*)(card->hw.dpmbase + pos), len);
#endif
dump.length -= len;
dump.offset += len;
(char*)dump.ptr += len;
......@@ -1035,15 +989,10 @@ static int ioctl_dump (sdla_t* card, sdla_dump_t* u_dump)
}else {
#if defined(LINUX_2_1) || defined(LINUX_2_4)
if(copy_to_user((void *)dump.ptr,
(u8 *)card->hw.dpmbase + dump.offset, dump.length)){
return -EFAULT;
}
#else
memcpy_tofs((void*)(dump.ptr),
(void*)(card->hw.dpmbase + dump.offset), dump.length);
#endif
}
return err;
......@@ -1064,15 +1013,8 @@ static int ioctl_exec (sdla_t* card, sdla_exec_t* u_exec, int cmd)
return -ENODEV;
}
#if defined(LINUX_2_1) || defined(LINUX_2_4)
if(copy_from_user((void*)&exec, (void*)u_exec, sizeof(sdla_exec_t)))
return -EFAULT;
#else
if ((u_exec == NULL) ||
verify_area(VERIFY_READ, u_exec, sizeof(sdla_exec_t)))
return -EFAULT;
memcpy_fromfs((void*)&exec, (void*)u_exec, sizeof(sdla_exec_t));
#endif
if ((exec.magic != WANPIPE_MAGIC) || (exec.cmd == NULL))
return -EINVAL;
......@@ -1345,60 +1287,33 @@ int change_dev_flags (netdevice_t *dev, unsigned flags)
unsigned long get_ip_address (netdevice_t *dev, int option)
{
#ifdef LINUX_2_4
struct in_ifaddr *ifaddr;
struct in_device *in_dev;
if ((in_dev = __in_dev_get(dev)) == NULL){
return 0;
}
#elif defined(LINUX_2_1)
struct in_ifaddr *ifaddr;
struct in_device *in_dev;
if ((in_dev = dev->ip_ptr) == NULL){
return 0;
}
#endif
#if defined(LINUX_2_1) || defined(LINUX_2_4)
if ((ifaddr = in_dev->ifa_list)== NULL ){
return 0;
}
#endif
switch (option){
case WAN_LOCAL_IP:
#ifdef LINUX_2_0
return dev->pa_addr;
#else
return ifaddr->ifa_local;
#endif
break;
case WAN_POINTOPOINT_IP:
#ifdef LINUX_2_0
return dev->pa_dstaddr;
#else
return ifaddr->ifa_address;
#endif
break;
case WAN_NETMASK_IP:
#ifdef LINUX_2_0
return dev->pa_mask;
#else
return ifaddr->ifa_mask;
#endif
break;
case WAN_BROADCAST_IP:
#ifdef LINUX_2_0
return dev->pa_brdaddr;
#else
return ifaddr->ifa_broadcast;
#endif
break;
default:
return 0;
......@@ -1431,11 +1346,7 @@ void add_gateway(sdla_t *card, netdevice_t *dev)
oldfs = get_fs();
set_fs(get_ds());
#if defined(LINUX_2_1) || defined(LINUX_2_4)
res = ip_rt_ioctl(SIOCADDRT,&route);
#else
res = ip_rt_new(&route);
#endif
set_fs(oldfs);
if (res == 0){
......
......@@ -42,19 +42,11 @@
#include <linux/if_wanpipe.h>
#if defined(LINUX_2_1) || defined(LINUX_2_4)
#include <linux/inetdevice.h>
#include <asm/uaccess.h>
#include <linux/inetdevice.h>
#include <asm/uaccess.h>
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,3)
#include <net/syncppp.h>
#else
#include "syncppp.h"
#endif
#include <net/syncppp.h>
#else
#include <net/route.h> /* Adding new route entries */
#endif
/****** Defines & Macros ****************************************************/
......@@ -148,15 +140,9 @@ static int if_init (netdevice_t* dev);
static int if_open (netdevice_t* dev);
static int if_close (netdevice_t* dev);
static int if_send (struct sk_buff* skb, netdevice_t* dev);
#if defined(LINUX_2_1) || defined(LINUX_2_4)
static struct net_device_stats* if_stats (netdevice_t* dev);
#else
static struct enet_statistics* if_stats (netdevice_t* dev);
#endif
#ifdef LINUX_2_4
static void if_tx_timeout (netdevice_t *dev);
#endif
/* CHDLC Firmware interface functions */
static int chdlc_configure (sdla_t* card, void* data);
......@@ -601,17 +587,7 @@ static int new_if (wan_device_t* wandev, netdevice_t* pdev, wanif_conf_t* conf)
/* prepare network device data space for registration */
#ifdef LINUX_2_4
strcpy(dev->name,card->u.c.if_name);
#else
dev->name = (char *)kmalloc(strlen(card->u.c.if_name) + 2, GFP_KERNEL);
if(dev->name == NULL)
{
kfree(chdlc_priv_area);
return -ENOMEM;
}
sprintf(dev->name, "%s", card->u.c.if_name);
#endif
/* Attach PPP protocol layer to pppdev
* The sppp_attach() will initilize the dev structure
......@@ -620,11 +596,7 @@ static int new_if (wan_device_t* wandev, netdevice_t* pdev, wanif_conf_t* conf)
* if_open(), if_close(), if_send() and get_stats() functions.
*/
sppp_attach(pppdev);
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,16)
dev = pppdev->dev;
#else
dev = &pppdev->dev;
#endif
sp = &pppdev->sppp;
/* Enable PPP Debugging */
......@@ -684,9 +656,6 @@ static int if_init (netdevice_t* dev)
chdlc_private_area_t* chdlc_priv_area = dev->priv;
sdla_t* card = chdlc_priv_area->card;
wan_device_t* wandev = &card->wandev;
#ifdef LINUX_2_0
int i;
#endif
/* NOTE: Most of the dev initialization was
* done in sppp_attach(), called by new_if()
......@@ -699,16 +668,10 @@ static int if_init (netdevice_t* dev)
dev->stop = &if_close;
dev->hard_start_xmit = &if_send;
dev->get_stats = &if_stats;
#ifdef LINUX_2_4
dev->tx_timeout = &if_tx_timeout;
dev->watchdog_timeo = TX_TIMEOUT;
#endif
#ifdef LINUX_2_0
dev->family = AF_INET;
#endif
/* Initialize hardware parameters */
dev->irq = wandev->irq;
dev->dma = wandev->dma;
......@@ -724,17 +687,10 @@ static int if_init (netdevice_t* dev)
*/
dev->tx_queue_len = 100;
/* Initialize socket buffers */
#if !defined(LINUX_2_1) && !defined(LINUX_2_4)
for (i = 0; i < DEV_NUMBUFFS; ++i)
skb_queue_head_init(&dev->buffs[i]);
#endif
return 0;
}
#ifdef LINUX_2_4
/*============================================================================
* Handle transmit timeout event from netif watchdog
*/
......@@ -754,8 +710,6 @@ static void if_tx_timeout (netdevice_t *dev)
printk (KERN_INFO "%s: Transmit timed out on %s\n", card->devname,dev->name);
netif_wake_queue (dev);
}
#endif
/*============================================================================
......@@ -773,14 +727,8 @@ static int if_open (netdevice_t* dev)
SHARED_MEMORY_INFO_STRUCT *flags = card->u.c.flags;
/* Only one open per interface is allowed */
#ifdef LINUX_2_4
if (netif_running(dev))
return -EBUSY;
#else
if (dev->start)
return -EBUSY; /* only one open is allowed */
#endif
/* Start PPP Layer */
if (sppp_open(dev)){
......@@ -790,13 +738,7 @@ static int if_open (netdevice_t* dev)
do_gettimeofday(&tv);
chdlc_priv_area->router_start_time = tv.tv_sec;
#ifdef LINUX_2_4
netif_start_queue(dev);
#else
dev->interrupt = 0;
dev->tbusy = 0;
dev->start = 1;
#endif
wanpipe_open(card);
......@@ -817,11 +759,7 @@ static int if_close (netdevice_t* dev)
/* Stop the PPP Layer */
sppp_close(dev);
stop_net_queue(dev);
#ifndef LINUX_2_4
dev->start=0;
#endif
netif_stop_queue(dev);
wanpipe_close(card);
......@@ -855,9 +793,7 @@ static int if_send (struct sk_buff* skb, netdevice_t* dev)
unsigned long smp_flags;
int err=0;
#ifdef LINUX_2_4
netif_stop_queue(dev);
#endif
if (skb == NULL){
......@@ -867,32 +803,10 @@ static int if_send (struct sk_buff* skb, netdevice_t* dev)
printk(KERN_INFO "%s: Received NULL skb buffer! interface %s got kicked!\n",
card->devname, dev->name);
wake_net_dev(dev);
netif_wake_queue(dev);
return 0;
}
#ifndef LINUX_2_4
if (dev->tbusy){
/* If our device stays busy for at least 5 seconds then we will
* kick start the device by making dev->tbusy = 0. We expect
* that our device never stays busy more than 5 seconds. So this
* is only used as a last resort.
*/
++card->wandev.stats.collisions;
if((jiffies - chdlc_priv_area->tick_counter) < (5 * HZ)) {
return 1;
}
printk (KERN_INFO "%s: Transmit (tbusy) timeout !\n",
card->devname);
/* unbusy the interface */
dev->tbusy = 0;
}
#endif
if (ntohs(skb->protocol) != htons(PVC_PROT)){
/* check the udp packet type */
......@@ -903,7 +817,7 @@ static int if_send (struct sk_buff* skb, netdevice_t* dev)
chdlc_int->interrupt_permission |=
APP_INT_ON_TIMER;
}
start_net_queue(dev);
netif_start_queue(dev);
return 0;
}
}
......@@ -918,33 +832,29 @@ static int if_send (struct sk_buff* skb, netdevice_t* dev)
printk(KERN_INFO "%s: Critical in if_send: %lx\n",
card->wandev.name,card->wandev.critical);
++card->wandev.stats.tx_dropped;
start_net_queue(dev);
netif_start_queue(dev);
goto if_send_crit_exit;
}
if (card->wandev.state != WAN_CONNECTED){
++card->wandev.stats.tx_dropped;
start_net_queue(dev);
netif_start_queue(dev);
goto if_send_crit_exit;
}
if (chdlc_send(card, skb->data, skb->len)){
stop_net_queue(dev);
netif_stop_queue(dev);
}else{
++card->wandev.stats.tx_packets;
#if defined(LINUX_2_1) || defined(LINUX_2_4)
card->wandev.stats.tx_bytes += skb->len;
#endif
#ifdef LINUX_2_4
dev->trans_start = jiffies;
#endif
start_net_queue(dev);
netif_start_queue(dev);
}
if_send_crit_exit:
if (!(err=is_queue_stopped(dev))){
wan_dev_kfree_skb(skb, FREE_WRITE);
if (!(err=netif_queue_stopped(dev))){
dev_kfree_skb_any(skb);
}else{
chdlc_priv_area->tick_counter = jiffies;
chdlc_int->interrupt_permission |= APP_INT_ON_TX_FRAME;
......@@ -1063,7 +973,6 @@ unsigned short calc_checksum (char *data, int len)
* Get ethernet-style interface statistics.
* Return a pointer to struct enet_statistics.
*/
#if defined(LINUX_2_1) || defined(LINUX_2_4)
static struct net_device_stats* if_stats (netdevice_t* dev)
{
sdla_t *my_card;
......@@ -1079,23 +988,7 @@ static struct net_device_stats* if_stats (netdevice_t* dev)
my_card = chdlc_priv_area->card;
return &my_card->wandev.stats;
}
#else
static struct enet_statistics* if_stats (netdevice_t* dev)
{
sdla_t *my_card;
chdlc_private_area_t* chdlc_priv_area = dev->priv;
/* Shutdown bug fix. In del_if() we kill
* dev->priv pointer. This function, gets
* called after del_if(), thus check
* if pointer has been deleted */
if ((chdlc_priv_area=dev->priv) == NULL)
return NULL;
my_card = chdlc_priv_area->card;
return &my_card->wandev.stats;
}
#endif
/****** Cisco HDLC Firmware Interface Functions *******************************/
......@@ -1417,7 +1310,7 @@ STATIC void wsppp_isr (sdla_t* card)
flags->interrupt_info_struct.interrupt_permission &=
~APP_INT_ON_TX_FRAME;
wake_net_dev(dev);
netif_wake_queue(dev);
break;
case COMMAND_COMPLETE_APP_INT_PEND:/* 0x04: cmd cplt */
......@@ -1505,15 +1398,9 @@ static void rx_intr (sdla_t* card)
goto rx_exit;
}
#ifdef LINUX_2_4
if (!netif_running(dev)){
goto rx_exit;
}
#else
if (!dev->start){
goto rx_exit;
}
#endif
chdlc_priv_area = dev->priv;
......@@ -1555,9 +1442,7 @@ static void rx_intr (sdla_t* card)
skb->protocol = htons(ETH_P_WAN_PPP);
card->wandev.stats.rx_packets ++;
#if defined(LINUX_2_1) || defined(LINUX_2_4)
card->wandev.stats.rx_bytes += skb->len;
#endif
udp_type = udp_pkt_type( skb, card );
if(udp_type == UDP_CPIPE_TYPE) {
......@@ -1795,9 +1680,9 @@ static int store_udp_mgmt_pkt(char udp_pkt_src, sdla_t* card,
}
if(udp_pkt_src == UDP_PKT_FRM_STACK)
wan_dev_kfree_skb(skb, FREE_WRITE);
dev_kfree_skb_any(skb);
else
wan_dev_kfree_skb(skb, FREE_READ);
dev_kfree_skb_any(skb);
return(udp_pkt_stored);
}
......@@ -2156,9 +2041,7 @@ static int process_udp_mgmt_pkt(sdla_t* card, netdevice_t* dev,
if(chdlc_priv_area->udp_pkt_src == UDP_PKT_FRM_NETWORK) {
if(!chdlc_send(card, chdlc_priv_area->udp_pkt_data, len)) {
++ card->wandev.stats.tx_packets;
#if defined(LINUX_2_1) || defined(LINUX_2_4)
card->wandev.stats.tx_bytes += len;
#endif
}
} else {
......@@ -2360,28 +2243,20 @@ static void port_set_state (sdla_t *card, int state)
void s508_lock (sdla_t *card, unsigned long *smp_flags)
{
#if defined(__SMP__) || defined(LINUX_2_4)
spin_lock_irqsave(&card->wandev.lock, *smp_flags);
if (card->next){
/* It is ok to use spin_lock here, since we
* already turned off interrupts */
spin_lock(&card->next->wandev.lock);
}
#else
disable_irq(card->hw.irq);
#endif
}
void s508_unlock (sdla_t *card, unsigned long *smp_flags)
{
#if defined(__SMP__) || defined(LINUX_2_4)
if (card->next){
spin_unlock(&card->next->wandev.lock);
}
spin_unlock_irqrestore(&card->wandev.lock, *smp_flags);
#else
enable_irq(card->hw.irq);
#endif
}
......
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