mirror of https://gitee.com/openkylin/linux.git
liquidio: Avoid double free during soft command
This patch is to resolve the double free issue by checking proper return values from soft command. Signed-off-by: Derek Chickles <derek.chickles@caviumnetworks.com> Signed-off-by: Satanand Burla <satananda.burla@caviumnetworks.com> Signed-off-by: Felix Manlunas <felix.manlunas@caviumnetworks.com> Signed-off-by: Raghu Vatsavayi <raghu.vatsavayi@caviumnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
0b797c8589
commit
ddc173a688
|
@ -317,7 +317,7 @@ octnet_mdio45_access(struct lio *lio, int op, int loc, int *value)
|
|||
|
||||
retval = octeon_send_soft_command(oct_dev, sc);
|
||||
|
||||
if (retval) {
|
||||
if (retval == IQ_SEND_FAILED) {
|
||||
dev_err(&oct_dev->pci_dev->dev,
|
||||
"octnet_mdio45_access instruction failed status: %x\n",
|
||||
retval);
|
||||
|
@ -722,7 +722,7 @@ static int octnet_set_intrmod_cfg(void *oct, struct oct_intrmod_cfg *intr_cfg)
|
|||
sc->wait_time = 1000;
|
||||
|
||||
retval = octeon_send_soft_command(oct_dev, sc);
|
||||
if (retval) {
|
||||
if (retval == IQ_SEND_FAILED) {
|
||||
octeon_free_soft_command(oct_dev, sc);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
|
|
@ -2583,7 +2583,7 @@ static inline int send_nic_timestamp_pkt(struct octeon_device *oct,
|
|||
retval = octeon_send_command(oct, sc->iq_no, ring_doorbell, &sc->cmd,
|
||||
sc, ih->dlengsz, ndata->reqtype);
|
||||
|
||||
if (retval) {
|
||||
if (retval == IQ_SEND_FAILED) {
|
||||
dev_err(&oct->pci_dev->dev, "timestamp data packet failed status: %x\n",
|
||||
retval);
|
||||
octeon_free_soft_command(oct, sc);
|
||||
|
@ -3192,7 +3192,7 @@ static int setup_nic_devices(struct octeon_device *octeon_dev)
|
|||
sc->wait_time = 1000;
|
||||
|
||||
retval = octeon_send_soft_command(octeon_dev, sc);
|
||||
if (retval) {
|
||||
if (retval == IQ_SEND_FAILED) {
|
||||
dev_err(&octeon_dev->pci_dev->dev,
|
||||
"iq/oq config failed status: %x\n",
|
||||
retval);
|
||||
|
|
|
@ -178,7 +178,7 @@ octnet_send_nic_ctrl_pkt(struct octeon_device *oct,
|
|||
}
|
||||
|
||||
retval = octeon_send_soft_command(oct, sc);
|
||||
if (retval) {
|
||||
if (retval == IQ_SEND_FAILED) {
|
||||
octeon_free_soft_command(oct, sc);
|
||||
dev_err(&oct->pci_dev->dev, "%s soft command send failed status: %x\n",
|
||||
__func__, retval);
|
||||
|
|
Loading…
Reference in New Issue