VirtualBox

Changeset 86542 in vbox for trunk


Ignore:
Timestamp:
Oct 12, 2020 1:35:53 PM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
140857
Message:

Additions/linux, Runtime/r0drv/linux: Adjustments for Linux 5.9.

Location:
trunk/src/VBox
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/linux/drm/vbox_drv.c

    r86196 r86542  
    263263};
    264264
    265 static int vbox_master_set(struct drm_device *dev,
     265#if RTLNX_VER_MIN(5,9,0)
     266static void
     267#else
     268static int
     269#endif
     270            vbox_master_set(struct drm_device *dev,
    266271                           struct drm_file *file_priv, bool from_open)
    267272{
     
    282287        mutex_unlock(&vbox->hw_mutex);
    283288
     289#if RTLNX_VER_MAX(5,9,0)
    284290        return 0;
     291#endif
    285292}
    286293
  • trunk/src/VBox/Additions/linux/drm/vbox_fb.c

    r85707 r86542  
    406406                        vbox_bo_unreserve(bo);
    407407                }
     408#if RTLNX_VER_MIN(5,9,0)
     409                drm_gem_object_put(afb->obj);
     410#else
    408411                drm_gem_object_put_unlocked(afb->obj);
     412#endif
    409413                afb->obj = NULL;
    410414        }
  • trunk/src/VBox/Additions/linux/drm/vbox_main.c

    r86196 r86542  
    4747
    4848        if (vbox_fb->obj)
     49#if RTLNX_VER_MIN(5,9,0)
     50                drm_gem_object_put(vbox_fb->obj);
     51#else
    4952                drm_gem_object_put_unlocked(vbox_fb->obj);
     53#endif
    5054
    5155        drm_framebuffer_cleanup(fb);
     
    222226        kfree(vbox_fb);
    223227err_unref_obj:
     228#if RTLNX_VER_MIN(5,9,0)
     229        drm_gem_object_put(obj);
     230#else
    224231        drm_gem_object_put_unlocked(obj);
     232#endif
    225233        return ERR_PTR(ret);
    226234}
     
    589597
    590598        ret = drm_gem_handle_create(file, gobj, &handle);
     599#if RTLNX_VER_MIN(5,9,0)
     600        drm_gem_object_put(gobj);
     601#else
    591602        drm_gem_object_put_unlocked(gobj);
     603#endif
    592604        if (ret)
    593605                return ret;
  • trunk/src/VBox/Additions/linux/drm/vbox_mode.c

    r86196 r86542  
    885885        vbox_bo_unreserve(bo);
    886886out_unref_obj:
     887#if RTLNX_VER_MIN(5,9,0)
     888        drm_gem_object_put(obj);
     889#else
    887890        drm_gem_object_put_unlocked(obj);
     891#endif
    888892
    889893        return ret;
  • trunk/src/VBox/Additions/linux/drm/vbox_ttm.c

    r86196 r86542  
    446446static inline u64 vbox_bo_gpu_offset(struct vbox_bo *bo)
    447447{
     448#if RTLNX_VER_MIN(5,9,0)
     449        return bo->bo.mem.start << PAGE_SHIFT;
     450#else
    448451        return bo->bo.offset;
     452#endif
    449453}
    450454
  • trunk/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c

    r85703 r86542  
    11821182        else
    11831183            rc = get_user_pages_remote(
     1184# if GET_USER_PAGES_API < KERNEL_VERSION(5, 9, 0)
    11841185                                pTask,                  /* Task for fault accounting. */
     1186# endif
    11851187                                pTask->mm,              /* Whose pages. */
    11861188                                R3Ptr,                  /* Where from. */
  • trunk/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h

    r85702 r86542  
    138138#include <linux/completion.h>
    139139#include <linux/compiler.h>
    140 #ifndef HAVE_UNLOCKED_IOCTL /* linux/fs.h defines this */
     140/* linux/fs.h defines HAVE_UNLOCKED_IOCTL from 2.6.11 till 5.9, but its meaning remains valid */
     141#if RTLNX_VER_MIN(5,9,0)
     142# define HAVE_UNLOCKED_IOCTL 1
     143#endif
     144#if !defined(HAVE_UNLOCKED_IOCTL) && RTLNX_VER_MAX(2,6,38)
    141145# include <linux/smp_lock.h>
    142146#endif
  • trunk/src/VBox/Runtime/r0drv/linux/thread2-r0drv-linux.c

    r85698 r86542  
    5555DECLHIDDEN(int) rtThreadNativeSetPriority(PRTTHREADINT pThread, RTTHREADTYPE enmType)
    5656{
    57 #if RTLNX_VER_MIN(2,6,11)
    58     /* See comment near MAX_RT_PRIO in linux/sched.h for details on
    59        sched_priority. */
    60     int                 iSchedClass = SCHED_NORMAL;
    61     struct sched_param  Param       = { .sched_priority = MAX_PRIO - 1 };
     57    int                 iSchedClass = SCHED_FIFO;
     58    int                 rc = VINF_SUCCESS;
     59    struct sched_param  Param = { 0 };
     60
     61    RT_NOREF_PV(pThread);
     62#if RTLNX_VER_MIN(5,9,0)
     63    RT_NOREF_PV(iSchedClass);
     64    RT_NOREF_PV(Param);
     65#endif
    6266    switch (enmType)
    6367    {
    64         case RTTHREADTYPE_INFREQUENT_POLLER:
    65             Param.sched_priority = MAX_RT_PRIO + 5;
     68        case RTTHREADTYPE_IO:
     69#if RTLNX_VER_MAX(5,9,0)
     70            /* Set max. priority to preempt all other threads on this CPU. */
     71            Param.sched_priority = MAX_RT_PRIO - 1;
     72#else
     73            /* Effectively changes prio to 50 */
     74            sched_set_fifo(current);
     75#endif
    6676            break;
    67 
    68         case RTTHREADTYPE_EMULATION:
    69             Param.sched_priority = MAX_RT_PRIO + 4;
     77        case RTTHREADTYPE_TIMER:
     78#if RTLNX_VER_MAX(5,9,0)
     79            Param.sched_priority = 1; /* not 0 just in case */
     80#else
     81            /* Just one above SCHED_NORMAL class */
     82            sched_set_fifo_low(current);
     83#endif
    7084            break;
    71 
    72         case RTTHREADTYPE_DEFAULT:
    73             Param.sched_priority = MAX_RT_PRIO + 3;
    74             break;
    75 
    76         case RTTHREADTYPE_MSG_PUMP:
    77             Param.sched_priority = MAX_RT_PRIO + 2;
    78             break;
    79 
    80         case RTTHREADTYPE_IO:
    81             iSchedClass = SCHED_FIFO;
    82             Param.sched_priority = MAX_RT_PRIO - 1;
    83             break;
    84 
    85         case RTTHREADTYPE_TIMER:
    86             iSchedClass = SCHED_FIFO;
    87             Param.sched_priority = 1; /* not 0 just in case */
    88             break;
    89 
    9085        default:
    91             AssertMsgFailed(("enmType=%d\n", enmType));
    92             return VERR_INVALID_PARAMETER;
     86            /* pretend success instead of VERR_NOT_SUPPORTED */
     87            return rc;
    9388    }
    94 
    95     sched_setscheduler(current, iSchedClass, &Param);
    96 #else
    97     RT_NOREF_PV(enmType);
     89#if RTLNX_VER_MAX(5,9,0)
     90    if ((sched_setscheduler(current, iSchedClass, &Param)) != 0) {
     91        rc = VERR_GENERAL_FAILURE;
     92    }
    9893#endif
    99     RT_NOREF_PV(pThread);
    100 
    101     return VINF_SUCCESS;
     94    return rc;
    10295}
    10396
Note: See TracChangeset for help on using the changeset viewer.

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