From: Jeff Garzik <jgarzik@mandrakesoft.com>
To: jt@hpl.hp.com
Cc: Linus Torvalds <torvalds@transmeta.com>,
Marcelo Tosatti <marcelo@conectiva.com.br>,
Linux kernel mailing list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] wavelan_cs update (Pcmcia backport)
Date: Fri, 18 Jan 2002 00:07:56 -0500 [thread overview]
Message-ID: <3C47ADAC.6D92E2A5@mandrakesoft.com> (raw)
In-Reply-To: <20020111151825.C15515@bougret.hpl.hp.com>
Jean Tourrilhes wrote:
> + * Wrapper for disabling interrupts.
> + * (note : inline, so optimised away)
> + */
> +static inline void
> +wv_splhi(net_local * lp,
> + unsigned long * pflags)
> +{
> + spin_lock_irqsave(&lp->spinlock, *pflags);
> + /* Note : above does the cli(); itself */
> +}
> +
> +/*------------------------------------------------------------------*/
> +/*
> + * Wrapper for re-enabling interrupts.
> + */
> +static inline void
> +wv_splx(net_local * lp,
> + unsigned long * pflags)
> +{
> + spin_unlock_irqrestore(&lp->spinlock, *pflags);
ug... you are much better to put spin_lock_irqsave directly into the
code, don't wrap it. wrapping, here, only obscures the code using it to
the casual reader.
This change also makes the diff long.
> +#if 0
> + /* Some people don't need this, some other may need it */
> + nwid=nwid^ntohs(beacon->domain_id);
> +#endif
maybe better as #ifdef I_NEED_THIS_FEATURE then?
> + /* Busy wait while the LAN controller executes the command. */
> + spin = 1000;
> + do
> {
> - outb(OP0_NOP, LCCR(base));
> + /* Time calibration of the loop */
> + udelay(10);
I hate busy-waits :) Long term I wonder if some of the longer ones can
be pushed into tasklets or even kernel threads. (if a kernel thread,
then the intr handler would really turn into an async notification to
the kernel thread of new work)
> +static inline void
> +wv_82593_reconfig(device * dev)
> {
> - net_local *lp = (net_local *) dev->priv;
> - dev_link_t *link = ((net_local *) dev->priv)->link;
> + net_local * lp = (net_local *)dev->priv;
> + dev_link_t * link = ((net_local *) dev->priv)->link;
Is it possible to use standard kernel types, ie. "struct net_device"
instead of "device"?
> #ifdef DEBUG_IOCTL_INFO
> - printk (KERN_DEBUG "%s: wv_82593_reconfig(): delayed (link =
you could use __FUNCTION__ here if you wanted to. (make sure to pass it
via %s if you do)
> @@ -1404,7 +1417,7 @@ wv_init_info(device * dev)
> printk("2430.5");
> break;
> default:
> - printk("unknown");
> + printk("???");
> }
> }
>
you are reverting a change - "???" causes a trigraph-related warning in
newer gcc
> @@ -1719,7 +1732,7 @@ wv_set_frequency(u_long base, /* i/o po
> memcmp(dac, dac_verify, 2 * 2))
> {
> #ifdef DEBUG_IOCTL_ERROR
> - printk(KERN_INFO "Wavelan: wv_set_frequency : unable to write new frequency to EEprom (?)\n");
> + printk(KERN_INFO "Wavelan: wv_set_frequency : unable to write new frequency to EEprom (??)\n");
> #endif
> return -EOPNOTSUPP;
> }
likewise
> @@ -1968,7 +1981,7 @@ wavelan_ioctl(struct net_device * dev, /
>
> case SIOCGIWFREQ:
> /* Attempt to recognise 2.00 cards (2.4 GHz frequency selectable)
> - * (does it work for everybody XXX - especially old cards...) */
> + * (does it work for everybody ??? - especially old cards...) */
> if(!(mmc_in(base, mmroff(0, mmr_fee_status)) &
> (MMR_FEE_STATUS_DWLD | MMR_FEE_STATUS_BUSY)))
> {
likewise
> + /* Allocate the generic data structure */
> + dev = kmalloc(sizeof(struct net_device), GFP_KERNEL);
> + if (!dev) {
> + kfree(link);
> + return NULL;
> + }
> + memset(dev, 0x00, sizeof(struct net_device));
> link->priv = link->irq.Instance = dev;
>
> + /* Allocate the wavelan-specific data structure. */
> + dev->priv = lp = (net_local *) kmalloc(sizeof(net_local), GFP_KERNEL);
> + if (!lp) {
> + kfree(link);
> + kfree(dev);
> + return NULL;
> + }
> + memset(lp, 0x00, sizeof(net_local));
> +
use alloc_etherdev instead of all this...
> @@ -4720,7 +4718,7 @@ wavelan_event(event_t event, /* The ev
> * obliged to close nicely the wavelan here. David, could you
> * close the device before suspending them ? And, by the way,
> * could you, on resume, add a "route add -net ..." after the
> - * ifconfig up XXX Thanks... */
> + * ifconfig up ??? Thanks... */
>
> /* Stop receiving new messages and wait end of transmission */
> wv_ru_stop(dev);
reverting valid change
> @@ -4748,7 +4745,7 @@ wavelan_event(event_t event, /* The ev
> if(link->state & DEV_CONFIG)
> {
> CardServices(RequestConfiguration, link->handle, &link->conf);
> - if(link->open) /* If RESET -> True, If RESUME -> False XXX */
> + if(link->open) /* If RESET -> True, If RESUME -> False ??? */
> {
> wv_hw_reset(dev);
> netif_device_attach(dev);
likewise
--
Jeff Garzik | Alternate titles for LOTR:
Building 1024 | Fast Times at Uruk-Hai
MandrakeSoft | The Took, the Elf, His Daughter and Her Lover
| Samwise Gamgee: International Hobbit of Mystery
next prev parent reply other threads:[~2002-01-18 5:08 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-01-11 23:18 [PATCH] wavelan_cs update (Pcmcia backport) Jean Tourrilhes
2002-01-11 23:49 ` Alex Bligh - linux-kernel
2002-01-11 23:55 ` Jean Tourrilhes
2002-01-13 22:19 ` Joel Jaeggli
2002-01-18 5:07 ` Jeff Garzik [this message]
2002-01-18 15:10 ` Bruce Harada
2002-01-18 23:06 ` Keith Owens
2002-01-18 18:44 ` Jean Tourrilhes
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3C47ADAC.6D92E2A5@mandrakesoft.com \
--to=jgarzik@mandrakesoft.com \
--cc=jt@hpl.hp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=marcelo@conectiva.com.br \
--cc=torvalds@transmeta.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.