merged. Bruce
In message: [linux-yocto][linux-yocto v5.4/standard/nxp-s32g2xx][PATCH] can: flexcan: drop repetitive execution can_rx_offload_add_timestamp on 03/12/2020 Xulin Sun wrote: > To fix below call trace: > [ 5748.193968] list_add double add: new=ffffff886ba61010, > prev=ffffff886ba60060, next=ffffff886ba61010. > [ 5748.203102] WARNING: CPU: 3 PID: 20775 at lib/list_debug.c:29 > __list_add_valid+0x94/0xa0 > [ 5748.210900] Modules linked in: xt_nat xt_tcpudp xt_conntrack xt_MASQUERADE > [ 5748.238942] CPU: 3 PID: 20775 Comm: ip Tainted: G W > 5.4.78-yocto-standard #1 > [ 5748.247268] Hardware name: Freescale S32G274 (DT) > [ 5748.251958] pstate: 20000005 (nzCv daif -PAN -UAO) > [ 5748.256732] pc : __list_add_valid+0x94/0xa0 > [ 5748.260898] lr : __list_add_valid+0x94/0xa0 > [ 5748.265061] sp : ffffffc0173232d0 > [ 5748.268359] x29: ffffffc0173232d0 x28: ffffffc010ffb8c8 > [ 5748.273654] x27: ffffff8855b34a10 x26: 000000000000000c > [ 5748.278949] x25: 000000000000000c x24: 0000000000000030 > [ 5748.284243] x23: ffffff886ba60060 x22: ffffff886ba61010 > [ 5748.289539] x21: ffffff886ba61010 x20: ffffff886ba60000 > [ 5748.294833] x19: ffffff886ba60eb0 x18: 0000000000000030 > [ 5748.300128] x17: 0000000000000000 x16: 0000000000000000 > [ 5748.305423] x15: ffffff885c172270 x14: 3036303036616236 > [ 5748.310717] x13: 3838666666666666 x12: 3d76657270202c30 > [ 5748.316013] x11: 3130313661623638 x10: 0000000000001720 > [ 5748.321307] x9 : 0000000000000000 x8 : ffffffc011702000 > [ 5748.326601] x7 : 0000000000000000 x6 : ffffffc011701000 > [ 5748.331897] x5 : ffffffc011701558 x4 : 0000000000000000 > [ 5748.337191] x3 : 0000000000000000 x2 : ffffff885c171d40 > [ 5748.342486] x1 : ff4d4c22b9328000 x0 : 0000000000000000 > [ 5748.347782] Call trace: > [ 5748.350216] __list_add_valid+0x94/0xa0 > [ 5748.354036] netif_napi_add+0x100/0x164 > [ 5748.357855] can_rx_offload_init_queue+0x90/0xf0 > [ 5748.362452] can_rx_offload_add_timestamp+0x60/0x80 > [ 5748.367315] flexcan_open+0x234/0x3d0 > [ 5748.370962] __dev_open+0x108/0x1b0 > [ 5748.374432] __dev_change_flags+0x1b4/0x220 > [ 5748.378598] dev_change_flags+0x40/0x80 > [ 5748.382419] do_setlink+0x1f8/0x930 > [ 5748.385888] __rtnl_newlink+0x51c/0x7c4 > [ 5748.389708] rtnl_newlink+0x58/0x80 > [ 5748.393179] rtnetlink_rcv_msg+0x18c/0x490 > [ 5748.397263] netlink_rcv_skb+0x60/0x120 > [ 5748.401082] rtnetlink_rcv+0x2c/0x3c > [ 5748.404638] netlink_unicast+0x184/0x224 > [ 5748.408544] netlink_sendmsg+0x1a0/0x340 > [ 5748.412453] ____sys_sendmsg+0x1c8/0x214 > [ 5748.416356] ___sys_sendmsg+0x94/0xec > [ 5748.420001] __sys_sendmsg+0x7c/0xd0 > [ 5748.423559] __arm64_sys_sendmsg+0x30/0x3c > [ 5748.427643] el0_svc_common.constprop.0+0x78/0x13c > [ 5748.432413] el0_svc_handler+0x54/0xc0 > [ 5748.436148] el0_svc+0x8/0x208 > [ 5748.439183] irq event stamp: 0 > [ 5748.442224] hardirqs last enabled at (0): [<0000000000000000>] 0x0 > [ 5748.448476] hardirqs last disabled at (0): [<ffffffc0100b23e4>] > copy_process+0x2e4/0x1000 > [ 5748.456633] softirqs last enabled at (0): [<ffffffc0100b23e4>] > copy_process+0x2e4/0x1000 > [ 5748.464790] softirqs last disabled at (0): [<0000000000000000>] 0x0 > [ 5748.471038] ---[ end trace 790f7c34ea6cae43 ]--- > > In the function flexcan_open(), can_rx_offload_add_timestamp() and others > code are called > two times and caused the above call trace, keeping one time is enough. > > Signed-off-by: Xulin Sun <[email protected]> > --- > drivers/net/can/flexcan.c | 39 --------------------------------------- > 1 file changed, 39 deletions(-) > > diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c > index 650165745fbe..540a43e666e0 100755 > --- a/drivers/net/can/flexcan.c > +++ b/drivers/net/can/flexcan.c > @@ -1635,45 +1635,6 @@ static int flexcan_open(struct net_device *dev) > FLEXCAN_NAPI_WEIGHT); > } > > - if (err) > - goto out_free_irq; > - > - priv->mb_size = sizeof(struct flexcan_mb) + CAN_MAX_DLEN; > - priv->mb_count = (sizeof(priv->regs->mb[0]) / priv->mb_size) + > - (sizeof(priv->regs->mb[1]) / priv->mb_size); > - > - if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) > - priv->tx_mb_reserved = > - flexcan_get_mb(priv, > FLEXCAN_TX_MB_RESERVED_OFF_TIMESTAMP); > - else > - priv->tx_mb_reserved = > - flexcan_get_mb(priv, FLEXCAN_TX_MB_RESERVED_OFF_FIFO); > - priv->tx_mb_idx = priv->mb_count - 1; > - priv->tx_mb = flexcan_get_mb(priv, priv->tx_mb_idx); > - > - priv->reg_imask1_default = 0; > - priv->reg_imask2_default = FLEXCAN_IFLAG_MB(priv->tx_mb_idx); > - > - priv->offload.mailbox_read = flexcan_mailbox_read; > - > - if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) { > - u64 imask; > - > - priv->offload.mb_first = FLEXCAN_RX_MB_OFF_TIMESTAMP_FIRST; > - priv->offload.mb_last = priv->mb_count - 2; > - > - imask = GENMASK_ULL(priv->offload.mb_last, > - priv->offload.mb_first); > - priv->reg_imask1_default |= imask; > - priv->reg_imask2_default |= imask >> 32; > - > - err = can_rx_offload_add_timestamp(dev, &priv->offload); > - } else { > - priv->reg_imask1_default |= FLEXCAN_IFLAG_RX_FIFO_OVERFLOW | > - FLEXCAN_IFLAG_RX_FIFO_AVAILABLE; > - err = can_rx_offload_add_fifo(dev, &priv->offload, > - FLEXCAN_NAPI_WEIGHT); > - } > if (err) > goto out_free_irq; > > -- > 2.17.1 >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#9226): https://lists.yoctoproject.org/g/linux-yocto/message/9226 Mute This Topic: https://lists.yoctoproject.org/mt/78676223/21656 Group Owner: [email protected] Unsubscribe: https://lists.yoctoproject.org/g/linux-yocto/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
