Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5b173cf9 authored by Raghu Vatsavayi's avatar Raghu Vatsavayi Committed by David S. Miller
Browse files

Fix Cavium Liquidio build related errors and warnings



1) Fixed following sparse warnings:
    lio_main.c:213:6: warning: symbol 'octeon_droq_bh' was not
    declared. Should it be static?
    lio_main.c:233:5: warning: symbol 'lio_wait_for_oq_pkts' was
    not declared. Should it be static?
    lio_main.c:3083:5: warning: symbol 'lio_nic_info' was not
    declared. Should it be static?
    lio_main.c:2618:16: warning: cast from restricted __be16
    octeon_device.c:466:6: warning: symbol 'oct_set_config_info'
    was not declared. Should it be static?
    octeon_device.c:573:25: warning: cast to restricted __be32
    octeon_device.c:582:29: warning: cast to restricted __be32
    octeon_device.c:584:39: warning: cast to restricted __be32
    octeon_device.c:594:13: warning: cast to restricted __be32
    octeon_device.c:596:25: warning: cast to restricted __be32
    octeon_device.c:613:25: warning: cast to restricted __be32
    octeon_device.c:614:29: warning: cast to restricted __be64
    octeon_device.c:615:29: warning: cast to restricted __be32
    octeon_device.c:619:37: warning: cast to restricted __be32
    octeon_device.c:623:33: warning: cast to restricted __be32
    cn66xx_device.c:540:6: warning: symbol
    'lio_cn6xxx_get_pcie_qlmport' was not declared. Should it be s
    octeon_mem_ops.c:181:16: warning: cast to restricted __be64
    octeon_mem_ops.c:190:16: warning: cast to restricted __be32
    octeon_mem_ops.c:196:17: warning: incorrect type in initializer
2) Fix build errors corresponding to vmalloc on linux-next 4.1.
3) Liquidio now supports 64 bit only, modified Kconfig accordingly.
4) Fix some code alignment issues based on kernel build warnings.

Signed-off-by: default avatarDerek Chickles <derek.chickles@caviumnetworks.com>
Signed-off-by: default avatarSatanand Burla <satananda.burla@caviumnetworks.com>
Signed-off-by: default avatarFelix Manlunas <felix.manlunas@caviumnetworks.com>
Signed-off-by: default avatarRaghu Vatsavayi <raghu.vatsavayi@caviumnetworks.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ea704770
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ config THUNDER_NIC_BGX

config LIQUIDIO
	tristate "Cavium LiquidIO support"
	depends on 64BIT
	select PTP_1588_CLOCK
	select FW_LOADER
	select LIBCRC32
+1 −1
Original line number Diff line number Diff line
@@ -537,7 +537,7 @@ void lio_cn6xxx_disable_interrupt(void *chip)
	mmiowb();
}

void lio_cn6xxx_get_pcie_qlmport(struct octeon_device *oct)
static void lio_cn6xxx_get_pcie_qlmport(struct octeon_device *oct)
{
	/* CN63xx Pass2 and newer parts implements the SLI_MAC_NUMBER register
	 * to determine the PCIE port #
+5 −4
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@
#include <linux/pci.h>
#include <linux/pci_ids.h>
#include <linux/ip.h>
#include <net/ip.h>
#include <linux/ipv6.h>
#include <linux/net_tstamp.h>
#include <linux/if_vlan.h>
@@ -210,7 +211,7 @@ static int liquidio_probe(struct pci_dev *pdev,
static struct handshake handshake[MAX_OCTEON_DEVICES];
static struct completion first_stage;

void octeon_droq_bh(unsigned long pdev)
static void octeon_droq_bh(unsigned long pdev)
{
	int q_no;
	int reschedule = 0;
@@ -230,7 +231,7 @@ void octeon_droq_bh(unsigned long pdev)
		tasklet_schedule(&oct_priv->droq_tasklet);
}

int lio_wait_for_oq_pkts(struct octeon_device *oct)
static int lio_wait_for_oq_pkts(struct octeon_device *oct)
{
	struct octeon_device_priv *oct_priv =
		(struct octeon_device_priv *)oct->priv;
@@ -2615,7 +2616,7 @@ static inline int is_ip_fragmented(struct sk_buff *skb)
	 * with more to follow; the current offset could be 0 ).
	 * -  ths offset field is non-zero.
	 */
	return htons(ip_hdr(skb)->frag_off) & 0x3fff;
	return (ip_hdr(skb)->frag_off & htons(IP_MF | IP_OFFSET)) ? 1 : 0;
}

