o) Remove some unused local definitions of IP protocol numbers.

o) Use CPU_FOREACH rather than a miscrafted for loop with an off-by-one to
   enable workq interrupts on all cores.
This commit is contained in:
Juli Mallett 2011-01-09 23:05:46 +00:00
parent 33a8413363
commit 529fb1406b
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=217210
2 changed files with 10 additions and 11 deletions

View File

@ -79,8 +79,6 @@ AND WITH ALL FAULTS AND CAVIUM NETWORKS MAKES NO PROMISES, REPRESENTATIONS OR W
#define USE_MULTICORE_RECEIVE 0
#endif
#define IP_PROTOCOL_TCP 6
#define IP_PROTOCOL_UDP 0x11
#define FAU_NUM_PACKET_BUFFERS_TO_FREE (CVMX_FAU_REG_END - sizeof(uint32_t))
#define TOTAL_NUMBER_OF_PORTS (CVMX_PIP_NUM_INPUT_PORTS+1)

View File

@ -235,15 +235,16 @@ static void cvm_oct_configure_common_hw(device_t bus)
if (USE_MULTICORE_RECEIVE) {
critical_enter();
{
int cpu;
for (cpu = 0; cpu < mp_maxid; cpu++) {
if (!CPU_ABSENT(cpu) &&
(cpu != PCPU_GET(cpuid))) {
cvmx_ciu_intx0_t en;
en.u64 = cvmx_read_csr(CVMX_CIU_INTX_EN0(cpu*2));
en.s.workq |= (1<<pow_receive_group);
cvmx_write_csr(CVMX_CIU_INTX_EN0(cpu*2), en.u64);
}
cvmx_ciu_intx0_t en;
int core;
CPU_FOREACH(core) {
if (core == PCPU_GET(cpuid))
continue;
en.u64 = cvmx_read_csr(CVMX_CIU_INTX_EN0(core*2));
en.s.workq |= (1<<pow_receive_group);
cvmx_write_csr(CVMX_CIU_INTX_EN0(core*2), en.u64);
}
}
critical_exit();