Skip to content

Commit

Permalink
s390/pci: inline get_zdev
Browse files Browse the repository at this point in the history
Inline get_zdev to save ~200 bytes of kernel text for CONFIG_PCI=y.
Also rename the function to to_zpci to make clear that we don't do
reference counting here.

Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
  • Loading branch information
Sebastian Ott authored and Martin Schwidefsky committed Jul 22, 2015
1 parent 2acb94f commit 198a527
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 21 deletions.
6 changes: 5 additions & 1 deletion arch/s390/include/asm/pci.h
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,11 @@ static inline void zpci_exit_slot(struct zpci_dev *zdev) {}
#endif /* CONFIG_HOTPLUG_PCI_S390 */

/* Helpers */
struct zpci_dev *get_zdev(struct pci_dev *);
static inline struct zpci_dev *to_zpci(struct pci_dev *pdev)
{
return pdev->sysdata;
}

struct zpci_dev *get_zdev_by_fid(u32);

/* DMA */
Expand Down
21 changes: 8 additions & 13 deletions arch/s390/pci/pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -76,11 +76,6 @@ EXPORT_SYMBOL_GPL(zpci_iomap_start);

static struct kmem_cache *zdev_fmb_cache;

struct zpci_dev *get_zdev(struct pci_dev *pdev)
{
return (struct zpci_dev *) pdev->sysdata;
}

