* [PATCH v2] net: fix hw_features ethtool_ops->set_flags compatibility
From: Michał Mirosław @ 2011-04-21 23:19 UTC (permalink / raw)
To: netdev; +Cc: Ben Hutchings, Eric Dumazet, Vladislav Zolotarov,
Eilon Greenstein
In-Reply-To: <20110421231232.BF22613909@rere.qmqm.pl>
__ethtool_set_flags() was not taking into account features set but not
user-toggleable.
Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
---
net/core/ethtool.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/net/core/ethtool.c b/net/core/ethtool.c
index 13d79f5..ecef3d9 100644
--- a/net/core/ethtool.c
+++ b/net/core/ethtool.c
@@ -532,7 +532,7 @@ static int ethtool_set_one_feature(struct net_device *dev,
int __ethtool_set_flags(struct net_device *dev, u32 data)
{
- u32 changed;
+ u32 changed, forced;
if (data & ~flags_dup_features)
return -EINVAL;
@@ -546,7 +546,8 @@ int __ethtool_set_flags(struct net_device *dev, u32 data)
}
/* allow changing only bits set in hw_features */
- changed = (data ^ dev->wanted_features) & flags_dup_features;
+ forced = dev->features & ~dev->hw_features;
+ changed = (data ^ forced ^ dev->wanted_features) & flags_dup_features;
if (changed & ~dev->hw_features)
return (changed & dev->hw_features) ? -EINVAL : -EOPNOTSUPP;
--
1.7.2.5
^ permalink raw reply related
* [PATCH v3] net: fix hw_features ethtool_ops->set_flags compatibility
From: Michał Mirosław @ 2011-04-21 23:21 UTC (permalink / raw)
To: netdev; +Cc: Ben Hutchings, Eric Dumazet, Vladislav Zolotarov,
Eilon Greenstein
In-Reply-To: <20110421231232.BF22613909@rere.qmqm.pl>
__ethtool_set_flags() was not taking into account features set but not
user-toggleable.
Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
---
in v2 I forgot to 'stg refresh' before
net/core/ethtool.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/net/core/ethtool.c b/net/core/ethtool.c
index 13d79f5..ecef3d9 100644
--- a/net/core/ethtool.c
+++ b/net/core/ethtool.c
@@ -532,7 +532,7 @@ static int ethtool_set_one_feature(struct net_device *dev,
int __ethtool_set_flags(struct net_device *dev, u32 data)
{
- u32 changed;
+ u32 changed, forced;
if (data & ~flags_dup_features)
return -EINVAL;
@@ -546,7 +546,8 @@ int __ethtool_set_flags(struct net_device *dev, u32 data)
}
/* allow changing only bits set in hw_features */
- changed = (data ^ dev->wanted_features) & flags_dup_features;
+ forced = dev->features & ~dev->hw_features;
+ changed = (data ^ forced ^ dev->wanted_features) & flags_dup_features;
if (changed & ~dev->hw_features)
return (changed & dev->hw_features) ? -EINVAL : -EOPNOTSUPP;
--
1.7.2.5
^ permalink raw reply related
* Re: [PATCH v2 01/27] HFI: skeleton driver
From: Jim Dykman @ 2011-04-21 21:38 UTC (permalink / raw)
To: Ben Hutchings
Cc: netdev, Piyush Chaudhary, Fu-Chung Chang, William S. Cadden,
Wen C. Chen, Scot Sakolish, Jian Xiao, Carol L. Soto,
Sarah J. Sheppard
In-Reply-To: <1303129399.5282.1033.camel@localhost>
On 4/18/2011 8:23 AM, Ben Hutchings wrote:
> On Sun, 2011-04-17 at 23:21 -0400, dykmanj@linux.vnet.ibm.com wrote:
>> From: Jim Dykman <dykmanj@linux.vnet.ibm.com>
>>
>> Device driver Makefile & Kconfig plumbing plus simple mod_init and mod_exit
> [...]
>> --- /dev/null
>> +++ b/drivers/net/hfi/core/hfidd_init.c
> [...]
>> +#include <linux/version.h>
>
> Never include <linux/version.h> in an in-tree driver.
>
Ok
> [...]
>> +static int __init hfidd_mod_init(void)
>> +{
>> + int rc = 0;
>> +
>> + rc = hfidd_create_class();
>> + if (rc < 0) {
>> + printk(KERN_ERR "%s: hfidd_mod_init: hfidd_create_class failed"
>> + " rc=%d\n", HFIDD_DEV_NAME, rc);
>> + return -1;
>
> Should be 'return rc'.
>
Ok
> [...]
>> --- /dev/null
>> +++ b/include/linux/hfi/hfidd_client.h
> [...]
>> +#ifndef _HFIDD_CLIENT_H_
>> +#define _HFIDD_CLIENT_H_
>> +
>> +#define MAX_TORRENTS 1
>> +#define MAX_HFI_PER_TORRENT 2
>> +#define MAX_HFIS (MAX_TORRENTS * MAX_HFI_PER_TORRENT)
> [...]
>
> Are you sure you want to expose these values to userland? You can never
> change them later.
>
We really don't expect them to change, so we're comfortable with defines for them.
> Ben.
>
Thanks for the reviews Ben.
Jim
^ permalink raw reply
* Re: [PATCH v5] net: bnx2x: convert to hw_features
From: Michał Mirosław @ 2011-04-21 23:44 UTC (permalink / raw)
To: Ben Hutchings
Cc: Vladislav Zolotarov, Eric Dumazet, netdev@vger.kernel.org,
Eilon Greenstein
In-Reply-To: <1303426342.3464.184.camel@localhost>
On Thu, Apr 21, 2011 at 11:52:22PM +0100, Ben Hutchings wrote:
> On Fri, 2011-04-22 at 00:15 +0200, Michał Mirosław wrote:
> > On Thu, Apr 21, 2011 at 08:19:19PM +0100, Ben Hutchings wrote:
> > > /* Transfer changeable features to wanted_features and enable
> > > * software offloads (GSO and GRO).
> > > */
> > > dev->hw_features |= NETIF_F_SOFT_FEATURES;
> > > dev->features |= NETIF_F_SOFT_FEATURES;
> > > dev->wanted_features = dev->features & dev->hw_features;
> > >
> > > This doesn't work correctly for features that are always enabled, like
> > > NETIF_F_HW_VLAN_RX in bnx2x, which are set in dev->features but not in
> > > dev->hw_features.
> >
> > > The name 'hw_features' really wasn't a good choice - the obvious meaning
> > > and the meaning assumed by this code is 'hardware-supported features'
> > > and not 'hardware-supported features that can be toggled'. And since we
> > > add NETIF_F_SOFT_FEATURES, it really only means 'features that can be
> > > toggled'.
> >
> > I won't argue about hw_features name - I just couldn't find a better one.
> > Comment in include/linux/netdevice.h clearly explains the purpose of this
> > field.
> >
> > wanted_features is supposed to be limited by hw_features (so that it's always
> > true that (hw_features & wanted_features) == wanted_features). If you have
> > an idea how to make that more clear, I'd be happy to update descriptions.
>
> Then the computation of 'changed' in __ethtool_set_flags() is wrong:
>
> /* allow changing only bits set in hw_features */
> changed = (data ^ dev->wanted_features) & flags_dup_features;
> if (changed & ~dev->hw_features)
> return (changed & dev->hw_features) ? -EINVAL : -EOPNOTSUPP;
>
> You need to add something like:
>
> /* Features that are requested to be on, are already on, and cannot
> * be changed, have not changed.
> */
> changes &= ~(data & dev->features & ~dev->hw_features);
>
> It seems like there ought to be a way to simplify that, though!
I tried couple of variations, but your seems to be the best one. I'll send
it as a last try before I fall asleep.
Best Regards,
Michał Mirosław
^ permalink raw reply
* [PATCH v4] net: fix hw_features ethtool_ops->set_flags compatibility
From: Michał Mirosław @ 2011-04-21 23:59 UTC (permalink / raw)
To: netdev; +Cc: Ben Hutchings, Eric Dumazet, Vladislav Zolotarov,
Eilon Greenstein
In-Reply-To: <20110421231232.BF22613909@rere.qmqm.pl>
__ethtool_set_flags() was not taking into account features set but not
user-toggleable.
Since GFLAGS returns masked dev->features, EINVAL is returned when
passed flags differ to it, and not to wanted_features.
Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
---
This should be the simpler way Ben was talking about.
net/core/ethtool.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/net/core/ethtool.c b/net/core/ethtool.c
index 13d79f5..d8b1a8d 100644
--- a/net/core/ethtool.c
+++ b/net/core/ethtool.c
@@ -546,12 +546,12 @@ int __ethtool_set_flags(struct net_device *dev, u32 data)
}
/* allow changing only bits set in hw_features */
- changed = (data ^ dev->wanted_features) & flags_dup_features;
+ changed = (data ^ dev->features) & flags_dup_features;
if (changed & ~dev->hw_features)
return (changed & dev->hw_features) ? -EINVAL : -EOPNOTSUPP;
dev->wanted_features =
- (dev->wanted_features & ~changed) | data;
+ (dev->wanted_features & ~changed) | (data & dev->hw_features);
__netdev_update_features(dev);
--
1.7.2.5
^ permalink raw reply related
* Re: [PATCH v2 1/1] powerpc: Fix multicast problem in fs_enet driver
From: David Miller @ 2011-04-21 23:59 UTC (permalink / raw)
To: gizero
Cc: pantelis.antoniou, vbordug, scottwood, linuxppc-dev, netdev,
linux-kernel
In-Reply-To: <1303388481-17993-1-git-send-email-gizero@gmail.com>
From: Andrea Galbusera <gizero@gmail.com>
Date: Thu, 21 Apr 2011 14:21:21 +0200
> mac-fec.c was setting individual UDP address registers instead of multicast
> group address registers when joining a multicast group.
> This prevented from correctly receiving UDP multicast packets.
> According to datasheet, replaced hash_table_high and hash_table_low
> with grp_hash_table_high and grp_hash_table_low respectively.
> Also renamed hash_table_* with grp_hash_table_* in struct fec declaration
> for 8xx: these registers are used only for multicast there.
>
> Tested on a MPC5121 based board.
> Build tested also against mpc866_ads_defconfig.
>
> Signed-off-by: Andrea Galbusera <gizero@gmail.com>
Applied, thanks.
^ permalink raw reply
* Re: [PATCH net-next 0/9] tg3: Bugfixes and cleanups
From: David Miller @ 2011-04-22 0:06 UTC (permalink / raw)
To: mcarlson; +Cc: netdev
In-Reply-To: <1303322263-18991-1-git-send-email-mcarlson@broadcom.com>
From: "Matt Carlson" <mcarlson@broadcom.com>
Date: Wed, 20 Apr 2011 10:57:34 -0700
> This patchset adds a few low-priority bugfixes and adds accessors
> for the phy aux ctrl registers.
All applied to net-next-2.6, thank you.
^ permalink raw reply
* Re: [PATCH v3 08/27] HFI: DD request framework and first HFI DD request
From: David Miller @ 2011-04-22 0:12 UTC (permalink / raw)
To: dykmanj
Cc: netdev, piyushc, fcchang, wscadden, winstonc, sakolish, jian,
clsoto, sjsheppa
In-Reply-To: <1303421937-2325-9-git-send-email-dykmanj@linux.vnet.ibm.com>
From: dykmanj@linux.vnet.ibm.com
Date: Thu, 21 Apr 2011 17:38:38 -0400
> +#include <linux/vermagic.h>
I think this has been brought up by others, but please do not include
kernel version headers in your driver.
Not only should it be completely unnecessary upstream, it also makes
your driver get rebuilt every single make of the tree, which drivers
some of us crazy :-)
Thanks.
^ permalink raw reply
* RE: Strange igb bug, out-of-tree driver seems to work fine.
From: Wyborny, Carolyn @ 2011-04-22 0:16 UTC (permalink / raw)
To: Ben Greear, netdev
In-Reply-To: <4DB0A3FF.8080203@candelatech.com>
>-----Original Message-----
>From: netdev-owner@vger.kernel.org [mailto:netdev-owner@vger.kernel.org]
>On Behalf Of Ben Greear
>Sent: Thursday, April 21, 2011 2:39 PM
>To: netdev
>Subject: Strange igb bug, out-of-tree driver seems to work fine.
>
>We have a 4-port NIC using the igb driver in a couple of systems,
>and saw some strange issues (mostly rx CRC errors). We tried 2.6.34,
>2.6.36, and 2.6.38 based kernels and all showed issues. The NICs
>are from two different vendors, though both use the igb driver.
>
>We then tried 2.6.36.3 with the out-of-tree igb-2.4.13.tar.gz
>driver. And everything seems to run clean.
>
>My kernels are somewhat hacked and tainted, and this testing
>is using my tainting module, but since changing only the driver
>seems to fix things, it's _probably_ not my fault this time!
>
>I am running a small hack to make igb work better with VLANs
>in my 2.6.36 and .38 kernel, though not in the .34. Here is the .36
>diff:
>
>diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
>index 9b4e589..86aa89c 100644
>--- a/drivers/net/igb/igb_main.c
>+++ b/drivers/net/igb/igb_main.c
>@@ -2265,7 +2265,8 @@ static int __devinit igb_sw_init(struct
>igb_adapter *adapter)
> adapter->rx_itr_setting = IGB_DEFAULT_ITR;
> adapter->tx_itr_setting = IGB_DEFAULT_ITR;
>
>- adapter->max_frame_size = netdev->mtu + ETH_HLEN + ETH_FCS_LEN;
>+ adapter->max_frame_size = (netdev->mtu + ETH_HLEN + ETH_FCS_LEN
>+ + VLAN_HLEN);
> adapter->min_frame_size = ETH_ZLEN + ETH_FCS_LEN;
>
> #ifdef CONFIG_PCI_IOV
>@@ -4230,7 +4231,7 @@ static int igb_change_mtu(struct net_device
>*netdev, int new_mtu)
> {
> struct igb_adapter *adapter = netdev_priv(netdev);
> struct pci_dev *pdev = adapter->pdev;
>- int max_frame = new_mtu + ETH_HLEN + ETH_FCS_LEN;
>+ int max_frame = new_mtu + ETH_HLEN + ETH_FCS_LEN + VLAN_HLEN;
> u32 rx_buffer_len, i;
>
> if ((new_mtu < 68) || (max_frame > MAX_JUMBO_FRAME_SIZE)) {
>
>
>
>Verbose lspci output for this system is below.
>
>00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML
>and 945GT Express Memory Controller Hub (rev 03)
> Subsystem: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and
>945GT Express Memory Controller Hub
> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
><TAbort- <MAbort+ >SERR- <PERR- INTx-
> Latency: 0
> Capabilities: [e0] Vendor Specific Information: Len=09 <?>
> Kernel driver in use: agpgart-intel
>
>00:01.0 PCI bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML
>and 945GT Express PCI Express Root Port (rev 03) (prog-if 00 [Normal
>decode])
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR- FastB2B- DisINTx+
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
><TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0, Cache Line Size: 64 bytes
> Bus: primary=00, secondary=01, subordinate=06, sec-latency=0
> I/O behind bridge: 00008000-0000bfff
> Memory behind bridge: fd400000-fd8fffff
> Prefetchable memory behind bridge: 00000000fcf00000-
>00000000fd2fffff
> Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort-
><TAbort- <MAbort- <SERR- <PERR-
> BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
> PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> Capabilities: [88] Subsystem: Intel Corporation Device 0000
> Capabilities: [80] Power Management version 2
> Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-
>,D3hot+,D3cold+)
> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
> Address: fee0300c Data: 4159
> Capabilities: [a0] Express (v1) Root Port (Slot+), MSI 00
> DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s
><64ns, L1 <1us
> ExtTag- RBE- FLReset-
> DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
>Unsupported-
> RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
> MaxPayload 128 bytes, MaxReadReq 128 bytes
> DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr-
>TransPend-
> LnkCap: Port #2, Speed 2.5GT/s, Width x16, ASPM L0s L1,
>Latency L0 <1us, L1 <4us
> ClockPM- Surprise- LLActRep- BwNot-
> LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain-
>CommClk-
> ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> LnkSta: Speed 2.5GT/s, Width x4, TrErr- Train- SlotClk+
>DLActive- BWMgmt- ABWMgmt-
> SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug-
>Surprise-
> Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
> SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt-
>HPIrq- LinkChg-
> Control: AttnInd Off, PwrInd On, Power- Interlock-
> SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt-
>PresDet+ Interlock-
> Changed: MRL- PresDet+ LinkState-
> RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna-
>CRSVisible-
> RootCap: CRSVisible-
> RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> Capabilities: [100 v1] Virtual Channel
> Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
> Arb: Fixed+ WRR32- WRR64- WRR128-
> Ctrl: ArbSelect=Fixed
> Status: InProgress-
> VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
> Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
> Status: NegoPending- InProgress-
> Capabilities: [140 v1] Root Complex Link
> Desc: PortNumber=02 ComponentID=00 EltType=Config
> Link0: Desc: TargetPort=00 TargetComponent=00
>AssocRCRB- LinkType=MemMapped LinkValid+
> Addr: 00000000fed19000
> Kernel driver in use: pcieport
>
>00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS,
>943/940GML Express Integrated Graphics Controller (rev 03) (prog-if 00
>[VGA controller])
> Subsystem: Intel Corporation Mobile 945GM/GMS, 943/940GML Express
>Integrated Graphics Controller
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
><TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0
> Interrupt: pin A routed to IRQ 16
> Region 0: Memory at fdf00000 (32-bit, non-prefetchable)
>[size=512K]
> Region 1: I/O ports at ff00 [size=8]
> Region 2: Memory at b0000000 (32-bit, prefetchable) [size=256M]
> Region 3: Memory at fdf80000 (32-bit, non-prefetchable)
>[size=256K]
> Expansion ROM at <unassigned> [disabled]
> Capabilities: [90] MSI: Enable- Count=1/1 Maskable- 64bit-
> Address: 00000000 Data: 0000
> Capabilities: [d0] Power Management version 2
> Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-
>,D3hot-,D3cold-)
> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> Kernel driver in use: i915
> Kernel modules: intelfb, i915
>
>00:1c.0 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port
>1 (rev 02) (prog-if 00 [Normal decode])
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR- FastB2B- DisINTx+
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
><TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0, Cache Line Size: 64 bytes
> Bus: primary=00, secondary=07, subordinate=07, sec-latency=0
> I/O behind bridge: 00007000-00007fff
> Memory behind bridge: fce00000-fcefffff
> Prefetchable memory behind bridge: 00000000fcd00000-
>00000000fcdfffff
> Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort-
><TAbort- <MAbort- <SERR- <PERR-
> BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
> PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00
> DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s
>unlimited, L1 unlimited
> ExtTag- RBE- FLReset-
> DevCtl: Report errors: Correctable- Non-Fatal- Fatal+
>Unsupported-
> RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
> MaxPayload 128 bytes, MaxReadReq 128 bytes
> DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+
>TransPend-
> LnkCap: Port #1, Speed 2.5GT/s, Width x1, ASPM L0s L1,
>Latency L0 <256ns, L1 <4us
> ClockPM- Surprise- LLActRep+ BwNot-
> LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain-
>CommClk+
> ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+
>DLActive+ BWMgmt- ABWMgmt-
> SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+
>Surprise+
> Slot #16, PowerLimit 10.000W; Interlock- NoCompl-
> SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt-
>HPIrq- LinkChg-
> Control: AttnInd Unknown, PwrInd Unknown, Power-
>Interlock-
> SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt-
>PresDet+ Interlock-
> Changed: MRL- PresDet+ LinkState+
> RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal+ PMEIntEna-
>CRSVisible-
> RootCap: CRSVisible-
> RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
> Address: fee0300c Data: 4161
> Capabilities: [90] Subsystem: Intel Corporation N10/ICH 7 Family
>PCI Express Port 1
> Capabilities: [a0] Power Management version 2
> Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-
>,D3hot+,D3cold+)
> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> Capabilities: [100 v1] Virtual Channel
> Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
> Arb: Fixed+ WRR32- WRR64- WRR128-
> Ctrl: ArbSelect=Fixed
> Status: InProgress-
> VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
> Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
> Status: NegoPending- InProgress-
> VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
> Ctrl: Enable- ID=0 ArbSelect=Fixed TC/VC=00
> Status: NegoPending- InProgress-
> Capabilities: [180 v1] Root Complex Link
> Desc: PortNumber=01 ComponentID=02 EltType=Config
> Link0: Desc: TargetPort=00 TargetComponent=02
>AssocRCRB- LinkType=MemMapped LinkValid+
> Addr: 00000000fed1c001
> Kernel driver in use: pcieport
>
>00:1c.1 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port
>2 (rev 02) (prog-if 00 [Normal decode])
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR- FastB2B- DisINTx+
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
><TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0, Cache Line Size: 64 bytes
> Bus: primary=00, secondary=08, subordinate=08, sec-latency=0
> I/O behind bridge: 00006000-00006fff
> Memory behind bridge: fde00000-fdefffff
> Prefetchable memory behind bridge: 00000000fdd00000-
>00000000fddfffff
> Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort-
><TAbort- <MAbort- <SERR- <PERR-
> BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
> PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00
> DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s
>unlimited, L1 unlimited
> ExtTag- RBE- FLReset-
> DevCtl: Report errors: Correctable- Non-Fatal- Fatal+
>Unsupported-
> RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
> MaxPayload 128 bytes, MaxReadReq 128 bytes
> DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+
>TransPend-
> LnkCap: Port #2, Speed 2.5GT/s, Width x1, ASPM L0s L1,
>Latency L0 <256ns, L1 <4us
> ClockPM- Surprise- LLActRep+ BwNot-
> LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain-
>CommClk+
> ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+
>DLActive+ BWMgmt- ABWMgmt-
> SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+
>Surprise+
> Slot #17, PowerLimit 10.000W; Interlock- NoCompl-
> SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt-
>HPIrq- LinkChg-
> Control: AttnInd Unknown, PwrInd Unknown, Power-
>Interlock-
> SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt-
>PresDet+ Interlock-
> Changed: MRL- PresDet+ LinkState+
> RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal+ PMEIntEna-
>CRSVisible-
> RootCap: CRSVisible-
> RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
> Address: fee0300c Data: 4169
> Capabilities: [90] Subsystem: Intel Corporation N10/ICH 7 Family
>PCI Express Port 2
> Capabilities: [a0] Power Management version 2
> Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-
>,D3hot+,D3cold+)
> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> Capabilities: [100 v1] Virtual Channel
> Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
> Arb: Fixed+ WRR32- WRR64- WRR128-
> Ctrl: ArbSelect=Fixed
> Status: InProgress-
> VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
> Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
> Status: NegoPending- InProgress-
> VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
> Ctrl: Enable- ID=0 ArbSelect=Fixed TC/VC=00
> Status: NegoPending- InProgress-
> Capabilities: [180 v1] Root Complex Link
> Desc: PortNumber=02 ComponentID=02 EltType=Config
> Link0: Desc: TargetPort=00 TargetComponent=02
>AssocRCRB- LinkType=MemMapped LinkValid+
> Addr: 00000000fed1c001
> Kernel driver in use: pcieport
>
>00:1c.2 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port
>3 (rev 02) (prog-if 00 [Normal decode])
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR- FastB2B- DisINTx+
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
><TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0, Cache Line Size: 64 bytes
> Bus: primary=00, secondary=09, subordinate=09, sec-latency=0
> I/O behind bridge: 00005000-00005fff
> Memory behind bridge: fdc00000-fdcfffff
> Prefetchable memory behind bridge: 00000000fdb00000-
>00000000fdbfffff
> Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort-
><TAbort- <MAbort+ <SERR- <PERR-
> BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
> PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00
> DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s
>unlimited, L1 unlimited
> ExtTag- RBE- FLReset-
> DevCtl: Report errors: Correctable- Non-Fatal- Fatal+
>Unsupported-
> RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
> MaxPayload 128 bytes, MaxReadReq 128 bytes
> DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+
>TransPend-
> LnkCap: Port #3, Speed 2.5GT/s, Width x1, ASPM L0s L1,
>Latency L0 <1us, L1 <4us
> ClockPM- Surprise- LLActRep+ BwNot-
> LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain-
>CommClk-
> ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+
>DLActive- BWMgmt- ABWMgmt-
> SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+
>Surprise+
> Slot #18, PowerLimit 10.000W; Interlock- NoCompl-
> SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt-
>HPIrq- LinkChg-
> Control: AttnInd Unknown, PwrInd Unknown, Power-
>Interlock-
> SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt-
>PresDet- Interlock-
> Changed: MRL- PresDet- LinkState-
> RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal+ PMEIntEna-
>CRSVisible-
> RootCap: CRSVisible-
> RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
> Address: fee0300c Data: 4171
> Capabilities: [90] Subsystem: Intel Corporation N10/ICH 7 Family
>PCI Express Port 3
> Capabilities: [a0] Power Management version 2
> Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-
>,D3hot+,D3cold+)
> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> Capabilities: [100 v1] Virtual Channel
> Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
> Arb: Fixed+ WRR32- WRR64- WRR128-
> Ctrl: ArbSelect=Fixed
> Status: InProgress-
> VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
> Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
> Status: NegoPending- InProgress-
> VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
> Ctrl: Enable- ID=0 ArbSelect=Fixed TC/VC=00
> Status: NegoPending- InProgress-
> Capabilities: [180 v1] Root Complex Link
> Desc: PortNumber=03 ComponentID=02 EltType=Config
> Link0: Desc: TargetPort=00 TargetComponent=02
>AssocRCRB- LinkType=MemMapped LinkValid+
> Addr: 00000000fed1c001
> Kernel driver in use: pcieport
>
>00:1c.3 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port
>4 (rev 02) (prog-if 00 [Normal decode])
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR- FastB2B- DisINTx+
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
><TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0, Cache Line Size: 64 bytes
> Bus: primary=00, secondary=0a, subordinate=0a, sec-latency=0
> I/O behind bridge: 0000c000-0000cfff
> Memory behind bridge: fda00000-fdafffff
> Prefetchable memory behind bridge: 00000000fd900000-
>00000000fd9fffff
> Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort-
><TAbort- <MAbort- <SERR- <PERR-
> BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
> PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00
> DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s
>unlimited, L1 unlimited
> ExtTag- RBE- FLReset-
> DevCtl: Report errors: Correctable- Non-Fatal- Fatal+
>Unsupported-
> RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
> MaxPayload 128 bytes, MaxReadReq 128 bytes
> DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+
>TransPend-
> LnkCap: Port #4, Speed 2.5GT/s, Width x1, ASPM L0s L1,
>Latency L0 <1us, L1 <4us
> ClockPM- Surprise- LLActRep+ BwNot-
> LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain-
>CommClk-
> ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+
>DLActive- BWMgmt- ABWMgmt-
> SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+
>Surprise+
> Slot #19, PowerLimit 10.000W; Interlock- NoCompl-
> SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt-
>HPIrq- LinkChg-
> Control: AttnInd Unknown, PwrInd Unknown, Power-
>Interlock-
> SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt-
>PresDet- Interlock-
> Changed: MRL- PresDet- LinkState-
> RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal+ PMEIntEna-
>CRSVisible-
> RootCap: CRSVisible-
> RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
> Address: fee0300c Data: 4179
> Capabilities: [90] Subsystem: Intel Corporation N10/ICH 7 Family
>PCI Express Port 4
> Capabilities: [a0] Power Management version 2
> Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-
>,D3hot+,D3cold+)
> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> Capabilities: [100 v1] Virtual Channel
> Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
> Arb: Fixed+ WRR32- WRR64- WRR128-
> Ctrl: ArbSelect=Fixed
> Status: InProgress-
> VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
> Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
> Status: NegoPending- InProgress-
> VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
> Ctrl: Enable- ID=0 ArbSelect=Fixed TC/VC=00
> Status: NegoPending- InProgress-
> Capabilities: [180 v1] Root Complex Link
> Desc: PortNumber=04 ComponentID=02 EltType=Config
> Link0: Desc: TargetPort=00 TargetComponent=02
>AssocRCRB- LinkType=MemMapped LinkValid+
> Addr: 00000000fed1c001
> Kernel driver in use: pcieport
>
>00:1d.0 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI
>Controller #1 (rev 02) (prog-if 00 [UHCI])
> Subsystem: Intel Corporation N10/ICH 7 Family USB UHCI Controller
>#1
> Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
><TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0
> Interrupt: pin A routed to IRQ 23
> Region 4: I/O ports at fe00 [size=32]
> Kernel driver in use: uhci_hcd
>
>00:1d.1 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI
>Controller #2 (rev 02) (prog-if 00 [UHCI])
> Subsystem: Intel Corporation N10/ICH 7 Family USB UHCI Controller
>#2
> Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
><TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0
> Interrupt: pin B routed to IRQ 19
> Region 4: I/O ports at fd00 [size=32]
> Kernel driver in use: uhci_hcd
>
>00:1d.2 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI
>Controller #3 (rev 02) (prog-if 00 [UHCI])
> Subsystem: Intel Corporation N10/ICH 7 Family USB UHCI Controller
>#3
> Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
><TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0
> Interrupt: pin C routed to IRQ 18
> Region 4: I/O ports at fc00 [size=32]
> Kernel driver in use: uhci_hcd
>
>00:1d.3 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI
>Controller #4 (rev 02) (prog-if 00 [UHCI])
> Subsystem: Intel Corporation Device 27ca
> Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
><TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0
> Interrupt: pin D routed to IRQ 16
> Region 4: I/O ports at fb00 [size=32]
> Kernel driver in use: uhci_hcd
>
>00:1d.7 USB Controller: Intel Corporation N10/ICH 7 Family USB2 EHCI
>Controller (rev 02) (prog-if 20 [EHCI])
> Subsystem: Intel Corporation N10/ICH 7 Family USB2 EHCI Controller
> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
><TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0
> Interrupt: pin A routed to IRQ 23
> Region 0: Memory at fdfff000 (32-bit, non-prefetchable) [size=1K]
> Capabilities: [50] Power Management version 2
> Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-
>,D3hot+,D3cold+)
> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> Kernel driver in use: ehci_hcd
>
>00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
>(prog-if 01 [Subtractive decode])
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
><TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0
> Bus: primary=00, secondary=0b, subordinate=10, sec-latency=32
> I/O behind bridge: 0000d000-0000dfff
> Memory behind bridge: cc000000-d7ffffff
> Prefetchable memory behind bridge: 00000000fd300000-
>00000000fd3fffff
> Secondary status: 66MHz- FastB2B+ ParErr- DEVSEL=medium >TAbort-
><TAbort- <MAbort+ <SERR- <PERR-
> BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
> PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> Capabilities: [50] Subsystem: Intel Corporation 82801 Mobile PCI
>Bridge
>
>00:1e.2 Multimedia audio controller: Intel Corporation 82801G (ICH7
>Family) AC'97 Audio Controller (rev 02)
> Subsystem: Device 414c:4760
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
><TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0
> Interrupt: pin A routed to IRQ 17
> Region 0: I/O ports at f000 [size=256]
> Region 1: I/O ports at fa00 [size=64]
> Region 2: Memory at fdffe000 (32-bit, non-prefetchable) [size=512]
> Region 3: Memory at fdffd000 (32-bit, non-prefetchable) [size=256]
> Capabilities: [50] Power Management version 2
> Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-
>,D3hot+,D3cold+)
> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> Kernel driver in use: Intel ICH
> Kernel modules: snd-intel8x0
>
>00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface
>Bridge (rev 02)
> Subsystem: Intel Corporation 82801GBM (ICH7-M) LPC Interface
>Bridge
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR+ FastB2B- DisINTx-
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
><TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0
> Capabilities: [e0] Vendor Specific Information: Len=0c <?>
> Kernel modules: leds-ss4200, iTCO_wdt, intel-rng
>
>00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE
>Controller (rev 02) (prog-if 8a [Master SecP PriP])
> Subsystem: Intel Corporation 82801G (ICH7 Family) IDE Controller
> Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
><TAbort- <MAbort- >SERR- <PERR- INTx+
> Latency: 0
> Interrupt: pin A routed to IRQ 18
> Region 0: I/O ports at 01f0 [size=8]
> Region 1: I/O ports at 03f4 [size=1]
> Region 2: I/O ports at 0170 [size=8]
> Region 3: I/O ports at 0374 [size=1]
> Region 4: I/O ports at f800 [size=16]
> Kernel driver in use: ata_piix
>
>00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA
>IDE Controller (rev 02) (prog-if 8f [Master SecP SecO PriP PriO])
> Subsystem: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA IDE
>Controller
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
><TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0
> Interrupt: pin B routed to IRQ 19
> Region 0: I/O ports at f700 [size=8]
> Region 1: I/O ports at f600 [size=4]
> Region 2: I/O ports at f500 [size=8]
> Region 3: I/O ports at f400 [size=4]
> Region 4: I/O ports at f300 [size=16]
> Region 5: Memory at fdffc000 (32-bit, non-prefetchable) [size=1K]
> Capabilities: [70] Power Management version 2
> Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-
>,D3hot+,D3cold-)
> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> Kernel driver in use: ata_piix
>
>00:1f.3 SMBus: Intel Corporation N10/ICH 7 Family SMBus Controller (rev
>02)
> Subsystem: Intel Corporation N10/ICH 7 Family SMBus Controller
> Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
><TAbort- <MAbort- >SERR- <PERR- INTx-
> Interrupt: pin B routed to IRQ 19
> Region 4: I/O ports at 0500 [size=32]
> Kernel driver in use: i801_smbus
> Kernel modules: i2c-i801
>
>01:00.0 PCI bridge: PLX Technology, Inc. PEX 8616 16-lane, 4-Port PCI
>Express Gen 2 (5.0 GT/s) Switch (rev bb) (prog-if 00 [Normal decode])
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR- FastB2B- DisINTx+
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
><TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0, Cache Line Size: 64 bytes
> Region 0: Memory at fd8e0000 (32-bit, non-prefetchable)
>[size=128K]
> Bus: primary=01, secondary=02, subordinate=06, sec-latency=0
> I/O behind bridge: 00008000-0000bfff
> Memory behind bridge: fd400000-fd7fffff
> Prefetchable memory behind bridge: 00000000fcf00000-
>00000000fd2fffff
> Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort-
><TAbort- <MAbort- <SERR- <PERR-
> BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
> PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> Capabilities: [40] Power Management version 3
> Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-
>,D3hot+,D3cold+)
> Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
> Capabilities: [48] MSI: Enable+ Count=1/4 Maskable+ 64bit+
> Address: 00000000fee0300c Data: 4181
> Masking: 0000000f Pending: 00000000
> Capabilities: [68] Express (v2) Upstream Port, MSI 00
> DevCap: MaxPayload 2048 bytes, PhantFunc 0, Latency L0s
><64ns, L1 <1us
> ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
>SlotPowerLimit 0.000W
> DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
>Unsupported-
> RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
> MaxPayload 128 bytes, MaxReadReq 128 bytes
> DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr-
>TransPend-
> LnkCap: Port #6, Speed 5GT/s, Width x4, ASPM L0s L1,
>Latency L0 <2us, L1 <4us
> ClockPM- Surprise- LLActRep- BwNot-
> LnkCtl: ASPM Disabled; Disabled- Retrain- CommClk-
> ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> LnkSta: Speed 2.5GT/s, Width x4, TrErr- Train- SlotClk-
>DLActive- BWMgmt- ABWMgmt-
> DevCap2: Completion Timeout: Not Supported, TimeoutDis-
> DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-
> LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance-
>SpeedDis-, Selectable De-emphasis: -6dB
> Transmit Margin: Normal Operating Range,
>EnterModifiedCompliance- ComplianceSOS-
> Compliance De-emphasis: -6dB
> LnkSta2: Current De-emphasis Level: -6dB
> Capabilities: [a4] Subsystem: PLX Technology, Inc. PEX 8616 16-
>lane, 4-Port PCI Express Gen 2 (5.0 GT/s) Switch
> Capabilities: [100 v1] Device Serial Number aa-86-00-10-b5-df-0e-
>00
> Capabilities: [fb4 v1] Advanced Error Reporting
> UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout-
>NonFatalErr+
> CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout-
>NonFatalErr+
> AERCap: First Error Pointer: 1f, GenCap+ CGenEn- ChkCap+
>ChkEn-
> Capabilities: [138 v1] Power Budgeting <?>
> Capabilities: [148 v1] Virtual Channel
> Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
> Arb: Fixed- WRR32- WRR64- WRR128-
> Ctrl: ArbSelect=Fixed
> Status: InProgress-
> VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
> Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
> Status: NegoPending- InProgress-
> Capabilities: [950 v1] Vendor Specific Information: ID=0001 Rev=0
>Len=010 <?>
> Kernel driver in use: pcieport
>
>02:00.0 PCI bridge: PLX Technology, Inc. PEX 8616 16-lane, 4-Port PCI
>Express Gen 2 (5.0 GT/s) Switch (rev bb) (prog-if 00 [Normal decode])
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR- FastB2B- DisINTx+
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
><TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0, Cache Line Size: 64 bytes
> Bus: primary=02, secondary=03, subordinate=03, sec-latency=0
> I/O behind bridge: 0000b000-0000bfff
> Memory behind bridge: fd700000-fd7fffff
> Prefetchable memory behind bridge: 00000000fd200000-
>00000000fd2fffff
> Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort-
><TAbort- <MAbort- <SERR- <PERR-
> BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
> PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> Capabilities: [40] Power Management version 3
> Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-
>,D3hot+,D3cold+)
> Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
> Capabilities: [48] MSI: Enable+ Count=1/4 Maskable+ 64bit+
> Address: 00000000fee0300c Data: 4189
> Masking: 0000000f Pending: 00000000
> Capabilities: [68] Express (v2) Downstream Port (Slot+), MSI 00
> DevCap: MaxPayload 2048 bytes, PhantFunc 0, Latency L0s
><64ns, L1 <1us
> ExtTag- RBE+ FLReset-
> DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
>Unsupported-
> RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
> MaxPayload 128 bytes, MaxReadReq 128 bytes
> DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr-
>TransPend-
> LnkCap: Port #0, Speed 5GT/s, Width x4, ASPM L0s L1,
>Latency L0 <2us, L1 <4us
> ClockPM- Surprise+ LLActRep+ BwNot+
> LnkCtl: ASPM Disabled; Disabled- Retrain- CommClk-
> ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> LnkSta: Speed 2.5GT/s, Width x4, TrErr- Train- SlotClk-
>DLActive+ BWMgmt+ ABWMgmt-
> SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug-
>Surprise-
> Slot #0, PowerLimit 25.000W; Interlock- NoCompl-
> SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt-
>HPIrq- LinkChg-
> Control: AttnInd Unknown, PwrInd Unknown, Power-
>Interlock-
> SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt-
>PresDet+ Interlock-
> Changed: MRL- PresDet+ LinkState+
> DevCap2: Completion Timeout: Not Supported, TimeoutDis-
>ARIFwd+
> DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-
>ARIFwd+
> LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance-
>SpeedDis-, Selectable De-emphasis: -6dB
> Transmit Margin: Normal Operating Range,
>EnterModifiedCompliance- ComplianceSOS-
> Compliance De-emphasis: -6dB
> LnkSta2: Current De-emphasis Level: -6dB
> Capabilities: [a4] Subsystem: PLX Technology, Inc. PEX 8616 16-
>lane, 4-Port PCI Express Gen 2 (5.0 GT/s) Switch
> Capabilities: [100 v1] Device Serial Number aa-86-00-10-b5-df-0e-
>00
> Capabilities: [fb4 v1] Advanced Error Reporting
> UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout-
>NonFatalErr+
> CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout-
>NonFatalErr+
> AERCap: First Error Pointer: 1f, GenCap+ CGenEn- ChkCap+
>ChkEn-
> Capabilities: [148 v1] Virtual Channel
> Caps: LPEVC=0 RefClk=100ns PATEntryBits=4
> Arb: Fixed- WRR32- WRR64- WRR128-
> Ctrl: ArbSelect=Fixed
> Status: InProgress-
> VC0: Caps: PATOffset=06 MaxTimeSlots=1 RejSnoopTrans-
> Arb: Fixed- WRR32+ WRR64- WRR128- TWRR128- WRR256-
> Ctrl: Enable+ ID=0 ArbSelect=WRR32 TC/VC=ff
> Status: NegoPending- InProgress-
> Port Arbitration Table <?>
> Capabilities: [448 v1] Vendor Specific Information: ID=0000 Rev=0
>Len=0cc <?>
> Capabilities: [520 v1] Access Control Services
> ACSCap: SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+
>UpstreamFwd+ EgressCtrl+ DirectTrans+
> ACSCtl: SrcValid- TransBlk- ReqRedir- CmpltRedir-
>UpstreamFwd- EgressCtrl- DirectTrans-
> Capabilities: [950 v1] Vendor Specific Information: ID=0001 Rev=0
>Len=010 <?>
> Kernel driver in use: pcieport
>
>02:01.0 PCI bridge: PLX Technology, Inc. PEX 8616 16-lane, 4-Port PCI
>Express Gen 2 (5.0 GT/s) Switch (rev bb) (prog-if 00 [Normal decode])
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR- FastB2B- DisINTx+
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
><TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0, Cache Line Size: 64 bytes
> Bus: primary=02, secondary=04, subordinate=04, sec-latency=0
> I/O behind bridge: 0000a000-0000afff
> Memory behind bridge: fd600000-fd6fffff
> Prefetchable memory behind bridge: 00000000fd100000-
>00000000fd1fffff
> Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort-
><TAbort- <MAbort- <SERR- <PERR-
> BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
> PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> Capabilities: [40] Power Management version 3
> Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-
>,D3hot+,D3cold+)
> Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
> Capabilities: [48] MSI: Enable+ Count=1/4 Maskable+ 64bit+
> Address: 00000000fee0300c Data: 4191
> Masking: 0000000f Pending: 00000000
> Capabilities: [68] Express (v2) Downstream Port (Slot+), MSI 00
> DevCap: MaxPayload 2048 bytes, PhantFunc 0, Latency L0s
><64ns, L1 <1us
> ExtTag- RBE+ FLReset-
> DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
>Unsupported-
> RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
> MaxPayload 128 bytes, MaxReadReq 128 bytes
> DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr-
>TransPend-
> LnkCap: Port #1, Speed 5GT/s, Width x4, ASPM L0s L1,
>Latency L0 <2us, L1 <4us
> ClockPM- Surprise+ LLActRep+ BwNot+
> LnkCtl: ASPM Disabled; Disabled- Retrain- CommClk-
> ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> LnkSta: Speed 2.5GT/s, Width x4, TrErr- Train- SlotClk-
>DLActive+ BWMgmt+ ABWMgmt-
> SltCap: AttnBtn+ PwrCtrl+ MRL+ AttnInd+ PwrInd+ HotPlug+
>Surprise-
> Slot #1, PowerLimit 25.000W; Interlock- NoCompl-
> SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt-
>HPIrq- LinkChg-
> Control: AttnInd Unknown, PwrInd Unknown, Power+
>Interlock-
> SltSta: Status: AttnBtn- PowerFlt- MRL+ CmdCplt-
>PresDet+ Interlock-
> Changed: MRL- PresDet+ LinkState+
> DevCap2: Completion Timeout: Not Supported, TimeoutDis-
>ARIFwd+
> DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-
>ARIFwd+
> LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance-
>SpeedDis-, Selectable De-emphasis: -6dB
> Transmit Margin: Normal Operating Range,
>EnterModifiedCompliance- ComplianceSOS-
> Compliance De-emphasis: -6dB
> LnkSta2: Current De-emphasis Level: -6dB
> Capabilities: [a4] Subsystem: PLX Technology, Inc. PEX 8616 16-
>lane, 4-Port PCI Express Gen 2 (5.0 GT/s) Switch
> Capabilities: [100 v1] Device Serial Number aa-86-00-10-b5-df-0e-
>00
> Capabilities: [fb4 v1] Advanced Error Reporting
> UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout-
>NonFatalErr+
> CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout-
>NonFatalErr+
> AERCap: First Error Pointer: 1f, GenCap+ CGenEn- ChkCap+
>ChkEn-
> Capabilities: [148 v1] Virtual Channel
> Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
> Arb: Fixed- WRR32- WRR64- WRR128-
> Ctrl: ArbSelect=Fixed
> Status: InProgress-
> VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
> Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
> Status: NegoPending- InProgress-
> Capabilities: [520 v1] Access Control Services
> ACSCap: SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+
>UpstreamFwd+ EgressCtrl+ DirectTrans+
> ACSCtl: SrcValid- TransBlk- ReqRedir- CmpltRedir-
>UpstreamFwd- EgressCtrl- DirectTrans-
> Capabilities: [950 v1] Vendor Specific Information: ID=0001 Rev=0
>Len=010 <?>
> Kernel driver in use: pcieport
>
>02:04.0 PCI bridge: PLX Technology, Inc. PEX 8616 16-lane, 4-Port PCI
>Express Gen 2 (5.0 GT/s) Switch (rev bb) (prog-if 00 [Normal decode])
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR- FastB2B- DisINTx+
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
><TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0, Cache Line Size: 64 bytes
> Bus: primary=02, secondary=05, subordinate=05, sec-latency=0
> I/O behind bridge: 00009000-00009fff
> Memory behind bridge: fd500000-fd5fffff
> Prefetchable memory behind bridge: 00000000fd000000-
>00000000fd0fffff
> Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort-
><TAbort- <MAbort- <SERR- <PERR-
> BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
> PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> Capabilities: [40] Power Management version 3
> Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-
>,D3hot+,D3cold+)
> Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
> Capabilities: [48] MSI: Enable+ Count=1/4 Maskable+ 64bit+
> Address: 00000000fee0300c Data: 4199
> Masking: 0000000f Pending: 00000000
> Capabilities: [68] Express (v2) Downstream Port (Slot+), MSI 00
> DevCap: MaxPayload 2048 bytes, PhantFunc 0, Latency L0s
><64ns, L1 <1us
> ExtTag- RBE+ FLReset-
> DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
>Unsupported-
> RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
> MaxPayload 128 bytes, MaxReadReq 128 bytes
> DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr-
>TransPend-
> LnkCap: Port #4, Speed 5GT/s, Width x8, ASPM L0s L1,
>Latency L0 <2us, L1 <4us
> ClockPM- Surprise+ LLActRep+ BwNot+
> LnkCtl: ASPM Disabled; Disabled- Retrain- CommClk-
> ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk-
>DLActive- BWMgmt- ABWMgmt-
> SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug-
>Surprise-
> Slot #4, PowerLimit 25.000W; Interlock- NoCompl-
> SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt-
>HPIrq- LinkChg-
> Control: AttnInd Unknown, PwrInd Unknown, Power-
>Interlock-
> SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt-
>PresDet- Interlock-
> Changed: MRL- PresDet- LinkState-
> DevCap2: Completion Timeout: Not Supported, TimeoutDis-
>ARIFwd+
> DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-
>ARIFwd-
> LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance-
>SpeedDis-, Selectable De-emphasis: -6dB
> Transmit Margin: Normal Operating Range,
>EnterModifiedCompliance- ComplianceSOS-
> Compliance De-emphasis: -6dB
> LnkSta2: Current De-emphasis Level: -6dB
> Capabilities: [a4] Subsystem: PLX Technology, Inc. PEX 8616 16-
>lane, 4-Port PCI Express Gen 2 (5.0 GT/s) Switch
> Capabilities: [100 v1] Device Serial Number aa-86-00-10-b5-df-0e-
>00
> Capabilities: [fb4 v1] Advanced Error Reporting
> UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout-
>NonFatalErr+
> CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout-
>NonFatalErr+
> AERCap: First Error Pointer: 1f, GenCap+ CGenEn- ChkCap+
>ChkEn-
> Capabilities: [148 v1] Virtual Channel
> Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
> Arb: Fixed- WRR32- WRR64- WRR128-
> Ctrl: ArbSelect=Fixed
> Status: InProgress-
> VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
> Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
> Status: NegoPending- InProgress-
> Capabilities: [520 v1] Access Control Services
> ACSCap: SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+
>UpstreamFwd+ EgressCtrl+ DirectTrans+
> ACSCtl: SrcValid- TransBlk- ReqRedir- CmpltRedir-
>UpstreamFwd- EgressCtrl- DirectTrans-
> Capabilities: [950 v1] Vendor Specific Information: ID=0001 Rev=0
>Len=010 <?>
> Kernel driver in use: pcieport
>
>02:05.0 PCI bridge: PLX Technology, Inc. PEX 8616 16-lane, 4-Port PCI
>Express Gen 2 (5.0 GT/s) Switch (rev bb) (prog-if 00 [Normal decode])
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR- FastB2B- DisINTx+
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
><TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0, Cache Line Size: 64 bytes
> Bus: primary=02, secondary=06, subordinate=06, sec-latency=0
> I/O behind bridge: 00008000-00008fff
> Memory behind bridge: fd400000-fd4fffff
> Prefetchable memory behind bridge: 00000000fcf00000-
>00000000fcffffff
> Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort-
><TAbort- <MAbort- <SERR- <PERR-
> BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
> PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> Capabilities: [40] Power Management version 3
> Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-
>,D3hot+,D3cold+)
> Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
> Capabilities: [48] MSI: Enable+ Count=1/4 Maskable+ 64bit+
> Address: 00000000fee0300c Data: 41a1
> Masking: 0000000f Pending: 00000000
> Capabilities: [68] Express (v2) Downstream Port (Slot+), MSI 00
> DevCap: MaxPayload 2048 bytes, PhantFunc 0, Latency L0s
><64ns, L1 <1us
> ExtTag- RBE+ FLReset-
> DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
>Unsupported-
> RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
> MaxPayload 128 bytes, MaxReadReq 128 bytes
> DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr-
>TransPend-
> LnkCap: Port #5, Speed 5GT/s, Width x4, ASPM L0s L1,
>Latency L0 <2us, L1 <4us
> ClockPM- Surprise+ LLActRep+ BwNot+
> LnkCtl: ASPM Disabled; Disabled- Retrain- CommClk-
> ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk-
>DLActive- BWMgmt- ABWMgmt-
> SltCap: AttnBtn+ PwrCtrl+ MRL+ AttnInd+ PwrInd+ HotPlug+
>Surprise-
> Slot #5, PowerLimit 25.000W; Interlock- NoCompl-
> SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt-
>HPIrq- LinkChg-
> Control: AttnInd Unknown, PwrInd Unknown, Power+
>Interlock-
> SltSta: Status: AttnBtn- PowerFlt- MRL+ CmdCplt-
>PresDet- Interlock-
> Changed: MRL- PresDet- LinkState-
> DevCap2: Completion Timeout: Not Supported, TimeoutDis-
>ARIFwd+
> DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-
>ARIFwd-
> LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance-
>SpeedDis-, Selectable De-emphasis: -6dB
> Transmit Margin: Normal Operating Range,
>EnterModifiedCompliance- ComplianceSOS-
> Compliance De-emphasis: -6dB
> LnkSta2: Current De-emphasis Level: -6dB
> Capabilities: [a4] Subsystem: PLX Technology, Inc. PEX 8616 16-
>lane, 4-Port PCI Express Gen 2 (5.0 GT/s) Switch
> Capabilities: [100 v1] Device Serial Number aa-86-00-10-b5-df-0e-
>00
> Capabilities: [fb4 v1] Advanced Error Reporting
> UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout-
>NonFatalErr+
> CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout-
>NonFatalErr+
> AERCap: First Error Pointer: 1f, GenCap+ CGenEn- ChkCap+
>ChkEn-
> Capabilities: [148 v1] Virtual Channel
> Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
> Arb: Fixed- WRR32- WRR64- WRR128-
> Ctrl: ArbSelect=Fixed
> Status: InProgress-
> VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
> Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
> Status: NegoPending- InProgress-
> Capabilities: [520 v1] Access Control Services
> ACSCap: SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+
>UpstreamFwd+ EgressCtrl+ DirectTrans+
> ACSCtl: SrcValid- TransBlk- ReqRedir- CmpltRedir-
>UpstreamFwd- EgressCtrl- DirectTrans-
> Capabilities: [950 v1] Vendor Specific Information: ID=0001 Rev=0
>Len=010 <?>
> Kernel driver in use: pcieport
>
>03:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network
>Connection (rev 01)
> Subsystem: QLogic, Corp. Device 0080
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR- FastB2B- DisINTx+
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
><TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0, Cache Line Size: 64 bytes
> Interrupt: pin B routed to IRQ 17
> Region 0: Memory at fd7c0000 (32-bit, non-prefetchable)
>[size=128K]
> Region 1: Memory at fd760000 (32-bit, non-prefetchable)
>[size=128K]
> Region 2: I/O ports at bf00 [size=32]
> Region 3: Memory at fd7fc000 (32-bit, non-prefetchable) [size=16K]
> [virtual] Expansion ROM at fd200000 [disabled] [size=128K]
> Capabilities: [40] Power Management version 3
> Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-
>,D3hot+,D3cold+)
> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 PME-
> Capabilities: [50] MSI: Enable- Count=1/1 Maskable+ 64bit+
> Address: 0000000000000000 Data: 0000
> Masking: 00000000 Pending: 00000000
> Capabilities: [70] MSI-X: Enable+ Count=10 Masked-
> Vector table: BAR=3 offset=00000000
> PBA: BAR=3 offset=00002000
> Capabilities: [a0] Express (v2) Endpoint, MSI 00
> DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s
><512ns, L1 <64us
> ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset+
> DevCtl: Report errors: Correctable+ Non-Fatal+ Fatal+
>Unsupported+
> RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ FLReset-
> MaxPayload 128 bytes, MaxReadReq 512 bytes
> DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr+
>TransPend-
> LnkCap: Port #0, Speed 2.5GT/s, Width x4, ASPM L0s L1,
>Latency L0 <4us, L1 <64us
> ClockPM- Surprise- LLActRep- BwNot-
> LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain-
>CommClk-
> ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> LnkSta: Speed 2.5GT/s, Width x4, TrErr- Train- SlotClk+
>DLActive- BWMgmt- ABWMgmt-
> DevCap2: Completion Timeout: Range ABCD, TimeoutDis+
> DevCtl2: Completion Timeout: 16ms to 55ms, TimeoutDis-
> LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance-
>SpeedDis-, Selectable De-emphasis: -6dB
> Transmit Margin: Normal Operating Range,
>EnterModifiedCompliance- ComplianceSOS-
> Compliance De-emphasis: -6dB
> LnkSta2: Current De-emphasis Level: -6dB
> Capabilities: [100 v1] Advanced Error Reporting
> UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout-
>NonFatalErr+
> CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout-
>NonFatalErr+
> AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap-
>ChkEn-
> Capabilities: [140 v1] Device Serial Number 00-0c-bd-ff-ff-00-94-
>6c
> Capabilities: [150 v1] Alternative Routing-ID Interpretation (ARI)
> ARICap: MFVC- ACS-, Next Function: 1
> ARICtl: MFVC- ACS-, Function Group: 0
> Capabilities: [160 v1] Single Root I/O Virtualization (SR-IOV)
> IOVCap: Migration-, Interrupt Message Number: 000
> IOVCtl: Enable- Migration- Interrupt- MSE- ARIHierarchy+
> IOVSta: Migration-
> Initial VFs: 8, Total VFs: 8, Number of VFs: 8, Function
>Dependency Link: 00
> VF offset: 128, stride: 2, Device ID: 10ca
> Supported Page Size: 00000553, System Page Size: 00000001
> Region 0: Memory at 00000000fd700000 (64-bit, non-
>prefetchable)
> Region 3: Memory at 00000000fd720000 (64-bit, non-
>prefetchable)
> VF Migration: offset: 00000000, BIR: 0
> Kernel driver in use: igb
> Kernel modules: igb
>
>03:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network
>Connection (rev 01)
> Subsystem: QLogic, Corp. Device 0080
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR- FastB2B- DisINTx+
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
><TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0, Cache Line Size: 64 bytes
> Interrupt: pin A routed to IRQ 16
> Region 0: Memory at fd7a0000 (32-bit, non-prefetchable)
>[size=128K]
> Region 1: Memory at fd780000 (32-bit, non-prefetchable)
>[size=128K]
> Region 2: I/O ports at be00 [size=32]
> Region 3: Memory at fd7f8000 (32-bit, non-prefetchable) [size=16K]
> [virtual] Expansion ROM at fd220000 [disabled] [size=128K]
> Capabilities: [40] Power Management version 3
> Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-
>,D3hot+,D3cold+)
> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 PME-
> Capabilities: [50] MSI: Enable- Count=1/1 Maskable+ 64bit+
> Address: 0000000000000000 Data: 0000
> Masking: 00000000 Pending: 00000000
> Capabilities: [70] MSI-X: Enable+ Count=10 Masked-
> Vector table: BAR=3 offset=00000000
> PBA: BAR=3 offset=00002000
> Capabilities: [a0] Express (v2) Endpoint, MSI 00
> DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s
><512ns, L1 <64us
> ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset+
> DevCtl: Report errors: Correctable+ Non-Fatal+ Fatal+
>Unsupported+
> RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ FLReset-
> MaxPayload 128 bytes, MaxReadReq 512 bytes
> DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr+
>TransPend-
> LnkCap: Port #0, Speed 2.5GT/s, Width x4, ASPM L0s L1,
>Latency L0 <4us, L1 <64us
> ClockPM- Surprise- LLActRep- BwNot-
> LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain-
>CommClk-
> ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> LnkSta: Speed 2.5GT/s, Width x4, TrErr- Train- SlotClk+
>DLActive- BWMgmt- ABWMgmt-
> DevCap2: Completion Timeout: Range ABCD, TimeoutDis+
> DevCtl2: Completion Timeout: 16ms to 55ms, TimeoutDis-
> LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance-
>SpeedDis-, Selectable De-emphasis: -6dB
> Transmit Margin: Normal Operating Range,
>EnterModifiedCompliance- ComplianceSOS-
> Compliance De-emphasis: -6dB
> LnkSta2: Current De-emphasis Level: -6dB
> Capabilities: [100 v1] Advanced Error Reporting
> UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout-
>NonFatalErr+
> CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout-
>NonFatalErr+
> AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap-
>ChkEn-
> Capabilities: [140 v1] Device Serial Number 00-0c-bd-ff-ff-00-94-
>6c
> Capabilities: [150 v1] Alternative Routing-ID Interpretation (ARI)
> ARICap: MFVC- ACS-, Next Function: 0
> ARICtl: MFVC- ACS-, Function Group: 0
> Capabilities: [160 v1] Single Root I/O Virtualization (SR-IOV)
> IOVCap: Migration-, Interrupt Message Number: 000
> IOVCtl: Enable- Migration- Interrupt- MSE- ARIHierarchy-
> IOVSta: Migration-
> Initial VFs: 8, Total VFs: 8, Number of VFs: 8, Function
>Dependency Link: 01
> VF offset: 128, stride: 2, Device ID: 10ca
> Supported Page Size: 00000553, System Page Size: 00000001
> Region 0: Memory at 00000000fd740000 (64-bit, non-
>prefetchable)
> Region 3: Memory at 0000000000000000 (64-bit, non-
>prefetchable)
> VF Migration: offset: 00000000, BIR: 0
> Kernel driver in use: igb
> Kernel modules: igb
>
>04:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network
>Connection (rev 01)
> Subsystem: QLogic, Corp. Device 0080
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR- FastB2B- DisINTx+
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
><TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0, Cache Line Size: 64 bytes
> Interrupt: pin B routed to IRQ 18
> Region 0: Memory at fd6c0000 (32-bit, non-prefetchable)
>[size=128K]
> Region 1: Memory at fd660000 (32-bit, non-prefetchable)
>[size=128K]
> Region 2: I/O ports at af00 [size=32]
> Region 3: Memory at fd6fc000 (32-bit, non-prefetchable) [size=16K]
> [virtual] Expansion ROM at fd100000 [disabled] [size=128K]
> Capabilities: [40] Power Management version 3
> Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-
>,D3hot+,D3cold+)
> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 PME-
> Capabilities: [50] MSI: Enable- Count=1/1 Maskable+ 64bit+
> Address: 0000000000000000 Data: 0000
> Masking: 00000000 Pending: 00000000
> Capabilities: [70] MSI-X: Enable+ Count=10 Masked-
> Vector table: BAR=3 offset=00000000
> PBA: BAR=3 offset=00002000
> Capabilities: [a0] Express (v2) Endpoint, MSI 00
> DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s
><512ns, L1 <64us
> ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset+
> DevCtl: Report errors: Correctable+ Non-Fatal+ Fatal+
>Unsupported+
> RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ FLReset-
> MaxPayload 128 bytes, MaxReadReq 512 bytes
> DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr+
>TransPend-
> LnkCap: Port #1, Speed 2.5GT/s, Width x4, ASPM L0s L1,
>Latency L0 <4us, L1 <64us
> ClockPM- Surprise- LLActRep- BwNot-
> LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain-
>CommClk-
> ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> LnkSta: Speed 2.5GT/s, Width x4, TrErr- Train- SlotClk+
>DLActive- BWMgmt- ABWMgmt-
> DevCap2: Completion Timeout: Range ABCD, TimeoutDis+
> DevCtl2: Completion Timeout: 16ms to 55ms, TimeoutDis-
> LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance-
>SpeedDis-, Selectable De-emphasis: -6dB
> Transmit Margin: Normal Operating Range,
>EnterModifiedCompliance- ComplianceSOS-
> Compliance De-emphasis: -6dB
> LnkSta2: Current De-emphasis Level: -6dB
> Capabilities: [100 v1] Advanced Error Reporting
> UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout-
>NonFatalErr+
> CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout-
>NonFatalErr+
> AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap-
>ChkEn-
> Capabilities: [140 v1] Device Serial Number 00-0c-bd-ff-ff-00-94-
>6e
> Capabilities: [150 v1] Alternative Routing-ID Interpretation (ARI)
> ARICap: MFVC- ACS-, Next Function: 1
> ARICtl: MFVC- ACS-, Function Group: 0
> Capabilities: [160 v1] Single Root I/O Virtualization (SR-IOV)
> IOVCap: Migration-, Interrupt Message Number: 000
> IOVCtl: Enable- Migration- Interrupt- MSE- ARIHierarchy+
> IOVSta: Migration-
> Initial VFs: 8, Total VFs: 8, Number of VFs: 8, Function
>Dependency Link: 00
> VF offset: 128, stride: 2, Device ID: 10ca
> Supported Page Size: 00000553, System Page Size: 00000001
> Region 0: Memory at 00000000fd600000 (64-bit, non-
>prefetchable)
> Region 3: Memory at 00000000fd620000 (64-bit, non-
>prefetchable)
> VF Migration: offset: 00000000, BIR: 0
> Kernel driver in use: igb
> Kernel modules: igb
>
>04:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network
>Connection (rev 01)
> Subsystem: QLogic, Corp. Device 0080
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR- FastB2B- DisINTx+
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
><TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0, Cache Line Size: 64 bytes
> Interrupt: pin A routed to IRQ 17
> Region 0: Memory at fd6a0000 (32-bit, non-prefetchable)
>[size=128K]
> Region 1: Memory at fd680000 (32-bit, non-prefetchable)
>[size=128K]
> Region 2: I/O ports at ae00 [size=32]
> Region 3: Memory at fd6f8000 (32-bit, non-prefetchable) [size=16K]
> [virtual] Expansion ROM at fd120000 [disabled] [size=128K]
> Capabilities: [40] Power Management version 3
> Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-
>,D3hot+,D3cold+)
> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 PME-
> Capabilities: [50] MSI: Enable- Count=1/1 Maskable+ 64bit+
> Address: 0000000000000000 Data: 0000
> Masking: 00000000 Pending: 00000000
> Capabilities: [70] MSI-X: Enable+ Count=10 Masked-
> Vector table: BAR=3 offset=00000000
> PBA: BAR=3 offset=00002000
> Capabilities: [a0] Express (v2) Endpoint, MSI 00
> DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s
><512ns, L1 <64us
> ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset+
> DevCtl: Report errors: Correctable+ Non-Fatal+ Fatal+
>Unsupported+
> RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ FLReset-
> MaxPayload 128 bytes, MaxReadReq 512 bytes
> DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr+
>TransPend-
> LnkCap: Port #1, Speed 2.5GT/s, Width x4, ASPM L0s L1,
>Latency L0 <4us, L1 <64us
> ClockPM- Surprise- LLActRep- BwNot-
> LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain-
>CommClk-
> ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> LnkSta: Speed 2.5GT/s, Width x4, TrErr- Train- SlotClk+
>DLActive- BWMgmt- ABWMgmt-
> DevCap2: Completion Timeout: Range ABCD, TimeoutDis+
> DevCtl2: Completion Timeout: 16ms to 55ms, TimeoutDis-
> LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance-
>SpeedDis-, Selectable De-emphasis: -6dB
> Transmit Margin: Normal Operating Range,
>EnterModifiedCompliance- ComplianceSOS-
> Compliance De-emphasis: -6dB
> LnkSta2: Current De-emphasis Level: -6dB
> Capabilities: [100 v1] Advanced Error Reporting
> UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout-
>NonFatalErr+
> CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout-
>NonFatalErr+
> AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap-
>ChkEn-
> Capabilities: [140 v1] Device Serial Number 00-0c-bd-ff-ff-00-94-
>6e
> Capabilities: [150 v1] Alternative Routing-ID Interpretation (ARI)
> ARICap: MFVC- ACS-, Next Function: 0
> ARICtl: MFVC- ACS-, Function Group: 0
> Capabilities: [160 v1] Single Root I/O Virtualization (SR-IOV)
> IOVCap: Migration-, Interrupt Message Number: 000
> IOVCtl: Enable- Migration- Interrupt- MSE- ARIHierarchy-
> IOVSta: Migration-
> Initial VFs: 8, Total VFs: 8, Number of VFs: 8, Function
>Dependency Link: 01
> VF offset: 128, stride: 2, Device ID: 10ca
> Supported Page Size: 00000553, System Page Size: 00000001
> Region 0: Memory at 00000000fd640000 (64-bit, non-
>prefetchable)
> Region 3: Memory at 0000000000000000 (64-bit, non-
>prefetchable)
> VF Migration: offset: 00000000, BIR: 0
> Kernel driver in use: igb
> Kernel modules: igb
>
>07:00.0 Ethernet controller: Intel Corporation 82573L Gigabit Ethernet
>Controller
> Subsystem: Intel Corporation Device 0000
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR- FastB2B- DisINTx+
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
><TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0, Cache Line Size: 64 bytes
> Interrupt: pin A routed to IRQ 55
> Region 0: Memory at fcee0000 (32-bit, non-prefetchable)
>[size=128K]
> Region 2: I/O ports at 7f00 [size=32]
> Capabilities: [c8] Power Management version 2
> Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-
>,D3hot+,D3cold+)
> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 PME-
> Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> Address: 00000000fee0100c Data: 41aa
> Capabilities: [e0] Express (v1) Endpoint, MSI 00
> DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s
><512ns, L1 <64us
> ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset-
> DevCtl: Report errors: Correctable+ Non-Fatal+ Fatal+
>Unsupported+
> RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> MaxPayload 128 bytes, MaxReadReq 512 bytes
> DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+
>TransPend-
> LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM unknown,
>Latency L0 <128ns, L1 <64us
> ClockPM+ Surprise- LLActRep- BwNot-
> LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain-
>CommClk+
> ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+
>DLActive- BWMgmt- ABWMgmt-
> Capabilities: [100 v1] Advanced Error Reporting
> UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout-
>NonFatalErr-
> CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout-
>NonFatalErr-
> AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap-
>ChkEn-
> Capabilities: [140 v1] Device Serial Number 00-07-32-ff-ff-13-f0-
>5b
> Kernel driver in use: e1000e
> Kernel modules: e1000e
>
>08:00.0 Ethernet controller: Intel Corporation 82573L Gigabit Ethernet
>Controller
> Subsystem: Intel Corporation Device 0000
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR- FastB2B- DisINTx+
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
><TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0, Cache Line Size: 64 bytes
> Interrupt: pin A routed to IRQ 61
> Region 0: Memory at fdee0000 (32-bit, non-prefetchable)
>[size=128K]
> Region 2: I/O ports at 6f00 [size=32]
> Capabilities: [c8] Power Management version 2
> Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-
>,D3hot+,D3cold+)
> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 PME-
> Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> Address: 00000000fee0200c Data: 41ba
> Capabilities: [e0] Express (v1) Endpoint, MSI 00
> DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s
><512ns, L1 <64us
> ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset-
> DevCtl: Report errors: Correctable+ Non-Fatal+ Fatal+
>Unsupported+
> RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
> MaxPayload 128 bytes, MaxReadReq 512 bytes
> DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+
>TransPend-
> LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM unknown,
>Latency L0 <128ns, L1 <64us
> ClockPM+ Surprise- LLActRep- BwNot-
> LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain-
>CommClk+
> ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+
>DLActive- BWMgmt- ABWMgmt-
> Capabilities: [100 v1] Advanced Error Reporting
> UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt-
>UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> CESta: RxErr+ BadTLP- BadDLLP- Rollover- Timeout-
>NonFatalErr-
> CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout-
>NonFatalErr-
> AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap-
>ChkEn-
> Capabilities: [140 v1] Device Serial Number 00-07-32-ff-ff-15-d1-
>fc
> Kernel driver in use: e1000e
> Kernel modules: e1000e
>
>0b:0b.0 CardBus bridge: Texas Instruments PCI1520 PC card Cardbus
>Controller (rev 01)
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
><TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 168, Cache Line Size: 64 bytes
> Interrupt: pin A routed to IRQ 16
> Region 0: Memory at d7fff000 (32-bit, non-prefetchable) [size=4K]
> Bus: primary=0b, secondary=0c, subordinate=0c, sec-latency=176
> Memory window 0: cc000000-cffff000 (prefetchable)
> Memory window 1: d0000000-d3fff000
> I/O window 0: 0000d000-0000d0ff
> I/O window 1: 0000d400-0000d4ff
> BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset+ 16bInt+
>PostWrite+
> 16-bit legacy interface ports at 0001
> Kernel driver in use: yenta_cardbus
> Kernel modules: yenta_socket
>
>0b:0b.1 CardBus bridge: Texas Instruments PCI1520 PC card Cardbus
>Controller (rev 01)
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
><TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 168, Cache Line Size: 64 bytes
> Interrupt: pin B routed to IRQ 17
> Region 0: Memory at d7ffd000 (32-bit, non-prefetchable) [size=4K]
> Bus: primary=0b, secondary=0d, subordinate=10, sec-latency=176
> Memory window 0: 80000000-83fff000 (prefetchable)
> Memory window 1: 84000000-87fff000
> I/O window 0: 0000d800-0000d8ff
> I/O window 1: 0000dc00-0000dcff
> BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset+ 16bInt+
>PostWrite+
> 16-bit legacy interface ports at 0001
> Kernel driver in use: yenta_cardbus
> Kernel modules: yenta_socket
>
>Thanks,
>Ben
>
>--
>Ben Greear <greearb@candelatech.com>
>Candela Technologies Inc http://www.candelatech.com
>
>--
>To unsubscribe from this list: send the line "unsubscribe netdev" in
>the body of a message to majordomo@vger.kernel.org
>More majordomo info at http://vger.kernel.org/majordomo-info.html
Hello,
There have been recent patches for igb that I submitted that might contain the fix you found in the out-of-tree driver, although I'm not sure which one would affect rx CRC errors. Were there other symptoms? Any messages in the log? I'll look through the patches and see if there is anything obvious and get you some commit numbers to try.
Thanks,
Carolyn
Carolyn Wyborny
Linux Development
LAN Access Division
Intel Corporation
^ permalink raw reply
* Re: [PATCH] bnx2x: dont dereference tcp header on non tcp frames
From: David Miller @ 2011-04-22 0:20 UTC (permalink / raw)
To: dmitry; +Cc: eric.dumazet, eilong, netdev
In-Reply-To: <1303292410.1813.23.camel@lb-tlvb-dmitry>
From: "Dmitry Kravkov" <dmitry@broadcom.com>
Date: Wed, 20 Apr 2011 12:40:10 +0300
> On Wed, 2011-04-20 at 01:46 -0700, David Miller wrote:
>> From: Eric Dumazet <eric.dumazet@gmail.com>
>> Date: Wed, 20 Apr 2011 09:31:53 +0200
>>
>> > [PATCH] bnx2x: dont dereference tcp header on non tcp frames
>> >
>> > bnx2x_set_pbd_csum() & bnx2x_set_pbd_csum_e2() use
>> > tcp_hdrlen(skb) even for non TCP frames
>> >
>> > Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
>>
>> Broadcom folks please review.
>>
>
> Following patch fixes udp checksum offload flow and also addresses
> issues raised by Eric. We are testing it now.
>
> From: Vladislav Zolotarov <vladz@broadcom.com>
>
> Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
> Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Can you guys please wrap this up and formally submit this patch?
Please remember to add appropriate tags for Eric, probably both
"Reported-by: " and "Tested-by: ".
Thank you!
^ permalink raw reply
* Re: [PATCH v4] net: fix hw_features ethtool_ops->set_flags compatibility
From: David Miller @ 2011-04-22 0:21 UTC (permalink / raw)
To: mirq-linux; +Cc: netdev, bhutchings, eric.dumazet, vladz, eilong
In-Reply-To: <20110421235921.89D1D13909@rere.qmqm.pl>
From: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Date: Fri, 22 Apr 2011 01:59:21 +0200 (CEST)
> __ethtool_set_flags() was not taking into account features set but not
> user-toggleable.
>
> Since GFLAGS returns masked dev->features, EINVAL is returned when
> passed flags differ to it, and not to wanted_features.
>
> Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
> ---
> This should be the simpler way Ben was talking about.
Applied, thanks.
^ permalink raw reply
* Re: [PATCH] ipv6: Remove hoplimit initialization to -1
From: David Miller @ 2011-04-22 0:25 UTC (permalink / raw)
To: thomas.egerer; +Cc: netdev
In-Reply-To: <4DAFF122.7010608@secunet.com>
From: Thomas Egerer <thomas.egerer@secunet.com>
Date: Thu, 21 Apr 2011 10:56:02 +0200
>
> The changes introduced with git-commit a02e4b7d missed to remove the
> hoplimit initialization. As a result, ipv6_get_mtu interprets the return
> value of dst_metric_raw (-1) as 255 and answers ping6 with this hoplimit.
> This patche removes the line such that ping6 is answered with the
> hoplimit value configured via sysctl.
>
> Signed-off-by: Thomas Egerer <thomas.egerer@secunet.com>
Sorry for breaking this, patch applied.
Thanks!
^ permalink raw reply
* Re: [PATCH net-next-2.6 v4 1/5] sctp: Add Auto-ASCONF support
From: David Miller @ 2011-04-22 0:33 UTC (permalink / raw)
To: yjwei; +Cc: micchie, netdev, lksctp-developers
In-Reply-To: <4DAFB81B.8080308@cn.fujitsu.com>
Michio, please address Wei's feedback and resubmit this entire patch
set.
Thank you.
^ permalink raw reply
* Re: [PATCH] be2net: increment work_counter in be_worker
From: David Miller @ 2011-04-22 0:36 UTC (permalink / raw)
To: ivecera; +Cc: netdev, sathya.perla, subbu.seetharaman, ajit.khaparde
In-Reply-To: <1303381204-31258-1-git-send-email-ivecera@redhat.com>
From: Ivan Vecera <ivecera@redhat.com>
Date: Thu, 21 Apr 2011 12:20:04 +0200
> The commit 609ff3b adds support to display temperature of ASIC but there
> is missing increment of work_counter in be_worker. Because of this 1) the
> function be_cmd_get_die_temperature is called every 1 second instead of
> every 32 seconds 2) be_cmd_get_die_temperature is called, although it is
> not supported.
> This patch fixes this bug.
>
> Signed-off-by: Ivan Vecera <ivecera@redhat.com>
Applied to net-2.6, thank you.
^ permalink raw reply
* Re: Strange igb bug, out-of-tree driver seems to work fine.
From: Ben Greear @ 2011-04-22 3:43 UTC (permalink / raw)
To: Wyborny, Carolyn; +Cc: netdev
In-Reply-To: <EDC0E76513226749BFBC9C3FB031318F01382E2CEF@orsmsx508.amr.corp.intel.com>
On 04/21/2011 05:16 PM, Wyborny, Carolyn wrote:
>
>
>> -----Original Message-----
>> From: netdev-owner@vger.kernel.org [mailto:netdev-owner@vger.kernel.org]
>> On Behalf Of Ben Greear
>> Sent: Thursday, April 21, 2011 2:39 PM
>> To: netdev
>> Subject: Strange igb bug, out-of-tree driver seems to work fine.
>>
>> We have a 4-port NIC using the igb driver in a couple of systems,
>> and saw some strange issues (mostly rx CRC errors). We tried 2.6.34,
>> 2.6.36, and 2.6.38 based kernels and all showed issues. The NICs
>> are from two different vendors, though both use the igb driver.
>>
>> We then tried 2.6.36.3 with the out-of-tree igb-2.4.13.tar.gz
>> driver. And everything seems to run clean.
>>
>> My kernels are somewhat hacked and tainted, and this testing
>> is using my tainting module, but since changing only the driver
>> seems to fix things, it's _probably_ not my fault this time!
>>
>> I am running a small hack to make igb work better with VLANs
>> in my 2.6.36 and .38 kernel, though not in the .34. Here is the .36
>> diff:
>
> Hello,
>
> There have been recent patches for igb that I submitted that might contain the fix you found in the out-of-tree driver, although I'm not sure which one would affect rx CRC errors. Were there other symptoms? Any messages in the log? I'll look through the patches and see if there is anything obvious and get you some commit numbers to try.
There was nothing else that I noticed. If your patches are in 2.6.39-rc4+, I can try
them there perhaps?
Thanks,
Ben
--
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc http://www.candelatech.com
^ permalink raw reply
* Re: [PATCH net-next-2.6 v4 4/5] sctp: Add ASCONF operation on the single-homed host
From: Wei Yongjun @ 2011-04-22 4:00 UTC (permalink / raw)
To: Michio Honda; +Cc: netdev, lksctp-developers
In-Reply-To: <3BDA3586-6A7C-4305-9D41-F146575AC951@sfc.wide.ad.jp>
comment inline.
> SCTP can change the IP address on the single-homed host.
> In this case, the SCTP association transmits an ASCONF packet including addition of the new IP address and deletion of the old address. This patch implements this functionality.
> In this case, the ASCONF chunk is added to the beginning of the queue, because the other chunks cannot be transmitted in this state.
>
> Signed-off-by: Michio Honda <micchie@sfc.wide.ad.jp>
> ---
> diff --git a/include/net/sctp/constants.h b/include/net/sctp/constants.h
> index c70d8cc..d7a4ee3 100644
> --- a/include/net/sctp/constants.h
> +++ b/include/net/sctp/constants.h
> @@ -441,4 +441,8 @@ enum {
> */
> #define SCTP_AUTH_RANDOM_LENGTH 32
>
> +/* ASCONF PARAMETERS */
> +#define SCTP_ASCONF_V4_PARAM_LEN 16
> +#define SCTP_ASCONF_V6_PARAM_LEN 28
> +
> #endif /* __sctp_constants_h__ */
> diff --git a/include/net/sctp/sm.h b/include/net/sctp/sm.h
> index 9352d12..498a3cf 100644
> --- a/include/net/sctp/sm.h
> +++ b/include/net/sctp/sm.h
> @@ -259,6 +259,7 @@ struct sctp_chunk *sctp_process_asconf(struct sctp_association *asoc,
> struct sctp_chunk *asconf);
> int sctp_process_asconf_ack(struct sctp_association *asoc,
> struct sctp_chunk *asconf_ack);
> +void sctp_path_check_and_react(struct sctp_association *, struct sockaddr *);
> struct sctp_chunk *sctp_make_fwdtsn(const struct sctp_association *asoc,
> __u32 new_cum_tsn, size_t nstreams,
> struct sctp_fwdtsn_skip *skiplist);
> diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h
> index cc9185c..400ee8a 100644
> --- a/include/net/sctp/structs.h
> +++ b/include/net/sctp/structs.h
> @@ -1901,6 +1901,9 @@ struct sctp_association {
> * after reaching 4294967295.
> */
> __u32 addip_serial;
> + union sctp_addr *asconf_addr_del_pending;
> + __u32 asconf_del_pending_cid;
useless define for 'asconf_del_pending_cid'.
> + int src_out_of_asoc_ok;
>
> /* SCTP AUTH: list of the endpoint shared keys. These
> * keys are provided out of band by the user applicaton
> diff --git a/net/sctp/associola.c b/net/sctp/associola.c
> index 6b04287..6b19387 100644
> --- a/net/sctp/associola.c
> +++ b/net/sctp/associola.c
> @@ -279,6 +279,9 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a
> asoc->peer.asconf_capable = 0;
> if (sctp_addip_noauth)
> asoc->peer.asconf_capable = 1;
> + asoc->asconf_addr_del_pending = NULL;
> + asoc->asconf_del_pending_cid = 0;
> + asoc->src_out_of_asoc_ok = 0;
>
> /* Create an input queue. */
> sctp_inq_init(&asoc->base.inqueue);
> @@ -443,6 +446,10 @@ void sctp_association_free(struct sctp_association *asoc)
>
> asoc->peer.transport_count = 0;
>
> + /* Free pending address space being deleted */
> + if (asoc->asconf_addr_del_pending != NULL)
> + kfree(asoc->asconf_addr_del_pending);
> +
> /* Free any cached ASCONF_ACK chunk. */
> sctp_assoc_free_asconf_acks(asoc);
>
> diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c
> index 865ce7b..56c97ce 100644
> --- a/net/sctp/ipv6.c
> +++ b/net/sctp/ipv6.c
> @@ -332,6 +332,13 @@ static void sctp_v6_get_saddr(struct sctp_sock *sk,
> matchlen = bmatchlen;
> }
> }
> + if (laddr->state == SCTP_ADDR_NEW && asoc->src_out_of_asoc_ok) {
> + bmatchlen = sctp_v6_addr_match_len(daddr, &laddr->a);
> + if (!baddr || (matchlen < bmatchlen)) {
> + baddr = &laddr->a;
> + matchlen = bmatchlen;
> + }
> + }
> }
>
> if (baddr) {
> diff --git a/net/sctp/outqueue.c b/net/sctp/outqueue.c
> index 26dc005..033ea20 100644
> --- a/net/sctp/outqueue.c
> +++ b/net/sctp/outqueue.c
> @@ -344,7 +344,14 @@ int sctp_outq_tail(struct sctp_outq *q, struct sctp_chunk *chunk)
> break;
> }
> } else {
> - list_add_tail(&chunk->list, &q->control_chunk_list);
> + /* We add the ASCONF for the only one newly added address at
> + * the front of the queue
> + */
> + if (q->asoc->src_out_of_asoc_ok && \
> + chunk->chunk_hdr->type == SCTP_CID_ASCONF)
> + list_add(&chunk->list, &q->control_chunk_list);
> + else
> + list_add_tail(&chunk->list, &q->control_chunk_list);
sctp_outq_tail mean add to the tail, right?
> SCTP_INC_STATS(SCTP_MIB_OUTCTRLCHUNKS);
> }
>
> @@ -850,6 +857,24 @@ static int sctp_outq_flush(struct sctp_outq *q, int rtx_timeout)
> case SCTP_CID_SHUTDOWN:
> case SCTP_CID_ECN_ECNE:
> case SCTP_CID_ASCONF:
> + /* RFC 5061, 5.3
> + * F1) This means that until such time as the ASCONF
> + * containing the add is acknowledged, the sender MUST
> + * NOT use the new IP address as a source for ANY SCTP
> + * packet except on carrying an ASCONF Chunk.
> + */
> + if (asoc->src_out_of_asoc_ok) {
> + SCTP_DEBUG_PRINTK("outq_flush: out_of_asoc_ok, transmit chunk type %d\n",
> + chunk->chunk_hdr->type);
> + packet = &transport->packet;
> + sctp_packet_config(packet, vtag,
> + asoc->peer.ecn_capable);
> + sctp_packet_append_chunk(packet, chunk);
> + error = sctp_packet_transmit(packet);
> + if (error < 0)
> + return error;
> + goto sctp_flush_out;
> + }
> case SCTP_CID_FWD_TSN:
> status = sctp_packet_transmit_chunk(packet, chunk,
> one_packet);
Since the sender MUST NOT use the new IP address as a source for ANY SCTP
packet except on carrying an ASCONF Chunk. And ASCONF chunk can be bundled.
How about this change. If so, you do not need change to sctp_outq_tail();
diff --git a/net/sctp/outqueue.c b/net/sctp/outqueue.c
index 1c88c89..bd6cc9c 100644
--- a/net/sctp/outqueue.c
+++ b/net/sctp/outqueue.c
@@ -754,6 +754,13 @@ static int sctp_outq_flush(struct sctp_outq *q, int rtx_timeout)
*/
list_for_each_entry_safe(chunk, tmp, &q->control_chunk_list, list) {
+ /* RFC 5061, 5.3
+ * F1) This ...
+ */
+ if (q->asoc->src_out_of_asoc_ok &&
+ chunk->chunk_hdr->type != SCTP_CID_ASCONF)
+ continue;
+
list_del_init(&chunk->list);
/* Pick the right transport to use. */
@@ -881,6 +888,9 @@ static int sctp_outq_flush(struct sctp_outq *q, int rtx_timeout)
}
}
+ if (q->asoc->src_out_of_asoc_ok)
+ goto sctp_flush_out;
+
/* Is it OK to send data chunks? */
switch (asoc->state) {
case SCTP_STATE_COOKIE_ECHOED:
> diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c
> index 152976e..b8ec3cc 100644
> --- a/net/sctp/protocol.c
> +++ b/net/sctp/protocol.c
> @@ -510,7 +510,8 @@ static struct dst_entry *sctp_v4_get_dst(struct sctp_association *asoc,
> sctp_v4_dst_saddr(&dst_saddr, dst, htons(bp->port));
> rcu_read_lock();
> list_for_each_entry_rcu(laddr, &bp->address_list, list) {
> - if (!laddr->valid || (laddr->state != SCTP_ADDR_SRC))
> + if (!laddr->valid || (laddr->state != SCTP_ADDR_SRC &&
> + asoc->src_out_of_asoc_ok == 0))
It shoud be:
if (!laddr->valid || (laddr->state == SCTP_ADDR_DEL) ||
laddr->state != SCTP_ADDR_SRC && !asoc->src_out_of_asoc_ok)
continue;
> continue;
> if (sctp_v4_cmp_addr(&dst_saddr, &laddr->a))
> goto out_unlock;
> diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c
> index de98665..581a9f5 100644
> --- a/net/sctp/sm_make_chunk.c
> +++ b/net/sctp/sm_make_chunk.c
> @@ -2651,6 +2651,61 @@ __u32 sctp_generate_tsn(const struct sctp_endpoint *ep)
> return retval;
> }
>
> +void
> +sctp_path_check_and_react(struct sctp_association *asoc, struct sockaddr *sa)
> +{
> + struct sctp_transport *trans;
> + int addrnum, family;
> + struct sctp_sockaddr_entry *saddr;
> + struct sctp_bind_addr *bp;
> + union sctp_addr *tmpaddr;
> +
> + family = sa->sa_family;
> + bp = &asoc->base.bind_addr;
> + addrnum = 0;
> + /* count up the number of local addresses in the same family */
> + list_for_each_entry(saddr, &bp->address_list, list) {
> + if (saddr->a.sa.sa_family == family) {
> + tmpaddr = &saddr->a;
> + if (family == AF_INET6 &&
> + ipv6_addr_type(&tmpaddr->v6.sin6_addr) &
> + IPV6_ADDR_LINKLOCAL) {
> + continue;
> + }
> + addrnum++;
> + }
> + }
> + if (addrnum == 1) {
> + union sctp_addr *tmpaddr;
> + tmpaddr = (union sctp_addr *)sa;
> + SCTP_DEBUG_PRINTK_IPADDR("pcheck_react: only 1 local addr in asoc %p ",
> + " family %d\n", asoc, tmpaddr, family);
> + list_for_each_entry(trans, &asoc->peer.transport_addr_list,
> + transports) {
> + /* reset path information and release refcount to the
> + * dst_entry based on the src change */
> + sctp_transport_hold(trans);
> + trans->cwnd = min(4*asoc->pathmtu,
> + max_t(__u32, 2*asoc->pathmtu, 4380));
> + trans->ssthresh = asoc->peer.i.a_rwnd;
> + trans->rtt = 0;
> + trans->srtt = 0;
> + trans->rttvar = 0;
> + trans->rto = asoc->rto_initial;
> + dst_release(trans->dst);
> + trans->dst = NULL;
> + memset(&trans->saddr, 0, sizeof(union sctp_addr));
> + sctp_transport_route(trans, NULL,
> + sctp_sk(asoc->base.sk));
> + SCTP_DEBUG_PRINTK_IPADDR("we freed dst_entry (asoc: %p dst: ",
> + " trans: %p)\n", asoc, (&trans->ipaddr), trans);
> + trans->rto_pending = 1;
> + sctp_transport_put(trans);
> + }
> + }
> + return;
> +}
> +
> /*
> * ADDIP 3.1.1 Address Configuration Change Chunk (ASCONF)
> * 0 1 2 3
> @@ -2744,11 +2799,24 @@ struct sctp_chunk *sctp_make_asconf_update_ip(struct sctp_association *asoc,
> int addr_param_len = 0;
> int totallen = 0;
> int i;
> + sctp_addip_param_t del_param; /* 8 Bytes (Type 0xC002, Len and CrrID) */
> + struct sctp_af *del_af;
> + int del_addr_param_len = 0;
> + int del_paramlen = sizeof(sctp_addip_param_t);
> + union sctp_addr_param del_addr_param; /* (v4) 8 Bytes, (v6) 20 Bytes */
> + int v4 = 0;
> + int v6 = 0;
you can reuse the af, param_len etc, no need to define new variables.
>
> /* Get total length of all the address parameters. */
> addr_buf = addrs;
> for (i = 0; i < addrcnt; i++) {
> addr = (union sctp_addr *)addr_buf;
> + if (addr != NULL) {
> + if (addr->sa.sa_family == AF_INET)
> + v4 = 1;
> + else if (addr->sa.sa_family == AF_INET6)
> + v6 = 1;
> + }
> af = sctp_get_af_specific(addr->v4.sin_family);
> addr_param_len = af->to_addr_param(addr, &addr_param);
>
> @@ -2757,6 +2825,24 @@ struct sctp_chunk *sctp_make_asconf_update_ip(struct sctp_association *asoc,
>
> addr_buf += af->sockaddr_len;
> }
> + /* Add the length of a pending address being deleted */
> + if (flags == SCTP_PARAM_ADD_IP && asoc->asconf_addr_del_pending) {
> + if ((asoc->asconf_addr_del_pending->sa.sa_family == AF_INET
> + && v4) ||
> + (asoc->asconf_addr_del_pending->sa.sa_family == AF_INET6
> + && v6)) {
This check is not need. instead, you should check whether the address
is support by peer, before add this address to the asoc.
> + del_af = sctp_get_af_specific(
> + asoc->asconf_addr_del_pending->sa.sa_family);
> + del_addr_param_len = del_af->to_addr_param(
> + asoc->asconf_addr_del_pending, &del_addr_param);
> + totallen += del_paramlen;
> + totallen += del_addr_param_len;
> + SCTP_DEBUG_PRINTK("mkasconf_update_ip: now we picked del_pending addr, totallen for all addresses is %d\n",
> + totallen);
> + }
> + }
> + SCTP_DEBUG_PRINTK("mkasconf_update_ip: call mkasconf() for %d bytes\n",
> + totallen);
>
> /* Create an asconf chunk with the required length. */
> retval = sctp_make_asconf(asoc, laddr, totallen);
> @@ -2778,6 +2864,20 @@ struct sctp_chunk *sctp_make_asconf_update_ip(struct sctp_association *asoc,
>
> addr_buf += af->sockaddr_len;
> }
> + if (flags == SCTP_PARAM_ADD_IP && asoc->asconf_addr_del_pending) {
> + addr = asoc->asconf_addr_del_pending;
> + del_af = sctp_get_af_specific(addr->v4.sin_family);
> + del_addr_param_len = del_af->to_addr_param(addr,
> + &del_addr_param);
> + del_param.param_hdr.type = SCTP_PARAM_DEL_IP;
> + del_param.param_hdr.length = htons(del_paramlen +
> + del_addr_param_len);
> + del_param.crr_id = i;
> + asoc->asconf_del_pending_cid = i;
> +
> + sctp_addto_chunk(retval, del_paramlen, &del_param);
> + sctp_addto_chunk(retval, del_addr_param_len, &del_addr_param);
> + }
> return retval;
> }
>
> @@ -3193,16 +3293,37 @@ static void (struct sctp_association *asoc,
> local_bh_enable();
> list_for_each_entry(transport, &asoc->peer.transport_addr_list,
> transports) {
> - if (transport->state == SCTP_ACTIVE)
> + if (transport->state == SCTP_ACTIVE &&
> + !asoc->src_out_of_asoc_ok)
> continue;
> dst_release(transport->dst);
> sctp_transport_route(transport, NULL,
> sctp_sk(asoc->base.sk));
> }
> + asoc->src_out_of_asoc_ok = 0;
> break;
> case SCTP_PARAM_DEL_IP:
> local_bh_disable();
> sctp_del_bind_addr(bp, &addr);
> + if (asoc->asconf_addr_del_pending != NULL) {
> + if ((addr.sa.sa_family == AF_INET) &&
> + (asoc->asconf_addr_del_pending->sa.sa_family ==
> + AF_INET)) {
> + if (asoc->asconf_addr_del_pending->v4.sin_addr.s_addr == addr.v4.sin_addr.s_addr) {
> + kfree(asoc->asconf_addr_del_pending);
> + asoc->asconf_del_pending_cid = 0;
> + asoc->asconf_addr_del_pending = NULL;
> + }
> + } else if ((addr.sa.sa_family == AF_INET6) &&
> + (asoc->asconf_addr_del_pending->sa.sa_family ==
> + AF_INET6)) {
> + if (ipv6_addr_equal(&asoc->asconf_addr_del_pending->v6.sin6_addr, &addr.v6.sin6_addr)) {
> + kfree(asoc->asconf_addr_del_pending);
> + asoc->asconf_del_pending_cid = 0;
> + asoc->asconf_addr_del_pending = NULL;
> + }
> + }
> + }
If you set port to asoc->asconf_addr_del_pending, your can use the following codes:
if (asoc->asconf_addr_del_pending != NULL &&
sctp_cmp_addr_exact(&asoc->asconf_addr_del_pending->a, &addr))) {
kfree(asoc->asconf_addr_del_pending);
asoc->asconf_addr_del_pending = NULL;
}
> local_bh_enable();
> list_for_each_entry(transport, &asoc->peer.transport_addr_list,
> transports) {
> @@ -3293,6 +3414,8 @@ int sctp_process_asconf_ack(struct sctp_association *asoc,
> int no_err = 1;
> int retval = 0;
> __be16 err_code = SCTP_ERROR_NO_ERROR;
> + sctp_addip_param_t *first_asconf_param = NULL;
> + int first_asconf_paramlen;
>
> /* Skip the chunkhdr and addiphdr from the last asconf sent and store
> * a pointer to address parameter.
> @@ -3307,6 +3430,8 @@ int sctp_process_asconf_ack(struct sctp_association *asoc,
> length = ntohs(addr_param->v4.param_hdr.length);
> asconf_param = (sctp_addip_param_t *)((void *)addr_param + length);
> asconf_len -= length;
> + first_asconf_param = asconf_param;
> + first_asconf_paramlen = ntohs(first_asconf_param->param_hdr.length);
>
> /* ADDIP 4.1
> * A8) If there is no response(s) to specific TLV parameter(s), and no
> @@ -3361,6 +3486,35 @@ int sctp_process_asconf_ack(struct sctp_association *asoc,
> asconf_len -= length;
> }
>
> + /* When the source address obviously changes to newly added one, we
> + reset the cwnd to re-probe the path condition
Since we do not do this when the host/peer add/del ip addresses,
remain the peer's cwnd etc. to what it is maybe better.
and this is unnecessary when you just change the address of
the interface.
> + */
> + if (no_err && first_asconf_param->param_hdr.type == SCTP_PARAM_ADD_IP) {
> + if (first_asconf_paramlen == SCTP_ASCONF_V4_PARAM_LEN) {
> + struct sockaddr_in sin;
> +
> + memset(&sin, 0, sizeof(struct sockaddr_in));
> + sin.sin_family = AF_INET;
> + memcpy(&sin.sin_addr.s_addr, first_asconf_param + 1,
> + sizeof(struct in_addr));
> + sctp_path_check_and_react(asoc,
> + (struct sockaddr *)&sin);
> +
> + } else if (first_asconf_paramlen == SCTP_ASCONF_V6_PARAM_LEN) {
> + struct sockaddr_in6 sin6;
> +
> + memset(&sin6, 0, sizeof(struct sockaddr_in6));
> + sin6.sin6_family = AF_INET6;
> + memcpy(&sin6.sin6_addr, first_asconf_param + 1,
> + sizeof(struct in6_addr));
> + sctp_path_check_and_react(asoc,
> + (struct sockaddr *)&sin6);
> + } else {
> + SCTP_DEBUG_PRINTK("funny asconf_paramlen? (%d)\n",
> + first_asconf_paramlen);
> + }
> + }
> +
> /* Free the cached last sent asconf chunk. */
> list_del_init(&asconf->transmitted_list);
> sctp_chunk_free(asconf);
> diff --git a/net/sctp/socket.c b/net/sctp/socket.c
> index 3951a10..2bfe2a9 100644
> --- a/net/sctp/socket.c
> +++ b/net/sctp/socket.c
> @@ -527,6 +527,7 @@ static int sctp_send_asconf_add_ip(struct sock *sk,
> struct list_head *p;
> int i;
> int retval = 0;
> + struct sctp_transport *trans = NULL;
>
> if (!sctp_addip_enable)
> return retval;
> @@ -583,13 +584,10 @@ static int sctp_send_asconf_add_ip(struct sock *sk,
> goto out;
> }
>
> - retval = sctp_send_asconf(asoc, chunk);
> - if (retval)
> - goto out;
> -
> /* Add the new addresses to the bind address list with
> * use_as_src set to 0.
> */
> + SCTP_DEBUG_PRINTK("snd_asconf_addip: next, add_bind_addr with ADDR_NEW flag\n");
> addr_buf = addrs;
> for (i = 0; i < addrcnt; i++) {
> addr = (union sctp_addr *)addr_buf;
> @@ -599,6 +597,28 @@ static int sctp_send_asconf_add_ip(struct sock *sk,
> SCTP_ADDR_NEW, GFP_ATOMIC);
> addr_buf += af->sockaddr_len;
> }
> + list_for_each_entry(trans, &asoc->peer.transport_addr_list,
> + transports) {
> + if (asoc->asconf_addr_del_pending != NULL)
> + /* This ADDIP ASCONF piggybacks DELIP for the
> + * last address, so need to select src addr
> + * from the out_of_asoc addrs
> + */
> + asoc->src_out_of_asoc_ok = 1;
> + /* Clear the source and route cache in the path */
> + memset(&trans->saddr, 0, sizeof(union sctp_addr));
> + dst_release(trans->dst);
> + trans->cwnd = min(4*asoc->pathmtu, max_t(__u32,
> + 2*asoc->pathmtu, 4380));
> + trans->ssthresh = asoc->peer.i.a_rwnd;
> + trans->rto = asoc->rto_initial;
> + trans->rtt = 0;
> + trans->srtt = 0;
> + trans->rttvar = 0;
> + sctp_transport_route(trans, NULL,
> + sctp_sk(asoc->base.sk));
> + }
We should and have done update the route after the ASCONF
be ACKed. So it is unnecessary.
> + retval = sctp_send_asconf(asoc, chunk);
> }
>
> out:
> @@ -711,7 +731,9 @@ static int sctp_send_asconf_del_ip(struct sock *sk,
> struct sctp_sockaddr_entry *saddr;
> int i;
> int retval = 0;
> + int stored = 0;
>
> + chunk = NULL;
> if (!sctp_addip_enable)
> return retval;
>
> @@ -762,8 +784,42 @@ static int sctp_send_asconf_del_ip(struct sock *sk,
> bp = &asoc->base.bind_addr;
> laddr = sctp_find_unmatch_addr(bp, (union sctp_addr *)addrs,
> addrcnt, sp);
> - if (!laddr)
> - continue;
> + if ((laddr == NULL) && (addrcnt == 1)) {
> + union sctp_addr *sa_addr = NULL;
> +
> + if (asoc->asconf_addr_del_pending == NULL) {
> + asoc->asconf_addr_del_pending =
> + kmalloc(sizeof(union sctp_addr),
> + GFP_ATOMIC);
> + memset(asoc->asconf_addr_del_pending, 0,
> + sizeof(union sctp_addr));
> + if (addrs->sa_family == AF_INET) {
> + struct sockaddr_in *sin;
> +
> + sin = (struct sockaddr_in *)addrs;
> + asoc->asconf_addr_del_pending->v4.sin_family = AF_INET;
> + memcpy(&asoc->asconf_addr_del_pending->v4.sin_addr, &sin->sin_addr, sizeof(struct in_addr));
> + } else if (addrs->sa_family == AF_INET6) {
> + struct sockaddr_in6 *sin6;
> +
> + sin6 = (struct sockaddr_in6 *)addrs;
> + asoc->asconf_addr_del_pending->v6.sin6_family = AF_INET6;
> + memcpy(&asoc->asconf_addr_del_pending->v6.sin6_addr, &sin6->sin6_addr, sizeof(struct in6_addr));
> + }
> + sa_addr = (union sctp_addr *)addrs;
> + SCTP_DEBUG_PRINTK_IPADDR("send_asconf_del_ip: keep the last address asoc: %p ",
> + " at %p\n", asoc, sa_addr,
> + asoc->asconf_addr_del_pending);
> + stored = 1;
> + goto skip_mkasconf;
> + } else {
> + SCTP_DEBUG_PRINTK_IPADDR("send_asconf_del_ip: asoc %p, deleting last address ",
> + " is already stored at %p\n", asoc,
> + asoc->asconf_addr_del_pending,
> + asoc->asconf_addr_del_pending);
> + continue;
> + }
> + }
>
> /* We do not need RCU protection throughout this loop
> * because this is done under a socket lock from the
> @@ -776,6 +832,7 @@ static int sctp_send_asconf_del_ip(struct sock *sk,
> goto out;
> }
>
> +skip_mkasconf:
> /* Reset use_as_src flag for the addresses in the bind address
> * list that are to be deleted.
> */
> @@ -797,10 +854,16 @@ static int sctp_send_asconf_del_ip(struct sock *sk,
> list_for_each_entry(transport, &asoc->peer.transport_addr_list,
> transports) {
> dst_release(transport->dst);
> + /* Clear source address cache */
> + memset(&transport->saddr, 0, sizeof(union sctp_addr));
saddr will be filled when select the route, so it it necessary.
> sctp_transport_route(transport, NULL,
> sctp_sk(asoc->base.sk));
> }
>
> + if (stored) {
> + /* We don't need to transmit ASCONF */
> + continue;
> + }
> retval = sctp_send_asconf(asoc, chunk);
> }
> out:
>
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply related
* Re: [PATCH net-next-2.6 v5 5/5] sctp: Add ADD/DEL ASCONF handling at the receiver
From: Wei Yongjun @ 2011-04-22 4:05 UTC (permalink / raw)
To: Michio Honda; +Cc: netdev, lksctp-developers
In-Reply-To: <8F7C47DA-A0A2-48BE-84A7-1D073B5617AE@sfc.wide.ad.jp>
> This patch fixes the problem that the original code cannot delete the remote address where the corresponding transport is currently directed, even when the ASCONF is sent from the other address (this situation happens when the single-homed sender transmits ASCONF with ADD and DEL.)
we should apply this patch first before patch 4, so patch 5 and
patch 4 should change the order in the patchset.
> Signed-off-by: Michio Honda <micchie@sfc.wide.ad.jp>
> ---
> diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c
> index de98665..a9f25d7 100644
> --- a/net/sctp/sm_make_chunk.c
> +++ b/net/sctp/sm_make_chunk.c
> @@ -2990,7 +2990,7 @@ static __be16 sctp_process_asconf_param(struct sctp_association *asoc,
> * an Error Cause TLV set to the new error code 'Request to
> * Delete Source IP Address'
> */
> - if (sctp_cmp_addr_exact(sctp_source(asconf), &addr))
> + if (sctp_cmp_addr_exact(&asconf->source, &addr))
> return SCTP_ERROR_DEL_SRC_IP;
>
> /* Section 4.2.2
>
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply
* Re: [PATCH net-next-2.6 v4 4/5] sctp: Add ASCONF operation on the single-homed host
From: Wei Yongjun @ 2011-04-22 4:10 UTC (permalink / raw)
To: Michio Honda; +Cc: netdev, lksctp-developers
In-Reply-To: <4DB0FD45.2050709@cn.fujitsu.com>
>
> Since the sender MUST NOT use the new IP address as a source for ANY SCTP
> packet except on carrying an ASCONF Chunk. And ASCONF chunk can be bundled.
> How about this change. If so, you do not need change to sctp_outq_tail();
>
> diff --git a/net/sctp/outqueue.c b/net/sctp/outqueue.c
> index 1c88c89..bd6cc9c 100644
> --- a/net/sctp/outqueue.c
> +++ b/net/sctp/outqueue.c
> @@ -754,6 +754,13 @@ static int sctp_outq_flush(struct sctp_outq *q, int rtx_timeout)
> */
>
> list_for_each_entry_safe(chunk, tmp, &q->control_chunk_list, list) {
> + /* RFC 5061, 5.3
> + * F1) This ...
> + */
> + if (q->asoc->src_out_of_asoc_ok &&
> + chunk->chunk_hdr->type != SCTP_CID_ASCONF)
SCTP_CID_ASCONF_ACK should be also allowed, the peer may
send ASCONF to do the same thing at the same time.
> + continue;
> +
> list_del_init(&chunk->list);
>
> /* Pick the right transport to use. */
> @@ -881,6 +888,9 @@ static int sctp_outq_flush(struct sctp_outq *q, int rtx_timeout)
> }
> }
>
> + if (q->asoc->src_out_of_asoc_ok)
> + goto sctp_flush_out;
> +
> /* Is it OK to send data chunks? */
> switch (asoc->state) {
> case SCTP_STATE_COOKIE_ECHOED:
>
>
>
^ permalink raw reply
* Re: [PATCH net-next-2.6 3/3] bonding,ipv4,ipv6,vlan: Handle NETDEV_BONDING_FAILOVER like NETDEV_NOTIFY_PEERS
From: David Miller @ 2011-04-22 4:13 UTC (permalink / raw)
To: fubar; +Cc: bhutchings, andy, kaber, netdev, brian.haley
In-Reply-To: <26398.1303240321@death>
From: Jay Vosburgh <fubar@us.ibm.com>
Date: Tue, 19 Apr 2011 12:12:01 -0700
> Ben Hutchings <bhutchings@solarflare.com> wrote:
>
>>Why would we activate a slave without link up? Perhaps if the previous
>>active slave is removed?
>
> It's special sauce for Infiniband; I don't recall the details
> except that the submitter said that without it the initial gratuitous
> ARP could be lost. I didn't (and still don't) have IB hardware to test
> this on.
I vaguely remember this IB has too, but also forget the details.
If someone would get to the bottom of this and add a nice big comment
to the code, to prevent such difficulties in remembering exactly why we
do this in the future, I would very much appreciate it.
^ permalink raw reply
* Re: [PATCH] bonding: fix bridged bonds in 802.3ad mode
From: David Miller @ 2011-04-22 4:19 UTC (permalink / raw)
To: benjamin.poirier; +Cc: bhutchings, jbohac, netdev, shemminger, fubar, andy
In-Reply-To: <4DB096E0.4010407@polymtl.ca>
From: Benjamin Poirier <benjamin.poirier@polymtl.ca>
Date: Thu, 21 Apr 2011 16:43:12 -0400
> On 21/04/11 03:08 PM, Ben Hutchings wrote:
>> It seems to me that 1e253c3b8a1aeed51eef6fc366812f219b97de65 is bogus
>
> You bet, it's rubbish ;)
I've reverted it from net-2.6 and will send the revert to -stable
too.
Thanks.
^ permalink raw reply
* Re: [PATCH v5] net: bnx2x: convert to hw_features
From: Eric Dumazet @ 2011-04-22 4:51 UTC (permalink / raw)
To: Michał Mirosław; +Cc: netdev, Vladislav Zolotarov, Eilon Greenstein
In-Reply-To: <20110421224134.GB7888@rere.qmqm.pl>
Le vendredi 22 avril 2011 à 00:41 +0200, Michał Mirosław a écrit :
> On Thu, Apr 21, 2011 at 04:52:11PM +0200, Eric Dumazet wrote:
> > Le mardi 12 avril 2011 à 21:38 +0200, Michał Mirosław a écrit :
> > > Since ndo_fix_features callback is postponing features change when
> > > bp->recovery_state != BNX2X_RECOVERY_DONE, netdev_update_features()
> > > has to be called again when this condition changes. Previously,
> > > ethtool_ops->set_flags callback returned -EBUSY in that case
> > > (it's not possible in the new model).
> > >
> > > Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
> > >
> > > v5: - don't delay set_features, as it's rtnl_locked - same as recovery process
> > > v4: - complete bp->rx_csum -> NETIF_F_RXCSUM conversion
> > > - add check for failed ndo_set_features in ndo_open callback
> > > v3: - include NETIF_F_LRO in hw_features
> > > - don't call netdev_update_features() if bnx2x_nic_load() failed
> > > v2: - comment in ndo_fix_features callback
> > > ---
> > I am not sure its related to these changes, but I now have in
> > net-next-2.6 :
>
> > [ 23.674263] ------------[ cut here ]------------
> > [ 23.674266] WARNING: at net/core/dev.c:1318 dev_disable_lro+0x83/0x90()
> > [ 23.674270] Hardware name: ProLiant BL460c G6
> > [ 23.674273] Modules linked in: tg3 libphy sg
> > [ 23.674280] Pid: 3070, comm: sysctl Tainted: G W 2.6.39-rc2-01242-g3ef22b9-dirty #669
> > [ 23.674282] Call Trace:
> > [ 23.674285] [<ffffffff813b94f3>] ? dev_disable_lro+0x83/0x90
> > [ 23.674291] [<ffffffff81042c9b>] warn_slowpath_common+0x8b/0xc0
> > [ 23.674298] [<ffffffff81042ce5>] warn_slowpath_null+0x15/0x20
> > [ 23.674304] [<ffffffff813b94f3>] dev_disable_lro+0x83/0x90
> > [ 23.674309] [<ffffffff81429789>] devinet_sysctl_forward+0x199/0x210
> [...]
>
> Hmm. Looks like something is not allowing to disable LRO. Please check with
> following patch so we can be sure which driver causes this.
>
> Best Regards,
> Michał Mirosław
Yes, obviously, and I suggested roughly the same patch some time ago.
^ permalink raw reply
* Re: [PATCH] net: make WARN_ON in dev_disable_lro() useful
From: Eric Dumazet @ 2011-04-22 5:11 UTC (permalink / raw)
To: Michał Mirosław; +Cc: netdev
In-Reply-To: <20110421224215.9B8AC13909@rere.qmqm.pl>
Le vendredi 22 avril 2011 à 00:42 +0200, Michał Mirosław a écrit :
> Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
> ---
> net/core/dev.c | 3 ++-
> 1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/net/core/dev.c b/net/core/dev.c
> index 3871bf6..3421184 100644
> --- a/net/core/dev.c
> +++ b/net/core/dev.c
> @@ -1315,7 +1315,8 @@ void dev_disable_lro(struct net_device *dev)
> return;
>
> __ethtool_set_flags(dev, flags & ~ETH_FLAG_LRO);
> - WARN_ON(dev->features & NETIF_F_LRO);
> + if (unlikely(dev->features & NETIF_F_LRO))
> + netdev_WARN(dev, "failed to disable LRO!\n");
> }
> EXPORT_SYMBOL(dev_disable_lro);
>
Yes, as suggested one month ago
http://permalink.gmane.org/gmane.linux.network/189951
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
BTW, using unlikely() or likely() in slowpath is not exactly useful,
unless its integrated in macro (WARN_... )
^ permalink raw reply
* Re: [PATCH v4] net: fix hw_features ethtool_ops->set_flags compatibility
From: Eric Dumazet @ 2011-04-22 5:16 UTC (permalink / raw)
To: Michał Mirosław
Cc: netdev, Ben Hutchings, Vladislav Zolotarov, Eilon Greenstein
In-Reply-To: <20110421235921.89D1D13909@rere.qmqm.pl>
Le vendredi 22 avril 2011 à 01:59 +0200, Michał Mirosław a écrit :
> __ethtool_set_flags() was not taking into account features set but not
> user-toggleable.
>
> Since GFLAGS returns masked dev->features, EINVAL is returned when
> passed flags differ to it, and not to wanted_features.
>
> Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
> ---
> This should be the simpler way Ben was talking about.
>
> net/core/ethtool.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/net/core/ethtool.c b/net/core/ethtool.c
> index 13d79f5..d8b1a8d 100644
> --- a/net/core/ethtool.c
> +++ b/net/core/ethtool.c
> @@ -546,12 +546,12 @@ int __ethtool_set_flags(struct net_device *dev, u32 data)
> }
>
> /* allow changing only bits set in hw_features */
> - changed = (data ^ dev->wanted_features) & flags_dup_features;
> + changed = (data ^ dev->features) & flags_dup_features;
> if (changed & ~dev->hw_features)
> return (changed & dev->hw_features) ? -EINVAL : -EOPNOTSUPP;
>
> dev->wanted_features =
> - (dev->wanted_features & ~changed) | data;
> + (dev->wanted_features & ~changed) | (data & dev->hw_features);
>
> __netdev_update_features(dev);
>
Reported-by: Eric Dumazet <eric.dumazet@gmail.com>
Tested-by: Eric Dumazet <eric.dumazet@gmail.com>
Thanks, this solves the bnx2x problem !
^ permalink raw reply
* Re: [PATCH v4] net: fix hw_features ethtool_ops->set_flags compatibility
From: Eric Dumazet @ 2011-04-22 5:27 UTC (permalink / raw)
To: Michał Mirosław
Cc: netdev, Ben Hutchings, Vladislav Zolotarov, Eilon Greenstein
In-Reply-To: <1303449402.13893.6.camel@edumazet-laptop>
Le vendredi 22 avril 2011 à 07:16 +0200, Eric Dumazet a écrit :
> Reported-by: Eric Dumazet <eric.dumazet@gmail.com>
> Tested-by: Eric Dumazet <eric.dumazet@gmail.com>
>
> Thanks, this solves the bnx2x problem !
>
And already in net-next-2.6 ;)
^ permalink raw reply
* Re: [PATCH] netfilter/IPv6: fix DSCP mangle code
From: David Miller @ 2011-04-22 7:08 UTC (permalink / raw)
To: fernando; +Cc: netdev, yoshfuji, jengelh, netfilter-devel
In-Reply-To: <1303455759.2023.39.camel@nausicaa>
From: Fernando Luis Vazquez Cao <fernando@oss.ntt.co.jp>
Date: Fri, 22 Apr 2011 16:02:39 +0900
> The mask indicates the bits one wants to zero out, so it needs to be
> inverted before applying to the original TOS field.
>
> Signed-off-by: Fernando Luis Vazquez Cao <fernando@oss.ntt.co.jp>
> ---
Netfilter patches should be sent to the netfilter developer
list, CC:'d
> diff -urNp linux-2.6.37-orig/net/netfilter/xt_DSCP.c linux-2.6.37/net/netfilter/xt_DSCP.c
> --- linux-2.6.37-orig/net/netfilter/xt_DSCP.c 2011-01-05 09:50:19.000000000 +0900
> +++ linux-2.6.37/net/netfilter/xt_DSCP.c 2011-04-21 16:01:25.801890733 +0900
> @@ -99,7 +99,7 @@ tos_tg6(struct sk_buff *skb, const struc
> u_int8_t orig, nv;
>
> orig = ipv6_get_dsfield(iph);
> - nv = (orig & info->tos_mask) ^ info->tos_value;
> + nv = (orig & ~info->tos_mask) ^ info->tos_value;
>
> if (orig != nv) {
> if (!skb_make_writable(skb, sizeof(struct iphdr)))
>
>
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox