diff options
Diffstat (limited to 'drivers/scsi/aacraid/aachba.c')
-rw-r--r-- | drivers/scsi/aacraid/aachba.c | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/drivers/scsi/aacraid/aachba.c b/drivers/scsi/aacraid/aachba.c index 970a8d99107a..62d95165d2a6 100644 --- a/drivers/scsi/aacraid/aachba.c +++ b/drivers/scsi/aacraid/aachba.c | |||
@@ -716,16 +716,21 @@ static void setinqstr(struct aac_dev *dev, void *data, int tindex) | |||
716 | 716 | ||
717 | if (dev->supplement_adapter_info.AdapterTypeText[0]) { | 717 | if (dev->supplement_adapter_info.AdapterTypeText[0]) { |
718 | char * cp = dev->supplement_adapter_info.AdapterTypeText; | 718 | char * cp = dev->supplement_adapter_info.AdapterTypeText; |
719 | int c = sizeof(str->vid); | 719 | int c; |
720 | while (*cp && *cp != ' ' && --c) | 720 | if ((cp[0] == 'A') && (cp[1] == 'O') && (cp[2] == 'C')) |
721 | ++cp; | 721 | inqstrcpy("SMC", str->vid); |
722 | c = *cp; | 722 | else { |
723 | *cp = '\0'; | 723 | c = sizeof(str->vid); |
724 | inqstrcpy (dev->supplement_adapter_info.AdapterTypeText, | 724 | while (*cp && *cp != ' ' && --c) |
725 | str->vid); | 725 | ++cp; |
726 | *cp = c; | 726 | c = *cp; |
727 | while (*cp && *cp != ' ') | 727 | *cp = '\0'; |
728 | ++cp; | 728 | inqstrcpy (dev->supplement_adapter_info.AdapterTypeText, |
729 | str->vid); | ||
730 | *cp = c; | ||
731 | while (*cp && *cp != ' ') | ||
732 | ++cp; | ||
733 | } | ||
729 | while (*cp == ' ') | 734 | while (*cp == ' ') |
730 | ++cp; | 735 | ++cp; |
731 | /* last six chars reserved for vol type */ | 736 | /* last six chars reserved for vol type */ |