aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2007-05-09 18:01:09 -0400
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2007-05-09 18:01:09 -0400
commitecfd80e4a514123070b4cfb674b817ba75055df2 (patch)
tree956baa39e22030d139803b7585bd71e91c637bb5
parent29e744d088e3555f4efbdf390f01088dd66993b6 (diff)
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>
-rw-r--r--drivers/ide/Kconfig11
-rw-r--r--drivers/ide/Makefile2
-rw-r--r--drivers/ide/ide-cd.c4
-rw-r--r--drivers/ide/ide-disk.c4
-rw-r--r--drivers/ide/ide-floppy.c4
-rw-r--r--drivers/ide/ide-tape.c2
-rw-r--r--drivers/ide/ide.c15
-rw-r--r--drivers/ide/pci/alim15x3.c8
-rw-r--r--drivers/ide/pci/amd74xx.c6
-rw-r--r--drivers/ide/pci/cmd64x.c8
-rw-r--r--drivers/ide/pci/sis5513.c6
-rw-r--r--drivers/scsi/ide-scsi.c2
-rw-r--r--include/linux/ide.h14
13 files changed, 48 insertions, 38 deletions
diff --git a/drivers/ide/Kconfig b/drivers/ide/Kconfig
index 5bdf64b77913..a678bbecb489 100644
--- a/drivers/ide/Kconfig
+++ b/drivers/ide/Kconfig
@@ -291,6 +291,17 @@ config IDE_TASK_IOCTL
291 291
292 If you are unsure, say N here. 292 If you are unsure, say N here.
293 293
294config IDE_PROC_FS
295 bool "legacy /proc/ide/ support"
296 depends on IDE && PROC_FS
297 default y
298 help
299 This option enables support for the various files in
300 /proc/ide. In Linux 2.6 this has been superseded by
301 files in sysfs but many legacy applications rely on this.
302
303 If unsure say Y.
304
294comment "IDE chipset support/bugfixes" 305comment "IDE chipset support/bugfixes"
295 306
296config IDE_GENERIC 307config IDE_GENERIC
diff --git a/drivers/ide/Makefile b/drivers/ide/Makefile
index d9f029e8ff74..75dc6969e0a7 100644
--- a/drivers/ide/Makefile
+++ b/drivers/ide/Makefile
@@ -20,7 +20,7 @@ ide-core-$(CONFIG_BLK_DEV_CMD640) += pci/cmd640.o
20# Core IDE code - must come before legacy 20# Core IDE code - must come before legacy
21ide-core-$(CONFIG_BLK_DEV_IDEPCI) += setup-pci.o 21ide-core-$(CONFIG_BLK_DEV_IDEPCI) += setup-pci.o
22ide-core-$(CONFIG_BLK_DEV_IDEDMA) += ide-dma.o 22ide-core-$(CONFIG_BLK_DEV_IDEDMA) += ide-dma.o
23ide-core-$(CONFIG_PROC_FS) += ide-proc.o 23ide-core-$(CONFIG_IDE_PROC_FS) += ide-proc.o
24ide-core-$(CONFIG_BLK_DEV_IDEPNP) += ide-pnp.o 24ide-core-$(CONFIG_BLK_DEV_IDEPNP) += ide-pnp.o
25ide-core-$(CONFIG_BLK_DEV_IDEACPI) += ide-acpi.o 25ide-core-$(CONFIG_BLK_DEV_IDEACPI) += ide-acpi.o
26 26
diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c
index 638becda81c6..c3a0079789fd 100644
--- a/drivers/ide/ide-cd.c
+++ b/drivers/ide/ide-cd.c
@@ -3274,7 +3274,7 @@ int ide_cdrom_setup (ide_drive_t *drive)
3274 return 0; 3274 return 0;
3275} 3275}
3276 3276
3277#ifdef CONFIG_PROC_FS 3277#ifdef CONFIG_IDE_PROC_FS
3278static 3278static
3279sector_t ide_cdrom_capacity (ide_drive_t *drive) 3279sector_t ide_cdrom_capacity (ide_drive_t *drive)
3280{ 3280{
@@ -3321,7 +3321,7 @@ static void ide_cd_release(struct kref *kref)
3321 3321
3322static int ide_cd_probe(ide_drive_t *); 3322static int ide_cd_probe(ide_drive_t *);
3323 3323
3324#ifdef CONFIG_PROC_FS 3324#ifdef CONFIG_IDE_PROC_FS
3325static int proc_idecd_read_capacity 3325static int proc_idecd_read_capacity
3326 (char *page, char **start, off_t off, int count, int *eof, void *data) 3326 (char *page, char **start, off_t off, int count, int *eof, void *data)
3327{ 3327{
diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c
index 37aa6ddd9702..e7bc4d35c40c 100644
--- a/drivers/ide/ide-disk.c
+++ b/drivers/ide/ide-disk.c
@@ -559,7 +559,7 @@ static sector_t idedisk_capacity (ide_drive_t *drive)
559 return drive->capacity64 - drive->sect0; 559 return drive->capacity64 - drive->sect0;
560} 560}
561 561
562#ifdef CONFIG_PROC_FS 562#ifdef CONFIG_IDE_PROC_FS
563 563
564static int smart_enable(ide_drive_t *drive) 564static int smart_enable(ide_drive_t *drive)
565{ 565{
@@ -683,7 +683,7 @@ static ide_proc_entry_t idedisk_proc[] = {
683 683
684#define idedisk_proc NULL 684#define idedisk_proc NULL
685 685
686#endif /* CONFIG_PROC_FS */ 686#endif /* CONFIG_IDE_PROC_FS */
687 687
688static void idedisk_prepare_flush(request_queue_t *q, struct request *rq) 688static void idedisk_prepare_flush(request_queue_t *q, struct request *rq)
689{ 689{
diff --git a/drivers/ide/ide-floppy.c b/drivers/ide/ide-floppy.c
index 57cd21c5b2c1..84d398f71e0f 100644
--- a/drivers/ide/ide-floppy.c
+++ b/drivers/ide/ide-floppy.c
@@ -1892,7 +1892,7 @@ static void ide_floppy_release(struct kref *kref)
1892 kfree(floppy); 1892 kfree(floppy);
1893} 1893}
1894 1894
1895#ifdef CONFIG_PROC_FS 1895#ifdef CONFIG_IDE_PROC_FS
1896 1896
1897static int proc_idefloppy_read_capacity 1897static int proc_idefloppy_read_capacity
1898 (char *page, char **start, off_t off, int count, int *eof, void *data) 1898 (char *page, char **start, off_t off, int count, int *eof, void *data)
@@ -1914,7 +1914,7 @@ static ide_proc_entry_t idefloppy_proc[] = {
1914 1914
1915#define idefloppy_proc NULL 1915#define idefloppy_proc NULL
1916 1916
1917#endif /* CONFIG_PROC_FS */ 1917#endif /* CONFIG_IDE_PROC_FS */
1918 1918
1919static int ide_floppy_probe(ide_drive_t *); 1919static int ide_floppy_probe(ide_drive_t *);
1920 1920
diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c
index 4e59239fef75..ad306ae24e24 100644
--- a/drivers/ide/ide-tape.c
+++ b/drivers/ide/ide-tape.c
@@ -4730,7 +4730,7 @@ static void ide_tape_release(struct kref *kref)
4730 kfree(tape); 4730 kfree(tape);
4731} 4731}
4732 4732
4733#ifdef CONFIG_PROC_FS 4733#ifdef CONFIG_IDE_PROC_FS
4734 4734
4735static int proc_idetape_read_name 4735static int proc_idetape_read_name
4736 (char *page, char **start, off_t off, int count, int *eof, void *data) 4736 (char *page, char **start, off_t off, int count, int *eof, void *data)
diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c
index 73f752142f9e..7a96f6f07494 100644
--- a/drivers/ide/ide.c
+++ b/drivers/ide/ide.c
@@ -350,7 +350,7 @@ static int ide_system_bus_speed(void)
350 return system_bus_speed; 350 return system_bus_speed;
351} 351}
352 352
353#ifdef CONFIG_PROC_FS 353#ifdef CONFIG_IDE_PROC_FS
354struct proc_dir_entry *proc_ide_root; 354struct proc_dir_entry *proc_ide_root;
355#endif 355#endif
356 356
@@ -1892,7 +1892,7 @@ static void __init probe_for_hwifs (void)
1892 1892
1893void ide_register_subdriver(ide_drive_t *drive, ide_driver_t *driver) 1893void ide_register_subdriver(ide_drive_t *drive, ide_driver_t *driver)
1894{ 1894{
1895#ifdef CONFIG_PROC_FS 1895#ifdef CONFIG_IDE_PROC_FS
1896 ide_add_proc_entries(drive->proc, driver->proc, drive); 1896 ide_add_proc_entries(drive->proc, driver->proc, drive);
1897#endif 1897#endif
1898} 1898}
@@ -1914,8 +1914,8 @@ EXPORT_SYMBOL(ide_register_subdriver);
1914void ide_unregister_subdriver(ide_drive_t *drive, ide_driver_t *driver) 1914void ide_unregister_subdriver(ide_drive_t *drive, ide_driver_t *driver)
1915{ 1915{
1916 unsigned long flags; 1916 unsigned long flags;
1917 1917
1918#ifdef CONFIG_PROC_FS 1918#ifdef CONFIG_IDE_PROC_FS
1919 ide_remove_proc_entries(drive->proc, driver->proc); 1919 ide_remove_proc_entries(drive->proc, driver->proc);
1920#endif 1920#endif
1921 down(&ide_setting_sem); 1921 down(&ide_setting_sem);
@@ -2069,7 +2069,7 @@ static int __init ide_init(void)
2069 2069
2070 init_ide_data(); 2070 init_ide_data();
2071 2071
2072#ifdef CONFIG_PROC_FS 2072#ifdef CONFIG_IDE_PROC_FS
2073 proc_ide_root = proc_mkdir("ide", NULL); 2073 proc_ide_root = proc_mkdir("ide", NULL);
2074#endif 2074#endif
2075 2075
@@ -2099,9 +2099,8 @@ static int __init ide_init(void)
2099 probe_for_hwifs(); 2099 probe_for_hwifs();
2100 initializing = 0; 2100 initializing = 0;
2101 2101
2102#ifdef CONFIG_PROC_FS
2103 proc_ide_create(); 2102 proc_ide_create();
2104#endif 2103
2105 return 0; 2104 return 0;
2106} 2105}
2107 2106
@@ -2141,9 +2140,7 @@ void __exit cleanup_module (void)
2141 pnpide_exit(); 2140 pnpide_exit();
2142#endif 2141#endif
2143 2142
2144#ifdef CONFIG_PROC_FS
2145 proc_ide_destroy(); 2143 proc_ide_destroy();
2146#endif
2147 2144
2148 bus_unregister(&ide_bus_type); 2145 bus_unregister(&ide_bus_type);
2149} 2146}
diff --git a/drivers/ide/pci/alim15x3.c b/drivers/ide/pci/alim15x3.c
index 76643b626bdd..428efdae0c7b 100644
--- a/drivers/ide/pci/alim15x3.c
+++ b/drivers/ide/pci/alim15x3.c
@@ -50,7 +50,7 @@ static u8 m5229_revision;
50static u8 chip_is_1543c_e; 50static u8 chip_is_1543c_e;
51static struct pci_dev *isa_dev; 51static struct pci_dev *isa_dev;
52 52
53#if defined(DISPLAY_ALI_TIMINGS) && defined(CONFIG_PROC_FS) 53#if defined(DISPLAY_ALI_TIMINGS) && defined(CONFIG_IDE_PROC_FS)
54#include <linux/stat.h> 54#include <linux/stat.h>
55#include <linux/proc_fs.h> 55#include <linux/proc_fs.h>
56 56
@@ -278,7 +278,7 @@ static int ali_get_info (char *buffer, char **addr, off_t offset, int count)
278 278
279 return p-buffer; /* => must be less than 4k! */ 279 return p-buffer; /* => must be less than 4k! */
280} 280}
281#endif /* defined(DISPLAY_ALI_TIMINGS) && defined(CONFIG_PROC_FS) */ 281#endif /* defined(DISPLAY_ALI_TIMINGS) && defined(CONFIG_IDE_PROC_FS) */
282 282
283/** 283/**
284 * ali15x3_tune_pio - set up chipset for PIO mode 284 * 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
566 566
567 isa_dev = pci_get_device(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M1533, NULL); 567 isa_dev = pci_get_device(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M1533, NULL);
568 568
569#if defined(DISPLAY_ALI_TIMINGS) && defined(CONFIG_PROC_FS) 569#if defined(DISPLAY_ALI_TIMINGS) && defined(CONFIG_IDE_PROC_FS)
570 if (!ali_proc) { 570 if (!ali_proc) {
571 ali_proc = 1; 571 ali_proc = 1;
572 bmide_dev = dev; 572 bmide_dev = dev;
573 ide_pci_create_host_proc("ali", ali_get_info); 573 ide_pci_create_host_proc("ali", ali_get_info);
574 } 574 }
575#endif /* defined(DISPLAY_ALI_TIMINGS) && defined(CONFIG_PROC_FS) */ 575#endif /* defined(DISPLAY_ALI_TIMINGS) && defined(CONFIG_IDE_PROC_FS) */
576 576
577 local_irq_save(flags); 577 local_irq_save(flags);
578 578
diff --git a/drivers/ide/pci/amd74xx.c b/drivers/ide/pci/amd74xx.c
index 7989bdd842a2..becb1a5648b0 100644
--- a/drivers/ide/pci/amd74xx.c
+++ b/drivers/ide/pci/amd74xx.c
@@ -92,7 +92,7 @@ static unsigned char amd_cyc2udma[] = { 6, 6, 5, 4, 0, 1, 1, 2, 2, 3, 3, 3, 3, 3
92 * AMD /proc entry. 92 * AMD /proc entry.
93 */ 93 */
94 94
95#ifdef CONFIG_PROC_FS 95#ifdef CONFIG_IDE_PROC_FS
96 96
97#include <linux/stat.h> 97#include <linux/stat.h>
98#include <linux/proc_fs.h> 98#include <linux/proc_fs.h>
@@ -402,14 +402,14 @@ static unsigned int __devinit init_chipset_amd74xx(struct pci_dev *dev, const ch
402 * Register /proc/ide/amd74xx entry 402 * Register /proc/ide/amd74xx entry
403 */ 403 */
404 404
405#if defined(DISPLAY_AMD_TIMINGS) && defined(CONFIG_PROC_FS) 405#if defined(DISPLAY_AMD_TIMINGS) && defined(CONFIG_IDE_PROC_FS)
406 if (!amd74xx_proc) { 406 if (!amd74xx_proc) {
407 amd_base = pci_resource_start(dev, 4); 407 amd_base = pci_resource_start(dev, 4);
408 bmide_dev = dev; 408 bmide_dev = dev;
409 ide_pci_create_host_proc("amd74xx", amd74xx_get_info); 409 ide_pci_create_host_proc("amd74xx", amd74xx_get_info);
410 amd74xx_proc = 1; 410 amd74xx_proc = 1;
411 } 411 }
412#endif /* DISPLAY_AMD_TIMINGS && CONFIG_PROC_FS */ 412#endif /* DISPLAY_AMD_TIMINGS && CONFIG_IDE_PROC_FS */
413 413
414 return dev->irq; 414 return dev->irq;
415} 415}
diff --git a/drivers/ide/pci/cmd64x.c b/drivers/ide/pci/cmd64x.c
index 19f5ac1f866c..61ea96b5555c 100644
--- a/drivers/ide/pci/cmd64x.c
+++ b/drivers/ide/pci/cmd64x.c
@@ -74,7 +74,7 @@
74#define UDIDETCR1 0x7B 74#define UDIDETCR1 0x7B
75#define DTPR1 0x7C 75#define DTPR1 0x7C
76 76
77#if defined(DISPLAY_CMD64X_TIMINGS) && defined(CONFIG_PROC_FS) 77#if defined(DISPLAY_CMD64X_TIMINGS) && defined(CONFIG_IDE_PROC_FS)
78#include <linux/stat.h> 78#include <linux/stat.h>
79#include <linux/proc_fs.h> 79#include <linux/proc_fs.h>
80 80
@@ -165,7 +165,7 @@ static int cmd64x_get_info (char *buffer, char **addr, off_t offset, int count)
165 return p-buffer; /* => must be less than 4k! */ 165 return p-buffer; /* => must be less than 4k! */
166} 166}
167 167
168#endif /* defined(DISPLAY_CMD64X_TIMINGS) && defined(CONFIG_PROC_FS) */ 168#endif /* defined(DISPLAY_CMD64X_TIMINGS) && defined(CONFIG_IDE_PROC_FS) */
169 169
170static u8 quantize_timing(int timing, int quant) 170static u8 quantize_timing(int timing, int quant)
171{ 171{
@@ -548,7 +548,7 @@ static unsigned int __devinit init_chipset_cmd64x(struct pci_dev *dev, const cha
548 (void) pci_write_config_byte(dev, UDIDETCR0, 0xf0); 548 (void) pci_write_config_byte(dev, UDIDETCR0, 0xf0);
549#endif /* CONFIG_PPC */ 549#endif /* CONFIG_PPC */
550 550
551#if defined(DISPLAY_CMD64X_TIMINGS) && defined(CONFIG_PROC_FS) 551#if defined(DISPLAY_CMD64X_TIMINGS) && defined(CONFIG_IDE_PROC_FS)
552 552
553 cmd_devs[n_cmd_devs++] = dev; 553 cmd_devs[n_cmd_devs++] = dev;
554 554
@@ -556,7 +556,7 @@ static unsigned int __devinit init_chipset_cmd64x(struct pci_dev *dev, const cha
556 cmd64x_proc = 1; 556 cmd64x_proc = 1;
557 ide_pci_create_host_proc("cmd64x", cmd64x_get_info); 557 ide_pci_create_host_proc("cmd64x", cmd64x_get_info);
558 } 558 }
559#endif /* DISPLAY_CMD64X_TIMINGS && CONFIG_PROC_FS */ 559#endif /* DISPLAY_CMD64X_TIMINGS && CONFIG_IDE_PROC_FS */
560 560
561 return 0; 561 return 0;
562} 562}
diff --git a/drivers/ide/pci/sis5513.c b/drivers/ide/pci/sis5513.c
index 41953fe4fa6b..2bde1b92784a 100644
--- a/drivers/ide/pci/sis5513.c
+++ b/drivers/ide/pci/sis5513.c
@@ -191,7 +191,7 @@ static char* chipset_capability[] = {
191 "ATA 133 (1st gen)", "ATA 133 (2nd gen)" 191 "ATA 133 (1st gen)", "ATA 133 (2nd gen)"
192}; 192};
193 193
194#if defined(DISPLAY_SIS_TIMINGS) && defined(CONFIG_PROC_FS) 194#if defined(DISPLAY_SIS_TIMINGS) && defined(CONFIG_IDE_PROC_FS)
195#include <linux/stat.h> 195#include <linux/stat.h>
196#include <linux/proc_fs.h> 196#include <linux/proc_fs.h>
197 197
@@ -426,7 +426,7 @@ static int sis_get_info (char *buffer, char **addr, off_t offset, int count)
426 426
427 return len > count ? count : len; 427 return len > count ? count : len;
428} 428}
429#endif /* defined(DISPLAY_SIS_TIMINGS) && defined(CONFIG_PROC_FS) */ 429#endif /* defined(DISPLAY_SIS_TIMINGS) && defined(CONFIG_IDE_PROC_FS) */
430 430
431/* 431/*
432 * Configuration functions 432 * Configuration functions
@@ -797,7 +797,7 @@ static unsigned int __devinit init_chipset_sis5513 (struct pci_dev *dev, const c
797 break; 797 break;
798 } 798 }
799 799
800#if defined(DISPLAY_SIS_TIMINGS) && defined(CONFIG_PROC_FS) 800#if defined(DISPLAY_SIS_TIMINGS) && defined(CONFIG_IDE_PROC_FS)
801 if (!sis_proc) { 801 if (!sis_proc) {
802 sis_proc = 1; 802 sis_proc = 1;
803 bmide_dev = dev; 803 bmide_dev = dev;
diff --git a/drivers/scsi/ide-scsi.c b/drivers/scsi/ide-scsi.c
index 2b5b8a93bc10..531df3a29c47 100644
--- a/drivers/scsi/ide-scsi.c
+++ b/drivers/scsi/ide-scsi.c
@@ -770,7 +770,7 @@ static void ide_scsi_remove(ide_drive_t *drive)
770 770
771static int ide_scsi_probe(ide_drive_t *); 771static int ide_scsi_probe(ide_drive_t *);
772 772
773#ifdef CONFIG_PROC_FS 773#ifdef CONFIG_IDE_PROC_FS
774static ide_proc_entry_t idescsi_proc[] = { 774static ide_proc_entry_t idescsi_proc[] = {
775 { "capacity", S_IFREG|S_IRUGO, proc_ide_read_capacity, NULL }, 775 { "capacity", S_IFREG|S_IRUGO, proc_ide_read_capacity, NULL },
776 { NULL, 0, NULL, NULL } 776 { NULL, 0, NULL, NULL }
diff --git a/include/linux/ide.h b/include/linux/ide.h
index d03fa2d5d75a..697c39dd66a1 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -912,15 +912,15 @@ typedef struct {
912 write_proc_t *write_proc; 912 write_proc_t *write_proc;
913} ide_proc_entry_t; 913} ide_proc_entry_t;
914 914
915#ifdef CONFIG_PROC_FS 915#ifdef CONFIG_IDE_PROC_FS
916extern struct proc_dir_entry *proc_ide_root; 916extern struct proc_dir_entry *proc_ide_root;
917 917
918extern void proc_ide_create(void); 918void proc_ide_create(void);
919extern void proc_ide_destroy(void); 919void proc_ide_destroy(void);
920extern void create_proc_ide_interfaces(void); 920void create_proc_ide_interfaces(void);
921void destroy_proc_ide_interface(ide_hwif_t *); 921void destroy_proc_ide_interface(ide_hwif_t *);
922extern void ide_add_proc_entries(struct proc_dir_entry *, ide_proc_entry_t *, void *); 922void ide_add_proc_entries(struct proc_dir_entry *, ide_proc_entry_t *, void *);
923extern void ide_remove_proc_entries(struct proc_dir_entry *, ide_proc_entry_t *); 923void ide_remove_proc_entries(struct proc_dir_entry *, ide_proc_entry_t *);
924read_proc_t proc_ide_read_capacity; 924read_proc_t proc_ide_read_capacity;
925read_proc_t proc_ide_read_geometry; 925read_proc_t proc_ide_read_geometry;
926 926
@@ -944,6 +944,8 @@ void ide_pci_create_host_proc(const char *, get_info_t *);
944 return len; \ 944 return len; \
945} 945}
946#else 946#else
947static inline void proc_ide_create(void) { ; }
948static inline void proc_ide_destroy(void) { ; }
947static inline void create_proc_ide_interfaces(void) { ; } 949static inline void create_proc_ide_interfaces(void) { ; }
948static inline void destroy_proc_ide_interface(ide_hwif_t *hwif) { ; } 950static inline void destroy_proc_ide_interface(ide_hwif_t *hwif) { ; }
949#define PROC_IDE_READ_RETURN(page,start,off,count,eof,len) return 0; 951#define PROC_IDE_READ_RETURN(page,start,off,count,eof,len) return 0;