Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Benjamin Herrenschmidt
> Ok, what kind of ass-hat idiotic thing is this?
> 
>   irqreturn_t uio_irq_handler(int irq, void *dev_id)
>   {
>   return IRQ_HANDLED;
>   }
> 
> exactly what is the point here? No way will I pull this kind of crap. You 
> just seem to have guaranteed a dead machine if the irq is level-triggered, 
> since it will keep on happening forever.
> 
> Please remove.
> 
> YOU CANNOT DO IRQ'S BY LETTING USER SPACE SORT IT OUT!

Actually, you can... but wether you want is a different story :-)

You can simply mask it, have it handled by userspace and re-enable it
when that's done. Though say hello to horrible interrupt latencies and
hope you aren't sharing it with anything critical...

I don't mean I -like- the approach... I just say it can be made to
sort-of work. But I don't see the point.

Ben.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Linus Torvalds


On Wed, 13 Dec 2006, Linus Torvalds wrote:
> 
> Btw: there's one driver we _know_ we want to support in user space, and 
> that's the X kind of direct-rendering thing. So if you can show that this 
> driver infrastructure actually makes sense as a replacement for the DRI 
> layer, then _that_ would be a hell of a convincing argument.

Btw, the other side of this argument is that if a user-space driver 
infrastructure can _not_ help the DRI kind of situation, then it's largely 
by definition not interesting. Merging something like that would just mean 
that we end up with multiple _different_ user-space helper infrastructure 
shells, which sounds distinctly unpalatable.

Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Linus Torvalds


On Wed, 13 Dec 2006, Michael K. Edwards wrote:
>
> On 12/13/06, Linus Torvalds <[EMAIL PROTECTED]> wrote:
> > Ok, what kind of ass-hat idiotic thing is this?
> 
> C'mon, Linus, tell us how you _really_ feel.

I'll try to be less subtle next time ;)

> Seriously, though, please please pretty please do not allow a facility
> for "going through a simple interface to get accesses to irqs and
> memory regions" into the mainline kernel, with or without toy ISA
> examples.

I do agree.

I'm not violently opposed to something like this in practice (we've 
already allowed it for USB devices), but there definitely needs to be a 
real reason that helps _us_, not just some ass-hat vendor that looks for a 
way to avoid open-sourcing their driver.

If there are real and valid uses (and as mentioned, I actually think that 
the whole graphics-3D-engine-thing is such a use) where a kernel driver 
simply doesn't work out well, or where there are serious tecnical reasons 
why it wants to be in user space (and "stability" is not one such thing: 
if you access hardware directly in user space, and your driver is buggy, 
the machine is equally deal, and a hell of a lot harder to control to 
boot).

Microkernel people have their heads up their arses, none of their 
arguments have actually ever made any real logical sense. So look 
elsewhere for real reasons to do it in user space.

Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Greg KH
On Wed, Dec 13, 2006 at 12:38:05PM -0800, Michael K. Edwards wrote:
> Seriously, though, please please pretty please do not allow a facility
> for "going through a simple interface to get accesses to irqs and
> memory regions" into the mainline kernel, with or without toy ISA
> examples.

Why?  X does it today :)

> Embedded systems integrators have enough trouble with chip vendors who
> think that exposing the device registers to userspace constitutes a
> "driver".

Yes, and because of this, they create binary only drivers today.  Lots
of them.  All over the place.  Doing crazy stupid crap in kernelspace.

Then there are people who do irq stuff in userspace but get it wrong.
I've seen that happen many times in lots of different research papers
and presentations.

This interface does it correctly, and it allows those people who for
some reason feel they do want to keep their logic in non-gpl code, to do
it.

It also allows code that needs floating point to not be in the kernel
and in one instance using this interface actually sped up the device
because of the lack of the need to go between kernel and userspace a
bunch of times.

> The correct description is more like "porting shim for MMU-less RTOS
> tasks"; and if the BSP vendors of the world can make a nickel
> supplying them, more power to them.  Just not in mainline, please.

Again, X does this today, and does does lots of other applications.
This is a way to do it in a sane manner, to keep people who want to do
floating point out of the kernel, and to make some embedded people much
happier to use Linux, gets them from being so mad at Linux because we
keep changing the internal apis, and makes me happier as they stop
violating my copyright by creating closed drivers in the kernel.

thanks,

greg k-h
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Linus Torvalds


On Wed, 13 Dec 2006, Greg KH wrote:
>
> It's a stupid test module for the uio core for isa devices.  It's not
> the main code, or core.

Doesn't matter.

IT IS SO FUNDAMENTALLY AND HORRIBLY WRONG THAT I REFUSE TO HAVE IT IN MY 
TREE.

As an "example", the _only_ thing it can possibly ever do is to just 
confuse people - in other words, it's an _anti_example, not a real one.

> Ok, I can pull this example module out if you want, but people seem to
> want examples these days.  If I do that, any objection to the rest?

I'm really not convinced about the user-mode thing unless somebody can 
show me a good reason for it. Not just some "wouldn't it be nice" kind of 
thing. A real, honest-to-goodness reason that we actually _want_ to see 
used.

No features just for features sake.

So please push the tree without this userspace IO driver at all. And if 
you actually have a real user, not just an example, that is worthy and 
shows why such a driver in user space is actually a good thing, _then_ we 
can push that.

In other words, I'd like to see code that uses this that is actually 
_better_ than an in-kernel driver in some way.

For USB, the user-mode thing made sense. You have tons of random devices, 
and the abstraction level is higher to begin with. Quite frankly, I simply 
don't even see the same being true for something like this.

Btw: there's one driver we _know_ we want to support in user space, and 
that's the X kind of direct-rendering thing. So if you can show that this 
driver infrastructure actually makes sense as a replacement for the DRI 
layer, then _that_ would be a hell of a convincing argument.

There may be others. Feel free to fill in the blank: .

Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Michael K. Edwards

On 12/13/06, Linus Torvalds <[EMAIL PROTECTED]> wrote:

Ok, what kind of ass-hat idiotic thing is this?


C'mon, Linus, tell us how you _really_ feel.

Seriously, though, please please pretty please do not allow a facility
for "going through a simple interface to get accesses to irqs and
memory regions" into the mainline kernel, with or without toy ISA
examples.  Embedded systems integrators have enough trouble with chip
vendors who think that exposing the device registers to userspace
constitutes a "driver".  The correct description is more like "porting
shim for MMU-less RTOS tasks"; and if the BSP vendors of the world can
make a nickel supplying them, more power to them.  Just not in
mainline, please.

Cheers,
- Michael
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Greg KH
On Wed, Dec 13, 2006 at 12:12:04PM -0800, Linus Torvalds wrote:
> 
> 
> On Wed, 13 Dec 2006, Greg KH wrote:
> >
> > - userspace io driver interface added.  This allows the ability
> >   to write userspace drivers for some types of hardware much
> >   easier than before, going through a simple interface to get
> >   accesses to irqs and memory regions.  A small kernel portion
> >   is still needed to handle the irq properly, but that is it.
> 
> Ok, what kind of ass-hat idiotic thing is this?
> 
>   irqreturn_t uio_irq_handler(int irq, void *dev_id)
>   {
>   return IRQ_HANDLED;
>   }
> 
> exactly what is the point here? No way will I pull this kind of crap. You 
> just seem to have guaranteed a dead machine if the irq is level-triggered, 
> since it will keep on happening forever.

It's a stupid test module for the uio core for isa devices.  It's not
the main code, or core.

> Please remove.
> 
> YOU CANNOT DO IRQ'S BY LETTING USER SPACE SORT IT OUT!

I agree, that's why this code doesn't let userspace sort it out.  You
have to have a kernel driver to handle the irq.

> It's really that easy. The irq handler has to be _entirely_ in kernel 
> space. No user-space ass-hattery here.

Agreed.

> And I don't care one whit if it happens to work on parport with an old 
> legacy ISA interrupt that is edge-triggered. That's not even the 
> interesting case. Never will be.

I agree.  But that's all that this test module did.  It handled an isa
interrupt that was edge triggered.

> NAK NAK NAK NAK.

Ok, I can pull this example module out if you want, but people seem to
want examples these days.  If I do that, any objection to the rest?

thanks,

greg k-h
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Linus Torvalds


On Wed, 13 Dec 2006, Greg KH wrote:
>
>   - userspace io driver interface added.  This allows the ability
> to write userspace drivers for some types of hardware much
> easier than before, going through a simple interface to get
> accesses to irqs and memory regions.  A small kernel portion
> is still needed to handle the irq properly, but that is it.

Ok, what kind of ass-hat idiotic thing is this?

irqreturn_t uio_irq_handler(int irq, void *dev_id)
{
return IRQ_HANDLED;
}

exactly what is the point here? No way will I pull this kind of crap. You 
just seem to have guaranteed a dead machine if the irq is level-triggered, 
since it will keep on happening forever.

Please remove.

YOU CANNOT DO IRQ'S BY LETTING USER SPACE SORT IT OUT!

It's really that easy. The irq handler has to be _entirely_ in kernel 
space. No user-space ass-hattery here.

And I don't care one whit if it happens to work on parport with an old 
legacy ISA interrupt that is edge-triggered. That's not even the 
interesting case. Never will be.

NAK NAK NAK NAK.

Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Greg KH
Here are some more driver core patches for 2.6.19

They contain:
- minor driver core bugfixes and memory savings
- debugfs bugfixes and inotify support added.
- userspace io driver interface added.  This allows the ability
  to write userspace drivers for some types of hardware much
  easier than before, going through a simple interface to get
  accesses to irqs and memory regions.  A small kernel portion
  is still needed to handle the irq properly, but that is it.
