forked from Minki/linux
liquidio: moved wait_for_pending_requests to octeon_network.h
Moving common function wait_for_pending_requests to octeon_network.h Signed-off-by: Intiyaz Basha <intiyaz.basha@cavium.com> Signed-off-by: Felix Manlunas <felix.manlunas@cavium.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
cb44a8606f
commit
e65a8ccb0d
@ -36,8 +36,6 @@ struct octeon_cn23xx_vf {
|
||||
|
||||
#define CN23XX_MAILBOX_MSGPARAM_SIZE 6
|
||||
|
||||
#define MAX_VF_IP_OP_PENDING_PKT_COUNT 100
|
||||
|
||||
void cn23xx_vf_ask_pf_to_do_flr(struct octeon_device *oct);
|
||||
|
||||
int cn23xx_octeon_pfvf_handshake(struct octeon_device *oct);
|
||||
|
@ -275,32 +275,6 @@ static void force_io_queues_off(struct octeon_device *oct)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief wait for all pending requests to complete
|
||||
* @param oct Pointer to Octeon device
|
||||
*
|
||||
* Called during shutdown sequence
|
||||
*/
|
||||
static int wait_for_pending_requests(struct octeon_device *oct)
|
||||
{
|
||||
int i, pcount = 0;
|
||||
|
||||
for (i = 0; i < 100; i++) {
|
||||
pcount =
|
||||
atomic_read(&oct->response_list
|
||||
[OCTEON_ORDERED_SC_LIST].pending_req_count);
|
||||
if (pcount)
|
||||
schedule_timeout_uninterruptible(HZ / 10);
|
||||
else
|
||||
break;
|
||||
}
|
||||
|
||||
if (pcount)
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Cause device to go quiet so it can be safely removed/reset/etc
|
||||
* @param oct Pointer to Octeon device
|
||||
|
@ -123,7 +123,7 @@ static int lio_wait_for_oq_pkts(struct octeon_device *oct)
|
||||
{
|
||||
struct octeon_device_priv *oct_priv =
|
||||
(struct octeon_device_priv *)oct->priv;
|
||||
int retry = MAX_VF_IP_OP_PENDING_PKT_COUNT;
|
||||
int retry = MAX_IO_PENDING_PKT_COUNT;
|
||||
int pkt_cnt = 0, pending_pkts;
|
||||
int i;
|
||||
|
||||
@ -147,32 +147,6 @@ static int lio_wait_for_oq_pkts(struct octeon_device *oct)
|
||||
return pkt_cnt;
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief wait for all pending requests to complete
|
||||
* @param oct Pointer to Octeon device
|
||||
*
|
||||
* Called during shutdown sequence
|
||||
*/
|
||||
static int wait_for_pending_requests(struct octeon_device *oct)
|
||||
{
|
||||
int i, pcount = 0;
|
||||
|
||||
for (i = 0; i < MAX_VF_IP_OP_PENDING_PKT_COUNT; i++) {
|
||||
pcount = atomic_read(
|
||||
&oct->response_list[OCTEON_ORDERED_SC_LIST]
|
||||
.pending_req_count);
|
||||
if (pcount)
|
||||
schedule_timeout_uninterruptible(HZ / 10);
|
||||
else
|
||||
break;
|
||||
}
|
||||
|
||||
if (pcount)
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Cause device to go quiet so it can be safely removed/reset/etc
|
||||
* @param oct Pointer to Octeon device
|
||||
|
@ -571,6 +571,8 @@ struct octeon_device {
|
||||
#define CHIP_CONF(oct, TYPE) \
|
||||
(((struct octeon_ ## TYPE *)((oct)->chip))->conf)
|
||||
|
||||
#define MAX_IO_PENDING_PKT_COUNT 100
|
||||
|
||||
/*------------------ Function Prototypes ----------------------*/
|
||||
|
||||
/** Initialize device list memory */
|
||||
|
@ -448,4 +448,30 @@ static inline void ifstate_reset(struct lio *lio, int state_flag)
|
||||
atomic_set(&lio->ifstate, (atomic_read(&lio->ifstate) & ~(state_flag)));
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief wait for all pending requests to complete
|
||||
* @param oct Pointer to Octeon device
|
||||
*
|
||||
* Called during shutdown sequence
|
||||
*/
|
||||
static inline int wait_for_pending_requests(struct octeon_device *oct)
|
||||
{
|
||||
int i, pcount = 0;
|
||||
|
||||
for (i = 0; i < MAX_IO_PENDING_PKT_COUNT; i++) {
|
||||
pcount = atomic_read(
|
||||
&oct->response_list[OCTEON_ORDERED_SC_LIST]
|
||||
.pending_req_count);
|
||||
if (pcount)
|
||||
schedule_timeout_uninterruptible(HZ / 10);
|
||||
else
|
||||
break;
|
||||
}
|
||||
|
||||
if (pcount)
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user