On Fri, 15 Feb 2002, Duncan Sands wrote: > Actually, the problem is deeper: even if I compile everything as > modules, I still get "no such device" when trying to read from > /proc/asound entries. I will look into this further myself.
It's problem with recent 2.5 kernel. Try the attached patch. Jaroslav ----- Jaroslav Kysela <[EMAIL PROTECTED]> Linux Kernel Sound Maintainer ALSA Project http://www.alsa-project.org SuSE Linux http://www.suse.com
Index: info.c =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/core/info.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- info.c 14 Feb 2002 17:40:30 -0000 1.7 +++ info.c 15 Feb 2002 12:10:26 -0000 1.8 @@ -278,7 +278,7 @@ int mode, err; down(&info_mutex); - p = (struct proc_dir_entry *) inode->u.generic_ip; + p = PDE(inode); entry = p == NULL ? NULL : (snd_info_entry_t *)p->data; if (entry == NULL) { up(&info_mutex); @@ -541,7 +541,7 @@ static int snd_info_card_readlink(struct dentry *dentry, char *buffer, int buflen) { - char *s = ((struct proc_dir_entry *) dentry->d_inode->u.generic_ip)->data; + char *s = PDE(dentry->d_inode)->data; #ifndef LINUX_2_2 return vfs_readlink(dentry, buffer, buflen, s); #else @@ -562,7 +562,7 @@ static int snd_info_card_followlink(struct dentry *dentry, struct nameidata *nd) { - char *s = ((struct proc_dir_entry *) dentry->d_inode->u.generic_ip)->data; + char *s = PDE(dentry->d_inode)->data; return vfs_follow_link(nd, s); } #else @@ -570,7 +570,7 @@ struct dentry *base, unsigned int follow) { - char *s = ((struct proc_dir_entry *) dentry->d_inode->u.generic_ip)->data; + char *s = PDE(dentry->d_inode)->data; return lookup_dentry(s, base, follow); } #endif @@ -845,7 +845,7 @@ return; } MOD_INC_USE_COUNT; - de = (struct proc_dir_entry *) inode->u.generic_ip; + de = PDE(inode); if (de == NULL) return; entry = (snd_info_entry_t *) de->data;