Geert Uytterhoeven wrote:
> On Sat, 6 Oct 2007 [EMAIL PROTECTED] wrote:
>> --- a/arch/powerpc/platforms/ps3/os-area.c
>> +++ b/arch/powerpc/platforms/ps3/os-area.c
>> @@ -112,10 +114,91 @@ struct os_area_params {
>>      u8 _reserved_5[8];
>>  };
>>  
>> +/**
>> + * struct os_area_db - Shared flash memory database.
>> + * @magic_num: Always '-db-' = 0x2d64622d.
>                                   ^^^^^^^^^^
> #define?


Well, this is a comment, and when debugging it is handy to
know the value.


>> @@ -242,6 +325,303 @@ static int __init verify_header(const st
>>      return 0;
>>  }
>>  
>> +static int db_verify(const struct os_area_db *db)
>> +{
>> +    if (db->magic_num != 0x2d64622dU) {
>                              ^^^^^^^^^^^
> #define?


Sure, it is OK here.


>> +static void os_area_db_init(struct os_area_db *db)
>> +{
>> +    /*
>> +     * item      | start | size
>> +     * ----------+-------+-------
>> +     * header    | 0     | 24
>> +     * index_64  | 24    | 64
>> +     * values_64 | 88    | 57*8 = 456
>> +     * index_32  | 544   | 64
>> +     * values_32 | 609   | 57*4 = 228
>> +     * index_16  | 836   | 64
>> +     * values_16 | 900   | 57*2 = 114
>> +     * end       | 1014  | -
>> +     */
> 
> Lots of #defines and calculations?


OK.


>> +
>> +    memset(db, 0, sizeof(struct os_area_db));
>> +
>> +    db->magic_num = 0x2d64622dU;
>                         ^^^^^^^^^^^
> #define?
> 
>> +    db->version = 1;
>> +    db->index_64 = 24;
>                        ^^
>> +    db->count_64 = 57;
>                        ^^
>> +    db->index_32 = 544;
>                        ^^^
>> +    db->count_32 = 57;
>                        ^^
>> +    db->index_16 = 836;
>                        ^^^
>> +    db->count_16 = 57;
>                        ^^
> #defines?
> 
>> +static void update_flash_db(void)
>> +{
>> +    int result;
>> +    int file;
>> +    off_t offset;
>> +    ssize_t count;
>> +    static const unsigned int buf_len = 8 * OS_AREA_SEGMENT_SIZE;
>> +    const struct os_area_header *header;
>> +    struct os_area_db* db;
>> +
>> +    /* Read in header and db from flash. */
>> +
>> +    file = sys_open("/dev/ps3flash", O_RDWR, 0);
> 
> Ah, file operations from kernel space...


Yes.  I was thinking we could make an interface to the flash driver.

 
>> @@ -264,6 +644,9 @@ static void os_area_queue_work_handler(s
>>              pr_debug("%s:%d of_find_node_by_path failed\n",
>>                      __func__, __LINE__);
>>  
>> +#if defined(CONFIG_PS3_FLASH) || defined(CONFIG_PS3_FLASH_MODULE)
>> +    update_flash_db();
>> +#endif
> 
> Is this #ifdef needed? You don't reference ps3flash symbols directly, only by
> opening /dev/ps3flash. If you always call update_flash_db(), you can print an
> error message and the user will notice things haven't been written to flash.


My thinking was that the file I/O code would be removed by the optimizer
when not needed.  I added a message.






_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to