Commit d563e7a2 authored by David S. Miller's avatar David S. Miller

Merge branch 'qed-fixes'

Sudarsana Reddy Kalluru says:

====================
qed*: Fix series.

The patch series fixes few issues in the qed/qede drivers.
Please consider applying this series to "net".
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 7e85dc8c ff54d5cd
...@@ -255,9 +255,8 @@ qed_dcbx_get_app_protocol_type(struct qed_hwfn *p_hwfn, ...@@ -255,9 +255,8 @@ qed_dcbx_get_app_protocol_type(struct qed_hwfn *p_hwfn,
*type = DCBX_PROTOCOL_ROCE_V2; *type = DCBX_PROTOCOL_ROCE_V2;
} else { } else {
*type = DCBX_MAX_PROTOCOL_TYPE; *type = DCBX_MAX_PROTOCOL_TYPE;
DP_ERR(p_hwfn, DP_ERR(p_hwfn, "No action required, App TLV entry = 0x%x\n",
"No action required, App TLV id = 0x%x app_prio_bitmap = 0x%x\n", app_prio_bitmap);
id, app_prio_bitmap);
return false; return false;
} }
...@@ -1479,8 +1478,8 @@ static u8 qed_dcbnl_getcap(struct qed_dev *cdev, int capid, u8 *cap) ...@@ -1479,8 +1478,8 @@ static u8 qed_dcbnl_getcap(struct qed_dev *cdev, int capid, u8 *cap)
*cap = 0x80; *cap = 0x80;
break; break;
case DCB_CAP_ATTR_DCBX: case DCB_CAP_ATTR_DCBX:
*cap = (DCB_CAP_DCBX_LLD_MANAGED | DCB_CAP_DCBX_VER_CEE | *cap = (DCB_CAP_DCBX_VER_CEE | DCB_CAP_DCBX_VER_IEEE |
DCB_CAP_DCBX_VER_IEEE | DCB_CAP_DCBX_STATIC); DCB_CAP_DCBX_STATIC);
break; break;
default: default:
*cap = false; *cap = false;
...@@ -1548,8 +1547,6 @@ static u8 qed_dcbnl_getdcbx(struct qed_dev *cdev) ...@@ -1548,8 +1547,6 @@ static u8 qed_dcbnl_getdcbx(struct qed_dev *cdev)
if (!dcbx_info) if (!dcbx_info)
return 0; return 0;
if (dcbx_info->operational.enabled)
mode |= DCB_CAP_DCBX_LLD_MANAGED;
if (dcbx_info->operational.ieee) if (dcbx_info->operational.ieee)
mode |= DCB_CAP_DCBX_VER_IEEE; mode |= DCB_CAP_DCBX_VER_IEEE;
if (dcbx_info->operational.cee) if (dcbx_info->operational.cee)
......
...@@ -201,8 +201,9 @@ void qed_ll2b_complete_rx_packet(void *cxt, struct qed_ll2_comp_rx_data *data) ...@@ -201,8 +201,9 @@ void qed_ll2b_complete_rx_packet(void *cxt, struct qed_ll2_comp_rx_data *data)
skb = build_skb(buffer->data, 0); skb = build_skb(buffer->data, 0);
if (!skb) { if (!skb) {
rc = -ENOMEM; DP_INFO(cdev, "Failed to build SKB\n");
goto out_post; kfree(buffer->data);
goto out_post1;
} }
data->u.placement_offset += NET_SKB_PAD; data->u.placement_offset += NET_SKB_PAD;
...@@ -224,8 +225,14 @@ void qed_ll2b_complete_rx_packet(void *cxt, struct qed_ll2_comp_rx_data *data) ...@@ -224,8 +225,14 @@ void qed_ll2b_complete_rx_packet(void *cxt, struct qed_ll2_comp_rx_data *data)
cdev->ll2->cbs->rx_cb(cdev->ll2->cb_cookie, skb, cdev->ll2->cbs->rx_cb(cdev->ll2->cb_cookie, skb,
data->opaque_data_0, data->opaque_data_0,
data->opaque_data_1); data->opaque_data_1);
} else {
DP_VERBOSE(p_hwfn, (NETIF_MSG_RX_STATUS | NETIF_MSG_PKTDATA |
QED_MSG_LL2 | QED_MSG_STORAGE),
"Dropping the packet\n");
kfree(buffer->data);
} }
out_post1:
/* Update Buffer information and update FW producer */ /* Update Buffer information and update FW producer */
buffer->data = new_data; buffer->data = new_data;
buffer->phys_addr = new_phys_addr; buffer->phys_addr = new_phys_addr;
......
...@@ -567,8 +567,16 @@ static irqreturn_t qed_single_int(int irq, void *dev_instance) ...@@ -567,8 +567,16 @@ static irqreturn_t qed_single_int(int irq, void *dev_instance)
/* Fastpath interrupts */ /* Fastpath interrupts */
for (j = 0; j < 64; j++) { for (j = 0; j < 64; j++) {
if ((0x2ULL << j) & status) { if ((0x2ULL << j) & status) {
hwfn->simd_proto_handler[j].func( struct qed_simd_fp_handler *p_handler =
hwfn->simd_proto_handler[j].token); &hwfn->simd_proto_handler[j];
if (p_handler->func)
p_handler->func(p_handler->token);
else
DP_NOTICE(hwfn,
"Not calling fastpath handler as it is NULL [handler #%d, status 0x%llx]\n",
j, status);
status &= ~(0x2ULL << j); status &= ~(0x2ULL << j);
rc = IRQ_HANDLED; rc = IRQ_HANDLED;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment