xd 110 arch/powerpc/include/asm/xive.h extern void xive_cleanup_irq_data(struct xive_irq_data *xd); xd 40 arch/powerpc/kvm/book3s_hv_rm_xive.c #define __x_eoi_page(xd) ((void __iomem *)((xd)->eoi_page)) xd 41 arch/powerpc/kvm/book3s_hv_rm_xive.c #define __x_trig_page(xd) ((void __iomem *)((xd)->trig_page)) xd 46 arch/powerpc/kvm/book3s_xive.c #define __x_eoi_page(xd) ((void __iomem *)((xd)->eoi_mmio)) xd 47 arch/powerpc/kvm/book3s_xive.c #define __x_trig_page(xd) ((void __iomem *)((xd)->trig_mmio)) xd 134 arch/powerpc/kvm/book3s_xive.c static bool xive_irq_trigger(struct xive_irq_data *xd) xd 137 arch/powerpc/kvm/book3s_xive.c if (WARN_ON(xd->flags & XIVE_IRQ_FLAG_LSI)) xd 141 arch/powerpc/kvm/book3s_xive.c if (WARN_ON(!xd->trig_mmio)) xd 144 arch/powerpc/kvm/book3s_xive.c out_be64(xd->trig_mmio, 0); xd 229 arch/powerpc/kvm/book3s_xive.c struct xive_irq_data *xd = irq_data_get_irq_handler_data(d); xd 231 arch/powerpc/kvm/book3s_xive.c xive_vm_esb_load(xd, XIVE_ESB_SET_PQ_01); xd 232 arch/powerpc/kvm/book3s_xive.c vcpu->arch.xive_esc_raddr = xd->eoi_page; xd 233 arch/powerpc/kvm/book3s_xive.c vcpu->arch.xive_esc_vaddr = (__force u64)xd->eoi_mmio; xd 234 arch/powerpc/kvm/book3s_xive.c xd->flags |= XIVE_IRQ_NO_EOI; xd 395 arch/powerpc/kvm/book3s_xive.c struct xive_irq_data *xd; xd 420 arch/powerpc/kvm/book3s_xive.c kvmppc_xive_select_irq(state, &hw_num, &xd); xd 434 arch/powerpc/kvm/book3s_xive.c if (xd->flags & OPAL_XIVE_IRQ_MASK_VIA_FW) { xd 443 arch/powerpc/kvm/book3s_xive.c val = xive_vm_esb_load(xd, XIVE_ESB_SET_PQ_10); xd 476 arch/powerpc/kvm/book3s_xive.c struct xive_irq_data *xd; xd 484 arch/powerpc/kvm/book3s_xive.c kvmppc_xive_select_irq(state, &hw_num, &xd); xd 490 arch/powerpc/kvm/book3s_xive.c if (xd->flags & OPAL_XIVE_IRQ_MASK_VIA_FW) { xd 496 arch/powerpc/kvm/book3s_xive.c xive_vm_source_eoi(hw_num, xd); xd 498 arch/powerpc/kvm/book3s_xive.c if (!(xd->flags & OPAL_XIVE_IRQ_LSI)) xd 499 arch/powerpc/kvm/book3s_xive.c xive_irq_trigger(xd); xd 505 arch/powerpc/kvm/book3s_xive.c xive_vm_esb_load(xd, XIVE_ESB_SET_PQ_11); xd 513 arch/powerpc/kvm/book3s_xive.c xive_vm_source_eoi(hw_num, xd); xd 1137 arch/powerpc/kvm/book3s_xive.c struct xive_irq_data *xd = irq_data_get_irq_handler_data(d); xd 1144 arch/powerpc/kvm/book3s_xive.c xd->stale_p = false; xd 1147 arch/powerpc/kvm/book3s_xive.c xd->stale_p = true; xd 1874 arch/powerpc/kvm/book3s_xive.c static void kvmppc_xive_cleanup_irq(u32 hw_num, struct xive_irq_data *xd) xd 1876 arch/powerpc/kvm/book3s_xive.c xive_vm_esb_load(xd, XIVE_ESB_SET_PQ_01); xd 2068 arch/powerpc/kvm/book3s_xive.c struct xive_irq_data *xd = xd 2070 arch/powerpc/kvm/book3s_xive.c u64 pq = xive_vm_esb_load(xd, XIVE_ESB_GET); xd 2075 arch/powerpc/kvm/book3s_xive.c xc->esc_virq[i], pq, xd->eoi_page); xd 30 arch/powerpc/kvm/book3s_xive_native.c static u8 xive_vm_esb_load(struct xive_irq_data *xd, u32 offset) xd 34 arch/powerpc/kvm/book3s_xive_native.c if (xd->flags & XIVE_IRQ_FLAG_SHIFT_BUG) xd 37 arch/powerpc/kvm/book3s_xive_native.c val = in_be64(xd->eoi_mmio + offset); xd 234 arch/powerpc/kvm/book3s_xive_native.c struct xive_irq_data *xd; xd 255 arch/powerpc/kvm/book3s_xive_native.c kvmppc_xive_select_irq(state, &hw_num, &xd); xd 263 arch/powerpc/kvm/book3s_xive_native.c page = page_offset % 2 ? xd->eoi_page : xd->trig_page; xd 506 arch/powerpc/kvm/book3s_xive_native.c struct xive_irq_data *xd; xd 524 arch/powerpc/kvm/book3s_xive_native.c kvmppc_xive_select_irq(state, &hw_num, &xd); xd 854 arch/powerpc/kvm/book3s_xive_native.c struct xive_irq_data *xd; xd 877 arch/powerpc/kvm/book3s_xive_native.c kvmppc_xive_select_irq(state, &hw_num, &xd); xd 57 arch/powerpc/kvm/book3s_xive_template.c static u8 GLUE(X_PFX,esb_load)(struct xive_irq_data *xd, u32 offset) xd 61 arch/powerpc/kvm/book3s_xive_template.c if (xd->flags & XIVE_IRQ_FLAG_SHIFT_BUG) xd 64 arch/powerpc/kvm/book3s_xive_template.c val =__x_readq(__x_eoi_page(xd) + offset); xd 72 arch/powerpc/kvm/book3s_xive_template.c static void GLUE(X_PFX,source_eoi)(u32 hw_irq, struct xive_irq_data *xd) xd 75 arch/powerpc/kvm/book3s_xive_template.c if (xd->flags & XIVE_IRQ_FLAG_STORE_EOI) xd 76 arch/powerpc/kvm/book3s_xive_template.c __x_writeq(0, __x_eoi_page(xd) + XIVE_ESB_STORE_EOI); xd 77 arch/powerpc/kvm/book3s_xive_template.c else if (hw_irq && xd->flags & XIVE_IRQ_FLAG_EOI_FW) xd 79 arch/powerpc/kvm/book3s_xive_template.c else if (xd->flags & XIVE_IRQ_FLAG_LSI) { xd 85 arch/powerpc/kvm/book3s_xive_template.c __x_readq(__x_eoi_page(xd) + XIVE_ESB_LOAD_EOI); xd 98 arch/powerpc/kvm/book3s_xive_template.c eoi_val = GLUE(X_PFX,esb_load)(xd, XIVE_ESB_SET_PQ_00); xd 101 arch/powerpc/kvm/book3s_xive_template.c if ((eoi_val & 1) && __x_trig_page(xd)) xd 102 arch/powerpc/kvm/book3s_xive_template.c __x_writeq(0, __x_trig_page(xd)); xd 384 arch/powerpc/kvm/book3s_xive_template.c struct xive_irq_data *xd; xd 422 arch/powerpc/kvm/book3s_xive_template.c kvmppc_xive_select_irq(state, &hw_num, &xd); xd 425 arch/powerpc/kvm/book3s_xive_template.c if (!(xd->flags & XIVE_IRQ_FLAG_LSI)) xd 426 arch/powerpc/kvm/book3s_xive_template.c GLUE(X_PFX,esb_load)(xd, XIVE_ESB_SET_PQ_11); xd 429 arch/powerpc/kvm/book3s_xive_template.c GLUE(X_PFX,source_eoi)(hw_num, xd); xd 504 arch/powerpc/kvm/book3s_xive_template.c struct xive_irq_data *xd; xd 542 arch/powerpc/kvm/book3s_xive_template.c kvmppc_xive_select_irq(state, &hw_num, &xd); xd 571 arch/powerpc/kvm/book3s_xive_template.c GLUE(X_PFX,source_eoi)(hw_num, xd); xd 575 arch/powerpc/kvm/book3s_xive_template.c __x_writeq(0, __x_trig_page(xd)); xd 195 arch/powerpc/sysdev/xive/common.c static notrace u8 xive_esb_read(struct xive_irq_data *xd, u32 offset) xd 200 arch/powerpc/sysdev/xive/common.c if (xd->flags & XIVE_IRQ_FLAG_SHIFT_BUG) xd 203 arch/powerpc/sysdev/xive/common.c if ((xd->flags & XIVE_IRQ_FLAG_H_INT_ESB) && xive_ops->esb_rw) xd 204 arch/powerpc/sysdev/xive/common.c val = xive_ops->esb_rw(xd->hw_irq, offset, 0, 0); xd 206 arch/powerpc/sysdev/xive/common.c val = in_be64(xd->eoi_mmio + offset); xd 211 arch/powerpc/sysdev/xive/common.c static void xive_esb_write(struct xive_irq_data *xd, u32 offset, u64 data) xd 214 arch/powerpc/sysdev/xive/common.c if (xd->flags & XIVE_IRQ_FLAG_SHIFT_BUG) xd 217 arch/powerpc/sysdev/xive/common.c if ((xd->flags & XIVE_IRQ_FLAG_H_INT_ESB) && xive_ops->esb_rw) xd 218 arch/powerpc/sysdev/xive/common.c xive_ops->esb_rw(xd->hw_irq, offset, data, 1); xd 220 arch/powerpc/sysdev/xive/common.c out_be64(xd->eoi_mmio + offset, data); xd 281 arch/powerpc/sysdev/xive/common.c struct xive_irq_data *xd = irq_data_get_irq_handler_data(d); xd 282 arch/powerpc/sysdev/xive/common.c u64 val = xive_esb_read(xd, XIVE_ESB_GET); xd 352 arch/powerpc/sysdev/xive/common.c static void xive_do_source_eoi(u32 hw_irq, struct xive_irq_data *xd) xd 354 arch/powerpc/sysdev/xive/common.c xd->stale_p = false; xd 356 arch/powerpc/sysdev/xive/common.c if (xd->flags & XIVE_IRQ_FLAG_STORE_EOI) xd 357 arch/powerpc/sysdev/xive/common.c xive_esb_write(xd, XIVE_ESB_STORE_EOI, 0); xd 358 arch/powerpc/sysdev/xive/common.c else if (hw_irq && xd->flags & XIVE_IRQ_FLAG_EOI_FW) { xd 385 arch/powerpc/sysdev/xive/common.c if (xd->flags & XIVE_IRQ_FLAG_LSI) xd 386 arch/powerpc/sysdev/xive/common.c xive_esb_read(xd, XIVE_ESB_LOAD_EOI); xd 388 arch/powerpc/sysdev/xive/common.c eoi_val = xive_esb_read(xd, XIVE_ESB_SET_PQ_00); xd 392 arch/powerpc/sysdev/xive/common.c if ((eoi_val & XIVE_ESB_VAL_Q) && xd->trig_mmio) xd 393 arch/powerpc/sysdev/xive/common.c out_be64(xd->trig_mmio, 0); xd 401 arch/powerpc/sysdev/xive/common.c struct xive_irq_data *xd = irq_data_get_irq_handler_data(d); xd 412 arch/powerpc/sysdev/xive/common.c !(xd->flags & XIVE_IRQ_NO_EOI)) xd 413 arch/powerpc/sysdev/xive/common.c xive_do_source_eoi(irqd_to_hwirq(d), xd); xd 415 arch/powerpc/sysdev/xive/common.c xd->stale_p = true; xd 421 arch/powerpc/sysdev/xive/common.c xd->saved_p = false; xd 432 arch/powerpc/sysdev/xive/common.c static void xive_do_source_set_mask(struct xive_irq_data *xd, xd 446 arch/powerpc/sysdev/xive/common.c val = xive_esb_read(xd, XIVE_ESB_SET_PQ_01); xd 447 arch/powerpc/sysdev/xive/common.c if (!xd->stale_p && !!(val & XIVE_ESB_VAL_P)) xd 448 arch/powerpc/sysdev/xive/common.c xd->saved_p = true; xd 449 arch/powerpc/sysdev/xive/common.c xd->stale_p = false; xd 450 arch/powerpc/sysdev/xive/common.c } else if (xd->saved_p) { xd 451 arch/powerpc/sysdev/xive/common.c xive_esb_read(xd, XIVE_ESB_SET_PQ_10); xd 452 arch/powerpc/sysdev/xive/common.c xd->saved_p = false; xd 454 arch/powerpc/sysdev/xive/common.c xive_esb_read(xd, XIVE_ESB_SET_PQ_00); xd 455 arch/powerpc/sysdev/xive/common.c xd->stale_p = false; xd 559 arch/powerpc/sysdev/xive/common.c struct xive_irq_data *xd = irq_data_get_irq_handler_data(d); xd 567 arch/powerpc/sysdev/xive/common.c if (xd->src_chip != XIVE_INVALID_CHIP_ID && xd 572 arch/powerpc/sysdev/xive/common.c if (xc->chip_id == xd->src_chip) xd 592 arch/powerpc/sysdev/xive/common.c struct xive_irq_data *xd = irq_data_get_irq_handler_data(d); xd 596 arch/powerpc/sysdev/xive/common.c xd->saved_p = false; xd 597 arch/powerpc/sysdev/xive/common.c xd->stale_p = false; xd 626 arch/powerpc/sysdev/xive/common.c xd->target = target; xd 639 arch/powerpc/sysdev/xive/common.c xive_do_source_set_mask(xd, false); xd 647 arch/powerpc/sysdev/xive/common.c struct xive_irq_data *xd = irq_data_get_irq_handler_data(d); xd 653 arch/powerpc/sysdev/xive/common.c if (WARN_ON(xd->target == XIVE_INVALID_TARGET)) xd 657 arch/powerpc/sysdev/xive/common.c xive_do_source_set_mask(xd, true); xd 664 arch/powerpc/sysdev/xive/common.c get_hard_smp_processor_id(xd->target), xd 667 arch/powerpc/sysdev/xive/common.c xive_dec_target_count(xd->target); xd 668 arch/powerpc/sysdev/xive/common.c xd->target = XIVE_INVALID_TARGET; xd 673 arch/powerpc/sysdev/xive/common.c struct xive_irq_data *xd = irq_data_get_irq_handler_data(d); xd 675 arch/powerpc/sysdev/xive/common.c pr_devel("xive_irq_unmask: irq %d data @%p\n", d->irq, xd); xd 683 arch/powerpc/sysdev/xive/common.c if (xd->flags & XIVE_IRQ_FLAG_MASK_FW) { xd 686 arch/powerpc/sysdev/xive/common.c get_hard_smp_processor_id(xd->target), xd 691 arch/powerpc/sysdev/xive/common.c xive_do_source_set_mask(xd, false); xd 696 arch/powerpc/sysdev/xive/common.c struct xive_irq_data *xd = irq_data_get_irq_handler_data(d); xd 698 arch/powerpc/sysdev/xive/common.c pr_devel("xive_irq_mask: irq %d data @%p\n", d->irq, xd); xd 706 arch/powerpc/sysdev/xive/common.c if (xd->flags & XIVE_IRQ_FLAG_MASK_FW) { xd 709 arch/powerpc/sysdev/xive/common.c get_hard_smp_processor_id(xd->target), xd 714 arch/powerpc/sysdev/xive/common.c xive_do_source_set_mask(xd, true); xd 721 arch/powerpc/sysdev/xive/common.c struct xive_irq_data *xd = irq_data_get_irq_handler_data(d); xd 740 arch/powerpc/sysdev/xive/common.c if (xd->target != XIVE_INVALID_TARGET && xd 741 arch/powerpc/sysdev/xive/common.c cpu_online(xd->target) && xd 742 arch/powerpc/sysdev/xive/common.c cpumask_test_cpu(xd->target, cpumask)) xd 756 arch/powerpc/sysdev/xive/common.c old_target = xd->target; xd 772 arch/powerpc/sysdev/xive/common.c xd->target = target; xd 783 arch/powerpc/sysdev/xive/common.c struct xive_irq_data *xd = irq_data_get_irq_handler_data(d); xd 810 arch/powerpc/sysdev/xive/common.c !!(xd->flags & XIVE_IRQ_FLAG_LSI)) { xd 814 arch/powerpc/sysdev/xive/common.c (xd->flags & XIVE_IRQ_FLAG_LSI) ? "Level" : "Edge"); xd 822 arch/powerpc/sysdev/xive/common.c struct xive_irq_data *xd = irq_data_get_irq_handler_data(d); xd 825 arch/powerpc/sysdev/xive/common.c if (WARN_ON(xd->flags & XIVE_IRQ_FLAG_LSI)) xd 832 arch/powerpc/sysdev/xive/common.c xive_esb_read(xd, XIVE_ESB_SET_PQ_11); xd 840 arch/powerpc/sysdev/xive/common.c xive_do_source_eoi(0, xd); xd 851 arch/powerpc/sysdev/xive/common.c struct xive_irq_data *xd = irq_data_get_irq_handler_data(d); xd 860 arch/powerpc/sysdev/xive/common.c if (xd->flags & XIVE_IRQ_FLAG_MASK_FW) xd 871 arch/powerpc/sysdev/xive/common.c pq = xive_esb_read(xd, XIVE_ESB_SET_PQ_10); xd 872 arch/powerpc/sysdev/xive/common.c if (!xd->stale_p) { xd 873 arch/powerpc/sysdev/xive/common.c xd->saved_p = !!(pq & XIVE_ESB_VAL_P); xd 874 arch/powerpc/sysdev/xive/common.c xd->stale_p = !xd->saved_p; xd 878 arch/powerpc/sysdev/xive/common.c if (xd->target == XIVE_INVALID_TARGET) { xd 883 arch/powerpc/sysdev/xive/common.c WARN_ON(xd->saved_p); xd 903 arch/powerpc/sysdev/xive/common.c if (xd->saved_p) { xd 904 arch/powerpc/sysdev/xive/common.c xive_esb_read(xd, XIVE_ESB_SET_PQ_11); xd 922 arch/powerpc/sysdev/xive/common.c if (xd->target == XIVE_INVALID_TARGET) { xd 923 arch/powerpc/sysdev/xive/common.c xive_do_source_set_mask(xd, true); xd 944 arch/powerpc/sysdev/xive/common.c get_hard_smp_processor_id(xd->target), xd 961 arch/powerpc/sysdev/xive/common.c if (!xd->saved_p) xd 962 arch/powerpc/sysdev/xive/common.c xive_do_source_eoi(hw_irq, xd); xd 972 arch/powerpc/sysdev/xive/common.c struct xive_irq_data *xd = irq_data_get_irq_handler_data(data); xd 977 arch/powerpc/sysdev/xive/common.c pq = xive_esb_read(xd, XIVE_ESB_GET); xd 986 arch/powerpc/sysdev/xive/common.c *state = (pq != XIVE_ESB_INVALID) && !xd->stale_p && xd 987 arch/powerpc/sysdev/xive/common.c (xd->saved_p || !!(pq & XIVE_ESB_VAL_P)); xd 1014 arch/powerpc/sysdev/xive/common.c void xive_cleanup_irq_data(struct xive_irq_data *xd) xd 1016 arch/powerpc/sysdev/xive/common.c if (xd->eoi_mmio) { xd 1017 arch/powerpc/sysdev/xive/common.c unmap_kernel_range((unsigned long)xd->eoi_mmio, xd 1018 arch/powerpc/sysdev/xive/common.c 1u << xd->esb_shift); xd 1019 arch/powerpc/sysdev/xive/common.c iounmap(xd->eoi_mmio); xd 1020 arch/powerpc/sysdev/xive/common.c if (xd->eoi_mmio == xd->trig_mmio) xd 1021 arch/powerpc/sysdev/xive/common.c xd->trig_mmio = NULL; xd 1022 arch/powerpc/sysdev/xive/common.c xd->eoi_mmio = NULL; xd 1024 arch/powerpc/sysdev/xive/common.c if (xd->trig_mmio) { xd 1025 arch/powerpc/sysdev/xive/common.c unmap_kernel_range((unsigned long)xd->trig_mmio, xd 1026 arch/powerpc/sysdev/xive/common.c 1u << xd->esb_shift); xd 1027 arch/powerpc/sysdev/xive/common.c iounmap(xd->trig_mmio); xd 1028 arch/powerpc/sysdev/xive/common.c xd->trig_mmio = NULL; xd 1035 arch/powerpc/sysdev/xive/common.c struct xive_irq_data *xd; xd 1038 arch/powerpc/sysdev/xive/common.c xd = kzalloc(sizeof(struct xive_irq_data), GFP_KERNEL); xd 1039 arch/powerpc/sysdev/xive/common.c if (!xd) xd 1041 arch/powerpc/sysdev/xive/common.c rc = xive_ops->populate_irq_data(hw, xd); xd 1043 arch/powerpc/sysdev/xive/common.c kfree(xd); xd 1046 arch/powerpc/sysdev/xive/common.c xd->target = XIVE_INVALID_TARGET; xd 1047 arch/powerpc/sysdev/xive/common.c irq_set_handler_data(virq, xd); xd 1056 arch/powerpc/sysdev/xive/common.c xive_esb_read(xd, XIVE_ESB_SET_PQ_01); xd 1063 arch/powerpc/sysdev/xive/common.c struct xive_irq_data *xd = irq_get_handler_data(virq); xd 1065 arch/powerpc/sysdev/xive/common.c if (!xd) xd 1068 arch/powerpc/sysdev/xive/common.c xive_cleanup_irq_data(xd); xd 1069 arch/powerpc/sysdev/xive/common.c kfree(xd); xd 1077 arch/powerpc/sysdev/xive/common.c struct xive_irq_data *xd; xd 1084 arch/powerpc/sysdev/xive/common.c xd = &xc->ipi_data; xd 1085 arch/powerpc/sysdev/xive/common.c if (WARN_ON(!xd->trig_mmio)) xd 1087 arch/powerpc/sysdev/xive/common.c out_be64(xd->trig_mmio, 0); xd 1410 arch/powerpc/sysdev/xive/common.c struct xive_irq_data *xd; xd 1430 arch/powerpc/sysdev/xive/common.c xd = irq_desc_get_handler_data(desc); xd 1435 arch/powerpc/sysdev/xive/common.c xd->saved_p = false; xd 1441 arch/powerpc/sysdev/xive/common.c if (xd->flags & XIVE_IRQ_FLAG_LSI) xd 1442 arch/powerpc/sysdev/xive/common.c xive_do_source_eoi(irqd_to_hwirq(d), xd); xd 37 drivers/gpu/drm/nouveau/nvkm/subdev/fb/gddr5.c int pd, lf, xd, vh, vr, vo, l3; xd 41 drivers/gpu/drm/nouveau/nvkm/subdev/fb/gddr5.c xd = !ram->next->bios.ramcfg_DLLoff; xd 81 drivers/gpu/drm/nouveau/nvkm/subdev/fb/gddr5.c ram->mr[1] |= (xd & 0x01) << 7; xd 178 drivers/net/thunderbolt.c struct tb_xdomain *xd; xd 235 drivers/net/thunderbolt.c struct tb_xdomain *xd = net->xd; xd 238 drivers/net/thunderbolt.c tbnet_fill_header(&reply.hdr, route, sequence, xd->local_uuid, xd 239 drivers/net/thunderbolt.c xd->remote_uuid, TBIP_LOGIN_RESPONSE, sizeof(reply), xd 244 drivers/net/thunderbolt.c return tb_xdomain_response(xd, &reply, sizeof(reply), xd 252 drivers/net/thunderbolt.c struct tb_xdomain *xd = net->xd; xd 255 drivers/net/thunderbolt.c tbnet_fill_header(&request.hdr, xd->route, sequence, xd->local_uuid, xd 256 drivers/net/thunderbolt.c xd->remote_uuid, TBIP_LOGIN, sizeof(request), xd 262 drivers/net/thunderbolt.c return tb_xdomain_request(xd, &request, sizeof(request), xd 272 drivers/net/thunderbolt.c struct tb_xdomain *xd = net->xd; xd 275 drivers/net/thunderbolt.c tbnet_fill_header(&reply.hdr, route, sequence, xd->local_uuid, xd 276 drivers/net/thunderbolt.c xd->remote_uuid, TBIP_STATUS, sizeof(reply), xd 278 drivers/net/thunderbolt.c return tb_xdomain_response(xd, &reply, sizeof(reply), xd 286 drivers/net/thunderbolt.c struct tb_xdomain *xd = net->xd; xd 289 drivers/net/thunderbolt.c tbnet_fill_header(&request.hdr, xd->route, 0, xd->local_uuid, xd 290 drivers/net/thunderbolt.c xd->remote_uuid, TBIP_LOGOUT, sizeof(request), xd 293 drivers/net/thunderbolt.c return tb_xdomain_request(xd, &request, sizeof(request), xd 380 drivers/net/thunderbolt.c if (tb_xdomain_disable_paths(net->xd)) xd 403 drivers/net/thunderbolt.c if (!uuid_equal(&pkg->hdr.initiator_uuid, net->xd->remote_uuid)) xd 405 drivers/net/thunderbolt.c if (!uuid_equal(&pkg->hdr.target_uuid, net->xd->local_uuid)) xd 410 drivers/net/thunderbolt.c if (route != net->xd->route) xd 603 drivers/net/thunderbolt.c ret = tb_xdomain_enable_paths(net->xd, TBNET_LOCAL_PATH, xd 851 drivers/net/thunderbolt.c struct tb_xdomain *xd = net->xd; xd 857 drivers/net/thunderbolt.c ring = tb_ring_alloc_tx(xd->tb->nhi, -1, TBNET_RING_SIZE, xd 868 drivers/net/thunderbolt.c ring = tb_ring_alloc_rx(xd->tb->nhi, -1, TBNET_RING_SIZE, xd 1176 drivers/net/thunderbolt.c const struct tb_xdomain *xd = net->xd; xd 1180 drivers/net/thunderbolt.c phy_port = tb_phy_port_from_link(TBNET_L0_PORT_NUM(xd->route)); xd 1184 drivers/net/thunderbolt.c hash = jhash2((u32 *)xd->local_uuid, 4, 0); xd 1186 drivers/net/thunderbolt.c hash = jhash2((u32 *)xd->local_uuid, 4, hash); xd 1192 drivers/net/thunderbolt.c struct tb_xdomain *xd = tb_service_parent(svc); xd 1212 drivers/net/thunderbolt.c net->xd = xd; xd 735 drivers/thunderbolt/domain.c int tb_domain_approve_xdomain_paths(struct tb *tb, struct tb_xdomain *xd) xd 740 drivers/thunderbolt/domain.c return tb->cm_ops->approve_xdomain_paths(tb, xd); xd 755 drivers/thunderbolt/domain.c int tb_domain_disconnect_xdomain_paths(struct tb *tb, struct tb_xdomain *xd) xd 760 drivers/thunderbolt/domain.c return tb->cm_ops->disconnect_xdomain_paths(tb, xd); xd 765 drivers/thunderbolt/domain.c struct tb_xdomain *xd; xd 769 drivers/thunderbolt/domain.c xd = tb_to_xdomain(dev); xd 770 drivers/thunderbolt/domain.c if (xd && xd->tb == tb) xd 771 drivers/thunderbolt/domain.c ret = tb_xdomain_disable_paths(xd); xd 520 drivers/thunderbolt/icm.c static int icm_fr_approve_xdomain_paths(struct tb *tb, struct tb_xdomain *xd) xd 528 drivers/thunderbolt/icm.c request.link_info = xd->depth << ICM_LINK_INFO_DEPTH_SHIFT | xd->link; xd 529 drivers/thunderbolt/icm.c memcpy(&request.remote_uuid, xd->remote_uuid, sizeof(*xd->remote_uuid)); xd 531 drivers/thunderbolt/icm.c request.transmit_path = xd->transmit_path; xd 532 drivers/thunderbolt/icm.c request.transmit_ring = xd->transmit_ring; xd 533 drivers/thunderbolt/icm.c request.receive_path = xd->receive_path; xd 534 drivers/thunderbolt/icm.c request.receive_ring = xd->receive_ring; xd 548 drivers/thunderbolt/icm.c static int icm_fr_disconnect_xdomain_paths(struct tb *tb, struct tb_xdomain *xd) xd 553 drivers/thunderbolt/icm.c phy_port = tb_phy_port_from_link(xd->link); xd 657 drivers/thunderbolt/icm.c struct tb_xdomain *xd; xd 661 drivers/thunderbolt/icm.c xd = tb_xdomain_alloc(sw->tb, &sw->dev, route, local_uuid, remote_uuid); xd 662 drivers/thunderbolt/icm.c if (!xd) xd 665 drivers/thunderbolt/icm.c xd->link = link; xd 666 drivers/thunderbolt/icm.c xd->depth = depth; xd 668 drivers/thunderbolt/icm.c tb_port_at(route, sw)->xdomain = xd; xd 670 drivers/thunderbolt/icm.c tb_xdomain_add(xd); xd 677 drivers/thunderbolt/icm.c static void update_xdomain(struct tb_xdomain *xd, u64 route, u8 link) xd 679 drivers/thunderbolt/icm.c xd->link = link; xd 680 drivers/thunderbolt/icm.c xd->route = route; xd 681 drivers/thunderbolt/icm.c xd->is_unplugged = false; xd 684 drivers/thunderbolt/icm.c static void remove_xdomain(struct tb_xdomain *xd) xd 688 drivers/thunderbolt/icm.c sw = tb_to_switch(xd->dev.parent); xd 689 drivers/thunderbolt/icm.c tb_port_at(xd->route, sw)->xdomain = NULL; xd 690 drivers/thunderbolt/icm.c tb_xdomain_remove(xd); xd 702 drivers/thunderbolt/icm.c struct tb_xdomain *xd; xd 793 drivers/thunderbolt/icm.c xd = tb_xdomain_find_by_link_depth(tb, link, depth); xd 794 drivers/thunderbolt/icm.c if (xd) { xd 795 drivers/thunderbolt/icm.c remove_xdomain(xd); xd 796 drivers/thunderbolt/icm.c tb_xdomain_put(xd); xd 855 drivers/thunderbolt/icm.c struct tb_xdomain *xd; xd 871 drivers/thunderbolt/icm.c xd = tb_xdomain_find_by_uuid(tb, &pkg->remote_uuid); xd 872 drivers/thunderbolt/icm.c if (xd) { xd 875 drivers/thunderbolt/icm.c xd_phy_port = phy_port_from_route(xd->route, xd->depth); xd 878 drivers/thunderbolt/icm.c if (xd->depth == depth && xd_phy_port == phy_port) { xd 879 drivers/thunderbolt/icm.c update_xdomain(xd, route, link); xd 880 drivers/thunderbolt/icm.c tb_xdomain_put(xd); xd 890 drivers/thunderbolt/icm.c remove_xdomain(xd); xd 891 drivers/thunderbolt/icm.c tb_xdomain_put(xd); xd 899 drivers/thunderbolt/icm.c xd = tb_xdomain_find_by_link_depth(tb, link, depth); xd 900 drivers/thunderbolt/icm.c if (!xd) { xd 905 drivers/thunderbolt/icm.c xd = tb_xdomain_find_by_link_depth(tb, dual_link, xd 908 drivers/thunderbolt/icm.c if (xd) { xd 909 drivers/thunderbolt/icm.c remove_xdomain(xd); xd 910 drivers/thunderbolt/icm.c tb_xdomain_put(xd); xd 941 drivers/thunderbolt/icm.c struct tb_xdomain *xd; xd 948 drivers/thunderbolt/icm.c xd = tb_xdomain_find_by_uuid(tb, &pkg->remote_uuid); xd 949 drivers/thunderbolt/icm.c if (xd) { xd 950 drivers/thunderbolt/icm.c remove_xdomain(xd); xd 951 drivers/thunderbolt/icm.c tb_xdomain_put(xd); xd 1073 drivers/thunderbolt/icm.c static int icm_tr_approve_xdomain_paths(struct tb *tb, struct tb_xdomain *xd) xd 1081 drivers/thunderbolt/icm.c request.route_hi = upper_32_bits(xd->route); xd 1082 drivers/thunderbolt/icm.c request.route_lo = lower_32_bits(xd->route); xd 1083 drivers/thunderbolt/icm.c request.transmit_path = xd->transmit_path; xd 1084 drivers/thunderbolt/icm.c request.transmit_ring = xd->transmit_ring; xd 1085 drivers/thunderbolt/icm.c request.receive_path = xd->receive_path; xd 1086 drivers/thunderbolt/icm.c request.receive_ring = xd->receive_ring; xd 1087 drivers/thunderbolt/icm.c memcpy(&request.remote_uuid, xd->remote_uuid, sizeof(*xd->remote_uuid)); xd 1101 drivers/thunderbolt/icm.c static int icm_tr_xdomain_tear_down(struct tb *tb, struct tb_xdomain *xd, xd 1111 drivers/thunderbolt/icm.c request.route_hi = upper_32_bits(xd->route); xd 1112 drivers/thunderbolt/icm.c request.route_lo = lower_32_bits(xd->route); xd 1113 drivers/thunderbolt/icm.c memcpy(&request.remote_uuid, xd->remote_uuid, sizeof(*xd->remote_uuid)); xd 1127 drivers/thunderbolt/icm.c static int icm_tr_disconnect_xdomain_paths(struct tb *tb, struct tb_xdomain *xd) xd 1131 drivers/thunderbolt/icm.c ret = icm_tr_xdomain_tear_down(tb, xd, 1); xd 1136 drivers/thunderbolt/icm.c return icm_tr_xdomain_tear_down(tb, xd, 2); xd 1147 drivers/thunderbolt/icm.c struct tb_xdomain *xd; xd 1196 drivers/thunderbolt/icm.c xd = tb_xdomain_find_by_route(tb, route); xd 1197 drivers/thunderbolt/icm.c if (xd) { xd 1198 drivers/thunderbolt/icm.c remove_xdomain(xd); xd 1199 drivers/thunderbolt/icm.c tb_xdomain_put(xd); xd 1248 drivers/thunderbolt/icm.c struct tb_xdomain *xd; xd 1257 drivers/thunderbolt/icm.c xd = tb_xdomain_find_by_uuid(tb, &pkg->remote_uuid); xd 1258 drivers/thunderbolt/icm.c if (xd) { xd 1259 drivers/thunderbolt/icm.c if (xd->route == route) { xd 1260 drivers/thunderbolt/icm.c update_xdomain(xd, route, 0); xd 1261 drivers/thunderbolt/icm.c tb_xdomain_put(xd); xd 1265 drivers/thunderbolt/icm.c remove_xdomain(xd); xd 1266 drivers/thunderbolt/icm.c tb_xdomain_put(xd); xd 1270 drivers/thunderbolt/icm.c xd = tb_xdomain_find_by_route(tb, route); xd 1271 drivers/thunderbolt/icm.c if (xd) { xd 1272 drivers/thunderbolt/icm.c remove_xdomain(xd); xd 1273 drivers/thunderbolt/icm.c tb_xdomain_put(xd); xd 1302 drivers/thunderbolt/icm.c struct tb_xdomain *xd; xd 1307 drivers/thunderbolt/icm.c xd = tb_xdomain_find_by_route(tb, route); xd 1308 drivers/thunderbolt/icm.c if (xd) { xd 1309 drivers/thunderbolt/icm.c remove_xdomain(xd); xd 1310 drivers/thunderbolt/icm.c tb_xdomain_put(xd); xd 108 drivers/thunderbolt/tb.c struct tb_xdomain *xd; xd 112 drivers/thunderbolt/tb.c xd = tb_xdomain_find_by_route(tb, route); xd 113 drivers/thunderbolt/tb.c if (xd) { xd 114 drivers/thunderbolt/tb.c tb_xdomain_put(xd); xd 118 drivers/thunderbolt/tb.c xd = tb_xdomain_alloc(tb, &sw->dev, route, tb->root_switch->uuid, xd 120 drivers/thunderbolt/tb.c if (xd) { xd 121 drivers/thunderbolt/tb.c tb_port_at(route, sw)->xdomain = xd; xd 122 drivers/thunderbolt/tb.c tb_xdomain_add(xd); xd 435 drivers/thunderbolt/tb.c static int tb_approve_xdomain_paths(struct tb *tb, struct tb_xdomain *xd) xd 442 drivers/thunderbolt/tb.c sw = tb_to_switch(xd->dev.parent); xd 443 drivers/thunderbolt/tb.c dst_port = tb_port_at(xd->route, sw); xd 447 drivers/thunderbolt/tb.c tunnel = tb_tunnel_alloc_dma(tb, nhi_port, dst_port, xd->transmit_ring, xd 448 drivers/thunderbolt/tb.c xd->transmit_path, xd->receive_ring, xd 449 drivers/thunderbolt/tb.c xd->receive_path); xd 468 drivers/thunderbolt/tb.c static void __tb_disconnect_xdomain_paths(struct tb *tb, struct tb_xdomain *xd) xd 473 drivers/thunderbolt/tb.c sw = tb_to_switch(xd->dev.parent); xd 474 drivers/thunderbolt/tb.c dst_port = tb_port_at(xd->route, sw); xd 484 drivers/thunderbolt/tb.c static int tb_disconnect_xdomain_paths(struct tb *tb, struct tb_xdomain *xd) xd 486 drivers/thunderbolt/tb.c if (!xd->is_unplugged) { xd 488 drivers/thunderbolt/tb.c __tb_disconnect_xdomain_paths(tb, xd); xd 541 drivers/thunderbolt/tb.c struct tb_xdomain *xd = tb_xdomain_get(port->xdomain); xd 551 drivers/thunderbolt/tb.c xd->is_unplugged = true; xd 552 drivers/thunderbolt/tb.c tb_xdomain_remove(xd); xd 554 drivers/thunderbolt/tb.c __tb_disconnect_xdomain_paths(tb, xd); xd 555 drivers/thunderbolt/tb.c tb_xdomain_put(xd); xd 289 drivers/thunderbolt/tb.h int (*approve_xdomain_paths)(struct tb *tb, struct tb_xdomain *xd); xd 290 drivers/thunderbolt/tb.h int (*disconnect_xdomain_paths)(struct tb *tb, struct tb_xdomain *xd); xd 501 drivers/thunderbolt/tb.h int tb_domain_approve_xdomain_paths(struct tb *tb, struct tb_xdomain *xd); xd 502 drivers/thunderbolt/tb.h int tb_domain_disconnect_xdomain_paths(struct tb *tb, struct tb_xdomain *xd); xd 661 drivers/thunderbolt/tb.h void tb_xdomain_add(struct tb_xdomain *xd); xd 662 drivers/thunderbolt/tb.h void tb_xdomain_remove(struct tb_xdomain *xd); xd 124 drivers/thunderbolt/xdomain.c int tb_xdomain_response(struct tb_xdomain *xd, const void *response, xd 127 drivers/thunderbolt/xdomain.c return __tb_xdomain_response(xd->tb->ctl, response, size, type); xd 176 drivers/thunderbolt/xdomain.c int tb_xdomain_request(struct tb_xdomain *xd, const void *request, xd 181 drivers/thunderbolt/xdomain.c return __tb_xdomain_request(xd->tb->ctl, request, request_size, xd 541 drivers/thunderbolt/xdomain.c struct tb_xdomain *xd; xd 550 drivers/thunderbolt/xdomain.c xd = tb_xdomain_find_by_uuid_locked(tb, &xchg->src_uuid); xd 551 drivers/thunderbolt/xdomain.c if (xd) { xd 552 drivers/thunderbolt/xdomain.c queue_delayed_work(tb->wq, &xd->get_properties_work, xd 554 drivers/thunderbolt/xdomain.c tb_xdomain_put(xd); xd 727 drivers/thunderbolt/xdomain.c struct tb_xdomain *xd = tb_service_parent(svc); xd 729 drivers/thunderbolt/xdomain.c ida_simple_remove(&xd->service_ids, svc->id); xd 744 drivers/thunderbolt/xdomain.c struct tb_xdomain *xd = data; xd 751 drivers/thunderbolt/xdomain.c if (!tb_property_find(xd->properties, svc->key, xd 797 drivers/thunderbolt/xdomain.c static void enumerate_services(struct tb_xdomain *xd) xd 808 drivers/thunderbolt/xdomain.c device_for_each_child_reverse(&xd->dev, xd, remove_missing_service); xd 811 drivers/thunderbolt/xdomain.c tb_property_for_each(xd->properties, p) { xd 816 drivers/thunderbolt/xdomain.c dev = device_find_child(&xd->dev, p, find_service); xd 831 drivers/thunderbolt/xdomain.c id = ida_simple_get(&xd->service_ids, 0, 0, GFP_KERNEL); xd 839 drivers/thunderbolt/xdomain.c svc->dev.parent = &xd->dev; xd 840 drivers/thunderbolt/xdomain.c dev_set_name(&svc->dev, "%s.%d", dev_name(&xd->dev), svc->id); xd 849 drivers/thunderbolt/xdomain.c static int populate_properties(struct tb_xdomain *xd, xd 858 drivers/thunderbolt/xdomain.c xd->device = p->value.immediate; xd 863 drivers/thunderbolt/xdomain.c xd->vendor = p->value.immediate; xd 865 drivers/thunderbolt/xdomain.c kfree(xd->device_name); xd 866 drivers/thunderbolt/xdomain.c xd->device_name = NULL; xd 867 drivers/thunderbolt/xdomain.c kfree(xd->vendor_name); xd 868 drivers/thunderbolt/xdomain.c xd->vendor_name = NULL; xd 873 drivers/thunderbolt/xdomain.c xd->device_name = kstrdup(p->value.text, GFP_KERNEL); xd 876 drivers/thunderbolt/xdomain.c xd->vendor_name = kstrdup(p->value.text, GFP_KERNEL); xd 882 drivers/thunderbolt/xdomain.c static void tb_xdomain_restore_paths(struct tb_xdomain *xd) xd 884 drivers/thunderbolt/xdomain.c if (!xd->resume) xd 887 drivers/thunderbolt/xdomain.c xd->resume = false; xd 888 drivers/thunderbolt/xdomain.c if (xd->transmit_path) { xd 889 drivers/thunderbolt/xdomain.c dev_dbg(&xd->dev, "re-establishing DMA path\n"); xd 890 drivers/thunderbolt/xdomain.c tb_domain_approve_xdomain_paths(xd->tb, xd); xd 896 drivers/thunderbolt/xdomain.c struct tb_xdomain *xd = container_of(work, typeof(*xd), xd 898 drivers/thunderbolt/xdomain.c struct tb *tb = xd->tb; xd 902 drivers/thunderbolt/xdomain.c ret = tb_xdp_uuid_request(tb->ctl, xd->route, xd->uuid_retries, &uuid); xd 904 drivers/thunderbolt/xdomain.c if (xd->uuid_retries-- > 0) { xd 905 drivers/thunderbolt/xdomain.c queue_delayed_work(xd->tb->wq, &xd->get_uuid_work, xd 908 drivers/thunderbolt/xdomain.c dev_dbg(&xd->dev, "failed to read remote UUID\n"); xd 913 drivers/thunderbolt/xdomain.c if (uuid_equal(&uuid, xd->local_uuid)) { xd 914 drivers/thunderbolt/xdomain.c dev_dbg(&xd->dev, "intra-domain loop detected\n"); xd 923 drivers/thunderbolt/xdomain.c if (xd->remote_uuid && !uuid_equal(&uuid, xd->remote_uuid)) { xd 924 drivers/thunderbolt/xdomain.c dev_dbg(&xd->dev, "remote UUID is different, unplugging\n"); xd 925 drivers/thunderbolt/xdomain.c xd->is_unplugged = true; xd 930 drivers/thunderbolt/xdomain.c if (!xd->remote_uuid) { xd 931 drivers/thunderbolt/xdomain.c xd->remote_uuid = kmemdup(&uuid, sizeof(uuid_t), GFP_KERNEL); xd 932 drivers/thunderbolt/xdomain.c if (!xd->remote_uuid) xd 937 drivers/thunderbolt/xdomain.c queue_delayed_work(xd->tb->wq, &xd->properties_changed_work, xd 939 drivers/thunderbolt/xdomain.c queue_delayed_work(xd->tb->wq, &xd->get_properties_work, xd 945 drivers/thunderbolt/xdomain.c struct tb_xdomain *xd = container_of(work, typeof(*xd), xd 948 drivers/thunderbolt/xdomain.c struct tb *tb = xd->tb; xd 954 drivers/thunderbolt/xdomain.c ret = tb_xdp_properties_request(tb->ctl, xd->route, xd->local_uuid, xd 955 drivers/thunderbolt/xdomain.c xd->remote_uuid, xd->properties_retries, xd 958 drivers/thunderbolt/xdomain.c if (xd->properties_retries-- > 0) { xd 959 drivers/thunderbolt/xdomain.c queue_delayed_work(xd->tb->wq, &xd->get_properties_work, xd 963 drivers/thunderbolt/xdomain.c dev_err(&xd->dev, xd 965 drivers/thunderbolt/xdomain.c xd->remote_uuid); xd 970 drivers/thunderbolt/xdomain.c xd->properties_retries = XDOMAIN_PROPERTIES_RETRIES; xd 972 drivers/thunderbolt/xdomain.c mutex_lock(&xd->lock); xd 975 drivers/thunderbolt/xdomain.c if (xd->properties && gen <= xd->property_block_gen) { xd 982 drivers/thunderbolt/xdomain.c tb_xdomain_restore_paths(xd); xd 988 drivers/thunderbolt/xdomain.c dev_err(&xd->dev, "failed to parse XDomain properties\n"); xd 992 drivers/thunderbolt/xdomain.c ret = populate_properties(xd, dir); xd 994 drivers/thunderbolt/xdomain.c dev_err(&xd->dev, "missing XDomain properties in response\n"); xd 999 drivers/thunderbolt/xdomain.c if (xd->properties) { xd 1000 drivers/thunderbolt/xdomain.c tb_property_free_dir(xd->properties); xd 1004 drivers/thunderbolt/xdomain.c xd->properties = dir; xd 1005 drivers/thunderbolt/xdomain.c xd->property_block_gen = gen; xd 1007 drivers/thunderbolt/xdomain.c tb_xdomain_restore_paths(xd); xd 1009 drivers/thunderbolt/xdomain.c mutex_unlock(&xd->lock); xd 1019 drivers/thunderbolt/xdomain.c if (device_add(&xd->dev)) { xd 1020 drivers/thunderbolt/xdomain.c dev_err(&xd->dev, "failed to add XDomain device\n"); xd 1024 drivers/thunderbolt/xdomain.c kobject_uevent(&xd->dev.kobj, KOBJ_CHANGE); xd 1027 drivers/thunderbolt/xdomain.c enumerate_services(xd); xd 1034 drivers/thunderbolt/xdomain.c mutex_unlock(&xd->lock); xd 1039 drivers/thunderbolt/xdomain.c struct tb_xdomain *xd = container_of(work, typeof(*xd), xd 1043 drivers/thunderbolt/xdomain.c ret = tb_xdp_properties_changed_request(xd->tb->ctl, xd->route, xd 1044 drivers/thunderbolt/xdomain.c xd->properties_changed_retries, xd->local_uuid); xd 1046 drivers/thunderbolt/xdomain.c if (xd->properties_changed_retries-- > 0) xd 1047 drivers/thunderbolt/xdomain.c queue_delayed_work(xd->tb->wq, xd 1048 drivers/thunderbolt/xdomain.c &xd->properties_changed_work, xd 1053 drivers/thunderbolt/xdomain.c xd->properties_changed_retries = XDOMAIN_PROPERTIES_CHANGED_RETRIES; xd 1059 drivers/thunderbolt/xdomain.c struct tb_xdomain *xd = container_of(dev, struct tb_xdomain, dev); xd 1061 drivers/thunderbolt/xdomain.c return sprintf(buf, "%#x\n", xd->device); xd 1068 drivers/thunderbolt/xdomain.c struct tb_xdomain *xd = container_of(dev, struct tb_xdomain, dev); xd 1071 drivers/thunderbolt/xdomain.c if (mutex_lock_interruptible(&xd->lock)) xd 1073 drivers/thunderbolt/xdomain.c ret = sprintf(buf, "%s\n", xd->device_name ? xd->device_name : ""); xd 1074 drivers/thunderbolt/xdomain.c mutex_unlock(&xd->lock); xd 1083 drivers/thunderbolt/xdomain.c struct tb_xdomain *xd = container_of(dev, struct tb_xdomain, dev); xd 1085 drivers/thunderbolt/xdomain.c return sprintf(buf, "%#x\n", xd->vendor); xd 1092 drivers/thunderbolt/xdomain.c struct tb_xdomain *xd = container_of(dev, struct tb_xdomain, dev); xd 1095 drivers/thunderbolt/xdomain.c if (mutex_lock_interruptible(&xd->lock)) xd 1097 drivers/thunderbolt/xdomain.c ret = sprintf(buf, "%s\n", xd->vendor_name ? xd->vendor_name : ""); xd 1098 drivers/thunderbolt/xdomain.c mutex_unlock(&xd->lock); xd 1107 drivers/thunderbolt/xdomain.c struct tb_xdomain *xd = container_of(dev, struct tb_xdomain, dev); xd 1109 drivers/thunderbolt/xdomain.c return sprintf(buf, "%pUb\n", xd->remote_uuid); xd 1133 drivers/thunderbolt/xdomain.c struct tb_xdomain *xd = container_of(dev, struct tb_xdomain, dev); xd 1135 drivers/thunderbolt/xdomain.c put_device(xd->dev.parent); xd 1137 drivers/thunderbolt/xdomain.c tb_property_free_dir(xd->properties); xd 1138 drivers/thunderbolt/xdomain.c ida_destroy(&xd->service_ids); xd 1140 drivers/thunderbolt/xdomain.c kfree(xd->local_uuid); xd 1141 drivers/thunderbolt/xdomain.c kfree(xd->remote_uuid); xd 1142 drivers/thunderbolt/xdomain.c kfree(xd->device_name); xd 1143 drivers/thunderbolt/xdomain.c kfree(xd->vendor_name); xd 1144 drivers/thunderbolt/xdomain.c kfree(xd); xd 1147 drivers/thunderbolt/xdomain.c static void start_handshake(struct tb_xdomain *xd) xd 1149 drivers/thunderbolt/xdomain.c xd->uuid_retries = XDOMAIN_UUID_RETRIES; xd 1150 drivers/thunderbolt/xdomain.c xd->properties_retries = XDOMAIN_PROPERTIES_RETRIES; xd 1151 drivers/thunderbolt/xdomain.c xd->properties_changed_retries = XDOMAIN_PROPERTIES_CHANGED_RETRIES; xd 1153 drivers/thunderbolt/xdomain.c if (xd->needs_uuid) { xd 1154 drivers/thunderbolt/xdomain.c queue_delayed_work(xd->tb->wq, &xd->get_uuid_work, xd 1158 drivers/thunderbolt/xdomain.c queue_delayed_work(xd->tb->wq, &xd->properties_changed_work, xd 1160 drivers/thunderbolt/xdomain.c queue_delayed_work(xd->tb->wq, &xd->get_properties_work, xd 1165 drivers/thunderbolt/xdomain.c static void stop_handshake(struct tb_xdomain *xd) xd 1167 drivers/thunderbolt/xdomain.c xd->uuid_retries = 0; xd 1168 drivers/thunderbolt/xdomain.c xd->properties_retries = 0; xd 1169 drivers/thunderbolt/xdomain.c xd->properties_changed_retries = 0; xd 1171 drivers/thunderbolt/xdomain.c cancel_delayed_work_sync(&xd->get_uuid_work); xd 1172 drivers/thunderbolt/xdomain.c cancel_delayed_work_sync(&xd->get_properties_work); xd 1173 drivers/thunderbolt/xdomain.c cancel_delayed_work_sync(&xd->properties_changed_work); xd 1184 drivers/thunderbolt/xdomain.c struct tb_xdomain *xd = tb_to_xdomain(dev); xd 1190 drivers/thunderbolt/xdomain.c xd->resume = true; xd 1191 drivers/thunderbolt/xdomain.c start_handshake(xd); xd 1223 drivers/thunderbolt/xdomain.c struct tb_xdomain *xd; xd 1225 drivers/thunderbolt/xdomain.c xd = kzalloc(sizeof(*xd), GFP_KERNEL); xd 1226 drivers/thunderbolt/xdomain.c if (!xd) xd 1229 drivers/thunderbolt/xdomain.c xd->tb = tb; xd 1230 drivers/thunderbolt/xdomain.c xd->route = route; xd 1231 drivers/thunderbolt/xdomain.c ida_init(&xd->service_ids); xd 1232 drivers/thunderbolt/xdomain.c mutex_init(&xd->lock); xd 1233 drivers/thunderbolt/xdomain.c INIT_DELAYED_WORK(&xd->get_uuid_work, tb_xdomain_get_uuid); xd 1234 drivers/thunderbolt/xdomain.c INIT_DELAYED_WORK(&xd->get_properties_work, tb_xdomain_get_properties); xd 1235 drivers/thunderbolt/xdomain.c INIT_DELAYED_WORK(&xd->properties_changed_work, xd 1238 drivers/thunderbolt/xdomain.c xd->local_uuid = kmemdup(local_uuid, sizeof(uuid_t), GFP_KERNEL); xd 1239 drivers/thunderbolt/xdomain.c if (!xd->local_uuid) xd 1243 drivers/thunderbolt/xdomain.c xd->remote_uuid = kmemdup(remote_uuid, sizeof(uuid_t), xd 1245 drivers/thunderbolt/xdomain.c if (!xd->remote_uuid) xd 1248 drivers/thunderbolt/xdomain.c xd->needs_uuid = true; xd 1251 drivers/thunderbolt/xdomain.c device_initialize(&xd->dev); xd 1252 drivers/thunderbolt/xdomain.c xd->dev.parent = get_device(parent); xd 1253 drivers/thunderbolt/xdomain.c xd->dev.bus = &tb_bus_type; xd 1254 drivers/thunderbolt/xdomain.c xd->dev.type = &tb_xdomain_type; xd 1255 drivers/thunderbolt/xdomain.c xd->dev.groups = xdomain_attr_groups; xd 1256 drivers/thunderbolt/xdomain.c dev_set_name(&xd->dev, "%u-%llx", tb->index, route); xd 1262 drivers/thunderbolt/xdomain.c pm_runtime_set_active(&xd->dev); xd 1263 drivers/thunderbolt/xdomain.c pm_runtime_get_noresume(&xd->dev); xd 1264 drivers/thunderbolt/xdomain.c pm_runtime_enable(&xd->dev); xd 1266 drivers/thunderbolt/xdomain.c return xd; xd 1269 drivers/thunderbolt/xdomain.c kfree(xd->local_uuid); xd 1271 drivers/thunderbolt/xdomain.c kfree(xd); xd 1285 drivers/thunderbolt/xdomain.c void tb_xdomain_add(struct tb_xdomain *xd) xd 1288 drivers/thunderbolt/xdomain.c start_handshake(xd); xd 1305 drivers/thunderbolt/xdomain.c void tb_xdomain_remove(struct tb_xdomain *xd) xd 1307 drivers/thunderbolt/xdomain.c stop_handshake(xd); xd 1309 drivers/thunderbolt/xdomain.c device_for_each_child_reverse(&xd->dev, xd, unregister_service); xd 1316 drivers/thunderbolt/xdomain.c pm_runtime_disable(&xd->dev); xd 1317 drivers/thunderbolt/xdomain.c pm_runtime_put_noidle(&xd->dev); xd 1318 drivers/thunderbolt/xdomain.c pm_runtime_set_suspended(&xd->dev); xd 1320 drivers/thunderbolt/xdomain.c if (!device_is_registered(&xd->dev)) xd 1321 drivers/thunderbolt/xdomain.c put_device(&xd->dev); xd 1323 drivers/thunderbolt/xdomain.c device_unregister(&xd->dev); xd 1342 drivers/thunderbolt/xdomain.c int tb_xdomain_enable_paths(struct tb_xdomain *xd, u16 transmit_path, xd 1348 drivers/thunderbolt/xdomain.c mutex_lock(&xd->lock); xd 1350 drivers/thunderbolt/xdomain.c if (xd->transmit_path) { xd 1351 drivers/thunderbolt/xdomain.c ret = xd->transmit_path == transmit_path ? 0 : -EBUSY; xd 1355 drivers/thunderbolt/xdomain.c xd->transmit_path = transmit_path; xd 1356 drivers/thunderbolt/xdomain.c xd->transmit_ring = transmit_ring; xd 1357 drivers/thunderbolt/xdomain.c xd->receive_path = receive_path; xd 1358 drivers/thunderbolt/xdomain.c xd->receive_ring = receive_ring; xd 1360 drivers/thunderbolt/xdomain.c ret = tb_domain_approve_xdomain_paths(xd->tb, xd); xd 1363 drivers/thunderbolt/xdomain.c mutex_unlock(&xd->lock); xd 1378 drivers/thunderbolt/xdomain.c int tb_xdomain_disable_paths(struct tb_xdomain *xd) xd 1382 drivers/thunderbolt/xdomain.c mutex_lock(&xd->lock); xd 1383 drivers/thunderbolt/xdomain.c if (xd->transmit_path) { xd 1384 drivers/thunderbolt/xdomain.c xd->transmit_path = 0; xd 1385 drivers/thunderbolt/xdomain.c xd->transmit_ring = 0; xd 1386 drivers/thunderbolt/xdomain.c xd->receive_path = 0; xd 1387 drivers/thunderbolt/xdomain.c xd->receive_ring = 0; xd 1389 drivers/thunderbolt/xdomain.c ret = tb_domain_disconnect_xdomain_paths(xd->tb, xd); xd 1391 drivers/thunderbolt/xdomain.c mutex_unlock(&xd->lock); xd 1411 drivers/thunderbolt/xdomain.c struct tb_xdomain *xd; xd 1414 drivers/thunderbolt/xdomain.c xd = port->xdomain; xd 1417 drivers/thunderbolt/xdomain.c if (xd->remote_uuid && xd 1418 drivers/thunderbolt/xdomain.c uuid_equal(xd->remote_uuid, lookup->uuid)) xd 1419 drivers/thunderbolt/xdomain.c return xd; xd 1421 drivers/thunderbolt/xdomain.c lookup->link == xd->link && xd 1422 drivers/thunderbolt/xdomain.c lookup->depth == xd->depth) { xd 1423 drivers/thunderbolt/xdomain.c return xd; xd 1425 drivers/thunderbolt/xdomain.c lookup->route == xd->route) { xd 1426 drivers/thunderbolt/xdomain.c return xd; xd 1429 drivers/thunderbolt/xdomain.c xd = switch_find_xdomain(port->remote->sw, lookup); xd 1430 drivers/thunderbolt/xdomain.c if (xd) xd 1431 drivers/thunderbolt/xdomain.c return xd; xd 1456 drivers/thunderbolt/xdomain.c struct tb_xdomain *xd; xd 1461 drivers/thunderbolt/xdomain.c xd = switch_find_xdomain(tb->root_switch, &lookup); xd 1462 drivers/thunderbolt/xdomain.c return tb_xdomain_get(xd); xd 1486 drivers/thunderbolt/xdomain.c struct tb_xdomain *xd; xd 1492 drivers/thunderbolt/xdomain.c xd = switch_find_xdomain(tb->root_switch, &lookup); xd 1493 drivers/thunderbolt/xdomain.c return tb_xdomain_get(xd); xd 1514 drivers/thunderbolt/xdomain.c struct tb_xdomain *xd; xd 1519 drivers/thunderbolt/xdomain.c xd = switch_find_xdomain(tb->root_switch, &lookup); xd 1520 drivers/thunderbolt/xdomain.c return tb_xdomain_get(xd); xd 1598 drivers/thunderbolt/xdomain.c struct tb_xdomain *xd; xd 1600 drivers/thunderbolt/xdomain.c xd = tb_to_xdomain(dev); xd 1601 drivers/thunderbolt/xdomain.c if (xd) { xd 1602 drivers/thunderbolt/xdomain.c queue_delayed_work(xd->tb->wq, &xd->properties_changed_work, xd 279 fs/jffs2/malloc.c struct jffs2_xattr_datum *xd; xd 280 fs/jffs2/malloc.c xd = kmem_cache_zalloc(xattr_datum_cache, GFP_KERNEL); xd 281 fs/jffs2/malloc.c dbg_memalloc("%p\n", xd); xd 282 fs/jffs2/malloc.c if (!xd) xd 285 fs/jffs2/malloc.c xd->class = RAWNODE_CLASS_XATTR_DATUM; xd 286 fs/jffs2/malloc.c xd->node = (void *)xd; xd 287 fs/jffs2/malloc.c INIT_LIST_HEAD(&xd->xindex); xd 288 fs/jffs2/malloc.c return xd; xd 291 fs/jffs2/malloc.c void jffs2_free_xattr_datum(struct jffs2_xattr_datum *xd) xd 293 fs/jffs2/malloc.c dbg_memalloc("%p\n", xd); xd 294 fs/jffs2/malloc.c kmem_cache_free(xattr_datum_cache, xd); xd 331 fs/jffs2/scan.c struct jffs2_xattr_datum *xd; xd 357 fs/jffs2/scan.c xd = jffs2_setup_xattr_datum(c, xid, version); xd 358 fs/jffs2/scan.c if (IS_ERR(xd)) xd 359 fs/jffs2/scan.c return PTR_ERR(xd); xd 361 fs/jffs2/scan.c if (xd->version > version) { xd 364 fs/jffs2/scan.c raw->next_in_ino = xd->node->next_in_ino; xd 365 fs/jffs2/scan.c xd->node->next_in_ino = raw; xd 367 fs/jffs2/scan.c xd->version = version; xd 368 fs/jffs2/scan.c xd->xprefix = rx->xprefix; xd 369 fs/jffs2/scan.c xd->name_len = rx->name_len; xd 370 fs/jffs2/scan.c xd->value_len = je16_to_cpu(rx->value_len); xd 371 fs/jffs2/scan.c xd->data_crc = je32_to_cpu(rx->data_crc); xd 373 fs/jffs2/scan.c jffs2_link_node_ref(c, jeb, ofs | REF_PRISTINE, totlen, (void *)xd); xd 379 fs/jffs2/scan.c ofs, xd->xid, xd->version); xd 492 fs/jffs2/summary.c struct jffs2_xattr_datum *xd; xd 501 fs/jffs2/summary.c xd = jffs2_setup_xattr_datum(c, je32_to_cpu(spx->xid), xd 503 fs/jffs2/summary.c if (IS_ERR(xd)) xd 504 fs/jffs2/summary.c return PTR_ERR(xd); xd 505 fs/jffs2/summary.c if (xd->version > je32_to_cpu(spx->version)) { xd 510 fs/jffs2/summary.c raw->next_in_ino = xd->node->next_in_ino; xd 511 fs/jffs2/summary.c xd->node->next_in_ino = raw; xd 513 fs/jffs2/summary.c xd->version = je32_to_cpu(spx->version); xd 515 fs/jffs2/summary.c PAD(je32_to_cpu(spx->totlen)), (void *)xd); xd 477 fs/jffs2/wbuf.c struct jffs2_xattr_datum *xd = (void *)ic; xd 478 fs/jffs2/wbuf.c BUG_ON(xd->node != raw); xd 479 fs/jffs2/wbuf.c adjust_ref = &xd->node; xd 71 fs/jffs2/xattr.c static int is_xattr_datum_unchecked(struct jffs2_sb_info *c, struct jffs2_xattr_datum *xd) xd 77 fs/jffs2/xattr.c for (raw=xd->node; raw != (void *)xd; raw=raw->next_in_ino) { xd 87 fs/jffs2/xattr.c static void unload_xattr_datum(struct jffs2_sb_info *c, struct jffs2_xattr_datum *xd) xd 90 fs/jffs2/xattr.c D1(dbg_xattr("%s: xid=%u, version=%u\n", __func__, xd->xid, xd->version)); xd 91 fs/jffs2/xattr.c if (xd->xname) { xd 92 fs/jffs2/xattr.c c->xdatum_mem_usage -= (xd->name_len + 1 + xd->value_len); xd 93 fs/jffs2/xattr.c kfree(xd->xname); xd 96 fs/jffs2/xattr.c list_del_init(&xd->xindex); xd 97 fs/jffs2/xattr.c xd->hashkey = 0; xd 98 fs/jffs2/xattr.c xd->xname = NULL; xd 99 fs/jffs2/xattr.c xd->xvalue = NULL; xd 105 fs/jffs2/xattr.c struct jffs2_xattr_datum *xd, *_xd; xd 116 fs/jffs2/xattr.c list_for_each_entry_safe(xd, _xd, &c->xattrindex[index], xindex) { xd 117 fs/jffs2/xattr.c if (xd->flags & JFFS2_XFLAGS_HOT) { xd 118 fs/jffs2/xattr.c xd->flags &= ~JFFS2_XFLAGS_HOT; xd 119 fs/jffs2/xattr.c } else if (!(xd->flags & JFFS2_XFLAGS_BIND)) { xd 120 fs/jffs2/xattr.c unload_xattr_datum(c, xd); xd 132 fs/jffs2/xattr.c static int do_verify_xattr_datum(struct jffs2_sb_info *c, struct jffs2_xattr_datum *xd) xd 143 fs/jffs2/xattr.c offset = ref_offset(xd->node); xd 144 fs/jffs2/xattr.c if (ref_flags(xd->node) == REF_PRISTINE) xd 158 fs/jffs2/xattr.c xd->flags |= JFFS2_XFLAGS_INVALID; xd 165 fs/jffs2/xattr.c || je32_to_cpu(rx.xid) != xd->xid xd 166 fs/jffs2/xattr.c || je32_to_cpu(rx.version) != xd->version) { xd 172 fs/jffs2/xattr.c je32_to_cpu(rx.xid), xd->xid, xd 173 fs/jffs2/xattr.c je32_to_cpu(rx.version), xd->version); xd 174 fs/jffs2/xattr.c xd->flags |= JFFS2_XFLAGS_INVALID; xd 177 fs/jffs2/xattr.c xd->xprefix = rx.xprefix; xd 178 fs/jffs2/xattr.c xd->name_len = rx.name_len; xd 179 fs/jffs2/xattr.c xd->value_len = je16_to_cpu(rx.value_len); xd 180 fs/jffs2/xattr.c xd->data_crc = je32_to_cpu(rx.data_crc); xd 184 fs/jffs2/xattr.c for (raw=xd->node; raw != (void *)xd; raw=raw->next_in_ino) { xd 191 fs/jffs2/xattr.c raw->flash_offset = ref_offset(raw) | ((xd->node==raw) ? REF_PRISTINE : REF_NORMAL); xd 196 fs/jffs2/xattr.c list_del_init(&xd->xindex); xd 199 fs/jffs2/xattr.c xd->xid, xd->version); xd 204 fs/jffs2/xattr.c static int do_load_xattr_datum(struct jffs2_sb_info *c, struct jffs2_xattr_datum *xd) xd 212 fs/jffs2/xattr.c BUG_ON(ref_flags(xd->node) != REF_PRISTINE); xd 213 fs/jffs2/xattr.c BUG_ON(!list_empty(&xd->xindex)); xd 215 fs/jffs2/xattr.c length = xd->name_len + 1 + xd->value_len; xd 220 fs/jffs2/xattr.c ret = jffs2_flash_read(c, ref_offset(xd->node)+sizeof(struct jffs2_raw_xattr), xd 225 fs/jffs2/xattr.c ret, length, readlen, ref_offset(xd->node)); xd 230 fs/jffs2/xattr.c data[xd->name_len] = '\0'; xd 232 fs/jffs2/xattr.c if (crc != xd->data_crc) { xd 235 fs/jffs2/xattr.c ref_offset(xd->node), xd->data_crc, crc); xd 237 fs/jffs2/xattr.c xd->flags |= JFFS2_XFLAGS_INVALID; xd 241 fs/jffs2/xattr.c xd->flags |= JFFS2_XFLAGS_HOT; xd 242 fs/jffs2/xattr.c xd->xname = data; xd 243 fs/jffs2/xattr.c xd->xvalue = data + xd->name_len+1; xd 247 fs/jffs2/xattr.c xd->hashkey = xattr_datum_hashkey(xd->xprefix, xd->xname, xd->xvalue, xd->value_len); xd 248 fs/jffs2/xattr.c i = xd->hashkey % XATTRINDEX_HASHSIZE; xd 249 fs/jffs2/xattr.c list_add(&xd->xindex, &c->xattrindex[i]); xd 253 fs/jffs2/xattr.c if (!xd->xname) xd 258 fs/jffs2/xattr.c xd->xid, xd->xprefix, xd->xname); xd 263 fs/jffs2/xattr.c static int load_xattr_datum(struct jffs2_sb_info *c, struct jffs2_xattr_datum *xd) xd 272 fs/jffs2/xattr.c BUG_ON(xd->flags & JFFS2_XFLAGS_DEAD); xd 273 fs/jffs2/xattr.c if (xd->xname) xd 275 fs/jffs2/xattr.c if (xd->flags & JFFS2_XFLAGS_INVALID) xd 277 fs/jffs2/xattr.c if (unlikely(is_xattr_datum_unchecked(c, xd))) xd 278 fs/jffs2/xattr.c rc = do_verify_xattr_datum(c, xd); xd 280 fs/jffs2/xattr.c rc = do_load_xattr_datum(c, xd); xd 284 fs/jffs2/xattr.c static int save_xattr_datum(struct jffs2_sb_info *c, struct jffs2_xattr_datum *xd) xd 293 fs/jffs2/xattr.c BUG_ON(!xd->xname); xd 294 fs/jffs2/xattr.c BUG_ON(xd->flags & (JFFS2_XFLAGS_DEAD|JFFS2_XFLAGS_INVALID)); xd 298 fs/jffs2/xattr.c vecs[1].iov_base = xd->xname; xd 299 fs/jffs2/xattr.c vecs[1].iov_len = xd->name_len + 1 + xd->value_len; xd 309 fs/jffs2/xattr.c rx.xid = cpu_to_je32(xd->xid); xd 310 fs/jffs2/xattr.c rx.version = cpu_to_je32(++xd->version); xd 311 fs/jffs2/xattr.c rx.xprefix = xd->xprefix; xd 312 fs/jffs2/xattr.c rx.name_len = xd->name_len; xd 313 fs/jffs2/xattr.c rx.value_len = cpu_to_je16(xd->value_len); xd 328 fs/jffs2/xattr.c jffs2_add_physical_node_ref(c, phys_ofs | REF_PRISTINE, PAD(totlen), (void *)xd); xd 331 fs/jffs2/xattr.c xd->xid, xd->version, xd->xprefix, xd->xname); xd 341 fs/jffs2/xattr.c struct jffs2_xattr_datum *xd; xd 349 fs/jffs2/xattr.c list_for_each_entry(xd, &c->xattrindex[i], xindex) { xd 350 fs/jffs2/xattr.c if (xd->hashkey==hashkey xd 351 fs/jffs2/xattr.c && xd->xprefix==xprefix xd 352 fs/jffs2/xattr.c && xd->value_len==xsize xd 353 fs/jffs2/xattr.c && !strcmp(xd->xname, xname) xd 354 fs/jffs2/xattr.c && !memcmp(xd->xvalue, xvalue, xsize)) { xd 355 fs/jffs2/xattr.c atomic_inc(&xd->refcnt); xd 356 fs/jffs2/xattr.c return xd; xd 363 fs/jffs2/xattr.c xd = jffs2_alloc_xattr_datum(); xd 364 fs/jffs2/xattr.c if (!xd) xd 369 fs/jffs2/xattr.c jffs2_free_xattr_datum(xd); xd 375 fs/jffs2/xattr.c atomic_set(&xd->refcnt, 1); xd 376 fs/jffs2/xattr.c xd->xid = ++c->highest_xid; xd 377 fs/jffs2/xattr.c xd->flags |= JFFS2_XFLAGS_HOT; xd 378 fs/jffs2/xattr.c xd->xprefix = xprefix; xd 380 fs/jffs2/xattr.c xd->hashkey = hashkey; xd 381 fs/jffs2/xattr.c xd->xname = data; xd 382 fs/jffs2/xattr.c xd->xvalue = data + name_len + 1; xd 383 fs/jffs2/xattr.c xd->name_len = name_len; xd 384 fs/jffs2/xattr.c xd->value_len = xsize; xd 385 fs/jffs2/xattr.c xd->data_crc = crc32(0, data, xd->name_len + 1 + xd->value_len); xd 387 fs/jffs2/xattr.c rc = save_xattr_datum(c, xd); xd 389 fs/jffs2/xattr.c kfree(xd->xname); xd 390 fs/jffs2/xattr.c jffs2_free_xattr_datum(xd); xd 396 fs/jffs2/xattr.c list_add(&xd->xindex, &c->xattrindex[i]); xd 398 fs/jffs2/xattr.c c->xdatum_mem_usage += (xd->name_len + 1 + xd->value_len); xd 401 fs/jffs2/xattr.c return xd; xd 404 fs/jffs2/xattr.c static void unrefer_xattr_datum(struct jffs2_sb_info *c, struct jffs2_xattr_datum *xd) xd 407 fs/jffs2/xattr.c if (atomic_dec_and_lock(&xd->refcnt, &c->erase_completion_lock)) { xd 408 fs/jffs2/xattr.c unload_xattr_datum(c, xd); xd 409 fs/jffs2/xattr.c xd->flags |= JFFS2_XFLAGS_DEAD; xd 410 fs/jffs2/xattr.c if (xd->node == (void *)xd) { xd 411 fs/jffs2/xattr.c BUG_ON(!(xd->flags & JFFS2_XFLAGS_INVALID)); xd 412 fs/jffs2/xattr.c jffs2_free_xattr_datum(xd); xd 414 fs/jffs2/xattr.c list_add(&xd->xindex, &c->xattr_dead_list); xd 419 fs/jffs2/xattr.c xd->xid, xd->version); xd 526 fs/jffs2/xattr.c rr.xid = cpu_to_je32(ref->xd->xid); xd 545 fs/jffs2/xattr.c dbg_xattr("success on saving xref (ino=%u, xid=%u)\n", ref->ic->ino, ref->xd->xid); xd 551 fs/jffs2/xattr.c struct jffs2_xattr_datum *xd) xd 561 fs/jffs2/xattr.c ref->xd = xd; xd 579 fs/jffs2/xattr.c struct jffs2_xattr_datum *xd; xd 581 fs/jffs2/xattr.c xd = ref->xd; xd 584 fs/jffs2/xattr.c ref->xid = ref->xd->xid; xd 593 fs/jffs2/xattr.c unrefer_xattr_datum(c, xd); xd 617 fs/jffs2/xattr.c struct jffs2_xattr_datum *xd; xd 623 fs/jffs2/xattr.c xd = ref->xd; xd 624 fs/jffs2/xattr.c if (atomic_dec_and_test(&xd->refcnt)) { xd 625 fs/jffs2/xattr.c unload_xattr_datum(c, xd); xd 626 fs/jffs2/xattr.c jffs2_free_xattr_datum(xd); xd 649 fs/jffs2/xattr.c if (!ref->xd->xname) { xd 650 fs/jffs2/xattr.c rc = load_xattr_datum(c, ref->xd); xd 659 fs/jffs2/xattr.c if (!cmp->xd->xname) { xd 660 fs/jffs2/xattr.c ref->xd->flags |= JFFS2_XFLAGS_BIND; xd 661 fs/jffs2/xattr.c rc = load_xattr_datum(c, cmp->xd); xd 662 fs/jffs2/xattr.c ref->xd->flags &= ~JFFS2_XFLAGS_BIND; xd 670 fs/jffs2/xattr.c if (ref->xd->xprefix == cmp->xd->xprefix xd 671 fs/jffs2/xattr.c && !strcmp(ref->xd->xname, cmp->xd->xname)) { xd 727 fs/jffs2/xattr.c struct jffs2_xattr_datum *xd; xd 733 fs/jffs2/xattr.c list_for_each_entry(xd, &c->xattrindex[i], xindex) { xd 734 fs/jffs2/xattr.c if (xd->xid==xid) xd 735 fs/jffs2/xattr.c return xd; xd 742 fs/jffs2/xattr.c struct jffs2_xattr_datum *xd, *_xd; xd 757 fs/jffs2/xattr.c list_for_each_entry_safe(xd, _xd, &c->xattrindex[i], xindex) { xd 758 fs/jffs2/xattr.c list_del(&xd->xindex); xd 759 fs/jffs2/xattr.c kfree(xd->xname); xd 760 fs/jffs2/xattr.c jffs2_free_xattr_datum(xd); xd 764 fs/jffs2/xattr.c list_for_each_entry_safe(xd, _xd, &c->xattr_dead_list, xindex) { xd 765 fs/jffs2/xattr.c list_del(&xd->xindex); xd 766 fs/jffs2/xattr.c jffs2_free_xattr_datum(xd); xd 768 fs/jffs2/xattr.c list_for_each_entry_safe(xd, _xd, &c->xattr_unchecked, xindex) { xd 769 fs/jffs2/xattr.c list_del(&xd->xindex); xd 770 fs/jffs2/xattr.c jffs2_free_xattr_datum(xd); xd 779 fs/jffs2/xattr.c struct jffs2_xattr_datum *xd, *_xd; xd 841 fs/jffs2/xattr.c xd = jffs2_find_xattr_datum(c, ref->xid); xd 843 fs/jffs2/xattr.c if (!xd || !ic || !ic->pino_nlink) { xd 852 fs/jffs2/xattr.c ref->xd = xd; xd 854 fs/jffs2/xattr.c atomic_inc(&xd->refcnt); xd 862 fs/jffs2/xattr.c list_for_each_entry_safe(xd, _xd, &c->xattrindex[i], xindex) { xd 864 fs/jffs2/xattr.c list_del_init(&xd->xindex); xd 865 fs/jffs2/xattr.c if (!atomic_read(&xd->refcnt)) { xd 867 fs/jffs2/xattr.c xd->xid, xd->version); xd 868 fs/jffs2/xattr.c xd->flags |= JFFS2_XFLAGS_DEAD; xd 869 fs/jffs2/xattr.c list_add(&xd->xindex, &c->xattr_unchecked); xd 873 fs/jffs2/xattr.c if (is_xattr_datum_unchecked(c, xd)) { xd 875 fs/jffs2/xattr.c xd->xid, xd->version); xd 876 fs/jffs2/xattr.c list_add(&xd->xindex, &c->xattr_unchecked); xd 892 fs/jffs2/xattr.c struct jffs2_xattr_datum *xd; xd 894 fs/jffs2/xattr.c xd = jffs2_find_xattr_datum(c, xid); xd 895 fs/jffs2/xattr.c if (!xd) { xd 896 fs/jffs2/xattr.c xd = jffs2_alloc_xattr_datum(); xd 897 fs/jffs2/xattr.c if (!xd) xd 899 fs/jffs2/xattr.c xd->xid = xid; xd 900 fs/jffs2/xattr.c xd->version = version; xd 901 fs/jffs2/xattr.c if (xd->xid > c->highest_xid) xd 902 fs/jffs2/xattr.c c->highest_xid = xd->xid; xd 903 fs/jffs2/xattr.c list_add_tail(&xd->xindex, &c->xattrindex[xid % XATTRINDEX_HASHSIZE]); xd 905 fs/jffs2/xattr.c return xd; xd 968 fs/jffs2/xattr.c struct jffs2_xattr_datum *xd; xd 983 fs/jffs2/xattr.c xd = ref->xd; xd 984 fs/jffs2/xattr.c if (!xd->xname) { xd 992 fs/jffs2/xattr.c rc = load_xattr_datum(c, xd); xd 1001 fs/jffs2/xattr.c xhandle = xprefix_to_handler(xd->xprefix); xd 1006 fs/jffs2/xattr.c rc = prefix_len + xd->name_len + 1; xd 1015 fs/jffs2/xattr.c memcpy(buffer, xd->xname, xd->name_len); xd 1016 fs/jffs2/xattr.c buffer += xd->name_len; xd 1037 fs/jffs2/xattr.c struct jffs2_xattr_datum *xd; xd 1050 fs/jffs2/xattr.c xd = ref->xd; xd 1051 fs/jffs2/xattr.c if (xd->xprefix != xprefix) xd 1053 fs/jffs2/xattr.c if (!xd->xname) { xd 1061 fs/jffs2/xattr.c rc = load_xattr_datum(c, xd); xd 1071 fs/jffs2/xattr.c if (!strcmp(xname, xd->xname)) { xd 1072 fs/jffs2/xattr.c rc = xd->value_len; xd 1077 fs/jffs2/xattr.c memcpy(buffer, xd->xvalue, rc); xd 1099 fs/jffs2/xattr.c struct jffs2_xattr_datum *xd; xd 1120 fs/jffs2/xattr.c xd = ref->xd; xd 1121 fs/jffs2/xattr.c if (xd->xprefix != xprefix) xd 1123 fs/jffs2/xattr.c if (!xd->xname) { xd 1124 fs/jffs2/xattr.c rc = load_xattr_datum(c, xd); xd 1132 fs/jffs2/xattr.c if (!strcmp(xd->xname, xname)) { xd 1139 fs/jffs2/xattr.c ref->xid = xd->xid; xd 1148 fs/jffs2/xattr.c unrefer_xattr_datum(c, xd); xd 1151 fs/jffs2/xattr.c ref->xd = xd; xd 1169 fs/jffs2/xattr.c xd = create_xattr_datum(c, xprefix, xname, buffer, size); xd 1170 fs/jffs2/xattr.c if (IS_ERR(xd)) { xd 1171 fs/jffs2/xattr.c rc = PTR_ERR(xd); xd 1184 fs/jffs2/xattr.c unrefer_xattr_datum(c, xd); xd 1190 fs/jffs2/xattr.c newref = create_xattr_ref(c, ic, xd); xd 1197 fs/jffs2/xattr.c unrefer_xattr_datum(c, xd); xd 1219 fs/jffs2/xattr.c int jffs2_garbage_collect_xattr_datum(struct jffs2_sb_info *c, struct jffs2_xattr_datum *xd, xd 1226 fs/jffs2/xattr.c if (xd->node != raw) xd 1228 fs/jffs2/xattr.c if (xd->flags & (JFFS2_XFLAGS_DEAD|JFFS2_XFLAGS_INVALID)) xd 1231 fs/jffs2/xattr.c rc = load_xattr_datum(c, xd); xd 1236 fs/jffs2/xattr.c old_ofs = ref_offset(xd->node); xd 1238 fs/jffs2/xattr.c + xd->name_len + 1 + xd->value_len); xd 1244 fs/jffs2/xattr.c rc = save_xattr_datum(c, xd); xd 1247 fs/jffs2/xattr.c xd->xid, xd->version, old_ofs, ref_offset(xd->node)); xd 1281 fs/jffs2/xattr.c ref->ic->ino, ref->xd->xid, old_ofs, ref_offset(ref->node)); xd 1291 fs/jffs2/xattr.c struct jffs2_xattr_datum *xd, *_xd; xd 1298 fs/jffs2/xattr.c list_for_each_entry_safe(xd, _xd, &c->xattr_unchecked, xindex) { xd 1299 fs/jffs2/xattr.c rc = do_verify_xattr_datum(c, xd); xd 1302 fs/jffs2/xattr.c list_del_init(&xd->xindex); xd 1304 fs/jffs2/xattr.c for (raw=xd->node; raw != (void *)xd; raw=raw->next_in_ino) { xd 1312 fs/jffs2/xattr.c | ((xd->node == (void *)raw) ? REF_PRISTINE : REF_NORMAL); xd 1314 fs/jffs2/xattr.c if (xd->flags & JFFS2_XFLAGS_DEAD) xd 1315 fs/jffs2/xattr.c list_add(&xd->xindex, &c->xattr_dead_list); xd 1322 fs/jffs2/xattr.c void jffs2_release_xattr_datum(struct jffs2_sb_info *c, struct jffs2_xattr_datum *xd) xd 1325 fs/jffs2/xattr.c if (atomic_read(&xd->refcnt) || xd->node != (void *)xd) xd 1328 fs/jffs2/xattr.c list_del(&xd->xindex); xd 1329 fs/jffs2/xattr.c jffs2_free_xattr_datum(xd); xd 59 fs/jffs2/xattr.h struct jffs2_xattr_datum *xd; /* reference to jffs2_xattr_datum */ xd 84 fs/jffs2/xattr.h extern int jffs2_garbage_collect_xattr_datum(struct jffs2_sb_info *c, struct jffs2_xattr_datum *xd, xd 89 fs/jffs2/xattr.h extern void jffs2_release_xattr_datum(struct jffs2_sb_info *c, struct jffs2_xattr_datum *xd); xd 1215 fs/jfs/jfs_dtree.c data->xd = rpxd; /* child page xd */ xd 3339 fs/jfs/jfs_dtree.c pxd_t *xd; xd 3380 fs/jfs/jfs_dtree.c xd = (pxd_t *) & p->slot[stbl[0]]; xd 3383 fs/jfs/jfs_dtree.c bn = addressPXD(xd); xd 3384 fs/jfs/jfs_dtree.c psize = lengthPXD(xd) << JFS_SBI(ip->i_sb)->l2bsize; xd 3418 fs/jfs/jfs_dtree.c pxd_t *xd; xd 3517 fs/jfs/jfs_dtree.c xd = (pxd_t *) & p->slot[stbl[pn]]; xd 3518 fs/jfs/jfs_dtree.c bn = addressPXD(xd); xd 3903 fs/jfs/jfs_dtree.c pxd_t *xd; xd 3945 fs/jfs/jfs_dtree.c xd = (pxd_t *) ih; xd 3946 fs/jfs/jfs_dtree.c *xd = data->xd; xd 20 fs/jfs/jfs_dtree.h pxd_t xd; xd 53 fs/jfs/jfs_dtree.h pxd_t xd; /* 8: child extent descriptor */ xd 246 include/linux/thunderbolt.h int tb_xdomain_enable_paths(struct tb_xdomain *xd, u16 transmit_path, xd 249 include/linux/thunderbolt.h int tb_xdomain_disable_paths(struct tb_xdomain *xd); xd 256 include/linux/thunderbolt.h struct tb_xdomain *xd; xd 259 include/linux/thunderbolt.h xd = tb_xdomain_find_by_uuid(tb, uuid); xd 262 include/linux/thunderbolt.h return xd; xd 268 include/linux/thunderbolt.h struct tb_xdomain *xd; xd 271 include/linux/thunderbolt.h xd = tb_xdomain_find_by_route(tb, route); xd 274 include/linux/thunderbolt.h return xd; xd 277 include/linux/thunderbolt.h static inline struct tb_xdomain *tb_xdomain_get(struct tb_xdomain *xd) xd 279 include/linux/thunderbolt.h if (xd) xd 280 include/linux/thunderbolt.h get_device(&xd->dev); xd 281 include/linux/thunderbolt.h return xd; xd 284 include/linux/thunderbolt.h static inline void tb_xdomain_put(struct tb_xdomain *xd) xd 286 include/linux/thunderbolt.h if (xd) xd 287 include/linux/thunderbolt.h put_device(&xd->dev); xd 302 include/linux/thunderbolt.h int tb_xdomain_response(struct tb_xdomain *xd, const void *response, xd 304 include/linux/thunderbolt.h int tb_xdomain_request(struct tb_xdomain *xd, const void *request, xd 474 sound/pci/sonicvibes.c unsigned int xm, xn, xr, xd, metric = ~0U; xd 486 sound/pci/sonicvibes.c xd = xr - rate; xd 488 sound/pci/sonicvibes.c xd = rate - xr; xd 489 sound/pci/sonicvibes.c if (xd < metric) { xd 490 sound/pci/sonicvibes.c metric = xd;