Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

uwb: use dev_dbg() for debug messages

Instead of the home-grown d_fnstart(), d_fnend() and d_printf() macros,
use dev_dbg() or remove the message entirely.

Signed-off-by: David Vrabel <david.vrabel@csr.com>

+220 -1168
+7 -48
drivers/usb/host/hwa-hc.c
··· 62 62 #include "../wusbcore/wa-hc.h" 63 63 #include "../wusbcore/wusbhc.h" 64 64 65 - #define D_LOCAL 0 66 - #include <linux/uwb/debug.h> 67 - 68 65 struct hwahc { 69 66 struct wusbhc wusbhc; /* has to be 1st */ 70 67 struct wahc wa; 71 - u8 buffer[16]; /* for misc usb transactions */ 72 68 }; 73 69 74 - /** 70 + /* 75 71 * FIXME should be wusbhc 76 72 * 77 73 * NOTE: we need to cache the Cluster ID because later...there is no ··· 121 125 struct hwahc *hwahc = container_of(wusbhc, struct hwahc, wusbhc); 122 126 struct device *dev = &hwahc->wa.usb_iface->dev; 123 127 124 - d_fnstart(4, dev, "(hwahc %p)\n", hwahc); 125 128 mutex_lock(&wusbhc->mutex); 126 129 wa_nep_disarm(&hwahc->wa); 127 130 result = __wa_set_feature(&hwahc->wa, WA_RESET); ··· 128 133 dev_err(dev, "error commanding HC to reset: %d\n", result); 129 134 goto error_unlock; 130 135 } 131 - d_printf(3, dev, "reset: waiting for device to change state\n"); 132 136 result = __wa_wait_status(&hwahc->wa, WA_STATUS_RESETTING, 0); 133 137 if (result < 0) { 134 138 dev_err(dev, "error waiting for HC to reset: %d\n", result); ··· 135 141 } 136 142 error_unlock: 137 143 mutex_unlock(&wusbhc->mutex); 138 - d_fnend(4, dev, "(hwahc %p) = %d\n", hwahc, result); 139 144 return result; 140 145 } 141 146 ··· 147 154 int result; 148 155 struct wusbhc *wusbhc = usb_hcd_to_wusbhc(usb_hcd); 149 156 struct hwahc *hwahc = container_of(wusbhc, struct hwahc, wusbhc); 150 - struct device *dev = &hwahc->wa.usb_iface->dev; 151 157 152 - /* Set up a Host Info WUSB Information Element */ 153 - d_fnstart(4, dev, "(hwahc %p)\n", hwahc); 154 158 result = -ENOSPC; 155 159 mutex_lock(&wusbhc->mutex); 156 - /* Start the numbering from the top so that the bottom 157 - * range of the unauth addr space is used for devices, 158 - * the top for HCs; use 0xfe - RC# */ 159 160 addr = wusb_cluster_id_get(); 160 161 if (addr == 0) 161 162 goto error_cluster_id_get; ··· 163 176 result = 0; 164 177 out: 165 178 mutex_unlock(&wusbhc->mutex); 166 - d_fnend(4, dev, "(hwahc %p) = %d\n", hwahc, result); 167 179 return result; 168 180 169 181 error_set_cluster_id: ··· 199 213 */ 200 214 static void hwahc_op_stop(struct usb_hcd *usb_hcd) 201 215 { 202 - int result; 203 216 struct wusbhc *wusbhc = usb_hcd_to_wusbhc(usb_hcd); 204 - struct hwahc *hwahc = container_of(wusbhc, struct hwahc, wusbhc); 205 - struct wahc *wa = &hwahc->wa; 206 - struct device *dev = &wa->usb_iface->dev; 207 217 208 - d_fnstart(4, dev, "(hwahc %p)\n", hwahc); 209 218 mutex_lock(&wusbhc->mutex); 210 219 wusb_cluster_id_put(wusbhc->cluster_id); 211 220 mutex_unlock(&wusbhc->mutex); 212 - d_fnend(4, dev, "(hwahc %p) = %d\n", hwahc, result); 213 - return; 214 221 } 215 222 216 223 static int hwahc_op_get_frame_number(struct usb_hcd *usb_hcd) ··· 552 573 itr_size = le16_to_cpu(usb_dev->actconfig->desc.wTotalLength); 553 574 while (itr_size >= sizeof(*hdr)) { 554 575 hdr = (struct usb_descriptor_header *) itr; 555 - d_printf(3, dev, "Extra device descriptor: " 556 - "type %02x/%u bytes @ %zu (%zu left)\n", 557 - hdr->bDescriptorType, hdr->bLength, 558 - (itr - usb_dev->rawdescriptors[actconfig_idx]), 559 - itr_size); 576 + dev_dbg(dev, "Extra device descriptor: " 577 + "type %02x/%u bytes @ %zu (%zu left)\n", 578 + hdr->bDescriptorType, hdr->bLength, 579 + (itr - usb_dev->rawdescriptors[actconfig_idx]), 580 + itr_size); 560 581 if (hdr->bDescriptorType == USB_DT_WIRE_ADAPTER) 561 582 goto found; 562 583 itr += hdr->bLength; ··· 765 786 { 766 787 struct wusbhc *wusbhc = &hwahc->wusbhc; 767 788 768 - d_fnstart(1, NULL, "(hwahc %p)\n", hwahc); 769 789 mutex_lock(&wusbhc->mutex); 770 790 __wa_destroy(&hwahc->wa); 771 791 wusbhc_destroy(&hwahc->wusbhc); ··· 774 796 usb_put_intf(hwahc->wa.usb_iface); 775 797 usb_put_dev(hwahc->wa.usb_dev); 776 798 mutex_unlock(&wusbhc->mutex); 777 - d_fnend(1, NULL, "(hwahc %p) = void\n", hwahc); 778 799 } 779 800 780 801 static void hwahc_init(struct hwahc *hwahc) ··· 790 813 struct hwahc *hwahc; 791 814 struct device *dev = &usb_iface->dev; 792 815 793 - d_fnstart(4, dev, "(%p, %p)\n", usb_iface, id); 794 816 result = -ENOMEM; 795 817 usb_hcd = usb_create_hcd(&hwahc_hc_driver, &usb_iface->dev, "wusb-hwa"); 796 818 if (usb_hcd == NULL) { ··· 816 840 dev_err(dev, "Cannot setup phase B of WUSBHC: %d\n", result); 817 841 goto error_wusbhc_b_create; 818 842 } 819 - d_fnend(4, dev, "(%p, %p) = 0\n", usb_iface, id); 820 843 return 0; 821 844 822 845 error_wusbhc_b_create: ··· 825 850 error_hwahc_create: 826 851 usb_put_hcd(usb_hcd); 827 852 error_alloc: 828 - d_fnend(4, dev, "(%p, %p) = %d\n", usb_iface, id, result); 829 853 return result; 830 854 } 831 855 ··· 838 864 wusbhc = usb_hcd_to_wusbhc(usb_hcd); 839 865 hwahc = container_of(wusbhc, struct hwahc, wusbhc); 840 866 841 - d_fnstart(1, NULL, "(hwahc %p [usb_iface %p])\n", hwahc, usb_iface); 842 867 wusbhc_b_destroy(&hwahc->wusbhc); 843 868 usb_remove_hcd(usb_hcd); 844 869 hwahc_destroy(hwahc); 845 870 usb_put_hcd(usb_hcd); 846 - d_fnend(1, NULL, "(hwahc %p [usb_iface %p]) = void\n", hwahc, 847 - usb_iface); 848 871 } 849 872 850 - /** USB device ID's that we handle */ 851 873 static struct usb_device_id hwahc_id_table[] = { 852 874 /* FIXME: use class labels for this */ 853 875 { USB_INTERFACE_INFO(0xe0, 0x02, 0x01), }, ··· 860 890 861 891 static int __init hwahc_driver_init(void) 862 892 { 863 - int result; 864 - result = usb_register(&hwahc_driver); 865 - if (result < 0) { 866 - printk(KERN_ERR "WA-CDS: Cannot register USB driver: %d\n", 867 - result); 868 - goto error_usb_register; 869 - } 870 - return 0; 871 - 872 - error_usb_register: 873 - return result; 874 - 893 + return usb_register(&hwahc_driver); 875 894 } 876 895 module_init(hwahc_driver_init); 877 896
-30
drivers/usb/wusbcore/crypto.c
··· 51 51 #include <linux/uwb.h> 52 52 #include <linux/usb/wusb.h> 53 53 #include <linux/scatterlist.h> 54 - #define D_LOCAL 0 55 54 #include <linux/uwb/debug.h> 56 55 57 56 static int debug_crypto_verify = 0; ··· 206 207 const u8 bzero[16] = { 0 }; 207 208 size_t zero_padding; 208 209 209 - d_fnstart(3, NULL, "(tfm_cbc %p, tfm_aes %p, mic %p, " 210 - "n %p, a %p, b %p, blen %zu)\n", 211 - tfm_cbc, tfm_aes, mic, n, a, b, blen); 212 210 /* 213 211 * These checks should be compile time optimized out 214 212 * ensure @a fills b1's mac_header and following fields ··· 247 251 b1.la = cpu_to_be16(blen + 14); 248 252 memcpy(&b1.mac_header, a, sizeof(*a)); 249 253 250 - d_printf(4, NULL, "I: B0 (%zu bytes)\n", sizeof(b0)); 251 - d_dump(4, NULL, &b0, sizeof(b0)); 252 - d_printf(4, NULL, "I: B1 (%zu bytes)\n", sizeof(b1)); 253 - d_dump(4, NULL, &b1, sizeof(b1)); 254 - d_printf(4, NULL, "I: B (%zu bytes)\n", blen); 255 - d_dump(4, NULL, b, blen); 256 - d_printf(4, NULL, "I: B 0-padding (%zu bytes)\n", zero_padding); 257 - d_printf(4, NULL, "D: IV before crypto (%zu)\n", ivsize); 258 - d_dump(4, NULL, iv, ivsize); 259 - 260 254 sg_init_table(sg, ARRAY_SIZE(sg)); 261 255 sg_set_buf(&sg[0], &b0, sizeof(b0)); 262 256 sg_set_buf(&sg[1], &b1, sizeof(b1)); ··· 263 277 result); 264 278 goto error_cbc_crypt; 265 279 } 266 - d_printf(4, NULL, "D: MIC tag\n"); 267 - d_dump(4, NULL, iv, ivsize); 268 280 269 281 /* Now we crypt the MIC Tag (*iv) with Ax -- values per WUSB1.0[6.5] 270 282 * The procedure is to AES crypt the A0 block and XOR the MIC ··· 277 293 ax.counter = 0; 278 294 crypto_cipher_encrypt_one(tfm_aes, (void *)&ax, (void *)&ax); 279 295 bytewise_xor(mic, &ax, iv, 8); 280 - d_printf(4, NULL, "D: CTR[MIC]\n"); 281 - d_dump(4, NULL, &ax, 8); 282 - d_printf(4, NULL, "D: CCM-MIC tag\n"); 283 - d_dump(4, NULL, mic, 8); 284 296 result = 8; 285 297 error_cbc_crypt: 286 298 kfree(dst_buf); 287 299 error_dst_buf: 288 - d_fnend(3, NULL, "(tfm_cbc %p, tfm_aes %p, mic %p, " 289 - "n %p, a %p, b %p, blen %zu)\n", 290 - tfm_cbc, tfm_aes, mic, n, a, b, blen); 291 300 return result; 292 301 } 293 302 ··· 301 324 struct crypto_cipher *tfm_aes; 302 325 u64 sfn = 0; 303 326 __le64 sfn_le; 304 - 305 - d_fnstart(3, NULL, "(out %p, out_size %zu, key %p, _n %p, " 306 - "a %p, b %p, blen %zu, len %zu)\n", out, out_size, 307 - key, _n, a, b, blen, len); 308 327 309 328 tfm_cbc = crypto_alloc_blkcipher("cbc(aes)", 0, CRYPTO_ALG_ASYNC); 310 329 if (IS_ERR(tfm_cbc)) { ··· 343 370 error_setkey_cbc: 344 371 crypto_free_blkcipher(tfm_cbc); 345 372 error_alloc_cbc: 346 - d_fnend(3, NULL, "(out %p, out_size %zu, key %p, _n %p, " 347 - "a %p, b %p, blen %zu, len %zu) = %d\n", out, out_size, 348 - key, _n, a, b, blen, len, (int)bytes); 349 373 return result; 350 374 } 351 375
-4
drivers/usb/wusbcore/dev-sysfs.c
··· 28 28 #include <linux/workqueue.h> 29 29 #include "wusbhc.h" 30 30 31 - #undef D_LOCAL 32 - #define D_LOCAL 4 33 - #include <linux/uwb/debug.h> 34 - 35 31 static ssize_t wusb_disconnect_store(struct device *dev, 36 32 struct device_attribute *attr, 37 33 const char *buf, size_t size)
+16 -88
drivers/usb/wusbcore/devconnect.c
··· 91 91 #include <linux/workqueue.h> 92 92 #include "wusbhc.h" 93 93 94 - #undef D_LOCAL 95 - #define D_LOCAL 1 96 - #include <linux/uwb/debug.h> 97 - 98 94 static void wusbhc_devconnect_acked_work(struct work_struct *work); 99 95 100 96 static void wusb_dev_free(struct wusb_dev *wusb_dev) ··· 230 234 list_add_tail(&wusb_dev->cack_node, &wusbhc->cack_list); 231 235 wusbhc->cack_count++; 232 236 wusbhc_fill_cack_ie(wusbhc); 237 + 233 238 return wusb_dev; 234 239 } 235 240 ··· 241 244 */ 242 245 static void wusbhc_cack_rm(struct wusbhc *wusbhc, struct wusb_dev *wusb_dev) 243 246 { 244 - struct device *dev = wusbhc->dev; 245 - d_fnstart(3, dev, "(wusbhc %p wusb_dev %p)\n", wusbhc, wusb_dev); 246 247 list_del_init(&wusb_dev->cack_node); 247 248 wusbhc->cack_count--; 248 249 wusbhc_fill_cack_ie(wusbhc); 249 - d_fnend(3, dev, "(wusbhc %p wusb_dev %p) = void\n", wusbhc, wusb_dev); 250 250 } 251 251 252 252 /* ··· 251 257 static 252 258 void wusbhc_devconnect_acked(struct wusbhc *wusbhc, struct wusb_dev *wusb_dev) 253 259 { 254 - struct device *dev = wusbhc->dev; 255 - d_fnstart(3, dev, "(wusbhc %p wusb_dev %p)\n", wusbhc, wusb_dev); 256 260 wusbhc_cack_rm(wusbhc, wusb_dev); 257 261 if (wusbhc->cack_count) 258 262 wusbhc_mmcie_set(wusbhc, 0, 0, &wusbhc->cack_ie.hdr); 259 263 else 260 264 wusbhc_mmcie_rm(wusbhc, &wusbhc->cack_ie.hdr); 261 - d_fnend(3, dev, "(wusbhc %p wusb_dev %p) = void\n", wusbhc, wusb_dev); 262 265 } 263 266 264 267 static void wusbhc_devconnect_acked_work(struct work_struct *work) ··· 305 314 struct wusb_port *port; 306 315 unsigned idx, devnum; 307 316 308 - d_fnstart(3, dev, "(%p, %p, %s)\n", wusbhc, dnc, pr_cdid); 309 317 mutex_lock(&wusbhc->mutex); 310 318 311 319 /* Check we are not handling it already */ ··· 357 367 */ 358 368 error_unlock: 359 369 mutex_unlock(&wusbhc->mutex); 360 - d_fnend(3, dev, "(%p, %p, %s) = void\n", wusbhc, dnc, pr_cdid); 361 370 return; 362 371 363 372 } ··· 379 390 static void __wusbhc_dev_disconnect(struct wusbhc *wusbhc, 380 391 struct wusb_port *port) 381 392 { 382 - struct device *dev = wusbhc->dev; 383 393 struct wusb_dev *wusb_dev = port->wusb_dev; 384 394 385 - d_fnstart(3, dev, "(wusbhc %p, port %p)\n", wusbhc, port); 386 395 port->status &= ~(USB_PORT_STAT_CONNECTION | USB_PORT_STAT_ENABLE 387 396 | USB_PORT_STAT_SUSPEND | USB_PORT_STAT_RESET 388 397 | USB_PORT_STAT_LOW_SPEED | USB_PORT_STAT_HIGH_SPEED); ··· 397 410 * section 6.2.11.2). */ 398 411 wusbhc_gtk_rekey(wusbhc); 399 412 400 - d_fnend(3, dev, "(wusbhc %p, port %p) = void\n", wusbhc, port); 401 413 /* The Wireless USB part has forgotten about the device already; now 402 414 * khubd's timer will pick up the disconnection and remove the USB 403 415 * device from the system ··· 521 535 */ 522 536 static void wusbhc_handle_dn_alive(struct wusbhc *wusbhc, struct wusb_dev *wusb_dev) 523 537 { 524 - struct device *dev = wusbhc->dev; 525 - 526 - d_printf(2, dev, "DN ALIVE: device 0x%02x pong\n", wusb_dev->addr); 527 - 528 538 mutex_lock(&wusbhc->mutex); 529 539 wusb_dev->entry_ts = jiffies; 530 540 __wusbhc_keep_alive(wusbhc); ··· 553 571 "no-beacon" 554 572 }; 555 573 556 - d_fnstart(3, dev, "(%p, %p, %zu)\n", wusbhc, dn_hdr, size); 557 574 if (size < sizeof(*dnc)) { 558 575 dev_err(dev, "DN CONNECT: short notification (%zu < %zu)\n", 559 576 size, sizeof(*dnc)); 560 - goto out; 577 + return; 561 578 } 562 579 563 580 dnc = container_of(dn_hdr, struct wusb_dn_connect, hdr); ··· 568 587 wusb_dn_connect_new_connection(dnc) ? "connect" : "reconnect"); 569 588 /* ACK the connect */ 570 589 wusbhc_devconnect_ack(wusbhc, dnc, pr_cdid); 571 - out: 572 - d_fnend(3, dev, "(%p, %p, %zu) = void\n", 573 - wusbhc, dn_hdr, size); 574 - return; 575 590 } 576 591 577 592 /* ··· 608 631 struct device *dev = wusbhc->dev; 609 632 struct wusb_dev *wusb_dev; 610 633 611 - d_fnstart(3, dev, "(%p, %p)\n", wusbhc, dn_hdr); 612 - 613 634 if (size < sizeof(struct wusb_dn_hdr)) { 614 635 dev_err(dev, "DN data shorter than DN header (%d < %d)\n", 615 636 (int)size, (int)sizeof(struct wusb_dn_hdr)); 616 - goto out; 637 + return; 617 638 } 618 639 619 640 wusb_dev = wusbhc_find_dev_by_addr(wusbhc, srcaddr); 620 641 if (wusb_dev == NULL && dn_hdr->bType != WUSB_DN_CONNECT) { 621 642 dev_dbg(dev, "ignoring DN %d from unconnected device %02x\n", 622 643 dn_hdr->bType, srcaddr); 623 - goto out; 644 + return; 624 645 } 625 646 626 647 switch (dn_hdr->bType) { ··· 643 668 dev_warn(dev, "unknown DN %u (%d octets) from %u\n", 644 669 dn_hdr->bType, (int)size, srcaddr); 645 670 } 646 - out: 647 - d_fnend(3, dev, "(%p, %p) = void\n", wusbhc, dn_hdr); 648 - return; 649 671 } 650 672 EXPORT_SYMBOL_GPL(wusbhc_handle_dn); 651 673 ··· 672 700 struct wusb_dev *wusb_dev; 673 701 struct wuie_disconnect *ie; 674 702 675 - d_fnstart(3, dev, "(%p, %u)\n", wusbhc, port_idx); 676 - result = 0; 677 703 wusb_dev = wusb_port_by_idx(wusbhc, port_idx)->wusb_dev; 678 704 if (wusb_dev == NULL) { 679 705 /* reset no device? ignore */ 680 706 dev_dbg(dev, "DISCONNECT: no device at port %u, ignoring\n", 681 707 port_idx); 682 - goto error; 708 + return; 683 709 } 684 710 __wusbhc_dev_disconnect(wusbhc, wusb_port_by_idx(wusbhc, port_idx)); 685 711 686 - result = -ENOMEM; 687 712 ie = kzalloc(sizeof(*ie), GFP_KERNEL); 688 713 if (ie == NULL) 689 - goto error; 714 + return; 690 715 ie->hdr.bLength = sizeof(*ie); 691 716 ie->hdr.bIEIdentifier = WUIE_ID_DEVICE_DISCONNECT; 692 717 ie->bDeviceAddress = wusb_dev->addr; 693 718 result = wusbhc_mmcie_set(wusbhc, 0, 0, &ie->hdr); 694 - if (result < 0) { 719 + if (result < 0) 695 720 dev_err(dev, "DISCONNECT: can't set MMC: %d\n", result); 696 - goto error_kfree; 721 + else { 722 + /* At least 6 MMCs, assuming at least 1 MMC per zone. */ 723 + msleep(7*4); 724 + wusbhc_mmcie_rm(wusbhc, &ie->hdr); 697 725 } 698 - 699 - /* 120ms, hopefully 6 MMCs */ 700 - msleep(100); 701 - wusbhc_mmcie_rm(wusbhc, &ie->hdr); 702 - error_kfree: 703 726 kfree(ie); 704 - error: 705 - d_fnend(3, dev, "(%p, %u) = %d\n", wusbhc, port_idx, result); 706 - return; 707 - } 708 - 709 - static void wusb_cap_descr_printf(const unsigned level, struct device *dev, 710 - const struct usb_wireless_cap_descriptor *wcd) 711 - { 712 - d_printf(level, dev, 713 - "WUSB Capability Descriptor\n" 714 - " bDevCapabilityType 0x%02x\n" 715 - " bmAttributes 0x%02x\n" 716 - " wPhyRates 0x%04x\n" 717 - " bmTFITXPowerInfo 0x%02x\n" 718 - " bmFFITXPowerInfo 0x%02x\n" 719 - " bmBandGroup 0x%04x\n" 720 - " bReserved 0x%02x\n", 721 - wcd->bDevCapabilityType, 722 - wcd->bmAttributes, 723 - le16_to_cpu(wcd->wPHYRates), 724 - wcd->bmTFITXPowerInfo, 725 - wcd->bmFFITXPowerInfo, 726 - wcd->bmBandGroup, 727 - wcd->bReserved); 728 727 } 729 728 730 729 /* ··· 738 795 } 739 796 cap_size = cap_hdr->bLength; 740 797 cap_type = cap_hdr->bDevCapabilityType; 741 - d_printf(4, dev, "BOS Capability: 0x%02x (%zu bytes)\n", 742 - cap_type, cap_size); 743 798 if (cap_size == 0) 744 799 break; 745 800 if (cap_size > top - itr) { ··· 749 808 result = -EBADF; 750 809 goto error_bad_cap; 751 810 } 752 - d_dump(3, dev, itr, cap_size); 753 811 switch (cap_type) { 754 812 case USB_CAP_TYPE_WIRELESS_USB: 755 813 if (cap_size != sizeof(*wusb_dev->wusb_cap_descr)) ··· 756 816 "descriptor is %zu bytes vs %zu " 757 817 "needed\n", cap_size, 758 818 sizeof(*wusb_dev->wusb_cap_descr)); 759 - else { 819 + else 760 820 wusb_dev->wusb_cap_descr = itr; 761 - wusb_cap_descr_printf(3, dev, itr); 762 - } 763 821 break; 764 822 default: 765 823 dev_err(dev, "BUG? Unknown BOS capability 0x%02x " ··· 822 884 "%zu bytes): %zd\n", desc_size, result); 823 885 goto error_get_descriptor; 824 886 } 825 - d_printf(2, dev, "Got BOS descriptor %zd bytes, %u capabilities\n", 826 - result, bos->bNumDeviceCaps); 827 - d_dump(2, dev, bos, result); 887 + 828 888 result = wusb_dev_bos_grok(usb_dev, wusb_dev, bos, result); 829 889 if (result < 0) 830 890 goto error_bad_bos; ··· 888 952 if (usb_dev->wusb == 0 || usb_dev->devnum == 1) 889 953 return; /* skip non wusb and wusb RHs */ 890 954 891 - d_fnstart(3, dev, "(usb_dev %p)\n", usb_dev); 892 - 893 955 wusbhc = wusbhc_get_by_usb_dev(usb_dev); 894 956 if (wusbhc == NULL) 895 957 goto error_nodev; ··· 917 983 wusb_dev_put(wusb_dev); 918 984 wusbhc_put(wusbhc); 919 985 error_nodev: 920 - d_fnend(3, dev, "(usb_dev %p) = void\n", usb_dev); 921 986 return; 922 987 923 988 wusb_dev_sysfs_rm(wusb_dev); ··· 1003 1070 1004 1071 void wusb_dev_destroy(struct kref *_wusb_dev) 1005 1072 { 1006 - struct wusb_dev *wusb_dev 1007 - = container_of(_wusb_dev, struct wusb_dev, refcnt); 1073 + struct wusb_dev *wusb_dev = container_of(_wusb_dev, struct wusb_dev, refcnt); 1074 + 1008 1075 list_del_init(&wusb_dev->cack_node); 1009 1076 wusb_dev_free(wusb_dev); 1010 - d_fnend(1, NULL, "%s (wusb_dev %p) = void\n", __func__, wusb_dev); 1011 1077 } 1012 1078 EXPORT_SYMBOL_GPL(wusb_dev_destroy); 1013 1079 ··· 1018 1086 */ 1019 1087 int wusbhc_devconnect_create(struct wusbhc *wusbhc) 1020 1088 { 1021 - d_fnstart(3, wusbhc->dev, "(wusbhc %p)\n", wusbhc); 1022 - 1023 1089 wusbhc->keep_alive_ie.hdr.bIEIdentifier = WUIE_ID_KEEP_ALIVE; 1024 1090 wusbhc->keep_alive_ie.hdr.bLength = sizeof(wusbhc->keep_alive_ie.hdr); 1025 1091 INIT_DELAYED_WORK(&wusbhc->keep_alive_timer, wusbhc_keep_alive_run); ··· 1026 1096 wusbhc->cack_ie.hdr.bLength = sizeof(wusbhc->cack_ie.hdr); 1027 1097 INIT_LIST_HEAD(&wusbhc->cack_list); 1028 1098 1029 - d_fnend(3, wusbhc->dev, "(wusbhc %p) = void\n", wusbhc); 1030 1099 return 0; 1031 1100 } 1032 1101 ··· 1034 1105 */ 1035 1106 void wusbhc_devconnect_destroy(struct wusbhc *wusbhc) 1036 1107 { 1037 - d_fnstart(3, wusbhc->dev, "(wusbhc %p)\n", wusbhc); 1038 - d_fnend(3, wusbhc->dev, "(wusbhc %p) = void\n", wusbhc); 1108 + /* no op */ 1039 1109 } 1040 1110 1041 1111 /*
+15 -49
drivers/usb/wusbcore/rh.c
··· 71 71 */ 72 72 #include "wusbhc.h" 73 73 74 - #define D_LOCAL 0 75 - #include <linux/uwb/debug.h> 76 - 77 74 /* 78 75 * Reset a fake port 79 76 * ··· 139 142 size_t cnt, size; 140 143 unsigned long *buf = (unsigned long *) _buf; 141 144 142 - d_fnstart(1, wusbhc->dev, "(wusbhc %p)\n", wusbhc); 143 145 /* WE DON'T LOCK, see comment */ 144 146 size = wusbhc->ports_max + 1 /* hub bit */; 145 147 size = (size + 8 - 1) / 8; /* round to bytes */ ··· 147 151 set_bit(cnt + 1, buf); 148 152 else 149 153 clear_bit(cnt + 1, buf); 150 - d_fnend(1, wusbhc->dev, "(wusbhc %p) %u, buffer:\n", wusbhc, (int)size); 151 - d_dump(1, wusbhc->dev, _buf, size); 152 154 return size; 153 155 } 154 156 EXPORT_SYMBOL_GPL(wusbhc_rh_status_data); ··· 195 201 static int wusbhc_rh_clear_hub_feat(struct wusbhc *wusbhc, u16 feature) 196 202 { 197 203 int result; 198 - struct device *dev = wusbhc->dev; 199 204 200 - d_fnstart(4, dev, "(%p, feature 0x%04u)\n", wusbhc, feature); 201 205 switch (feature) { 202 206 case C_HUB_LOCAL_POWER: 203 207 /* FIXME: maybe plug bit 0 to the power input status, ··· 207 215 default: 208 216 result = -EPIPE; 209 217 } 210 - d_fnend(4, dev, "(%p, feature 0x%04u), %d\n", wusbhc, feature, result); 211 218 return result; 212 219 } 213 220 ··· 233 242 static int wusbhc_rh_set_port_feat(struct wusbhc *wusbhc, u16 feature, 234 243 u8 selector, u8 port_idx) 235 244 { 236 - int result = -EINVAL; 237 245 struct device *dev = wusbhc->dev; 238 246 239 - d_fnstart(4, dev, "(feat 0x%04u, selector 0x%u, port_idx %d)\n", 240 - feature, selector, port_idx); 241 - 242 247 if (port_idx > wusbhc->ports_max) 243 - goto error; 248 + return -EINVAL; 244 249 245 250 switch (feature) { 246 251 /* According to USB2.0[11.24.2.13]p2, these features ··· 246 259 case USB_PORT_FEAT_C_SUSPEND: 247 260 case USB_PORT_FEAT_C_CONNECTION: 248 261 case USB_PORT_FEAT_C_RESET: 249 - result = 0; 250 - break; 251 - 262 + return 0; 252 263 case USB_PORT_FEAT_POWER: 253 264 /* No such thing, but we fake it works */ 254 265 mutex_lock(&wusbhc->mutex); 255 266 wusb_port_by_idx(wusbhc, port_idx)->status |= USB_PORT_STAT_POWER; 256 267 mutex_unlock(&wusbhc->mutex); 257 - result = 0; 258 - break; 268 + return 0; 259 269 case USB_PORT_FEAT_RESET: 260 - result = wusbhc_rh_port_reset(wusbhc, port_idx); 261 - break; 270 + return wusbhc_rh_port_reset(wusbhc, port_idx); 262 271 case USB_PORT_FEAT_ENABLE: 263 272 case USB_PORT_FEAT_SUSPEND: 264 273 dev_err(dev, "(port_idx %d) set feat %d/%d UNIMPLEMENTED\n", 265 274 port_idx, feature, selector); 266 - result = -ENOSYS; 267 - break; 275 + return -ENOSYS; 268 276 default: 269 277 dev_err(dev, "(port_idx %d) set feat %d/%d UNKNOWN\n", 270 278 port_idx, feature, selector); 271 - result = -EPIPE; 272 - break; 279 + return -EPIPE; 273 280 } 274 - error: 275 - d_fnend(4, dev, "(feat 0x%04u, selector 0x%u, port_idx %d) = %d\n", 276 - feature, selector, port_idx, result); 277 - return result; 281 + 282 + return 0; 278 283 } 279 284 280 285 /* ··· 277 298 static int wusbhc_rh_clear_port_feat(struct wusbhc *wusbhc, u16 feature, 278 299 u8 selector, u8 port_idx) 279 300 { 280 - int result = -EINVAL; 301 + int result = 0; 281 302 struct device *dev = wusbhc->dev; 282 303 283 - d_fnstart(4, dev, "(wusbhc %p feat 0x%04x selector %d port_idx %d)\n", 284 - wusbhc, feature, selector, port_idx); 285 - 286 304 if (port_idx > wusbhc->ports_max) 287 - goto error; 305 + return -EINVAL; 288 306 289 307 mutex_lock(&wusbhc->mutex); 290 - result = 0; 291 308 switch (feature) { 292 309 case USB_PORT_FEAT_POWER: /* fake port always on */ 293 310 /* According to USB2.0[11.24.2.7.1.4], no need to implement? */ ··· 303 328 break; 304 329 case USB_PORT_FEAT_SUSPEND: 305 330 case USB_PORT_FEAT_C_SUSPEND: 306 - case 0xffff: /* ??? FIXME */ 307 331 dev_err(dev, "(port_idx %d) Clear feat %d/%d UNIMPLEMENTED\n", 308 332 port_idx, feature, selector); 309 - /* dump_stack(); */ 310 333 result = -ENOSYS; 311 334 break; 312 335 default: ··· 314 341 break; 315 342 } 316 343 mutex_unlock(&wusbhc->mutex); 317 - error: 318 - d_fnend(4, dev, "(wusbhc %p feat 0x%04x selector %d port_idx %d) = " 319 - "%d\n", wusbhc, feature, selector, port_idx, result); 344 + 320 345 return result; 321 346 } 322 347 ··· 326 355 static int wusbhc_rh_get_port_status(struct wusbhc *wusbhc, u16 port_idx, 327 356 u32 *_buf, u16 wLength) 328 357 { 329 - int result = -EINVAL; 330 358 u16 *buf = (u16 *) _buf; 331 359 332 - d_fnstart(1, wusbhc->dev, "(wusbhc %p port_idx %u wLength %u)\n", 333 - wusbhc, port_idx, wLength); 334 360 if (port_idx > wusbhc->ports_max) 335 - goto error; 361 + return -EINVAL; 362 + 336 363 mutex_lock(&wusbhc->mutex); 337 364 buf[0] = cpu_to_le16(wusb_port_by_idx(wusbhc, port_idx)->status); 338 365 buf[1] = cpu_to_le16(wusb_port_by_idx(wusbhc, port_idx)->change); 339 - result = 0; 340 366 mutex_unlock(&wusbhc->mutex); 341 - error: 342 - d_fnend(1, wusbhc->dev, "(wusbhc %p) = %d, buffer:\n", wusbhc, result); 343 - d_dump(1, wusbhc->dev, _buf, wLength); 344 - return result; 367 + 368 + return 0; 345 369 } 346 370 347 371 /*
+5 -70
drivers/usb/wusbcore/security.c
··· 27 27 #include <linux/random.h> 28 28 #include "wusbhc.h" 29 29 30 - /* 31 - * DEBUG & SECURITY WARNING!!!! 32 - * 33 - * If you enable this past 1, the debug code will weaken the 34 - * cryptographic safety of the system (on purpose, for debugging). 35 - * 36 - * Weaken means: 37 - * we print secret keys and intermediate values all the way, 38 - */ 39 - #undef D_LOCAL 40 - #define D_LOCAL 2 41 - #include <linux/uwb/debug.h> 42 - 43 30 static void wusbhc_set_gtk_callback(struct urb *urb); 44 31 static void wusbhc_gtk_rekey_done_work(struct work_struct *work); 45 32 ··· 206 219 const void *itr, *top; 207 220 char buf[64]; 208 221 209 - d_fnstart(3, dev, "(usb_dev %p, wusb_dev %p)\n", usb_dev, wusb_dev); 210 222 result = usb_get_descriptor(usb_dev, USB_DT_SECURITY, 211 223 0, &secd, sizeof(secd)); 212 224 if (result < sizeof(secd)) { ··· 214 228 goto error_secd; 215 229 } 216 230 secd_size = le16_to_cpu(secd.wTotalLength); 217 - d_printf(5, dev, "got %d bytes of sec descriptor, total is %d\n", 218 - result, secd_size); 219 231 secd_buf = kmalloc(secd_size, GFP_KERNEL); 220 232 if (secd_buf == NULL) { 221 233 dev_err(dev, "Can't allocate space for security descriptors\n"); ··· 226 242 "not enough data: %d\n", result); 227 243 goto error_secd_all; 228 244 } 229 - d_printf(5, dev, "got %d bytes of sec descriptors\n", result); 230 245 bytes = 0; 231 246 itr = secd_buf + sizeof(secd); 232 247 top = secd_buf + result; ··· 262 279 goto error_no_ccm1; 263 280 } 264 281 wusb_dev->ccm1_etd = *ccm1_etd; 265 - dev_info(dev, "supported encryption: %s; using %s (0x%02x/%02x)\n", 266 - buf, wusb_et_name(ccm1_etd->bEncryptionType), 267 - ccm1_etd->bEncryptionValue, ccm1_etd->bAuthKeyIndex); 282 + dev_dbg(dev, "supported encryption: %s; using %s (0x%02x/%02x)\n", 283 + buf, wusb_et_name(ccm1_etd->bEncryptionType), 284 + ccm1_etd->bEncryptionValue, ccm1_etd->bAuthKeyIndex); 268 285 result = 0; 269 286 kfree(secd_buf); 270 287 out: 271 - d_fnend(3, dev, "(usb_dev %p, wusb_dev %p) = %d\n", 272 - usb_dev, wusb_dev, result); 273 288 return result; 274 289 275 290 ··· 282 301 void wusb_dev_sec_rm(struct wusb_dev *wusb_dev) 283 302 { 284 303 /* Nothing so far */ 285 - } 286 - 287 - static void hs_printk(unsigned level, struct device *dev, 288 - struct usb_handshake *hs) 289 - { 290 - d_printf(level, dev, 291 - " bMessageNumber: %u\n" 292 - " bStatus: %u\n" 293 - " tTKID: %02x %02x %02x\n" 294 - " CDID: %02x %02x %02x %02x %02x %02x %02x %02x\n" 295 - " %02x %02x %02x %02x %02x %02x %02x %02x\n" 296 - " nonce: %02x %02x %02x %02x %02x %02x %02x %02x\n" 297 - " %02x %02x %02x %02x %02x %02x %02x %02x\n" 298 - " MIC: %02x %02x %02x %02x %02x %02x %02x %02x\n", 299 - hs->bMessageNumber, hs->bStatus, 300 - hs->tTKID[2], hs->tTKID[1], hs->tTKID[0], 301 - hs->CDID[0], hs->CDID[1], hs->CDID[2], hs->CDID[3], 302 - hs->CDID[4], hs->CDID[5], hs->CDID[6], hs->CDID[7], 303 - hs->CDID[8], hs->CDID[9], hs->CDID[10], hs->CDID[11], 304 - hs->CDID[12], hs->CDID[13], hs->CDID[14], hs->CDID[15], 305 - hs->nonce[0], hs->nonce[1], hs->nonce[2], hs->nonce[3], 306 - hs->nonce[4], hs->nonce[5], hs->nonce[6], hs->nonce[7], 307 - hs->nonce[8], hs->nonce[9], hs->nonce[10], hs->nonce[11], 308 - hs->nonce[12], hs->nonce[13], hs->nonce[14], hs->nonce[15], 309 - hs->MIC[0], hs->MIC[1], hs->MIC[2], hs->MIC[3], 310 - hs->MIC[4], hs->MIC[5], hs->MIC[6], hs->MIC[7]); 311 304 } 312 305 313 306 /** ··· 376 421 get_random_bytes(&hs[0].nonce, sizeof(hs[0].nonce)); 377 422 memset(hs[0].MIC, 0, sizeof(hs[0].MIC)); /* Per WUSB1.0[T7-22] */ 378 423 379 - d_printf(1, dev, "I: sending hs1:\n"); 380 - hs_printk(2, dev, &hs[0]); 381 - 382 424 result = usb_control_msg( 383 425 usb_dev, usb_sndctrlpipe(usb_dev, 0), 384 426 USB_REQ_SET_HANDSHAKE, ··· 396 444 dev_err(dev, "Handshake2: request failed: %d\n", result); 397 445 goto error_hs2; 398 446 } 399 - d_printf(1, dev, "got HS2:\n"); 400 - hs_printk(2, dev, &hs[1]); 401 447 402 448 result = -EINVAL; 403 449 if (hs[1].bMessageNumber != 2) { ··· 436 486 result); 437 487 goto error_hs2; 438 488 } 439 - d_printf(2, dev, "KCK:\n"); 440 - d_dump(2, dev, keydvt_out.kck, sizeof(keydvt_out.kck)); 441 - d_printf(2, dev, "PTK:\n"); 442 - d_dump(2, dev, keydvt_out.ptk, sizeof(keydvt_out.ptk)); 443 489 444 490 /* Compute MIC and verify it */ 445 491 result = wusb_oob_mic(mic, keydvt_out.kck, &ccm_n, &hs[1]); ··· 445 499 goto error_hs2; 446 500 } 447 501 448 - d_printf(2, dev, "MIC:\n"); 449 - d_dump(2, dev, mic, sizeof(mic)); 450 502 if (memcmp(hs[1].MIC, mic, sizeof(hs[1].MIC))) { 451 503 dev_err(dev, "Handshake2 failed: MIC mismatch\n"); 452 504 goto error_hs2; ··· 464 520 goto error_hs2; 465 521 } 466 522 467 - d_printf(1, dev, "I: sending hs3:\n"); 468 - hs_printk(2, dev, &hs[2]); 469 - 470 523 result = usb_control_msg( 471 524 usb_dev, usb_sndctrlpipe(usb_dev, 0), 472 525 USB_REQ_SET_HANDSHAKE, ··· 474 533 goto error_hs3; 475 534 } 476 535 477 - d_printf(1, dev, "I: turning on encryption on host for device\n"); 478 - d_dump(2, dev, keydvt_out.ptk, sizeof(keydvt_out.ptk)); 479 536 result = wusbhc->set_ptk(wusbhc, wusb_dev->port_idx, tkid, 480 537 keydvt_out.ptk, sizeof(keydvt_out.ptk)); 481 538 if (result < 0) 482 539 goto error_wusbhc_set_ptk; 483 540 484 - d_printf(1, dev, "I: setting a GTK\n"); 485 541 result = wusb_dev_set_gtk(wusbhc, wusb_dev); 486 542 if (result < 0) { 487 543 dev_err(dev, "Set GTK for device: request failed: %d\n", ··· 488 550 489 551 /* Update the device's address from unauth to auth */ 490 552 if (usb_dev->authenticated == 0) { 491 - d_printf(1, dev, "I: updating addres to auth from non-auth\n"); 492 553 result = wusb_dev_update_address(wusbhc, wusb_dev); 493 554 if (result < 0) 494 555 goto error_dev_update_address; 495 556 } 496 557 result = 0; 497 - d_printf(1, dev, "I: 4way handshke done, device authenticated\n"); 558 + dev_info(dev, "device authenticated\n"); 498 559 499 560 error_dev_update_address: 500 561 error_wusbhc_set_gtk: ··· 506 569 memset(&keydvt_in, 0, sizeof(keydvt_in)); 507 570 memset(&ccm_n, 0, sizeof(ccm_n)); 508 571 memset(mic, 0, sizeof(mic)); 509 - if (result < 0) { 510 - /* error path */ 572 + if (result < 0) 511 573 wusb_dev_set_encryption(usb_dev, 0); 512 - } 513 574 error_dev_set_encryption: 514 575 kfree(hs); 515 576 error_kzalloc:
+17 -51
drivers/usb/wusbcore/wa-rpipe.c
··· 60 60 #include <linux/init.h> 61 61 #include <asm/atomic.h> 62 62 #include <linux/bitmap.h> 63 + 63 64 #include "wusbhc.h" 64 65 #include "wa-hc.h" 65 - 66 - #define D_LOCAL 0 67 - #include <linux/uwb/debug.h> 68 - 69 66 70 67 static int __rpipe_get_descr(struct wahc *wa, 71 68 struct usb_rpipe_descriptor *descr, u16 index) ··· 73 76 /* Get the RPIPE descriptor -- we cannot use the usb_get_descriptor() 74 77 * function because the arguments are different. 75 78 */ 76 - d_printf(1, dev, "rpipe %u: get descr\n", index); 77 79 result = usb_control_msg( 78 80 wa->usb_dev, usb_rcvctrlpipe(wa->usb_dev, 0), 79 81 USB_REQ_GET_DESCRIPTOR, ··· 111 115 /* we cannot use the usb_get_descriptor() function because the 112 116 * arguments are different. 113 117 */ 114 - d_printf(1, dev, "rpipe %u: set descr\n", index); 115 118 result = usb_control_msg( 116 119 wa->usb_dev, usb_sndctrlpipe(wa->usb_dev, 0), 117 120 USB_REQ_SET_DESCRIPTOR, ··· 169 174 { 170 175 struct wa_rpipe *rpipe = container_of(_rpipe, struct wa_rpipe, refcnt); 171 176 u8 index = le16_to_cpu(rpipe->descr.wRPipeIndex); 172 - d_fnstart(1, NULL, "(rpipe %p %u)\n", rpipe, index); 177 + 173 178 if (rpipe->ep) 174 179 rpipe->ep->hcpriv = NULL; 175 180 rpipe_put_idx(rpipe->wa, index); 176 181 wa_put(rpipe->wa); 177 182 kfree(rpipe); 178 - d_fnend(1, NULL, "(rpipe %p %u)\n", rpipe, index); 179 183 } 180 184 EXPORT_SYMBOL_GPL(rpipe_destroy); 181 185 ··· 196 202 struct wa_rpipe *rpipe; 197 203 struct device *dev = &wa->usb_iface->dev; 198 204 199 - d_fnstart(3, dev, "(wa %p crs 0x%02x)\n", wa, crs); 200 205 rpipe = kzalloc(sizeof(*rpipe), gfp); 201 206 if (rpipe == NULL) 202 207 return -ENOMEM; ··· 216 223 } 217 224 *prpipe = NULL; 218 225 kfree(rpipe); 219 - d_fnend(3, dev, "(wa %p crs 0x%02x) = -ENXIO\n", wa, crs); 220 226 return -ENXIO; 221 227 222 228 found: 223 229 set_bit(rpipe_idx, wa->rpipe_bm); 224 230 rpipe->wa = wa_get(wa); 225 231 *prpipe = rpipe; 226 - d_fnstart(3, dev, "(wa %p crs 0x%02x) = 0\n", wa, crs); 227 232 return 0; 228 233 } 229 234 ··· 230 239 int result; 231 240 struct device *dev = &wa->usb_iface->dev; 232 241 233 - d_printf(1, dev, "rpipe %u: reset\n", index); 234 242 result = usb_control_msg( 235 243 wa->usb_dev, usb_sndctrlpipe(wa->usb_dev, 0), 236 244 USB_REQ_RPIPE_RESET, ··· 266 276 struct usb_descriptor_header *hdr; 267 277 struct usb_wireless_ep_comp_descriptor *epcd; 268 278 269 - d_fnstart(3, dev, "(ep %p)\n", ep); 270 279 if (ep->desc.bEndpointAddress == 0) { 271 280 epcd = &epc0; 272 281 goto out; ··· 299 310 itr_size -= hdr->bDescriptorType; 300 311 } 301 312 out: 302 - d_fnend(3, dev, "(ep %p) = %p\n", ep, epcd); 303 313 return epcd; 304 314 } 305 315 ··· 317 329 struct usb_wireless_ep_comp_descriptor *epcd; 318 330 u8 unauth; 319 331 320 - d_fnstart(3, dev, "(rpipe %p wa %p ep %p, urb %p)\n", 321 - rpipe, wa, ep, urb); 322 332 epcd = rpipe_epc_find(dev, ep); 323 333 if (epcd == NULL) { 324 334 dev_err(dev, "ep 0x%02x: can't find companion descriptor\n", ··· 336 350 /* FIXME: use maximum speed as supported or recommended by device */ 337 351 rpipe->descr.bSpeed = usb_pipeendpoint(urb->pipe) == 0 ? 338 352 UWB_PHY_RATE_53 : UWB_PHY_RATE_200; 339 - d_printf(2, dev, "addr %u (0x%02x) rpipe #%u ep# %u speed %d\n", 340 - urb->dev->devnum, urb->dev->devnum | unauth, 341 - le16_to_cpu(rpipe->descr.wRPipeIndex), 342 - usb_pipeendpoint(urb->pipe), rpipe->descr.bSpeed); 353 + 354 + dev_dbg(dev, "addr %u (0x%02x) rpipe #%u ep# %u speed %d\n", 355 + urb->dev->devnum, urb->dev->devnum | unauth, 356 + le16_to_cpu(rpipe->descr.wRPipeIndex), 357 + usb_pipeendpoint(urb->pipe), rpipe->descr.bSpeed); 358 + 343 359 /* see security.c:wusb_update_address() */ 344 360 if (unlikely(urb->dev->devnum == 0x80)) 345 361 rpipe->descr.bDeviceAddress = 0; ··· 372 384 } 373 385 result = 0; 374 386 error: 375 - d_fnend(3, dev, "(rpipe %p wa %p ep %p urb %p) = %d\n", 376 - rpipe, wa, ep, urb, result); 377 387 return result; 378 388 } 379 389 ··· 391 405 u8 unauth = (usb_dev->wusb && !usb_dev->authenticated) ? 0x80 : 0; 392 406 u8 portnum = wusb_port_no_to_idx(urb->dev->portnum); 393 407 394 - d_fnstart(3, dev, "(rpipe %p wa %p ep %p, urb %p)\n", 395 - rpipe, wa, ep, urb); 396 408 #define AIM_CHECK(rdf, val, text) \ 397 409 do { \ 398 410 if (rpipe->descr.rdf != (val)) { \ ··· 435 451 struct wa_rpipe *rpipe; 436 452 u8 eptype; 437 453 438 - d_fnstart(3, dev, "(wa %p ep %p urb %p gfp 0x%08x)\n", wa, ep, urb, 439 - gfp); 440 454 mutex_lock(&wa->rpipe_mutex); 441 455 rpipe = ep->hcpriv; 442 456 if (rpipe != NULL) { ··· 444 462 goto error; 445 463 } 446 464 __rpipe_get(rpipe); 447 - d_printf(2, dev, "ep 0x%02x: reusing rpipe %u\n", 448 - ep->desc.bEndpointAddress, 449 - le16_to_cpu(rpipe->descr.wRPipeIndex)); 465 + dev_dbg(dev, "ep 0x%02x: reusing rpipe %u\n", 466 + ep->desc.bEndpointAddress, 467 + le16_to_cpu(rpipe->descr.wRPipeIndex)); 450 468 } else { 451 469 /* hmm, assign idle rpipe, aim it */ 452 470 result = -ENOBUFS; ··· 462 480 ep->hcpriv = rpipe; 463 481 rpipe->ep = ep; 464 482 __rpipe_get(rpipe); /* for caching into ep->hcpriv */ 465 - d_printf(2, dev, "ep 0x%02x: using rpipe %u\n", 466 - ep->desc.bEndpointAddress, 467 - le16_to_cpu(rpipe->descr.wRPipeIndex)); 483 + dev_dbg(dev, "ep 0x%02x: using rpipe %u\n", 484 + ep->desc.bEndpointAddress, 485 + le16_to_cpu(rpipe->descr.wRPipeIndex)); 468 486 } 469 - d_dump(4, dev, &rpipe->descr, sizeof(rpipe->descr)); 470 487 error: 471 488 mutex_unlock(&wa->rpipe_mutex); 472 - d_fnend(3, dev, "(wa %p ep %p urb %p gfp 0x%08x)\n", wa, ep, urb, gfp); 473 489 return result; 474 490 } 475 491 ··· 487 507 void wa_rpipes_destroy(struct wahc *wa) 488 508 { 489 509 struct device *dev = &wa->usb_iface->dev; 490 - d_fnstart(3, dev, "(wa %p)\n", wa); 510 + 491 511 if (!bitmap_empty(wa->rpipe_bm, wa->rpipes)) { 492 512 char buf[256]; 493 513 WARN_ON(1); ··· 495 515 dev_err(dev, "BUG: pipes not released on exit: %s\n", buf); 496 516 } 497 517 kfree(wa->rpipe_bm); 498 - d_fnend(3, dev, "(wa %p)\n", wa); 499 518 } 500 519 501 520 /* ··· 509 530 */ 510 531 void rpipe_ep_disable(struct wahc *wa, struct usb_host_endpoint *ep) 511 532 { 512 - struct device *dev = &wa->usb_iface->dev; 513 533 struct wa_rpipe *rpipe; 514 - d_fnstart(2, dev, "(wa %p ep %p)\n", wa, ep); 534 + 515 535 mutex_lock(&wa->rpipe_mutex); 516 536 rpipe = ep->hcpriv; 517 537 if (rpipe != NULL) { 518 - unsigned rc = atomic_read(&rpipe->refcnt.refcount); 519 - int result; 520 538 u16 index = le16_to_cpu(rpipe->descr.wRPipeIndex); 521 539 522 - if (rc != 1) 523 - d_printf(1, dev, "(wa %p ep %p) rpipe %p refcnt %u\n", 524 - wa, ep, rpipe, rc); 525 - 526 - d_printf(1, dev, "rpipe %u: abort\n", index); 527 - result = usb_control_msg( 540 + usb_control_msg( 528 541 wa->usb_dev, usb_rcvctrlpipe(wa->usb_dev, 0), 529 542 USB_REQ_RPIPE_ABORT, 530 543 USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_RPIPE, 531 544 0, index, NULL, 0, 1000 /* FIXME: arbitrary */); 532 - if (result < 0 && result != -ENODEV /* dev is gone */) 533 - d_printf(1, dev, "(wa %p rpipe %u): abort failed: %d\n", 534 - wa, index, result); 535 545 rpipe_put(rpipe); 536 546 } 537 547 mutex_unlock(&wa->rpipe_mutex); 538 - d_fnend(2, dev, "(wa %p ep %p)\n", wa, ep); 539 - return; 540 548 } 541 549 EXPORT_SYMBOL_GPL(rpipe_ep_disable);
+43 -137
drivers/usb/wusbcore/wa-xfer.c
··· 82 82 #include <linux/init.h> 83 83 #include <linux/spinlock.h> 84 84 #include <linux/hash.h> 85 + 85 86 #include "wa-hc.h" 86 87 #include "wusbhc.h" 87 - 88 - #undef D_LOCAL 89 - #define D_LOCAL 0 /* 0 disabled, > 0 different levels... */ 90 - #include <linux/uwb/debug.h> 91 88 92 89 enum { 93 90 WA_SEGS_MAX = 255, ··· 177 180 } 178 181 } 179 182 kfree(xfer); 180 - d_printf(2, NULL, "xfer %p destroyed\n", xfer); 181 183 } 182 184 183 185 static void wa_xfer_get(struct wa_xfer *xfer) ··· 186 190 187 191 static void wa_xfer_put(struct wa_xfer *xfer) 188 192 { 189 - d_fnstart(3, NULL, "(xfer %p) -- ref count bef put %d\n", 190 - xfer, atomic_read(&xfer->refcnt.refcount)); 191 193 kref_put(&xfer->refcnt, wa_xfer_destroy); 192 - d_fnend(3, NULL, "(xfer %p) = void\n", xfer); 193 194 } 194 195 195 196 /* ··· 202 209 static void wa_xfer_giveback(struct wa_xfer *xfer) 203 210 { 204 211 unsigned long flags; 205 - d_fnstart(3, NULL, "(xfer %p)\n", xfer); 212 + 206 213 spin_lock_irqsave(&xfer->wa->xfer_list_lock, flags); 207 214 list_del_init(&xfer->list_node); 208 215 spin_unlock_irqrestore(&xfer->wa->xfer_list_lock, flags); ··· 210 217 wusbhc_giveback_urb(xfer->wa->wusb, xfer->urb, xfer->result); 211 218 wa_put(xfer->wa); 212 219 wa_xfer_put(xfer); 213 - d_fnend(3, NULL, "(xfer %p) = void\n", xfer); 214 220 } 215 221 216 222 /* ··· 219 227 */ 220 228 static void wa_xfer_completion(struct wa_xfer *xfer) 221 229 { 222 - d_fnstart(3, NULL, "(xfer %p)\n", xfer); 223 230 if (xfer->wusb_dev) 224 231 wusb_dev_put(xfer->wusb_dev); 225 232 rpipe_put(xfer->ep->hcpriv); 226 233 wa_xfer_giveback(xfer); 227 - d_fnend(3, NULL, "(xfer %p) = void\n", xfer); 228 - return; 229 234 } 230 235 231 236 /* ··· 232 243 */ 233 244 static unsigned __wa_xfer_is_done(struct wa_xfer *xfer) 234 245 { 246 + struct device *dev = &xfer->wa->usb_iface->dev; 235 247 unsigned result, cnt; 236 248 struct wa_seg *seg; 237 249 struct urb *urb = xfer->urb; 238 250 unsigned found_short = 0; 239 251 240 - d_fnstart(3, NULL, "(xfer %p)\n", xfer); 241 252 result = xfer->segs_done == xfer->segs_submitted; 242 253 if (result == 0) 243 254 goto out; ··· 247 258 switch (seg->status) { 248 259 case WA_SEG_DONE: 249 260 if (found_short && seg->result > 0) { 250 - if (printk_ratelimit()) 251 - printk(KERN_ERR "xfer %p#%u: bad short " 252 - "segments (%zu)\n", xfer, cnt, 253 - seg->result); 261 + dev_dbg(dev, "xfer %p#%u: bad short segments (%zu)\n", 262 + xfer, cnt, seg->result); 254 263 urb->status = -EINVAL; 255 264 goto out; 256 265 } ··· 256 269 if (seg->result < xfer->seg_size 257 270 && cnt != xfer->segs-1) 258 271 found_short = 1; 259 - d_printf(2, NULL, "xfer %p#%u: DONE short %d " 260 - "result %zu urb->actual_length %d\n", 261 - xfer, seg->index, found_short, seg->result, 262 - urb->actual_length); 272 + dev_dbg(dev, "xfer %p#%u: DONE short %d " 273 + "result %zu urb->actual_length %d\n", 274 + xfer, seg->index, found_short, seg->result, 275 + urb->actual_length); 263 276 break; 264 277 case WA_SEG_ERROR: 265 278 xfer->result = seg->result; 266 - d_printf(2, NULL, "xfer %p#%u: ERROR result %zu\n", 267 - xfer, seg->index, seg->result); 279 + dev_dbg(dev, "xfer %p#%u: ERROR result %zu\n", 280 + xfer, seg->index, seg->result); 268 281 goto out; 269 282 case WA_SEG_ABORTED: 270 - WARN_ON(urb->status != -ECONNRESET 271 - && urb->status != -ENOENT); 272 - d_printf(2, NULL, "xfer %p#%u ABORTED: result %d\n", 273 - xfer, seg->index, urb->status); 283 + dev_dbg(dev, "xfer %p#%u ABORTED: result %d\n", 284 + xfer, seg->index, urb->status); 274 285 xfer->result = urb->status; 275 286 goto out; 276 287 default: 277 - /* if (printk_ratelimit()) */ 278 - printk(KERN_ERR "xfer %p#%u: " 279 - "is_done bad state %d\n", 280 - xfer, cnt, seg->status); 288 + dev_warn(dev, "xfer %p#%u: is_done bad state %d\n", 289 + xfer, cnt, seg->status); 281 290 xfer->result = -EINVAL; 282 - WARN_ON(1); 283 291 goto out; 284 292 } 285 293 } 286 294 xfer->result = 0; 287 295 out: 288 - d_fnend(3, NULL, "(xfer %p) = void\n", xfer); 289 296 return result; 290 297 } 291 298 ··· 405 424 struct urb *urb = xfer->urb; 406 425 struct wa_rpipe *rpipe = xfer->ep->hcpriv; 407 426 408 - d_fnstart(3, dev, "(xfer %p [rpipe %p] urb %p)\n", 409 - xfer, rpipe, urb); 410 427 switch (rpipe->descr.bmAttribute & 0x3) { 411 428 case USB_ENDPOINT_XFER_CONTROL: 412 429 *pxfer_type = WA_XFER_TYPE_CTL; ··· 451 472 if (xfer->segs == 0 && *pxfer_type == WA_XFER_TYPE_CTL) 452 473 xfer->segs = 1; 453 474 error: 454 - d_fnend(3, dev, "(xfer %p [rpipe %p] urb %p) = %d\n", 455 - xfer, rpipe, urb, (int)result); 456 475 return result; 457 476 } 458 477 459 - /** Fill in the common request header and xfer-type specific data. */ 478 + /* Fill in the common request header and xfer-type specific data. */ 460 479 static void __wa_xfer_setup_hdr0(struct wa_xfer *xfer, 461 480 struct wa_xfer_hdr *xfer_hdr0, 462 481 enum wa_xfer_type xfer_type, ··· 511 534 unsigned rpipe_ready = 0; 512 535 u8 done = 0; 513 536 514 - d_fnstart(3, NULL, "(urb %p [%d])\n", urb, urb->status); 515 537 switch (urb->status) { 516 538 case 0: 517 539 spin_lock_irqsave(&xfer->lock, flags); 518 540 wa = xfer->wa; 519 541 dev = &wa->usb_iface->dev; 520 - d_printf(2, dev, "xfer %p#%u: data out done (%d bytes)\n", 521 - xfer, seg->index, urb->actual_length); 542 + dev_dbg(dev, "xfer %p#%u: data out done (%d bytes)\n", 543 + xfer, seg->index, urb->actual_length); 522 544 if (seg->status < WA_SEG_PENDING) 523 545 seg->status = WA_SEG_PENDING; 524 546 seg->result = urb->actual_length; ··· 531 555 wa = xfer->wa; 532 556 dev = &wa->usb_iface->dev; 533 557 rpipe = xfer->ep->hcpriv; 534 - if (printk_ratelimit()) 535 - dev_err(dev, "xfer %p#%u: data out error %d\n", 536 - xfer, seg->index, urb->status); 558 + dev_dbg(dev, "xfer %p#%u: data out error %d\n", 559 + xfer, seg->index, urb->status); 537 560 if (edc_inc(&wa->nep_edc, EDC_MAX_ERRORS, 538 561 EDC_ERROR_TIMEFRAME)){ 539 562 dev_err(dev, "DTO: URB max acceptable errors " ··· 553 578 if (rpipe_ready) 554 579 wa_xfer_delayed_run(rpipe); 555 580 } 556 - d_fnend(3, NULL, "(urb %p [%d]) = void\n", urb, urb->status); 557 581 } 558 582 559 583 /* ··· 584 610 unsigned rpipe_ready; 585 611 u8 done = 0; 586 612 587 - d_fnstart(3, NULL, "(urb %p [%d])\n", urb, urb->status); 588 613 switch (urb->status) { 589 614 case 0: 590 615 spin_lock_irqsave(&xfer->lock, flags); 591 616 wa = xfer->wa; 592 617 dev = &wa->usb_iface->dev; 593 - d_printf(2, dev, "xfer %p#%u: request done\n", 594 - xfer, seg->index); 618 + dev_dbg(dev, "xfer %p#%u: request done\n", xfer, seg->index); 595 619 if (xfer->is_inbound && seg->status < WA_SEG_PENDING) 596 620 seg->status = WA_SEG_PENDING; 597 621 spin_unlock_irqrestore(&xfer->lock, flags); ··· 624 652 if (rpipe_ready) 625 653 wa_xfer_delayed_run(rpipe); 626 654 } 627 - d_fnend(3, NULL, "(urb %p [%d]) = void\n", urb, urb->status); 628 655 } 629 656 630 657 /* ··· 721 750 size_t xfer_hdr_size, cnt, transfer_size; 722 751 struct wa_xfer_hdr *xfer_hdr0, *xfer_hdr; 723 752 724 - d_fnstart(3, dev, "(xfer %p [rpipe %p] urb %p)\n", 725 - xfer, xfer->ep->hcpriv, urb); 726 - 727 753 result = __wa_xfer_setup_sizes(xfer, &xfer_type); 728 754 if (result < 0) 729 755 goto error_setup_sizes; ··· 756 788 result = 0; 757 789 error_setup_segs: 758 790 error_setup_sizes: 759 - d_fnend(3, dev, "(xfer %p [rpipe %p] urb %p) = %d\n", 760 - xfer, xfer->ep->hcpriv, urb, result); 761 791 return result; 762 792 } 763 793 ··· 809 843 struct wa_xfer *xfer; 810 844 unsigned long flags; 811 845 812 - d_fnstart(1, dev, "(rpipe #%d) %d segments available\n", 813 - le16_to_cpu(rpipe->descr.wRPipeIndex), 814 - atomic_read(&rpipe->segs_available)); 815 846 spin_lock_irqsave(&rpipe->seg_lock, flags); 816 847 while (atomic_read(&rpipe->segs_available) > 0 817 848 && !list_empty(&rpipe->seg_list)) { ··· 817 854 list_del(&seg->list_node); 818 855 xfer = seg->xfer; 819 856 result = __wa_seg_submit(rpipe, xfer, seg); 820 - d_printf(1, dev, "xfer %p#%u submitted from delayed " 821 - "[%d segments available] %d\n", 822 - xfer, seg->index, 823 - atomic_read(&rpipe->segs_available), result); 857 + dev_dbg(dev, "xfer %p#%u submitted from delayed [%d segments available] %d\n", 858 + xfer, seg->index, atomic_read(&rpipe->segs_available), result); 824 859 if (unlikely(result < 0)) { 825 860 spin_unlock_irqrestore(&rpipe->seg_lock, flags); 826 861 spin_lock_irqsave(&xfer->lock, flags); ··· 829 868 } 830 869 } 831 870 spin_unlock_irqrestore(&rpipe->seg_lock, flags); 832 - d_fnend(1, dev, "(rpipe #%d) = void, %d segments available\n", 833 - le16_to_cpu(rpipe->descr.wRPipeIndex), 834 - atomic_read(&rpipe->segs_available)); 835 - 836 871 } 837 872 838 873 /* ··· 851 894 u8 available; 852 895 u8 empty; 853 896 854 - d_fnstart(3, dev, "(xfer %p [rpipe %p])\n", 855 - xfer, xfer->ep->hcpriv); 856 - 857 897 spin_lock_irqsave(&wa->xfer_list_lock, flags); 858 898 list_add_tail(&xfer->list_node, &wa->xfer_list); 859 899 spin_unlock_irqrestore(&wa->xfer_list_lock, flags); ··· 862 908 available = atomic_read(&rpipe->segs_available); 863 909 empty = list_empty(&rpipe->seg_list); 864 910 seg = xfer->seg[cnt]; 865 - d_printf(2, dev, "xfer %p#%u: available %u empty %u (%s)\n", 866 - xfer, cnt, available, empty, 867 - available == 0 || !empty ? "delayed" : "submitted"); 911 + dev_dbg(dev, "xfer %p#%u: available %u empty %u (%s)\n", 912 + xfer, cnt, available, empty, 913 + available == 0 || !empty ? "delayed" : "submitted"); 868 914 if (available == 0 || !empty) { 869 - d_printf(1, dev, "xfer %p#%u: delayed\n", xfer, cnt); 915 + dev_dbg(dev, "xfer %p#%u: delayed\n", xfer, cnt); 870 916 seg->status = WA_SEG_DELAYED; 871 917 list_add_tail(&seg->list_node, &rpipe->seg_list); 872 918 } else { 873 919 result = __wa_seg_submit(rpipe, xfer, seg); 874 - if (result < 0) 920 + if (result < 0) { 921 + __wa_xfer_abort(xfer); 875 922 goto error_seg_submit; 923 + } 876 924 } 877 925 xfer->segs_submitted++; 878 926 } 879 - spin_unlock_irqrestore(&rpipe->seg_lock, flags); 880 - d_fnend(3, dev, "(xfer %p [rpipe %p]) = void\n", xfer, 881 - xfer->ep->hcpriv); 882 - return result; 883 - 884 927 error_seg_submit: 885 - __wa_xfer_abort(xfer); 886 928 spin_unlock_irqrestore(&rpipe->seg_lock, flags); 887 - d_fnend(3, dev, "(xfer %p [rpipe %p]) = void\n", xfer, 888 - xfer->ep->hcpriv); 889 929 return result; 890 930 } 891 931 ··· 912 964 struct urb *urb = xfer->urb; 913 965 struct wahc *wa = xfer->wa; 914 966 struct wusbhc *wusbhc = wa->wusb; 915 - struct device *dev = &wa->usb_iface->dev; 916 967 struct wusb_dev *wusb_dev; 917 968 unsigned done; 918 969 919 - d_fnstart(3, dev, "(wa %p urb %p)\n", wa, urb); 920 970 result = rpipe_get_by_ep(wa, xfer->ep, urb, xfer->gfp); 921 971 if (result < 0) 922 972 goto error_rpipe_get; ··· 943 997 if (result < 0) 944 998 goto error_xfer_submit; 945 999 spin_unlock_irqrestore(&xfer->lock, flags); 946 - d_fnend(3, dev, "(wa %p urb %p) = void\n", wa, urb); 947 1000 return; 948 1001 949 1002 /* this is basically wa_xfer_completion() broken up wa_xfer_giveback() ··· 960 1015 error_rpipe_get: 961 1016 xfer->result = result; 962 1017 wa_xfer_giveback(xfer); 963 - d_fnend(3, dev, "(wa %p urb %p) = (void) %d\n", wa, urb, result); 964 1018 return; 965 1019 966 1020 error_xfer_submit: ··· 968 1024 spin_unlock_irqrestore(&xfer->lock, flags); 969 1025 if (done) 970 1026 wa_xfer_completion(xfer); 971 - d_fnend(3, dev, "(wa %p urb %p) = (void) %d\n", wa, urb, result); 972 - return; 973 1027 } 974 1028 975 1029 /* ··· 983 1041 void wa_urb_enqueue_run(struct work_struct *ws) 984 1042 { 985 1043 struct wahc *wa = container_of(ws, struct wahc, xfer_work); 986 - struct device *dev = &wa->usb_iface->dev; 987 1044 struct wa_xfer *xfer, *next; 988 1045 struct urb *urb; 989 1046 990 - d_fnstart(3, dev, "(wa %p)\n", wa); 991 1047 spin_lock_irq(&wa->xfer_list_lock); 992 1048 list_for_each_entry_safe(xfer, next, &wa->xfer_delayed_list, 993 1049 list_node) { ··· 999 1059 spin_lock_irq(&wa->xfer_list_lock); 1000 1060 } 1001 1061 spin_unlock_irq(&wa->xfer_list_lock); 1002 - d_fnend(3, dev, "(wa %p) = void\n", wa); 1003 1062 } 1004 1063 EXPORT_SYMBOL_GPL(wa_urb_enqueue_run); 1005 1064 ··· 1023 1084 unsigned long my_flags; 1024 1085 unsigned cant_sleep = irqs_disabled() | in_atomic(); 1025 1086 1026 - d_fnstart(3, dev, "(wa %p ep %p urb %p [%d] gfp 0x%x)\n", 1027 - wa, ep, urb, urb->transfer_buffer_length, gfp); 1028 - 1029 1087 if (urb->transfer_buffer == NULL 1030 1088 && !(urb->transfer_flags & URB_NO_TRANSFER_DMA_MAP) 1031 1089 && urb->transfer_buffer_length != 0) { ··· 1044 1108 xfer->gfp = gfp; 1045 1109 xfer->ep = ep; 1046 1110 urb->hcpriv = xfer; 1047 - d_printf(2, dev, "xfer %p urb %p pipe 0x%02x [%d bytes] %s %s %s\n", 1048 - xfer, urb, urb->pipe, urb->transfer_buffer_length, 1049 - urb->transfer_flags & URB_NO_TRANSFER_DMA_MAP ? "dma" : "nodma", 1050 - urb->pipe & USB_DIR_IN ? "inbound" : "outbound", 1051 - cant_sleep ? "deferred" : "inline"); 1111 + 1112 + dev_dbg(dev, "xfer %p urb %p pipe 0x%02x [%d bytes] %s %s %s\n", 1113 + xfer, urb, urb->pipe, urb->transfer_buffer_length, 1114 + urb->transfer_flags & URB_NO_TRANSFER_DMA_MAP ? "dma" : "nodma", 1115 + urb->pipe & USB_DIR_IN ? "inbound" : "outbound", 1116 + cant_sleep ? "deferred" : "inline"); 1117 + 1052 1118 if (cant_sleep) { 1053 1119 usb_get_urb(urb); 1054 1120 spin_lock_irqsave(&wa->xfer_list_lock, my_flags); ··· 1060 1122 } else { 1061 1123 wa_urb_enqueue_b(xfer); 1062 1124 } 1063 - d_fnend(3, dev, "(wa %p ep %p urb %p [%d] gfp 0x%x) = 0\n", 1064 - wa, ep, urb, urb->transfer_buffer_length, gfp); 1065 1125 return 0; 1066 1126 1067 1127 error_dequeued: 1068 1128 kfree(xfer); 1069 1129 error_kmalloc: 1070 - d_fnend(3, dev, "(wa %p ep %p urb %p [%d] gfp 0x%x) = %d\n", 1071 - wa, ep, urb, urb->transfer_buffer_length, gfp, result); 1072 1130 return result; 1073 1131 } 1074 1132 EXPORT_SYMBOL_GPL(wa_urb_enqueue); ··· 1089 1155 */ 1090 1156 int wa_urb_dequeue(struct wahc *wa, struct urb *urb) 1091 1157 { 1092 - struct device *dev = &wa->usb_iface->dev; 1093 1158 unsigned long flags, flags2; 1094 1159 struct wa_xfer *xfer; 1095 1160 struct wa_seg *seg; ··· 1096 1163 unsigned cnt; 1097 1164 unsigned rpipe_ready = 0; 1098 1165 1099 - d_fnstart(3, dev, "(wa %p, urb %p)\n", wa, urb); 1100 - 1101 - d_printf(1, dev, "xfer %p urb %p: aborting\n", urb->hcpriv, urb); 1102 1166 xfer = urb->hcpriv; 1103 1167 if (xfer == NULL) { 1104 1168 /* NOthing setup yet enqueue will see urb->status != ··· 1164 1234 wa_xfer_completion(xfer); 1165 1235 if (rpipe_ready) 1166 1236 wa_xfer_delayed_run(rpipe); 1167 - d_fnend(3, dev, "(wa %p, urb %p) = 0\n", wa, urb); 1168 1237 return 0; 1169 1238 1170 1239 out_unlock: 1171 1240 spin_unlock_irqrestore(&xfer->lock, flags); 1172 1241 out: 1173 - d_fnend(3, dev, "(wa %p, urb %p) = 0\n", wa, urb); 1174 1242 return 0; 1175 1243 1176 1244 dequeue_delayed: ··· 1178 1250 spin_unlock_irqrestore(&xfer->lock, flags); 1179 1251 wa_xfer_giveback(xfer); 1180 1252 usb_put_urb(urb); /* we got a ref in enqueue() */ 1181 - d_fnend(3, dev, "(wa %p, urb %p) = 0\n", wa, urb); 1182 1253 return 0; 1183 1254 } 1184 1255 EXPORT_SYMBOL_GPL(wa_urb_dequeue); ··· 1253 1326 u8 usb_status; 1254 1327 unsigned rpipe_ready = 0; 1255 1328 1256 - d_fnstart(3, dev, "(wa %p xfer %p)\n", wa, xfer); 1257 1329 spin_lock_irqsave(&xfer->lock, flags); 1258 1330 seg_idx = xfer_result->bTransferSegment & 0x7f; 1259 1331 if (unlikely(seg_idx >= xfer->segs)) ··· 1260 1334 seg = xfer->seg[seg_idx]; 1261 1335 rpipe = xfer->ep->hcpriv; 1262 1336 usb_status = xfer_result->bTransferStatus; 1263 - d_printf(2, dev, "xfer %p#%u: bTransferStatus 0x%02x (seg %u)\n", 1264 - xfer, seg_idx, usb_status, seg->status); 1337 + dev_dbg(dev, "xfer %p#%u: bTransferStatus 0x%02x (seg %u)\n", 1338 + xfer, seg_idx, usb_status, seg->status); 1265 1339 if (seg->status == WA_SEG_ABORTED 1266 1340 || seg->status == WA_SEG_ERROR) /* already handled */ 1267 1341 goto segment_aborted; ··· 1317 1391 wa_xfer_completion(xfer); 1318 1392 if (rpipe_ready) 1319 1393 wa_xfer_delayed_run(rpipe); 1320 - d_fnend(3, dev, "(wa %p xfer %p) = void\n", wa, xfer); 1321 1394 return; 1322 - 1323 1395 1324 1396 error_submit_buf_in: 1325 1397 if (edc_inc(&wa->dti_edc, EDC_MAX_ERRORS, EDC_ERROR_TIMEFRAME)) { ··· 1340 1416 wa_xfer_completion(xfer); 1341 1417 if (rpipe_ready) 1342 1418 wa_xfer_delayed_run(rpipe); 1343 - d_fnend(3, dev, "(wa %p xfer %p) = void [segment/DTI-submit error]\n", 1344 - wa, xfer); 1345 1419 return; 1346 - 1347 1420 1348 1421 error_bad_seg: 1349 1422 spin_unlock_irqrestore(&xfer->lock, flags); ··· 1352 1431 "exceeded, resetting device\n"); 1353 1432 wa_reset_all(wa); 1354 1433 } 1355 - d_fnend(3, dev, "(wa %p xfer %p) = void [bad seg]\n", wa, xfer); 1356 1434 return; 1357 - 1358 1435 1359 1436 segment_aborted: 1360 1437 /* nothing to do, as the aborter did the completion */ 1361 1438 spin_unlock_irqrestore(&xfer->lock, flags); 1362 - d_fnend(3, dev, "(wa %p xfer %p) = void [segment aborted]\n", 1363 - wa, xfer); 1364 - return; 1365 - 1366 1439 } 1367 1440 1368 1441 /* ··· 1380 1465 unsigned long flags; 1381 1466 u8 done = 0; 1382 1467 1383 - d_fnstart(3, NULL, "(urb %p [%d])\n", urb, urb->status); 1384 1468 switch (urb->status) { 1385 1469 case 0: 1386 1470 spin_lock_irqsave(&xfer->lock, flags); 1387 1471 wa = xfer->wa; 1388 1472 dev = &wa->usb_iface->dev; 1389 1473 rpipe = xfer->ep->hcpriv; 1390 - d_printf(2, dev, "xfer %p#%u: data in done (%zu bytes)\n", 1391 - xfer, seg->index, (size_t)urb->actual_length); 1474 + dev_dbg(dev, "xfer %p#%u: data in done (%zu bytes)\n", 1475 + xfer, seg->index, (size_t)urb->actual_length); 1392 1476 seg->status = WA_SEG_DONE; 1393 1477 seg->result = urb->actual_length; 1394 1478 xfer->segs_done++; ··· 1428 1514 if (rpipe_ready) 1429 1515 wa_xfer_delayed_run(rpipe); 1430 1516 } 1431 - d_fnend(3, NULL, "(urb %p [%d]) = void\n", urb, urb->status); 1432 1517 } 1433 1518 1434 1519 /* ··· 1466 1553 struct wa_xfer *xfer; 1467 1554 u8 usb_status; 1468 1555 1469 - d_fnstart(3, dev, "(%p)\n", wa); 1470 1556 BUG_ON(wa->dti_urb != urb); 1471 1557 switch (wa->dti_urb->status) { 1472 1558 case 0: 1473 1559 /* We have a xfer result buffer; check it */ 1474 - d_printf(2, dev, "DTI: xfer result %d bytes at %p\n", 1475 - urb->actual_length, urb->transfer_buffer); 1476 - d_dump(3, dev, urb->transfer_buffer, urb->actual_length); 1560 + dev_dbg(dev, "DTI: xfer result %d bytes at %p\n", 1561 + urb->actual_length, urb->transfer_buffer); 1477 1562 if (wa->dti_urb->actual_length != sizeof(*xfer_result)) { 1478 1563 dev_err(dev, "DTI Error: xfer result--bad size " 1479 1564 "xfer result (%d bytes vs %zu needed)\n", ··· 1533 1622 wa_reset_all(wa); 1534 1623 } 1535 1624 out: 1536 - d_fnend(3, dev, "(%p) = void\n", wa); 1537 1625 return; 1538 1626 } 1539 1627 ··· 1563 1653 struct wa_notif_xfer *notif_xfer; 1564 1654 const struct usb_endpoint_descriptor *dti_epd = wa->dti_epd; 1565 1655 1566 - d_fnstart(4, dev, "(%p, %p)\n", wa, notif_hdr); 1567 1656 notif_xfer = container_of(notif_hdr, struct wa_notif_xfer, hdr); 1568 1657 BUG_ON(notif_hdr->bNotifyType != WA_NOTIF_TRANSFER); 1569 1658 ··· 1602 1693 goto error_dti_urb_submit; 1603 1694 } 1604 1695 out: 1605 - d_fnend(4, dev, "(%p, %p) = void\n", wa, notif_hdr); 1606 1696 return; 1607 1697 1608 1698 error_dti_urb_submit: ··· 1612 1704 error_dti_urb_alloc: 1613 1705 error: 1614 1706 wa_reset_all(wa); 1615 - d_fnend(4, dev, "(%p, %p) = void\n", wa, notif_hdr); 1616 - return; 1617 1707 }
+2 -8
drivers/uwb/beacon.c
··· 22 22 * 23 23 * FIXME: docs 24 24 */ 25 - 26 25 #include <linux/kernel.h> 27 26 #include <linux/init.h> 28 27 #include <linux/module.h> 29 28 #include <linux/device.h> 30 29 #include <linux/err.h> 31 30 #include <linux/kdev_t.h> 31 + 32 32 #include "uwb-internal.h" 33 33 34 - #define D_LOCAL 0 35 - #include <linux/uwb/debug.h> 36 - 37 - /** Start Beaconing command structure */ 34 + /* Start Beaconing command structure */ 38 35 struct uwb_rc_cmd_start_beacon { 39 36 struct uwb_rccb rccb; 40 37 __le16 wBPSTOffset; ··· 173 176 { 174 177 struct uwb_beca_e *bce, *next; 175 178 list_for_each_entry_safe(bce, next, &rc->uwb_beca.list, node) { 176 - d_printf(6, NULL, "looking for addr %02x:%02x in %02x:%02x\n", 177 - dev_addr->data[0], dev_addr->data[1], 178 - bce->dev_addr.data[0], bce->dev_addr.data[1]); 179 179 if (!memcmp(&bce->dev_addr, dev_addr, sizeof(bce->dev_addr))) 180 180 goto out; 181 181 }
+1 -13
drivers/uwb/est.c
··· 40 40 * uwb_est_get_size() 41 41 */ 42 42 #include <linux/spinlock.h> 43 - #define D_LOCAL 0 44 - #include <linux/uwb/debug.h> 45 - #include "uwb-internal.h" 46 43 44 + #include "uwb-internal.h" 47 45 48 46 struct uwb_est { 49 47 u16 type_event_high; ··· 49 51 u8 entries; 50 52 const struct uwb_est_entry *entry; 51 53 }; 52 - 53 54 54 55 static struct uwb_est *uwb_est; 55 56 static u8 uwb_est_size; ··· 437 440 u8 *ptr = (u8 *) rceb; 438 441 439 442 read_lock_irqsave(&uwb_est_lock, flags); 440 - d_printf(2, dev, "Size query for event 0x%02x/%04x/%02x," 441 - " buffer size %ld\n", 442 - (unsigned) rceb->bEventType, 443 - (unsigned) le16_to_cpu(rceb->wEvent), 444 - (unsigned) rceb->bEventContext, 445 - (long) rceb_size); 446 443 size = -ENOSPC; 447 444 if (rceb_size < sizeof(*rceb)) 448 445 goto out; 449 446 event = le16_to_cpu(rceb->wEvent); 450 447 type_event_high = rceb->bEventType << 8 | (event & 0xff00) >> 8; 451 448 for (itr = 0; itr < uwb_est_used; itr++) { 452 - d_printf(3, dev, "Checking EST 0x%04x/%04x/%04x\n", 453 - uwb_est[itr].type_event_high, uwb_est[itr].vendor, 454 - uwb_est[itr].product); 455 449 if (uwb_est[itr].type_event_high != type_event_high) 456 450 continue; 457 451 size = uwb_est_get_size(rc, &uwb_est[itr],
+8 -22
drivers/uwb/hwa-rc.c
··· 57 57 #include <linux/usb/wusb.h> 58 58 #include <linux/usb/wusb-wa.h> 59 59 #include <linux/uwb.h> 60 + 60 61 #include "uwb-internal.h" 61 - #define D_LOCAL 1 62 - #include <linux/uwb/debug.h> 63 62 64 63 /* The device uses commands and events from the WHCI specification, although 65 64 * reporting itself as WUSB compliant. */ ··· 629 630 630 631 switch (result = urb->status) { 631 632 case 0: 632 - d_printf(3, dev, "NEEP: receive stat %d, %zu bytes\n", 633 - urb->status, (size_t)urb->actual_length); 634 633 uwb_rc_neh_grok(hwarc->uwb_rc, urb->transfer_buffer, 635 634 urb->actual_length); 636 635 break; 637 636 case -ECONNRESET: /* Not an error, but a controlled situation; */ 638 637 case -ENOENT: /* (we killed the URB)...so, no broadcast */ 639 - d_printf(2, dev, "NEEP: URB reset/noent %d\n", urb->status); 640 638 goto out; 641 639 case -ESHUTDOWN: /* going away! */ 642 - d_printf(2, dev, "NEEP: URB down %d\n", urb->status); 643 640 goto out; 644 641 default: /* On general errors, retry unless it gets ugly */ 645 642 if (edc_inc(&hwarc->neep_edc, EDC_MAX_ERRORS, ··· 644 649 dev_err(dev, "NEEP: URB error %d\n", urb->status); 645 650 } 646 651 result = usb_submit_urb(urb, GFP_ATOMIC); 647 - d_printf(3, dev, "NEEP: submit %d\n", result); 648 652 if (result < 0) { 649 653 dev_err(dev, "NEEP: Can't resubmit URB (%d) resetting device\n", 650 654 result); ··· 752 758 itr_size = le16_to_cpu(usb_dev->actconfig->desc.wTotalLength); 753 759 while (itr_size >= sizeof(*hdr)) { 754 760 hdr = (struct usb_descriptor_header *) itr; 755 - d_printf(3, dev, "Extra device descriptor: " 756 - "type %02x/%u bytes @ %zu (%zu left)\n", 757 - hdr->bDescriptorType, hdr->bLength, 758 - (itr - usb_dev->rawdescriptors[actconfig_idx]), 759 - itr_size); 761 + dev_dbg(dev, "Extra device descriptor: " 762 + "type %02x/%u bytes @ %zu (%zu left)\n", 763 + hdr->bDescriptorType, hdr->bLength, 764 + (itr - usb_dev->rawdescriptors[actconfig_idx]), 765 + itr_size); 760 766 if (hdr->bDescriptorType == USB_DT_CS_RADIO_CONTROL) 761 767 goto found; 762 768 itr += hdr->bLength; ··· 788 794 goto error; 789 795 } 790 796 rc->version = version; 791 - d_printf(3, dev, "Device supports WUSB protocol version 0x%04x \n", 792 - rc->version); 797 + dev_dbg(dev, "Device supports WUSB protocol version 0x%04x \n", rc->version); 793 798 result = 0; 794 799 error: 795 800 return result; ··· 869 876 uwb_rc_rm(uwb_rc); 870 877 usb_put_intf(hwarc->usb_iface); 871 878 usb_put_dev(hwarc->usb_dev); 872 - d_printf(1, &hwarc->usb_iface->dev, "freed hwarc %p\n", hwarc); 873 879 kfree(hwarc); 874 880 uwb_rc_put(uwb_rc); /* when creating the device, refcount = 1 */ 875 881 } ··· 916 924 917 925 static int __init hwarc_driver_init(void) 918 926 { 919 - int result; 920 - result = usb_register(&hwarc_driver); 921 - if (result < 0) 922 - printk(KERN_ERR "HWA-RC: Cannot register USB driver: %d\n", 923 - result); 924 - return result; 925 - 927 + return usb_register(&hwarc_driver); 926 928 } 927 929 module_init(hwarc_driver_init); 928 930
+2 -8
drivers/uwb/i1480/dfu/dfu.c
··· 34 34 #include <linux/uwb.h> 35 35 #include <linux/random.h> 36 36 37 - #define D_LOCAL 0 38 - #include <linux/uwb/debug.h> 39 - 40 - /** 37 + /* 41 38 * i1480_rceb_check - Check RCEB for expected field values 42 39 * @i1480: pointer to device for which RCEB is being checked 43 40 * @rceb: RCEB being checked ··· 80 83 EXPORT_SYMBOL_GPL(i1480_rceb_check); 81 84 82 85 83 - /** 86 + /* 84 87 * Execute a Radio Control Command 85 88 * 86 89 * Command data has to be in i1480->cmd_buf. ··· 98 101 u8 expected_type = reply->bEventType; 99 102 u8 context; 100 103 101 - d_fnstart(3, i1480->dev, "(%p, %s, %zu)\n", i1480, cmd_name, cmd_size); 102 104 init_completion(&i1480->evt_complete); 103 105 i1480->evt_result = -EINPROGRESS; 104 106 do { ··· 146 150 result = i1480_rceb_check(i1480, i1480->evt_buf, cmd_name, context, 147 151 expected_type, expected_event); 148 152 error: 149 - d_fnend(3, i1480->dev, "(%p, %s, %zu) = %zd\n", 150 - i1480, cmd_name, cmd_size, result); 151 153 return result; 152 154 } 153 155 EXPORT_SYMBOL_GPL(i1480_cmd);
-18
drivers/uwb/i1480/dfu/mac.c
··· 31 31 #include <linux/uwb.h> 32 32 #include "i1480-dfu.h" 33 33 34 - #define D_LOCAL 0 35 - #include <linux/uwb/debug.h> 36 - 37 34 /* 38 35 * Descriptor for a continuous segment of MAC fw data 39 36 */ ··· 181 184 } 182 185 if (memcmp(i1480->cmd_buf, bin + src_itr, result)) { 183 186 u8 *buf = i1480->cmd_buf; 184 - d_printf(2, i1480->dev, 185 - "original data @ %p + %u, %zu bytes\n", 186 - bin, src_itr, result); 187 - d_dump(4, i1480->dev, bin + src_itr, result); 188 187 for (cnt = 0; cnt < result; cnt++) 189 188 if (bin[src_itr + cnt] != buf[cnt]) { 190 189 dev_err(i1480->dev, "byte failed at " ··· 217 224 struct fw_hdr *hdr_itr; 218 225 int verif_retry_count; 219 226 220 - d_fnstart(3, dev, "(%p, %p)\n", i1480, hdr); 221 227 /* Now, header by header, push them to the hw */ 222 228 for (hdr_itr = hdr; hdr_itr != NULL; hdr_itr = hdr_itr->next) { 223 229 verif_retry_count = 0; ··· 256 264 break; 257 265 } 258 266 } 259 - d_fnend(3, dev, "(%zd)\n", result); 260 267 return result; 261 268 } 262 269 ··· 328 337 const struct firmware *fw; 329 338 struct fw_hdr *fw_hdrs; 330 339 331 - d_fnstart(3, i1480->dev, "(%p, %s, %s)\n", i1480, fw_name, fw_tag); 332 340 result = request_firmware(&fw, fw_name, i1480->dev); 333 341 if (result < 0) /* Up to caller to complain on -ENOENT */ 334 342 goto out; 335 - d_printf(3, i1480->dev, "%s fw '%s': uploading\n", fw_tag, fw_name); 336 343 result = fw_hdrs_load(i1480, &fw_hdrs, fw->data, fw->size); 337 344 if (result < 0) { 338 345 dev_err(i1480->dev, "%s fw '%s': failed to parse firmware " ··· 352 363 out_release: 353 364 release_firmware(fw); 354 365 out: 355 - d_fnend(3, i1480->dev, "(%p, %s, %s) = %d\n", i1480, fw_name, fw_tag, 356 - result); 357 366 return result; 358 367 } 359 368 ··· 420 433 int result; 421 434 u32 *val = (u32 *) i1480->cmd_buf; 422 435 423 - d_fnstart(3, i1480->dev, "(i1480 %p)\n", i1480); 424 436 for (cnt = 0; cnt < 10; cnt++) { 425 437 msleep(100); 426 438 result = i1480->read(i1480, 0x80080000, 4); ··· 433 447 dev_err(i1480->dev, "Timed out waiting for fw to start\n"); 434 448 result = -ETIMEDOUT; 435 449 out: 436 - d_fnend(3, i1480->dev, "(i1480 %p) = %d\n", i1480, result); 437 450 return result; 438 451 439 452 } ··· 452 467 int result = 0, deprecated_name = 0; 453 468 struct i1480_rceb *rcebe = (void *) i1480->evt_buf; 454 469 455 - d_fnstart(3, i1480->dev, "(%p)\n", i1480); 456 470 result = __mac_fw_upload(i1480, i1480->mac_fw_name, "MAC"); 457 471 if (result == -ENOENT) { 458 472 result = __mac_fw_upload(i1480, i1480->mac_fw_name_deprecate, ··· 485 501 dev_err(i1480->dev, "MAC fw '%s': initialization event returns " 486 502 "wrong size (%zu bytes vs %zu needed)\n", 487 503 i1480->mac_fw_name, i1480->evt_result, sizeof(*rcebe)); 488 - dump_bytes(i1480->dev, rcebe, min(i1480->evt_result, (ssize_t)32)); 489 504 goto error_size; 490 505 } 491 506 result = -EIO; ··· 505 522 error_init_timeout: 506 523 error_size: 507 524 error_setup: 508 - d_fnend(3, i1480->dev, "(i1480 %p) = %d\n", i1480, result); 509 525 return result; 510 526 }
-26
drivers/uwb/i1480/dfu/usb.c
··· 43 43 #include <linux/usb/wusb-wa.h> 44 44 #include "i1480-dfu.h" 45 45 46 - #define D_LOCAL 0 47 - #include <linux/uwb/debug.h> 48 - 49 - 50 46 struct i1480_usb { 51 47 struct i1480 i1480; 52 48 struct usb_device *usb_dev; ··· 113 117 struct i1480_usb *i1480_usb = container_of(i1480, struct i1480_usb, i1480); 114 118 size_t buffer_size, itr = 0; 115 119 116 - d_fnstart(3, i1480->dev, "(%p, 0x%08x, %p, %zu)\n", 117 - i1480, memory_address, buffer, size); 118 120 BUG_ON(size & 0x3); /* Needs to be a multiple of 4 */ 119 121 while (size > 0) { 120 122 buffer_size = size < i1480->buf_size ? size : i1480->buf_size; ··· 125 131 i1480->cmd_buf, buffer_size, 100 /* FIXME: arbitrary */); 126 132 if (result < 0) 127 133 break; 128 - d_printf(3, i1480->dev, 129 - "wrote @ 0x%08x %u bytes (of %zu bytes requested)\n", 130 - memory_address, result, buffer_size); 131 - d_dump(4, i1480->dev, i1480->cmd_buf, result); 132 134 itr += result; 133 135 memory_address += result; 134 136 size -= result; 135 137 } 136 - d_fnend(3, i1480->dev, "(%p, 0x%08x, %p, %zu) = %d\n", 137 - i1480, memory_address, buffer, size, result); 138 138 return result; 139 139 } 140 140 ··· 153 165 size_t itr, read_size = i1480->buf_size; 154 166 struct i1480_usb *i1480_usb = container_of(i1480, struct i1480_usb, i1480); 155 167 156 - d_fnstart(3, i1480->dev, "(%p, 0x%08x, %zu)\n", 157 - i1480, addr, size); 158 168 BUG_ON(size > i1480->buf_size); 159 169 BUG_ON(size & 0x3); /* Needs to be a multiple of 4 */ 160 170 BUG_ON(read_size > 512); ··· 186 200 } 187 201 result = bytes; 188 202 out: 189 - d_fnend(3, i1480->dev, "(%p, 0x%08x, %zu) = %zd\n", 190 - i1480, addr, size, result); 191 - if (result > 0) 192 - d_dump(4, i1480->dev, i1480->cmd_buf, result); 193 203 return result; 194 204 } 195 205 ··· 241 259 struct i1480_usb *i1480_usb = container_of(i1480, struct i1480_usb, i1480); 242 260 struct usb_endpoint_descriptor *epd; 243 261 244 - d_fnstart(3, dev, "(%p)\n", i1480); 245 262 init_completion(&i1480->evt_complete); 246 263 i1480->evt_result = -EINPROGRESS; 247 264 epd = &i1480_usb->usb_iface->cur_altsetting->endpoint[0].desc; ··· 262 281 goto error_wait; 263 282 } 264 283 usb_kill_urb(i1480_usb->neep_urb); 265 - d_fnend(3, dev, "(%p) = 0\n", i1480); 266 284 return 0; 267 285 268 286 error_wait: 269 287 usb_kill_urb(i1480_usb->neep_urb); 270 288 error_submit: 271 289 i1480->evt_result = result; 272 - d_fnend(3, dev, "(%p) = %d\n", i1480, result); 273 290 return result; 274 291 } 275 292 ··· 298 319 struct uwb_rccb *cmd = i1480->cmd_buf; 299 320 u8 iface_no; 300 321 301 - d_fnstart(3, dev, "(%p, %s, %zu)\n", i1480, cmd_name, cmd_size); 302 322 /* Post a read on the notification & event endpoint */ 303 323 iface_no = i1480_usb->usb_iface->cur_altsetting->desc.bInterfaceNumber; 304 324 epd = &i1480_usb->usb_iface->cur_altsetting->endpoint[0].desc; ··· 325 347 cmd_name, result); 326 348 goto error_submit_ep0; 327 349 } 328 - d_fnend(3, dev, "(%p, %s, %zu) = %d\n", 329 - i1480, cmd_name, cmd_size, result); 330 350 return result; 331 351 332 352 error_submit_ep0: 333 353 usb_kill_urb(i1480_usb->neep_urb); 334 354 error_submit_ep1: 335 - d_fnend(3, dev, "(%p, %s, %zu) = %d\n", 336 - i1480, cmd_name, cmd_size, result); 337 355 return result; 338 356 } 339 357
+7 -18
drivers/uwb/i1480/i1480u-wlp/rx.c
··· 68 68 #include <linux/etherdevice.h> 69 69 #include "i1480u-wlp.h" 70 70 71 - #define D_LOCAL 0 72 - #include <linux/uwb/debug.h> 73 - 74 - 75 - /** 71 + /* 76 72 * Setup the RX context 77 73 * 78 74 * Each URB is provided with a transfer_buffer that is the data field ··· 125 129 } 126 130 127 131 128 - /** Release resources associated to the rx context */ 132 + /* Release resources associated to the rx context */ 129 133 void i1480u_rx_release(struct i1480u *i1480u) 130 134 { 131 135 int cnt; ··· 151 155 } 152 156 } 153 157 154 - /** Fix an out-of-sequence packet */ 158 + /* Fix an out-of-sequence packet */ 155 159 #define i1480u_fix(i1480u, msg...) \ 156 160 do { \ 157 161 if (printk_ratelimit()) \ ··· 162 166 } while (0) 163 167 164 168 165 - /** Drop an out-of-sequence packet */ 169 + /* Drop an out-of-sequence packet */ 166 170 #define i1480u_drop(i1480u, msg...) \ 167 171 do { \ 168 172 if (printk_ratelimit()) \ ··· 173 177 174 178 175 179 176 - /** Finalizes setting up the SKB and delivers it 180 + /* Finalizes setting up the SKB and delivers it 177 181 * 178 182 * We first pass the incoming frame to WLP substack for verification. It 179 183 * may also be a WLP association frame in which case WLP will take over the ··· 188 192 struct net_device *net_dev = i1480u->net_dev; 189 193 struct device *dev = &i1480u->usb_iface->dev; 190 194 191 - d_printf(6, dev, "RX delivered pre skb(%p), %u bytes\n", 192 - i1480u->rx_skb, i1480u->rx_skb->len); 193 - d_dump(7, dev, i1480u->rx_skb->data, i1480u->rx_skb->len); 194 195 should_parse = wlp_receive_frame(dev, &i1480u->wlp, i1480u->rx_skb, 195 196 &i1480u->rx_srcaddr); 196 197 if (!should_parse) 197 198 goto out; 198 199 i1480u->rx_skb->protocol = eth_type_trans(i1480u->rx_skb, net_dev); 199 - d_printf(5, dev, "RX delivered skb(%p), %u bytes\n", 200 - i1480u->rx_skb, i1480u->rx_skb->len); 201 - d_dump(7, dev, i1480u->rx_skb->data, 202 - i1480u->rx_skb->len > 72 ? 72 : i1480u->rx_skb->len); 203 200 i1480u->stats.rx_packets++; 204 201 i1480u->stats.rx_bytes += i1480u->rx_untd_pkt_size; 205 202 net_dev->last_rx = jiffies; ··· 205 216 } 206 217 207 218 208 - /** 219 + /* 209 220 * Process a buffer of data received from the USB RX endpoint 210 221 * 211 222 * First fragment arrives with next or last fragment. All other fragments ··· 393 404 } 394 405 395 406 396 - /** 407 + /* 397 408 * Called when an RX URB has finished receiving or has found some kind 398 409 * of error condition. 399 410 *
+8 -58
drivers/uwb/i1480/i1480u-wlp/tx.c
··· 55 55 */ 56 56 57 57 #include "i1480u-wlp.h" 58 - #define D_LOCAL 5 59 - #include <linux/uwb/debug.h> 60 58 61 59 enum { 62 60 /* This is only for Next and Last TX packets */ ··· 62 64 - sizeof(struct untd_hdr_rst), 63 65 }; 64 66 65 - /** Free resources allocated to a i1480u tx context. */ 67 + /* Free resources allocated to a i1480u tx context. */ 66 68 static 67 69 void i1480u_tx_free(struct i1480u_tx *wtx) 68 70 { ··· 97 99 } 98 100 99 101 100 - /** 102 + /* 101 103 * Callback for a completed tx USB URB. 102 104 * 103 105 * TODO: ··· 147 149 <= i1480u->tx_inflight.threshold 148 150 && netif_queue_stopped(net_dev) 149 151 && i1480u->tx_inflight.threshold != 0) { 150 - if (d_test(2) && printk_ratelimit()) 151 - d_printf(2, dev, "Restart queue. \n"); 152 152 netif_start_queue(net_dev); 153 153 atomic_inc(&i1480u->tx_inflight.restart_count); 154 154 } ··· 154 158 } 155 159 156 160 157 - /** 161 + /* 158 162 * Given a buffer that doesn't fit in a single fragment, create an 159 163 * scatter/gather structure for delivery to the USB pipe. 160 164 * ··· 249 253 /* Now do each remaining fragment */ 250 254 result = -EINVAL; 251 255 while (pl_size_left > 0) { 252 - d_printf(5, NULL, "ITR HDR: pl_size_left %zu buf_itr %zu\n", 253 - pl_size_left, buf_itr - wtx->buf); 254 256 if (buf_itr + sizeof(*untd_hdr_rst) - wtx->buf 255 257 > wtx->buf_size) { 256 258 printk(KERN_ERR "BUG: no space for header\n"); 257 259 goto error_bug; 258 260 } 259 - d_printf(5, NULL, "ITR HDR 2: pl_size_left %zu buf_itr %zu\n", 260 - pl_size_left, buf_itr - wtx->buf); 261 261 untd_hdr_rst = buf_itr; 262 262 buf_itr += sizeof(*untd_hdr_rst); 263 263 if (pl_size_left > i1480u_MAX_PL_SIZE) { ··· 263 271 frg_pl_size = pl_size_left; 264 272 untd_hdr_set_type(&untd_hdr_rst->hdr, i1480u_PKT_FRAG_LST); 265 273 } 266 - d_printf(5, NULL, 267 - "ITR PL: pl_size_left %zu buf_itr %zu frg_pl_size %zu\n", 268 - pl_size_left, buf_itr - wtx->buf, frg_pl_size); 269 274 untd_hdr_set_rx_tx(&untd_hdr_rst->hdr, 0); 270 275 untd_hdr_rst->hdr.len = cpu_to_le16(frg_pl_size); 271 276 untd_hdr_rst->padding = 0; ··· 275 286 buf_itr += frg_pl_size; 276 287 pl_itr += frg_pl_size; 277 288 pl_size_left -= frg_pl_size; 278 - d_printf(5, NULL, 279 - "ITR PL 2: pl_size_left %zu buf_itr %zu frg_pl_size %zu\n", 280 - pl_size_left, buf_itr - wtx->buf, frg_pl_size); 281 289 } 282 290 dev_kfree_skb_irq(skb); 283 291 return 0; ··· 294 308 } 295 309 296 310 297 - /** 311 + /* 298 312 * Given a buffer that fits in a single fragment, fill out a @wtx 299 313 * struct for transmitting it down the USB pipe. 300 314 * ··· 332 346 } 333 347 334 348 335 - /** 349 + /* 336 350 * Given a skb to transmit, massage it to become palatable for the TX pipe 337 351 * 338 352 * This will break the buffer in chunks smaller than ··· 411 425 return NULL; 412 426 } 413 427 414 - /** 428 + /* 415 429 * Actual fragmentation and transmission of frame 416 430 * 417 431 * @wlp: WLP substack data structure ··· 433 447 struct i1480u_tx *wtx; 434 448 struct wlp_tx_hdr *wlp_tx_hdr; 435 449 static unsigned char dev_bcast[2] = { 0xff, 0xff }; 436 - #if 0 437 - int lockup = 50; 438 - #endif 439 450 440 - d_fnstart(6, dev, "(skb %p (%u), net_dev %p)\n", skb, skb->len, 441 - net_dev); 442 451 BUG_ON(i1480u->wlp.rc == NULL); 443 452 if ((net_dev->flags & IFF_UP) == 0) 444 453 goto out; 445 454 result = -EBUSY; 446 455 if (atomic_read(&i1480u->tx_inflight.count) >= i1480u->tx_inflight.max) { 447 - if (d_test(2) && printk_ratelimit()) 448 - d_printf(2, dev, "Max frames in flight " 449 - "stopping queue.\n"); 450 456 netif_stop_queue(net_dev); 451 457 goto error_max_inflight; 452 458 } ··· 467 489 wlp_tx_hdr_set_delivery_id_type(wlp_tx_hdr, i1480u->options.pca_base_priority); 468 490 } 469 491 470 - #if 0 471 - dev_info(dev, "TX delivering skb -> USB, %zu bytes\n", skb->len); 472 - dump_bytes(dev, skb->data, skb->len > 72 ? 72 : skb->len); 473 - #endif 474 - #if 0 475 - /* simulates a device lockup after every lockup# packets */ 476 - if (lockup && ((i1480u->stats.tx_packets + 1) % lockup) == 0) { 477 - /* Simulate a dropped transmit interrupt */ 478 - net_dev->trans_start = jiffies; 479 - netif_stop_queue(net_dev); 480 - dev_err(dev, "Simulate lockup at %ld\n", jiffies); 481 - return result; 482 - } 483 - #endif 484 - 485 492 result = usb_submit_urb(wtx->urb, GFP_ATOMIC); /* Go baby */ 486 493 if (result < 0) { 487 494 dev_err(dev, "TX: cannot submit URB: %d\n", result); ··· 476 513 } 477 514 atomic_inc(&i1480u->tx_inflight.count); 478 515 net_dev->trans_start = jiffies; 479 - d_fnend(6, dev, "(skb %p (%u), net_dev %p) = %d\n", skb, skb->len, 480 - net_dev, result); 481 516 return result; 482 517 483 518 error_tx_urb_submit: ··· 483 522 error_wtx_alloc: 484 523 error_max_inflight: 485 524 out: 486 - d_fnend(6, dev, "(skb %p (%u), net_dev %p) = %d\n", skb, skb->len, 487 - net_dev, result); 488 525 return result; 489 526 } 490 527 491 528 492 - /** 529 + /* 493 530 * Transmit an skb Called when an skbuf has to be transmitted 494 531 * 495 532 * The skb is first passed to WLP substack to ensure this is a valid ··· 510 551 struct device *dev = &i1480u->usb_iface->dev; 511 552 struct uwb_dev_addr dst; 512 553 513 - d_fnstart(6, dev, "(skb %p (%u), net_dev %p)\n", skb, skb->len, 514 - net_dev); 515 - BUG_ON(i1480u->wlp.rc == NULL); 516 554 if ((net_dev->flags & IFF_UP) == 0) 517 555 goto error; 518 556 result = wlp_prepare_tx_frame(dev, &i1480u->wlp, skb, &dst); ··· 518 562 "Dropping packet.\n", result); 519 563 goto error; 520 564 } else if (result == 1) { 521 - d_printf(6, dev, "WLP will transmit frame. \n"); 522 565 /* trans_start time will be set when WLP actually transmits 523 566 * the frame */ 524 567 goto out; 525 568 } 526 - d_printf(6, dev, "Transmitting frame. \n"); 527 569 result = i1480u_xmit_frame(&i1480u->wlp, skb, &dst); 528 570 if (result < 0) { 529 571 dev_err(dev, "Frame TX failed (%d).\n", result); 530 572 goto error; 531 573 } 532 - d_fnend(6, dev, "(skb %p (%u), net_dev %p) = %d\n", skb, skb->len, 533 - net_dev, result); 534 574 return NETDEV_TX_OK; 535 575 error: 536 576 dev_kfree_skb_any(skb); 537 577 i1480u->stats.tx_dropped++; 538 578 out: 539 - d_fnend(6, dev, "(skb %p (%u), net_dev %p) = %d\n", skb, skb->len, 540 - net_dev, result); 541 579 return NETDEV_TX_OK; 542 580 } 543 581 544 582 545 - /** 583 + /* 546 584 * Called when a pkt transmission doesn't complete in a reasonable period 547 585 * Device reset may sleep - do it outside of interrupt context (delayed) 548 586 */
+2 -19
drivers/uwb/lc-dev.c
··· 22 22 * 23 23 * FIXME: docs 24 24 */ 25 - 26 25 #include <linux/kernel.h> 27 26 #include <linux/device.h> 28 27 #include <linux/err.h> 29 28 #include <linux/kdev_t.h> 30 29 #include <linux/random.h> 31 30 #include "uwb-internal.h" 32 - 33 - #define D_LOCAL 1 34 - #include <linux/uwb/debug.h> 35 - 36 31 37 32 /* We initialize addresses to 0xff (invalid, as it is bcast) */ 38 33 static inline void uwb_dev_addr_init(struct uwb_dev_addr *addr) ··· 99 104 { 100 105 struct uwb_dev *uwb_dev = to_uwb_dev(dev); 101 106 102 - d_fnstart(4, NULL, "(dev %p uwb_dev %p)\n", dev, uwb_dev); 103 107 uwb_bce_put(uwb_dev->bce); 104 - d_printf(0, &uwb_dev->dev, "uwb_dev %p freed\n", uwb_dev); 105 108 memset(uwb_dev, 0x69, sizeof(*uwb_dev)); 106 109 kfree(uwb_dev); 107 - d_fnend(4, NULL, "(dev %p uwb_dev %p) = void\n", dev, uwb_dev); 108 110 } 109 111 110 112 /* ··· 267 275 */ 268 276 static int __uwb_dev_sys_add(struct uwb_dev *uwb_dev, struct device *parent_dev) 269 277 { 270 - int result; 271 278 struct device *dev; 272 - 273 - d_fnstart(4, NULL, "(uwb_dev %p parent_dev %p)\n", uwb_dev, parent_dev); 274 - BUG_ON(parent_dev == NULL); 275 279 276 280 dev = &uwb_dev->dev; 277 281 /* Device sysfs files are only useful for neighbor devices not ··· 277 289 dev->parent = parent_dev; 278 290 dev_set_drvdata(dev, uwb_dev); 279 291 280 - result = device_add(dev); 281 - d_fnend(4, NULL, "(uwb_dev %p parent_dev %p) = %d\n", uwb_dev, parent_dev, result); 282 - return result; 292 + return device_add(dev); 283 293 } 284 294 285 295 286 296 static void __uwb_dev_sys_rm(struct uwb_dev *uwb_dev) 287 297 { 288 - d_fnstart(4, NULL, "(uwb_dev %p)\n", uwb_dev); 289 298 dev_set_drvdata(&uwb_dev->dev, NULL); 290 299 device_del(&uwb_dev->dev); 291 - d_fnend(4, NULL, "(uwb_dev %p) = void\n", uwb_dev); 292 300 } 293 301 294 302 ··· 368 384 struct device *dev = &uwb_dev->dev; 369 385 char macbuf[UWB_ADDR_STRSIZE], devbuf[UWB_ADDR_STRSIZE]; 370 386 371 - d_fnstart(3, NULL, "(dev %p [uwb_dev %p], uwb_rc %p)\n", dev, uwb_dev, rc); 372 387 uwb_mac_addr_print(macbuf, sizeof(macbuf), &uwb_dev->mac_addr); 373 388 uwb_dev_addr_print(devbuf, sizeof(devbuf), &uwb_dev->dev_addr); 374 389 dev_info(dev, "uwb device (mac %s dev %s) disconnected from %s %s\n", ··· 376 393 rc ? dev_name(rc->uwb_dev.dev.parent) : ""); 377 394 uwb_dev_rm(uwb_dev); 378 395 uwb_dev_put(uwb_dev); /* for the creation in _onair() */ 379 - d_fnend(3, NULL, "(dev %p [uwb_dev %p], uwb_rc %p) = 0\n", dev, uwb_dev, rc); 396 + 380 397 return 0; 381 398 } 382 399
-7
drivers/uwb/neh.c
··· 86 86 #include <linux/err.h> 87 87 88 88 #include "uwb-internal.h" 89 - #define D_LOCAL 0 90 - #include <linux/uwb/debug.h> 91 89 92 90 /* 93 91 * UWB Radio Controller Notification/Event Handle ··· 477 479 size_t size, real_size, event_size; 478 480 int needtofree; 479 481 480 - d_fnstart(3, dev, "(rc %p buf %p %zu buf_size)\n", rc, buf, buf_size); 481 - d_printf(2, dev, "groking event block: %zu bytes\n", buf_size); 482 482 itr = buf; 483 483 size = buf_size; 484 484 while (size > 0) { ··· 524 528 525 529 itr += real_size; 526 530 size -= real_size; 527 - d_printf(2, dev, "consumed %zd bytes, %zu left\n", 528 - event_size, size); 529 531 } 530 - d_fnend(3, dev, "(rc %p buf %p %zu buf_size) = void\n", rc, buf, buf_size); 531 532 } 532 533 EXPORT_SYMBOL_GPL(uwb_rc_neh_grok); 533 534
-2
drivers/uwb/reset.c
··· 32 32 #include <linux/err.h> 33 33 34 34 #include "uwb-internal.h" 35 - #define D_LOCAL 0 36 - #include <linux/uwb/debug.h> 37 35 38 36 /** 39 37 * Command result codes (WUSB1.0[T8-69])
-8
drivers/uwb/umc-dev.c
··· 7 7 */ 8 8 #include <linux/kernel.h> 9 9 #include <linux/uwb/umc.h> 10 - #define D_LOCAL 0 11 - #include <linux/uwb/debug.h> 12 10 13 11 static void umc_device_release(struct device *dev) 14 12 { ··· 51 53 { 52 54 int err; 53 55 54 - d_fnstart(3, &umc->dev, "(umc_dev %p)\n", umc); 55 - 56 56 err = request_resource(umc->resource.parent, &umc->resource); 57 57 if (err < 0) { 58 58 dev_err(&umc->dev, "can't allocate resource range " ··· 64 68 err = device_register(&umc->dev); 65 69 if (err < 0) 66 70 goto error_device_register; 67 - d_fnend(3, &umc->dev, "(umc_dev %p) = 0\n", umc); 68 71 return 0; 69 72 70 73 error_device_register: 71 74 release_resource(&umc->resource); 72 75 error_request_resource: 73 - d_fnend(3, &umc->dev, "(umc_dev %p) = %d\n", umc, err); 74 76 return err; 75 77 } 76 78 EXPORT_SYMBOL_GPL(umc_device_register); ··· 88 94 if (!umc) 89 95 return; 90 96 dev = get_device(&umc->dev); 91 - d_fnstart(3, dev, "(umc_dev %p)\n", umc); 92 97 device_unregister(&umc->dev); 93 98 release_resource(&umc->resource); 94 - d_fnend(3, dev, "(umc_dev %p) = void\n", umc); 95 99 put_device(dev); 96 100 } 97 101 EXPORT_SYMBOL_GPL(umc_device_unregister);
+30 -44
drivers/uwb/uwbd.c
··· 68 68 * 69 69 * Handler functions are called normally uwbd_evt_handle_*(). 70 70 */ 71 - 72 71 #include <linux/kthread.h> 73 72 #include <linux/module.h> 74 73 #include <linux/freezer.h> 74 + 75 75 #include "uwb-internal.h" 76 76 77 - #define D_LOCAL 1 78 - #include <linux/uwb/debug.h> 79 - 80 - 81 - /** 77 + /* 82 78 * UWBD Event handler function signature 83 79 * 84 80 * Return !0 if the event needs not to be freed (ie the handler ··· 97 101 const char *name; 98 102 }; 99 103 100 - /** Table of handlers for and properties of the UWBD Radio Control Events */ 101 - static 102 - struct uwbd_event uwbd_events[] = { 104 + /* Table of handlers for and properties of the UWBD Radio Control Events */ 105 + static struct uwbd_event uwbd_urc_events[] = { 103 106 [UWB_RC_EVT_IE_RCV] = { 104 107 .handler = uwbd_evt_handle_rc_ie_rcv, 105 108 .name = "IE_RECEIVED" ··· 141 146 size_t size; 142 147 }; 143 148 144 - #define UWBD_EVT_TYPE_HANDLER(n,a) { \ 145 - .name = (n), \ 146 - .uwbd_events = (a), \ 147 - .size = sizeof(a)/sizeof((a)[0]) \ 148 - } 149 - 150 - 151 - /** Table of handlers for each UWBD Event type. */ 152 - static 153 - struct uwbd_evt_type_handler uwbd_evt_type_handlers[] = { 154 - [UWB_RC_CET_GENERAL] = UWBD_EVT_TYPE_HANDLER("RC", uwbd_events) 149 + /* Table of handlers for each UWBD Event type. */ 150 + static struct uwbd_evt_type_handler uwbd_urc_evt_type_handlers[] = { 151 + [UWB_RC_CET_GENERAL] = { 152 + .name = "URC", 153 + .uwbd_events = uwbd_urc_events, 154 + .size = ARRAY_SIZE(uwbd_urc_events), 155 + }, 155 156 }; 156 - 157 - static const 158 - size_t uwbd_evt_type_handlers_len = 159 - sizeof(uwbd_evt_type_handlers) / sizeof(uwbd_evt_type_handlers[0]); 160 157 161 158 static const struct uwbd_event uwbd_message_handlers[] = { 162 159 [UWB_EVT_MSG_RESET] = { ··· 157 170 }, 158 171 }; 159 172 160 - /** 173 + /* 161 174 * Handle an URC event passed to the UWB Daemon 162 175 * 163 176 * @evt: the event to handle ··· 177 190 static 178 191 int uwbd_event_handle_urc(struct uwb_event *evt) 179 192 { 193 + int result = -EINVAL; 180 194 struct uwbd_evt_type_handler *type_table; 181 195 uwbd_evt_handler_f handler; 182 196 u8 type, context; ··· 187 199 event = le16_to_cpu(evt->notif.rceb->wEvent); 188 200 context = evt->notif.rceb->bEventContext; 189 201 190 - if (type > uwbd_evt_type_handlers_len) { 191 - printk(KERN_ERR "UWBD: event type %u: unknown (too high)\n", type); 192 - return -EINVAL; 193 - } 194 - type_table = &uwbd_evt_type_handlers[type]; 195 - if (type_table->uwbd_events == NULL) { 196 - printk(KERN_ERR "UWBD: event type %u: unknown\n", type); 197 - return -EINVAL; 198 - } 199 - if (event > type_table->size) { 200 - printk(KERN_ERR "UWBD: event %s[%u]: unknown (too high)\n", 201 - type_table->name, event); 202 - return -EINVAL; 203 - } 202 + if (type > ARRAY_SIZE(uwbd_urc_evt_type_handlers)) 203 + goto out; 204 + type_table = &uwbd_urc_evt_type_handlers[type]; 205 + if (type_table->uwbd_events == NULL) 206 + goto out; 207 + if (event > type_table->size) 208 + goto out; 204 209 handler = type_table->uwbd_events[event].handler; 205 - if (handler == NULL) { 206 - printk(KERN_ERR "UWBD: event %s[%u]: unknown\n", type_table->name, event); 207 - return -EINVAL; 208 - } 209 - return (*handler)(evt); 210 + if (handler == NULL) 211 + goto out; 212 + 213 + result = (*handler)(evt); 214 + out: 215 + if (result < 0) 216 + dev_err(&evt->rc->uwb_dev.dev, 217 + "UWBD: event 0x%02x/%04x/%02x, handling failed: %d\n", 218 + type, event, context, result); 219 + return result; 210 220 } 211 221 212 222 static void uwbd_event_handle_message(struct uwb_event *evt)
+9 -44
drivers/uwb/whc-rc.c
··· 48 48 #include <linux/uwb.h> 49 49 #include <linux/uwb/whci.h> 50 50 #include <linux/uwb/umc.h> 51 - #include "uwb-internal.h" 52 51 53 - #define D_LOCAL 0 54 - #include <linux/uwb/debug.h> 52 + #include "uwb-internal.h" 55 53 56 54 /** 57 55 * Descriptor for an instance of the UWB Radio Control Driver that ··· 95 97 struct device *dev = &whcrc->umc_dev->dev; 96 98 u32 urccmd; 97 99 98 - d_fnstart(3, dev, "(%p, %p, %zu)\n", uwb_rc, cmd, cmd_size); 99 - might_sleep(); 100 - 101 - if (cmd_size >= 4096) { 102 - result = -E2BIG; 103 - goto error; 104 - } 100 + if (cmd_size >= 4096) 101 + return -EINVAL; 105 102 106 103 /* 107 104 * If the URC is halted, then the hardware has reset itself. ··· 107 114 if (le_readl(whcrc->rc_base + URCSTS) & URCSTS_HALTED) { 108 115 dev_err(dev, "requesting reset of halted radio controller\n"); 109 116 uwb_rc_reset_all(uwb_rc); 110 - result = -EIO; 111 - goto error; 117 + return -EIO; 112 118 } 113 119 114 120 result = wait_event_timeout(whcrc->cmd_wq, 115 121 !(le_readl(whcrc->rc_base + URCCMD) & URCCMD_ACTIVE), HZ/2); 116 122 if (result == 0) { 117 123 dev_err(dev, "device is not ready to execute commands\n"); 118 - result = -ETIMEDOUT; 119 - goto error; 124 + return -ETIMEDOUT; 120 125 } 121 126 122 127 memmove(whcrc->cmd_buf, cmd, cmd_size); ··· 127 136 whcrc->rc_base + URCCMD); 128 137 spin_unlock(&whcrc->irq_lock); 129 138 130 - error: 131 - d_fnend(3, dev, "(%p, %p, %zu) = %d\n", 132 - uwb_rc, cmd, cmd_size, result); 133 - return result; 139 + return 0; 134 140 } 135 141 136 142 static int whcrc_reset(struct uwb_rc *rc) ··· 154 166 static 155 167 void whcrc_enable_events(struct whcrc *whcrc) 156 168 { 157 - struct device *dev = &whcrc->umc_dev->dev; 158 169 u32 urccmd; 159 - 160 - d_fnstart(4, dev, "(whcrc %p)\n", whcrc); 161 170 162 171 le_writeq(whcrc->evt_dma_buf, whcrc->rc_base + URCEVTADDR); 163 172 ··· 162 177 urccmd = le_readl(whcrc->rc_base + URCCMD) & ~URCCMD_ACTIVE; 163 178 le_writel(urccmd | URCCMD_EARV, whcrc->rc_base + URCCMD); 164 179 spin_unlock(&whcrc->irq_lock); 165 - 166 - d_fnend(4, dev, "(whcrc %p) = void\n", whcrc); 167 180 } 168 181 169 182 static void whcrc_event_work(struct work_struct *work) 170 183 { 171 184 struct whcrc *whcrc = container_of(work, struct whcrc, event_work); 172 - struct device *dev = &whcrc->umc_dev->dev; 173 185 size_t size; 174 186 u64 urcevtaddr; 175 187 176 188 urcevtaddr = le_readq(whcrc->rc_base + URCEVTADDR); 177 189 size = urcevtaddr & URCEVTADDR_OFFSET_MASK; 178 - 179 - d_printf(3, dev, "received %zu octet event\n", size); 180 - d_dump(4, dev, whcrc->evt_buf, size > 32 ? 32 : size); 181 190 182 191 uwb_rc_neh_grok(whcrc->uwb_rc, whcrc->evt_buf, size); 183 192 whcrc_enable_events(whcrc); ··· 195 216 return IRQ_NONE; 196 217 le_writel(urcsts & URCSTS_INT_MASK, whcrc->rc_base + URCSTS); 197 218 198 - d_printf(4, dev, "acked 0x%08x, urcsts 0x%08x\n", 199 - le_readl(whcrc->rc_base + URCSTS), urcsts); 200 - 201 219 if (urcsts & URCSTS_HSE) { 202 220 dev_err(dev, "host system error -- hardware halted\n"); 203 221 /* FIXME: do something sensible here */ 204 222 goto out; 205 223 } 206 - if (urcsts & URCSTS_ER) { 207 - d_printf(3, dev, "ER: event ready\n"); 224 + if (urcsts & URCSTS_ER) 208 225 schedule_work(&whcrc->event_work); 209 - } 210 - if (urcsts & URCSTS_RCI) { 211 - d_printf(3, dev, "RCI: ready to execute another command\n"); 226 + if (urcsts & URCSTS_RCI) 212 227 wake_up_all(&whcrc->cmd_wq); 213 - } 214 228 out: 215 229 return IRQ_HANDLED; 216 230 } ··· 222 250 whcrc->area = umc_dev->resource.start; 223 251 whcrc->rc_len = umc_dev->resource.end - umc_dev->resource.start + 1; 224 252 result = -EBUSY; 225 - if (request_mem_region(whcrc->area, whcrc->rc_len, KBUILD_MODNAME) 226 - == NULL) { 253 + if (request_mem_region(whcrc->area, whcrc->rc_len, KBUILD_MODNAME) == NULL) { 227 254 dev_err(dev, "can't request URC region (%zu bytes @ 0x%lx): %d\n", 228 255 whcrc->rc_len, whcrc->area, result); 229 256 goto error_request_region; ··· 257 286 dev_err(dev, "Can't allocate evt transfer buffer\n"); 258 287 goto error_evt_buffer; 259 288 } 260 - d_printf(3, dev, "UWB RC Interface: %zu bytes at 0x%p, irq %u\n", 261 - whcrc->rc_len, whcrc->rc_base, umc_dev->irq); 262 289 return 0; 263 290 264 291 error_evt_buffer: ··· 365 396 struct whcrc *whcrc; 366 397 struct device *dev = &umc_dev->dev; 367 398 368 - d_fnstart(3, dev, "(umc_dev %p)\n", umc_dev); 369 399 result = -ENOMEM; 370 400 uwb_rc = uwb_rc_alloc(); 371 401 if (uwb_rc == NULL) { ··· 396 428 if (result < 0) 397 429 goto error_rc_add; 398 430 umc_set_drvdata(umc_dev, whcrc); 399 - d_fnend(3, dev, "(umc_dev %p) = 0\n", umc_dev); 400 431 return 0; 401 432 402 433 error_rc_add: ··· 405 438 error_alloc: 406 439 uwb_rc_put(uwb_rc); 407 440 error_rc_alloc: 408 - d_fnend(3, dev, "(umc_dev %p) = %d\n", umc_dev, result); 409 441 return result; 410 442 } 411 443 ··· 427 461 whcrc_release_rc_umc(whcrc); 428 462 kfree(whcrc); 429 463 uwb_rc_put(uwb_rc); 430 - d_printf(1, &umc_dev->dev, "freed whcrc %p\n", whcrc); 431 464 } 432 465 433 466 static int whcrc_pre_reset(struct umc_dev *umc)
+2 -31
drivers/uwb/wlp/eda.c
··· 51 51 * the tag and address of the transmitting neighbor. 52 52 */ 53 53 54 - #define D_LOCAL 5 55 54 #include <linux/netdevice.h> 56 - #include <linux/uwb/debug.h> 57 55 #include <linux/etherdevice.h> 58 56 #include <linux/wlp.h> 59 57 #include "wlp-internal.h" ··· 302 304 { 303 305 int result = 0; 304 306 struct wlp *wlp = container_of(eda, struct wlp, eda); 305 - struct device *dev = &wlp->rc->uwb_dev.dev; 306 307 struct wlp_eda_node *itr; 307 308 unsigned long flags; 308 309 int found = 0; ··· 310 313 list_for_each_entry(itr, &eda->cache, list_node) { 311 314 if (!memcmp(itr->virt_addr, virt_addr, 312 315 sizeof(itr->virt_addr))) { 313 - d_printf(6, dev, "EDA: looking for " 314 - "%02x:%02x:%02x:%02x:%02x:%02x hit %02x:%02x " 315 - "wss %p tag 0x%02x state %u\n", 316 - virt_addr[0], virt_addr[1], 317 - virt_addr[2], virt_addr[3], 318 - virt_addr[4], virt_addr[5], 319 - itr->dev_addr.data[1], 320 - itr->dev_addr.data[0], itr->wss, 321 - itr->tag, itr->state); 322 316 result = (*function)(wlp, itr, priv); 323 317 *dev_addr = itr->dev_addr; 324 318 found = 1; 325 319 break; 326 - } else 327 - d_printf(6, dev, "EDA: looking for " 328 - "%02x:%02x:%02x:%02x:%02x:%02x " 329 - "against " 330 - "%02x:%02x:%02x:%02x:%02x:%02x miss\n", 331 - virt_addr[0], virt_addr[1], 332 - virt_addr[2], virt_addr[3], 333 - virt_addr[4], virt_addr[5], 334 - itr->virt_addr[0], itr->virt_addr[1], 335 - itr->virt_addr[2], itr->virt_addr[3], 336 - itr->virt_addr[4], itr->virt_addr[5]); 320 + } 337 321 } 338 - if (!found) { 339 - if (printk_ratelimit()) 340 - dev_err(dev, "EDA: Eth addr %02x:%02x:%02x" 341 - ":%02x:%02x:%02x not found.\n", 342 - virt_addr[0], virt_addr[1], 343 - virt_addr[2], virt_addr[3], 344 - virt_addr[4], virt_addr[5]); 322 + if (!found) 345 323 result = -ENODEV; 346 - } 347 324 spin_unlock_irqrestore(&eda->lock, flags); 348 325 return result; 349 326 }
+8 -173
drivers/uwb/wlp/messages.c
··· 24 24 */ 25 25 26 26 #include <linux/wlp.h> 27 - #define D_LOCAL 6 28 - #include <linux/uwb/debug.h> 27 + 29 28 #include "wlp-internal.h" 30 29 31 30 static ··· 104 105 #define wlp_set(type, type_code, name) \ 105 106 static size_t wlp_set_##name(struct wlp_attr_##name *attr, type value) \ 106 107 { \ 107 - d_fnstart(6, NULL, "(attribute %p)\n", attr); \ 108 108 wlp_set_attr_hdr(&attr->hdr, type_code, \ 109 109 sizeof(*attr) - sizeof(struct wlp_attr_hdr)); \ 110 110 attr->name = value; \ 111 - d_dump(6, NULL, attr, sizeof(*attr)); \ 112 - d_fnend(6, NULL, "(attribute %p)\n", attr); \ 113 111 return sizeof(*attr); \ 114 112 } 115 113 116 114 #define wlp_pset(type, type_code, name) \ 117 115 static size_t wlp_set_##name(struct wlp_attr_##name *attr, type value) \ 118 116 { \ 119 - d_fnstart(6, NULL, "(attribute %p)\n", attr); \ 120 117 wlp_set_attr_hdr(&attr->hdr, type_code, \ 121 118 sizeof(*attr) - sizeof(struct wlp_attr_hdr)); \ 122 119 attr->name = *value; \ 123 - d_dump(6, NULL, attr, sizeof(*attr)); \ 124 - d_fnend(6, NULL, "(attribute %p)\n", attr); \ 125 120 return sizeof(*attr); \ 126 121 } 127 122 ··· 132 139 static size_t wlp_set_##name(struct wlp_attr_##name *attr, type value, \ 133 140 size_t len) \ 134 141 { \ 135 - d_fnstart(6, NULL, "(attribute %p)\n", attr); \ 136 142 wlp_set_attr_hdr(&attr->hdr, type_code, len); \ 137 143 memcpy(attr->name, value, len); \ 138 - d_dump(6, NULL, attr, sizeof(*attr) + len); \ 139 - d_fnend(6, NULL, "(attribute %p)\n", attr); \ 140 144 return sizeof(*attr) + len; \ 141 145 } 142 146 ··· 172 182 size_t datalen; 173 183 void *ptr = attr->wss_info; 174 184 size_t used = sizeof(*attr); 175 - d_fnstart(6, NULL, "(attribute %p)\n", attr); 185 + 176 186 datalen = sizeof(struct wlp_wss_info) + strlen(wss->name); 177 187 wlp_set_attr_hdr(&attr->hdr, WLP_ATTR_WSS_INFO, datalen); 178 188 used = wlp_set_wssid(ptr, &wss->wssid); ··· 180 190 used += wlp_set_accept_enrl(ptr + used, wss->accept_enroll); 181 191 used += wlp_set_wss_sec_status(ptr + used, wss->secure_status); 182 192 used += wlp_set_wss_bcast(ptr + used, &wss->bcast); 183 - d_dump(6, NULL, attr, sizeof(*attr) + datalen); 184 - d_fnend(6, NULL, "(attribute %p, used %d)\n", 185 - attr, (int)(sizeof(*attr) + used)); 186 193 return sizeof(*attr) + used; 187 194 } 188 195 ··· 401 414 size_t used = 0; 402 415 ssize_t result = -EINVAL; 403 416 404 - d_printf(6, dev, "WLP: WSS info: Retrieving WSS name\n"); 405 417 result = wlp_get_wss_name(wlp, ptr, info->name, buflen); 406 418 if (result < 0) { 407 419 dev_err(dev, "WLP: unable to obtain WSS name from " ··· 408 422 goto error_parse; 409 423 } 410 424 used += result; 411 - d_printf(6, dev, "WLP: WSS info: Retrieving accept enroll\n"); 425 + 412 426 result = wlp_get_accept_enrl(wlp, ptr + used, &info->accept_enroll, 413 427 buflen - used); 414 428 if (result < 0) { ··· 423 437 goto error_parse; 424 438 } 425 439 used += result; 426 - d_printf(6, dev, "WLP: WSS info: Retrieving secure status\n"); 440 + 427 441 result = wlp_get_wss_sec_status(wlp, ptr + used, &info->sec_status, 428 442 buflen - used); 429 443 if (result < 0) { ··· 438 452 goto error_parse; 439 453 } 440 454 used += result; 441 - d_printf(6, dev, "WLP: WSS info: Retrieving broadcast\n"); 455 + 442 456 result = wlp_get_wss_bcast(wlp, ptr + used, &info->bcast, 443 457 buflen - used); 444 458 if (result < 0) { ··· 516 530 len = result; 517 531 used = sizeof(*attr); 518 532 ptr = attr; 519 - d_printf(6, dev, "WLP: WSS info: Retrieving WSSID\n"); 533 + 520 534 result = wlp_get_wssid(wlp, ptr + used, wssid, buflen - used); 521 535 if (result < 0) { 522 536 dev_err(dev, "WLP: unable to obtain WSSID from WSS info.\n"); ··· 539 553 goto out; 540 554 } 541 555 result = used; 542 - d_printf(6, dev, "WLP: Successfully parsed WLP information " 543 - "attribute. used %zu bytes\n", used); 544 556 out: 545 557 return result; 546 558 } ··· 582 598 struct wlp_wssid_e *wssid_e; 583 599 char buf[WLP_WSS_UUID_STRSIZE]; 584 600 585 - d_fnstart(6, dev, "wlp %p, attr %p, neighbor %p, wss %p, buflen %d \n", 586 - wlp, attr, neighbor, wss, (int)buflen); 587 601 if (buflen < 0) 588 602 goto out; 589 603 ··· 620 638 wss->accept_enroll = wss_info.accept_enroll; 621 639 wss->state = WLP_WSS_STATE_PART_ENROLLED; 622 640 wlp_wss_uuid_print(buf, sizeof(buf), &wssid); 623 - d_printf(2, dev, "WLP: Found WSS %s. Enrolling.\n", 624 - buf); 641 + dev_dbg(dev, "WLP: Found WSS %s. Enrolling.\n", buf); 625 642 } else { 626 643 wssid_e = wlp_create_wssid_e(wlp, neighbor); 627 644 if (wssid_e == NULL) { ··· 641 660 if (result < 0 && !enroll) /* this was a discovery */ 642 661 wlp_remove_neighbor_tmp_info(neighbor); 643 662 out: 644 - d_fnend(6, dev, "wlp %p, attr %p, neighbor %p, wss %p, buflen %d, " 645 - "result %d \n", wlp, attr, neighbor, wss, (int)buflen, 646 - (int)result); 647 663 return result; 648 664 649 665 } ··· 696 718 struct sk_buff *_skb; 697 719 void *d1_itr; 698 720 699 - d_fnstart(6, dev, "wlp %p\n", wlp); 700 721 if (wlp->dev_info == NULL) { 701 722 result = __wlp_setup_device_info(wlp); 702 723 if (result < 0) { ··· 705 728 } 706 729 } 707 730 info = wlp->dev_info; 708 - d_printf(6, dev, "Local properties:\n" 709 - "Device name (%d bytes): %s\n" 710 - "Model name (%d bytes): %s\n" 711 - "Manufacturer (%d bytes): %s\n" 712 - "Model number (%d bytes): %s\n" 713 - "Serial number (%d bytes): %s\n" 714 - "Primary device type: \n" 715 - " Category: %d \n" 716 - " OUI: %02x:%02x:%02x \n" 717 - " OUI Subdivision: %u \n", 718 - (int)strlen(info->name), info->name, 719 - (int)strlen(info->model_name), info->model_name, 720 - (int)strlen(info->manufacturer), info->manufacturer, 721 - (int)strlen(info->model_nr), info->model_nr, 722 - (int)strlen(info->serial), info->serial, 723 - info->prim_dev_type.category, 724 - info->prim_dev_type.OUI[0], info->prim_dev_type.OUI[1], 725 - info->prim_dev_type.OUI[2], info->prim_dev_type.OUIsubdiv); 726 731 _skb = dev_alloc_skb(sizeof(*_d1) 727 732 + sizeof(struct wlp_attr_uuid_e) 728 733 + sizeof(struct wlp_attr_wss_sel_mthd) ··· 727 768 goto error; 728 769 } 729 770 _d1 = (void *) _skb->data; 730 - d_printf(6, dev, "D1 starts at %p \n", _d1); 731 771 _d1->hdr.mux_hdr = cpu_to_le16(WLP_PROTOCOL_ID); 732 772 _d1->hdr.type = WLP_FRAME_ASSOCIATION; 733 773 _d1->type = WLP_ASSOC_D1; ··· 749 791 used += wlp_set_prim_dev_type(d1_itr + used, &info->prim_dev_type); 750 792 used += wlp_set_wlp_assc_err(d1_itr + used, WLP_ASSOC_ERROR_NONE); 751 793 skb_put(_skb, sizeof(*_d1) + used); 752 - d_printf(6, dev, "D1 message:\n"); 753 - d_dump(6, dev, _d1, sizeof(*_d1) 754 - + sizeof(struct wlp_attr_uuid_e) 755 - + sizeof(struct wlp_attr_wss_sel_mthd) 756 - + sizeof(struct wlp_attr_dev_name) 757 - + strlen(info->name) 758 - + sizeof(struct wlp_attr_manufacturer) 759 - + strlen(info->manufacturer) 760 - + sizeof(struct wlp_attr_model_name) 761 - + strlen(info->model_name) 762 - + sizeof(struct wlp_attr_model_nr) 763 - + strlen(info->model_nr) 764 - + sizeof(struct wlp_attr_serial) 765 - + strlen(info->serial) 766 - + sizeof(struct wlp_attr_prim_dev_type) 767 - + sizeof(struct wlp_attr_wlp_assc_err)); 768 794 *skb = _skb; 769 795 error: 770 - d_fnend(6, dev, "wlp %p, result = %d\n", wlp, result); 771 796 return result; 772 797 } 773 798 ··· 778 837 void *d2_itr; 779 838 size_t mem_needed; 780 839 781 - d_fnstart(6, dev, "wlp %p\n", wlp); 782 840 if (wlp->dev_info == NULL) { 783 841 result = __wlp_setup_device_info(wlp); 784 842 if (result < 0) { ··· 787 847 } 788 848 } 789 849 info = wlp->dev_info; 790 - d_printf(6, dev, "Local properties:\n" 791 - "Device name (%d bytes): %s\n" 792 - "Model name (%d bytes): %s\n" 793 - "Manufacturer (%d bytes): %s\n" 794 - "Model number (%d bytes): %s\n" 795 - "Serial number (%d bytes): %s\n" 796 - "Primary device type: \n" 797 - " Category: %d \n" 798 - " OUI: %02x:%02x:%02x \n" 799 - " OUI Subdivision: %u \n", 800 - (int)strlen(info->name), info->name, 801 - (int)strlen(info->model_name), info->model_name, 802 - (int)strlen(info->manufacturer), info->manufacturer, 803 - (int)strlen(info->model_nr), info->model_nr, 804 - (int)strlen(info->serial), info->serial, 805 - info->prim_dev_type.category, 806 - info->prim_dev_type.OUI[0], info->prim_dev_type.OUI[1], 807 - info->prim_dev_type.OUI[2], info->prim_dev_type.OUIsubdiv); 808 850 mem_needed = sizeof(*_d2) 809 851 + sizeof(struct wlp_attr_uuid_e) 810 852 + sizeof(struct wlp_attr_uuid_r) ··· 814 892 goto error; 815 893 } 816 894 _d2 = (void *) _skb->data; 817 - d_printf(6, dev, "D2 starts at %p \n", _d2); 818 895 _d2->hdr.mux_hdr = cpu_to_le16(WLP_PROTOCOL_ID); 819 896 _d2->hdr.type = WLP_FRAME_ASSOCIATION; 820 897 _d2->type = WLP_ASSOC_D2; ··· 838 917 used += wlp_set_prim_dev_type(d2_itr + used, &info->prim_dev_type); 839 918 used += wlp_set_wlp_assc_err(d2_itr + used, WLP_ASSOC_ERROR_NONE); 840 919 skb_put(_skb, sizeof(*_d2) + used); 841 - d_printf(6, dev, "D2 message:\n"); 842 - d_dump(6, dev, _d2, mem_needed); 843 920 *skb = _skb; 844 921 error: 845 - d_fnend(6, dev, "wlp %p, result = %d\n", wlp, result); 846 922 return result; 847 923 } 848 924 ··· 865 947 struct sk_buff *_skb; 866 948 struct wlp_nonce tmp; 867 949 868 - d_fnstart(6, dev, "wlp %p\n", wlp); 869 950 _skb = dev_alloc_skb(sizeof(*f0)); 870 951 if (_skb == NULL) { 871 952 dev_err(dev, "WLP: Unable to allocate memory for F0 " ··· 872 955 goto error_alloc; 873 956 } 874 957 f0 = (void *) _skb->data; 875 - d_printf(6, dev, "F0 starts at %p \n", f0); 876 958 f0->f0_hdr.hdr.mux_hdr = cpu_to_le16(WLP_PROTOCOL_ID); 877 959 f0->f0_hdr.hdr.type = WLP_FRAME_ASSOCIATION; 878 960 f0->f0_hdr.type = WLP_ASSOC_F0; ··· 885 969 *skb = _skb; 886 970 result = 0; 887 971 error_alloc: 888 - d_fnend(6, dev, "wlp %p, result %d \n", wlp, result); 889 972 return result; 890 973 } 891 974 ··· 1157 1242 enum wlp_wss_sel_mthd sel_mthd = 0; 1158 1243 struct wlp_device_info dev_info; 1159 1244 enum wlp_assc_error assc_err; 1160 - char uuid[WLP_WSS_UUID_STRSIZE]; 1161 1245 struct sk_buff *resp = NULL; 1162 1246 1163 1247 /* Parse D1 frame */ 1164 - d_fnstart(6, dev, "WLP: handle D1 frame. wlp = %p, skb = %p\n", 1165 - wlp, skb); 1166 1248 mutex_lock(&wss->mutex); 1167 1249 mutex_lock(&wlp->mutex); /* to access wlp->uuid */ 1168 1250 memset(&dev_info, 0, sizeof(dev_info)); ··· 1170 1258 kfree_skb(skb); 1171 1259 goto out; 1172 1260 } 1173 - wlp_wss_uuid_print(uuid, sizeof(uuid), &uuid_e); 1174 - d_printf(6, dev, "From D1 frame:\n" 1175 - "UUID-E: %s\n" 1176 - "Selection method: %d\n" 1177 - "Device name (%d bytes): %s\n" 1178 - "Model name (%d bytes): %s\n" 1179 - "Manufacturer (%d bytes): %s\n" 1180 - "Model number (%d bytes): %s\n" 1181 - "Serial number (%d bytes): %s\n" 1182 - "Primary device type: \n" 1183 - " Category: %d \n" 1184 - " OUI: %02x:%02x:%02x \n" 1185 - " OUI Subdivision: %u \n", 1186 - uuid, sel_mthd, 1187 - (int)strlen(dev_info.name), dev_info.name, 1188 - (int)strlen(dev_info.model_name), dev_info.model_name, 1189 - (int)strlen(dev_info.manufacturer), dev_info.manufacturer, 1190 - (int)strlen(dev_info.model_nr), dev_info.model_nr, 1191 - (int)strlen(dev_info.serial), dev_info.serial, 1192 - dev_info.prim_dev_type.category, 1193 - dev_info.prim_dev_type.OUI[0], 1194 - dev_info.prim_dev_type.OUI[1], 1195 - dev_info.prim_dev_type.OUI[2], 1196 - dev_info.prim_dev_type.OUIsubdiv); 1197 1261 1198 1262 kfree_skb(skb); 1199 1263 if (!wlp_uuid_is_set(&wlp->uuid)) { ··· 1204 1316 kfree(frame_ctx); 1205 1317 mutex_unlock(&wlp->mutex); 1206 1318 mutex_unlock(&wss->mutex); 1207 - d_fnend(6, dev, "WLP: handle D1 frame. wlp = %p\n", wlp); 1208 1319 } 1209 1320 1210 1321 /** ··· 1433 1546 void *ptr = skb->data; 1434 1547 size_t len = skb->len; 1435 1548 size_t used; 1436 - char buf[WLP_WSS_UUID_STRSIZE]; 1437 1549 struct wlp_frame_assoc *assoc = ptr; 1438 1550 1439 - d_fnstart(6, dev, "wlp %p, skb %p \n", wlp, skb); 1440 1551 used = sizeof(*assoc); 1441 1552 result = wlp_get_wssid(wlp, ptr + used, wssid, len - used); 1442 1553 if (result < 0) { ··· 1457 1572 wlp_assoc_frame_str(assoc->type)); 1458 1573 goto error_parse; 1459 1574 } 1460 - wlp_wss_uuid_print(buf, sizeof(buf), wssid); 1461 - d_printf(6, dev, "WLP: parsed: WSSID %s, tag 0x%02x, virt " 1462 - "%02x:%02x:%02x:%02x:%02x:%02x \n", buf, *tag, 1463 - virt_addr->data[0], virt_addr->data[1], virt_addr->data[2], 1464 - virt_addr->data[3], virt_addr->data[4], virt_addr->data[5]); 1465 - 1466 1575 error_parse: 1467 - d_fnend(6, dev, "wlp %p, skb %p, result = %d \n", wlp, skb, result); 1468 1576 return result; 1469 1577 } 1470 1578 ··· 1478 1600 } *c; 1479 1601 struct sk_buff *_skb; 1480 1602 1481 - d_fnstart(6, dev, "wlp %p, wss %p \n", wlp, wss); 1482 1603 _skb = dev_alloc_skb(sizeof(*c)); 1483 1604 if (_skb == NULL) { 1484 1605 dev_err(dev, "WLP: Unable to allocate memory for C1/C2 " ··· 1485 1608 goto error_alloc; 1486 1609 } 1487 1610 c = (void *) _skb->data; 1488 - d_printf(6, dev, "C1/C2 starts at %p \n", c); 1489 1611 c->c_hdr.hdr.mux_hdr = cpu_to_le16(WLP_PROTOCOL_ID); 1490 1612 c->c_hdr.hdr.type = WLP_FRAME_ASSOCIATION; 1491 1613 c->c_hdr.type = type; ··· 1492 1616 wlp_set_msg_type(&c->c_hdr.msg_type, type); 1493 1617 wlp_set_wssid(&c->wssid, &wss->wssid); 1494 1618 skb_put(_skb, sizeof(*c)); 1495 - d_printf(6, dev, "C1/C2 message:\n"); 1496 - d_dump(6, dev, c, sizeof(*c)); 1497 1619 *skb = _skb; 1498 1620 result = 0; 1499 1621 error_alloc: 1500 - d_fnend(6, dev, "wlp %p, wss %p, result %d \n", wlp, wss, result); 1501 1622 return result; 1502 1623 } 1503 1624 ··· 1533 1660 } *c; 1534 1661 struct sk_buff *_skb; 1535 1662 1536 - d_fnstart(6, dev, "wlp %p, wss %p \n", wlp, wss); 1537 1663 _skb = dev_alloc_skb(sizeof(*c)); 1538 1664 if (_skb == NULL) { 1539 1665 dev_err(dev, "WLP: Unable to allocate memory for C3/C4 " ··· 1540 1668 goto error_alloc; 1541 1669 } 1542 1670 c = (void *) _skb->data; 1543 - d_printf(6, dev, "C3/C4 starts at %p \n", c); 1544 1671 c->c_hdr.hdr.mux_hdr = cpu_to_le16(WLP_PROTOCOL_ID); 1545 1672 c->c_hdr.hdr.type = WLP_FRAME_ASSOCIATION; 1546 1673 c->c_hdr.type = type; ··· 1549 1678 wlp_set_wss_tag(&c->wss_tag, wss->tag); 1550 1679 wlp_set_wss_virt(&c->wss_virt, &wss->virtual_addr); 1551 1680 skb_put(_skb, sizeof(*c)); 1552 - d_printf(6, dev, "C3/C4 message:\n"); 1553 - d_dump(6, dev, c, sizeof(*c)); 1554 1681 *skb = _skb; 1555 1682 result = 0; 1556 1683 error_alloc: 1557 - d_fnend(6, dev, "wlp %p, wss %p, result %d \n", wlp, wss, result); 1558 1684 return result; 1559 1685 } 1560 1686 ··· 1577 1709 struct device *dev = &wlp->rc->uwb_dev.dev; \ 1578 1710 int result; \ 1579 1711 struct sk_buff *skb = NULL; \ 1580 - d_fnstart(6, dev, "wlp %p, wss %p, neighbor: %02x:%02x\n", \ 1581 - wlp, wss, dev_addr->data[1], dev_addr->data[0]); \ 1582 - d_printf(6, dev, "WLP: Constructing %s frame. \n", \ 1583 - wlp_assoc_frame_str(id)); \ 1712 + \ 1584 1713 /* Build the frame */ \ 1585 1714 result = wlp_build_assoc_##type(wlp, wss, &skb); \ 1586 1715 if (result < 0) { \ ··· 1586 1721 goto error_build_assoc; \ 1587 1722 } \ 1588 1723 /* Send the frame */ \ 1589 - d_printf(6, dev, "Transmitting %s frame to %02x:%02x \n", \ 1590 - wlp_assoc_frame_str(id), \ 1591 - dev_addr->data[1], dev_addr->data[0]); \ 1592 1724 BUG_ON(wlp->xmit_frame == NULL); \ 1593 1725 result = wlp->xmit_frame(wlp, skb, dev_addr); \ 1594 1726 if (result < 0) { \ ··· 1602 1740 /* We could try again ... */ \ 1603 1741 dev_kfree_skb_any(skb);/*we need to free if tx fails*/ \ 1604 1742 error_build_assoc: \ 1605 - d_fnend(6, dev, "wlp %p, wss %p, neighbor: %02x:%02x\n", \ 1606 - wlp, wss, dev_addr->data[1], dev_addr->data[0]); \ 1607 1743 return result; \ 1608 1744 } 1609 1745 ··· 1654 1794 struct uwb_dev_addr *src = &frame_ctx->src; 1655 1795 int result; 1656 1796 struct wlp_uuid wssid; 1657 - char buf[WLP_WSS_UUID_STRSIZE]; 1658 1797 struct sk_buff *resp = NULL; 1659 1798 1660 1799 /* Parse C1 frame */ 1661 - d_fnstart(6, dev, "WLP: handle C1 frame. wlp = %p, c1 = %p\n", 1662 - wlp, c1); 1663 1800 mutex_lock(&wss->mutex); 1664 1801 result = wlp_get_wssid(wlp, (void *)c1 + sizeof(*c1), &wssid, 1665 1802 len - sizeof(*c1)); ··· 1664 1807 dev_err(dev, "WLP: unable to obtain WSSID from C1 frame.\n"); 1665 1808 goto out; 1666 1809 } 1667 - wlp_wss_uuid_print(buf, sizeof(buf), &wssid); 1668 - d_printf(6, dev, "Received C1 frame with WSSID %s \n", buf); 1669 1810 if (!memcmp(&wssid, &wss->wssid, sizeof(wssid)) 1670 1811 && wss->state == WLP_WSS_STATE_ACTIVE) { 1671 - d_printf(6, dev, "WSSID from C1 frame is known locally " 1672 - "and is active\n"); 1673 1812 /* Construct C2 frame */ 1674 1813 result = wlp_build_assoc_c2(wlp, wss, &resp); 1675 1814 if (result < 0) { ··· 1673 1820 goto out; 1674 1821 } 1675 1822 } else { 1676 - d_printf(6, dev, "WSSID from C1 frame is not known locally " 1677 - "or is not active\n"); 1678 1823 /* Construct F0 frame */ 1679 1824 result = wlp_build_assoc_f0(wlp, &resp, WLP_ASSOC_ERROR_INV); 1680 1825 if (result < 0) { ··· 1681 1830 } 1682 1831 } 1683 1832 /* Send C2 frame */ 1684 - d_printf(6, dev, "Transmitting response (C2/F0) frame to %02x:%02x \n", 1685 - src->data[1], src->data[0]); 1686 1833 BUG_ON(wlp->xmit_frame == NULL); 1687 1834 result = wlp->xmit_frame(wlp, resp, src); 1688 1835 if (result < 0) { ··· 1695 1846 kfree_skb(frame_ctx->skb); 1696 1847 kfree(frame_ctx); 1697 1848 mutex_unlock(&wss->mutex); 1698 - d_fnend(6, dev, "WLP: handle C1 frame. wlp = %p\n", wlp); 1699 1849 } 1700 1850 1701 1851 /** ··· 1716 1868 struct sk_buff *skb = frame_ctx->skb; 1717 1869 struct uwb_dev_addr *src = &frame_ctx->src; 1718 1870 int result; 1719 - char buf[WLP_WSS_UUID_STRSIZE]; 1720 1871 struct sk_buff *resp = NULL; 1721 1872 struct wlp_uuid wssid; 1722 1873 u8 tag; 1723 1874 struct uwb_mac_addr virt_addr; 1724 1875 1725 1876 /* Parse C3 frame */ 1726 - d_fnstart(6, dev, "WLP: handle C3 frame. wlp = %p, skb = %p\n", 1727 - wlp, skb); 1728 1877 mutex_lock(&wss->mutex); 1729 1878 result = wlp_parse_c3c4_frame(wlp, skb, &wssid, &tag, &virt_addr); 1730 1879 if (result < 0) { 1731 1880 dev_err(dev, "WLP: unable to obtain values from C3 frame.\n"); 1732 1881 goto out; 1733 1882 } 1734 - wlp_wss_uuid_print(buf, sizeof(buf), &wssid); 1735 - d_printf(6, dev, "Received C3 frame with WSSID %s \n", buf); 1736 1883 if (!memcmp(&wssid, &wss->wssid, sizeof(wssid)) 1737 1884 && wss->state >= WLP_WSS_STATE_ACTIVE) { 1738 - d_printf(6, dev, "WSSID from C3 frame is known locally " 1739 - "and is active\n"); 1740 1885 result = wlp_eda_update_node(&wlp->eda, src, wss, 1741 1886 (void *) virt_addr.data, tag, 1742 1887 WLP_WSS_CONNECTED); ··· 1754 1913 } 1755 1914 } 1756 1915 } else { 1757 - d_printf(6, dev, "WSSID from C3 frame is not known locally " 1758 - "or is not active\n"); 1759 1916 /* Construct F0 frame */ 1760 1917 result = wlp_build_assoc_f0(wlp, &resp, WLP_ASSOC_ERROR_INV); 1761 1918 if (result < 0) { ··· 1762 1923 } 1763 1924 } 1764 1925 /* Send C4 frame */ 1765 - d_printf(6, dev, "Transmitting response (C4/F0) frame to %02x:%02x \n", 1766 - src->data[1], src->data[0]); 1767 1926 BUG_ON(wlp->xmit_frame == NULL); 1768 1927 result = wlp->xmit_frame(wlp, resp, src); 1769 1928 if (result < 0) { ··· 1776 1939 kfree_skb(frame_ctx->skb); 1777 1940 kfree(frame_ctx); 1778 1941 mutex_unlock(&wss->mutex); 1779 - d_fnend(6, dev, "WLP: handle C3 frame. wlp = %p, skb = %p\n", 1780 - wlp, skb); 1781 1942 } 1782 1943 1783 1944
+1 -1
drivers/uwb/wlp/sysfs.c
··· 23 23 * FIXME: Docs 24 24 * 25 25 */ 26 - 27 26 #include <linux/wlp.h> 27 + 28 28 #include "wlp-internal.h" 29 29 30 30 static
+8 -29
drivers/uwb/wlp/txrx.c
··· 26 26 27 27 #include <linux/etherdevice.h> 28 28 #include <linux/wlp.h> 29 - #define D_LOCAL 5 30 - #include <linux/uwb/debug.h> 29 + 31 30 #include "wlp-internal.h" 32 31 33 - 34 - /** 32 + /* 35 33 * Direct incoming association msg to correct parsing routine 36 34 * 37 35 * We only expect D1, E1, C1, C3 messages as new. All other incoming ··· 46 48 struct device *dev = &wlp->rc->uwb_dev.dev; 47 49 struct wlp_frame_assoc *assoc = (void *) skb->data; 48 50 struct wlp_assoc_frame_ctx *frame_ctx; 49 - d_fnstart(5, dev, "wlp %p, skb %p\n", wlp, skb); 51 + 50 52 frame_ctx = kmalloc(sizeof(*frame_ctx), GFP_ATOMIC); 51 53 if (frame_ctx == NULL) { 52 54 dev_err(dev, "WLP: Unable to allocate memory for association " 53 55 "frame handling.\n"); 54 56 kfree_skb(skb); 55 - goto out; 57 + return; 56 58 } 57 59 frame_ctx->wlp = wlp; 58 60 frame_ctx->skb = skb; 59 61 frame_ctx->src = *src; 60 62 switch (assoc->type) { 61 63 case WLP_ASSOC_D1: 62 - d_printf(5, dev, "Received a D1 frame.\n"); 63 64 INIT_WORK(&frame_ctx->ws, wlp_handle_d1_frame); 64 65 schedule_work(&frame_ctx->ws); 65 66 break; 66 67 case WLP_ASSOC_E1: 67 - d_printf(5, dev, "Received a E1 frame. FIXME?\n"); 68 68 kfree_skb(skb); /* Temporary until we handle it */ 69 69 kfree(frame_ctx); /* Temporary until we handle it */ 70 70 break; 71 71 case WLP_ASSOC_C1: 72 - d_printf(5, dev, "Received a C1 frame.\n"); 73 72 INIT_WORK(&frame_ctx->ws, wlp_handle_c1_frame); 74 73 schedule_work(&frame_ctx->ws); 75 74 break; 76 75 case WLP_ASSOC_C3: 77 - d_printf(5, dev, "Received a C3 frame.\n"); 78 76 INIT_WORK(&frame_ctx->ws, wlp_handle_c3_frame); 79 77 schedule_work(&frame_ctx->ws); 80 78 break; ··· 81 87 kfree(frame_ctx); 82 88 break; 83 89 } 84 - out: 85 - d_fnend(5, dev, "wlp %p\n", wlp); 86 90 } 87 91 88 - /** 92 + /* 89 93 * Process incoming association frame 90 94 * 91 95 * Although it could be possible to deal with some incoming association ··· 104 112 struct wlp_frame_assoc *assoc = (void *) skb->data; 105 113 struct wlp_session *session = wlp->session; 106 114 u8 version; 107 - d_fnstart(5, dev, "wlp %p, skb %p\n", wlp, skb); 108 115 109 116 if (wlp_get_version(wlp, &assoc->version, &version, 110 117 sizeof(assoc->version)) < 0) ··· 141 150 } else { 142 151 wlp_direct_assoc_frame(wlp, skb, src); 143 152 } 144 - d_fnend(5, dev, "wlp %p\n", wlp); 145 153 return; 146 154 error: 147 155 kfree_skb(skb); 148 - d_fnend(5, dev, "wlp %p\n", wlp); 149 156 } 150 157 151 - /** 158 + /* 152 159 * Verify incoming frame is from connected neighbor, prep to pass to WLP client 153 160 * 154 161 * Verification proceeds according to WLP 0.99 [7.3.1]. The source address ··· 165 176 struct wlp_eda_node eda_entry; 166 177 struct wlp_frame_std_abbrv_hdr *hdr = (void *) skb->data; 167 178 168 - d_fnstart(6, dev, "wlp %p, skb %p \n", wlp, skb); 169 179 /*verify*/ 170 180 result = wlp_copy_eda_node(&wlp->eda, src, &eda_entry); 171 181 if (result < 0) { ··· 195 207 /*prep*/ 196 208 skb_pull(skb, sizeof(*hdr)); 197 209 out: 198 - d_fnend(6, dev, "wlp %p, skb %p, result = %d \n", wlp, skb, result); 199 210 return result; 200 211 } 201 212 202 - /** 213 + /* 203 214 * Receive a WLP frame from device 204 215 * 205 216 * @returns: 1 if calling function should free the skb ··· 213 226 struct wlp_frame_hdr *hdr; 214 227 int result = 0; 215 228 216 - d_fnstart(6, dev, "skb (%p), len (%u)\n", skb, len); 217 229 if (len < sizeof(*hdr)) { 218 230 dev_err(dev, "Not enough data to parse WLP header.\n"); 219 231 result = -EINVAL; 220 232 goto out; 221 233 } 222 234 hdr = ptr; 223 - d_dump(6, dev, hdr, sizeof(*hdr)); 224 235 if (le16_to_cpu(hdr->mux_hdr) != WLP_PROTOCOL_ID) { 225 236 dev_err(dev, "Not a WLP frame type.\n"); 226 237 result = -EINVAL; ··· 255 270 "WLP header.\n"); 256 271 goto out; 257 272 } 258 - d_printf(5, dev, "Association frame received.\n"); 259 273 wlp_receive_assoc_frame(wlp, skb, src); 260 274 break; 261 275 default: ··· 267 283 kfree_skb(skb); 268 284 result = 0; 269 285 } 270 - d_fnend(6, dev, "skb (%p)\n", skb); 271 286 return result; 272 287 } 273 288 EXPORT_SYMBOL_GPL(wlp_receive_frame); 274 289 275 290 276 - /** 291 + /* 277 292 * Verify frame from network stack, prepare for further transmission 278 293 * 279 294 * @skb: the socket buffer that needs to be prepared for transmission (it ··· 326 343 int result = -EINVAL; 327 344 struct ethhdr *eth_hdr = (void *) skb->data; 328 345 329 - d_fnstart(6, dev, "wlp (%p), skb (%p) \n", wlp, skb); 330 346 if (is_broadcast_ether_addr(eth_hdr->h_dest)) { 331 - d_printf(6, dev, "WLP: handling broadcast frame. \n"); 332 347 result = wlp_eda_for_each(&wlp->eda, wlp_wss_send_copy, skb); 333 348 if (result < 0) { 334 349 if (printk_ratelimit()) ··· 338 357 result = 1; 339 358 /* Frame will be transmitted by WLP. */ 340 359 } else { 341 - d_printf(6, dev, "WLP: handling unicast frame. \n"); 342 360 result = wlp_eda_for_virtual(&wlp->eda, eth_hdr->h_dest, dst, 343 361 wlp_wss_prep_hdr, skb); 344 362 if (unlikely(result < 0)) { ··· 348 368 } 349 369 } 350 370 out: 351 - d_fnend(6, dev, "wlp (%p), skb (%p). result = %d \n", wlp, skb, result); 352 371 return result; 353 372 } 354 373 EXPORT_SYMBOL_GPL(wlp_prepare_tx_frame);
+11 -50
drivers/uwb/wlp/wlp-lc.c
··· 21 21 * 22 22 * FIXME: docs 23 23 */ 24 - 25 24 #include <linux/wlp.h> 26 - #define D_LOCAL 6 27 - #include <linux/uwb/debug.h> 28 - #include "wlp-internal.h" 29 25 26 + #include "wlp-internal.h" 30 27 31 28 static 32 29 void wlp_neighbor_init(struct wlp_neighbor_e *neighbor) ··· 58 61 static 59 62 void __wlp_fill_device_info(struct wlp *wlp) 60 63 { 61 - struct device *dev = &wlp->rc->uwb_dev.dev; 62 - 63 - BUG_ON(wlp->fill_device_info == NULL); 64 - d_printf(6, dev, "Retrieving device information " 65 - "from device driver.\n"); 66 64 wlp->fill_device_info(wlp, wlp->dev_info); 67 65 } 68 66 ··· 119 127 } 120 128 } 121 129 122 - /** 130 + /* 123 131 * Populate WLP neighborhood cache with neighbor information 124 132 * 125 133 * A new neighbor is found. If it is discoverable then we add it to the ··· 133 141 int discoverable; 134 142 struct wlp_neighbor_e *neighbor; 135 143 136 - d_fnstart(6, &dev->dev, "uwb %p \n", dev); 137 - d_printf(6, &dev->dev, "Found neighbor device %02x:%02x \n", 138 - dev->dev_addr.data[1], dev->dev_addr.data[0]); 139 - /** 144 + /* 140 145 * FIXME: 141 146 * Use contents of WLP IE found in beacon cache to determine if 142 147 * neighbor is discoverable. ··· 156 167 list_add(&neighbor->node, &wlp->neighbors); 157 168 } 158 169 error_no_mem: 159 - d_fnend(6, &dev->dev, "uwb %p, result = %d \n", dev, result); 160 170 return result; 161 171 } 162 172 ··· 243 255 dev_err(dev, "Unable to send D1 frame to neighbor " 244 256 "%02x:%02x (%d)\n", dev_addr->data[1], 245 257 dev_addr->data[0], result); 246 - d_printf(6, dev, "Add placeholders into buffer next to " 247 - "neighbor information we have (dev address).\n"); 248 258 goto out; 249 259 } 250 260 /* Create session, wait for response */ ··· 270 284 /* Parse message in session->data: it will be either D2 or F0 */ 271 285 skb = session.data; 272 286 resp = (void *) skb->data; 273 - d_printf(6, dev, "Received response to D1 frame. \n"); 274 - d_dump(6, dev, skb->data, skb->len > 72 ? 72 : skb->len); 275 287 276 288 if (resp->type == WLP_ASSOC_F0) { 277 289 result = wlp_parse_f0(wlp, skb); ··· 321 337 struct device *dev = &wlp->rc->uwb_dev.dev; 322 338 char buf[WLP_WSS_UUID_STRSIZE]; 323 339 struct uwb_dev_addr *dev_addr = &neighbor->uwb_dev->dev_addr; 340 + 324 341 wlp_wss_uuid_print(buf, sizeof(buf), wssid); 325 - d_fnstart(6, dev, "wlp %p, neighbor %p, wss %p, wssid %p (%s)\n", 326 - wlp, neighbor, wss, wssid, buf); 327 - d_printf(6, dev, "Complete me.\n"); 342 + 328 343 result = wlp_d1d2_exchange(wlp, neighbor, wss, wssid); 329 344 if (result < 0) { 330 345 dev_err(dev, "WLP: D1/D2 message exchange for enrollment " ··· 343 360 goto error; 344 361 } else { 345 362 wss->state = WLP_WSS_STATE_ENROLLED; 346 - d_printf(2, dev, "WLP: Success Enrollment into unsecure WSS " 347 - "%s using neighbor %02x:%02x. \n", buf, 348 - dev_addr->data[1], dev_addr->data[0]); 363 + dev_dbg(dev, "WLP: Success Enrollment into unsecure WSS " 364 + "%s using neighbor %02x:%02x. \n", 365 + buf, dev_addr->data[1], dev_addr->data[0]); 349 366 } 350 - 351 - d_fnend(6, dev, "wlp %p, neighbor %p, wss %p, wssid %p (%s)\n", 352 - wlp, neighbor, wss, wssid, buf); 353 367 out: 354 368 return result; 355 369 error: ··· 429 449 int result = 0; 430 450 struct device *dev = &wlp->rc->uwb_dev.dev; 431 451 432 - d_fnstart(6, dev, "wlp %p \n", wlp); 433 452 mutex_lock(&wlp->nbmutex); 434 453 /* Clear current neighborhood cache. */ 435 454 __wlp_neighbors_release(wlp); ··· 448 469 } 449 470 error_dev_for_each: 450 471 mutex_unlock(&wlp->nbmutex); 451 - d_fnend(6, dev, "wlp %p \n", wlp); 452 472 return result; 453 473 } 454 474 ··· 470 492 int result; 471 493 switch (event) { 472 494 case UWB_NOTIF_ONAIR: 473 - d_printf(6, dev, "UWB device %02x:%02x is onair\n", 474 - uwb_dev->dev_addr.data[1], 475 - uwb_dev->dev_addr.data[0]); 476 495 result = wlp_eda_create_node(&wlp->eda, 477 496 uwb_dev->mac_addr.data, 478 497 &uwb_dev->dev_addr); ··· 480 505 uwb_dev->dev_addr.data[0]); 481 506 break; 482 507 case UWB_NOTIF_OFFAIR: 483 - d_printf(6, dev, "UWB device %02x:%02x is offair\n", 484 - uwb_dev->dev_addr.data[1], 485 - uwb_dev->dev_addr.data[0]); 486 508 wlp_eda_rm_node(&wlp->eda, &uwb_dev->dev_addr); 487 509 mutex_lock(&wlp->nbmutex); 488 - list_for_each_entry_safe(neighbor, next, &wlp->neighbors, 489 - node) { 490 - if (neighbor->uwb_dev == uwb_dev) { 491 - d_printf(6, dev, "Removing device from " 492 - "neighborhood.\n"); 510 + list_for_each_entry_safe(neighbor, next, &wlp->neighbors, node) { 511 + if (neighbor->uwb_dev == uwb_dev) 493 512 __wlp_neighbor_release(neighbor); 494 - } 495 513 } 496 514 mutex_unlock(&wlp->nbmutex); 497 515 break; ··· 506 538 507 539 int wlp_setup(struct wlp *wlp, struct uwb_rc *rc, struct net_device *ndev) 508 540 { 509 - struct device *dev = &rc->uwb_dev.dev; 510 541 int result; 511 542 512 - d_fnstart(6, dev, "wlp %p\n", wlp); 513 543 BUG_ON(wlp->fill_device_info == NULL); 514 544 BUG_ON(wlp->xmit_frame == NULL); 515 545 BUG_ON(wlp->stop_queue == NULL); 516 546 BUG_ON(wlp->start_queue == NULL); 547 + 517 548 wlp->rc = rc; 518 549 wlp->ndev = ndev; 519 550 wlp_eda_init(&wlp->eda);/* Set up address cache */ ··· 527 560 if (result < 0) 528 561 uwb_notifs_deregister(wlp->rc, &wlp->uwb_notifs_handler); 529 562 530 - d_fnend(6, dev, "wlp %p, result = %d\n", wlp, result); 531 563 return result; 532 564 } 533 565 EXPORT_SYMBOL_GPL(wlp_setup); 534 566 535 567 void wlp_remove(struct wlp *wlp) 536 568 { 537 - struct device *dev = &wlp->rc->uwb_dev.dev; 538 - d_fnstart(6, dev, "wlp %p\n", wlp); 539 569 wlp_neighbors_release(wlp); 540 570 uwb_pal_unregister(&wlp->pal); 541 571 uwb_notifs_deregister(wlp->rc, &wlp->uwb_notifs_handler); ··· 542 578 kfree(wlp->dev_info); 543 579 mutex_unlock(&wlp->mutex); 544 580 wlp->rc = NULL; 545 - /* We have to use NULL here because this function can be called 546 - * when the device disappeared. */ 547 - d_fnend(6, NULL, "wlp %p\n", wlp); 548 581 } 549 582 EXPORT_SYMBOL_GPL(wlp_remove); 550 583
+18 -112
drivers/uwb/wlp/wss-lc.c
··· 43 43 * wlp_wss_release() 44 44 * wlp_wss_reset() 45 45 */ 46 - 47 46 #include <linux/etherdevice.h> /* for is_valid_ether_addr */ 48 47 #include <linux/skbuff.h> 49 48 #include <linux/wlp.h> 50 - #define D_LOCAL 5 51 - #include <linux/uwb/debug.h> 52 - #include "wlp-internal.h" 53 49 50 + #include "wlp-internal.h" 54 51 55 52 size_t wlp_wss_key_print(char *buf, size_t bufsize, u8 *key) 56 53 { ··· 113 116 */ 114 117 void wlp_wss_reset(struct wlp_wss *wss) 115 118 { 116 - struct wlp *wlp = container_of(wss, struct wlp, wss); 117 - struct device *dev = &wlp->rc->uwb_dev.dev; 118 - d_fnstart(5, dev, "wss (%p) \n", wss); 119 119 memset(&wss->wssid, 0, sizeof(wss->wssid)); 120 120 wss->hash = 0; 121 121 memset(&wss->name[0], 0, sizeof(wss->name)); ··· 121 127 memset(&wss->master_key[0], 0, sizeof(wss->master_key)); 122 128 wss->tag = 0; 123 129 wss->state = WLP_WSS_STATE_NONE; 124 - d_fnend(5, dev, "wss (%p) \n", wss); 125 130 } 126 131 127 132 /** ··· 138 145 struct device *dev = &wlp->rc->uwb_dev.dev; 139 146 int result; 140 147 141 - d_fnstart(5, dev, "wss (%p), wssid: %s\n", wss, wssid_str); 142 148 result = kobject_set_name(&wss->kobj, "wss-%s", wssid_str); 143 149 if (result < 0) 144 150 return result; ··· 154 162 result); 155 163 goto error_sysfs_create_group; 156 164 } 157 - d_fnend(5, dev, "Completed. result = %d \n", result); 158 165 return 0; 159 166 error_sysfs_create_group: 160 167 ··· 205 214 struct wlp *wlp = container_of(wss, struct wlp, wss); 206 215 struct device *dev = &wlp->rc->uwb_dev.dev; 207 216 struct wlp_neighbor_e *neighbor; 208 - char buf[WLP_WSS_UUID_STRSIZE]; 209 217 int result = -ENXIO; 210 218 struct uwb_dev_addr *dev_addr; 211 219 212 - wlp_wss_uuid_print(buf, sizeof(buf), wssid); 213 - d_fnstart(5, dev, "wss %p, wssid %s, registrar %02x:%02x \n", 214 - wss, buf, dest->data[1], dest->data[0]); 215 220 mutex_lock(&wlp->nbmutex); 216 221 list_for_each_entry(neighbor, &wlp->neighbors, node) { 217 222 dev_addr = &neighbor->uwb_dev->dev_addr; 218 223 if (!memcmp(dest, dev_addr, sizeof(*dest))) { 219 - d_printf(5, dev, "Neighbor %02x:%02x is valid, " 220 - "enrolling. \n", 221 - dev_addr->data[1], dev_addr->data[0]); 222 - result = wlp_enroll_neighbor(wlp, neighbor, wss, 223 - wssid); 224 + result = wlp_enroll_neighbor(wlp, neighbor, wss, wssid); 224 225 break; 225 226 } 226 227 } ··· 220 237 dev_err(dev, "WLP: Cannot find neighbor %02x:%02x. \n", 221 238 dest->data[1], dest->data[0]); 222 239 mutex_unlock(&wlp->nbmutex); 223 - d_fnend(5, dev, "wss %p, wssid %s, registrar %02x:%02x, result %d \n", 224 - wss, buf, dest->data[1], dest->data[0], result); 225 240 return result; 226 241 } 227 242 ··· 241 260 char buf[WLP_WSS_UUID_STRSIZE]; 242 261 int result = -ENXIO; 243 262 244 - wlp_wss_uuid_print(buf, sizeof(buf), wssid); 245 - d_fnstart(5, dev, "wss %p, wssid %s \n", wss, buf); 263 + 246 264 mutex_lock(&wlp->nbmutex); 247 265 list_for_each_entry(neighbor, &wlp->neighbors, node) { 248 266 list_for_each_entry(wssid_e, &neighbor->wssid, node) { 249 267 if (!memcmp(wssid, &wssid_e->wssid, sizeof(*wssid))) { 250 - d_printf(5, dev, "Found WSSID %s in neighbor " 251 - "%02x:%02x cache. \n", buf, 252 - neighbor->uwb_dev->dev_addr.data[1], 253 - neighbor->uwb_dev->dev_addr.data[0]); 254 268 result = wlp_enroll_neighbor(wlp, neighbor, 255 269 wss, wssid); 256 270 if (result == 0) /* enrollment success */ ··· 255 279 } 256 280 } 257 281 out: 258 - if (result == -ENXIO) 282 + if (result == -ENXIO) { 283 + wlp_wss_uuid_print(buf, sizeof(buf), wssid); 259 284 dev_err(dev, "WLP: Cannot find WSSID %s in cache. \n", buf); 285 + } 260 286 mutex_unlock(&wlp->nbmutex); 261 - d_fnend(5, dev, "wss %p, wssid %s, result %d \n", wss, buf, result); 262 287 return result; 263 288 } 264 289 ··· 284 307 struct uwb_dev_addr bcast = {.data = {0xff, 0xff} }; 285 308 286 309 wlp_wss_uuid_print(buf, sizeof(buf), wssid); 310 + 287 311 if (wss->state != WLP_WSS_STATE_NONE) { 288 312 dev_err(dev, "WLP: Already enrolled in WSS %s.\n", buf); 289 313 result = -EEXIST; 290 314 goto error; 291 315 } 292 - if (!memcmp(&bcast, devaddr, sizeof(bcast))) { 293 - d_printf(5, dev, "Request to enroll in discovered WSS " 294 - "with WSSID %s \n", buf); 316 + if (!memcmp(&bcast, devaddr, sizeof(bcast))) 295 317 result = wlp_wss_enroll_discovered(wss, wssid); 296 - } else { 297 - d_printf(5, dev, "Request to enroll in WSSID %s with " 298 - "registrar %02x:%02x\n", buf, devaddr->data[1], 299 - devaddr->data[0]); 318 + else 300 319 result = wlp_wss_enroll_target(wss, wssid, devaddr); 301 - } 302 320 if (result < 0) { 303 321 dev_err(dev, "WLP: Unable to enroll into WSS %s, result %d \n", 304 322 buf, result); 305 323 goto error; 306 324 } 307 - d_printf(2, dev, "Successfully enrolled into WSS %s \n", buf); 325 + dev_dbg(dev, "Successfully enrolled into WSS %s \n", buf); 308 326 result = wlp_wss_sysfs_add(wss, buf); 309 327 if (result < 0) { 310 328 dev_err(dev, "WLP: Unable to set up sysfs for WSS kobject.\n"); ··· 335 363 u8 hash; /* only include one hash */ 336 364 } ie_data; 337 365 338 - d_fnstart(5, dev, "Activating WSS %p. \n", wss); 339 366 BUG_ON(wss->state != WLP_WSS_STATE_ENROLLED); 340 367 wss->hash = wlp_wss_comp_wssid_hash(&wss->wssid); 341 368 wss->tag = wss->hash; ··· 353 382 wss->state = WLP_WSS_STATE_ACTIVE; 354 383 result = 0; 355 384 error_wlp_ie: 356 - d_fnend(5, dev, "Activating WSS %p, result = %d \n", wss, result); 357 385 return result; 358 386 } 359 387 ··· 375 405 int result = 0; 376 406 char buf[WLP_WSS_UUID_STRSIZE]; 377 407 378 - d_fnstart(5, dev, "Enrollment and activation requested. \n"); 379 408 mutex_lock(&wss->mutex); 380 409 result = wlp_wss_enroll(wss, wssid, devaddr); 381 410 if (result < 0) { ··· 393 424 error_activate: 394 425 error_enroll: 395 426 mutex_unlock(&wss->mutex); 396 - d_fnend(5, dev, "Completed. result = %d \n", result); 397 427 return result; 398 428 } 399 429 ··· 415 447 struct device *dev = &wlp->rc->uwb_dev.dev; 416 448 int result = 0; 417 449 char buf[WLP_WSS_UUID_STRSIZE]; 418 - d_fnstart(5, dev, "Request to create new WSS.\n"); 450 + 419 451 result = wlp_wss_uuid_print(buf, sizeof(buf), wssid); 420 - d_printf(5, dev, "Request to create WSS: WSSID=%s, name=%s, " 421 - "sec_status=%u, accepting enrollment=%u \n", 422 - buf, name, sec_status, accept); 452 + 423 453 if (!mutex_trylock(&wss->mutex)) { 424 454 dev_err(dev, "WLP: WLP association session in progress.\n"); 425 455 return -EBUSY; ··· 464 498 result = 0; 465 499 out: 466 500 mutex_unlock(&wss->mutex); 467 - d_fnend(5, dev, "Completed. result = %d \n", result); 468 501 return result; 469 502 } 470 503 ··· 485 520 { 486 521 int result = 0; 487 522 struct device *dev = &wlp->rc->uwb_dev.dev; 488 - char buf[WLP_WSS_UUID_STRSIZE]; 489 523 DECLARE_COMPLETION_ONSTACK(completion); 490 524 struct wlp_session session; 491 525 struct sk_buff *skb; 492 526 struct wlp_frame_assoc *resp; 493 527 struct wlp_uuid wssid; 494 528 495 - wlp_wss_uuid_print(buf, sizeof(buf), &wss->wssid); 496 - d_fnstart(5, dev, "wlp %p, wss %p (wssid %s), neighbor %02x:%02x \n", 497 - wlp, wss, buf, dev_addr->data[1], dev_addr->data[0]); 498 529 mutex_lock(&wlp->mutex); 499 530 /* Send C1 association frame */ 500 531 result = wlp_send_assoc_frame(wlp, wss, dev_addr, WLP_ASSOC_C1); ··· 526 565 /* Parse message in session->data: it will be either C2 or F0 */ 527 566 skb = session.data; 528 567 resp = (void *) skb->data; 529 - d_printf(5, dev, "Received response to C1 frame. \n"); 530 - d_dump(5, dev, skb->data, skb->len > 72 ? 72 : skb->len); 531 568 if (resp->type == WLP_ASSOC_F0) { 532 569 result = wlp_parse_f0(wlp, skb); 533 570 if (result < 0) ··· 543 584 result = 0; 544 585 goto error_resp_parse; 545 586 } 546 - if (!memcmp(&wssid, &wss->wssid, sizeof(wssid))) { 547 - d_printf(5, dev, "WSSID in C2 frame matches local " 548 - "active WSS.\n"); 587 + if (!memcmp(&wssid, &wss->wssid, sizeof(wssid))) 549 588 result = 1; 550 - } else { 589 + else { 551 590 dev_err(dev, "WLP: Received a C2 frame without matching " 552 591 "WSSID.\n"); 553 592 result = 0; ··· 555 598 out: 556 599 wlp->session = NULL; 557 600 mutex_unlock(&wlp->mutex); 558 - d_fnend(5, dev, "wlp %p, wss %p (wssid %s), neighbor %02x:%02x \n", 559 - wlp, wss, buf, dev_addr->data[1], dev_addr->data[0]); 560 601 return result; 561 602 } 562 603 ··· 575 620 { 576 621 struct device *dev = &wlp->rc->uwb_dev.dev; 577 622 int result = 0; 578 - char buf[WLP_WSS_UUID_STRSIZE]; 579 - wlp_wss_uuid_print(buf, sizeof(buf), wssid); 580 - d_fnstart(5, dev, "wlp %p, wss %p, wssid %s, tag %u, virtual " 581 - "%02x:%02x:%02x:%02x:%02x:%02x \n", wlp, wss, buf, *tag, 582 - virt_addr->data[0], virt_addr->data[1], virt_addr->data[2], 583 - virt_addr->data[3], virt_addr->data[4], virt_addr->data[5]); 584 623 585 624 if (!memcmp(wssid, &wss->wssid, sizeof(*wssid))) { 586 - d_printf(5, dev, "WSSID from neighbor frame matches local " 587 - "active WSS.\n"); 588 625 /* Update EDA cache */ 589 626 result = wlp_eda_update_node(&wlp->eda, dev_addr, wss, 590 627 (void *) virt_addr->data, *tag, ··· 585 638 dev_err(dev, "WLP: Unable to update EDA cache " 586 639 "with new connected neighbor information.\n"); 587 640 } else { 588 - dev_err(dev, "WLP: Neighbor does not have matching " 589 - "WSSID.\n"); 641 + dev_err(dev, "WLP: Neighbor does not have matching WSSID.\n"); 590 642 result = -EINVAL; 591 643 } 592 - 593 - d_fnend(5, dev, "wlp %p, wss %p, wssid %s, tag %u, virtual " 594 - "%02x:%02x:%02x:%02x:%02x:%02x, result = %d \n", 595 - wlp, wss, buf, *tag, 596 - virt_addr->data[0], virt_addr->data[1], virt_addr->data[2], 597 - virt_addr->data[3], virt_addr->data[4], virt_addr->data[5], 598 - result); 599 - 600 644 return result; 601 645 } 602 646 ··· 603 665 { 604 666 int result; 605 667 struct device *dev = &wlp->rc->uwb_dev.dev; 606 - char buf[WLP_WSS_UUID_STRSIZE]; 607 668 struct wlp_uuid wssid; 608 669 u8 tag; 609 670 struct uwb_mac_addr virt_addr; ··· 611 674 struct wlp_frame_assoc *resp; 612 675 struct sk_buff *skb; 613 676 614 - wlp_wss_uuid_print(buf, sizeof(buf), &wss->wssid); 615 - d_fnstart(5, dev, "wlp %p, wss %p (wssid %s), neighbor %02x:%02x \n", 616 - wlp, wss, buf, dev_addr->data[1], dev_addr->data[0]); 617 677 mutex_lock(&wlp->mutex); 618 678 /* Send C3 association frame */ 619 679 result = wlp_send_assoc_frame(wlp, wss, dev_addr, WLP_ASSOC_C3); ··· 645 711 /* Parse message in session->data: it will be either C4 or F0 */ 646 712 skb = session.data; 647 713 resp = (void *) skb->data; 648 - d_printf(5, dev, "Received response to C3 frame. \n"); 649 - d_dump(5, dev, skb->data, skb->len > 72 ? 72 : skb->len); 650 714 if (resp->type == WLP_ASSOC_F0) { 651 715 result = wlp_parse_f0(wlp, skb); 652 716 if (result < 0) ··· 676 744 WLP_WSS_CONNECT_FAILED); 677 745 wlp->session = NULL; 678 746 mutex_unlock(&wlp->mutex); 679 - d_fnend(5, dev, "wlp %p, wss %p (wssid %s), neighbor %02x:%02x \n", 680 - wlp, wss, buf, dev_addr->data[1], dev_addr->data[0]); 681 747 return result; 682 748 } 683 749 ··· 710 780 struct wlp_wss *wss = &wlp->wss; 711 781 int result; 712 782 struct device *dev = &wlp->rc->uwb_dev.dev; 713 - char buf[WLP_WSS_UUID_STRSIZE]; 714 783 715 784 mutex_lock(&wss->mutex); 716 - wlp_wss_uuid_print(buf, sizeof(buf), &wss->wssid); 717 - d_fnstart(5, dev, "wlp %p, wss %p (wssid %s), neighbor %02x:%02x \n", 718 - wlp, wss, buf, dev_addr->data[1], dev_addr->data[0]); 719 785 if (wss->state < WLP_WSS_STATE_ACTIVE) { 720 786 if (printk_ratelimit()) 721 787 dev_err(dev, "WLP: Attempting to connect with " ··· 762 836 BUG_ON(wlp->start_queue == NULL); 763 837 wlp->start_queue(wlp); 764 838 mutex_unlock(&wss->mutex); 765 - d_fnend(5, dev, "wlp %p, wss %p (wssid %s)\n", wlp, wss, buf); 766 839 } 767 840 768 841 /** ··· 780 855 struct sk_buff *skb = _skb; 781 856 struct wlp_frame_std_abbrv_hdr *std_hdr; 782 857 783 - d_fnstart(6, dev, "wlp %p \n", wlp); 784 858 if (eda_entry->state == WLP_WSS_CONNECTED) { 785 859 /* Add WLP header */ 786 860 BUG_ON(skb_headroom(skb) < sizeof(*std_hdr)); ··· 797 873 dev_addr->data[0]); 798 874 result = -EINVAL; 799 875 } 800 - d_fnend(6, dev, "wlp %p \n", wlp); 801 876 return result; 802 877 } 803 878 ··· 816 893 { 817 894 int result = 0; 818 895 struct device *dev = &wlp->rc->uwb_dev.dev; 819 - struct uwb_dev_addr *dev_addr = &eda_entry->dev_addr; 820 - unsigned char *eth_addr = eda_entry->eth_addr; 821 896 struct sk_buff *skb = _skb; 822 897 struct wlp_assoc_conn_ctx *conn_ctx; 823 898 824 - d_fnstart(5, dev, "wlp %p\n", wlp); 825 - d_printf(5, dev, "To neighbor %02x:%02x with eth " 826 - "%02x:%02x:%02x:%02x:%02x:%02x\n", dev_addr->data[1], 827 - dev_addr->data[0], eth_addr[0], eth_addr[1], eth_addr[2], 828 - eth_addr[3], eth_addr[4], eth_addr[5]); 829 899 if (eda_entry->state == WLP_WSS_UNCONNECTED) { 830 900 /* We don't want any more packets while we set up connection */ 831 901 BUG_ON(wlp->stop_queue == NULL); ··· 845 929 "previously. Not retrying. \n"); 846 930 result = -ENONET; 847 931 goto out; 848 - } else { /* eda_entry->state == WLP_WSS_CONNECTED */ 849 - d_printf(5, dev, "Neighbor is connected, preparing frame.\n"); 932 + } else /* eda_entry->state == WLP_WSS_CONNECTED */ 850 933 result = wlp_wss_prep_hdr(wlp, eda_entry, skb); 851 - } 852 934 out: 853 - d_fnend(5, dev, "wlp %p, result = %d \n", wlp, result); 854 935 return result; 855 936 } 856 937 ··· 870 957 struct sk_buff *copy; 871 958 struct uwb_dev_addr *dev_addr = &eda_entry->dev_addr; 872 959 873 - d_fnstart(5, dev, "to neighbor %02x:%02x, skb (%p) \n", 874 - dev_addr->data[1], dev_addr->data[0], skb); 875 960 copy = skb_copy(skb, GFP_ATOMIC); 876 961 if (copy == NULL) { 877 962 if (printk_ratelimit()) ··· 899 988 dev_kfree_skb_irq(copy);/*we need to free if tx fails */ 900 989 } 901 990 out: 902 - d_fnend(5, dev, "to neighbor %02x:%02x \n", dev_addr->data[1], 903 - dev_addr->data[0]); 904 991 return result; 905 992 } 906 993 ··· 914 1005 struct wlp *wlp = container_of(wss, struct wlp, wss); 915 1006 struct device *dev = &wlp->rc->uwb_dev.dev; 916 1007 int result = 0; 917 - d_fnstart(5, dev, "wss (%p) \n", wss); 1008 + 918 1009 mutex_lock(&wss->mutex); 919 1010 wss->kobj.parent = &net_dev->dev.kobj; 920 1011 if (!is_valid_ether_addr(net_dev->dev_addr)) { ··· 927 1018 sizeof(wss->virtual_addr.data)); 928 1019 out: 929 1020 mutex_unlock(&wss->mutex); 930 - d_fnend(5, dev, "wss (%p) \n", wss); 931 1021 return result; 932 1022 } 933 1023 EXPORT_SYMBOL_GPL(wlp_wss_setup); ··· 943 1035 void wlp_wss_remove(struct wlp_wss *wss) 944 1036 { 945 1037 struct wlp *wlp = container_of(wss, struct wlp, wss); 946 - struct device *dev = &wlp->rc->uwb_dev.dev; 947 - d_fnstart(5, dev, "wss (%p) \n", wss); 1038 + 948 1039 mutex_lock(&wss->mutex); 949 1040 if (wss->state == WLP_WSS_STATE_ACTIVE) 950 1041 uwb_rc_ie_rm(wlp->rc, UWB_IE_WLP); ··· 957 1050 wlp_eda_release(&wlp->eda); 958 1051 wlp_eda_init(&wlp->eda); 959 1052 mutex_unlock(&wss->mutex); 960 - d_fnend(5, dev, "wss (%p) \n", wss); 961 1053 } 962 1054 EXPORT_SYMBOL_GPL(wlp_wss_remove);