VirtualBox

Ignore:
Timestamp:
Aug 23, 2007 7:13:58 AM (18 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
23822
Message:

Linux guest kernel module adaption to 2.6.22

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/linux/module/vboxmod.c

    r4071 r4299  
    640640}
    641641
     642#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 20)
     643#define PCI_DEV_GET(v,d,p) pci_get_device(v,d,p)
     644#define PCI_DEV_PUT(x) pci_dev_put(x)
     645#else
     646#define PCI_DEV_GET(v,d,p) pci_find_device(v,d,p)
     647#define PCI_DEV_PUT(x)
     648#endif
     649
    642650/**
    643651 * Module initialization
     
    651659    VMMDevReportGuestInfo *infoReq = NULL;
    652660
    653     printk(KERN_INFO "vboxadd: initializing. Version %s\n", VERSION);
     661    printk(KERN_INFO "vboxadd: initializing version %s\n", VERSION);
    654662
    655663    if (vboxadd_cmc_init ())
     
    662670     * Detect PCI device
    663671     */
    664     pcidev = pci_find_device(VMMDEV_VENDORID, VMMDEV_DEVICEID, pcidev);
     672    pcidev = PCI_DEV_GET(VMMDEV_VENDORID, VMMDEV_DEVICEID, pcidev);
    665673    if (!pcidev)
    666674    {
     
    673681    {
    674682        printk (KERN_ERR "vboxadd: could not enable device: %d\n", err);
     683        PCI_DEV_PUT(pcidev);
    675684        return -ENODEV;
    676685    }
     
    682691        printk(KERN_ERR "vboxadd: register_chrdev failed: vbox_major: %d, err = %d\n",
    683692               vbox_major, err);
     693        PCI_DEV_PUT(pcidev);
    684694        return -ENODEV;
    685695    }
     
    704714    /* get the memory region */
    705715    vboxDev->vmmdevmem = pci_resource_start(pcidev, 1);
    706     /* and size */
    707716    vboxDev->vmmdevmem_size = pci_resource_len(pcidev, 1);
    708717
     
    722731
    723732    /* map adapter memory into kernel address space and check version */
    724     vboxDev->pVMMDevMemory = (VMMDevMemory *) ioremap(
    725         vboxDev->vmmdevmem,
    726         vboxDev->vmmdevmem_size
    727         );
     733    vboxDev->pVMMDevMemory = (VMMDevMemory *) ioremap(vboxDev->vmmdevmem,
     734                                                      vboxDev->vmmdevmem_size);
    728735    if (!vboxDev->pVMMDevMemory)
    729736    {
     
    749756
    750757    /* report guest information to host, this must be done as the very first request */
    751     rcVBox = VbglGRAlloc(
    752         (VMMDevRequestHeader**)&infoReq,
    753         sizeof(VMMDevReportGuestInfo),
    754         VMMDevReq_ReportGuestInfo
    755         );
     758    rcVBox = VbglGRAlloc((VMMDevRequestHeader**)&infoReq,
     759                         sizeof(VMMDevReportGuestInfo), VMMDevReq_ReportGuestInfo);
    756760    if (VBOX_FAILURE(rcVBox))
    757761    {
     
    785789
    786790    /* allocate a VMM request structure for use in the ISR */
    787     rcVBox = VbglGRAlloc(
    788         (VMMDevRequestHeader**)&vboxDev->irqAckRequest,
    789         sizeof(VMMDevEvents),
    790         VMMDevReq_AcknowledgeEvents
    791         );
     791    rcVBox = VbglGRAlloc((VMMDevRequestHeader**)&vboxDev->irqAckRequest,
     792                         sizeof(VMMDevEvents), VMMDevReq_AcknowledgeEvents);
    792793    if (VBOX_FAILURE(rcVBox))
    793794    {
     
    797798
    798799    /* get ISR */
    799     err = request_irq(pcidev->irq, vboxadd_irq_handler, SA_SHIRQ, "vboxadd", vboxDev);
     800    err = request_irq(pcidev->irq, vboxadd_irq_handler,
     801#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 20)
     802                      IRQF_SHARED,
     803#else
     804                      SA_SHIRQ,
     805#endif
     806                      "vboxadd", vboxDev);
    800807    if (err)
    801808    {
     
    809816    /* some useful information for the user */
    810817    printk(KERN_INFO
    811            "vboxadd: major code: %d, "
    812            "using irq %d, "
     818           "vboxadd: major code: %d, using irq %d, "
    813819           "io port 0x%x, memory at 0x%x (size %d bytes), "
    814820           "hypervisor window at 0x%p (size 0x%x bytes)\n",
     
    818824
    819825    /* successful return */
     826    PCI_DEV_PUT(pcidev);
    820827    return 0;
     828
    821829fail:
     830    PCI_DEV_PUT(pcidev);
    822831    free_resources();
    823832    unregister_chrdev(vbox_major, "vboxadd");
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