Lines Matching refs:dd
100 struct ipath_devdata *dd = pd->port_dd; in ipath_get_base_info() local
133 ret = dd->ipath_f_get_base_info(pd, kinfo); in ipath_get_base_info()
137 kinfo->spi_rcvhdr_cnt = dd->ipath_rcvhdrcnt; in ipath_get_base_info()
138 kinfo->spi_rcvhdrent_size = dd->ipath_rcvhdrentsize; in ipath_get_base_info()
139 kinfo->spi_tidegrcnt = dd->ipath_rcvegrcnt; in ipath_get_base_info()
140 kinfo->spi_rcv_egrbufsize = dd->ipath_rcvegrbufsize; in ipath_get_base_info()
149 kinfo->spi_tidcnt = dd->ipath_rcvtidcnt / subport_cnt; in ipath_get_base_info()
151 kinfo->spi_tidcnt += dd->ipath_rcvtidcnt % subport_cnt; in ipath_get_base_info()
156 kinfo->spi_nports = dd->ipath_cfgports; in ipath_get_base_info()
158 kinfo->spi_unit = dd->ipath_unit; in ipath_get_base_info()
180 kinfo->spi_pioavailaddr = (u64) dd->ipath_pioavailregs_phys; in ipath_get_base_info()
182 (void *) dd->ipath_statusp - in ipath_get_base_info()
183 (void *) dd->ipath_pioavailregs_dma; in ipath_get_base_info()
187 kinfo->__spi_uregbase = (u64) dd->ipath_uregbase + in ipath_get_base_info()
188 dd->ipath_ureg_align * pd->port_port; in ipath_get_base_info()
194 dd->ipath_palign * in ipath_get_base_info()
201 dd->ipath_palign * kinfo->spi_piocnt * slave; in ipath_get_base_info()
205 kinfo->spi_port_uregbase = (u64) dd->ipath_uregbase + in ipath_get_base_info()
206 dd->ipath_ureg_align * pd->port_port; in ipath_get_base_info()
240 (dd->ipath_piobufbase & 0xffffffff)) / dd->ipath_palign; in ipath_get_base_info()
241 kinfo->spi_pioalign = dd->ipath_palign; in ipath_get_base_info()
249 kinfo->spi_piosize = dd->ipath_piosize2k - 2 * sizeof(u32); in ipath_get_base_info()
250 kinfo->spi_mtu = dd->ipath_ibmaxlen; /* maxlen, not ibmtu */ in ipath_get_base_info()
254 kinfo->spi_hw_version = dd->ipath_revision; in ipath_get_base_info()
301 struct ipath_devdata *dd = pd->port_dd; in ipath_tid_update() local
309 if (!dd->ipath_pageshadow) { in ipath_tid_update()
324 porttid = pd->port_port * dd->ipath_rcvtidcnt; in ipath_tid_update()
326 tidcnt = dd->ipath_rcvtidcnt; in ipath_tid_update()
330 tidcnt = (dd->ipath_rcvtidcnt / pd->port_subport_cnt) + in ipath_tid_update()
331 (dd->ipath_rcvtidcnt % pd->port_subport_cnt); in ipath_tid_update()
332 tidoff = dd->ipath_rcvtidcnt - tidcnt; in ipath_tid_update()
336 tidcnt = dd->ipath_rcvtidcnt / pd->port_subport_cnt; in ipath_tid_update()
343 dev_info(&dd->pcidev->dev, "Process tried to allocate %u " in ipath_tid_update()
348 tidlist = &((u16 *) &pagep[dd->ipath_rcvtidcnt])[tidoff]; in ipath_tid_update()
353 tidbase = (u64 __iomem *) (((char __iomem *) dd->ipath_kregbase) + in ipath_tid_update()
354 dd->ipath_rcvtidbase + in ipath_tid_update()
383 dev_info(&dd->pcidev->dev, in ipath_tid_update()
393 if (!dd->ipath_pageshadow[porttid + tid]) in ipath_tid_update()
412 dd->ipath_pageshadow[porttid + tid] = pagep[i]; in ipath_tid_update()
413 dd->ipath_physshadow[porttid + tid] = ipath_map_page( in ipath_tid_update()
414 dd->pcidev, pagep[i], 0, PAGE_SIZE, in ipath_tid_update()
420 physaddr = dd->ipath_physshadow[porttid + tid]; in ipath_tid_update()
426 dd->ipath_f_put_tid(dd, &tidbase[tid], RCVHQ_RCV_TYPE_EXPECTED, in ipath_tid_update()
450 if (dd->ipath_pageshadow[porttid + tid]) { in ipath_tid_update()
453 dd->ipath_f_put_tid(dd, &tidbase[tid], in ipath_tid_update()
455 dd->ipath_tidinvalid); in ipath_tid_update()
456 pci_unmap_page(dd->pcidev, in ipath_tid_update()
457 dd->ipath_physshadow[porttid + tid], in ipath_tid_update()
459 dd->ipath_pageshadow[porttid + tid] = NULL; in ipath_tid_update()
518 struct ipath_devdata *dd = pd->port_dd; in ipath_tid_free() local
522 if (!dd->ipath_pageshadow) { in ipath_tid_free()
533 porttid = pd->port_port * dd->ipath_rcvtidcnt; in ipath_tid_free()
535 tidcnt = dd->ipath_rcvtidcnt; in ipath_tid_free()
537 tidcnt = (dd->ipath_rcvtidcnt / pd->port_subport_cnt) + in ipath_tid_free()
538 (dd->ipath_rcvtidcnt % pd->port_subport_cnt); in ipath_tid_free()
539 porttid += dd->ipath_rcvtidcnt - tidcnt; in ipath_tid_free()
541 tidcnt = dd->ipath_rcvtidcnt / pd->port_subport_cnt; in ipath_tid_free()
544 tidbase = (u64 __iomem *) ((char __iomem *)(dd->ipath_kregbase) + in ipath_tid_free()
545 dd->ipath_rcvtidbase + in ipath_tid_free()
567 if (dd->ipath_pageshadow[porttid + tid]) { in ipath_tid_free()
569 p = dd->ipath_pageshadow[porttid + tid]; in ipath_tid_free()
570 dd->ipath_pageshadow[porttid + tid] = NULL; in ipath_tid_free()
573 dd->ipath_f_put_tid(dd, &tidbase[tid], in ipath_tid_free()
575 dd->ipath_tidinvalid); in ipath_tid_free()
576 pci_unmap_page(dd->pcidev, in ipath_tid_free()
577 dd->ipath_physshadow[porttid + tid], in ipath_tid_free()
612 struct ipath_devdata *dd = pd->port_dd; in ipath_set_part_key() local
625 pd->port_port, key, dd->ipath_pkeys[0], in ipath_set_part_key()
626 atomic_read(&dd->ipath_pkeyrefs[0]), dd->ipath_pkeys[1], in ipath_set_part_key()
627 atomic_read(&dd->ipath_pkeyrefs[1]), dd->ipath_pkeys[2], in ipath_set_part_key()
628 atomic_read(&dd->ipath_pkeyrefs[2]), dd->ipath_pkeys[3], in ipath_set_part_key()
629 atomic_read(&dd->ipath_pkeyrefs[3])); in ipath_set_part_key()
663 for (any = i = 0; i < ARRAY_SIZE(dd->ipath_pkeys); i++) { in ipath_set_part_key()
664 if (!dd->ipath_pkeys[i]) { in ipath_set_part_key()
668 if (dd->ipath_pkeys[i] == key) { in ipath_set_part_key()
669 atomic_t *pkrefs = &dd->ipath_pkeyrefs[i]; in ipath_set_part_key()
690 if ((dd->ipath_pkeys[i] & 0x7FFF) == lkey) { in ipath_set_part_key()
706 for (any = i = 0; i < ARRAY_SIZE(dd->ipath_pkeys); i++) { in ipath_set_part_key()
707 if (!dd->ipath_pkeys[i] && in ipath_set_part_key()
708 atomic_inc_return(&dd->ipath_pkeyrefs[i]) == 1) { in ipath_set_part_key()
713 pd->port_pkeys[pidx] = dd->ipath_pkeys[i] = key; in ipath_set_part_key()
715 (u64) dd->ipath_pkeys[0] | in ipath_set_part_key()
716 ((u64) dd->ipath_pkeys[1] << 16) | in ipath_set_part_key()
717 ((u64) dd->ipath_pkeys[2] << 32) | in ipath_set_part_key()
718 ((u64) dd->ipath_pkeys[3] << 48); in ipath_set_part_key()
724 dd, dd->ipath_kregs->kr_partitionkey, pkey); in ipath_set_part_key()
751 struct ipath_devdata *dd = pd->port_dd; in ipath_manage_rcvq() local
754 start_stop ? "en" : "dis", dd->ipath_unit, in ipath_manage_rcvq()
774 set_bit(dd->ipath_r_portenable_shift + pd->port_port, in ipath_manage_rcvq()
775 &dd->ipath_rcvctrl); in ipath_manage_rcvq()
777 clear_bit(dd->ipath_r_portenable_shift + pd->port_port, in ipath_manage_rcvq()
778 &dd->ipath_rcvctrl); in ipath_manage_rcvq()
779 ipath_write_kreg(dd, dd->ipath_kregs->kr_rcvctrl, in ipath_manage_rcvq()
780 dd->ipath_rcvctrl); in ipath_manage_rcvq()
782 ipath_read_kreg64(dd, dd->ipath_kregs->kr_scratch); in ipath_manage_rcvq()
791 ipath_read_ureg32(dd, ur_rcvhdrtail, pd->port_port); in ipath_manage_rcvq()
799 struct ipath_devdata *dd) in ipath_clean_part_key() argument
805 oldpkey = (u64) dd->ipath_pkeys[0] | in ipath_clean_part_key()
806 ((u64) dd->ipath_pkeys[1] << 16) | in ipath_clean_part_key()
807 ((u64) dd->ipath_pkeys[2] << 32) | in ipath_clean_part_key()
808 ((u64) dd->ipath_pkeys[3] << 48); in ipath_clean_part_key()
815 for (j = 0; j < ARRAY_SIZE(dd->ipath_pkeys); j++) { in ipath_clean_part_key()
817 if ((dd->ipath_pkeys[j] & 0x7fff) != in ipath_clean_part_key()
820 if (atomic_dec_and_test(&dd->ipath_pkeyrefs[j])) { in ipath_clean_part_key()
826 dd->ipath_pkeys[j] = 0; in ipath_clean_part_key()
833 atomic_read(&dd->ipath_pkeyrefs[j])); in ipath_clean_part_key()
839 u64 pkey = (u64) dd->ipath_pkeys[0] | in ipath_clean_part_key()
840 ((u64) dd->ipath_pkeys[1] << 16) | in ipath_clean_part_key()
841 ((u64) dd->ipath_pkeys[2] << 32) | in ipath_clean_part_key()
842 ((u64) dd->ipath_pkeys[3] << 48); in ipath_clean_part_key()
847 ipath_write_kreg(dd, dd->ipath_kregs->kr_partitionkey, in ipath_clean_part_key()
860 struct ipath_devdata *dd = pd->port_dd; in init_user_egr_sizes() local
875 egrperchunk = size / dd->ipath_rcvegrbufsize; in init_user_egr_sizes()
876 egrcnt = dd->ipath_rcvegrcnt; in init_user_egr_sizes()
896 struct ipath_devdata *dd = pd->port_dd; in ipath_create_user_egr() local
910 egrcnt = dd->ipath_rcvegrcnt; in ipath_create_user_egr()
912 egroff = (pd->port_port - 1) * egrcnt + dd->ipath_p0_rcvegrcnt; in ipath_create_user_egr()
913 egrsize = dd->ipath_rcvegrbufsize; in ipath_create_user_egr()
936 &dd->pcidev->dev, size, &pd->port_rcvegrbuf_phys[e], in ipath_create_user_egr()
952 dd->ipath_f_put_tid(dd, e + egroff + in ipath_create_user_egr()
955 dd->ipath_kregbase + in ipath_create_user_egr()
956 dd->ipath_rcvegrbase), in ipath_create_user_egr()
969 dma_free_coherent(&dd->pcidev->dev, size, in ipath_create_user_egr()
989 struct ipath_devdata *dd = pd->port_dd; in ipath_mmap_mem() local
994 dev_info(&dd->pcidev->dev, in ipath_mmap_mem()
1003 dev_info(&dd->pcidev->dev, in ipath_mmap_mem()
1017 dev_info(&dd->pcidev->dev, "%s port%u mmap of %lx, %x " in ipath_mmap_mem()
1028 static int mmap_ureg(struct vm_area_struct *vma, struct ipath_devdata *dd, in mmap_ureg() argument
1040 dev_info(&dd->pcidev->dev, "FAIL mmap userreg: reqlen " in mmap_ureg()
1044 phys = dd->ipath_physaddr + ureg; in mmap_ureg()
1057 struct ipath_devdata *dd, in mmap_piobufs() argument
1070 if ((vma->vm_end - vma->vm_start) > (piocnt * dd->ipath_palign)) { in mmap_piobufs()
1071 dev_info(&dd->pcidev->dev, "FAIL mmap piobufs: " in mmap_piobufs()
1078 phys = dd->ipath_physaddr + piobufs; in mmap_piobufs()
1104 struct ipath_devdata *dd = pd->port_dd; in mmap_rcvegrbufs() local
1113 dev_info(&dd->pcidev->dev, "FAIL on egr bufs: " in mmap_rcvegrbufs()
1122 dev_info(&dd->pcidev->dev, "Can't map eager buffers as " in mmap_rcvegrbufs()
1170 struct ipath_devdata *dd; in mmap_kvaddr() local
1179 dd = pd->port_dd; in mmap_kvaddr()
1210 dev_info(&dd->pcidev->dev, in mmap_kvaddr()
1253 struct ipath_devdata *dd; in ipath_mmap() local
1263 dd = pd->port_dd; in ipath_mmap()
1286 vma->vm_end - vma->vm_start, dd->ipath_unit, in ipath_mmap()
1301 ureg = dd->ipath_uregbase + dd->ipath_ureg_align * pd->port_port; in ipath_mmap()
1311 dd->ipath_palign * (pd->port_piocnt - piocnt); in ipath_mmap()
1317 piobufs = pd->port_piobufs + dd->ipath_palign * piocnt * slave; in ipath_mmap()
1321 ret = mmap_ureg(vma, dd, ureg); in ipath_mmap()
1323 ret = mmap_piobufs(vma, dd, pd, piobufs, piocnt); in ipath_mmap()
1324 else if (pgaddr == dd->ipath_pioavailregs_phys) in ipath_mmap()
1327 (void *) dd->ipath_pioavailregs_dma, in ipath_mmap()
1351 dev_info(&dd->pcidev->dev, in ipath_mmap()
1377 struct ipath_devdata *dd; in ipath_poll_urgent() local
1379 dd = pd->port_dd; in ipath_poll_urgent()
1408 struct ipath_devdata *dd; in ipath_poll_next() local
1410 dd = pd->port_dd; in ipath_poll_next()
1416 head = ipath_read_ureg32(dd, ur_rcvhdrhead, pd->port_port); in ipath_poll_next()
1420 tail = ipath_read_ureg32(dd, ur_rcvhdrtail, pd->port_port); in ipath_poll_next()
1430 set_bit(pd->port_port + dd->ipath_r_intravail_shift, in ipath_poll_next()
1431 &dd->ipath_rcvctrl); in ipath_poll_next()
1433 ipath_write_kreg(dd, dd->ipath_kregs->kr_rcvctrl, in ipath_poll_next()
1434 dd->ipath_rcvctrl); in ipath_poll_next()
1436 if (dd->ipath_rhdrhead_intr_off) /* arm rcv interrupt */ in ipath_poll_next()
1437 ipath_write_ureg(dd, ur_rcvhdrhead, in ipath_poll_next()
1438 dd->ipath_rhdrhead_intr_off | head, in ipath_poll_next()
1496 static int init_subports(struct ipath_devdata *dd, in init_subports() argument
1515 dev_info(&dd->pcidev->dev, in init_subports()
1523 dev_info(&dd->pcidev->dev, in init_subports()
1546 size = ALIGN(dd->ipath_rcvhdrcnt * dd->ipath_rcvhdrentsize * in init_subports()
1577 static int try_alloc_port(struct ipath_devdata *dd, int port, in try_alloc_port() argument
1584 if (!(pd = dd->ipath_pd[port])) { in try_alloc_port()
1594 ptmp = kmalloc(dd->ipath_rcvtidcnt * sizeof(u16) + in try_alloc_port()
1595 dd->ipath_rcvtidcnt * sizeof(struct page **), in try_alloc_port()
1598 ipath_dev_err(dd, "Unable to allocate portdata " in try_alloc_port()
1605 dd->ipath_pd[port] = pd; in try_alloc_port()
1606 dd->ipath_pd[port]->port_port = port; in try_alloc_port()
1607 dd->ipath_pd[port]->port_dd = dd; in try_alloc_port()
1608 dd->ipath_pd[port]->port_tid_pg_list = ptmp; in try_alloc_port()
1609 init_waitqueue_head(&dd->ipath_pd[port]->port_wait); in try_alloc_port()
1614 if ((ret = init_subports(dd, pd, uinfo)) != 0) in try_alloc_port()
1617 current->comm, current->pid, dd->ipath_unit, in try_alloc_port()
1632 static inline int usable(struct ipath_devdata *dd) in usable() argument
1634 return dd && in usable()
1635 (dd->ipath_flags & IPATH_PRESENT) && in usable()
1636 dd->ipath_kregbase && in usable()
1637 dd->ipath_lid && in usable()
1638 !(dd->ipath_flags & (IPATH_LINKDOWN | IPATH_DISABLED in usable()
1645 struct ipath_devdata *dd = ipath_lookup(unit); in find_free_port() local
1648 if (!dd) { in find_free_port()
1653 if (!usable(dd)) { in find_free_port()
1658 for (i = 1; i < dd->ipath_cfgports; i++) { in find_free_port()
1659 ret = try_alloc_port(dd, i, fp, uinfo); in find_free_port()
1730 struct ipath_devdata *dd = ipath_lookup(ndev); in find_best_unit() local
1732 if (!usable(dd)) in find_best_unit()
1734 if (i >= dd->ipath_cfgports) in find_best_unit()
1740 ret = try_alloc_port(dd, i, fp, uinfo); in find_best_unit()
1785 struct ipath_devdata *dd = ipath_lookup(ndev); in find_shared_port() local
1787 if (!usable(dd)) in find_shared_port()
1789 for (i = 1; i < dd->ipath_cfgports; i++) { in find_shared_port()
1790 struct ipath_portdata *pd = dd->ipath_pd[i]; in find_shared_port()
1816 dd->ipath_unit, pd->port_port); in find_shared_port()
1885 const struct ipath_devdata *dd = pd->port_dd; in ipath_assign_port() local
1887 fd->pq = ipath_user_sdma_queue_create(&dd->pcidev->dev, in ipath_assign_port()
1888 dd->ipath_unit, in ipath_assign_port()
1908 struct ipath_devdata *dd; in ipath_do_user_init() local
1918 dd = pd->port_dd; in ipath_do_user_init()
1921 ret = ipath_setrcvhdrsize(dd, uinfo->spu_rcvhdrsize); in ipath_do_user_init()
1929 if (pd->port_port <= dd->ipath_ports_extrabuf) in ipath_do_user_init()
1930 pd->port_piocnt = dd->ipath_pbufsport + 1; in ipath_do_user_init()
1932 pd->port_piocnt = dd->ipath_pbufsport; in ipath_do_user_init()
1935 if (pd->port_port <= dd->ipath_ports_extrabuf) in ipath_do_user_init()
1936 pd->port_pio_base = (dd->ipath_pbufsport + 1) in ipath_do_user_init()
1939 pd->port_pio_base = dd->ipath_ports_extrabuf + in ipath_do_user_init()
1940 dd->ipath_pbufsport * (pd->port_port - 1); in ipath_do_user_init()
1941 pd->port_piobufs = dd->ipath_piobufbase + in ipath_do_user_init()
1942 pd->port_pio_base * dd->ipath_palign; in ipath_do_user_init()
1946 ipath_chg_pioavailkernel(dd, pd->port_pio_base, pd->port_piocnt, 0); in ipath_do_user_init()
1954 ret = ipath_create_rcvhdrq(dd, pd); in ipath_do_user_init()
1965 head32 = ipath_read_ureg32(dd, ur_rcvegrindextail, pd->port_port); in ipath_do_user_init()
1966 ipath_write_ureg(dd, ur_rcvegrindexhead, head32, pd->port_port); in ipath_do_user_init()
1988 set_bit(dd->ipath_r_portenable_shift + pd->port_port, in ipath_do_user_init()
1989 &dd->ipath_rcvctrl); in ipath_do_user_init()
1990 if (!(dd->ipath_flags & IPATH_NODMA_RTAIL)) { in ipath_do_user_init()
1993 ipath_write_kreg(dd, dd->ipath_kregs->kr_rcvctrl, in ipath_do_user_init()
1994 dd->ipath_rcvctrl & in ipath_do_user_init()
1995 ~(1ULL << dd->ipath_r_tailupd_shift)); in ipath_do_user_init()
1997 ipath_write_kreg(dd, dd->ipath_kregs->kr_rcvctrl, in ipath_do_user_init()
1998 dd->ipath_rcvctrl); in ipath_do_user_init()
2017 struct ipath_devdata *dd = pd->port_dd; in unlock_expected_tids() local
2018 int port_tidbase = pd->port_port * dd->ipath_rcvtidcnt; in unlock_expected_tids()
2019 int i, cnt = 0, maxtid = port_tidbase + dd->ipath_rcvtidcnt; in unlock_expected_tids()
2024 struct page *ps = dd->ipath_pageshadow[i]; in unlock_expected_tids()
2029 dd->ipath_pageshadow[i] = NULL; in unlock_expected_tids()
2030 pci_unmap_page(dd->pcidev, dd->ipath_physshadow[i], in unlock_expected_tids()
2052 struct ipath_devdata *dd; in ipath_close() local
2070 dd = pd->port_dd; in ipath_close()
2073 ipath_user_sdma_queue_drain(dd, fd->pq); in ipath_close()
2089 spin_lock_irqsave(&dd->ipath_uctxt_lock, flags); in ipath_close()
2091 dd->ipath_pd[port] = NULL; in ipath_close()
2094 spin_unlock_irqrestore(&dd->ipath_uctxt_lock, flags); in ipath_close()
2112 if (dd->ipath_kregbase) { in ipath_close()
2114 clear_bit(dd->ipath_r_portenable_shift + port, in ipath_close()
2115 &dd->ipath_rcvctrl); in ipath_close()
2116 clear_bit(pd->port_port + dd->ipath_r_intravail_shift, in ipath_close()
2117 &dd->ipath_rcvctrl); in ipath_close()
2118 ipath_write_kreg( dd, dd->ipath_kregs->kr_rcvctrl, in ipath_close()
2119 dd->ipath_rcvctrl); in ipath_close()
2122 (void)ipath_read_kreg64(dd, dd->ipath_kregs->kr_scratch); in ipath_close()
2125 ipath_clean_part_key(pd, dd); in ipath_close()
2135 ipath_write_kreg_port(dd, in ipath_close()
2136 dd->ipath_kregs->kr_rcvhdrtailaddr, port, in ipath_close()
2137 dd->ipath_dummy_hdrq_phys); in ipath_close()
2138 ipath_write_kreg_port(dd, dd->ipath_kregs->kr_rcvhdraddr, in ipath_close()
2139 pd->port_port, dd->ipath_dummy_hdrq_phys); in ipath_close()
2141 ipath_disarm_piobufs(dd, pd->port_pio_base, pd->port_piocnt); in ipath_close()
2142 ipath_chg_pioavailkernel(dd, pd->port_pio_base, in ipath_close()
2145 dd->ipath_f_clear_tids(dd, pd->port_port); in ipath_close()
2147 if (dd->ipath_pageshadow) in ipath_close()
2152 dd->ipath_unit, port); in ipath_close()
2157 ipath_free_pddata(dd, pd); /* after releasing the mutex */ in ipath_close()
2218 static int ipath_sdma_get_complete(struct ipath_devdata *dd, in ipath_sdma_get_complete() argument
2225 err = ipath_user_sdma_make_progress(dd, pq); in ipath_sdma_get_complete()
2566 int ipath_user_add(struct ipath_devdata *dd) in ipath_user_add() argument
2574 ipath_dev_err(dd, "Unable to set up user support: " in ipath_user_add()
2581 ipath_dev_err(dd, "Could not create wildcard " in ipath_user_add()
2589 snprintf(name, sizeof(name), "ipath%d", dd->ipath_unit); in ipath_user_add()
2591 ret = init_cdev(dd->ipath_unit + 1, name, &ipath_file_ops, in ipath_user_add()
2592 &dd->user_cdev, &dd->user_dev); in ipath_user_add()
2594 ipath_dev_err(dd, "Could not create user minor %d, %s\n", in ipath_user_add()
2595 dd->ipath_unit + 1, name); in ipath_user_add()
2605 void ipath_user_remove(struct ipath_devdata *dd) in ipath_user_remove() argument
2607 cleanup_cdev(&dd->user_cdev, &dd->user_dev); in ipath_user_remove()