From: Dave Hansen <haveblue@us.ibm.com>
To: Thunder from the hill <thunder@ngforever.de>
Cc: Greg KH <greg@kroah.com>,
kernel-janitor-discuss
<kernel-janitor-discuss@lists.sourceforge.net>,
linux-kernel@vger.kernel.org
Subject: Re: BKL removal
Date: Sun, 07 Jul 2002 15:42:56 -0700 [thread overview]
Message-ID: <3D28C3F0.7010506@us.ibm.com> (raw)
In-Reply-To: Pine.LNX.4.44.0207071551180.10105-100000@hawkeye.luckynet.adm
Thunder from the hill wrote:
>> "As long as I comment [and understand] why I am using the BKL."
>> would be a bit more accurate. How many places in the kernel have
>> you seen comments about what the BKL is actually doing? Could
>> you point me to some of your comments where _you_ are using the
>> BKL? Once you fully understand why it is there, the extra step
>> of removal is usually very small.
>
> Old Blue, could you please bring me an example on where in USB the
> bkl shouldn't be used, but is? And can you explain why it's wrong
> to use bkl there?
Old Blue? 23 isn't _that_ old!
BKL use isn't right or wrong -- it isn't a case of creating a deadlock
or a race. I'm picking a relatively random function from "grep -r
lock_kernel * | grep /usb/". I'll show what I think isn't optimal
about it.
"up" is a local variable. There is no point in protecting its
allocation. If the goal is to protect data inside "up", there should
probably be a subsystem-level lock for all "struct uhci_hcd"s or a
lock contained inside of the structure itself. Is this the kind of
example you're looking for?
static int uhci_proc_open(struct inode *inode, struct file *file)
{
const struct proc_dir_entry *dp = PDE(inode);
struct uhci_hcd *uhci = dp->data;
struct uhci_proc *up;
unsigned long flags;
int ret = -ENOMEM;
- lock_kernel();
up = kmalloc(sizeof(*up), GFP_KERNEL);
if (!up)
goto out;
up->data = kmalloc(MAX_OUTPUT, GFP_KERNEL);
if (!up->data) {
kfree(up);
goto out;
}
+ lock_kernel();
spin_lock_irqsave(&uhci->frame_list_lock, flags);
up->size = uhci_sprint_schedule(uhci, up->data, MAX_OUTPUT);
spin_unlock_irqrestore(&uhci->frame_list_lock, flags);
file->private_data = up;
+
unlock_kernel();
ret = 0;
out:
- unlock_kernel();
return ret;
}
--
Dave Hansen
haveblue@us.ibm.com
next prev parent reply other threads:[~2002-07-07 22:48 UTC|newest]
Thread overview: 98+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <Pine.LNX.4.44L.0207061306440.8346-100000@imladris.surriel.com>
[not found] ` <3D27390E.5060208@us.ibm.com>
2002-07-07 20:55 ` BKL removal Greg KH
2002-07-07 21:28 ` Oliver Neukum
2002-07-07 21:58 ` Dave Hansen
2002-07-07 22:38 ` Oliver Neukum
2002-07-07 21:35 ` Dave Hansen
2002-07-07 21:55 ` Thunder from the hill
2002-07-07 22:42 ` Dave Hansen [this message]
2002-07-07 23:07 ` Thunder from the hill
2002-07-07 23:23 ` Dave Hansen
2002-07-07 23:34 ` Thunder from the hill
2002-07-07 23:42 ` Sean Neakums
2002-07-07 23:31 ` Oliver Neukum
2002-07-07 23:45 ` Dave Hansen
2002-07-08 2:34 ` Matthew Wilcox
2002-07-08 2:52 ` Dave Hansen
2002-07-08 3:06 ` Alexander Viro
2002-07-08 12:33 ` Matthew Wilcox
2002-07-08 14:53 ` Dave Hansen
2002-07-08 12:29 ` Matthew Wilcox
2002-07-08 2:58 ` Alexander Viro
2002-07-08 3:06 ` Dave Hansen
2002-07-08 12:15 ` Matthew Wilcox
2002-07-08 6:34 ` Oliver Neukum
2002-07-07 23:23 ` Oliver Neukum
2002-07-07 23:31 ` Dave Hansen
2002-07-07 23:51 ` Greg KH
2002-07-08 0:07 ` Dave Hansen
2002-07-08 2:12 ` Greg KH
2002-07-09 1:46 ` Rick Lindsley
2002-07-09 4:38 ` Greg KH
2002-07-09 19:31 ` Rick Lindsley
2002-07-09 20:17 ` Greg KH
2002-07-09 20:55 ` Rick Lindsley
2002-07-09 21:00 ` William Lee Irwin III
2002-07-09 21:12 ` Robert Love
2002-07-09 14:19 ` Dave Hansen
2002-07-09 21:29 ` Robert Love
2002-07-09 14:44 ` Dave Hansen
2002-07-09 21:47 ` Robert Love
2002-07-10 1:15 ` Arnaldo Carvalho de Melo
2002-07-10 3:27 ` Alexander Viro
2002-07-09 20:49 ` Dave Hansen
2002-07-10 5:30 ` Alexander Viro
2002-07-10 10:28 ` Sandy Harris
2002-07-18 0:30 ` David Wagner
2002-07-18 1:03 ` Daniel Phillips
2002-07-09 21:59 ` William Lee Irwin III
2002-07-09 22:21 ` Alan Cox
2002-07-10 13:31 ` jlnance
2002-07-10 14:17 ` Alan Cox
2002-07-15 20:53 ` Alexander Hoogerhuis
2002-07-15 22:07 ` Rik van Riel
2002-07-15 22:25 ` Thunder from the hill
2002-07-09 19:33 ` Rick Lindsley
2002-07-09 20:12 ` Greg KH
2002-07-09 4:49 ` Drew P. Vogel
2002-07-09 5:25 ` Dave Hansen
2002-07-09 5:21 ` Larry McVoy
2002-07-09 7:59 ` Roman Zippel
2002-07-10 10:03 ` Marco Colombo
2002-07-10 14:40 ` Matthew Wilcox
2002-07-10 16:46 ` William Lee Irwin III
2002-07-11 9:57 ` Marco Colombo
2002-07-10 21:28 ` Rick Lindsley
2002-07-10 22:24 ` Daniel Phillips
2002-07-10 23:36 ` spinlock assertion macros Jesse Barnes
2002-07-11 0:54 ` Andreas Dilger
2002-07-11 1:10 ` Jesse Barnes
2002-07-11 5:31 ` Daniel Phillips
2002-07-11 7:19 ` george anzinger
2002-07-11 16:35 ` Oliver Xymoron
2002-07-11 23:52 ` Sandy Harris
2002-07-12 0:56 ` Daniel Phillips
2002-07-12 3:22 ` Oliver Xymoron
2002-07-11 18:03 ` Jesse Barnes
2002-07-11 19:17 ` Daniel Phillips
2002-07-12 12:07 ` Dave Jones
2002-07-12 12:55 ` Daniel Phillips
2002-07-12 19:24 ` Arnd Bergmann
2002-07-12 17:42 ` Daniel Phillips
2002-07-17 2:22 ` Jesse Barnes
2002-07-17 6:34 ` Daniel Phillips
2002-07-18 23:36 ` [PATCH] spinlock assertion macros for 2.5.26 Jesse Barnes
2002-07-17 11:09 ` spinlock assertion macros Arnd Bergmann
2002-07-12 20:41 ` Oliver Xymoron
2002-07-13 3:21 ` Daniel Phillips
2002-07-12 17:49 ` Robert Love
2002-07-12 17:58 ` Dave Jones
2002-07-11 10:51 ` Arnd Bergmann
2002-07-07 22:24 ` BKL removal Greg KH
2002-07-08 0:56 ` Bernd Eckenfels
2002-07-10 0:30 ` Pavel Machek
2002-07-10 7:32 dan carpenter
[not found] <0C01A29FBAE24448A792F5C68F5EA47D2B0C8A@nasdaq.ms.ensim.com>
2002-07-08 19:00 ` pmenage
2002-07-08 21:45 ` Oliver Neukum
[not found] <3D23F306.50703@us.ibm.com>
2002-07-04 12:41 ` Matthew Wilcox
2002-07-04 18:44 ` Dave Hansen
2002-07-04 18:56 ` Dave Hansen
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=3D28C3F0.7010506@us.ibm.com \
--to=haveblue@us.ibm.com \
--cc=greg@kroah.com \
--cc=kernel-janitor-discuss@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=thunder@ngforever.de \
/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.