diff options
author | Matthew Weigel <Matthew.Weigel@freescale.com> | 2014-11-14 13:35:54 (GMT) |
---|---|---|
committer | Matthew Weigel <Matthew.Weigel@freescale.com> | 2014-12-11 18:40:41 (GMT) |
commit | 731a7f815cc8d300d51b96eeacc058295dc61402 (patch) | |
tree | a8d02c4fc62ae5c01039215d1ef60db2c8090e2f /drivers/net/ethernet/freescale/fman/src | |
parent | 6337363a3c85f8da8a524a56c32829dbd7ae3433 (diff) | |
download | linux-fsl-qoriq-731a7f815cc8d300d51b96eeacc058295dc61402.tar.xz |
Revert "fmd: fix static analysis issues"
This reverts commit 5e921ed07acbc6f05536aac89b9edc2578663840.
Change-Id: Ic4d1166b5ad6419f369e3be278f41ea5764ff6fc
Reviewed-on: http://git.am.freescale.net:8181/23784
Reviewed-by: Matthew Weigel <Matthew.Weigel@freescale.com>
Tested-by: Matthew Weigel <Matthew.Weigel@freescale.com>
Diffstat (limited to 'drivers/net/ethernet/freescale/fman/src')
7 files changed, 37 insertions, 22 deletions
diff --git a/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_fm.c b/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_fm.c index d7f94ab..58283fd 100755 --- a/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_fm.c +++ b/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_fm.c @@ -237,9 +237,7 @@ early_param(FSL_FM_RX_EXTRA_HEADROOM_BOOTARG, fm_set_rx_extra_headroom); static irqreturn_t fm_irq(int irq, void *_dev) { t_LnxWrpFmDev *p_LnxWrpFmDev = (t_LnxWrpFmDev *)_dev; -#ifdef CONFIG_PM_SLEEP t_Fm *p_Fm = (t_Fm*)p_LnxWrpFmDev->h_Dev; -#endif if (!p_LnxWrpFmDev || !p_LnxWrpFmDev->h_Dev) return IRQ_NONE; diff --git a/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm.c b/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm.c index 8fa4c89..473c3b0 100644 --- a/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm.c +++ b/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm.c @@ -1992,10 +1992,9 @@ invalid_port_id: compat_copy_fm_pcd_cc_tbl_get_miss(compat_param, ¶m, COMPAT_K_TO_US); if (copy_to_user((ioc_compat_fm_pcd_cc_tbl_get_miss_params_t*) compat_ptr(arg), compat_param, - sizeof(ioc_compat_fm_pcd_cc_tbl_get_miss_params_t))){ - XX_Free(compat_param); + sizeof(ioc_compat_fm_pcd_cc_tbl_get_miss_params_t))) RETURN_ERROR(MINOR, E_READ_FAILED, NO_MSG); - } + XX_Free(compat_param); } else @@ -2067,10 +2066,9 @@ invalid_port_id: compat_copy_fm_pcd_cc_tbl_get_miss(compat_param, ¶m, COMPAT_K_TO_US); if (copy_to_user((ioc_compat_fm_pcd_cc_tbl_get_miss_params_t*) compat_ptr(arg), compat_param, - sizeof(ioc_compat_fm_pcd_cc_tbl_get_miss_params_t))){ - XX_Free(compat_param); + sizeof(ioc_compat_fm_pcd_cc_tbl_get_miss_params_t))) RETURN_ERROR(MINOR, E_READ_FAILED, NO_MSG); - } + XX_Free(compat_param); } else @@ -2261,7 +2259,6 @@ invalid_port_id: else { XX_Free(compat_param); - XX_Free(param); err = E_INVALID_VALUE; break; } @@ -3245,21 +3242,18 @@ t_Error LnxwrpFmIOCTL(t_LnxWrpFmDev *p_LnxWrpFmDev, unsigned int cmd, unsigned l { if (copy_to_user((ioc_fm_revision_info_t *)compat_ptr(arg), param, - sizeof(ioc_fm_revision_info_t))){ - XX_Free(param); + sizeof(ioc_fm_revision_info_t))) RETURN_ERROR(MINOR, E_READ_FAILED, NO_MSG); - } } else #endif { if (copy_to_user((ioc_fm_revision_info_t *)arg, param, - sizeof(ioc_fm_revision_info_t))){ - XX_Free(param); + sizeof(ioc_fm_revision_info_t))) RETURN_ERROR(MINOR, E_READ_FAILED, NO_MSG); - } } + XX_Free(param); break; } diff --git a/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm_compat.c b/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm_compat.c index 5dc7294..3c1ac30 100644 --- a/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm_compat.c +++ b/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_ioctls_fm_compat.c @@ -367,7 +367,6 @@ static inline void compat_copy_fm_pcd_cc_next_engine( case e_IOC_FM_PCD_DONE: case e_IOC_FM_PCD_PLCR: param->manip_id = compat_pcd_id2ptr(compat_param->manip_id); - break; default: memcpy(¶m->params, &compat_param->params, sizeof(param->params)); } @@ -394,7 +393,6 @@ static inline void compat_copy_fm_pcd_cc_next_engine( case e_IOC_FM_PCD_DONE: case e_IOC_FM_PCD_PLCR: compat_param->manip_id = compat_pcd_ptr2id(param->manip_id); - break; default: memcpy(&compat_param->params, ¶m->params, sizeof(compat_param->params)); } @@ -940,8 +938,8 @@ void compat_copy_keys( #if (DPAA_VERSION >= 11) memcpy(&compat_param->frame_length_ranges, ¶m->frame_length_ranges, - sizeof(compat_param->frame_length_ranges[0]) * - IOC_FM_PCD_CC_STATS_MAX_NUM_OF_FLR); + sizeof(compat_param->frame_length_ranges[0] * + IOC_FM_PCD_CC_STATS_MAX_NUM_OF_FLR)); #endif /* (DPAA_VERSION >= 11) */ } diff --git a/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_sysfs_fm.c b/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_sysfs_fm.c index dd3bc3e..0ea6d1c 100644 --- a/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_sysfs_fm.c +++ b/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_sysfs_fm.c @@ -1736,7 +1736,7 @@ int fm_plcr_dump_regs(void *h_fm_pcd, char *buf, int nn) &p_pcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_pmr, "fmpl_pmr"); - for (i = 0; i < 63; ++i) + for (i = 0; i < 64; ++i) FM_DMP_MEM_32(buf, n, &p_pcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_pmr[i]); diff --git a/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_sysfs_fm_port.c b/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_sysfs_fm_port.c index ae4bb87..ebed557 100644 --- a/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_sysfs_fm_port.c +++ b/drivers/net/ethernet/freescale/fman/src/wrapper/lnxwrp_sysfs_fm_port.c @@ -1201,6 +1201,8 @@ int fm_port_dump_regs_bmi(void *h_dev, char *buf, int nn) FM_DMP_SUBTITLE(buf, n, "\n"); FM_DMP_V32(buf, n, &p_bmi->txPortBmiRegs, fmbm_tgpr); break; + default: + return -EINVAL; } FM_DMP_SUBTITLE(buf, n, "\n"); diff --git a/drivers/net/ethernet/freescale/fman/src/xx/Makefile b/drivers/net/ethernet/freescale/fman/src/xx/Makefile index 3e857d8..1e0db57 100644 --- a/drivers/net/ethernet/freescale/fman/src/xx/Makefile +++ b/drivers/net/ethernet/freescale/fman/src/xx/Makefile @@ -8,5 +8,5 @@ include $(srctree)/drivers/net/ethernet/freescale/fman/ncsw_config.mk obj-y += fsl-ncsw-xx.o -fsl-ncsw-xx-objs := xx_linux.o stdlib.o \ +fsl-ncsw-xx-objs := xx_linux.o udivdi3.o stdlib.o \ module_strings.o diff --git a/drivers/net/ethernet/freescale/fman/src/xx/xx_linux.c b/drivers/net/ethernet/freescale/fman/src/xx/xx_linux.c index d5c639a..546c68b 100644 --- a/drivers/net/ethernet/freescale/fman/src/xx/xx_linux.c +++ b/drivers/net/ethernet/freescale/fman/src/xx/xx_linux.c @@ -400,10 +400,33 @@ typedef struct { t_Handle interruptHandlers[0x00010000]; +static irqreturn_t LinuxInterruptHandler (int irq, void *dev_id) +{ + t_InterruptHandler *p_IntrHndl = (t_InterruptHandler *)dev_id; + p_IntrHndl->f_Isr(p_IntrHndl->handle); + return IRQ_HANDLED; +} t_Error XX_SetIntr(int irq, t_Isr *f_Isr, t_Handle handle) { -/* not used */ + const char *device; + t_InterruptHandler *p_IntrHndl; + + device = GetDeviceName(irq); + if (device == NULL) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Interrupt source - %d", irq)); + + p_IntrHndl = (t_InterruptHandler *)XX_Malloc(sizeof(t_InterruptHandler)); + if (p_IntrHndl == NULL) + RETURN_ERROR(MAJOR, E_NO_MEMORY, NO_MSG); + p_IntrHndl->f_Isr = f_Isr; + p_IntrHndl->handle = handle; + interruptHandlers[irq] = p_IntrHndl; + + if (request_irq(GetDeviceIrqNum(irq), LinuxInterruptHandler, 0, device, p_IntrHndl) < 0) + RETURN_ERROR(MAJOR, E_BUSY, ("Can't get IRQ %s\n", device)); + disable_irq(GetDeviceIrqNum(irq)); + return E_OK; } |