Bug 5519 - (net bonding) Driver Marks itself as not VLAN Capable
Summary: (net bonding) Driver Marks itself as not VLAN Capable
Status: CLOSED CODE_FIX
Alias: None
Product: Drivers
Classification: Unclassified
Component: Network (show other bugs)
Hardware: i386 Linux
: P2 normal
Assignee: Jeff Garzik
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-10-28 13:56 UTC by Steve Wormley
Modified: 2007-11-02 09:25 UTC (History)
1 user (show)

See Also:
Kernel Version: 2.6.14
Tree: Mainline
Regression: ---


Attachments
bond_main.patch (464 bytes, patch)
2005-12-16 03:27 UTC, Valery Kartel
Details | Diff

Description Steve Wormley 2005-10-28 13:56:19 UTC
Most recent kernel where this bug did not occur:2.6.13(last tested)
Distribution: SLES 9
Hardware Environment: Dual Opteron
Software Environment: n/a
Problem Description: VLAN driver cannot configure bonding device.

After ifenslave of a VLAN capable device to a bonding device, the bonding device
still marks itself as not VLAN capable.

This appears to be a problem with the bond_dev->features flags being cleared by
the VLAN Capabilities code which bond_compute_features then wipes out by using
bond->bond_features.

I added:
        bond->bond_features = bond_dev->features;
before
        bond_compute_features(bond);

in bond_main.c bond_enslave() to fix this issue for me.
Comment 1 Andrew Morton 2005-10-28 14:14:37 UTC

Begin forwarded message:

Date: Fri, 28 Oct 2005 14:00:08 -0700
From: bugme-daemon@kernel-bugs.osdl.org
To: bugme-new@lists.osdl.org
Subject: [Bugme-new] [Bug 5519] New: Bonding Driver Marks itself as not VLAN Capable


http://bugzilla.kernel.org/show_bug.cgi?id=5519

           Summary: Bonding Driver Marks itself as not VLAN Capable
    Kernel Version: 2.6.14
            Status: NEW
          Severity: normal
             Owner: jgarzik@pobox.com
         Submitter: steve@wormley.com


Most recent kernel where this bug did not occur:2.6.13(last tested)
Distribution: SLES 9
Hardware Environment: Dual Opteron
Software Environment: n/a
Problem Description: VLAN driver cannot configure bonding device.

After ifenslave of a VLAN capable device to a bonding device, the bonding device
still marks itself as not VLAN capable.

This appears to be a problem with the bond_dev->features flags being cleared by
the VLAN Capabilities code which bond_compute_features then wipes out by using
bond->bond_features.

I added:
        bond->bond_features = bond_dev->features;
before
        bond_compute_features(bond);

in bond_main.c bond_enslave() to fix this issue for me.

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.

Comment 2 Valery Kartel 2005-12-16 03:18:07 UTC
Bug in bond_compute_features(bond), I think. 
At function start the 'features' variable sets to 'bond->bond_features' value. 
[line 1617] int features = bond->bond_features; 
Then it compute something. 
But at function end this computed features are going to 'bond_dev->features' 
not to 'bond->bond_features'. 
[line 1636] bond_dev->features = features; 
 
I don't know where the right fix must be at the start or at the end of 
function.  
 
Comment 3 Valery Kartel 2005-12-16 03:27:12 UTC
Created attachment 6846 [details]
bond_main.patch

Note You need to log in before you can comment on or make changes to this bug.