are io-net alloc/free reentrant?

Hi,

We’re seeing io-net with our driver (intermediate packet interceptor) crash
under a certain traffic pattern.

It has been suggested that the io-net alloc and free functions are not
re-entrant, and our use of them needs to be protected by mutex.

Anyone?

Rony Shapiro <rshapiro@everbee.com> wrote:

Hi,

We’re seeing io-net with our driver (intermediate packet interceptor) crash
under a certain traffic pattern.

It has been suggested that the io-net alloc and free functions are not
re-entrant, and our use of them needs to be protected by mutex.

No, if you stick with the “alloc()”, “alloc_up_pkt()”, “alloc_down_pkt()”,
they are all protected (by an internal mutex).

The only bad thing could happen is you double freed or sth like that.

-xtang

Hi,

Thanks for the quick reply.

It’s beginning to look like “something like that”…

io-net appears to be crashing in a call to m_free (I say “appears” because
the core file is somehow corrupt - can’t get more than a couple of frames
back).

Anyway, this seems to be after the packet leaves our driver.

Any ideas/hints/clues as to how to track this down greatly appreciated.

Cheers,

Rony

“Xiaodan Tang” <xtang@qnx.com> wrote in message
news:a31be5$l3$1@nntp.qnx.com

Rony Shapiro <> rshapiro@everbee.com> > wrote:
Hi,

We’re seeing io-net with our driver (intermediate packet interceptor)
crash
under a certain traffic pattern.

It has been suggested that the io-net alloc and free functions are not
re-entrant, and our use of them needs to be protected by mutex.

No, if you stick with the “alloc()”, “alloc_up_pkt()”, “alloc_down_pkt()”,
they are all protected (by an internal mutex).

The only bad thing could happen is you double freed or sth like that.

-xtang