VirtualBox

Changeset 30059 in vbox for trunk


Ignore:
Timestamp:
Jun 7, 2010 9:21:41 AM (15 years ago)
Author:
vboxsync
Message:

#4814: vboxnetflt qdisc: More fixes for older kernels.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c

    r30051 r30059  
    182182
    183183#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 27)
     184#define qdisc_dev(qdisc) (qdisc->dev)
    184185#define qdisc_pkt_len(skb) (skb->len)
    185186#define QDISC_GET(dev) (dev->qdisc_sleeping)
     
    197198
    198199#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 27)
    199 #define QDISC_IS_BUSY(dev, qdisc)  test_bit(__LINK_STATE_SCHED, &dev->state))
     200#define QDISC_IS_BUSY(dev, qdisc)  test_bit(__LINK_STATE_SCHED, &dev->state)
    200201#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) */
    201202#define QDISC_IS_BUSY(dev, qdisc) (test_bit(__QDISC_STATE_RUNNING, &qdisc->state) || \
     
    366367}
    367368
     369#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 25)
     370static int vboxNetFltQdiscInit(struct Qdisc *sch, struct rtattr *opt)
     371#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25) */
    368372static int vboxNetFltQdiscInit(struct Qdisc *sch, struct nlattr *opt)
     373#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25) */
    369374{
    370375    PVBOXNETQDISCPRIV pPriv = qdisc_priv(sch);
     
    432437    pPriv->pChild = pNew;
    433438#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 20)
     439    sch->q.qlen = 0;
     440#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 20) */
    434441    qdisc_tree_decrease_qlen(*ppOld, (*ppOld)->q.qlen);
    435 #else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 20) */
    436     sch->q.qlen = 0;
    437442#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 20) */
    438443    qdisc_reset(*ppOld);
     
    457462}
    458463
     464#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 25)
     465static int vboxNetFltClassChange(struct Qdisc *sch, u32 classid, u32 parentid,
     466                                 struct rtattr **tca, unsigned long *arg)
     467#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25) */
    459468static int vboxNetFltClassChange(struct Qdisc *sch, u32 classid, u32 parentid,
    460469                                 struct nlattr **tca, unsigned long *arg)
     470#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25) */
    461471{
    462472    return -ENOSYS;
     
    500510
    501511
    502 static const struct Qdisc_class_ops g_VBoxNetFltClassOps =
     512static struct Qdisc_class_ops g_VBoxNetFltClassOps =
    503513{
    504514    .graft     = vboxNetFltClassGraft,
     
    514524
    515525
    516 struct Qdisc_ops g_VBoxNetFltQDiscOps = {
     526static struct Qdisc_ops g_VBoxNetFltQDiscOps = {
    517527    .cl_ops    = &g_VBoxNetFltClassOps,
    518528    .id        = "vboxnetflt",
     
    544554static void vboxNetFltLinuxQdiscInstall(PVBOXNETFLTINS pThis, struct net_device *pDev)
    545555{
     556#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
    546557    int i;
     558#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) */
    547559    PVBOXNETQDISCPRIV pPriv;
    548560
     
    613625static void vboxNetFltLinuxQdiscRemove(PVBOXNETFLTINS pThis, struct net_device *pDev)
    614626{
     627#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
    615628    int i;
     629#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) */
    616630    PVBOXNETQDISCPRIV pPriv;
    617631    struct Qdisc *pQdisc;
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette