mirror of
https://github.com/torvalds/linux.git
synced 2026-10-07 22:37:45 -04:00
The owner module reference of the pata_of_platform's scsi_host is initialized to pata_platform's one, because pata_of_platform driver use a scsi_host_template defined in pata_platform. So this drivers can be unloaded even if the scsi device is being accessed. This fixes it by propagating the scsi_host_template to pata_of_platform driver. The scsi_host_template is passed through a new argument of __pata_platform_probe(). Signed-off-by: Akinobu Mita <[email protected]> Signed-off-by: Tejun Heo <[email protected]> Cc: Hans de Goede <[email protected]> Cc: Christoph Hellwig <[email protected]> Cc: "James E.J. Bottomley" <[email protected]> Cc: [email protected] Cc: [email protected]
31 lines
690 B
C
31 lines
690 B
C
#ifndef __LINUX_ATA_PLATFORM_H
|
|
#define __LINUX_ATA_PLATFORM_H
|
|
|
|
struct pata_platform_info {
|
|
/*
|
|
* I/O port shift, for platforms with ports that are
|
|
* constantly spaced and need larger than the 1-byte
|
|
* spacing used by ata_std_ports().
|
|
*/
|
|
unsigned int ioport_shift;
|
|
};
|
|
|
|
struct scsi_host_template;
|
|
|
|
extern int __pata_platform_probe(struct device *dev,
|
|
struct resource *io_res,
|
|
struct resource *ctl_res,
|
|
struct resource *irq_res,
|
|
unsigned int ioport_shift,
|
|
int __pio_mask,
|
|
struct scsi_host_template *sht);
|
|
|
|
/*
|
|
* Marvell SATA private data
|
|
*/
|
|
struct mv_sata_platform_data {
|
|
int n_ports; /* number of sata ports */
|
|
};
|
|
|
|
#endif /* __LINUX_ATA_PLATFORM_H */
|