You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge branches 'cxgb4', 'misc', 'mlx4', 'nes' and 'qib' into for-next
This commit is contained in:
@@ -43,6 +43,7 @@ config INFINIBAND_ADDR_TRANS
|
||||
|
||||
source "drivers/infiniband/hw/mthca/Kconfig"
|
||||
source "drivers/infiniband/hw/ipath/Kconfig"
|
||||
source "drivers/infiniband/hw/qib/Kconfig"
|
||||
source "drivers/infiniband/hw/ehca/Kconfig"
|
||||
source "drivers/infiniband/hw/amso1100/Kconfig"
|
||||
source "drivers/infiniband/hw/cxgb3/Kconfig"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
obj-$(CONFIG_INFINIBAND) += core/
|
||||
obj-$(CONFIG_INFINIBAND_MTHCA) += hw/mthca/
|
||||
obj-$(CONFIG_INFINIBAND_IPATH) += hw/ipath/
|
||||
obj-$(CONFIG_INFINIBAND_QIB) += hw/qib/
|
||||
obj-$(CONFIG_INFINIBAND_EHCA) += hw/ehca/
|
||||
obj-$(CONFIG_INFINIBAND_AMSO1100) += hw/amso1100/
|
||||
obj-$(CONFIG_INFINIBAND_CXGB3) += hw/cxgb3/
|
||||
|
||||
@@ -38,7 +38,9 @@
|
||||
|
||||
#include <rdma/ib_verbs.h>
|
||||
|
||||
int ib_device_register_sysfs(struct ib_device *device);
|
||||
int ib_device_register_sysfs(struct ib_device *device,
|
||||
int (*port_callback)(struct ib_device *,
|
||||
u8, struct kobject *));
|
||||
void ib_device_unregister_sysfs(struct ib_device *device);
|
||||
|
||||
int ib_sysfs_setup(void);
|
||||
|
||||
@@ -267,7 +267,9 @@ out:
|
||||
* callback for each device that is added. @device must be allocated
|
||||
* with ib_alloc_device().
|
||||
*/
|
||||
int ib_register_device(struct ib_device *device)
|
||||
int ib_register_device(struct ib_device *device,
|
||||
int (*port_callback)(struct ib_device *,
|
||||
u8, struct kobject *))
|
||||
{
|
||||
int ret;
|
||||
|
||||
@@ -296,7 +298,7 @@ int ib_register_device(struct ib_device *device)
|
||||
goto out;
|
||||
}
|
||||
|
||||
ret = ib_device_register_sysfs(device);
|
||||
ret = ib_device_register_sysfs(device, port_callback);
|
||||
if (ret) {
|
||||
printk(KERN_WARNING "Couldn't register device %s with driver model\n",
|
||||
device->name);
|
||||
|
||||
@@ -47,8 +47,8 @@ MODULE_DESCRIPTION("kernel IB MAD API");
|
||||
MODULE_AUTHOR("Hal Rosenstock");
|
||||
MODULE_AUTHOR("Sean Hefty");
|
||||
|
||||
int mad_sendq_size = IB_MAD_QP_SEND_SIZE;
|
||||
int mad_recvq_size = IB_MAD_QP_RECV_SIZE;
|
||||
static int mad_sendq_size = IB_MAD_QP_SEND_SIZE;
|
||||
static int mad_recvq_size = IB_MAD_QP_RECV_SIZE;
|
||||
|
||||
module_param_named(send_queue_size, mad_sendq_size, int, 0444);
|
||||
MODULE_PARM_DESC(send_queue_size, "Size of send queue in number of work requests");
|
||||
|
||||
@@ -475,7 +475,9 @@ err:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static int add_port(struct ib_device *device, int port_num)
|
||||
static int add_port(struct ib_device *device, int port_num,
|
||||
int (*port_callback)(struct ib_device *,
|
||||
u8, struct kobject *))
|
||||
{
|
||||
struct ib_port *p;
|
||||
struct ib_port_attr attr;
|
||||
@@ -522,11 +524,20 @@ static int add_port(struct ib_device *device, int port_num)
|
||||
if (ret)
|
||||
goto err_free_pkey;
|
||||
|
||||
if (port_callback) {
|
||||
ret = port_callback(device, port_num, &p->kobj);
|
||||
if (ret)
|
||||
goto err_remove_pkey;
|
||||
}
|
||||
|
||||
list_add_tail(&p->kobj.entry, &device->port_list);
|
||||
|
||||
kobject_uevent(&p->kobj, KOBJ_ADD);
|
||||
return 0;
|
||||
|
||||
err_remove_pkey:
|
||||
sysfs_remove_group(&p->kobj, &p->pkey_group);
|
||||
|
||||
err_free_pkey:
|
||||
for (i = 0; i < attr.pkey_tbl_len; ++i)
|
||||
kfree(p->pkey_group.attrs[i]);
|
||||
@@ -754,7 +765,9 @@ static struct attribute_group iw_stats_group = {
|
||||
.attrs = iw_proto_stats_attrs,
|
||||
};
|
||||
|
||||
int ib_device_register_sysfs(struct ib_device *device)
|
||||
int ib_device_register_sysfs(struct ib_device *device,
|
||||
int (*port_callback)(struct ib_device *,
|
||||
u8, struct kobject *))
|
||||
{
|
||||
struct device *class_dev = &device->dev;
|
||||
int ret;
|
||||
@@ -785,12 +798,12 @@ int ib_device_register_sysfs(struct ib_device *device)
|
||||
}
|
||||
|
||||
if (device->node_type == RDMA_NODE_IB_SWITCH) {
|
||||
ret = add_port(device, 0);
|
||||
ret = add_port(device, 0, port_callback);
|
||||
if (ret)
|
||||
goto err_put;
|
||||
} else {
|
||||
for (i = 1; i <= device->phys_port_cnt; ++i) {
|
||||
ret = add_port(device, i);
|
||||
ret = add_port(device, i, port_callback);
|
||||
if (ret)
|
||||
goto err_put;
|
||||
}
|
||||
|
||||
@@ -865,7 +865,7 @@ int c2_register_device(struct c2_dev *dev)
|
||||
dev->ibdev.iwcm->create_listen = c2_service_create;
|
||||
dev->ibdev.iwcm->destroy_listen = c2_service_destroy;
|
||||
|
||||
ret = ib_register_device(&dev->ibdev);
|
||||
ret = ib_register_device(&dev->ibdev, NULL);
|
||||
if (ret)
|
||||
goto out_free_iwcm;
|
||||
|
||||
|
||||
@@ -1428,7 +1428,7 @@ int iwch_register_device(struct iwch_dev *dev)
|
||||
dev->ibdev.iwcm->rem_ref = iwch_qp_rem_ref;
|
||||
dev->ibdev.iwcm->get_qp = iwch_get_qp;
|
||||
|
||||
ret = ib_register_device(&dev->ibdev);
|
||||
ret = ib_register_device(&dev->ibdev, NULL);
|
||||
if (ret)
|
||||
goto bail1;
|
||||
|
||||
|
||||
@@ -486,7 +486,7 @@ int c4iw_register_device(struct c4iw_dev *dev)
|
||||
dev->ibdev.iwcm->rem_ref = c4iw_qp_rem_ref;
|
||||
dev->ibdev.iwcm->get_qp = c4iw_get_qp;
|
||||
|
||||
ret = ib_register_device(&dev->ibdev);
|
||||
ret = ib_register_device(&dev->ibdev, NULL);
|
||||
if (ret)
|
||||
goto bail1;
|
||||
|
||||
|
||||
@@ -798,7 +798,7 @@ static int __devinit ehca_probe(struct of_device *dev,
|
||||
goto probe5;
|
||||
}
|
||||
|
||||
ret = ib_register_device(&shca->ib_device);
|
||||
ret = ib_register_device(&shca->ib_device, NULL);
|
||||
if (ret) {
|
||||
ehca_err(&shca->ib_device,
|
||||
"ib_register_device() failed ret=%i", ret);
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
config INFINIBAND_IPATH
|
||||
tristate "QLogic InfiniPath Driver"
|
||||
depends on 64BIT && NET
|
||||
tristate "QLogic HTX HCA support"
|
||||
depends on 64BIT && NET && HT_IRQ
|
||||
---help---
|
||||
This is a driver for QLogic InfiniPath host channel adapters,
|
||||
This is a driver for the obsolete QLogic Hyper-Transport
|
||||
IB host channel adapter (model QHT7140),
|
||||
including InfiniBand verbs support. This driver allows these
|
||||
devices to be used with both kernel upper level protocols such
|
||||
as IP-over-InfiniBand as well as with userspace applications
|
||||
(in conjunction with InfiniBand userspace access).
|
||||
For QLogic PCIe QLE based cards, use the QIB driver instead.
|
||||
|
||||
@@ -29,13 +29,9 @@ ib_ipath-y := \
|
||||
ipath_user_pages.o \
|
||||
ipath_user_sdma.o \
|
||||
ipath_verbs_mcast.o \
|
||||
ipath_verbs.o \
|
||||
ipath_iba7220.o \
|
||||
ipath_sd7220.o \
|
||||
ipath_sd7220_img.o
|
||||
ipath_verbs.o
|
||||
|
||||
ib_ipath-$(CONFIG_HT_IRQ) += ipath_iba6110.o
|
||||
ib_ipath-$(CONFIG_PCI_MSI) += ipath_iba6120.o
|
||||
|
||||
ib_ipath-$(CONFIG_X86_64) += ipath_wc_x86_64.o
|
||||
ib_ipath-$(CONFIG_PPC64) += ipath_wc_ppc64.o
|
||||
|
||||
@@ -132,18 +132,13 @@ static int __devinit ipath_init_one(struct pci_dev *,
|
||||
|
||||
/* Only needed for registration, nothing else needs this info */
|
||||
#define PCI_VENDOR_ID_PATHSCALE 0x1fc1
|
||||
#define PCI_VENDOR_ID_QLOGIC 0x1077
|
||||
#define PCI_DEVICE_ID_INFINIPATH_HT 0xd
|
||||
#define PCI_DEVICE_ID_INFINIPATH_PE800 0x10
|
||||
#define PCI_DEVICE_ID_INFINIPATH_7220 0x7220
|
||||
|
||||
/* Number of seconds before our card status check... */
|
||||
#define STATUS_TIMEOUT 60
|
||||
|
||||
static const struct pci_device_id ipath_pci_tbl[] = {
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_PATHSCALE, PCI_DEVICE_ID_INFINIPATH_HT) },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_PATHSCALE, PCI_DEVICE_ID_INFINIPATH_PE800) },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_INFINIPATH_7220) },
|
||||
{ 0, }
|
||||
};
|
||||
|
||||
@@ -521,30 +516,9 @@ static int __devinit ipath_init_one(struct pci_dev *pdev,
|
||||
/* setup the chip-specific functions, as early as possible. */
|
||||
switch (ent->device) {
|
||||
case PCI_DEVICE_ID_INFINIPATH_HT:
|
||||
#ifdef CONFIG_HT_IRQ
|
||||
ipath_init_iba6110_funcs(dd);
|
||||
break;
|
||||
#else
|
||||
ipath_dev_err(dd, "QLogic HT device 0x%x cannot work if "
|
||||
"CONFIG_HT_IRQ is not enabled\n", ent->device);
|
||||
return -ENODEV;
|
||||
#endif
|
||||
case PCI_DEVICE_ID_INFINIPATH_PE800:
|
||||
#ifdef CONFIG_PCI_MSI
|
||||
ipath_init_iba6120_funcs(dd);
|
||||
break;
|
||||
#else
|
||||
ipath_dev_err(dd, "QLogic PCIE device 0x%x cannot work if "
|
||||
"CONFIG_PCI_MSI is not enabled\n", ent->device);
|
||||
return -ENODEV;
|
||||
#endif
|
||||
case PCI_DEVICE_ID_INFINIPATH_7220:
|
||||
#ifndef CONFIG_PCI_MSI
|
||||
ipath_dbg("CONFIG_PCI_MSI is not enabled, "
|
||||
"using INTx for unit %u\n", dd->ipath_unit);
|
||||
#endif
|
||||
ipath_init_iba7220_funcs(dd);
|
||||
break;
|
||||
|
||||
default:
|
||||
ipath_dev_err(dd, "Found unknown QLogic deviceid 0x%x, "
|
||||
"failing\n", ent->device);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1030,8 +1030,6 @@ void ipath_free_data(struct ipath_portdata *dd);
|
||||
u32 __iomem *ipath_getpiobuf(struct ipath_devdata *, u32, u32 *);
|
||||
void ipath_chg_pioavailkernel(struct ipath_devdata *dd, unsigned start,
|
||||
unsigned len, int avail);
|
||||
void ipath_init_iba7220_funcs(struct ipath_devdata *);
|
||||
void ipath_init_iba6120_funcs(struct ipath_devdata *);
|
||||
void ipath_init_iba6110_funcs(struct ipath_devdata *);
|
||||
void ipath_get_eeprom_info(struct ipath_devdata *);
|
||||
int ipath_update_eeprom_log(struct ipath_devdata *dd);
|
||||
|
||||
@@ -2182,7 +2182,7 @@ int ipath_register_ib_device(struct ipath_devdata *dd)
|
||||
snprintf(dev->node_desc, sizeof(dev->node_desc),
|
||||
IPATH_IDSTR " %s", init_utsname()->nodename);
|
||||
|
||||
ret = ib_register_device(dev);
|
||||
ret = ib_register_device(dev, NULL);
|
||||
if (ret)
|
||||
goto err_reg;
|
||||
|
||||
|
||||
@@ -662,7 +662,7 @@ static void *mlx4_ib_add(struct mlx4_dev *dev)
|
||||
spin_lock_init(&ibdev->sm_lock);
|
||||
mutex_init(&ibdev->cap_mask_mutex);
|
||||
|
||||
if (ib_register_device(&ibdev->ib_dev))
|
||||
if (ib_register_device(&ibdev->ib_dev, NULL))
|
||||
goto err_map;
|
||||
|
||||
if (mlx4_ib_mad_init(ibdev))
|
||||
|
||||
@@ -1403,7 +1403,7 @@ int mthca_register_device(struct mthca_dev *dev)
|
||||
|
||||
mutex_init(&dev->cap_mask_mutex);
|
||||
|
||||
ret = ib_register_device(&dev->ib_dev);
|
||||
ret = ib_register_device(&dev->ib_dev, NULL);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
||||
@@ -2584,7 +2584,6 @@ static void nes_process_mac_intr(struct nes_device *nesdev, u32 mac_number)
|
||||
break;
|
||||
}
|
||||
}
|
||||
spin_unlock_irqrestore(&nesadapter->phy_lock, flags);
|
||||
|
||||
if (phy_data & 0x0004) {
|
||||
if (wide_ppm_offset &&
|
||||
@@ -2639,6 +2638,8 @@ static void nes_process_mac_intr(struct nes_device *nesdev, u32 mac_number)
|
||||
}
|
||||
}
|
||||
|
||||
spin_unlock_irqrestore(&nesadapter->phy_lock, flags);
|
||||
|
||||
nesadapter->mac_sw_state[mac_number] = NES_MAC_SW_IDLE;
|
||||
}
|
||||
|
||||
@@ -3422,6 +3423,7 @@ static void nes_process_iwarp_aeqe(struct nes_device *nesdev,
|
||||
struct nes_adapter *nesadapter = nesdev->nesadapter;
|
||||
u32 aeq_info;
|
||||
u32 next_iwarp_state = 0;
|
||||
u32 aeqe_cq_id;
|
||||
u16 async_event_id;
|
||||
u8 tcp_state;
|
||||
u8 iwarp_state;
|
||||
@@ -3449,6 +3451,14 @@ static void nes_process_iwarp_aeqe(struct nes_device *nesdev,
|
||||
le32_to_cpu(aeqe->aeqe_words[NES_AEQE_COMP_QP_CQ_ID_IDX]), aeqe,
|
||||
nes_tcp_state_str[tcp_state], nes_iwarp_state_str[iwarp_state]);
|
||||
|
||||
aeqe_cq_id = le32_to_cpu(aeqe->aeqe_words[NES_AEQE_COMP_QP_CQ_ID_IDX]);
|
||||
if (aeq_info & NES_AEQE_QP) {
|
||||
if ((!nes_is_resource_allocated(nesadapter, nesadapter->allocated_qps,
|
||||
aeqe_cq_id)) ||
|
||||
(atomic_read(&nesqp->close_timer_started)))
|
||||
return;
|
||||
}
|
||||
|
||||
switch (async_event_id) {
|
||||
case NES_AEQE_AEID_LLP_FIN_RECEIVED:
|
||||
if (nesqp->term_flags)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user