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;