[lkml]   [2002]   [Oct]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Subjectfeature request - why not make netif_rx() a pointer?
    Non GPL modules that want to attach themselves between all L2 drivers and
    upper layers would not have to incur a performance loss if netif_rx() is
    made a
    pointer instead of a function (whether or not NET filters are compiled in
    the kernel).
    Currently control can be easily wrested from netif_rx() and others through
    injection of a few instructions into the running kernel (SMC - self
    modifying code)
    but decreased performance is one sad consequence. Architecture specific
    maintenance of SMC slows down portability, too.
    The following suggestion would lead to the least amount of modifications.

    The global variable "int (*netif_rx)(struct sk_buff *) = &default_netif_rx;"
    gets initialized to the address of a function whose body is the default
    Drivers calling netif_rx explicitly need to be able to see the prototype
    "extern int (*netif_rx)(struct sk_buff *);" or else blow up.
    No further changes would be necessary because the current 200+ explicit
    to "netif_rx(skb);" become a poorly written "(*netif_rx)(skb);" call.
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 13:30    [W:0.020 / U:0.040 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site