mirror of
https://github.com/torvalds/linux
synced 2024-09-26 14:28:29 +00:00
[SCSI] aacraid: driver version update
Received from Mark Salyzyn from Adaptec. Fixes a bug in check_revision. It should return the driver version not the firmware version. Update driver version number. Update driver version string. Signed-off-by: Mark Haverkamp <markh@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
This commit is contained in:
parent
bed30de47b
commit
c7f476023f
|
@ -1512,11 +1512,12 @@ struct fib_ioctl
|
||||||
|
|
||||||
struct revision
|
struct revision
|
||||||
{
|
{
|
||||||
u32 compat;
|
__le32 compat;
|
||||||
u32 version;
|
__le32 version;
|
||||||
u32 build;
|
__le32 build;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Ugly - non Linux like ioctl coding for back compat.
|
* Ugly - non Linux like ioctl coding for back compat.
|
||||||
*/
|
*/
|
||||||
|
@ -1737,3 +1738,4 @@ int aac_get_adapter_info(struct aac_dev* dev);
|
||||||
int aac_send_shutdown(struct aac_dev *dev);
|
int aac_send_shutdown(struct aac_dev *dev);
|
||||||
extern int numacb;
|
extern int numacb;
|
||||||
extern int acbsize;
|
extern int acbsize;
|
||||||
|
extern char aac_driver_version[];
|
||||||
|
|
|
@ -405,10 +405,20 @@ static int close_getadapter_fib(struct aac_dev * dev, void __user *arg)
|
||||||
static int check_revision(struct aac_dev *dev, void __user *arg)
|
static int check_revision(struct aac_dev *dev, void __user *arg)
|
||||||
{
|
{
|
||||||
struct revision response;
|
struct revision response;
|
||||||
|
char *driver_version = aac_driver_version;
|
||||||
|
u32 version;
|
||||||
|
|
||||||
response.compat = 1;
|
response.compat = cpu_to_le32(1);
|
||||||
response.version = le32_to_cpu(dev->adapter_info.kernelrev);
|
version = (simple_strtol(driver_version,
|
||||||
response.build = le32_to_cpu(dev->adapter_info.kernelbuild);
|
&driver_version, 10) << 24) | 0x00000400;
|
||||||
|
version += simple_strtol(driver_version + 1, &driver_version, 10) << 16;
|
||||||
|
version += simple_strtol(driver_version + 1, NULL, 10);
|
||||||
|
response.version = cpu_to_le32(version);
|
||||||
|
# if (defined(AAC_DRIVER_BUILD))
|
||||||
|
response.build = cpu_to_le32(AAC_DRIVER_BUILD);
|
||||||
|
# else
|
||||||
|
response.build = cpu_to_le32(9999);
|
||||||
|
# endif
|
||||||
|
|
||||||
if (copy_to_user(arg, &response, sizeof(response)))
|
if (copy_to_user(arg, &response, sizeof(response)))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
|
|
|
@ -27,8 +27,11 @@
|
||||||
* Abstract: Linux Driver entry module for Adaptec RAID Array Controller
|
* Abstract: Linux Driver entry module for Adaptec RAID Array Controller
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define AAC_DRIVER_VERSION "1.1.2-lk2"
|
#define AAC_DRIVER_VERSION "1.1-4"
|
||||||
#define AAC_DRIVER_BUILD_DATE __DATE__
|
#ifndef AAC_DRIVER_BRANCH
|
||||||
|
#define AAC_DRIVER_BRANCH ""
|
||||||
|
#endif
|
||||||
|
#define AAC_DRIVER_BUILD_DATE __DATE__ " " __TIME__
|
||||||
#define AAC_DRIVERNAME "aacraid"
|
#define AAC_DRIVERNAME "aacraid"
|
||||||
|
|
||||||
#include <linux/compat.h>
|
#include <linux/compat.h>
|
||||||
|
@ -58,16 +61,24 @@
|
||||||
|
|
||||||
#include "aacraid.h"
|
#include "aacraid.h"
|
||||||
|
|
||||||
|
#ifdef AAC_DRIVER_BUILD
|
||||||
|
#define _str(x) #x
|
||||||
|
#define str(x) _str(x)
|
||||||
|
#define AAC_DRIVER_FULL_VERSION AAC_DRIVER_VERSION "[" str(AAC_DRIVER_BUILD) "]" AAC_DRIVER_BRANCH
|
||||||
|
#else
|
||||||
|
#define AAC_DRIVER_FULL_VERSION AAC_DRIVER_VERSION AAC_DRIVER_BRANCH " " AAC_DRIVER_BUILD_DATE
|
||||||
|
#endif
|
||||||
|
|
||||||
MODULE_AUTHOR("Red Hat Inc and Adaptec");
|
MODULE_AUTHOR("Red Hat Inc and Adaptec");
|
||||||
MODULE_DESCRIPTION("Dell PERC2, 2/Si, 3/Si, 3/Di, "
|
MODULE_DESCRIPTION("Dell PERC2, 2/Si, 3/Si, 3/Di, "
|
||||||
"Adaptec Advanced Raid Products, "
|
"Adaptec Advanced Raid Products, "
|
||||||
"and HP NetRAID-4M SCSI driver");
|
"and HP NetRAID-4M SCSI driver");
|
||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
||||||
MODULE_VERSION(AAC_DRIVER_VERSION);
|
MODULE_VERSION(AAC_DRIVER_FULL_VERSION);
|
||||||
|
|
||||||
static LIST_HEAD(aac_devices);
|
static LIST_HEAD(aac_devices);
|
||||||
static int aac_cfg_major = -1;
|
static int aac_cfg_major = -1;
|
||||||
|
char aac_driver_version[] = AAC_DRIVER_FULL_VERSION;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Because of the way Linux names scsi devices, the order in this table has
|
* Because of the way Linux names scsi devices, the order in this table has
|
||||||
|
@ -896,8 +907,8 @@ static int __init aac_init(void)
|
||||||
{
|
{
|
||||||
int error;
|
int error;
|
||||||
|
|
||||||
printk(KERN_INFO "Red Hat/Adaptec aacraid driver (%s %s)\n",
|
printk(KERN_INFO "Adaptec %s driver (%s)\n",
|
||||||
AAC_DRIVER_VERSION, AAC_DRIVER_BUILD_DATE);
|
AAC_DRIVERNAME, aac_driver_version);
|
||||||
|
|
||||||
error = pci_module_init(&aac_pci_driver);
|
error = pci_module_init(&aac_pci_driver);
|
||||||
if (error)
|
if (error)
|
||||||
|
|
Loading…
Reference in a new issue