Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f0309de9 authored by Kees Cook's avatar Kees Cook Committed by Doug Ledford
Browse files

RDMA/nes: Convert timers to use timer_setup()



In preparation for unconditionally passing the struct timer_list pointer to
all timer callbacks, switch to using the new timer_setup() and from_timer()
to pass the timer pointer explicitly. A pointer from nesadapter back to
nesdev was added.

Cc: Faisal Latif <faisal.latif@intel.com>
Cc: Doug Ledford <dledford@redhat.com>
Cc: Sean Hefty <sean.hefty@intel.com>
Cc: Hal Rosenstock <hal.rosenstock@gmail.com>
Cc: linux-rdma@vger.kernel.org
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarKees Cook <keescook@chromium.org>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent 8a5776a5
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -536,7 +536,7 @@ void nes_iwarp_ce_handler(struct nes_device *, struct nes_hw_cq *);
int nes_destroy_cqp(struct nes_device *);
int nes_nic_cm_xmit(struct sk_buff *, struct net_device *);
void nes_recheck_link_status(struct work_struct *work);
void nes_terminate_timeout(unsigned long context);
void nes_terminate_timeout(struct timer_list *t);

/* nes_nic.c */
struct net_device *nes_netdev_init(struct nes_device *, void __iomem *);
@@ -575,8 +575,8 @@ void nes_put_cqp_request(struct nes_device *nesdev,
			 struct nes_cqp_request *cqp_request);
void nes_post_cqp_request(struct nes_device *, struct nes_cqp_request *);
int nes_arp_table(struct nes_device *, u32, u8 *, u32);
void nes_mh_fix(unsigned long);
void nes_clc(unsigned long);
void nes_mh_fix(struct timer_list *t);
void nes_clc(struct timer_list *t);
void nes_dump_mem(unsigned int, void *, int);
u32 nes_crc32(u32, u32, u32, u32, u8 *, u32, u32, u32);

+2 −3
Original line number Diff line number Diff line
@@ -840,7 +840,7 @@ static void handle_recv_entry(struct nes_cm_node *cm_node, u32 rem_node)
/**
 * nes_cm_timer_tick
 */
