James Bottomley wrote:
On Thu, 2008-03-06 at 13:02 -0800, Darrick J. Wong wrote:
Return an error code in sas_request_addr if the fw loader isn't
configured.
Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx>
---
drivers/scsi/libsas/sas_scsi_host.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/drivers/scsi/libsas/sas_scsi_host.c b/drivers/scsi/libsas/sas_scsi_host.c
index 601ec5b..e44be7a 100644
--- a/drivers/scsi/libsas/sas_scsi_host.c
+++ b/drivers/scsi/libsas/sas_scsi_host.c
@@ -1085,6 +1085,7 @@ static void sas_parse_addr(u8 *sas_addr, const char *p)
int sas_request_addr(struct Scsi_Host *shost, u8 *addr)
{
+#ifdef CONFIG_FW_LOADER
int res;
const struct firmware *fw;
@@ -1102,6 +1103,9 @@ int sas_request_addr(struct Scsi_Host *shost, u8 *addr)
out:
release_firmware(fw);
return res;
+#else
+ return -ENOENT;
+#endif
}
EXPORT_SYMBOL_GPL(sas_request_addr);
We could do it that way ... I suspect what Greg was asking for was more
like this:
Yes, it seems that this is needed. Lots of drivers use
request_firmware(). Oooooh, and they select FW_LOADER. :(
That's how they "get around" this problem.
James
---
diff --git a/include/linux/firmware.h b/include/linux/firmware.h
index 33d8f20..4d10c73 100644
--- a/include/linux/firmware.h
+++ b/include/linux/firmware.h
@@ -10,7 +10,10 @@ struct firmware {
size_t size;
u8 *data;
};
+
struct device;
+
+#if defined(CONFIG_FW_LOADER) || defined(CONFIG_FW_LOADER_MODULE)
int request_firmware(const struct firmware **fw, const char *name,
struct device *device);
int request_firmware_nowait(
@@ -19,4 +22,24 @@ int request_firmware_nowait(
void (*cont)(const struct firmware *fw, void *context));
void release_firmware(const struct firmware *fw);
+#else
+static inline int request_firmware(const struct firmware **fw,
+ const char *name,
+ struct device *device)
+{
+ return -EINVAL;
+}
+static inline int request_firmware_nowait(
+ struct module *module, int uevent,
+ const char *name, struct device *device, void *context,
+ void (*cont)(const struct firmware *fw, void *context))
+{
+ return -EINVAL;
+}
+
+static inline void release_firmware(const struct firmware *fw)
+{
+}
+#endif
+
#endif
--
~Randy
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html