From: Rusty Trivial Russell <rusty@rustcorp.com.au>
To: Linus Torvalds <torvalds@transmeta.com>
Cc: Joerg Reuter DL1BKE <jreuter@yaina.de>,
jgarzik@pobox.com, linux-kernel@vger.kernel.org
Subject: [TRIVIAL] cli_sti in drivers_net_hamradio_bpqether.c
Date: Tue, 14 Jan 2003 13:34:22 +1100 [thread overview]
Message-ID: <20030114025452.5FB632C37E@lists.samba.org> (raw)
[ Guys, this has been sitting in my Trivial queue for a while, with
several others. The patch *looks* ok: apply it and wait for someone
to whine, or discard it?
If someonw with this card wants to test this and verify it works on
an SMP kernel, even if not an SMP box, I'd be happier.
I guess it depends on when we are going to rip out save_flags et al
entirely. Linus? ]
From: Chris Wilson <chris@qwirx.com>
As part of the Linux Kernel Janitors project, I would like to submit my
patch for bpqether.c.
The document Documentation/cli-sti-removal.txt says that cli() should no
longer be used to disable interrupts. This patch removes all references to
cli() and {save,restore}_flags.
- added a static spinlock to protect bpq_devices
- changed cli/sti and {save,restore}_flags to taking the spinlock and
disabling interrupts with spin_lock_irqsave
- included my previous patch for proc_net_create, but as a separate hunk,
so if you've already applied then just ignore the rejected hunk.
I have verified that the patched driver compiles without warnings, but
since I don't have the hardware I can't test it. Please treat with
caution.
Perhaps there is another mailing list which I should send this to, in
order to try and find kind souls to test it?
Cheers, Chris.
--
_ ___ __ _
/ __/ / ,__(_)_ | Chris Wilson <0000 at qwirx.com> - Cambs UK |
/ (_/ ,/ _/ /_ | Security/C/C++/Java/Perl/SQL/HTML Developer |
_/_/_/_//_/___/ | We are GNU-free your mind-and your software |
--- trivial-2.5.57/drivers/net/hamradio/bpqether.c.orig 2003-01-14 12:12:03.000000000 +1100
+++ trivial-2.5.57/drivers/net/hamradio/bpqether.c 2003-01-14 12:12:03.000000000 +1100
@@ -159,6 +159,8 @@
);
}
+static spinlock_t bpq_lock = SPIN_LOCK_UNLOCKED;
+
/*
* Sanity check: remove all devices that ceased to exists and
* return '1' if the given BPQ device was affected.
@@ -169,8 +171,7 @@
int result = 0;
unsigned long flags;
- save_flags(flags);
- cli();
+ spin_lock_irqsave(&bpq_lock, flags);
bpq_prev = NULL;
@@ -196,7 +197,7 @@
bpq_prev = bpq;
}
- restore_flags(flags);
+ spin_unlock_irqrestore(&bpq_lock, flags);
return result;
}
@@ -446,8 +447,9 @@
int len = 0;
off_t pos = 0;
off_t begin = 0;
+ unsigned long flags;
- cli();
+ spin_lock_irqsave(&bpq_lock, flags);
len += sprintf(buffer, "dev ether destination accept from\n");
@@ -470,7 +472,7 @@
break;
}
- sti();
+ spin_unlock_irqrestore(&bpq_lock, flags);
*start = buffer + (offset - begin);
len -= (offset - begin);
@@ -491,6 +493,7 @@
{
int k;
struct bpqdev *bpq, *bpq2;
+ unsigned long flags;
if ((bpq = kmalloc(sizeof(struct bpqdev), GFP_KERNEL)) == NULL)
return -ENOMEM;
@@ -553,7 +556,7 @@
dev->mtu = AX25_DEF_PACLEN;
dev->addr_len = AX25_ADDR_LEN;
- cli();
+ spin_lock_irqsave(&bpq_lock, flags);
if (bpq_devices == NULL) {
bpq_devices = bpq;
@@ -562,7 +565,7 @@
bpq2->next = bpq;
}
- sti();
+ spin_unlock_irqrestore(&bpq_lock, flags);
return 0;
}
@@ -615,7 +618,13 @@
printk(banner);
- proc_net_create("bpqether", 0, bpq_get_info);
+ if (!proc_net_create("bpqether", 0, bpq_get_info)) {
+ printk(KERN_ERR
+ "bpq: cannot create /proc/net/bpqether entry.\n");
+ unregister_netdevice_notifier(&bpq_dev_notifier);
+ dev_remove_pack(&bpq_packet_type);
+ return -ENOENT;
+ }
read_lock_bh(&dev_base_lock);
for (dev = dev_base; dev != NULL; dev = dev->next) {
--
Don't blame me: the Monkey is driving
File: Chris Wilson <chris@qwirx.com>: [PATCH] cli_sti in drivers_net_hamradio_bpqether.c
reply other threads:[~2003-01-14 2:46 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=20030114025452.5FB632C37E@lists.samba.org \
--to=rusty@rustcorp.com.au \
--cc=jgarzik@pobox.com \
--cc=jreuter@yaina.de \
--cc=linux-kernel@vger.kernel.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®