Re: [PATCH 4/6] ehea: header files
From: Jan-Bernd Themann <hidden>
Date: 2006-08-14 13:32:56
Also in:
linuxppc-dev, lkml
Michael Ellerman wrote:
quoted
--- linux-2.6.18-rc4-orig/drivers/net/ehea/ehea.h 1969-12-31 16:00:00.000000000 -0800 +++ kernel/drivers/net/ehea/ehea.h 2006-08-08 23:59:39.927452928 -0700 + +#define EHEA_PAGESHIFT 12 +#define EHEA_PAGESIZE 4096UL +#define EHEA_CACHE_LINE 128This looks like a very bad idea, what happens if you're running on a machine with 64K pages?
The EHEA_PAGESIZE define is needed for queue management to hardware side.
quoted
+ +#define EHEA_ENABLE 1 +#define EHEA_DISABLE 0Do you really need hash defines for 0 and 1 ? They're fairly well understood in C as meaning true and false.
removed
quoted
+ +/* + * h_galpa: + * for pSeries this is a 64bit memory address where + * I/O memory is mapped into CPU address space + */ + +struct h_galpa { + u64 fw_handle; +};What is a h_galpa? And why does it need a struct if it's just a u64?
The eHEA chip is not PCI attached but directly connected to a proprietary bus. Currently, we can access it by a simple 64 bit address, but this is not true in all cases. Having a struct here allows us to encapsulate the chip register access and to respond to changes to system hardware. We'll change the name to h_epa meaning "ehea physical address"
quoted
+ +struct h_galpas { + struct h_galpa kernel; /* kernel space accessible resource, + set to 0 if unused */ + struct h_galpa user; /* user space accessible resource + set to 0 if unused */ + u32 pid; /* PID of userspace galpa checking */ +}; +
quoted
+struct port_res_cfg { + int max_entries_rcq; + int max_entries_scq; + int max_entries_sq; + int max_entries_rq1; + int max_entries_rq2; + int max_entries_rq3; +};Enormous structs with no comments.
changed Regards, Jan-Bernd