LKML Archive on lore.kernel.org help / color / mirror / Atom feed
From: Takao Indoh <indou.takao@soft.fujitsu.com> To: linux-kernel@vger.kernel.org Subject: [4/4] [PATCH]Diskdump - yet another crash dump function Date: Thu, 27 May 2004 21:40:37 +0900 [thread overview] Message-ID: <20C443E7CF7A59indou.takao@soft.fujitsu.com> (raw) In-Reply-To: <1CC443CDA50AF2indou.takao@soft.fujitsu.com> This is a patch for aic79xx driver. diff -Nur linux-2.6.6.org/drivers/scsi/aic7xxx/aic79xx_osm.c linux-2.6.6/drivers/scsi/aic7xxx/aic79xx_osm.c --- linux-2.6.6.org/drivers/scsi/aic7xxx/aic79xx_osm.c 2004-05-20 08:58:47.000000000 +0900 +++ linux-2.6.6/drivers/scsi/aic7xxx/aic79xx_osm.c 2004-05-27 11:23:29.000000000 +0900 @@ -786,6 +786,10 @@ static int ahd_linux_bus_reset(Scsi_Cmnd *); static int ahd_linux_dev_reset(Scsi_Cmnd *); static int ahd_linux_abort(Scsi_Cmnd *); +#if defined(CONFIG_SCSI_DUMP) || defined(CONFIG_SCSI_DUMP_MODULE) +static int ahd_linux_sanity_check(Scsi_Device *); +static void ahd_linux_poll(Scsi_Device *); +#endif /* * Calculate a safe value for AHD_NSEG (as expressed through ahd_linux_nseg). @@ -1665,6 +1669,13 @@ return (SUCCESS); } +#if defined(CONFIG_SCSI_DUMP) || defined(CONFIG_SCSI_DUMP_MODULE) +static struct scsi_dump_ops ahd_dump_ops = { + .sanity_check = ahd_linux_sanity_check, + .poll = ahd_linux_poll, +}; +#endif /* CONFIG_SCSI_DUMP || CONFIG_SCSI_DUMP_MODULE */ + Scsi_Host_Template aic79xx_driver_template = { .module = THIS_MODULE, .name = "aic79xx", @@ -1684,6 +1695,9 @@ .slave_alloc = ahd_linux_slave_alloc, .slave_configure = ahd_linux_slave_configure, .slave_destroy = ahd_linux_slave_destroy, +#if defined(CONFIG_SCSI_DUMP) || defined(CONFIG_SCSI_DUMP_MODULE) + .dump_ops = &ahd_dump_ops, +#endif /* CONFIG_SCSI_DUMP || CONFIG_SCSI_DUMP_MODULE */ }; /**************************** Tasklet Handler *********************************/ @@ -4190,6 +4204,41 @@ return IRQ_RETVAL(ours); } +#if defined(CONFIG_SCSI_DUMP) || defined(CONFIG_SCSI_DUMP_MODULE) +static int +ahd_linux_sanity_check(Scsi_Device *device) +{ + struct ahd_softc *ahd; + struct ahd_linux_device *dev; + + ahd = *(struct ahd_softc **)device->host->hostdata; + dev = ahd_linux_get_device(ahd, device->channel, + device->id, device->lun, + /*alloc*/FALSE); + + if(dev == NULL) + return -ENXIO; + if(ahd->platform_data->qfrozen || dev->qfrozen) + return -EBUSY; + if(spin_is_locked(&ahd->platform_data->spin_lock)) + return -EBUSY; + return 0; +} + +static void +ahd_linux_poll(Scsi_Device *device) +{ + struct ahd_softc *ahd; + int ours; + + ahd = *(struct ahd_softc **)device->host->hostdata; + ours = ahd_intr(ahd); + if(ahd_linux_next_device_to_run(ahd) != NULL) + ahd_schedule_runq(ahd); + ahd_linux_run_complete_queue(ahd); +} +#endif /* CONFIG_SCSI_DUMP || CONFIG_SCSI_DUMP_MODULE */ + void ahd_platform_flushwork(struct ahd_softc *ahd) { diff -Nur linux-2.6.6.org/drivers/scsi/aic7xxx/aic79xx_osm.h linux-2.6.6/drivers/scsi/aic7xxx/aic79xx_osm.h --- linux-2.6.6.org/drivers/scsi/aic7xxx/aic79xx_osm.h 2004-05-20 08:58:47.000000000 +0900 +++ linux-2.6.6/drivers/scsi/aic7xxx/aic79xx_osm.h 2004-05-27 11:25:06.000000000 +0900 @@ -50,6 +50,9 @@ #include <linux/smp_lock.h> #include <linux/version.h> #include <linux/module.h> +#if defined(CONFIG_SCSI_DUMP) || defined(CONFIG_SCSI_DUMP_MODULE) +#include <linux/diskdumplib.h> +#endif #include <asm/byteorder.h> #include <asm/io.h> @@ -70,6 +73,10 @@ #include "scsi.h" #include "hosts.h" +#if defined(CONFIG_SCSI_DUMP) || defined(CONFIG_SCSI_DUMP_MODULE) +#include "scsi_dump.h" +#endif + /* Name space conflict with BSD queue macros */ #ifdef LIST_HEAD #undef LIST_HEAD @@ -96,6 +103,20 @@ /* No debugging code. */ #endif +/********************************** Disk Dump *********************************/ +#if defined(CONFIG_SCSI_DUMP) || defined(CONFIG_SCSI_DUMP_MODULE) +#undef add_timer +#define add_timer diskdump_add_timer +#undef del_timer_sync +#define del_timer_sync diskdump_del_timer +#undef del_timer +#define del_timer diskdump_del_timer +#undef mod_timer +#define mod_timer diskdump_mod_timer + +#define tasklet_schedule diskdump_tasklet_schedule +#endif + /********************************** Misc Macros *******************************/ #define roundup(x, y) ((((x)+((y)-1))/(y))*(y)) #define powerof2(x) ((((x)-1)&(x))==0)
next prev parent reply other threads:[~2004-05-27 12:42 UTC|newest] Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top 2004-05-27 9:33 [PATCH]Diskdump - yet another crash dump function Takao Indoh 2004-05-27 12:36 ` [1/4] " Takao Indoh 2004-05-27 12:37 ` [2/4] " Takao Indoh 2004-05-27 13:48 ` Christoph Hellwig 2004-05-28 2:13 ` Takao Indoh 2004-05-27 12:39 ` [3/4] " Takao Indoh 2004-05-27 13:51 ` Christoph Hellwig 2004-05-27 21:04 ` Ingo Molnar 2004-06-17 11:34 ` Takao Indoh 2004-06-17 12:00 ` Christoph Hellwig 2004-06-17 12:45 ` Takao Indoh 2004-06-17 12:13 ` Ingo Molnar 2004-06-17 12:18 ` Christoph Hellwig 2004-06-17 12:32 ` Ingo Molnar 2004-06-17 14:56 ` Jeff Moyer 2004-06-17 15:45 ` Nobuhiro Tachino 2004-06-17 13:04 ` Takao Indoh 2004-06-17 13:10 ` Ingo Molnar 2004-06-17 13:11 ` Ingo Molnar 2004-06-17 13:15 ` Ingo Molnar 2004-06-17 14:00 ` Takao Indoh 2004-06-17 14:45 ` Nobuhiro Tachino 2004-06-17 14:53 ` Takao Indoh 2004-06-18 12:02 ` Takao Indoh 2004-06-21 20:40 ` Nobuhiro Tachino 2004-06-22 10:19 ` Ingo Molnar 2004-06-23 12:11 ` Takao Indoh 2004-06-23 13:00 ` Takao Indoh 2004-06-21 5:46 ` Keith Owens 2004-06-21 6:25 ` Takao Indoh 2004-06-22 4:21 ` Rob Landley 2004-06-22 7:56 ` Ingo Molnar 2004-05-28 9:38 ` Takao Indoh 2004-05-27 12:40 ` Takao Indoh [this message] 2004-05-27 13:34 ` [Document][PATCH]Diskdump " Takao Indoh 2004-06-03 13:10 ` [PATCH]Diskdump " Pavel Machek 2004-06-04 0:44 ` Takao Indoh 2004-06-04 9:33 ` Pavel Machek
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20C443E7CF7A59indou.takao@soft.fujitsu.com \ --to=indou.takao@soft.fujitsu.com \ --cc=linux-kernel@vger.kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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).