struct zpci_dev *get_zdev_by_fid(u32 fid)
{
struct zpci_dev *tmp, *zdev = NULL;
Expand Down Expand Up @@ -269,7 +264,7 @@ void __iomem *pci_iomap_range(struct pci_dev *pdev,
unsigned long offset,
unsigned long max)
{
struct zpci_dev *zdev = get_zdev(pdev);
struct zpci_dev *zdev = to_zpci(pdev);
u64 addr;
int idx;

Expand Down Expand Up @@ -385,7 +380,7 @@ static void zpci_irq_handler(struct airq_struct *airq)

int arch_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type)
{
struct zpci_dev *zdev = get_zdev(pdev);
struct zpci_dev *zdev = to_zpci(pdev);
unsigned int hwirq, msi_vecs;
unsigned long aisb;
struct msi_desc *msi;
Expand Down Expand Up @@ -460,7 +455,7 @@ int arch_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type)

void arch_teardown_msi_irqs(struct pci_dev *pdev)
{
struct zpci_dev *zdev = get_zdev(pdev);
struct zpci_dev *zdev = to_zpci(pdev);
struct msi_desc *msi;
int rc;

Expand Down Expand Up @@ -648,7 +643,7 @@ static void zpci_cleanup_bus_resources(struct zpci_dev *zdev)

int pcibios_add_device(struct pci_dev *pdev)
{
struct zpci_dev *zdev = get_zdev(pdev);
struct zpci_dev *zdev = to_zpci(pdev);
struct resource *res;
int i;

Expand All @@ -673,7 +668,7 @@ void pcibios_release_device(struct pci_dev *pdev)

int pcibios_enable_device(struct pci_dev *pdev, int mask)
{
struct zpci_dev *zdev = get_zdev(pdev);
struct zpci_dev *zdev = to_zpci(pdev);

zdev->pdev = pdev;
zpci_debug_init_device(zdev);
Expand All @@ -684,7 +679,7 @@ int pcibios_enable_device(struct pci_dev *pdev, int mask)

void pcibios_disable_device(struct pci_dev *pdev)
{
struct zpci_dev *zdev = get_zdev(pdev);
struct zpci_dev *zdev = to_zpci(pdev);

zpci_fmb_disable_device(zdev);
zpci_debug_exit_device(zdev);
Expand All @@ -695,7 +690,7 @@ void pcibios_disable_device(struct pci_dev *pdev)
static int zpci_restore(struct device *dev)
{
struct pci_dev *pdev = to_pci_dev(dev);
struct zpci_dev *zdev = get_zdev(pdev);
struct zpci_dev *zdev = to_zpci(pdev);
int ret = 0;

if (zdev->state != ZPCI_FN_STATE_ONLINE)
Expand All @@ -717,7 +712,7 @@ static int zpci_restore(struct device *dev)
static int zpci_freeze(struct device *dev)
{
struct pci_dev *pdev = to_pci_dev(dev);
struct zpci_dev *zdev = get_zdev(pdev);
struct zpci_dev *zdev = to_zpci(pdev);

if (zdev->state != ZPCI_FN_STATE_ONLINE)
return 0;
Expand Down
8 changes: 4 additions & 4 deletions arch/s390/pci/pci_dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,7 @@ static dma_addr_t s390_dma_map_pages(struct device *dev, struct page *page,
enum dma_data_direction direction,
struct dma_attrs *attrs)
{
struct zpci_dev *zdev = get_zdev(to_pci_dev(dev));
struct zpci_dev *zdev = to_zpci(to_pci_dev(dev));
unsigned long nr_pages, iommu_page_index;
unsigned long pa = page_to_phys(page) + offset;
int flags = ZPCI_PTE_VALID;
Expand Down Expand Up @@ -316,7 +316,7 @@ static void s390_dma_unmap_pages(struct device *dev, dma_addr_t dma_addr,
size_t size, enum dma_data_direction direction,
struct dma_attrs *attrs)
{
struct zpci_dev *zdev = get_zdev(to_pci_dev(dev));
struct zpci_dev *zdev = to_zpci(to_pci_dev(dev));
unsigned long iommu_page_index;
int npages;

Expand All @@ -337,7 +337,7 @@ static void *s390_dma_alloc(struct device *dev, size_t size,
dma_addr_t *dma_handle, gfp_t flag,
struct dma_attrs *attrs)
{
struct zpci_dev *zdev = get_zdev(to_pci_dev(dev));
struct zpci_dev *zdev = to_zpci(to_pci_dev(dev));
struct page *page;
unsigned long pa;
dma_addr_t map;
Expand Down Expand Up @@ -367,7 +367,7 @@ static void s390_dma_free(struct device *dev, size_t size,
void *pa, dma_addr_t dma_handle,
struct dma_attrs *attrs)
{
struct zpci_dev *zdev = get_zdev(to_pci_dev(dev));
struct zpci_dev *zdev = to_zpci(to_pci_dev(dev));

size = PAGE_ALIGN(size);
atomic64_sub(size / PAGE_SIZE, &zdev->allocated_pages);
Expand Down
6 changes: 3 additions & 3 deletions arch/s390/pci/pci_sysfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
static ssize_t name##_show(struct device *dev, \
struct device_attribute *attr, char *buf) \
{ \
struct zpci_dev *zdev = get_zdev(to_pci_dev(dev)); \
struct zpci_dev *zdev = to_zpci(to_pci_dev(dev)); \
\
return sprintf(buf, fmt, zdev->member); \
} \
Expand All @@ -38,7 +38,7 @@ static ssize_t recover_store(struct device *dev, struct device_attribute *attr,
const char *buf, size_t count)
{
struct pci_dev *pdev = to_pci_dev(dev);
struct zpci_dev *zdev = get_zdev(pdev);
struct zpci_dev *zdev = to_zpci(pdev);
int ret;

if (!device_remove_file_self(dev, attr))
Expand All @@ -64,7 +64,7 @@ static ssize_t util_string_read(struct file *filp, struct kobject *kobj,
{
struct device *dev = kobj_to_dev(kobj);
struct pci_dev *pdev = to_pci_dev(dev);
struct zpci_dev *zdev = get_zdev(pdev);
struct zpci_dev *zdev = to_zpci(pdev);

return memory_read_from_buffer(buf, count, &off, zdev->util_str,
sizeof(zdev->util_str));
Expand Down

0 comments on commit 198a527

Please sign in to comment.