* [PATCH] merge sd.h into sd.c and some cleanup
@ 2002-10-26 1:18 Christoph Hellwig
2002-10-27 11:22 ` Douglas Gilbert
0 siblings, 1 reply; 4+ messages in thread
From: Christoph Hellwig @ 2002-10-26 1:18 UTC (permalink / raw)
To: James Bottomley; +Cc: linux-scsi
Now that only sd.c includes sd.h it can be safely merged into it.
Also get rid of typedef abuse in sd.c
--- 1.76/drivers/scsi/sd.c Thu Oct 24 21:27:14 2002
+++ edited/drivers/scsi/sd.c Sat Oct 26 01:20:04 2002
@@ -18,7 +17,7 @@
* - Alex Davis <letmein@erols.com> Fix problem where partition info
* not being read in sd_open. Fix problem where removable media
* could be ejected after sd_open.
- * - Douglas Gilbert <dgilbert@interlog.com> cleanup for lk 2.5 series
+ * - Douglas Gilbert <dgilbert@interlog.com> cleanup for lk 2.5.x
*
* Logging policy (needs CONFIG_SCSI_LOGGING defined):
* - setting up transfer: SCSI_LOG_HLQUEUE levels 1 and 2
@@ -29,39 +28,34 @@
* than the level indicated above to trigger output.
*/
+#define MAJOR_NR SCSI_DISK0_MAJOR
+
#include <linux/config.h>
#include <linux/module.h>
-
#include <linux/fs.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/mm.h>
#include <linux/bio.h>
-#include <linux/string.h>
+#include <linux/genhd.h>
#include <linux/hdreg.h>
#include <linux/errno.h>
#include <linux/interrupt.h>
#include <linux/init.h>
#include <linux/reboot.h>
#include <linux/vmalloc.h>
-#include <linux/smp.h>
-
-#include <asm/uaccess.h>
-#include <asm/io.h>
-
-#define MAJOR_NR SCSI_DISK0_MAJOR
-#define LOCAL_END_REQUEST
#include <linux/blk.h>
#include <linux/blkpg.h>
+#include <asm/uaccess.h>
+
#include "scsi.h"
#include "hosts.h"
-#include "sd.h"
#include <scsi/scsi_ioctl.h>
-#include <scsi/scsicam.h> /* must follow "hosts.h" */
+#include <scsi/scsicam.h>
-#include <linux/genhd.h>
-/* static char sd_version_str[] = "Version: 2.0.3 (20020417)"; */
+#define N_SD_MAJORS 8
+#define SD_MAJOR_MASK (N_SD_MAJORS - 1)
#define SD_MAJOR(i) (!(i) ? SCSI_DISK0_MAJOR : SCSI_DISK1_MAJOR-1+(i))
@@ -72,30 +66,44 @@
#define MKDEV_SD(index) MKDEV_SD_PARTITION((index) << 4)
#define N_USED_SD_MAJORS (1 + ((sd_template.dev_max - 1) >> 4))
-#define MAX_RETRIES 5
-
/*
* Time out in seconds for disks and Magneto-opticals (which are slower).
*/
+#define SD_TIMEOUT (30 * HZ)
+#define SD_MOD_TIMEOUT (75 * HZ)
-#define SD_TIMEOUT (30 * HZ)
-#define SD_MOD_TIMEOUT (75 * HZ)
+/*
+ * Amount to over allocate sd_dsk_arr by
+ */
+#define SD_DSK_ARR_LUMP 6
-#define SD_DSK_ARR_LUMP 6 /* amount to over allocate sd_dsk_arr by */
+/*
+ * Number of allowed retries
+ */
+#define SD_MAX_RETRIES 5
+
+struct scsi_disk {
+ struct scsi_device *device;
+ sector_t capacity; /* size in 512-byte sectors */
+ u8 media_present;
+ u8 write_prot;
+ unsigned WCE : 1; /* state of disk WCE bit */
+ unsigned RCD : 1; /* state of disk RCD bit */
+};
-static Scsi_Disk ** sd_dsk_arr;
+static struct scsi_disk ** sd_dsk_arr;
static rwlock_t sd_dsk_arr_lock = RW_LOCK_UNLOCKED;
static int check_scsidisk_media_change(struct gendisk *);
static int sd_revalidate(struct gendisk *);
-static void sd_init_onedisk(Scsi_Disk * sdkp, struct gendisk *disk);
+static void sd_init_onedisk(struct scsi_disk * sdkp, struct gendisk *disk);
static int sd_init(void);
-static int sd_attach(Scsi_Device *);
-static int sd_detect(Scsi_Device *);
-static void sd_detach(Scsi_Device *);
-static int sd_init_command(Scsi_Cmnd *);
+static int sd_attach(struct scsi_device *);
+static int sd_detect(struct scsi_device *);
+static void sd_detach(struct scsi_device *);
+static int sd_init_command(struct scsi_cmnd *);
static int sd_synchronize_cache(int, int);
static int sd_notifier(struct notifier_block *, unsigned long, void *);
@@ -117,9 +125,9 @@
.init_command = sd_init_command,
};
-static void sd_rw_intr(Scsi_Cmnd * SCpnt);
+static void sd_rw_intr(struct scsi_cmnd * SCpnt);
-static Scsi_Disk * sd_get_sdisk(int index);
+static struct scsi_disk * sd_get_sdisk(int index);
#if defined(CONFIG_PPC32)
/**
@@ -139,8 +147,8 @@
kdev_t __init
sd_find_target(void *hp, int scsi_id)
{
- Scsi_Disk *sdkp;
- Scsi_Device *sdp;
+ struct scsi_disk *sdkp;
+ struct scsi_device *sdp;
struct Scsi_Host *shp = hp;
int dsk_nr;
kdev_t retval = NODEV;
@@ -183,8 +191,8 @@
{
struct block_device *bdev = inode->i_bdev;
struct gendisk *disk = bdev->bd_disk;
- Scsi_Disk *sdkp = disk->private_data;
- Scsi_Device *sdp = sdkp->device;
+ struct scsi_disk *sdkp = disk->private_data;
+ struct scsi_device *sdp = sdkp->device;
sector_t capacity = sdkp->capacity;
struct Scsi_Host *host;
int diskinfo[4];
@@ -276,12 +284,12 @@
*
* Returns 1 if successful and 0 if error (or cannot be done now).
**/
-static int sd_init_command(Scsi_Cmnd * SCpnt)
+static int sd_init_command(struct scsi_cmnd * SCpnt)
{
int this_count, timeout;
struct gendisk *disk;
sector_t block;
- Scsi_Device *sdp = SCpnt->device;
+ struct scsi_device *sdp = SCpnt->device;
timeout = SD_TIMEOUT;
if (SCpnt->device->type != TYPE_DISK)
@@ -435,7 +443,7 @@
SCpnt->transfersize = sdp->sector_size;
SCpnt->underflow = this_count << 9;
- SCpnt->allowed = MAX_RETRIES;
+ SCpnt->allowed = SD_MAX_RETRIES;
SCpnt->timeout_per_command = timeout;
/*
@@ -467,8 +475,8 @@
static int sd_open(struct inode *inode, struct file *filp)
{
struct gendisk *disk = inode->i_bdev->bd_disk;
- Scsi_Disk *sdkp = disk->private_data;
- Scsi_Device * sdp = sdkp->device;
+ struct scsi_disk *sdkp = disk->private_data;
+ struct scsi_device * sdp = sdkp->device;
int retval = -ENXIO;
SCSI_LOG_HLQUEUE(3, printk("sd_open: disk=%s\n", disk->disk_name));
@@ -552,8 +560,8 @@
static int sd_release(struct inode *inode, struct file *filp)
{
struct gendisk *disk = inode->i_bdev->bd_disk;
- Scsi_Disk *sdkp = disk->private_data;
- Scsi_Device *sdp = sdkp->device;
+ struct scsi_disk *sdkp = disk->private_data;
+ struct scsi_device *sdp = sdkp->device;
SCSI_LOG_HLQUEUE(3, printk("sd_release: disk=%s\n", disk->disk_name));
if (!sdp)
@@ -594,7 +602,7 @@
*
* Note: potentially run from within an ISR. Must not block.
**/
-static void sd_rw_intr(Scsi_Cmnd * SCpnt)
+static void sd_rw_intr(struct scsi_cmnd * SCpnt)
{
int result = SCpnt->result;
int this_count = SCpnt->bufflen >> 9;
@@ -690,7 +698,7 @@
}
static void
-sd_set_media_not_present(Scsi_Disk *sdkp) {
+sd_set_media_not_present(struct scsi_disk *sdkp) {
sdkp->media_present = 0;
sdkp->capacity = 0;
sdkp->device->changed = 1;
@@ -706,8 +714,8 @@
**/
static int check_scsidisk_media_change(struct gendisk *disk)
{
- Scsi_Disk *sdkp = disk->private_data;
- Scsi_Device *sdp = sdkp->device;
+ struct scsi_disk *sdkp = disk->private_data;
+ struct scsi_device *sdp = sdkp->device;
int retval;
int flag = 0; /* <<<< what is this for?? */
@@ -755,7 +763,7 @@
}
/*
* For removable scsi disk we have to recognise the presence
- * of a disk in the drive. This is kept in the Scsi_Disk
+ * of a disk in the drive. This is kept in the struct scsi_disk
* struct and tested at open ! Daniel Roche ( dan@lectra.fr )
*/
@@ -768,7 +776,7 @@
}
static int
-sd_media_not_present(Scsi_Disk *sdkp, Scsi_Request *SRpnt) {
+sd_media_not_present(struct scsi_disk *sdkp, struct scsi_request *SRpnt) {
int the_result = SRpnt->sr_result;
if (the_result != 0
@@ -786,10 +794,10 @@
* spinup disk - called only in sd_init_onedisk()
*/
static void
-sd_spinup_disk(Scsi_Disk *sdkp, char *diskname,
- Scsi_Request *SRpnt, unsigned char *buffer) {
+sd_spinup_disk(struct scsi_disk *sdkp, char *diskname,
+ struct scsi_request *SRpnt, unsigned char *buffer) {
unsigned char cmd[10];
- Scsi_Device *sdp = sdkp->device;
+ struct scsi_device *sdp = sdkp->device;
unsigned long spintime_value = 0;
int the_result, retries, spintime;
@@ -810,7 +818,7 @@
SRpnt->sr_data_direction = SCSI_DATA_NONE;
scsi_wait_req (SRpnt, (void *) cmd, (void *) buffer,
- 0/*512*/, SD_TIMEOUT, MAX_RETRIES);
+ 0/*512*/, SD_TIMEOUT, SD_MAX_RETRIES);
the_result = SRpnt->sr_result;
retries++;
@@ -846,7 +854,7 @@
SRpnt->sr_data_direction = SCSI_DATA_READ;
scsi_wait_req(SRpnt, (void *)cmd,
(void *) buffer, 0/*512*/,
- SD_TIMEOUT, MAX_RETRIES);
+ SD_TIMEOUT, SD_MAX_RETRIES);
spintime_value = jiffies;
}
spintime = 1;
@@ -873,8 +881,8 @@
* sd_read_cache_type - called only from sd_init_onedisk()
*/
static void
-sd_read_cache_type(Scsi_Disk *sdkp, char *diskname,
- Scsi_Request *SRpnt, unsigned char *buffer) {
+sd_read_cache_type(struct scsi_disk *sdkp, char *diskname,
+ struct scsi_request *SRpnt, unsigned char *buffer) {
unsigned char cmd[10];
int the_result, retries;
@@ -896,7 +904,7 @@
SRpnt->sr_data_direction = SCSI_DATA_READ;
scsi_wait_req(SRpnt, (void *) cmd, (void *) buffer,
- 128, SD_TIMEOUT, MAX_RETRIES);
+ 128, SD_TIMEOUT, SD_MAX_RETRIES);
the_result = SRpnt->sr_result;
retries--;
@@ -947,10 +955,10 @@
* read disk capacity - called only in sd_init_onedisk()
*/
static void
-sd_read_capacity(Scsi_Disk *sdkp, char *diskname,
- Scsi_Request *SRpnt, unsigned char *buffer) {
+sd_read_capacity(struct scsi_disk *sdkp, char *diskname,
+ struct scsi_request *SRpnt, unsigned char *buffer) {
unsigned char cmd[10];
- Scsi_Device *sdp = sdkp->device;
+ struct scsi_device *sdp = sdkp->device;
int the_result, retries;
int sector_size;
@@ -966,7 +974,7 @@
SRpnt->sr_data_direction = SCSI_DATA_READ;
scsi_wait_req(SRpnt, (void *) cmd, (void *) buffer,
- 8, SD_TIMEOUT, MAX_RETRIES);
+ 8, SD_TIMEOUT, SD_MAX_RETRIES);
if (sd_media_not_present(sdkp, SRpnt))
return;
@@ -1071,7 +1079,7 @@
}
static int
-sd_do_mode_sense6(Scsi_Device *sdp, Scsi_Request *SRpnt,
+sd_do_mode_sense6(struct scsi_device *sdp, struct scsi_request *SRpnt,
int modepage, unsigned char *buffer, int len) {
unsigned char cmd[8];
@@ -1086,7 +1094,7 @@
SRpnt->sr_data_direction = SCSI_DATA_READ;
scsi_wait_req(SRpnt, (void *) cmd, (void *) buffer,
- len, SD_TIMEOUT, MAX_RETRIES);
+ len, SD_TIMEOUT, SD_MAX_RETRIES);
return SRpnt->sr_result;
}
@@ -1095,9 +1103,9 @@
* read write protect setting, if possible - called only in sd_init_onedisk()
*/
static void
-sd_read_write_protect_flag(Scsi_Disk *sdkp, char *diskname,
- Scsi_Request *SRpnt, unsigned char *buffer) {
- Scsi_Device *sdp = sdkp->device;
+sd_read_write_protect_flag(struct scsi_disk *sdkp, char *diskname,
+ struct scsi_request *SRpnt, unsigned char *buffer) {
+ struct scsi_device *sdp = sdkp->device;
int res;
/*
@@ -1136,18 +1144,18 @@
/**
* sd_init_onedisk - called the first time a new disk is seen,
* performs disk spin up, read_capacity, etc.
- * @sdkp: pointer to associated Scsi_Disk object
+ * @sdkp: pointer to associated struct scsi_disk object
* @dsk_nr: disk number within this driver (e.g. 0->/dev/sda,
* 1->/dev/sdb, etc)
*
* Note: this function is local to this driver.
**/
static void
-sd_init_onedisk(Scsi_Disk * sdkp, struct gendisk *disk)
+sd_init_onedisk(struct scsi_disk * sdkp, struct gendisk *disk)
{
unsigned char *buffer;
- Scsi_Device *sdp;
- Scsi_Request *SRpnt;
+ struct scsi_device *sdp;
+ struct scsi_request *SRpnt;
SCSI_LOG_HLQUEUE(3, printk("sd_init_onedisk: disk=%s\n", disk->disk_name));
@@ -1215,7 +1223,7 @@
static int sd_init()
{
int k, maxparts;
- Scsi_Disk * sdkp;
+ struct scsi_disk * sdkp;
SCSI_LOG_HLQUEUE(3, printk("sd_init: dev_noticed=%d\n",
sd_template.dev_noticed));
@@ -1255,10 +1263,10 @@
if (sd_dsk_arr) {
zero_mem_lth(sd_dsk_arr, sd_template.dev_max);
for (k = 0; k < sd_template.dev_max; ++k) {
- sdkp = vmalloc(sizeof(Scsi_Disk));
+ sdkp = vmalloc(sizeof(struct scsi_disk));
if (NULL == sdkp)
goto cleanup_mem;
- memset(sdkp, 0, sizeof(Scsi_Disk));
+ memset(sdkp, 0, sizeof(struct scsi_disk));
sd_dsk_arr[k] = sdkp;
}
}
@@ -1300,7 +1308,7 @@
* Note: this function is invoked from the scsi mid-level.
* This function is called before sd_init() so very little is available.
**/
-static int sd_detect(Scsi_Device * sdp)
+static int sd_detect(struct scsi_device * sdp)
{
SCSI_LOG_HLQUEUE(3, printk("sd_detect: type=%d\n", sdp->type));
if (sdp->type != TYPE_DISK && sdp->type != TYPE_MOD)
@@ -1324,9 +1332,9 @@
* (e.g. /dev/sda). More precisely it is the block device major
* and minor number that is chosen here.
**/
-static int sd_attach(Scsi_Device * sdp)
+static int sd_attach(struct scsi_device * sdp)
{
- Scsi_Disk *sdkp = NULL; /* shut up lame gcc warning */
+ struct scsi_disk *sdkp = NULL; /* shut up lame gcc warning */
int dsk_nr;
unsigned long iflags;
struct gendisk *gd;
@@ -1354,7 +1362,7 @@
for (dsk_nr = 0; dsk_nr < sd_template.dev_max; dsk_nr++) {
sdkp = sd_dsk_arr[dsk_nr];
if (!sdkp->device) {
- memset(sdkp, 0, sizeof(Scsi_Disk));
+ memset(sdkp, 0, sizeof(struct scsi_disk));
sdkp->device = sdp;
break;
}
@@ -1401,7 +1409,7 @@
static int sd_revalidate(struct gendisk *disk)
{
- Scsi_Disk *sdkp = disk->private_data;
+ struct scsi_disk *sdkp = disk->private_data;
if (!sdkp->device)
return -ENODEV;
@@ -1422,9 +1430,9 @@
* that could be re-used by a subsequent sd_attach().
* This function is not called when the built-in sd driver is "exit-ed".
**/
-static void sd_detach(Scsi_Device * sdp)
+static void sd_detach(struct scsi_device * sdp)
{
- Scsi_Disk *sdkp = NULL;
+ struct scsi_disk *sdkp = NULL;
int dsk_nr;
unsigned long iflags;
@@ -1516,7 +1524,7 @@
|| event == SYS_POWER_OFF))
return NOTIFY_DONE;
for (i = 0; i < sd_template.dev_max; i++) {
- Scsi_Disk *sdkp = sd_get_sdisk(i);
+ struct scsi_disk *sdkp = sd_get_sdisk(i);
if (!sdkp || !sdkp->device)
continue;
@@ -1539,9 +1547,9 @@
* have user context) */
static int sd_synchronize_cache(int index, int verbose)
{
- Scsi_Request *SRpnt;
- Scsi_Disk *sdkp = sd_get_sdisk(index);
- Scsi_Device *SDpnt = sdkp->device;
+ struct scsi_request *SRpnt;
+ struct scsi_disk *sdkp = sd_get_sdisk(index);
+ struct scsi_device *SDpnt = sdkp->device;
int retries, the_result;
if (!SDpnt->online)
@@ -1570,7 +1578,7 @@
/* leave the rest of the command zero to indicate
* flush everything */
scsi_wait_req(SRpnt, (void *)cmd, NULL, 0,
- SD_TIMEOUT, MAX_RETRIES);
+ SD_TIMEOUT, SD_MAX_RETRIES);
if(SRpnt->sr_result == 0)
break;
@@ -1593,9 +1601,9 @@
return (the_result == 0);
}
-static Scsi_Disk * sd_get_sdisk(int index)
+static struct scsi_disk * sd_get_sdisk(int index)
{
- Scsi_Disk * sdkp = NULL;
+ struct scsi_disk * sdkp = NULL;
unsigned long iflags;
read_lock_irqsave(&sd_dsk_arr_lock, iflags);
--- 1.8/drivers/scsi/sd.h Mon Oct 21 16:34:15 2002
+++ edited/drivers/scsi/sd.h Sat Oct 26 00:21:08 2002
@@ -1,43 +0,0 @@
-/*
- * sd.h Copyright (C) 1992 Drew Eckhardt
- * SCSI disk driver header file by
- * Drew Eckhardt
- *
- * <drew@colorado.edu>
- *
- * Modified by Eric Youngdale eric@andante.org to
- * add scatter-gather, multiple outstanding request, and other
- * enhancements.
- */
-#ifndef _SD_H
-#define _SD_H
-
-#ifndef _SCSI_H
-#include "scsi.h"
-#endif
-
-#ifndef _GENDISK_H
-#include <linux/genhd.h>
-#endif
-
-typedef struct scsi_disk {
- sector_t capacity; /* size in 512-byte sectors */
- Scsi_Device *device;
- unsigned char media_present;
- unsigned char write_prot;
- unsigned WCE:1; /* state of disk WCE bit */
- unsigned RCD:1; /* state of disk RCD bit */
-} Scsi_Disk;
-
-extern int revalidate_scsidisk(kdev_t dev, int maxusage);
-
-/*
- * Used by pmac to find the device associated with a target.
- */
-extern kdev_t sd_find_target(void *host, int tgt);
-
-#define N_SD_MAJORS 8
-
-#define SD_MAJOR_MASK (N_SD_MAJORS - 1)
-
-#endif
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] merge sd.h into sd.c and some cleanup
2002-10-26 1:18 [PATCH] merge sd.h into sd.c and some cleanup Christoph Hellwig
@ 2002-10-27 11:22 ` Douglas Gilbert
2002-10-27 14:25 ` James Bottomley
2002-10-27 14:51 ` Christoph Hellwig
0 siblings, 2 replies; 4+ messages in thread
From: Douglas Gilbert @ 2002-10-27 11:22 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: James Bottomley, linux-scsi
Christoph Hellwig wrote:
> Now that only sd.c includes sd.h it can be safely merged into it.
> Also get rid of typedef abuse in sd.c
>
>
> --- 1.76/drivers/scsi/sd.c Thu Oct 24 21:27:14 2002
> +++ edited/drivers/scsi/sd.c Sat Oct 26 01:20:04 2002
> @@ -18,7 +17,7 @@
> * - Alex Davis <letmein@erols.com> Fix problem where partition info
> * not being read in sd_open. Fix problem where removable media
> * could be ejected after sd_open.
> - * - Douglas Gilbert <dgilbert@interlog.com> cleanup for lk 2.5 series
> + * - Douglas Gilbert <dgilbert@interlog.com> cleanup for lk 2.5.x
> *
<snip>
Christoph,
The patch looks good. However ....
The header file "sd.h" is included in quite a few lower level
drivers in lk 2.5.44 (at least 55) and perhaps in a couple of
other subsystems. The reason it is included is for the
"biosparam" call in the API of lower level drivers. Whether
it is still used or useful, I'm not sure. [It does seem
quite unreasonable that lower level drivers need to include
an upper level header.]
You can drop my credit line (shown above) from sd.c . Perhaps
James could make a "credits" file for everyone who has helped
in the 2.5 scsi rework.
Doug Gilbert
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] merge sd.h into sd.c and some cleanup
2002-10-27 11:22 ` Douglas Gilbert
@ 2002-10-27 14:25 ` James Bottomley
2002-10-27 14:51 ` Christoph Hellwig
1 sibling, 0 replies; 4+ messages in thread
From: James Bottomley @ 2002-10-27 14:25 UTC (permalink / raw)
To: dougg; +Cc: Christoph Hellwig, linux-scsi
dougg@torque.net said:
> The header file "sd.h" is included in quite a few lower level drivers
> in lk 2.5.44 (at least 55) and perhaps in a couple of other
> subsystems. The reason it is included is for the "biosparam" call in
> the API of lower level drivers. Whether it is still used or useful,
> I'm not sure. [It does seem quite unreasonable that lower level
> drivers need to include an upper level header.]
There was a previous patch that cleaned all that up. I'm just completing
testing on this before putting it up.
> You can drop my credit line (shown above) from sd.c . Perhaps James
> could make a "credits" file for everyone who has helped in the 2.5
> scsi rework.
Credits are a double edged sword (If you look, you'll find there's very little
of the SCSI subsystem I actually admit to). I've just been adding them if
people included them in their patches. Some do, some don't. If you want
yours dropped, send me a patch that drops it.
James
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] merge sd.h into sd.c and some cleanup
2002-10-27 11:22 ` Douglas Gilbert
2002-10-27 14:25 ` James Bottomley
@ 2002-10-27 14:51 ` Christoph Hellwig
1 sibling, 0 replies; 4+ messages in thread
From: Christoph Hellwig @ 2002-10-27 14:51 UTC (permalink / raw)
To: Douglas Gilbert; +Cc: James Bottomley, linux-scsi
On Sun, Oct 27, 2002 at 10:22:03PM +1100, Douglas Gilbert wrote:
> The patch looks good. However ....
> The header file "sd.h" is included in quite a few lower level
> drivers in lk 2.5.44 (at least 55) and perhaps in a couple of
> other subsystems. The reason it is included is for the
> "biosparam" call in the API of lower level drivers. Whether
> it is still used or useful, I'm not sure. [It does seem
> quite unreasonable that lower level drivers need to include
> an upper level header.]
I've changed the biosparm API in the scsi BK tree, against which this
patch is (see http://linux-scsi.bkbits.net)
> You can drop my credit line (shown above) from sd.c . Perhaps
> James could make a "credits" file for everyone who has helped
> in the 2.5 scsi rework.
I think it's fine to keep it - I just had to shorten it to fit into
a ANSI terminal :)
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2002-10-27 14:51 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-10-26 1:18 [PATCH] merge sd.h into sd.c and some cleanup Christoph Hellwig
2002-10-27 11:22 ` Douglas Gilbert
2002-10-27 14:25 ` James Bottomley
2002-10-27 14:51 ` Christoph Hellwig
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).