Skip to contentSkip to conversation

FIXME in solos-pci.c

DISCUSSION chas williams - CONTRACTOR 1 participant 1 message Dec 4, 2014 1 message not in the archive

Subsystems (2)
lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

#1 lore raw

The last I heard on this topic was from Guy Ellis,

From: Guy Ellis <[email protected]>
To: [email protected]
Subject: Re: [Linux-ATM-General] solos-pci.c: Fix me
Date: Tue, 22 Jul 2014 07:34:30 +1000

Hi Chas/Nick,

I think the FIXME is reminder to deal correctly with an unknown command. At the moment an unknown command is treated as a PKT_COMMAND which is incorrect.
I think the correct behaviour would be to ignore unknown commands and just free the skb.

That said I doubt this condition ever occurs, which is probably why it has been this way since day 1.

Nathan is on vacation at the moment, when he gets back in August I'll ask him to tidy this up.

So perhaps, Guy could let us know if he had a chance for Nathan to look at removing this FIXME.

Quoted 20 lines · On Wed, 03 Dec 2014 22:58:46 -0500 nick <[email protected]> wrote:

Greetings Chas,
I am wondering if there is any reason for the FIXME message in the below code. This is due to after reading the other parts of the function the code and logical seem similar and correct unless I am missing something about the hardware. Cheers Nick
case PKT_COMMAND:

                       default: /* FIXME: Not really, surely? */
                              if (process_command(card, port, skb))
                                        break;
                               spin_lock(&card->cli_queue_lock);
                               if (skb_queue_len(&card->cli_queue[port]) > 10) {
                                     if (net_ratelimit())
                                                dev_warn(&card->dev->dev, "Dropping console response on port %d\n",
                                                         port);
                                        dev_kfree_skb_any(skb);
                                } else
                                         skb_queue_tail(&card->cli_queue[port], skb);
                               spin_unlock(&card->cli_queue_lock);
                               break;
                       }