- Update the OFED Linux Emulation layer as a preparation for a
hardware driver update from Mellanox Technologies. - Remove empty files from the OFED Linux Emulation layer. - Fix compile warnings related to printf() and the "%lld" and "%llx" format specifiers. - Add some missing 2-clause BSD copyrights. - Add "Mellanox Technologies, Ltd." to list of copyright holders. - Add some new compatibility files. - Fix order of uninit in the mlx4ib module to avoid crash at unload using the new module_exit_order() function. MFC after: 1 week Sponsored by: Mellanox Technologies
This commit is contained in:
parent
c0b72c11ea
commit
c7818b48b6
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=270710
@ -36,7 +36,6 @@ __FBSDID("$FreeBSD$");
|
||||
|
||||
#include <linux/module.h>
|
||||
#include <linux/moduleparam.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/string.h>
|
||||
@ -46,7 +45,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <linux/device.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/sched.h>
|
||||
#include <asm/system.h>
|
||||
|
||||
#include <asm/atomic.h>
|
||||
|
||||
|
@ -91,8 +91,6 @@ struct t3_mbuf_hdr {
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define __read_mostly __attribute__((__section__(".data.read_mostly")))
|
||||
|
||||
/*
|
||||
* Workaround for weird Chelsio issue
|
||||
*/
|
||||
|
@ -42,7 +42,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <sys/sockio.h>
|
||||
#include <sys/taskqueue.h>
|
||||
#include <netinet/in.h>
|
||||
#include <net/neighbour.h>
|
||||
#include <net/route.h>
|
||||
|
||||
#include <netinet/in_systm.h>
|
||||
|
@ -42,7 +42,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <sys/sockio.h>
|
||||
#include <sys/taskqueue.h>
|
||||
#include <netinet/in.h>
|
||||
#include <net/neighbour.h>
|
||||
#include <net/route.h>
|
||||
|
||||
#include <netinet/in_systm.h>
|
||||
|
@ -12,6 +12,7 @@ CFLAGS+= -I${.CURDIR}/../../ofed/include/
|
||||
.include <bsd.kmod.mk>
|
||||
|
||||
CFLAGS+= -Wno-cast-qual -Wno-pointer-arith ${GCC_MS_EXTENSIONS}
|
||||
CFLAGS+= -fms-extensions
|
||||
|
||||
CWARNFLAGS.mcg.c= -Wno-unused
|
||||
CWARNFLAGS+= ${CWARNFLAGS.${.IMPSRC:T}}
|
||||
|
@ -14,6 +14,7 @@ CFLAGS+= -I${.CURDIR}/../../ofed/drivers/infiniband/hw/mlx4
|
||||
CFLAGS+= -I${.CURDIR}/../../ofed/include/
|
||||
CFLAGS+= -DCONFIG_INFINIBAND_USER_MEM
|
||||
CFLAGS+= -DINET6 -DINET -DOFED
|
||||
CFLAGS+= -fms-extensions
|
||||
|
||||
.include <bsd.kmod.mk>
|
||||
|
||||
|
@ -8,6 +8,7 @@ SRCS += en_rx.c en_tx.c
|
||||
SRCS += opt_inet.h opt_inet6.h
|
||||
CFLAGS+= -I${.CURDIR}/../../ofed/drivers/net/mlx4
|
||||
CFLAGS+= -I${.CURDIR}/../../ofed/include/
|
||||
CFLAGS+= -fms-extensions
|
||||
|
||||
.include <bsd.kmod.mk>
|
||||
|
||||
|
@ -36,12 +36,8 @@
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/inetdevice.h>
|
||||
#include <linux/workqueue.h>
|
||||
#include <net/arp.h>
|
||||
#include <net/neighbour.h>
|
||||
#include <net/route.h>
|
||||
#include <net/netevent.h>
|
||||
#include <net/addrconf.h>
|
||||
#include <net/ip6_route.h>
|
||||
#include <rdma/ib_addr.h>
|
||||
|
||||
MODULE_AUTHOR("Sean Hefty");
|
||||
|
@ -45,6 +45,9 @@
|
||||
#include <linux/sysfs.h>
|
||||
#include <linux/workqueue.h>
|
||||
#include <linux/kdev_t.h>
|
||||
#include <linux/string.h>
|
||||
|
||||
#include <asm/atomic-long.h>
|
||||
|
||||
#include <rdma/ib_cache.h>
|
||||
#include <rdma/ib_cm.h>
|
||||
@ -3890,5 +3893,5 @@ static void __exit ib_cm_cleanup(void)
|
||||
}
|
||||
|
||||
module_init_order(ib_cm_init, SI_ORDER_SECOND);
|
||||
module_exit(ib_cm_cleanup);
|
||||
module_exit_order(ib_cm_cleanup, SI_ORDER_FIRST);
|
||||
|
||||
|
@ -36,7 +36,6 @@
|
||||
#include <linux/errno.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/workqueue.h>
|
||||
|
||||
|
@ -43,6 +43,7 @@
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/workqueue.h>
|
||||
#include <linux/completion.h>
|
||||
#include <linux/string.h>
|
||||
|
||||
#include <rdma/iw_cm.h>
|
||||
#include <rdma/ib_addr.h>
|
||||
|
@ -33,7 +33,6 @@
|
||||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/random.h>
|
||||
#include <linux/spinlock.h>
|
||||
|
@ -36,6 +36,7 @@
|
||||
|
||||
#include <linux/slab.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/fs.h>
|
||||
|
||||
#include <rdma/ib_mad.h>
|
||||
#include <rdma/ib_pma.h>
|
||||
|
@ -32,7 +32,6 @@
|
||||
*/
|
||||
|
||||
#include <linux/completion.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/fs.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/device.h>
|
||||
@ -43,6 +42,7 @@
|
||||
#include <linux/cdev.h>
|
||||
#include <linux/idr.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/string.h>
|
||||
|
||||
#include <asm/uaccess.h>
|
||||
|
||||
@ -1295,7 +1295,7 @@ static void ib_ucm_remove_one(struct ib_device *device)
|
||||
device_unregister(&ucm_dev->dev);
|
||||
}
|
||||
|
||||
static ssize_t show_abi_version(struct class *class, char *buf)
|
||||
static ssize_t show_abi_version(struct class *class, struct class_attribute *attr, char *buf)
|
||||
{
|
||||
return sprintf(buf, "%d\n", IB_USER_CM_ABI_VERSION);
|
||||
}
|
||||
|
@ -34,7 +34,6 @@
|
||||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/fs.h>
|
||||
@ -986,7 +985,7 @@ static ssize_t show_port(struct device *dev, struct device_attribute *attr,
|
||||
}
|
||||
static DEVICE_ATTR(port, S_IRUGO, show_port, NULL);
|
||||
|
||||
static ssize_t show_abi_version(struct class *class, char *buf)
|
||||
static ssize_t show_abi_version(struct class *class, struct class_attribute *attr, char *buf)
|
||||
{
|
||||
return sprintf(buf, "%d\n", IB_USER_MAD_ABI_VERSION);
|
||||
}
|
||||
|
@ -35,6 +35,7 @@
|
||||
|
||||
#include <linux/file.h>
|
||||
#include <linux/fs.h>
|
||||
#include <linux/lockdep.h>
|
||||
|
||||
#include <asm/uaccess.h>
|
||||
#include <asm/fcntl.h>
|
||||
|
@ -35,7 +35,6 @@
|
||||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/fs.h>
|
||||
@ -565,8 +564,12 @@ struct file *ib_uverbs_alloc_event_file(struct ib_uverbs_file *uverbs_file,
|
||||
* system call on a uverbs file, which will already have a
|
||||
* module reference.
|
||||
*/
|
||||
#ifdef __linux__
|
||||
filp = alloc_file(uverbs_event_mnt, dget(uverbs_event_mnt->mnt_root),
|
||||
FMODE_READ, fops_get(&uverbs_event_fops));
|
||||
#else
|
||||
filp = alloc_file(FMODE_READ, fops_get(&uverbs_event_fops));
|
||||
#endif
|
||||
if (!filp) {
|
||||
ret = -ENFILE;
|
||||
goto err_fd;
|
||||
@ -767,7 +770,7 @@ static ssize_t show_dev_abi_version(struct device *device,
|
||||
}
|
||||
static DEVICE_ATTR(abi_version, S_IRUGO, show_dev_abi_version, NULL);
|
||||
|
||||
static ssize_t show_abi_version(struct class *class, char *buf)
|
||||
static ssize_t show_abi_version(struct class *class, struct class_attribute *attr, char *buf)
|
||||
{
|
||||
return sprintf(buf, "%d\n", IB_USER_VERBS_ABI_VERSION);
|
||||
}
|
||||
|
@ -39,7 +39,6 @@
|
||||
#include <rdma/ib_pack.h>
|
||||
#include <linux/mlx4/cmd.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/errno.h>
|
||||
#include <rdma/ib_user_verbs.h>
|
||||
#include <linux/delay.h>
|
||||
@ -81,7 +80,7 @@ void mlx4_ib_update_cache_on_guid_change(struct mlx4_ib_dev *dev, int block_num,
|
||||
guid_indexes = be64_to_cpu((__force __be64) dev->sriov.alias_guid.
|
||||
ports_guid[port_num - 1].
|
||||
all_rec_per_port[block_num].guid_indexes);
|
||||
pr_debug("port: %d, guid_indexes: 0x%llx\n", port_num, guid_indexes);
|
||||
pr_debug("port: %d, guid_indexes: 0x%llx\n", port_num, (long long)guid_indexes);
|
||||
|
||||
for (i = 0; i < NUM_ALIAS_GUID_IN_REC; i++) {
|
||||
/* The location of the specific index starts from bit number 4
|
||||
@ -145,7 +144,7 @@ void mlx4_ib_notify_slaves_on_guid_change(struct mlx4_ib_dev *dev,
|
||||
guid_indexes = be64_to_cpu((__force __be64) dev->sriov.alias_guid.
|
||||
ports_guid[port_num - 1].
|
||||
all_rec_per_port[block_num].guid_indexes);
|
||||
pr_debug("port: %d, guid_indexes: 0x%llx\n", port_num, guid_indexes);
|
||||
pr_debug("port: %d, guid_indexes: 0x%llx\n", port_num, (long long)guid_indexes);
|
||||
|
||||
/*calculate the slaves and notify them*/
|
||||
for (i = 0; i < NUM_ALIAS_GUID_IN_REC; i++) {
|
||||
|
@ -333,7 +333,7 @@ int mlx4_ib_demux_cm_handler(struct ib_device *ibdev, int port, int *slave,
|
||||
*slave = mlx4_ib_find_real_gid(ibdev, port, gid.global.interface_id);
|
||||
if (*slave < 0) {
|
||||
mlx4_ib_warn(ibdev, "failed matching slave_id by gid (0x%llx)\n",
|
||||
gid.global.interface_id);
|
||||
(long long)gid.global.interface_id);
|
||||
return -ENOENT;
|
||||
}
|
||||
return 0;
|
||||
|
@ -1664,12 +1664,12 @@ static void mlx4_ib_tunnel_comp_worker(struct work_struct *work)
|
||||
(MLX4_NUM_TUNNEL_BUFS - 1));
|
||||
if (ret)
|
||||
pr_err("Failed reposting tunnel "
|
||||
"buf:%lld\n", wc.wr_id);
|
||||
"buf:%lld\n", (long long)wc.wr_id);
|
||||
break;
|
||||
case IB_WC_SEND:
|
||||
pr_debug("received tunnel send completion:"
|
||||
"wrid=0x%llx, status=0x%x\n",
|
||||
wc.wr_id, wc.status);
|
||||
(long long)wc.wr_id, wc.status);
|
||||
ib_destroy_ah(tun_qp->tx_ring[wc.wr_id &
|
||||
(MLX4_NUM_TUNNEL_BUFS - 1)].ah);
|
||||
tun_qp->tx_ring[wc.wr_id & (MLX4_NUM_TUNNEL_BUFS - 1)].ah
|
||||
@ -1685,7 +1685,7 @@ static void mlx4_ib_tunnel_comp_worker(struct work_struct *work)
|
||||
} else {
|
||||
pr_debug("mlx4_ib: completion error in tunnel: %d."
|
||||
" status = %d, wrid = 0x%llx\n",
|
||||
ctx->slave, wc.status, wc.wr_id);
|
||||
ctx->slave, wc.status, (long long)wc.wr_id);
|
||||
if (!MLX4_TUN_IS_RECV(wc.wr_id)) {
|
||||
ib_destroy_ah(tun_qp->tx_ring[wc.wr_id &
|
||||
(MLX4_NUM_TUNNEL_BUFS - 1)].ah);
|
||||
@ -1837,7 +1837,7 @@ static void mlx4_ib_sqp_comp_worker(struct work_struct *work)
|
||||
if (mlx4_ib_post_pv_qp_buf(ctx, sqp, wc.wr_id &
|
||||
(MLX4_NUM_TUNNEL_BUFS - 1)))
|
||||
pr_err("Failed reposting SQP "
|
||||
"buf:%lld\n", wc.wr_id);
|
||||
"buf:%lld\n", (long long)wc.wr_id);
|
||||
break;
|
||||
default:
|
||||
BUG_ON(1);
|
||||
@ -1846,7 +1846,7 @@ static void mlx4_ib_sqp_comp_worker(struct work_struct *work)
|
||||
} else {
|
||||
pr_debug("mlx4_ib: completion error in tunnel: %d."
|
||||
" status = %d, wrid = 0x%llx\n",
|
||||
ctx->slave, wc.status, wc.wr_id);
|
||||
ctx->slave, wc.status, (long long)wc.wr_id);
|
||||
if (!MLX4_TUN_IS_RECV(wc.wr_id)) {
|
||||
ib_destroy_ah(sqp->tx_ring[wc.wr_id &
|
||||
(MLX4_NUM_TUNNEL_BUFS - 1)].ah);
|
||||
|
@ -37,15 +37,14 @@
|
||||
#include <linux/proc_fs.h>
|
||||
#endif
|
||||
|
||||
#include <linux/init.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/inetdevice.h>
|
||||
#include <linux/rtnetlink.h>
|
||||
#include <linux/if_vlan.h>
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/if_ether.h>
|
||||
#include <linux/fs.h>
|
||||
|
||||
#include <rdma/ib_smi.h>
|
||||
#include <rdma/ib_user_verbs.h>
|
||||
|
@ -38,6 +38,7 @@
|
||||
#include <linux/list.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/idr.h>
|
||||
#include <linux/notifier.h>
|
||||
|
||||
#include <rdma/ib_verbs.h>
|
||||
#include <rdma/ib_umem.h>
|
||||
|
@ -159,7 +159,7 @@ static int mlx4_ib_umem_write_mtt_block(struct mlx4_ib_dev *dev,
|
||||
if (len & (mtt_size-1ULL)) {
|
||||
WARN(1 ,
|
||||
"write_block: len %llx is not aligned to mtt_size %llx\n",
|
||||
len, mtt_size);
|
||||
(long long)len, (long long)mtt_size);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@ -416,7 +416,7 @@ int mlx4_ib_umem_calc_optimal_mtt_size(struct ib_umem *umem,
|
||||
|
||||
WARN((total_len & ((1ULL<<block_shift)-1ULL)),
|
||||
" misaligned total length detected (%llu, %llu)!",
|
||||
total_len, block_shift);
|
||||
(long long)total_len, (long long)block_shift);
|
||||
|
||||
*num_of_mtts = total_len >> block_shift;
|
||||
end:
|
||||
@ -426,7 +426,7 @@ int mlx4_ib_umem_calc_optimal_mtt_size(struct ib_umem *umem,
|
||||
*/
|
||||
WARN(1,
|
||||
"mlx4_ib_umem_calc_optimal_mtt_size - unexpected shift %lld\n",
|
||||
block_shift);
|
||||
(long long)block_shift);
|
||||
|
||||
block_shift = min_shift;
|
||||
}
|
||||
|
@ -34,7 +34,6 @@
|
||||
#include <linux/log2.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/bitmap.h>
|
||||
#include <linux/bitops.h>
|
||||
|
||||
#include <rdma/ib_cache.h>
|
||||
|
@ -34,6 +34,7 @@
|
||||
#include "mlx4_ib.h"
|
||||
#include <linux/slab.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/fs.h>
|
||||
|
||||
#include <rdma/ib_mad.h>
|
||||
/*show_admin_alias_guid returns the administratively assigned value of that GUID.
|
||||
|
@ -32,7 +32,6 @@
|
||||
|
||||
#include <linux/errno.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/bitmap.h>
|
||||
|
||||
#include "mthca_dev.h"
|
||||
|
||||
|
@ -33,7 +33,6 @@
|
||||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/interrupt.h>
|
||||
|
@ -40,6 +40,7 @@
|
||||
|
||||
#include <linux/sched.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/fs.h>
|
||||
|
||||
#include "mthca_dev.h"
|
||||
#include "mthca_cmd.h"
|
||||
|
@ -30,7 +30,6 @@
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <linux/init.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/delay.h>
|
||||
|
@ -40,7 +40,6 @@ static int ipoib_resolvemulti(struct ifnet *, struct sockaddr **,
|
||||
|
||||
#include <linux/module.h>
|
||||
|
||||
#include <linux/init.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/vmalloc.h>
|
||||
|
@ -34,8 +34,7 @@
|
||||
#include <linux/errno.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/mm.h>
|
||||
//#include <linux/export.h> /* XXX SK probabaly not needed in freeBSD XXX */
|
||||
#include <linux/bitmap.h>
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/vmalloc.h>
|
||||
|
||||
|
@ -640,7 +640,7 @@ static int mlx4_ACCESS_MEM(struct mlx4_dev *dev, u64 master_addr,
|
||||
(slave & ~0x7f) | (size & 0xff)) {
|
||||
mlx4_err(dev, "Bad access mem params - slave_addr:0x%llx "
|
||||
"master_addr:0x%llx slave_id:%d size:%d\n",
|
||||
slave_addr, master_addr, slave, size);
|
||||
(long long)slave_addr, (long long)master_addr, slave, size);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@ -1553,7 +1553,7 @@ static int mlx4_master_activate_admin_state(struct mlx4_priv *priv, int slave)
|
||||
return err;
|
||||
}
|
||||
mlx4_dbg((&(priv->dev)), "alloc mac %llx idx %d slave %d port %d\n",
|
||||
vp_oper->state.mac, vp_oper->mac_idx, slave, port);
|
||||
(long long)vp_oper->state.mac, vp_oper->mac_idx, slave, port);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
@ -2117,7 +2117,7 @@ int mlx4_set_vf_mac(struct mlx4_dev *dev, int port, int vf, u8 *mac)
|
||||
s_info = &priv->mfunc.master.vf_admin[vf].vport[port];
|
||||
s_info->mac = mlx4_mac_to_u64(mac);
|
||||
mlx4_info(dev, "default mac on vf %d port %d to %llX will take afect only after vf restart\n",
|
||||
vf, port, s_info->mac);
|
||||
vf, port, (long long)s_info->mac);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(mlx4_set_vf_mac);
|
||||
|
@ -34,7 +34,6 @@
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <linux/init.h>
|
||||
#include <linux/hardirq.h>
|
||||
|
||||
#include <linux/mlx4/cmd.h>
|
||||
|
@ -1581,7 +1581,7 @@ int mlx4_en_init_netdev(struct mlx4_en_dev *mdev, int port,
|
||||
|
||||
if (ILLEGAL_MAC(priv->mac)) {
|
||||
en_err(priv, "Port: %d, invalid mac burned: 0x%llx, quiting\n",
|
||||
priv->port, priv->mac);
|
||||
priv->port, (long long)priv->mac);
|
||||
err = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
|
@ -136,7 +136,7 @@ static void mlx4_en_free_rx_desc(struct mlx4_en_priv *priv,
|
||||
frag_info = &priv->frag_info[nr];
|
||||
dma = be64_to_cpu(rx_desc->data[nr].addr);
|
||||
|
||||
en_dbg(DRV, priv, "Unmaping buffer at dma:0x%llx\n", (u64) dma);
|
||||
en_dbg(DRV, priv, "Unmaping buffer at dma:0x%llx\n", (long long) dma);
|
||||
pci_unmap_single(mdev->pdev, dma, frag_info->frag_size,
|
||||
PCI_DMA_FROMDEVICE);
|
||||
m_free(mb_list[nr]);
|
||||
|
@ -31,7 +31,6 @@
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <linux/init.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/mm.h>
|
||||
|
@ -1078,14 +1078,14 @@ int mlx4_QUERY_FW(struct mlx4_dev *dev)
|
||||
MLX4_GET(fw->comm_bar, outbox, QUERY_FW_COMM_BAR_OFFSET);
|
||||
fw->comm_bar = (fw->comm_bar >> 6) * 2;
|
||||
mlx4_dbg(dev, "Communication vector bar:%d offset:0x%llx\n",
|
||||
fw->comm_bar, fw->comm_base);
|
||||
fw->comm_bar, (long long)fw->comm_base);
|
||||
mlx4_dbg(dev, "FW size %d KB\n", fw->fw_pages >> 2);
|
||||
|
||||
MLX4_GET(fw->clock_offset, outbox, QUERY_FW_CLOCK_OFFSET);
|
||||
MLX4_GET(fw->clock_bar, outbox, QUERY_FW_CLOCK_BAR);
|
||||
fw->clock_bar = (fw->clock_bar >> 6) * 2;
|
||||
mlx4_dbg(dev, "Internal clock bar:%d offset:0x%llx\n",
|
||||
fw->comm_bar, fw->comm_base);
|
||||
fw->comm_bar, (long long)fw->comm_base);
|
||||
|
||||
/*
|
||||
* Round up number of system pages needed in case
|
||||
|
@ -34,7 +34,6 @@
|
||||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
@ -42,6 +41,7 @@
|
||||
#include <linux/io-mapping.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/fs.h>
|
||||
|
||||
#include <linux/mlx4/device.h>
|
||||
#include <linux/mlx4/doorbell.h>
|
||||
|
@ -886,7 +886,7 @@ int mlx4_flow_detach(struct mlx4_dev *dev, u64 reg_id)
|
||||
err = mlx4_QP_FLOW_STEERING_DETACH(dev, reg_id);
|
||||
if (err)
|
||||
mlx4_err(dev, "Fail to detach network rule. registration id = 0x%llx\n",
|
||||
reg_id);
|
||||
(long long)reg_id);
|
||||
return err;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(mlx4_flow_detach);
|
||||
|
@ -32,7 +32,6 @@
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <linux/init.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/kernel.h>
|
||||
|
@ -31,7 +31,6 @@
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <linux/init.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/io-mapping.h>
|
||||
|
||||
|
@ -33,8 +33,6 @@
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <linux/init.h>
|
||||
|
||||
#include <linux/mlx4/cmd.h>
|
||||
#include <linux/mlx4/qp.h>
|
||||
|
||||
|
@ -31,7 +31,6 @@
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <linux/init.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/delay.h>
|
||||
|
@ -1166,7 +1166,7 @@ static int qp_res_start_move_to(struct mlx4_dev *dev, int slave, int qpn,
|
||||
switch (state) {
|
||||
case RES_QP_BUSY:
|
||||
mlx4_dbg(dev, "%s: failed RES_QP, 0x%llx\n",
|
||||
__func__, r->com.res_id);
|
||||
__func__, (long long)r->com.res_id);
|
||||
err = -EBUSY;
|
||||
break;
|
||||
|
||||
@ -1174,7 +1174,7 @@ static int qp_res_start_move_to(struct mlx4_dev *dev, int slave, int qpn,
|
||||
if (r->com.state == RES_QP_MAPPED && !alloc)
|
||||
break;
|
||||
|
||||
mlx4_dbg(dev, "failed RES_QP, 0x%llx\n", r->com.res_id);
|
||||
mlx4_dbg(dev, "failed RES_QP, 0x%llx\n", (long long)r->com.res_id);
|
||||
err = -EINVAL;
|
||||
break;
|
||||
|
||||
@ -1184,7 +1184,7 @@ static int qp_res_start_move_to(struct mlx4_dev *dev, int slave, int qpn,
|
||||
break;
|
||||
else {
|
||||
mlx4_dbg(dev, "failed RES_QP, 0x%llx\n",
|
||||
r->com.res_id);
|
||||
(long long)r->com.res_id);
|
||||
err = -EINVAL;
|
||||
}
|
||||
|
||||
@ -3766,7 +3766,7 @@ static int _move_all_busy(struct mlx4_dev *dev, int slave,
|
||||
mlx4_dbg(dev,
|
||||
"%s id 0x%llx is busy\n",
|
||||
ResourceType(type),
|
||||
r->res_id);
|
||||
(long long)r->res_id);
|
||||
++busy;
|
||||
} else {
|
||||
r->from_state = r->state;
|
||||
|
@ -53,7 +53,7 @@ int mlx4_SENSE_PORT(struct mlx4_dev *dev, int port,
|
||||
}
|
||||
|
||||
if (out_param > 2) {
|
||||
mlx4_err(dev, "Sense returned illegal value: 0x%llx\n", out_param);
|
||||
mlx4_err(dev, "Sense returned illegal value: 0x%llx\n", (long long)out_param);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
|
@ -31,8 +31,6 @@
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <linux/init.h>
|
||||
|
||||
#include <linux/mlx4/cmd.h>
|
||||
#include <linux/gfp.h>
|
||||
|
||||
|
@ -31,7 +31,6 @@
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <linux/init.h>
|
||||
#include <linux/errno.h>
|
||||
|
||||
#include "mlx4.h"
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -25,6 +26,7 @@
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _ATOMIC_LONG_H_
|
||||
#define _ATOMIC_LONG_H_
|
||||
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -32,7 +33,6 @@
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/types.h>
|
||||
#include <machine/atomic.h>
|
||||
#include <asm/atomic-long.h>
|
||||
|
||||
typedef struct {
|
||||
volatile u_int counter;
|
||||
@ -90,7 +90,6 @@ static inline int atomic_add_unless(atomic_t *v, int a, int u)
|
||||
for (;;) {
|
||||
if (unlikely(c == (u)))
|
||||
break;
|
||||
// old = atomic_cmpxchg((v), c, c + (a)); /*Linux*/
|
||||
old = atomic_cmpset_int(&v->counter, c, c + (a));
|
||||
if (likely(old == c))
|
||||
break;
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -25,6 +26,7 @@
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_BYTEORDER_H_
|
||||
#define _ASM_BYTEORDER_H_
|
||||
|
||||
|
@ -1,32 +0,0 @@
|
||||
/*-
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice unmodified, this list of conditions, and the following
|
||||
* disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_CURRENT_H_
|
||||
#define _ASM_CURRENT_H_
|
||||
|
||||
#endif /* _ASM_CURRENT_H_ */
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -1,7 +1,8 @@
|
||||
/*-
|
||||
/*
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -26,4 +27,9 @@
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_IO_H_
|
||||
#define _ASM_IO_H_
|
||||
|
||||
#include <linux/io.h>
|
||||
|
||||
#endif /* _ASM_IO_H_ */
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -26,4 +27,9 @@
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_PAGE_H_
|
||||
#define _ASM_PAGE_H_
|
||||
|
||||
#include <linux/page.h>
|
||||
|
||||
#endif /*_ASM_PAGE_H_*/
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -1,27 +0,0 @@
|
||||
/*-
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice unmodified, this list of conditions, and the following
|
||||
* disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -25,43 +26,36 @@
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_TYPES_H_
|
||||
#define _ASM_TYPES_H_
|
||||
|
||||
typedef unsigned short umode_t;
|
||||
|
||||
typedef signed char __s8;
|
||||
typedef unsigned char __u8;
|
||||
|
||||
typedef signed short __s16;
|
||||
typedef unsigned short __u16;
|
||||
|
||||
typedef signed int __s32;
|
||||
typedef unsigned int __u32;
|
||||
|
||||
#if defined(__GNUC__) // && !defined(__STRICT_ANSI__)
|
||||
typedef signed long long __s64;
|
||||
typedef unsigned long long __u64;
|
||||
#endif
|
||||
|
||||
#ifdef _KERNEL
|
||||
|
||||
typedef signed char s8;
|
||||
typedef unsigned char u8;
|
||||
typedef uint8_t u8;
|
||||
typedef uint8_t __u8;
|
||||
typedef uint16_t u16;
|
||||
typedef uint16_t __u16;
|
||||
typedef uint32_t u32;
|
||||
typedef uint32_t __u32;
|
||||
typedef uint64_t u64;
|
||||
typedef uint64_t __u64;
|
||||
|
||||
typedef signed short s16;
|
||||
typedef unsigned short u16;
|
||||
|
||||
typedef signed int s32;
|
||||
typedef unsigned int u32;
|
||||
|
||||
typedef signed long long s64;
|
||||
typedef unsigned long long u64;
|
||||
typedef int8_t s8;
|
||||
typedef int8_t __s8;
|
||||
typedef int16_t s16;
|
||||
typedef int16_t __s16;
|
||||
typedef int32_t s32;
|
||||
typedef int32_t __s32;
|
||||
typedef int64_t s64;
|
||||
typedef int64_t __s64;
|
||||
|
||||
/* DMA addresses come in generic and 64-bit flavours. */
|
||||
typedef vm_paddr_t dma_addr_t;
|
||||
typedef vm_paddr_t dma64_addr_t;
|
||||
|
||||
typedef unsigned short umode_t;
|
||||
|
||||
#endif /* _KERNEL */
|
||||
|
||||
#endif /* _ASM_TYPES_H_ */
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -25,6 +26,7 @@
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_UACCESS_H_
|
||||
#define _ASM_UACCESS_H_
|
||||
|
||||
|
@ -1,53 +0,0 @@
|
||||
#ifndef _COMPAT_LINUX_ATOMIC_H
|
||||
#define _COMPAT_LINUX_ATOMIC_H 1
|
||||
|
||||
/*
|
||||
#include <linux/version.h>
|
||||
|
||||
#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,36))
|
||||
#include_next <linux/atomic.h>
|
||||
#else
|
||||
*/
|
||||
|
||||
#include <asm/atomic.h>
|
||||
|
||||
/* Shahar Klein: atomic_inc_not_zero_hint do we need it? */
|
||||
#if 0
|
||||
|
||||
/**
|
||||
* atomic_inc_not_zero_hint - increment if not null
|
||||
* @v: pointer of type atomic_t
|
||||
* @hint: probable value of the atomic before the increment
|
||||
*
|
||||
* This version of atomic_inc_not_zero() gives a hint of probable
|
||||
* value of the atomic. This helps processor to not read the memory
|
||||
* before doing the atomic read/modify/write cycle, lowering
|
||||
* number of bus transactions on some arches.
|
||||
*
|
||||
* Returns: 0 if increment was not done, 1 otherwise.
|
||||
*/
|
||||
|
||||
#ifndef atomic_inc_not_zero_hint
|
||||
static inline int atomic_inc_not_zero_hint(atomic_t *v, int hint)
|
||||
{
|
||||
int val, c = hint;
|
||||
|
||||
/* sanity test, should be removed by compiler if hint is a constant */
|
||||
if (!hint)
|
||||
return atomic_inc_not_zero(v);
|
||||
|
||||
do {
|
||||
val = atomic_cmpxchg(v, c, c + 1);
|
||||
if (val == c)
|
||||
return 1;
|
||||
c = val;
|
||||
} while (c);
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
//#endif /* (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,36)) */
|
||||
|
||||
#endif /* _COMPAT_LINUX_ATOMIC_H */
|
@ -1,34 +0,0 @@
|
||||
/*-
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice unmodified, this list of conditions, and the following
|
||||
* disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
#ifndef _LINUX_BITMAP_H_
|
||||
#define _LINUX_BITMAP_H_
|
||||
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/string.h>
|
||||
|
||||
#endif /* _LINUX_BITMAP_H_ */
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -37,6 +38,8 @@
|
||||
#define BITS_TO_LONGS(n) howmany((n), BITS_PER_LONG)
|
||||
#define BIT_WORD(nr) ((nr) / BITS_PER_LONG)
|
||||
|
||||
#define BITS_PER_BYTE 8
|
||||
|
||||
static inline int
|
||||
__ffs(int mask)
|
||||
{
|
||||
@ -462,6 +465,27 @@ bitmap_find_free_region(unsigned long *bitmap, int bits, int order)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
/**
|
||||
* bitmap_allocate_region - allocate bitmap region
|
||||
* @bitmap: array of unsigned longs corresponding to the bitmap
|
||||
* @pos: beginning of bit region to allocate
|
||||
* @order: region size (log base 2 of number of bits) to allocate
|
||||
*
|
||||
* Allocate (set bits in) a specified region of a bitmap.
|
||||
*
|
||||
* Return 0 on success, or %-EBUSY if specified region wasn't
|
||||
* free (not all bits were zero).
|
||||
*/
|
||||
|
||||
static inline int
|
||||
bitmap_allocate_region(unsigned long *bitmap, int pos, int order)
|
||||
{
|
||||
if (!__reg_op(bitmap, pos, order, REG_OP_ISFREE))
|
||||
return -EBUSY;
|
||||
__reg_op(bitmap, pos, order, REG_OP_ALLOC);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* bitmap_release_region - release allocated bitmap region
|
||||
* @bitmap: array of unsigned longs corresponding to the bitmap
|
||||
@ -480,4 +504,9 @@ bitmap_release_region(unsigned long *bitmap, int pos, int order)
|
||||
}
|
||||
|
||||
|
||||
#define for_each_set_bit(bit, addr, size) \
|
||||
for ((bit) = find_first_bit((addr), (size)); \
|
||||
(bit) < (size); \
|
||||
(bit) = find_next_bit((addr), (size), (bit) + 1))
|
||||
|
||||
#endif /* _LINUX_BITOPS_H_ */
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -26,9 +27,11 @@
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_STDDEF_H_
|
||||
#define _LINUX_STDDEF_H_
|
||||
#ifndef _LINUX_CACHE_H_
|
||||
#define _LINUX_CACHE_H_
|
||||
|
||||
#include <sys/stddef.h>
|
||||
|
||||
#endif /* _LINUX_STDDEF_H_ */
|
||||
#define cache_line_size() CACHE_LINE_SIZE
|
||||
|
||||
|
||||
#endif /* _LINUX_CACHE_H_ */
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -1,12 +1,32 @@
|
||||
/* linux/include/linux/clocksource.h
|
||||
/*-
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* MLX4_CORE_PORT
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice unmodified, this list of conditions, and the following
|
||||
* disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* This file contains the structure definitions for clocksources.
|
||||
*
|
||||
* If you are not a clocksource, or timekeeping code, you should
|
||||
* not be including this file!
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_CLOCKSOURCE_H
|
||||
#define _LINUX_CLOCKSOURCE_H
|
||||
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -25,12 +26,11 @@
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
#ifndef _LINUX_COMPLETION_H_
|
||||
#define _LINUX_COMPLETION_H_
|
||||
|
||||
#ifndef _FBSD_COMPLETION_H_
|
||||
#define _FBSD_COMPLETION_H_
|
||||
|
||||
#include <linux/errno.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/wait.h>
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -51,6 +52,7 @@ struct class {
|
||||
devclass_t bsdclass;
|
||||
void (*class_release)(struct class *class);
|
||||
void (*dev_release)(struct device *dev);
|
||||
char * (*devnode)(struct device *dev, umode_t *mode);
|
||||
};
|
||||
|
||||
struct device {
|
||||
@ -72,10 +74,12 @@ extern struct device linux_rootdev;
|
||||
extern struct kobject class_root;
|
||||
|
||||
struct class_attribute {
|
||||
struct attribute attr;
|
||||
ssize_t (*show)(struct class *, char *);
|
||||
ssize_t (*store)(struct class *, const char *, size_t);
|
||||
struct attribute attr;
|
||||
ssize_t (*show)(struct class *, struct class_attribute *, char *);
|
||||
ssize_t (*store)(struct class *, struct class_attribute *, const char *, size_t);
|
||||
const void *(*namespace)(struct class *, const struct class_attribute *);
|
||||
};
|
||||
|
||||
#define CLASS_ATTR(_name, _mode, _show, _store) \
|
||||
struct class_attribute class_attr_##_name = \
|
||||
{ { #_name, NULL, _mode }, _show, _store }
|
||||
@ -83,16 +87,38 @@ struct class_attribute {
|
||||
struct device_attribute {
|
||||
struct attribute attr;
|
||||
ssize_t (*show)(struct device *,
|
||||
struct device_attribute *, char *);
|
||||
struct device_attribute *, char *);
|
||||
ssize_t (*store)(struct device *,
|
||||
struct device_attribute *, const char *,
|
||||
size_t);
|
||||
struct device_attribute *, const char *,
|
||||
size_t);
|
||||
};
|
||||
|
||||
#define DEVICE_ATTR(_name, _mode, _show, _store) \
|
||||
struct device_attribute dev_attr_##_name = \
|
||||
{ { #_name, NULL, _mode }, _show, _store }
|
||||
|
||||
/* Simple class attribute that is just a static string */
|
||||
struct class_attribute_string {
|
||||
struct class_attribute attr;
|
||||
char *str;
|
||||
};
|
||||
|
||||
static inline ssize_t
|
||||
show_class_attr_string(struct class *class,
|
||||
struct class_attribute *attr, char *buf)
|
||||
{
|
||||
struct class_attribute_string *cs;
|
||||
cs = container_of(attr, struct class_attribute_string, attr);
|
||||
return snprintf(buf, PAGE_SIZE, "%s\n", cs->str);
|
||||
}
|
||||
|
||||
/* Currently read-only only */
|
||||
#define _CLASS_ATTR_STRING(_name, _mode, _str) \
|
||||
{ __ATTR(_name, _mode, show_class_attr_string, NULL), _str }
|
||||
#define CLASS_ATTR_STRING(_name, _mode, _str) \
|
||||
struct class_attribute_string class_attr_##_name = \
|
||||
_CLASS_ATTR_STRING(_name, _mode, _str)
|
||||
|
||||
#define dev_err(dev, fmt, ...) device_printf((dev)->bsddev, fmt, ##__VA_ARGS__)
|
||||
#define dev_warn(dev, fmt, ...) device_printf((dev)->bsddev, fmt, ##__VA_ARGS__)
|
||||
#define dev_info(dev, fmt, ...) device_printf((dev)->bsddev, fmt, ##__VA_ARGS__)
|
||||
@ -151,7 +177,7 @@ class_show(struct kobject *kobj, struct attribute *attr, char *buf)
|
||||
error = -EIO;
|
||||
if (dattr->show)
|
||||
error = dattr->show(container_of(kobj, struct class, kobj),
|
||||
buf);
|
||||
dattr, buf);
|
||||
return (error);
|
||||
}
|
||||
|
||||
@ -166,7 +192,7 @@ class_store(struct kobject *kobj, struct attribute *attr, const char *buf,
|
||||
error = -EIO;
|
||||
if (dattr->store)
|
||||
error = dattr->store(container_of(kobj, struct class, kobj),
|
||||
buf, count);
|
||||
dattr, buf, count);
|
||||
return (error);
|
||||
}
|
||||
|
||||
@ -390,5 +416,32 @@ static inline int dev_to_node(struct device *dev)
|
||||
return -1;
|
||||
}
|
||||
|
||||
static inline char *kvasprintf(gfp_t gfp, const char *fmt, va_list ap)
|
||||
{
|
||||
unsigned int len;
|
||||
char *p = NULL;
|
||||
va_list aq;
|
||||
|
||||
va_copy(aq, ap);
|
||||
len = vsnprintf(NULL, 0, fmt, aq);
|
||||
va_end(aq);
|
||||
|
||||
vsnprintf(p, len+1, fmt, ap);
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
static inline char *kasprintf(gfp_t gfp, const char *fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
char *p;
|
||||
|
||||
va_start(ap, fmt);
|
||||
p = kvasprintf(gfp, fmt, ap);
|
||||
va_end(ap);
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
|
||||
#endif /* _LINUX_DEVICE_H_ */
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -57,4 +58,15 @@ ERR_CAST(void *ptr)
|
||||
return (void *)ptr;
|
||||
}
|
||||
|
||||
static inline int
|
||||
PTR_ERR_OR_ZERO(const void *ptr)
|
||||
{
|
||||
if (IS_ERR(ptr))
|
||||
return PTR_ERR(ptr);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define PTR_RET(p) PTR_ERR_OR_ZERO(p)
|
||||
|
||||
#endif /* _LINUX_ERR_H_ */
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -31,9 +32,11 @@
|
||||
|
||||
#include <sys/errno.h>
|
||||
|
||||
#define ECOMM ESTALE
|
||||
#define ENODATA ECONNREFUSED
|
||||
#define ENOIOCTLCMD ENOIOCTL /* XXX this is negative */
|
||||
#define ERESTARTSYS ERESTART /* XXX this is negative */
|
||||
#define ECOMM ESTALE
|
||||
#define ENODATA ECONNREFUSED
|
||||
#define ENOIOCTLCMD ENOIOCTL
|
||||
#define ERESTARTSYS ERESTART
|
||||
#define ENOTSUPP EOPNOTSUPP
|
||||
#define ENONET EHOSTDOWN
|
||||
|
||||
#endif /* _LINUX_ERRNO_H_ */
|
||||
#endif /* _LINUX_ERRNO_H_ */
|
||||
|
94
sys/ofed/include/linux/etherdevice.h
Normal file
94
sys/ofed/include/linux/etherdevice.h
Normal file
@ -0,0 +1,94 @@
|
||||
/*
|
||||
* Copyright (c) 2007 Cisco Systems, Inc. All rights reserved.
|
||||
* Copyright (c) 2014 Mellanox Technologies, Ltd. All rights reserved.
|
||||
*
|
||||
* This software is available to you under a choice of one of two
|
||||
* licenses. You may choose to be licensed under the terms of the GNU
|
||||
* General Public License (GPL) Version 2, available from the file
|
||||
* COPYING in the main directory of this source tree, or the
|
||||
* OpenIB.org BSD license below:
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or
|
||||
* without modification, are permitted provided that the following
|
||||
* conditions are met:
|
||||
*
|
||||
* - Redistributions of source code must retain the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer.
|
||||
*
|
||||
* - Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _LINUX_ETHERDEVICE
|
||||
#define _LINUX_ETHERDEVICE
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/**
|
||||
* is_zero_ether_addr - Determine if give Ethernet address is all zeros.
|
||||
* @addr: Pointer to a six-byte array containing the Ethernet address
|
||||
*
|
||||
* Return true if the address is all zeroes.
|
||||
*/
|
||||
static inline bool is_zero_ether_addr(const u8 *addr)
|
||||
{
|
||||
return !(addr[0] | addr[1] | addr[2] | addr[3] | addr[4] | addr[5]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* is_multicast_ether_addr - Determine if the Ethernet address is a multicast.
|
||||
* @addr: Pointer to a six-byte array containing the Ethernet address
|
||||
*
|
||||
* Return true if the address is a multicast address.
|
||||
* By definition the broadcast address is also a multicast address.
|
||||
*/
|
||||
static inline bool is_multicast_ether_addr(const u8 *addr)
|
||||
{
|
||||
return (0x01 & addr[0]);
|
||||
}
|
||||
|
||||
/**
|
||||
* is_broadcast_ether_addr - Determine if the Ethernet address is broadcast
|
||||
* @addr: Pointer to a six-byte array containing the Ethernet address
|
||||
*
|
||||
* Return true if the address is the broadcast address.
|
||||
*/
|
||||
static inline bool is_broadcast_ether_addr(const u8 *addr)
|
||||
{
|
||||
return (addr[0] & addr[1] & addr[2] & addr[3] & addr[4] & addr[5]) == 0xff;
|
||||
}
|
||||
|
||||
/**
|
||||
* is_valid_ether_addr - Determine if the given Ethernet address is valid
|
||||
* @addr: Pointer to a six-byte array containing the Ethernet address
|
||||
*
|
||||
* Check that the Ethernet address (MAC) is not 00:00:00:00:00:00, is not
|
||||
* a multicast address, and is not FF:FF:FF:FF:FF:FF.
|
||||
*
|
||||
* Return true if the address is valid.
|
||||
**/
|
||||
static inline bool is_valid_ether_addr(const u8 *addr)
|
||||
{
|
||||
/* FF:FF:FF:FF:FF:FF is a multicast address so we don't need to
|
||||
** explicitly check for it here. */
|
||||
return !is_multicast_ether_addr(addr) && !is_zero_ether_addr(addr);
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endif /* _LINUX_ETHERDEVICE */
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -106,12 +107,12 @@ get_unused_fd(void)
|
||||
}
|
||||
|
||||
static inline struct linux_file *
|
||||
_alloc_file(int mode, const struct file_operations *fops)
|
||||
alloc_file(int mode, const struct file_operations *fops)
|
||||
{
|
||||
struct linux_file *filp;
|
||||
|
||||
filp = kzalloc(sizeof(*filp), GFP_KERNEL);
|
||||
if (filp == NULL)
|
||||
if (filp == NULL)
|
||||
return (NULL);
|
||||
filp->f_op = fops;
|
||||
filp->f_mode = mode;
|
||||
@ -119,7 +120,20 @@ _alloc_file(int mode, const struct file_operations *fops)
|
||||
return filp;
|
||||
}
|
||||
|
||||
#define alloc_file(mnt, root, mode, fops) _alloc_file((mode), (fops))
|
||||
struct fd {
|
||||
struct linux_file *linux_file;
|
||||
};
|
||||
|
||||
static inline void fdput(struct fd fd)
|
||||
{
|
||||
fput(fd.linux_file);
|
||||
}
|
||||
|
||||
static inline struct fd fdget(unsigned int fd)
|
||||
{
|
||||
struct linux_file *f = linux_fget(fd);
|
||||
return (struct fd){f};
|
||||
}
|
||||
|
||||
#define file linux_file
|
||||
#define fget linux_fget
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -106,6 +107,12 @@ struct file_operations {
|
||||
int (*open)(struct inode *, struct file *);
|
||||
int (*release)(struct inode *, struct file *);
|
||||
int (*fasync)(int, struct file *, int);
|
||||
|
||||
/* Although not supported in FreeBSD, to align with Linux code
|
||||
* we are adding llseek() only when it is mapped to no_llseek which returns
|
||||
* an illegal seek error
|
||||
*/
|
||||
loff_t (*llseek)(struct file *, loff_t, int);
|
||||
#if 0
|
||||
/* We do not support these methods. Don't permit them to compile. */
|
||||
loff_t (*llseek)(struct file *, loff_t, int);
|
||||
@ -154,6 +161,21 @@ unregister_chrdev_region(dev_t dev, unsigned range)
|
||||
return;
|
||||
}
|
||||
|
||||
static inline int
|
||||
alloc_chrdev_region(dev_t *dev, unsigned baseminor, unsigned count,
|
||||
const char *name)
|
||||
{
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* No current support for seek op in FreeBSD */
|
||||
static inline int
|
||||
nonseekable_open(struct inode *inode, struct file *filp)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline dev_t
|
||||
iminor(struct inode *inode)
|
||||
{
|
||||
@ -180,4 +202,10 @@ iput(struct inode *inode)
|
||||
vrele(inode);
|
||||
}
|
||||
|
||||
#endif /* _LINUX_FS_H_ */
|
||||
static inline loff_t
|
||||
no_llseek(struct file *file, loff_t offset, int whence)
|
||||
{
|
||||
return -ESPIPE;
|
||||
}
|
||||
|
||||
#endif /* _LINUX_FS_H_ */
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -34,9 +35,16 @@
|
||||
|
||||
#define ETH_P_8021Q ETHERTYPE_VLAN
|
||||
|
||||
#define ETH_HLEN ETHER_HDR_LEN /* Total octets in header. */
|
||||
#ifndef ETH_ALEN
|
||||
#define ETH_ALEN ETHER_ADDR_LEN
|
||||
#endif
|
||||
#define ETH_FCS_LEN 4 /* Octets in the FCS */
|
||||
#define VLAN_HLEN 4 /* The additional bytes (on top of the Ethernet header)
|
||||
* that VLAN requires. */
|
||||
/*
|
||||
* defined Ethernet Protocol ID's.
|
||||
*/
|
||||
#define ETH_P_IP 0x0800 /* Internet Protocol packet */
|
||||
#define ETH_P_IP 0x0800 /* Internet Protocol packet */
|
||||
|
||||
#endif /* _LINUX_IF_ETHER_H_ */
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -29,7 +30,11 @@
|
||||
#ifndef _LINUX_IF_VLAN_H_
|
||||
#define _LINUX_IF_VLAN_H_
|
||||
|
||||
#include <sys/socket.h>
|
||||
#include <net/if.h>
|
||||
#include <net/ethernet.h>
|
||||
#include <net/if_vlan_var.h>
|
||||
|
||||
#define VLAN_N_VID 4096
|
||||
|
||||
#endif /* _LINUX_IF_VLAN_H_ */
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -1,31 +0,0 @@
|
||||
/*-
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice unmodified, this list of conditions, and the following
|
||||
* disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
#ifndef _LINUX_INIT_H_
|
||||
#define _LINUX_INIT_H_
|
||||
|
||||
#endif /* _LINUX_INIT_H_ */
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -44,7 +45,10 @@ msecs_to_jiffies(int msec)
|
||||
return (tvtohz(&tv));
|
||||
}
|
||||
|
||||
#define jiffies ticks
|
||||
|
||||
#define jiffies ticks
|
||||
#define jiffies_to_msecs(x) (((int64_t)(x)) * 1000 / hz)
|
||||
|
||||
|
||||
#define time_after(a, b) ((long)(b) - (long)(a) < 0)
|
||||
#define time_before(a, b) time_after(b,a)
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -33,18 +34,16 @@
|
||||
#include <sys/libkern.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/smp.h>
|
||||
#include <sys/stddef.h>
|
||||
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/stddef.h>
|
||||
#include <linux/kthread.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/wait.h>
|
||||
#include <linux/fs.h>
|
||||
#include <linux/notifier.h>
|
||||
#include <linux/log2.h>
|
||||
#include <linux/log2.h>
|
||||
#include <asm/byteorder.h>
|
||||
|
||||
#define KERN_CONT ""
|
||||
@ -102,6 +101,8 @@
|
||||
printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
|
||||
#define pr_info(fmt, ...) \
|
||||
printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
|
||||
#define pr_info_once(fmt, ...) \
|
||||
printk_once(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
|
||||
#define pr_cont(fmt, ...) \
|
||||
printk(KERN_CONT fmt, ##__VA_ARGS__)
|
||||
|
||||
@ -133,6 +134,7 @@
|
||||
|
||||
#define simple_strtoul strtoul
|
||||
#define simple_strtol strtol
|
||||
#define kstrtol(a,b,c) ({*(c) = strtol(a,0,b);})
|
||||
|
||||
#define min(x, y) (x < y ? x : y)
|
||||
#define max(x, y) (x > y ? x : y)
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -26,9 +27,25 @@
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_CTYPE_H_
|
||||
#define _LINUX_CTYPE_H_
|
||||
#ifndef _LINUX_KMOD_H_
|
||||
#define _LINUX_KMOD_H_
|
||||
|
||||
#include <sys/ctype.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/syscallsubr.h>
|
||||
#include <sys/refcount.h>
|
||||
#include <sys/sbuf.h>
|
||||
#include <machine/stdarg.h>
|
||||
#include <sys/proc.h>
|
||||
|
||||
#endif /* _LINUX_CTYPE_H_ */
|
||||
#define request_module(...) \
|
||||
({\
|
||||
char modname[128]; \
|
||||
int fileid; \
|
||||
snprintf(modname, sizeof(modname), __VA_ARGS__); \
|
||||
kern_kldload(curthread, modname, &fileid); \
|
||||
})
|
||||
|
||||
#define request_module_nowait request_module
|
||||
|
||||
|
||||
#endif /* _LINUX_KMOD_H_ */
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -54,6 +55,8 @@ struct kobject {
|
||||
struct sysctl_oid *oidp;
|
||||
};
|
||||
|
||||
extern struct kobject *mm_kobj;
|
||||
|
||||
static inline void
|
||||
kobject_init(struct kobject *kobj, struct kobj_type *ktype)
|
||||
{
|
||||
@ -150,4 +153,17 @@ int kobject_set_name(struct kobject *kobj, const char *fmt, ...);
|
||||
int kobject_init_and_add(struct kobject *kobj, struct kobj_type *ktype,
|
||||
struct kobject *parent, const char *fmt, ...);
|
||||
|
||||
/* sysfs.h calles for 'kobject' which is defined here,
|
||||
* so we need to add the include only after the 'kobject' def.
|
||||
*/
|
||||
#include <linux/sysfs.h>
|
||||
|
||||
struct kobj_attribute {
|
||||
struct attribute attr;
|
||||
ssize_t (*show)(struct kobject *kobj, struct kobj_attribute *attr,
|
||||
char *buf);
|
||||
ssize_t (*store)(struct kobject *kobj, struct kobj_attribute *attr,
|
||||
const char *buf, size_t count);
|
||||
};
|
||||
|
||||
#endif /* _LINUX_KOBJECT_H_ */
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -59,4 +60,4 @@ kref_put(struct kref *kref, void (*rel)(struct kref *kref))
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* _KREF_H_ */
|
||||
#endif /* _LINUX_KREF_H_ */
|
||||
|
@ -2,6 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user