VirtualBox

Ignore:
Timestamp:
Aug 13, 2015 11:26:32 AM (9 years ago)
Author:
vboxsync
Message:

SUPDrv,VBoxNetFlt: More EFLAGS preservation fixes for linux.

File:
1 edited

Legend:

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

    r57121 r57315  
    20802080    int err;
    20812081    int rc = VINF_SUCCESS;
     2082    IPRT_LINUX_SAVE_EFL_AC();
    20822083    NOREF(pvIfData);
    20832084
     
    21282129    }
    21292130
     2131    IPRT_LINUX_RESTORE_EFL_AC();
    21302132    return rc;
    21312133}
     
    21342136void vboxNetFltPortOsSetActive(PVBOXNETFLTINS pThis, bool fActive)
    21352137{
    2136     struct net_device * pDev;
    2137 
    2138     LogFlow(("vboxNetFltPortOsSetActive: pThis=%p (%s), fActive=%s, fDisablePromiscuous=%s\n",
    2139              pThis, pThis->szName, fActive?"true":"false",
    2140              pThis->fDisablePromiscuous?"true":"false"));
     2138    struct net_device *pDev;
     2139    IPRT_LINUX_SAVE_EFL_AC();
     2140
     2141    LogFlow(("vboxNetFltPortOsSetActive: pThis=%p (%s), fActive=%RTbool, fDisablePromiscuous=%RTbool\n",
     2142             pThis, pThis->szName, fActive, pThis->fDisablePromiscuous));
    21412143
    21422144    if (pThis->fDisablePromiscuous)
     
    21852187        vboxNetFltLinuxReleaseNetDev(pThis, pDev);
    21862188    }
     2189    IPRT_LINUX_RESTORE_EFL_AC();
    21872190}
    21882191
     
    21962199    if (ASMAtomicCmpXchgBool(&pThis->u.s.fPacketHandler, false, true))
    21972200    {
     2201        IPRT_LINUX_SAVE_EFL_AC();
    21982202        dev_remove_pack(&pThis->u.s.PacketType);
    21992203        Log(("vboxNetFltOsDisconnectIt: this=%p: Packet handler removed.\n", pThis));
     2204        IPRT_LINUX_RESTORE_EFL_AC();
    22002205    }
    22012206    return VINF_SUCCESS;
     
    22052210int  vboxNetFltOsConnectIt(PVBOXNETFLTINS pThis)
    22062211{
     2212    IPRT_LINUX_SAVE_EFL_AC();
     2213
    22072214    /*
    22082215     * Report the GSO capabilities of the host and device (if connected).
     
    22252232    vboxNetFltLinuxReportNicGsoCapabilities(pThis);
    22262233
     2234    IPRT_LINUX_RESTORE_EFL_AC();
    22272235    return VINF_SUCCESS;
    22282236}
     
    22332241    struct net_device  *pDev;
    22342242    bool                fRegistered;
     2243    IPRT_LINUX_SAVE_EFL_AC();
    22352244
    22362245#ifdef VBOXNETFLT_WITH_HOST2WIRE_FILTER
     
    22732282    unregister_netdevice_notifier(&pThis->u.s.Notifier);
    22742283    module_put(THIS_MODULE);
     2284
     2285    IPRT_LINUX_RESTORE_EFL_AC();
    22752286}
    22762287
     
    22802291    int err;
    22812292    NOREF(pvContext);
     2293    IPRT_LINUX_SAVE_EFL_AC();
    22822294
    22832295    pThis->u.s.Notifier.notifier_call = vboxNetFltLinuxNotifierCallback;
    22842296    err = register_netdevice_notifier(&pThis->u.s.Notifier);
    22852297    if (err)
     2298    {
     2299        IPRT_LINUX_RESTORE_EFL_AC();
    22862300        return VERR_INTNET_FLT_IF_FAILED;
     2301    }
    22872302    if (!pThis->u.s.fRegistered)
    22882303    {
    22892304        unregister_netdevice_notifier(&pThis->u.s.Notifier);
    22902305        LogRel(("VBoxNetFlt: failed to find %s.\n", pThis->szName));
     2306        IPRT_LINUX_RESTORE_EFL_AC();
    22912307        return VERR_INTNET_FLT_IF_NOT_FOUND;
    22922308    }
     
    22952311    if (   pThis->fDisconnectedFromHost
    22962312        || !try_module_get(THIS_MODULE))
     2313    {
     2314        IPRT_LINUX_RESTORE_EFL_AC();
    22972315        return VERR_INTNET_FLT_IF_FAILED;
     2316    }
    22982317
    22992318    if (pThis->pSwitchPort->pfnNotifyHostAddress)
     
    23142333        if (err)
    23152334        {
    2316             LogRel(("%s: failed to enumerate network devices: error %d\n",
    2317                     __FUNCTION__, err));
     2335            LogRel(("%s: failed to enumerate network devices: error %d\n", __FUNCTION__, err));
     2336            IPRT_LINUX_RESTORE_EFL_AC();
    23182337            return VINF_SUCCESS;
    23192338        }
     
    23242343        err = register_inetaddr_notifier(&pThis->u.s.NotifierIPv4);
    23252344        if (err)
    2326             LogRel(("%s: failed to register IPv4 notifier: error %d\n",
    2327                     __FUNCTION__, err));
     2345            LogRel(("%s: failed to register IPv4 notifier: error %d\n", __FUNCTION__, err));
    23282346
    23292347        pThis->u.s.NotifierIPv6.notifier_call = vboxNetFltLinuxNotifierIPv6Callback;
    23302348        err = register_inet6addr_notifier(&pThis->u.s.NotifierIPv6);
    23312349        if (err)
    2332             LogRel(("%s: failed to register IPv6 notifier: error %d\n",
    2333                     __FUNCTION__, err));
    2334     }
    2335 
     2350            LogRel(("%s: failed to register IPv6 notifier: error %d\n", __FUNCTION__, err));
     2351    }
     2352
     2353    IPRT_LINUX_RESTORE_EFL_AC();
    23362354    return VINF_SUCCESS;
    23372355}
     
    23392357int  vboxNetFltOsPreInitInstance(PVBOXNETFLTINS pThis)
    23402358{
     2359    IPRT_LINUX_SAVE_EFL_AC();
     2360
    23412361    /*
    23422362     * Init the linux specific members.
     
    23562376#endif
    23572377
     2378    IPRT_LINUX_RESTORE_EFL_AC();
    23582379    return VINF_SUCCESS;
    23592380}
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