- other minor cleanups and fixes.

All of these patches have been in the -mm tree for a while.

Please pull from:
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6.git/
or if master.kernel.org hasn't synced up yet:
master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6.git/

Patches will be sent as a follow-on to this message to lkml for people
to see.

thanks,

greg k-h

 Documentation/DocBook/kernel-api.tmpl |4 +
 Documentation/DocBook/uio-howto.tmpl  |  434 +++
 drivers/Kconfig   |1 +
 drivers/Makefile  |1 +
 drivers/base/class.c  |2 +
 drivers/base/platform.c   |4 +-
 drivers/uio/Kconfig   |   39 ++
 drivers/uio/Makefile  |4 +
 drivers/uio/uio.c |  618 +
 drivers/uio/uio_dummy.c   |  174 +
 drivers/uio/uio_events.c  |  119 +++
 drivers/uio/uio_irq.c |   86 +
 drivers/uio/uio_parport.c |   84 +
 fs/debugfs/inode.c|   39 ++-
 include/linux/platform_device.h   |2 +-
 include/linux/uio_driver.h|   71 
 kernel/module.c   |   25 ++
 kernel/power/Kconfig  |9 +-
 18 files changed, 1700 insertions(+), 16 deletions(-)
 create mode 100644 Documentation/DocBook/uio-howto.tmpl
 create mode 100644 drivers/uio/Kconfig
 create mode 100644 drivers/uio/Makefile
 create mode 100644 drivers/uio/uio.c
 create mode 100644 drivers/uio/uio_dummy.c
 create mode 100644 drivers/uio/uio_events.c
 create mode 100644 drivers/uio/uio_irq.c
 create mode 100644 drivers/uio/uio_parport.c
 create mode 100644 include/linux/uio_driver.h

---

Akinobu Mita (1):
  driver core: delete virtual directory on class_unregister()

Andrew Morton (1):
  Driver core: "platform_driver_probe() can save codespace": save codespace

David Brownell (1):
  Driver core: deprecate PM_LEGACY, default it to N

Hans J. Koch (4):
  UIO: Add the User IO core code
  UIO: Documentation
  UIO: dummy test module for the uio core
  UIO: irq test module for the uio core

Kay Sievers (1):
  Driver core: show "initstate" of module

Mathieu Desnoyers (5):
  DebugFS : inotify create/mkdir support
  DebugFS : coding style fixes
  DebugFS : file/directory creation error handling
  DebugFS : more file/directory creation error handling
  DebugFS : file/directory removal fix

Scott Wood (1):
  Driver core: Make platform_device_add_data accept a const pointer

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Greg KH
Here are some more driver core patches for 2.6.19

They contain:
- minor driver core bugfixes and memory savings
- debugfs bugfixes and inotify support added.
- userspace io driver interface added.  This allows the ability
  to write userspace drivers for some types of hardware much
  easier than before, going through a simple interface to get
  accesses to irqs and memory regions.  A small kernel portion
  is still needed to handle the irq properly, but that is it.
- other minor cleanups and fixes.

All of these patches have been in the -mm tree for a while.

Please pull from:
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6.git/
or if master.kernel.org hasn't synced up yet:
master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6.git/

Patches will be sent as a follow-on to this message to lkml for people
to see.

thanks,

greg k-h

 Documentation/DocBook/kernel-api.tmpl |4 +
 Documentation/DocBook/uio-howto.tmpl  |  434 +++
 drivers/Kconfig   |1 +
 drivers/Makefile  |1 +
 drivers/base/class.c  |2 +
 drivers/base/platform.c   |4 +-
 drivers/uio/Kconfig   |   39 ++
 drivers/uio/Makefile  |4 +
 drivers/uio/uio.c |  618 +
 drivers/uio/uio_dummy.c   |  174 +
 drivers/uio/uio_events.c  |  119 +++
 drivers/uio/uio_irq.c |   86 +
 drivers/uio/uio_parport.c |   84 +
 fs/debugfs/inode.c|   39 ++-
 include/linux/platform_device.h   |2 +-
 include/linux/uio_driver.h|   71 
 kernel/module.c   |   25 ++
 kernel/power/Kconfig  |9 +-
 18 files changed, 1700 insertions(+), 16 deletions(-)
 create mode 100644 Documentation/DocBook/uio-howto.tmpl
 create mode 100644 drivers/uio/Kconfig
 create mode 100644 drivers/uio/Makefile
 create mode 100644 drivers/uio/uio.c
 create mode 100644 drivers/uio/uio_dummy.c
 create mode 100644 drivers/uio/uio_events.c
 create mode 100644 drivers/uio/uio_irq.c
 create mode 100644 drivers/uio/uio_parport.c
 create mode 100644 include/linux/uio_driver.h

---

Akinobu Mita (1):
  driver core: delete virtual directory on class_unregister()

Andrew Morton (1):
  Driver core: platform_driver_probe() can save codespace: save codespace

David Brownell (1):
  Driver core: deprecate PM_LEGACY, default it to N

Hans J. Koch (4):
  UIO: Add the User IO core code
  UIO: Documentation
  UIO: dummy test module for the uio core
  UIO: irq test module for the uio core

Kay Sievers (1):
  Driver core: show initstate of module

Mathieu Desnoyers (5):
  DebugFS : inotify create/mkdir support
  DebugFS : coding style fixes
  DebugFS : file/directory creation error handling
  DebugFS : more file/directory creation error handling
  DebugFS : file/directory removal fix

Scott Wood (1):
  Driver core: Make platform_device_add_data accept a const pointer

-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Linus Torvalds


On Wed, 13 Dec 2006, Greg KH wrote:

   - userspace io driver interface added.  This allows the ability
 to write userspace drivers for some types of hardware much
 easier than before, going through a simple interface to get
 accesses to irqs and memory regions.  A small kernel portion
 is still needed to handle the irq properly, but that is it.

Ok, what kind of ass-hat idiotic thing is this?

irqreturn_t uio_irq_handler(int irq, void *dev_id)
{
return IRQ_HANDLED;
}

exactly what is the point here? No way will I pull this kind of crap. You 
just seem to have guaranteed a dead machine if the irq is level-triggered, 
since it will keep on happening forever.

Please remove.

YOU CANNOT DO IRQ'S BY LETTING USER SPACE SORT IT OUT!

It's really that easy. The irq handler has to be _entirely_ in kernel 
space. No user-space ass-hattery here.

And I don't care one whit if it happens to work on parport with an old 
legacy ISA interrupt that is edge-triggered. That's not even the 
interesting case. Never will be.

NAK NAK NAK NAK.

Linus
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Greg KH
On Wed, Dec 13, 2006 at 12:12:04PM -0800, Linus Torvalds wrote:
 
 
 On Wed, 13 Dec 2006, Greg KH wrote:
 
  - userspace io driver interface added.  This allows the ability
to write userspace drivers for some types of hardware much
easier than before, going through a simple interface to get
accesses to irqs and memory regions.  A small kernel portion
is still needed to handle the irq properly, but that is it.
 
 Ok, what kind of ass-hat idiotic thing is this?
 
   irqreturn_t uio_irq_handler(int irq, void *dev_id)
   {
   return IRQ_HANDLED;
   }
 
 exactly what is the point here? No way will I pull this kind of crap. You 
 just seem to have guaranteed a dead machine if the irq is level-triggered, 
 since it will keep on happening forever.

It's a stupid test module for the uio core for isa devices.  It's not
the main code, or core.

 Please remove.
 
 YOU CANNOT DO IRQ'S BY LETTING USER SPACE SORT IT OUT!

I agree, that's why this code doesn't let userspace sort it out.  You
have to have a kernel driver to handle the irq.

 It's really that easy. The irq handler has to be _entirely_ in kernel 
 space. No user-space ass-hattery here.

Agreed.

 And I don't care one whit if it happens to work on parport with an old 
 legacy ISA interrupt that is edge-triggered. That's not even the 
 interesting case. Never will be.

I agree.  But that's all that this test module did.  It handled an isa
interrupt that was edge triggered.

 NAK NAK NAK NAK.

Ok, I can pull this example module out if you want, but people seem to
want examples these days.  If I do that, any objection to the rest?

thanks,

greg k-h
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Michael K. Edwards

On 12/13/06, Linus Torvalds [EMAIL PROTECTED] wrote:

Ok, what kind of ass-hat idiotic thing is this?


C'mon, Linus, tell us how you _really_ feel.

Seriously, though, please please pretty please do not allow a facility
for going through a simple interface to get accesses to irqs and
memory regions into the mainline kernel, with or without toy ISA
examples.  Embedded systems integrators have enough trouble with chip
vendors who think that exposing the device registers to userspace
constitutes a driver.  The correct description is more like porting
shim for MMU-less RTOS tasks; and if the BSP vendors of the world can
make a nickel supplying them, more power to them.  Just not in
mainline, please.

Cheers,
- Michael
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Linus Torvalds


On Wed, 13 Dec 2006, Greg KH wrote:

 It's a stupid test module for the uio core for isa devices.  It's not
 the main code, or core.

Doesn't matter.

IT IS SO FUNDAMENTALLY AND HORRIBLY WRONG THAT I REFUSE TO HAVE IT IN MY 
TREE.

As an example, the _only_ thing it can possibly ever do is to just 
confuse people - in other words, it's an _anti_example, not a real one.

 Ok, I can pull this example module out if you want, but people seem to
 want examples these days.  If I do that, any objection to the rest?

