Subject: Re: [PATCH 4/6] ehea: header files

From: Jan-Bernd Themann <[email-masked]>
Date: Mon, 14 Aug 2006 14:53:59 +0200

Michael Ellerman wrote:
>> --- 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 128
> 
> This 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.

>> +
>> +#define EHEA_ENABLE	1
>> +#define EHEA_DISABLE	0
> 
> Do you really need hash defines for 0 and 1 ? They're fairly well
> understood in C as meaning true and false.
> 

removed

>> +
>> +/*
>> + *  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"

>> +
>> +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 */
>> +};
>> +

>> +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