diff options
Diffstat (limited to 'drivers/staging/rdma/ipath')
-rw-r--r-- | drivers/staging/rdma/ipath/ipath_driver.c | 27 | ||||
-rw-r--r-- | drivers/staging/rdma/ipath/ipath_eeprom.c | 2 | ||||
-rw-r--r-- | drivers/staging/rdma/ipath/ipath_file_ops.c | 15 | ||||
-rw-r--r-- | drivers/staging/rdma/ipath/ipath_fs.c | 13 | ||||
-rw-r--r-- | drivers/staging/rdma/ipath/ipath_iba6110.c | 7 | ||||
-rw-r--r-- | drivers/staging/rdma/ipath/ipath_init_chip.c | 32 | ||||
-rw-r--r-- | drivers/staging/rdma/ipath/ipath_intr.c | 8 | ||||
-rw-r--r-- | drivers/staging/rdma/ipath/ipath_kernel.h | 3 | ||||
-rw-r--r-- | drivers/staging/rdma/ipath/ipath_qp.c | 3 | ||||
-rw-r--r-- | drivers/staging/rdma/ipath/ipath_ruc.c | 1 | ||||
-rw-r--r-- | drivers/staging/rdma/ipath/ipath_sdma.c | 6 | ||||
-rw-r--r-- | drivers/staging/rdma/ipath/ipath_sysfs.c | 7 | ||||
-rw-r--r-- | drivers/staging/rdma/ipath/ipath_ud.c | 1 | ||||
-rw-r--r-- | drivers/staging/rdma/ipath/ipath_user_pages.c | 1 | ||||
-rw-r--r-- | drivers/staging/rdma/ipath/ipath_user_sdma.c | 5 | ||||
-rw-r--r-- | drivers/staging/rdma/ipath/ipath_verbs.c | 15 | ||||
-rw-r--r-- | drivers/staging/rdma/ipath/ipath_verbs_mcast.c | 1 |
17 files changed, 60 insertions, 87 deletions
diff --git a/drivers/staging/rdma/ipath/ipath_driver.c b/drivers/staging/rdma/ipath/ipath_driver.c index 871dbe56216a..2ab22f98e3ba 100644 --- a/drivers/staging/rdma/ipath/ipath_driver.c +++ b/drivers/staging/rdma/ipath/ipath_driver.c @@ -33,7 +33,6 @@ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -#include <linux/sched.h> #include <linux/spinlock.h> #include <linux/idr.h> #include <linux/pci.h> @@ -490,8 +489,7 @@ static int ipath_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) "Unable to set DMA mask for unit %u: %d\n", dd->ipath_unit, ret); goto bail_regions; - } - else { + } else { ipath_dbg("No 64bit DMA mask, used 32 bit mask\n"); ret = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32)); if (ret) @@ -501,8 +499,7 @@ static int ipath_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) dd->ipath_unit, ret); } - } - else { + } else { ret = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64)); if (ret) dev_info(&pdev->dev, @@ -1229,11 +1226,10 @@ reloop: ipath_cdbg(PKT, "typ %x, opcode %x (eager, " "qp=%x), len %x; ignored\n", etype, opcode, qp, tlen); - } - else if (etype == RCVHQ_RCV_TYPE_EXPECTED) + } else if (etype == RCVHQ_RCV_TYPE_EXPECTED) { ipath_dbg("Bug: Expected TID, opcode %x; ignored\n", be32_to_cpu(hdr->bth[0]) >> 24); - else { + } else { /* * error packet, type of error unknown. * Probably type 3, but we don't know, so don't @@ -1270,8 +1266,9 @@ reloop: pd->port_seq_cnt = 1; if (seq != pd->port_seq_cnt) last = 1; - } else if (l == hdrqtail) + } else if (l == hdrqtail) { last = 1; + } /* * update head regs on last packet, and every 16 packets. * Reduce bus traffic, while still trying to prevent @@ -1821,15 +1818,14 @@ int ipath_create_rcvhdrq(struct ipath_devdata *dd, (unsigned long) pd->port_rcvhdrq_phys, (unsigned long) pd->port_rcvhdrq_size, pd->port_port); - } - else + } else { ipath_cdbg(VERBOSE, "reuse port %d rcvhdrq @%p %llx phys; " "hdrtailaddr@%p %llx physical\n", pd->port_port, pd->port_rcvhdrq, (unsigned long long) pd->port_rcvhdrq_phys, pd->port_rcvhdrtail_kvaddr, (unsigned long long) pd->port_rcvhdrqtailaddr_phys); - + } /* clear for security and sanity on each use */ memset(pd->port_rcvhdrq, 0, pd->port_rcvhdrq_size); if (pd->port_rcvhdrtail_kvaddr) @@ -2310,10 +2306,9 @@ void ipath_set_led_override(struct ipath_devdata *dd, unsigned int val) */ if (atomic_inc_return(&dd->ipath_led_override_timer_active) == 1) { /* Need to start timer */ - init_timer(&dd->ipath_led_override_timer); - dd->ipath_led_override_timer.function = - ipath_run_led_override; - dd->ipath_led_override_timer.data = (unsigned long) dd; + setup_timer(&dd->ipath_led_override_timer, + ipath_run_led_override, (unsigned long)dd); + dd->ipath_led_override_timer.expires = jiffies + 1; add_timer(&dd->ipath_led_override_timer); } else diff --git a/drivers/staging/rdma/ipath/ipath_eeprom.c b/drivers/staging/rdma/ipath/ipath_eeprom.c index fc7181985e8e..ef84107c7ce0 100644 --- a/drivers/staging/rdma/ipath/ipath_eeprom.c +++ b/drivers/staging/rdma/ipath/ipath_eeprom.c @@ -411,7 +411,7 @@ bail: */ static int i2c_probe(struct ipath_devdata *dd, int devaddr) { - int ret = 0; + int ret; ret = eeprom_reset(dd); if (ret) { diff --git a/drivers/staging/rdma/ipath/ipath_file_ops.c b/drivers/staging/rdma/ipath/ipath_file_ops.c index 450d15965005..5d9b9dbd8fc4 100644 --- a/drivers/staging/rdma/ipath/ipath_file_ops.c +++ b/drivers/staging/rdma/ipath/ipath_file_ops.c @@ -825,13 +825,13 @@ static void ipath_clean_part_key(struct ipath_portdata *pd, ipath_stats.sps_pkeys[j] = dd->ipath_pkeys[j] = 0; pchanged++; + } else { + ipath_cdbg(VERBOSE, "p%u key %x matches #%d, " + "but ref still %d\n", pd->port_port, + pd->port_pkeys[i], j, + atomic_read(&dd->ipath_pkeyrefs[j])); + break; } - else ipath_cdbg( - VERBOSE, "p%u key %x matches #%d, " - "but ref still %d\n", pd->port_port, - pd->port_pkeys[i], j, - atomic_read(&dd->ipath_pkeyrefs[j])); - break; } pd->port_pkeys[i] = 0; } @@ -2046,7 +2046,6 @@ static void unlock_expected_tids(struct ipath_portdata *pd) static int ipath_close(struct inode *in, struct file *fp) { - int ret = 0; struct ipath_filedata *fd; struct ipath_portdata *pd; struct ipath_devdata *dd; @@ -2158,7 +2157,7 @@ static int ipath_close(struct inode *in, struct file *fp) bail: kfree(fd); - return ret; + return 0; } static int ipath_port_info(struct ipath_portdata *pd, u16 subport, diff --git a/drivers/staging/rdma/ipath/ipath_fs.c b/drivers/staging/rdma/ipath/ipath_fs.c index 25422a3a7238..796af6867007 100644 --- a/drivers/staging/rdma/ipath/ipath_fs.c +++ b/drivers/staging/rdma/ipath/ipath_fs.c @@ -195,16 +195,9 @@ static ssize_t flash_write(struct file *file, const char __user *buf, goto bail; } - tmp = kmalloc(count, GFP_KERNEL); - if (!tmp) { - ret = -ENOMEM; - goto bail; - } - - if (copy_from_user(tmp, buf, count)) { - ret = -EFAULT; - goto bail_tmp; - } + tmp = memdup_user(buf, count); + if (IS_ERR(tmp)) + return PTR_ERR(tmp); dd = file_inode(file)->i_private; if (ipath_eeprom_write(dd, pos, tmp, count)) { diff --git a/drivers/staging/rdma/ipath/ipath_iba6110.c b/drivers/staging/rdma/ipath/ipath_iba6110.c index 7cc305488a3d..5f13572a5e24 100644 --- a/drivers/staging/rdma/ipath/ipath_iba6110.c +++ b/drivers/staging/rdma/ipath/ipath_iba6110.c @@ -666,9 +666,9 @@ static void ipath_ht_handle_hwerrors(struct ipath_devdata *dd, char *msg, * other reset is possible. */ dd->ipath_flags &= ~IPATH_INITTED; - } - else + } else { *msg = 0; /* recovered from all of them */ + } if (*msg) ipath_dev_err(dd, "%s hardware error\n", msg); if (isfatal && !ipath_diag_inuse && dd->ipath_freezemsg) @@ -1134,8 +1134,7 @@ static void ipath_setup_ht_setextled(struct ipath_devdata *dd, extctl &= ~INFINIPATH_EXTC_LEDGBLERR_OFF; if (lst == INFINIPATH_IBCS_L_STATE_ACTIVE) extctl |= INFINIPATH_EXTC_LEDGBLOK_ON; - } - else { + } else { extctl = dd->ipath_extctrl & ~(INFINIPATH_EXTC_LED1PRIPORT_ON | INFINIPATH_EXTC_LED2PRIPORT_ON); diff --git a/drivers/staging/rdma/ipath/ipath_init_chip.c b/drivers/staging/rdma/ipath/ipath_init_chip.c index be2a60e142b0..a5eea199f733 100644 --- a/drivers/staging/rdma/ipath/ipath_init_chip.c +++ b/drivers/staging/rdma/ipath/ipath_init_chip.c @@ -210,7 +210,7 @@ static int bringup_link(struct ipath_devdata *dd) static struct ipath_portdata *create_portdata0(struct ipath_devdata *dd) { - struct ipath_portdata *pd = NULL; + struct ipath_portdata *pd; pd = kzalloc(sizeof(*pd), GFP_KERNEL); if (pd) { @@ -264,7 +264,7 @@ static int init_chip_first(struct ipath_devdata *dd) * Allocate full portcnt array, rather than just cfgports, because * cleanup iterates across all possible ports. */ - dd->ipath_pd = kzalloc(sizeof(*dd->ipath_pd) * dd->ipath_portcnt, + dd->ipath_pd = kcalloc(dd->ipath_portcnt, sizeof(*dd->ipath_pd), GFP_KERNEL); if (!dd->ipath_pd) { @@ -324,10 +324,10 @@ static int init_chip_first(struct ipath_devdata *dd) dd->ipath_pio2kbase, dd->ipath_piobcnt4k, dd->ipath_piosize4k, dd->ipath_pio4kbase, dd->ipath_4kalign); + } else { + ipath_dbg("%u 2k piobufs @ %p\n", + dd->ipath_piobcnt2k, dd->ipath_pio2kbase); } - else ipath_dbg("%u 2k piobufs @ %p\n", - dd->ipath_piobcnt2k, dd->ipath_pio2kbase); - done: return ret; } @@ -903,9 +903,9 @@ int ipath_init_chip(struct ipath_devdata *dd, int reinit) ipath_dev_err(dd, "failed to allocate kernel port's " "rcvhdrq and/or egr bufs\n"); goto done; - } - else + } else { enable_chip(dd, reinit); + } /* after enable_chip, so pioavailshadow setup */ ipath_chg_pioavailkernel(dd, 0, piobufs, 1); @@ -950,9 +950,8 @@ int ipath_init_chip(struct ipath_devdata *dd, int reinit) * set up stats retrieval timer, even if we had errors * in last portion of setup */ - init_timer(&dd->ipath_stats_timer); - dd->ipath_stats_timer.function = ipath_get_faststats; - dd->ipath_stats_timer.data = (unsigned long) dd; + setup_timer(&dd->ipath_stats_timer, ipath_get_faststats, + (unsigned long)dd); /* every 5 seconds; */ dd->ipath_stats_timer.expires = jiffies + 5 * HZ; /* takes ~16 seconds to overflow at full IB 4x bandwdith */ @@ -965,9 +964,8 @@ int ipath_init_chip(struct ipath_devdata *dd, int reinit) ret = setup_sdma(dd); /* Set up HoL state */ - init_timer(&dd->ipath_hol_timer); - dd->ipath_hol_timer.function = ipath_hol_event; - dd->ipath_hol_timer.data = (unsigned long)dd; + setup_timer(&dd->ipath_hol_timer, ipath_hol_event, (unsigned long)dd); + dd->ipath_hol_state = IPATH_HOL_UP; done: @@ -988,11 +986,9 @@ done: * to an alternate if necessary and possible */ if (!reinit) { - init_timer(&dd->ipath_intrchk_timer); - dd->ipath_intrchk_timer.function = - verify_interrupt; - dd->ipath_intrchk_timer.data = - (unsigned long) dd; + setup_timer(&dd->ipath_intrchk_timer, + verify_interrupt, + (unsigned long)dd); } dd->ipath_intrchk_timer.expires = jiffies + HZ/2; add_timer(&dd->ipath_intrchk_timer); diff --git a/drivers/staging/rdma/ipath/ipath_intr.c b/drivers/staging/rdma/ipath/ipath_intr.c index 01ba792791a0..0403fa28ed8d 100644 --- a/drivers/staging/rdma/ipath/ipath_intr.c +++ b/drivers/staging/rdma/ipath/ipath_intr.c @@ -33,7 +33,6 @@ #include <linux/pci.h> #include <linux/delay.h> -#include <linux/sched.h> #include "ipath_kernel.h" #include "ipath_verbs.h" @@ -514,15 +513,14 @@ static unsigned handle_frequent_errors(struct ipath_devdata *dd, *noprint = 1; if (!supp_msgs++) nextmsg_time = nc + HZ * 3; - } - else if (supp_msgs) { + } else if (supp_msgs) { handle_supp_msgs(dd, supp_msgs, msg, msgsz); supp_msgs = 0; nmsgs = 0; } - } - else if (!nmsgs++ || time_after(nc, nextmsg_time)) + } else if (!nmsgs++ || time_after(nc, nextmsg_time)) { nextmsg_time = nc + HZ / 2; + } return supp_msgs; } diff --git a/drivers/staging/rdma/ipath/ipath_kernel.h b/drivers/staging/rdma/ipath/ipath_kernel.h index f0f947122779..66c934a5f839 100644 --- a/drivers/staging/rdma/ipath/ipath_kernel.h +++ b/drivers/staging/rdma/ipath/ipath_kernel.h @@ -44,6 +44,7 @@ #include <linux/mutex.h> #include <linux/list.h> #include <linux/scatterlist.h> +#include <linux/sched.h> #include <asm/io.h> #include <rdma/ib_verbs.h> @@ -162,7 +163,7 @@ struct ipath_portdata { struct pid *port_pid; struct pid *port_subpid[INFINIPATH_MAX_SUBPORT]; /* same size as task_struct .comm[] */ - char port_comm[16]; + char port_comm[TASK_COMM_LEN]; /* pkeys set by this use of this port */ u16 port_pkeys[4]; /* so file ops can get at unit */ diff --git a/drivers/staging/rdma/ipath/ipath_qp.c b/drivers/staging/rdma/ipath/ipath_qp.c index face87602dc1..280cd2d638e4 100644 --- a/drivers/staging/rdma/ipath/ipath_qp.c +++ b/drivers/staging/rdma/ipath/ipath_qp.c @@ -32,7 +32,6 @@ */ #include <linux/err.h> -#include <linux/sched.h> #include <linux/slab.h> #include <linux/vmalloc.h> @@ -1027,7 +1026,7 @@ int ipath_init_qp_table(struct ipath_ibdev *idev, int size) idev->qp_table.last = 1; /* QPN 0 and 1 are special. */ idev->qp_table.max = size; idev->qp_table.nmaps = 1; - idev->qp_table.table = kzalloc(size * sizeof(*idev->qp_table.table), + idev->qp_table.table = kcalloc(size, sizeof(*idev->qp_table.table), GFP_KERNEL); if (idev->qp_table.table == NULL) { ret = -ENOMEM; diff --git a/drivers/staging/rdma/ipath/ipath_ruc.c b/drivers/staging/rdma/ipath/ipath_ruc.c index 1f95bbaf7602..2296832f94da 100644 --- a/drivers/staging/rdma/ipath/ipath_ruc.c +++ b/drivers/staging/rdma/ipath/ipath_ruc.c @@ -31,7 +31,6 @@ * SOFTWARE. */ -#include <linux/sched.h> #include <linux/spinlock.h> #include "ipath_verbs.h" diff --git a/drivers/staging/rdma/ipath/ipath_sdma.c b/drivers/staging/rdma/ipath/ipath_sdma.c index 17a517766ad2..1ffc06abf9da 100644 --- a/drivers/staging/rdma/ipath/ipath_sdma.c +++ b/drivers/staging/rdma/ipath/ipath_sdma.c @@ -400,9 +400,9 @@ static int alloc_sdma(struct ipath_devdata *dd) } dd->ipath_sdma_head_dma[0] = 0; - init_timer(&dd->ipath_sdma_vl15_timer); - dd->ipath_sdma_vl15_timer.function = vl15_watchdog_timeout; - dd->ipath_sdma_vl15_timer.data = (unsigned long)dd; + setup_timer(&dd->ipath_sdma_vl15_timer, vl15_watchdog_timeout, + (unsigned long)dd); + atomic_set(&dd->ipath_sdma_vl15_count, 0); goto done; diff --git a/drivers/staging/rdma/ipath/ipath_sysfs.c b/drivers/staging/rdma/ipath/ipath_sysfs.c index 75558f33f1cb..b12b1f6caf59 100644 --- a/drivers/staging/rdma/ipath/ipath_sysfs.c +++ b/drivers/staging/rdma/ipath/ipath_sysfs.c @@ -662,8 +662,7 @@ static ssize_t store_enabled(struct device *dev, dd->ipath_flags &= ~IPATH_DISABLED; *dd->ipath_statusp &= ~IPATH_STATUS_ADMIN_DISABLED; } - } - else if (!(dd->ipath_flags & IPATH_DISABLED)) { + } else if (!(dd->ipath_flags & IPATH_DISABLED)) { dev_info(dev, "Disabling unit %d\n", dd->ipath_unit); ipath_shutdown_device(dd); dd->ipath_flags |= IPATH_DISABLED; @@ -1176,9 +1175,9 @@ int ipath_expose_reset(struct device *dev) if (!exposed) { ret = device_create_file(dev, &dev_attr_reset); exposed = 1; - } - else + } else { ret = 0; + } return ret; } diff --git a/drivers/staging/rdma/ipath/ipath_ud.c b/drivers/staging/rdma/ipath/ipath_ud.c index e8a2a915251e..33fcfe206bc9 100644 --- a/drivers/staging/rdma/ipath/ipath_ud.c +++ b/drivers/staging/rdma/ipath/ipath_ud.c @@ -31,7 +31,6 @@ * SOFTWARE. */ -#include <linux/sched.h> #include <rdma/ib_smi.h> #include "ipath_verbs.h" diff --git a/drivers/staging/rdma/ipath/ipath_user_pages.c b/drivers/staging/rdma/ipath/ipath_user_pages.c index 1da1252dcdb3..d29b4daf61f8 100644 --- a/drivers/staging/rdma/ipath/ipath_user_pages.c +++ b/drivers/staging/rdma/ipath/ipath_user_pages.c @@ -34,7 +34,6 @@ #include <linux/mm.h> #include <linux/device.h> #include <linux/slab.h> -#include <linux/sched.h> #include "ipath_kernel.h" diff --git a/drivers/staging/rdma/ipath/ipath_user_sdma.c b/drivers/staging/rdma/ipath/ipath_user_sdma.c index cc04b7ba3488..8c12e3cccc58 100644 --- a/drivers/staging/rdma/ipath/ipath_user_sdma.c +++ b/drivers/staging/rdma/ipath/ipath_user_sdma.c @@ -33,7 +33,6 @@ #include <linux/types.h> #include <linux/device.h> #include <linux/dmapool.h> -#include <linux/sched.h> #include <linux/slab.h> #include <linux/list.h> #include <linux/highmem.h> @@ -239,7 +238,7 @@ static int ipath_user_sdma_num_pages(const struct iovec *iov) /* truncate length to page boundary */ static int ipath_user_sdma_page_length(unsigned long addr, unsigned long len) { - const unsigned long offset = addr & ~PAGE_MASK; + const unsigned long offset = offset_in_page(addr); return ((offset + len) > PAGE_SIZE) ? (PAGE_SIZE - offset) : len; } @@ -298,7 +297,7 @@ static int ipath_user_sdma_pin_pages(const struct ipath_devdata *dd, dma_addr_t dma_addr = dma_map_page(&dd->pcidev->dev, pages[j], 0, flen, DMA_TO_DEVICE); - unsigned long fofs = addr & ~PAGE_MASK; + unsigned long fofs = offset_in_page(addr); if (dma_mapping_error(&dd->pcidev->dev, dma_addr)) { ret = -ENOMEM; diff --git a/drivers/staging/rdma/ipath/ipath_verbs.c b/drivers/staging/rdma/ipath/ipath_verbs.c index ed2bbc2f7eae..a2fb41bba117 100644 --- a/drivers/staging/rdma/ipath/ipath_verbs.c +++ b/drivers/staging/rdma/ipath/ipath_verbs.c @@ -739,9 +739,9 @@ static void ipath_ib_timer(struct ipath_ibdev *dev) dev->ipath_spkts = tc - dev->ipath_spkts; dev->ipath_rpkts = td - dev->ipath_rpkts; dev->ipath_xmit_wait = te - dev->ipath_xmit_wait; - } - else + } else { dev->pma_sample_interval--; + } } spin_unlock_irqrestore(&dev->pending_lock, flags); @@ -1956,9 +1956,8 @@ static int enable_timer(struct ipath_devdata *dd) dd->ipath_gpio_mask); } - init_timer(&dd->verbs_timer); - dd->verbs_timer.function = __verbs_timer; - dd->verbs_timer.data = (unsigned long)dd; + setup_timer(&dd->verbs_timer, __verbs_timer, (unsigned long)dd); + dd->verbs_timer.expires = jiffies + 1; add_timer(&dd->verbs_timer); @@ -2025,8 +2024,8 @@ int ipath_register_ib_device(struct ipath_devdata *dd) dev = &idev->ibdev; if (dd->ipath_sdma_descq_cnt) { - tx = kmalloc(dd->ipath_sdma_descq_cnt * sizeof *tx, - GFP_KERNEL); + tx = kmalloc_array(dd->ipath_sdma_descq_cnt, sizeof *tx, + GFP_KERNEL); if (tx == NULL) { ret = -ENOMEM; goto err_tx; @@ -2059,7 +2058,7 @@ int ipath_register_ib_device(struct ipath_devdata *dd) * the LKEY). The remaining bits act as a generation number or tag. */ idev->lk_table.max = 1 << ib_ipath_lkey_table_size; - idev->lk_table.table = kzalloc(idev->lk_table.max * + idev->lk_table.table = kcalloc(idev->lk_table.max, sizeof(*idev->lk_table.table), GFP_KERNEL); if (idev->lk_table.table == NULL) { diff --git a/drivers/staging/rdma/ipath/ipath_verbs_mcast.c b/drivers/staging/rdma/ipath/ipath_verbs_mcast.c index 6216ea923853..72d476fa5b8f 100644 --- a/drivers/staging/rdma/ipath/ipath_verbs_mcast.c +++ b/drivers/staging/rdma/ipath/ipath_verbs_mcast.c @@ -32,7 +32,6 @@ */ #include <linux/rculist.h> -#include <linux/sched.h> #include <linux/slab.h> #include "ipath_verbs.h" |