ide: make /proc/ide/ optional
All important information/features should be already available through sysfs and ioctl interfaces. Add CONFIG_IDE_PROC_FS (CONFIG_SCSI_PROC_FS rip-off) config option, disabling it makes IDE driver ~5 kB smaller (on x86-32). While at it add CONFIG_PROC_FS=n versions of proc_ide_{create,destroy}() and remove no longer needed #ifdefs. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
parent
29e744d088
commit
ecfd80e4a5
13 changed files with 48 additions and 38 deletions
|
@ -291,6 +291,17 @@ config IDE_TASK_IOCTL
|
||||||
|
|
||||||
If you are unsure, say N here.
|
If you are unsure, say N here.
|
||||||
|
|
||||||
|
config IDE_PROC_FS
|
||||||
|
bool "legacy /proc/ide/ support"
|
||||||
|
depends on IDE && PROC_FS
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
This option enables support for the various files in
|
||||||
|
/proc/ide. In Linux 2.6 this has been superseded by
|
||||||
|
files in sysfs but many legacy applications rely on this.
|
||||||
|
|
||||||
|
If unsure say Y.
|
||||||
|
|
||||||
comment "IDE chipset support/bugfixes"
|
comment "IDE chipset support/bugfixes"
|
||||||
|
|
||||||
config IDE_GENERIC
|
config IDE_GENERIC
|
||||||
|
|
|
@ -20,7 +20,7 @@ ide-core-$(CONFIG_BLK_DEV_CMD640) += pci/cmd640.o
|
||||||
# Core IDE code - must come before legacy
|
# Core IDE code - must come before legacy
|
||||||
ide-core-$(CONFIG_BLK_DEV_IDEPCI) += setup-pci.o
|
ide-core-$(CONFIG_BLK_DEV_IDEPCI) += setup-pci.o
|
||||||
ide-core-$(CONFIG_BLK_DEV_IDEDMA) += ide-dma.o
|
ide-core-$(CONFIG_BLK_DEV_IDEDMA) += ide-dma.o
|
||||||
ide-core-$(CONFIG_PROC_FS) += ide-proc.o
|
ide-core-$(CONFIG_IDE_PROC_FS) += ide-proc.o
|
||||||
ide-core-$(CONFIG_BLK_DEV_IDEPNP) += ide-pnp.o
|
ide-core-$(CONFIG_BLK_DEV_IDEPNP) += ide-pnp.o
|
||||||
ide-core-$(CONFIG_BLK_DEV_IDEACPI) += ide-acpi.o
|
ide-core-$(CONFIG_BLK_DEV_IDEACPI) += ide-acpi.o
|
||||||
|
|
||||||
|
|
|
@ -3274,7 +3274,7 @@ int ide_cdrom_setup (ide_drive_t *drive)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_PROC_FS
|
#ifdef CONFIG_IDE_PROC_FS
|
||||||
static
|
static
|
||||||
sector_t ide_cdrom_capacity (ide_drive_t *drive)
|
sector_t ide_cdrom_capacity (ide_drive_t *drive)
|
||||||
{
|
{
|
||||||
|
@ -3321,7 +3321,7 @@ static void ide_cd_release(struct kref *kref)
|
||||||
|
|
||||||
static int ide_cd_probe(ide_drive_t *);
|
static int ide_cd_probe(ide_drive_t *);
|
||||||
|
|
||||||
#ifdef CONFIG_PROC_FS
|
#ifdef CONFIG_IDE_PROC_FS
|
||||||
static int proc_idecd_read_capacity
|
static int proc_idecd_read_capacity
|
||||||
(char *page, char **start, off_t off, int count, int *eof, void *data)
|
(char *page, char **start, off_t off, int count, int *eof, void *data)
|
||||||
{
|
{
|
||||||
|
|
|
@ -559,7 +559,7 @@ static sector_t idedisk_capacity (ide_drive_t *drive)
|
||||||
return drive->capacity64 - drive->sect0;
|
return drive->capacity64 - drive->sect0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_PROC_FS
|
#ifdef CONFIG_IDE_PROC_FS
|
||||||
|
|
||||||
static int smart_enable(ide_drive_t *drive)
|
static int smart_enable(ide_drive_t *drive)
|
||||||
{
|
{
|
||||||
|
@ -683,7 +683,7 @@ static ide_proc_entry_t idedisk_proc[] = {
|
||||||
|
|
||||||
#define idedisk_proc NULL
|
#define idedisk_proc NULL
|
||||||
|
|
||||||
#endif /* CONFIG_PROC_FS */
|
#endif /* CONFIG_IDE_PROC_FS */
|
||||||
|
|
||||||
static void idedisk_prepare_flush(request_queue_t *q, struct request *rq)
|
static void idedisk_prepare_flush(request_queue_t *q, struct request *rq)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1892,7 +1892,7 @@ static void ide_floppy_release(struct kref *kref)
|
||||||
kfree(floppy);
|
kfree(floppy);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_PROC_FS
|
#ifdef CONFIG_IDE_PROC_FS
|
||||||
|
|
||||||
static int proc_idefloppy_read_capacity
|
static int proc_idefloppy_read_capacity
|
||||||
(char *page, char **start, off_t off, int count, int *eof, void *data)
|
(char *page, char **start, off_t off, int count, int *eof, void *data)
|
||||||
|
@ -1914,7 +1914,7 @@ static ide_proc_entry_t idefloppy_proc[] = {
|
||||||
|
|
||||||
#define idefloppy_proc NULL
|
#define idefloppy_proc NULL
|
||||||
|
|
||||||
#endif /* CONFIG_PROC_FS */
|
#endif /* CONFIG_IDE_PROC_FS */
|
||||||
|
|
||||||
static int ide_floppy_probe(ide_drive_t *);
|
static int ide_floppy_probe(ide_drive_t *);
|
||||||
|
|
||||||
|
|
|
@ -4730,7 +4730,7 @@ static void ide_tape_release(struct kref *kref)
|
||||||
kfree(tape);
|
kfree(tape);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_PROC_FS
|
#ifdef CONFIG_IDE_PROC_FS
|
||||||
|
|
||||||
static int proc_idetape_read_name
|
static int proc_idetape_read_name
|
||||||
(char *page, char **start, off_t off, int count, int *eof, void *data)
|
(char *page, char **start, off_t off, int count, int *eof, void *data)
|
||||||
|
|
|
@ -350,7 +350,7 @@ static int ide_system_bus_speed(void)
|
||||||
return system_bus_speed;
|
return system_bus_speed;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_PROC_FS
|
#ifdef CONFIG_IDE_PROC_FS
|
||||||
struct proc_dir_entry *proc_ide_root;
|
struct proc_dir_entry *proc_ide_root;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1892,7 +1892,7 @@ static void __init probe_for_hwifs (void)
|
||||||
|
|
||||||
void ide_register_subdriver(ide_drive_t *drive, ide_driver_t *driver)
|
void ide_register_subdriver(ide_drive_t *drive, ide_driver_t *driver)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_PROC_FS
|
#ifdef CONFIG_IDE_PROC_FS
|
||||||
ide_add_proc_entries(drive->proc, driver->proc, drive);
|
ide_add_proc_entries(drive->proc, driver->proc, drive);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -1915,7 +1915,7 @@ void ide_unregister_subdriver(ide_drive_t *drive, ide_driver_t *driver)
|
||||||
{
|
{
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
#ifdef CONFIG_PROC_FS
|
#ifdef CONFIG_IDE_PROC_FS
|
||||||
ide_remove_proc_entries(drive->proc, driver->proc);
|
ide_remove_proc_entries(drive->proc, driver->proc);
|
||||||
#endif
|
#endif
|
||||||
down(&ide_setting_sem);
|
down(&ide_setting_sem);
|
||||||
|
@ -2069,7 +2069,7 @@ static int __init ide_init(void)
|
||||||
|
|
||||||
init_ide_data();
|
init_ide_data();
|
||||||
|
|
||||||
#ifdef CONFIG_PROC_FS
|
#ifdef CONFIG_IDE_PROC_FS
|
||||||
proc_ide_root = proc_mkdir("ide", NULL);
|
proc_ide_root = proc_mkdir("ide", NULL);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -2099,9 +2099,8 @@ static int __init ide_init(void)
|
||||||
probe_for_hwifs();
|
probe_for_hwifs();
|
||||||
initializing = 0;
|
initializing = 0;
|
||||||
|
|
||||||
#ifdef CONFIG_PROC_FS
|
|
||||||
proc_ide_create();
|
proc_ide_create();
|
||||||
#endif
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2141,9 +2140,7 @@ void __exit cleanup_module (void)
|
||||||
pnpide_exit();
|
pnpide_exit();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_PROC_FS
|
|
||||||
proc_ide_destroy();
|
proc_ide_destroy();
|
||||||
#endif
|
|
||||||
|
|
||||||
bus_unregister(&ide_bus_type);
|
bus_unregister(&ide_bus_type);
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,7 +50,7 @@ static u8 m5229_revision;
|
||||||
static u8 chip_is_1543c_e;
|
static u8 chip_is_1543c_e;
|
||||||
static struct pci_dev *isa_dev;
|
static struct pci_dev *isa_dev;
|
||||||
|
|
||||||
#if defined(DISPLAY_ALI_TIMINGS) && defined(CONFIG_PROC_FS)
|
#if defined(DISPLAY_ALI_TIMINGS) && defined(CONFIG_IDE_PROC_FS)
|
||||||
#include <linux/stat.h>
|
#include <linux/stat.h>
|
||||||
#include <linux/proc_fs.h>
|
#include <linux/proc_fs.h>
|
||||||
|
|
||||||
|
@ -278,7 +278,7 @@ static int ali_get_info (char *buffer, char **addr, off_t offset, int count)
|
||||||
|
|
||||||
return p-buffer; /* => must be less than 4k! */
|
return p-buffer; /* => must be less than 4k! */
|
||||||
}
|
}
|
||||||
#endif /* defined(DISPLAY_ALI_TIMINGS) && defined(CONFIG_PROC_FS) */
|
#endif /* defined(DISPLAY_ALI_TIMINGS) && defined(CONFIG_IDE_PROC_FS) */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ali15x3_tune_pio - set up chipset for PIO mode
|
* ali15x3_tune_pio - set up chipset for PIO mode
|
||||||
|
@ -566,13 +566,13 @@ static unsigned int __devinit init_chipset_ali15x3 (struct pci_dev *dev, const c
|
||||||
|
|
||||||
isa_dev = pci_get_device(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M1533, NULL);
|
isa_dev = pci_get_device(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M1533, NULL);
|
||||||
|
|
||||||
#if defined(DISPLAY_ALI_TIMINGS) && defined(CONFIG_PROC_FS)
|
#if defined(DISPLAY_ALI_TIMINGS) && defined(CONFIG_IDE_PROC_FS)
|
||||||
if (!ali_proc) {
|
if (!ali_proc) {
|
||||||
ali_proc = 1;
|
ali_proc = 1;
|
||||||
bmide_dev = dev;
|
bmide_dev = dev;
|
||||||
ide_pci_create_host_proc("ali", ali_get_info);
|
ide_pci_create_host_proc("ali", ali_get_info);
|
||||||
}
|
}
|
||||||
#endif /* defined(DISPLAY_ALI_TIMINGS) && defined(CONFIG_PROC_FS) */
|
#endif /* defined(DISPLAY_ALI_TIMINGS) && defined(CONFIG_IDE_PROC_FS) */
|
||||||
|
|
||||||
local_irq_save(flags);
|
local_irq_save(flags);
|
||||||
|
|
||||||
|
|
|
@ -92,7 +92,7 @@ static unsigned char amd_cyc2udma[] = { 6, 6, 5, 4, 0, 1, 1, 2, 2, 3, 3, 3, 3, 3
|
||||||
* AMD /proc entry.
|
* AMD /proc entry.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef CONFIG_PROC_FS
|
#ifdef CONFIG_IDE_PROC_FS
|
||||||
|
|
||||||
#include <linux/stat.h>
|
#include <linux/stat.h>
|
||||||
#include <linux/proc_fs.h>
|
#include <linux/proc_fs.h>
|
||||||
|
@ -402,14 +402,14 @@ static unsigned int __devinit init_chipset_amd74xx(struct pci_dev *dev, const ch
|
||||||
* Register /proc/ide/amd74xx entry
|
* Register /proc/ide/amd74xx entry
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined(DISPLAY_AMD_TIMINGS) && defined(CONFIG_PROC_FS)
|
#if defined(DISPLAY_AMD_TIMINGS) && defined(CONFIG_IDE_PROC_FS)
|
||||||
if (!amd74xx_proc) {
|
if (!amd74xx_proc) {
|
||||||
amd_base = pci_resource_start(dev, 4);
|
amd_base = pci_resource_start(dev, 4);
|
||||||
bmide_dev = dev;
|
bmide_dev = dev;
|
||||||
ide_pci_create_host_proc("amd74xx", amd74xx_get_info);
|
ide_pci_create_host_proc("amd74xx", amd74xx_get_info);
|
||||||
amd74xx_proc = 1;
|
amd74xx_proc = 1;
|
||||||
}
|
}
|
||||||
#endif /* DISPLAY_AMD_TIMINGS && CONFIG_PROC_FS */
|
#endif /* DISPLAY_AMD_TIMINGS && CONFIG_IDE_PROC_FS */
|
||||||
|
|
||||||
return dev->irq;
|
return dev->irq;
|
||||||
}
|
}
|
||||||
|
|
|
@ -74,7 +74,7 @@
|
||||||
#define UDIDETCR1 0x7B
|
#define UDIDETCR1 0x7B
|
||||||
#define DTPR1 0x7C
|
#define DTPR1 0x7C
|
||||||
|
|
||||||
#if defined(DISPLAY_CMD64X_TIMINGS) && defined(CONFIG_PROC_FS)
|
#if defined(DISPLAY_CMD64X_TIMINGS) && defined(CONFIG_IDE_PROC_FS)
|
||||||
#include <linux/stat.h>
|
#include <linux/stat.h>
|
||||||
#include <linux/proc_fs.h>
|
#include <linux/proc_fs.h>
|
||||||
|
|
||||||
|
@ -165,7 +165,7 @@ static int cmd64x_get_info (char *buffer, char **addr, off_t offset, int count)
|
||||||
return p-buffer; /* => must be less than 4k! */
|
return p-buffer; /* => must be less than 4k! */
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* defined(DISPLAY_CMD64X_TIMINGS) && defined(CONFIG_PROC_FS) */
|
#endif /* defined(DISPLAY_CMD64X_TIMINGS) && defined(CONFIG_IDE_PROC_FS) */
|
||||||
|
|
||||||
static u8 quantize_timing(int timing, int quant)
|
static u8 quantize_timing(int timing, int quant)
|
||||||
{
|
{
|
||||||
|
@ -548,7 +548,7 @@ static unsigned int __devinit init_chipset_cmd64x(struct pci_dev *dev, const cha
|
||||||
(void) pci_write_config_byte(dev, UDIDETCR0, 0xf0);
|
(void) pci_write_config_byte(dev, UDIDETCR0, 0xf0);
|
||||||
#endif /* CONFIG_PPC */
|
#endif /* CONFIG_PPC */
|
||||||
|
|
||||||
#if defined(DISPLAY_CMD64X_TIMINGS) && defined(CONFIG_PROC_FS)
|
#if defined(DISPLAY_CMD64X_TIMINGS) && defined(CONFIG_IDE_PROC_FS)
|
||||||
|
|
||||||
cmd_devs[n_cmd_devs++] = dev;
|
cmd_devs[n_cmd_devs++] = dev;
|
||||||
|
|
||||||
|
@ -556,7 +556,7 @@ static unsigned int __devinit init_chipset_cmd64x(struct pci_dev *dev, const cha
|
||||||
cmd64x_proc = 1;
|
cmd64x_proc = 1;
|
||||||
ide_pci_create_host_proc("cmd64x", cmd64x_get_info);
|
ide_pci_create_host_proc("cmd64x", cmd64x_get_info);
|
||||||
}
|
}
|
||||||
#endif /* DISPLAY_CMD64X_TIMINGS && CONFIG_PROC_FS */
|
#endif /* DISPLAY_CMD64X_TIMINGS && CONFIG_IDE_PROC_FS */
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -191,7 +191,7 @@ static char* chipset_capability[] = {
|
||||||
"ATA 133 (1st gen)", "ATA 133 (2nd gen)"
|
"ATA 133 (1st gen)", "ATA 133 (2nd gen)"
|
||||||
};
|
};
|
||||||
|
|
||||||
#if defined(DISPLAY_SIS_TIMINGS) && defined(CONFIG_PROC_FS)
|
#if defined(DISPLAY_SIS_TIMINGS) && defined(CONFIG_IDE_PROC_FS)
|
||||||
#include <linux/stat.h>
|
#include <linux/stat.h>
|
||||||
#include <linux/proc_fs.h>
|
#include <linux/proc_fs.h>
|
||||||
|
|
||||||
|
@ -426,7 +426,7 @@ static int sis_get_info (char *buffer, char **addr, off_t offset, int count)
|
||||||
|
|
||||||
return len > count ? count : len;
|
return len > count ? count : len;
|
||||||
}
|
}
|
||||||
#endif /* defined(DISPLAY_SIS_TIMINGS) && defined(CONFIG_PROC_FS) */
|
#endif /* defined(DISPLAY_SIS_TIMINGS) && defined(CONFIG_IDE_PROC_FS) */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Configuration functions
|
* Configuration functions
|
||||||
|
@ -797,7 +797,7 @@ static unsigned int __devinit init_chipset_sis5513 (struct pci_dev *dev, const c
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(DISPLAY_SIS_TIMINGS) && defined(CONFIG_PROC_FS)
|
#if defined(DISPLAY_SIS_TIMINGS) && defined(CONFIG_IDE_PROC_FS)
|
||||||
if (!sis_proc) {
|
if (!sis_proc) {
|
||||||
sis_proc = 1;
|
sis_proc = 1;
|
||||||
bmide_dev = dev;
|
bmide_dev = dev;
|
||||||
|
|
|
@ -770,7 +770,7 @@ static void ide_scsi_remove(ide_drive_t *drive)
|
||||||
|
|
||||||
static int ide_scsi_probe(ide_drive_t *);
|
static int ide_scsi_probe(ide_drive_t *);
|
||||||
|
|
||||||
#ifdef CONFIG_PROC_FS
|
#ifdef CONFIG_IDE_PROC_FS
|
||||||
static ide_proc_entry_t idescsi_proc[] = {
|
static ide_proc_entry_t idescsi_proc[] = {
|
||||||
{ "capacity", S_IFREG|S_IRUGO, proc_ide_read_capacity, NULL },
|
{ "capacity", S_IFREG|S_IRUGO, proc_ide_read_capacity, NULL },
|
||||||
{ NULL, 0, NULL, NULL }
|
{ NULL, 0, NULL, NULL }
|
||||||
|
|
|
@ -912,15 +912,15 @@ typedef struct {
|
||||||
write_proc_t *write_proc;
|
write_proc_t *write_proc;
|
||||||
} ide_proc_entry_t;
|
} ide_proc_entry_t;
|
||||||
|
|
||||||
#ifdef CONFIG_PROC_FS
|
#ifdef CONFIG_IDE_PROC_FS
|
||||||
extern struct proc_dir_entry *proc_ide_root;
|
extern struct proc_dir_entry *proc_ide_root;
|
||||||
|
|
||||||
extern void proc_ide_create(void);
|
void proc_ide_create(void);
|
||||||
extern void proc_ide_destroy(void);
|
void proc_ide_destroy(void);
|
||||||
extern void create_proc_ide_interfaces(void);
|
void create_proc_ide_interfaces(void);
|
||||||
void destroy_proc_ide_interface(ide_hwif_t *);
|
void destroy_proc_ide_interface(ide_hwif_t *);
|
||||||
extern void ide_add_proc_entries(struct proc_dir_entry *, ide_proc_entry_t *, void *);
|
void ide_add_proc_entries(struct proc_dir_entry *, ide_proc_entry_t *, void *);
|
||||||
extern void ide_remove_proc_entries(struct proc_dir_entry *, ide_proc_entry_t *);
|
void ide_remove_proc_entries(struct proc_dir_entry *, ide_proc_entry_t *);
|
||||||
read_proc_t proc_ide_read_capacity;
|
read_proc_t proc_ide_read_capacity;
|
||||||
read_proc_t proc_ide_read_geometry;
|
read_proc_t proc_ide_read_geometry;
|
||||||
|
|
||||||
|
@ -944,6 +944,8 @@ void ide_pci_create_host_proc(const char *, get_info_t *);
|
||||||
return len; \
|
return len; \
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
static inline void proc_ide_create(void) { ; }
|
||||||
|
static inline void proc_ide_destroy(void) { ; }
|
||||||
static inline void create_proc_ide_interfaces(void) { ; }
|
static inline void create_proc_ide_interfaces(void) { ; }
|
||||||
static inline void destroy_proc_ide_interface(ide_hwif_t *hwif) { ; }
|
static inline void destroy_proc_ide_interface(ide_hwif_t *hwif) { ; }
|
||||||
#define PROC_IDE_READ_RETURN(page,start,off,count,eof,len) return 0;
|
#define PROC_IDE_READ_RETURN(page,start,off,count,eof,len) return 0;
|
||||||
|
|
Loading…
Reference in a new issue