ecu 87 net/can/j1939/address-claim.c struct j1939_ecu *ecu; ecu 93 net/can/j1939/address-claim.c ecu = j1939_ecu_get_by_name(priv, skcb->addr.src_name); ecu 94 net/can/j1939/address-claim.c if (!ecu) ecu 97 net/can/j1939/address-claim.c if (ecu->addr != skcb->addr.sa) ecu 99 net/can/j1939/address-claim.c j1939_ecu_unmap(ecu); ecu 100 net/can/j1939/address-claim.c j1939_ecu_put(ecu); ecu 129 net/can/j1939/address-claim.c struct j1939_ecu *ecu, *prev; ecu 167 net/can/j1939/address-claim.c ecu = j1939_ecu_get_by_name_locked(priv, name); ecu 168 net/can/j1939/address-claim.c if (!ecu && j1939_address_is_unicast(skcb->addr.sa)) ecu 169 net/can/j1939/address-claim.c ecu = j1939_ecu_create_locked(priv, name); ecu 171 net/can/j1939/address-claim.c if (IS_ERR_OR_NULL(ecu)) ecu 175 net/can/j1939/address-claim.c j1939_ecu_timer_cancel(ecu); ecu 178 net/can/j1939/address-claim.c j1939_ecu_unmap_locked(ecu); ecu 183 net/can/j1939/address-claim.c if (ecu->addr != skcb->addr.sa) ecu 184 net/can/j1939/address-claim.c j1939_ecu_unmap_locked(ecu); ecu 185 net/can/j1939/address-claim.c ecu->addr = skcb->addr.sa; ecu 189 net/can/j1939/address-claim.c if (ecu->name > prev->name) { ecu 190 net/can/j1939/address-claim.c j1939_ecu_unmap_locked(ecu); ecu 200 net/can/j1939/address-claim.c j1939_ecu_timer_start(ecu); ecu 202 net/can/j1939/address-claim.c j1939_ecu_put(ecu); ecu 210 net/can/j1939/address-claim.c struct j1939_ecu *ecu; ecu 217 net/can/j1939/address-claim.c ecu = j1939_ecu_get_by_addr(priv, skcb->addr.sa); ecu 218 net/can/j1939/address-claim.c if (ecu) { ecu 219 net/can/j1939/address-claim.c skcb->addr.src_name = ecu->name; ecu 220 net/can/j1939/address-claim.c j1939_ecu_put(ecu); ecu 225 net/can/j1939/address-claim.c ecu = j1939_ecu_get_by_addr(priv, skcb->addr.da); ecu 226 net/can/j1939/address-claim.c if (ecu) { ecu 227 net/can/j1939/address-claim.c skcb->addr.dst_name = ecu->name; ecu 228 net/can/j1939/address-claim.c j1939_ecu_put(ecu); ecu 19 net/can/j1939/bus.c struct j1939_ecu *ecu = container_of(kref, struct j1939_ecu, kref); ecu 20 net/can/j1939/bus.c struct j1939_priv *priv = ecu->priv; ecu 22 net/can/j1939/bus.c list_del(&ecu->list); ecu 23 net/can/j1939/bus.c kfree(ecu); ecu 27 net/can/j1939/bus.c void j1939_ecu_put(struct j1939_ecu *ecu) ecu 29 net/can/j1939/bus.c kref_put(&ecu->kref, __j1939_ecu_release); ecu 32 net/can/j1939/bus.c static void j1939_ecu_get(struct j1939_ecu *ecu) ecu 34 net/can/j1939/bus.c kref_get(&ecu->kref); ecu 37 net/can/j1939/bus.c static bool j1939_ecu_is_mapped_locked(struct j1939_ecu *ecu) ecu 39 net/can/j1939/bus.c struct j1939_priv *priv = ecu->priv; ecu 43 net/can/j1939/bus.c return j1939_ecu_find_by_addr_locked(priv, ecu->addr) == ecu; ecu 48 net/can/j1939/bus.c static void j1939_ecu_map_locked(struct j1939_ecu *ecu) ecu 50 net/can/j1939/bus.c struct j1939_priv *priv = ecu->priv; ecu 55 net/can/j1939/bus.c if (!j1939_address_is_unicast(ecu->addr)) ecu 58 net/can/j1939/bus.c ent = &priv->ents[ecu->addr]; ecu 60 net/can/j1939/bus.c if (ent->ecu) { ecu 62 net/can/j1939/bus.c ecu->addr, ecu->name); ecu 66 net/can/j1939/bus.c j1939_ecu_get(ecu); ecu 67 net/can/j1939/bus.c ent->ecu = ecu; ecu 68 net/can/j1939/bus.c ent->nusers += ecu->nusers; ecu 72 net/can/j1939/bus.c void j1939_ecu_unmap_locked(struct j1939_ecu *ecu) ecu 74 net/can/j1939/bus.c struct j1939_priv *priv = ecu->priv; ecu 79 net/can/j1939/bus.c if (!j1939_address_is_unicast(ecu->addr)) ecu 82 net/can/j1939/bus.c if (!j1939_ecu_is_mapped_locked(ecu)) ecu 85 net/can/j1939/bus.c ent = &priv->ents[ecu->addr]; ecu 86 net/can/j1939/bus.c ent->ecu = NULL; ecu 87 net/can/j1939/bus.c ent->nusers -= ecu->nusers; ecu 88 net/can/j1939/bus.c j1939_ecu_put(ecu); ecu 91 net/can/j1939/bus.c void j1939_ecu_unmap(struct j1939_ecu *ecu) ecu 93 net/can/j1939/bus.c write_lock_bh(&ecu->priv->lock); ecu 94 net/can/j1939/bus.c j1939_ecu_unmap_locked(ecu); ecu 95 net/can/j1939/bus.c write_unlock_bh(&ecu->priv->lock); ecu 104 net/can/j1939/bus.c if (priv->ents[i].ecu) ecu 105 net/can/j1939/bus.c j1939_ecu_unmap_locked(priv->ents[i].ecu); ecu 109 net/can/j1939/bus.c void j1939_ecu_timer_start(struct j1939_ecu *ecu) ecu 114 net/can/j1939/bus.c j1939_ecu_get(ecu); ecu 117 net/can/j1939/bus.c hrtimer_start(&ecu->ac_timer, ms_to_ktime(250), ecu 121 net/can/j1939/bus.c void j1939_ecu_timer_cancel(struct j1939_ecu *ecu) ecu 123 net/can/j1939/bus.c if (hrtimer_cancel(&ecu->ac_timer)) ecu 124 net/can/j1939/bus.c j1939_ecu_put(ecu); ecu 129 net/can/j1939/bus.c struct j1939_ecu *ecu = ecu 131 net/can/j1939/bus.c struct j1939_priv *priv = ecu->priv; ecu 137 net/can/j1939/bus.c j1939_ecu_map_locked(ecu); ecu 142 net/can/j1939/bus.c j1939_ecu_put(ecu); ecu 150 net/can/j1939/bus.c struct j1939_ecu *ecu; ecu 154 net/can/j1939/bus.c ecu = kzalloc(sizeof(*ecu), gfp_any()); ecu 155 net/can/j1939/bus.c if (!ecu) ecu 157 net/can/j1939/bus.c kref_init(&ecu->kref); ecu 158 net/can/j1939/bus.c ecu->addr = J1939_IDLE_ADDR; ecu 159 net/can/j1939/bus.c ecu->name = name; ecu 161 net/can/j1939/bus.c hrtimer_init(&ecu->ac_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_SOFT); ecu 162 net/can/j1939/bus.c ecu->ac_timer.function = j1939_ecu_timer_handler; ecu 163 net/can/j1939/bus.c INIT_LIST_HEAD(&ecu->list); ecu 166 net/can/j1939/bus.c ecu->priv = priv; ecu 167 net/can/j1939/bus.c list_add_tail(&ecu->list, &priv->ecus); ecu 169 net/can/j1939/bus.c return ecu; ecu 177 net/can/j1939/bus.c return priv->ents[addr].ecu; ecu 182 net/can/j1939/bus.c struct j1939_ecu *ecu; ecu 189 net/can/j1939/bus.c ecu = j1939_ecu_find_by_addr_locked(priv, addr); ecu 190 net/can/j1939/bus.c if (ecu) ecu 191 net/can/j1939/bus.c j1939_ecu_get(ecu); ecu 193 net/can/j1939/bus.c return ecu; ecu 198 net/can/j1939/bus.c struct j1939_ecu *ecu; ecu 201 net/can/j1939/bus.c ecu = j1939_ecu_get_by_addr_locked(priv, addr); ecu 204 net/can/j1939/bus.c return ecu; ecu 211 net/can/j1939/bus.c struct j1939_ecu *ecu; ecu 215 net/can/j1939/bus.c list_for_each_entry(ecu, &priv->ecus, list) { ecu 216 net/can/j1939/bus.c if (ecu->name == name) ecu 217 net/can/j1939/bus.c return ecu; ecu 226 net/can/j1939/bus.c struct j1939_ecu *ecu; ecu 233 net/can/j1939/bus.c ecu = j1939_ecu_find_by_name_locked(priv, name); ecu 234 net/can/j1939/bus.c if (ecu) ecu 235 net/can/j1939/bus.c j1939_ecu_get(ecu); ecu 237 net/can/j1939/bus.c return ecu; ecu 242 net/can/j1939/bus.c struct j1939_ecu *ecu; ecu 245 net/can/j1939/bus.c ecu = j1939_ecu_get_by_name_locked(priv, name); ecu 248 net/can/j1939/bus.c return ecu; ecu 253 net/can/j1939/bus.c struct j1939_ecu *ecu; ecu 260 net/can/j1939/bus.c ecu = j1939_ecu_find_by_name_locked(priv, name); ecu 261 net/can/j1939/bus.c if (ecu && j1939_ecu_is_mapped_locked(ecu)) ecu 263 net/can/j1939/bus.c addr = ecu->addr; ecu 278 net/can/j1939/bus.c struct j1939_ecu *ecu; ecu 289 net/can/j1939/bus.c ecu = j1939_ecu_get_by_name_locked(priv, name); ecu 290 net/can/j1939/bus.c if (!ecu) ecu 291 net/can/j1939/bus.c ecu = j1939_ecu_create_locked(priv, name); ecu 292 net/can/j1939/bus.c err = PTR_ERR_OR_ZERO(ecu); ecu 296 net/can/j1939/bus.c ecu->nusers++; ecu 298 net/can/j1939/bus.c if (j1939_ecu_is_mapped_locked(ecu)) ecu 300 net/can/j1939/bus.c priv->ents[ecu->addr].nusers++; ecu 310 net/can/j1939/bus.c struct j1939_ecu *ecu; ecu 320 net/can/j1939/bus.c ecu = j1939_ecu_find_by_name_locked(priv, name); ecu 321 net/can/j1939/bus.c if (WARN_ON_ONCE(!ecu)) ecu 324 net/can/j1939/bus.c ecu->nusers--; ecu 326 net/can/j1939/bus.c if (j1939_ecu_is_mapped_locked(ecu)) ecu 328 net/can/j1939/bus.c priv->ents[ecu->addr].nusers--; ecu 329 net/can/j1939/bus.c j1939_ecu_put(ecu); ecu 65 net/can/j1939/j1939-priv.h struct j1939_ecu *ecu; ecu 92 net/can/j1939/j1939-priv.h void j1939_ecu_put(struct j1939_ecu *ecu); ecu 120 net/can/j1939/j1939-priv.h void j1939_ecu_unmap_locked(struct j1939_ecu *ecu); ecu 121 net/can/j1939/j1939-priv.h void j1939_ecu_unmap(struct j1939_ecu *ecu); ecu 199 net/can/j1939/j1939-priv.h void j1939_ecu_timer_start(struct j1939_ecu *ecu); ecu 200 net/can/j1939/j1939-priv.h void j1939_ecu_timer_cancel(struct j1939_ecu *ecu);