On Mon, Mar 01, 2010 at 03:41:57PM -0700, dann frazier wrote:
> I've been debugging an issue where it looks like a threshold mask is
> getting read in incorrectly.
> 
> I have the following raw SDR:
> 
> 00000760  1f 00 51 01 3b 20 00 1d  07 01 23 c3 03 09 00 00  |..Q.; ....#.....|
> 00000770  00 00 03 00 00 06 00 00  02 00 00 00 00 00 02 00  |................|
> 00000780  1e 00 ff 00 00 00 00 00  00 00 00 00 00 00 00 cb  |................|
> 00000790  50 6f 77 65 72 20 4d 65  74 65 72 00 00 00 00 00  |Power Meter.....|
> 
> Byte 19 (Settable Threshold Mask) = 0x03
> Byte 20 (Readable Threshold Mask) = 0x00
> 
> However, after parsing this sdr, ipmitool is seeing bits set in the Readable
> Threshold Mask. I verified that w/ the following patch:
> 
> --- lib/ipmi_sdr.c.orig       2010-03-01 15:47:05.000000000 -0700
> +++ lib/ipmi_sdr.c    2010-03-01 15:47:09.000000000 -0700
> @@ -2472,6 +2472,8 @@ ipmi_sdr_print_sdr(struct ipmi_intf *int
>               case SDR_RECORD_TYPE_FULL_SENSOR:
>                       sdrr->record.full =
>                           (struct sdr_record_full_sensor *) rec;
> +                     printf("Readable Threshold Mask LC is %x\n",
> +                            sdrr->record.full->mask.type.threshold.read.lcr);
>                       break;
>               case SDR_RECORD_TYPE_COMPACT_SENSOR:
>                       sdrr->record.compact =
> 
> 
> Which outputs "Readable Threshold Mask LC is 1" for the sensor in question.
> 
> This seems to be related to the use of uint16_t as the type, though I can't
> put my finger on exactly why. The patch below appears to fix it for me.
> fyi, my patch basically looks like a revert of this one:
> 
>   http://bit.ly/c539td

I think I've found the problem - it looks like the conversion to
uint16_t also should've swapped the bytes in little endian mode.

I've added an issue to the bug tracker (ID: 2962905) for this
including patches for two different ways to address this. One that
retains uint16_t and fixes little endia mode, and another that reverts
back to uint8_t mode.

------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Ipmitool-devel mailing list
Ipmitool-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ipmitool-devel

Reply via email to