Message ID | 20210225143727.3912204-1-arnd@kernel.org (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Bjorn Helgaas |
Headers | show |
Series | [1/2] PCI: controller: thunder: fix compile testing | expand |
On 2/25/21 6:37 AM, Arnd Bergmann wrote: > From: Arnd Bergmann <arnd@arndb.de> > > Compile-testing these drivers is currently broken. Enabling > it causes a couple of build failures though: > > drivers/pci/controller/pci-thunder-ecam.c:119:30: error: shift count >= width of type [-Werror,-Wshift-count-overflow] > drivers/pci/controller/pci-thunder-pem.c:54:2: error: implicit declaration of function 'writeq' [-Werror,-Wimplicit-function-declaration] > drivers/pci/controller/pci-thunder-pem.c:392:8: error: implicit declaration of function 'acpi_get_rc_resources' [-Werror,-Wimplicit-function-declaration] > > Fix them with the obvious one-line changes. Looks good to me. > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > drivers/pci/controller/pci-thunder-ecam.c | 2 +- > drivers/pci/controller/pci-thunder-pem.c | 13 +++++++------ > drivers/pci/pci.h | 6 ++++++ > 3 files changed, 14 insertions(+), 7 deletions(-) > > diff --git a/drivers/pci/controller/pci-thunder-ecam.c b/drivers/pci/controller/pci-thunder-ecam.c > index f964fd26f7e0..ffd84656544f 100644 > --- a/drivers/pci/controller/pci-thunder-ecam.c > +++ b/drivers/pci/controller/pci-thunder-ecam.c > @@ -116,7 +116,7 @@ static int thunder_ecam_p2_config_read(struct pci_bus *bus, unsigned int devfn, > * the config space access window. Since we are working with > * the high-order 32 bits, shift everything down by 32 bits. > */ > - node_bits = (cfg->res.start >> 32) & (1 << 12); > + node_bits = upper_32_bits(cfg->res.start) & (1 << 12); > > v |= node_bits; > set_val(v, where, size, val); > diff --git a/drivers/pci/controller/pci-thunder-pem.c b/drivers/pci/controller/pci-thunder-pem.c > index 1a3f70ac61fc..0660b9da204f 100644 > --- a/drivers/pci/controller/pci-thunder-pem.c > +++ b/drivers/pci/controller/pci-thunder-pem.c > @@ -12,6 +12,7 @@ > #include <linux/pci-acpi.h> > #include <linux/pci-ecam.h> > #include <linux/platform_device.h> > +#include <linux/io-64-nonatomic-lo-hi.h> > #include "../pci.h" > > #if defined(CONFIG_PCI_HOST_THUNDER_PEM) || (defined(CONFIG_ACPI) && defined(CONFIG_PCI_QUIRKS)) > @@ -324,9 +325,9 @@ static int thunder_pem_init(struct device *dev, struct pci_config_window *cfg, > * structure here for the BAR. > */ > bar4_start = res_pem->start + 0xf00000; > - pem_pci->ea_entry[0] = (u32)bar4_start | 2; > - pem_pci->ea_entry[1] = (u32)(res_pem->end - bar4_start) & ~3u; > - pem_pci->ea_entry[2] = (u32)(bar4_start >> 32); > + pem_pci->ea_entry[0] = lower_32_bits(bar4_start) | 2; > + pem_pci->ea_entry[1] = lower_32_bits(res_pem->end - bar4_start) & ~3u; > + pem_pci->ea_entry[2] = upper_32_bits(bar4_start); > > cfg->priv = pem_pci; > return 0; > @@ -334,9 +335,9 @@ static int thunder_pem_init(struct device *dev, struct pci_config_window *cfg, > > #if defined(CONFIG_ACPI) && defined(CONFIG_PCI_QUIRKS) > > -#define PEM_RES_BASE 0x87e0c0000000UL > -#define PEM_NODE_MASK GENMASK(45, 44) > -#define PEM_INDX_MASK GENMASK(26, 24) > +#define PEM_RES_BASE 0x87e0c0000000ULL > +#define PEM_NODE_MASK GENMASK_ULL(45, 44) > +#define PEM_INDX_MASK GENMASK_ULL(26, 24) > #define PEM_MIN_DOM_IN_NODE 4 > #define PEM_MAX_DOM_IN_NODE 10 > > diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h > index 0a2b6d993fe1..022c2f433676 100644 > --- a/drivers/pci/pci.h > +++ b/drivers/pci/pci.h > @@ -625,6 +625,12 @@ static inline int pci_dev_specific_reset(struct pci_dev *dev, int probe) > #if defined(CONFIG_PCI_QUIRKS) && defined(CONFIG_ARM64) > int acpi_get_rc_resources(struct device *dev, const char *hid, u16 segment, > struct resource *res); > +#else > +static inline int acpi_get_rc_resources(struct device *dev, const char *hid, > + u16 segment, struct resource *res) > +{ > + return -ENODEV; > +} > #endif > > int pci_rebar_get_current_size(struct pci_dev *pdev, int bar); >
On Thu, Feb 25, 2021 at 09:44:12AM -0800, Kuppuswamy, Sathyanarayanan wrote: > On 2/25/21 6:37 AM, Arnd Bergmann wrote: > > From: Arnd Bergmann <arnd@arndb.de> > > > > Compile-testing these drivers is currently broken. Enabling > > it causes a couple of build failures though: > > > > drivers/pci/controller/pci-thunder-ecam.c:119:30: error: shift count >= width of type [-Werror,-Wshift-count-overflow] > > drivers/pci/controller/pci-thunder-pem.c:54:2: error: implicit declaration of function 'writeq' [-Werror,-Wimplicit-function-declaration] > > drivers/pci/controller/pci-thunder-pem.c:392:8: error: implicit declaration of function 'acpi_get_rc_resources' [-Werror,-Wimplicit-function-declaration] > > > > Fix them with the obvious one-line changes. > Looks good to me. Thanks for looking this over! I'd like to acknowledge your review, but I need an explicit Reviewed-by or similar. I don't want to put words in your mouth by converting "Looks good to me" to "Reviewed-by".
On 2/25/21 10:51 AM, Bjorn Helgaas wrote: > Thanks for looking this over! I'd like to acknowledge your review, > but I need an explicit Reviewed-by or similar. I don't want to put > words in your mouth by converting "Looks good to me" to "Reviewed-by". will do so in future reviews. Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
On 25.02.21 15:37:09, Arnd Bergmann wrote: > From: Arnd Bergmann <arnd@arndb.de> > > Compile-testing these drivers is currently broken. Enabling > it causes a couple of build failures though: > > drivers/pci/controller/pci-thunder-ecam.c:119:30: error: shift count >= width of type [-Werror,-Wshift-count-overflow] > drivers/pci/controller/pci-thunder-pem.c:54:2: error: implicit declaration of function 'writeq' [-Werror,-Wimplicit-function-declaration] > drivers/pci/controller/pci-thunder-pem.c:392:8: error: implicit declaration of function 'acpi_get_rc_resources' [-Werror,-Wimplicit-function-declaration] > > Fix them with the obvious one-line changes. > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Robert Richter <rric@kernel.org> > --- > drivers/pci/controller/pci-thunder-ecam.c | 2 +- > drivers/pci/controller/pci-thunder-pem.c | 13 +++++++------ > drivers/pci/pci.h | 6 ++++++ > 3 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/drivers/pci/controller/pci-thunder-ecam.c b/drivers/pci/controller/pci-thunder-ecam.c index f964fd26f7e0..ffd84656544f 100644 --- a/drivers/pci/controller/pci-thunder-ecam.c +++ b/drivers/pci/controller/pci-thunder-ecam.c @@ -116,7 +116,7 @@ static int thunder_ecam_p2_config_read(struct pci_bus *bus, unsigned int devfn, * the config space access window. Since we are working with * the high-order 32 bits, shift everything down by 32 bits. */ - node_bits = (cfg->res.start >> 32) & (1 << 12); + node_bits = upper_32_bits(cfg->res.start) & (1 << 12); v |= node_bits; set_val(v, where, size, val); diff --git a/drivers/pci/controller/pci-thunder-pem.c b/drivers/pci/controller/pci-thunder-pem.c index 1a3f70ac61fc..0660b9da204f 100644 --- a/drivers/pci/controller/pci-thunder-pem.c +++ b/drivers/pci/controller/pci-thunder-pem.c @@ -12,6 +12,7 @@ #include <linux/pci-acpi.h> #include <linux/pci-ecam.h> #include <linux/platform_device.h> +#include <linux/io-64-nonatomic-lo-hi.h> #include "../pci.h" #if defined(CONFIG_PCI_HOST_THUNDER_PEM) || (defined(CONFIG_ACPI) && defined(CONFIG_PCI_QUIRKS)) @@ -324,9 +325,9 @@ static int thunder_pem_init(struct device *dev, struct pci_config_window *cfg, * structure here for the BAR. */ bar4_start = res_pem->start + 0xf00000; - pem_pci->ea_entry[0] = (u32)bar4_start | 2; - pem_pci->ea_entry[1] = (u32)(res_pem->end - bar4_start) & ~3u; - pem_pci->ea_entry[2] = (u32)(bar4_start >> 32); + pem_pci->ea_entry[0] = lower_32_bits(bar4_start) | 2; + pem_pci->ea_entry[1] = lower_32_bits(res_pem->end - bar4_start) & ~3u; + pem_pci->ea_entry[2] = upper_32_bits(bar4_start); cfg->priv = pem_pci; return 0; @@ -334,9 +335,9 @@ static int thunder_pem_init(struct device *dev, struct pci_config_window *cfg, #if defined(CONFIG_ACPI) && defined(CONFIG_PCI_QUIRKS) -#define PEM_RES_BASE 0x87e0c0000000UL -#define PEM_NODE_MASK GENMASK(45, 44) -#define PEM_INDX_MASK GENMASK(26, 24) +#define PEM_RES_BASE 0x87e0c0000000ULL +#define PEM_NODE_MASK GENMASK_ULL(45, 44) +#define PEM_INDX_MASK GENMASK_ULL(26, 24) #define PEM_MIN_DOM_IN_NODE 4 #define PEM_MAX_DOM_IN_NODE 10 diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h index 0a2b6d993fe1..022c2f433676 100644 --- a/drivers/pci/pci.h +++ b/drivers/pci/pci.h @@ -625,6 +625,12 @@ static inline int pci_dev_specific_reset(struct pci_dev *dev, int probe) #if defined(CONFIG_PCI_QUIRKS) && defined(CONFIG_ARM64) int acpi_get_rc_resources(struct device *dev, const char *hid, u16 segment, struct resource *res); +#else +static inline int acpi_get_rc_resources(struct device *dev, const char *hid, + u16 segment, struct resource *res) +{ + return -ENODEV; +} #endif int pci_rebar_get_current_size(struct pci_dev *pdev, int bar);