From 956a206620fa048afdcd8ab714ac3cf6a9e884b7 Mon Sep 17 00:00:00 2001 From: stephen hemminger Date: Fri, 16 Sep 2011 11:10:01 +0000 Subject: [PATCH] vxge: make function table const All tables of function pointers should be const. The pre-existing code has lots of needless indirection... Inspired by similar change in PAX. Compile tested only. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller --- drivers/net/ethernet/neterion/vxge/vxge-config.c | 11 +++++------ drivers/net/ethernet/neterion/vxge/vxge-config.h | 4 ++-- drivers/net/ethernet/neterion/vxge/vxge-main.c | 10 +++++++--- drivers/net/ethernet/neterion/vxge/vxge-traffic.c | 12 ++++++------ 4 files changed, 20 insertions(+), 17 deletions(-) diff --git a/drivers/net/ethernet/neterion/vxge/vxge-config.c b/drivers/net/ethernet/neterion/vxge/vxge-config.c index 1520c574cb20..98e2c10ae08b 100644 --- a/drivers/net/ethernet/neterion/vxge/vxge-config.c +++ b/drivers/net/ethernet/neterion/vxge/vxge-config.c @@ -1342,9 +1342,7 @@ vxge_hw_device_initialize( hldev->bar0 = attr->bar0; hldev->pdev = attr->pdev; - hldev->uld_callbacks.link_up = attr->uld_callbacks.link_up; - hldev->uld_callbacks.link_down = attr->uld_callbacks.link_down; - hldev->uld_callbacks.crit_err = attr->uld_callbacks.crit_err; + hldev->uld_callbacks = attr->uld_callbacks; __vxge_hw_device_pci_e_init(hldev); @@ -2633,7 +2631,7 @@ __vxge_hw_mempool_create(struct __vxge_hw_device *devh, u32 items_priv_size, u32 items_initial, u32 items_max, - struct vxge_hw_mempool_cbs *mp_callback, + const struct vxge_hw_mempool_cbs *mp_callback, void *userdata) { enum vxge_hw_status status = VXGE_HW_OK; @@ -2817,7 +2815,9 @@ __vxge_hw_ring_create(struct __vxge_hw_vpath_handle *vp, struct vxge_hw_ring_config *config; struct __vxge_hw_device *hldev; u32 vp_id; - struct vxge_hw_mempool_cbs ring_mp_callback; + static const struct vxge_hw_mempool_cbs ring_mp_callback = { + .item_func_alloc = __vxge_hw_ring_mempool_item_alloc, + }; if ((vp == NULL) || (attr == NULL)) { status = VXGE_HW_FAIL; @@ -2872,7 +2872,6 @@ __vxge_hw_ring_create(struct __vxge_hw_vpath_handle *vp, /* calculate actual RxD block private size */ ring->rxdblock_priv_size = ring->rxd_priv_size * ring->rxds_per_block; - ring_mp_callback.item_func_alloc = __vxge_hw_ring_mempool_item_alloc; ring->mempool = __vxge_hw_mempool_create(hldev, VXGE_HW_BLOCK_SIZE, VXGE_HW_BLOCK_SIZE, diff --git a/drivers/net/ethernet/neterion/vxge/vxge-config.h b/drivers/net/ethernet/neterion/vxge/vxge-config.h index dd362584f5ca..5046a64f0fe8 100644 --- a/drivers/net/ethernet/neterion/vxge/vxge-config.h +++ b/drivers/net/ethernet/neterion/vxge/vxge-config.h @@ -740,7 +740,7 @@ struct __vxge_hw_device { struct vxge_hw_device_config config; enum vxge_hw_device_link_state link_state; - struct vxge_hw_uld_cbs uld_callbacks; + const struct vxge_hw_uld_cbs *uld_callbacks; u32 host_type; u32 func_id; @@ -840,7 +840,7 @@ struct vxge_hw_device_hw_info { struct vxge_hw_device_attr { void __iomem *bar0; struct pci_dev *pdev; - struct vxge_hw_uld_cbs uld_callbacks; + const struct vxge_hw_uld_cbs *uld_callbacks; }; #define VXGE_HW_DEVICE_LINK_STATE_SET(hldev, ls) (hldev->link_state = ls) diff --git a/drivers/net/ethernet/neterion/vxge/vxge-main.c b/drivers/net/ethernet/neterion/vxge/vxge-main.c index 1a53a24fe3d4..ef1ba204bc59 100644 --- a/drivers/net/ethernet/neterion/vxge/vxge-main.c +++ b/drivers/net/ethernet/neterion/vxge/vxge-main.c @@ -4284,6 +4284,12 @@ static int __devinit is_sriov_initialized(struct pci_dev *pdev) return 0; } +static const struct vxge_hw_uld_cbs vxge_callbacks = { + .link_up = vxge_callback_link_up, + .link_down = vxge_callback_link_down, + .crit_err = vxge_callback_crit_err, +}; + /** * vxge_probe * @pdev : structure containing the PCI related information of the device. @@ -4494,9 +4500,7 @@ vxge_probe(struct pci_dev *pdev, const struct pci_device_id *pre) } /* Setting driver callbacks */ - attr.uld_callbacks.link_up = vxge_callback_link_up; - attr.uld_callbacks.link_down = vxge_callback_link_down; - attr.uld_callbacks.crit_err = vxge_callback_crit_err; + attr.uld_callbacks = &vxge_callbacks; status = vxge_hw_device_initialize(&hldev, &attr, device_config); if (status != VXGE_HW_OK) { diff --git a/drivers/net/ethernet/neterion/vxge/vxge-traffic.c b/drivers/net/ethernet/neterion/vxge/vxge-traffic.c index ad64ce0afe3f..5954fa264da1 100644 --- a/drivers/net/ethernet/neterion/vxge/vxge-traffic.c +++ b/drivers/net/ethernet/neterion/vxge/vxge-traffic.c @@ -532,8 +532,8 @@ __vxge_hw_device_handle_error(struct __vxge_hw_device *hldev, u32 vp_id, } /* notify driver */ - if (hldev->uld_callbacks.crit_err) - hldev->uld_callbacks.crit_err( + if (hldev->uld_callbacks->crit_err) + hldev->uld_callbacks->crit_err( (struct __vxge_hw_device *)hldev, type, vp_id); out: @@ -560,8 +560,8 @@ __vxge_hw_device_handle_link_down_ind(struct __vxge_hw_device *hldev) hldev->link_state = VXGE_HW_LINK_DOWN; /* notify driver */ - if (hldev->uld_callbacks.link_down) - hldev->uld_callbacks.link_down(hldev); + if (hldev->uld_callbacks->link_down) + hldev->uld_callbacks->link_down(hldev); exit: return VXGE_HW_OK; } @@ -585,8 +585,8 @@ __vxge_hw_device_handle_link_up_ind(struct __vxge_hw_device *hldev) hldev->link_state = VXGE_HW_LINK_UP; /* notify driver */ - if (hldev->uld_callbacks.link_up) - hldev->uld_callbacks.link_up(hldev); + if (hldev->uld_callbacks->link_up) + hldev->uld_callbacks->link_up(hldev); exit: return VXGE_HW_OK; }