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: <20120613111835.GB4763@local>
Date:	Wed, 13 Jun 2012 13:18:35 +0200
From:	"Hans J. Koch" <hjk@...sjkoch.de>
To:	Raymond Wu <wxy412@...il.com>
Cc:	linux-kernel@...r.kernel.org, xywu@...vell.com
Subject: Re: UIO driver multi-instance issue discussion

On Wed, Jun 13, 2012 at 02:42:49PM +0800, Raymond Wu wrote:
> Hi guys,
> 
> >
> > I'm not sure who is the maintainer for UIO driver. Please help if you know something. Thanks in advance!

Please refer to the MAINTAINERS file in the kernel top level directory.
You can also use the get_maintainer script under scripts/.

UIO maintainers are Greg Kroah-Hartman and myself.

> >
> >
> > Recently, we have some trouble when using UIO as our VPU driver.
> >
> > Issue description:
> >
> > ·         This issue comes from the so called "multi-instance case". This means that for one H/W device, it can be opened multiple times.
> >
> > ·         Each instance will be assigned with a FD(file descriptor) and its own uio_listener.
> >
> > ·         After one H/W interrupt comes, the global uio_device.event has been +1 ( See atomic_inc(&idev->event); ) while all other instance’s uio_listener->event_count is not +1.
> >
> > ·         So, if we have 1+ instances waiting for interrupt, all of them will be woken up because listener->event_count != event_count.
> >

Please post the code of your kernel driver part. It's hard to talk about
that verbal description.

Your driver can be included in the mainline kernel, if you go through the
normal review process, all of these problems will be sorted out.

> >
> >
> > Solution:
> >
> > ·         Export uio_device definition to uio.h or uio_driver.h, so that we can sync the event_count for all instances in the private driver.
> >
> > ·         Add new uio_sync_event(struct file *filep) function in uio.c, so that we can call it directly when we want to sync the event count.
> >
> > Please advise which one is recommended or you can propose a new one. We have a plan to submit a patch to open source community to improve it.
> >
> > BTW, personally, I’m curious that why you put the uio_device definition within uio.c, is there any special reason for it?

Yes, nobody is supposed to fiddle around with it in a driver.
That is very much intentional.

Thanks,
Hans

--
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