lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <653402b90609281220s449ed538k41043348f4b11e77@mail.gmail.com>
Date:	Thu, 28 Sep 2006 21:20:22 +0200
From:	"Miguel Ojeda" <maxextreme@...il.com>
To:	"Andrew Morton" <akpm@...l.org>
Cc:	linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2.6.18 real-V5] drivers: add lcd display support

On 9/28/06, Andrew Morton <akpm@...l.org> wrote:
> On Wed, 27 Sep 2006 20:58:24 +0000
> "Miguel Ojeda" <maxextreme@...il.com> wrote:
>
> > On 9/26/06, Andrew Morton <akpm@...l.org> wrote:
> > > It's also probably-incorrect on big-endian CPUs.
> > > Perhaps you should not
> > > use bitops at all for this driver, use open-coded |
> > > and &/~ instead?
> >
> > Uhm, someone told me that they shouldn't be used because the kernel
> > has generic functions for that.
>
> You can't believe everything you read on the internet ;)
>
> set_bit() and friends are a) atomic wrt other CPUs on SMP and b) only to be
> performed on unsigned longs.
>
> > I researched the kernel sources, and looking at bitops.h I found
> > setbit(), so I tried to use it in the driver, althought I prefer
> > standard |= and &=.
>
> Those are the appropriate operations to use in this driver.
>
>

Ok, I have fixed all the mistakes you found. However, I have a
question about locking.

I have used 1 global mutex for all the fops: seek, write and ioctl.
They call down_interruptable() at the very beggining and up() just
before returning. I think that it's right.

However, what about the exported symbols? I have exported functions at
the ks0108 driver like EXPORT_SYMBOL_GPL(ks0108_writedata); The
cfag12864b drivers exports more symbols also, like:
EXPORT_SYMBOL_GPL(cfag12864b_write);

Should use the mutex all this functions too?

For example: Another driver can have a fops which isn't perform any
kind of locking. Such function is being executed twice at the same
time. And it calls some of my exported symbols. Then, I will have a
race condition in my driver.

(I couldn't find anything specific about that at LDD3, just for fops).

Thanks,
     Miguel Ojeda
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