svn commit: r306451 - head/sys/compat/linuxkpi/common/include/linux
Hans Petter Selasky
hselasky at FreeBSD.org
Thu Sep 29 14:35:33 UTC 2016
Author: hselasky
Date: Thu Sep 29 14:35:32 2016
New Revision: 306451
URL: https://svnweb.freebsd.org/changeset/base/306451
Log:
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
Modified:
head/sys/compat/linuxkpi/common/include/linux/pci.h
Modified: head/sys/compat/linuxkpi/common/include/linux/pci.h
==============================================================================
--- head/sys/compat/linuxkpi/common/include/linux/pci.h Thu Sep 29 14:14:39 2016 (r306450)
+++ head/sys/compat/linuxkpi/common/include/linux/pci.h Thu Sep 29 14:35:32 2016 (r306451)
@@ -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, i
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 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,
More information about the svn-src-all
mailing list