diff options
| -rw-r--r-- | drivers/infiniband/hw/qib/qib_diag.c | 13 | ||||
| -rw-r--r-- | drivers/infiniband/hw/qib/qib_driver.c | 15 | ||||
| -rw-r--r-- | drivers/infiniband/hw/qib/qib_eeprom.c | 41 | ||||
| -rw-r--r-- | drivers/infiniband/hw/qib/qib_file_ops.c | 63 | ||||
| -rw-r--r-- | drivers/infiniband/hw/qib/qib_fs.c | 21 | ||||
| -rw-r--r-- | drivers/infiniband/hw/qib/qib_iba6120.c | 91 | ||||
| -rw-r--r-- | drivers/infiniband/hw/qib/qib_iba7220.c | 92 | ||||
| -rw-r--r-- | drivers/infiniband/hw/qib/qib_iba7322.c | 148 | ||||
| -rw-r--r-- | drivers/infiniband/hw/qib/qib_init.c | 97 | ||||
| -rw-r--r-- | drivers/infiniband/hw/qib/qib_intr.c | 8 | ||||
| -rw-r--r-- | drivers/infiniband/hw/qib/qib_pcie.c | 23 | ||||
| -rw-r--r-- | drivers/infiniband/hw/qib/qib_sd7220.c | 41 | ||||
| -rw-r--r-- | drivers/infiniband/hw/qib/qib_sdma.c | 11 | ||||
| -rw-r--r-- | drivers/infiniband/hw/qib/qib_sysfs.c | 88 | ||||
| -rw-r--r-- | drivers/infiniband/hw/qib/qib_twsi.c | 8 | ||||
| -rw-r--r-- | drivers/infiniband/hw/qib/qib_wc_x86_64.c | 14 |
16 files changed, 394 insertions, 380 deletions
diff --git a/drivers/infiniband/hw/qib/qib_diag.c b/drivers/infiniband/hw/qib/qib_diag.c index 9892456a4348..1686fd4bda87 100644 --- a/drivers/infiniband/hw/qib/qib_diag.c +++ b/drivers/infiniband/hw/qib/qib_diag.c | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2010 QLogic Corporation. All rights reserved. | 2 | * Copyright (c) 2012 Intel Corporation. All rights reserved. |
| 3 | * Copyright (c) 2006, 2007, 2008, 2009 QLogic Corporation. All rights reserved. | 3 | * Copyright (c) 2006 - 2012 QLogic Corporation. All rights reserved. |
| 4 | * Copyright (c) 2003, 2004, 2005, 2006 PathScale, Inc. All rights reserved. | 4 | * Copyright (c) 2003, 2004, 2005, 2006 PathScale, Inc. All rights reserved. |
| 5 | * | 5 | * |
| 6 | * This software is available to you under a choice of one of two | 6 | * This software is available to you under a choice of one of two |
| @@ -53,6 +53,9 @@ | |||
| 53 | #include "qib.h" | 53 | #include "qib.h" |
| 54 | #include "qib_common.h" | 54 | #include "qib_common.h" |
| 55 | 55 | ||
| 56 | #undef pr_fmt | ||
| 57 | #define pr_fmt(fmt) QIB_DRV_NAME ": " fmt | ||
| 58 | |||
| 56 | /* | 59 | /* |
| 57 | * Each client that opens the diag device must read then write | 60 | * Each client that opens the diag device must read then write |
| 58 | * offset 0, to prevent lossage from random cat or od. diag_state | 61 | * offset 0, to prevent lossage from random cat or od. diag_state |
| @@ -598,8 +601,8 @@ static ssize_t qib_diagpkt_write(struct file *fp, | |||
| 598 | } | 601 | } |
| 599 | tmpbuf = vmalloc(plen); | 602 | tmpbuf = vmalloc(plen); |
| 600 | if (!tmpbuf) { | 603 | if (!tmpbuf) { |
| 601 | qib_devinfo(dd->pcidev, "Unable to allocate tmp buffer, " | 604 | qib_devinfo(dd->pcidev, |
| 602 | "failing\n"); | 605 | "Unable to allocate tmp buffer, failing\n"); |
| 603 | ret = -ENOMEM; | 606 | ret = -ENOMEM; |
| 604 | goto bail; | 607 | goto bail; |
| 605 | } | 608 | } |
| @@ -693,7 +696,7 @@ int qib_register_observer(struct qib_devdata *dd, | |||
| 693 | ret = -ENOMEM; | 696 | ret = -ENOMEM; |
| 694 | olp = vmalloc(sizeof *olp); | 697 | olp = vmalloc(sizeof *olp); |
| 695 | if (!olp) { | 698 | if (!olp) { |
| 696 | printk(KERN_ERR QIB_DRV_NAME ": vmalloc for observer failed\n"); | 699 | pr_err("vmalloc for observer failed\n"); |
| 697 | goto bail; | 700 | goto bail; |
| 698 | } | 701 | } |
| 699 | if (olp) { | 702 | if (olp) { |
diff --git a/drivers/infiniband/hw/qib/qib_driver.c b/drivers/infiniband/hw/qib/qib_driver.c index 8895cfec5019..e41e7f7fc763 100644 --- a/drivers/infiniband/hw/qib/qib_driver.c +++ b/drivers/infiniband/hw/qib/qib_driver.c | |||
| @@ -764,8 +764,9 @@ int qib_reset_device(int unit) | |||
| 764 | qib_devinfo(dd->pcidev, "Reset on unit %u requested\n", unit); | 764 | qib_devinfo(dd->pcidev, "Reset on unit %u requested\n", unit); |
| 765 | 765 | ||
| 766 | if (!dd->kregbase || !(dd->flags & QIB_PRESENT)) { | 766 | if (!dd->kregbase || !(dd->flags & QIB_PRESENT)) { |
| 767 | qib_devinfo(dd->pcidev, "Invalid unit number %u or " | 767 | qib_devinfo(dd->pcidev, |
| 768 | "not initialized or not present\n", unit); | 768 | "Invalid unit number %u or not initialized or not present\n", |
| 769 | unit); | ||
| 769 | ret = -ENXIO; | 770 | ret = -ENXIO; |
| 770 | goto bail; | 771 | goto bail; |
| 771 | } | 772 | } |
| @@ -802,11 +803,13 @@ int qib_reset_device(int unit) | |||
| 802 | else | 803 | else |
| 803 | ret = -EAGAIN; | 804 | ret = -EAGAIN; |
| 804 | if (ret) | 805 | if (ret) |
| 805 | qib_dev_err(dd, "Reinitialize unit %u after " | 806 | qib_dev_err(dd, |
| 806 | "reset failed with %d\n", unit, ret); | 807 | "Reinitialize unit %u after reset failed with %d\n", |
| 808 | unit, ret); | ||
| 807 | else | 809 | else |
| 808 | qib_devinfo(dd->pcidev, "Reinitialized unit %u after " | 810 | qib_devinfo(dd->pcidev, |
| 809 | "resetting\n", unit); | 811 | "Reinitialized unit %u after resetting\n", |
| 812 | unit); | ||
| 810 | 813 | ||
| 811 | bail: | 814 | bail: |
| 812 | return ret; | 815 | return ret; |
diff --git a/drivers/infiniband/hw/qib/qib_eeprom.c b/drivers/infiniband/hw/qib/qib_eeprom.c index 92d9cfe98a68..4d5d71aaa2b4 100644 --- a/drivers/infiniband/hw/qib/qib_eeprom.c +++ b/drivers/infiniband/hw/qib/qib_eeprom.c | |||
| @@ -1,5 +1,6 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2006, 2007, 2008, 2009 QLogic Corporation. All rights reserved. | 2 | * Copyright (c) 2012 Intel Corporation. All rights reserved. |
| 3 | * Copyright (c) 2006 - 2012 QLogic Corporation. All rights reserved. | ||
| 3 | * Copyright (c) 2003, 2004, 2005, 2006 PathScale, Inc. All rights reserved. | 4 | * Copyright (c) 2003, 2004, 2005, 2006 PathScale, Inc. All rights reserved. |
| 4 | * | 5 | * |
| 5 | * This software is available to you under a choice of one of two | 6 | * This software is available to you under a choice of one of two |
| @@ -160,10 +161,9 @@ void qib_get_eeprom_info(struct qib_devdata *dd) | |||
| 160 | if (oguid > bguid[7]) { | 161 | if (oguid > bguid[7]) { |
| 161 | if (bguid[6] == 0xff) { | 162 | if (bguid[6] == 0xff) { |
| 162 | if (bguid[5] == 0xff) { | 163 | if (bguid[5] == 0xff) { |
| 163 | qib_dev_err(dd, "Can't set %s GUID" | 164 | qib_dev_err(dd, |
| 164 | " from base, wraps to" | 165 | "Can't set %s GUID from base, wraps to OUI!\n", |
| 165 | " OUI!\n", | 166 | qib_get_unit_name(t)); |
| 166 | qib_get_unit_name(t)); | ||
| 167 | dd->base_guid = 0; | 167 | dd->base_guid = 0; |
| 168 | goto bail; | 168 | goto bail; |
| 169 | } | 169 | } |
| @@ -182,8 +182,9 @@ void qib_get_eeprom_info(struct qib_devdata *dd) | |||
| 182 | len = sizeof(struct qib_flash); | 182 | len = sizeof(struct qib_flash); |
| 183 | buf = vmalloc(len); | 183 | buf = vmalloc(len); |
| 184 | if (!buf) { | 184 | if (!buf) { |
| 185 | qib_dev_err(dd, "Couldn't allocate memory to read %u " | 185 | qib_dev_err(dd, |
| 186 | "bytes from eeprom for GUID\n", len); | 186 | "Couldn't allocate memory to read %u bytes from eeprom for GUID\n", |
| 187 | len); | ||
| 187 | goto bail; | 188 | goto bail; |
| 188 | } | 189 | } |
| 189 | 190 | ||
| @@ -201,23 +202,25 @@ void qib_get_eeprom_info(struct qib_devdata *dd) | |||
| 201 | 202 | ||
| 202 | csum = flash_csum(ifp, 0); | 203 | csum = flash_csum(ifp, 0); |
| 203 | if (csum != ifp->if_csum) { | 204 | if (csum != ifp->if_csum) { |
| 204 | qib_devinfo(dd->pcidev, "Bad I2C flash checksum: " | 205 | qib_devinfo(dd->pcidev, |
| 205 | "0x%x, not 0x%x\n", csum, ifp->if_csum); | 206 | "Bad I2C flash checksum: 0x%x, not 0x%x\n", |
| 207 | csum, ifp->if_csum); | ||
| 206 | goto done; | 208 | goto done; |
| 207 | } | 209 | } |
| 208 | if (*(__be64 *) ifp->if_guid == cpu_to_be64(0) || | 210 | if (*(__be64 *) ifp->if_guid == cpu_to_be64(0) || |
| 209 | *(__be64 *) ifp->if_guid == ~cpu_to_be64(0)) { | 211 | *(__be64 *) ifp->if_guid == ~cpu_to_be64(0)) { |
| 210 | qib_dev_err(dd, "Invalid GUID %llx from flash; ignoring\n", | 212 | qib_dev_err(dd, |
| 211 | *(unsigned long long *) ifp->if_guid); | 213 | "Invalid GUID %llx from flash; ignoring\n", |
| 214 | *(unsigned long long *) ifp->if_guid); | ||
| 212 | /* don't allow GUID if all 0 or all 1's */ | 215 | /* don't allow GUID if all 0 or all 1's */ |
| 213 | goto done; | 216 | goto done; |
| 214 | } | 217 | } |
| 215 | 218 | ||
| 216 | /* complain, but allow it */ | 219 | /* complain, but allow it */ |
| 217 | if (*(u64 *) ifp->if_guid == 0x100007511000000ULL) | 220 | if (*(u64 *) ifp->if_guid == 0x100007511000000ULL) |
| 218 | qib_devinfo(dd->pcidev, "Warning, GUID %llx is " | 221 | qib_devinfo(dd->pcidev, |
| 219 | "default, probably not correct!\n", | 222 | "Warning, GUID %llx is default, probably not correct!\n", |
| 220 | *(unsigned long long *) ifp->if_guid); | 223 | *(unsigned long long *) ifp->if_guid); |
| 221 | 224 | ||
| 222 | bguid = ifp->if_guid; | 225 | bguid = ifp->if_guid; |
| 223 | if (!bguid[0] && !bguid[1] && !bguid[2]) { | 226 | if (!bguid[0] && !bguid[1] && !bguid[2]) { |
| @@ -260,8 +263,9 @@ void qib_get_eeprom_info(struct qib_devdata *dd) | |||
| 260 | memcpy(dd->serial, ifp->if_serial, | 263 | memcpy(dd->serial, ifp->if_serial, |
| 261 | sizeof ifp->if_serial); | 264 | sizeof ifp->if_serial); |
| 262 | if (!strstr(ifp->if_comment, "Tested successfully")) | 265 | if (!strstr(ifp->if_comment, "Tested successfully")) |
| 263 | qib_dev_err(dd, "Board SN %s did not pass functional " | 266 | qib_dev_err(dd, |
| 264 | "test: %s\n", dd->serial, ifp->if_comment); | 267 | "Board SN %s did not pass functional test: %s\n", |
| 268 | dd->serial, ifp->if_comment); | ||
| 265 | 269 | ||
| 266 | memcpy(&dd->eep_st_errs, &ifp->if_errcntp, QIB_EEP_LOG_CNT); | 270 | memcpy(&dd->eep_st_errs, &ifp->if_errcntp, QIB_EEP_LOG_CNT); |
| 267 | /* | 271 | /* |
| @@ -323,8 +327,9 @@ int qib_update_eeprom_log(struct qib_devdata *dd) | |||
| 323 | buf = vmalloc(len); | 327 | buf = vmalloc(len); |
| 324 | ret = 1; | 328 | ret = 1; |
| 325 | if (!buf) { | 329 | if (!buf) { |
| 326 | qib_dev_err(dd, "Couldn't allocate memory to read %u " | 330 | qib_dev_err(dd, |
| 327 | "bytes from eeprom for logging\n", len); | 331 | "Couldn't allocate memory to read %u bytes from eeprom for logging\n", |
| 332 | len); | ||
| 328 | goto bail; | 333 | goto bail; |
| 329 | } | 334 | } |
| 330 | 335 | ||
diff --git a/drivers/infiniband/hw/qib/qib_file_ops.c b/drivers/infiniband/hw/qib/qib_file_ops.c index a7403248d83d..faa44cb08071 100644 --- a/drivers/infiniband/hw/qib/qib_file_ops.c +++ b/drivers/infiniband/hw/qib/qib_file_ops.c | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2006, 2007, 2008, 2009, 2010 QLogic Corporation. | 2 | * Copyright (c) 2012 Intel Corporation. All rights reserved. |
| 3 | * All rights reserved. | 3 | * Copyright (c) 2006 - 2012 QLogic Corporation. All rights reserved. |
| 4 | * Copyright (c) 2003, 2004, 2005, 2006 PathScale, Inc. All rights reserved. | 4 | * Copyright (c) 2003, 2004, 2005, 2006 PathScale, Inc. All rights reserved. |
| 5 | * | 5 | * |
| 6 | * This software is available to you under a choice of one of two | 6 | * This software is available to you under a choice of one of two |
| @@ -49,6 +49,9 @@ | |||
| 49 | #include "qib_common.h" | 49 | #include "qib_common.h" |
| 50 | #include "qib_user_sdma.h" | 50 | #include "qib_user_sdma.h" |
| 51 | 51 | ||
| 52 | #undef pr_fmt | ||
| 53 | #define pr_fmt(fmt) QIB_DRV_NAME ": " fmt | ||
| 54 | |||
| 52 | static int qib_open(struct inode *, struct file *); | 55 | static int qib_open(struct inode *, struct file *); |
| 53 | static int qib_close(struct inode *, struct file *); | 56 | static int qib_close(struct inode *, struct file *); |
| 54 | static ssize_t qib_write(struct file *, const char __user *, size_t, loff_t *); | 57 | static ssize_t qib_write(struct file *, const char __user *, size_t, loff_t *); |
| @@ -315,8 +318,9 @@ static int qib_tid_update(struct qib_ctxtdata *rcd, struct file *fp, | |||
| 315 | } | 318 | } |
| 316 | if (cnt > tidcnt) { | 319 | if (cnt > tidcnt) { |
| 317 | /* make sure it all fits in tid_pg_list */ | 320 | /* make sure it all fits in tid_pg_list */ |
| 318 | qib_devinfo(dd->pcidev, "Process tried to allocate %u " | 321 | qib_devinfo(dd->pcidev, |
| 319 | "TIDs, only trying max (%u)\n", cnt, tidcnt); | 322 | "Process tried to allocate %u TIDs, only trying max (%u)\n", |
| 323 | cnt, tidcnt); | ||
| 320 | cnt = tidcnt; | 324 | cnt = tidcnt; |
| 321 | } | 325 | } |
| 322 | pagep = (struct page **) rcd->tid_pg_list; | 326 | pagep = (struct page **) rcd->tid_pg_list; |
| @@ -750,9 +754,9 @@ static int qib_mmap_mem(struct vm_area_struct *vma, struct qib_ctxtdata *rcd, | |||
| 750 | ret = remap_pfn_range(vma, vma->vm_start, pfn, | 754 | ret = remap_pfn_range(vma, vma->vm_start, pfn, |
| 751 | len, vma->vm_page_prot); | 755 | len, vma->vm_page_prot); |
| 752 | if (ret) | 756 | if (ret) |
| 753 | qib_devinfo(dd->pcidev, "%s ctxt%u mmap of %lx, %x " | 757 | qib_devinfo(dd->pcidev, |
| 754 | "bytes failed: %d\n", what, rcd->ctxt, | 758 | "%s ctxt%u mmap of %lx, %x bytes failed: %d\n", |
| 755 | pfn, len, ret); | 759 | what, rcd->ctxt, pfn, len, ret); |
| 756 | bail: | 760 | bail: |
| 757 | return ret; | 761 | return ret; |
| 758 | } | 762 | } |
| @@ -771,8 +775,9 @@ static int mmap_ureg(struct vm_area_struct *vma, struct qib_devdata *dd, | |||
| 771 | */ | 775 | */ |
| 772 | sz = dd->flags & QIB_HAS_HDRSUPP ? 2 * PAGE_SIZE : PAGE_SIZE; | 776 | sz = dd->flags & QIB_HAS_HDRSUPP ? 2 * PAGE_SIZE : PAGE_SIZE; |
| 773 | if ((vma->vm_end - vma->vm_start) > sz) { | 777 | if ((vma->vm_end - vma->vm_start) > sz) { |
| 774 | qib_devinfo(dd->pcidev, "FAIL mmap userreg: reqlen " | 778 | qib_devinfo(dd->pcidev, |
| 775 | "%lx > PAGE\n", vma->vm_end - vma->vm_start); | 779 | "FAIL mmap userreg: reqlen %lx > PAGE\n", |
| 780 | vma->vm_end - vma->vm_start); | ||
| 776 | ret = -EFAULT; | 781 | ret = -EFAULT; |
| 777 | } else { | 782 | } else { |
| 778 | phys = dd->physaddr + ureg; | 783 | phys = dd->physaddr + ureg; |
| @@ -802,8 +807,8 @@ static int mmap_piobufs(struct vm_area_struct *vma, | |||
| 802 | * for it. | 807 | * for it. |
| 803 | */ | 808 | */ |
| 804 | if ((vma->vm_end - vma->vm_start) > (piocnt * dd->palign)) { | 809 | if ((vma->vm_end - vma->vm_start) > (piocnt * dd->palign)) { |
| 805 | qib_devinfo(dd->pcidev, "FAIL mmap piobufs: " | 810 | qib_devinfo(dd->pcidev, |
| 806 | "reqlen %lx > PAGE\n", | 811 | "FAIL mmap piobufs: reqlen %lx > PAGE\n", |
| 807 | vma->vm_end - vma->vm_start); | 812 | vma->vm_end - vma->vm_start); |
| 808 | ret = -EINVAL; | 813 | ret = -EINVAL; |
| 809 | goto bail; | 814 | goto bail; |
| @@ -847,8 +852,8 @@ static int mmap_rcvegrbufs(struct vm_area_struct *vma, | |||
| 847 | size = rcd->rcvegrbuf_size; | 852 | size = rcd->rcvegrbuf_size; |
| 848 | total_size = rcd->rcvegrbuf_chunks * size; | 853 | total_size = rcd->rcvegrbuf_chunks * size; |
| 849 | if ((vma->vm_end - vma->vm_start) > total_size) { | 854 | if ((vma->vm_end - vma->vm_start) > total_size) { |
| 850 | qib_devinfo(dd->pcidev, "FAIL on egr bufs: " | 855 | qib_devinfo(dd->pcidev, |
| 851 | "reqlen %lx > actual %lx\n", | 856 | "FAIL on egr bufs: reqlen %lx > actual %lx\n", |
| 852 | vma->vm_end - vma->vm_start, | 857 | vma->vm_end - vma->vm_start, |
| 853 | (unsigned long) total_size); | 858 | (unsigned long) total_size); |
| 854 | ret = -EINVAL; | 859 | ret = -EINVAL; |
| @@ -856,8 +861,9 @@ static int mmap_rcvegrbufs(struct vm_area_struct *vma, | |||
| 856 | } | 861 | } |
| 857 | 862 | ||
| 858 | if (vma->vm_flags & VM_WRITE) { | 863 | if (vma->vm_flags & VM_WRITE) { |
| 859 | qib_devinfo(dd->pcidev, "Can't map eager buffers as " | 864 | qib_devinfo(dd->pcidev, |
| 860 | "writable (flags=%lx)\n", vma->vm_flags); | 865 | "Can't map eager buffers as writable (flags=%lx)\n", |
| 866 | vma->vm_flags); | ||
| 861 | ret = -EPERM; | 867 | ret = -EPERM; |
| 862 | goto bail; | 868 | goto bail; |
| 863 | } | 869 | } |
| @@ -1270,8 +1276,8 @@ static int setup_ctxt(struct qib_pportdata *ppd, int ctxt, | |||
| 1270 | GFP_KERNEL); | 1276 | GFP_KERNEL); |
| 1271 | 1277 | ||
| 1272 | if (!rcd || !ptmp) { | 1278 | if (!rcd || !ptmp) { |
| 1273 | qib_dev_err(dd, "Unable to allocate ctxtdata " | 1279 | qib_dev_err(dd, |
| 1274 | "memory, failing open\n"); | 1280 | "Unable to allocate ctxtdata memory, failing open\n"); |
| 1275 | ret = -ENOMEM; | 1281 | ret = -ENOMEM; |
| 1276 | goto bailerr; | 1282 | goto bailerr; |
| 1277 | } | 1283 | } |
| @@ -1560,10 +1566,10 @@ done_chk_sdma: | |||
| 1560 | } else if (weight == 1 && | 1566 | } else if (weight == 1 && |
| 1561 | test_bit(cpumask_first(tsk_cpus_allowed(current)), | 1567 | test_bit(cpumask_first(tsk_cpus_allowed(current)), |
| 1562 | qib_cpulist)) | 1568 | qib_cpulist)) |
| 1563 | qib_devinfo(dd->pcidev, "%s PID %u affinity " | 1569 | qib_devinfo(dd->pcidev, |
| 1564 | "set to cpu %d; already allocated\n", | 1570 | "%s PID %u affinity set to cpu %d; already allocated\n", |
| 1565 | current->comm, current->pid, | 1571 | current->comm, current->pid, |
| 1566 | cpumask_first(tsk_cpus_allowed(current))); | 1572 | cpumask_first(tsk_cpus_allowed(current))); |
| 1567 | } | 1573 | } |
| 1568 | 1574 | ||
| 1569 | mutex_unlock(&qib_mutex); | 1575 | mutex_unlock(&qib_mutex); |
| @@ -2185,8 +2191,7 @@ int qib_cdev_init(int minor, const char *name, | |||
| 2185 | 2191 | ||
| 2186 | cdev = cdev_alloc(); | 2192 | cdev = cdev_alloc(); |
| 2187 | if (!cdev) { | 2193 | if (!cdev) { |
| 2188 | printk(KERN_ERR QIB_DRV_NAME | 2194 | pr_err("Could not allocate cdev for minor %d, %s\n", |
| 2189 | ": Could not allocate cdev for minor %d, %s\n", | ||
| 2190 | minor, name); | 2195 | minor, name); |
| 2191 | ret = -ENOMEM; | 2196 | ret = -ENOMEM; |
| 2192 | goto done; | 2197 | goto done; |
| @@ -2198,8 +2203,7 @@ int qib_cdev_init(int minor, const char *name, | |||
| 2198 | 2203 | ||
| 2199 | ret = cdev_add(cdev, dev, 1); | 2204 | ret = cdev_add(cdev, dev, 1); |
| 2200 | if (ret < 0) { | 2205 | if (ret < 0) { |
| 2201 | printk(KERN_ERR QIB_DRV_NAME | 2206 | pr_err("Could not add cdev for minor %d, %s (err %d)\n", |
| 2202 | ": Could not add cdev for minor %d, %s (err %d)\n", | ||
| 2203 | minor, name, -ret); | 2207 | minor, name, -ret); |
| 2204 | goto err_cdev; | 2208 | goto err_cdev; |
| 2205 | } | 2209 | } |
| @@ -2209,8 +2213,7 @@ int qib_cdev_init(int minor, const char *name, | |||
| 2209 | goto done; | 2213 | goto done; |
| 2210 | ret = PTR_ERR(device); | 2214 | ret = PTR_ERR(device); |
| 2211 | device = NULL; | 2215 | device = NULL; |
| 2212 | printk(KERN_ERR QIB_DRV_NAME ": Could not create " | 2216 | pr_err("Could not create device for minor %d, %s (err %d)\n", |
| 2213 | "device for minor %d, %s (err %d)\n", | ||
| 2214 | minor, name, -ret); | 2217 | minor, name, -ret); |
| 2215 | err_cdev: | 2218 | err_cdev: |
| 2216 | cdev_del(cdev); | 2219 | cdev_del(cdev); |
| @@ -2245,16 +2248,14 @@ int __init qib_dev_init(void) | |||
| 2245 | 2248 | ||
| 2246 | ret = alloc_chrdev_region(&qib_dev, 0, QIB_NMINORS, QIB_DRV_NAME); | 2249 | ret = alloc_chrdev_region(&qib_dev, 0, QIB_NMINORS, QIB_DRV_NAME); |
| 2247 | if (ret < 0) { | 2250 | if (ret < 0) { |
| 2248 | printk(KERN_ERR QIB_DRV_NAME ": Could not allocate " | 2251 | pr_err("Could not allocate chrdev region (err %d)\n", -ret); |
| 2249 | "chrdev region (err %d)\n", -ret); | ||
| 2250 | goto done; | 2252 | goto done; |
| 2251 | } | 2253 | } |
| 2252 | 2254 | ||
| 2253 | qib_class = class_create(THIS_MODULE, "ipath"); | 2255 | qib_class = class_create(THIS_MODULE, "ipath"); |
| 2254 | if (IS_ERR(qib_class)) { | 2256 | if (IS_ERR(qib_class)) { |
| 2255 | ret = PTR_ERR(qib_class); | 2257 | ret = PTR_ERR(qib_class); |
| 2256 | printk(KERN_ERR QIB_DRV_NAME ": Could not create " | 2258 | pr_err("Could not create device class (err %d)\n", -ret); |
| 2257 | "device class (err %d)\n", -ret); | ||
| 2258 | unregister_chrdev_region(qib_dev, QIB_NMINORS); | 2259 | unregister_chrdev_region(qib_dev, QIB_NMINORS); |
| 2259 | } | 2260 | } |
| 2260 | 2261 | ||
diff --git a/drivers/infiniband/hw/qib/qib_fs.c b/drivers/infiniband/hw/qib/qib_fs.c index 05e0f17c5b44..cff8a6c32161 100644 --- a/drivers/infiniband/hw/qib/qib_fs.c +++ b/drivers/infiniband/hw/qib/qib_fs.c | |||
| @@ -1,5 +1,6 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2006, 2007, 2008, 2009 QLogic Corporation. All rights reserved. | 2 | * Copyright (c) 2012 Intel Corporation. All rights reserved. |
| 3 | * Copyright (c) 2006 - 2012 QLogic Corporation. All rights reserved. | ||
| 3 | * Copyright (c) 2006 PathScale, Inc. All rights reserved. | 4 | * Copyright (c) 2006 PathScale, Inc. All rights reserved. |
| 4 | * | 5 | * |
| 5 | * This software is available to you under a choice of one of two | 6 | * This software is available to you under a choice of one of two |
| @@ -382,7 +383,7 @@ static int add_cntr_files(struct super_block *sb, struct qib_devdata *dd) | |||
| 382 | ret = create_file(unit, S_IFDIR|S_IRUGO|S_IXUGO, sb->s_root, &dir, | 383 | ret = create_file(unit, S_IFDIR|S_IRUGO|S_IXUGO, sb->s_root, &dir, |
| 383 | &simple_dir_operations, dd); | 384 | &simple_dir_operations, dd); |
| 384 | if (ret) { | 385 | if (ret) { |
| 385 | printk(KERN_ERR "create_file(%s) failed: %d\n", unit, ret); | 386 | pr_err("create_file(%s) failed: %d\n", unit, ret); |
| 386 | goto bail; | 387 | goto bail; |
| 387 | } | 388 | } |
| 388 | 389 | ||
| @@ -390,21 +391,21 @@ static int add_cntr_files(struct super_block *sb, struct qib_devdata *dd) | |||
| 390 | ret = create_file("counters", S_IFREG|S_IRUGO, dir, &tmp, | 391 | ret = create_file("counters", S_IFREG|S_IRUGO, dir, &tmp, |
| 391 | &cntr_ops[0], dd); | 392 | &cntr_ops[0], dd); |
| 392 | if (ret) { | 393 | if (ret) { |
| 393 | printk(KERN_ERR "create_file(%s/counters) failed: %d\n", | 394 | pr_err("create_file(%s/counters) failed: %d\n", |
| 394 | unit, ret); | 395 | unit, ret); |
| 395 | goto bail; | 396 | goto bail; |
| 396 | } | 397 | } |
| 397 | ret = create_file("counter_names", S_IFREG|S_IRUGO, dir, &tmp, | 398 | ret = create_file("counter_names", S_IFREG|S_IRUGO, dir, &tmp, |
| 398 | &cntr_ops[1], dd); | 399 | &cntr_ops[1], dd); |
| 399 | if (ret) { | 400 | if (ret) { |
| 400 | printk(KERN_ERR "create_file(%s/counter_names) failed: %d\n", | 401 | pr_err("create_file(%s/counter_names) failed: %d\n", |
| 401 | unit, ret); | 402 | unit, ret); |
| 402 | goto bail; | 403 | goto bail; |
| 403 | } | 404 | } |
| 404 | ret = create_file("portcounter_names", S_IFREG|S_IRUGO, dir, &tmp, | 405 | ret = create_file("portcounter_names", S_IFREG|S_IRUGO, dir, &tmp, |
| 405 | &portcntr_ops[0], dd); | 406 | &portcntr_ops[0], dd); |
| 406 | if (ret) { | 407 | if (ret) { |
| 407 | printk(KERN_ERR "create_file(%s/%s) failed: %d\n", | 408 | pr_err("create_file(%s/%s) failed: %d\n", |
| 408 | unit, "portcounter_names", ret); | 409 | unit, "portcounter_names", ret); |
| 409 | goto bail; | 410 | goto bail; |
| 410 | } | 411 | } |
| @@ -416,7 +417,7 @@ static int add_cntr_files(struct super_block *sb, struct qib_devdata *dd) | |||
| 416 | ret = create_file(fname, S_IFREG|S_IRUGO, dir, &tmp, | 417 | ret = create_file(fname, S_IFREG|S_IRUGO, dir, &tmp, |
| 417 | &portcntr_ops[i], dd); | 418 | &portcntr_ops[i], dd); |
| 418 | if (ret) { | 419 | if (ret) { |
| 419 | printk(KERN_ERR "create_file(%s/%s) failed: %d\n", | 420 | pr_err("create_file(%s/%s) failed: %d\n", |
| 420 | unit, fname, ret); | 421 | unit, fname, ret); |
| 421 | goto bail; | 422 | goto bail; |
| 422 | } | 423 | } |
| @@ -426,7 +427,7 @@ static int add_cntr_files(struct super_block *sb, struct qib_devdata *dd) | |||
| 426 | ret = create_file(fname, S_IFREG|S_IRUGO, dir, &tmp, | 427 | ret = create_file(fname, S_IFREG|S_IRUGO, dir, &tmp, |
| 427 | &qsfp_ops[i - 1], dd); | 428 | &qsfp_ops[i - 1], dd); |
| 428 | if (ret) { | 429 | if (ret) { |
| 429 | printk(KERN_ERR "create_file(%s/%s) failed: %d\n", | 430 | pr_err("create_file(%s/%s) failed: %d\n", |
| 430 | unit, fname, ret); | 431 | unit, fname, ret); |
| 431 | goto bail; | 432 | goto bail; |
| 432 | } | 433 | } |
| @@ -435,7 +436,7 @@ static int add_cntr_files(struct super_block *sb, struct qib_devdata *dd) | |||
| 435 | ret = create_file("flash", S_IFREG|S_IWUSR|S_IRUGO, dir, &tmp, | 436 | ret = create_file("flash", S_IFREG|S_IWUSR|S_IRUGO, dir, &tmp, |
| 436 | &flash_ops, dd); | 437 | &flash_ops, dd); |
| 437 | if (ret) | 438 | if (ret) |
| 438 | printk(KERN_ERR "create_file(%s/flash) failed: %d\n", | 439 | pr_err("create_file(%s/flash) failed: %d\n", |
| 439 | unit, ret); | 440 | unit, ret); |
| 440 | bail: | 441 | bail: |
| 441 | return ret; | 442 | return ret; |
| @@ -486,7 +487,7 @@ static int remove_device_files(struct super_block *sb, | |||
| 486 | 487 | ||
| 487 | if (IS_ERR(dir)) { | 488 | if (IS_ERR(dir)) { |
| 488 | ret = PTR_ERR(dir); | 489 | ret = PTR_ERR(dir); |
| 489 | printk(KERN_ERR "Lookup of %s failed\n", unit); | 490 | pr_err("Lookup of %s failed\n", unit); |
| 490 | goto bail; | 491 | goto bail; |
| 491 | } | 492 | } |
| 492 | 493 | ||
| @@ -532,7 +533,7 @@ static int qibfs_fill_super(struct super_block *sb, void *data, int silent) | |||
| 532 | 533 | ||
| 533 | ret = simple_fill_super(sb, QIBFS_MAGIC, files); | 534 | ret = simple_fill_super(sb, QIBFS_MAGIC, files); |
| 534 | if (ret) { | 535 | if (ret) { |
| 535 | printk(KERN_ERR "simple_fill_super failed: %d\n", ret); | 536 | pr_err("simple_fill_super failed: %d\n", ret); |
| 536 | goto bail; | 537 | goto bail; |
| 537 | } | 538 | } |
| 538 | 539 | ||
diff --git a/drivers/infiniband/hw/qib/qib_iba6120.c b/drivers/infiniband/hw/qib/qib_iba6120.c index 4d352b90750a..a099ac171e22 100644 --- a/drivers/infiniband/hw/qib/qib_iba6120.c +++ b/drivers/infiniband/hw/qib/qib_iba6120.c | |||
| @@ -753,8 +753,8 @@ static void qib_handle_6120_hwerrors(struct qib_devdata *dd, char *msg, | |||
| 753 | if (!hwerrs) | 753 | if (!hwerrs) |
| 754 | return; | 754 | return; |
| 755 | if (hwerrs == ~0ULL) { | 755 | if (hwerrs == ~0ULL) { |
| 756 | qib_dev_err(dd, "Read of hardware error status failed " | 756 | qib_dev_err(dd, |
| 757 | "(all bits set); ignoring\n"); | 757 | "Read of hardware error status failed (all bits set); ignoring\n"); |
| 758 | return; | 758 | return; |
| 759 | } | 759 | } |
| 760 | qib_stats.sps_hwerrs++; | 760 | qib_stats.sps_hwerrs++; |
| @@ -779,13 +779,14 @@ static void qib_handle_6120_hwerrors(struct qib_devdata *dd, char *msg, | |||
| 779 | * or it's occurred within the last 5 seconds. | 779 | * or it's occurred within the last 5 seconds. |
| 780 | */ | 780 | */ |
| 781 | if (hwerrs & ~(TXE_PIO_PARITY | RXEMEMPARITYERR_EAGERTID)) | 781 | if (hwerrs & ~(TXE_PIO_PARITY | RXEMEMPARITYERR_EAGERTID)) |
| 782 | qib_devinfo(dd->pcidev, "Hardware error: hwerr=0x%llx " | 782 | qib_devinfo(dd->pcidev, |
| 783 | "(cleared)\n", (unsigned long long) hwerrs); | 783 | "Hardware error: hwerr=0x%llx (cleared)\n", |
| 784 | (unsigned long long) hwerrs); | ||
| 784 | 785 | ||
| 785 | if (hwerrs & ~IB_HWE_BITSEXTANT) | 786 | if (hwerrs & ~IB_HWE_BITSEXTANT) |
| 786 | qib_dev_err(dd, "hwerror interrupt with unknown errors " | 787 | qib_dev_err(dd, |
| 787 | "%llx set\n", (unsigned long long) | 788 | "hwerror interrupt with unknown errors %llx set\n", |
| 788 | (hwerrs & ~IB_HWE_BITSEXTANT)); | 789 | (unsigned long long)(hwerrs & ~IB_HWE_BITSEXTANT)); |
| 789 | 790 | ||
| 790 | ctrl = qib_read_kreg32(dd, kr_control); | 791 | ctrl = qib_read_kreg32(dd, kr_control); |
| 791 | if ((ctrl & QLOGIC_IB_C_FREEZEMODE) && !dd->diag_client) { | 792 | if ((ctrl & QLOGIC_IB_C_FREEZEMODE) && !dd->diag_client) { |
| @@ -815,8 +816,9 @@ static void qib_handle_6120_hwerrors(struct qib_devdata *dd, char *msg, | |||
| 815 | 816 | ||
| 816 | if (hwerrs & HWE_MASK(PowerOnBISTFailed)) { | 817 | if (hwerrs & HWE_MASK(PowerOnBISTFailed)) { |
| 817 | isfatal = 1; | 818 | isfatal = 1; |
| 818 | strlcat(msg, "[Memory BIST test failed, InfiniPath hardware" | 819 | strlcat(msg, |
| 819 | " unusable]", msgl); | 820 | "[Memory BIST test failed, InfiniPath hardware unusable]", |
| 821 | msgl); | ||
| 820 | /* ignore from now on, so disable until driver reloaded */ | 822 | /* ignore from now on, so disable until driver reloaded */ |
| 821 | dd->cspec->hwerrmask &= ~HWE_MASK(PowerOnBISTFailed); | 823 | dd->cspec->hwerrmask &= ~HWE_MASK(PowerOnBISTFailed); |
| 822 | qib_write_kreg(dd, kr_hwerrmask, dd->cspec->hwerrmask); | 824 | qib_write_kreg(dd, kr_hwerrmask, dd->cspec->hwerrmask); |
| @@ -868,8 +870,9 @@ static void qib_handle_6120_hwerrors(struct qib_devdata *dd, char *msg, | |||
| 868 | *msg = 0; /* recovered from all of them */ | 870 | *msg = 0; /* recovered from all of them */ |
| 869 | 871 | ||
| 870 | if (isfatal && !dd->diag_client) { | 872 | if (isfatal && !dd->diag_client) { |
| 871 | qib_dev_err(dd, "Fatal Hardware Error, no longer" | 873 | qib_dev_err(dd, |
| 872 | " usable, SN %.16s\n", dd->serial); | 874 | "Fatal Hardware Error, no longer usable, SN %.16s\n", |
| 875 | dd->serial); | ||
| 873 | /* | 876 | /* |
| 874 | * for /sys status file and user programs to print; if no | 877 | * for /sys status file and user programs to print; if no |
| 875 | * trailing brace is copied, we'll know it was truncated. | 878 | * trailing brace is copied, we'll know it was truncated. |
| @@ -1017,9 +1020,9 @@ static void handle_6120_errors(struct qib_devdata *dd, u64 errs) | |||
| 1017 | qib_inc_eeprom_err(dd, log_idx, 1); | 1020 | qib_inc_eeprom_err(dd, log_idx, 1); |
| 1018 | 1021 | ||
| 1019 | if (errs & ~IB_E_BITSEXTANT) | 1022 | if (errs & ~IB_E_BITSEXTANT) |
| 1020 | qib_dev_err(dd, "error interrupt with unknown errors " | 1023 | qib_dev_err(dd, |
| 1021 | "%llx set\n", | 1024 | "error interrupt with unknown errors %llx set\n", |
| 1022 | (unsigned long long) (errs & ~IB_E_BITSEXTANT)); | 1025 | (unsigned long long) (errs & ~IB_E_BITSEXTANT)); |
| 1023 | 1026 | ||
| 1024 | if (errs & E_SUM_ERRS) { | 1027 | if (errs & E_SUM_ERRS) { |
| 1025 | qib_disarm_6120_senderrbufs(ppd); | 1028 | qib_disarm_6120_senderrbufs(ppd); |
| @@ -1089,8 +1092,8 @@ static void handle_6120_errors(struct qib_devdata *dd, u64 errs) | |||
| 1089 | } | 1092 | } |
| 1090 | 1093 | ||
| 1091 | if (errs & ERR_MASK(ResetNegated)) { | 1094 | if (errs & ERR_MASK(ResetNegated)) { |
| 1092 | qib_dev_err(dd, "Got reset, requires re-init " | 1095 | qib_dev_err(dd, |
| 1093 | "(unload and reload driver)\n"); | 1096 | "Got reset, requires re-init (unload and reload driver)\n"); |
| 1094 | dd->flags &= ~QIB_INITTED; /* needs re-init */ | 1097 | dd->flags &= ~QIB_INITTED; /* needs re-init */ |
| 1095 | /* mark as having had error */ | 1098 | /* mark as having had error */ |
| 1096 | *dd->devstatusp |= QIB_STATUS_HWERROR; | 1099 | *dd->devstatusp |= QIB_STATUS_HWERROR; |
| @@ -1541,8 +1544,9 @@ static noinline void unlikely_6120_intr(struct qib_devdata *dd, u64 istat) | |||
| 1541 | qib_stats.sps_errints++; | 1544 | qib_stats.sps_errints++; |
| 1542 | estat = qib_read_kreg64(dd, kr_errstatus); | 1545 | estat = qib_read_kreg64(dd, kr_errstatus); |
| 1543 | if (!estat) | 1546 | if (!estat) |
| 1544 | qib_devinfo(dd->pcidev, "error interrupt (%Lx), " | 1547 | qib_devinfo(dd->pcidev, |
| 1545 | "but no error bits set!\n", istat); | 1548 | "error interrupt (%Lx), but no error bits set!\n", |
| 1549 | istat); | ||
| 1546 | handle_6120_errors(dd, estat); | 1550 | handle_6120_errors(dd, estat); |
| 1547 | } | 1551 | } |
| 1548 | 1552 | ||
| @@ -1715,16 +1719,16 @@ static void qib_setup_6120_interrupt(struct qib_devdata *dd) | |||
| 1715 | } | 1719 | } |
| 1716 | 1720 | ||
| 1717 | if (!dd->cspec->irq) | 1721 | if (!dd->cspec->irq) |
| 1718 | qib_dev_err(dd, "irq is 0, BIOS error? Interrupts won't " | 1722 | qib_dev_err(dd, |
| 1719 | "work\n"); | 1723 | "irq is 0, BIOS error? Interrupts won't work\n"); |
| 1720 | else { | 1724 | else { |
| 1721 | int ret; | 1725 | int ret; |
| 1722 | ret = request_irq(dd->cspec->irq, qib_6120intr, 0, | 1726 | ret = request_irq(dd->cspec->irq, qib_6120intr, 0, |
| 1723 | QIB_DRV_NAME, dd); | 1727 | QIB_DRV_NAME, dd); |
| 1724 | if (ret) | 1728 | if (ret) |
| 1725 | qib_dev_err(dd, "Couldn't setup interrupt " | 1729 | qib_dev_err(dd, |
| 1726 | "(irq=%d): %d\n", dd->cspec->irq, | 1730 | "Couldn't setup interrupt (irq=%d): %d\n", |
| 1727 | ret); | 1731 | dd->cspec->irq, ret); |
| 1728 | } | 1732 | } |
| 1729 | } | 1733 | } |
| 1730 | 1734 | ||
| @@ -1759,8 +1763,9 @@ static void pe_boardname(struct qib_devdata *dd) | |||
| 1759 | snprintf(dd->boardname, namelen, "%s", n); | 1763 | snprintf(dd->boardname, namelen, "%s", n); |
| 1760 | 1764 | ||
| 1761 | if (dd->majrev != 4 || !dd->minrev || dd->minrev > 2) | 1765 | if (dd->majrev != 4 || !dd->minrev || dd->minrev > 2) |
| 1762 | qib_dev_err(dd, "Unsupported InfiniPath hardware revision " | 1766 | qib_dev_err(dd, |
| 1763 | "%u.%u!\n", dd->majrev, dd->minrev); | 1767 | "Unsupported InfiniPath hardware revision %u.%u!\n", |
| 1768 | dd->majrev, dd->minrev); | ||
| 1764 | 1769 | ||
| 1765 | snprintf(dd->boardversion, sizeof(dd->boardversion), | 1770 | snprintf(dd->boardversion, sizeof(dd->boardversion), |
| 1766 | "ChipABI %u.%u, %s, InfiniPath%u %u.%u, SW Compat %u\n", | 1771 | "ChipABI %u.%u, %s, InfiniPath%u %u.%u, SW Compat %u\n", |
| @@ -1833,8 +1838,8 @@ static int qib_6120_setup_reset(struct qib_devdata *dd) | |||
| 1833 | bail: | 1838 | bail: |
| 1834 | if (ret) { | 1839 | if (ret) { |
| 1835 | if (qib_pcie_params(dd, dd->lbus_width, NULL, NULL)) | 1840 | if (qib_pcie_params(dd, dd->lbus_width, NULL, NULL)) |
| 1836 | qib_dev_err(dd, "Reset failed to setup PCIe or " | 1841 | qib_dev_err(dd, |
| 1837 | "interrupts; continuing anyway\n"); | 1842 | "Reset failed to setup PCIe or interrupts; continuing anyway\n"); |
| 1838 | /* clear the reset error, init error/hwerror mask */ | 1843 | /* clear the reset error, init error/hwerror mask */ |
| 1839 | qib_6120_init_hwerrors(dd); | 1844 | qib_6120_init_hwerrors(dd); |
| 1840 | /* for Rev2 error interrupts; nop for rev 1 */ | 1845 | /* for Rev2 error interrupts; nop for rev 1 */ |
| @@ -1876,8 +1881,9 @@ static void qib_6120_put_tid(struct qib_devdata *dd, u64 __iomem *tidptr, | |||
| 1876 | } | 1881 | } |
| 1877 | pa >>= 11; | 1882 | pa >>= 11; |
| 1878 | if (pa & ~QLOGIC_IB_RT_ADDR_MASK) { | 1883 | if (pa & ~QLOGIC_IB_RT_ADDR_MASK) { |
| 1879 | qib_dev_err(dd, "Physical page address 0x%lx " | 1884 | qib_dev_err(dd, |
| 1880 | "larger than supported\n", pa); | 1885 | "Physical page address 0x%lx larger than supported\n", |
| 1886 | pa); | ||
| 1881 | return; | 1887 | return; |
| 1882 | } | 1888 | } |
| 1883 | 1889 | ||
| @@ -1941,8 +1947,9 @@ static void qib_6120_put_tid_2(struct qib_devdata *dd, u64 __iomem *tidptr, | |||
| 1941 | } | 1947 | } |
| 1942 | pa >>= 11; | 1948 | pa >>= 11; |
| 1943 | if (pa & ~QLOGIC_IB_RT_ADDR_MASK) { | 1949 | if (pa & ~QLOGIC_IB_RT_ADDR_MASK) { |
| 1944 | qib_dev_err(dd, "Physical page address 0x%lx " | 1950 | qib_dev_err(dd, |
| 1945 | "larger than supported\n", pa); | 1951 | "Physical page address 0x%lx larger than supported\n", |
| 1952 | pa); | ||
| 1946 | return; | 1953 | return; |
| 1947 | } | 1954 | } |
| 1948 | 1955 | ||
| @@ -2928,8 +2935,9 @@ static int qib_6120_set_loopback(struct qib_pportdata *ppd, const char *what) | |||
| 2928 | ppd->dd->unit, ppd->port); | 2935 | ppd->dd->unit, ppd->port); |
| 2929 | } else if (!strncmp(what, "off", 3)) { | 2936 | } else if (!strncmp(what, "off", 3)) { |
| 2930 | ppd->dd->cspec->ibcctrl &= ~SYM_MASK(IBCCtrl, Loopback); | 2937 | ppd->dd->cspec->ibcctrl &= ~SYM_MASK(IBCCtrl, Loopback); |
| 2931 | qib_devinfo(ppd->dd->pcidev, "Disabling IB%u:%u IBC loopback " | 2938 | qib_devinfo(ppd->dd->pcidev, |
| 2932 | "(normal)\n", ppd->dd->unit, ppd->port); | 2939 | "Disabling IB%u:%u IBC loopback (normal)\n", |
| 2940 | ppd->dd->unit, ppd->port); | ||
| 2933 | } else | 2941 | } else |
| 2934 | ret = -EINVAL; | 2942 | ret = -EINVAL; |
| 2935 | if (!ret) { | 2943 | if (!ret) { |
| @@ -3186,11 +3194,10 @@ static int qib_late_6120_initreg(struct qib_devdata *dd) | |||
| 3186 | qib_write_kreg(dd, kr_sendpioavailaddr, dd->pioavailregs_phys); | 3194 | qib_write_kreg(dd, kr_sendpioavailaddr, dd->pioavailregs_phys); |
| 3187 | val = qib_read_kreg64(dd, kr_sendpioavailaddr); | 3195 | val = qib_read_kreg64(dd, kr_sendpioavailaddr); |
| 3188 | if (val != dd->pioavailregs_phys) { | 3196 | if (val != dd->pioavailregs_phys) { |
| 3189 | qib_dev_err(dd, "Catastrophic software error, " | 3197 | qib_dev_err(dd, |
| 3190 | "SendPIOAvailAddr written as %lx, " | 3198 | "Catastrophic software error, SendPIOAvailAddr written as %lx, read back as %llx\n", |
| 3191 | "read back as %llx\n", | 3199 | (unsigned long) dd->pioavailregs_phys, |
| 3192 | (unsigned long) dd->pioavailregs_phys, | 3200 | (unsigned long long) val); |
| 3193 | (unsigned long long) val); | ||
| 3194 | ret = -EINVAL; | 3201 | ret = -EINVAL; |
| 3195 | } | 3202 | } |
| 3196 | return ret; | 3203 | return ret; |
| @@ -3218,8 +3225,8 @@ static int init_6120_variables(struct qib_devdata *dd) | |||
| 3218 | dd->revision = readq(&dd->kregbase[kr_revision]); | 3225 | dd->revision = readq(&dd->kregbase[kr_revision]); |
| 3219 | 3226 | ||
| 3220 | if ((dd->revision & 0xffffffffU) == 0xffffffffU) { | 3227 | if ((dd->revision & 0xffffffffU) == 0xffffffffU) { |
| 3221 | qib_dev_err(dd, "Revision register read failure, " | 3228 | qib_dev_err(dd, |
| 3222 | "giving up initialization\n"); | 3229 | "Revision register read failure, giving up initialization\n"); |
| 3223 | ret = -ENODEV; | 3230 | ret = -ENODEV; |
| 3224 | goto bail; | 3231 | goto bail; |
| 3225 | } | 3232 | } |
| @@ -3551,8 +3558,8 @@ struct qib_devdata *qib_init_iba6120_funcs(struct pci_dev *pdev, | |||
| 3551 | goto bail; | 3558 | goto bail; |
| 3552 | 3559 | ||
| 3553 | if (qib_pcie_params(dd, 8, NULL, NULL)) | 3560 | if (qib_pcie_params(dd, 8, NULL, NULL)) |
| 3554 | qib_dev_err(dd, "Failed to setup PCIe or interrupts; " | 3561 | qib_dev_err(dd, |
| 3555 | "continuing anyway\n"); | 3562 | "Failed to setup PCIe or interrupts; continuing anyway\n"); |
| 3556 | dd->cspec->irq = pdev->irq; /* save IRQ */ | 3563 | dd->cspec->irq = pdev->irq; /* save IRQ */ |
| 3557 | 3564 | ||
| 3558 | /* clear diagctrl register, in case diags were running and crashed */ | 3565 | /* clear diagctrl register, in case diags were running and crashed */ |
diff --git a/drivers/infiniband/hw/qib/qib_iba7220.c b/drivers/infiniband/hw/qib/qib_iba7220.c index 86a0ba7ca0c2..64d0ecb90cdc 100644 --- a/drivers/infiniband/hw/qib/qib_iba7220.c +++ b/drivers/infiniband/hw/qib/qib_iba7220.c | |||
| @@ -1111,9 +1111,9 @@ static void handle_7220_errors(struct qib_devdata *dd, u64 errs) | |||
| 1111 | sdma_7220_errors(ppd, errs); | 1111 | sdma_7220_errors(ppd, errs); |
| 1112 | 1112 | ||
| 1113 | if (errs & ~IB_E_BITSEXTANT) | 1113 | if (errs & ~IB_E_BITSEXTANT) |
| 1114 | qib_dev_err(dd, "error interrupt with unknown errors " | 1114 | qib_dev_err(dd, |
| 1115 | "%llx set\n", (unsigned long long) | 1115 | "error interrupt with unknown errors %llx set\n", |
| 1116 | (errs & ~IB_E_BITSEXTANT)); | 1116 | (unsigned long long) (errs & ~IB_E_BITSEXTANT)); |
| 1117 | 1117 | ||
| 1118 | if (errs & E_SUM_ERRS) { | 1118 | if (errs & E_SUM_ERRS) { |
| 1119 | qib_disarm_7220_senderrbufs(ppd); | 1119 | qib_disarm_7220_senderrbufs(ppd); |
| @@ -1192,8 +1192,8 @@ static void handle_7220_errors(struct qib_devdata *dd, u64 errs) | |||
| 1192 | } | 1192 | } |
| 1193 | 1193 | ||
| 1194 | if (errs & ERR_MASK(ResetNegated)) { | 1194 | if (errs & ERR_MASK(ResetNegated)) { |
| 1195 | qib_dev_err(dd, "Got reset, requires re-init " | 1195 | qib_dev_err(dd, |
| 1196 | "(unload and reload driver)\n"); | 1196 | "Got reset, requires re-init (unload and reload driver)\n"); |
| 1197 | dd->flags &= ~QIB_INITTED; /* needs re-init */ | 1197 | dd->flags &= ~QIB_INITTED; /* needs re-init */ |
| 1198 | /* mark as having had error */ | 1198 | /* mark as having had error */ |
| 1199 | *dd->devstatusp |= QIB_STATUS_HWERROR; | 1199 | *dd->devstatusp |= QIB_STATUS_HWERROR; |
| @@ -1305,8 +1305,8 @@ static void qib_7220_handle_hwerrors(struct qib_devdata *dd, char *msg, | |||
| 1305 | if (!hwerrs) | 1305 | if (!hwerrs) |
| 1306 | goto bail; | 1306 | goto bail; |
| 1307 | if (hwerrs == ~0ULL) { | 1307 | if (hwerrs == ~0ULL) { |
| 1308 | qib_dev_err(dd, "Read of hardware error status failed " | 1308 | qib_dev_err(dd, |
| 1309 | "(all bits set); ignoring\n"); | 1309 | "Read of hardware error status failed (all bits set); ignoring\n"); |
| 1310 | goto bail; | 1310 | goto bail; |
| 1311 | } | 1311 | } |
| 1312 | qib_stats.sps_hwerrs++; | 1312 | qib_stats.sps_hwerrs++; |
| @@ -1329,13 +1329,14 @@ static void qib_7220_handle_hwerrors(struct qib_devdata *dd, char *msg, | |||
| 1329 | qib_inc_eeprom_err(dd, log_idx, 1); | 1329 | qib_inc_eeprom_err(dd, log_idx, 1); |
| 1330 | if (hwerrs & ~(TXEMEMPARITYERR_PIOBUF | TXEMEMPARITYERR_PIOPBC | | 1330 | if (hwerrs & ~(TXEMEMPARITYERR_PIOBUF | TXEMEMPARITYERR_PIOPBC | |
| 1331 | RXE_PARITY)) | 1331 | RXE_PARITY)) |
| 1332 | qib_devinfo(dd->pcidev, "Hardware error: hwerr=0x%llx " | 1332 | qib_devinfo(dd->pcidev, |
| 1333 | "(cleared)\n", (unsigned long long) hwerrs); | 1333 | "Hardware error: hwerr=0x%llx (cleared)\n", |
| 1334 | (unsigned long long) hwerrs); | ||
| 1334 | 1335 | ||
| 1335 | if (hwerrs & ~IB_HWE_BITSEXTANT) | 1336 | if (hwerrs & ~IB_HWE_BITSEXTANT) |
| 1336 | qib_dev_err(dd, "hwerror interrupt with unknown errors " | 1337 | qib_dev_err(dd, |
| 1337 | "%llx set\n", (unsigned long long) | 1338 | "hwerror interrupt with unknown errors %llx set\n", |
| 1338 | (hwerrs & ~IB_HWE_BITSEXTANT)); | 1339 | (unsigned long long) (hwerrs & ~IB_HWE_BITSEXTANT)); |
| 1339 | 1340 | ||
| 1340 | if (hwerrs & QLOGIC_IB_HWE_IB_UC_MEMORYPARITYERR) | 1341 | if (hwerrs & QLOGIC_IB_HWE_IB_UC_MEMORYPARITYERR) |
| 1341 | qib_sd7220_clr_ibpar(dd); | 1342 | qib_sd7220_clr_ibpar(dd); |
| @@ -1362,8 +1363,9 @@ static void qib_7220_handle_hwerrors(struct qib_devdata *dd, char *msg, | |||
| 1362 | 1363 | ||
| 1363 | if (hwerrs & HWE_MASK(PowerOnBISTFailed)) { | 1364 | if (hwerrs & HWE_MASK(PowerOnBISTFailed)) { |
| 1364 | isfatal = 1; | 1365 | isfatal = 1; |
| 1365 | strlcat(msg, "[Memory BIST test failed, " | 1366 | strlcat(msg, |
| 1366 | "InfiniPath hardware unusable]", msgl); | 1367 | "[Memory BIST test failed, InfiniPath hardware unusable]", |
| 1368 | msgl); | ||
| 1367 | /* ignore from now on, so disable until driver reloaded */ | 1369 | /* ignore from now on, so disable until driver reloaded */ |
| 1368 | dd->cspec->hwerrmask &= ~HWE_MASK(PowerOnBISTFailed); | 1370 | dd->cspec->hwerrmask &= ~HWE_MASK(PowerOnBISTFailed); |
| 1369 | qib_write_kreg(dd, kr_hwerrmask, dd->cspec->hwerrmask); | 1371 | qib_write_kreg(dd, kr_hwerrmask, dd->cspec->hwerrmask); |
| @@ -1409,8 +1411,9 @@ static void qib_7220_handle_hwerrors(struct qib_devdata *dd, char *msg, | |||
| 1409 | qib_dev_err(dd, "%s hardware error\n", msg); | 1411 | qib_dev_err(dd, "%s hardware error\n", msg); |
| 1410 | 1412 | ||
| 1411 | if (isfatal && !dd->diag_client) { | 1413 | if (isfatal && !dd->diag_client) { |
| 1412 | qib_dev_err(dd, "Fatal Hardware Error, no longer" | 1414 | qib_dev_err(dd, |
| 1413 | " usable, SN %.16s\n", dd->serial); | 1415 | "Fatal Hardware Error, no longer usable, SN %.16s\n", |
| 1416 | dd->serial); | ||
| 1414 | /* | 1417 | /* |
| 1415 | * For /sys status file and user programs to print; if no | 1418 | * For /sys status file and user programs to print; if no |
| 1416 | * trailing brace is copied, we'll know it was truncated. | 1419 | * trailing brace is copied, we'll know it was truncated. |
| @@ -1918,8 +1921,9 @@ static noinline void unlikely_7220_intr(struct qib_devdata *dd, u64 istat) | |||
| 1918 | qib_stats.sps_errints++; | 1921 | qib_stats.sps_errints++; |
| 1919 | estat = qib_read_kreg64(dd, kr_errstatus); | 1922 | estat = qib_read_kreg64(dd, kr_errstatus); |
| 1920 | if (!estat) | 1923 | if (!estat) |
| 1921 | qib_devinfo(dd->pcidev, "error interrupt (%Lx), " | 1924 | qib_devinfo(dd->pcidev, |
| 1922 | "but no error bits set!\n", istat); | 1925 | "error interrupt (%Lx), but no error bits set!\n", |
| 1926 | istat); | ||
| 1923 | else | 1927 | else |
| 1924 | handle_7220_errors(dd, estat); | 1928 | handle_7220_errors(dd, estat); |
| 1925 | } | 1929 | } |
| @@ -2023,17 +2027,18 @@ bail: | |||
| 2023 | static void qib_setup_7220_interrupt(struct qib_devdata *dd) | 2027 | static void qib_setup_7220_interrupt(struct qib_devdata *dd) |
| 2024 | { | 2028 | { |
| 2025 | if (!dd->cspec->irq) | 2029 | if (!dd->cspec->irq) |
| 2026 | qib_dev_err(dd, "irq is 0, BIOS error? Interrupts won't " | 2030 | qib_dev_err(dd, |
| 2027 | "work\n"); | 2031 | "irq is 0, BIOS error? Interrupts won't work\n"); |
| 2028 | else { | 2032 | else { |
| 2029 | int ret = request_irq(dd->cspec->irq, qib_7220intr, | 2033 | int ret = request_irq(dd->cspec->irq, qib_7220intr, |
| 2030 | dd->msi_lo ? 0 : IRQF_SHARED, | 2034 | dd->msi_lo ? 0 : IRQF_SHARED, |
| 2031 | QIB_DRV_NAME, dd); | 2035 | QIB_DRV_NAME, dd); |
| 2032 | 2036 | ||
| 2033 | if (ret) | 2037 | if (ret) |
| 2034 | qib_dev_err(dd, "Couldn't setup %s interrupt " | 2038 | qib_dev_err(dd, |
| 2035 | "(irq=%d): %d\n", dd->msi_lo ? | 2039 | "Couldn't setup %s interrupt (irq=%d): %d\n", |
| 2036 | "MSI" : "INTx", dd->cspec->irq, ret); | 2040 | dd->msi_lo ? "MSI" : "INTx", |
| 2041 | dd->cspec->irq, ret); | ||
| 2037 | } | 2042 | } |
| 2038 | } | 2043 | } |
| 2039 | 2044 | ||
| @@ -2072,9 +2077,9 @@ static void qib_7220_boardname(struct qib_devdata *dd) | |||
| 2072 | snprintf(dd->boardname, namelen, "%s", n); | 2077 | snprintf(dd->boardname, namelen, "%s", n); |
| 2073 | 2078 | ||
| 2074 | if (dd->majrev != 5 || !dd->minrev || dd->minrev > 2) | 2079 | if (dd->majrev != 5 || !dd->minrev || dd->minrev > 2) |
| 2075 | qib_dev_err(dd, "Unsupported InfiniPath hardware " | 2080 | qib_dev_err(dd, |
| 2076 | "revision %u.%u!\n", | 2081 | "Unsupported InfiniPath hardware revision %u.%u!\n", |
| 2077 | dd->majrev, dd->minrev); | 2082 | dd->majrev, dd->minrev); |
| 2078 | 2083 | ||
| 2079 | snprintf(dd->boardversion, sizeof(dd->boardversion), | 2084 | snprintf(dd->boardversion, sizeof(dd->boardversion), |
| 2080 | "ChipABI %u.%u, %s, InfiniPath%u %u.%u, SW Compat %u\n", | 2085 | "ChipABI %u.%u, %s, InfiniPath%u %u.%u, SW Compat %u\n", |
| @@ -2146,8 +2151,8 @@ static int qib_setup_7220_reset(struct qib_devdata *dd) | |||
| 2146 | bail: | 2151 | bail: |
| 2147 | if (ret) { | 2152 | if (ret) { |
| 2148 | if (qib_pcie_params(dd, dd->lbus_width, NULL, NULL)) | 2153 | if (qib_pcie_params(dd, dd->lbus_width, NULL, NULL)) |
| 2149 | qib_dev_err(dd, "Reset failed to setup PCIe or " | 2154 | qib_dev_err(dd, |
| 2150 | "interrupts; continuing anyway\n"); | 2155 | "Reset failed to setup PCIe or interrupts; continuing anyway\n"); |
| 2151 | 2156 | ||
| 2152 | /* hold IBC in reset, no sends, etc till later */ | 2157 | /* hold IBC in reset, no sends, etc till later */ |
| 2153 | qib_write_kreg(dd, kr_control, 0ULL); | 2158 | qib_write_kreg(dd, kr_control, 0ULL); |
| @@ -2187,8 +2192,9 @@ static void qib_7220_put_tid(struct qib_devdata *dd, u64 __iomem *tidptr, | |||
| 2187 | return; | 2192 | return; |
| 2188 | } | 2193 | } |
| 2189 | if (chippa >= (1UL << IBA7220_TID_SZ_SHIFT)) { | 2194 | if (chippa >= (1UL << IBA7220_TID_SZ_SHIFT)) { |
| 2190 | qib_dev_err(dd, "Physical page address 0x%lx " | 2195 | qib_dev_err(dd, |
| 2191 | "larger than supported\n", pa); | 2196 | "Physical page address 0x%lx larger than supported\n", |
| 2197 | pa); | ||
| 2192 | return; | 2198 | return; |
| 2193 | } | 2199 | } |
| 2194 | 2200 | ||
| @@ -2706,8 +2712,9 @@ static int qib_7220_set_loopback(struct qib_pportdata *ppd, const char *what) | |||
| 2706 | ppd->cpspec->ibcctrl &= ~SYM_MASK(IBCCtrl, Loopback); | 2712 | ppd->cpspec->ibcctrl &= ~SYM_MASK(IBCCtrl, Loopback); |
| 2707 | /* enable heart beat again */ | 2713 | /* enable heart beat again */ |
| 2708 | val = IBA7220_IBC_HRTBT_MASK << IBA7220_IBC_HRTBT_SHIFT; | 2714 | val = IBA7220_IBC_HRTBT_MASK << IBA7220_IBC_HRTBT_SHIFT; |
| 2709 | qib_devinfo(ppd->dd->pcidev, "Disabling IB%u:%u IBC loopback " | 2715 | qib_devinfo(ppd->dd->pcidev, |
| 2710 | "(normal)\n", ppd->dd->unit, ppd->port); | 2716 | "Disabling IB%u:%u IBC loopback (normal)\n", |
| 2717 | ppd->dd->unit, ppd->port); | ||
| 2711 | } else | 2718 | } else |
| 2712 | ret = -EINVAL; | 2719 | ret = -EINVAL; |
| 2713 | if (!ret) { | 2720 | if (!ret) { |
| @@ -3307,8 +3314,8 @@ static int qib_7220_intr_fallback(struct qib_devdata *dd) | |||
| 3307 | if (!dd->msi_lo) | 3314 | if (!dd->msi_lo) |
| 3308 | return 0; | 3315 | return 0; |
| 3309 | 3316 | ||
| 3310 | qib_devinfo(dd->pcidev, "MSI interrupt not detected," | 3317 | qib_devinfo(dd->pcidev, |
| 3311 | " trying INTx interrupts\n"); | 3318 | "MSI interrupt not detected, trying INTx interrupts\n"); |
| 3312 | qib_7220_free_irq(dd); | 3319 | qib_7220_free_irq(dd); |
| 3313 | qib_enable_intx(dd->pcidev); | 3320 | qib_enable_intx(dd->pcidev); |
| 3314 | /* | 3321 | /* |
| @@ -3980,11 +3987,10 @@ static int qib_late_7220_initreg(struct qib_devdata *dd) | |||
| 3980 | qib_write_kreg(dd, kr_sendpioavailaddr, dd->pioavailregs_phys); | 3987 | qib_write_kreg(dd, kr_sendpioavailaddr, dd->pioavailregs_phys); |
| 3981 | val = qib_read_kreg64(dd, kr_sendpioavailaddr); | 3988 | val = qib_read_kreg64(dd, kr_sendpioavailaddr); |
| 3982 | if (val != dd->pioavailregs_phys) { | 3989 | if (val != dd->pioavailregs_phys) { |
| 3983 | qib_dev_err(dd, "Catastrophic software error, " | 3990 | qib_dev_err(dd, |
| 3984 | "SendPIOAvailAddr written as %lx, " | 3991 | "Catastrophic software error, SendPIOAvailAddr written as %lx, read back as %llx\n", |
| 3985 | "read back as %llx\n", | 3992 | (unsigned long) dd->pioavailregs_phys, |
| 3986 | (unsigned long) dd->pioavailregs_phys, | 3993 | (unsigned long long) val); |
| 3987 | (unsigned long long) val); | ||
| 3988 | ret = -EINVAL; | 3994 | ret = -EINVAL; |
| 3989 | } | 3995 | } |
| 3990 | qib_register_observer(dd, &sendctrl_observer); | 3996 | qib_register_observer(dd, &sendctrl_observer); |
| @@ -4014,8 +4020,8 @@ static int qib_init_7220_variables(struct qib_devdata *dd) | |||
| 4014 | dd->revision = readq(&dd->kregbase[kr_revision]); | 4020 | dd->revision = readq(&dd->kregbase[kr_revision]); |
| 4015 | 4021 | ||
| 4016 | if ((dd->revision & 0xffffffffU) == 0xffffffffU) { | 4022 | if ((dd->revision & 0xffffffffU) == 0xffffffffU) { |
| 4017 | qib_dev_err(dd, "Revision register read failure, " | 4023 | qib_dev_err(dd, |
| 4018 | "giving up initialization\n"); | 4024 | "Revision register read failure, giving up initialization\n"); |
| 4019 | ret = -ENODEV; | 4025 | ret = -ENODEV; |
| 4020 | goto bail; | 4026 | goto bail; |
| 4021 | } | 4027 | } |
| @@ -4613,8 +4619,8 @@ struct qib_devdata *qib_init_iba7220_funcs(struct pci_dev *pdev, | |||
| 4613 | break; | 4619 | break; |
| 4614 | } | 4620 | } |
| 4615 | if (qib_pcie_params(dd, minwidth, NULL, NULL)) | 4621 | if (qib_pcie_params(dd, minwidth, NULL, NULL)) |
| 4616 | qib_dev_err(dd, "Failed to setup PCIe or interrupts; " | 4622 | qib_dev_err(dd, |
| 4617 | "continuing anyway\n"); | 4623 | "Failed to setup PCIe or interrupts; continuing anyway\n"); |
| 4618 | 4624 | ||
| 4619 | /* save IRQ for possible later use */ | 4625 | /* save IRQ for possible later use */ |
| 4620 | dd->cspec->irq = pdev->irq; | 4626 | dd->cspec->irq = pdev->irq; |
diff --git a/drivers/infiniband/hw/qib/qib_iba7322.c b/drivers/infiniband/hw/qib/qib_iba7322.c index 78e85503c509..0d7280af99bc 100644 --- a/drivers/infiniband/hw/qib/qib_iba7322.c +++ b/drivers/infiniband/hw/qib/qib_iba7322.c | |||
| @@ -52,6 +52,9 @@ | |||
| 52 | #include "qib_mad.h" | 52 | #include "qib_mad.h" |
| 53 | #include "qib_verbs.h" | 53 | #include "qib_verbs.h" |
| 54 | 54 | ||
| 55 | #undef pr_fmt | ||
| 56 | #define pr_fmt(fmt) QIB_DRV_NAME " " fmt | ||
| 57 | |||
| 55 | static void qib_setup_7322_setextled(struct qib_pportdata *, u32); | 58 | static void qib_setup_7322_setextled(struct qib_pportdata *, u32); |
| 56 | static void qib_7322_handle_hwerrors(struct qib_devdata *, char *, size_t); | 59 | static void qib_7322_handle_hwerrors(struct qib_devdata *, char *, size_t); |
| 57 | static void sendctrl_7322_mod(struct qib_pportdata *ppd, u32 op); | 60 | static void sendctrl_7322_mod(struct qib_pportdata *ppd, u32 op); |
| @@ -1577,8 +1580,8 @@ static noinline void handle_7322_errors(struct qib_devdata *dd) | |||
| 1577 | qib_stats.sps_errints++; | 1580 | qib_stats.sps_errints++; |
| 1578 | errs = qib_read_kreg64(dd, kr_errstatus); | 1581 | errs = qib_read_kreg64(dd, kr_errstatus); |
| 1579 | if (!errs) { | 1582 | if (!errs) { |
| 1580 | qib_devinfo(dd->pcidev, "device error interrupt, " | 1583 | qib_devinfo(dd->pcidev, |
| 1581 | "but no error bits set!\n"); | 1584 | "device error interrupt, but no error bits set!\n"); |
| 1582 | goto done; | 1585 | goto done; |
| 1583 | } | 1586 | } |
| 1584 | 1587 | ||
| @@ -1624,8 +1627,8 @@ static noinline void handle_7322_errors(struct qib_devdata *dd) | |||
| 1624 | if (errs & QIB_E_RESET) { | 1627 | if (errs & QIB_E_RESET) { |
| 1625 | int pidx; | 1628 | int pidx; |
| 1626 | 1629 | ||
| 1627 | qib_dev_err(dd, "Got reset, requires re-init " | 1630 | qib_dev_err(dd, |
| 1628 | "(unload and reload driver)\n"); | 1631 | "Got reset, requires re-init (unload and reload driver)\n"); |
| 1629 | dd->flags &= ~QIB_INITTED; /* needs re-init */ | 1632 | dd->flags &= ~QIB_INITTED; /* needs re-init */ |
| 1630 | /* mark as having had error */ | 1633 | /* mark as having had error */ |
| 1631 | *dd->devstatusp |= QIB_STATUS_HWERROR; | 1634 | *dd->devstatusp |= QIB_STATUS_HWERROR; |
| @@ -1762,9 +1765,9 @@ static void handle_serdes_issues(struct qib_pportdata *ppd, u64 ibcst) | |||
| 1762 | ppd->dd->cspec->r1 ? | 1765 | ppd->dd->cspec->r1 ? |
| 1763 | QDR_STATIC_ADAPT_DOWN_R1 : | 1766 | QDR_STATIC_ADAPT_DOWN_R1 : |
| 1764 | QDR_STATIC_ADAPT_DOWN); | 1767 | QDR_STATIC_ADAPT_DOWN); |
| 1765 | printk(KERN_INFO QIB_DRV_NAME | 1768 | pr_info( |
| 1766 | " IB%u:%u re-enabled QDR adaptation " | 1769 | "IB%u:%u re-enabled QDR adaptation ibclt %x\n", |
| 1767 | "ibclt %x\n", ppd->dd->unit, ppd->port, ibclt); | 1770 | ppd->dd->unit, ppd->port, ibclt); |
| 1768 | } | 1771 | } |
| 1769 | } | 1772 | } |
| 1770 | } | 1773 | } |
| @@ -1806,9 +1809,9 @@ static noinline void handle_7322_p_errors(struct qib_pportdata *ppd) | |||
| 1806 | if (!*msg) | 1809 | if (!*msg) |
| 1807 | snprintf(msg, sizeof ppd->cpspec->epmsgbuf, | 1810 | snprintf(msg, sizeof ppd->cpspec->epmsgbuf, |
| 1808 | "no others"); | 1811 | "no others"); |
| 1809 | qib_dev_porterr(dd, ppd->port, "error interrupt with unknown" | 1812 | qib_dev_porterr(dd, ppd->port, |
| 1810 | " errors 0x%016Lx set (and %s)\n", | 1813 | "error interrupt with unknown errors 0x%016Lx set (and %s)\n", |
| 1811 | (errs & ~QIB_E_P_BITSEXTANT), msg); | 1814 | (errs & ~QIB_E_P_BITSEXTANT), msg); |
| 1812 | *msg = '\0'; | 1815 | *msg = '\0'; |
| 1813 | } | 1816 | } |
| 1814 | 1817 | ||
| @@ -2026,8 +2029,8 @@ static void qib_7322_handle_hwerrors(struct qib_devdata *dd, char *msg, | |||
| 2026 | if (!hwerrs) | 2029 | if (!hwerrs) |
| 2027 | goto bail; | 2030 | goto bail; |
| 2028 | if (hwerrs == ~0ULL) { | 2031 | if (hwerrs == ~0ULL) { |
| 2029 | qib_dev_err(dd, "Read of hardware error status failed " | 2032 | qib_dev_err(dd, |
| 2030 | "(all bits set); ignoring\n"); | 2033 | "Read of hardware error status failed (all bits set); ignoring\n"); |
| 2031 | goto bail; | 2034 | goto bail; |
| 2032 | } | 2035 | } |
| 2033 | qib_stats.sps_hwerrs++; | 2036 | qib_stats.sps_hwerrs++; |
| @@ -2041,8 +2044,9 @@ static void qib_7322_handle_hwerrors(struct qib_devdata *dd, char *msg, | |||
| 2041 | /* no EEPROM logging, yet */ | 2044 | /* no EEPROM logging, yet */ |
| 2042 | 2045 | ||
| 2043 | if (hwerrs) | 2046 | if (hwerrs) |
| 2044 | qib_devinfo(dd->pcidev, "Hardware error: hwerr=0x%llx " | 2047 | qib_devinfo(dd->pcidev, |
| 2045 | "(cleared)\n", (unsigned long long) hwerrs); | 2048 | "Hardware error: hwerr=0x%llx (cleared)\n", |
| 2049 | (unsigned long long) hwerrs); | ||
| 2046 | 2050 | ||
| 2047 | ctrl = qib_read_kreg32(dd, kr_control); | 2051 | ctrl = qib_read_kreg32(dd, kr_control); |
| 2048 | if ((ctrl & SYM_MASK(Control, FreezeMode)) && !dd->diag_client) { | 2052 | if ((ctrl & SYM_MASK(Control, FreezeMode)) && !dd->diag_client) { |
| @@ -2066,8 +2070,9 @@ static void qib_7322_handle_hwerrors(struct qib_devdata *dd, char *msg, | |||
| 2066 | 2070 | ||
| 2067 | if (hwerrs & HWE_MASK(PowerOnBISTFailed)) { | 2071 | if (hwerrs & HWE_MASK(PowerOnBISTFailed)) { |
| 2068 | isfatal = 1; | 2072 | isfatal = 1; |
| 2069 | strlcpy(msg, "[Memory BIST test failed, " | 2073 | strlcpy(msg, |
| 2070 | "InfiniPath hardware unusable]", msgl); | 2074 | "[Memory BIST test failed, InfiniPath hardware unusable]", |
| 2075 | msgl); | ||
| 2071 | /* ignore from now on, so disable until driver reloaded */ | 2076 | /* ignore from now on, so disable until driver reloaded */ |
| 2072 | dd->cspec->hwerrmask &= ~HWE_MASK(PowerOnBISTFailed); | 2077 | dd->cspec->hwerrmask &= ~HWE_MASK(PowerOnBISTFailed); |
| 2073 | qib_write_kreg(dd, kr_hwerrmask, dd->cspec->hwerrmask); | 2078 | qib_write_kreg(dd, kr_hwerrmask, dd->cspec->hwerrmask); |
| @@ -2080,8 +2085,9 @@ static void qib_7322_handle_hwerrors(struct qib_devdata *dd, char *msg, | |||
| 2080 | qib_dev_err(dd, "%s hardware error\n", msg); | 2085 | qib_dev_err(dd, "%s hardware error\n", msg); |
| 2081 | 2086 | ||
| 2082 | if (isfatal && !dd->diag_client) { | 2087 | if (isfatal && !dd->diag_client) { |
| 2083 | qib_dev_err(dd, "Fatal Hardware Error, no longer" | 2088 | qib_dev_err(dd, |
| 2084 | " usable, SN %.16s\n", dd->serial); | 2089 | "Fatal Hardware Error, no longer usable, SN %.16s\n", |
| 2090 | dd->serial); | ||
| 2085 | /* | 2091 | /* |
| 2086 | * for /sys status file and user programs to print; if no | 2092 | * for /sys status file and user programs to print; if no |
| 2087 | * trailing brace is copied, we'll know it was truncated. | 2093 | * trailing brace is copied, we'll know it was truncated. |
| @@ -2669,8 +2675,9 @@ static noinline void unknown_7322_ibits(struct qib_devdata *dd, u64 istat) | |||
| 2669 | char msg[128]; | 2675 | char msg[128]; |
| 2670 | 2676 | ||
| 2671 | kills = istat & ~QIB_I_BITSEXTANT; | 2677 | kills = istat & ~QIB_I_BITSEXTANT; |
| 2672 | qib_dev_err(dd, "Clearing reserved interrupt(s) 0x%016llx:" | 2678 | qib_dev_err(dd, |
| 2673 | " %s\n", (unsigned long long) kills, msg); | 2679 | "Clearing reserved interrupt(s) 0x%016llx: %s\n", |
| 2680 | (unsigned long long) kills, msg); | ||
| 2674 | qib_write_kreg(dd, kr_intmask, (dd->cspec->int_enable_mask & ~kills)); | 2681 | qib_write_kreg(dd, kr_intmask, (dd->cspec->int_enable_mask & ~kills)); |
| 2675 | } | 2682 | } |
| 2676 | 2683 | ||
| @@ -3103,16 +3110,16 @@ static void qib_setup_7322_interrupt(struct qib_devdata *dd, int clearpend) | |||
| 3103 | /* Try to get INTx interrupt */ | 3110 | /* Try to get INTx interrupt */ |
| 3104 | try_intx: | 3111 | try_intx: |
| 3105 | if (!dd->pcidev->irq) { | 3112 | if (!dd->pcidev->irq) { |
| 3106 | qib_dev_err(dd, "irq is 0, BIOS error? " | 3113 | qib_dev_err(dd, |
| 3107 | "Interrupts won't work\n"); | 3114 | "irq is 0, BIOS error? Interrupts won't work\n"); |
| 3108 | goto bail; | 3115 | goto bail; |
| 3109 | } | 3116 | } |
| 3110 | ret = request_irq(dd->pcidev->irq, qib_7322intr, | 3117 | ret = request_irq(dd->pcidev->irq, qib_7322intr, |
| 3111 | IRQF_SHARED, QIB_DRV_NAME, dd); | 3118 | IRQF_SHARED, QIB_DRV_NAME, dd); |
| 3112 | if (ret) { | 3119 | if (ret) { |
| 3113 | qib_dev_err(dd, "Couldn't setup INTx " | 3120 | qib_dev_err(dd, |
| 3114 | "interrupt (irq=%d): %d\n", | 3121 | "Couldn't setup INTx interrupt (irq=%d): %d\n", |
| 3115 | dd->pcidev->irq, ret); | 3122 | dd->pcidev->irq, ret); |
| 3116 | goto bail; | 3123 | goto bail; |
| 3117 | } | 3124 | } |
| 3118 | dd->cspec->irq = dd->pcidev->irq; | 3125 | dd->cspec->irq = dd->pcidev->irq; |
| @@ -3187,8 +3194,9 @@ try_intx: | |||
| 3187 | * Shouldn't happen since the enable said we could | 3194 | * Shouldn't happen since the enable said we could |
| 3188 | * have as many as we are trying to setup here. | 3195 | * have as many as we are trying to setup here. |
| 3189 | */ | 3196 | */ |
| 3190 | qib_dev_err(dd, "Couldn't setup MSIx " | 3197 | qib_dev_err(dd, |
| 3191 | "interrupt (vec=%d, irq=%d): %d\n", msixnum, | 3198 | "Couldn't setup MSIx interrupt (vec=%d, irq=%d): %d\n", |
| 3199 | msixnum, | ||
| 3192 | dd->cspec->msix_entries[msixnum].msix.vector, | 3200 | dd->cspec->msix_entries[msixnum].msix.vector, |
| 3193 | ret); | 3201 | ret); |
| 3194 | qib_7322_nomsix(dd); | 3202 | qib_7322_nomsix(dd); |
| @@ -3307,8 +3315,9 @@ static unsigned qib_7322_boardname(struct qib_devdata *dd) | |||
| 3307 | (unsigned)SYM_FIELD(dd->revision, Revision_R, SW)); | 3315 | (unsigned)SYM_FIELD(dd->revision, Revision_R, SW)); |
| 3308 | 3316 | ||
| 3309 | if (qib_singleport && (features >> PORT_SPD_CAP_SHIFT) & PORT_SPD_CAP) { | 3317 | if (qib_singleport && (features >> PORT_SPD_CAP_SHIFT) & PORT_SPD_CAP) { |
| 3310 | qib_devinfo(dd->pcidev, "IB%u: Forced to single port mode" | 3318 | qib_devinfo(dd->pcidev, |
| 3311 | " by module parameter\n", dd->unit); | 3319 | "IB%u: Forced to single port mode by module parameter\n", |
| 3320 | dd->unit); | ||
| 3312 | features &= PORT_SPD_CAP; | 3321 | features &= PORT_SPD_CAP; |
| 3313 | } | 3322 | } |
| 3314 | 3323 | ||
| @@ -3402,8 +3411,8 @@ static int qib_do_7322_reset(struct qib_devdata *dd) | |||
| 3402 | if (val == dd->revision) | 3411 | if (val == dd->revision) |
| 3403 | break; | 3412 | break; |
| 3404 | if (i == 5) { | 3413 | if (i == 5) { |
| 3405 | qib_dev_err(dd, "Failed to initialize after reset, " | 3414 | qib_dev_err(dd, |
| 3406 | "unusable\n"); | 3415 | "Failed to initialize after reset, unusable\n"); |
| 3407 | ret = 0; | 3416 | ret = 0; |
| 3408 | goto bail; | 3417 | goto bail; |
| 3409 | } | 3418 | } |
| @@ -3434,8 +3443,8 @@ static int qib_do_7322_reset(struct qib_devdata *dd) | |||
| 3434 | if (qib_pcie_params(dd, dd->lbus_width, | 3443 | if (qib_pcie_params(dd, dd->lbus_width, |
| 3435 | &dd->cspec->num_msix_entries, | 3444 | &dd->cspec->num_msix_entries, |
| 3436 | dd->cspec->msix_entries)) | 3445 | dd->cspec->msix_entries)) |
| 3437 | qib_dev_err(dd, "Reset failed to setup PCIe or interrupts; " | 3446 | qib_dev_err(dd, |
| 3438 | "continuing anyway\n"); | 3447 | "Reset failed to setup PCIe or interrupts; continuing anyway\n"); |
| 3439 | 3448 | ||
| 3440 | qib_setup_7322_interrupt(dd, 1); | 3449 | qib_setup_7322_interrupt(dd, 1); |
| 3441 | 3450 | ||
| @@ -3476,8 +3485,9 @@ static void qib_7322_put_tid(struct qib_devdata *dd, u64 __iomem *tidptr, | |||
| 3476 | return; | 3485 | return; |
| 3477 | } | 3486 | } |
| 3478 | if (chippa >= (1UL << IBA7322_TID_SZ_SHIFT)) { | 3487 | if (chippa >= (1UL << IBA7322_TID_SZ_SHIFT)) { |
| 3479 | qib_dev_err(dd, "Physical page address 0x%lx " | 3488 | qib_dev_err(dd, |
| 3480 | "larger than supported\n", pa); | 3489 | "Physical page address 0x%lx larger than supported\n", |
| 3490 | pa); | ||
| 3481 | return; | 3491 | return; |
| 3482 | } | 3492 | } |
| 3483 | 3493 | ||
| @@ -4031,8 +4041,9 @@ static int qib_7322_set_loopback(struct qib_pportdata *ppd, const char *what) | |||
| 4031 | Loopback); | 4041 | Loopback); |
| 4032 | /* enable heart beat again */ | 4042 | /* enable heart beat again */ |
| 4033 | val = IBA7322_IBC_HRTBT_RMASK << IBA7322_IBC_HRTBT_LSB; | 4043 | val = IBA7322_IBC_HRTBT_RMASK << IBA7322_IBC_HRTBT_LSB; |
| 4034 | qib_devinfo(ppd->dd->pcidev, "Disabling IB%u:%u IBC loopback " | 4044 | qib_devinfo(ppd->dd->pcidev, |
| 4035 | "(normal)\n", ppd->dd->unit, ppd->port); | 4045 | "Disabling IB%u:%u IBC loopback (normal)\n", |
| 4046 | ppd->dd->unit, ppd->port); | ||
| 4036 | } else | 4047 | } else |
| 4037 | ret = -EINVAL; | 4048 | ret = -EINVAL; |
| 4038 | if (!ret) { | 4049 | if (!ret) { |
| @@ -4716,8 +4727,8 @@ static void init_7322_cntrnames(struct qib_devdata *dd) | |||
| 4716 | dd->pport[i].cpspec->portcntrs = kmalloc(dd->cspec->nportcntrs | 4727 | dd->pport[i].cpspec->portcntrs = kmalloc(dd->cspec->nportcntrs |
| 4717 | * sizeof(u64), GFP_KERNEL); | 4728 | * sizeof(u64), GFP_KERNEL); |
| 4718 | if (!dd->pport[i].cpspec->portcntrs) | 4729 | if (!dd->pport[i].cpspec->portcntrs) |
| 4719 | qib_dev_err(dd, "Failed allocation for" | 4730 | qib_dev_err(dd, |
| 4720 | " portcounters\n"); | 4731 | "Failed allocation for portcounters\n"); |
| 4721 | } | 4732 | } |
| 4722 | } | 4733 | } |
| 4723 | 4734 | ||
| @@ -4867,8 +4878,8 @@ static int qib_7322_intr_fallback(struct qib_devdata *dd) | |||
| 4867 | if (!dd->cspec->num_msix_entries) | 4878 | if (!dd->cspec->num_msix_entries) |
| 4868 | return 0; /* already using INTx */ | 4879 | return 0; /* already using INTx */ |
| 4869 | 4880 | ||
| 4870 | qib_devinfo(dd->pcidev, "MSIx interrupt not detected," | 4881 | qib_devinfo(dd->pcidev, |
| 4871 | " trying INTx interrupts\n"); | 4882 | "MSIx interrupt not detected, trying INTx interrupts\n"); |
| 4872 | qib_7322_nomsix(dd); | 4883 | qib_7322_nomsix(dd); |
| 4873 | qib_enable_intx(dd->pcidev); | 4884 | qib_enable_intx(dd->pcidev); |
| 4874 | qib_setup_7322_interrupt(dd, 0); | 4885 | qib_setup_7322_interrupt(dd, 0); |
| @@ -5842,22 +5853,21 @@ static int setup_txselect(const char *str, struct kernel_param *kp) | |||
| 5842 | { | 5853 | { |
| 5843 | struct qib_devdata *dd; | 5854 | struct qib_devdata *dd; |
| 5844 | unsigned long val; | 5855 | unsigned long val; |
| 5845 | char *n; | 5856 | int ret; |
| 5857 | |||
| 5846 | if (strlen(str) >= MAX_ATTEN_LEN) { | 5858 | if (strlen(str) >= MAX_ATTEN_LEN) { |
| 5847 | printk(KERN_INFO QIB_DRV_NAME " txselect_values string " | 5859 | pr_info("txselect_values string too long\n"); |
| 5848 | "too long\n"); | ||
| 5849 | return -ENOSPC; | 5860 | return -ENOSPC; |
| 5850 | } | 5861 | } |
| 5851 | val = simple_strtoul(str, &n, 0); | 5862 | ret = kstrtoul(str, 0, &val); |
| 5852 | if (n == str || val >= (TXDDS_TABLE_SZ + TXDDS_EXTRA_SZ + | 5863 | if (ret || val >= (TXDDS_TABLE_SZ + TXDDS_EXTRA_SZ + |
| 5853 | TXDDS_MFG_SZ)) { | 5864 | TXDDS_MFG_SZ)) { |
| 5854 | printk(KERN_INFO QIB_DRV_NAME | 5865 | pr_info("txselect_values must start with a number < %d\n", |
| 5855 | "txselect_values must start with a number < %d\n", | ||
| 5856 | TXDDS_TABLE_SZ + TXDDS_EXTRA_SZ + TXDDS_MFG_SZ); | 5866 | TXDDS_TABLE_SZ + TXDDS_EXTRA_SZ + TXDDS_MFG_SZ); |
| 5857 | return -EINVAL; | 5867 | return ret ? ret : -EINVAL; |
| 5858 | } | 5868 | } |
| 5859 | strcpy(txselect_list, str); | ||
| 5860 | 5869 | ||
| 5870 | strcpy(txselect_list, str); | ||
| 5861 | list_for_each_entry(dd, &qib_dev_list, list) | 5871 | list_for_each_entry(dd, &qib_dev_list, list) |
| 5862 | if (dd->deviceid == PCI_DEVICE_ID_QLOGIC_IB_7322) | 5872 | if (dd->deviceid == PCI_DEVICE_ID_QLOGIC_IB_7322) |
| 5863 | set_no_qsfp_atten(dd, 1); | 5873 | set_no_qsfp_atten(dd, 1); |
| @@ -5880,11 +5890,10 @@ static int qib_late_7322_initreg(struct qib_devdata *dd) | |||
| 5880 | qib_write_kreg(dd, kr_sendpioavailaddr, dd->pioavailregs_phys); | 5890 | qib_write_kreg(dd, kr_sendpioavailaddr, dd->pioavailregs_phys); |
| 5881 | val = qib_read_kreg64(dd, kr_sendpioavailaddr); | 5891 | val = qib_read_kreg64(dd, kr_sendpioavailaddr); |
| 5882 | if (val != dd->pioavailregs_phys) { | 5892 | if (val != dd->pioavailregs_phys) { |
| 5883 | qib_dev_err(dd, "Catastrophic software error, " | 5893 | qib_dev_err(dd, |
| 5884 | "SendPIOAvailAddr written as %lx, " | 5894 | "Catastrophic software error, SendPIOAvailAddr written as %lx, read back as %llx\n", |
| 5885 | "read back as %llx\n", | 5895 | (unsigned long) dd->pioavailregs_phys, |
| 5886 | (unsigned long) dd->pioavailregs_phys, | 5896 | (unsigned long long) val); |
| 5887 | (unsigned long long) val); | ||
| 5888 | ret = -EINVAL; | 5897 | ret = -EINVAL; |
| 5889 | } | 5898 | } |
| 5890 | 5899 | ||
| @@ -6096,8 +6105,8 @@ static int qib_init_7322_variables(struct qib_devdata *dd) | |||
| 6096 | dd->revision = readq(&dd->kregbase[kr_revision]); | 6105 | dd->revision = readq(&dd->kregbase[kr_revision]); |
| 6097 | 6106 | ||
| 6098 | if ((dd->revision & 0xffffffffU) == 0xffffffffU) { | 6107 | if ((dd->revision & 0xffffffffU) == 0xffffffffU) { |
| 6099 | qib_dev_err(dd, "Revision register read failure, " | 6108 | qib_dev_err(dd, |
| 6100 | "giving up initialization\n"); | 6109 | "Revision register read failure, giving up initialization\n"); |
| 6101 | ret = -ENODEV; | 6110 | ret = -ENODEV; |
| 6102 | goto bail; | 6111 | goto bail; |
| 6103 | } | 6112 | } |
| @@ -6263,9 +6272,9 @@ static int qib_init_7322_variables(struct qib_devdata *dd) | |||
| 6263 | */ | 6272 | */ |
| 6264 | if (!(dd->flags & QIB_HAS_QSFP)) { | 6273 | if (!(dd->flags & QIB_HAS_QSFP)) { |
| 6265 | if (!IS_QMH(dd) && !IS_QME(dd)) | 6274 | if (!IS_QMH(dd) && !IS_QME(dd)) |
| 6266 | qib_devinfo(dd->pcidev, "IB%u:%u: " | 6275 | qib_devinfo(dd->pcidev, |
| 6267 | "Unknown mezzanine card type\n", | 6276 | "IB%u:%u: Unknown mezzanine card type\n", |
| 6268 | dd->unit, ppd->port); | 6277 | dd->unit, ppd->port); |
| 6269 | cp->h1_val = IS_QMH(dd) ? H1_FORCE_QMH : H1_FORCE_QME; | 6278 | cp->h1_val = IS_QMH(dd) ? H1_FORCE_QMH : H1_FORCE_QME; |
| 6270 | /* | 6279 | /* |
| 6271 | * Choose center value as default tx serdes setting | 6280 | * Choose center value as default tx serdes setting |
| @@ -6920,8 +6929,8 @@ struct qib_devdata *qib_init_iba7322_funcs(struct pci_dev *pdev, | |||
| 6920 | dd->cspec->msix_entries[i].msix.entry = i; | 6929 | dd->cspec->msix_entries[i].msix.entry = i; |
| 6921 | 6930 | ||
| 6922 | if (qib_pcie_params(dd, 8, &tabsize, dd->cspec->msix_entries)) | 6931 | if (qib_pcie_params(dd, 8, &tabsize, dd->cspec->msix_entries)) |
| 6923 | qib_dev_err(dd, "Failed to setup PCIe or interrupts; " | 6932 | qib_dev_err(dd, |
| 6924 | "continuing anyway\n"); | 6933 | "Failed to setup PCIe or interrupts; continuing anyway\n"); |
| 6925 | /* may be less than we wanted, if not enough available */ | 6934 | /* may be less than we wanted, if not enough available */ |
| 6926 | dd->cspec->num_msix_entries = tabsize; | 6935 | dd->cspec->num_msix_entries = tabsize; |
| 6927 | 6936 | ||
| @@ -7274,8 +7283,7 @@ static void find_best_ent(struct qib_pportdata *ppd, | |||
| 7274 | ppd->cpspec->no_eep < (TXDDS_TABLE_SZ + TXDDS_EXTRA_SZ + | 7283 | ppd->cpspec->no_eep < (TXDDS_TABLE_SZ + TXDDS_EXTRA_SZ + |
| 7275 | TXDDS_MFG_SZ)) { | 7284 | TXDDS_MFG_SZ)) { |
| 7276 | idx = ppd->cpspec->no_eep - (TXDDS_TABLE_SZ + TXDDS_EXTRA_SZ); | 7285 | idx = ppd->cpspec->no_eep - (TXDDS_TABLE_SZ + TXDDS_EXTRA_SZ); |
| 7277 | printk(KERN_INFO QIB_DRV_NAME | 7286 | pr_info("IB%u:%u use idx %u into txdds_mfg\n", |
| 7278 | " IB%u:%u use idx %u into txdds_mfg\n", | ||
| 7279 | ppd->dd->unit, ppd->port, idx); | 7287 | ppd->dd->unit, ppd->port, idx); |
| 7280 | *sdr_dds = &txdds_extra_mfg[idx]; | 7288 | *sdr_dds = &txdds_extra_mfg[idx]; |
| 7281 | *ddr_dds = &txdds_extra_mfg[idx]; | 7289 | *ddr_dds = &txdds_extra_mfg[idx]; |
| @@ -7430,11 +7438,11 @@ static void serdes_7322_los_enable(struct qib_pportdata *ppd, int enable) | |||
| 7430 | u8 state = SYM_FIELD(data, IBSerdesCtrl_0, RXLOSEN); | 7438 | u8 state = SYM_FIELD(data, IBSerdesCtrl_0, RXLOSEN); |
| 7431 | 7439 | ||
| 7432 | if (enable && !state) { | 7440 | if (enable && !state) { |
| 7433 | printk(KERN_INFO QIB_DRV_NAME " IB%u:%u Turning LOS on\n", | 7441 | pr_info("IB%u:%u Turning LOS on\n", |
| 7434 | ppd->dd->unit, ppd->port); | 7442 | ppd->dd->unit, ppd->port); |
| 7435 | data |= SYM_MASK(IBSerdesCtrl_0, RXLOSEN); | 7443 | data |= SYM_MASK(IBSerdesCtrl_0, RXLOSEN); |
| 7436 | } else if (!enable && state) { | 7444 | } else if (!enable && state) { |
| 7437 | printk(KERN_INFO QIB_DRV_NAME " IB%u:%u Turning LOS off\n", | 7445 | pr_info("IB%u:%u Turning LOS off\n", |
| 7438 | ppd->dd->unit, ppd->port); | 7446 | ppd->dd->unit, ppd->port); |
| 7439 | data &= ~SYM_MASK(IBSerdesCtrl_0, RXLOSEN); | 7447 | data &= ~SYM_MASK(IBSerdesCtrl_0, RXLOSEN); |
| 7440 | } | 7448 | } |
| @@ -7670,8 +7678,7 @@ static int serdes_7322_init_new(struct qib_pportdata *ppd) | |||
| 7670 | } | 7678 | } |
| 7671 | } | 7679 | } |
| 7672 | if (chan_done) { | 7680 | if (chan_done) { |
| 7673 | printk(KERN_INFO QIB_DRV_NAME | 7681 | pr_info("Serdes %d calibration not done after .5 sec: 0x%x\n", |
| 7674 | " Serdes %d calibration not done after .5 sec: 0x%x\n", | ||
| 7675 | IBSD(ppd->hw_pidx), chan_done); | 7682 | IBSD(ppd->hw_pidx), chan_done); |
| 7676 | } else { | 7683 | } else { |
| 7677 | for (chan = 0; chan < SERDES_CHANS; ++chan) { | 7684 | for (chan = 0; chan < SERDES_CHANS; ++chan) { |
| @@ -7679,9 +7686,8 @@ static int serdes_7322_init_new(struct qib_pportdata *ppd) | |||
| 7679 | (chan + (chan >> 1)), | 7686 | (chan + (chan >> 1)), |
| 7680 | 25, 0, 0); | 7687 | 25, 0, 0); |
| 7681 | if ((~rxcaldone & (u32)BMASK(10, 10)) == 0) | 7688 | if ((~rxcaldone & (u32)BMASK(10, 10)) == 0) |
| 7682 | printk(KERN_INFO QIB_DRV_NAME | 7689 | pr_info("Serdes %d chan %d calibration failed\n", |
| 7683 | " Serdes %d chan %d calibration " | 7690 | IBSD(ppd->hw_pidx), chan); |
| 7684 | "failed\n", IBSD(ppd->hw_pidx), chan); | ||
| 7685 | } | 7691 | } |
| 7686 | } | 7692 | } |
| 7687 | 7693 | ||
diff --git a/drivers/infiniband/hw/qib/qib_init.c b/drivers/infiniband/hw/qib/qib_init.c index 24ad901c95c4..4443adfcd9ee 100644 --- a/drivers/infiniband/hw/qib/qib_init.c +++ b/drivers/infiniband/hw/qib/qib_init.c | |||
| @@ -38,11 +38,15 @@ | |||
| 38 | #include <linux/delay.h> | 38 | #include <linux/delay.h> |
| 39 | #include <linux/idr.h> | 39 | #include <linux/idr.h> |
| 40 | #include <linux/module.h> | 40 | #include <linux/module.h> |
| 41 | #include <linux/printk.h> | ||
| 41 | 42 | ||
| 42 | #include "qib.h" | 43 | #include "qib.h" |
| 43 | #include "qib_common.h" | 44 | #include "qib_common.h" |
| 44 | #include "qib_mad.h" | 45 | #include "qib_mad.h" |
| 45 | 46 | ||
| 47 | #undef pr_fmt | ||
| 48 | #define pr_fmt(fmt) QIB_DRV_NAME ": " fmt | ||
| 49 | |||
| 46 | /* | 50 | /* |
| 47 | * min buffers we want to have per context, after driver | 51 | * min buffers we want to have per context, after driver |
| 48 | */ | 52 | */ |
| @@ -124,8 +128,8 @@ int qib_create_ctxts(struct qib_devdata *dd) | |||
| 124 | */ | 128 | */ |
| 125 | dd->rcd = kzalloc(sizeof(*dd->rcd) * dd->ctxtcnt, GFP_KERNEL); | 129 | dd->rcd = kzalloc(sizeof(*dd->rcd) * dd->ctxtcnt, GFP_KERNEL); |
| 126 | if (!dd->rcd) { | 130 | if (!dd->rcd) { |
| 127 | qib_dev_err(dd, "Unable to allocate ctxtdata array, " | 131 | qib_dev_err(dd, |
| 128 | "failing\n"); | 132 | "Unable to allocate ctxtdata array, failing\n"); |
| 129 | ret = -ENOMEM; | 133 | ret = -ENOMEM; |
| 130 | goto done; | 134 | goto done; |
| 131 | } | 135 | } |
| @@ -141,8 +145,8 @@ int qib_create_ctxts(struct qib_devdata *dd) | |||
| 141 | ppd = dd->pport + (i % dd->num_pports); | 145 | ppd = dd->pport + (i % dd->num_pports); |
| 142 | rcd = qib_create_ctxtdata(ppd, i); | 146 | rcd = qib_create_ctxtdata(ppd, i); |
| 143 | if (!rcd) { | 147 | if (!rcd) { |
| 144 | qib_dev_err(dd, "Unable to allocate ctxtdata" | 148 | qib_dev_err(dd, |
| 145 | " for Kernel ctxt, failing\n"); | 149 | "Unable to allocate ctxtdata for Kernel ctxt, failing\n"); |
| 146 | ret = -ENOMEM; | 150 | ret = -ENOMEM; |
| 147 | goto done; | 151 | goto done; |
| 148 | } | 152 | } |
| @@ -303,8 +307,8 @@ static int init_pioavailregs(struct qib_devdata *dd) | |||
| 303 | &dd->pcidev->dev, PAGE_SIZE, &dd->pioavailregs_phys, | 307 | &dd->pcidev->dev, PAGE_SIZE, &dd->pioavailregs_phys, |
| 304 | GFP_KERNEL); | 308 | GFP_KERNEL); |
| 305 | if (!dd->pioavailregs_dma) { | 309 | if (!dd->pioavailregs_dma) { |
| 306 | qib_dev_err(dd, "failed to allocate PIOavail reg area " | 310 | qib_dev_err(dd, |
| 307 | "in memory\n"); | 311 | "failed to allocate PIOavail reg area in memory\n"); |
| 308 | ret = -ENOMEM; | 312 | ret = -ENOMEM; |
| 309 | goto done; | 313 | goto done; |
| 310 | } | 314 | } |
| @@ -359,15 +363,15 @@ static void init_shadow_tids(struct qib_devdata *dd) | |||
| 359 | 363 | ||
| 360 | pages = vzalloc(dd->cfgctxts * dd->rcvtidcnt * sizeof(struct page *)); | 364 | pages = vzalloc(dd->cfgctxts * dd->rcvtidcnt * sizeof(struct page *)); |
| 361 | if (!pages) { | 365 | if (!pages) { |
| 362 | qib_dev_err(dd, "failed to allocate shadow page * " | 366 | qib_dev_err(dd, |
| 363 | "array, no expected sends!\n"); | 367 | "failed to allocate shadow page * array, no expected sends!\n"); |
| 364 | goto bail; | 368 | goto bail; |
| 365 | } | 369 | } |
| 366 | 370 | ||
| 367 | addrs = vzalloc(dd->cfgctxts * dd->rcvtidcnt * sizeof(dma_addr_t)); | 371 | addrs = vzalloc(dd->cfgctxts * dd->rcvtidcnt * sizeof(dma_addr_t)); |
| 368 | if (!addrs) { | 372 | if (!addrs) { |
| 369 | qib_dev_err(dd, "failed to allocate shadow dma handle " | 373 | qib_dev_err(dd, |
| 370 | "array, no expected sends!\n"); | 374 | "failed to allocate shadow dma handle array, no expected sends!\n"); |
| 371 | goto bail_free; | 375 | goto bail_free; |
| 372 | } | 376 | } |
| 373 | 377 | ||
| @@ -391,13 +395,13 @@ static int loadtime_init(struct qib_devdata *dd) | |||
| 391 | 395 | ||
| 392 | if (((dd->revision >> QLOGIC_IB_R_SOFTWARE_SHIFT) & | 396 | if (((dd->revision >> QLOGIC_IB_R_SOFTWARE_SHIFT) & |
| 393 | QLOGIC_IB_R_SOFTWARE_MASK) != QIB_CHIP_SWVERSION) { | 397 | QLOGIC_IB_R_SOFTWARE_MASK) != QIB_CHIP_SWVERSION) { |
| 394 | qib_dev_err(dd, "Driver only handles version %d, " | 398 | qib_dev_err(dd, |
| 395 | "chip swversion is %d (%llx), failng\n", | 399 | "Driver only handles version %d, chip swversion is %d (%llx), failng\n", |
| 396 | QIB_CHIP_SWVERSION, | 400 | QIB_CHIP_SWVERSION, |
| 397 | (int)(dd->revision >> | 401 | (int)(dd->revision >> |
| 398 | QLOGIC_IB_R_SOFTWARE_SHIFT) & | 402 | QLOGIC_IB_R_SOFTWARE_SHIFT) & |
| 399 | QLOGIC_IB_R_SOFTWARE_MASK, | 403 | QLOGIC_IB_R_SOFTWARE_MASK, |
| 400 | (unsigned long long) dd->revision); | 404 | (unsigned long long) dd->revision); |
| 401 | ret = -ENOSYS; | 405 | ret = -ENOSYS; |
| 402 | goto done; | 406 | goto done; |
| 403 | } | 407 | } |
| @@ -501,8 +505,8 @@ static void verify_interrupt(unsigned long opaque) | |||
| 501 | */ | 505 | */ |
| 502 | if (dd->int_counter == 0) { | 506 | if (dd->int_counter == 0) { |
| 503 | if (!dd->f_intr_fallback(dd)) | 507 | if (!dd->f_intr_fallback(dd)) |
| 504 | dev_err(&dd->pcidev->dev, "No interrupts detected, " | 508 | dev_err(&dd->pcidev->dev, |
| 505 | "not usable.\n"); | 509 | "No interrupts detected, not usable.\n"); |
| 506 | else /* re-arm the timer to see if fallback works */ | 510 | else /* re-arm the timer to see if fallback works */ |
| 507 | mod_timer(&dd->intrchk_timer, jiffies + HZ/2); | 511 | mod_timer(&dd->intrchk_timer, jiffies + HZ/2); |
| 508 | } | 512 | } |
| @@ -587,9 +591,8 @@ static int qib_create_workqueues(struct qib_devdata *dd) | |||
| 587 | } | 591 | } |
| 588 | return 0; | 592 | return 0; |
| 589 | wq_error: | 593 | wq_error: |
| 590 | pr_err( | 594 | pr_err("create_singlethread_workqueue failed for port %d\n", |
| 591 | QIB_DRV_NAME ": create_singlethread_workqueue failed for port %d\n", | 595 | pidx + 1); |
| 592 | pidx + 1); | ||
| 593 | for (pidx = 0; pidx < dd->num_pports; ++pidx) { | 596 | for (pidx = 0; pidx < dd->num_pports; ++pidx) { |
| 594 | ppd = dd->pport + pidx; | 597 | ppd = dd->pport + pidx; |
| 595 | if (ppd->qib_wq) { | 598 | if (ppd->qib_wq) { |
| @@ -665,8 +668,8 @@ int qib_init(struct qib_devdata *dd, int reinit) | |||
| 665 | if (!lastfail) | 668 | if (!lastfail) |
| 666 | lastfail = qib_setup_eagerbufs(rcd); | 669 | lastfail = qib_setup_eagerbufs(rcd); |
| 667 | if (lastfail) { | 670 | if (lastfail) { |
| 668 | qib_dev_err(dd, "failed to allocate kernel ctxt's " | 671 | qib_dev_err(dd, |
| 669 | "rcvhdrq and/or egr bufs\n"); | 672 | "failed to allocate kernel ctxt's rcvhdrq and/or egr bufs\n"); |
| 670 | continue; | 673 | continue; |
| 671 | } | 674 | } |
| 672 | } | 675 | } |
| @@ -1016,8 +1019,7 @@ static void qib_verify_pioperf(struct qib_devdata *dd) | |||
| 1016 | /* 1 GiB/sec, slightly over IB SDR line rate */ | 1019 | /* 1 GiB/sec, slightly over IB SDR line rate */ |
| 1017 | if (lcnt < (emsecs * 1024U)) | 1020 | if (lcnt < (emsecs * 1024U)) |
| 1018 | qib_dev_err(dd, | 1021 | qib_dev_err(dd, |
| 1019 | "Performance problem: bandwidth to PIO buffers is " | 1022 | "Performance problem: bandwidth to PIO buffers is only %u MiB/sec\n", |
| 1020 | "only %u MiB/sec\n", | ||
| 1021 | lcnt / (u32) emsecs); | 1023 | lcnt / (u32) emsecs); |
| 1022 | 1024 | ||
| 1023 | preempt_enable(); | 1025 | preempt_enable(); |
| @@ -1090,8 +1092,8 @@ struct qib_devdata *qib_alloc_devdata(struct pci_dev *pdev, size_t extra) | |||
| 1090 | if (qib_cpulist) | 1092 | if (qib_cpulist) |
| 1091 | qib_cpulist_count = count; | 1093 | qib_cpulist_count = count; |
| 1092 | else | 1094 | else |
| 1093 | qib_early_err(&pdev->dev, "Could not alloc cpulist " | 1095 | qib_early_err(&pdev->dev, |
| 1094 | "info, cpu affinity might be wrong\n"); | 1096 | "Could not alloc cpulist info, cpu affinity might be wrong\n"); |
| 1095 | } | 1097 | } |
| 1096 | 1098 | ||
| 1097 | bail: | 1099 | bail: |
| @@ -1180,21 +1182,20 @@ static int __init qlogic_ib_init(void) | |||
| 1180 | */ | 1182 | */ |
| 1181 | idr_init(&qib_unit_table); | 1183 | idr_init(&qib_unit_table); |
| 1182 | if (!idr_pre_get(&qib_unit_table, GFP_KERNEL)) { | 1184 | if (!idr_pre_get(&qib_unit_table, GFP_KERNEL)) { |
| 1183 | printk(KERN_ERR QIB_DRV_NAME ": idr_pre_get() failed\n"); | 1185 | pr_err("idr_pre_get() failed\n"); |
| 1184 | ret = -ENOMEM; | 1186 | ret = -ENOMEM; |
| 1185 | goto bail_cq_wq; | 1187 | goto bail_cq_wq; |
| 1186 | } | 1188 | } |
| 1187 | 1189 | ||
| 1188 | ret = pci_register_driver(&qib_driver); | 1190 | ret = pci_register_driver(&qib_driver); |
| 1189 | if (ret < 0) { | 1191 | if (ret < 0) { |
| 1190 | printk(KERN_ERR QIB_DRV_NAME | 1192 | pr_err("Unable to register driver: error %d\n", -ret); |
| 1191 | ": Unable to register driver: error %d\n", -ret); | ||
| 1192 | goto bail_unit; | 1193 | goto bail_unit; |
| 1193 | } | 1194 | } |
| 1194 | 1195 | ||
| 1195 | /* not fatal if it doesn't work */ | 1196 | /* not fatal if it doesn't work */ |
| 1196 | if (qib_init_qibfs()) | 1197 | if (qib_init_qibfs()) |
| 1197 | printk(KERN_ERR QIB_DRV_NAME ": Unable to register ipathfs\n"); | 1198 | pr_err("Unable to register ipathfs\n"); |
| 1198 | goto bail; /* all OK */ | 1199 | goto bail; /* all OK */ |
| 1199 | 1200 | ||
| 1200 | bail_unit: | 1201 | bail_unit: |
| @@ -1218,9 +1219,9 @@ static void __exit qlogic_ib_cleanup(void) | |||
| 1218 | 1219 | ||
| 1219 | ret = qib_exit_qibfs(); | 1220 | ret = qib_exit_qibfs(); |
| 1220 | if (ret) | 1221 | if (ret) |
| 1221 | printk(KERN_ERR QIB_DRV_NAME ": " | 1222 | pr_err( |
| 1222 | "Unable to cleanup counter filesystem: " | 1223 | "Unable to cleanup counter filesystem: error %d\n", |
| 1223 | "error %d\n", -ret); | 1224 | -ret); |
| 1224 | 1225 | ||
| 1225 | pci_unregister_driver(&qib_driver); | 1226 | pci_unregister_driver(&qib_driver); |
| 1226 | 1227 | ||
| @@ -1360,9 +1361,9 @@ static int __devinit qib_init_one(struct pci_dev *pdev, | |||
| 1360 | #ifdef CONFIG_PCI_MSI | 1361 | #ifdef CONFIG_PCI_MSI |
| 1361 | dd = qib_init_iba6120_funcs(pdev, ent); | 1362 | dd = qib_init_iba6120_funcs(pdev, ent); |
| 1362 | #else | 1363 | #else |
| 1363 | qib_early_err(&pdev->dev, "QLogic PCIE device 0x%x cannot " | 1364 | qib_early_err(&pdev->dev, |
| 1364 | "work if CONFIG_PCI_MSI is not enabled\n", | 1365 | "QLogic PCIE device 0x%x cannot work if CONFIG_PCI_MSI is not enabled\n", |
| 1365 | ent->device); | 1366 | ent->device); |
| 1366 | dd = ERR_PTR(-ENODEV); | 1367 | dd = ERR_PTR(-ENODEV); |
| 1367 | #endif | 1368 | #endif |
| 1368 | break; | 1369 | break; |
| @@ -1376,8 +1377,9 @@ static int __devinit qib_init_one(struct pci_dev *pdev, | |||
| 1376 | break; | 1377 | break; |
| 1377 | 1378 | ||
| 1378 | default: | 1379 | default: |
| 1379 | qib_early_err(&pdev->dev, "Failing on unknown QLogic " | 1380 | qib_early_err(&pdev->dev, |
| 1380 | "deviceid 0x%x\n", ent->device); | 1381 | "Failing on unknown QLogic deviceid 0x%x\n", |
| 1382 | ent->device); | ||
| 1381 | ret = -ENODEV; | 1383 | ret = -ENODEV; |
| 1382 | } | 1384 | } |
| 1383 | 1385 | ||
| @@ -1434,9 +1436,9 @@ static int __devinit qib_init_one(struct pci_dev *pdev, | |||
| 1434 | if (!qib_wc_pat) { | 1436 | if (!qib_wc_pat) { |
| 1435 | ret = qib_enable_wc(dd); | 1437 | ret = qib_enable_wc(dd); |
| 1436 | if (ret) { | 1438 | if (ret) { |
| 1437 | qib_dev_err(dd, "Write combining not enabled " | 1439 | qib_dev_err(dd, |
| 1438 | "(err %d): performance may be poor\n", | 1440 | "Write combining not enabled (err %d): performance may be poor\n", |
| 1439 | -ret); | 1441 | -ret); |
| 1440 | ret = 0; | 1442 | ret = 0; |
| 1441 | } | 1443 | } |
| 1442 | } | 1444 | } |
| @@ -1502,9 +1504,9 @@ int qib_create_rcvhdrq(struct qib_devdata *dd, struct qib_ctxtdata *rcd) | |||
| 1502 | gfp_flags | __GFP_COMP); | 1504 | gfp_flags | __GFP_COMP); |
| 1503 | 1505 | ||
| 1504 | if (!rcd->rcvhdrq) { | 1506 | if (!rcd->rcvhdrq) { |
| 1505 | qib_dev_err(dd, "attempt to allocate %d bytes " | 1507 | qib_dev_err(dd, |
| 1506 | "for ctxt %u rcvhdrq failed\n", | 1508 | "attempt to allocate %d bytes for ctxt %u rcvhdrq failed\n", |
| 1507 | amt, rcd->ctxt); | 1509 | amt, rcd->ctxt); |
| 1508 | goto bail; | 1510 | goto bail; |
| 1509 | } | 1511 | } |
| 1510 | 1512 | ||
| @@ -1533,8 +1535,9 @@ int qib_create_rcvhdrq(struct qib_devdata *dd, struct qib_ctxtdata *rcd) | |||
| 1533 | return 0; | 1535 | return 0; |
| 1534 | 1536 | ||
| 1535 | bail_free: | 1537 | bail_free: |
| 1536 | qib_dev_err(dd, "attempt to allocate 1 page for ctxt %u " | 1538 | qib_dev_err(dd, |
| 1537 | "rcvhdrqtailaddr failed\n", rcd->ctxt); | 1539 | "attempt to allocate 1 page for ctxt %u rcvhdrqtailaddr failed\n", |
| 1540 | rcd->ctxt); | ||
| 1538 | vfree(rcd->user_event_mask); | 1541 | vfree(rcd->user_event_mask); |
| 1539 | rcd->user_event_mask = NULL; | 1542 | rcd->user_event_mask = NULL; |
| 1540 | bail_free_hdrq: | 1543 | bail_free_hdrq: |
diff --git a/drivers/infiniband/hw/qib/qib_intr.c b/drivers/infiniband/hw/qib/qib_intr.c index 6ae57d23004a..f4918f2165ec 100644 --- a/drivers/infiniband/hw/qib/qib_intr.c +++ b/drivers/infiniband/hw/qib/qib_intr.c | |||
| @@ -224,15 +224,15 @@ void qib_bad_intrstatus(struct qib_devdata *dd) | |||
| 224 | * We print the message and disable interrupts, in hope of | 224 | * We print the message and disable interrupts, in hope of |
| 225 | * having a better chance of debugging the problem. | 225 | * having a better chance of debugging the problem. |
| 226 | */ | 226 | */ |
| 227 | qib_dev_err(dd, "Read of chip interrupt status failed" | 227 | qib_dev_err(dd, |
| 228 | " disabling interrupts\n"); | 228 | "Read of chip interrupt status failed disabling interrupts\n"); |
| 229 | if (allbits++) { | 229 | if (allbits++) { |
| 230 | /* disable interrupt delivery, something is very wrong */ | 230 | /* disable interrupt delivery, something is very wrong */ |
| 231 | if (allbits == 2) | 231 | if (allbits == 2) |
| 232 | dd->f_set_intr_state(dd, 0); | 232 | dd->f_set_intr_state(dd, 0); |
| 233 | if (allbits == 3) { | 233 | if (allbits == 3) { |
| 234 | qib_dev_err(dd, "2nd bad interrupt status, " | 234 | qib_dev_err(dd, |
| 235 | "unregistering interrupts\n"); | 235 | "2nd bad interrupt status, unregistering interrupts\n"); |
| 236 | dd->flags |= QIB_BADINTR; | 236 | dd->flags |= QIB_BADINTR; |
| 237 | dd->flags &= ~QIB_INITTED; | 237 | dd->flags &= ~QIB_INITTED; |
| 238 | dd->f_free_irq(dd); | 238 | dd->f_free_irq(dd); |
diff --git a/drivers/infiniband/hw/qib/qib_pcie.c b/drivers/infiniband/hw/qib/qib_pcie.c index 4f9d91823f15..062c301ebf53 100644 --- a/drivers/infiniband/hw/qib/qib_pcie.c +++ b/drivers/infiniband/hw/qib/qib_pcie.c | |||
| @@ -224,8 +224,9 @@ static void qib_msix_setup(struct qib_devdata *dd, int pos, u32 *msixcnt, | |||
| 224 | } | 224 | } |
| 225 | do_intx: | 225 | do_intx: |
| 226 | if (ret) { | 226 | if (ret) { |
| 227 | qib_dev_err(dd, "pci_enable_msix %d vectors failed: %d, " | 227 | qib_dev_err(dd, |
| 228 | "falling back to INTx\n", tabsize, ret); | 228 | "pci_enable_msix %d vectors failed: %d, falling back to INTx\n", |
| 229 | tabsize, ret); | ||
| 229 | tabsize = 0; | 230 | tabsize = 0; |
| 230 | } | 231 | } |
| 231 | for (i = 0; i < tabsize; i++) | 232 | for (i = 0; i < tabsize; i++) |
| @@ -251,8 +252,9 @@ static int qib_msi_setup(struct qib_devdata *dd, int pos) | |||
| 251 | 252 | ||
| 252 | ret = pci_enable_msi(pdev); | 253 | ret = pci_enable_msi(pdev); |
| 253 | if (ret) | 254 | if (ret) |
| 254 | qib_dev_err(dd, "pci_enable_msi failed: %d, " | 255 | qib_dev_err(dd, |
| 255 | "interrupts may not work\n", ret); | 256 | "pci_enable_msi failed: %d, interrupts may not work\n", |
| 257 | ret); | ||
| 256 | /* continue even if it fails, we may still be OK... */ | 258 | /* continue even if it fails, we may still be OK... */ |
| 257 | 259 | ||
| 258 | pci_read_config_dword(pdev, pos + PCI_MSI_ADDRESS_LO, | 260 | pci_read_config_dword(pdev, pos + PCI_MSI_ADDRESS_LO, |
| @@ -358,8 +360,8 @@ int qib_reinit_intr(struct qib_devdata *dd) | |||
| 358 | 360 | ||
| 359 | pos = pci_find_capability(dd->pcidev, PCI_CAP_ID_MSI); | 361 | pos = pci_find_capability(dd->pcidev, PCI_CAP_ID_MSI); |
| 360 | if (!pos) { | 362 | if (!pos) { |
| 361 | qib_dev_err(dd, "Can't find MSI capability, " | 363 | qib_dev_err(dd, |
| 362 | "can't restore MSI settings\n"); | 364 | "Can't find MSI capability, can't restore MSI settings\n"); |
| 363 | ret = 0; | 365 | ret = 0; |
| 364 | /* nothing special for MSIx, just MSI */ | 366 | /* nothing special for MSIx, just MSI */ |
| 365 | goto bail; | 367 | goto bail; |
| @@ -471,8 +473,8 @@ void qib_pcie_reenable(struct qib_devdata *dd, u16 cmd, u8 iline, u8 cline) | |||
| 471 | pci_write_config_byte(dd->pcidev, PCI_CACHE_LINE_SIZE, cline); | 473 | pci_write_config_byte(dd->pcidev, PCI_CACHE_LINE_SIZE, cline); |
| 472 | r = pci_enable_device(dd->pcidev); | 474 | r = pci_enable_device(dd->pcidev); |
| 473 | if (r) | 475 | if (r) |
| 474 | qib_dev_err(dd, "pci_enable_device failed after " | 476 | qib_dev_err(dd, |
| 475 | "reset: %d\n", r); | 477 | "pci_enable_device failed after reset: %d\n", r); |
| 476 | } | 478 | } |
| 477 | 479 | ||
| 478 | /* code to adjust PCIe capabilities. */ | 480 | /* code to adjust PCIe capabilities. */ |
| @@ -717,8 +719,9 @@ qib_pci_mmio_enabled(struct pci_dev *pdev) | |||
| 717 | if (words == ~0ULL) | 719 | if (words == ~0ULL) |
| 718 | ret = PCI_ERS_RESULT_NEED_RESET; | 720 | ret = PCI_ERS_RESULT_NEED_RESET; |
| 719 | } | 721 | } |
| 720 | qib_devinfo(pdev, "QIB mmio_enabled function called, " | 722 | qib_devinfo(pdev, |
| 721 | "read wordscntr %Lx, returning %d\n", words, ret); | 723 | "QIB mmio_enabled function called, read wordscntr %Lx, returning %d\n", |
| 724 | words, ret); | ||
| 722 | return ret; | 725 | return ret; |
| 723 | } | 726 | } |
| 724 | 727 | ||
diff --git a/drivers/infiniband/hw/qib/qib_sd7220.c b/drivers/infiniband/hw/qib/qib_sd7220.c index ac065dd6b693..a322d5171a2c 100644 --- a/drivers/infiniband/hw/qib/qib_sd7220.c +++ b/drivers/infiniband/hw/qib/qib_sd7220.c | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2006, 2007, 2008, 2009, 2010 QLogic Corporation. | 2 | * Copyright (c) 2012 Intel Corporation. All rights reserved. |
| 3 | * All rights reserved. | 3 | * Copyright (c) 2006 - 2012 QLogic Corporation. All rights reserved. |
| 4 | * Copyright (c) 2003, 2004, 2005, 2006 PathScale, Inc. All rights reserved. | 4 | * Copyright (c) 2003, 2004, 2005, 2006 PathScale, Inc. All rights reserved. |
| 5 | * | 5 | * |
| 6 | * This software is available to you under a choice of one of two | 6 | * This software is available to you under a choice of one of two |
| @@ -342,15 +342,17 @@ static void qib_sd_trimdone_monitor(struct qib_devdata *dd, | |||
| 342 | ret = qib_sd7220_reg_mod(dd, IB_7220_SERDES, | 342 | ret = qib_sd7220_reg_mod(dd, IB_7220_SERDES, |
| 343 | IB_CTRL2(chn), 0, 0); | 343 | IB_CTRL2(chn), 0, 0); |
| 344 | if (ret < 0) | 344 | if (ret < 0) |
| 345 | qib_dev_err(dd, "Failed checking TRIMDONE, chn %d" | 345 | qib_dev_err(dd, |
| 346 | " (%s)\n", chn, where); | 346 | "Failed checking TRIMDONE, chn %d (%s)\n", |
| 347 | chn, where); | ||
| 347 | 348 | ||
| 348 | if (!(ret & 0x10)) { | 349 | if (!(ret & 0x10)) { |
| 349 | int probe; | 350 | int probe; |
| 350 | 351 | ||
| 351 | baduns |= (1 << chn); | 352 | baduns |= (1 << chn); |
| 352 | qib_dev_err(dd, "TRIMDONE cleared on chn %d (%02X)." | 353 | qib_dev_err(dd, |
| 353 | " (%s)\n", chn, ret, where); | 354 | "TRIMDONE cleared on chn %d (%02X). (%s)\n", |
| 355 | chn, ret, where); | ||
| 354 | probe = qib_sd7220_reg_mod(dd, IB_7220_SERDES, | 356 | probe = qib_sd7220_reg_mod(dd, IB_7220_SERDES, |
| 355 | IB_PGUDP(0), 0, 0); | 357 | IB_PGUDP(0), 0, 0); |
| 356 | qib_dev_err(dd, "probe is %d (%02X)\n", | 358 | qib_dev_err(dd, "probe is %d (%02X)\n", |
| @@ -375,8 +377,8 @@ static void qib_sd_trimdone_monitor(struct qib_devdata *dd, | |||
| 375 | ret = qib_sd7220_reg_mod(dd, IB_7220_SERDES, | 377 | ret = qib_sd7220_reg_mod(dd, IB_7220_SERDES, |
| 376 | IB_CTRL2(chn), 0x10, 0x10); | 378 | IB_CTRL2(chn), 0x10, 0x10); |
| 377 | if (ret < 0) | 379 | if (ret < 0) |
| 378 | qib_dev_err(dd, "Failed re-setting " | 380 | qib_dev_err(dd, |
| 379 | "TRIMDONE, chn %d (%s)\n", | 381 | "Failed re-setting TRIMDONE, chn %d (%s)\n", |
| 380 | chn, where); | 382 | chn, where); |
| 381 | } | 383 | } |
| 382 | } | 384 | } |
| @@ -1144,10 +1146,10 @@ static int ibsd_mod_allchnls(struct qib_devdata *dd, int loc, int val, | |||
| 1144 | if (ret < 0) { | 1146 | if (ret < 0) { |
| 1145 | int sloc = loc >> EPB_ADDR_SHF; | 1147 | int sloc = loc >> EPB_ADDR_SHF; |
| 1146 | 1148 | ||
| 1147 | qib_dev_err(dd, "pre-read failed: elt %d," | 1149 | qib_dev_err(dd, |
| 1148 | " addr 0x%X, chnl %d\n", | 1150 | "pre-read failed: elt %d, addr 0x%X, chnl %d\n", |
| 1149 | (sloc & 0xF), | 1151 | (sloc & 0xF), |
| 1150 | (sloc >> 9) & 0x3f, chnl); | 1152 | (sloc >> 9) & 0x3f, chnl); |
| 1151 | return ret; | 1153 | return ret; |
| 1152 | } | 1154 | } |
| 1153 | val = (ret & ~mask) | (val & mask); | 1155 | val = (ret & ~mask) | (val & mask); |
| @@ -1157,9 +1159,9 @@ static int ibsd_mod_allchnls(struct qib_devdata *dd, int loc, int val, | |||
| 1157 | if (ret < 0) { | 1159 | if (ret < 0) { |
| 1158 | int sloc = loc >> EPB_ADDR_SHF; | 1160 | int sloc = loc >> EPB_ADDR_SHF; |
| 1159 | 1161 | ||
| 1160 | qib_dev_err(dd, "Global WR failed: elt %d," | 1162 | qib_dev_err(dd, |
| 1161 | " addr 0x%X, val %02X\n", | 1163 | "Global WR failed: elt %d, addr 0x%X, val %02X\n", |
| 1162 | (sloc & 0xF), (sloc >> 9) & 0x3f, val); | 1164 | (sloc & 0xF), (sloc >> 9) & 0x3f, val); |
| 1163 | } | 1165 | } |
| 1164 | return ret; | 1166 | return ret; |
| 1165 | } | 1167 | } |
| @@ -1173,11 +1175,10 @@ static int ibsd_mod_allchnls(struct qib_devdata *dd, int loc, int val, | |||
| 1173 | if (ret < 0) { | 1175 | if (ret < 0) { |
| 1174 | int sloc = loc >> EPB_ADDR_SHF; | 1176 | int sloc = loc >> EPB_ADDR_SHF; |
| 1175 | 1177 | ||
| 1176 | qib_dev_err(dd, "Write failed: elt %d," | 1178 | qib_dev_err(dd, |
| 1177 | " addr 0x%X, chnl %d, val 0x%02X," | 1179 | "Write failed: elt %d, addr 0x%X, chnl %d, val 0x%02X, mask 0x%02X\n", |
| 1178 | " mask 0x%02X\n", | 1180 | (sloc & 0xF), (sloc >> 9) & 0x3f, chnl, |
| 1179 | (sloc & 0xF), (sloc >> 9) & 0x3f, chnl, | 1181 | val & 0xFF, mask & 0xFF); |
| 1180 | val & 0xFF, mask & 0xFF); | ||
| 1181 | break; | 1182 | break; |
| 1182 | } | 1183 | } |
| 1183 | } | 1184 | } |
diff --git a/drivers/infiniband/hw/qib/qib_sdma.c b/drivers/infiniband/hw/qib/qib_sdma.c index 12a9604310d7..3fc514431212 100644 --- a/drivers/infiniband/hw/qib/qib_sdma.c +++ b/drivers/infiniband/hw/qib/qib_sdma.c | |||
| @@ -1,5 +1,6 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2007, 2008, 2009, 2010 QLogic Corporation. All rights reserved. | 2 | * Copyright (c) 2012 Intel Corporation. All rights reserved. |
| 3 | * Copyright (c) 2007 - 2012 QLogic Corporation. All rights reserved. | ||
| 3 | * | 4 | * |
| 4 | * This software is available to you under a choice of one of two | 5 | * This software is available to you under a choice of one of two |
| 5 | * licenses. You may choose to be licensed under the terms of the GNU | 6 | * licenses. You may choose to be licensed under the terms of the GNU |
| @@ -276,8 +277,8 @@ static int alloc_sdma(struct qib_pportdata *ppd) | |||
| 276 | GFP_KERNEL); | 277 | GFP_KERNEL); |
| 277 | 278 | ||
| 278 | if (!ppd->sdma_descq) { | 279 | if (!ppd->sdma_descq) { |
| 279 | qib_dev_err(ppd->dd, "failed to allocate SendDMA descriptor " | 280 | qib_dev_err(ppd->dd, |
| 280 | "FIFO memory\n"); | 281 | "failed to allocate SendDMA descriptor FIFO memory\n"); |
| 281 | goto bail; | 282 | goto bail; |
| 282 | } | 283 | } |
| 283 | 284 | ||
| @@ -285,8 +286,8 @@ static int alloc_sdma(struct qib_pportdata *ppd) | |||
| 285 | ppd->sdma_head_dma = dma_alloc_coherent(&ppd->dd->pcidev->dev, | 286 | ppd->sdma_head_dma = dma_alloc_coherent(&ppd->dd->pcidev->dev, |
| 286 | PAGE_SIZE, &ppd->sdma_head_phys, GFP_KERNEL); | 287 | PAGE_SIZE, &ppd->sdma_head_phys, GFP_KERNEL); |
| 287 | if (!ppd->sdma_head_dma) { | 288 | if (!ppd->sdma_head_dma) { |
| 288 | qib_dev_err(ppd->dd, "failed to allocate SendDMA " | 289 | qib_dev_err(ppd->dd, |
| 289 | "head memory\n"); | 290 | "failed to allocate SendDMA head memory\n"); |
| 290 | goto cleanup_descq; | 291 | goto cleanup_descq; |
| 291 | } | 292 | } |
| 292 | ppd->sdma_head_dma[0] = 0; | 293 | ppd->sdma_head_dma[0] = 0; |
diff --git a/drivers/infiniband/hw/qib/qib_sysfs.c b/drivers/infiniband/hw/qib/qib_sysfs.c index ae78305b59d0..034cc821de5c 100644 --- a/drivers/infiniband/hw/qib/qib_sysfs.c +++ b/drivers/infiniband/hw/qib/qib_sysfs.c | |||
| @@ -36,41 +36,6 @@ | |||
| 36 | #include "qib.h" | 36 | #include "qib.h" |
| 37 | #include "qib_mad.h" | 37 | #include "qib_mad.h" |
| 38 | 38 | ||
| 39 | /** | ||
| 40 | * qib_parse_ushort - parse an unsigned short value in an arbitrary base | ||
| 41 | * @str: the string containing the number | ||
| 42 | * @valp: where to put the result | ||
| 43 | * | ||
| 44 | * Returns the number of bytes consumed, or negative value on error. | ||
| 45 | */ | ||
| 46 | static int qib_parse_ushort(const char *str, unsigned short *valp) | ||
| 47 | { | ||
| 48 | unsigned long val; | ||
| 49 | char *end; | ||
| 50 | int ret; | ||
| 51 | |||
| 52 | if (!isdigit(str[0])) { | ||
| 53 | ret = -EINVAL; | ||
| 54 | goto bail; | ||
| 55 | } | ||
| 56 | |||
| 57 | val = simple_strtoul(str, &end, 0); | ||
| 58 | |||
| 59 | if (val > 0xffff) { | ||
| 60 | ret = -EINVAL; | ||
| 61 | goto bail; | ||
| 62 | } | ||
| 63 | |||
| 64 | *valp = val; | ||
| 65 | |||
| 66 | ret = end + 1 - str; | ||
| 67 | if (ret == 0) | ||
| 68 | ret = -EINVAL; | ||
| 69 | |||
| 70 | bail: | ||
| 71 | return ret; | ||
| 72 | } | ||
| 73 | |||
| 74 | /* start of per-port functions */ | 39 | /* start of per-port functions */ |
| 75 | /* | 40 | /* |
| 76 | * Get/Set heartbeat enable. OR of 1=enabled, 2=auto | 41 | * Get/Set heartbeat enable. OR of 1=enabled, 2=auto |
| @@ -92,7 +57,11 @@ static ssize_t store_hrtbt_enb(struct qib_pportdata *ppd, const char *buf, | |||
| 92 | int ret; | 57 | int ret; |
| 93 | u16 val; | 58 | u16 val; |
| 94 | 59 | ||
| 95 | ret = qib_parse_ushort(buf, &val); | 60 | ret = kstrtou16(buf, 0, &val); |
| 61 | if (ret) { | ||
| 62 | qib_dev_err(dd, "attempt to set invalid Heartbeat enable\n"); | ||
| 63 | return ret; | ||
| 64 | } | ||
| 96 | 65 | ||
| 97 | /* | 66 | /* |
| 98 | * Set the "intentional" heartbeat enable per either of | 67 | * Set the "intentional" heartbeat enable per either of |
| @@ -101,10 +70,7 @@ static ssize_t store_hrtbt_enb(struct qib_pportdata *ppd, const char *buf, | |||
| 101 | * because entering loopback mode overrides it and automatically | 70 | * because entering loopback mode overrides it and automatically |
| 102 | * disables heartbeat. | 71 | * disables heartbeat. |
| 103 | */ | 72 | */ |
| 104 | if (ret >= 0) | 73 | ret = dd->f_set_ib_cfg(ppd, QIB_IB_CFG_HRTBT, val); |
| 105 | ret = dd->f_set_ib_cfg(ppd, QIB_IB_CFG_HRTBT, val); | ||
| 106 | if (ret < 0) | ||
| 107 | qib_dev_err(dd, "attempt to set invalid Heartbeat enable\n"); | ||
| 108 | return ret < 0 ? ret : count; | 74 | return ret < 0 ? ret : count; |
| 109 | } | 75 | } |
| 110 | 76 | ||
| @@ -128,12 +94,14 @@ static ssize_t store_led_override(struct qib_pportdata *ppd, const char *buf, | |||
| 128 | int ret; | 94 | int ret; |
| 129 | u16 val; | 95 | u16 val; |
| 130 | 96 | ||
| 131 | ret = qib_parse_ushort(buf, &val); | 97 | ret = kstrtou16(buf, 0, &val); |
| 132 | if (ret > 0) | 98 | if (ret) { |
| 133 | qib_set_led_override(ppd, val); | ||
| 134 | else | ||
| 135 | qib_dev_err(dd, "attempt to set invalid LED override\n"); | 99 | qib_dev_err(dd, "attempt to set invalid LED override\n"); |
| 136 | return ret < 0 ? ret : count; | 100 | return ret; |
| 101 | } | ||
| 102 | |||
| 103 | qib_set_led_override(ppd, val); | ||
| 104 | return count; | ||
| 137 | } | 105 | } |
| 138 | 106 | ||
| 139 | static ssize_t show_status(struct qib_pportdata *ppd, char *buf) | 107 | static ssize_t show_status(struct qib_pportdata *ppd, char *buf) |
| @@ -501,12 +469,12 @@ static ssize_t diagc_attr_store(struct kobject *kobj, struct attribute *attr, | |||
| 501 | struct qib_pportdata *ppd = | 469 | struct qib_pportdata *ppd = |
| 502 | container_of(kobj, struct qib_pportdata, diagc_kobj); | 470 | container_of(kobj, struct qib_pportdata, diagc_kobj); |
| 503 | struct qib_ibport *qibp = &ppd->ibport_data; | 471 | struct qib_ibport *qibp = &ppd->ibport_data; |
| 504 | char *endp; | 472 | u32 val; |
| 505 | long val = simple_strtol(buf, &endp, 0); | 473 | int ret; |
| 506 | |||
| 507 | if (val < 0 || endp == buf) | ||
| 508 | return -EINVAL; | ||
| 509 | 474 | ||
| 475 | ret = kstrtou32(buf, 0, &val); | ||
| 476 | if (ret) | ||
| 477 | return ret; | ||
| 510 | *(u32 *)((char *) qibp + dattr->counter) = val; | 478 | *(u32 *)((char *) qibp + dattr->counter) = val; |
| 511 | return size; | 479 | return size; |
| 512 | } | 480 | } |
| @@ -739,8 +707,9 @@ int qib_create_port_files(struct ib_device *ibdev, u8 port_num, | |||
| 739 | int ret; | 707 | int ret; |
| 740 | 708 | ||
| 741 | if (!port_num || port_num > dd->num_pports) { | 709 | if (!port_num || port_num > dd->num_pports) { |
| 742 | qib_dev_err(dd, "Skipping infiniband class with " | 710 | qib_dev_err(dd, |
| 743 | "invalid port %u\n", port_num); | 711 | "Skipping infiniband class with invalid port %u\n", |
| 712 | port_num); | ||
| 744 | ret = -ENODEV; | 713 | ret = -ENODEV; |
| 745 | goto bail; | 714 | goto bail; |
| 746 | } | 715 | } |
| @@ -749,8 +718,9 @@ int qib_create_port_files(struct ib_device *ibdev, u8 port_num, | |||
| 749 | ret = kobject_init_and_add(&ppd->pport_kobj, &qib_port_ktype, kobj, | 718 | ret = kobject_init_and_add(&ppd->pport_kobj, &qib_port_ktype, kobj, |
| 750 | "linkcontrol"); | 719 | "linkcontrol"); |
| 751 | if (ret) { | 720 | if (ret) { |
| 752 | qib_dev_err(dd, "Skipping linkcontrol sysfs info, " | 721 | qib_dev_err(dd, |
| 753 | "(err %d) port %u\n", ret, port_num); | 722 | "Skipping linkcontrol sysfs info, (err %d) port %u\n", |
| 723 | ret, port_num); | ||
| 754 | goto bail; | 724 | goto bail; |
| 755 | } | 725 | } |
| 756 | kobject_uevent(&ppd->pport_kobj, KOBJ_ADD); | 726 | kobject_uevent(&ppd->pport_kobj, KOBJ_ADD); |
| @@ -758,8 +728,9 @@ int qib_create_port_files(struct ib_device *ibdev, u8 port_num, | |||
| 758 | ret = kobject_init_and_add(&ppd->sl2vl_kobj, &qib_sl2vl_ktype, kobj, | 728 | ret = kobject_init_and_add(&ppd->sl2vl_kobj, &qib_sl2vl_ktype, kobj, |
| 759 | "sl2vl"); | 729 | "sl2vl"); |
| 760 | if (ret) { | 730 | if (ret) { |
| 761 | qib_dev_err(dd, "Skipping sl2vl sysfs info, " | 731 | qib_dev_err(dd, |
| 762 | "(err %d) port %u\n", ret, port_num); | 732 | "Skipping sl2vl sysfs info, (err %d) port %u\n", |
| 733 | ret, port_num); | ||
| 763 | goto bail_link; | 734 | goto bail_link; |
| 764 | } | 735 | } |
| 765 | kobject_uevent(&ppd->sl2vl_kobj, KOBJ_ADD); | 736 | kobject_uevent(&ppd->sl2vl_kobj, KOBJ_ADD); |
| @@ -767,8 +738,9 @@ int qib_create_port_files(struct ib_device *ibdev, u8 port_num, | |||
| 767 | ret = kobject_init_and_add(&ppd->diagc_kobj, &qib_diagc_ktype, kobj, | 738 | ret = kobject_init_and_add(&ppd->diagc_kobj, &qib_diagc_ktype, kobj, |
| 768 | "diag_counters"); | 739 | "diag_counters"); |
| 769 | if (ret) { | 740 | if (ret) { |
| 770 | qib_dev_err(dd, "Skipping diag_counters sysfs info, " | 741 | qib_dev_err(dd, |
| 771 | "(err %d) port %u\n", ret, port_num); | 742 | "Skipping diag_counters sysfs info, (err %d) port %u\n", |
| 743 | ret, port_num); | ||
| 772 | goto bail_sl; | 744 | goto bail_sl; |
| 773 | } | 745 | } |
| 774 | kobject_uevent(&ppd->diagc_kobj, KOBJ_ADD); | 746 | kobject_uevent(&ppd->diagc_kobj, KOBJ_ADD); |
diff --git a/drivers/infiniband/hw/qib/qib_twsi.c b/drivers/infiniband/hw/qib/qib_twsi.c index ddde72e11edb..647f7beb1b0a 100644 --- a/drivers/infiniband/hw/qib/qib_twsi.c +++ b/drivers/infiniband/hw/qib/qib_twsi.c | |||
| @@ -1,5 +1,6 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2006, 2007, 2008, 2009 QLogic Corporation. All rights reserved. | 2 | * Copyright (c) 2012 Intel Corporation. All rights reserved. |
| 3 | * Copyright (c) 2006 - 2012 QLogic Corporation. All rights reserved. | ||
| 3 | * Copyright (c) 2003, 2004, 2005, 2006 PathScale, Inc. All rights reserved. | 4 | * Copyright (c) 2003, 2004, 2005, 2006 PathScale, Inc. All rights reserved. |
| 4 | * | 5 | * |
| 5 | * This software is available to you under a choice of one of two | 6 | * This software is available to you under a choice of one of two |
| @@ -449,8 +450,9 @@ int qib_twsi_blk_wr(struct qib_devdata *dd, int dev, int addr, | |||
| 449 | goto failed_write; | 450 | goto failed_write; |
| 450 | ret = qib_twsi_wr(dd, addr, 0); | 451 | ret = qib_twsi_wr(dd, addr, 0); |
| 451 | if (ret) { | 452 | if (ret) { |
| 452 | qib_dev_err(dd, "Failed to write interface" | 453 | qib_dev_err(dd, |
| 453 | " write addr %02X\n", addr); | 454 | "Failed to write interface write addr %02X\n", |
| 455 | addr); | ||
| 454 | goto failed_write; | 456 | goto failed_write; |
| 455 | } | 457 | } |
| 456 | } | 458 | } |
diff --git a/drivers/infiniband/hw/qib/qib_wc_x86_64.c b/drivers/infiniband/hw/qib/qib_wc_x86_64.c index 561b8bca4060..1d7281c5a02e 100644 --- a/drivers/infiniband/hw/qib/qib_wc_x86_64.c +++ b/drivers/infiniband/hw/qib/qib_wc_x86_64.c | |||
| @@ -1,5 +1,6 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2006, 2007, 2008, 2009 QLogic Corporation. All rights reserved. | 2 | * Copyright (c) 2012 Intel Corporation. All rights reserved. |
| 3 | * Copyright (c) 2006 - 2012 QLogic Corporation. All rights reserved. | ||
| 3 | * Copyright (c) 2003, 2004, 2005, 2006 PathScale, Inc. All rights reserved. | 4 | * Copyright (c) 2003, 2004, 2005, 2006 PathScale, Inc. All rights reserved. |
| 4 | * | 5 | * |
| 5 | * This software is available to you under a choice of one of two | 6 | * This software is available to you under a choice of one of two |
| @@ -102,10 +103,10 @@ int qib_enable_wc(struct qib_devdata *dd) | |||
| 102 | u64 atmp; | 103 | u64 atmp; |
| 103 | atmp = pioaddr & ~(piolen - 1); | 104 | atmp = pioaddr & ~(piolen - 1); |
| 104 | if (atmp < addr || (atmp + piolen) > (addr + len)) { | 105 | if (atmp < addr || (atmp + piolen) > (addr + len)) { |
| 105 | qib_dev_err(dd, "No way to align address/size " | 106 | qib_dev_err(dd, |
| 106 | "(%llx/%llx), no WC mtrr\n", | 107 | "No way to align address/size (%llx/%llx), no WC mtrr\n", |
| 107 | (unsigned long long) atmp, | 108 | (unsigned long long) atmp, |
| 108 | (unsigned long long) piolen << 1); | 109 | (unsigned long long) piolen << 1); |
| 109 | ret = -ENODEV; | 110 | ret = -ENODEV; |
| 110 | } else { | 111 | } else { |
| 111 | pioaddr = atmp; | 112 | pioaddr = atmp; |
| @@ -120,8 +121,7 @@ int qib_enable_wc(struct qib_devdata *dd) | |||
| 120 | if (cookie < 0) { | 121 | if (cookie < 0) { |
| 121 | { | 122 | { |
| 122 | qib_devinfo(dd->pcidev, | 123 | qib_devinfo(dd->pcidev, |
| 123 | "mtrr_add() WC for PIO bufs " | 124 | "mtrr_add() WC for PIO bufs failed (%d)\n", |
| 124 | "failed (%d)\n", | ||
| 125 | cookie); | 125 | cookie); |
| 126 | ret = -EINVAL; | 126 | ret = -EINVAL; |
| 127 | } | 127 | } |
