From 2794baae1202b2b2da9ee58275f0770a9de28783 Mon Sep 17 00:00:00 2001 From: "Mutalik Desai, Suprasad" <suprasad.desai@intel.com> Date: Wed, 21 Feb 2018 03:28:51 +0100 Subject: [PATCH] Merge pull request #252 in SW_PON/linux from bugfix/UGW_SW-22411-kernel-panic-while-sending-jumbo-frames-of-size-1576-to-3000 to xrx500 UGW_SW-22411-kernel-panic-while-sending-jumbo-frames-of-size-1576-to-3000 * commit 'fb23f89981fbe80a0aa85aa2e03ed8ca852998a8': UGW_SW-22411: set the correct frame length for standard buffer and use proper API --- drivers/net/ethernet/lantiq/cqm/grx500/cbm.c | 8 ++++++-- drivers/net/ethernet/lantiq/ltq_eth_drv_xrx500.c | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/lantiq/cqm/grx500/cbm.c b/drivers/net/ethernet/lantiq/cqm/grx500/cbm.c index c65c21225..9276a6fc9 100644 --- a/drivers/net/ethernet/lantiq/cqm/grx500/cbm.c +++ b/drivers/net/ethernet/lantiq/cqm/grx500/cbm.c @@ -748,8 +748,12 @@ void *data, u32 frag_size, gfp_t priority) buf_size = (((u32)data >= g_cbm_buff.std_buf_addr) && ((u32)data <= std_buff_end)) ? CBM_STD_BUF_SIZE : CONFIG_CBM_JBO_PKT_SIZE; - if (frag_size > buf_size) - panic("Packet length exceeds the buffer size\n"); + if (frag_size > buf_size) { + LOGF_KLOG_ERROR("frag_size = %d received in buffer = %x \n", + frag_size, (unsigned int)data); + LOGF_KLOG_ERROR("packet length exceeds the buffer size\n"); + return NULL; + } return __build_skb(data, buf_size); } diff --git a/drivers/net/ethernet/lantiq/ltq_eth_drv_xrx500.c b/drivers/net/ethernet/lantiq/ltq_eth_drv_xrx500.c index 7677bf97c..21e03cc61 100644 --- a/drivers/net/ethernet/lantiq/ltq_eth_drv_xrx500.c +++ b/drivers/net/ethernet/lantiq/ltq_eth_drv_xrx500.c @@ -492,7 +492,7 @@ static int ltq_enable_gsw_r_pmac_jumbo(struct net_device *dev) gsw_reg_set_bit(ops, 0xd05, 0x8); /* Set the frame length */ - gsw_reg_set_bit(ops, 0xd06, 1728); + gsw_reg_set_val(ops, 0xd06, 1630); return 0; } -- GitLab