Re: usb-related problem in 2.6.24-rc4

Gene Heskett <[email protected]>
Newsgroups gmane.linux.usb.devel
Organization Organization? Not detectable
Message-ID <[email protected]>
On Friday 07 December 2007, Alan Stern wrote:
>On Fri, 7 Dec 2007, Chris Clayton wrote:
>> Hi,
>>
>> I may have found a usb-related problem in 2.6.24-rc4. What I am seeing is
>> that although usbfs is mounted on /proc/bus/usb, the directory is empty.
>> In -rc3, the directory is populated. The result of this is that sane
>> doesn't find my usb-attached scanner with -rc4.
>>
>> My other usb-attached devices (mouse, keyboard, pen drive, printer) seem
>> to be working fine.
>>
>> config -rc4 and bootlogs from -rc3 and -rc4 are attached.
>>
>> I'm not subscribed, so please cc me in any reply
>
>See here:
>
>http://marc.info/?l=linux-kernel&m=119692995513842&w=2
>
>Alan Stern
>
Thanks Alan.  However the saved by ff patch was white space damaged
and I had to apply it by hand.  Building now for grins & giggles.

But it just as quickly exited with this stanza of errors:

fs/proc/generic.c: In function ‘proc_lookup’:
fs/proc/generic.c:416: error: ‘gt’ undeclared (first use in this function)
fs/proc/generic.c:416: error: (Each undeclared identifier is reported only once
fs/proc/generic.c:416: error: for each function it appears in.)
fs/proc/generic.c:416: error: implicit declaration of function ‘shadow_proc’
fs/proc/generic.c:434: error: ‘d_op’ undeclared (first use in this function)
fs/proc/generic.c:435: error: ‘amp’ undeclared (first use in this function)
fs/proc/generic.c:435: error: expected ‘:’ before ‘;’ token
fs/proc/generic.c:435: error: ‘d_parent’ undeclared (first use in this function)
fs/proc/generic.c:435: warning: label ‘proc_dentry_shadow_operations’ defined but not used
make[2]: *** [fs/proc/generic.o] Error 1
make[1]: *** [fs/proc] Error 2
make: *** [fs] Error 2
make: *** Waiting for unfinished jobs....

Did I damage the patch somehow?
Here is that files contents from line 377 to 442
----
static int proc_revalidate_dentry(struct dentry *dentry, struct nameidata *nd)
{
        d_drop(dentry);
        return 0;
}

static struct dentry_operations proc_dentry_shadow_operations =
{
        .d_delete       = proc_delete_dentry,
        .d_revalidate   = proc_revalidate_dentry,
};

static struct dentry_operations proc_dentry_operations =
{
       .d_delete       = proc_delete_dentry,
};
=========I took those 3 dots above back out, no difference, build still fails======
=========They may be an artifact of copy/paste editing from less to vim============
/*
 * Don't create negative dentries here, return -ENOENT by hand
 * instead.
 */
struct dentry *proc_lookup(struct inode * dir, struct dentry *dentry, struct nameidata *nd)
{
        struct inode *inode = NULL;
        struct proc_dir_entry * de;
        int use_shadow = 0;
        int error = -ENOENT;

        lock_kernel();
        spin_lock(&proc_subdir_lock);
        de = PDE(dir);
        if (de) {
                for (de = de->subdir; de ; de = de->next) {
                        if (de->namelen != dentry->d_name.len)
                                continue;
                        if (!memcmp(dentry->d_name.name, de->name, de->namelen)) {
                                unsigned int ino;

                                if (de->shadow_proc) {
                                        de = de-&gt;shadow_proc(current, de);
                                        use_shadow = 1;
                                }
                                ino = de->low_ino;
                                de_get(de);
                                spin_unlock(&proc_subdir_lock);
                               error = -EINVAL;
                                inode = proc_get_inode(dir->i_sb, ino, de);
                                spin_lock(&proc_subdir_lock);
                                break;
                        }
                }
        }
        spin_unlock(&proc_subdir_lock);
        unlock_kernel();

        if (inode) {
                dentry->d_op = &proc_dentry_operations;
                dentry-&gt;d_op = use_shadow ?
                        &amp;proc_dentry_shadow_operations : dentry-&gt;d_parent-&gt;d_op;
                d_add(dentry, inode);
                return NULL;
        }
        de_put(de);
        return ERR_PTR(error);
}
-----
this is after applying the patch by hand.

FWIW, that whole 'generic.c' file contains quite a bit of whitespace
damage.  I have a vim macro that is used by default here, shows that
stuff in bright orange :)

I'm assuming this will be fixed in -rc5 anyway?  I can wait.

-- 
Cheers, Gene
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
The things that interest people most are usually none of their business.

-------------------------------------------------------------------------
SF.Net email is sponsored by: 
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.