Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 313949 Details for
Bug 454838
LTC:4.8:201714:Update the ehea driver to sync with mainline kernel
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
eHEA device driver update from version 0078-03 to 0078-07
ehea_0078.03-0078.07_rhel48_2.6.9-78.2.patch (text/plain), 6.69 KB, created by
IBM Bug Proxy
on 2008-08-11 11:01:05 UTC
(
hide
)
Description:
eHEA device driver update from version 0078-03 to 0078-07
Filename:
MIME Type:
Creator:
IBM Bug Proxy
Created:
2008-08-11 11:01:05 UTC
Size:
6.69 KB
patch
obsolete
>diff -Nurp -X dontdiff linux-2.6.9-78.2.EL/drivers/net/ehea/ehea.h patched_kernel/drivers/net/ehea/ehea.h >--- linux-2.6.9-78.2.EL/drivers/net/ehea/ehea.h 2008-07-29 16:33:33.000000000 +0200 >+++ patched_kernel/drivers/net/ehea/ehea.h 2008-08-11 11:28:26.000000000 +0200 >@@ -40,7 +40,7 @@ > #include <asm/io.h> > > #define DRV_NAME "ehea" >-#define DRV_VERSION "EHEA_0078-03" >+#define DRV_VERSION "EHEA_0078-07" > > /* eHEA capability flags */ > #define DLPAR_PORT_ADD_REM 1 >@@ -419,6 +419,7 @@ struct ehea_port { > int num_add_tx_qps; > int num_mcs; > int resets; >+ u64 flags; > u64 mac_addr; > u32 logical_port_id; > u32 port_speed; >@@ -441,6 +442,9 @@ struct port_res_cfg { > int max_entries_rq3; > }; > >+enum ehea_flag_bits { >+ __EHEA_DISABLE_PORT_RESET >+}; > > void ehea_set_ethtool_ops(struct net_device *netdev); > int ehea_sense_port_attr(struct ehea_port *port); >diff -Nurp -X dontdiff linux-2.6.9-78.2.EL/drivers/net/ehea/ehea_main.c patched_kernel/drivers/net/ehea/ehea_main.c >--- linux-2.6.9-78.2.EL/drivers/net/ehea/ehea_main.c 2008-07-29 16:33:33.000000000 +0200 >+++ patched_kernel/drivers/net/ehea/ehea_main.c 2008-08-11 11:28:26.000000000 +0200 >@@ -122,47 +122,26 @@ void ehea_dump(void *adr, int len, char > } > } > >+void ehea_schedule_port_reset(struct ehea_port *port) >+{ >+ if (!test_bit(__EHEA_DISABLE_PORT_RESET, &port->flags)) >+ schedule_work(&port->reset_task); >+} >+ > static struct net_device_stats *ehea_get_stats(struct net_device *dev) > { > struct ehea_port *port = netdev_priv(dev); > struct net_device_stats *stats = &port->stats; >- struct hcp_ehea_port_cb2 *cb2; >- u64 hret, rx_packets; > int i; > > memset(stats, 0, sizeof(*stats)); > >- cb2 = kzalloc(PAGE_SIZE, GFP_KERNEL); >- if (!cb2) { >- ehea_error("no mem for cb2"); >- goto out; >- } >+ for (i = 0; i < EHEA_MAX_PORT_RES; i++) >+ stats->tx_packets += port->port_res[i].tx_packets; > >- hret = ehea_h_query_ehea_port(port->adapter->handle, >- port->logical_port_id, >- H_PORT_CB2, H_PORT_CB2_ALL, cb2); >- if (hret != H_SUCCESS) { >- ehea_error("query_ehea_port failed"); >- goto out_herr; >- } >- >- if (netif_msg_hw(port)) >- ehea_dump(cb2, sizeof(*cb2), "net_device_stats"); >- >- rx_packets = 0; >- for (i = 0; i < port->num_def_qps; i++) >- rx_packets += port->port_res[i].rx_packets; >- >- stats->tx_packets = cb2->txucp + cb2->txmcp + cb2->txbcp; >- stats->multicast = cb2->rxmcp; >- stats->rx_errors = cb2->rxuerr; >- stats->rx_bytes = cb2->rxo; >- stats->tx_bytes = cb2->txo; >- stats->rx_packets = rx_packets; >+ for (i = 0; i < EHEA_MAX_PORT_RES; i++) >+ stats->rx_packets += port->port_res[i].rx_packets; > >-out_herr: >- kfree(cb2); >-out: > return stats; > } > >@@ -368,11 +347,6 @@ static int ehea_treat_poll_error(struct > if (cqe->status & EHEA_CQE_STAT_ERR_CRC) > pr->p_stats.err_frame_crc++; > >- if (netif_msg_rx_err(pr->port)) { >- ehea_error("CQE Error for QP %d", pr->qp->init_attr.qp_nr); >- ehea_dump(cqe, sizeof(*cqe), "CQE"); >- } >- > if (rq == 2) { > *processed_rq2 += 1; > skb = get_skb_by_index(pr->rq2_skba.arr, pr->rq2_skba.len, cqe); >@@ -384,8 +358,12 @@ static int ehea_treat_poll_error(struct > } > > if (cqe->status & EHEA_CQE_STAT_FAT_ERR_MASK) { >- ehea_error("Critical receive error. Resetting port."); >- schedule_work(&pr->port->reset_task); >+ if (netif_msg_rx_err(pr->port)) { >+ ehea_error("Critical receive error for QP %d. " >+ "Resetting port.", pr->qp->init_attr.qp_nr); >+ ehea_dump(cqe, sizeof(*cqe), "CQE"); >+ } >+ ehea_schedule_port_reset(pr->port); > return 1; > } > >@@ -563,7 +541,7 @@ static struct ehea_cqe *ehea_proc_cqes(s > ehea_error("Send Completion Error: Resetting port"); > if (netif_msg_tx_err(pr->port)) > ehea_dump(cqe, sizeof(*cqe), "Send CQE"); >- schedule_work(&pr->port->reset_task); >+ ehea_schedule_port_reset(pr->port); > break; > } > >@@ -687,7 +665,7 @@ static irqreturn_t ehea_qp_aff_irq_handl > eqe = ehea_poll_eq(port->qp_eq); > } > >- schedule_work(&port->reset_task); >+ ehea_schedule_port_reset(port); > > return IRQ_HANDLED; > } >@@ -1578,16 +1556,20 @@ static int ehea_set_mac_addr(struct net_ > memcpy(dev->dev_addr, mac_addr->sa_data, dev->addr_len); > > /* Deregister old MAC in pHYP */ >- ret = ehea_broadcast_reg_helper(port, H_DEREG_BCMC); >- if (ret) >- goto out_free; >+ if (port->state == EHEA_PORT_UP) { >+ ret = ehea_broadcast_reg_helper(port, H_DEREG_BCMC); >+ if (ret) >+ goto out_free; >+ } > > port->mac_addr = cb0->port_mac_addr << 16; > > /* Register new MAC in pHYP */ >- ret = ehea_broadcast_reg_helper(port, H_REG_BCMC); >- if (ret) >- goto out_free; >+ if (port->state == EHEA_PORT_UP) { >+ ret = ehea_broadcast_reg_helper(port, H_REG_BCMC); >+ if (ret) >+ goto out_free; >+ } > > ret = 0; > out_free: >@@ -2013,8 +1995,6 @@ static void ehea_vlan_rx_register(struct > goto out; > } > >- memset(cb1->vlan_filter, 0, sizeof(cb1->vlan_filter)); >- > hret = ehea_h_modify_ehea_port(adapter->handle, port->logical_port_id, > H_PORT_CB1, H_PORT_CB1_ALL, cb1); > if (hret != H_SUCCESS) >@@ -2362,11 +2342,14 @@ static int ehea_stop(struct net_device * > if (netif_msg_ifdown(port)) > ehea_info("disabling port %s", dev->name); > >- flush_scheduled_work(); >+ set_bit(__EHEA_DISABLE_PORT_RESET, &port->flags); >+ while (cancel_delayed_work(&port->reset_task)) >+ msleep(10); > down(&port->port_lock); > netif_stop_queue(dev); > ret = ehea_down(dev); > up(&port->port_lock); >+ clear_bit(__EHEA_DISABLE_PORT_RESET, &port->flags); > return ret; > } > >@@ -2404,7 +2387,7 @@ static void ehea_tx_watchdog(struct net_ > struct ehea_port *port = netdev_priv(dev); > > if (netif_carrier_ok(dev)) >- schedule_work(&port->reset_task); >+ ehea_schedule_port_reset(port); > } > > int ehea_sense_adapter_attr(struct ehea_adapter *adapter) >@@ -2694,12 +2677,13 @@ out_err: > > static void ehea_shutdown_single_port(struct ehea_port *port) > { >+ struct ehea_adapter *adapter = port->adapter; > unregister_netdev(port->netdev); > ehea_unregister_port(port); > ehea_broadcast_reg_helper(port, H_DEREG_BCMC); > kfree(port->mc_list); > free_netdev(port->netdev); >- port->adapter->active_ports--; >+ adapter->active_ports--; > } > > static int ehea_setup_ports(struct ehea_adapter *adapter) >diff -Nurp -X dontdiff linux-2.6.9-78.2.EL/drivers/net/ehea/ehea_qmr.h patched_kernel/drivers/net/ehea/ehea_qmr.h >--- linux-2.6.9-78.2.EL/drivers/net/ehea/ehea_qmr.h 2008-07-29 16:33:31.000000000 +0200 >+++ patched_kernel/drivers/net/ehea/ehea_qmr.h 2008-08-11 11:28:26.000000000 +0200 >@@ -139,8 +139,8 @@ struct ehea_rwqe { > #define EHEA_CQE_VLAN_TAG_XTRACT 0x0400 > > #define EHEA_CQE_TYPE_RQ 0x60 >-#define EHEA_CQE_STAT_ERR_MASK 0x721F >-#define EHEA_CQE_STAT_FAT_ERR_MASK 0x1F >+#define EHEA_CQE_STAT_ERR_MASK 0x700F >+#define EHEA_CQE_STAT_FAT_ERR_MASK 0xF > #define EHEA_CQE_STAT_ERR_TCP 0x4000 > #define EHEA_CQE_STAT_ERR_IP 0x2000 > #define EHEA_CQE_STAT_ERR_CRC 0x1000
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 454838
: 313949 |
324303
|
325696
|
326116