2001-11-25 03:25:04

by Alex Davis

[permalink] [raw]
Subject: change to fs/proc/inode.c breaks ALSA drivers

Hello

Somewhere between 2.4.15pre6 and 2.4.15 final,
fs/proc/inode.c was modified. The change causes all
the devices files that ALSA creates in
/proc/asound/dev to have a major and minor number of
zero. I'm sending a patch to revert the file back to
what it was in 2.4.15pre5.


--- linux-2.4.15test/fs/proc/inode.c Sat Nov 23
20:10:11 2001
+++ linux-2.4.15/fs/proc/inode.c Sat Nov 24 19:56:21
2001
@@ -160,12 +160,14 @@
inode->i_nlink = de->nlink;
if (de->owner)
__MOD_INC_USE_COUNT(de->owner);
- if (de->proc_iops)
- inode->i_op = de->proc_iops;
- if (de->proc_fops)
- inode->i_fop = de->proc_fops;
- else if
(S_ISBLK(de->mode)||S_ISCHR(de->mode)||S_ISFIFO(de->mode))
+ if
(S_ISBLK(de->mode)||S_ISCHR(de->mode)||S_ISFIFO(de->mode))

init_special_inode(inode,de->mode,kdev_t_to_nr(de->rdev));
+ else {
+ if (de->proc_iops)
+ inode->i_op = de->proc_iops;
+ if (de->proc_fops)
+ inode->i_fop = de->proc_fops;
+ }
}

out:


__________________________________________________
Do You Yahoo!?
Yahoo! GeoCities - quick and easy web site hosting, just $8.95/month.
http://geocities.yahoo.com/ps/info1


2001-11-25 08:55:01

by Mike Maravillo

[permalink] [raw]
Subject: Re: change to fs/proc/inode.c breaks ALSA drivers

On Sat, Nov 24, 2001 at 07:24:47PM -0800, Alex Davis wrote:
>
> Somewhere between 2.4.15pre6 and 2.4.15 final, fs/proc/inode.c
> was modified. The change causes all the devices files that ALSA
> creates in /proc/asound/dev to have a major and minor number of
> zero. I'm sending a patch to revert the file back to what it
> was in 2.4.15pre5.

This change present on alsa-driver cvs fixed the problem on mine,
at least.

diff -urN --exclude=CVS alsa-driver-0.5.12/kernel/info.c alsa-driver/kernel/info.c
--- alsa-driver-0.5.12/kernel/info.c Wed Jun 28 02:02:03 2000
+++ alsa-driver/kernel/info.c Wed Nov 21 23:28:35 2001
@@ -897,7 +897,9 @@
if (p) {
snd_info_device_entry_prepare(p, entry);
#ifdef LINUX_2_3
- p->proc_fops = &snd_fops;
+ /* we should not set this - at least * on 2.4.14 or later it causes
+ problems! */
+ /* p->proc_fops = &snd_fops; */
#else
p->ops = &snd_info_device_inode_operations;
#endif

--
.--. Michael J. Maravillo office://+63.2.894.3592/
( () ) Q Linux Solutions, Inc. mobile://+63.917.897.0919/
`--\\ A Philippine Open Source Solutions Co. http://www.q-linux.com/

2001-11-25 16:54:17

by Alex Davis

[permalink] [raw]
Subject: Re: change to fs/proc/inode.c breaks ALSA drivers

Thanks for the info Mike. But can anyone answer why
inode.c was changed in the first place??

--- Mike Maravillo <[email protected]> wrote:
> On Sat, Nov 24, 2001 at 07:24:47PM -0800, Alex Davis
> wrote:
> >
> > Somewhere between 2.4.15pre6 and 2.4.15 final,
> fs/proc/inode.c
> > was modified. The change causes all the devices
> files that ALSA
> > creates in /proc/asound/dev to have a major and
> minor number of
> > zero. I'm sending a patch to revert the file back
> to what it
> > was in 2.4.15pre5.
>
> This change present on alsa-driver cvs fixed the
> problem on mine,
> at least.
>
> diff -urN --exclude=CVS
> alsa-driver-0.5.12/kernel/info.c
> alsa-driver/kernel/info.c
> --- alsa-driver-0.5.12/kernel/info.c Wed Jun 28
> 02:02:03 2000
> +++ alsa-driver/kernel/info.c Wed Nov 21 23:28:35
> 2001
> @@ -897,7 +897,9 @@
> if (p) {
> snd_info_device_entry_prepare(p, entry);
> #ifdef LINUX_2_3
> - p->proc_fops = &snd_fops;
> + /* we should not set this - at least * on 2.4.14
> or later it causes
> + problems! */
> + /* p->proc_fops = &snd_fops; */
> #else
> p->ops = &snd_info_device_inode_operations;
> #endif
>
> --
> .--. Michael J. Maravillo
> office://+63.2.894.3592/
> ( () ) Q Linux Solutions, Inc.
> mobile://+63.917.897.0919/
> `--\\ A Philippine Open Source Solutions Co. http://www.q-linux.com/

__________________________________________________
Do You Yahoo!?
Yahoo! GeoCities - quick and easy web site hosting, just $8.95/month.
http://geocities.yahoo.com/ps/info1