return (isotp_bc_flags(so) == 0);
 }
 
-static bool isotp_register_txecho(struct isotp_sock *so)
-{
-       /* all modes but SF_BROADCAST register for tx echo skbs */
-       return (isotp_bc_flags(so) != CAN_ISOTP_SF_BROADCAST);
-}
-
 static enum hrtimer_restart isotp_rx_timer_handler(struct hrtimer *hrtimer)
 {
        struct isotp_sock *so = container_of(hrtimer, struct isotp_sock,
        lock_sock(sk);
 
        /* remove current filters & unregister */
-       if (so->bound && isotp_register_txecho(so)) {
+       if (so->bound) {
                if (so->ifindex) {
                        struct net_device *dev;
 
                can_rx_register(net, dev, rx_id, SINGLE_MASK(rx_id),
                                isotp_rcv, sk, "isotp", sk);
 
-       if (isotp_register_txecho(so)) {
-               /* no consecutive frame echo skb in flight */
-               so->cfecho = 0;
+       /* no consecutive frame echo skb in flight */
+       so->cfecho = 0;
 
-               /* register for echo skb's */
-               can_rx_register(net, dev, tx_id, SINGLE_MASK(tx_id),
-                               isotp_rcv_echo, sk, "isotpe", sk);
-       }
+       /* register for echo skb's */
+       can_rx_register(net, dev, tx_id, SINGLE_MASK(tx_id),
+                       isotp_rcv_echo, sk, "isotpe", sk);
 
        dev_put(dev);
 
        case NETDEV_UNREGISTER:
                lock_sock(sk);
                /* remove current filters & unregister */
-               if (so->bound && isotp_register_txecho(so)) {
+               if (so->bound) {
                        if (isotp_register_rxid(so))
                                can_rx_unregister(dev_net(dev), dev, so->rxid,
                                                  SINGLE_MASK(so->rxid),