static void nes_cm_timer_tick(unsigned long pass)
static void nes_cm_timer_tick(struct timer_list *unused)
{
	unsigned long flags;
	unsigned long nexttimeout = jiffies + NES_LONG_TIME;
@@ -2670,8 +2670,7 @@ static struct nes_cm_core *nes_cm_alloc_core(void)
		return NULL;

	INIT_LIST_HEAD(&cm_core->connected_nodes);
	init_timer(&cm_core->tcp_timer);
	cm_core->tcp_timer.function = nes_cm_timer_tick;
	timer_setup(&cm_core->tcp_timer, nes_cm_timer_tick, 0);

	cm_core->mtu = NES_CM_DEFAULT_MTU;
	cm_core->state = NES_CM_STATE_INITED;
+8 −12
Original line number Diff line number Diff line
@@ -381,6 +381,7 @@ struct nes_adapter *nes_init_adapter(struct nes_device *nesdev, u8 hw_rev) {
	       sizeof nesadapter->pft_mcast_map);

	/* populate the new nesadapter */
	nesadapter->nesdev = nesdev;
	nesadapter->devfn = nesdev->pcidev->devfn;
	nesadapter->bus_number = nesdev->pcidev->bus->number;
	nesadapter->ref_count = 1;
@@ -598,19 +599,15 @@ struct nes_adapter *nes_init_adapter(struct nes_device *nesdev, u8 hw_rev) {
	}

	if (nesadapter->hw_rev == NE020_REV) {
		init_timer(&nesadapter->mh_timer);
		nesadapter->mh_timer.function = nes_mh_fix;
		timer_setup(&nesadapter->mh_timer, nes_mh_fix, 0);
		nesadapter->mh_timer.expires = jiffies + (HZ/5);  /* 1 second */
		nesadapter->mh_timer.data = (unsigned long)nesdev;
		add_timer(&nesadapter->mh_timer);
	} else {
		nes_write32(nesdev->regs+NES_INTF_INT_STAT, 0x0f000000);
	}

	init_timer(&nesadapter->lc_timer);
	nesadapter->lc_timer.function = nes_clc;
	timer_setup(&nesadapter->lc_timer, nes_clc, 0);
	nesadapter->lc_timer.expires = jiffies + 3600 * HZ;  /* 1 hour */
	nesadapter->lc_timer.data = (unsigned long)nesdev;
	add_timer(&nesadapter->lc_timer);

	list_add_tail(&nesadapter->list, &nes_adapter_list);
@@ -1623,9 +1620,9 @@ static void nes_replenish_nic_rq(struct nes_vnic *nesvnic)
/**
 * nes_rq_wqes_timeout
 */
static void nes_rq_wqes_timeout(unsigned long parm)
static void nes_rq_wqes_timeout(struct timer_list *t)
{
	struct nes_vnic *nesvnic = (struct nes_vnic *)parm;
	struct nes_vnic *nesvnic = from_timer(nesvnic, t, rq_wqes_timer);
	printk("%s: Timer fired.\n", __func__);
	atomic_set(&nesvnic->rx_skb_timer_running, 0);
	if (atomic_read(&nesvnic->rx_skbs_needed))
@@ -1849,8 +1846,7 @@ int nes_init_nic_qp(struct nes_device *nesdev, struct net_device *netdev)
		wqe_count -= counter;
		nes_write32(nesdev->regs+NES_WQE_ALLOC, (counter << 24) | nesvnic->nic.qp_id);
	} while (wqe_count);
	setup_timer(&nesvnic->rq_wqes_timer, nes_rq_wqes_timeout,
		    (unsigned long)nesvnic);
	timer_setup(&nesvnic->rq_wqes_timer, nes_rq_wqes_timeout, 0);
	nes_debug(NES_DBG_INIT, "NAPI support Enabled\n");
	if (nesdev->nesadapter->et_use_adaptive_rx_coalesce)
	{
@@ -3474,9 +3470,9 @@ static void nes_terminate_received(struct nes_device *nesdev,
}

/* Timeout routine in case terminate fails to complete */
void nes_terminate_timeout(unsigned long context)
void nes_terminate_timeout(struct timer_list *t)
{
	struct nes_qp *nesqp = (struct nes_qp *)(unsigned long)context;
	struct nes_qp *nesqp = from_timer(nesqp, t, terminate_timer);

	nes_terminate_done(nesqp, 1);
}
+1 −0
Original line number Diff line number Diff line
@@ -1164,6 +1164,7 @@ struct nes_adapter {
	u8  log_port;

	/* PCI information */
	struct nes_device *nesdev;
	unsigned int  devfn;
	unsigned char bus_number;
	unsigned char OneG_Mode;
+5 −4
Original line number Diff line number Diff line
@@ -122,9 +122,10 @@ static void nes_replenish_mgt_rq(struct nes_vnic_mgt *mgtvnic)
/**
 * nes_mgt_rq_wqes_timeout
 */
static void nes_mgt_rq_wqes_timeout(unsigned long parm)
static void nes_mgt_rq_wqes_timeout(struct timer_list *t)
{
	struct nes_vnic_mgt *mgtvnic = (struct nes_vnic_mgt *)parm;
	struct nes_vnic_mgt *mgtvnic = from_timer(mgtvnic, t,
						       rq_wqes_timer);

	atomic_set(&mgtvnic->rx_skb_timer_running, 0);
	if (atomic_read(&mgtvnic->rx_skbs_needed))
@@ -1040,8 +1041,8 @@ int nes_init_mgt_qp(struct nes_device *nesdev, struct net_device *netdev, struct
			mgtvnic->mgt.rx_skb[counter] = skb;
		}

		setup_timer(&mgtvnic->rq_wqes_timer, nes_mgt_rq_wqes_timeout,
			    (unsigned long)mgtvnic);
		timer_setup(&mgtvnic->rq_wqes_timer, nes_mgt_rq_wqes_timeout,
			    0);

		wqe_count = NES_MGT_WQ_COUNT - 1;
		mgtvnic->mgt.rq_head = wqe_count;
Loading