Updated from Linux LTS 3.10.21 to 3.10.22
This commit is contained in:
@@ -280,9 +280,7 @@ static int ipath_user_sdma_pin_pages(const struct ipath_devdata *dd,
|
||||
int j;
|
||||
int ret;
|
||||
|
||||
ret = get_user_pages(current, current->mm, addr,
|
||||
npages, 0, 1, pages, NULL);
|
||||
|
||||
ret = get_user_pages_fast(addr, npages, 0, pages);
|
||||
if (ret != npages) {
|
||||
int i;
|
||||
|
||||
@@ -811,10 +809,7 @@ int ipath_user_sdma_writev(struct ipath_devdata *dd,
|
||||
while (dim) {
|
||||
const int mxp = 8;
|
||||
|
||||
down_write(¤t->mm->mmap_sem);
|
||||
ret = ipath_user_sdma_queue_pkts(dd, pq, &list, iov, dim, mxp);
|
||||
up_write(¤t->mm->mmap_sem);
|
||||
|
||||
if (ret <= 0)
|
||||
goto done_unlock;
|
||||
else {
|
||||
|
||||
@@ -5853,21 +5853,20 @@ static int setup_txselect(const char *str, struct kernel_param *kp)
|
||||
{
|
||||
struct qib_devdata *dd;
|
||||
unsigned long val;
|
||||
int ret;
|
||||
|
||||
char *n;
|
||||
if (strlen(str) >= MAX_ATTEN_LEN) {
|
||||
pr_info("txselect_values string too long\n");
|
||||
return -ENOSPC;
|
||||
}
|
||||
ret = kstrtoul(str, 0, &val);
|
||||
if (ret || val >= (TXDDS_TABLE_SZ + TXDDS_EXTRA_SZ +
|
||||
val = simple_strtoul(str, &n, 0);
|
||||
if (n == str || val >= (TXDDS_TABLE_SZ + TXDDS_EXTRA_SZ +
|
||||
TXDDS_MFG_SZ)) {
|
||||
pr_info("txselect_values must start with a number < %d\n",
|
||||
TXDDS_TABLE_SZ + TXDDS_EXTRA_SZ + TXDDS_MFG_SZ);
|
||||
return ret ? ret : -EINVAL;
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
strcpy(txselect_list, str);
|
||||
|
||||
list_for_each_entry(dd, &qib_dev_list, list)
|
||||
if (dd->deviceid == PCI_DEVICE_ID_QLOGIC_IB_7322)
|
||||
set_no_qsfp_atten(dd, 1);
|
||||
|
||||
@@ -1300,14 +1300,13 @@ static void srp_handle_recv(struct srp_target_port *target, struct ib_wc *wc)
|
||||
PFX "Recv failed with error code %d\n", res);
|
||||
}
|
||||
|
||||
static void srp_handle_qp_err(enum ib_wc_status wc_status,
|
||||
enum ib_wc_opcode wc_opcode,
|
||||
static void srp_handle_qp_err(enum ib_wc_status wc_status, bool send_err,
|
||||
struct srp_target_port *target)
|
||||
{
|
||||
if (target->connected && !target->qp_in_error) {
|
||||
shost_printk(KERN_ERR, target->scsi_host,
|
||||
PFX "failed %s status %d\n",
|
||||
wc_opcode & IB_WC_RECV ? "receive" : "send",
|
||||
send_err ? "send" : "receive",
|
||||
wc_status);
|
||||
}
|
||||
target->qp_in_error = true;
|
||||
@@ -1323,7 +1322,7 @@ static void srp_recv_completion(struct ib_cq *cq, void *target_ptr)
|
||||
if (likely(wc.status == IB_WC_SUCCESS)) {
|
||||
srp_handle_recv(target, &wc);
|
||||
} else {
|
||||
srp_handle_qp_err(wc.status, wc.opcode, target);
|
||||
srp_handle_qp_err(wc.status, false, target);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1339,7 +1338,7 @@ static void srp_send_completion(struct ib_cq *cq, void *target_ptr)
|
||||
iu = (struct srp_iu *) (uintptr_t) wc.wr_id;
|
||||
list_add(&iu->list, &target->free_tx);
|
||||
} else {
|
||||
srp_handle_qp_err(wc.status, wc.opcode, target);
|
||||
srp_handle_qp_err(wc.status, true, target);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user