lkml.org 
[lkml]   [2010]   [Mar]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
SubjectRe: [git patches] libata updates for 2.6.34
Date
On Monday 01 March 2010 09:23:30 pm Jeff Garzik wrote:

> libata: Pass host flags into the pci helper

It introduces a subtle bug:

struct ata_host {
...
unsigned long flags;

> @@ -1642,8 +1643,8 @@ extern int ata_pci_sff_activate_host(struct ata_host *host,
> irq_handler_t irq_handler,
> struct scsi_host_template *sht);
> extern int ata_pci_sff_init_one(struct pci_dev *pdev,
> - const struct ata_port_info * const * ppi,
> - struct scsi_host_template *sht, void *host_priv);
> + const struct ata_port_info * const * ppi,
> + struct scsi_host_template *sht, void *host_priv, int hflags);

'int' type is not equal 'unsigned long' one on 64-bit architectures.

Besides doing it this way is clearly suboptimal as the same effect
could have been achieved by doing:

extern int __ata_pci_sff_init_one(struct pci_dev *pdev,
const struct ata_port_info * const *ppi,
struct scsi_host_template *sht, void *host_priv,
int hflag);
static inline int ata_pci_sff_init_one(struct pci_dev *pdev,
const struct ata_port_info * const *ppi,
struct scsi_host_template *sht, void *host_priv)
{
return __ata_pci_sff_init_one(pdev, ppi, sht, host_priv, 0);
}

without the need to update all drivers and without breaking pending
out-of-tree driver patches (yeah, it breaks my pata_ep93xx patches)..

--
Bartlomiej Zolnierkiewicz

\
 
 \ /
  Last update: 2010-03-05 20:03    [W:0.118 / U:0.684 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site