Skip to contentSkip to conversation

pmcraid has duplicated structure members and fails build

DISCUSSION Andi Kleen 1 participant 1 message Oct 25, 2010 SCSI

lore
Share & tools
lore

Andi Kleen

author
#0 lore raw

A current Linus kernel built with a gcc 4.6 snapshot for allyesconfig on x86-64 fails with

In file included from /home/lsrc/git/linux-2.6/drivers/scsi/pmcraid.c:57:0:
/home/lsrc/git/linux-2.6/drivers/scsi/pmcraid.h:601:8: error: duplicate member 'sense_buffer'

The error is correct:

/* pmcraid_cmd - LLD representation of SCSI command */ struct pmcraid_cmd {

        /* Ptr and bus address of DMA.able control block for this command */
        struct pmcraid_control_block *ioa_cb;
        dma_addr_t ioa_cb_bus_addr;
        dma_addr_t dma_handle;
        u8 *sense_buffer;             <---------- no 1

	...

	 /* scratch used */
        union {
                /* during reset sequence */
                unsigned long time_left;
                struct pmcraid_resource_entry *res;
                int hrrq_index;

                /* used during IO command error handling. Sense buffer
                 * for REQUEST SENSE command if firmware is not sending
                 * auto sense data
                 */
                struct  {
                        u8 *sense_buffer;    <-------- no 2
                        dma_addr_t sense_buffer_dma;
                };
        };

};

I think older gccs didn't diagnose that correctly, but it's really broken.

Can someone please figure out which one is the correct sense_buffer and delete the other one?

Thanks,

-Andi

Signature · 1 line
[email protected] -- Speaking for myself only.