* [PATCH v3 09/27] HFI: Add HFI window resource tracking
From: dykmanj @ 2011-04-21 21:38 UTC (permalink / raw)
To: netdev
Cc: Jim Dykman, Piyush Chaudhary, Fu-Chung Chang, William S. Cadden,
Wen C. Chen, Scot Sakolish, Jian Xiao, Carol L. Soto,
Sarah J. Sheppard
In-Reply-To: <1303421937-2325-1-git-send-email-dykmanj@linux.vnet.ibm.com>
From: Jim Dykman <dykmanj@linux.vnet.ibm.com>
An HFI window is very roughly similar to an infiniband UD queue pair.
Signed-off-by: Piyush Chaudhary <piyushc@linux.vnet.ibm.com>
Signed-off-by: Jim Dykman <dykmanj@linux.vnet.ibm.com>
Signed-off-by: Fu-Chung Chang <fcchang@linux.vnet.ibm.com>
Signed-off-by: William S. Cadden <wscadden@linux.vnet.ibm.com>
Signed-off-by: Wen C. Chen <winstonc@linux.vnet.ibm.com>
Signed-off-by: Scot Sakolish <sakolish@linux.vnet.ibm.com>
Signed-off-by: Jian Xiao <jian@linux.vnet.ibm.com>
Signed-off-by: Carol L. Soto <clsoto@linux.vnet.ibm.com>
Signed-off-by: Sarah J. Sheppard <sjsheppa@linux.vnet.ibm.com>
---
drivers/net/hfi/core/hfidd_adpt.c | 64 ++++++++++++++++++++++++++++++++++++
drivers/net/hfi/core/hfidd_proto.h | 2 +
include/linux/hfi/hfidd_adpt.h | 10 ++++++
include/linux/hfi/hfidd_client.h | 27 +++++++++++++++
include/linux/hfi/hfidd_internal.h | 43 ++++++++++++++++++++++++
5 files changed, 146 insertions(+), 0 deletions(-)
diff --git a/drivers/net/hfi/core/hfidd_adpt.c b/drivers/net/hfi/core/hfidd_adpt.c
index 487ef0e..8e3f5af 100644
--- a/drivers/net/hfi/core/hfidd_adpt.c
+++ b/drivers/net/hfi/core/hfidd_adpt.c
@@ -66,6 +66,16 @@ int hfidd_alloc_adapter(struct hfidd_acs **adpt, dev_t devno, void *uiop)
goto err_exit0;
*adpt = p_acs;
+
+ /* alloc window structures */
+ ret = hfidd_alloc_windows(p_acs);
+ if (ret) {
+ dev_printk(KERN_ERR, p_acs->hfidd_dev,
+ "hfidd_alloc_adapter: hfidd_alloc_windows failed, "
+ "ret = 0x%x\n", ret);
+ goto err_exit0;
+ }
+
return 0;
err_exit0:
@@ -76,9 +86,63 @@ err_exit0:
void hfidd_free_adapter(struct hfidd_acs *p_acs)
{
+ hfidd_free_windows(p_acs);
kfree(p_acs);
}
+int hfidd_alloc_windows(struct hfidd_acs *p_acs)
+{
+ int i;
+
+ p_acs->win = kzalloc(sizeof(*p_acs->win) * p_acs->dds.window_num,
+ GFP_KERNEL);
+
+ if (p_acs->win == NULL) {
+ dev_printk(KERN_ERR, p_acs->hfidd_dev,
+ "hfidd_alloc_windows: kzalloc p_acs->win failed\n");
+ return -ENOMEM;
+ }
+
+ for (i = 0; i < p_acs->dds.window_num; i++) {
+ p_acs->win[i] = kzalloc(sizeof(*(p_acs->win[i])),
+ GFP_KERNEL);
+ if (p_acs->win[i] == NULL) {
+ dev_printk(KERN_ERR, p_acs->hfidd_dev,
+ "hfidd_alloc_windows: kzalloc win 0x%x "
+ "failed\n", i);
+ hfidd_free_windows(p_acs);
+ return -ENOMEM;
+ }
+
+ /* Initialize window fields */
+ spin_lock_init(&(p_acs->win[i]->win_lock));
+
+ p_acs->win[i]->ai = p_acs->index;
+ p_acs->win[i]->index = p_acs->dds.window_start + i;
+
+ if (p_acs->win[i]->index < (p_acs->dds.window_start +
+ MAX_D_WIN_PER_HFI)) {
+ p_acs->win[i]->type = HFIDD_DYNAMIC_WIN;
+ } else {
+ p_acs->win[i]->type = HFIDD_RESERVE_WIN;
+ }
+ p_acs->win[i]->state = WIN_AVAILABLE;
+ }
+ return 0;
+}
+
+void hfidd_free_windows(struct hfidd_acs *p_acs)
+{
+ int i;
+
+ for (i = 0; i < p_acs->dds.window_num; i++) {
+ kfree(p_acs->win[i]);
+ p_acs->win[i] = NULL;
+ }
+ kfree(p_acs->win);
+ p_acs->win = NULL;
+}
+
/* Allocate the page for the HCALL */
int hfidd_get_phyp_page(struct hfidd_acs *p_acs, caddr_t *page, caddr_t *laddr,
int size)
diff --git a/drivers/net/hfi/core/hfidd_proto.h b/drivers/net/hfi/core/hfidd_proto.h
index 320f41f..c61387e 100644
--- a/drivers/net/hfi/core/hfidd_proto.h
+++ b/drivers/net/hfi/core/hfidd_proto.h
@@ -35,6 +35,8 @@
int hfidd_alloc_adapter(struct hfidd_acs **adpt, dev_t, void *uiop);
void hfidd_free_adapter(struct hfidd_acs *p_acs);
+int hfidd_alloc_windows(struct hfidd_acs *p_acs);
+void hfidd_free_windows(struct hfidd_acs *p_acs);
int hfidd_init_adapter(struct hfidd_acs *p_acs, void *uiop);
int hfidd_age_hcall(u64 time_start);
int hfidd_get_phyp_page(struct hfidd_acs *p_acs, caddr_t *page,
diff --git a/include/linux/hfi/hfidd_adpt.h b/include/linux/hfi/hfidd_adpt.h
index e3271e9..babdb14 100644
--- a/include/linux/hfi/hfidd_adpt.h
+++ b/include/linux/hfi/hfidd_adpt.h
@@ -47,4 +47,14 @@
#define HFI_GOING_UNAVAIL 2
#define HFI_UNAVAIL 3
+/* HFI window states */
+#define WIN_AVAILABLE 0
+#define WIN_RESERVED 1
+#define WIN_OPENED 2
+#define WIN_SUSPENDED 3
+#define WIN_ERROR 4
+#define WIN_HERROR 5
+#define WIN_PENDING 6
+#define WIN_FAIL_CLOSE 7
+
#endif /* _HFIDD_ADPT_H_ */
diff --git a/include/linux/hfi/hfidd_client.h b/include/linux/hfi/hfidd_client.h
index b2ebd01..c3c8fef 100644
--- a/include/linux/hfi/hfidd_client.h
+++ b/include/linux/hfi/hfidd_client.h
@@ -64,6 +64,33 @@ struct hfi_req_hdr {
};
#define HFIDD_REQ_HDR_SIZE sizeof(struct hfi_req_hdr)
+struct fifo_info {
+ struct hfi_64b eaddr;
+ unsigned long long size; /* bytes */
+};
+
+#define HFIDD_IP_WIN 1 /* IP windows get broadcasts forwarded
+ to them... */
+#define HFIDD_KERNEL_WIN 2 /* ... other kernel windows do not */
+#define HFIDD_RESERVE_WIN 3 /* Must be reserved by job scheduler */
+#define HFIDD_DYNAMIC_WIN 4 /* First come, first served. Window# is
+ returned */
+struct hfi_client_info {
+ struct hfi_req_hdr hdr;
+
+ unsigned int window;
+ unsigned int win_type; /* HFIDD_*_WIN */
+ unsigned int job_id;
+ unsigned int protection_key_flag;
+ unsigned int protection_key;
+ unsigned int local_isrid; /* Output */
+ struct fifo_info sfifo;
+ struct fifo_info rfifo;
+ struct hfi_64b sfifo_finish_vec;
+ unsigned int sfifo_lkey; /* Output */
+ struct hfi_64b mmio_regs; /* Output */
+};
+
#define MAX_TORRENTS 1
#define MAX_HFI_PER_TORRENT 2
#define MAX_HFIS (MAX_TORRENTS * MAX_HFI_PER_TORRENT)
diff --git a/include/linux/hfi/hfidd_internal.h b/include/linux/hfi/hfidd_internal.h
index 0cc8c88..420d55a 100644
--- a/include/linux/hfi/hfidd_internal.h
+++ b/include/linux/hfi/hfidd_internal.h
@@ -59,9 +59,13 @@
#include <asm/pgalloc.h>
#include <asm/ibmebus.h>
#include <linux/kthread.h>
+
#include <linux/hfi/hfidd_client.h>
#include <linux/hfi/hfidd_adpt.h>
#include <linux/hfi/hfidd_hcalls.h>
+
+#define MAX_D_WIN_PER_HFI (p_acs->dds.num_d_windows)
+
#define HFIDD_DEV_NAME "hfi"
#define HFIDD_CLASS_NAME "hfi"
@@ -76,6 +80,44 @@ struct hfidd_dds {
unsigned long long fw_ec_level; /* Firmware Level */
};
+struct hfidd_fifo {
+ unsigned long long eaddr;
+ unsigned long long size;
+};
+
+#define IRQ_NAME_SIZE 20
+
+struct hfidd_window {
+ spinlock_t win_lock; /* lock for window */
+ int index;
+ unsigned int type; /* dynamic/scheduled */
+ int state;
+
+ unsigned int ai; /* index to p_acs */
+ unsigned int is_ip;
+
+ unsigned int job_id;
+ unsigned int pid;
+ unsigned int protection_key_flag; /* by job/task */
+
+ unsigned int recv_intr; /* Recv interrupt */
+ unsigned int send_intr; /* Send interrupt */
+ char recv_name[IRQ_NAME_SIZE];
+ char send_name[IRQ_NAME_SIZE];
+
+ uid_t uid;
+
+ struct hfi_client_info client_info; /* From user input */
+ struct win_open_info *win_open_info_p; /* virtual addr
+ OPEN_WINDOW hcall */
+ caddr_t win_open_info_laddr; /* logical addr
+ OPEN_WINDOW hcall */
+ unsigned long long mmio_regs; /* logical addr from
+ OPEN WINDOW hcall */
+ struct hfidd_vlxmem *sfifo_x_tab;
+ struct hfidd_vlxmem *rfifo_x_tab;
+};
+
#define HFI_DEVICE_NAME_MAX 8
/* hfi global */
struct hfidd_acs {
@@ -87,6 +129,7 @@ struct hfidd_acs {
unsigned int isr;
+ struct hfidd_window **win;
struct device *hfidd_dev;
struct hfidd_dds dds;
};
--
1.7.3.5
^ permalink raw reply related
* [PATCH v3 17/27] HFI: Set up and call the open window hypercall
From: dykmanj @ 2011-04-21 21:38 UTC (permalink / raw)
To: netdev
Cc: Jim Dykman, Piyush Chaudhary, Fu-Chung Chang, William S. Cadden,
Wen C. Chen, Scot Sakolish, Jian Xiao, Carol L. Soto,
Sarah J. Sheppard
In-Reply-To: <1303421937-2325-1-git-send-email-dykmanj@linux.vnet.ibm.com>
From: Jim Dykman <dykmanj@linux.vnet.ibm.com>
Signed-off-by: Piyush Chaudhary <piyushc@linux.vnet.ibm.com>
Signed-off-by: Jim Dykman <dykmanj@linux.vnet.ibm.com>
Signed-off-by: Fu-Chung Chang <fcchang@linux.vnet.ibm.com>
Signed-off-by: William S. Cadden <wscadden@linux.vnet.ibm.com>
Signed-off-by: Wen C. Chen <winstonc@linux.vnet.ibm.com>
Signed-off-by: Scot Sakolish <sakolish@linux.vnet.ibm.com>
Signed-off-by: Jian Xiao <jian@linux.vnet.ibm.com>
Signed-off-by: Carol L. Soto <clsoto@linux.vnet.ibm.com>
Signed-off-by: Sarah J. Sheppard <sjsheppa@linux.vnet.ibm.com>
---
drivers/net/hfi/core/hfidd_window.c | 179 +++++++++++++++++++++++++++++++++++
include/linux/hfi/hfidd_hcalls.h | 2 +
2 files changed, 181 insertions(+), 0 deletions(-)
diff --git a/drivers/net/hfi/core/hfidd_window.c b/drivers/net/hfi/core/hfidd_window.c
index 6d90af6..c20277b 100644
--- a/drivers/net/hfi/core/hfidd_window.c
+++ b/drivers/net/hfi/core/hfidd_window.c
@@ -359,6 +359,105 @@ static int hfi_validate_window_parm(struct hfidd_acs *p_acs,
return 0;
}
+/*
+ * Setup a page for phyp with the window parameters needed for
+ * OPEN WINDOW hcall
+ */
+int hfi_build_window_info(struct hfidd_acs *p_acs, struct hfidd_window *win_p)
+{
+ caddr_t laddr;
+
+#define WIN_INFO (win_p->win_open_info_p)
+#define CLIENT_INFO (win_p->client_info)
+
+ /* OPEN WINDOW hcall requires a page to pass arguments */
+ win_p->win_open_info_p = (struct win_open_info *)
+ __get_free_pages(GFP_KERNEL, get_order(PAGE_SIZE_4K));
+ if (win_p->win_open_info_p == NULL) {
+
+ dev_printk(KERN_ERR, p_acs->hfidd_dev,
+ "hfi_build_window_info: ___get_free_pages failed\n");
+ return -ENOMEM;
+ }
+ memset((void *)(win_p->win_open_info_p), 0, PAGE_SIZE_4K);
+
+ /* Translate virtual adress into logical addres */
+ laddr = (caddr_t)__pa((caddr_t)win_p->win_open_info_p);
+
+ win_p->win_open_info_laddr = laddr;
+ WIN_INFO->job_id = CLIENT_INFO.job_id;
+ WIN_INFO->protection_domain = win_p->job_id;
+
+ WIN_INFO->sfifo_base_eaddr = CLIENT_INFO.sfifo.eaddr.use.allu;
+ WIN_INFO->sfifo_lkey = win_p->sfifo_x_tab->l_key;
+ WIN_INFO->sfifo_size = CLIENT_INFO.sfifo.size;
+ WIN_INFO->sfifo_finish_vec = CLIENT_INFO.sfifo_finish_vec.use.allu;
+
+ WIN_INFO->rfifo_base_eaddr = CLIENT_INFO.rfifo.eaddr.use.allu;
+ WIN_INFO->rfifo_lkey = win_p->rfifo_x_tab->l_key;
+ WIN_INFO->rfifo_size = CLIENT_INFO.rfifo.size;
+
+ /* Save IP context */
+ WIN_INFO->is_ip_window = win_p->is_ip;
+ if (win_p->is_ip) {
+ WIN_INFO->multicast_enable = HFI_MULTICAST_ENABLE;
+ WIN_INFO->disable_src_isr_id_stamp = 0;
+ WIN_INFO->logical_port_id_valid = 0;
+ WIN_INFO->logical_port_id = 0;
+ }
+
+ return 0;
+}
+
+/* Free the phyp page used at OPEN WINDOW hcall */
+static inline void hfi_destroy_window_info(struct hfidd_acs *p_acs,
+ struct hfidd_window *win_p)
+{
+ free_pages((unsigned long)win_p->win_open_info_p,
+ get_order(PAGE_SIZE_4K));
+ win_p->win_open_info_p = NULL;
+}
+
+/* Call to OPEN WINDOW hcall */
+static int hfi_hcall_to_open_window(struct hfidd_acs *p_acs,
+ struct hfidd_window *win_p)
+{
+ int rc = 0;
+ long long hvrc = 0;
+ u64 ummio_regs;
+ u64 pmmio_regs;
+ u64 send_intr;
+ u64 recv_intr;
+
+ hvrc = hfi_open_window(p_acs->dds.hfi_id,
+ win_p->index,
+ H_OPEN,
+ (u64)win_p->win_open_info_laddr,
+ &ummio_regs,
+ &pmmio_regs,
+ &send_intr,
+ &recv_intr);
+
+ if (hvrc != H_SUCCESS) {
+ if (hvrc == H_HARDWARE) {
+ win_p->state = WIN_HERROR;
+ rc = -EIO;
+ } else {
+ rc = -EINVAL;
+ }
+ dev_printk(KERN_ERR, p_acs->hfidd_dev,
+ "hfi_hcall_to_open_window: OPEN WINDOW failed, "
+ "hvrc=0x%llx\n", hvrc);
+ return rc;
+ }
+
+ /* Copy mmio_regs logical page from OPEN_WINDOW hcall */
+ win_p->mmio_regs = ummio_regs;
+ win_p->send_intr = (unsigned int)send_intr;
+ win_p->recv_intr = (unsigned int)recv_intr;
+
+ return 0;
+}
/*
* Map the Effective Address pages for Memory Regions.
@@ -573,6 +672,31 @@ sfifo_err:
return rc;
}
+/* Free all the window memory regions */
+static int hfi_takedown_window_in_MMU(struct hfidd_acs *p_acs,
+ unsigned int is_userspace, struct hfidd_window *win_p)
+{
+ int rc = 0;
+
+ rc = hfi_unregister_MMU(p_acs, win_p->rfifo_x_tab);
+ if (rc != 0) {
+ dev_printk(KERN_ERR, p_acs->hfidd_dev,
+ "hfi_takedown_window_in_MMU: rfifo mr failed,"
+ "rc = 0x%x\n", rc);
+ return rc;
+ }
+
+ rc = hfi_unregister_MMU(p_acs, win_p->sfifo_x_tab);
+ if (rc != 0) {
+ dev_printk(KERN_ERR, p_acs->hfidd_dev,
+ "hfi_takedown_window_in_MMU: sfifo mr failed,"
+ "rc = 0x%x\n", rc);
+ return rc;
+ }
+
+ return rc;
+}
+
static int hfi_xlate_fifos(struct hfidd_acs *p_acs,
unsigned int is_userspace,
struct hfidd_window *win_p,
@@ -701,6 +825,19 @@ static int hfi_alloc_win_resource(struct hfidd_acs *p_acs,
return 0;
}
+static int hfi_destroy_window_parm(struct hfidd_acs *p_acs,
+ unsigned int is_userspace,
+ struct hfidd_window *win_p,
+ struct hfi_client_info *client_p)
+{
+ int rc = 0;
+
+ hfi_destroy_window_info(p_acs, win_p);
+
+ rc = hfi_takedown_window_in_MMU(p_acs, is_userspace, win_p);
+ return rc;
+}
+
static int hfi_setup_window_parm(struct hfidd_acs *p_acs,
unsigned int is_userspace,
struct hfidd_window *win_p,
@@ -719,8 +856,20 @@ static int hfi_setup_window_parm(struct hfidd_acs *p_acs,
"failed, rc = 0x%x\n", rc);
goto setup_window_parm_err1;
}
+
+ /* Build window information for OPEN WINDOW hcall */
+ rc = hfi_build_window_info(p_acs, win_p);
+ if (rc) {
+ dev_printk(KERN_ERR, p_acs->hfidd_dev,
+ "hfi_setup_window_parm: hfi_build_window_info "
+ "failed, rc = 0x%x\n", rc);
+ goto setup_window_parm_err2;
+ }
+
return 0;
+setup_window_parm_err2:
+ hfi_takedown_window_in_MMU(p_acs, is_userspace, win_p);
setup_window_parm_err1:
return rc;
}
@@ -783,9 +932,39 @@ int hfidd_open_window_func(struct hfidd_acs *p_acs, unsigned int is_userspace,
goto hfidd_open_window_func_err3;
}
+ rc = hfi_hcall_to_open_window(p_acs, win_p);
+ if (rc) {
+ dev_printk(KERN_ERR, p_acs->hfidd_dev,
+ "hfidd_open_window_func: hfi_hcall_to_open_window "
+ "failed, rc = 0x%x\n", rc);
+ goto hfidd_open_window_func_err4;
+ }
+
+ /* tell user the local ISR id */
+ local_p->local_isrid = p_acs->isr;
+ win_p->client_info.local_isrid = p_acs->isr;
+
+ /* Copy out the client info back to user */
+ rc = hfi_copy_to_user((void *)out_p, (void *)local_p,
+ is_userspace, sizeof(struct hfi_client_info));
+ if (rc) {
+ dev_printk(KERN_ERR, p_acs->hfidd_dev,
+ "hfidd_open_window_func: hfi_copy_to_user "
+ "failed, rc = 0x%x\n", rc);
+ goto hfidd_open_window_func_err4;
+ }
+
+ spin_lock(&(win_p->win_lock));
+ /* Update the window information */
+ win_p->pid = current->tgid;
+ win_p->state = WIN_OPENED;
+ spin_unlock(&(win_p->win_lock));
+
kfree(local_p);
return rc;
+hfidd_open_window_func_err4:
+ hfi_destroy_window_parm(p_acs, is_userspace, win_p, local_p);
hfidd_open_window_func_err3:
hfi_free_win_resource(p_acs, is_userspace, win_p, local_p);
hfidd_open_window_func_err2:
diff --git a/include/linux/hfi/hfidd_hcalls.h b/include/linux/hfi/hfidd_hcalls.h
index a97bb5e..1e007c5 100644
--- a/include/linux/hfi/hfidd_hcalls.h
+++ b/include/linux/hfi/hfidd_hcalls.h
@@ -70,6 +70,8 @@
#define HFI_ACCESS_CTL_SHIFT 32
+#define HFI_MULTICAST_ENABLE 1
+
struct win_open_info {
/* Hyp Feedback */
unsigned long long hypervisor_capabilities;
--
1.7.3.5
^ permalink raw reply related
* [PATCH v3 06/27] HFI: Add DD calls to START/STOP INTERFACE HCALLs
From: dykmanj @ 2011-04-21 21:38 UTC (permalink / raw)
To: netdev
Cc: Jim Dykman, Piyush Chaudhary, Fu-Chung Chang, William S. Cadden,
Wen C. Chen, Scot Sakolish, Jian Xiao, Carol L. Soto,
Sarah J. Sheppard
In-Reply-To: <1303421937-2325-1-git-send-email-dykmanj@linux.vnet.ibm.com>
From: Jim Dykman <dykmanj@linux.vnet.ibm.com>
Signed-off-by: Piyush Chaudhary <piyushc@linux.vnet.ibm.com>
Signed-off-by: Jim Dykman <dykmanj@linux.vnet.ibm.com>
Signed-off-by: Fu-Chung Chang <fcchang@linux.vnet.ibm.com>
Signed-off-by: William S. Cadden <wscadden@linux.vnet.ibm.com>
Signed-off-by: Wen C. Chen <winstonc@linux.vnet.ibm.com>
Signed-off-by: Scot Sakolish <sakolish@linux.vnet.ibm.com>
Signed-off-by: Jian Xiao <jian@linux.vnet.ibm.com>
Signed-off-by: Carol L. Soto <clsoto@linux.vnet.ibm.com>
Signed-off-by: Sarah J. Sheppard <sjsheppa@linux.vnet.ibm.com>
---
drivers/net/hfi/core/hfidd_init.c | 97 +++++++++++++++++++++++++++++++++++++
1 files changed, 97 insertions(+), 0 deletions(-)
diff --git a/drivers/net/hfi/core/hfidd_init.c b/drivers/net/hfi/core/hfidd_init.c
index d181d97..bbfc477 100644
--- a/drivers/net/hfi/core/hfidd_init.c
+++ b/drivers/net/hfi/core/hfidd_init.c
@@ -318,6 +318,93 @@ hfidd_create_devices_error0:
return rc;
}
+/*
+ * Disable message passing to each adapter by calling the
+ * Stop Interface hcall.
+ */
+static void hfidd_stop_adapter(void)
+{
+ int i;
+
+ for (i = 0; i < MAX_HFIS; i++) {
+ hfidd_stop_interface(hfidd_global.p_acs[i],
+ hfidd_global.p_acs[i]->dds.hfi_id);
+ }
+}
+
+/*
+ * Query the interface to check the logical state of HFI.
+ * Enable message passing to each adapter by calling Start
+ * Interface hcall.
+ */
+static int hfidd_start_adapter(void)
+{
+ unsigned long long hfi_state;
+ int i, j;
+ int rc = 0;
+
+ for (i = 0; i < MAX_HFIS; i++) {
+ rc = hfidd_query_interface(hfidd_global.p_acs[i], COMP_QUERY,
+ hfidd_global.p_acs[i]->dds.hfi_id, &hfi_state);
+ if (hfi_state != NOT_STARTED) {
+ rc = hfidd_stop_interface(hfidd_global.p_acs[i],
+ hfidd_global.p_acs[i]->dds.hfi_id);
+ if (rc) {
+ dev_printk(KERN_ERR,
+ hfidd_global.p_acs[i]->hfidd_dev,
+ "%s: hfidd_start_adapter:"
+ " hfidd_stop_interface failed rc = "
+ " 0x%x\n", hfidd_global.p_acs[i]->name,
+ rc);
+ }
+
+ rc = hfidd_query_interface(hfidd_global.p_acs[i],
+ COMP_QUERY,
+ hfidd_global.p_acs[i]->dds.hfi_id,
+ &hfi_state);
+ if (hfi_state != NOT_STARTED) {
+ dev_printk(KERN_ERR,
+ hfidd_global.p_acs[i]->hfidd_dev,
+ "%s: hfidd_start_adapter: query"
+ " interface bad state 0x%llx\n",
+ hfidd_global.p_acs[i]->name, hfi_state);
+ return -EIO;
+ }
+ }
+
+ }
+
+ for (i = 0; i < MAX_HFIS; i++) {
+ rc = hfidd_start_interface(hfidd_global.p_acs[i]);
+ if (rc) {
+ dev_printk(KERN_ERR, hfidd_global.p_acs[i]->hfidd_dev,
+ "%s: hfidd_start_adapter: "
+ "hfidd_start_interface failed rc = "
+ "%d\n", hfidd_global.p_acs[i]->name, rc);
+ goto hfidd_start_adapter_err;
+ }
+
+ /* query interface to get src ISR */
+ rc = hfidd_query_interface(hfidd_global.p_acs[i], COMP_QUERY,
+ hfidd_global.p_acs[i]->dds.hfi_id, &hfi_state);
+ if (rc) {
+ dev_printk(KERN_ERR, hfidd_global.p_acs[i]->hfidd_dev,
+ "%s: hfidd_start_adapter: "
+ "hfidd_query_interface failed rc = %d\n",
+ hfidd_global.p_acs[i]->name, rc);
+ goto hfidd_start_adapter_err;
+ }
+ }
+ return 0;
+
+hfidd_start_adapter_err:
+ for (j = 0; j < i; j++) {
+ hfidd_stop_interface(hfidd_global.p_acs[j],
+ hfidd_global.p_acs[j]->dds.hfi_id);
+ }
+ return rc;
+}
+
static int __init hfidd_mod_init(void)
{
int rc = 0;
@@ -338,9 +425,18 @@ static int __init hfidd_mod_init(void)
goto error1;
}
+ rc = hfidd_start_adapter();
+ if (rc < 0) {
+ printk(KERN_ERR "%s: hfidd_mod_init: hfidd_start_adapter failed"
+ " rc = %d\n", HFIDD_DEV_NAME, rc);
+ goto error2;
+ }
+
printk(KERN_INFO "IBM hfi device driver loaded sucessfully\n");
return 0;
+error2:
+ hfidd_destroy_devices();
error1:
hfidd_destroy_class();
return rc;
@@ -348,6 +444,7 @@ error1:
static void __exit hfidd_mod_exit(void)
{
+ hfidd_stop_adapter();
hfidd_destroy_devices();
hfidd_destroy_class();
}
--
1.7.3.5
^ permalink raw reply related
* Re: [PATCHv4] usbnet: Resubmit interrupt URB once if halted
From: Alan Stern @ 2011-04-21 21:40 UTC (permalink / raw)
To: Oliver Neukum
Cc: Paul Stewart, netdev-u79uwXL29TY76Z2rM5mHXA,
linux-usb-u79uwXL29TY76Z2rM5mHXA, davem-fT/PcQaiUtIeIZ0/mPfg9Q,
greg-U8xfFu+wG4EAvxtiuMwx3w
In-Reply-To: <201104212200.26551.oliver-GvhC2dPhHPQdnm+yROfE0A@public.gmane.org>
On Thu, 21 Apr 2011, Oliver Neukum wrote:
> Am Donnerstag, 21. April 2011, 16:03:34 schrieb Alan Stern:
> > On Tue, 19 Apr 2011, Paul Stewart wrote:
>
> > > This version of the patch moves the urb submit directly into
> > > usbnet_resume. Is it okay to submit a GFP_KERNEL urb from
> > > usbnet_resume()?
>
> Suppose a device of two interfaces one of them storage is autosuspended.
> GFP_KERNEL in the first device to be resumed triggers a pageout to the
> suspended storage device.
True enough, I had forgotten about that. A resume routine should
always use GFP_NOIO, not GFP_KERNEL.
In fact this restriction is true in general, not just for USB devices
containing a mass-storage interface. The backing device for an evicted
page might not be resumed until later on in the resume sequence.
Alan Stern
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
* linux-next: build failure after merge of the final tree (net tree related)
From: Stephen Rothwell @ 2011-04-21 22:10 UTC (permalink / raw)
To: David Miller, netdev
Cc: linux-next, linux-kernel, "Michał Mirosław"
[-- Attachment #1: Type: text/plain, Size: 439 bytes --]
Hi all,
After merging the final tree, today's linux-next build (powerpc chrp32_defconfig)
failed like this:
drivers/net/mv643xx_eth.c: In function 'port_start':
drivers/net/mv643xx_eth.c:2250: error: 'dev' undeclared (first use in this function)
Caused by commit aad59c431b77 ("net: mv643xx: convert to hw_features").
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply
* Re: [PATCH v5] net: bnx2x: convert to hw_features
From: Michał Mirosław @ 2011-04-21 22:15 UTC (permalink / raw)
To: Ben Hutchings
Cc: Vladislav Zolotarov, Eric Dumazet, netdev@vger.kernel.org,
Eilon Greenstein
In-Reply-To: <1303413559.3165.55.camel@bwh-desktop>
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.
Best Regards,
Michał Mirosław
^ permalink raw reply
* [PATCH] iMX: Fix for missed MII interrupts and MDIO timeouts when FEC is in STOP
From: Matteo Fortini @ 2011-04-21 22:17 UTC (permalink / raw)
To: netdev
We are experiencing unrecoverable timeouts if we disconnect a cable from the
FEC. This patch solves the issue by keeping the Ethernet enabled even in
STOP. The RM doesn't state it, but i seems that if disabled, the Ethernet is
not issuing interrupts to the core.
(See
http://forums.freescale.com/t5/i-MX-Microprocessors/iMX28-Network-MDIO-timeout-recovery-and-lost-IRQs/td-p/73309
)
The patch is against Freescale iMX tree from opensource.freescale.com/git
---
drivers/net/fec.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/drivers/net/fec.c b/drivers/net/fec.c
index d0e2e69..26ea72d 100644
--- a/drivers/net/fec.c
+++ b/drivers/net/fec.c
@@ -121,8 +121,10 @@
#if defined(CONFIG_FEC_1588) && defined(CONFIG_ARCH_MX28)
#define FEC_DEFAULT_IMASK (FEC_ENET_TXF | FEC_ENET_RXF | FEC_ENET_MII | \
FEC_ENET_TS_AVAIL | FEC_ENET_TS_TIMER)
+#define FEC_STOP_IMASK (FEC_ENET_MII)
#else
#define FEC_DEFAULT_IMASK (FEC_ENET_TXF | FEC_ENET_RXF | FEC_ENET_MII)
+#define FEC_STOP_IMASK (FEC_ENET_MII)
#endif
/* The FEC stores dest/src/type, data, and checksum for receive packets.
@@ -1409,6 +1411,9 @@ fec_stop(struct net_device *dev)
writel(1, fep->hwp + FEC_ECNTRL);
udelay(10);
+ /* Reactivate the controller to get the IRQs */
+ writel(0x00000002, fep->hwp + FEC_ECNTRL);
+
#ifdef CONFIG_ARCH_MXS
/* Check MII or RMII */
if (fep->phy_interface == PHY_INTERFACE_MODE_RMII)
@@ -1423,7 +1428,7 @@ fec_stop(struct net_device *dev)
writel(fep->phy_speed, fep->hwp + FEC_MII_SPEED);
if (fep->ptimer_present)
fec_ptp_stop(fep->ptp_priv);
- writel(FEC_DEFAULT_IMASK, fep->hwp + FEC_IMASK);
+ writel(FEC_STOP_IMASK, fep->hwp + FEC_IMASK);
netif_stop_queue(dev);
fep->link = 0;
--
1.7.4.2
^ permalink raw reply related
* Re: linux-next: build failure after merge of the final tree (net tree related)
From: David Miller @ 2011-04-21 22:19 UTC (permalink / raw)
To: sfr; +Cc: netdev, linux-next, linux-kernel, mirq-linux
In-Reply-To: <20110422081008.e7ebab59.sfr@canb.auug.org.au>
From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Fri, 22 Apr 2011 08:10:08 +1000
> Hi all,
>
> After merging the final tree, today's linux-next build (powerpc chrp32_defconfig)
> failed like this:
>
> drivers/net/mv643xx_eth.c: In function 'port_start':
> drivers/net/mv643xx_eth.c:2250: error: 'dev' undeclared (first use in this function)
>
> Caused by commit aad59c431b77 ("net: mv643xx: convert to hw_features").
I just pushed the following fix, thanks!
--------------------
mv643xx_eth: Fix build regression.
>From Stephen Rothwell:
--------------------
After merging the final tree, today's linux-next build (powerpc chrp32_defconfig)
failed like this:
drivers/net/mv643xx_eth.c: In function 'port_start':
drivers/net/mv643xx_eth.c:2250: error: 'dev' undeclared (first use in this function)
Caused by commit aad59c431b77 ("net: mv643xx: convert to hw_features").
--------------------
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
drivers/net/mv643xx_eth.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c
index 29605a3..57c2ac0 100644
--- a/drivers/net/mv643xx_eth.c
+++ b/drivers/net/mv643xx_eth.c
@@ -2247,7 +2247,7 @@ static void port_start(struct mv643xx_eth_private *mp)
* frames to RX queue #0, and include the pseudo-header when
* calculating receive checksums.
*/
- mv643xx_eth_set_features(dev, dev->features);
+ mv643xx_eth_set_features(mp->dev, mp->dev->features);
/*
* Treat BPDUs as normal multicasts, and disable partition mode.
--
1.7.4.3
^ permalink raw reply related
* Re: [PATCH v2 02/27] HFI: Add HFI adapter control structure
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: <1303129145.5282.1030.camel@localhost>
On 4/18/2011 8:19 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>
>>
>> Alloc/free of hfidd_acs to track the state of each HFI
> [...]
>> --- /dev/null
>> +++ b/drivers/net/hfi/core/hfidd_adpt.c
> [...]
>> +int hfidd_alloc_adapter(struct hfidd_acs **adpt, dev_t devno, void *uiop)
>> +{
>> +
>> + struct hfidd_acs *p_acs = NULL;
>> +
>> + p_acs = kzalloc(sizeof(*p_acs), GFP_KERNEL);
>> + if (p_acs == NULL)
>> + return -ENOMEM;
>> +
>> + p_acs->dev_num = devno;
>> + p_acs->index = MINOR(devno);
>> + p_acs->state = HFI_INVALID;
>> + snprintf(p_acs->name, HFI_DEVICE_NAME_MAX - 1,
>> + "%s%d", HFIDD_DEV_NAME, p_acs->index);
>
> snprintf() always null-terminates so the buffer length should be
> specified as HFI_DEVICE_NAME_MAX or sizeof(p_acs->name).
>
Ok.
> [...]
>> --- a/drivers/net/hfi/core/hfidd_init.c
>> +++ b/drivers/net/hfi/core/hfidd_init.c
> [...]
>> static int __init hfidd_mod_init(void)
>> {
>> int rc = 0;
>>
>> + hfidd_global.acs_cnt = 0;
>> +
>> rc = hfidd_create_class();
>> if (rc < 0) {
>> printk(KERN_ERR "%s: hfidd_mod_init: hfidd_create_class failed"
>> @@ -129,12 +172,26 @@ static int __init hfidd_mod_init(void)
>> return -1;
>> }
>>
>> + rc = hfidd_create_devices();
>> + if (rc < 0) {
>> + printk(KERN_ERR "%s: hfidd_mod_init: hfidd_create_devices"
>> + " failed rc = %d\n", HFIDD_DEV_NAME, rc);
>> + goto error1;
>> + }
>> +
>> printk(KERN_INFO "IBM hfi device driver loaded sucessfully\n");
>> return 0;
>> +
>> +error1:
>> + hfidd_destroy_class();
>> +
>> + /* Returning -1 so insmod will fail */
>> + return -1;
>> }
> [...]
>
> Should be 'return rc'. Never return -1 as a generic failure; it means
> -EPERM.
>
Ok
> Ben.
>
Jim
^ permalink raw reply
* Re: [PATCH v5] net: bnx2x: convert to hw_features
From: Michał Mirosław @ 2011-04-21 22:41 UTC (permalink / raw)
To: Eric Dumazet; +Cc: netdev, Vladislav Zolotarov, Eilon Greenstein
In-Reply-To: <1303397531.3685.16.camel@edumazet-laptop>
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
^ permalink raw reply
* [PATCH] net: make WARN_ON in dev_disable_lro() useful
From: Michał Mirosław @ 2011-04-21 22:42 UTC (permalink / raw)
To: netdev
In-Reply-To: <20110421224134.GB7888@rere.qmqm.pl>
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);
--
1.7.2.5
^ permalink raw reply related
* Re: [PATCH v5] net: bnx2x: convert to hw_features
From: Ben Hutchings @ 2011-04-21 22:52 UTC (permalink / raw)
To: Michał Mirosław
Cc: Vladislav Zolotarov, Eric Dumazet, netdev@vger.kernel.org,
Eilon Greenstein
In-Reply-To: <20110421221548.GA7888@rere.qmqm.pl>
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!
Ben.
--
Ben Hutchings, Senior Software Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
^ permalink raw reply
* [PATCH] net: fix hw_features ethtool_ops->set_flags compatibility
From: Michał Mirosław @ 2011-04-21 23:12 UTC (permalink / raw)
To: netdev; +Cc: Ben Hutchings, Eric Dumazet, Vladislav Zolotarov,
Eilon Greenstein
In-Reply-To: <1303426342.3464.184.camel@localhost>
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..a8c5b3e 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 & flags_dup_features & ~dev->hw_features;
+ changed = data ^ forced ^ dev->wanted_features;
if (changed & ~dev->hw_features)
return (changed & dev->hw_features) ? -EINVAL : -EOPNOTSUPP;
--
1.7.2.5
^ permalink raw reply related
* Re: [PATCH v5] net: bnx2x: convert to hw_features
From: Michał Mirosław @ 2011-04-21 23:14 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;
Yes! This doesn't take account of features enabled but not togglable.
> 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!
Maybe something I just sent will do.
Best Regards,
Michał Mirosław
^ permalink raw reply
* [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
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