static inline int is_ipv6(struct sk_buff *skb)
@@ -3080,7 +3081,7 @@ static int __init liquidio_init(void)
	return 0;
}

int lio_nic_info(struct octeon_recv_info *recv_info, void *buf)
static int lio_nic_info(struct octeon_recv_info *recv_info, void *buf)
{
	struct octeon_device *oct = (struct octeon_device *)buf;
	struct octeon_recv_pkt *recv_pkt = recv_info->recv_pkt;
+7 −7
Original line number Diff line number Diff line
@@ -35,9 +35,9 @@
#define LIO_MAX_IMAGES 16
#define LIO_NIC_MAGIC 0x434E4943     /* "CNIC" */
struct octeon_firmware_desc {
	u64 addr;
	u32 len;
	u32 crc32;         /* crc32 of image */
	__be64 addr;
	__be32 len;
	__be32 crc32;         /* crc32 of image */
};

/* Following the header is a list of 64-bit aligned binary images,
@@ -45,13 +45,13 @@ struct octeon_firmware_desc {
 * Numeric fields are in network byte order.
 */
struct octeon_firmware_file_header {
	u32 magic;
	__be32 magic;
	char version[LIO_MAX_FIRMWARE_VERSION_LEN];
	char bootcmd[LIO_MAX_BOOTCMD_LEN];
	u32 num_images;
	__be32 num_images;
	struct octeon_firmware_desc desc[LIO_MAX_IMAGES];
	u32 pad;
	u32 crc32;         /* header checksum */
	__be32 pad;
	__be32 crc32;         /* header checksum */
};

#endif /* _LIQUIDIO_IMAGE_H_ */
+5 −3
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@
#include <linux/crc32.h>
#include <linux/kthread.h>
#include <linux/netdevice.h>
#include <linux/vmalloc.h>
#include "octeon_config.h"
#include "liquidio_common.h"
#include "octeon_droq.h"
@@ -463,7 +464,7 @@ static u32 octeon_device_count;

static struct octeon_core_setup core_setup[MAX_OCTEON_DEVICES];

void oct_set_config_info(int oct_id, int conf_type)
static void oct_set_config_info(int oct_id, int conf_type)
{
	if (conf_type < 0 || conf_type > (NUM_OCTEON_CONFS - 1))
		conf_type = OCTEON_CONFIG_TYPE_DEFAULT;
@@ -570,7 +571,7 @@ int octeon_download_firmware(struct octeon_device *oct, const u8 *data,

	h = (struct octeon_firmware_file_header *)data;

	if (h->magic != be32_to_cpu(LIO_NIC_MAGIC)) {
	if (be32_to_cpu(h->magic) != LIO_NIC_MAGIC) {
		dev_err(&oct->pci_dev->dev, "Unrecognized firmware file.\n");
		return -EINVAL;
	}
@@ -1108,11 +1109,12 @@ int octeon_core_drv_init(struct octeon_recv_info *recv_info, void *buf)
		(u32)recv_pkt->rh.r_core_drv_init.app_mode),
		sizeof(app_name) - 1);
	oct->app_mode = (u32)recv_pkt->rh.r_core_drv_init.app_mode;
	if (recv_pkt->rh.r_core_drv_init.app_mode == CVM_DRV_NIC_APP)
	if (recv_pkt->rh.r_core_drv_init.app_mode == CVM_DRV_NIC_APP) {
		oct->fw_info.max_nic_ports =
			(u32)recv_pkt->rh.r_core_drv_init.max_nic_ports;
		oct->fw_info.num_gmx_ports =
			(u32)recv_pkt->rh.r_core_drv_init.num_gmx_ports;
	}

	if (oct->fw_info.max_nic_ports < num_nic_ports) {
		dev_err(&oct->pci_dev->dev,
Loading