summaryrefslogtreecommitdiff
path: root/drivers/net
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@athlon.transmeta.com>2002-02-04 20:10:26 -0800
committerLinus Torvalds <torvalds@athlon.transmeta.com>2002-02-04 20:10:26 -0800
commitbb5b6e6c4dea4242f6ff75fa7adecea4f34935f1 (patch)
treedbdda6fdd7f0bfadb4c10a997bfb15660f3223c0 /drivers/net
parent0b9ded43ee424791d9283cee2a33dcb4a97da57d (diff)
v2.4.8.4 -> v2.4.9
- David Miller: sparc updates, FAT fs fixes, btaudio build fix - David Gibson: Orinoco driver update - Kevin Fleming: more disks the HPT controller doesn't like - David Miller: "min()/max()" cleanups. Understands signs and sizes. - Ben LaHaise: make vma merging more generous, help Mozilla /proc/<>/maps - Jens Axboe: CD updates - Trond Myklebust: save away NFS credentials in inode, so that mmap can writeout. - Mark Hemment: HIGHMEM ops cleanups - Jes Sorensen: use "unsigned long" for flags in various drivers
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/acenic.c12
-rw-r--r--drivers/net/de600.c3
-rw-r--r--drivers/net/dgrs.c3
-rw-r--r--drivers/net/hamradio/baycom_epp.c13
-rw-r--r--drivers/net/hamradio/baycom_par.c5
-rw-r--r--drivers/net/hamradio/baycom_ser_fdx.c5
-rw-r--r--drivers/net/hamradio/baycom_ser_hdx.c5
-rw-r--r--drivers/net/hamradio/hdlcdrv.c5
-rw-r--r--drivers/net/hamradio/soundmodem/sm.h5
-rw-r--r--drivers/net/sk98lin/skproc.c2
-rw-r--r--drivers/net/sungem.c4
-rw-r--r--drivers/net/sunhme.c4
-rw-r--r--drivers/net/wan/comx-hw-comx.c10
-rw-r--r--drivers/net/wan/comx-hw-locomx.c4
-rw-r--r--drivers/net/wan/comx-hw-mixcom.c6
-rw-r--r--drivers/net/wan/comx-proto-fr.c2
-rw-r--r--drivers/net/wan/comx-proto-lapb.c2
-rw-r--r--drivers/net/wan/comx.c8
-rw-r--r--drivers/net/wan/comx.h8
-rw-r--r--drivers/net/wan/cycx_main.c4
-rw-r--r--drivers/net/wan/cycx_x25.c22
-rw-r--r--drivers/net/wan/sbni.c7
-rw-r--r--drivers/net/wan/sbni.h2
-rw-r--r--drivers/net/wan/sdla_chdlc.c12
-rw-r--r--drivers/net/wan/sdla_fr.c22
-rw-r--r--drivers/net/wan/sdla_ppp.c4
-rw-r--r--drivers/net/wan/sdla_x25.c38
-rw-r--r--drivers/net/wan/wanpipe_multppp.c4
-rw-r--r--drivers/net/wireless/airo.c10
-rw-r--r--drivers/net/wireless/airport.c12
-rw-r--r--drivers/net/wireless/hermes.c34
-rw-r--r--drivers/net/wireless/hermes.h2
-rw-r--r--drivers/net/wireless/orinoco.c182
-rw-r--r--drivers/net/wireless/orinoco.h4
-rw-r--r--drivers/net/wireless/orinoco_cs.c41
35 files changed, 285 insertions, 221 deletions
diff --git a/drivers/net/acenic.c b/drivers/net/acenic.c
index bc8ef6891a33..3b5f6df4f130 100644
--- a/drivers/net/acenic.c
+++ b/drivers/net/acenic.c
@@ -157,10 +157,6 @@ MODULE_DEVICE_TABLE(pci, acenic_pci_tbl);
#define __devinit __init
#endif
-#ifndef min
-#define min(a,b) (((a)<(b))?(a):(b))
-#endif
-
#ifndef SMP_CACHE_BYTES
#define SMP_CACHE_BYTES L1_CACHE_BYTES
#endif
@@ -2999,8 +2995,8 @@ static void __init ace_copy(struct ace_regs *regs, void *src,
return;
while (size > 0) {
- tsize = min(((~dest & (ACE_WINDOW_SIZE - 1)) + 1),
- min(size, ACE_WINDOW_SIZE));
+ tsize = min(u32, ((~dest & (ACE_WINDOW_SIZE - 1)) + 1),
+ min(u32, size, ACE_WINDOW_SIZE));
tdest = (unsigned long)&regs->Window +
(dest & (ACE_WINDOW_SIZE - 1));
writel(dest & ~(ACE_WINDOW_SIZE - 1), &regs->WinBase);
@@ -3030,8 +3026,8 @@ static void __init ace_clear(struct ace_regs *regs, u32 dest, int size)
return;
while (size > 0) {
- tsize = min(((~dest & (ACE_WINDOW_SIZE - 1)) + 1),
- min(size, ACE_WINDOW_SIZE));
+ tsize = min(u32, ((~dest & (ACE_WINDOW_SIZE - 1)) + 1),
+ min(u32, size, ACE_WINDOW_SIZE));
tdest = (unsigned long)&regs->Window +
(dest & (ACE_WINDOW_SIZE - 1));
writel(dest & ~(ACE_WINDOW_SIZE - 1), &regs->WinBase);
diff --git a/drivers/net/de600.c b/drivers/net/de600.c
index d161342c0896..d582b16db936 100644
--- a/drivers/net/de600.c
+++ b/drivers/net/de600.c
@@ -801,7 +801,6 @@ adapter_init(struct net_device *dev)
* This differs from the standard function, that can return an
* arbitrarily small window!
*/
-#define min(a,b) ((a)<(b)?(a):(b))
static unsigned long
de600_rspace(struct sock *sk)
{
@@ -815,7 +814,7 @@ de600_rspace(struct sock *sk)
*/
if (atomic_read(&sk->rmem_alloc) >= sk->rcvbuf-2*DE600_MIN_WINDOW) return(0);
- amt = min((sk->rcvbuf-atomic_read(&sk->rmem_alloc))/2/*-DE600_MIN_WINDOW*/, DE600_MAX_WINDOW);
+ amt = min(int, (sk->rcvbuf-atomic_read(&sk->rmem_alloc))/2/*-DE600_MIN_WINDOW*/, DE600_MAX_WINDOW);
if (amt < 0) return(0);
return(amt);
}
diff --git a/drivers/net/dgrs.c b/drivers/net/dgrs.c
index 65616e697179..542f526a004d 100644
--- a/drivers/net/dgrs.c
+++ b/drivers/net/dgrs.c
@@ -693,7 +693,6 @@ static int dgrs_start_xmit(struct sk_buff *skb, struct net_device *devN)
I596_RBD *rbdp;
int count;
int i, len, amt;
-# define mymin(A,B) ( (A) < (B) ? (A) : (B) )
/*
* Determine 0th priv and dev structure pointers
@@ -734,7 +733,7 @@ static int dgrs_start_xmit(struct sk_buff *skb, struct net_device *devN)
goto no_resources;
}
- amt = mymin(len, rbdp->size - count);
+ amt = min(unsigned int, len, rbdp->size - count);
memcpy( (char *) S2H(rbdp->buf) + count, skb->data + i, amt);
i += amt;
count += amt;
diff --git a/drivers/net/hamradio/baycom_epp.c b/drivers/net/hamradio/baycom_epp.c
index 7c8aef881001..403577fda957 100644
--- a/drivers/net/hamradio/baycom_epp.c
+++ b/drivers/net/hamradio/baycom_epp.c
@@ -246,11 +246,6 @@ struct baycom_state {
/* --------------------------------------------------------------------- */
-#define min(a, b) (((a) < (b)) ? (a) : (b))
-#define max(a, b) (((a) > (b)) ? (a) : (b))
-
-/* --------------------------------------------------------------------- */
-
#define KISS_VERBOSE
/* --------------------------------------------------------------------- */
@@ -615,7 +610,7 @@ static int transmit(struct baycom_state *bc, int cnt, unsigned char stat)
while (cnt > 0) {
switch (bc->hdlctx.state) {
case tx_keyup:
- i = min(cnt, bc->hdlctx.flags);
+ i = min(int, cnt, bc->hdlctx.flags);
cnt -= i;
bc->hdlctx.flags -= i;
if (bc->hdlctx.flags <= 0)
@@ -638,7 +633,7 @@ static int transmit(struct baycom_state *bc, int cnt, unsigned char stat)
break;
}
}
- i = min(cnt, bc->hdlctx.bufcnt);
+ i = min(int, cnt, bc->hdlctx.bufcnt);
bc->hdlctx.bufcnt -= i;
cnt -= i;
if (i != pp->ops->epp_write_data(pp, bc->hdlctx.bufptr, i, 0))
@@ -652,7 +647,7 @@ static int transmit(struct baycom_state *bc, int cnt, unsigned char stat)
bc->hdlctx.state = tx_data;
break;
}
- i = min(cnt, bc->hdlctx.flags);
+ i = min(int, cnt, bc->hdlctx.flags);
if (i) {
cnt -= i;
bc->hdlctx.flags -= i;
@@ -669,7 +664,7 @@ static int transmit(struct baycom_state *bc, int cnt, unsigned char stat)
default: /* fall through */
if (bc->hdlctx.calibrate <= 0)
return 0;
- i = min(cnt, bc->hdlctx.calibrate);
+ i = min(int, cnt, bc->hdlctx.calibrate);
cnt -= i;
bc->hdlctx.calibrate -= i;
memset(tmp, 0, sizeof(tmp));
diff --git a/drivers/net/hamradio/baycom_par.c b/drivers/net/hamradio/baycom_par.c
index 61cfd41480b2..508b6dc37463 100644
--- a/drivers/net/hamradio/baycom_par.c
+++ b/drivers/net/hamradio/baycom_par.c
@@ -157,11 +157,6 @@ struct baycom_state {
/* --------------------------------------------------------------------- */
-#define min(a, b) (((a) < (b)) ? (a) : (b))
-#define max(a, b) (((a) > (b)) ? (a) : (b))
-
-/* --------------------------------------------------------------------- */
-
static void __inline__ baycom_int_freq(struct baycom_state *bc)
{
#ifdef BAYCOM_DEBUG
diff --git a/drivers/net/hamradio/baycom_ser_fdx.c b/drivers/net/hamradio/baycom_ser_fdx.c
index 2b19dc9058a6..c1c3fc6ca023 100644
--- a/drivers/net/hamradio/baycom_ser_fdx.c
+++ b/drivers/net/hamradio/baycom_ser_fdx.c
@@ -152,11 +152,6 @@ struct baycom_state {
/* --------------------------------------------------------------------- */
-#define min(a, b) (((a) < (b)) ? (a) : (b))
-#define max(a, b) (((a) > (b)) ? (a) : (b))
-
-/* --------------------------------------------------------------------- */
-
static void inline baycom_int_freq(struct baycom_state *bc)
{
#ifdef BAYCOM_DEBUG
diff --git a/drivers/net/hamradio/baycom_ser_hdx.c b/drivers/net/hamradio/baycom_ser_hdx.c
index f3d84911edcd..d2b82e589a5a 100644
--- a/drivers/net/hamradio/baycom_ser_hdx.c
+++ b/drivers/net/hamradio/baycom_ser_hdx.c
@@ -143,11 +143,6 @@ struct baycom_state {
/* --------------------------------------------------------------------- */
-#define min(a, b) (((a) < (b)) ? (a) : (b))
-#define max(a, b) (((a) > (b)) ? (a) : (b))
-
-/* --------------------------------------------------------------------- */
-
static void inline baycom_int_freq(struct baycom_state *bc)
{
#ifdef BAYCOM_DEBUG
diff --git a/drivers/net/hamradio/hdlcdrv.c b/drivers/net/hamradio/hdlcdrv.c
index 7ff2c9cfae52..573203606027 100644
--- a/drivers/net/hamradio/hdlcdrv.c
+++ b/drivers/net/hamradio/hdlcdrv.c
@@ -95,11 +95,6 @@ static char ax25_nocall[AX25_ADDR_LEN] =
#define PARAM_RETURN 255
/* --------------------------------------------------------------------- */
-
-#define min(a, b) (((a) < (b)) ? (a) : (b))
-#define max(a, b) (((a) > (b)) ? (a) : (b))
-
-/* --------------------------------------------------------------------- */
/*
* the CRC routines are stolen from WAMPES
* by Dieter Deyke
diff --git a/drivers/net/hamradio/soundmodem/sm.h b/drivers/net/hamradio/soundmodem/sm.h
index 045e7e053402..367b045b8086 100644
--- a/drivers/net/hamradio/soundmodem/sm.h
+++ b/drivers/net/hamradio/soundmodem/sm.h
@@ -150,11 +150,6 @@ struct hardware_info {
/* --------------------------------------------------------------------- */
-#define min(a, b) (((a) < (b)) ? (a) : (b))
-#define max(a, b) (((a) > (b)) ? (a) : (b))
-
-/* --------------------------------------------------------------------- */
-
extern const char sm_drvname[];
extern const char sm_drvinfo[];
diff --git a/drivers/net/sk98lin/skproc.c b/drivers/net/sk98lin/skproc.c
index 9c07f9c270bb..1abb4dd124bb 100644
--- a/drivers/net/sk98lin/skproc.c
+++ b/drivers/net/sk98lin/skproc.c
@@ -293,7 +293,7 @@ void *data)
if (buffer_length >= len - offset) {
*eof = 1;
}
- return (min(buffer_length, len - offset));
+ return (min(int, buffer_length, len - offset));
}
diff --git a/drivers/net/sungem.c b/drivers/net/sungem.c
index 230ae012f71e..b80a4d8a4a58 100644
--- a/drivers/net/sungem.c
+++ b/drivers/net/sungem.c
@@ -1,4 +1,4 @@
-/* $Id: sungem.c,v 1.18 2001/08/06 13:34:47 davem Exp $
+/* $Id: sungem.c,v 1.19 2001/08/13 14:40:07 davem Exp $
* sungem.c: Sun GEM ethernet driver.
*
* Copyright (C) 2000, 2001 David S. Miller (davem@redhat.com)
@@ -558,7 +558,7 @@ static void gem_rx(struct gem *gp)
skb = copy_skb;
}
- skb->csum = ((status & RXDCTRL_TCPCSUM) ^ 0xffff);
+ skb->csum = ntohs((status & RXDCTRL_TCPCSUM) ^ 0xffff);
skb->ip_summed = CHECKSUM_HW;
skb->protocol = eth_type_trans(skb, gp->dev);
netif_rx(skb);
diff --git a/drivers/net/sunhme.c b/drivers/net/sunhme.c
index 42f737de5fd4..654e2db9256c 100644
--- a/drivers/net/sunhme.c
+++ b/drivers/net/sunhme.c
@@ -1,4 +1,4 @@
-/* $Id: sunhme.c,v 1.121 2001/07/27 10:22:57 davem Exp $
+/* $Id: sunhme.c,v 1.122 2001/08/13 14:40:07 davem Exp $
* sunhme.c: Sparc HME/BigMac 10/100baseT half/full duplex auto switching,
* auto carrier detecting ethernet driver. Also known as the
* "Happy Meal Ethernet" found on SunSwift SBUS cards.
@@ -2109,7 +2109,7 @@ static void happy_meal_rx(struct happy_meal *hp, struct net_device *dev)
}
/* This card is _fucking_ hot... */
- skb->csum = (csum ^ 0xffff);
+ skb->csum = ntohs(csum ^ 0xffff);
skb->ip_summed = CHECKSUM_HW;
RXD(("len=%d csum=%4x]", len, csum));
diff --git a/drivers/net/wan/comx-hw-comx.c b/drivers/net/wan/comx-hw-comx.c
index e3b72a5af525..86737b11e28a 100644
--- a/drivers/net/wan/comx-hw-comx.c
+++ b/drivers/net/wan/comx-hw-comx.c
@@ -1044,7 +1044,7 @@ static int comxhw_write_proc(struct file *file, const char *buffer,
if (!(page = (char *)__get_free_page(GFP_KERNEL))) {
return -ENOMEM;
}
- if(copy_from_user(page, buffer, count = (min(count, PAGE_SIZE))))
+ if(copy_from_user(page, buffer, count = (min(int, count, PAGE_SIZE))))
{
count = -EFAULT;
goto out;
@@ -1182,8 +1182,10 @@ static int comxhw_read_proc(char *page, char **start, off_t off, int count,
len = sprintf(page, "external\n");
}
} else if (strcmp(file->name, FILENAME_FIRMWARE) == 0) {
- len = min(FILE_PAGESIZE, min(count,
- hw->firmware ? (hw->firmware->len - off) : 0));
+ len = min(int, FILE_PAGESIZE,
+ min(int, count,
+ hw->firmware ?
+ (hw->firmware->len - off) : 0));
if (len < 0) {
len = 0;
}
@@ -1203,7 +1205,7 @@ static int comxhw_read_proc(char *page, char **start, off_t off, int count,
if (count >= len - off) {
*eof = 1;
}
- return(min(count, len - off));
+ return min(int, count, len - off);
}
/* Called on echo comx >boardtype */
diff --git a/drivers/net/wan/comx-hw-locomx.c b/drivers/net/wan/comx-hw-locomx.c
index 3714c6e60640..4b64939e864e 100644
--- a/drivers/net/wan/comx-hw-locomx.c
+++ b/drivers/net/wan/comx-hw-locomx.c
@@ -324,7 +324,7 @@ static int locomx_read_proc(char *page, char **start, off_t off, int count,
if (count >= len - off) {
*eof = 1;
}
- return ( min(count, len - off) );
+ return min(int, count, len - off);
}
static int locomx_write_proc(struct file *file, const char *buffer,
@@ -339,7 +339,7 @@ static int locomx_write_proc(struct file *file, const char *buffer,
return -ENOMEM;
}
- copy_from_user(page, buffer, count = min(count, PAGE_SIZE));
+ copy_from_user(page, buffer, count = min(unsigned long, count, PAGE_SIZE));
if (*(page + count - 1) == '\n') {
*(page + count - 1) = 0;
}
diff --git a/drivers/net/wan/comx-hw-mixcom.c b/drivers/net/wan/comx-hw-mixcom.c
index 8c367b5cca02..adf829894ff2 100644
--- a/drivers/net/wan/comx-hw-mixcom.c
+++ b/drivers/net/wan/comx-hw-mixcom.c
@@ -121,7 +121,7 @@ static inline void hscx_fill_fifo(struct net_device *dev)
outsb(dev->base_addr + HSCX_FIFO,
- &(hw->sending->data[hw->tx_ptr]), min(to_send, 32));
+ &(hw->sending->data[hw->tx_ptr]), min(unsigned int, to_send, 32));
if (to_send <= 32) {
hscx_cmd(dev, HSCX_XTF | HSCX_XME);
kfree_skb(hw->sending);
@@ -696,7 +696,7 @@ static int mixcom_read_proc(char *page, char **start, off_t off, int count,
}
*start = page + off;
if (count >= len - off) *eof = 1;
- return ( min(count, len - off) );
+ return min(int, count, len - off);
}
@@ -763,7 +763,7 @@ static int mixcom_write_proc(struct file *file, const char *buffer,
return -ENOMEM;
}
- copy_from_user(page, buffer, count = min(count, PAGE_SIZE));
+ copy_from_user(page, buffer, count = min(unsigned long, count, PAGE_SIZE));
if (*(page + count - 1) == '\n') {
*(page + count - 1) = 0;
}
diff --git a/drivers/net/wan/comx-proto-fr.c b/drivers/net/wan/comx-proto-fr.c
index 124c66e102f3..75ef5c56c9a4 100644
--- a/drivers/net/wan/comx-proto-fr.c
+++ b/drivers/net/wan/comx-proto-fr.c
@@ -634,7 +634,7 @@ static int fr_read_proc(char *page, char **start, off_t off, int count,
*start = page + off;
if (count >= len - off) *eof = 1;
- return ( min(count, len - off) );
+ return min(int, count, len - off);
}
static int fr_write_proc(struct file *file, const char *buffer,
diff --git a/drivers/net/wan/comx-proto-lapb.c b/drivers/net/wan/comx-proto-lapb.c
index 64129018bdf1..520074f72f94 100644
--- a/drivers/net/wan/comx-proto-lapb.c
+++ b/drivers/net/wan/comx-proto-lapb.c
@@ -212,7 +212,7 @@ static int comxlapb_read_proc(char *page, char **start, off_t off, int count,
if (count >= len - off) {
*eof = 1;
}
- return ( min(count, len - off) );
+ return min(int, count, len - off);
}
static int comxlapb_write_proc(struct file *file, const char *buffer,
diff --git a/drivers/net/wan/comx.c b/drivers/net/wan/comx.c
index 8e76b39b9bd4..3d4986ea7ca1 100644
--- a/drivers/net/wan/comx.c
+++ b/drivers/net/wan/comx.c
@@ -151,8 +151,8 @@ int comx_debug(struct net_device *dev, char *fmt, ...)
int free = (ch->debug_start - ch->debug_end + ch->debug_size)
% ch->debug_size;
- to_copy = min( free ? free : ch->debug_size,
- min (ch->debug_size - ch->debug_end, len) );
+ to_copy = min(int, free ? free : ch->debug_size,
+ min(int, ch->debug_size - ch->debug_end, len));
memcpy(ch->debug_area + ch->debug_end, str, to_copy);
str += to_copy;
len -= to_copy;
@@ -567,7 +567,7 @@ static int comx_read_proc(char *page, char **start, off_t off, int count,
if (count >= len - off) {
*eof = 1;
}
- return( min(count, len - off) );
+ return min(int, count, len - off);
}
@@ -597,7 +597,7 @@ static int comx_root_read_proc(char *page, char **start, off_t off, int count,
if (count >= len - off) {
*eof = 1;
}
- return( min(count, len - off) );
+ return min(int, count, len - off);
}
diff --git a/drivers/net/wan/comx.h b/drivers/net/wan/comx.h
index 1461d5fb18cb..0f7404f21470 100644
--- a/drivers/net/wan/comx.h
+++ b/drivers/net/wan/comx.h
@@ -190,14 +190,6 @@ struct comx_debugflags_struct {
#endif
-#ifndef min
-#define min(a,b) ((a) > (b) ? (b) : (a))
-#endif
-#ifndef max
-#define max(a,b) ((a) > (b) ? (a) : (b))
-#endif
-
-
#define COMX_CHANNEL(dev) ((struct comx_channel*)dev->priv)
#define TWIN(dev) (COMX_CHANNEL(dev)->twin)
diff --git a/drivers/net/wan/cycx_main.c b/drivers/net/wan/cycx_main.c
index 0c5e72d05d39..22ffa2e56a34 100644
--- a/drivers/net/wan/cycx_main.c
+++ b/drivers/net/wan/cycx_main.c
@@ -111,8 +111,8 @@ int __init cyclomx_init (void)
fullname, DRV_VERSION, DRV_RELEASE, copyright);
/* Verify number of cards and allocate adapter data space */
- ncards = min(ncards, MAX_CARDS);
- ncards = max(ncards, 1);
+ ncards = min(int, ncards, MAX_CARDS);
+ ncards = max(int, ncards, 1);
card_array = kmalloc(sizeof(cycx_t) * ncards, GFP_KERNEL);
if (!card_array)
goto out;
diff --git a/drivers/net/wan/cycx_x25.c b/drivers/net/wan/cycx_x25.c
index a65238c704b4..125a07b7eab2 100644
--- a/drivers/net/wan/cycx_x25.c
+++ b/drivers/net/wan/cycx_x25.c
@@ -260,13 +260,13 @@ int cyx_init (cycx_t *card, wandev_conf_t *conf)
cfg.flags = 0; /* FIXME just reset the 2nd bit */
if (conf->u.x25.hi_pvc) {
- card->u.x.hi_pvc = min(conf->u.x25.hi_pvc, 4095);
- card->u.x.lo_pvc = min(conf->u.x25.lo_pvc, card->u.x.hi_pvc);
+ card->u.x.hi_pvc = min(unsigned int, conf->u.x25.hi_pvc, 4095);
+ card->u.x.lo_pvc = min(unsigned int, conf->u.x25.lo_pvc, card->u.x.hi_pvc);
}
if (conf->u.x25.hi_svc) {
- card->u.x.hi_svc = min(conf->u.x25.hi_svc, 4095);
- card->u.x.lo_svc = min(conf->u.x25.lo_svc, card->u.x.hi_svc);
+ card->u.x.hi_svc = min(unsigned int, conf->u.x25.hi_svc, 4095);
+ card->u.x.lo_svc = min(unsigned int, conf->u.x25.lo_svc, card->u.x.hi_svc);
}
if (card->u.x.lo_pvc == 255)
@@ -277,25 +277,25 @@ int cyx_init (cycx_t *card, wandev_conf_t *conf)
cfg.nvc = card->u.x.hi_svc - card->u.x.lo_svc + 1 + cfg.npvc;
if (conf->u.x25.hdlc_window)
- cfg.n2win = min(conf->u.x25.hdlc_window, 7);
+ cfg.n2win = min(unsigned int, conf->u.x25.hdlc_window, 7);
if (conf->u.x25.pkt_window)
- cfg.n3win = min(conf->u.x25.pkt_window, 7);
+ cfg.n3win = min(unsigned int, conf->u.x25.pkt_window, 7);
if (conf->u.x25.t1)
- cfg.t1 = min(conf->u.x25.t1, 30);
+ cfg.t1 = min(unsigned int, conf->u.x25.t1, 30);
if (conf->u.x25.t2)
- cfg.t2 = min(conf->u.x25.t2, 30);
+ cfg.t2 = min(unsigned int, conf->u.x25.t2, 30);
if (conf->u.x25.t11_t21)
- cfg.t21 = min(conf->u.x25.t11_t21, 30);
+ cfg.t21 = min(unsigned int, conf->u.x25.t11_t21, 30);
if (conf->u.x25.t13_t23)
- cfg.t23 = min(conf->u.x25.t13_t23, 30);
+ cfg.t23 = min(unsigned int, conf->u.x25.t13_t23, 30);
if (conf->u.x25.n2)
- cfg.n2 = min(conf->u.x25.n2, 30);
+ cfg.n2 = min(unsigned int, conf->u.x25.n2, 30);
/* initialize adapter */
if (x25_configure(card, &cfg))
diff --git a/drivers/net/wan/sbni.c b/drivers/net/wan/sbni.c
index 61c3f79f3ec8..3b3bd1707ac8 100644
--- a/drivers/net/wan/sbni.c
+++ b/drivers/net/wan/sbni.c
@@ -659,7 +659,7 @@ download_data( struct net_device *dev, u32 *crc_p )
struct net_local *nl = (struct net_local *) dev->priv;
struct sk_buff *skb = nl->tx_buf_p;
- unsigned len = min( skb->len - nl->outpos, nl->framelen );
+ unsigned len = min(unsigned int, skb->len - nl->outpos, nl->framelen);
outsb( dev->base_addr + DAT, skb->data + nl->outpos, len );
*crc_p = calc_crc32( *crc_p, skb->data + nl->outpos, len );
@@ -760,8 +760,9 @@ interpret_ack( struct net_device *dev, unsigned ack )
nl->outpos += nl->framelen;
if( --nl->tx_frameno )
- nl->framelen = min( nl->maxframe,
- nl->tx_buf_p->len - nl->outpos );
+ nl->framelen = min(unsigned int,
+ nl->maxframe,
+ nl->tx_buf_p->len - nl->outpos);
else
send_complete( nl ),
#ifdef CONFIG_SBNI_MULTILINE
diff --git a/drivers/net/wan/sbni.h b/drivers/net/wan/sbni.h
index 335dbf13f4d6..8e83e274824d 100644
--- a/drivers/net/wan/sbni.h
+++ b/drivers/net/wan/sbni.h
@@ -137,7 +137,5 @@ struct sbni_flags {
#define __initdata
#endif
-#define min( x, y ) ( (x) < (y) ? (x) : (y) )
-
#endif
diff --git a/drivers/net/wan/sdla_chdlc.c b/drivers/net/wan/sdla_chdlc.c
index afd1fef9bc29..b5f027c17c41 100644
--- a/drivers/net/wan/sdla_chdlc.c
+++ b/drivers/net/wan/sdla_chdlc.c
@@ -505,13 +505,13 @@ int wpc_init (sdla_t* card, wandev_conf_t* conf)
/* For Primary Port 0 */
card->wandev.mtu =
(conf->mtu >= MIN_LGTH_CHDLC_DATA_CFG) ?
- min(conf->mtu, PRI_MAX_NO_DATA_BYTES_IN_FRAME) :
+ min(unsigned int, conf->mtu, PRI_MAX_NO_DATA_BYTES_IN_FRAME) :
CHDLC_DFLT_DATA_LEN;
} else if(port_num == WANOPT_SEC) {
/* For Secondary Port 1 */
card->wandev.mtu =
(conf->mtu >= MIN_LGTH_CHDLC_DATA_CFG) ?
- min(conf->mtu, SEC_MAX_NO_DATA_BYTES_IN_FRAME) :
+ min(unsigned int, conf->mtu, SEC_MAX_NO_DATA_BYTES_IN_FRAME) :
CHDLC_DFLT_DATA_LEN;
}
@@ -827,19 +827,19 @@ static int new_if (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* conf)
card->u.c.kpalv_tx =
((conf->keepalive_tx_tmr - MIN_Tx_KPALV_TIMER)
>= 0) ?
- min(conf->keepalive_tx_tmr,MAX_Tx_KPALV_TIMER) :
+ min(unsigned int, conf->keepalive_tx_tmr,MAX_Tx_KPALV_TIMER) :
DEFAULT_Tx_KPALV_TIMER;
card->u.c.kpalv_rx =
((conf->keepalive_rx_tmr - MIN_Rx_KPALV_TIMER)
>= 0) ?
- min(conf->keepalive_rx_tmr,MAX_Rx_KPALV_TIMER) :
+ min(unsigned int, conf->keepalive_rx_tmr,MAX_Rx_KPALV_TIMER) :
DEFAULT_Rx_KPALV_TIMER;
card->u.c.kpalv_err =
((conf->keepalive_err_margin-MIN_KPALV_ERR_TOL)
>= 0) ?
- min(conf->keepalive_err_margin,
+ min(unsigned int, conf->keepalive_err_margin,
MAX_KPALV_ERR_TOL) :
DEFAULT_KPALV_ERR_TOL;
}
@@ -847,7 +847,7 @@ static int new_if (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* conf)
/* Setup slarp timer to control delay between slarps */
card->u.c.slarp_timer =
((conf->slarp_timer - MIN_SLARP_REQ_TIMER) >= 0) ?
- min (conf->slarp_timer, MAX_SLARP_REQ_TIMER) :
+ min(unsigned int, conf->slarp_timer, MAX_SLARP_REQ_TIMER) :
DEFAULT_SLARP_REQ_TIMER;
#ifdef LINUX_2_0
diff --git a/drivers/net/wan/sdla_fr.c b/drivers/net/wan/sdla_fr.c
index 4f5a9def99ae..1032346d596a 100644
--- a/drivers/net/wan/sdla_fr.c
+++ b/drivers/net/wan/sdla_fr.c
@@ -548,10 +548,10 @@ int wpf_init(sdla_t *card, wandev_conf_t *conf)
/* Adjust configuration */
conf->mtu += FR_HEADER_LEN;
conf->mtu = (conf->mtu >= MIN_LGTH_FR_DATA_CFG) ?
- min(conf->mtu, FR_MAX_NO_DATA_BYTES_IN_FRAME) :
+ min(unsigned int, conf->mtu, FR_MAX_NO_DATA_BYTES_IN_FRAME) :
FR_CHANNEL_MTU + FR_HEADER_LEN;
- conf->bps = min(conf->bps, 2048000);
+ conf->bps = min(unsigned int, conf->bps, 2048000);
/* Initialze the configuration structure sent to the board to zero */
memset(&u.cfg, 0, sizeof(u.cfg));
@@ -618,7 +618,7 @@ int wpf_init(sdla_t *card, wandev_conf_t *conf)
* command in fr_configure() routine.
*/
- card->u.f.dlci_num = min(max(conf->u.fr.dlci_num, 1), 100);
+ card->u.f.dlci_num = min(unsigned int, max(unsigned int, conf->u.fr.dlci_num, 1), 100);
for ( i = 0; i < card->u.f.dlci_num; i++) {
@@ -635,27 +635,27 @@ int wpf_init(sdla_t *card, wandev_conf_t *conf)
u.cfg.port |= 0x0002;
if (conf->u.fr.t391)
- u.cfg.t391 = min(conf->u.fr.t391, 30);
+ u.cfg.t391 = min(unsigned int, conf->u.fr.t391, 30);
else
u.cfg.t391 = 5;
if (conf->u.fr.t392)
- u.cfg.t392 = min(conf->u.fr.t392, 30);
+ u.cfg.t392 = min(unsigned int, conf->u.fr.t392, 30);
else
u.cfg.t392 = 15;
if (conf->u.fr.n391)
- u.cfg.n391 = min(conf->u.fr.n391, 255);
+ u.cfg.n391 = min(unsigned int, conf->u.fr.n391, 255);
else
u.cfg.n391 = 2;
if (conf->u.fr.n392)
- u.cfg.n392 = min(conf->u.fr.n392, 10);
+ u.cfg.n392 = min(unsigned int, conf->u.fr.n392, 10);
else
u.cfg.n392 = 3;
if (conf->u.fr.n393)
- u.cfg.n393 = min(conf->u.fr.n393, 10);
+ u.cfg.n393 = min(unsigned int, conf->u.fr.n393, 10);
else
u.cfg.n393 = 4;
@@ -952,7 +952,8 @@ static int new_if (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* conf)
*/
if (conf->cir) {
- chan->cir = max( 1, min( conf->cir, 512 ) );
+ chan->cir = max(unsigned int, 1,
+ min(unsigned int, conf->cir, 512));
chan->cir_status = CIR_ENABLED;
@@ -963,7 +964,8 @@ static int new_if (wan_device_t* wandev, netdevice_t* dev, wanif_conf_t* conf)
chan->bc = chan->cir;
if (conf->be){
- chan->be = max( 0, min( conf->be, 511) );
+ chan->be = max(unsigned int,
+ 0, min(unsigned int, conf->be, 511));
}else{
conf->be = 0;
}
diff --git a/drivers/net/wan/sdla_ppp.c b/drivers/net/wan/sdla_ppp.c
index 9af93fa18b69..00d53beb38d0 100644
--- a/drivers/net/wan/sdla_ppp.c
+++ b/drivers/net/wan/sdla_ppp.c
@@ -400,7 +400,7 @@ int wpp_init(sdla_t *card, wandev_conf_t *conf)
printk(KERN_INFO "%s: running PPP firmware v%s\n",card->devname, u.str);
/* Adjust configuration and set defaults */
card->wandev.mtu = (conf->mtu) ?
- min(conf->mtu, PPP_MAX_MTU) : PPP_DFLT_MTU;
+ min(unsigned int, conf->mtu, PPP_MAX_MTU) : PPP_DFLT_MTU;
card->wandev.bps = conf->bps;
card->wandev.interface = conf->interface;
@@ -629,7 +629,7 @@ static int new_if(wan_device_t *wandev, netdevice_t *dev, wanif_conf_t *conf)
dev->init = &if_init;
dev->priv = ppp_priv_area;
- dev->mtu = min(dev->mtu, card->wandev.mtu);
+ dev->mtu = min(unsigned int, dev->mtu, card->wandev.mtu);
/* Initialize the polling task routine */
#ifndef LINUX_2_4
diff --git a/drivers/net/wan/sdla_x25.c b/drivers/net/wan/sdla_x25.c
index c60d00f68901..928327df0f22 100644
--- a/drivers/net/wan/sdla_x25.c
+++ b/drivers/net/wan/sdla_x25.c
@@ -653,13 +653,13 @@ int wpx_init (sdla_t* card, wandev_conf_t* conf)
u.cfg.defPktSize = u.cfg.pktMTU = card->wandev.mtu;
if (conf->u.x25.hi_pvc){
- card->u.x.hi_pvc = min(conf->u.x25.hi_pvc, MAX_LCN_NUM);
- card->u.x.lo_pvc = min(conf->u.x25.lo_pvc, card->u.x.hi_pvc);
+ card->u.x.hi_pvc = min(unsigned int, conf->u.x25.hi_pvc, MAX_LCN_NUM);
+ card->u.x.lo_pvc = min(unsigned int, conf->u.x25.lo_pvc, card->u.x.hi_pvc);
}
if (conf->u.x25.hi_svc){
- card->u.x.hi_svc = min(conf->u.x25.hi_svc, MAX_LCN_NUM);
- card->u.x.lo_svc = min(conf->u.x25.lo_svc, card->u.x.hi_svc);
+ card->u.x.hi_svc = min(unsigned int, conf->u.x25.hi_svc, MAX_LCN_NUM);
+ card->u.x.lo_svc = min(unsigned int, conf->u.x25.lo_svc, card->u.x.hi_svc);
}
/* Figure out the total number of channels to configure */
@@ -684,38 +684,38 @@ int wpx_init (sdla_t* card, wandev_conf_t* conf)
u.cfg.hiTwoWaySVC = card->u.x.hi_svc;
if (conf->u.x25.hdlc_window)
- u.cfg.hdlcWindow = min(conf->u.x25.hdlc_window, 7);
+ u.cfg.hdlcWindow = min(unsigned int, conf->u.x25.hdlc_window, 7);
if (conf->u.x25.pkt_window)
- u.cfg.pktWindow = min(conf->u.x25.pkt_window, 7);
+ u.cfg.pktWindow = min(unsigned int, conf->u.x25.pkt_window, 7);
if (conf->u.x25.t1)
- u.cfg.t1 = min(conf->u.x25.t1, 30);
+ u.cfg.t1 = min(unsigned int, conf->u.x25.t1, 30);
if (conf->u.x25.t2)
- u.cfg.t2 = min(conf->u.x25.t2, 29);
+ u.cfg.t2 = min(unsigned int, conf->u.x25.t2, 29);
if (conf->u.x25.t4)
- u.cfg.t4 = min(conf->u.x25.t4, 240);
+ u.cfg.t4 = min(unsigned int, conf->u.x25.t4, 240);
if (conf->u.x25.n2)
- u.cfg.n2 = min(conf->u.x25.n2, 30);
+ u.cfg.n2 = min(unsigned int, conf->u.x25.n2, 30);
if (conf->u.x25.t10_t20)
- u.cfg.t10t20 = min(conf->u.x25.t10_t20,255);
+ u.cfg.t10t20 = min(unsigned int, conf->u.x25.t10_t20,255);
if (conf->u.x25.t11_t21)
- u.cfg.t11t21 = min(conf->u.x25.t11_t21,255);
+ u.cfg.t11t21 = min(unsigned int, conf->u.x25.t11_t21,255);
if (conf->u.x25.t12_t22)
- u.cfg.t12t22 = min(conf->u.x25.t12_t22,255);
+ u.cfg.t12t22 = min(unsigned int, conf->u.x25.t12_t22,255);
if (conf->u.x25.t13_t23)
- u.cfg.t13t23 = min(conf->u.x25.t13_t23,255);
+ u.cfg.t13t23 = min(unsigned int, conf->u.x25.t13_t23,255);
if (conf->u.x25.t16_t26)
- u.cfg.t16t26 = min(conf->u.x25.t16_t26, 255);
+ u.cfg.t16t26 = min(unsigned int, conf->u.x25.t16_t26, 255);
if (conf->u.x25.t28)
- u.cfg.t28 = min(conf->u.x25.t28, 255);
+ u.cfg.t28 = min(unsigned int, conf->u.x25.t28, 255);
if (conf->u.x25.r10_r20)
- u.cfg.r10r20 = min(conf->u.x25.r10_r20,250);
+ u.cfg.r10r20 = min(unsigned int, conf->u.x25.r10_r20,250);
if (conf->u.x25.r12_r22)
- u.cfg.r12r22 = min(conf->u.x25.r12_r22,250);
+ u.cfg.r12r22 = min(unsigned int, conf->u.x25.r12_r22,250);
if (conf->u.x25.r13_r23)
- u.cfg.r13r23 = min(conf->u.x25.r13_r23,250);
+ u.cfg.r13r23 = min(unsigned int, conf->u.x25.r13_r23,250);
if (conf->u.x25.ccitt_compat)
diff --git a/drivers/net/wan/wanpipe_multppp.c b/drivers/net/wan/wanpipe_multppp.c
index 448341d5bbd7..d190eb322e2c 100644
--- a/drivers/net/wan/wanpipe_multppp.c
+++ b/drivers/net/wan/wanpipe_multppp.c
@@ -375,13 +375,13 @@ int wsppp_init (sdla_t* card, wandev_conf_t* conf)
/* For Primary Port 0 */
card->wandev.mtu =
(conf->mtu >= MIN_LGTH_CHDLC_DATA_CFG) ?
- min(conf->mtu, PRI_MAX_NO_DATA_BYTES_IN_FRAME) :
+ min(unsigned int, conf->mtu, PRI_MAX_NO_DATA_BYTES_IN_FRAME) :
CHDLC_DFLT_DATA_LEN;
} else if(port_num == WANOPT_SEC) {
/* For Secondary Port 1 */
card->wandev.mtu =
(conf->mtu >= MIN_LGTH_CHDLC_DATA_CFG) ?
- min(conf->mtu, SEC_MAX_NO_DATA_BYTES_IN_FRAME) :
+ min(unsigned int, conf->mtu, SEC_MAX_NO_DATA_BYTES_IN_FRAME) :
CHDLC_DFLT_DATA_LEN;
}
diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c
index ff2ac1ccd2d6..78b666462b01 100644
--- a/drivers/net/wireless/airo.c
+++ b/drivers/net/wireless/airo.c
@@ -259,8 +259,6 @@ MODULE_PARM_DESC(proc_perm, "The permission bits of the files in /proc");
#include <asm/uaccess.h>
-#define min(x,y) ((x<y)?x:y)
-
/* This is a kind of sloppy hack to get this information to OUT4500 and
IN4500. I would be extremely interested in the situation where this
doesnt work though!!! */
@@ -1755,7 +1753,7 @@ static int PC4500_readrid(struct airo_info *ai, u16 rid, void *pBuf, int len)
// read the rid length field
bap_read(ai, pBuf, 2, BAP1);
// length for remaining part of rid
- len = min(len, le16_to_cpu(*(u16*)pBuf)) - 2;
+ len = min(unsigned int, len, le16_to_cpu(*(u16*)pBuf)) - 2;
if ( len <= 2 ) {
printk( KERN_ERR
@@ -3998,7 +3996,8 @@ static int readrids(struct net_device *dev, aironet_ioctl *comp) {
* 9/22/2000 Honor user given length
*/
- if (copy_to_user(comp->data, iobuf, min (comp->len, sizeof(iobuf))))
+ if (copy_to_user(comp->data, iobuf,
+ min(unsigned int, comp->len, sizeof(iobuf))))
return -EFAULT;
return 0;
}
@@ -4057,7 +4056,8 @@ static int writerids(struct net_device *dev, aironet_ioctl *comp) {
PC4500_readrid(dev->priv,ridcode,iobuf,sizeof(iobuf));
- if (copy_to_user(comp->data,iobuf,min(comp->len,sizeof(iobuf))))
+ if (copy_to_user(comp->data, iobuf,
+ min(unsigned int, comp->len, sizeof(iobuf))))
return -EFAULT;
return 0;
diff --git a/drivers/net/wireless/airport.c b/drivers/net/wireless/airport.c
index daa24801b818..3cd86b130d4a 100644
--- a/drivers/net/wireless/airport.c
+++ b/drivers/net/wireless/airport.c
@@ -1,4 +1,4 @@
-/* airport.c 0.05
+/* airport.c 0.06f
*
* A driver for "Hermes" chipset based Apple Airport wireless
* card.
@@ -32,6 +32,10 @@
#include "hermes.h"
#include "orinoco.h"
+static const char version[] __initdata = "airport.c 0.06f (Benjamin Herrenschmidt <benh@kernel.crashing.org>)";
+MODULE_AUTHOR("Benjamin Herrenschmidt <benh@kernel.crashing.org>");
+MODULE_DESCRIPTION("Driver for the Apple Airport wireless card.");
+
typedef struct dldwd_card {
struct device_node* node;
int irq_requested;
@@ -40,8 +44,6 @@ typedef struct dldwd_card {
struct dldwd_priv priv;
} dldwd_card_t;
-static char *version = "airport.c 0.05 (Benjamin Herrenschmidt <benh@kernel.crashing.org>)";
-
/*
* Function prototypes
*/
@@ -186,7 +188,7 @@ airport_attach(struct device_node* of_node)
printk(KERN_ERR "airport: register_netdev() failed\n");
goto failed;
}
- printk(KERN_INFO "airport: card registered for interface %s\n", ndev->name);
+ printk(KERN_DEBUG "airport: card registered for interface %s\n", ndev->name);
card->ndev_registered = 1;
SET_MODULE_OWNER(ndev);
@@ -242,7 +244,7 @@ init_airport(void)
{
struct device_node* airport_node;
- printk(KERN_INFO "%s\n", version);
+ printk(KERN_DEBUG "%s\n", version);
MOD_INC_USE_COUNT;
diff --git a/drivers/net/wireless/hermes.c b/drivers/net/wireless/hermes.c
index 923850119e41..c6a684b7a579 100644
--- a/drivers/net/wireless/hermes.c
+++ b/drivers/net/wireless/hermes.c
@@ -3,21 +3,19 @@
* Driver core for the "Hermes" wireless MAC controller, as used in
* the Lucent Orinoco and Cabletron RoamAbout cards. It should also
* work on the hfa3841 and hfa3842 MAC controller chips used in the
- * Prism I & II chipsets.
+ * Prism II chipsets.
*
* This is not a complete driver, just low-level access routines for
* the MAC controller itself.
*
* Based on the prism2 driver from Absolute Value Systems' linux-wlan
* project, the Linux wvlan_cs driver, Lucent's HCF-Light
- * (wvlan_hcf.c) library, and the NetBSD wireless driver.
+ * (wvlan_hcf.c) library, and the NetBSD wireless driver (in no
+ * particular order).
*
* Copyright (C) 2000, David Gibson, Linuxcare Australia <hermes@gibson.dropbear.id.au>
*
- * This file distributed under the GPL, version 2.
- */
-
-static const char *version = "hermes.c: 12 Dec 2000 David Gibson <hermes@gibson.dropbear.id.au>";
+ * This file distributed under the GPL, version 2. */
#include <linux/module.h>
#include <linux/types.h>
@@ -32,6 +30,10 @@ static const char *version = "hermes.c: 12 Dec 2000 David Gibson <hermes@gibson.
#include "hermes.h"
+static const char version[] __initdata = "hermes.c: 1 Aug 2001 David Gibson <hermes@gibson.dropbear.id.au>";
+MODULE_DESCRIPTION("Low-level driver helper for Lucent Hermes chipset and Prism II HFA384x wireless MAC controller");
+MODULE_AUTHOR("David Gibson <hermes@gibson.dropbear.id.au>");
+
/* These are maximum timeouts. Most often, card wil react much faster */
#define CMD_BUSY_TIMEOUT (100) /* In iterations of ~1us */
#define CMD_INIT_TIMEOUT (50000) /* in iterations of ~10us */
@@ -70,10 +72,6 @@ static const char *version = "hermes.c: 12 Dec 2000 David Gibson <hermes@gibson.
static int hermes_issue_cmd(hermes_t *hw, uint16_t cmd, uint16_t param0);
/*
- * Internal inline functions
- */
-
-/*
* Internal functions
*/
@@ -87,7 +85,6 @@ static int hermes_issue_cmd(hermes_t *hw, uint16_t cmd, uint16_t param0);
static int hermes_issue_cmd(hermes_t *hw, uint16_t cmd, uint16_t param0)
{
uint16_t reg;
-/* unsigned long k = CMD_BUSY_TIMEOUT; */
/* First check that the command register is not busy */
reg = hermes_read_regn(hw, CMD);
@@ -124,9 +121,12 @@ int hermes_reset(hermes_t *hw)
hermes_write_regn(hw, INTEN, 0);
hermes_write_regn(hw, EVACK, 0xffff);
- /* Because we hope we can reset the card even if it gets into
- a stupid state, we actually wait to see if the command
- register will unbusy itself */
+ /* Normally it's a "can't happen" for the command register to
+ be busy when we go to issue a command because we are
+ serializing all commands. However we want to have some
+ chance of resetting the card even if it gets into a stupid
+ state, so we actually wait to see if the command register
+ will unbusy itself here. */
k = CMD_BUSY_TIMEOUT;
reg = hermes_read_regn(hw, CMD);
while (k && (reg & HERMES_CMD_BUSY)) {
@@ -139,8 +139,8 @@ int hermes_reset(hermes_t *hw)
reg = hermes_read_regn(hw, CMD);
}
- /* No need to explicitly handle the timeout - hermes_issue_cmd() will
- probably return -EBUSY */
+ /* No need to explicitly handle the timeout - if we've timed
+ out hermes_issue_cmd() will probably return -EBUSY below */
/* According to the documentation, EVSTAT may contain
obsolete event occurrence information. We have to acknowledge
@@ -503,7 +503,7 @@ EXPORT_SYMBOL(hermes_write_ltv);
static int __init init_hermes(void)
{
- printk(KERN_INFO "%s\n", version);
+ printk(KERN_DEBUG "%s\n", version);
return 0;
}
diff --git a/drivers/net/wireless/hermes.h b/drivers/net/wireless/hermes.h
index 10c841316743..bc74036f247c 100644
--- a/drivers/net/wireless/hermes.h
+++ b/drivers/net/wireless/hermes.h
@@ -101,7 +101,7 @@
#define HERMES_STATUS_CMDCODE (0x003f)
/*
- * OFFSET refister bitmasks
+ * OFFSET register bitmasks
*/
#define HERMES_OFFSET_BUSY (0x8000)
#define HERMES_OFFSET_ERR (0x4000)
diff --git a/drivers/net/wireless/orinoco.c b/drivers/net/wireless/orinoco.c
index 76a913335ba9..2560a38c884d 100644
--- a/drivers/net/wireless/orinoco.c
+++ b/drivers/net/wireless/orinoco.c
@@ -1,4 +1,4 @@
-/* orinoco.c 0.06 - (formerly known as dldwd_cs.c and orinoco_cs.c)
+/* orinoco.c 0.06f - (formerly known as dldwd_cs.c and orinoco_cs.c)
*
* A driver for "Hermes" chipset based PCMCIA wireless adaptors, such
* as the Lucent WavelanIEEE/Orinoco cards and their OEM (Cabletron/
@@ -33,10 +33,10 @@
* Reserved.
*
* Alternatively, the contents of this file may be used under the
- * terms of the GNU Public License version 2 (the "GPL"), in which
- * case the provisions of the GPL are applicable instead of the above.
- * If you wish to allow the use of your version of this file only
- * under the terms of the GPL and not to allow others to use your
+ * terms of the GNU General Public License version 2 (the "GPL"), in
+ * which case the provisions of the GPL are applicable instead of the
+ * above. If you wish to allow the use of your version of this file
+ * only under the terms of the GPL and not to allow others to use your
* version of this file under the MPL, indicate your decision by
* deleting the provisions above and replace them with the notice and
* other provisions required by the GPL. If you do not delete the
@@ -166,6 +166,24 @@
* v0.06b -> v0.06c - 29/5/2001 - Jean II
* o Show first spy address in /proc/net/wireless for IBSS mode as well
*
+ * v0.06c -> v0.06d - 6/7/2001 - David Gibson
+ * o Change a bunch of KERN_INFO messages to KERN_DEBUG, as per Linus'
+ * wishes to reduce the number of unecessary messages.
+ * o Removed bogus message on CRC error.
+ * o Merged fixeds for v0.08 Prism 2 firmware from William Waghorn
+ * <willwaghorn@yahoo.co.uk>
+ * o Slight cleanup/re-arrangement of firmware detection code.
+ *
+ * v0.06d -> v0.06e - 1/8/2001 - David Gibson
+ * o Removed some redundant global initializers (orinoco_cs.c).
+ * o Added some module metadataa
+ *
+ * v0.06e -> v0.06f - 14/8/2001 - David Gibson
+ * o Wording fix to license
+ * o Added a 'use_alternate_encaps' module parameter for APs which need an oui of
+ * 00:00:00. We really need a better way of handling this, but the module flag
+ * is better than nothing for now.
+ *
* TODO - Jean II
* o inline functions (lot's of candidate, need to reorder code)
* o Test PrismII/Symbol cards & firmware versions
@@ -202,7 +220,9 @@
#include "hermes.h"
#include "orinoco.h"
-static char *version = "orinoco.c 0.06c (David Gibson <hermes@gibson.dropbear.id.au> and others)";
+static const char version[] __initdata = "orinoco.c 0.06f (David Gibson <hermes@gibson.dropbear.id.au> and others)";
+MODULE_AUTHOR("David Gibson <hermes@gibson.dropbear.id.au>");
+MODULE_DESCRIPTION("Driver for Lucent Orinoco, Prism II based and similar wireless cards");
/* Level of debugging. Used in the macros in orinoco.h */
#ifdef ORINOCO_DEBUG
@@ -210,6 +230,11 @@ int dldwd_debug = ORINOCO_DEBUG;
MODULE_PARM(dldwd_debug, "i");
#endif
+/* FIXME: We need a better way of handling this */
+/* Set this flag to use 00:00:00 for the encapsulation oui instead of 00:00:F8 */
+static int use_alternate_encaps; /* =0 */
+MODULE_PARM(use_alternate_encaps, "i");
+
const long channel_frequency[] = {
2412, 2417, 2422, 2427, 2432, 2437, 2442,
2447, 2452, 2457, 2462, 2467, 2472, 2484
@@ -274,6 +299,9 @@ struct dldwd_frame_hdr {
struct p8022_hdr encaps_hdr = {
0xaa, 0xaa, 0x03, {0x00, 0x00, 0xf8}
};
+struct p8022_hdr alternate_encaps_hdr = {
+ 0xaa, 0xaa, 0x03, {0x00, 0x00, 0x00}
+};
/*
* Function prototypes
@@ -396,6 +424,7 @@ set_port_type(dldwd_priv_t *priv)
priv->port_type = 4;
else
priv->port_type = 1;
+ priv->port_type = priv->ibss_port;
priv->allow_ibss = 1;
}
break;
@@ -1050,8 +1079,7 @@ static void __dldwd_ev_rx(dldwd_priv_t *priv, hermes_t *hw)
if (status & HERMES_RXSTAT_ERR) {
if ((status & HERMES_RXSTAT_ERR) == HERMES_RXSTAT_BADCRC) {
stats->rx_crc_errors++;
- printk(KERN_WARNING "%s: Bad CRC on Rx. Frame dropped.\n",
- dev->name);
+ DEBUG(1, "%s: Bad CRC on Rx. Frame dropped.\n", dev->name);
show_rx_frame(&hdr);
} else if ((status & HERMES_RXSTAT_ERR)
== HERMES_RXSTAT_UNDECRYPTABLE) {
@@ -1198,34 +1226,14 @@ static void __dldwd_ev_alloc(dldwd_priv_t *priv, hermes_t *hw)
/* hermes_write_regn(hw, ALLOCFID, 0); */
}
-/*
- * struct net_device methods
- */
-
-int
-dldwd_init(struct net_device *dev)
+static void determine_firmware(struct net_device *dev)
{
dldwd_priv_t *priv = dev->priv;
hermes_t *hw = &priv->hw;
- int err = 0;
- hermes_id_t nickbuf;
- uint16_t reclen;
- int len;
- char *vendor_str;
+ int err;
uint32_t firmver;
+ char *vendor_str;
- TRACE_ENTER("dldwd");
-
- dldwd_lock(priv);
-
- /* Do standard firmware reset */
- err = hermes_reset(hw);
- if (err != 0) {
- printk(KERN_ERR "%s: failed to reset hardware (err = %d)\n",
- dev->name, err);
- goto out;
- }
-
/* Get the firmware version */
err = hermes_read_staidentity(hw, USER_BAP, &priv->firmware_info);
if (err) {
@@ -1361,18 +1369,54 @@ dldwd_init(struct net_device *dev)
priv->has_pm = 0;
priv->has_preamble = 0;
}
+
+ if (priv->firmware_type == FIRMWARE_TYPE_SYMBOL)
+ priv->ibss_port = 4;
+ else if ( (priv->firmware_type == FIRMWARE_TYPE_PRISM2) && (firmver >= 0x00008) )
+ priv->ibss_port = 0;
+ else
+ priv->ibss_port = 1;
- printk(KERN_INFO "%s: Firmware ID %02X vendor 0x%x (%s) version %d.%02d\n",
+ printk(KERN_DEBUG "%s: Firmware ID %02X vendor 0x%x (%s) version %d.%02d\n",
dev->name, priv->firmware_info.id, priv->firmware_info.vendor,
vendor_str, priv->firmware_info.major, priv->firmware_info.minor);
+}
+
+/*
+ * struct net_device methods
+ */
+
+int
+dldwd_init(struct net_device *dev)
+{
+ dldwd_priv_t *priv = dev->priv;
+ hermes_t *hw = &priv->hw;
+ int err = 0;
+ hermes_id_t nickbuf;
+ uint16_t reclen;
+ int len;
+
+ TRACE_ENTER("dldwd");
+
+ dldwd_lock(priv);
+
+ /* Do standard firmware reset */
+ err = hermes_reset(hw);
+ if (err != 0) {
+ printk(KERN_ERR "%s: failed to reset hardware (err = %d)\n",
+ dev->name, err);
+ goto out;
+ }
+
+ determine_firmware(dev);
if (priv->has_port3)
- printk(KERN_INFO "%s: Ad-hoc demo mode supported.\n", dev->name);
+ printk(KERN_DEBUG "%s: Ad-hoc demo mode supported.\n", dev->name);
if (priv->has_ibss)
- printk(KERN_INFO "%s: IEEE standard IBSS ad-hoc mode supported.\n",
+ printk(KERN_DEBUG "%s: IEEE standard IBSS ad-hoc mode supported.\n",
dev->name);
if (priv->has_wep) {
- printk(KERN_INFO "%s: WEP supported, ", dev->name);
+ printk(KERN_DEBUG "%s: WEP supported, ", dev->name);
if (priv->has_big_wep)
printk("\"128\"-bit key.\n");
else
@@ -1388,7 +1432,7 @@ dldwd_init(struct net_device *dev)
goto out;
}
- printk(KERN_INFO "%s: MAC address %02X:%02X:%02X:%02X:%02X:%02X\n",
+ printk(KERN_DEBUG "%s: MAC address %02X:%02X:%02X:%02X:%02X:%02X\n",
dev->name, dev->dev_addr[0], dev->dev_addr[1],
dev->dev_addr[2], dev->dev_addr[3], dev->dev_addr[4],
dev->dev_addr[5]);
@@ -1408,7 +1452,7 @@ dldwd_init(struct net_device *dev)
memcpy(priv->nick, &nickbuf.val, len);
priv->nick[len] = '\0';
- printk(KERN_INFO "%s: Station name \"%s\"\n", dev->name, priv->nick);
+ printk(KERN_DEBUG "%s: Station name \"%s\"\n", dev->name, priv->nick);
/* Get allowed channels */
err = hermes_read_wordrec(hw, USER_BAP, HERMES_RID_CHANNEL_LIST, &priv->channel_mask);
@@ -1482,7 +1526,7 @@ dldwd_init(struct net_device *dev)
priv->wep_on = 0;
priv->tx_key = 0;
- printk(KERN_INFO "%s: ready\n", dev->name);
+ printk(KERN_DEBUG "%s: ready\n", dev->name);
out:
dldwd_unlock(priv);
@@ -1668,7 +1712,11 @@ dldwd_xmit(struct sk_buff *skb, struct net_device *dev)
hdr.p8023.h_proto = htons(data_len + ENCAPS_OVERHEAD);
/* 802.2 header */
- memcpy(&hdr.p8022, &encaps_hdr, sizeof(encaps_hdr));
+ /* FIXME: ugh, what a hack for the 00:00:00 APs. Need to find a better way */
+ if (use_alternate_encaps)
+ memcpy(&hdr.p8022, &alternate_encaps_hdr, sizeof(alternate_encaps_hdr));
+ else
+ memcpy(&hdr.p8022, &encaps_hdr, sizeof(encaps_hdr));
hdr.ethertype = eh->h_proto;
err = hermes_bap_pwrite(hw, USER_BAP, &hdr, sizeof(hdr),
@@ -2546,6 +2594,33 @@ static int dldwd_ioctl_getretry(struct net_device *dev, struct iw_param *rrq)
}
#endif /* WIRELESS_EXT > 10 */
+static int dldwd_ioctl_setibssport(struct net_device *dev, struct iwreq *wrq)
+{
+ dldwd_priv_t *priv = dev->priv;
+ int val = *( (int *) wrq->u.name );
+
+ dldwd_lock(priv);
+ priv->ibss_port = val ;
+
+ /* Actually update the mode we are using */
+ set_port_type(priv);
+
+ dldwd_unlock(priv);
+ return 0;
+}
+
+static int dldwd_ioctl_getibssport(struct net_device *dev, struct iwreq *wrq)
+{
+ dldwd_priv_t *priv = dev->priv;
+ int *val = (int *)wrq->u.name;
+
+ dldwd_lock(priv);
+ *val = priv->ibss_port;
+ dldwd_unlock(priv);
+
+ return 0;
+}
+
static int dldwd_ioctl_setport3(struct net_device *dev, struct iwreq *wrq)
{
dldwd_priv_t *priv = dev->priv;
@@ -2941,7 +3016,13 @@ dldwd_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
0, "set_preamble" },
{ SIOCDEVPRIVATE + 0x5, 0,
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
- "get_preamble" }
+ "get_preamble" },
+ { SIOCDEVPRIVATE + 0x6,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
+ 0, "set_ibssport" },
+ { SIOCDEVPRIVATE + 0x7, 0,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
+ "get_ibssport" }
};
err = verify_area(VERIFY_WRITE, wrq->u.data.pointer, sizeof(privtab));
@@ -3038,6 +3119,25 @@ dldwd_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
} else
err = -EOPNOTSUPP;
break;
+ case SIOCDEVPRIVATE + 0x6: /* set_ibssport */
+ DEBUG(1, "%s: SIOCDEVPRIVATE + 0x6 (set_ibssport)\n",
+ dev->name);
+ if (! capable(CAP_NET_ADMIN)) {
+ err = -EPERM;
+ break;
+ }
+
+ err = dldwd_ioctl_setibssport(dev, wrq);
+ if (! err)
+ changed = 1;
+ break;
+
+ case SIOCDEVPRIVATE + 0x7: /* get_ibssport */
+ DEBUG(1, "%s: SIOCDEVPRIVATE + 0x7 (get_ibssport)\n",
+ dev->name);
+ err = dldwd_ioctl_getibssport(dev, wrq);
+ break;
+
default:
err = -EOPNOTSUPP;
@@ -3601,7 +3701,7 @@ static int __init init_dldwd(void)
err = dldwd_proc_init();
- printk(KERN_INFO "%s\n", version);
+ printk(KERN_DEBUG "%s\n", version);
return 0;
}
diff --git a/drivers/net/wireless/orinoco.h b/drivers/net/wireless/orinoco.h
index b90d323d2fa1..db2b6638cc4a 100644
--- a/drivers/net/wireless/orinoco.h
+++ b/drivers/net/wireless/orinoco.h
@@ -69,7 +69,7 @@ typedef struct dldwd_priv {
#define FIRMWARE_TYPE_LUCENT 1
#define FIRMWARE_TYPE_PRISM2 2
#define FIRMWARE_TYPE_SYMBOL 3
- int has_ibss, has_port3, prefer_port3, has_ibss_any;
+ int has_ibss, has_port3, prefer_port3, has_ibss_any, ibss_port;
int has_wep, has_big_wep;
int has_mwo;
int has_pm;
@@ -107,10 +107,10 @@ typedef struct dldwd_priv {
/*====================================================================*/
-extern int dldwd_debug;
extern struct list_head dldwd_instances;
#ifdef ORINOCO_DEBUG
+extern int dldwd_debug;
#define DEBUG(n, args...) if (dldwd_debug>(n)) printk(KERN_DEBUG args)
#define DEBUGMORE(n, args...) do { if (dldwd_debug>(n)) printk(args); } while (0)
#else
diff --git a/drivers/net/wireless/orinoco_cs.c b/drivers/net/wireless/orinoco_cs.c
index 8bf94dc46acd..2a26a07c4c1c 100644
--- a/drivers/net/wireless/orinoco_cs.c
+++ b/drivers/net/wireless/orinoco_cs.c
@@ -1,4 +1,4 @@
-/* orinoco_cs.c 0.06 - (formerly known as dldwd_cs.c)
+/* orinoco_cs.c 0.06f - (formerly known as dldwd_cs.c)
*
* A driver for "Hermes" chipset based PCMCIA wireless adaptors, such
* as the Lucent WavelanIEEE/Orinoco cards and their OEM (Cabletron/
@@ -40,20 +40,12 @@
#include "hermes.h"
#include "orinoco.h"
-/* Pcmcia specific structure */
-typedef struct dldwd_card {
- dev_link_t link;
- dev_node_t node;
- int instance;
-
- /* Common structure (fully included), see orinoco.h */
- struct dldwd_priv priv;
-} dldwd_card_t;
+/*====================================================================*/
-static char version[] __initdata =
-"orinoco_cs.c 0.06 (David Gibson <hermes@gibson.dropbear.id.au> and others)";
+static const char version[] __initdata = "orinoco_cs.c 0.06f (David Gibson <hermes@gibson.dropbear.id.au> and others)";
-/*====================================================================*/
+MODULE_AUTHOR("David Gibson <hermes@gibson.dropbear.id.au>");
+MODULE_DESCRIPTION("Driver for PCMCIA Lucent Orinoco, Prism II based and similar wireless cards");
/* Parameters that can be set with 'insmod' */
@@ -66,13 +58,24 @@ static int irq_list[4] = { -1 };
static int reset_cor = 0;
/* Some D-Link cards have buggy CIS. They do work at 5v properly, but
* don't have any CIS entry for it. This workaround it... */
-static int ignore_cis_vcc = 0;
+static int ignore_cis_vcc; /* = 0 */
MODULE_PARM(irq_mask, "i");
MODULE_PARM(irq_list, "1-4i");
MODULE_PARM(reset_cor, "i");
MODULE_PARM(ignore_cis_vcc, "i");
+
+/* Pcmcia specific structure */
+typedef struct dldwd_card {
+ dev_link_t link;
+ dev_node_t node;
+ int instance;
+
+ /* Common structure (fully included), see orinoco.h */
+ struct dldwd_priv priv;
+} dldwd_card_t;
+
/*
* Function prototypes
*/
@@ -108,8 +111,8 @@ static dev_info_t dev_info = "orinoco_cs";
device numbers are used to derive the corresponding array index.
*/
-static dev_link_t *dev_list;
-static int num_instances;
+static dev_link_t *dev_list; /* = NULL */
+static int num_instances; /* = 0 */
/*====================================================================*/
@@ -595,7 +598,7 @@ dldwd_cs_config(dev_link_t * link)
strcpy(card->node.dev_name, ndev->name);
/* Finally, report what we've done */
- printk(KERN_INFO "%s: index 0x%02x: Vcc %d.%d",
+ printk(KERN_DEBUG "%s: index 0x%02x: Vcc %d.%d",
ndev->name, link->conf.ConfigIndex,
link->conf.Vcc / 10, link->conf.Vcc % 10);
if (link->conf.Vpp1)
@@ -777,8 +780,8 @@ init_dldwd_cs(void)
TRACE_ENTER("dldwd");
- printk(KERN_INFO "dldwd: David's Less Dodgy WaveLAN/IEEE Driver\n"
- KERN_INFO "%s\n", version);
+ printk(KERN_DEBUG "dldwd: David's Less Dodgy WaveLAN/IEEE Driver\n"
+ KERN_DEBUG "%s\n", version);
CardServices(GetCardServicesInfo, &serv);
if (serv.Revision != CS_RELEASE_CODE) {