I'm really not convinced about the user-mode thing unless somebody can 
show me a good reason for it. Not just some wouldn't it be nice kind of 
thing. A real, honest-to-goodness reason that we actually _want_ to see 
used.

No features just for features sake.

So please push the tree without this userspace IO driver at all. And if 
you actually have a real user, not just an example, that is worthy and 
shows why such a driver in user space is actually a good thing, _then_ we 
can push that.

In other words, I'd like to see code that uses this that is actually 
_better_ than an in-kernel driver in some way.

For USB, the user-mode thing made sense. You have tons of random devices, 
and the abstraction level is higher to begin with. Quite frankly, I simply 
don't even see the same being true for something like this.

Btw: there's one driver we _know_ we want to support in user space, and 
that's the X kind of direct-rendering thing. So if you can show that this 
driver infrastructure actually makes sense as a replacement for the DRI 
layer, then _that_ would be a hell of a convincing argument.

There may be others. Feel free to fill in the blank: .

Linus
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Linus Torvalds


On Wed, 13 Dec 2006, Michael K. Edwards wrote:

 On 12/13/06, Linus Torvalds [EMAIL PROTECTED] wrote:
  Ok, what kind of ass-hat idiotic thing is this?
 
 C'mon, Linus, tell us how you _really_ feel.

I'll try to be less subtle next time ;)

 Seriously, though, please please pretty please do not allow a facility
 for going through a simple interface to get accesses to irqs and
 memory regions into the mainline kernel, with or without toy ISA
 examples.

I do agree.

I'm not violently opposed to something like this in practice (we've 
already allowed it for USB devices), but there definitely needs to be a 
real reason that helps _us_, not just some ass-hat vendor that looks for a 
way to avoid open-sourcing their driver.

If there are real and valid uses (and as mentioned, I actually think that 
the whole graphics-3D-engine-thing is such a use) where a kernel driver 
simply doesn't work out well, or where there are serious tecnical reasons 
why it wants to be in user space (and stability is not one such thing: 
if you access hardware directly in user space, and your driver is buggy, 
the machine is equally deal, and a hell of a lot harder to control to 
boot).

Microkernel people have their heads up their arses, none of their 
arguments have actually ever made any real logical sense. So look 
elsewhere for real reasons to do it in user space.

Linus
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Greg KH
On Wed, Dec 13, 2006 at 12:38:05PM -0800, Michael K. Edwards wrote:
 Seriously, though, please please pretty please do not allow a facility
 for going through a simple interface to get accesses to irqs and
 memory regions into the mainline kernel, with or without toy ISA
 examples.

Why?  X does it today :)

 Embedded systems integrators have enough trouble with chip vendors who
 think that exposing the device registers to userspace constitutes a
 driver.

Yes, and because of this, they create binary only drivers today.  Lots
of them.  All over the place.  Doing crazy stupid crap in kernelspace.

Then there are people who do irq stuff in userspace but get it wrong.
I've seen that happen many times in lots of different research papers
and presentations.

This interface does it correctly, and it allows those people who for
some reason feel they do want to keep their logic in non-gpl code, to do
it.

It also allows code that needs floating point to not be in the kernel
and in one instance using this interface actually sped up the device
because of the lack of the need to go between kernel and userspace a
bunch of times.

 The correct description is more like porting shim for MMU-less RTOS
 tasks; and if the BSP vendors of the world can make a nickel
 supplying them, more power to them.  Just not in mainline, please.

Again, X does this today, and does does lots of other applications.
This is a way to do it in a sane manner, to keep people who want to do
floating point out of the kernel, and to make some embedded people much
happier to use Linux, gets them from being so mad at Linux because we
keep changing the internal apis, and makes me happier as they stop
violating my copyright by creating closed drivers in the kernel.

thanks,

greg k-h
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Linus Torvalds


On Wed, 13 Dec 2006, Linus Torvalds wrote:
 
 Btw: there's one driver we _know_ we want to support in user space, and 
 that's the X kind of direct-rendering thing. So if you can show that this 
 driver infrastructure actually makes sense as a replacement for the DRI 
 layer, then _that_ would be a hell of a convincing argument.

Btw, the other side of this argument is that if a user-space driver 
infrastructure can _not_ help the DRI kind of situation, then it's largely 
by definition not interesting. Merging something like that would just mean 
that we end up with multiple _different_ user-space helper infrastructure 
shells, which sounds distinctly unpalatable.

Linus
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Benjamin Herrenschmidt
 Ok, what kind of ass-hat idiotic thing is this?
 
   irqreturn_t uio_irq_handler(int irq, void *dev_id)
   {
   return IRQ_HANDLED;
   }
 
 exactly what is the point here? No way will I pull this kind of crap. You 
 just seem to have guaranteed a dead machine if the irq is level-triggered, 
 since it will keep on happening forever.
 
 Please remove.
 
 YOU CANNOT DO IRQ'S BY LETTING USER SPACE SORT IT OUT!

Actually, you can... but wether you want is a different story :-)

You can simply mask it, have it handled by userspace and re-enable it
when that's done. Though say hello to horrible interrupt latencies and
hope you aren't sharing it with anything critical...

I don't mean I -like- the approach... I just say it can be made to
sort-of work. But I don't see the point.

Ben.

-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Arjan van de Ven
On Wed, 2006-12-13 at 13:08 -0800, Linus Torvalds wrote:
 
 On Wed, 13 Dec 2006, Linus Torvalds wrote:
  
  Btw: there's one driver we _know_ we want to support in user space, and 
  that's the X kind of direct-rendering thing. So if you can show that this 
  driver infrastructure actually makes sense as a replacement for the DRI 
  layer, then _that_ would be a hell of a convincing argument.
 
 Btw, the other side of this argument is that if a user-space driver 
 infrastructure can _not_ help the DRI kind of situation, then it's largely 

with DRI you have the case where something needs to do security
validation of the commands that are sent to the card. (to avoid a
non-privileged user to DMA all over your memory)

That and a tiny bit of resource management is the bulk of the kernel DRM
code... and I don't think userspace can do it fundamentally better.
Sure you could pipe things to a root daemon instead of doing a system
call. But I don't see that being superior.

-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Jan Engelhardt

You can simply mask it, have it handled by userspace and re-enable it
when that's done. Though say hello to horrible interrupt latencies and
hope you aren't sharing it with anything critical...

For the sharing case, some sort of softirq should be created. That is, when a
hard interrupt is generated and the irq handler is executed, set a flag that at
some other point in time, the irq is delivered to userspace. Like you do with
signals in userspace:

 void sighandler(int s) {
 exit_main_loop_soon = 1;
 }

something similar could be done in kernelspace without interrupting important
devices/irq_handlers sharing the same IRQ. 


