aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/aacraid/linit.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-04-21 18:49:58 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-04-21 18:49:58 -0400
commite80ab411e589e00550e2e6e5a6a02d59cc730357 (patch)
tree870225ff7b5b8d03e82a996963213a4bb9cce248 /drivers/scsi/aacraid/linit.c
parent529a41e36673b518c9e091f3a8d932b6b9e3c461 (diff)
parentee959b00c335d7780136c5abda37809191fe52c3 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6: (36 commits) SCSI: convert struct class_device to struct device DRM: remove unused dev_class IB: rename "dev" to "srp_dev" in srp_host structure IB: convert struct class_device to struct device memstick: convert struct class_device to struct device driver core: replace remaining __FUNCTION__ occurrences sysfs: refill attribute buffer when reading from offset 0 PM: Remove destroy_suspended_device() Firmware: add iSCSI iBFT Support PM: Remove legacy PM (fix) Kobject: Replace list_for_each() with list_for_each_entry(). SYSFS: Explicitly include required header file slab.h. Driver core: make device_is_registered() work for class devices PM: Convert wakeup flag accessors to inline functions PM: Make wakeup flags available whenever CONFIG_PM is set PM: Fix misuse of wakeup flag accessors in serial core Driver core: Call device_pm_add() after bus_add_device() in device_add() PM: Handle device registrations during suspend/resume block: send disk "change" event for rescan_partitions() sysdev: detect multiple driver registrations ... Fixed trivial conflict in include/linux/memory.h due to semaphore header file change (made irrelevant by the change to mutex).
Diffstat (limited to 'drivers/scsi/aacraid/linit.c')
-rw-r--r--drivers/scsi/aacraid/linit.c93
1 files changed, 53 insertions, 40 deletions
diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c
index 8372bf6ed48..c109f63f827 100644
--- a/drivers/scsi/aacraid/linit.c
+++ b/drivers/scsi/aacraid/linit.c
@@ -754,10 +754,10 @@ static long aac_compat_cfg_ioctl(struct file *file, unsigned cmd, unsigned long
754} 754}
755#endif 755#endif
756 756
757static ssize_t aac_show_model(struct class_device *class_dev, 757static ssize_t aac_show_model(struct device *device,
758 char *buf) 758 struct device_attribute *attr, char *buf)
759{ 759{
760 struct aac_dev *dev = (struct aac_dev*)class_to_shost(class_dev)->hostdata; 760 struct aac_dev *dev = (struct aac_dev*)class_to_shost(device)->hostdata;
761 int len; 761 int len;
762 762
763 if (dev->supplement_adapter_info.AdapterTypeText[0]) { 763 if (dev->supplement_adapter_info.AdapterTypeText[0]) {
@@ -773,10 +773,10 @@ static ssize_t aac_show_model(struct class_device *class_dev,
773 return len; 773 return len;
774} 774}
775 775
776static ssize_t aac_show_vendor(struct class_device *class_dev, 776static ssize_t aac_show_vendor(struct device *device,
777 char *buf) 777 struct device_attribute *attr, char *buf)
778{ 778{
779 struct aac_dev *dev = (struct aac_dev*)class_to_shost(class_dev)->hostdata; 779 struct aac_dev *dev = (struct aac_dev*)class_to_shost(device)->hostdata;
780 int len; 780 int len;
781 781
782 if (dev->supplement_adapter_info.AdapterTypeText[0]) { 782 if (dev->supplement_adapter_info.AdapterTypeText[0]) {
@@ -792,10 +792,11 @@ static ssize_t aac_show_vendor(struct class_device *class_dev,
792 return len; 792 return len;
793} 793}
794 794
795static ssize_t aac_show_flags(struct class_device *class_dev, char *buf) 795static ssize_t aac_show_flags(struct device *cdev,
796 struct device_attribute *attr, char *buf)
796{ 797{
797 int len = 0; 798 int len = 0;
798 struct aac_dev *dev = (struct aac_dev*)class_to_shost(class_dev)->hostdata; 799 struct aac_dev *dev = (struct aac_dev*)class_to_shost(cdev)->hostdata;
799 800
800 if (nblank(dprintk(x))) 801 if (nblank(dprintk(x)))
801 len = snprintf(buf, PAGE_SIZE, "dprintk\n"); 802 len = snprintf(buf, PAGE_SIZE, "dprintk\n");
@@ -811,10 +812,11 @@ static ssize_t aac_show_flags(struct class_device *class_dev, char *buf)
811 return len; 812 return len;
812} 813}
813 814
814static ssize_t aac_show_kernel_version(struct class_device *class_dev, 815static ssize_t aac_show_kernel_version(struct device *device,
815 char *buf) 816 struct device_attribute *attr,
817 char *buf)
816{ 818{
817 struct aac_dev *dev = (struct aac_dev*)class_to_shost(class_dev)->hostdata; 819 struct aac_dev *dev = (struct aac_dev*)class_to_shost(device)->hostdata;
818 int len, tmp; 820 int len, tmp;
819 821
820 tmp = le32_to_cpu(dev->adapter_info.kernelrev); 822 tmp = le32_to_cpu(dev->adapter_info.kernelrev);
@@ -824,10 +826,11 @@ static ssize_t aac_show_kernel_version(struct class_device *class_dev,
824 return len; 826 return len;
825} 827}
826 828
827static ssize_t aac_show_monitor_version(struct class_device *class_dev, 829static ssize_t aac_show_monitor_version(struct device *device,
828 char *buf) 830 struct device_attribute *attr,
831 char *buf)
829{ 832{
830 struct aac_dev *dev = (struct aac_dev*)class_to_shost(class_dev)->hostdata; 833 struct aac_dev *dev = (struct aac_dev*)class_to_shost(device)->hostdata;
831 int len, tmp; 834 int len, tmp;
832 835
833 tmp = le32_to_cpu(dev->adapter_info.monitorrev); 836 tmp = le32_to_cpu(dev->adapter_info.monitorrev);
@@ -837,10 +840,11 @@ static ssize_t aac_show_monitor_version(struct class_device *class_dev,
837 return len; 840 return len;
838} 841}
839 842
840static ssize_t aac_show_bios_version(struct class_device *class_dev, 843static ssize_t aac_show_bios_version(struct device *device,
841 char *buf) 844 struct device_attribute *attr,
845 char *buf)
842{ 846{
843 struct aac_dev *dev = (struct aac_dev*)class_to_shost(class_dev)->hostdata; 847 struct aac_dev *dev = (struct aac_dev*)class_to_shost(device)->hostdata;
844 int len, tmp; 848 int len, tmp;
845 849
846 tmp = le32_to_cpu(dev->adapter_info.biosrev); 850 tmp = le32_to_cpu(dev->adapter_info.biosrev);
@@ -850,9 +854,10 @@ static ssize_t aac_show_bios_version(struct class_device *class_dev,
850 return len; 854 return len;
851} 855}
852 856
853ssize_t aac_show_serial_number(struct class_device *class_dev, char *buf) 857ssize_t aac_show_serial_number(struct device *device,
858 struct device_attribute *attr, char *buf)
854{ 859{
855 struct aac_dev *dev = (struct aac_dev*)class_to_shost(class_dev)->hostdata; 860 struct aac_dev *dev = (struct aac_dev*)class_to_shost(device)->hostdata;
856 int len = 0; 861 int len = 0;
857 862
858 if (le32_to_cpu(dev->adapter_info.serial[0]) != 0xBAD0) 863 if (le32_to_cpu(dev->adapter_info.serial[0]) != 0xBAD0)
@@ -868,35 +873,39 @@ ssize_t aac_show_serial_number(struct class_device *class_dev, char *buf)
868 return len; 873 return len;
869} 874}
870 875
871static ssize_t aac_show_max_channel(struct class_device *class_dev, char *buf) 876static ssize_t aac_show_max_channel(struct device *device,
877 struct device_attribute *attr, char *buf)
872{ 878{
873 return snprintf(buf, PAGE_SIZE, "%d\n", 879 return snprintf(buf, PAGE_SIZE, "%d\n",
874 class_to_shost(class_dev)->max_channel); 880 class_to_shost(device)->max_channel);
875} 881}
876 882
877static ssize_t aac_show_max_id(struct class_device *class_dev, char *buf) 883static ssize_t aac_show_max_id(struct device *device,
884 struct device_attribute *attr, char *buf)
878{ 885{
879 return snprintf(buf, PAGE_SIZE, "%d\n", 886 return snprintf(buf, PAGE_SIZE, "%d\n",
880 class_to_shost(class_dev)->max_id); 887 class_to_shost(device)->max_id);
881} 888}
882 889
883static ssize_t aac_store_reset_adapter(struct class_device *class_dev, 890static ssize_t aac_store_reset_adapter(struct device *device,
884 const char *buf, size_t count) 891 struct device_attribute *attr,
892 const char *buf, size_t count)
885{ 893{
886 int retval = -EACCES; 894 int retval = -EACCES;
887 895
888 if (!capable(CAP_SYS_ADMIN)) 896 if (!capable(CAP_SYS_ADMIN))
889 return retval; 897 return retval;
890 retval = aac_reset_adapter((struct aac_dev*)class_to_shost(class_dev)->hostdata, buf[0] == '!'); 898 retval = aac_reset_adapter((struct aac_dev*)class_to_shost(device)->hostdata, buf[0] == '!');
891 if (retval >= 0) 899 if (retval >= 0)
892 retval = count; 900 retval = count;
893 return retval; 901 return retval;
894} 902}
895 903
896static ssize_t aac_show_reset_adapter(struct class_device *class_dev, 904static ssize_t aac_show_reset_adapter(struct device *device,
897 char *buf) 905 struct device_attribute *attr,
906 char *buf)
898{ 907{
899 struct aac_dev *dev = (struct aac_dev*)class_to_shost(class_dev)->hostdata; 908 struct aac_dev *dev = (struct aac_dev*)class_to_shost(device)->hostdata;
900 int len, tmp; 909 int len, tmp;
901 910
902 tmp = aac_adapter_check_health(dev); 911 tmp = aac_adapter_check_health(dev);
@@ -906,70 +915,70 @@ static ssize_t aac_show_reset_adapter(struct class_device *class_dev,
906 return len; 915 return len;
907} 916}
908 917
909static struct class_device_attribute aac_model = { 918static struct device_attribute aac_model = {
910 .attr = { 919 .attr = {
911 .name = "model", 920 .name = "model",
912 .mode = S_IRUGO, 921 .mode = S_IRUGO,
913 }, 922 },
914 .show = aac_show_model, 923 .show = aac_show_model,
915}; 924};
916static struct class_device_attribute aac_vendor = { 925static struct device_attribute aac_vendor = {
917 .attr = { 926 .attr = {
918 .name = "vendor", 927 .name = "vendor",
919 .mode = S_IRUGO, 928 .mode = S_IRUGO,
920 }, 929 },
921 .show = aac_show_vendor, 930 .show = aac_show_vendor,
922}; 931};
923static struct class_device_attribute aac_flags = { 932static struct device_attribute aac_flags = {
924 .attr = { 933 .attr = {
925 .name = "flags", 934 .name = "flags",
926 .mode = S_IRUGO, 935 .mode = S_IRUGO,
927 }, 936 },
928 .show = aac_show_flags, 937 .show = aac_show_flags,
929}; 938};
930static struct class_device_attribute aac_kernel_version = { 939static struct device_attribute aac_kernel_version = {
931 .attr = { 940 .attr = {
932 .name = "hba_kernel_version", 941 .name = "hba_kernel_version",
933 .mode = S_IRUGO, 942 .mode = S_IRUGO,
934 }, 943 },
935 .show = aac_show_kernel_version, 944 .show = aac_show_kernel_version,
936}; 945};
937static struct class_device_attribute aac_monitor_version = { 946static struct device_attribute aac_monitor_version = {
938 .attr = { 947 .attr = {
939 .name = "hba_monitor_version", 948 .name = "hba_monitor_version",
940 .mode = S_IRUGO, 949 .mode = S_IRUGO,
941 }, 950 },
942 .show = aac_show_monitor_version, 951 .show = aac_show_monitor_version,
943}; 952};
944static struct class_device_attribute aac_bios_version = { 953static struct device_attribute aac_bios_version = {
945 .attr = { 954 .attr = {
946 .name = "hba_bios_version", 955 .name = "hba_bios_version",
947 .mode = S_IRUGO, 956 .mode = S_IRUGO,
948 }, 957 },
949 .show = aac_show_bios_version, 958 .show = aac_show_bios_version,
950}; 959};
951static struct class_device_attribute aac_serial_number = { 960static struct device_attribute aac_serial_number = {
952 .attr = { 961 .attr = {
953 .name = "serial_number", 962 .name = "serial_number",
954 .mode = S_IRUGO, 963 .mode = S_IRUGO,
955 }, 964 },
956 .show = aac_show_serial_number, 965 .show = aac_show_serial_number,
957}; 966};
958static struct class_device_attribute aac_max_channel = { 967static struct device_attribute aac_max_channel = {
959 .attr = { 968 .attr = {
960 .name = "max_channel", 969 .name = "max_channel",
961 .mode = S_IRUGO, 970 .mode = S_IRUGO,
962 }, 971 },
963 .show = aac_show_max_channel, 972 .show = aac_show_max_channel,
964}; 973};
965static struct class_device_attribute aac_max_id = { 974static struct device_attribute aac_max_id = {
966 .attr = { 975 .attr = {
967 .name = "max_id", 976 .name = "max_id",
968 .mode = S_IRUGO, 977 .mode = S_IRUGO,
969 }, 978 },
970 .show = aac_show_max_id, 979 .show = aac_show_max_id,
971}; 980};
972static struct class_device_attribute aac_reset = { 981static struct device_attribute aac_reset = {
973 .attr = { 982 .attr = {
974 .name = "reset_host", 983 .name = "reset_host",
975 .mode = S_IWUSR|S_IRUGO, 984 .mode = S_IWUSR|S_IRUGO,
@@ -978,7 +987,7 @@ static struct class_device_attribute aac_reset = {
978 .show = aac_show_reset_adapter, 987 .show = aac_show_reset_adapter,
979}; 988};
980 989
981static struct class_device_attribute *aac_attrs[] = { 990static struct device_attribute *aac_attrs[] = {
982 &aac_model, 991 &aac_model,
983 &aac_vendor, 992 &aac_vendor,
984 &aac_flags, 993 &aac_flags,
@@ -992,6 +1001,10 @@ static struct class_device_attribute *aac_attrs[] = {
992 NULL 1001 NULL
993}; 1002};
994 1003
1004ssize_t aac_get_serial_number(struct device *device, char *buf)
1005{
1006 return aac_show_serial_number(device, &aac_serial_number, buf);
1007}
995 1008
996static const struct file_operations aac_cfg_fops = { 1009static const struct file_operations aac_cfg_fops = {
997 .owner = THIS_MODULE, 1010 .owner = THIS_MODULE,