The IORESOURCE_XXX defines should resemble a bitmask while SYS_RES_XXX
are not bitmasks. Fix return value of pci_resource_flags() to reflect this change. MFC after: 1 week Sponsored by: Mellanox Technologies
This commit is contained in:
parent
ba9a5309c2
commit
bdff61f849
@ -2,7 +2,7 @@
|
||||
* Copyright (c) 2010 Isilon Systems, Inc.
|
||||
* Copyright (c) 2010 iX Systems, Inc.
|
||||
* Copyright (c) 2010 Panasas, Inc.
|
||||
* Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
|
||||
* Copyright (c) 2013-2016 Mellanox Technologies, Ltd.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -121,9 +121,9 @@ struct pci_device_id {
|
||||
#define PCI_EXP_LNKCAP2_SLS_5_0GB 0x04 /* Supported Link Speed 5.0GT/s */
|
||||
#define PCI_EXP_LNKCAP2_SLS_8_0GB 0x08 /* Supported Link Speed 8.0GT/s */
|
||||
|
||||
#define IORESOURCE_MEM SYS_RES_MEMORY
|
||||
#define IORESOURCE_IO SYS_RES_IOPORT
|
||||
#define IORESOURCE_IRQ SYS_RES_IRQ
|
||||
#define IORESOURCE_MEM (1 << SYS_RES_MEMORY)
|
||||
#define IORESOURCE_IO (1 << SYS_RES_IOPORT)
|
||||
#define IORESOURCE_IRQ (1 << SYS_RES_IRQ)
|
||||
|
||||
enum pci_bus_speed {
|
||||
PCI_SPEED_UNKNOWN = -1,
|
||||
@ -230,17 +230,28 @@ pci_resource_len(struct pci_dev *pdev, int bar)
|
||||
return rle->count;
|
||||
}
|
||||
|
||||
static inline int
|
||||
pci_resource_type(struct pci_dev *pdev, int bar)
|
||||
{
|
||||
struct resource_list_entry *rle;
|
||||
|
||||
if ((rle = _pci_get_bar(pdev, bar)) == NULL)
|
||||
return (-1);
|
||||
return (rle->type);
|
||||
}
|
||||
|
||||
/*
|
||||
* All drivers just seem to want to inspect the type not flags.
|
||||
*/
|
||||
static inline int
|
||||
pci_resource_flags(struct pci_dev *pdev, int bar)
|
||||
{
|
||||
struct resource_list_entry *rle;
|
||||
int type;
|
||||
|
||||
if ((rle = _pci_get_bar(pdev, bar)) == NULL)
|
||||
type = pci_resource_type(pdev, bar);
|
||||
if (type < 0)
|
||||
return (0);
|
||||
return rle->type;
|
||||
return (1 << type);
|
||||
}
|
||||
|
||||
static inline const char *
|
||||
@ -300,8 +311,8 @@ pci_request_region(struct pci_dev *pdev, int bar, const char *res_name)
|
||||
int rid;
|
||||
int type;
|
||||
|
||||
type = pci_resource_flags(pdev, bar);
|
||||
if (type == 0)
|
||||
type = pci_resource_type(pdev, bar);
|
||||
if (type < 0)
|
||||
return (-ENODEV);
|
||||
rid = PCIR_BAR(bar);
|
||||
if (bus_alloc_resource_any(pdev->dev.bsddev, type, &rid,
|
||||
|
Loading…
x
Reference in New Issue
Block a user