-`J'
-- 
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Linus Torvalds


On Thu, 14 Dec 2006, Benjamin Herrenschmidt wrote:

 Actually, you can... but wether you want is a different story :-)
 
 You can simply mask it, have it handled by userspace and re-enable it
 when that's done.

Nope. Again, this whole mentality is WRONG.

It DOES NOT WORK. No architecture does per-device interrupts portably, 
which means that you'll always see sharing. 

And once you see sharing, you have small details like the harddisk 
interrupt or network interrupt that the user-land driver will depend on.

Oops. Instant deadlock.

 I don't mean I -like- the approach... I just say it can be made to
 sort-of work. But I don't see the point.

No. The point really is that it fundamentally _cannot_ work. Not in the 
real world.

It can only work in some alternate reality where you can always disable 
interrupts per-device, and even in that alternate reality it would be 
wrong to use that quoted interrupt handler: not only do you need to 
disable the irq, you need to have an acknowledge phase too

So you'd actually have to fix things _architecturally_, not just add some 
code to the irq handler.

Linus
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Thomas Gleixner
On Wed, 2006-12-13 at 12:58 -0800, Linus Torvalds wrote:
 In other words, I'd like to see code that uses this that is actually 
 _better_ than an in-kernel driver in some way.
 
 For USB, the user-mode thing made sense. You have tons of random devices, 
 and the abstraction level is higher to begin with. Quite frankly, I simply 
 don't even see the same being true for something like this.

We started to work on this for industrial I/O devices. Many of them are
dual port memory based, others are dedicated chips for motion control or
field busses.

The design requires to have an in kernel stub driver with interrupt
handler which is capable to handle shared interrupts. User space
_cannot_ override an irq_disable(), it just has access to the chip
registers of the device, which is possible right now as well.

The risk, that such a driver stalls the kernel is exactly the same as
the risk you have with any other badly written driver.

This is a real world example of such a drivers interrupt handler:

/*
 * The chip specific portion of the interrupt handler. The framework code
 * takes care of userspace notification when we return IRQ_HANDLED
 */
static irqreturn_t sercos_handler(int irq, void *dev_id, struct pt_regs *reg)
{
/* Check, if this interrupt is originated from the SERCOS chip */
if (!(sercos_read(IRQ_STATUS)  SERCOS_INTERRUPT_MASK))
return IRQ_NONE;

/* Acknowledge the chip interrupts */
sercos_write(IRQ_ACK1, SERCOS_INTERRUPT_ACK1);
sercos_write(IRQ_ACK2, SERCOS_INTERRUPT_ACK2);

return IRQ_HANDLED;
}

With a full kernel driver we need:

1. Interrupt handler
check interrupt
acknowledge interrupt
copy data from/to chip into a kernel buffer
wakeup user space task
2. read data from driver, which goes through copy to user
3. do calculations
4. write data to driver, which goes through copy from user

After changing the driver concept we have only:
1. Interrupt handler
check interrupt
acknowledge interrupt
wakeup user space task
2. User space task handles the mmaped chip directly

The change gave a serious performance gain in the range of 20% after the
application was optimized for dealing with the chip directly.

There are tons of such exotic hardware devices out there, which now have
either a closed source driver or an out of tree patch with an horrible
amount of individual ioctl functions to get to the same point with less
performance.

 Btw: there's one driver we _know_ we want to support in user space, and 
 that's the X kind of direct-rendering thing. So if you can show that this 
 driver infrastructure actually makes sense as a replacement for the DRI 
 layer, then _that_ would be a hell of a convincing argument.

I did not look closely into that, but I think that it is a valid usage
candidate. The interface of graphic cards is user space mappable and it
probably needs some interrupt handling + notification mechanism as well
as the devices mentioned above.

tglx


-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Andrew Morton
On Wed, 13 Dec 2006 13:32:50 -0800
Martin Bligh [EMAIL PROTECTED] wrote:

 So let's come out and ban binary modules, rather than pussyfooting
 around, if that's what we actually want to do.

Give people 12 months warning (time to work out what they're going to do,
talk with the legal dept, etc) then make the kernel load only GPL-tagged
modules.

I think I'd favour that.  It would aid those people who are trying to
obtain device specs, and who are persuading organisations to GPL their drivers.

(Whereas the patch which is proposed in this thread hinders those people)
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Benjamin Herrenschmidt
 Btw: there's one driver we _know_ we want to support in user space, and 
 that's the X kind of direct-rendering thing. So if you can show that this 
 driver infrastructure actually makes sense as a replacement for the DRI 
 layer, then _that_ would be a hell of a convincing argument.

And even X is trying to move away from that at least partially... With
the DRI driver handling IRQs and processing command buffers... except
for cards with multiple hardware contexts, but then, we are in a case
similar to Infiniband where the HW is -designed- to have specific areas
mapped into user space, and there is still a kernel driver to arbitrate,
decide who gets what, establish those mappings, etc...

Thus X isn't even a good example :-)

Ben.


-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Michael K. Edwards

On 12/13/06, Greg KH [EMAIL PROTECTED] wrote:

On Wed, Dec 13, 2006 at 12:38:05PM -0800, Michael K. Edwards wrote:
 Seriously, though, please please pretty please do not allow a facility
 for going through a simple interface to get accesses to irqs and
 memory regions into the mainline kernel, with or without toy ISA
 examples.

Why?  X does it today :)


Er, I rest my case?  Anyway, the history around X11 is completely
different from the present situation, and there were good arguments at
the time for structuring the problem so that the X server was
relatively kernel-neutral even if it was banging directly on a
framebuffer, and later on 2-D acceleration hardware.  As graphics
chips have become more sophisticated, pure-userspace X11 has become
less tenable.


 Embedded systems integrators have enough trouble with chip vendors who
 think that exposing the device registers to userspace constitutes a
 driver.

Yes, and because of this, they create binary only drivers today.  Lots
of them.  All over the place.  Doing crazy stupid crap in kernelspace.


It does not get less crazy and stupid because we open a big hole from
kernelspace to userspace and let them pretend that they have a GPL
driver when all of the chip init logic is peeked and poked from the
same closed code in userspace.  Most low-level drivers (the kind that
involve IRQs and registers local to the CPU; USB is different) cannot
be done right from userspace and we shouldn't encourage people to try.


Then there are people who do irq stuff in userspace but get it wrong.
I've seen that happen many times in lots of different research papers
and presentations.


Their problems need not become our problems.


This interface does it correctly, and it allows those people who for
some reason feel they do want to keep their logic in non-gpl code, to do
it.


People who want to keep their logic in non-GPL code do so by providing
binary-only drivers.  That's a sane compromise in certain sectors, and
occasionally results in the eventual opening of the driver (when the
illusion of competitive advantage in closed-ness wears off) in
integrable shape.  A customer with some leverage and technical skill
can negotiate for access to the source code so that he can fix the
bugs that are biting him, rebuild with a toolchain that isn't from the
Dark Ages, and so forth: a real-life demonstration to the vendor that
letting outsiders work on the code will sell more chips.  But if you
actively encourage a brain-damaged userspace driver strategy, that
opportunity is lost.


It also allows code that needs floating point to not be in the kernel
and in one instance using this interface actually sped up the device
because of the lack of the need to go between kernel and userspace a
bunch of times.


What instance is that?  Are you sure it wasn't a case of things being
done in the driver that should have been done in a library all along?


 The correct description is more like porting shim for MMU-less RTOS
 tasks; and if the BSP vendors of the world can make a nickel
 supplying them, more power to them.  Just not in mainline, please.

Again, X does this today, and does does lots of other applications.
This is a way to do it in a sane manner, to keep people who want to do
floating point out of the kernel, and to make some embedded people much
happier to use Linux, gets them from being so mad at Linux because we
keep changing the internal apis, and makes me happier as they stop
violating my copyright by creating closed drivers in the kernel.


Today's problem is that too many chip suppliers' in-house software
people have neither the skills nor the schedule room nor the influence
to insist that drivers be written competently and maintainably,
whether or not they are maintained in the public view.  So chipmakers
turn to the BSP vendors, whose business model is built around being
the only people who can do incremental development on the code they
write.

I'm not at all hostile to BSP vendors or to chipmakers who wind up in
this position; that's the way most of the industry works nowadays.
But I do want to know when I'm dealing with that situation, because
the appropriate strategies for getting a product to market are
different when it costs the chip vendor real cash money each time they
commission a recompile to meet some customer's expectations.
Pretending that driver code doesn't need reviewing every few months as
the kernel's locking strategies, timer handling, internal APIs, etc.
evolve makes things worse.

Just like the only thing worse that a salesperson who's on commission
is a salesperson who isn't on commission, the only thing worse than a
closed device driver in kernelspace is a closed device driver in
userspace.

Cheers,
- Michael
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Martin Bligh

Greg KH wrote:

On Wed, Dec 13, 2006 at 12:38:05PM -0800, Michael K. Edwards wrote:

Seriously, though, please please pretty please do not allow a facility
for going through a simple interface to get accesses to irqs and
memory regions into the mainline kernel, with or without toy ISA
examples.


Why?  X does it today :)


Umm ... and you're trying to use the current X model for a positive
example of what we should be doing? that's ... interesting.


Embedded systems integrators have enough trouble with chip vendors who
think that exposing the device registers to userspace constitutes a
driver.


Yes, and because of this, they create binary only drivers today.  Lots
of them.  All over the place.  Doing crazy stupid crap in kernelspace.


So let's come out and ban binary modules, rather than pussyfooting
around, if that's what we actually want to do.

It comes down to a question of whether we have enough leverage to push
them into doing what we want, or not - are we prepared to call their
bluff?

The current half-assed solution of chipping slowly away at things by
making them EXPORT_SYMBOL_GPL one by one makes little sense - would
be better if we actually made an affirmative decision one way or the
other. And yes, I know which side of that argument you'd fall on ;-)


Again, X does this today, and does does lots of other applications.
This is a way to do it in a sane manner, to keep people who want to do
floating point out of the kernel, and to make some embedded people much
happier to use Linux, gets them from being so mad at Linux because we
keep changing the internal apis, and makes me happier as they stop
violating my copyright by creating closed drivers in the kernel.


I don't see how this really any different than letting them create
GPL shims to export data to binary modules (aside from all the legal
wanking over minutae details, which really isn't that interesting).

M.

-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


GPL only modules [was Re: [GIT PATCH] more Driver core patches for 2.6.19]

2006-12-13 Thread Greg KH
On Wed, Dec 13, 2006 at 01:47:21PM -0800, Andrew Morton wrote:
 On Wed, 13 Dec 2006 13:32:50 -0800
 Martin Bligh [EMAIL PROTECTED] wrote:
 
  So let's come out and ban binary modules, rather than pussyfooting
  around, if that's what we actually want to do.
 
 Give people 12 months warning (time to work out what they're going to do,
 talk with the legal dept, etc) then make the kernel load only GPL-tagged
 modules.
 
 I think I'd favour that.  It would aid those people who are trying to
 obtain device specs, and who are persuading organisations to GPL their 
 drivers.

Ok, I have no objection to that at all.  I'll whip up such a patch in a
bit to spit out kernel log messages whenever such a module is loaded so
that people have some warning.

thanks,

greg k-h
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Benjamin Herrenschmidt

 No. The point really is that it fundamentally _cannot_ work. Not in the 
 real world.
 
 It can only work in some alternate reality where you can always disable 
 interrupts per-device, and even in that alternate reality it would be 
 wrong to use that quoted interrupt handler: not only do you need to 
 disable the irq, you need to have an acknowledge phase too
 
 So you'd actually have to fix things _architecturally_, not just add some 
 code to the irq handler.

Oh, it works well enough for non shared iqs if you are really anal about
it, but I agree that it sucks and I don't see the point of having it in
linux. The flow has to be different for level vs. edge and it's really
ugly but it works. I've seen people doing it in embedded space. But
again, I do agree it sucks big time :-)

the edge flow is easy. the level one is:

 - IRQ happens
 - kernel handler masks it and queue a msg for userland
 - later on, userland gets the message, talks to the device,
   (MMAP'ed mmio, acks the interrupt on the device itself) and
   does an ioctl/syscall/write/whatever to tell kernel it's done
 - kernel unmasks it.

But yeah, I hate it too, so let's not waste time talking about how to
make it work :-)

Ben.


-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Michael K. Edwards

On 12/13/06, Andrew Morton [EMAIL PROTECTED] wrote:

On Wed, 13 Dec 2006 13:32:50 -0800
Martin Bligh [EMAIL PROTECTED] wrote:

 So let's come out and ban binary modules, rather than pussyfooting
 around, if that's what we actually want to do.

Give people 12 months warning (time to work out what they're going to do,
talk with the legal dept, etc) then make the kernel load only GPL-tagged
modules.


IIRC, Linus has deliberately and explicitly estopped himself from
claiming that loading a binary-only driver is a GPL violation.  Do you
really want to create an arbitrage opportunity for intermediaries who
undo technical measures that don't match Linus's declared policy or,
in many people's opinion, the law in at least some jurisdictions?
(I'm not going to go all amateur-lawyer on you, but the transcript of
oral argument at the Supreme Court level in Lotus v. Borland makes
really interesting reading no matter where you live or what your
stance is on GPL-and-linking.)


I think I'd favour that.  It would aid those people who are trying to
obtain device specs, and who are persuading organisations to GPL their drivers.


I don't think it would.  There is a strong argument that GPL drivers
in the mainline kernel are a good idea on technical and business
grounds.  Making a federal case out of it is a distraction at best.

There is a widespread delusion that closed driver code is an asset in
an accounting sense.  It costs a lot of money to create and even more
to maintain in any kind of usable condition.  As long as managers of
chip development projects get away with shifting some of the real cost
of creating yet another buggy undocumented one-off CPU interface onto
a software team in a different cost center, the pressure to label
the code base an intangible asset is overwhelming.  It usually takes a
reorg or two to diffuse the responsibility enough to call it a sunk
cost, at which point someone might be brave enough to argue that
opening it up would save money and/or sell more chips.

As things stand, there is a slippery slope (in a good way) from a
totally-closed, one-off, buggy vendor driver to a GPL'ed driver in the
mainline kernel.  Customers get impatient for drivers that work, the
vendor allows a customer or a mutually acceptable third party to work
on the code, the sky doesn't fall.  There are some situations where
the business strategy of keeping the driver closed is defensible on
both engineering and regulatory/barrier-to-entry grounds, but they're
fairly rare; and some fraction of vendors come around to that view in
time.


(Whereas the patch which is proposed in this thread hinders those people)


There we agree.

Cheers,
- Michael
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Thomas Gleixner
On Thu, 2006-12-14 at 09:14 +1100, Benjamin Herrenschmidt wrote:
 the edge flow is easy. the level one is:
 
  - IRQ happens
  - kernel handler masks it and queue a msg for userland
  - later on, userland gets the message, talks to the device,
(MMAP'ed mmio, acks the interrupt on the device itself) and
does an ioctl/syscall/write/whatever to tell kernel it's done
  - kernel unmasks it.

That's simply not true.

- IRQ happens
- kernel handler runs and masks the chip irq, which removes the IRQ
request
- user space message get queued or waiting reader woken
- kernel handler returns IRQ_HANDLED, which reenables the irq in the PIC
- user space handles the device
- user space reenables the device irq

No need for an ioctl. Neither for edge nor for level irqs.

tglx


-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Thomas Gleixner
On Thu, 2006-12-14 at 09:14 +1100, Benjamin Herrenschmidt wrote:
 Oh, it works well enough for non shared iqs if you are really anal about

It works well for shared irqs. Thats the whole reason why you need an in
kernel part.

tglx


-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Benjamin Herrenschmidt
On Wed, 2006-12-13 at 23:30 +0100, Thomas Gleixner wrote:
 On Thu, 2006-12-14 at 09:14 +1100, Benjamin Herrenschmidt wrote:
  the edge flow is easy. the level one is:
  
   - IRQ happens
   - kernel handler masks it and queue a msg for userland
   - later on, userland gets the message, talks to the device,
 (MMAP'ed mmio, acks the interrupt on the device itself) and
 does an ioctl/syscall/write/whatever to tell kernel it's done
   - kernel unmasks it.
 
 That's simply not true.
 
 - IRQ happens
 - kernel handler runs and masks the chip irq, which removes the IRQ
 request
 - user space message get queued or waiting reader woken
 - kernel handler returns IRQ_HANDLED, which reenables the irq in the PIC
 - user space handles the device
 - user space reenables the device irq
 
 No need for an ioctl. Neither for edge nor for level irqs.

Wait wait wait... your scenario implies that the kernel has knowledge of
the chip to mask the irq in the chip in the first place.

If that is the case, then you have a chip specific kernel driver,
yadada, the whole story is moot :-)

We were talking about the idea of having some generic reflector of
irqs to userspace without device specific knowledge.

Ben.

-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Benjamin Herrenschmidt
On Wed, 2006-12-13 at 23:40 +0100, Thomas Gleixner wrote:
 On Thu, 2006-12-14 at 09:14 +1100, Benjamin Herrenschmidt wrote:
  Oh, it works well enough for non shared iqs if you are really anal about
 
 It works well for shared irqs. Thats the whole reason why you need an in
 kernel part.

As soon as you have an in-kernel part that is chip specific, yes, of
course it works, because essentially, what you have done is a kernel
driver for your chip and the whole discussion is moot :-) And I agree,
that's the right thing to do btw.

Ben.


-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Kyle Moffett

On Dec 13, 2006, at 17:20:35, Michael K. Edwards wrote:

On 12/13/06, Andrew Morton [EMAIL PROTECTED] wrote:
On Wed, 13 Dec 2006 13:32:50 -0800 Martin Bligh  
[EMAIL PROTECTED] wrote:
So let's come out and ban binary modules, rather than  
pussyfooting around, if that's what we actually want to do.


Give people 12 months warning (time to work out what they're going  
to do, talk with the legal dept, etc) then make the kernel load  
only GPL-tagged modules.


IIRC, Linus has deliberately and explicitly estopped himself from  
claiming that loading a binary-only driver is a GPL violation.  Do  
you really want to create an arbitrage opportunity for  
intermediaries who undo technical measures that don't match Linus's  
declared policy or, in many people's opinion, the law in at least  
some jurisdictions? (I'm not going to go all amateur-lawyer on you,  
but the transcript of oral argument at the Supreme Court level in  
Lotus v. Borland makes really interesting reading no matter where  
you live or what your stance is on GPL-and-linking.)


Ok, so what Linus said is true for any code that _Linus_ wrote up  
until this point.  It is perfectly fine for the iptables developers  
to say I think linking with my GPL IPTables code for makes your code  
a derivative work of mine, although I don't really have the legal  
knowledge to argue technical points either way.


Corporations change their mind on licensing all the time; though you  
can never revoke privileges you already granted on existing  
materials. As soon as you start creating new material (in the Linux  
case at a rate of multiple megs per month) you can set new licensing  
requirements on that new code as long as it's compatible with the  
requirements on the old code which it's linked against.


Cheers,
Kyle Moffett

-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Thomas Gleixner
On Thu, 2006-12-14 at 09:39 +1100, Benjamin Herrenschmidt wrote:
  No need for an ioctl. Neither for edge nor for level irqs.
 
 Wait wait wait... your scenario implies that the kernel has knowledge of
 the chip to mask the irq in the chip in the first place.
 
 If that is the case, then you have a chip specific kernel driver,
 yadada, the whole story is moot :-)
 
 We were talking about the idea of having some generic reflector of
 irqs to userspace without device specific knowledge.

Which simply is not possible, especially for shared irqs.

Can you please elaborate why this effort is moot, instead of throwing
the usual flamewar arguments around ?

The concept of UIO divides the problem in two spaces:

- kernel interface, which controls interrupts and mapping
- user space restricted interface

I don't see why the necessarity of a kernel stub driver is a killer
argument. The chip internals, which companies might want to protect are
certainly not in the interrupt registers.

Aside of that there are huge performance gains for certain application /
driver scenarios and I really don't see an advantage that people are
doing excactly the same thing in out of tree hackeries with a lot of
inconsistent user land interfaces.

tglx



-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Thomas Gleixner
On Thu, 2006-12-14 at 09:45 +1100, Benjamin Herrenschmidt wrote:
 On Wed, 2006-12-13 at 23:40 +0100, Thomas Gleixner wrote:
  On Thu, 2006-12-14 at 09:14 +1100, Benjamin Herrenschmidt wrote:
   Oh, it works well enough for non shared iqs if you are really anal about
  
  It works well for shared irqs. Thats the whole reason why you need an in
  kernel part.
 
 As soon as you have an in-kernel part that is chip specific, yes, of
 course it works, because essentially, what you have done is a kernel
 driver for your chip and the whole discussion is moot :-) And I agree,
 that's the right thing to do btw.

Still the framework has a benefit, as it removes the bunch of
incompatible out of tree attempts to achieve the same result.

tglx


-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Linus Torvalds


On Wed, 13 Dec 2006, Jan Engelhardt wrote:
 
 For the sharing case, some sort of softirq should be created. That is, when a
 hard interrupt is generated and the irq handler is executed, set a flag that 
 at
 some other point in time, the irq is delivered to userspace. Like you do with
 signals in userspace:

NO.

The whole point is, YOU CANNOT DO THIS.

You need to shut the device up. Otherwise it keeps screaming.

Please, people, don't confuse the issue any further. A hardware driver

ABSOLUTELY POSITIVELY HAS TO

have an in-kernel irq handler that knows how to turn the irq off.

End of story. No ifs, buts, maybes about it.

You cannot have a generic kernel driver that doesn't know about the 
low-level hardware (not with current hardware - you could make the shut 
the f*ck up a generic thing if you designed hardware properly, but that 
simply does not exist in general right now).

In short: a user-space device driver has exactly TWO choices:

 - don't use interrupts at all, just polling

 - have an in-kernel irq handler that at a minimum knows how to test 
   whether the irq came from that device and knows how to shut it up.

This means NOT A GENERIC DRIVER. That simply isn't an option on the 
table, no matter how much people would like it to be.

Linus
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Michael K. Edwards

On 12/13/06, Thomas Gleixner [EMAIL PROTECTED] wrote:

Aside of that there are huge performance gains for certain application /
driver scenarios and I really don't see an advantage that people are
doing excactly the same thing in out of tree hackeries with a lot of
inconsistent user land interfaces.


Greg's effort is noble but I think it is targeted at the wrong problem
and would actually make things worse.  Inconsistent interfaces from
one driver to another are the surface design flaw that obscures the
fundamental design flaw of exposing hardware to userland: abdication
of the driver writer's responsibility to choose and justify which
things belong in the driver and which belong in a hardware-agnostic
driver framework or a userspace library instead.

When you are talking about unique, one-off hardware, it doesn't really
matter whether the shim for a closed, out-of-tree, userspace driver
fits into a framework or not.  Who cares whether they use the
preferred MMIO reservation paths or just throw ioctl(POKE_ME_HARDER)
or mmap(/dev/mem) at the problem?  But I don't want to see ALSA or
iwconfig or i2c-core or any of the other competently designed and
implemented driver frameworks mangled into unusability by attempts to
facilitate this design pattern.

Truth in advertising is an advantage even if it doesn't change the
underlying reality.  I can (and do) tell chip vendors, that's not a
driver, that's a shim for some other customer's pre-existing eCos
task, and justify the cost of writing an actual driver to the client.
I may or may not succeed in arguing that the new driver should be
designed to an existing API when that means rethinking the userspace
app, or that it should be implemented against a current kernel and
offered promptly up to the appropriate Linus lieutenant.  But at least
the project isn't crippled by confusion about whether or not the
existing blob constitutes a driver.

Cheers,
- Michael
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Greg KH
On Wed, Dec 13, 2006 at 12:58:24PM -0800, Linus Torvalds wrote:
 I'm really not convinced about the user-mode thing unless somebody can 
 show me a good reason for it. Not just some wouldn't it be nice kind of 
 thing. A real, honest-to-goodness reason that we actually _want_ to see 
 used.
 
 No features just for features sake.

Ok, Thomas just showed at least one example of where this interface is a
big advantage over the all-in-kernel model.  I'll work with him and try
to dig up other real examples before submitting this code again.

In the mean time, I'll leave it in my tree and it will get some more
exposure in the -mm releases.

 So please push the tree without this userspace IO driver at all.

Done.

Please pull from:
master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6.git/

It contains the changes listed below.

thanks,

greg k-h


 drivers/base/class.c|2 ++
 drivers/base/platform.c |4 ++--
 fs/debugfs/inode.c  |   39 ++-
 include/linux/platform_device.h |2 +-
 kernel/module.c |   25 +
 kernel/power/Kconfig|9 +
 6 files changed, 65 insertions(+), 16 deletions(-)

---

Akinobu Mita (1):
  driver core: delete virtual directory on class_unregister()

Andrew Morton (1):
  Driver core: platform_driver_probe() can save codespace: save codespace

David Brownell (1):
  Driver core: deprecate PM_LEGACY, default it to N

Kay Sievers (1):
  Driver core: show initstate of module

Mathieu Desnoyers (5):
  DebugFS : inotify create/mkdir support
  DebugFS : coding style fixes
  DebugFS : file/directory creation error handling
  DebugFS : more file/directory creation error handling
  DebugFS : file/directory removal fix

Scott Wood (1):
  Driver core: Make platform_device_add_data accept a const pointer

-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Alan
 I don't see why the necessarity of a kernel stub driver is a killer
 argument. The chip internals, which companies might want to protect are
 certainly not in the interrupt registers.

So they can go off and write themselves a driver. Without putting junk in
the kernel just in case, and if the driver and the user space code
using it are closely interdependant I'd suggest they look up the *legal*
definition of derivative work.

-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Alan
On Wed, 13 Dec 2006 23:30:55 +0100
Thomas Gleixner [EMAIL PROTECTED] wrote:

 - IRQ happens
 - kernel handler runs and masks the chip irq, which removes the IRQ
 request

IRQ is shared with the disk driver, box dead. Plus if this is like the
uio crap in -mm its full of security holes.
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Alan
 IIRC, Linus has deliberately and explicitly estopped himself from
 claiming that loading a binary-only driver is a GPL violation.  Do you

He only owns a small amount of the code. Furthermore he imported third
party GPL code using the license as sole permission. So he may have dug a
personal hole but many of the rest of us have been repeatedly saying
whenever he said that - that we do not agree. The FSF has always said
binary modules are wrong and there is FSF code imported into the kernel
by Linus on license only grounds.

Whether it is a good idea is a different question.

Alan.
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Greg KH
On Wed, Dec 13, 2006 at 11:56:01PM +, Alan wrote:
 On Wed, 13 Dec 2006 23:30:55 +0100
 Thomas Gleixner [EMAIL PROTECTED] wrote:
 
  - IRQ happens
  - kernel handler runs and masks the chip irq, which removes the IRQ
  request
 
 IRQ is shared with the disk driver, box dead. Plus if this is like the
 uio crap in -mm its full of security holes.

All of those security holes should now be taken care of, as all of the
nasty memory stuff has been either cleaned up or ripped out.

Please take a look at the most recent stuff (thomas just mentioned to me
on irc that he has a few more minor fixes for it) and let me know if you
still see any problems.

thanks,

greg k-h
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: GPL only modules [was Re: [GIT PATCH] more Driver core patches for 2.6.19]

2006-12-13 Thread Greg KH
On Wed, Dec 13, 2006 at 02:09:11PM -0800, Greg KH wrote:
 On Wed, Dec 13, 2006 at 01:47:21PM -0800, Andrew Morton wrote:
  On Wed, 13 Dec 2006 13:32:50 -0800
  Martin Bligh [EMAIL PROTECTED] wrote:
  
   So let's come out and ban binary modules, rather than pussyfooting
   around, if that's what we actually want to do.
  
  Give people 12 months warning (time to work out what they're going to do,
  talk with the legal dept, etc) then make the kernel load only GPL-tagged
  modules.
  
  I think I'd favour that.  It would aid those people who are trying to
  obtain device specs, and who are persuading organisations to GPL their 
  drivers.
 
 Ok, I have no objection to that at all.  I'll whip up such a patch in a
 bit to spit out kernel log messages whenever such a module is loaded so
 that people have some warning.

Here you go.  The wording for the feature-removal-schedule.txt file
could probably be cleaned up.  Any suggestions would be welcome.

thanks,

greg k-h

---
From: Greg Kroah-Hartmna [EMAIL PROTECTED]
Subject: Notify non-GPL module loading will be going away in January 2008

Numerous kernel developers feel that loading non-GPL drivers into the
kernel violates the license of the kernel and their copyright.  Because
of this, a one year notice for everyone to address any non-GPL
compatible modules has been set.

Signed-off-by: Greg Kroah-Hartman [EMAIL PROTECTED]

---
 Documentation/feature-removal-schedule.txt |9 +
 kernel/module.c|6 +-
 2 files changed, 14 insertions(+), 1 deletion(-)

--- gregkh-2.6.orig/Documentation/feature-removal-schedule.txt
+++ gregkh-2.6/Documentation/feature-removal-schedule.txt
@@ -281,3 +281,12 @@ Why:   Speedstep-centrino driver with ACPI
 Who:   Venkatesh Pallipadi [EMAIL PROTECTED]
 
 ---
+
+What:  non GPL licensed modules will able to be loaded successfully.
+When:  January 2008
+Why:   Numerous kernel developers feel that loading non-GPL drivers into the
+   kernel violates the license of the kernel and their copyright.
+
+Who:   Greg Kroah-Hartman [EMAIL PROTECTED] or [EMAIL PROTECTED]
+
+---
--- gregkh-2.6.orig/kernel/module.c
+++ gregkh-2.6/kernel/module.c
@@ -1393,9 +1393,13 @@ static void set_license(struct module *m
license = unspecified;
 
if (!license_is_gpl_compatible(license)) {
-   if (!(tainted  TAINT_PROPRIETARY_MODULE))
+   if (!(tainted  TAINT_PROPRIETARY_MODULE)) {
printk(KERN_WARNING %s: module license '%s' taints 
kernel.\n, mod-name, license);
+   printk(KERN_WARNING %s: This module will not be able 
+   to be loaded after January 1, 2008 due to its 
+   license.\n, mod-name);
+   }
add_taint_module(mod, TAINT_PROPRIETARY_MODULE);
}
 }
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: GPL only modules [was Re: [GIT PATCH] more Driver core patches for 2.6.19]

2006-12-13 Thread Greg KH
On Wed, Dec 13, 2006 at 05:43:29PM -0700, Jonathan Corbet wrote:
 Greg's patch:
 
  +   printk(KERN_WARNING %s: This module will not be able 
  +   to be loaded after January 1, 2008 due to its 
  +   license.\n, mod-name);
 
 If you're going to go ahead with this, shouldn't the message say that
 the module will not be loadable into *kernels released* after January 1,
 2008?  I bet a lot of people would read the above to say that their
 system will just drop dead of a New Year's hangover, and they'll freak.
 I wouldn't want to be the one getting all the email at that point...

Heh, good point.

An updated version is below.

Oh, and for those who have asked me how we would enforce this after this
date if this decision is made, I'd like to go on record that I will be
glad to take whatever legal means necessary to stop people from
violating this.

Someone also mentioned that we could just put a nice poem into the
kernel module image in order to be able to enforce our copyright license
in any court of law.

Full bellies of fish
Penguins sleep under the moon
Dream of wings that fly

thanks,

greg k-h

--

From: Greg Kroah-Hartmna [EMAIL PROTECTED]
Subject: Notify non-GPL module loading will be going away in January 2008

Numerous kernel developers feel that loading non-GPL drivers into the
kernel violates the license of the kernel and their copyright.  Because
of this, a one year notice for everyone to address any non-GPL
compatible modules has been set.

Signed-off-by: Greg Kroah-Hartman [EMAIL PROTECTED]

---
 Documentation/feature-removal-schedule.txt |9 +
 kernel/module.c|7 ++-
 2 files changed, 15 insertions(+), 1 deletion(-)

--- gregkh-2.6.orig/Documentation/feature-removal-schedule.txt
+++ gregkh-2.6/Documentation/feature-removal-schedule.txt
@@ -281,3 +281,12 @@ Why:   Speedstep-centrino driver with ACPI
 Who:   Venkatesh Pallipadi [EMAIL PROTECTED]
 
 ---
+
+What:  non GPL licensed modules will able to be loaded successfully.
+When:  January 2008
+Why:   Numerous kernel developers feel that loading non-GPL drivers into the
+   kernel violates the license of the kernel and their copyright.
+
+Who:   Greg Kroah-Hartman [EMAIL PROTECTED] [EMAIL PROTECTED]
+
+---
--- gregkh-2.6.orig/kernel/module.c
+++ gregkh-2.6/kernel/module.c
@@ -1393,9 +1393,14 @@ static void set_license(struct module *m
license = unspecified;
 
if (!license_is_gpl_compatible(license)) {
-   if (!(tainted  TAINT_PROPRIETARY_MODULE))
+   if (!(tainted  TAINT_PROPRIETARY_MODULE)) {
printk(KERN_WARNING %s: module license '%s' taints 
kernel.\n, mod-name, license);
+   printk(KERN_WARNING %s: This module will not be able 
+   to be loaded in any kernel released after 
+   January 1, 2008 due to its license.\n,
+   mod-name);
+   }
add_taint_module(mod, TAINT_PROPRIETARY_MODULE);
}
 }
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: GPL only modules [was Re: [GIT PATCH] more Driver core patches for 2.6.19]

2006-12-13 Thread Linus Torvalds


On Wed, 13 Dec 2006, Greg KH wrote:
 
   Full bellies of fish
   Penguins sleep under the moon
   Dream of wings that fly

Snif. That touched me deep inside.

Linus

PS. Or maybe it was the curry I ate yesterday. 
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: GPL only modules [was Re: [GIT PATCH] more Driver core patches for 2.6.19]

2006-12-13 Thread Michael K. Edwards

fish for birds alone?
no, teach suits how to leave more
fish to go around

Cheers,
- Michael
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: GPL only modules [was Re: [GIT PATCH] more Driver core patches for 2.6.19]

2006-12-13 Thread Jonathan Corbet
Greg's patch:

 + printk(KERN_WARNING %s: This module will not be able 
 + to be loaded after January 1, 2008 due to its 
 + license.\n, mod-name);

If you're going to go ahead with this, shouldn't the message say that
the module will not be loadable into *kernels released* after January 1,
2008?  I bet a lot of people would read the above to say that their
system will just drop dead of a New Year's hangover, and they'll freak.
I wouldn't want to be the one getting all the email at that point...

jon

-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: GPL only modules [was Re: [GIT PATCH] more Driver core patches for 2.6.19]

2006-12-13 Thread Greg KH
On Thu, Dec 14, 2006 at 02:30:26AM +0100, Grzegorz Kulewski wrote:
 Hi,
 
 I think that...
 
 On Wed, 13 Dec 2006, Greg KH wrote:
 From: Greg Kroah-Hartmna [EMAIL PROTECTED]
 
 ... (most probably) there...
 
 Subject: Notify non-GPL module loading will be going away in January 2008
 
 Numerous kernel developers feel that loading non-GPL drivers into the
 kernel violates the license of the kernel and their copyright.  Because
 of this, a one year notice for everyone to address any non-GPL
 compatible modules has been set.
 
 Signed-off-by: Greg Kroah-Hartman [EMAIL PROTECTED]
 
 ... or (less probably) there...
 
 is a typo in your name. :-)

Heh, thanks.  I've also fixed up the wording in the
feature-removal-schedule.txt file to say:
What:  non-GPL-licensed modules will no longer be loaded.

The wording I had before was not very easy to understand.

 PS. Are you _really_ sure you want this change accepted into mainline 
 kernel?

Yes, I do.

thanks,

greg k-h
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: GPL only modules [was Re: [GIT PATCH] more Driver core patches for 2.6.19]

2006-12-13 Thread Grzegorz Kulewski

Hi,

I think that...

On Wed, 13 Dec 2006, Greg KH wrote:

From: Greg Kroah-Hartmna [EMAIL PROTECTED]


... (most probably) there...


Subject: Notify non-GPL module loading will be going away in January 2008

Numerous kernel developers feel that loading non-GPL drivers into the
kernel violates the license of the kernel and their copyright.  Because
of this, a one year notice for everyone to address any non-GPL
compatible modules has been set.

Signed-off-by: Greg Kroah-Hartman [EMAIL PROTECTED]


... or (less probably) there...

is a typo in your name. :-)


Thanks,

Grzegorz Kulewski


PS. Are you _really_ sure you want this change accepted into mainline 
kernel?


-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [GIT PATCH] more Driver core patches for 2.6.19

2006-12-13 Thread Al Viro
On Wed, Dec 13, 2006 at 11:55:00PM +, Alan wrote:
  IIRC, Linus has deliberately and explicitly estopped himself from
  claiming that loading a binary-only driver is a GPL violation.  Do you
 
 He only owns a small amount of the code. Furthermore he imported third
 party GPL code using the license as sole permission. So he may have dug a
 personal hole but many of the rest of us have been repeatedly saying
 whenever he said that - that we do not agree. The FSF has always said
 binary modules are wrong and there is FSF code imported into the kernel
 by Linus on license only grounds.
 
 Whether it is a good idea is a different question.

Wait a bloody minute - the only FSF code in the kernel I know of is from
libgcc, which does allow linking to non-GPL code.  Is there anything else?
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: GPL only modules [was Re: [GIT PATCH] more Driver core patches for 2.6.19]

2006-12-13 Thread Linus Torvalds


On Wed, 13 Dec 2006, Greg KH wrote:
 
 Numerous kernel developers feel that loading non-GPL drivers into the
 kernel violates the license of the kernel and their copyright.  Because
 of this, a one year notice for everyone to address any non-GPL
 compatible modules has been set.

Btw, I really think this is shortsighted.

It will only result in _exactly_ the crap we were just trying to avoid, 
namely stupid shell game drivers that don't actually help anything at 
all, and move code into user space instead.

What was the point again?

Was the point to alienate people by showing how we're less about the 
technology than about licenses?

Was the point to show that we think we can extend our reach past derived 
work boundaries by just saying so? 

The silly thing is, the people who tend to push most for this are the 
exact SAME people who say that the RIAA etc should not be able to tell 
people what to do with the music copyrights that they own, and that the 
DMCA is bad because it puts technical limits over the rights expressly 
granted by copyright law.

Doesn't anybody else see that as being hypocritical?

So it's ok when we do it, but bad when other people do it? Somehow I'm not 
surprised, but I still think it's sad how you guys are showing a marked 
two-facedness about this.

The fact is, the reason I don't think we should force the issue is very 
simple: copyright law is simply _better_off_ when you honor the admittedly 
gray issue of derived work. It's gray. It's not black-and-white. But 
being gray is _good_. Putting artificial black-and-white technical 
counter-measures is actually bad. It's bad when the RIAA does it, it's bad 
when anybody else does it.

If a module arguably isn't a derived work, we simply shouldn't try to say 
that its authors have to conform to our worldview.

We should make decisions on TECHNICAL MERIT. And this one is clearly being 
pushed on anything but.

I happen to believe that there shouldn't be technical measures that keep 
me from watching my DVD or listening to my music on whatever device I damn 
well please. Fair use, man. But it should go the other way too: we should 
not try to assert _our_ copyright rules on other peoples code that wasn't 
derived from ours, or assert _our_ technical measures that keep people 
from combining things their way.

If people take our code, they'd better behave according to our rules. But 
we shouldn't have to behave according to the RIAA rules just because we 
_listen_ to their music. Similarly, nobody should be forced to behave 
according to our rules just because they _use_ our system. 

There's a big difference between copy and use. It's exatcly the same 
issue whether it's music or code. You can't re-distribute other peoples 
music (becuase it's _their_ copyright), but they shouldn't put limits on 
how you personally _use_ it (because it's _your_ life).

Same goes for code. Copyright is about _distribution_, not about use. We 
shouldn't limit how people use the code.

Oh, well. I realize nobody is likely going to listen to me, and everybody 
has their opinion set in stone. 

That said, I'm going to suggest that you people talk to your COMPANY 
LAWYERS on this, and I'm personally not going to merge that particular 
code unless you can convince the people you work for to merge it first.

In other words, you guys know my stance. I'll not fight the combined 
opinion of other kernel developers, but I sure as hell won't be the first 
to merge this, and I sure as hell won't have _my_ tree be the one that 
causes this to happen.

So go get it merged in the Ubuntu, (Open)SuSE and RHEL and Fedora trees 
first. This is not something where we use my tree as a way to get it to 
other trees. This is something where the push had better come from the 
other direction.

Because I think it's stupid. So use somebody else than me to push your 
political agendas, please.

Linus
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: GPL only modules [was Re: [GIT PATCH] more Driver core patches for 2.6.19]

2006-12-13 Thread Bill Nottingham

Greg KH ([EMAIL PROTECTED]) said: 
 An updated version is below.

If you're adding this, you should probably schedule EXPORT_SYMBOL_GPL
for removal at the same time, as this essentially renders that irrelevant.

That being said...

First, this is adding the measure at module load time. Any copyright
infringment happens on distribution; module load isn't (necessarily)
that; if I write random code and load it, without ever sending it
to anyone, I'm not violating the license, and this would prevent that.
So it seems somewhat misplaced.

Secondly...

 Oh, and for those who have asked me how we would enforce this after this
 date if this decision is made, I'd like to go on record that I will be
 glad to take whatever legal means necessary to stop people from
 violating this.

There's nothing stopping you undertaking these means now. Addition of
this measure doesn't change the copyright status of any code - what was
a violation before would still be a violation. Copyright's not something
like trademark, where it's sue-or-lose - there's no requirement for
constant action, and there's no requirement for enforcement measures.
If I reproduce and start selling copies of the White album, it doesn't
matter that there wasn't a mechanism on the CD that prevented me doing
that - it's still a copyright violation.

Hence, the only purpose of a clause like this legally would seem to be
to *intentionally* go after people using the DMCA. Which seems... tacky.

Of course, I don't have significant code of note in the kernel, so I can't
really prevent you from doing this if you want...

Bill
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: GPL only modules [was Re: [GIT PATCH] more Driver core patches for 2.6.19]

2006-12-13 Thread Martin J. Bligh

Linus Torvalds wrote:


On Wed, 13 Dec 2006, Greg KH wrote:

Numerous kernel developers feel that loading non-GPL drivers into the
kernel violates the license of the kernel and their copyright.  Because
of this, a one year notice for everyone to address any non-GPL
compatible modules has been set.


Btw, I really think this is shortsighted.

It will only result in _exactly_ the crap we were just trying to avoid, 
namely stupid shell game drivers that don't actually help anything at 
all, and move code into user space instead.


I don't think pushing the drivers into userspace is a good idea at all,
that wasn't what I was getting at. Pushing the problem into a different
space doesn't fix it. IMHO, we're not a microkernel, and drivers for
hardware belong in the kernel.

Whether we allow binary kernel modules or not, I don't think we should
allow an API for userspace drivers - obviously that's not my call, it's
yours, but at least I don't want my opinion / intent misinterpreted.

 What was the point again?

 Was the point to alienate people by showing how we're less about the
 technology than about licenses?

The point of banning binary drivers would be to leverage hardware
companies into either releasing open source drivers, or the specs for
someone else to write them. Whether we have that much leverage is
debatable ... I suspect we do in some cases and not in others. It'll
cause some pain, as well as some gain, but I think we'd live through
it pretty well, personally.

The details of the legal minutiae are, I feel, less interesting than
what goal we want to acheive. If we decided to get rid of binary
drivers, we could likely find a way to achieve that. Is it a worthwhile
goal?

I've done both Linux support, where binary drivers are involved, before,
as well as supporting Sequent's Dynix/PTX in the face of a similar
situation with CA Unicenter. It makes life extremely difficult, if not
impossible for a support organisation, for fairly obvious and well known
reasons. When there are two binary drivers from different vendors in
there, any semblence of support becomes farcical.

The Ubuntu feisty fawn mess was a dangerous warning bell of where we're
going. If we don't stand up at some point, and ban binary drivers, we
will, I fear, end up with an unsustainable ecosystem for Linux when
binary drivers become pervasive. I don't want to see Linux destroyed
like that.

I don't think the motive behind what we decide to do should be decided
by legal stuff, though I'm sure we'd have to wade through that to
implement it. It's not about that ... it's about what kind of ecosystem
we want to create, and whether that can be successful or not. Indeed,
there are good arguments both for and against binary drivers on that
basis.

But please can we have the pragmatic argument about what we want to
achieve, and why ... rather than the legal / religious arguments about
licenses? The law is a tool, not an end in itself.

If you don't feel it's legitimate to leverage that tool to achieve a
pragmatic end, fair enough. But please don't assume that the motivation
was legal / religious, at least not on my part.

Perhaps, in the end, we will decide we'd like to ban binary drivers,
but can't. Either for pragmatic reasons (e.g. we don't have enough
leverage to create the hardware support base), or for legal ones
(we don't think it's enforcable). But we seem to be muddled between
those different reasons right now, at least it seems that way to me.

I think allowing binary hardware drivers in userspace hurts our ability
to leverage companies to release hardware specs. The 'grey water' of
binary kernel drivers convinces a lot of them to release stuff, and
Greg and others have pushed that cause, all credit to them. In one way,
it does make the kernel easier to support, but I don't think it really
helps much to make a supportable *system*.

M.
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


RE: GPL only modules [was Re: [GIT PATCH] more Driver core patches for 2.6.19]

2006-12-13 Thread Hua Zhong
 I think allowing binary hardware drivers in userspace hurts 
 our ability to leverage companies to release hardware specs. 

If filesystems can be in user space, why can't drivers be in user space? On 
what *technical* ground?

-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: GPL only modules [was Re: [GIT PATCH] more Driver core patches for 2.6.19]

2006-12-13 Thread Nigel Cunningham
Hi.

Good arguments have already been put against it, so I'll just keep it
short and sweet (FWIW)

Nacked-by: Nigel Cunningham [EMAIL PROTECTED]

Regards,

Nigel

-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: GPL only modules [was Re: [GIT PATCH] more Driver core patches for 2.6.19]

2006-12-13 Thread Jeffrey V. Merkey


Well said, and I agree with ALL of your statements contained in this 
post. About damn time this was addressed.


Jeff

Linus Torvalds wrote:


On Wed, 13 Dec 2006, Greg KH wrote:
 


Numerous kernel developers feel that loading non-GPL drivers into the
kernel violates the license of the kernel and their copyright.  Because
of this, a one year notice for everyone to address any non-GPL
compatible modules has been set.
   



Btw, I really think this is shortsighted.

It will only result in _exactly_ the crap we were just trying to avoid, 
namely stupid shell game drivers that don't actually help anything at 
all, and move code into user space instead.


What was the point again?

Was the point to alienate people by showing how we're less about the 
technology than about licenses?


Was the point to show that we think we can extend our reach past derived 
work boundaries by just saying so? 

The silly thing is, the people who tend to push most for this are the 
exact SAME people who say that the RIAA etc should not be able to tell 
people what to do with the music copyrights that they own, and that the 
DMCA is bad because it puts technical limits over the rights expressly 
granted by copyright law.


Doesn't anybody else see that as being hypocritical?

So it's ok when we do it, but bad when other people do it? Somehow I'm not 
surprised, but I still think it's sad how you guys are showing a marked 
two-facedness about this.


The fact is, the reason I don't think we should force the issue is very 
simple: copyright law is simply _better_off_ when you honor the admittedly 
gray issue of derived work. It's gray. It's not black-and-white. But 
being gray is _good_. Putting artificial black-and-white technical 
counter-measures is actually bad. It's bad when the RIAA does it, it's bad 
when anybody else does it.


If a module arguably isn't a derived work, we simply shouldn't try to say 
that its authors have to conform to our worldview.


We should make decisions on TECHNICAL MERIT. And this one is clearly being 
pushed on anything but.


I happen to believe that there shouldn't be technical measures that keep 
me from watching my DVD or listening to my music on whatever device I damn 
well please. Fair use, man. But it should go the other way too: we should 
not try to assert _our_ copyright rules on other peoples code that wasn't 
derived from ours, or assert _our_ technical measures that keep people 
from combining things their way.


If people take our code, they'd better behave according to our rules. But 
we shouldn't have to behave according to the RIAA rules just because we 
_listen_ to their music. Similarly, nobody should be forced to behave 
according to our rules just because they _use_ our system. 

There's a big difference between copy and use. It's exatcly the same 
issue whether it's music or code. You can't re-distribute other peoples 
music (becuase it's _their_ copyright), but they shouldn't put limits on 
how you personally _use_ it (because it's _your_ life).


Same goes for code. Copyright is about _distribution_, not about use. We 
shouldn't limit how people use the code.


Oh, well. I realize nobody is likely going to listen to me, and everybody 
has their opinion set in stone. 

That said, I'm going to suggest that you people talk to your COMPANY 
LAWYERS on this, and I'm personally not going to merge that particular 
code unless you can convince the people you work for to merge it first.


In other words, you guys know my stance. I'll not fight the combined 
opinion of other kernel developers, but I sure as hell won't be the first 
to merge this, and I sure as hell won't have _my_ tree be the one that 
causes this to happen.


So go get it merged in the Ubuntu, (Open)SuSE and RHEL and Fedora trees 
first. This is not something where we use my tree as a way to get it to 
other trees. This is something where the push had better come from the 
other direction.


Because I think it's stupid. So use somebody else than me to push your 
political agendas, please.


Linus
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

 



-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


<    1   2   3   4   5