Commit 8d85fce7 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman

Drivers: block: remove __dev* attributes.

CONFIG_HOTPLUG is going away as an option.  As a result, the __dev*
markings need to be removed.

This change removes the use of __devinit, __devexit_p, __devinitdata,
__devinitconst, and __devexit from these drivers.

Based on patches originally written by Bill Pemberton, but redone by me
in order to handle some of the coding style issues better, by hand.

Cc: Bill Pemberton <wfp5p@virginia.edu>
Cc: Mike Miller <mike.miller@hp.com>
Cc: Chirag Kantharia <chirag.kantharia@hp.com>
Cc: Geoff Levand <geoff@infradead.org>
Cc: Jim Paris <jim@jtan.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Grant Likely <grant.likely@secretlab.ca>
Cc: Matthew Wilcox <matthew.r.wilcox@intel.com>
Cc: Keith Busch <keith.busch@intel.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: NeilBrown <neilb@suse.de>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Tao Guo <Tao.Guo@emc.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 0f58a01d
This diff is collapsed.
...@@ -320,7 +320,7 @@ static void release_io_mem(ctlr_info_t *c) ...@@ -320,7 +320,7 @@ static void release_io_mem(ctlr_info_t *c)
c->io_mem_length = 0; c->io_mem_length = 0;
} }
static void __devexit cpqarray_remove_one(int i) static void cpqarray_remove_one(int i)
{ {
int j; int j;
char buff[4]; char buff[4];
...@@ -352,7 +352,7 @@ static void __devexit cpqarray_remove_one(int i) ...@@ -352,7 +352,7 @@ static void __devexit cpqarray_remove_one(int i)
free_hba(i); free_hba(i);
} }
static void __devexit cpqarray_remove_one_pci (struct pci_dev *pdev) static void cpqarray_remove_one_pci(struct pci_dev *pdev)
{ {
int i; int i;
ctlr_info_t *tmp_ptr; ctlr_info_t *tmp_ptr;
...@@ -377,7 +377,7 @@ static void __devexit cpqarray_remove_one_pci (struct pci_dev *pdev) ...@@ -377,7 +377,7 @@ static void __devexit cpqarray_remove_one_pci (struct pci_dev *pdev)
/* removing an instance that was not removed automatically.. /* removing an instance that was not removed automatically..
* must be an eisa card. * must be an eisa card.
*/ */
static void __devexit cpqarray_remove_one_eisa (int i) static void cpqarray_remove_one_eisa(int i)
{ {
if (hba[i] == NULL) { if (hba[i] == NULL) {
printk(KERN_ERR "cpqarray: controller %d appears to have" printk(KERN_ERR "cpqarray: controller %d appears to have"
...@@ -388,7 +388,7 @@ static void __devexit cpqarray_remove_one_eisa (int i) ...@@ -388,7 +388,7 @@ static void __devexit cpqarray_remove_one_eisa (int i)
} }
/* pdev is NULL for eisa */ /* pdev is NULL for eisa */
static int __devinit cpqarray_register_ctlr( int i, struct pci_dev *pdev) static int cpqarray_register_ctlr(int i, struct pci_dev *pdev)
{ {
struct request_queue *q; struct request_queue *q;
int j; int j;
...@@ -505,8 +505,8 @@ static int __devinit cpqarray_register_ctlr( int i, struct pci_dev *pdev) ...@@ -505,8 +505,8 @@ static int __devinit cpqarray_register_ctlr( int i, struct pci_dev *pdev)
return -1; return -1;
} }
static int __devinit cpqarray_init_one( struct pci_dev *pdev, static int cpqarray_init_one(struct pci_dev *pdev,
const struct pci_device_id *ent) const struct pci_device_id *ent)
{ {
int i; int i;
...@@ -536,7 +536,7 @@ static int __devinit cpqarray_init_one( struct pci_dev *pdev, ...@@ -536,7 +536,7 @@ static int __devinit cpqarray_init_one( struct pci_dev *pdev,
static struct pci_driver cpqarray_pci_driver = { static struct pci_driver cpqarray_pci_driver = {
.name = "cpqarray", .name = "cpqarray",
.probe = cpqarray_init_one, .probe = cpqarray_init_one,
.remove = __devexit_p(cpqarray_remove_one_pci), .remove = cpqarray_remove_one_pci,
.id_table = cpqarray_pci_device_id, .id_table = cpqarray_pci_device_id,
}; };
...@@ -742,7 +742,7 @@ __setup("smart2=", cpqarray_setup); ...@@ -742,7 +742,7 @@ __setup("smart2=", cpqarray_setup);
/* /*
* Find an EISA controller's signature. Set up an hba if we find it. * Find an EISA controller's signature. Set up an hba if we find it.
*/ */
static int __devinit cpqarray_eisa_detect(void) static int cpqarray_eisa_detect(void)
{ {
int i=0, j; int i=0, j;
__u32 board_id; __u32 board_id;
......
...@@ -975,8 +975,8 @@ static int queue_request_irq(struct nvme_dev *dev, struct nvme_queue *nvmeq, ...@@ -975,8 +975,8 @@ static int queue_request_irq(struct nvme_dev *dev, struct nvme_queue *nvmeq,
IRQF_DISABLED | IRQF_SHARED, name, nvmeq); IRQF_DISABLED | IRQF_SHARED, name, nvmeq);
} }
static __devinit struct nvme_queue *nvme_create_queue(struct nvme_dev *dev, static struct nvme_queue *nvme_create_queue(struct nvme_dev *dev, int qid,
int qid, int cq_size, int vector) int cq_size, int vector)
{ {
int result; int result;
struct nvme_queue *nvmeq = nvme_alloc_queue(dev, qid, cq_size, vector); struct nvme_queue *nvmeq = nvme_alloc_queue(dev, qid, cq_size, vector);
...@@ -1011,7 +1011,7 @@ static __devinit struct nvme_queue *nvme_create_queue(struct nvme_dev *dev, ...@@ -1011,7 +1011,7 @@ static __devinit struct nvme_queue *nvme_create_queue(struct nvme_dev *dev,
return ERR_PTR(result); return ERR_PTR(result);
} }
static int __devinit nvme_configure_admin_queue(struct nvme_dev *dev) static int nvme_configure_admin_queue(struct nvme_dev *dev)
{ {
int result = 0; int result = 0;
u32 aqa; u32 aqa;
...@@ -1408,7 +1408,7 @@ static int set_queue_count(struct nvme_dev *dev, int count) ...@@ -1408,7 +1408,7 @@ static int set_queue_count(struct nvme_dev *dev, int count)
return min(result & 0xffff, result >> 16) + 1; return min(result & 0xffff, result >> 16) + 1;
} }
static int __devinit nvme_setup_io_queues(struct nvme_dev *dev) static int nvme_setup_io_queues(struct nvme_dev *dev)
{ {
int result, cpu, i, nr_io_queues, db_bar_size, q_depth; int result, cpu, i, nr_io_queues, db_bar_size, q_depth;
...@@ -1481,7 +1481,7 @@ static void nvme_free_queues(struct nvme_dev *dev) ...@@ -1481,7 +1481,7 @@ static void nvme_free_queues(struct nvme_dev *dev)
nvme_free_queue(dev, i); nvme_free_queue(dev, i);
} }
static int __devinit nvme_dev_add(struct nvme_dev *dev) static int nvme_dev_add(struct nvme_dev *dev)
{ {
int res, nn, i; int res, nn, i;
struct nvme_ns *ns, *next; struct nvme_ns *ns, *next;
...@@ -1619,8 +1619,7 @@ static void nvme_release_instance(struct nvme_dev *dev) ...@@ -1619,8 +1619,7 @@ static void nvme_release_instance(struct nvme_dev *dev)
spin_unlock(&dev_list_lock); spin_unlock(&dev_list_lock);
} }
static int __devinit nvme_probe(struct pci_dev *pdev, static int nvme_probe(struct pci_dev *pdev, const struct pci_device_id *id)
const struct pci_device_id *id)
{ {
int bars, result = -ENOMEM; int bars, result = -ENOMEM;
struct nvme_dev *dev; struct nvme_dev *dev;
...@@ -1702,7 +1701,7 @@ static int __devinit nvme_probe(struct pci_dev *pdev, ...@@ -1702,7 +1701,7 @@ static int __devinit nvme_probe(struct pci_dev *pdev,
return result; return result;
} }
static void __devexit nvme_remove(struct pci_dev *pdev) static void nvme_remove(struct pci_dev *pdev)
{ {
struct nvme_dev *dev = pci_get_drvdata(pdev); struct nvme_dev *dev = pci_get_drvdata(pdev);
nvme_dev_remove(dev); nvme_dev_remove(dev);
...@@ -1747,7 +1746,7 @@ static struct pci_driver nvme_driver = { ...@@ -1747,7 +1746,7 @@ static struct pci_driver nvme_driver = {
.name = "nvme", .name = "nvme",
.id_table = nvme_id_table, .id_table = nvme_id_table,
.probe = nvme_probe, .probe = nvme_probe,
.remove = __devexit_p(nvme_remove), .remove = nvme_remove,
.suspend = nvme_suspend, .suspend = nvme_suspend,
.resume = nvme_resume, .resume = nvme_resume,
.err_handler = &nvme_err_handler, .err_handler = &nvme_err_handler,
......
...@@ -401,7 +401,7 @@ static unsigned long ps3disk_mask; ...@@ -401,7 +401,7 @@ static unsigned long ps3disk_mask;
static DEFINE_MUTEX(ps3disk_mask_mutex); static DEFINE_MUTEX(ps3disk_mask_mutex);
static int __devinit ps3disk_probe(struct ps3_system_bus_device *_dev) static int ps3disk_probe(struct ps3_system_bus_device *_dev)
{ {
struct ps3_storage_device *dev = to_ps3_storage_device(&_dev->core); struct ps3_storage_device *dev = to_ps3_storage_device(&_dev->core);
struct ps3disk_private *priv; struct ps3disk_private *priv;
......
...@@ -536,7 +536,7 @@ static const struct file_operations ps3vram_proc_fops = { ...@@ -536,7 +536,7 @@ static const struct file_operations ps3vram_proc_fops = {
.release = single_release, .release = single_release,
}; };
static void __devinit ps3vram_proc_init(struct ps3_system_bus_device *dev) static void ps3vram_proc_init(struct ps3_system_bus_device *dev)
{ {
struct ps3vram_priv *priv = ps3_system_bus_get_drvdata(dev); struct ps3vram_priv *priv = ps3_system_bus_get_drvdata(dev);
struct proc_dir_entry *pde; struct proc_dir_entry *pde;
...@@ -618,7 +618,7 @@ static void ps3vram_make_request(struct request_queue *q, struct bio *bio) ...@@ -618,7 +618,7 @@ static void ps3vram_make_request(struct request_queue *q, struct bio *bio)
} while (bio); } while (bio);
} }
static int __devinit ps3vram_probe(struct ps3_system_bus_device *dev) static int ps3vram_probe(struct ps3_system_bus_device *dev)
{ {
struct ps3vram_priv *priv; struct ps3vram_priv *priv;
int error, status; int error, status;
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
#define DRV_MODULE_VERSION "1.0" #define DRV_MODULE_VERSION "1.0"
#define DRV_MODULE_RELDATE "June 25, 2007" #define DRV_MODULE_RELDATE "June 25, 2007"
static char version[] __devinitdata = static char version[] =
DRV_MODULE_NAME ".c:v" DRV_MODULE_VERSION " (" DRV_MODULE_RELDATE ")\n"; DRV_MODULE_NAME ".c:v" DRV_MODULE_VERSION " (" DRV_MODULE_RELDATE ")\n";
MODULE_AUTHOR("David S. Miller (davem@davemloft.net)"); MODULE_AUTHOR("David S. Miller (davem@davemloft.net)");
MODULE_DESCRIPTION("Sun LDOM virtual disk client driver"); MODULE_DESCRIPTION("Sun LDOM virtual disk client driver");
...@@ -592,7 +592,7 @@ static int generic_request(struct vdc_port *port, u8 op, void *buf, int len) ...@@ -592,7 +592,7 @@ static int generic_request(struct vdc_port *port, u8 op, void *buf, int len)
return err; return err;
} }
static int __devinit vdc_alloc_tx_ring(struct vdc_port *port) static int vdc_alloc_tx_ring(struct vdc_port *port)
{ {
struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING]; struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING];
unsigned long len, entry_size; unsigned long len, entry_size;
...@@ -725,7 +725,7 @@ static struct vio_driver_ops vdc_vio_ops = { ...@@ -725,7 +725,7 @@ static struct vio_driver_ops vdc_vio_ops = {
.handshake_complete = vdc_handshake_complete, .handshake_complete = vdc_handshake_complete,
}; };
static void __devinit print_version(void) static void print_version(void)
{ {
static int version_printed; static int version_printed;
...@@ -733,8 +733,7 @@ static void __devinit print_version(void) ...@@ -733,8 +733,7 @@ static void __devinit print_version(void)
printk(KERN_INFO "%s", version); printk(KERN_INFO "%s", version);
} }
static int __devinit vdc_port_probe(struct vio_dev *vdev, static int vdc_port_probe(struct vio_dev *vdev, const struct vio_device_id *id)
const struct vio_device_id *id)
{ {
struct mdesc_handle *hp; struct mdesc_handle *hp;
struct vdc_port *port; struct vdc_port *port;
......
...@@ -788,8 +788,7 @@ static struct kobject *floppy_find(dev_t dev, int *part, void *data) ...@@ -788,8 +788,7 @@ static struct kobject *floppy_find(dev_t dev, int *part, void *data)
return get_disk(swd->unit[drive].disk); return get_disk(swd->unit[drive].disk);
} }
static int __devinit swim_add_floppy(struct swim_priv *swd, static int swim_add_floppy(struct swim_priv *swd, enum drive_location location)
enum drive_location location)
{ {
struct floppy_state *fs = &swd->unit[swd->floppy_count]; struct floppy_state *fs = &swd->unit[swd->floppy_count];
struct swim __iomem *base = swd->base; struct swim __iomem *base = swd->base;
...@@ -812,7 +811,7 @@ static int __devinit swim_add_floppy(struct swim_priv *swd, ...@@ -812,7 +811,7 @@ static int __devinit swim_add_floppy(struct swim_priv *swd,
return 0; return 0;
} }
static int __devinit swim_floppy_init(struct swim_priv *swd) static int swim_floppy_init(struct swim_priv *swd)
{ {
int err; int err;
int drive; int drive;
...@@ -875,7 +874,7 @@ static int __devinit swim_floppy_init(struct swim_priv *swd) ...@@ -875,7 +874,7 @@ static int __devinit swim_floppy_init(struct swim_priv *swd)
return err; return err;
} }
static int __devinit swim_probe(struct platform_device *dev) static int swim_probe(struct platform_device *dev)
{ {
struct resource *res; struct resource *res;
struct swim __iomem *swim_base; struct swim __iomem *swim_base;
...@@ -936,7 +935,7 @@ static int __devinit swim_probe(struct platform_device *dev) ...@@ -936,7 +935,7 @@ static int __devinit swim_probe(struct platform_device *dev)
return ret; return ret;
} }
static int __devexit swim_remove(struct platform_device *dev) static int swim_remove(struct platform_device *dev)
{ {
struct swim_priv *swd = platform_get_drvdata(dev); struct swim_priv *swd = platform_get_drvdata(dev);
int drive; int drive;
...@@ -972,7 +971,7 @@ static int __devexit swim_remove(struct platform_device *dev) ...@@ -972,7 +971,7 @@ static int __devexit swim_remove(struct platform_device *dev)
static struct platform_driver swim_driver = { static struct platform_driver swim_driver = {
.probe = swim_probe, .probe = swim_probe,
.remove = __devexit_p(swim_remove), .remove = swim_remove,
.driver = { .driver = {
.name = CARDNAME, .name = CARDNAME,
.owner = THIS_MODULE, .owner = THIS_MODULE,
......
...@@ -1194,7 +1194,8 @@ static int swim3_add_device(struct macio_dev *mdev, int index) ...@@ -1194,7 +1194,8 @@ static int swim3_add_device(struct macio_dev *mdev, int index)
return rc; return rc;
} }
static int __devinit swim3_attach(struct macio_dev *mdev, const struct of_device_id *match) static int swim3_attach(struct macio_dev *mdev,
const struct of_device_id *match)
{ {
struct gendisk *disk; struct gendisk *disk;
int index, rc; int index, rc;
......
...@@ -789,8 +789,7 @@ static const struct block_device_operations mm_fops = { ...@@ -789,8 +789,7 @@ static const struct block_device_operations mm_fops = {
.revalidate_disk = mm_revalidate, .revalidate_disk = mm_revalidate,
}; };
static int __devinit mm_pci_probe(struct pci_dev *dev, static int mm_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
const struct pci_device_id *id)
{ {
int ret = -ENODEV; int ret = -ENODEV;
struct cardinfo *card = &cards[num_cards]; struct cardinfo *card = &cards[num_cards];
......
...@@ -696,7 +696,7 @@ static const struct device_attribute dev_attr_cache_type_rw = ...@@ -696,7 +696,7 @@ static const struct device_attribute dev_attr_cache_type_rw =
__ATTR(cache_type, S_IRUGO|S_IWUSR, __ATTR(cache_type, S_IRUGO|S_IWUSR,
virtblk_cache_type_show, virtblk_cache_type_store); virtblk_cache_type_show, virtblk_cache_type_store);
static int __devinit virtblk_probe(struct virtio_device *vdev) static int virtblk_probe(struct virtio_device *vdev)
{ {
struct virtio_blk *vblk; struct virtio_blk *vblk;
struct request_queue *q; struct request_queue *q;
...@@ -885,7 +885,7 @@ static int __devinit virtblk_probe(struct virtio_device *vdev) ...@@ -885,7 +885,7 @@ static int __devinit virtblk_probe(struct virtio_device *vdev)
return err; return err;
} }
static void __devexit virtblk_remove(struct virtio_device *vdev) static void virtblk_remove(struct virtio_device *vdev)
{ {
struct virtio_blk *vblk = vdev->priv; struct virtio_blk *vblk = vdev->priv;
int index = vblk->index; int index = vblk->index;
...@@ -961,19 +961,14 @@ static unsigned int features[] = { ...@@ -961,19 +961,14 @@ static unsigned int features[] = {
VIRTIO_BLK_F_WCE, VIRTIO_BLK_F_TOPOLOGY, VIRTIO_BLK_F_CONFIG_WCE VIRTIO_BLK_F_WCE, VIRTIO_BLK_F_TOPOLOGY, VIRTIO_BLK_F_CONFIG_WCE
}; };
/* static struct virtio_driver virtio_blk = {
* virtio_blk causes spurious section mismatch warning by
* simultaneously referring to a __devinit and a __devexit function.
* Use __refdata to avoid this warning.
*/
static struct virtio_driver __refdata virtio_blk = {
.feature_table = features, .feature_table = features,
.feature_table_size = ARRAY_SIZE(features), .feature_table_size = ARRAY_SIZE(features),
.driver.name = KBUILD_MODNAME, .driver.name = KBUILD_MODNAME,
.driver.owner = THIS_MODULE, .driver.owner = THIS_MODULE,
.id_table = id_table, .id_table = id_table,
.probe = virtblk_probe, .probe = virtblk_probe,
.remove = __devexit_p(virtblk_remove), .remove = virtblk_remove,
.config_changed = virtblk_config_changed, .config_changed = virtblk_config_changed,
#ifdef CONFIG_PM #ifdef CONFIG_PM
.freeze = virtblk_freeze, .freeze = virtblk_freeze,
......
...@@ -961,7 +961,7 @@ static const struct block_device_operations ace_fops = { ...@@ -961,7 +961,7 @@ static const struct block_device_operations ace_fops = {
/* -------------------------------------------------------------------- /* --------------------------------------------------------------------
* SystemACE device setup/teardown code * SystemACE device setup/teardown code
*/ */
static int __devinit ace_setup(struct ace_device *ace) static int ace_setup(struct ace_device *ace)
{ {
u16 version; u16 version;
u16 val; u16 val;
...@@ -1074,7 +1074,7 @@ static int __devinit ace_setup(struct ace_device *ace) ...@@ -1074,7 +1074,7 @@ static int __devinit ace_setup(struct ace_device *ace)
return -ENOMEM; return -ENOMEM;
} }
static void __devexit ace_teardown(struct ace_device *ace) static void ace_teardown(struct ace_device *ace)
{ {
if (ace->gd) { if (ace->gd) {
del_gendisk(ace->gd); del_gendisk(ace->gd);
...@@ -1092,9 +1092,8 @@ static void __devexit ace_teardown(struct ace_device *ace) ...@@ -1092,9 +1092,8 @@ static void __devexit ace_teardown(struct ace_device *ace)
iounmap(ace->baseaddr); iounmap(ace->baseaddr);
} }
static int __devinit static int ace_alloc(struct device *dev, int id, resource_size_t physaddr,
ace_alloc(struct device *dev, int id, resource_size_t physaddr, int irq, int bus_width)
int irq, int bus_width)
{ {
struct ace_device *ace; struct ace_device *ace;
int rc; int rc;
...@@ -1135,7 +1134,7 @@ ace_alloc(struct device *dev, int id, resource_size_t physaddr, ...@@ -1135,7 +1134,7 @@ ace_alloc(struct device *dev, int id, resource_size_t physaddr,
return rc; return rc;
} }
static void __devexit ace_free(struct device *dev) static void ace_free(struct device *dev)
{ {
struct ace_device *ace = dev_get_drvdata(dev); struct ace_device *ace = dev_get_drvdata(dev);
dev_dbg(dev, "ace_free(%p)\n", dev); dev_dbg(dev, "ace_free(%p)\n", dev);
...@@ -1151,7 +1150,7 @@ static void __devexit ace_free(struct device *dev) ...@@ -1151,7 +1150,7 @@ static void __devexit ace_free(struct device *dev)
* Platform Bus Support * Platform Bus Support
*/ */
static int __devinit ace_probe(struct platform_device *dev) static int ace_probe(struct platform_device *dev)
{ {
resource_size_t physaddr = 0; resource_size_t physaddr = 0;
int bus_width = ACE_BUS_WIDTH_16; /* FIXME: should not be hard coded */ int bus_width = ACE_BUS_WIDTH_16; /* FIXME: should not be hard coded */
...@@ -1182,7 +1181,7 @@ static int __devinit ace_probe(struct platform_device *dev) ...@@ -1182,7 +1181,7 @@ static int __devinit ace_probe(struct platform_device *dev)
/* /*
* Platform bus remove() method * Platform bus remove() method
*/ */
static int __devexit ace_remove(struct platform_device *dev) static int ace_remove(struct platform_device *dev)
{ {
ace_free(&dev->dev); ace_free(&dev->dev);
return 0; return 0;
...@@ -1190,7 +1189,7 @@ static int __devexit ace_remove(struct platform_device *dev) ...@@ -1190,7 +1189,7 @@ static int __devexit ace_remove(struct platform_device *dev)
#if defined(CONFIG_OF) #if defined(CONFIG_OF)
/* Match table for of_platform binding */ /* Match table for of_platform binding */
static const struct of_device_id ace_of_match[] __devinitconst = { static const struct of_device_id ace_of_match[] = {
{ .compatible = "xlnx,opb-sysace-1.00.b", }, { .compatible = "xlnx,opb-sysace-1.00.b", },
{ .compatible = "xlnx,opb-sysace-1.00.c", }, { .compatible = "xlnx,opb-sysace-1.00.c", },
{ .compatible = "xlnx,xps-sysace-1.00.a", }, { .compatible = "xlnx,xps-sysace-1.00.a", },
...@@ -1204,7 +1203,7 @@ MODULE_DEVICE_TABLE(of, ace_of_match); ...@@ -1204,7 +1203,7 @@ MODULE_DEVICE_TABLE(of, ace_of_match);
static struct platform_driver ace_platform_driver = { static struct platform_driver ace_platform_driver = {
.probe = ace_probe, .probe = ace_probe,
.remove = __devexit_p(ace_remove), .remove = ace_remove,
.driver = { .driver = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.name = "xsysace", .name = "xsysace",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment