Skip to content

nx_icmp_interface_ping inhibits pre-emption causing interface driver faults #405

Description

@diggit

Describe the bug
calling nx_icmp_ping consequenctly calls _nx_icmp_interface_ping.
It inhibits preemption and then nests into packet tranmission.

This prevents any nested code to block, e.g.: to wait for shared resource or to wait until the packet hand over finishes in the interface driver. Necessary in the EMW3080 driver (LOCK, SEM_WAIT).

My setup:

To Reproduce
Steps to reproduce the behavior:

  1. Have a interface driver that requires some kind of blocking (resource locking, waiting for txn to finish etc.)
  2. Start some interface interaction (send packet, ....)
  3. Call nx_icmp_ping from other thread, whole the interface driver is busy

Expected behavior
_nx_icmp_interface_ping does not inhibit preemption thus allows interface driver to properly work

Impact
nx_icmp_ping now easily breaks the interface driver (mutexes, sempahores,.. do not work)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions