From 5b42e07363d6c9fa73d881a20cb2a32e8496d935 Mon Sep 17 00:00:00 2001 From: Jonas Gorski Date: Mon, 27 Apr 2026 14:21:40 +0200 Subject: [PATCH 1/4] modules: drop very ancient kernel (< 3.0) support Drop support for very ancient kernels pre 3.0 and resolve all compatibility macros as needed. Signed-off-by: Jonas Gorski --- .../systems/bde/linux/include/linux-bde.h | 17 +- .../bde/linux/kernel/linux-kernel-bde.c | 167 +++---- .../systems/bde/linux/kernel/linux_dma.c | 45 +- .../bde/linux/user/kernel/linux-user-bde.c | 8 +- .../systems/bde/linux/user/linux-user-bde.c | 6 +- .../linux/kernel/modules/bcm-knet/bcm-knet.c | 425 ++++-------------- .../modules/bcm-ptp-clock/bcm-ptp-clock.c | 31 +- .../linux/kernel/modules/include/lkm.h | 37 -- .../linux/kernel/modules/shared/gmodule.c | 37 -- .../systems/bde/linux/include/linux-bde.h | 17 +- .../bde/linux/kernel/linux-kernel-bde.c | 160 +++---- .../systems/bde/linux/kernel/linux_dma.c | 45 +- .../bde/linux/user/kernel/linux-user-bde.c | 8 +- .../systems/bde/linux/user/linux-user-bde.c | 6 +- .../linux/kernel/modules/bcm-knet/bcm-knet.c | 425 ++++-------------- .../modules/bcm-ptp-clock/bcm-ptp-clock.c | 35 +- .../linux/kernel/modules/include/lkm.h | 13 - 17 files changed, 342 insertions(+), 1140 deletions(-) diff --git a/sdk-6.5.24/systems/bde/linux/include/linux-bde.h b/sdk-6.5.24/systems/bde/linux/include/linux-bde.h index 8672d6031..405eb7752 100755 --- a/sdk-6.5.24/systems/bde/linux/include/linux-bde.h +++ b/sdk-6.5.24/systems/bde/linux/include/linux-bde.h @@ -60,21 +60,6 @@ #ifdef __KERNEL__ #include -/* Key stone and Raptor has 2.6.21 but don't have definition */ -#if defined(KEYSTONE) || defined(RAPTOR) -#if (LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,21)) - #ifdef PHYS_ADDRS_ARE_64BITS - typedef u64 phys_addr_t; - #else - typedef u32 phys_addr_t; - #endif - #endif -#endif -#endif - - -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)) -#define LINUX_BDE_DMA_DEVICE_SUPPORT #endif #define LINUX_KERNEL_BDE_NAME "linux-kernel-bde" @@ -256,7 +241,7 @@ extern int lkbde_cpu_pci_register(int d); #ifdef BCM_SAND_SUPPORT #include -#if defined(__DUNE_LINUX_BCM_CPU_PCIE__) && LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) +#if defined(__DUNE_LINUX_BCM_CPU_PCIE__) #ifndef _SIMPLE_MEMORY_ALLOCATION_ #define _SIMPLE_MEMORY_ALLOCATION_ 1 #endif diff --git a/sdk-6.5.24/systems/bde/linux/kernel/linux-kernel-bde.c b/sdk-6.5.24/systems/bde/linux/kernel/linux-kernel-bde.c index f07ddbfe6..6b5ac7dbc 100644 --- a/sdk-6.5.24/systems/bde/linux/kernel/linux-kernel-bde.c +++ b/sdk-6.5.24/systems/bde/linux/kernel/linux-kernel-bde.c @@ -77,19 +77,19 @@ MODULE_LICENSE("GPL"); #define BDE_PCIE_MAXPAYLOAD_DEFAULT 256 #endif int maxpayload = BDE_PCIE_MAXPAYLOAD_DEFAULT; -LKM_MOD_PARAM(maxpayload, "i", int, 0); +module_param(maxpayload, int, 0); MODULE_PARM_DESC(maxpayload, "Limit maximum payload size and request size on PCIe devices"); /* Use MSI or MSIX interrupts */ int usemsi = -1; -LKM_MOD_PARAM(usemsi, "i", int, 0); +module_param(usemsi, int, 0); MODULE_PARM_DESC(usemsi, "Use MSI/ MSIX interrupts if supported by kernel"); /* Ignore all recognized devices (for debug purposes) */ int nodevices; -LKM_MOD_PARAM(nodevices, "i", int, 0); +module_param(nodevices, int, 0); MODULE_PARM_DESC(nodevices, "Ignore all recognized devices (default no)"); @@ -107,15 +107,6 @@ int msixcnt = 1; #define PCI_DEVICE_ID_PLX_9056 0x9056 #endif -/* For 2.4.x kernel support */ -#ifndef IRQF_SHARED -#define IRQF_SHARED SA_SHIRQ -#endif - -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) -typedef unsigned long resource_size_t; -#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) */ - #ifdef BCM_ICS #define BCM_ICS_CMIC_BASE 0x08000000 #else @@ -123,8 +114,8 @@ typedef unsigned long resource_size_t; /* Force interrupt line */ static int forceirq = -1; static uint32_t forceirqubm = 0xffffffff; -LKM_MOD_PARAM(forceirq, "i", int, 0); -LKM_MOD_PARAM(forceirqubm, "i", uint, 0); +module_param(forceirq, int, 0); +module_param(forceirqubm, uint, 0); MODULE_PARM_DESC(forceirq, "Override IRQ line assigned by boot loader"); MODULE_PARM_DESC(forceirqubm, @@ -132,13 +123,13 @@ MODULE_PARM_DESC(forceirqubm, /* Create SPI slave device (cannot be probed) */ static uint32_t spi_devid = 0; -LKM_MOD_PARAM(spi_devid, "i", uint, 0); +module_param(spi_devid, uint, 0); MODULE_PARM_DESC(spi_devid, "Create SPI slave device using this device ID"); /* Select SPI device revision (cannot be probed) */ static uint32_t spi_revid = 1; -LKM_MOD_PARAM(spi_revid, "i", uint, 0); +module_param(spi_revid, uint, 0); MODULE_PARM_DESC(spi_revid, "Select device revision for SPI slave device"); @@ -146,46 +137,27 @@ MODULE_PARM_DESC(spi_revid, /* Debug output */ static int debug; -LKM_MOD_PARAM(debug, "i", int, 0); +module_param(debug, int, 0); MODULE_PARM_DESC(debug, "Set debug level (default 0"); /* Use high memory for DMA */ /* module param for probing EB devices. */ static char *eb_bus; -LKM_MOD_PARAM(eb_bus, "s", charp, 0); +module_param(eb_bus, charp, 0); MODULE_PARM_DESC(eb_bus, "List of EB devices on platform. Input format (BA=%x IRQ=%d RD16=%d WR16=%d"); #ifdef KEYSTONE /* Force SPI Frequency */ static int spifreq = 0; -LKM_MOD_PARAM(spifreq, "i", int, 0); +module_param(spifreq, int, 0); MODULE_PARM_DESC(spifreq, "Force SPI Frequency for Keystone CPU (0 for default frequency)"); #endif /* Compatibility */ -#ifdef LKM_2_4 -#define _ISR_RET void -#define _ISR_PARAMS(_i,_d,_r) int _i, void *_d, struct pt_regs *_r -#define IRQ_NONE -#define IRQ_HANDLED -#define SYNC_IRQ(_i) synchronize_irq() -#else /* LKM_2_6 */ -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,30)) -#define _ISR_RET irqreturn_t -#else -#define _ISR_RET int -#endif -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,19)) -#define _ISR_PARAMS(_i,_d,_r) int _i, void *_d -#else -#define _ISR_PARAMS(_i,_d,_r) int _i, void *_d, struct pt_regs *_r -typedef irqreturn_t (*irq_handler_t)(int _i, void *_d, struct pt_regs *_r); -#endif -#define SYNC_IRQ(_i) synchronize_irq(_i) char * ___strtok; char * strtok(char * s,const char * ct) { @@ -205,9 +177,8 @@ char * strtok(char * s,const char * ct) ___strtok = send; return (sbegin); } -LKM_EXPORT_SYM(___strtok); -LKM_EXPORT_SYM(strtok); -#endif /* LKM_2_x */ +EXPORT_SYMBOL(___strtok); +EXPORT_SYMBOL(strtok); /* PCIe capabilities */ #ifndef PCI_CAP_ID_EXP @@ -235,12 +206,6 @@ LKM_EXPORT_SYM(strtok); #define PCI_EXT_CAP_ID_VNDR 0x0b #endif -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) -#define PCI_FIND_DEV(_d, _v, _fr) pci_find_device(_d, _v, _fr) -#else -#define PCI_FIND_DEV(_d, _v, _fr) pci_get_device(_d, _v, _fr) -#endif - #if defined(CONFIG_RESOURCES_64BIT) || defined(CONFIG_PHYS_ADDR_T_64BIT) #define PHYS_ADDR_IS_64BIT #endif @@ -301,9 +266,7 @@ typedef struct bde_ctrl_s { #define pci_device dev._pci_dev #define spi_device dev._spi_dev -#ifdef LINUX_BDE_DMA_DEVICE_SUPPORT struct device *dma_dev; -#endif struct memwin_s iowin[BDE_NUM_IOWIN_MAX]; @@ -810,9 +773,7 @@ iproc_cmicd_probe(struct platform_device *pldev) ctrl->isr = NULL; ctrl ->isr_data = NULL; -#ifdef LINUX_BDE_DMA_DEVICE_SUPPORT ctrl->dma_dev = &pldev->dev; -#endif /* Let's boogie */ _bde_add_device(); @@ -1873,9 +1834,9 @@ p2p_bridge(void) uint8 bridge_ctrl; uint8 rc_index; - if ((dev = PCI_FIND_DEV(DC21150_VENDOR_ID, DC21150_DEVICE_ID, NULL)) != NULL || - (dev = PCI_FIND_DEV(HINT_HB4_VENDOR_ID, HINT_HB4_DEVICE_ID, NULL)) != NULL || - (dev = PCI_FIND_DEV(PI7C8150_VENDOR_ID, PI7C8150_DEVICE_ID, NULL)) != NULL) { + if ((dev = pci_get_device(DC21150_VENDOR_ID, DC21150_DEVICE_ID, NULL)) != NULL || + (dev = pci_get_device(HINT_HB4_VENDOR_ID, HINT_HB4_DEVICE_ID, NULL)) != NULL || + (dev = pci_get_device(PI7C8150_VENDOR_ID, PI7C8150_DEVICE_ID, NULL)) != NULL) { if (debug >= 1) gprintk("fixing up PCI-to-PCI bridge\n"); /* Adjust command register */ @@ -1899,7 +1860,7 @@ p2p_bridge(void) /* Avoid DMA data corruption */ if (dev->vendor == HINT_HB4_VENDOR_ID) { /* Fix for HiNT bridge and BCM4704 DMA problem */ - if ((dev = PCI_FIND_DEV(BCM4704_VENDOR_ID, BCM4704_DEVICE_ID, NULL)) != NULL) { + if ((dev = pci_get_device(BCM4704_VENDOR_ID, BCM4704_DEVICE_ID, NULL)) != NULL) { /* Reset PrefetchEn (PE) */ pci_write_config_dword(dev, 0x8c, 1); if (debug >= 1) { @@ -1909,7 +1870,7 @@ p2p_bridge(void) } } /* Enable fast back-to-back read/write */ - if ((dev = PCI_FIND_DEV(PI7C8150_VENDOR_ID, PI7C8150_DEVICE_ID, NULL)) != NULL) { + if ((dev = pci_get_device(PI7C8150_VENDOR_ID, PI7C8150_DEVICE_ID, NULL)) != NULL) { pci_read_config_word(dev, PCI_COMMAND, &cmd); cmd |= PCI_COMMAND_FAST_BACK; pci_read_config_byte(dev, PCI_BRIDGE_CONTROL, &bridge_ctrl); @@ -1922,19 +1883,19 @@ p2p_bridge(void) for(rc_index = 0; rc_index < MAX_RC_NUM; rc_index++) { dev_on_rc = pci_do_rc_dev_find(rc_index); if (dev_on_rc != NULL ) { - dev = PCI_FIND_DEV(0x184e, 0x1004, NULL); + dev = pci_get_device(0x184e, 0x1004, NULL); if (dev != NULL ) { pci_write_config_dword(dev,0x78,MAX_PAYLOAD_256B | MAX_READ_REQ_256B); } } } - if ((dev = PCI_FIND_DEV(0x14e4, 0xb634, NULL)) != NULL) { + if ((dev = pci_get_device(0x14e4, 0xb634, NULL)) != NULL) { pci_write_config_dword(dev,0x78,MAX_PAYLOAD_256B | MAX_READ_REQ_256B); } - if ((dev = PCI_FIND_DEV(PCI_VNDID_PERICOM, PCI_DEVID_PI7C9X130, NULL)) != NULL) { + if ((dev = pci_get_device(PCI_VNDID_PERICOM, PCI_DEVID_PI7C9X130, NULL)) != NULL) { /* * Configure the PCIE cap: Max payload size: 256, Max Read * Request size: 256, disabling relax ordering. @@ -1944,8 +1905,8 @@ p2p_bridge(void) MAX_PAYLOAD_256B | MAX_READ_REQ_256B); } - if ((dev = PCI_FIND_DEV(FSL_VENDOR_ID, FSL8548PCIE_DEVICE_ID, NULL)) != NULL || - (dev = PCI_FIND_DEV(FSL_VENDOR_ID, FSL2020EPCIE_DEVICE_ID, NULL)) != NULL) { + if ((dev = pci_get_device(FSL_VENDOR_ID, FSL8548PCIE_DEVICE_ID, NULL)) != NULL || + (dev = pci_get_device(FSL_VENDOR_ID, FSL2020EPCIE_DEVICE_ID, NULL)) != NULL) { /* * Configure the PCIE cap: Max payload size: 256, Max Read * Request size: 256, disabling relax ordering. @@ -1954,8 +1915,8 @@ p2p_bridge(void) pci_write_config_dword(dev, FSL8548PCIE_DEV_CTRL_REG, MAX_PAYLOAD_256B | MAX_READ_REQ_256B); } - if ((dev = PCI_FIND_DEV(BCM4716_VENDOR_ID, BCM4716PCIE_DEVICE_ID, NULL)) != NULL || - (dev = PCI_FIND_DEV(BCM53000_VENDOR_ID, BCM53000PCIE_DEVICE_ID, NULL)) != NULL) { + if ((dev = pci_get_device(BCM4716_VENDOR_ID, BCM4716PCIE_DEVICE_ID, NULL)) != NULL || + (dev = pci_get_device(BCM53000_VENDOR_ID, BCM53000PCIE_DEVICE_ID, NULL)) != NULL) { uint32 tmp, maxpayld, device_bmp=0, mask; unsigned long addr; uint16 tmp16, tmp161; @@ -1964,7 +1925,7 @@ p2p_bridge(void) pcie0 = dev; bus0 = dev->bus->number; - if ((pcie1 = PCI_FIND_DEV(BCM53000_VENDOR_ID, BCM53000PCIE_DEVICE_ID, pcie0)) != NULL) { + if ((pcie1 = pci_get_device(BCM53000_VENDOR_ID, BCM53000PCIE_DEVICE_ID, pcie0)) != NULL) { bus1 = pcie1->bus->number; } @@ -2061,7 +2022,7 @@ p2p_bridge(void) * The device supports 128, 512, and 1024 max payload sizes. */ dev = NULL; - while ((dev = PCI_FIND_DEV(PCI_VENDOR_ID_PLX, PCI_ANY_ID, dev)) != NULL) { + while ((dev = pci_get_device(PCI_VENDOR_ID_PLX, PCI_ANY_ID, dev)) != NULL) { if ((dev->device == PLX_PEX8608_DEV_ID) || (dev->device == PLX_PEX8617_DEV_ID)) { uint16 ctrl_reg; @@ -2589,7 +2550,7 @@ _pci_probe(struct pci_dev *dev, const struct pci_device_id *ent) } #endif - if ((PCI_FIND_DEV(BCM4704_VENDOR_ID, BCM4704_DEVICE_ID, NULL)) != NULL) { + if ((pci_get_device(BCM4704_VENDOR_ID, BCM4704_DEVICE_ID, NULL)) != NULL) { /* * Decrease the PCI bus priority for the CPU for better overall * system performance. This change significantly reduces the @@ -2607,23 +2568,23 @@ _pci_probe(struct pci_dev *dev, const struct pci_device_id *ent) } } - if ((PCI_FIND_DEV(SIBYTE_PCI_VENDOR_ID, SIBYTE_PCI_DEVICE_ID, NULL)) != NULL) { + if ((pci_get_device(SIBYTE_PCI_VENDOR_ID, SIBYTE_PCI_DEVICE_ID, NULL)) != NULL) { /* * The BCM91125CPCI CPU boards with a PCI-PCI bridge use the same * interrupt line for all switch ships behind the bridge. */ - if (PCI_FIND_DEV(DC21150_VENDOR_ID, DC21150_DEVICE_ID, NULL) || - PCI_FIND_DEV(HINT_HB4_VENDOR_ID, HINT_HB4_DEVICE_ID, NULL) || - PCI_FIND_DEV(PI7C8150_VENDOR_ID, PI7C8150_DEVICE_ID, NULL)) { + if (pci_get_device(DC21150_VENDOR_ID, DC21150_DEVICE_ID, NULL) || + pci_get_device(HINT_HB4_VENDOR_ID, HINT_HB4_DEVICE_ID, NULL) || + pci_get_device(PI7C8150_VENDOR_ID, PI7C8150_DEVICE_ID, NULL)) { /* * By default we try to guess the correct IRQ based on the design. * For now we only look at the bridge vendor, but it may be necessary * to look at the switch chip configuration as well. */ if (forceirq == -1) { - if ((PCI_FIND_DEV(HINT_HB4_VENDOR_ID, HINT_HB4_DEVICE_ID, NULL)) || + if ((pci_get_device(HINT_HB4_VENDOR_ID, HINT_HB4_DEVICE_ID, NULL)) || ((dev->device == BCM5674_DEVICE_ID) && - (PCI_FIND_DEV(PI7C8150_VENDOR_ID, PI7C8150_DEVICE_ID, NULL)))) { + (pci_get_device(PI7C8150_VENDOR_ID, PI7C8150_DEVICE_ID, NULL)))) { forceirq = 58; } else { forceirq = 56; @@ -2632,9 +2593,9 @@ _pci_probe(struct pci_dev *dev, const struct pci_device_id *ent) } } - if (((PCI_FIND_DEV(BCM58525_PCI_VENDOR_ID, BCM58525_PCI_DEVICE_ID, NULL)) != NULL) || - ((PCI_FIND_DEV(BCM58525_PCI_VENDOR_ID, BCM58522_PCI_DEVICE_ID, NULL)) != NULL) || - ((PCI_FIND_DEV(BCM58712_PCI_VENDOR_ID, BCM58712_PCI_DEVICE_ID, NULL)) != NULL) ) { + if (((pci_get_device(BCM58525_PCI_VENDOR_ID, BCM58525_PCI_DEVICE_ID, NULL)) != NULL) || + ((pci_get_device(BCM58525_PCI_VENDOR_ID, BCM58522_PCI_DEVICE_ID, NULL)) != NULL) || + ((pci_get_device(BCM58712_PCI_VENDOR_ID, BCM58712_PCI_DEVICE_ID, NULL)) != NULL) ) { /* BCM58525/BCM58712 CPU boards support 128 Max payload size */ if (maxpayload && maxpayload != 128) { maxpayload = 128; @@ -2838,9 +2799,7 @@ _pci_probe(struct pci_dev *dev, const struct pci_device_id *ent) } -#ifdef LINUX_BDE_DMA_DEVICE_SUPPORT ctrl->dma_dev = &dev->dev; -#endif if (debug >= 2) { gprintk("_pci_probe: configured dev:0x%x rev:0x%x with base_addresses: 0x%lx 0x%lx\n", @@ -3659,8 +3618,8 @@ _write(int d, uint32_t addr, uint32_t data) } -static _ISR_RET -_isr(_ISR_PARAMS(irq, dev_id, iregs)) +static irqreturn_t +_isr(int irq, void *dev_id) { bde_ctrl_t *ctrl = (bde_ctrl_t *) dev_id; @@ -3858,7 +3817,7 @@ _interrupt_disconnect(int d) ctrl->fmask = 0; if (ctrl->isr) { /* Primary handler still active */ - SYNC_IRQ(ctrl->iLine); + synchronize_irq(ctrl->iLine); return 0; } } else { @@ -3869,7 +3828,7 @@ _interrupt_disconnect(int d) ctrl->isr_data = NULL; if (ctrl->isr2) { /* Secondary handler still active */ - SYNC_IRQ(ctrl->iLine); + synchronize_irq(ctrl->iLine); return 0; } } @@ -4269,7 +4228,7 @@ lkbde_mem_write(int d, uint32 addr, uint32 *buf) *((uint32_t*)full_addr) = *buf; return 0; } -LKM_EXPORT_SYM(lkbde_mem_write); +EXPORT_SYMBOL(lkbde_mem_write); int lkbde_mem_read(int d, uint32 addr, uint32 *buf) @@ -4284,7 +4243,7 @@ lkbde_mem_read(int d, uint32 addr, uint32 *buf) *buf = *((uint32_t*)full_addr); return 0; } -LKM_EXPORT_SYM(lkbde_mem_read); +EXPORT_SYMBOL(lkbde_mem_read); #endif /* BCM_SAND_SUPPORT */ static ibde_t _ibde = { @@ -4479,11 +4438,7 @@ lkbde_get_dma_dev(int d) return NULL; } -#ifdef LINUX_BDE_DMA_DEVICE_SUPPORT return (void *)_devices[d].dma_dev; -#else - return (void *)_devices[d].pci_device; -#endif } void * @@ -4665,24 +4620,24 @@ linux_bde_device_bitmap_t* lkbde_get_inst_devs(uint32 inst_id) /* * Export functions */ -LKM_EXPORT_SYM(linux_bde_create); -LKM_EXPORT_SYM(linux_bde_destroy); -LKM_EXPORT_SYM(lkbde_get_dev_phys); -LKM_EXPORT_SYM(lkbde_get_dev_virt); -LKM_EXPORT_SYM(lkbde_get_dev_resource); -LKM_EXPORT_SYM(lkbde_get_hw_dev); -LKM_EXPORT_SYM(lkbde_get_dma_dev); -LKM_EXPORT_SYM(lkbde_irq_mask_set); -LKM_EXPORT_SYM(lkbde_irq_mask_get); -LKM_EXPORT_SYM(lkbde_get_dev_phys_hi); -LKM_EXPORT_SYM(lkbde_dev_state_set); -LKM_EXPORT_SYM(lkbde_dev_state_get); -LKM_EXPORT_SYM(lkbde_dev_instid_set); -LKM_EXPORT_SYM(lkbde_dev_instid_get); +EXPORT_SYMBOL(linux_bde_create); +EXPORT_SYMBOL(linux_bde_destroy); +EXPORT_SYMBOL(lkbde_get_dev_phys); +EXPORT_SYMBOL(lkbde_get_dev_virt); +EXPORT_SYMBOL(lkbde_get_dev_resource); +EXPORT_SYMBOL(lkbde_get_hw_dev); +EXPORT_SYMBOL(lkbde_get_dma_dev); +EXPORT_SYMBOL(lkbde_irq_mask_set); +EXPORT_SYMBOL(lkbde_irq_mask_get); +EXPORT_SYMBOL(lkbde_get_dev_phys_hi); +EXPORT_SYMBOL(lkbde_dev_state_set); +EXPORT_SYMBOL(lkbde_dev_state_get); +EXPORT_SYMBOL(lkbde_dev_instid_set); +EXPORT_SYMBOL(lkbde_dev_instid_get); #ifdef BCM_SAND_SUPPORT -LKM_EXPORT_SYM(lkbde_cpu_write); -LKM_EXPORT_SYM(lkbde_cpu_read); -LKM_EXPORT_SYM(lkbde_cpu_pci_register); +EXPORT_SYMBOL(lkbde_cpu_write); +EXPORT_SYMBOL(lkbde_cpu_read); +EXPORT_SYMBOL(lkbde_cpu_pci_register); #endif -LKM_EXPORT_SYM(lkbde_is_dev_managed_by_instance); -LKM_EXPORT_SYM(lkbde_get_inst_devs); +EXPORT_SYMBOL(lkbde_is_dev_managed_by_instance); +EXPORT_SYMBOL(lkbde_get_inst_devs); diff --git a/sdk-6.5.24/systems/bde/linux/kernel/linux_dma.c b/sdk-6.5.24/systems/bde/linux/kernel/linux_dma.c index 9761b9796..cede0d692 100644 --- a/sdk-6.5.24/systems/bde/linux/kernel/linux_dma.c +++ b/sdk-6.5.24/systems/bde/linux/kernel/linux_dma.c @@ -107,31 +107,10 @@ #define bus_to_virt phys_to_virt #endif -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)) -#define VIRT_TO_PAGE(p) virt_to_page((void*)(p)) -#else -#define VIRT_TO_PAGE(p) virt_to_page((p)) -#endif - -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)) -#define BDE_DMA_MAPPING_ERROR(d, p) dma_mapping_error((d),(p)) -#else -#define BDE_DMA_MAPPING_ERROR(d, p) dma_mapping_error((p)) -#endif - #ifndef KMALLOC_MAX_SIZE #define KMALLOC_MAX_SIZE (1UL << (MAX_ORDER - 1 + PAGE_SHIFT)) #endif -/* Compatibility */ -#ifdef LKM_2_4 -#define MEM_MAP_RESERVE mem_map_reserve -#define MEM_MAP_UNRESERVE mem_map_unreserve -#else /* LKM_2_6 */ -#define MEM_MAP_RESERVE SetPageReserved -#define MEM_MAP_UNRESERVE ClearPageReserved -#endif /* LKM_2_x */ - #ifndef GFP_DMA32 #define GFP_DMA32 0 #endif @@ -196,24 +175,24 @@ MODULE_PARM_DESC(dma_debug, /* DMA memory pool size */ static char *dmasize; -LKM_MOD_PARAM(dmasize, "s", charp, 0); +module_param(dmasize, charp, 0); MODULE_PARM_DESC(dmasize, "Specify DMA memory size (default 4MB)"); /* Select DMA memory pool allocation method */ static int dmaalloc = ALLOC_METHOD_DEFAULT; -LKM_MOD_PARAM(dmaalloc, "i", int, 0); +module_param(dmaalloc, int, 0); MODULE_PARM_DESC(dmaalloc, "Select DMA memory allocation method"); /* Use high memory for DMA */ static char *himem; -LKM_MOD_PARAM(himem, "s", charp, 0); +module_param(himem, charp, 0); MODULE_PARM_DESC(himem, "Use high memory for DMA (default no)"); /* Physical high memory address to use for DMA */ static char *himemaddr = 0; -LKM_MOD_PARAM(himemaddr, "s", charp, 0); +module_param(himemaddr, charp, 0); MODULE_PARM_DESC(himemaddr, "Physical address to use for high memory DMA"); @@ -516,7 +495,7 @@ _dma_segment_alloc(size_t size, size_t blk_size) for (page_addr = dseg->blk_ptr[i]; page_addr < dseg->blk_ptr[i] + dseg->blk_size; page_addr += PAGE_SIZE) { - MEM_MAP_RESERVE(VIRT_TO_PAGE(page_addr)); + SetPageReserved(virt_to_page((void*)page_addr)); } } else if (dseg->blk_ptr[i]) { dseg->blk_ptr[i] &= ~3; @@ -549,7 +528,7 @@ _dma_segment_free(dma_segment_t *dseg) for (page_addr = dseg->blk_ptr[i]; page_addr < dseg->blk_ptr[i] + dseg->blk_size; page_addr += PAGE_SIZE) { - MEM_MAP_UNRESERVE(VIRT_TO_PAGE(page_addr)); + ClearPageReserved(virt_to_page((void*)page_addr)); } free_pages(dseg->blk_ptr[i], dseg->blk_order); } @@ -681,7 +660,7 @@ _edk_mpool_alloc(int dev_id, size_t size) /* Use dma_map_single to obtain DMA bus address or IOVA if IOMMU is present. */ if (dev) { pbase = dma_map_single(dev, dma_vbase, size, DMA_BIDIRECTIONAL); - if (BDE_DMA_MAPPING_ERROR(dev, pbase)) { + if (dma_mapping_error(dev, pbase)) { gprintk("Failed to map memory at %p for EDK\n", dma_vbase); _pgfree(dma_vbase); dma_vbase = NULL; @@ -977,7 +956,7 @@ void _dma_per_device_init(int dev_index) _dma_pool_alloc_state == DMA_POOL_MAPPED)) { /* Map RAM virtual address space for DMA usage and obtain DMA bus address or IOVA if iommu is present. */ dma_addr = dma_map_single(dev, _dma_vbase, _dma_mem_size, DMA_BIDIRECTIONAL); - if (BDE_DMA_MAPPING_ERROR(dev, dma_addr)) { + if (dma_mapping_error(dev, dma_addr)) { gprintk("Failed to map DMA buffer pool for device %d at kernel_virt:0x%lx\n", dev_index, (unsigned long)_dma_vbase); if (_dma_pool_alloc_state == DMA_POOL_INITIALIZED) { _mpool_free(); @@ -1309,8 +1288,8 @@ _dma_pprint(struct seq_file *m) */ #ifdef BDE_EDK_SUPPORT -LKM_EXPORT_SYM(lkbde_edk_get_dma_info); +EXPORT_SYMBOL(lkbde_edk_get_dma_info); #endif -LKM_EXPORT_SYM(kmalloc_giant); -LKM_EXPORT_SYM(kfree_giant); -LKM_EXPORT_SYM(lkbde_get_dma_info); +EXPORT_SYMBOL(kmalloc_giant); +EXPORT_SYMBOL(kfree_giant); +EXPORT_SYMBOL(lkbde_get_dma_info); diff --git a/sdk-6.5.24/systems/bde/linux/user/kernel/linux-user-bde.c b/sdk-6.5.24/systems/bde/linux/user/kernel/linux-user-bde.c index 141bd53da..94f8aeb1b 100644 --- a/sdk-6.5.24/systems/bde/linux/user/kernel/linux-user-bde.c +++ b/sdk-6.5.24/systems/bde/linux/user/kernel/linux-user-bde.c @@ -187,23 +187,23 @@ static uint32 *ihost_intr_enable_base = NULL; /* Module parameter for Interruptible timeout */ static int intr_timeout = 0; -LKM_MOD_PARAM(intr_timeout, "i", int, (S_IRUGO | S_IWUSR)); +module_param(intr_timeout, int, (S_IRUGO | S_IWUSR)); MODULE_PARM_DESC(intr_timeout, "Interruptible wait timeout in milliseconds for Interrupt to be triggered."); static ulong intr_count = 0; -LKM_MOD_PARAM(intr_count, "intr_count", ulong, (S_IRUGO | S_IWUSR)); +module_param(intr_count, ulong, (S_IRUGO | S_IWUSR)); MODULE_PARM_DESC(intr_count, "Interrupt count provides information about the number of times the ISR is called."); static ulong intr_timeout_count = 0; -LKM_MOD_PARAM(intr_timeout_count, "intr_timeout_count", ulong, (S_IRUGO | S_IWUSR)); +module_param(intr_timeout_count, ulong, (S_IRUGO | S_IWUSR)); MODULE_PARM_DESC(intr_timeout_count, "Interrupt timeout count provides information about the number of times the interrupt wait is timeed out."); /* Debug output */ static int debug; -LKM_MOD_PARAM(debug, "i", int, (S_IRUGO | S_IWUSR)); +module_param(debug, int, (S_IRUGO | S_IWUSR)); MODULE_PARM_DESC(debug, "Set debug level (default 0)."); diff --git a/sdk-6.5.24/systems/bde/linux/user/linux-user-bde.c b/sdk-6.5.24/systems/bde/linux/user/linux-user-bde.c index 71b5d14fb..5a258c8e5 100644 --- a/sdk-6.5.24/systems/bde/linux/user/linux-user-bde.c +++ b/sdk-6.5.24/systems/bde/linux/user/linux-user-bde.c @@ -65,7 +65,6 @@ extern int bcm_sim_path_get(void); #include #ifdef KEYSTONE -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27) #include #include @@ -73,16 +72,13 @@ extern int bcm_sim_path_get(void); #include #define LINUX_SPIDEV_SUPPORT 1 -#else -#define LINUX_SPIDEV_SUPPORT 0 -#endif #else /* !KEYSTONE */ #define LINUX_SPIDEV_SUPPORT 0 #endif /* KEYSTONE */ -#if defined(BCM_ESW_SUPPORT) && LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27) +#if defined(BCM_ESW_SUPPORT) #define CMIC_SPI_SUPPORT 1 #endif #ifndef CMIC_SPI_SUPPORT diff --git a/sdk-6.5.24/systems/linux/kernel/modules/bcm-knet/bcm-knet.c b/sdk-6.5.24/systems/linux/kernel/modules/bcm-knet/bcm-knet.c index 41afce2ae..79d0690b5 100755 --- a/sdk-6.5.24/systems/linux/kernel/modules/bcm-knet/bcm-knet.c +++ b/sdk-6.5.24/systems/linux/kernel/modules/bcm-knet/bcm-knet.c @@ -76,97 +76,97 @@ MODULE_DESCRIPTION("Network Device Driver for Broadcom BCM TxRx API"); MODULE_LICENSE("GPL"); static int debug; -LKM_MOD_PARAM(debug, "i", int, 0); +module_param(debug, int, 0); MODULE_PARM_DESC(debug, "Debug level (default 0)"); static char *mac_addr = NULL; -LKM_MOD_PARAM(mac_addr, "s", charp, 0); +module_param(mac_addr, charp, 0); MODULE_PARM_DESC(mac_addr, "Ethernet MAC address (default 02:10:18:xx:xx:xx)"); static int rx_buffer_size = 9216; -LKM_MOD_PARAM(rx_buffer_size, "i", int, 0); +module_param(rx_buffer_size, int, 0); MODULE_PARM_DESC(rx_buffer_size, "Size of RX packet buffers (default 9216)"); static int default_mtu = 1500; -LKM_MOD_PARAM(default_mtu, "i", int, 0); +module_param(default_mtu, int, 0); MODULE_PARM_DESC(default_mtu, "Default MTU for KNET network interfaces (default 1500)"); static int rx_sync_retry = 1000; -LKM_MOD_PARAM(rx_sync_retry, "i", int, 0); +module_param(rx_sync_retry, int, 0); MODULE_PARM_DESC(rx_sync_retry, "Retries if chain is incomplete on interrupt (default 10)"); static char *base_dev_name = NULL; -LKM_MOD_PARAM(base_dev_name, "s", charp, 0); +module_param(base_dev_name, charp, 0); MODULE_PARM_DESC(base_dev_name, "Base device name (default bcm0, bcm1, etc.)"); static int rcpu_mode = 0; -LKM_MOD_PARAM(rcpu_mode, "i", int, 0); +module_param(rcpu_mode, int, 0); MODULE_PARM_DESC(rcpu_mode, "Enable RCPU encapsulation (default 0)"); static char *rcpu_dmac = NULL; -LKM_MOD_PARAM(rcpu_dmac, "s", charp, 0); +module_param(rcpu_dmac, charp, 0); MODULE_PARM_DESC(rcpu_dmac, "RCPU destination MAC address (by default use L2 destination MAC address)"); static char *rcpu_smac = NULL; -LKM_MOD_PARAM(rcpu_smac, "s", charp, 0); +module_param(rcpu_smac, charp, 0); MODULE_PARM_DESC(rcpu_smac, "RCPU source MAC address (by default use L2 source MAC address)"); static int rcpu_ethertype = 0xde08; -LKM_MOD_PARAM(rcpu_ethertype, "i", int, 0); +module_param(rcpu_ethertype, int, 0); MODULE_PARM_DESC(rcpu_ethertype, "RCPU EtherType (default DE08h)"); static int rcpu_signature = 0; -LKM_MOD_PARAM(rcpu_signature, "i", int, 0); +module_param(rcpu_signature, int, 0); MODULE_PARM_DESC(rcpu_signature, "RCPU Signature (default is PCI device ID)"); static int rcpu_vlan = 1; -LKM_MOD_PARAM(rcpu_vlan, "i", int, 0); +module_param(rcpu_vlan, int, 0); MODULE_PARM_DESC(rcpu_vlan, "RCPU VLAN ID (default 1)"); static int use_rx_skb = 0; -LKM_MOD_PARAM(use_rx_skb, "i", int, 0); +module_param(use_rx_skb, int, 0); MODULE_PARM_DESC(use_rx_skb, "Use socket buffers for receive operation (default 0)"); static int num_rx_prio = 1; -LKM_MOD_PARAM(num_rx_prio, "i", int, 0); +module_param(num_rx_prio, int, 0); MODULE_PARM_DESC(num_rx_prio, "Number of filter priorities per Rx DMA channel"); static int rx_rate[8] = { 100000, 100000, 100000, 100000, 100000, 100000, 100000, 0 }; -LKM_MOD_PARAM_ARRAY(rx_rate, "1-4i", int, NULL, 0); +module_param_array(rx_rate, int, NULL, 0); MODULE_PARM_DESC(rx_rate, "Rx rate in packets per second (default 100000)"); static int rx_burst[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; -LKM_MOD_PARAM_ARRAY(rx_burst, "1-4i", int, NULL, 0); +module_param_array(rx_burst, int, NULL, 0); MODULE_PARM_DESC(rx_burst, "Rx rate burst maximum in packets (default rx_rate/10)"); static int check_rcpu_signature = 0; -LKM_MOD_PARAM(check_rcpu_signature, "i", int, 0); +module_param(check_rcpu_signature, int, 0); MODULE_PARM_DESC(check_rcpu_signature, "Check RCPU Signature for Tx packets from RCPU interfaces"); static int basedev_suspend = 0; -LKM_MOD_PARAM(basedev_suspend, "i", int, 0); +module_param(basedev_suspend, int, 0); MODULE_PARM_DESC(basedev_suspend, "Pause traffic till base device is up (enabled by default in NAPI mode)"); static int mirror_local = 1; -LKM_MOD_PARAM(mirror_local, "i", int, 0); +module_param(mirror_local, int, 0); MODULE_PARM_DESC(mirror_local, "Encapasulate packets based on mirror_to interface configuration, e.g. " "encapsulate non-RCPU packets when mirrored to an RCPU interface " @@ -176,27 +176,27 @@ MODULE_PARM_DESC(mirror_local, * Force to add one layer of VLAN tag to untagged packets on Dune devices */ static int force_tagged = 1; -LKM_MOD_PARAM(force_tagged, "i", int, 0); +module_param(force_tagged, int, 0); MODULE_PARM_DESC(force_tagged, "Always tagged with VLAN tag with spceified VID or VSI(default 1)"); static int ft_tpid=0x8100; -LKM_MOD_PARAM(ft_tpid, "i", int, 0); +module_param(ft_tpid, int, 0); MODULE_PARM_DESC(ft_tpid, "Tag Protocol Identifier (TPID) indicates the frame type (default 0x8100)"); static int ft_pri=0; -LKM_MOD_PARAM(ft_pri, "i", int, 0); +module_param(ft_pri, int, 0); MODULE_PARM_DESC(ft_cfi, "Priority (PRI) indicates the frame priority (default 0)"); static int ft_cfi=0; -LKM_MOD_PARAM(ft_cfi, "i", int, 0); +module_param(ft_cfi, int, 0); MODULE_PARM_DESC(ft_cfi, "Canonical Format Indicator (CFI) indicates whether a MAC address is encapsulated in canonical format over different transmission media (default 0)"); static int ft_vid=0; -LKM_MOD_PARAM(ft_vid, "i", int, 0); +module_param(ft_vid, int, 0); MODULE_PARM_DESC(ft_vid, "VLAN ID (VID) indicates the VLAN to which a frame belongs (default 0)"); @@ -263,30 +263,21 @@ static int dbg_pkt_enable = 0; #if NAPI_SUPPORT static int use_napi = 0; -LKM_MOD_PARAM(use_napi, "i", int, 0); +module_param(use_napi, int, 0); MODULE_PARM_DESC(use_napi, "Use NAPI interface (default 0)"); static int napi_weight = 64; -LKM_MOD_PARAM(napi_weight, "i", int, 0); +module_param(napi_weight, int, 0); MODULE_PARM_DESC(napi_weight, "Weight of NAPI interfaces (default 64)"); -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) -#define bkn_napi_enable(_dev, _napi) netif_poll_enable(_dev) -#define bkn_napi_disable(_dev, _napi) netif_poll_disable(_dev) -#define bkn_napi_schedule(_dev, _napi) netif_rx_schedule(_dev) -#define bkn_napi_schedule_prep(_dev, _napi) netif_rx_schedule_prep(_dev) -#define __bkn_napi_schedule(_dev, _napi) __netif_rx_schedule(_dev) -#define bkn_napi_complete(_dev, _napi) netif_rx_complete(_dev) -#else #define bkn_napi_enable(_dev, _napi) napi_enable(_napi) #define bkn_napi_disable(_dev, _napi) napi_disable(_napi) #define bkn_napi_schedule(_dev, _napi) napi_schedule(_napi) #define bkn_napi_schedule_prep(_dev, _napi) napi_schedule_prep(_napi) #define __bkn_napi_schedule(_dev, _napi) __napi_schedule(_napi) #define bkn_napi_complete(_dev, _napi) napi_complete(_napi) -#endif #else @@ -322,83 +313,6 @@ static int napi_weight = 0; #define NETDEV_UPDATE_TRANS_START_TIME(dev) netif_trans_update(dev) #endif -#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) -#define skb_copy_to_linear_data(_skb, _pkt, _len) \ - eth_copy_and_sum(_skb, _pkt, _len, 0) -struct napi_struct { int not_used; }; -#define netif_napi_add(_dev, _napi, _poll, _weight) do { \ - (_dev)->poll = _poll; \ - (_dev)->weight = _weight; \ -} while(0) -#endif - -#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)) -#define SKB_PADTO(_skb,_len) (((_skb = skb_padto(_skb,_len)) == NULL) ? -1 : 0) -#else -#define SKB_PADTO(_skb,_len) skb_padto(_skb,_len) -#endif - -#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,12)) -#define skb_header_cloned(_skb) \ - skb_cloned(_skb) -#endif - -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,27) -static inline void *netdev_priv(struct net_device *dev) -{ - return dev->priv; -} -#endif /* KERNEL_VERSION(2,4,27) */ - -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23) -/* Special check for MontaVista 2.4.20 MIPS */ -#if !(defined(MAX_USER_RT_PRIO) && defined(CONFIG_MIPS)) -static inline void free_netdev(struct net_device *dev) -{ - kfree(dev); -} -#endif -static inline void netif_poll_disable(struct net_device *dev) -{ - while (test_and_set_bit(__LINK_STATE_RX_SCHED, &dev->state)) { - /* No hurry. */ - current->state = TASK_INTERRUPTIBLE; - schedule_timeout(1); - } -} -static inline void netif_poll_enable(struct net_device *dev) -{ - clear_bit(__LINK_STATE_RX_SCHED, &dev->state); -} -#endif /* KERNEL_VERSION(2,4,23) */ - -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,21) -static struct sk_buff *skb_pad(struct sk_buff *skb, int pad) -{ - struct sk_buff *nskb; - - /* If the skbuff is non linear tailroom is always zero.. */ - if(skb_tailroom(skb) >= pad) - { - memset(skb->data+skb->len, 0, pad); - return skb; - } - - nskb = skb_copy_expand(skb, skb_headroom(skb), skb_tailroom(skb) + pad, GFP_ATOMIC); - kfree_skb(skb); - if(nskb) - memset(nskb->data+nskb->len, 0, pad); - return nskb; -} -static inline struct sk_buff *skb_padto(struct sk_buff *skb, unsigned int len) -{ - unsigned int size = skb->len; - if(likely(size >= len)) - return skb; - return skb_pad(skb, len-size); -} -#endif /* KERNEL_VERSION(2,4,21) */ - #if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0) #define bkn_vlan_hwaccel_put_tag(_skb, _proto, _tci) \ __vlan_hwaccel_put_tag(_skb, _tci) @@ -411,114 +325,12 @@ static inline struct sk_buff *skb_padto(struct sk_buff *skb, unsigned int len) #define ETH_P_8021AD 0x88A8 /* 802.1ad Service VLAN */ #endif -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27) -#define bkn_dma_mapping_error(d, a) \ - dma_mapping_error(a) -#define bkn_pci_dma_mapping_error(d, a) \ - pci_dma_mapping_error(a) -#else -#define bkn_dma_mapping_error(d, a) \ - dma_mapping_error(d, a) -#define bkn_pci_dma_mapping_error(d, a) \ - pci_dma_mapping_error(d, a) -#endif - -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) -enum hwtstamp_tx_types { - HWTSTAMP_TX_OFF, - HWTSTAMP_TX_ON, - HWTSTAMP_TX_ONESTEP_SYNC -}; -enum { - SKBTX_HW_TSTAMP = 1 << 0, - SKBTX_SW_TSTAMP = 1 << 1, - SKBTX_IN_PROGRESS = 1 << 2, -}; -struct skb_shared_hwtstamps { - ktime_t hwtstamp; - ktime_t syststamp; -}; -struct bkn_skb_shared_info { - uint8_t tx_flags; - struct skb_shared_hwtstamps hwtstamps; -}; -#define bkn_skb_shinfo(_skb) ((struct bkn_skb_shared_info *)(unsigned char *)_skb->end) -#define bkn_skb_tx_flags(_skb) bkn_skb_shinfo(_skb)->tx_flags -static inline struct skb_shared_hwtstamps *skb_hwtstamps(struct sk_buff *skb) -{ - return &bkn_skb_shinfo(skb)->hwtstamps; -} -void skb_tstamp_tx(struct sk_buff *orig_skb, struct skb_shared_hwtstamps *hwtstamps) -{ -} -static inline void bkn_skb_tx_timestamp(struct sk_buff *skb) -{ -} -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26) -static inline ktime_t ns_to_ktime(u64 ns) -{ - static const ktime_t ktime; - return ktime; -} -#endif -#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37) -#include -#define HWTSTAMP_TX_ONESTEP_SYNC 2 -enum { - SKBTX_HW_TSTAMP = 1 << 0, - SKBTX_SW_TSTAMP = 1 << 1, - SKBTX_IN_PROGRESS = 1 << 2, -}; -#define bkn_skb_tx_flags(_skb) skb_shinfo(_skb)->tx_flags.flags -static inline void bkn_skb_tx_timestamp(struct sk_buff *skb) -{ -} -#else #include #if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0) #define HWTSTAMP_TX_ONESTEP_SYNC 2 #endif -#define bkn_skb_tx_flags(_skb) skb_shinfo(_skb)->tx_flags -static inline void bkn_skb_tx_timestamp(struct sk_buff *skb) -{ - return skb_tx_timestamp(skb); -} -#endif - -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26) -#define bkn_dev_net_set(dev, net) -#else -#define bkn_dev_net_set(dev, net) dev_net_set(dev, net) -#endif - -#ifdef LINUX_BDE_DMA_DEVICE_SUPPORT -#define BKN_DMA_DEV device -#define BKN_DMA_FROMDEV DMA_FROM_DEVICE -#define BKN_DMA_TODEV DMA_TO_DEVICE -#define BKN_DMA_MAP_SINGLE(d,p,s,r) dma_map_single(d,p,s,r) -#define BKN_DMA_UNMAP_SINGLE(d,a,s,r) dma_unmap_single(d,a,s,r) -#define BKN_DMA_ALLOC_COHERENT(d,s,h) dma_alloc_coherent(d,s,h,GFP_ATOMIC|GFP_DMA32) -#define BKN_DMA_FREE_COHERENT(d,s,a,h) dma_free_coherent(d,s,a,h) -#define BKN_DMA_MAPPING_ERROR(d,a) bkn_dma_mapping_error(d,a) -#else -#define BKN_DMA_DEV pci_dev -#define BKN_DMA_FROMDEV PCI_DMA_FROMDEVICE -#define BKN_DMA_TODEV PCI_DMA_TODEVICE -#define BKN_DMA_MAP_SINGLE(d,p,s,r) pci_map_single(d,p,s,r) -#define BKN_DMA_UNMAP_SINGLE(d,a,s,r) pci_unmap_single(d,a,s,r) -#define BKN_DMA_ALLOC_COHERENT(d,s,h) pci_alloc_consistent(d,s,h) -#define BKN_DMA_FREE_COHERENT(d,s,a,h) pci_free_consistent(d,s,a,h) -#define BKN_DMA_MAPPING_ERROR(d,a) bkn_pci_dma_mapping_error(d,a) -#endif - -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29)) -#define BKN_NETDEV_TX_BUSY NETDEV_TX_BUSY -#else -#define BKN_NETDEV_TX_BUSY 1 -#endif - /* * Get a 16-bit value from packet offset * _data Pointer to packet @@ -586,7 +398,7 @@ typedef struct bkn_switch_info_s { int ndev_max; /* Size of indexed array */ struct list_head rxpf_list; /* Associated Rx packet filters */ volatile void *base_addr; /* Base address for PCI register access */ - struct BKN_DMA_DEV *dma_dev; /* Required for DMA memory control */ + struct device *dma_dev; /* Required for DMA memory control */ struct pci_dev *pdev; /* Required for DMA memory control */ struct net_device *dev; /* Base network device */ struct napi_struct napi; /* New NAPI */ @@ -1069,16 +881,6 @@ static knet_hw_tstamp_ioctl_cmd_cb_f knet_hw_tstamp_ioctl_cmd_cb = NULL; * Thread management */ -#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10)) -static void -bkn_sleep(int clicks) -{ - wait_queue_head_t wq; - - init_waitqueue_head(&wq); - sleep_on_timeout(&wq, clicks); -} -#else static void bkn_sleep(int clicks) { @@ -1087,7 +889,6 @@ bkn_sleep(int clicks) init_waitqueue_head(&wq); wait_event_timeout(wq, 0, clicks); } -#endif /* * On XGS devices bit 15 fo the Transferred Bytes field in @@ -1921,9 +1722,10 @@ bkn_alloc_dcbs(bkn_switch_info_t *sinfo) rx_ring_size = dcb_size * (MAX_RX_DCBS + 1); sinfo->dcb_mem_size = tx_ring_size + rx_ring_size * sinfo->rx_chans; - sinfo->dcb_mem = BKN_DMA_ALLOC_COHERENT(sinfo->dma_dev, + sinfo->dcb_mem = dma_alloc_coherent(sinfo->dma_dev, sinfo->dcb_mem_size, - &dcb_dma); + &dcb_dma, + GFP_ATOMIC|GFP_DMA32); if (sinfo->dcb_mem == NULL) { gprintk("DCB memory allocation (%d bytes) failed.\n", sinfo->dcb_mem_size); @@ -1938,7 +1740,7 @@ static void bkn_free_dcbs(bkn_switch_info_t *sinfo) { if (sinfo->dcb_mem != NULL) { - BKN_DMA_FREE_COHERENT(sinfo->dma_dev, sinfo->dcb_mem_size, + dma_free_coherent(sinfo->dma_dev, sinfo->dcb_mem_size, sinfo->dcb_mem, (dma_addr_t)sinfo->dcb_dma); sinfo->dcb_mem = NULL; } @@ -1956,9 +1758,9 @@ bkn_clean_tx_dcbs(bkn_switch_info_t *sinfo) if (desc->skb != NULL) { DBG_SKB(("Cleaning Tx SKB from DCB %d.\n", sinfo->tx.dirty)); - BKN_DMA_UNMAP_SINGLE(sinfo->dma_dev, + dma_unmap_single(sinfo->dma_dev, desc->skb_dma, desc->dma_size, - BKN_DMA_TODEV); + DMA_TO_DEVICE); desc->skb_dma = 0; dev_kfree_skb_any(desc->skb); desc->skb = NULL; @@ -1985,9 +1787,9 @@ bkn_clean_rx_dcbs(bkn_switch_info_t *sinfo, int chan) if (desc->skb != NULL) { DBG_SKB(("Cleaning Rx%d SKB from DCB %d.\n", chan, sinfo->rx[chan].dirty)); - BKN_DMA_UNMAP_SINGLE(sinfo->dma_dev, + dma_unmap_single(sinfo->dma_dev, desc->skb_dma, desc->dma_size, - BKN_DMA_FROMDEV); + DMA_FROM_DEVICE); desc->skb_dma = 0; dev_kfree_skb_any(desc->skb); desc->skb = NULL; @@ -2526,10 +2328,10 @@ bkn_rx_refill(bkn_switch_info_t *sinfo, int chan) desc->dma_size = 0; } #endif - desc->skb_dma = BKN_DMA_MAP_SINGLE(sinfo->dma_dev, + desc->skb_dma = dma_map_single(sinfo->dma_dev, skb->data, desc->dma_size, - BKN_DMA_FROMDEV); - if (BKN_DMA_MAPPING_ERROR(sinfo->dma_dev, desc->skb_dma)) { + DMA_FROM_DEVICE); + if (dma_mapping_error(sinfo->dma_dev, desc->skb_dma)) { dev_kfree_skb_any(skb); desc->skb = NULL; break; @@ -4312,9 +4114,9 @@ bkn_do_skb_rx(bkn_switch_info_t *sinfo, int chan, int budget) skb = desc->skb; DBG_DCB_RX(("Rx%d SKB DMA done (%d).\n", chan, sinfo->rx[chan].dirty)); - BKN_DMA_UNMAP_SINGLE(sinfo->dma_dev, + dma_unmap_single(sinfo->dma_dev, desc->skb_dma, desc->dma_size, - BKN_DMA_FROMDEV); + DMA_FROM_DEVICE); desc->skb_dma = 0; pktlen = dcb[sinfo->dcb_wsize-1] & 0xffff; @@ -4800,7 +4602,7 @@ bkn_resume_tx(bkn_switch_info_t *sinfo) static void bkn_skb_tstamp_copy(struct sk_buff *new_skb, struct sk_buff *skb) { - bkn_skb_tx_flags(new_skb) = bkn_skb_tx_flags(skb); + skb_shinfo(new_skb)->tx_flags = skb_shinfo(skb)->tx_flags; new_skb->sk = skb->sk; return; @@ -4852,7 +4654,6 @@ bkn_hw_tstamp_tx_work(struct work_struct *work) skb = skb_dequeue(&sinfo->tx_ptp_queue); ret = bkn_hw_tstamp_tx_set(sinfo, skb); if (ret < 0) { -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)) ktime_t now; now = ktime_get(); DBG_PTP(("2Step TX Timestamp has not been taken for the current skb (%lld us)\n", @@ -4865,9 +4666,6 @@ bkn_hw_tstamp_tx_work(struct work_struct *work) DBG_PTP(("2Step TX Timestamp fetch took long time %lld us\n", ktime_us_delta(now, skb->tstamp))); } -#else - DBG_PTP(("2Step TX Timestamp has not been taken for the current skb\n")); -#endif } dev_kfree_skb_any(skb); } @@ -4896,23 +4694,21 @@ bkn_do_tx(bkn_switch_info_t *sinfo) } if (desc->skb) { DBG_DCB_TX(("Tx SKB DMA done (%d).\n", sinfo->tx.dirty)); - BKN_DMA_UNMAP_SINGLE(sinfo->dma_dev, + dma_unmap_single(sinfo->dma_dev, desc->skb_dma, desc->dma_size, - BKN_DMA_TODEV); + DMA_TO_DEVICE); if ((KNET_SKB_CB(desc->skb)->hwts == HWTSTAMP_TX_ONESTEP_SYNC) && - (bkn_skb_tx_flags(desc->skb) & SKBTX_IN_PROGRESS)) { + (skb_shinfo(desc->skb)->tx_flags & SKBTX_IN_PROGRESS)) { if (bkn_hw_tstamp_tx_set(sinfo, desc->skb) < 0) { DBG_PTP(("1Step timestamp has not been taken for the current skb.\n")); } - bkn_skb_tx_flags(desc->skb) &= ~SKBTX_IN_PROGRESS; + skb_shinfo(desc->skb)->tx_flags &= ~SKBTX_IN_PROGRESS; } - if (bkn_skb_tx_flags(desc->skb) & SKBTX_IN_PROGRESS) { -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)) + if (skb_shinfo(desc->skb)->tx_flags & SKBTX_IN_PROGRESS) { desc->skb->tstamp = ktime_get(); -#endif skb_queue_tail(&sinfo->tx_ptp_queue, desc->skb); schedule_work(&sinfo->tx_ptp_work); } else { @@ -5698,7 +5494,6 @@ bkn_open(struct net_device *dev) return 0; } -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29)) static int bkn_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) { @@ -5779,7 +5574,6 @@ bkn_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) return -EINVAL; } -#endif static int bkn_change_mtu(struct net_device *dev, int new_mtu) @@ -5793,45 +5587,6 @@ bkn_change_mtu(struct net_device *dev, int new_mtu) return 0; } -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) -static int -bkn_poll(struct net_device *dev, int *budget) -{ - bkn_priv_t *priv = netdev_priv(dev); - bkn_switch_info_t *sinfo = priv->sinfo; - int cur_budget = *budget; - int poll_again = 0; - int rx_dcbs_done; - unsigned long flags; - - spin_lock_irqsave(&sinfo->lock, flags); - - DBG_NAPI(("NAPI poll on %s.\n", dev->name)); - - sinfo->napi_poll_again = 0; - - if (cur_budget > dev->quota) { - cur_budget = dev->quota; - } - - rx_dcbs_done = dev_do_dma(sinfo, cur_budget); - - *budget -= rx_dcbs_done; - cur_budget -= rx_dcbs_done; - dev->quota -= rx_dcbs_done; - - if (sinfo->napi_poll_again || cur_budget <= 0) { - poll_again = 1; - sinfo->napi_not_done++; - } else { - bkn_napi_poll_complete(sinfo); - } - - spin_unlock_irqrestore(&sinfo->lock, flags); - - return poll_again; -} -#else static int bkn_poll(struct napi_struct *napi, int budget) { @@ -5859,7 +5614,6 @@ bkn_poll(struct napi_struct *napi, int budget) return rx_dcbs_done; } -#endif static int bkn_stop(struct net_device *dev) @@ -6094,7 +5848,7 @@ bkn_tx(struct sk_buff *skb, struct net_device *dev) hdrlen = priv->system_headers_size; /* Account for extra OAM-TS header. */ - if ((bkn_skb_tx_flags(skb) & SKBTX_HW_TSTAMP) && + if ((skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) && (hdrlen > (BKN_DNX_PTCH_2_SIZE))) { /* T_LOCAL_PORT intf will use PTCH_2 + ITMH */ hdrlen += BKN_DPP_OTSH_SIZE_BYTE; @@ -6332,7 +6086,7 @@ bkn_tx(struct sk_buff *skb, struct net_device *dev) } if (pktlen < (60 + taglen + hdrlen)) { pktlen = (60 + taglen + hdrlen); - if (SKB_PADTO(skb, pktlen) != 0) { + if (skb_padto(skb, pktlen) != 0) { DBG_WARN(("Tx drop: skb_padto failed\n")); stats_flags = u64_stats_update_begin_irqsave(&priv->stats.syncp); u64_stats_inc(&priv->stats.tx_dropped); @@ -6526,7 +6280,7 @@ bkn_tx(struct sk_buff *skb, struct net_device *dev) pktlen = skb->len; if (pktlen < (60 + taglen + hdrlen)) { pktlen = (60 + taglen + hdrlen); - if (SKB_PADTO(skb, pktlen) != 0) { + if (skb_padto(skb, pktlen) != 0) { DBG_WARN(("Tx drop: skb_padto failed\n")); stats_flags = u64_stats_update_begin_irqsave(&priv->stats.syncp); u64_stats_inc(&priv->stats.tx_dropped); @@ -6557,15 +6311,15 @@ bkn_tx(struct sk_buff *skb, struct net_device *dev) } /* Do Tx timestamping */ - if (bkn_skb_tx_flags(skb) & SKBTX_HW_TSTAMP) { + if (skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) { KNET_SKB_CB(skb)->hwts = priv->tx_hwts; if ((priv->port >= 0) && (priv->tx_hwts & HWTSTAMP_TX_ON)) { /* TwoStep Processing of ptp-packets */ KNET_SKB_CB(skb)->port = priv->phys_port; bkn_hw_tstamp_tx_config(sinfo, priv->tx_hwts, hdrlen, skb, meta); - bkn_skb_tx_flags(skb) |= SKBTX_IN_PROGRESS; - bkn_skb_tx_timestamp(skb); + skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS; + skb_tx_timestamp(skb); } else if (priv->tx_hwts & HWTSTAMP_TX_ONESTEP_SYNC) { @@ -6576,8 +6330,8 @@ bkn_tx(struct sk_buff *skb, struct net_device *dev) ((priv->port >= 0) ? meta : NULL)); if (KNET_SKB_CB(skb)->ts != 0) { - bkn_skb_tx_flags(skb) |= SKBTX_IN_PROGRESS; - bkn_skb_tx_timestamp(skb); + skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS; + skb_tx_timestamp(skb); } } @@ -6596,10 +6350,10 @@ bkn_tx(struct sk_buff *skb, struct net_device *dev) pktlen = pktlen + FCS_SZ; } desc->dma_size = pktlen; - desc->skb_dma = BKN_DMA_MAP_SINGLE(sinfo->dma_dev, + desc->skb_dma = dma_map_single(sinfo->dma_dev, pktdata, desc->dma_size, - BKN_DMA_TODEV); - if (BKN_DMA_MAPPING_ERROR(sinfo->dma_dev, desc->skb_dma)) { + DMA_TO_DEVICE); + if (dma_mapping_error(sinfo->dma_dev, desc->skb_dma)) { stats_flags = u64_stats_update_begin_irqsave(&priv->stats.syncp); u64_stats_inc(&priv->stats.tx_dropped); u64_stats_update_end_irqrestore(&priv->stats.syncp, stats_flags); @@ -6653,7 +6407,7 @@ bkn_tx(struct sk_buff *skb, struct net_device *dev) sinfo->tx.pkts_d_dma_resrc++; bkn_suspend_tx(sinfo); spin_unlock_irqrestore(&sinfo->lock, flags); - return BKN_NETDEV_TX_BUSY; + return NETDEV_TX_BUSY; } NETDEV_UPDATE_TRANS_START_TIME(dev); @@ -6938,7 +6692,6 @@ bkn_create_sinfo(int dev_no) return sinfo; } -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29)) static const struct net_device_ops bkn_netdev_ops = { .ndo_open = bkn_open, .ndo_stop = bkn_stop, @@ -6956,7 +6709,6 @@ static const struct net_device_ops bkn_netdev_ops = { .ndo_poll_controller = bkn_poll_controller, #endif }; -#endif static void bkn_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *drvinfo) @@ -7099,9 +6851,6 @@ bkn_init_ndev(u8 *mac, char *name) DBG_WARN(("Error allocating Ethernet device.\n")); return NULL; } -#ifdef SET_MODULE_OWNER - SET_MODULE_OWNER(dev); -#endif /* Set the device MAC address */ if ((mac[0] | mac[1] | mac[2] | mac[3] | mac[4] | mac[5]) == 0) { @@ -7124,20 +6873,8 @@ bkn_init_ndev(u8 *mac, char *name) #endif /* Device vectors */ -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29)) dev->netdev_ops = &bkn_netdev_ops; dev->priv_flags |= IFF_LIVE_ADDR_CHANGE; -#else - dev->open = bkn_open; - dev->hard_start_xmit = bkn_tx; - dev->stop = bkn_stop; - dev->set_multicast_list = bkn_set_multicast_list; - dev->do_ioctl = NULL; - dev->change_mtu = bkn_change_mtu; -#ifdef CONFIG_NET_POLL_CONTROLLER - dev->poll_controller = bkn_poll_controller; -#endif -#endif priv = netdev_priv(dev); priv->speed = SPEED_UNKNOWN; priv->duplex = DUPLEX_UNKNOWN; @@ -7149,7 +6886,7 @@ bkn_init_ndev(u8 *mac, char *name) u64_stats_init(&priv->stats.syncp); u64_stats_init(&priv->hw_stats.syncp); - bkn_dev_net_set(dev, current->nsproxy->net_ns); + dev_net_set(dev, current->nsproxy->net_ns); DBG_VERB(("Created Ethernet device %s.\n", dev->name)); @@ -10420,25 +10157,25 @@ bkn_hw_tstamp_ioctl_cmd_cb_unregister(knet_hw_tstamp_ioctl_cmd_cb_f hw_tstamp_io return 0; } -LKM_EXPORT_SYM(bkn_rx_skb_cb_register); -LKM_EXPORT_SYM(bkn_rx_skb_cb_unregister); -LKM_EXPORT_SYM(bkn_tx_skb_cb_register); -LKM_EXPORT_SYM(bkn_tx_skb_cb_unregister); -LKM_EXPORT_SYM(bkn_filter_cb_register); -LKM_EXPORT_SYM(bkn_filter_cb_unregister); -LKM_EXPORT_SYM(bkn_hw_tstamp_enable_cb_register); -LKM_EXPORT_SYM(bkn_hw_tstamp_enable_cb_unregister); -LKM_EXPORT_SYM(bkn_hw_tstamp_disable_cb_register); -LKM_EXPORT_SYM(bkn_hw_tstamp_disable_cb_unregister); -LKM_EXPORT_SYM(bkn_hw_tstamp_tx_time_get_cb_register); -LKM_EXPORT_SYM(bkn_hw_tstamp_tx_time_get_cb_unregister); -LKM_EXPORT_SYM(bkn_hw_tstamp_tx_meta_get_cb_register); -LKM_EXPORT_SYM(bkn_hw_tstamp_tx_meta_get_cb_unregister); -LKM_EXPORT_SYM(bkn_hw_tstamp_ptp_clock_index_cb_register); -LKM_EXPORT_SYM(bkn_hw_tstamp_ptp_clock_index_cb_unregister); -LKM_EXPORT_SYM(bkn_hw_tstamp_rx_time_upscale_cb_register); -LKM_EXPORT_SYM(bkn_hw_tstamp_rx_time_upscale_cb_unregister); -LKM_EXPORT_SYM(bkn_hw_tstamp_rx_pre_process_cb_register); -LKM_EXPORT_SYM(bkn_hw_tstamp_rx_pre_process_cb_unregister); -LKM_EXPORT_SYM(bkn_hw_tstamp_ioctl_cmd_cb_register); -LKM_EXPORT_SYM(bkn_hw_tstamp_ioctl_cmd_cb_unregister); +EXPORT_SYMBOL(bkn_rx_skb_cb_register); +EXPORT_SYMBOL(bkn_rx_skb_cb_unregister); +EXPORT_SYMBOL(bkn_tx_skb_cb_register); +EXPORT_SYMBOL(bkn_tx_skb_cb_unregister); +EXPORT_SYMBOL(bkn_filter_cb_register); +EXPORT_SYMBOL(bkn_filter_cb_unregister); +EXPORT_SYMBOL(bkn_hw_tstamp_enable_cb_register); +EXPORT_SYMBOL(bkn_hw_tstamp_enable_cb_unregister); +EXPORT_SYMBOL(bkn_hw_tstamp_disable_cb_register); +EXPORT_SYMBOL(bkn_hw_tstamp_disable_cb_unregister); +EXPORT_SYMBOL(bkn_hw_tstamp_tx_time_get_cb_register); +EXPORT_SYMBOL(bkn_hw_tstamp_tx_time_get_cb_unregister); +EXPORT_SYMBOL(bkn_hw_tstamp_tx_meta_get_cb_register); +EXPORT_SYMBOL(bkn_hw_tstamp_tx_meta_get_cb_unregister); +EXPORT_SYMBOL(bkn_hw_tstamp_ptp_clock_index_cb_register); +EXPORT_SYMBOL(bkn_hw_tstamp_ptp_clock_index_cb_unregister); +EXPORT_SYMBOL(bkn_hw_tstamp_rx_time_upscale_cb_register); +EXPORT_SYMBOL(bkn_hw_tstamp_rx_time_upscale_cb_unregister); +EXPORT_SYMBOL(bkn_hw_tstamp_rx_pre_process_cb_register); +EXPORT_SYMBOL(bkn_hw_tstamp_rx_pre_process_cb_unregister); +EXPORT_SYMBOL(bkn_hw_tstamp_ioctl_cmd_cb_register); +EXPORT_SYMBOL(bkn_hw_tstamp_ioctl_cmd_cb_unregister); diff --git a/sdk-6.5.24/systems/linux/kernel/modules/bcm-ptp-clock/bcm-ptp-clock.c b/sdk-6.5.24/systems/linux/kernel/modules/bcm-ptp-clock/bcm-ptp-clock.c index ecc020b9c..a82a657e4 100644 --- a/sdk-6.5.24/systems/linux/kernel/modules/bcm-ptp-clock/bcm-ptp-clock.c +++ b/sdk-6.5.24/systems/linux/kernel/modules/bcm-ptp-clock/bcm-ptp-clock.c @@ -54,24 +54,24 @@ MODULE_LICENSE("GPL"); /* Configuration Parameters */ static int debug; -LKM_MOD_PARAM(debug, "i", int, 0); +module_param(debug, int, 0); MODULE_PARM_DESC(debug, "Debug level (default 0)"); static int pci_cos; static int network_transport; -LKM_MOD_PARAM(network_transport, "i", int, 0); +module_param(network_transport, int, 0); MODULE_PARM_DESC(network_transport, "Transport Type (default - Detect from packet)"); static char *base_dev_name = "ptp0"; -LKM_MOD_PARAM(base_dev_name, "s", charp, 0); +module_param(base_dev_name, charp, 0); MODULE_PARM_DESC(base_dev_name, "Base device name (default ptp0, ptp1, etc.)"); static int fw_core; -LKM_MOD_PARAM(fw_core, "i", int, 0); +module_param(fw_core, int, 0); MODULE_PARM_DESC(fw_core, "Firmware core (default 0)"); @@ -96,16 +96,6 @@ MODULE_PARM_DESC(fw_core, #define DBG_ERR(_s) do { if (1) gprintk _s; } while (0) -#ifdef LINUX_BDE_DMA_DEVICE_SUPPORT -#define DMA_DEV device -#define DMA_ALLOC_COHERENT(d,s,h) dma_alloc_coherent(d,s,h,GFP_ATOMIC|GFP_DMA32) -#define DMA_FREE_COHERENT(d,s,a,h) dma_free_coherent(d,s,a,h) -#else -#define DMA_DEV pci_dev -#define DMA_ALLOC_COHERENT(d,s,h) pci_alloc_consistent(d,s,h) -#define DMA_FREE_COHERENT(d,s,a,h) pci_free_consistent(d,s,a,h) -#endif - /* Type length in bytes */ #define BKSYNC_PACKLEN_U8 1 #define BKSYNC_PACKLEN_U16 2 @@ -253,11 +243,7 @@ enum (_ptp_msg_type == IEEE1588_MSGTYPE_SYNC)) -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) -#define HWTSTAMP_TX_ONESTEP_SYNC 2 -#else #include -#endif /* @@ -446,7 +432,7 @@ struct bksync_ptp_priv { volatile bksync_evlog_t *evlog; /* dma-able address for fw updates */ dma_addr_t dma_mem; int dma_mem_size; - struct DMA_DEV *dma_dev; /* Required for DMA memory control */ + struct device *dma_dev; /* Required for DMA memory control */ int num_pports; int timekeep_status; u32 mirror_encap_bmp; @@ -2532,9 +2518,10 @@ static void bksync_ptp_fw_data_alloc(void) if (ptp_priv->evlog == NULL) { DBG_ERR(("Allocate memory for event log\n")); - ptp_priv->evlog = DMA_ALLOC_COHERENT(ptp_priv->dma_dev, + ptp_priv->evlog = dma_alloc_coherent(ptp_priv->dma_dev, ptp_priv->dma_mem_size, - &dma_mem); + &dma_mem, + GFP_ATOMIC|GFP_DMA32); } if (ptp_priv->evlog != NULL) { @@ -2552,7 +2539,7 @@ static void bksync_ptp_fw_data_alloc(void) static void bksync_ptp_fw_data_free(void) { if (ptp_priv->evlog != NULL) { - DMA_FREE_COHERENT(ptp_priv->dma_dev, ptp_priv->dma_mem_size, + dma_free_coherent(ptp_priv->dma_dev, ptp_priv->dma_mem_size, (void *)ptp_priv->evlog, ptp_priv->dma_mem); ptp_priv->evlog = NULL; } diff --git a/sdk-6.5.24/systems/linux/kernel/modules/include/lkm.h b/sdk-6.5.24/systems/linux/kernel/modules/include/lkm.h index 0b2dab92f..8cbfd2a50 100644 --- a/sdk-6.5.24/systems/linux/kernel/modules/include/lkm.h +++ b/sdk-6.5.24/systems/linux/kernel/modules/include/lkm.h @@ -17,13 +17,8 @@ #include #include -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0) -#include -#endif -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32) /* The version kconfig.h became available in. */ #include -#endif #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0) #if defined(INCLUDE_KNET) && LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0) #ifdef CONFIG_NF_CONNTRACK_MODULE @@ -32,22 +27,12 @@ #endif #include #endif -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39) -#include -#endif #include #if LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0) #define HAVE_COMPAT_IOCTL 1 #define HAVE_UNLOCKED_IOCTL 1 #endif -/* Helper defines for multi-version kernel support */ -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0) -#define LKM_2_4 -#else -#define LKM_2_6 -#endif - #include /* printk() */ #include /* everything... */ #include /* error codes */ @@ -67,32 +52,10 @@ #include #include -#ifdef CONFIG_DEVFS_FS -#include -#endif - #define PROC_INTERFACE_KERN_VER_3_10 (LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)) /* Compatibility Macros */ -#ifdef LKM_2_4 - -#include -#include -#define LKM_MOD_PARAM(n,ot,nt,d) MODULE_PARM(n,ot) -#define LKM_MOD_PARAM_ARRAY(n,ot,nt,c,d) MODULE_PARM(n,ot) -#define LKM_EXPORT_SYM(s) -#define _free_netdev kfree - -#else /* LKM_2_6 */ - -#define LKM_MOD_PARAM(n,ot,nt,d) module_param(n,nt,d) -#define LKM_MOD_PARAM_ARRAY(n,ot,nt,c,d) module_param_array(n,nt,c,d) -#define LKM_EXPORT_SYM(s) EXPORT_SYMBOL(s) -#define _free_netdev free_netdev - -#endif /* LKM_2_x */ - #ifndef list_for_each_safe #define list_for_each_safe(l,t,i) t = 0; list_for_each((l),(i)) #endif diff --git a/sdk-6.5.24/systems/linux/kernel/modules/shared/gmodule.c b/sdk-6.5.24/systems/linux/kernel/modules/shared/gmodule.c index 55a9ffc6c..8dba72447 100644 --- a/sdk-6.5.24/systems/linux/kernel/modules/shared/gmodule.c +++ b/sdk-6.5.24/systems/linux/kernel/modules/shared/gmodule.c @@ -15,19 +15,6 @@ /* Module Vector Table */ static gmodule_t* _gmodule = NULL; - -/* Allow DEVFS Support on 2.4 Kernels */ -#if defined(LKM_2_4) && defined(CONFIG_DEVFS_FS) -#define GMODULE_CONFIG_DEVFS_FS -#endif - - -#ifdef GMODULE_CONFIG_DEVFS_FS -devfs_handle_t devfs_handle = NULL; -#endif - - - static int _dbg_enable = 0; static int @@ -349,11 +336,7 @@ cleanup_module(void) } /* Finally, remove ourselves from the universe */ -#ifdef GMODULE_CONFIG_DEVFS_FS - if(devfs_handle) devfs_unregister(devfs_handle); -#else unregister_chrdev(_gmodule->major, _gmodule->name); -#endif } int __init @@ -367,21 +350,6 @@ init_module(void) /* Register ourselves */ -#ifdef GMODULE_CONFIG_DEVFS_FS - devfs_handle = devfs_register(NULL, - _gmodule->name, - DEVFS_FL_NONE, - _gmodule->major, - _gmodule->minor, - S_IFCHR | S_IRUGO | S_IWUGO, - &_gmodule_fops, - NULL); - if(!devfs_handle) { - printk(KERN_WARNING "%s: can't register device with devfs", - _gmodule->name); - } - rc = 0; -#else rc = register_chrdev(_gmodule->major, _gmodule->name, &_gmodule_fops); @@ -394,17 +362,12 @@ init_module(void) if(_gmodule->major == 0) { _gmodule->major = rc; } -#endif /* Specific module Initialization */ if(_gmodule->init) { int rc; if((rc = _gmodule->init()) < 0) { -#ifdef GMODULE_CONFIG_DEVFS_FS - if(devfs_handle) devfs_unregister(devfs_handle); -#else unregister_chrdev(_gmodule->major, _gmodule->name); -#endif return rc; } } diff --git a/sdk-6.5.27/systems/bde/linux/include/linux-bde.h b/sdk-6.5.27/systems/bde/linux/include/linux-bde.h index 40b41454b..a65425733 100755 --- a/sdk-6.5.27/systems/bde/linux/include/linux-bde.h +++ b/sdk-6.5.27/systems/bde/linux/include/linux-bde.h @@ -62,21 +62,6 @@ #ifdef __KERNEL__ #include -/* Key stone and Raptor has 2.6.21 but don't have definition */ -#if defined(KEYSTONE) || defined(RAPTOR) -#if (LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,21)) - #ifdef PHYS_ADDRS_ARE_64BITS - typedef u64 phys_addr_t; - #else - typedef u32 phys_addr_t; - #endif - #endif -#endif -#endif - - -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)) -#define LINUX_BDE_DMA_DEVICE_SUPPORT #endif #define LINUX_KERNEL_BDE_NAME "linux-kernel-bde" @@ -262,7 +247,7 @@ extern int lkbde_intr_cb_register(int d, #ifdef BCM_SAND_SUPPORT #include -#if defined(__DUNE_LINUX_BCM_CPU_PCIE__) && LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) +#if defined(__DUNE_LINUX_BCM_CPU_PCIE__) #ifndef _SIMPLE_MEMORY_ALLOCATION_ #define _SIMPLE_MEMORY_ALLOCATION_ 1 #endif diff --git a/sdk-6.5.27/systems/bde/linux/kernel/linux-kernel-bde.c b/sdk-6.5.27/systems/bde/linux/kernel/linux-kernel-bde.c index e27496220..976010016 100644 --- a/sdk-6.5.27/systems/bde/linux/kernel/linux-kernel-bde.c +++ b/sdk-6.5.27/systems/bde/linux/kernel/linux-kernel-bde.c @@ -81,19 +81,19 @@ MODULE_LICENSE("GPL"); #define BDE_PCIE_MAXPAYLOAD_DEFAULT 256 #endif int maxpayload = BDE_PCIE_MAXPAYLOAD_DEFAULT; -LKM_MOD_PARAM(maxpayload, "i", int, 0); +module_param(maxpayload, int, 0); MODULE_PARM_DESC(maxpayload, "Limit maximum payload size and request size on PCIe devices"); /* Use MSI or MSIX interrupts */ int usemsi = -1; -LKM_MOD_PARAM(usemsi, "i", int, 0); +module_param(usemsi, int, 0); MODULE_PARM_DESC(usemsi, "Use MSI/ MSIX interrupts if supported by kernel"); /* Ignore all recognized devices (for debug purposes) */ int nodevices; -LKM_MOD_PARAM(nodevices, "i", int, 0); +module_param(nodevices, int, 0); MODULE_PARM_DESC(nodevices, "Ignore all recognized devices (default no)"); @@ -116,10 +116,6 @@ int msixcnt = 1; #define IRQF_SHARED SA_SHIRQ #endif -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) -typedef unsigned long resource_size_t; -#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) */ - #ifdef BCM_ICS #define BCM_ICS_CMIC_BASE 0x08000000 #else @@ -127,8 +123,8 @@ typedef unsigned long resource_size_t; /* Force interrupt line */ static int forceirq = -1; static uint32_t forceirqubm = 0xffffffff; -LKM_MOD_PARAM(forceirq, "i", int, 0); -LKM_MOD_PARAM(forceirqubm, "i", uint, 0); +module_param(forceirq, int, 0); +module_param(forceirqubm, uint, 0); MODULE_PARM_DESC(forceirq, "Override IRQ line assigned by boot loader"); MODULE_PARM_DESC(forceirqubm, @@ -136,13 +132,13 @@ MODULE_PARM_DESC(forceirqubm, /* Create SPI slave device (cannot be probed) */ static uint32_t spi_devid = 0; -LKM_MOD_PARAM(spi_devid, "i", uint, 0); +module_param(spi_devid, uint, 0); MODULE_PARM_DESC(spi_devid, "Create SPI slave device using this device ID"); /* Select SPI device revision (cannot be probed) */ static uint32_t spi_revid = 1; -LKM_MOD_PARAM(spi_revid, "i", uint, 0); +module_param(spi_revid, uint, 0); MODULE_PARM_DESC(spi_revid, "Select device revision for SPI slave device"); @@ -150,21 +146,21 @@ MODULE_PARM_DESC(spi_revid, /* Debug output */ static int debug; -LKM_MOD_PARAM(debug, "i", int, 0); +module_param(debug, int, 0); MODULE_PARM_DESC(debug, "Set debug level (default 0"); /* Use high memory for DMA */ /* module param for probing EB devices. */ static char *eb_bus; -LKM_MOD_PARAM(eb_bus, "s", charp, 0); +module_param(eb_bus, charp, 0); MODULE_PARM_DESC(eb_bus, "List of EB devices on platform. Input format (BA=%x IRQ=%d RD16=%d WR16=%d"); #ifdef KEYSTONE /* Force SPI Frequency */ static int spifreq = 0; -LKM_MOD_PARAM(spifreq, "i", int, 0); +module_param(spifreq, int, 0); MODULE_PARM_DESC(spifreq, "Force SPI Frequency for Keystone CPU (0 for default frequency)"); #endif @@ -173,29 +169,17 @@ MODULE_PARM_DESC(spifreq, /* Periodic timer to prevent stuck interrupt */ static int isrtickms = 1000; -LKM_MOD_PARAM(isrtickms, "i", int, (S_IRUGO | S_IWUSR)); +module_param(isrtickms, int, (S_IRUGO | S_IWUSR)); MODULE_PARM_DESC(isrtickms, "Periodic ISR tick in milliseconds."); /* Debug purpose to simulate stuck interrupts */ static int dma_lock = 0; -LKM_MOD_PARAM(dma_lock, "i", int, (S_IRUGO | S_IWUSR)); +module_param(dma_lock, int, (S_IRUGO | S_IWUSR)); MODULE_PARM_DESC(dma_lock, "Simulation of stuck interrupts."); /* Compatibility */ -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,30)) -#define _ISR_RET irqreturn_t -#else -#define _ISR_RET int -#endif -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,19)) -#define _ISR_PARAMS(_i,_d,_r) int _i, void *_d -#else -#define _ISR_PARAMS(_i,_d,_r) int _i, void *_d, struct pt_regs *_r -typedef irqreturn_t (*irq_handler_t)(int _i, void *_d, struct pt_regs *_r); -#endif -#define SYNC_IRQ(_i) synchronize_irq(_i) char * ___strtok; char * strtok(char * s,const char * ct) { @@ -215,8 +199,8 @@ char * strtok(char * s,const char * ct) ___strtok = send; return (sbegin); } -LKM_EXPORT_SYM(___strtok); -LKM_EXPORT_SYM(strtok); +EXPORT_SYMBOL(___strtok); +EXPORT_SYMBOL(strtok); /* PCIe capabilities */ #ifndef PCI_CAP_ID_EXP @@ -244,12 +228,6 @@ LKM_EXPORT_SYM(strtok); #define PCI_EXT_CAP_ID_VNDR 0x0b #endif -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) -#define PCI_FIND_DEV(_d, _v, _fr) pci_find_device(_d, _v, _fr) -#else -#define PCI_FIND_DEV(_d, _v, _fr) pci_get_device(_d, _v, _fr) -#endif - #if defined(CONFIG_RESOURCES_64BIT) || defined(CONFIG_PHYS_ADDR_T_64BIT) #define PHYS_ADDR_IS_64BIT #endif @@ -310,9 +288,7 @@ typedef struct bde_ctrl_s { #define pci_device dev._pci_dev #define spi_device dev._spi_dev -#ifdef LINUX_BDE_DMA_DEVICE_SUPPORT struct device *dma_dev; -#endif struct memwin_s iowin[BDE_NUM_IOWIN_MAX]; @@ -823,9 +799,7 @@ iproc_cmicd_probe(struct platform_device *pldev) ctrl->isr = NULL; ctrl ->isr_data = NULL; -#ifdef LINUX_BDE_DMA_DEVICE_SUPPORT ctrl->dma_dev = &pldev->dev; -#endif /* Let's boogie */ _bde_add_device(); @@ -1886,9 +1860,9 @@ p2p_bridge(void) uint8 bridge_ctrl; uint8 rc_index; - if ((dev = PCI_FIND_DEV(DC21150_VENDOR_ID, DC21150_DEVICE_ID, NULL)) != NULL || - (dev = PCI_FIND_DEV(HINT_HB4_VENDOR_ID, HINT_HB4_DEVICE_ID, NULL)) != NULL || - (dev = PCI_FIND_DEV(PI7C8150_VENDOR_ID, PI7C8150_DEVICE_ID, NULL)) != NULL) { + if ((dev = pci_get_device(DC21150_VENDOR_ID, DC21150_DEVICE_ID, NULL)) != NULL || + (dev = pci_get_device(HINT_HB4_VENDOR_ID, HINT_HB4_DEVICE_ID, NULL)) != NULL || + (dev = pci_get_device(PI7C8150_VENDOR_ID, PI7C8150_DEVICE_ID, NULL)) != NULL) { if (debug >= 1) gprintk("fixing up PCI-to-PCI bridge\n"); /* Adjust command register */ @@ -1912,7 +1886,7 @@ p2p_bridge(void) /* Avoid DMA data corruption */ if (dev->vendor == HINT_HB4_VENDOR_ID) { /* Fix for HiNT bridge and BCM4704 DMA problem */ - if ((dev = PCI_FIND_DEV(BCM4704_VENDOR_ID, BCM4704_DEVICE_ID, NULL)) != NULL) { + if ((dev = pci_get_device(BCM4704_VENDOR_ID, BCM4704_DEVICE_ID, NULL)) != NULL) { /* Reset PrefetchEn (PE) */ pci_write_config_dword(dev, 0x8c, 1); if (debug >= 1) { @@ -1922,7 +1896,7 @@ p2p_bridge(void) } } /* Enable fast back-to-back read/write */ - if ((dev = PCI_FIND_DEV(PI7C8150_VENDOR_ID, PI7C8150_DEVICE_ID, NULL)) != NULL) { + if ((dev = pci_get_device(PI7C8150_VENDOR_ID, PI7C8150_DEVICE_ID, NULL)) != NULL) { pci_read_config_word(dev, PCI_COMMAND, &cmd); cmd |= PCI_COMMAND_FAST_BACK; pci_read_config_byte(dev, PCI_BRIDGE_CONTROL, &bridge_ctrl); @@ -1935,19 +1909,19 @@ p2p_bridge(void) for(rc_index = 0; rc_index < MAX_RC_NUM; rc_index++) { dev_on_rc = pci_do_rc_dev_find(rc_index); if (dev_on_rc != NULL ) { - dev = PCI_FIND_DEV(0x184e, 0x1004, NULL); + dev = pci_get_device(0x184e, 0x1004, NULL); if (dev != NULL ) { pci_write_config_dword(dev,0x78,MAX_PAYLOAD_256B | MAX_READ_REQ_256B); } } } - if ((dev = PCI_FIND_DEV(0x14e4, 0xb634, NULL)) != NULL) { + if ((dev = pci_get_device(0x14e4, 0xb634, NULL)) != NULL) { pci_write_config_dword(dev,0x78,MAX_PAYLOAD_256B | MAX_READ_REQ_256B); } - if ((dev = PCI_FIND_DEV(PCI_VNDID_PERICOM, PCI_DEVID_PI7C9X130, NULL)) != NULL) { + if ((dev = pci_get_device(PCI_VNDID_PERICOM, PCI_DEVID_PI7C9X130, NULL)) != NULL) { /* * Configure the PCIE cap: Max payload size: 256, Max Read * Request size: 256, disabling relax ordering. @@ -1957,8 +1931,8 @@ p2p_bridge(void) MAX_PAYLOAD_256B | MAX_READ_REQ_256B); } - if ((dev = PCI_FIND_DEV(FSL_VENDOR_ID, FSL8548PCIE_DEVICE_ID, NULL)) != NULL || - (dev = PCI_FIND_DEV(FSL_VENDOR_ID, FSL2020EPCIE_DEVICE_ID, NULL)) != NULL) { + if ((dev = pci_get_device(FSL_VENDOR_ID, FSL8548PCIE_DEVICE_ID, NULL)) != NULL || + (dev = pci_get_device(FSL_VENDOR_ID, FSL2020EPCIE_DEVICE_ID, NULL)) != NULL) { /* * Configure the PCIE cap: Max payload size: 256, Max Read * Request size: 256, disabling relax ordering. @@ -1967,8 +1941,8 @@ p2p_bridge(void) pci_write_config_dword(dev, FSL8548PCIE_DEV_CTRL_REG, MAX_PAYLOAD_256B | MAX_READ_REQ_256B); } - if ((dev = PCI_FIND_DEV(BCM4716_VENDOR_ID, BCM4716PCIE_DEVICE_ID, NULL)) != NULL || - (dev = PCI_FIND_DEV(BCM53000_VENDOR_ID, BCM53000PCIE_DEVICE_ID, NULL)) != NULL) { + if ((dev = pci_get_device(BCM4716_VENDOR_ID, BCM4716PCIE_DEVICE_ID, NULL)) != NULL || + (dev = pci_get_device(BCM53000_VENDOR_ID, BCM53000PCIE_DEVICE_ID, NULL)) != NULL) { uint32 tmp, maxpayld, device_bmp=0, mask; unsigned long addr; uint16 tmp16, tmp161; @@ -1977,7 +1951,7 @@ p2p_bridge(void) pcie0 = dev; bus0 = dev->bus->number; - if ((pcie1 = PCI_FIND_DEV(BCM53000_VENDOR_ID, BCM53000PCIE_DEVICE_ID, pcie0)) != NULL) { + if ((pcie1 = pci_get_device(BCM53000_VENDOR_ID, BCM53000PCIE_DEVICE_ID, pcie0)) != NULL) { bus1 = pcie1->bus->number; } @@ -2074,7 +2048,7 @@ p2p_bridge(void) * The device supports 128, 512, and 1024 max payload sizes. */ dev = NULL; - while ((dev = PCI_FIND_DEV(PCI_VENDOR_ID_PLX, PCI_ANY_ID, dev)) != NULL) { + while ((dev = pci_get_device(PCI_VENDOR_ID_PLX, PCI_ANY_ID, dev)) != NULL) { if ((dev->device == PLX_PEX8608_DEV_ID) || (dev->device == PLX_PEX8617_DEV_ID)) { uint16 ctrl_reg; @@ -2602,7 +2576,7 @@ _pci_probe(struct pci_dev *dev, const struct pci_device_id *ent) } #endif - if ((PCI_FIND_DEV(BCM4704_VENDOR_ID, BCM4704_DEVICE_ID, NULL)) != NULL) { + if ((pci_get_device(BCM4704_VENDOR_ID, BCM4704_DEVICE_ID, NULL)) != NULL) { /* * Decrease the PCI bus priority for the CPU for better overall * system performance. This change significantly reduces the @@ -2620,23 +2594,23 @@ _pci_probe(struct pci_dev *dev, const struct pci_device_id *ent) } } - if ((PCI_FIND_DEV(SIBYTE_PCI_VENDOR_ID, SIBYTE_PCI_DEVICE_ID, NULL)) != NULL) { + if ((pci_get_device(SIBYTE_PCI_VENDOR_ID, SIBYTE_PCI_DEVICE_ID, NULL)) != NULL) { /* * The BCM91125CPCI CPU boards with a PCI-PCI bridge use the same * interrupt line for all switch ships behind the bridge. */ - if (PCI_FIND_DEV(DC21150_VENDOR_ID, DC21150_DEVICE_ID, NULL) || - PCI_FIND_DEV(HINT_HB4_VENDOR_ID, HINT_HB4_DEVICE_ID, NULL) || - PCI_FIND_DEV(PI7C8150_VENDOR_ID, PI7C8150_DEVICE_ID, NULL)) { + if (pci_get_device(DC21150_VENDOR_ID, DC21150_DEVICE_ID, NULL) || + pci_get_device(HINT_HB4_VENDOR_ID, HINT_HB4_DEVICE_ID, NULL) || + pci_get_device(PI7C8150_VENDOR_ID, PI7C8150_DEVICE_ID, NULL)) { /* * By default we try to guess the correct IRQ based on the design. * For now we only look at the bridge vendor, but it may be necessary * to look at the switch chip configuration as well. */ if (forceirq == -1) { - if ((PCI_FIND_DEV(HINT_HB4_VENDOR_ID, HINT_HB4_DEVICE_ID, NULL)) || + if ((pci_get_device(HINT_HB4_VENDOR_ID, HINT_HB4_DEVICE_ID, NULL)) || ((dev->device == BCM5674_DEVICE_ID) && - (PCI_FIND_DEV(PI7C8150_VENDOR_ID, PI7C8150_DEVICE_ID, NULL)))) { + (pci_get_device(PI7C8150_VENDOR_ID, PI7C8150_DEVICE_ID, NULL)))) { forceirq = 58; } else { forceirq = 56; @@ -2645,9 +2619,9 @@ _pci_probe(struct pci_dev *dev, const struct pci_device_id *ent) } } - if (((PCI_FIND_DEV(BCM58525_PCI_VENDOR_ID, BCM58525_PCI_DEVICE_ID, NULL)) != NULL) || - ((PCI_FIND_DEV(BCM58525_PCI_VENDOR_ID, BCM58522_PCI_DEVICE_ID, NULL)) != NULL) || - ((PCI_FIND_DEV(BCM58712_PCI_VENDOR_ID, BCM58712_PCI_DEVICE_ID, NULL)) != NULL) ) { + if (((pci_get_device(BCM58525_PCI_VENDOR_ID, BCM58525_PCI_DEVICE_ID, NULL)) != NULL) || + ((pci_get_device(BCM58525_PCI_VENDOR_ID, BCM58522_PCI_DEVICE_ID, NULL)) != NULL) || + ((pci_get_device(BCM58712_PCI_VENDOR_ID, BCM58712_PCI_DEVICE_ID, NULL)) != NULL) ) { /* BCM58525/BCM58712 CPU boards support 128 Max payload size */ if (maxpayload && maxpayload != 128) { maxpayload = 128; @@ -2841,9 +2815,7 @@ _pci_probe(struct pci_dev *dev, const struct pci_device_id *ent) } -#ifdef LINUX_BDE_DMA_DEVICE_SUPPORT ctrl->dma_dev = &dev->dev; -#endif if (debug >= 2) { gprintk("_pci_probe: configured dev:0x%x rev:0x%x with base_addresses: 0x%lx 0x%lx\n", @@ -3679,8 +3651,8 @@ _run_isrs(bde_ctrl_t *ctrl) } } -static _ISR_RET -_isr(_ISR_PARAMS(irq, dev_id, iregs)) +static irqreturn_t +_isr(int irq, void *dev_id) { bde_ctrl_t *ctrl = (bde_ctrl_t *) dev_id; @@ -3939,7 +3911,7 @@ _interrupt_disconnect(int d) ctrl->fmask = 0; if (ctrl->isr) { /* Primary handler still active */ - SYNC_IRQ(ctrl->iLine); + synchronize_irq(ctrl->iLine); return 0; } } else { @@ -3950,7 +3922,7 @@ _interrupt_disconnect(int d) ctrl->isr_data = NULL; if (ctrl->isr2) { /* Secondary handler still active */ - SYNC_IRQ(ctrl->iLine); + synchronize_irq(ctrl->iLine); return 0; } } @@ -4345,7 +4317,7 @@ lkbde_mem_write(int d, uint32 addr, uint32 *buf) *((uint32_t*)full_addr) = *buf; return 0; } -LKM_EXPORT_SYM(lkbde_mem_write); +EXPORT_SYMBOL(lkbde_mem_write); int lkbde_mem_read(int d, uint32 addr, uint32 *buf) @@ -4360,7 +4332,7 @@ lkbde_mem_read(int d, uint32 addr, uint32 *buf) *buf = *((uint32_t*)full_addr); return 0; } -LKM_EXPORT_SYM(lkbde_mem_read); +EXPORT_SYMBOL(lkbde_mem_read); #endif /* BCM_SAND_SUPPORT */ static ibde_t _ibde = { @@ -4555,11 +4527,7 @@ lkbde_get_dma_dev(int d) return NULL; } -#ifdef LINUX_BDE_DMA_DEVICE_SUPPORT return (void *)_devices[d].dma_dev; -#else - return (void *)_devices[d].pci_device; -#endif } void * @@ -4768,25 +4736,25 @@ lkbde_intr_cb_register(int d, /* * Export functions */ -LKM_EXPORT_SYM(linux_bde_create); -LKM_EXPORT_SYM(linux_bde_destroy); -LKM_EXPORT_SYM(lkbde_get_dev_phys); -LKM_EXPORT_SYM(lkbde_get_dev_virt); -LKM_EXPORT_SYM(lkbde_get_dev_resource); -LKM_EXPORT_SYM(lkbde_get_hw_dev); -LKM_EXPORT_SYM(lkbde_get_dma_dev); -LKM_EXPORT_SYM(lkbde_irq_mask_set); -LKM_EXPORT_SYM(lkbde_irq_mask_get); -LKM_EXPORT_SYM(lkbde_get_dev_phys_hi); -LKM_EXPORT_SYM(lkbde_dev_state_set); -LKM_EXPORT_SYM(lkbde_dev_state_get); -LKM_EXPORT_SYM(lkbde_dev_instid_set); -LKM_EXPORT_SYM(lkbde_dev_instid_get); +EXPORT_SYMBOL(linux_bde_create); +EXPORT_SYMBOL(linux_bde_destroy); +EXPORT_SYMBOL(lkbde_get_dev_phys); +EXPORT_SYMBOL(lkbde_get_dev_virt); +EXPORT_SYMBOL(lkbde_get_dev_resource); +EXPORT_SYMBOL(lkbde_get_hw_dev); +EXPORT_SYMBOL(lkbde_get_dma_dev); +EXPORT_SYMBOL(lkbde_irq_mask_set); +EXPORT_SYMBOL(lkbde_irq_mask_get); +EXPORT_SYMBOL(lkbde_get_dev_phys_hi); +EXPORT_SYMBOL(lkbde_dev_state_set); +EXPORT_SYMBOL(lkbde_dev_state_get); +EXPORT_SYMBOL(lkbde_dev_instid_set); +EXPORT_SYMBOL(lkbde_dev_instid_get); #ifdef BCM_SAND_SUPPORT -LKM_EXPORT_SYM(lkbde_cpu_write); -LKM_EXPORT_SYM(lkbde_cpu_read); -LKM_EXPORT_SYM(lkbde_cpu_pci_register); +EXPORT_SYMBOL(lkbde_cpu_write); +EXPORT_SYMBOL(lkbde_cpu_read); +EXPORT_SYMBOL(lkbde_cpu_pci_register); #endif -LKM_EXPORT_SYM(lkbde_is_dev_managed_by_instance); -LKM_EXPORT_SYM(lkbde_get_inst_devs); -LKM_EXPORT_SYM(lkbde_intr_cb_register); +EXPORT_SYMBOL(lkbde_is_dev_managed_by_instance); +EXPORT_SYMBOL(lkbde_get_inst_devs); +EXPORT_SYMBOL(lkbde_intr_cb_register); diff --git a/sdk-6.5.27/systems/bde/linux/kernel/linux_dma.c b/sdk-6.5.27/systems/bde/linux/kernel/linux_dma.c index e17e4d3c7..7b12462d4 100644 --- a/sdk-6.5.27/systems/bde/linux/kernel/linux_dma.c +++ b/sdk-6.5.27/systems/bde/linux/kernel/linux_dma.c @@ -106,31 +106,10 @@ #define bus_to_virt phys_to_virt #endif -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)) -#define VIRT_TO_PAGE(p) virt_to_page((void*)(p)) -#else -#define VIRT_TO_PAGE(p) virt_to_page((p)) -#endif - -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)) -#define BDE_DMA_MAPPING_ERROR(d, p) dma_mapping_error((d),(p)) -#else -#define BDE_DMA_MAPPING_ERROR(d, p) dma_mapping_error((p)) -#endif - #ifndef KMALLOC_MAX_SIZE #define KMALLOC_MAX_SIZE (1UL << (MAX_ORDER - 1 + PAGE_SHIFT)) #endif -/* Compatibility */ -#ifdef LKM_2_4 -#define MEM_MAP_RESERVE mem_map_reserve -#define MEM_MAP_UNRESERVE mem_map_unreserve -#else /* LKM_2_6 */ -#define MEM_MAP_RESERVE SetPageReserved -#define MEM_MAP_UNRESERVE ClearPageReserved -#endif /* LKM_2_x */ - #ifndef GFP_DMA32 #define GFP_DMA32 0 #endif @@ -195,24 +174,24 @@ MODULE_PARM_DESC(dma_debug, /* DMA memory pool size */ static char *dmasize; -LKM_MOD_PARAM(dmasize, "s", charp, 0); +module_param(dmasize, charp, 0); MODULE_PARM_DESC(dmasize, "Specify DMA memory size (default 4MB)"); /* Select DMA memory pool allocation method */ static int dmaalloc = ALLOC_METHOD_DEFAULT; -LKM_MOD_PARAM(dmaalloc, "i", int, 0); +module_param(dmaalloc, int, 0); MODULE_PARM_DESC(dmaalloc, "Select DMA memory allocation method"); /* Use high memory for DMA */ static char *himem; -LKM_MOD_PARAM(himem, "s", charp, 0); +module_param(himem, charp, 0); MODULE_PARM_DESC(himem, "Use high memory for DMA (default no)"); /* Physical high memory address to use for DMA */ static char *himemaddr = 0; -LKM_MOD_PARAM(himemaddr, "s", charp, 0); +module_param(himemaddr, charp, 0); MODULE_PARM_DESC(himemaddr, "Physical address to use for high memory DMA"); @@ -515,7 +494,7 @@ _dma_segment_alloc(size_t size, size_t blk_size) for (page_addr = dseg->blk_ptr[i]; page_addr < dseg->blk_ptr[i] + dseg->blk_size; page_addr += PAGE_SIZE) { - MEM_MAP_RESERVE(VIRT_TO_PAGE(page_addr)); + SetPageReserved(virt_to_page((void*)page_addr)); } } else if (dseg->blk_ptr[i]) { dseg->blk_ptr[i] &= ~3; @@ -548,7 +527,7 @@ _dma_segment_free(dma_segment_t *dseg) for (page_addr = dseg->blk_ptr[i]; page_addr < dseg->blk_ptr[i] + dseg->blk_size; page_addr += PAGE_SIZE) { - MEM_MAP_UNRESERVE(VIRT_TO_PAGE(page_addr)); + ClearPageReserved(virt_to_page((void*)page_addr)); } free_pages(dseg->blk_ptr[i], dseg->blk_order); } @@ -680,7 +659,7 @@ _edk_mpool_alloc(int dev_id, size_t size) /* Use dma_map_single to obtain DMA bus address or IOVA if IOMMU is present. */ if (dev) { pbase = dma_map_single(dev, dma_vbase, size, DMA_BIDIRECTIONAL); - if (BDE_DMA_MAPPING_ERROR(dev, pbase)) { + if (dma_mapping_error(dev, pbase)) { gprintk("Failed to map memory at %p for EDK\n", dma_vbase); _pgfree(dma_vbase); dma_vbase = NULL; @@ -973,7 +952,7 @@ void _dma_per_device_init(int dev_index) _dma_pool_alloc_state == DMA_POOL_MAPPED)) { /* Map RAM virtual address space for DMA usage and obtain DMA bus address or IOVA if iommu is present. */ dma_addr = dma_map_single(dev, _dma_vbase, _dma_mem_size, DMA_BIDIRECTIONAL); - if (BDE_DMA_MAPPING_ERROR(dev, dma_addr)) { + if (dma_mapping_error(dev, dma_addr)) { gprintk("Failed to map DMA buffer pool for device %d at kernel_virt:0x%lx\n", dev_index, (unsigned long)_dma_vbase); if (_dma_pool_alloc_state == DMA_POOL_INITIALIZED) { _mpool_free(); @@ -1294,8 +1273,8 @@ _dma_pprint(struct seq_file *m) */ #ifdef BDE_EDK_SUPPORT -LKM_EXPORT_SYM(lkbde_edk_get_dma_info); +EXPORT_SYMBOL(lkbde_edk_get_dma_info); #endif -LKM_EXPORT_SYM(kmalloc_giant); -LKM_EXPORT_SYM(kfree_giant); -LKM_EXPORT_SYM(lkbde_get_dma_info); +EXPORT_SYMBOL(kmalloc_giant); +EXPORT_SYMBOL(kfree_giant); +EXPORT_SYMBOL(lkbde_get_dma_info); diff --git a/sdk-6.5.27/systems/bde/linux/user/kernel/linux-user-bde.c b/sdk-6.5.27/systems/bde/linux/user/kernel/linux-user-bde.c index e57defe59..3b9093601 100644 --- a/sdk-6.5.27/systems/bde/linux/user/kernel/linux-user-bde.c +++ b/sdk-6.5.27/systems/bde/linux/user/kernel/linux-user-bde.c @@ -186,23 +186,23 @@ static uint32 *ihost_intr_enable_base = NULL; /* Module parameter for Interruptible timeout */ static int intr_timeout = 0; -LKM_MOD_PARAM(intr_timeout, "i", int, (S_IRUGO | S_IWUSR)); +module_param(intr_timeout, int, (S_IRUGO | S_IWUSR)); MODULE_PARM_DESC(intr_timeout, "Interruptible wait timeout in milliseconds for Interrupt to be triggered."); static ulong intr_count = 0; -LKM_MOD_PARAM(intr_count, "intr_count", ulong, (S_IRUGO | S_IWUSR)); +module_param(intr_count, ulong, (S_IRUGO | S_IWUSR)); MODULE_PARM_DESC(intr_count, "Interrupt count provides information about the number of times the ISR is called."); static ulong intr_timeout_count = 0; -LKM_MOD_PARAM(intr_timeout_count, "intr_timeout_count", ulong, (S_IRUGO | S_IWUSR)); +module_param(intr_timeout_count, ulong, (S_IRUGO | S_IWUSR)); MODULE_PARM_DESC(intr_timeout_count, "Interrupt timeout count provides information about the number of times the interrupt wait is timeed out."); /* Debug output */ static int debug; -LKM_MOD_PARAM(debug, "i", int, (S_IRUGO | S_IWUSR)); +module_param(debug, int, (S_IRUGO | S_IWUSR)); MODULE_PARM_DESC(debug, "Set debug level (default 0)."); diff --git a/sdk-6.5.27/systems/bde/linux/user/linux-user-bde.c b/sdk-6.5.27/systems/bde/linux/user/linux-user-bde.c index cabcafbce..9c4bb3a32 100644 --- a/sdk-6.5.27/systems/bde/linux/user/linux-user-bde.c +++ b/sdk-6.5.27/systems/bde/linux/user/linux-user-bde.c @@ -65,7 +65,6 @@ extern int bcm_sim_path_get(void); #include #ifdef KEYSTONE -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27) #include #include @@ -73,16 +72,13 @@ extern int bcm_sim_path_get(void); #include #define LINUX_SPIDEV_SUPPORT 1 -#else -#define LINUX_SPIDEV_SUPPORT 0 -#endif #else /* !KEYSTONE */ #define LINUX_SPIDEV_SUPPORT 0 #endif /* KEYSTONE */ -#if defined(BCM_ESW_SUPPORT) && LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27) +#if defined(BCM_ESW_SUPPORT) #define CMIC_SPI_SUPPORT 1 #endif #ifndef CMIC_SPI_SUPPORT diff --git a/sdk-6.5.27/systems/linux/kernel/modules/bcm-knet/bcm-knet.c b/sdk-6.5.27/systems/linux/kernel/modules/bcm-knet/bcm-knet.c index 7e717e4e4..a5036acd1 100755 --- a/sdk-6.5.27/systems/linux/kernel/modules/bcm-knet/bcm-knet.c +++ b/sdk-6.5.27/systems/linux/kernel/modules/bcm-knet/bcm-knet.c @@ -76,97 +76,97 @@ MODULE_DESCRIPTION("Network Device Driver for Broadcom BCM TxRx API"); MODULE_LICENSE("GPL"); static int debug; -LKM_MOD_PARAM(debug, "i", int, 0); +module_param(debug, int, 0); MODULE_PARM_DESC(debug, "Debug level (default 0)"); static char *mac_addr = NULL; -LKM_MOD_PARAM(mac_addr, "s", charp, 0); +module_param(mac_addr, charp, 0); MODULE_PARM_DESC(mac_addr, "Ethernet MAC address (default 02:10:18:xx:xx:xx)"); static int rx_buffer_size = 9216; -LKM_MOD_PARAM(rx_buffer_size, "i", int, 0); +module_param(rx_buffer_size, int, 0); MODULE_PARM_DESC(rx_buffer_size, "Size of RX packet buffers (default 9216)"); static int default_mtu = 1500; -LKM_MOD_PARAM(default_mtu, "i", int, 0); +module_param(default_mtu, int, 0); MODULE_PARM_DESC(default_mtu, "Default MTU for KNET network interfaces (default 1500)"); static int rx_sync_retry = 1000; -LKM_MOD_PARAM(rx_sync_retry, "i", int, 0); +module_param(rx_sync_retry, int, 0); MODULE_PARM_DESC(rx_sync_retry, "Retries if chain is incomplete on interrupt (default 10)"); static char *base_dev_name = NULL; -LKM_MOD_PARAM(base_dev_name, "s", charp, 0); +module_param(base_dev_name, charp, 0); MODULE_PARM_DESC(base_dev_name, "Base device name (default bcm0, bcm1, etc.)"); static int rcpu_mode = 0; -LKM_MOD_PARAM(rcpu_mode, "i", int, 0); +module_param(rcpu_mode, int, 0); MODULE_PARM_DESC(rcpu_mode, "Enable RCPU encapsulation (default 0)"); static char *rcpu_dmac = NULL; -LKM_MOD_PARAM(rcpu_dmac, "s", charp, 0); +module_param(rcpu_dmac, charp, 0); MODULE_PARM_DESC(rcpu_dmac, "RCPU destination MAC address (by default use L2 destination MAC address)"); static char *rcpu_smac = NULL; -LKM_MOD_PARAM(rcpu_smac, "s", charp, 0); +module_param(rcpu_smac, charp, 0); MODULE_PARM_DESC(rcpu_smac, "RCPU source MAC address (by default use L2 source MAC address)"); static int rcpu_ethertype = 0xde08; -LKM_MOD_PARAM(rcpu_ethertype, "i", int, 0); +module_param(rcpu_ethertype, int, 0); MODULE_PARM_DESC(rcpu_ethertype, "RCPU EtherType (default DE08h)"); static int rcpu_signature = 0; -LKM_MOD_PARAM(rcpu_signature, "i", int, 0); +module_param(rcpu_signature, int, 0); MODULE_PARM_DESC(rcpu_signature, "RCPU Signature (default is PCI device ID)"); static int rcpu_vlan = 1; -LKM_MOD_PARAM(rcpu_vlan, "i", int, 0); +module_param(rcpu_vlan, int, 0); MODULE_PARM_DESC(rcpu_vlan, "RCPU VLAN ID (default 1)"); static int use_rx_skb = 0; -LKM_MOD_PARAM(use_rx_skb, "i", int, 0); +module_param(use_rx_skb, int, 0); MODULE_PARM_DESC(use_rx_skb, "Use socket buffers for receive operation (default 0)"); static int num_rx_prio = 1; -LKM_MOD_PARAM(num_rx_prio, "i", int, 0); +module_param(num_rx_prio, int, 0); MODULE_PARM_DESC(num_rx_prio, "Number of filter priorities per Rx DMA channel"); static int rx_rate[8] = { 100000, 100000, 100000, 100000, 100000, 100000, 100000, 0 }; -LKM_MOD_PARAM_ARRAY(rx_rate, "1-4i", int, NULL, 0); +module_param_array(rx_rate, int, NULL, 0); MODULE_PARM_DESC(rx_rate, "Rx rate in packets per second (default 100000)"); static int rx_burst[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; -LKM_MOD_PARAM_ARRAY(rx_burst, "1-4i", int, NULL, 0); +module_param_array(rx_burst, int, NULL, 0); MODULE_PARM_DESC(rx_burst, "Rx rate burst maximum in packets (default rx_rate/10)"); static int check_rcpu_signature = 0; -LKM_MOD_PARAM(check_rcpu_signature, "i", int, 0); +module_param(check_rcpu_signature, int, 0); MODULE_PARM_DESC(check_rcpu_signature, "Check RCPU Signature for Tx packets from RCPU interfaces"); static int basedev_suspend = 0; -LKM_MOD_PARAM(basedev_suspend, "i", int, 0); +module_param(basedev_suspend, int, 0); MODULE_PARM_DESC(basedev_suspend, "Pause traffic till base device is up (enabled by default in NAPI mode)"); static int mirror_local = 1; -LKM_MOD_PARAM(mirror_local, "i", int, 0); +module_param(mirror_local, int, 0); MODULE_PARM_DESC(mirror_local, "Encapasulate packets based on mirror_to interface configuration, e.g. " "encapsulate non-RCPU packets when mirrored to an RCPU interface " @@ -176,27 +176,27 @@ MODULE_PARM_DESC(mirror_local, * Force to add one layer of VLAN tag to untagged packets on Dune devices */ static int force_tagged = 1; -LKM_MOD_PARAM(force_tagged, "i", int, 0); +module_param(force_tagged, int, 0); MODULE_PARM_DESC(force_tagged, "Always tagged with VLAN tag with spceified VID or VSI(default 1)"); static int ft_tpid=0x8100; -LKM_MOD_PARAM(ft_tpid, "i", int, 0); +module_param(ft_tpid, int, 0); MODULE_PARM_DESC(ft_tpid, "Tag Protocol Identifier (TPID) indicates the frame type (default 0x8100)"); static int ft_pri=0; -LKM_MOD_PARAM(ft_pri, "i", int, 0); +module_param(ft_pri, int, 0); MODULE_PARM_DESC(ft_cfi, "Priority (PRI) indicates the frame priority (default 0)"); static int ft_cfi=0; -LKM_MOD_PARAM(ft_cfi, "i", int, 0); +module_param(ft_cfi, int, 0); MODULE_PARM_DESC(ft_cfi, "Canonical Format Indicator (CFI) indicates whether a MAC address is encapsulated in canonical format over different transmission media (default 0)"); static int ft_vid=0; -LKM_MOD_PARAM(ft_vid, "i", int, 0); +module_param(ft_vid, int, 0); MODULE_PARM_DESC(ft_vid, "VLAN ID (VID) indicates the VLAN to which a frame belongs (default 0)"); @@ -263,30 +263,21 @@ static int dbg_pkt_enable = 0; #if NAPI_SUPPORT static int use_napi = 0; -LKM_MOD_PARAM(use_napi, "i", int, 0); +module_param(use_napi, int, 0); MODULE_PARM_DESC(use_napi, "Use NAPI interface (default 0)"); static int napi_weight = 64; -LKM_MOD_PARAM(napi_weight, "i", int, 0); +module_param(napi_weight, int, 0); MODULE_PARM_DESC(napi_weight, "Weight of NAPI interfaces (default 64)"); -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) -#define bkn_napi_enable(_dev, _napi) netif_poll_enable(_dev) -#define bkn_napi_disable(_dev, _napi) netif_poll_disable(_dev) -#define bkn_napi_schedule(_dev, _napi) netif_rx_schedule(_dev) -#define bkn_napi_schedule_prep(_dev, _napi) netif_rx_schedule_prep(_dev) -#define __bkn_napi_schedule(_dev, _napi) __netif_rx_schedule(_dev) -#define bkn_napi_complete(_dev, _napi) netif_rx_complete(_dev) -#else #define bkn_napi_enable(_dev, _napi) napi_enable(_napi) #define bkn_napi_disable(_dev, _napi) napi_disable(_napi) #define bkn_napi_schedule(_dev, _napi) napi_schedule(_napi) #define bkn_napi_schedule_prep(_dev, _napi) napi_schedule_prep(_napi) #define __bkn_napi_schedule(_dev, _napi) __napi_schedule(_napi) #define bkn_napi_complete(_dev, _napi) napi_complete(_napi) -#endif #else @@ -322,83 +313,6 @@ static int napi_weight = 0; #define NETDEV_UPDATE_TRANS_START_TIME(dev) netif_trans_update(dev) #endif -#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) -#define skb_copy_to_linear_data(_skb, _pkt, _len) \ - eth_copy_and_sum(_skb, _pkt, _len, 0) -struct napi_struct { int not_used; }; -#define netif_napi_add(_dev, _napi, _poll, _weight) do { \ - (_dev)->poll = _poll; \ - (_dev)->weight = _weight; \ -} while(0) -#endif - -#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)) -#define SKB_PADTO(_skb,_len) (((_skb = skb_padto(_skb,_len)) == NULL) ? -1 : 0) -#else -#define SKB_PADTO(_skb,_len) skb_padto(_skb,_len) -#endif - -#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,12)) -#define skb_header_cloned(_skb) \ - skb_cloned(_skb) -#endif - -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,27) -static inline void *netdev_priv(struct net_device *dev) -{ - return dev->priv; -} -#endif /* KERNEL_VERSION(2,4,27) */ - -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23) -/* Special check for MontaVista 2.4.20 MIPS */ -#if !(defined(MAX_USER_RT_PRIO) && defined(CONFIG_MIPS)) -static inline void free_netdev(struct net_device *dev) -{ - kfree(dev); -} -#endif -static inline void netif_poll_disable(struct net_device *dev) -{ - while (test_and_set_bit(__LINK_STATE_RX_SCHED, &dev->state)) { - /* No hurry. */ - current->state = TASK_INTERRUPTIBLE; - schedule_timeout(1); - } -} -static inline void netif_poll_enable(struct net_device *dev) -{ - clear_bit(__LINK_STATE_RX_SCHED, &dev->state); -} -#endif /* KERNEL_VERSION(2,4,23) */ - -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,21) -static struct sk_buff *skb_pad(struct sk_buff *skb, int pad) -{ - struct sk_buff *nskb; - - /* If the skbuff is non linear tailroom is always zero.. */ - if(skb_tailroom(skb) >= pad) - { - memset(skb->data+skb->len, 0, pad); - return skb; - } - - nskb = skb_copy_expand(skb, skb_headroom(skb), skb_tailroom(skb) + pad, GFP_ATOMIC); - kfree_skb(skb); - if(nskb) - memset(nskb->data+nskb->len, 0, pad); - return nskb; -} -static inline struct sk_buff *skb_padto(struct sk_buff *skb, unsigned int len) -{ - unsigned int size = skb->len; - if(likely(size >= len)) - return skb; - return skb_pad(skb, len-size); -} -#endif /* KERNEL_VERSION(2,4,21) */ - #if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0) #define bkn_vlan_hwaccel_put_tag(_skb, _proto, _tci) \ __vlan_hwaccel_put_tag(_skb, _tci) @@ -411,114 +325,12 @@ static inline struct sk_buff *skb_padto(struct sk_buff *skb, unsigned int len) #define ETH_P_8021AD 0x88A8 /* 802.1ad Service VLAN */ #endif -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27) -#define bkn_dma_mapping_error(d, a) \ - dma_mapping_error(a) -#define bkn_pci_dma_mapping_error(d, a) \ - pci_dma_mapping_error(a) -#else -#define bkn_dma_mapping_error(d, a) \ - dma_mapping_error(d, a) -#define bkn_pci_dma_mapping_error(d, a) \ - pci_dma_mapping_error(d, a) -#endif - -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) -enum hwtstamp_tx_types { - HWTSTAMP_TX_OFF, - HWTSTAMP_TX_ON, - HWTSTAMP_TX_ONESTEP_SYNC -}; -enum { - SKBTX_HW_TSTAMP = 1 << 0, - SKBTX_SW_TSTAMP = 1 << 1, - SKBTX_IN_PROGRESS = 1 << 2, -}; -struct skb_shared_hwtstamps { - ktime_t hwtstamp; - ktime_t syststamp; -}; -struct bkn_skb_shared_info { - uint8_t tx_flags; - struct skb_shared_hwtstamps hwtstamps; -}; -#define bkn_skb_shinfo(_skb) ((struct bkn_skb_shared_info *)(unsigned char *)_skb->end) -#define bkn_skb_tx_flags(_skb) bkn_skb_shinfo(_skb)->tx_flags -static inline struct skb_shared_hwtstamps *skb_hwtstamps(struct sk_buff *skb) -{ - return &bkn_skb_shinfo(skb)->hwtstamps; -} -void skb_tstamp_tx(struct sk_buff *orig_skb, struct skb_shared_hwtstamps *hwtstamps) -{ -} -static inline void bkn_skb_tx_timestamp(struct sk_buff *skb) -{ -} -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26) -static inline ktime_t ns_to_ktime(u64 ns) -{ - static const ktime_t ktime; - return ktime; -} -#endif -#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37) -#include -#define HWTSTAMP_TX_ONESTEP_SYNC 2 -enum { - SKBTX_HW_TSTAMP = 1 << 0, - SKBTX_SW_TSTAMP = 1 << 1, - SKBTX_IN_PROGRESS = 1 << 2, -}; -#define bkn_skb_tx_flags(_skb) skb_shinfo(_skb)->tx_flags.flags -static inline void bkn_skb_tx_timestamp(struct sk_buff *skb) -{ -} -#else #include #if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0) #define HWTSTAMP_TX_ONESTEP_SYNC 2 #endif -#define bkn_skb_tx_flags(_skb) skb_shinfo(_skb)->tx_flags -static inline void bkn_skb_tx_timestamp(struct sk_buff *skb) -{ - return skb_tx_timestamp(skb); -} -#endif - -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26) -#define bkn_dev_net_set(dev, net) -#else -#define bkn_dev_net_set(dev, net) dev_net_set(dev, net) -#endif - -#ifdef LINUX_BDE_DMA_DEVICE_SUPPORT -#define BKN_DMA_DEV device -#define BKN_DMA_FROMDEV DMA_FROM_DEVICE -#define BKN_DMA_TODEV DMA_TO_DEVICE -#define BKN_DMA_MAP_SINGLE(d,p,s,r) dma_map_single(d,p,s,r) -#define BKN_DMA_UNMAP_SINGLE(d,a,s,r) dma_unmap_single(d,a,s,r) -#define BKN_DMA_ALLOC_COHERENT(d,s,h) dma_alloc_coherent(d,s,h,GFP_ATOMIC|GFP_DMA32) -#define BKN_DMA_FREE_COHERENT(d,s,a,h) dma_free_coherent(d,s,a,h) -#define BKN_DMA_MAPPING_ERROR(d,a) bkn_dma_mapping_error(d,a) -#else -#define BKN_DMA_DEV pci_dev -#define BKN_DMA_FROMDEV PCI_DMA_FROMDEVICE -#define BKN_DMA_TODEV PCI_DMA_TODEVICE -#define BKN_DMA_MAP_SINGLE(d,p,s,r) pci_map_single(d,p,s,r) -#define BKN_DMA_UNMAP_SINGLE(d,a,s,r) pci_unmap_single(d,a,s,r) -#define BKN_DMA_ALLOC_COHERENT(d,s,h) pci_alloc_consistent(d,s,h) -#define BKN_DMA_FREE_COHERENT(d,s,a,h) pci_free_consistent(d,s,a,h) -#define BKN_DMA_MAPPING_ERROR(d,a) bkn_pci_dma_mapping_error(d,a) -#endif - -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29)) -#define BKN_NETDEV_TX_BUSY NETDEV_TX_BUSY -#else -#define BKN_NETDEV_TX_BUSY 1 -#endif - /* * Get a 16-bit value from packet offset * _data Pointer to packet @@ -586,7 +398,7 @@ typedef struct bkn_switch_info_s { int ndev_max; /* Size of indexed array */ struct list_head rxpf_list; /* Associated Rx packet filters */ volatile void *base_addr; /* Base address for PCI register access */ - struct BKN_DMA_DEV *dma_dev; /* Required for DMA memory control */ + struct device *dma_dev; /* Required for DMA memory control */ struct pci_dev *pdev; /* Required for DMA memory control */ struct net_device *dev; /* Base network device */ struct napi_struct napi; /* New NAPI */ @@ -1071,16 +883,6 @@ static knet_hw_tstamp_ioctl_cmd_cb_f knet_hw_tstamp_ioctl_cmd_cb = NULL; * Thread management */ -#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10)) -static void -bkn_sleep(int clicks) -{ - wait_queue_head_t wq; - - init_waitqueue_head(&wq); - sleep_on_timeout(&wq, clicks); -} -#else static void bkn_sleep(int clicks) { @@ -1089,7 +891,6 @@ bkn_sleep(int clicks) init_waitqueue_head(&wq); wait_event_timeout(wq, 0, clicks); } -#endif /* * On XGS devices bit 15 fo the Transferred Bytes field in @@ -1978,9 +1779,10 @@ bkn_alloc_dcbs(bkn_switch_info_t *sinfo) rx_ring_size = dcb_size * (MAX_RX_DCBS + 1); sinfo->dcb_mem_size = tx_ring_size + rx_ring_size * sinfo->rx_chans; - sinfo->dcb_mem = BKN_DMA_ALLOC_COHERENT(sinfo->dma_dev, + sinfo->dcb_mem = dma_alloc_coherent(sinfo->dma_dev, sinfo->dcb_mem_size, - &dcb_dma); + &dcb_dma, + GFP_ATOMIC|GFP_DMA32); if (sinfo->dcb_mem == NULL) { gprintk("DCB memory allocation (%d bytes) failed.\n", sinfo->dcb_mem_size); @@ -1995,7 +1797,7 @@ static void bkn_free_dcbs(bkn_switch_info_t *sinfo) { if (sinfo->dcb_mem != NULL) { - BKN_DMA_FREE_COHERENT(sinfo->dma_dev, sinfo->dcb_mem_size, + dma_free_coherent(sinfo->dma_dev, sinfo->dcb_mem_size, sinfo->dcb_mem, (dma_addr_t)sinfo->dcb_dma); sinfo->dcb_mem = NULL; } @@ -2013,9 +1815,9 @@ bkn_clean_tx_dcbs(bkn_switch_info_t *sinfo) if (desc->skb != NULL) { DBG_SKB(("Cleaning Tx SKB from DCB %d.\n", sinfo->tx.dirty)); - BKN_DMA_UNMAP_SINGLE(sinfo->dma_dev, + dma_unmap_single(sinfo->dma_dev, desc->skb_dma, desc->dma_size, - BKN_DMA_TODEV); + DMA_TO_DEVICE); desc->skb_dma = 0; dev_kfree_skb_any(desc->skb); desc->skb = NULL; @@ -2042,9 +1844,9 @@ bkn_clean_rx_dcbs(bkn_switch_info_t *sinfo, int chan) if (desc->skb != NULL) { DBG_SKB(("Cleaning Rx%d SKB from DCB %d.\n", chan, sinfo->rx[chan].dirty)); - BKN_DMA_UNMAP_SINGLE(sinfo->dma_dev, + dma_unmap_single(sinfo->dma_dev, desc->skb_dma, desc->dma_size, - BKN_DMA_FROMDEV); + DMA_FROM_DEVICE); desc->skb_dma = 0; dev_kfree_skb_any(desc->skb); desc->skb = NULL; @@ -2587,10 +2389,10 @@ bkn_rx_refill(bkn_switch_info_t *sinfo, int chan) desc->dma_size = 0; } #endif - desc->skb_dma = BKN_DMA_MAP_SINGLE(sinfo->dma_dev, + desc->skb_dma = dma_map_single(sinfo->dma_dev, skb->data, desc->dma_size, - BKN_DMA_FROMDEV); - if (BKN_DMA_MAPPING_ERROR(sinfo->dma_dev, desc->skb_dma)) { + DMA_FROM_DEVICE); + if (dma_mapping_error(sinfo->dma_dev, desc->skb_dma)) { dev_kfree_skb_any(skb); desc->skb = NULL; break; @@ -4376,9 +4178,9 @@ bkn_do_skb_rx(bkn_switch_info_t *sinfo, int chan, int budget) skb = desc->skb; DBG_DCB_RX(("Rx%d SKB DMA done (%d).\n", chan, sinfo->rx[chan].dirty)); - BKN_DMA_UNMAP_SINGLE(sinfo->dma_dev, + dma_unmap_single(sinfo->dma_dev, desc->skb_dma, desc->dma_size, - BKN_DMA_FROMDEV); + DMA_FROM_DEVICE); desc->skb_dma = 0; pktlen = dcb[sinfo->dcb_wsize-1] & 0xffff; @@ -4976,7 +4778,7 @@ bkn_resume_tx(bkn_switch_info_t *sinfo) static void bkn_skb_tstamp_copy(struct sk_buff *new_skb, struct sk_buff *skb) { - bkn_skb_tx_flags(new_skb) = bkn_skb_tx_flags(skb); + skb_shinfo(new_skb)->tx_flags = skb_shinfo(skb)->tx_flags; new_skb->sk = skb->sk; return; @@ -5054,7 +4856,6 @@ bkn_hw_tstamp_tx_work(struct work_struct *work) ret = bkn_hw_tstamp_tx_set(sinfo, skb); if (ret < 0) { -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)) ktime_t now; now = ktime_get(); DBG_PTP(("2Step TX Timestamp has not been taken for the current skb (%lld us)\n", @@ -5067,9 +4868,6 @@ bkn_hw_tstamp_tx_work(struct work_struct *work) DBG_PTP(("2Step TX Timestamp fetch took long time %lld us\n", ktime_us_delta(now, tstamp))); } -#else - DBG_PTP(("2Step TX Timestamp has not been taken for the current skb\n")); -#endif } dev_kfree_skb_any(skb); } @@ -5098,23 +4896,21 @@ bkn_do_tx(bkn_switch_info_t *sinfo) } if (desc->skb) { DBG_DCB_TX(("Tx SKB DMA done (%d).\n", sinfo->tx.dirty)); - BKN_DMA_UNMAP_SINGLE(sinfo->dma_dev, + dma_unmap_single(sinfo->dma_dev, desc->skb_dma, desc->dma_size, - BKN_DMA_TODEV); + DMA_TO_DEVICE); if ((KNET_SKB_CB(desc->skb)->hwts == HWTSTAMP_TX_ONESTEP_SYNC) && - (bkn_skb_tx_flags(desc->skb) & SKBTX_IN_PROGRESS)) { + (skb_shinfo(desc->skb)->tx_flags & SKBTX_IN_PROGRESS)) { if (bkn_hw_tstamp_tx_set(sinfo, desc->skb) < 0) { DBG_PTP(("1Step timestamp has not been taken for the current skb.\n")); } - bkn_skb_tx_flags(desc->skb) &= ~SKBTX_IN_PROGRESS; + skb_shinfo(desc->skb)->tx_flags &= ~SKBTX_IN_PROGRESS; } - if (bkn_skb_tx_flags(desc->skb) & SKBTX_IN_PROGRESS) { -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)) + if (skb_shinfo(desc->skb)->tx_flags & SKBTX_IN_PROGRESS) { desc->skb->tstamp = ktime_get(); -#endif skb_queue_tail(&sinfo->tx_ptp_queue, desc->skb); schedule_work(&sinfo->tx_ptp_work); } else { @@ -5902,7 +5698,6 @@ bkn_open(struct net_device *dev) return 0; } -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29)) static int bkn_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) { @@ -5983,7 +5778,6 @@ bkn_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) return -EINVAL; } -#endif static int bkn_change_mtu(struct net_device *dev, int new_mtu) @@ -5997,45 +5791,6 @@ bkn_change_mtu(struct net_device *dev, int new_mtu) return 0; } -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) -static int -bkn_poll(struct net_device *dev, int *budget) -{ - bkn_priv_t *priv = netdev_priv(dev); - bkn_switch_info_t *sinfo = priv->sinfo; - int cur_budget = *budget; - int poll_again = 0; - int rx_dcbs_done; - unsigned long flags; - - spin_lock_irqsave(&sinfo->lock, flags); - - DBG_NAPI(("NAPI poll on %s.\n", dev->name)); - - sinfo->napi_poll_again = 0; - - if (cur_budget > dev->quota) { - cur_budget = dev->quota; - } - - rx_dcbs_done = dev_do_dma(sinfo, cur_budget); - - *budget -= rx_dcbs_done; - cur_budget -= rx_dcbs_done; - dev->quota -= rx_dcbs_done; - - if (sinfo->napi_poll_again || cur_budget <= 0) { - poll_again = 1; - sinfo->napi_not_done++; - } else { - bkn_napi_poll_complete(sinfo); - } - - spin_unlock_irqrestore(&sinfo->lock, flags); - - return poll_again; -} -#else static int bkn_poll(struct napi_struct *napi, int budget) { @@ -6063,7 +5818,6 @@ bkn_poll(struct napi_struct *napi, int budget) return rx_dcbs_done; } -#endif static int bkn_stop(struct net_device *dev) @@ -6300,7 +6054,7 @@ bkn_tx(struct sk_buff *skb, struct net_device *dev) hdrlen = priv->system_headers_size; /* Account for extra OAM-TS header. */ - if ((bkn_skb_tx_flags(skb) & SKBTX_HW_TSTAMP) && + if ((skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) && (hdrlen > (BKN_DNX_PTCH_2_SIZE))) { /* T_LOCAL_PORT intf will use Module Hdr + PTCH + ITMH + ASE1588 + TSH */ if (device_is_dnx(sinfo)) { @@ -6542,7 +6296,7 @@ bkn_tx(struct sk_buff *skb, struct net_device *dev) } if (pktlen < (60 + taglen + hdrlen)) { pktlen = (60 + taglen + hdrlen); - if (SKB_PADTO(skb, pktlen) != 0) { + if (skb_padto(skb, pktlen) != 0) { DBG_WARN(("Tx drop: skb_padto failed\n")); stats_flags = u64_stats_update_begin_irqsave(&priv->stats.syncp); u64_stats_inc(&priv->stats.tx_dropped); @@ -6736,7 +6490,7 @@ bkn_tx(struct sk_buff *skb, struct net_device *dev) pktlen = skb->len; if (pktlen < (60 + taglen + hdrlen)) { pktlen = (60 + taglen + hdrlen); - if (SKB_PADTO(skb, pktlen) != 0) { + if (skb_padto(skb, pktlen) != 0) { DBG_WARN(("Tx drop: skb_padto failed\n")); stats_flags = u64_stats_update_begin_irqsave(&priv->stats.syncp); u64_stats_inc(&priv->stats.tx_dropped); @@ -6767,15 +6521,15 @@ bkn_tx(struct sk_buff *skb, struct net_device *dev) } /* Do Tx timestamping */ - if (bkn_skb_tx_flags(skb) & SKBTX_HW_TSTAMP) { + if (skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) { KNET_SKB_CB(skb)->hwts = priv->tx_hwts; if ((priv->port >= 0) && (priv->tx_hwts & HWTSTAMP_TX_ON)) { /* TwoStep Processing of ptp-packets */ KNET_SKB_CB(skb)->port = priv->phys_port; bkn_hw_tstamp_tx_config(sinfo, priv->tx_hwts, hdrlen, skb, meta); - bkn_skb_tx_flags(skb) |= SKBTX_IN_PROGRESS; - bkn_skb_tx_timestamp(skb); + skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS; + skb_tx_timestamp(skb); } else if (priv->tx_hwts & HWTSTAMP_TX_ONESTEP_SYNC) { @@ -6786,8 +6540,8 @@ bkn_tx(struct sk_buff *skb, struct net_device *dev) ((priv->port >= 0) ? meta : NULL)); if (KNET_SKB_CB(skb)->ts != 0) { - bkn_skb_tx_flags(skb) |= SKBTX_IN_PROGRESS; - bkn_skb_tx_timestamp(skb); + skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS; + skb_tx_timestamp(skb); } } @@ -6806,10 +6560,10 @@ bkn_tx(struct sk_buff *skb, struct net_device *dev) pktlen = pktlen + FCS_SZ; } desc->dma_size = pktlen; - desc->skb_dma = BKN_DMA_MAP_SINGLE(sinfo->dma_dev, + desc->skb_dma = dma_map_single(sinfo->dma_dev, pktdata, desc->dma_size, - BKN_DMA_TODEV); - if (BKN_DMA_MAPPING_ERROR(sinfo->dma_dev, desc->skb_dma)) { + DMA_TO_DEVICE); + if (dma_mapping_error(sinfo->dma_dev, desc->skb_dma)) { stats_flags = u64_stats_update_begin_irqsave(&priv->stats.syncp); u64_stats_inc(&priv->stats.tx_dropped); u64_stats_update_end_irqrestore(&priv->stats.syncp, stats_flags); @@ -6863,7 +6617,7 @@ bkn_tx(struct sk_buff *skb, struct net_device *dev) sinfo->tx.pkts_d_dma_resrc++; bkn_suspend_tx(sinfo); spin_unlock_irqrestore(&sinfo->lock, flags); - return BKN_NETDEV_TX_BUSY; + return NETDEV_TX_BUSY; } NETDEV_UPDATE_TRANS_START_TIME(dev); @@ -7148,7 +6902,6 @@ bkn_create_sinfo(int dev_no) return sinfo; } -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29)) static const struct net_device_ops bkn_netdev_ops = { .ndo_open = bkn_open, .ndo_stop = bkn_stop, @@ -7166,7 +6919,6 @@ static const struct net_device_ops bkn_netdev_ops = { .ndo_poll_controller = bkn_poll_controller, #endif }; -#endif static void bkn_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *drvinfo) @@ -7317,9 +7069,6 @@ bkn_init_ndev(u8 *mac, char *name) DBG_WARN(("Error allocating Ethernet device.\n")); return NULL; } -#ifdef SET_MODULE_OWNER - SET_MODULE_OWNER(dev); -#endif /* Set the device MAC address */ if ((mac[0] | mac[1] | mac[2] | mac[3] | mac[4] | mac[5]) == 0) { @@ -7342,20 +7091,8 @@ bkn_init_ndev(u8 *mac, char *name) #endif /* Device vectors */ -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29)) dev->netdev_ops = &bkn_netdev_ops; dev->priv_flags |= IFF_LIVE_ADDR_CHANGE; -#else - dev->open = bkn_open; - dev->hard_start_xmit = bkn_tx; - dev->stop = bkn_stop; - dev->set_multicast_list = bkn_set_multicast_list; - dev->do_ioctl = NULL; - dev->change_mtu = bkn_change_mtu; -#ifdef CONFIG_NET_POLL_CONTROLLER - dev->poll_controller = bkn_poll_controller; -#endif -#endif priv = netdev_priv(dev); priv->link_settings.speed = SPEED_UNKNOWN; priv->link_settings.duplex = DUPLEX_UNKNOWN; @@ -7367,7 +7104,7 @@ bkn_init_ndev(u8 *mac, char *name) u64_stats_init(&priv->stats.syncp); u64_stats_init(&priv->hw_stats.syncp); - bkn_dev_net_set(dev, current->nsproxy->net_ns); + dev_net_set(dev, current->nsproxy->net_ns); DBG_VERB(("Created Ethernet device %s.\n", dev->name)); @@ -10605,25 +10342,25 @@ bkn_hw_tstamp_ioctl_cmd_cb_unregister(knet_hw_tstamp_ioctl_cmd_cb_f hw_tstamp_io return 0; } -LKM_EXPORT_SYM(bkn_rx_skb_cb_register); -LKM_EXPORT_SYM(bkn_rx_skb_cb_unregister); -LKM_EXPORT_SYM(bkn_tx_skb_cb_register); -LKM_EXPORT_SYM(bkn_tx_skb_cb_unregister); -LKM_EXPORT_SYM(bkn_filter_cb_register); -LKM_EXPORT_SYM(bkn_filter_cb_unregister); -LKM_EXPORT_SYM(bkn_hw_tstamp_enable_cb_register); -LKM_EXPORT_SYM(bkn_hw_tstamp_enable_cb_unregister); -LKM_EXPORT_SYM(bkn_hw_tstamp_disable_cb_register); -LKM_EXPORT_SYM(bkn_hw_tstamp_disable_cb_unregister); -LKM_EXPORT_SYM(bkn_hw_tstamp_tx_time_get_cb_register); -LKM_EXPORT_SYM(bkn_hw_tstamp_tx_time_get_cb_unregister); -LKM_EXPORT_SYM(bkn_hw_tstamp_tx_meta_get_cb_register); -LKM_EXPORT_SYM(bkn_hw_tstamp_tx_meta_get_cb_unregister); -LKM_EXPORT_SYM(bkn_hw_tstamp_ptp_clock_index_cb_register); -LKM_EXPORT_SYM(bkn_hw_tstamp_ptp_clock_index_cb_unregister); -LKM_EXPORT_SYM(bkn_hw_tstamp_rx_time_upscale_cb_register); -LKM_EXPORT_SYM(bkn_hw_tstamp_rx_time_upscale_cb_unregister); -LKM_EXPORT_SYM(bkn_hw_tstamp_rx_pre_process_cb_register); -LKM_EXPORT_SYM(bkn_hw_tstamp_rx_pre_process_cb_unregister); -LKM_EXPORT_SYM(bkn_hw_tstamp_ioctl_cmd_cb_register); -LKM_EXPORT_SYM(bkn_hw_tstamp_ioctl_cmd_cb_unregister); +EXPORT_SYMBOL(bkn_rx_skb_cb_register); +EXPORT_SYMBOL(bkn_rx_skb_cb_unregister); +EXPORT_SYMBOL(bkn_tx_skb_cb_register); +EXPORT_SYMBOL(bkn_tx_skb_cb_unregister); +EXPORT_SYMBOL(bkn_filter_cb_register); +EXPORT_SYMBOL(bkn_filter_cb_unregister); +EXPORT_SYMBOL(bkn_hw_tstamp_enable_cb_register); +EXPORT_SYMBOL(bkn_hw_tstamp_enable_cb_unregister); +EXPORT_SYMBOL(bkn_hw_tstamp_disable_cb_register); +EXPORT_SYMBOL(bkn_hw_tstamp_disable_cb_unregister); +EXPORT_SYMBOL(bkn_hw_tstamp_tx_time_get_cb_register); +EXPORT_SYMBOL(bkn_hw_tstamp_tx_time_get_cb_unregister); +EXPORT_SYMBOL(bkn_hw_tstamp_tx_meta_get_cb_register); +EXPORT_SYMBOL(bkn_hw_tstamp_tx_meta_get_cb_unregister); +EXPORT_SYMBOL(bkn_hw_tstamp_ptp_clock_index_cb_register); +EXPORT_SYMBOL(bkn_hw_tstamp_ptp_clock_index_cb_unregister); +EXPORT_SYMBOL(bkn_hw_tstamp_rx_time_upscale_cb_register); +EXPORT_SYMBOL(bkn_hw_tstamp_rx_time_upscale_cb_unregister); +EXPORT_SYMBOL(bkn_hw_tstamp_rx_pre_process_cb_register); +EXPORT_SYMBOL(bkn_hw_tstamp_rx_pre_process_cb_unregister); +EXPORT_SYMBOL(bkn_hw_tstamp_ioctl_cmd_cb_register); +EXPORT_SYMBOL(bkn_hw_tstamp_ioctl_cmd_cb_unregister); diff --git a/sdk-6.5.27/systems/linux/kernel/modules/bcm-ptp-clock/bcm-ptp-clock.c b/sdk-6.5.27/systems/linux/kernel/modules/bcm-ptp-clock/bcm-ptp-clock.c index b9c77d5f1..6569004df 100644 --- a/sdk-6.5.27/systems/linux/kernel/modules/bcm-ptp-clock/bcm-ptp-clock.c +++ b/sdk-6.5.27/systems/linux/kernel/modules/bcm-ptp-clock/bcm-ptp-clock.c @@ -29,29 +29,29 @@ MODULE_LICENSE("GPL"); static int debug; -LKM_MOD_PARAM(debug, "i", int, 0); +module_param(debug, int, 0); MODULE_PARM_DESC(debug, "Debug level (default 0)"); static int pci_cos; static int network_transport; -LKM_MOD_PARAM(network_transport, "i", int, 0); +module_param(network_transport, int, 0); MODULE_PARM_DESC(network_transport, "Transport Type (default - Detect from packet)"); static char *base_dev_name = "ptp0"; -LKM_MOD_PARAM(base_dev_name, "s", charp, 0); +module_param(base_dev_name, charp, 0); MODULE_PARM_DESC(base_dev_name, "Base device name (default ptp0, ptp1, etc.)"); static int fw_core; -LKM_MOD_PARAM(fw_core, "i", int, 0); +module_param(fw_core, int, 0); MODULE_PARM_DESC(fw_core, "Firmware core (default 0)"); static int vnptp_l2hdr_vlan_prio; -LKM_MOD_PARAM(vnptp_l2hdr_vlan_prio, "i", int, 0); +module_param(vnptp_l2hdr_vlan_prio, int, 0); MODULE_PARM_DESC(vnptp_l2hdr_vlan_prio, "L2 Hdr Vlan priority"); @@ -75,18 +75,6 @@ MODULE_PARM_DESC(vnptp_l2hdr_vlan_prio, #define DBG_RX_DUMP(_s) do { if (debug & DBG_LVL_RX_DUMP) gprintk _s; } while (0) #define DBG_ERR(_s) do { if (1) gprintk _s; } while (0) - -#ifdef LINUX_BDE_DMA_DEVICE_SUPPORT -#define DMA_DEV device -#define DMA_ALLOC_COHERENT(d,s,h) dma_alloc_coherent(d,s,h,GFP_ATOMIC|GFP_DMA32) -#define DMA_FREE_COHERENT(d,s,a,h) dma_free_coherent(d,s,a,h) -#else -#define DMA_DEV pci_dev -#define DMA_ALLOC_COHERENT(d,s,h) pci_alloc_consistent(d,s,h) -#define DMA_FREE_COHERENT(d,s,a,h) pci_free_consistent(d,s,a,h) -#endif - - #define BKSYNC_PACKLEN_U8 1 #define BKSYNC_PACKLEN_U16 2 #define BKSYNC_PACKLEN_U24 3 @@ -238,11 +226,7 @@ enum (_ptp_msg_type == IEEE1588_MSGTYPE_SYNC)) -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30) -#define HWTSTAMP_TX_ONESTEP_SYNC 2 -#else #include -#endif @@ -698,7 +682,7 @@ struct bksync_ptp_priv { volatile bksync_evlog_t *evlog; dma_addr_t dma_mem; int dma_mem_size; - struct DMA_DEV *dma_dev; + struct device *dma_dev; int num_pports; int timekeep_status; u32 mirror_encap_bmp; @@ -2964,9 +2948,10 @@ static void bksync_ptp_fw_data_alloc(void) if (ptp_priv->evlog == NULL) { DBG_ERR(("Allocate memory for event log\n")); - ptp_priv->evlog = DMA_ALLOC_COHERENT(ptp_priv->dma_dev, + ptp_priv->evlog = dma_alloc_coherent(ptp_priv->dma_dev, ptp_priv->dma_mem_size, - &dma_mem); + &dma_mem, + GFP_ATOMIC|GFP_DMA32); } if (ptp_priv->evlog != NULL) { @@ -2984,7 +2969,7 @@ static void bksync_ptp_fw_data_alloc(void) static void bksync_ptp_fw_data_free(void) { if (ptp_priv->evlog != NULL) { - DMA_FREE_COHERENT(ptp_priv->dma_dev, ptp_priv->dma_mem_size, + dma_free_coherent(ptp_priv->dma_dev, ptp_priv->dma_mem_size, (void *)ptp_priv->evlog, ptp_priv->dma_mem); ptp_priv->evlog = NULL; } diff --git a/sdk-6.5.27/systems/linux/kernel/modules/include/lkm.h b/sdk-6.5.27/systems/linux/kernel/modules/include/lkm.h index 1e5464c6e..ff871bb13 100644 --- a/sdk-6.5.27/systems/linux/kernel/modules/include/lkm.h +++ b/sdk-6.5.27/systems/linux/kernel/modules/include/lkm.h @@ -17,13 +17,8 @@ #include #include -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) -#error Kernel too old -#endif -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32) /* The version kconfig.h became available in. */ #include -#endif #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0) #if defined(INCLUDE_KNET) && LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0) #ifdef CONFIG_NF_CONNTRACK_MODULE @@ -32,9 +27,6 @@ #endif #include #endif -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39) -#include -#endif #include /* Helper defines for multi-version kernel support */ @@ -67,11 +59,6 @@ /* Compatibility Macros */ -#define LKM_MOD_PARAM(n,ot,nt,d) module_param(n,nt,d) -#define LKM_MOD_PARAM_ARRAY(n,ot,nt,c,d) module_param_array(n,nt,c,d) -#define LKM_EXPORT_SYM(s) EXPORT_SYMBOL(s) -#define _free_netdev free_netdev - #ifndef list_for_each_safe #define list_for_each_safe(l,t,i) t = 0; list_for_each((l),(i)) #endif From a47764544b659fd703017442ae2aa9d02be6864d Mon Sep 17 00:00:00 2001 From: Jonas Gorski Date: Mon, 27 Apr 2026 14:42:27 +0200 Subject: [PATCH 2/4] modules: drop ancient kernel (< 4.0) support Drop support for ancient kernels pre 4.0 and resolve all compatibility macros as needed. Signed-off-by: Jonas Gorski --- .../systems/bde/linux/include/linux_dma.h | 4 - .../bde/linux/kernel/linux-kernel-bde.c | 77 +------------------ .../systems/bde/linux/kernel/linux_dma.c | 23 +----- .../linux/kernel/modules/bcm-knet/bcm-knet.c | 48 ++++-------- .../modules/bcm-ptp-clock/bcm-ptp-clock.c | 15 ---- .../linux/kernel/modules/include/lkm.h | 40 +--------- .../linux/kernel/modules/shared/gmodule.c | 77 ------------------- .../systems/bde/linux/include/linux_dma.h | 4 - .../bde/linux/kernel/linux-kernel-bde.c | 71 ----------------- .../systems/bde/linux/kernel/linux_dma.c | 23 +----- .../linux/kernel/modules/bcm-knet/bcm-knet.c | 48 ++++-------- .../modules/bcm-ptp-clock/bcm-ptp-clock.c | 15 ---- .../linux/kernel/modules/include/lkm.h | 40 +--------- .../linux/kernel/modules/shared/gmodule.c | 77 ------------------- 14 files changed, 36 insertions(+), 526 deletions(-) diff --git a/sdk-6.5.24/systems/bde/linux/include/linux_dma.h b/sdk-6.5.24/systems/bde/linux/include/linux_dma.h index e94172ae2..70f4d0c82 100755 --- a/sdk-6.5.24/systems/bde/linux/include/linux_dma.h +++ b/sdk-6.5.24/systems/bde/linux/include/linux_dma.h @@ -35,10 +35,6 @@ #endif /* CONFIG_NONCOHERENT_IO || CONFIG_DMA_NONCOHERENT */ #endif /* __mips__ */ -#if defined(BCM958525) && (LINUX_VERSION_CODE <= KERNEL_VERSION(3,6,5)) -#define REMAP_DMA_NONCACHED -#endif - #ifndef DMA_BIT_MASK #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1)) #endif diff --git a/sdk-6.5.24/systems/bde/linux/kernel/linux-kernel-bde.c b/sdk-6.5.24/systems/bde/linux/kernel/linux-kernel-bde.c index 6b5ac7dbc..c7619715f 100644 --- a/sdk-6.5.24/systems/bde/linux/kernel/linux-kernel-bde.c +++ b/sdk-6.5.24/systems/bde/linux/kernel/linux-kernel-bde.c @@ -56,14 +56,6 @@ #define PCI_USE_INT_INTX (0) #define PCI_USE_INT_MSI (1) #define PCI_USE_INT_MSIX (2) -#ifdef CONFIG_PCI_MSI -#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,110)) -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,84)) -#define msix_table_size(flags) ((flags & PCI_MSIX_FLAGS_QSIZE) + 1) -#endif -#define msi_control_reg(base) (base + PCI_MSI_FLAGS) -#endif -#endif MODULE_AUTHOR("Broadcom Corporation"); MODULE_DESCRIPTION("Kernel BDE"); MODULE_LICENSE("GPL"); @@ -252,9 +244,7 @@ typedef struct bde_ctrl_s { int bus_no; int be_pio; int use_msi; -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,84)) struct msix_entry *entries; -#endif int msix_cnt; union { /* Linux PCI device pointer */ @@ -2121,60 +2111,14 @@ _device_rescan_validate(struct pci_dev *dev) #ifdef CONFIG_PCI_MSI -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,84)) -/** - * _pci_msix_table_size - return the number of device's MSI-X table entries - * @dev: pointer to the pci_dev data structure of MSI-X device function - */ -static int -_pci_msix_table_size(struct pci_dev *dev) -{ - int nr_entries = 0; - -#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,110)) - u16 control; - int pos; - - pos = pci_find_capability(dev, PCI_CAP_ID_MSIX); - if (pos) { - pci_read_config_word(dev, msi_control_reg(pos), &control); - nr_entries = msix_table_size(control); - } -#else -#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,14,0)) -{ - /* Pass large entry value to enable MSIX to get # of entires */ - struct msix_entry *entries; - entries = kmalloc(sizeof(struct msix_entry) * - PCI_MSIX_FLAGS_QSIZE, GFP_KERNEL); - if (entries != NULL) { - nr_entries = pci_enable_msix(dev, - entries, PCI_MSIX_FLAGS_QSIZE); - if (nr_entries < 0) { - nr_entries = 0; - } - pci_disable_msix(dev); - kfree(entries); - } -} -#else - nr_entries = pci_msix_vec_count(dev); -#endif -#endif - - return nr_entries; -} -#endif - static int _msi_connect(bde_ctrl_t *ctrl) { -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,84)) int ret; if (ctrl->use_msi == PCI_USE_INT_MSIX) { int i; - ret = _pci_msix_table_size(ctrl->pci_device); + ret = pci_msix_vec_count(ctrl->pci_device); if (ret == 0) { /* MSI-X failed */ gprintk("MSI-X not supported.\n"); @@ -2217,7 +2161,6 @@ _msi_connect(bde_ctrl_t *ctrl) return 0; } } -#endif if (ctrl->use_msi == PCI_USE_INT_MSI) { if (pci_enable_msi(ctrl->pci_device) == 0) { @@ -2233,11 +2176,9 @@ _msi_connect(bde_ctrl_t *ctrl) goto er_intx; } return 0; -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,84)) er_intx_free: gprintk("Failed to enable MSI-X interrupts = %d\n", ret); kfree(ctrl->entries); -#endif er_intx: return -1; @@ -2246,7 +2187,6 @@ _msi_connect(bde_ctrl_t *ctrl) static int _msi_disconnect(bde_ctrl_t *ctrl) { -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,84)) if (ctrl->use_msi == PCI_USE_INT_MSIX) { if (ctrl->msix_cnt) { pci_disable_msix(ctrl->pci_device); @@ -2255,7 +2195,6 @@ _msi_disconnect(bde_ctrl_t *ctrl) ctrl->msix_cnt = 0; } } -#endif if (ctrl->use_msi == PCI_USE_INT_MSI) { pci_disable_msi(ctrl->pci_device); } else { @@ -2292,16 +2231,14 @@ config_pci_intr_type(struct pci_dev *dev, bde_ctrl_t *ctrl, int iproc) } } -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,84)) if (ctrl->use_msi == PCI_USE_INT_MSIX) { /* check for support MSIX vector */ - ret = _pci_msix_table_size(ctrl->pci_device); + ret = pci_msix_vec_count(ctrl->pci_device); if (ret == 0) { gprintk("%s: Zero MSIX table size\n", __func__); ctrl->use_msi = PCI_USE_INT_MSI; } } -#endif if (ctrl->use_msi == PCI_USE_INT_MSI) { /* check for support MSI vector */ @@ -2864,14 +2801,12 @@ _pci_remove(struct pci_dev* dev) /* Free our interrupt handler, if we have one */ if (ctrl->isr || ctrl->isr2) { #ifdef CONFIG_PCI_MSI -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,84)) if (ctrl->use_msi >= PCI_USE_INT_MSIX) { int i; for (i = 0; i < ctrl->msix_cnt; i++) free_irq(ctrl->entries[i].vector, ctrl); } else -#endif #endif { free_irq(ctrl->iLine, ctrl); @@ -3104,11 +3039,7 @@ _init(void) if (use_msi == PCI_USE_INT_NONE) { /* Compilation flag determines default value */ #ifdef BDE_LINUX_USE_MSIX_INTERRUPT -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,84)) use_msi = PCI_USE_INT_MSIX; -#else - use_msi = PCI_USE_INT_MSI; -#endif #elif defined(BDE_LINUX_USE_MSI_INTERRUPT) use_msi = PCI_USE_INT_MSI; #else @@ -3696,7 +3627,6 @@ _interrupt_connect(int d, if(ret != 0) goto msi_exit; } -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,84)) if (ctrl->use_msi == PCI_USE_INT_MSIX) { int i; for (i = 0; i < ctrl->msix_cnt; i++) { @@ -3717,7 +3647,6 @@ _interrupt_connect(int d, } } else -#endif #endif { #if defined(IPROC_CMICD) && defined(CONFIG_OF) @@ -3835,7 +3764,6 @@ _interrupt_disconnect(int d) if (isr_active) { #ifdef CONFIG_PCI_MSI -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,84)) if (ctrl->use_msi >= PCI_USE_INT_MSIX) { int i; for (i = 0; i < ctrl->msix_cnt; i++) { @@ -3848,7 +3776,6 @@ _interrupt_disconnect(int d) } else #endif -#endif #if defined(IPROC_CMICD) && defined(CONFIG_OF) if (of_find_compatible_node(NULL, NULL, IPROC_CMICX_COMPATIBLE)) { int i; diff --git a/sdk-6.5.24/systems/bde/linux/kernel/linux_dma.c b/sdk-6.5.24/systems/bde/linux/kernel/linux_dma.c index cede0d692..0f6690d31 100644 --- a/sdk-6.5.24/systems/bde/linux/kernel/linux_dma.c +++ b/sdk-6.5.24/systems/bde/linux/kernel/linux_dma.c @@ -101,12 +101,6 @@ #endif #endif -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)) -#include -#define virt_to_bus virt_to_phys -#define bus_to_virt phys_to_virt -#endif - #ifndef KMALLOC_MAX_SIZE #define KMALLOC_MAX_SIZE (1UL << (MAX_ORDER - 1 + PAGE_SHIFT)) #endif @@ -127,15 +121,9 @@ static int mem_flags = GFP_ATOMIC | GFP_DMA; #endif #ifdef IPROC_CMICD -#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,13,0) #ifndef COHERENT_ALLOC_USE_DMA_TO_PHYS #define COHERENT_ALLOC_USE_DMA_TO_PHYS 1 #endif -#else -#ifndef COHERENT_ALLOC_PHYS_IS_DMA_ADDR -#define COHERENT_ALLOC_PHYS_IS_DMA_ADDR 1 -#endif -#endif #endif /* IPROC_CMICD */ /* @@ -145,9 +133,6 @@ static int mem_flags = GFP_ATOMIC | GFP_DMA; #ifndef COHERENT_ALLOC_USE_DMA_TO_PHYS #define COHERENT_ALLOC_USE_DMA_TO_PHYS 0 #endif -#ifndef COHERENT_ALLOC_PHYS_IS_DMA_ADDR -#define COHERENT_ALLOC_PHYS_IS_DMA_ADDR 0 -#endif #if COHERENT_ALLOC_USE_DMA_TO_PHYS #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,16,0)) @@ -161,8 +146,6 @@ static int mem_flags = GFP_ATOMIC | GFP_DMA; #if COHERENT_ALLOC_USE_DMA_TO_PHYS #define HOST_PHYS_ADDR(_dev, _dma_a, _kvirt_a) \ ((_dev) ? dma_to_phys((_dev), (_dma_a)) : virt_to_phys(_kvirt_a)) -#elif COHERENT_ALLOC_PHYS_IS_DMA_ADDR -#define HOST_PHYS_ADDR(_dev, _dma_a, _kvirt_a) (_dma_a) #else #define HOST_PHYS_ADDR(_dev, _dma_a, _kvirt_a) (virt_to_phys(_kvirt_a)) #endif @@ -655,7 +638,7 @@ _edk_mpool_alloc(int dev_id, size_t size) (unsigned long)size); return; } - cpu_pbase = virt_to_bus(dma_vbase); + cpu_pbase = virt_to_phys(dma_vbase); /* Use dma_map_single to obtain DMA bus address or IOVA if IOMMU is present. */ if (dev) { @@ -1155,7 +1138,7 @@ _l2p(int d, void *vaddr) return 0; } - return ((sal_paddr_t)virt_to_bus(vaddr)); + return ((sal_paddr_t)virt_to_phys(vaddr)); } void * @@ -1171,7 +1154,7 @@ _p2l(int d, sal_paddr_t paddr) return (void *)(vaddr + (sal_vaddr_t)(paddr - _dma_pbase)); } - return bus_to_virt(paddr); + return phys_to_virt(paddr); } /* diff --git a/sdk-6.5.24/systems/linux/kernel/modules/bcm-knet/bcm-knet.c b/sdk-6.5.24/systems/linux/kernel/modules/bcm-knet/bcm-knet.c index 79d0690b5..5fda79bc6 100755 --- a/sdk-6.5.24/systems/linux/kernel/modules/bcm-knet/bcm-knet.c +++ b/sdk-6.5.24/systems/linux/kernel/modules/bcm-knet/bcm-knet.c @@ -313,24 +313,8 @@ static int napi_weight = 0; #define NETDEV_UPDATE_TRANS_START_TIME(dev) netif_trans_update(dev) #endif -#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0) -#define bkn_vlan_hwaccel_put_tag(_skb, _proto, _tci) \ - __vlan_hwaccel_put_tag(_skb, _tci) -#else -#define bkn_vlan_hwaccel_put_tag(_skb, _proto, _tci) \ - __vlan_hwaccel_put_tag(_skb, htons(_proto), _tci) -#endif - -#if LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0) -#define ETH_P_8021AD 0x88A8 /* 802.1ad Service VLAN */ -#endif - #include -#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0) -#define HWTSTAMP_TX_ONESTEP_SYNC 2 -#endif - /* * Get a 16-bit value from packet offset * _data Pointer to packet @@ -3842,13 +3826,13 @@ bkn_do_api_rx(bkn_switch_info_t *sinfo, int chan, int budget) */ if (priv->flags & KCOM_NETIF_F_RCPU_ENCAP) { - bkn_vlan_hwaccel_put_tag(skb, ETH_P_8021Q, tci); + __vlan_hwaccel_put_tag(skb, ETH_P_8021Q, tci); } else { if (vlan_proto == ETH_P_8021AD) { - bkn_vlan_hwaccel_put_tag + __vlan_hwaccel_put_tag (skb, ETH_P_8021AD, tci); } else { - bkn_vlan_hwaccel_put_tag + __vlan_hwaccel_put_tag (skb, ETH_P_8021Q, tci); } } @@ -4004,13 +3988,13 @@ bkn_skb_rx_netif_process(bkn_switch_info_t *sinfo, int dest_id, int chan, uint16_t tci = PKT_U16_GET(skb->data, 14); if (priv->flags & KCOM_NETIF_F_RCPU_ENCAP) { - bkn_vlan_hwaccel_put_tag(skb, ETH_P_8021Q, tci); + __vlan_hwaccel_put_tag(skb, ETH_P_8021Q, tci); } else { if (vlan_proto == ETH_P_8021AD) { - bkn_vlan_hwaccel_put_tag + __vlan_hwaccel_put_tag (skb, ETH_P_8021AD, tci); } else { - bkn_vlan_hwaccel_put_tag + __vlan_hwaccel_put_tag (skb, ETH_P_8021Q, tci); } } @@ -5562,7 +5546,6 @@ bkn_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) return copy_to_user(ifr->ifr_data, &config, sizeof(config)) ? -EFAULT : 0; } -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) if (cmd == SIOCGHWTSTAMP) { config.flags = 0; config.tx_type = priv->tx_hwts; @@ -5570,7 +5553,6 @@ bkn_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) return copy_to_user(ifr->ifr_data, &config, sizeof(config)) ? -EFAULT : 0; } -#endif return -EINVAL; } @@ -6725,7 +6707,6 @@ bkn_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *drvinfo) strscpy(drvinfo->bus_info, "N/A", sizeof(drvinfo->bus_info)); } -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)) static int #if (LINUX_VERSION_CODE < KERNEL_VERSION(6,11,0)) bkn_get_ts_info(struct net_device *dev, struct ethtool_ts_info *info) @@ -6788,7 +6769,6 @@ bkn_get_ts_info(struct net_device *dev, struct kernel_ethtool_ts_info *info) return 0; } -#endif int bkn_get_link_ksettings(struct net_device *dev, struct ethtool_link_ksettings *cmd) @@ -6833,9 +6813,7 @@ static const struct ethtool_ops bkn_ethtool_ops = { .get_drvinfo = bkn_get_drvinfo, .get_link = ethtool_op_get_link, .get_link_ksettings = bkn_get_link_ksettings, -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)) .get_ts_info = bkn_get_ts_info, -#endif }; static struct net_device * @@ -8034,31 +8012,31 @@ bkn_proc_init(void) { struct proc_dir_entry *entry; - PROC_CREATE(entry, "link", 0666, bkn_proc_root, &bkn_proc_link_file_ops); + entry = proc_create("link", 0666, bkn_proc_root, &bkn_proc_link_file_ops); if (entry == NULL) { return -1; } - PROC_CREATE(entry, "rate", 0666, bkn_proc_root, &bkn_proc_rate_file_ops); + entry = proc_create("rate", 0666, bkn_proc_root, &bkn_proc_rate_file_ops); if (entry == NULL) { return -1; } - PROC_CREATE(entry, "dma", 0, bkn_proc_root, &bkn_seq_dma_file_ops); + entry = proc_create("dma", 0, bkn_proc_root, &bkn_seq_dma_file_ops); if (entry == NULL) { return -1; } - PROC_CREATE(entry, "debug", 0666, bkn_proc_root, &bkn_proc_debug_file_ops); + entry = proc_create("debug", 0666, bkn_proc_root, &bkn_proc_debug_file_ops); if (entry == NULL) { return -1; } - PROC_CREATE(entry, "stats", 0666, bkn_proc_root, &bkn_proc_stats_file_ops); + entry = proc_create("stats", 0666, bkn_proc_root, &bkn_proc_stats_file_ops); if (entry == NULL) { return -1; } - PROC_CREATE(entry, "dstats", 0666, bkn_proc_root, &bkn_proc_dstats_file_ops); + entry = proc_create("dstats", 0666, bkn_proc_root, &bkn_proc_dstats_file_ops); if (entry == NULL) { return -1; } - PROC_CREATE(entry, "ptp_stats", 0666, bkn_proc_root, &bkn_proc_ptp_stats_file_ops); + entry = proc_create("ptp_stats", 0666, bkn_proc_root, &bkn_proc_ptp_stats_file_ops); if (entry == NULL) { return -1; } diff --git a/sdk-6.5.24/systems/linux/kernel/modules/bcm-ptp-clock/bcm-ptp-clock.c b/sdk-6.5.24/systems/linux/kernel/modules/bcm-ptp-clock/bcm-ptp-clock.c index a82a657e4..82725ee7b 100644 --- a/sdk-6.5.24/systems/linux/kernel/modules/bcm-ptp-clock/bcm-ptp-clock.c +++ b/sdk-6.5.24/systems/linux/kernel/modules/bcm-ptp-clock/bcm-ptp-clock.c @@ -36,7 +36,6 @@ MODULE_AUTHOR("Broadcom Corporation"); MODULE_DESCRIPTION("PTP Clock Driver for Broadcom XGS Switch"); MODULE_LICENSE("GPL"); -#if LINUX_VERSION_CODE > KERNEL_VERSION(3,17,0) #include #include #include @@ -2806,8 +2805,6 @@ static int bksync_ptp_remove(void) return 0; } -#endif - /* * Generic module functions @@ -2826,12 +2823,8 @@ static int bksync_ptp_remove(void) static int _pprint(struct seq_file *m) { -#if LINUX_VERSION_CODE > KERNEL_VERSION(3,17,0) /* put some goodies here */ pprintf(m, "Broadcom BCM PTP Hardware Clock Module\n"); -#else - pprintf(m, "Broadcom BCM PTP Hardware Clock Module not supported\n"); -#endif return 0; } @@ -2849,12 +2842,8 @@ _pprint(struct seq_file *m) static int _init(void) { -#if LINUX_VERSION_CODE > KERNEL_VERSION(3,17,0) bksync_ptp_register(); return 0; -#else - return -1; -#endif } /* @@ -2870,12 +2859,8 @@ _init(void) static int _cleanup(void) { -#if LINUX_VERSION_CODE > KERNEL_VERSION(3,17,0) bksync_ptp_remove(); return 0; -#else - return -1; -#endif } static gmodule_t _gmodule = { diff --git a/sdk-6.5.24/systems/linux/kernel/modules/include/lkm.h b/sdk-6.5.24/systems/linux/kernel/modules/include/lkm.h index 8cbfd2a50..cecf6b3bd 100644 --- a/sdk-6.5.24/systems/linux/kernel/modules/include/lkm.h +++ b/sdk-6.5.24/systems/linux/kernel/modules/include/lkm.h @@ -19,14 +19,12 @@ #include /* The version kconfig.h became available in. */ #include -#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0) -#if defined(INCLUDE_KNET) && LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0) +#if defined(INCLUDE_KNET) #ifdef CONFIG_NF_CONNTRACK_MODULE #include #endif #endif #include -#endif #include #if LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0) #define HAVE_COMPAT_IOCTL 1 @@ -52,8 +50,6 @@ #include #include -#define PROC_INTERFACE_KERN_VER_3_10 (LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)) - /* Compatibility Macros */ #ifndef list_for_each_safe @@ -104,38 +100,4 @@ #define CONFIG_BMW #endif -#if PROC_INTERFACE_KERN_VER_3_10 -#define PROC_CREATE(_entry, _name, _acc, _path, _fops) \ - do { \ - _entry = proc_create(_name, _acc, _path, _fops); \ - } while (0) - -#define PROC_CREATE_DATA(_entry, _name, _acc, _path, _fops, _data) \ - do { \ - _entry = proc_create_data(_name, _acc, _path, _fops, _data); \ - } while (0) - -#define PROC_PDE_DATA(_node) PDE_DATA(_node) - -#else -#define PROC_CREATE(_entry, _name, _acc, _path, _fops) \ - do { \ - _entry = create_proc_entry(_name, _acc, _path); \ - if (_entry) { \ - _entry->proc_fops = _fops; \ - } \ - } while (0) - -#define PROC_CREATE_DATA(_entry, _name, _acc, _path, _fops, _data) \ - do { \ - _entry = create_proc_entry(_name, _acc, _path); \ - if (_entry) { \ - _entry->proc_fops = _fops; \ - _entry->data=_data; \ - } \ - } while (0) - -#define PROC_PDE_DATA(_node) PROC_I(_node)->pde->data -#endif - #endif /* __COMMON_LINUX_KRN_LKM_H__ */ diff --git a/sdk-6.5.24/systems/linux/kernel/modules/shared/gmodule.c b/sdk-6.5.24/systems/linux/kernel/modules/shared/gmodule.c index 8dba72447..e3aeb1948 100644 --- a/sdk-6.5.24/systems/linux/kernel/modules/shared/gmodule.c +++ b/sdk-6.5.24/systems/linux/kernel/modules/shared/gmodule.c @@ -64,7 +64,6 @@ gdbg(const char* fmt, ...) /* * Proc FS Utilities */ -#if PROC_INTERFACE_KERN_VER_3_10 int pprintf(struct seq_file *m, const char* fmt, ...) { @@ -129,93 +128,17 @@ struct file_operations _gmodule_proc_fops = { .release = _gmodule_proc_release, }; #endif -#else -int -gmodule_vpprintf(char** page_ptr, const char* fmt, va_list args) -{ - *page_ptr += vsprintf(*page_ptr, fmt, args); - return 0; -} - -int -gmodule_pprintf(char** page_ptr, const char* fmt, ...) -{ - int rv; - - va_list args; - va_start(args, fmt); - rv = gmodule_vpprintf(page_ptr, fmt, args); - va_end(args); - return rv; -} - -static char* _proc_buf = NULL; - -int -pprintf(struct seq_file *m, const char* fmt, ...) -{ - int rv; - - va_list args; - va_start(args, fmt); - rv = gmodule_vpprintf(&_proc_buf, fmt, args); - va_end(args); - return rv; -} - -#define PSTART(b) _proc_buf = b -#define PPRINT proc_print -#define PEND(b) (_proc_buf-b) - -static int -_gmodule_pprint(char* buf) -{ - PSTART(buf); - _gmodule->pprint(NULL); - return PEND(buf); -} - -static int -_gmodule_read_proc(char *page, char **start, off_t off, - int count, int *eof, void *data) -{ - *eof = 1; - return _gmodule_pprint(page); -} - -static int -_gmodule_write_proc(struct file *file, const char *buffer, - unsigned long count, void *data) -{ - /* Workaround to toggle debugging */ - if(count > 2) { - if(buffer[0] == 'd') { - _dbg_enable = buffer[1] - '0'; - GDBG("Debugging Enabled"); - } - } - return count; -} -#endif static int _gmodule_create_proc(void) { struct proc_dir_entry* ent; -#if PROC_INTERFACE_KERN_VER_3_10 if((ent = proc_create(_gmodule->name, S_IRUGO | S_IWUGO, NULL, &_gmodule_proc_fops)) != NULL) { return 0; } -#else - if((ent = create_proc_entry(_gmodule->name, S_IRUGO | S_IWUGO, NULL)) != NULL) { - ent->read_proc = _gmodule_read_proc; - ent->write_proc = _gmodule_write_proc; - return 0; - } -#endif return -1; } diff --git a/sdk-6.5.27/systems/bde/linux/include/linux_dma.h b/sdk-6.5.27/systems/bde/linux/include/linux_dma.h index 27b434cf3..f3c29bf80 100755 --- a/sdk-6.5.27/systems/bde/linux/include/linux_dma.h +++ b/sdk-6.5.27/systems/bde/linux/include/linux_dma.h @@ -29,10 +29,6 @@ #endif /* CONFIG_NONCOHERENT_IO || CONFIG_DMA_NONCOHERENT */ #endif /* __mips__ */ -#if defined(BCM958525) && (LINUX_VERSION_CODE <= KERNEL_VERSION(3,6,5)) -#define REMAP_DMA_NONCACHED -#endif - #ifndef DMA_BIT_MASK #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1)) #endif diff --git a/sdk-6.5.27/systems/bde/linux/kernel/linux-kernel-bde.c b/sdk-6.5.27/systems/bde/linux/kernel/linux-kernel-bde.c index 976010016..ff8a2b0f1 100644 --- a/sdk-6.5.27/systems/bde/linux/kernel/linux-kernel-bde.c +++ b/sdk-6.5.27/systems/bde/linux/kernel/linux-kernel-bde.c @@ -60,14 +60,6 @@ #define PCI_USE_INT_INTX (0) #define PCI_USE_INT_MSI (1) #define PCI_USE_INT_MSIX (2) -#ifdef CONFIG_PCI_MSI -#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,110)) -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,84)) -#define msix_table_size(flags) ((flags & PCI_MSIX_FLAGS_QSIZE) + 1) -#endif -#define msi_control_reg(base) (base + PCI_MSI_FLAGS) -#endif -#endif MODULE_AUTHOR("Broadcom Corporation"); MODULE_DESCRIPTION("Kernel BDE"); MODULE_LICENSE("GPL"); @@ -274,9 +266,7 @@ typedef struct bde_ctrl_s { int bus_no; int be_pio; int use_msi; -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,84)) struct msix_entry *entries; -#endif int msix_cnt; union { /* Linux PCI device pointer */ @@ -2147,7 +2137,6 @@ _device_rescan_validate(struct pci_dev *dev) #ifdef CONFIG_PCI_MSI -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,84)) /** * _pci_msix_table_size - return the number of device's MSI-X table entries * @dev: pointer to the pci_dev data structure of MSI-X device function @@ -2157,45 +2146,17 @@ _pci_msix_table_size(struct pci_dev *dev) { int nr_entries = 0; -#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,110)) - u16 control; - int pos; - - pos = pci_find_capability(dev, PCI_CAP_ID_MSIX); - if (pos) { - pci_read_config_word(dev, msi_control_reg(pos), &control); - nr_entries = msix_table_size(control); - } -#else -#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,14,0)) -{ - /* Pass large entry value to enable MSIX to get # of entires */ - struct msix_entry *entries; - entries = kmalloc(sizeof(struct msix_entry) * - PCI_MSIX_FLAGS_QSIZE, GFP_KERNEL); - if (entries != NULL) { - nr_entries = pci_enable_msix(dev, - entries, PCI_MSIX_FLAGS_QSIZE); - pci_disable_msix(dev); - kfree(entries); - } -} -#else nr_entries = pci_msix_vec_count(dev); -#endif if (nr_entries < 0) { nr_entries = 0; } -#endif return nr_entries; } -#endif static int _msi_connect(bde_ctrl_t *ctrl) { -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,84)) int ret; if (ctrl->use_msi == PCI_USE_INT_MSIX) { int i; @@ -2218,23 +2179,8 @@ _msi_connect(bde_ctrl_t *ctrl) gprintk("MSIX Table size = %d\n", ctrl->msix_cnt); for (i = 0; i < ctrl->msix_cnt; i++) ctrl->entries[i].entry = i; -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0) ret = pci_enable_msix_range(ctrl->pci_device, ctrl->entries, ctrl->msix_cnt, ctrl->msix_cnt); -#else - ret = pci_enable_msix(ctrl->pci_device, - ctrl->entries, ctrl->msix_cnt); - if (ret > 0) { - /* Not enough vectors available , Retry MSI-X */ - gprintk("Retrying with MSI-X interrupts = %d\n", ret); - ctrl->msix_cnt = ret; - msixcnt = ret; - ret = pci_enable_msix(ctrl->pci_device, - ctrl->entries, ctrl->msix_cnt); - if (ret != 0) - goto er_intx_free; - } -#endif if (ret < 0) { /* Error */ goto er_intx_free; @@ -2243,7 +2189,6 @@ _msi_connect(bde_ctrl_t *ctrl) return 0; } } -#endif if (ctrl->use_msi == PCI_USE_INT_MSI) { if (pci_enable_msi(ctrl->pci_device) == 0) { @@ -2259,11 +2204,9 @@ _msi_connect(bde_ctrl_t *ctrl) goto er_intx; } return 0; -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,84)) er_intx_free: gprintk("Failed to enable MSI-X interrupts = %d\n", ret); kfree(ctrl->entries); -#endif er_intx: return -1; @@ -2272,7 +2215,6 @@ _msi_connect(bde_ctrl_t *ctrl) static int _msi_disconnect(bde_ctrl_t *ctrl) { -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,84)) if (ctrl->use_msi == PCI_USE_INT_MSIX) { if (ctrl->msix_cnt) { pci_disable_msix(ctrl->pci_device); @@ -2281,7 +2223,6 @@ _msi_disconnect(bde_ctrl_t *ctrl) ctrl->msix_cnt = 0; } } -#endif if (ctrl->use_msi == PCI_USE_INT_MSI) { pci_disable_msi(ctrl->pci_device); } else { @@ -2318,7 +2259,6 @@ config_pci_intr_type(struct pci_dev *dev, bde_ctrl_t *ctrl, int iproc) } } -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,84)) if (ctrl->use_msi == PCI_USE_INT_MSIX) { /* check for support MSIX vector */ ret = _pci_msix_table_size(ctrl->pci_device); @@ -2327,7 +2267,6 @@ config_pci_intr_type(struct pci_dev *dev, bde_ctrl_t *ctrl, int iproc) ctrl->use_msi = PCI_USE_INT_MSI; } } -#endif if (ctrl->use_msi == PCI_USE_INT_MSI) { /* check for support MSI vector */ @@ -2880,14 +2819,12 @@ _pci_remove(struct pci_dev* dev) /* Free our interrupt handler, if we have one */ if (ctrl->isr || ctrl->isr2) { #ifdef CONFIG_PCI_MSI -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,84)) if (ctrl->use_msi >= PCI_USE_INT_MSIX) { int i; for (i = 0; i < ctrl->msix_cnt; i++) free_irq(ctrl->entries[i].vector, ctrl); } else -#endif #endif { free_irq(ctrl->iLine, ctrl); @@ -3120,11 +3057,7 @@ _init(void) if (use_msi == PCI_USE_INT_NONE) { /* Compilation flag determines default value */ #ifdef BDE_LINUX_USE_MSIX_INTERRUPT -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,84)) use_msi = PCI_USE_INT_MSIX; -#else - use_msi = PCI_USE_INT_MSI; -#endif #elif defined(BDE_LINUX_USE_MSI_INTERRUPT) use_msi = PCI_USE_INT_MSI; #else @@ -3776,7 +3709,6 @@ _interrupt_connect(int d, if(ret != 0) goto msi_exit; } -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,84)) if (ctrl->use_msi == PCI_USE_INT_MSIX) { int i; for (i = 0; i < ctrl->msix_cnt; i++) { @@ -3797,7 +3729,6 @@ _interrupt_connect(int d, } } else -#endif #endif { #if defined(IPROC_CMICD) && defined(CONFIG_OF) @@ -3929,7 +3860,6 @@ _interrupt_disconnect(int d) if (isr_active) { #ifdef CONFIG_PCI_MSI -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,84)) if (ctrl->use_msi >= PCI_USE_INT_MSIX) { int i; for (i = 0; i < ctrl->msix_cnt; i++) { @@ -3942,7 +3872,6 @@ _interrupt_disconnect(int d) } else #endif -#endif #if defined(IPROC_CMICD) && defined(CONFIG_OF) if (of_find_compatible_node(NULL, NULL, IPROC_CMICX_COMPATIBLE)) { int i; diff --git a/sdk-6.5.27/systems/bde/linux/kernel/linux_dma.c b/sdk-6.5.27/systems/bde/linux/kernel/linux_dma.c index 7b12462d4..ad49970e8 100644 --- a/sdk-6.5.27/systems/bde/linux/kernel/linux_dma.c +++ b/sdk-6.5.27/systems/bde/linux/kernel/linux_dma.c @@ -100,12 +100,6 @@ #endif #endif -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)) -#include -#define virt_to_bus virt_to_phys -#define bus_to_virt phys_to_virt -#endif - #ifndef KMALLOC_MAX_SIZE #define KMALLOC_MAX_SIZE (1UL << (MAX_ORDER - 1 + PAGE_SHIFT)) #endif @@ -126,15 +120,9 @@ static int mem_flags = GFP_ATOMIC | GFP_DMA; #endif #ifdef IPROC_CMICD -#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,13,0) #ifndef COHERENT_ALLOC_USE_DMA_TO_PHYS #define COHERENT_ALLOC_USE_DMA_TO_PHYS 1 #endif -#else -#ifndef COHERENT_ALLOC_PHYS_IS_DMA_ADDR -#define COHERENT_ALLOC_PHYS_IS_DMA_ADDR 1 -#endif -#endif #endif /* IPROC_CMICD */ /* @@ -144,9 +132,6 @@ static int mem_flags = GFP_ATOMIC | GFP_DMA; #ifndef COHERENT_ALLOC_USE_DMA_TO_PHYS #define COHERENT_ALLOC_USE_DMA_TO_PHYS 0 #endif -#ifndef COHERENT_ALLOC_PHYS_IS_DMA_ADDR -#define COHERENT_ALLOC_PHYS_IS_DMA_ADDR 0 -#endif #if COHERENT_ALLOC_USE_DMA_TO_PHYS #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,16,0)) @@ -160,8 +145,6 @@ static int mem_flags = GFP_ATOMIC | GFP_DMA; #if COHERENT_ALLOC_USE_DMA_TO_PHYS #define HOST_PHYS_ADDR(_dev, _dma_a, _kvirt_a) \ ((_dev) ? dma_to_phys((_dev), (_dma_a)) : virt_to_phys(_kvirt_a)) -#elif COHERENT_ALLOC_PHYS_IS_DMA_ADDR -#define HOST_PHYS_ADDR(_dev, _dma_a, _kvirt_a) (_dma_a) #else #define HOST_PHYS_ADDR(_dev, _dma_a, _kvirt_a) (virt_to_phys(_kvirt_a)) #endif @@ -654,7 +637,7 @@ _edk_mpool_alloc(int dev_id, size_t size) (unsigned long)size); return; } - cpu_pbase = virt_to_bus(dma_vbase); + cpu_pbase = virt_to_phys(dma_vbase); /* Use dma_map_single to obtain DMA bus address or IOVA if IOMMU is present. */ if (dev) { @@ -1148,7 +1131,7 @@ _l2p(int d, void *vaddr) return 0; } - return ((sal_paddr_t)virt_to_bus(vaddr)); + return ((sal_paddr_t)virt_to_phys(vaddr)); } void * @@ -1164,7 +1147,7 @@ _p2l(int d, sal_paddr_t paddr) return (void *)(vaddr + (sal_vaddr_t)(paddr - _dma_pbase)); } - return bus_to_virt(paddr); + return phys_to_virt(paddr); } /* diff --git a/sdk-6.5.27/systems/linux/kernel/modules/bcm-knet/bcm-knet.c b/sdk-6.5.27/systems/linux/kernel/modules/bcm-knet/bcm-knet.c index a5036acd1..f41498df1 100755 --- a/sdk-6.5.27/systems/linux/kernel/modules/bcm-knet/bcm-knet.c +++ b/sdk-6.5.27/systems/linux/kernel/modules/bcm-knet/bcm-knet.c @@ -313,24 +313,8 @@ static int napi_weight = 0; #define NETDEV_UPDATE_TRANS_START_TIME(dev) netif_trans_update(dev) #endif -#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0) -#define bkn_vlan_hwaccel_put_tag(_skb, _proto, _tci) \ - __vlan_hwaccel_put_tag(_skb, _tci) -#else -#define bkn_vlan_hwaccel_put_tag(_skb, _proto, _tci) \ - __vlan_hwaccel_put_tag(_skb, htons(_proto), _tci) -#endif - -#if LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0) -#define ETH_P_8021AD 0x88A8 /* 802.1ad Service VLAN */ -#endif - #include -#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0) -#define HWTSTAMP_TX_ONESTEP_SYNC 2 -#endif - /* * Get a 16-bit value from packet offset * _data Pointer to packet @@ -3905,13 +3889,13 @@ bkn_do_api_rx(bkn_switch_info_t *sinfo, int chan, int budget) */ if (priv->flags & KCOM_NETIF_F_RCPU_ENCAP) { - bkn_vlan_hwaccel_put_tag(skb, ETH_P_8021Q, tci); + __vlan_hwaccel_put_tag(skb, ETH_P_8021Q, tci); } else { if (vlan_proto == ETH_P_8021AD) { - bkn_vlan_hwaccel_put_tag + __vlan_hwaccel_put_tag (skb, ETH_P_8021AD, tci); } else { - bkn_vlan_hwaccel_put_tag + __vlan_hwaccel_put_tag (skb, ETH_P_8021Q, tci); } } @@ -4067,13 +4051,13 @@ bkn_skb_rx_netif_process(bkn_switch_info_t *sinfo, int dest_id, int chan, uint16_t tci = PKT_U16_GET(skb->data, 14); if (priv->flags & KCOM_NETIF_F_RCPU_ENCAP) { - bkn_vlan_hwaccel_put_tag(skb, ETH_P_8021Q, tci); + __vlan_hwaccel_put_tag(skb, ETH_P_8021Q, tci); } else { if (vlan_proto == ETH_P_8021AD) { - bkn_vlan_hwaccel_put_tag + __vlan_hwaccel_put_tag (skb, ETH_P_8021AD, tci); } else { - bkn_vlan_hwaccel_put_tag + __vlan_hwaccel_put_tag (skb, ETH_P_8021Q, tci); } } @@ -5766,7 +5750,6 @@ bkn_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) return copy_to_user(ifr->ifr_data, &config, sizeof(config)) ? -EFAULT : 0; } -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) if (cmd == SIOCGHWTSTAMP) { config.flags = 0; config.tx_type = priv->tx_hwts; @@ -5774,7 +5757,6 @@ bkn_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) return copy_to_user(ifr->ifr_data, &config, sizeof(config)) ? -EFAULT : 0; } -#endif return -EINVAL; } @@ -6935,7 +6917,6 @@ bkn_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *drvinfo) strscpy(drvinfo->bus_info, "N/A", sizeof(drvinfo->bus_info)); } -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)) static int #if (LINUX_VERSION_CODE < KERNEL_VERSION(6,11,0)) bkn_get_ts_info(struct net_device *dev, struct ethtool_ts_info *info) @@ -7014,7 +6995,6 @@ bkn_get_ts_info(struct net_device *dev, struct kernel_ethtool_ts_info *info) return 0; } -#endif #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0)) static int @@ -7047,9 +7027,7 @@ bkn_set_link_ksettings(struct net_device *netdev, static const struct ethtool_ops bkn_ethtool_ops = { .get_drvinfo = bkn_get_drvinfo, .get_link = ethtool_op_get_link, -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)) .get_ts_info = bkn_get_ts_info, -#endif #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0)) .get_link_ksettings = bkn_get_link_ksettings, .set_link_ksettings = bkn_set_link_ksettings, @@ -8191,31 +8169,31 @@ bkn_proc_init(void) { struct proc_dir_entry *entry; - PROC_CREATE(entry, "link", 0666, bkn_proc_root, &bkn_proc_link_file_ops); + entry = proc_create("link", 0666, bkn_proc_root, &bkn_proc_link_file_ops); if (entry == NULL) { return -1; } - PROC_CREATE(entry, "rate", 0666, bkn_proc_root, &bkn_proc_rate_file_ops); + entry = proc_create("rate", 0666, bkn_proc_root, &bkn_proc_rate_file_ops); if (entry == NULL) { return -1; } - PROC_CREATE(entry, "dma", 0, bkn_proc_root, &bkn_seq_dma_file_ops); + entry = proc_create("dma", 0, bkn_proc_root, &bkn_seq_dma_file_ops); if (entry == NULL) { return -1; } - PROC_CREATE(entry, "debug", 0666, bkn_proc_root, &bkn_proc_debug_file_ops); + entry = proc_create("debug", 0666, bkn_proc_root, &bkn_proc_debug_file_ops); if (entry == NULL) { return -1; } - PROC_CREATE(entry, "stats", 0666, bkn_proc_root, &bkn_proc_stats_file_ops); + entry = proc_create("stats", 0666, bkn_proc_root, &bkn_proc_stats_file_ops); if (entry == NULL) { return -1; } - PROC_CREATE(entry, "dstats", 0666, bkn_proc_root, &bkn_proc_dstats_file_ops); + entry = proc_create("dstats", 0666, bkn_proc_root, &bkn_proc_dstats_file_ops); if (entry == NULL) { return -1; } - PROC_CREATE(entry, "ptp_stats", 0666, bkn_proc_root, &bkn_proc_ptp_stats_file_ops); + entry = proc_create("ptp_stats", 0666, bkn_proc_root, &bkn_proc_ptp_stats_file_ops); if (entry == NULL) { return -1; } diff --git a/sdk-6.5.27/systems/linux/kernel/modules/bcm-ptp-clock/bcm-ptp-clock.c b/sdk-6.5.27/systems/linux/kernel/modules/bcm-ptp-clock/bcm-ptp-clock.c index 6569004df..282dddca2 100644 --- a/sdk-6.5.27/systems/linux/kernel/modules/bcm-ptp-clock/bcm-ptp-clock.c +++ b/sdk-6.5.27/systems/linux/kernel/modules/bcm-ptp-clock/bcm-ptp-clock.c @@ -11,7 +11,6 @@ MODULE_AUTHOR("Broadcom Corporation"); MODULE_DESCRIPTION("PTP Clock Driver for Broadcom XGS/DNX Switch"); MODULE_LICENSE("GPL"); -#if LINUX_VERSION_CODE > KERNEL_VERSION(3,17,0) #include #include #include @@ -3274,8 +3273,6 @@ static int bksync_ptp_remove(void) return 0; } -#endif - @@ -3283,12 +3280,8 @@ static int bksync_ptp_remove(void) static int _pprint(struct seq_file *m) { -#if LINUX_VERSION_CODE > KERNEL_VERSION(3,17,0) pprintf(m, "Broadcom BCM PTP Hardware Clock Module\n"); -#else - pprintf(m, "Broadcom BCM PTP Hardware Clock Module not supported\n"); -#endif return 0; } @@ -3296,24 +3289,16 @@ _pprint(struct seq_file *m) static int _init(void) { -#if LINUX_VERSION_CODE > KERNEL_VERSION(3,17,0) bksync_ptp_register(); return 0; -#else - return -1; -#endif } static int _cleanup(void) { -#if LINUX_VERSION_CODE > KERNEL_VERSION(3,17,0) bksync_ptp_remove(); return 0; -#else - return -1; -#endif } static gmodule_t _gmodule = { diff --git a/sdk-6.5.27/systems/linux/kernel/modules/include/lkm.h b/sdk-6.5.27/systems/linux/kernel/modules/include/lkm.h index ff871bb13..32110a982 100644 --- a/sdk-6.5.27/systems/linux/kernel/modules/include/lkm.h +++ b/sdk-6.5.27/systems/linux/kernel/modules/include/lkm.h @@ -19,14 +19,12 @@ #include /* The version kconfig.h became available in. */ #include -#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0) -#if defined(INCLUDE_KNET) && LINUX_VERSION_CODE >= KERNEL_VERSION(4,0,0) +#if defined(INCLUDE_KNET) #ifdef CONFIG_NF_CONNTRACK_MODULE #include #endif #endif #include -#endif #include /* Helper defines for multi-version kernel support */ @@ -55,8 +53,6 @@ #include #endif -#define PROC_INTERFACE_KERN_VER_3_10 (LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)) - /* Compatibility Macros */ #ifndef list_for_each_safe @@ -119,38 +115,4 @@ #define proc_release release #endif -#if PROC_INTERFACE_KERN_VER_3_10 -#define PROC_CREATE(_entry, _name, _acc, _path, _fops) \ - do { \ - _entry = proc_create(_name, _acc, _path, _fops); \ - } while (0) - -#define PROC_CREATE_DATA(_entry, _name, _acc, _path, _fops, _data) \ - do { \ - _entry = proc_create_data(_name, _acc, _path, _fops, _data); \ - } while (0) - -#define PROC_PDE_DATA(_node) PDE_DATA(_node) - -#else -#define PROC_CREATE(_entry, _name, _acc, _path, _fops) \ - do { \ - _entry = create_proc_entry(_name, _acc, _path); \ - if (_entry) { \ - _entry->proc_fops = _fops; \ - } \ - } while (0) - -#define PROC_CREATE_DATA(_entry, _name, _acc, _path, _fops, _data) \ - do { \ - _entry = create_proc_entry(_name, _acc, _path); \ - if (_entry) { \ - _entry->proc_fops = _fops; \ - _entry->data=_data; \ - } \ - } while (0) - -#define PROC_PDE_DATA(_node) PROC_I(_node)->pde->data -#endif - #endif /* __COMMON_LINUX_KRN_LKM_H__ */ diff --git a/sdk-6.5.27/systems/linux/kernel/modules/shared/gmodule.c b/sdk-6.5.27/systems/linux/kernel/modules/shared/gmodule.c index ce668a8d2..054af6aa6 100644 --- a/sdk-6.5.27/systems/linux/kernel/modules/shared/gmodule.c +++ b/sdk-6.5.27/systems/linux/kernel/modules/shared/gmodule.c @@ -67,7 +67,6 @@ gdbg(const char* fmt, ...) /* * Proc FS Utilities */ -#if PROC_INTERFACE_KERN_VER_3_10 int pprintf(struct seq_file *m, const char* fmt, ...) { @@ -122,93 +121,17 @@ struct proc_ops _gmodule_proc_fops = { .proc_write = _gmodule_proc_write, .proc_release = _gmodule_proc_release, }; -#else -int -gmodule_vpprintf(char** page_ptr, const char* fmt, va_list args) -{ - *page_ptr += vsprintf(*page_ptr, fmt, args); - return 0; -} - -int -gmodule_pprintf(char** page_ptr, const char* fmt, ...) -{ - int rv; - - va_list args; - va_start(args, fmt); - rv = gmodule_vpprintf(page_ptr, fmt, args); - va_end(args); - return rv; -} - -static char* _proc_buf = NULL; - -int -pprintf(struct seq_file *m, const char* fmt, ...) -{ - int rv; - - va_list args; - va_start(args, fmt); - rv = gmodule_vpprintf(&_proc_buf, fmt, args); - va_end(args); - return rv; -} - -#define PSTART(b) _proc_buf = b -#define PPRINT proc_print -#define PEND(b) (_proc_buf-b) - -static int -_gmodule_pprint(char* buf) -{ - PSTART(buf); - _gmodule->pprint(NULL); - return PEND(buf); -} - -static int -_gmodule_read_proc(char *page, char **start, off_t off, - int count, int *eof, void *data) -{ - *eof = 1; - return _gmodule_pprint(page); -} - -static int -_gmodule_write_proc(struct file *file, const char *buffer, - unsigned long count, void *data) -{ - /* Workaround to toggle debugging */ - if(count > 2) { - if(buffer[0] == 'd') { - _dbg_enable = buffer[1] - '0'; - GDBG("Debugging Enabled"); - } - } - return count; -} -#endif static int _gmodule_create_proc(void) { struct proc_dir_entry* ent; -#if PROC_INTERFACE_KERN_VER_3_10 if((ent = proc_create(_gmodule->name, S_IRUGO | S_IWUGO, NULL, &_gmodule_proc_fops)) != NULL) { return 0; } -#else - if((ent = create_proc_entry(_gmodule->name, S_IRUGO | S_IWUGO, NULL)) != NULL) { - ent->read_proc = _gmodule_read_proc; - ent->write_proc = _gmodule_write_proc; - return 0; - } -#endif return -1; } From b06a715436b3be245949c0d0c834fa8f3a82804e Mon Sep 17 00:00:00 2001 From: Jonas Gorski Date: Mon, 27 Apr 2026 14:47:59 +0200 Subject: [PATCH 3/4] modules: drop very old kernel (< 5.0) support Drop support for very old kernels pre 5.0 and resolve all compatibility macros as needed. Signed-off-by: Jonas Gorski --- .../bde/linux/kernel/linux-kernel-bde.c | 15 ------- .../systems/bde/linux/kernel/linux_dma.c | 4 -- .../bde/linux/user/kernel/linux-user-bde.c | 2 - .../linux/kernel/modules/bcm-knet/bcm-knet.c | 40 +------------------ .../linux/kernel/modules/include/lkm.h | 2 - .../systems/bde/linux/kernel/linux_dma.c | 4 -- .../bde/linux/user/kernel/linux-user-bde.c | 2 - .../linux/kernel/modules/bcm-knet/bcm-knet.c | 40 +------------------ .../linux/kernel/modules/include/lkm.h | 2 - 9 files changed, 2 insertions(+), 109 deletions(-) diff --git a/sdk-6.5.24/systems/bde/linux/kernel/linux-kernel-bde.c b/sdk-6.5.24/systems/bde/linux/kernel/linux-kernel-bde.c index c7619715f..4ebd1b26c 100644 --- a/sdk-6.5.24/systems/bde/linux/kernel/linux-kernel-bde.c +++ b/sdk-6.5.24/systems/bde/linux/kernel/linux-kernel-bde.c @@ -2136,23 +2136,8 @@ _msi_connect(bde_ctrl_t *ctrl) gprintk("MSIX Table size = %d\n", ctrl->msix_cnt); for (i = 0; i < ctrl->msix_cnt; i++) ctrl->entries[i].entry = i; -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0) ret = pci_enable_msix_range(ctrl->pci_device, ctrl->entries, ctrl->msix_cnt, ctrl->msix_cnt); -#else - ret = pci_enable_msix(ctrl->pci_device, - ctrl->entries, ctrl->msix_cnt); - if (ret > 0) { - /* Not enough vectors available , Retry MSI-X */ - gprintk("Retrying with MSI-X interrupts = %d\n", ret); - ctrl->msix_cnt = ret; - msixcnt = ret; - ret = pci_enable_msix(ctrl->pci_device, - ctrl->entries, ctrl->msix_cnt); - if (ret != 0) - goto er_intx_free; - } -#endif if (ret < 0) { /* Error */ goto er_intx_free; diff --git a/sdk-6.5.24/systems/bde/linux/kernel/linux_dma.c b/sdk-6.5.24/systems/bde/linux/kernel/linux_dma.c index 0f6690d31..0468af776 100644 --- a/sdk-6.5.24/systems/bde/linux/kernel/linux_dma.c +++ b/sdk-6.5.24/systems/bde/linux/kernel/linux_dma.c @@ -135,11 +135,7 @@ static int mem_flags = GFP_ATOMIC | GFP_DMA; #endif #if COHERENT_ALLOC_USE_DMA_TO_PHYS -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,16,0)) #include -#else -#include -#endif #endif /* Macro to get the host physical address when using dma_alloc_coherent() */ diff --git a/sdk-6.5.24/systems/bde/linux/user/kernel/linux-user-bde.c b/sdk-6.5.24/systems/bde/linux/user/kernel/linux-user-bde.c index 94f8aeb1b..393b537f0 100644 --- a/sdk-6.5.24/systems/bde/linux/user/kernel/linux-user-bde.c +++ b/sdk-6.5.24/systems/bde/linux/user/kernel/linux-user-bde.c @@ -27,9 +27,7 @@ #include #include "linux-user-bde.h" -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0) #include -#endif MODULE_AUTHOR("Broadcom Corporation"); MODULE_DESCRIPTION("User BDE Helper Module"); diff --git a/sdk-6.5.24/systems/linux/kernel/modules/bcm-knet/bcm-knet.c b/sdk-6.5.24/systems/linux/kernel/modules/bcm-knet/bcm-knet.c index 5fda79bc6..8f0d7d761 100755 --- a/sdk-6.5.24/systems/linux/kernel/modules/bcm-knet/bcm-knet.c +++ b/sdk-6.5.24/systems/linux/kernel/modules/bcm-knet/bcm-knet.c @@ -307,12 +307,6 @@ static int napi_weight = 0; #define PCI_SET_DMA_MASK(pdev, mask) dma_set_mask(&(pdev)->dev, (mask)) #endif -#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,7,0)) -#define NETDEV_UPDATE_TRANS_START_TIME(dev) dev->trans_start = jiffies -#else -#define NETDEV_UPDATE_TRANS_START_TIME(dev) netif_trans_update(dev) -#endif - #include /* @@ -6392,7 +6386,7 @@ bkn_tx(struct sk_buff *skb, struct net_device *dev) return NETDEV_TX_BUSY; } - NETDEV_UPDATE_TRANS_START_TIME(dev); + netif_trans_update(dev); spin_unlock_irqrestore(&sinfo->lock, flags); @@ -6435,21 +6429,12 @@ bkn_timer_func(bkn_switch_info_t *sinfo) spin_unlock_irqrestore(&sinfo->lock, flags); } -#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,15,0)) -static void -bkn_timer(unsigned long context) -{ - bkn_switch_info_t *sinfo = (bkn_switch_info_t *)context; - return bkn_timer_func(sinfo); -} -#else static void bkn_timer(struct timer_list *t) { bkn_switch_info_t *sinfo = from_timer(sinfo, t, timer); return bkn_timer_func(sinfo); } -#endif static void bkn_rx_add_tokens(bkn_switch_info_t *sinfo, int chan) @@ -6526,21 +6511,12 @@ bkn_rxtick_func(bkn_switch_info_t *sinfo) add_timer(&sinfo->rxtick); } -#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,15,0)) -static void -bkn_rxtick(unsigned long context) -{ - bkn_switch_info_t *sinfo = (bkn_switch_info_t *)context; - return bkn_rxtick_func(sinfo); -} -#else static void bkn_rxtick(struct timer_list *t) { bkn_switch_info_t *sinfo = from_timer(sinfo, t, rxtick); return bkn_rxtick_func(sinfo); } -#endif static void bkn_rx_rate_config(bkn_switch_info_t *sinfo) @@ -6627,13 +6603,7 @@ bkn_create_sinfo(int dev_no) skb_queue_head_init(&sinfo->tx_ptp_queue); INIT_WORK(&sinfo->tx_ptp_work, bkn_hw_tstamp_tx_work); -#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,15,0)) - init_timer(&sinfo->timer); - sinfo->timer.data = (unsigned long)sinfo; - sinfo->timer.function = bkn_timer; -#else timer_setup(&sinfo->timer, bkn_timer, 0); -#endif sinfo->timer.expires = jiffies + 1; INIT_LIST_HEAD(&sinfo->tx.api_dcb_list); @@ -6652,13 +6622,7 @@ bkn_create_sinfo(int dev_no) sinfo->rx[0].use_rx_skb = 0; } -#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,15,0)) - init_timer(&sinfo->rxtick); - sinfo->rxtick.data = (unsigned long)sinfo; - sinfo->rxtick.function = bkn_rxtick; -#else timer_setup(&sinfo->rxtick, bkn_rxtick, 0); -#endif sinfo->rxtick.expires = jiffies + 1; for (chan = 0; chan < NUM_RX_CHAN; chan++) { @@ -6846,9 +6810,7 @@ bkn_init_ndev(u8 *mac, char *name) if (dev->mtu == 0) { dev->mtu = rx_buffer_size; } -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) dev->max_mtu = rx_buffer_size; -#endif /* Device vectors */ dev->netdev_ops = &bkn_netdev_ops; diff --git a/sdk-6.5.24/systems/linux/kernel/modules/include/lkm.h b/sdk-6.5.24/systems/linux/kernel/modules/include/lkm.h index cecf6b3bd..2cd0542f7 100644 --- a/sdk-6.5.24/systems/linux/kernel/modules/include/lkm.h +++ b/sdk-6.5.24/systems/linux/kernel/modules/include/lkm.h @@ -41,9 +41,7 @@ #include #include #include -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0) #include -#endif #include #include diff --git a/sdk-6.5.27/systems/bde/linux/kernel/linux_dma.c b/sdk-6.5.27/systems/bde/linux/kernel/linux_dma.c index ad49970e8..a36bb4122 100644 --- a/sdk-6.5.27/systems/bde/linux/kernel/linux_dma.c +++ b/sdk-6.5.27/systems/bde/linux/kernel/linux_dma.c @@ -134,11 +134,7 @@ static int mem_flags = GFP_ATOMIC | GFP_DMA; #endif #if COHERENT_ALLOC_USE_DMA_TO_PHYS -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,16,0)) #include -#else -#include -#endif #endif /* Macro to get the host physical address when using dma_alloc_coherent() */ diff --git a/sdk-6.5.27/systems/bde/linux/user/kernel/linux-user-bde.c b/sdk-6.5.27/systems/bde/linux/user/kernel/linux-user-bde.c index 3b9093601..3beedcf19 100644 --- a/sdk-6.5.27/systems/bde/linux/user/kernel/linux-user-bde.c +++ b/sdk-6.5.27/systems/bde/linux/user/kernel/linux-user-bde.c @@ -27,9 +27,7 @@ #include #include "linux-user-bde.h" -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0) #include -#endif MODULE_AUTHOR("Broadcom Corporation"); MODULE_DESCRIPTION("User BDE Helper Module"); diff --git a/sdk-6.5.27/systems/linux/kernel/modules/bcm-knet/bcm-knet.c b/sdk-6.5.27/systems/linux/kernel/modules/bcm-knet/bcm-knet.c index f41498df1..9522b820e 100755 --- a/sdk-6.5.27/systems/linux/kernel/modules/bcm-knet/bcm-knet.c +++ b/sdk-6.5.27/systems/linux/kernel/modules/bcm-knet/bcm-knet.c @@ -307,12 +307,6 @@ static int napi_weight = 0; #define PCI_SET_DMA_MASK(pdev, mask) dma_set_mask(&(pdev)->dev, (mask)) #endif -#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,7,0)) -#define NETDEV_UPDATE_TRANS_START_TIME(dev) dev->trans_start = jiffies -#else -#define NETDEV_UPDATE_TRANS_START_TIME(dev) netif_trans_update(dev) -#endif - #include /* @@ -6602,7 +6596,7 @@ bkn_tx(struct sk_buff *skb, struct net_device *dev) return NETDEV_TX_BUSY; } - NETDEV_UPDATE_TRANS_START_TIME(dev); + netif_trans_update(dev); spin_unlock_irqrestore(&sinfo->lock, flags); @@ -6645,21 +6639,12 @@ bkn_timer_func(bkn_switch_info_t *sinfo) spin_unlock_irqrestore(&sinfo->lock, flags); } -#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,15,0)) -static void -bkn_timer(unsigned long context) -{ - bkn_switch_info_t *sinfo = (bkn_switch_info_t *)context; - return bkn_timer_func(sinfo); -} -#else static void bkn_timer(struct timer_list *t) { bkn_switch_info_t *sinfo = from_timer(sinfo, t, timer); return bkn_timer_func(sinfo); } -#endif static void bkn_rx_add_tokens(bkn_switch_info_t *sinfo, int chan) @@ -6736,21 +6721,12 @@ bkn_rxtick_func(bkn_switch_info_t *sinfo) add_timer(&sinfo->rxtick); } -#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,15,0)) -static void -bkn_rxtick(unsigned long context) -{ - bkn_switch_info_t *sinfo = (bkn_switch_info_t *)context; - return bkn_rxtick_func(sinfo); -} -#else static void bkn_rxtick(struct timer_list *t) { bkn_switch_info_t *sinfo = from_timer(sinfo, t, rxtick); return bkn_rxtick_func(sinfo); } -#endif static void bkn_rx_rate_config(bkn_switch_info_t *sinfo) @@ -6837,13 +6813,7 @@ bkn_create_sinfo(int dev_no) skb_queue_head_init(&sinfo->tx_ptp_queue); INIT_WORK(&sinfo->tx_ptp_work, bkn_hw_tstamp_tx_work); -#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,15,0)) - init_timer(&sinfo->timer); - sinfo->timer.data = (unsigned long)sinfo; - sinfo->timer.function = bkn_timer; -#else timer_setup(&sinfo->timer, bkn_timer, 0); -#endif sinfo->timer.expires = jiffies + 1; INIT_LIST_HEAD(&sinfo->tx.api_dcb_list); @@ -6862,13 +6832,7 @@ bkn_create_sinfo(int dev_no) sinfo->rx[0].use_rx_skb = 0; } -#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,15,0)) - init_timer(&sinfo->rxtick); - sinfo->rxtick.data = (unsigned long)sinfo; - sinfo->rxtick.function = bkn_rxtick; -#else timer_setup(&sinfo->rxtick, bkn_rxtick, 0); -#endif sinfo->rxtick.expires = jiffies + 1; for (chan = 0; chan < NUM_RX_CHAN; chan++) { @@ -7064,9 +7028,7 @@ bkn_init_ndev(u8 *mac, char *name) if (dev->mtu == 0) { dev->mtu = rx_buffer_size; } -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) dev->max_mtu = rx_buffer_size; -#endif /* Device vectors */ dev->netdev_ops = &bkn_netdev_ops; diff --git a/sdk-6.5.27/systems/linux/kernel/modules/include/lkm.h b/sdk-6.5.27/systems/linux/kernel/modules/include/lkm.h index 32110a982..5290b5ba5 100644 --- a/sdk-6.5.27/systems/linux/kernel/modules/include/lkm.h +++ b/sdk-6.5.27/systems/linux/kernel/modules/include/lkm.h @@ -40,9 +40,7 @@ #include #include #include -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0) #include -#endif #include #include From ee82d40e63ca1235a35ac8f7c1ff6761ae28a2fd Mon Sep 17 00:00:00 2001 From: Jonas Gorski Date: Mon, 27 Apr 2026 14:59:36 +0200 Subject: [PATCH 4/4] modules: drop old kernel (< 5.15) support The oldest kernel we support in BISDN Linux is 5.15, so drop support for older kernel versions. Signed-off-by: Jonas Gorski --- .../systems/bde/linux/kernel/linux_dma.c | 10 --- .../linux/kernel/modules/bcm-knet/bcm-knet.c | 76 ------------------- .../linux/kernel/modules/include/lkm.h | 4 - .../linux/kernel/modules/shared/gmodule.c | 33 -------- 4 files changed, 123 deletions(-) diff --git a/sdk-6.5.24/systems/bde/linux/kernel/linux_dma.c b/sdk-6.5.24/systems/bde/linux/kernel/linux_dma.c index 0468af776..522a5aced 100644 --- a/sdk-6.5.24/systems/bde/linux/kernel/linux_dma.c +++ b/sdk-6.5.24/systems/bde/linux/kernel/linux_dma.c @@ -1207,12 +1207,7 @@ _sinval(int d, void *ptr, int length) #if defined(dma_cache_wback_inv) dma_cache_wback_inv((unsigned long)ptr, length); #else -#if defined(IPROC_CMICD) || defined(BCM958525) || (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0)) - dma_sync_single_for_cpu(NULL, (unsigned long)ptr, length, DMA_BIDIRECTIONAL); -#else - dma_cache_sync(NULL, ptr, length, DMA_BIDIRECTIONAL); -#endif #endif return 0; } @@ -1223,12 +1218,7 @@ _sflush(int d, void *ptr, int length) #if defined(dma_cache_wback_inv) dma_cache_wback_inv((unsigned long)ptr, length); #else -#if defined(IPROC_CMICD) || defined(BCM958525) || (LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0)) - dma_sync_single_for_cpu(NULL, (unsigned long)ptr, length, DMA_BIDIRECTIONAL); -#else - dma_cache_sync(NULL, ptr, length, DMA_BIDIRECTIONAL); -#endif #endif return 0; diff --git a/sdk-6.5.24/systems/linux/kernel/modules/bcm-knet/bcm-knet.c b/sdk-6.5.24/systems/linux/kernel/modules/bcm-knet/bcm-knet.c index 8f0d7d761..5914fb348 100755 --- a/sdk-6.5.24/systems/linux/kernel/modules/bcm-knet/bcm-knet.c +++ b/sdk-6.5.24/systems/linux/kernel/modules/bcm-knet/bcm-knet.c @@ -6981,7 +6981,6 @@ bkn_proc_link_write(struct file *file, const char *buf, return count; } -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0) struct proc_ops bkn_proc_link_file_ops = { proc_open: bkn_proc_link_open, proc_read: seq_read, @@ -6989,16 +6988,6 @@ struct proc_ops bkn_proc_link_file_ops = { proc_write: bkn_proc_link_write, proc_release: single_release, }; -#else -struct file_operations bkn_proc_link_file_ops = { - owner: THIS_MODULE, - open: bkn_proc_link_open, - read: seq_read, - llseek: seq_lseek, - write: bkn_proc_link_write, - release: single_release, -}; -#endif /* * Device Rate Control Proc Read Entry @@ -7101,7 +7090,6 @@ bkn_proc_rate_write(struct file *file, const char *buf, return count; } -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0) struct proc_ops bkn_proc_rate_file_ops = { proc_open: bkn_proc_rate_open, proc_read: seq_read, @@ -7109,16 +7097,6 @@ struct proc_ops bkn_proc_rate_file_ops = { proc_write: bkn_proc_rate_write, proc_release: single_release, }; -#else -struct file_operations bkn_proc_rate_file_ops = { - owner: THIS_MODULE, - open: bkn_proc_rate_open, - read: seq_read, - llseek: seq_lseek, - write: bkn_proc_rate_write, - release: single_release, -}; -#endif /* * Driver DMA Proc Entry @@ -7361,22 +7339,12 @@ bkn_seq_dma_open(struct inode *inode, struct file *file) return seq_open(file, &bkn_seq_dma_ops); }; -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0) struct proc_ops bkn_seq_dma_file_ops = { proc_open: bkn_seq_dma_open, proc_read: seq_read, proc_lseek: seq_lseek, proc_release: seq_release, }; -#else -static struct file_operations bkn_seq_dma_file_ops = { - .owner = THIS_MODULE, - .open = bkn_seq_dma_open, - .read = seq_read, - .llseek = seq_lseek, - .release = seq_release -}; -#endif /* * Device Debug Control Proc Write Entry @@ -7507,7 +7475,6 @@ static int bkn_proc_debug_open(struct inode * inode, struct file * file) return single_open(file, bkn_proc_debug_show, NULL); } -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0) struct proc_ops bkn_proc_debug_file_ops = { proc_open: bkn_proc_debug_open, proc_read: seq_read, @@ -7515,16 +7482,6 @@ struct proc_ops bkn_proc_debug_file_ops = { proc_write: bkn_proc_debug_write, proc_release: single_release, }; -#else -struct file_operations bkn_proc_debug_file_ops = { - owner: THIS_MODULE, - open: bkn_proc_debug_open, - read: seq_read, - llseek: seq_lseek, - write: bkn_proc_debug_write, - release: single_release, -}; -#endif /* * Device Statistics Proc Entry @@ -7646,7 +7603,6 @@ bkn_proc_stats_write(struct file *file, const char *buf, return count; } -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0) struct proc_ops bkn_proc_stats_file_ops = { proc_open: bkn_proc_stats_open, proc_read: seq_read, @@ -7654,16 +7610,6 @@ struct proc_ops bkn_proc_stats_file_ops = { proc_write: bkn_proc_stats_write, proc_release: single_release, }; -#else -struct file_operations bkn_proc_stats_file_ops = { - owner: THIS_MODULE, - open: bkn_proc_stats_open, - read: seq_read, - llseek: seq_lseek, - write: bkn_proc_stats_write, - release: single_release, -}; -#endif /* * Device Debug Statistics Proc Entry @@ -7832,7 +7778,6 @@ bkn_proc_dstats_write(struct file *file, const char *buf, return count; } -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0) struct proc_ops bkn_proc_dstats_file_ops = { proc_open: bkn_proc_dstats_open, proc_read: seq_read, @@ -7840,16 +7785,6 @@ struct proc_ops bkn_proc_dstats_file_ops = { proc_write: bkn_proc_dstats_write, proc_release: single_release, }; -#else -struct file_operations bkn_proc_dstats_file_ops = { - owner: THIS_MODULE, - open: bkn_proc_dstats_open, - read: seq_read, - llseek: seq_lseek, - write: bkn_proc_dstats_write, - release: single_release, -}; -#endif /* * PTP Statistics Proc Entry @@ -7950,7 +7885,6 @@ bkn_proc_ptp_stats_write(struct file *file, const char *buf, size_t count, loff_ return count; } -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0) struct proc_ops bkn_proc_ptp_stats_file_ops = { proc_open: bkn_proc_ptp_stats_open, proc_read: seq_read, @@ -7958,16 +7892,6 @@ struct proc_ops bkn_proc_ptp_stats_file_ops = { proc_write: bkn_proc_ptp_stats_write, proc_release: single_release, }; -#else -struct file_operations bkn_proc_ptp_stats_file_ops = { - owner: THIS_MODULE, - open: bkn_proc_ptp_stats_open, - read: seq_read, - llseek: seq_lseek, - write: bkn_proc_ptp_stats_write, - release: single_release, -}; -#endif static int bkn_proc_init(void) diff --git a/sdk-6.5.24/systems/linux/kernel/modules/include/lkm.h b/sdk-6.5.24/systems/linux/kernel/modules/include/lkm.h index 2cd0542f7..13880cc59 100644 --- a/sdk-6.5.24/systems/linux/kernel/modules/include/lkm.h +++ b/sdk-6.5.24/systems/linux/kernel/modules/include/lkm.h @@ -26,10 +26,6 @@ #endif #include #include -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0) -#define HAVE_COMPAT_IOCTL 1 -#define HAVE_UNLOCKED_IOCTL 1 -#endif #include /* printk() */ #include /* everything... */ diff --git a/sdk-6.5.24/systems/linux/kernel/modules/shared/gmodule.c b/sdk-6.5.24/systems/linux/kernel/modules/shared/gmodule.c index e3aeb1948..6be68a685 100644 --- a/sdk-6.5.24/systems/linux/kernel/modules/shared/gmodule.c +++ b/sdk-6.5.24/systems/linux/kernel/modules/shared/gmodule.c @@ -110,7 +110,6 @@ static int _gmodule_proc_release(struct inode * inode, struct file * file) { return single_release(inode, file); } -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0) struct proc_ops _gmodule_proc_fops = { .proc_open = _gmodule_proc_open, .proc_read = seq_read, @@ -118,16 +117,6 @@ struct proc_ops _gmodule_proc_fops = { .proc_write = _gmodule_proc_write, .proc_release = _gmodule_proc_release, }; -#else -struct file_operations _gmodule_proc_fops = { - .owner = THIS_MODULE, - .open = _gmodule_proc_open, - .read = seq_read, - .llseek = seq_lseek, - .write = _gmodule_proc_write, - .release = _gmodule_proc_release, -}; -#endif static int _gmodule_create_proc(void) @@ -166,7 +155,6 @@ _gmodule_release(struct inode *inode, struct file *filp) return 0; } -#ifdef HAVE_UNLOCKED_IOCTL static long _gmodule_unlocked_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) @@ -177,20 +165,7 @@ _gmodule_unlocked_ioctl(struct file *filp, return -1; } } -#else -static int -_gmodule_ioctl(struct inode *inode, struct file *filp, - unsigned int cmd, unsigned long arg) -{ - if(_gmodule->ioctl) { - return _gmodule->ioctl(cmd, arg); - } else { - return -1; - } -} -#endif -#ifdef HAVE_COMPAT_IOCTL static long _gmodule_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg) { @@ -200,8 +175,6 @@ _gmodule_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg) return -1; } } -#endif - static int _gmodule_mmap(struct file *filp, struct vm_area_struct *vma) @@ -229,17 +202,11 @@ _gmodule_mmap(struct file *filp, struct vm_area_struct *vma) /* FILE OPERATIONS */ struct file_operations _gmodule_fops = { -#ifdef HAVE_UNLOCKED_IOCTL .unlocked_ioctl = _gmodule_unlocked_ioctl, -#else - .ioctl = _gmodule_ioctl, -#endif .open = _gmodule_open, .release = _gmodule_release, .mmap = _gmodule_mmap, -#ifdef HAVE_COMPAT_IOCTL .compat_ioctl = _gmodule_compat_ioctl, -#endif };