new kfifo API
Subsystems (12)
Stefani Seibold
maintainerPATCH 1/7 new kfifo API
drivers/char/nozomi.c | 21 ++++----
drivers/char/sonypi.c | 40 ++++++++-------- drivers/infiniband/hw/cxgb3/cxio_hal.h | 9 ++- drivers/infiniband/hw/cxgb3/cxio_resource.c | 60 ++++++++++++------------- drivers/media/video/meye.c | 48 +++++++++----------- drivers/media/video/meye.h | 4 - drivers/net/wireless/libertas/cmd.c | 4 - drivers/net/wireless/libertas/dev.h | 3 - drivers/net/wireless/libertas/main.c | 17 +++---- drivers/platform/x86/fujitsu-laptop.c | 20 +++----- drivers/platform/x86/sony-laptop.c | 46 +++++++++---------- drivers/scsi/libiscsi.c | 22 +++------ drivers/scsi/libiscsi_tcp.c | 29 +++++------- drivers/scsi/libsrp.c | 12 ++--- drivers/usb/host/fhci-sched.c | 10 ++-- drivers/usb/host/fhci-tds.c | 35 +++++++------- drivers/usb/host/fhci.h | 10 ++-- include/linux/kfifo.h | 15 +++--- include/scsi/libiscsi.h | 3 - include/scsi/libiscsi_tcp.h | 2 include/scsi/libsrp.h | 2 kernel/kfifo.c | 66 ++++++++++++++-------------- net/dccp/probe.c | 20 +++----- 23 files changed, 240 insertions(+), 258 deletions(-)
Signed-off-by Stefani Seibold <[email protected]>
drivers/char/nozomi.c +10 -11
@@ -357,7 +357,7 @@u8 update_flow_control;struct ctrl_ul ctrl_ul;struct ctrl_dl ctrl_dl; -struct kfifo *fifo_ul; +struct kfifo fifo_ul;void __iomem *dl_addr[2 ];u32 dl_size[2 ];u8 toggle_dl;
@@ -684,8 +684,8 @@dump_table (dc);for (i =PORT_MDM ; i <MAX_PORT ; i++) { - dc->port[i].fifo_ul = -kfifo_alloc (FIFO_BUFFER_SIZE_UL ,GFP_ATOMIC ,NULL ); +kfifo_alloc (&dc->port[i].fifo_ul, +FIFO_BUFFER_SIZE_UL ,GFP_ATOMIC ,NULL );memset (&dc->port[i].ctrl_dl,0 ,sizeof (struct ctrl_dl ));memset (&dc->port[i].ctrl_ul,0 ,sizeof (struct ctrl_ul )); }
@@ -797,7 +797,7 @@struct tty_struct *tty =tty_port_tty_get (&port->port);/* Get data from tty and place in buf for now */ - size =__kfifo_get (port->fifo_ul, dc->send_buf, + size =__kfifo_get (&port->fifo_ul, dc->send_buf, ul_size <SEND_BUF_MAX ? ul_size :SEND_BUF_MAX );if (size ==0 ) {
@@ -987,11 +987,11 @@ }else if (old_ctrl.CTS ==0 && ctrl_dl.CTS ==1 ) { -if (__kfifo_len (dc->port[port].fifo_ul)) { +if (__kfifo_len (&dc->port[port].fifo_ul)) {DBG1 ("Enable interrupt (0x%04X) on port: %d" , enable_ier, port);DBG1 ("Data in buffer [%d], enable transmit! " , -__kfifo_len (dc->port[port].fifo_ul)); +__kfifo_len (&dc->port[port].fifo_ul));enable_transmit_ul (port, dc); }else {DBG1 ("No data in buffer..." );
@@ -1535,8 +1535,7 @@free_irq (pdev->irq, dc);for (i =0 ; i <MAX_PORT ; i++) -if (dc->port[i].fifo_ul) -kfifo_free (dc->port[i].fifo_ul); +kfifo_free (&dc->port[i].fifo_ul);kfree (dc->send_buf);
@@ -1672,7 +1671,7 @@ goto exit; } - rval =__kfifo_put (port->fifo_ul, (unsigned char *)buffer, count); + rval =__kfifo_put (&port->fifo_ul, (unsigned char *)buffer, count);/* notify card */ if (unlikely (dc ==NULL )) {
@@ -1720,7 +1719,7 @@if (!port->port.count) goto exit; - room = port->fifo_ul->size -__kfifo_len (port->fifo_ul); + room = port->fifo_ul.size -__kfifo_len (&port->fifo_ul); exit:mutex_unlock (&port->tty_sem);
@@ -1877,7 +1876,7 @@ goto exit_in_buffer; } - rval =__kfifo_len (port->fifo_ul); + rval =__kfifo_len (&port->fifo_ul); exit_in_buffer:return rval;
drivers/char/sonypi.c +19 -21
@@ -486,7 +486,7 @@int camera_power;int bluetooth_power;struct mutex lock; -struct kfifo *fifo; +struct kfifo fifo;spinlock_t fifo_lock;wait_queue_head_t fifo_proc_list;struct fasync_struct *fifo_async;
@@ -495,7 +495,7 @@struct input_dev *input_jog_dev;struct input_dev *input_key_dev;struct work_struct input_work; -struct kfifo *input_fifo; +struct kfifo input_fifo;spinlock_t input_fifo_lock; } sonypi_device;
@@ -776,7 +776,7 @@ {struct sonypi_keypress kp; -while (kfifo_get (sonypi_device.input_fifo, (unsigned char *)&kp, +while (kfifo_get (&sonypi_device.input_fifo, (unsigned char *)&kp,sizeof (kp)) ==sizeof (kp)) {msleep (10 );input_report_key (kp.dev, kp.key,0 );
@@ -826,7 +826,7 @@if (kp.dev) {input_report_key (kp.dev, kp.key,1 );input_sync (kp.dev); -kfifo_put (sonypi_device.input_fifo, +kfifo_put (&sonypi_device.input_fifo, (unsigned char *)&kp,sizeof (kp));schedule_work (&sonypi_device.input_work); }
@@ -879,7 +879,7 @@acpi_bus_generate_proc_event (sonypi_acpi_device,1 , event);#endif -kfifo_put (sonypi_device.fifo, (unsigned char *)&event,sizeof (event)); +kfifo_put (&sonypi_device.fifo, (unsigned char *)&event,sizeof (event));kill_fasync (&sonypi_device.fifo_async,SIGIO ,POLL_IN );wake_up_interruptible (&sonypi_device.fifo_proc_list);
@@ -905,7 +905,7 @@mutex_lock (&sonypi_device.lock);/* Flush input queue on first open */ if (!sonypi_device.open_count) -kfifo_reset (sonypi_device.fifo); +kfifo_reset (&sonypi_device.fifo); sonypi_device.open_count++;mutex_unlock (&sonypi_device.lock);unlock_kernel ();
@@ -918,17 +918,17 @@ssize_t ret;unsigned char c; -if ((kfifo_len (sonypi_device.fifo) ==0 ) && +if ((kfifo_len (&sonypi_device.fifo) ==0 ) && (file->f_flags &O_NONBLOCK ))return -EAGAIN ; ret =wait_event_interruptible (sonypi_device.fifo_proc_list, -kfifo_len (sonypi_device.fifo) !=0 ); +kfifo_len (&sonypi_device.fifo) !=0 );if (ret)return ret;while (ret < count && - (kfifo_get (sonypi_device.fifo, &c,sizeof (c)) ==sizeof (c))) { + (kfifo_get (&sonypi_device.fifo, &c,sizeof (c)) ==sizeof (c))) {if (put_user (c, buf++))return -EFAULT ; ret++;
@@ -945,7 +945,7 @@static unsigned int sonypi_misc_poll (struct file *file,poll_table *wait) {poll_wait (file, &sonypi_device.fifo_proc_list, wait); -if (kfifo_len (sonypi_device.fifo)) +if (kfifo_len (&sonypi_device.fifo))return POLLIN |POLLRDNORM ;return 0 ; }
@@ -1312,11 +1312,11 @@ "http://www.linux.it/~malattia/wiki/index.php/Sony_drivers\n");spin_lock_init (&sonypi_device.fifo_lock); - sonypi_device.fifo =kfifo_alloc (SONYPI_BUF_SIZE ,GFP_KERNEL , + error =kfifo_alloc (&sonypi_device.fifo,SONYPI_BUF_SIZE ,GFP_KERNEL , &sonypi_device.fifo_lock); -if (IS_ERR (sonypi_device.fifo)) { +if (error) {printk (KERN_ERR "sonypi: kfifo_alloc failed\n" ); -return PTR_ERR (sonypi_device.fifo); +return error; }init_waitqueue_head (&sonypi_device.fifo_proc_list);
@@ -1392,12 +1392,10 @@ }spin_lock_init (&sonypi_device.input_fifo_lock); - sonypi_device.input_fifo = -kfifo_alloc (SONYPI_BUF_SIZE ,GFP_KERNEL , - &sonypi_device.input_fifo_lock); -if (IS_ERR (sonypi_device.input_fifo)) { + error =kfifo_alloc (&sonypi_device.input_fifo,SONYPI_BUF_SIZE , +GFP_KERNEL , &sonypi_device.input_fifo_lock); +if (error) {printk (KERN_ERR "sonypi: kfifo_alloc failed\n" ); - error =PTR_ERR (sonypi_device.input_fifo); goto err_inpdev_unregister; }
@@ -1422,7 +1420,7 @@pci_disable_device (pcidev); err_put_pcidev:pci_dev_put (pcidev); -kfifo_free (sonypi_device.fifo); +kfifo_free (&sonypi_device.fifo);return error; }
@@ -1437,7 +1435,7 @@if (useinput) {input_unregister_device (sonypi_device.input_key_dev);input_unregister_device (sonypi_device.input_jog_dev); -kfifo_free (sonypi_device.input_fifo); +kfifo_free (&sonypi_device.input_fifo); }misc_deregister (&sonypi_misc_device);
@@ -1450,7 +1448,7 @@pci_dev_put (sonypi_device.dev); } -kfifo_free (sonypi_device.fifo); +kfifo_free (&sonypi_device.fifo);return 0 ; }
drivers/infiniband/hw/cxgb3/cxio_hal.h +5 -4
@@ -34,6 +34,7 @@#include <linux/list.h> #include <linux/mutex.h> +#include <linux/kfifo.h> #include "t3_cpl.h" #include "t3cdev.h"
@@ -75,13 +76,13 @@ };struct cxio_hal_resource { -struct kfifo *tpt_fifo; +struct kfifo tpt_fifo;spinlock_t tpt_fifo_lock; -struct kfifo *qpid_fifo; +struct kfifo qpid_fifo;spinlock_t qpid_fifo_lock; -struct kfifo *cqid_fifo; +struct kfifo cqid_fifo;spinlock_t cqid_fifo_lock; -struct kfifo *pdid_fifo; +struct kfifo pdid_fifo;spinlock_t pdid_fifo_lock; };
drivers/infiniband/hw/cxgb3/cxio_resource.c +29 -31
171 lines not on this page · raw message
drivers/media/video/meye.c +23 -25
146 lines not on this page · raw message
drivers/media/video/meye.h +2 -2
@@ -303,9 +303,9 @@struct meye_grab_buffer grab_buffer[MEYE_MAX_BUFNBRS ];int vma_use_count[MEYE_MAX_BUFNBRS ];/* mmap count */ struct mutex lock;/* mutex for open/mmap... */ -struct kfifo *grabq;/* queue for buffers to be grabbed */ +struct kfifo grabq;/* queue for buffers to be grabbed */ spinlock_t grabq_lock;/* lock protecting the queue */ -struct kfifo *doneq;/* queue for grabbed buffers */ +struct kfifo doneq;/* queue for grabbed buffers */ spinlock_t doneq_lock;/* lock protecting the queue */ wait_queue_head_t proc_list;/* wait queue */ struct video_device *video_dev;/* video device parameters */
drivers/net/wireless/libertas/cmd.c +2 -2
@@ -1862,7 +1862,7 @@ priv->dnld_sent =DNLD_RES_RECEIVED ;/* If nothing to do, go back to sleep (?) */ -if (!__kfifo_len (priv->event_fifo) && !priv->resp_len[priv->resp_idx]) +if (!__kfifo_len (&priv->event_fifo) && !priv->resp_len[priv->resp_idx]) priv->psstate =PS_STATE_SLEEP ;spin_unlock_irqrestore (&priv->driver_lock, flags);
@@ -1936,7 +1936,7 @@ }/* Pending events or command responses? */ -if (__kfifo_len (priv->event_fifo) || priv->resp_len[priv->resp_idx]) { +if (__kfifo_len (&priv->event_fifo) || priv->resp_len[priv->resp_idx]) { allowed =0 ;lbs_deb_host ("pending events or command responses\n" ); }
drivers/net/wireless/libertas/dev.h +2 -1
@@ -10,6 +10,7 @@#include <linux/wireless.h> #include <linux/ethtool.h> #include <linux/debugfs.h> +#include <linux/kfifo.h> #include "defs.h" #include "hostcmd.h"
@@ -194,7 +195,7 @@u32 resp_len[2 ];/* Events sent from hardware to driver */ -struct kfifo *event_fifo; +struct kfifo event_fifo;/* nickname */ u8 nodename[16 ];
drivers/net/wireless/libertas/main.c +8 -9
@@ -772,7 +772,7 @@ shouldsleep =1 ;/* Can't send a command; one already running */ else if (!list_empty(&priv->cmdpendingq)) shouldsleep =0 ;/* We have a command to send */ - else if (__kfifo_len(priv->event_fifo)) + else if (__kfifo_len(&priv->event_fifo)) shouldsleep =0 ;/* We have an event to process */ else shouldsleep =1 ;/* No command */
@@ -851,10 +851,10 @@/* Process hardware events, e.g. card removed, link lost */ spin_lock_irq (&priv->driver_lock); -while (__kfifo_len (priv->event_fifo)) { +while (__kfifo_len (&priv->event_fifo)) {u32 event; -__kfifo_get (priv->event_fifo, (unsigned char *) &event, +__kfifo_get (&priv->event_fifo, (unsigned char *) &event,sizeof (event));spin_unlock_irq (&priv->driver_lock);lbs_process_event (priv, event);
@@ -1121,10 +1121,10 @@ priv->resp_len[0 ] = priv->resp_len[1 ] =0 ;/* Create the event FIFO */ - priv->event_fifo =kfifo_alloc (sizeof (u32) *16 ,GFP_KERNEL ,NULL ); -if (IS_ERR (priv->event_fifo)) { + ret = +kfifo_alloc (&priv->event_fifo,sizeof (u32) *16 ,GFP_KERNEL ,NULL ); +if (ret) {lbs_pr_err ("Out of memory allocating event FIFO buffer\n" ); - ret = -ENOMEM ; goto out; }
@@ -1139,8 +1139,7 @@lbs_deb_enter (LBS_DEB_MAIN );lbs_free_cmd_buffer (priv); -if (priv->event_fifo) -kfifo_free (priv->event_fifo); +kfifo_free (&priv->event_fifo);del_timer (&priv->command_timer);kfree (priv->networks); priv->networks =NULL ;
@@ -1580,7 +1579,7 @@if (priv->psstate ==PS_STATE_SLEEP ) priv->psstate =PS_STATE_AWAKE ; -__kfifo_put (priv->event_fifo, (unsigned char *) &event,sizeof (u32)); +__kfifo_put (&priv->event_fifo, (unsigned char *) &event,sizeof (u32));wake_up_interruptible (&priv->waitq);
drivers/platform/x86/fujitsu-laptop.c +9 -11
@@ -164,7 +164,7 @@struct input_dev *input;char phys[32 ];struct platform_device *pf_device; -struct kfifo *fifo; +struct kfifo fifo;spinlock_t fifo_lock;int rfkill_supported;int rfkill_state;
@@ -833,12 +833,10 @@/* kfifo */ spin_lock_init (&fujitsu_hotkey->fifo_lock); - fujitsu_hotkey->fifo = -kfifo_alloc (RINGBUFFERSIZE *sizeof (int ),GFP_KERNEL , - &fujitsu_hotkey->fifo_lock); -if (IS_ERR (fujitsu_hotkey->fifo)) { + error =kfifo_alloc (&fujitsu_hotkey->fifo,RINGBUFFERSIZE *sizeof (int ), +GFP_KERNEL , &fujitsu_hotkey->fifo_lock); +if (error) {printk (KERN_ERR "kfifo_alloc failed\n" ); - error =PTR_ERR (fujitsu_hotkey->fifo); goto err_stop; }
@@ -942,7 +940,7 @@ err_free_input_dev:input_free_device (input); err_free_fifo: -kfifo_free (fujitsu_hotkey->fifo); +kfifo_free (&fujitsu_hotkey->fifo); err_stop:return result;
@@ -959,7 +957,7 @@ fujitsu_hotkey->acpi_handle =NULL ; -kfifo_free (fujitsu_hotkey->fifo); +kfifo_free (&fujitsu_hotkey->fifo);return 0 ; }
@@ -1009,7 +1007,7 @@vdbg_printk (FUJLAPTOP_DBG_TRACE ,"Push keycode into ringbuffer [%d]\n" , keycode); - status =kfifo_put (fujitsu_hotkey->fifo, + status =kfifo_put (&fujitsu_hotkey->fifo, (unsigned char *)&keycode,sizeof (keycode));if (status !=sizeof (keycode)) {
@@ -1023,8 +1021,8 @@ }else if (keycode ==0 ) {while ((status =kfifo_get - (fujitsu_hotkey->fifo, (unsigned char *) - &keycode_r, + (&fujitsu_hotkey->fifo, + (unsigned char *) &keycode_r,sizeof (keycode_r))) ==sizeof (keycode_r)) {input_report_key (input, keycode_r,0 );
drivers/platform/x86/sony-laptop.c +23 -23
145 lines not on this page · raw message
drivers/scsi/libiscsi.c +8 -14
@@ -428,7 +428,7 @@if (conn->login_task == task)return ; -__kfifo_put (session->cmdpool.queue, (void *)&task,sizeof (void *)); +__kfifo_put (&session->cmdpool.queue, (void *)&task,sizeof (void *));if (sc) { task->sc =NULL ;
@@ -614,7 +614,7 @@BUG_ON (conn->c_stage ==ISCSI_CONN_INITIAL_STAGE );BUG_ON (conn->c_stage ==ISCSI_CONN_STOPPED ); -if (!__kfifo_get (session->cmdpool.queue, +if (!__kfifo_get (&session->cmdpool.queue, (void *)&task,sizeof (void *)))return NULL ; }
@@ -1376,7 +1376,7 @@ {struct iscsi_task *task; -if (!__kfifo_get (conn->session->cmdpool.queue, +if (!__kfifo_get (&conn->session->cmdpool.queue, (void *) &task,sizeof (void *)))return NULL ;
@@ -2121,12 +2121,7 @@if (q->pool ==NULL )return -ENOMEM ; - q->queue =kfifo_init ((void *)q->pool, max *sizeof (void *), -GFP_KERNEL ,NULL ); -if (IS_ERR (q->queue)) { - q->queue =NULL ; - goto enomem; - } +kfifo_init (&q->queue, (void *)q->pool, max *sizeof (void *),NULL );for (i =0 ; i < max; i++) { q->pool[i] =kzalloc (item_size,GFP_KERNEL );
@@ -2134,7 +2129,7 @@ q->max = i; goto enomem; } -__kfifo_put (q->queue, (void *)&q->pool[i],sizeof (void *)); +__kfifo_put (&q->queue, (void *)&q->pool[i],sizeof (void *)); }if (items) {
@@ -2157,7 +2152,6 @@for (i =0 ; i < q->max; i++)kfree (q->pool[i]);kfree (q->pool); -kfree (q->queue); }EXPORT_SYMBOL_GPL (iscsi_pool_free);
@@ -2482,7 +2476,7 @@/* allocate login_task used for the login/text sequences */ spin_lock_bh (&session->lock); -if (!__kfifo_get (session->cmdpool.queue, +if (!__kfifo_get (&session->cmdpool.queue, (void *)&conn->login_task,sizeof (void *))) {spin_unlock_bh (&session->lock);
@@ -2502,7 +2496,7 @@return cls_conn; login_task_data_alloc_fail: -__kfifo_put (session->cmdpool.queue, (void *)&conn->login_task, +__kfifo_put (&session->cmdpool.queue, (void *)&conn->login_task,sizeof (void *)); login_task_alloc_fail:iscsi_destroy_conn (cls_conn);
@@ -2565,7 +2559,7 @@free_pages ((unsigned long ) conn->data,get_order (ISCSI_DEF_MAX_RECV_SEG_LEN ));kfree (conn->persistent_address); -__kfifo_put (session->cmdpool.queue, (void *)&conn->login_task, +__kfifo_put (&session->cmdpool.queue, (void *)&conn->login_task,sizeof (void *));if (session->leadconn == conn) session->leadconn =NULL ;
drivers/scsi/libiscsi_tcp.c +14 -15
@@ -445,15 +445,15 @@return ;/* flush task's r2t queues */ -while (__kfifo_get (tcp_task->r2tqueue, (void *)&r2t,sizeof (void *))) { -__kfifo_put (tcp_task->r2tpool.queue, (void *)&r2t, +while (__kfifo_get (&tcp_task->r2tqueue, (void *)&r2t,sizeof (void *))) { +__kfifo_put (&tcp_task->r2tpool.queue, (void *)&r2t,sizeof (void *));ISCSI_DBG_TCP (task->conn,"pending r2t dropped\n" ); } r2t = tcp_task->r2t;if (r2t !=NULL ) { -__kfifo_put (tcp_task->r2tpool.queue, (void *)&r2t, +__kfifo_put (&tcp_task->r2tpool.queue, (void *)&r2t,sizeof (void *)); tcp_task->r2t =NULL ; }
@@ -541,7 +541,7 @@return 0 ; } - rc =__kfifo_get (tcp_task->r2tpool.queue, (void *)&r2t,sizeof (void *)); + rc =__kfifo_get (&tcp_task->r2tpool.queue, (void *)&r2t,sizeof (void *));if (!rc) {iscsi_conn_printk (KERN_ERR , conn,"Could not allocate R2T. " "Target has sent more R2Ts than it "
@@ -554,7 +554,7 @@if (r2t->data_length ==0 ) {iscsi_conn_printk (KERN_ERR , conn,"invalid R2T with zero data len\n" ); -__kfifo_put (tcp_task->r2tpool.queue, (void *)&r2t, +__kfifo_put (&tcp_task->r2tpool.queue, (void *)&r2t,sizeof (void *));return ISCSI_ERR_DATALEN ; }
@@ -570,7 +570,7 @@"invalid R2T with data len %u at offset %u " "and total length %d\n" , r2t->data_length, r2t->data_offset, scsi_out(task->sc)->length); -__kfifo_put (tcp_task->r2tpool.queue, (void *)&r2t, +__kfifo_put (&tcp_task->r2tpool.queue, (void *)&r2t,sizeof (void *));return ISCSI_ERR_DATALEN ; }
@@ -580,7 +580,7 @@ r2t->sent =0 ; tcp_task->exp_datasn = r2tsn +1 ; -__kfifo_put (tcp_task->r2tqueue, (void *)&r2t,sizeof (void *)); +__kfifo_put (&tcp_task->r2tqueue, (void *)&r2t,sizeof (void *)); conn->r2t_pdus_cnt++;iscsi_requeue_task (task);
@@ -951,7 +951,7 @@return conn->session->tt->init_pdu (task,0 , task->data_count); } -BUG_ON (__kfifo_len (tcp_task->r2tqueue)); +BUG_ON (__kfifo_len (&tcp_task->r2tqueue)); tcp_task->exp_datasn =0 ;/* Prepare PDU, optionally w/ immediate data */
@@ -982,7 +982,7 @@if (r2t->data_length <= r2t->sent) {ISCSI_DBG_TCP (task->conn," done with r2t %p\n" , r2t); -__kfifo_put (tcp_task->r2tpool.queue, +__kfifo_put (&tcp_task->r2tpool.queue, (void *)&tcp_task->r2t,sizeof (void *)); tcp_task->r2t = r2t =NULL ;
@@ -990,7 +990,7 @@ }if (r2t ==NULL ) { -__kfifo_get (tcp_task->r2tqueue, +__kfifo_get (&tcp_task->r2tqueue, (void *)&tcp_task->r2t,sizeof (void *)); r2t = tcp_task->r2t; }
@@ -1127,9 +1127,8 @@ }/* R2T xmit queue */ - tcp_task->r2tqueue =kfifo_alloc ( - session->max_r2t *4 *sizeof (void *),GFP_KERNEL ,NULL ); -if (tcp_task->r2tqueue ==ERR_PTR (-ENOMEM )) { +if (kfifo_alloc (&tcp_task->r2tqueue, + session->max_r2t *4 *sizeof (void *),GFP_KERNEL ,NULL )) {iscsi_pool_free (&tcp_task->r2tpool); goto r2t_alloc_fail; }
@@ -1142,7 +1141,7 @@struct iscsi_task *task = session->cmds[i];struct iscsi_tcp_task *tcp_task = task->dd_data; -kfifo_free (tcp_task->r2tqueue); +kfifo_free (&tcp_task->r2tqueue);iscsi_pool_free (&tcp_task->r2tpool); }return -ENOMEM ;
@@ -1157,7 +1156,7 @@struct iscsi_task *task = session->cmds[i];struct iscsi_tcp_task *tcp_task = task->dd_data; -kfifo_free (tcp_task->r2tqueue); +kfifo_free (&tcp_task->r2tqueue);iscsi_pool_free (&tcp_task->r2tpool); } }
drivers/scsi/libsrp.c +5 -7
@@ -58,13 +58,11 @@ goto free_pool;spin_lock_init (&q->lock); - q->queue =kfifo_init ((void *) q->pool, max *sizeof (void *), -GFP_KERNEL , &q->lock); -if (IS_ERR (q->queue)) - goto free_item; +kfifo_init (&q->queue, (void *) q->pool, max *sizeof (void *), + &q->lock);for (i =0 , iue = q->items; i < max; i++) { -__kfifo_put (q->queue, (void *) &iue,sizeof (void *)); +__kfifo_put (&q->queue, (void *) &iue,sizeof (void *)); iue->sbuf = ring[i]; iue++; }
@@ -166,7 +164,7 @@ {struct iu_entry *iue =NULL ; -kfifo_get (target->iu_queue.queue, (void *) &iue,sizeof (void *)); +kfifo_get (&target->iu_queue.queue, (void *) &iue,sizeof (void *));if (!iue)return iue; iue->target = target;
@@ -178,7 +176,7 @@void srp_iu_put (struct iu_entry *iue) { -kfifo_put (iue->target->iu_queue.queue, (void *) &iue,sizeof (void *)); +kfifo_put (&iue->target->iu_queue.queue, (void *) &iue,sizeof (void *)); }EXPORT_SYMBOL_GPL (srp_iu_put);
drivers/usb/host/fhci.h +5 -5
@@ -423,9 +423,9 @@struct usb_td __iomem *td_base;/* first TD in the ring */ struct usb_td __iomem *conf_td;/* next TD for confirm after transac */ struct usb_td __iomem *empty_td;/* next TD for new transaction req. */ -struct kfifo *empty_frame_Q;/* Empty frames list to use */ -struct kfifo *conf_frame_Q;/* frames passed to TDs,waiting for tx */ -struct kfifo *dummy_packets_Q;/* dummy packets for the CRC overun */ +struct kfifo empty_frame_Q;/* Empty frames list to use */ +struct kfifo conf_frame_Q;/* frames passed to TDs,waiting for tx */ +struct kfifo dummy_packets_Q;/* dummy packets for the CRC overun */ bool already_pushed_dummy_bd; };
@@ -493,9 +493,9 @@ }/* fifo of pointers */ -static inline struct kfifo *cq_new (int size) +static inline int cq_new (struct kfifo *fifo,int size) { -return kfifo_alloc (size *sizeof (void *),GFP_KERNEL ,NULL ); +return kfifo_alloc (fifo, size *sizeof (void *),GFP_KERNEL ); }static inline void cq_delete (struct kfifo *kfifo)
drivers/usb/host/fhci-sched.c +5 -5
@@ -37,7 +37,7 @@ pkt->info =0 ; pkt->priv_data =NULL ; -cq_put (usb->ep0->empty_frame_Q, pkt); +cq_put (&usb->ep0->empty_frame_Q, pkt); }/* confirm submitted packet */
@@ -57,7 +57,7 @@if ((td->data + td->actual_len) && trans_len)memcpy (td->data + td->actual_len, pkt->data, trans_len); -cq_put (usb->ep0->dummy_packets_Q, pkt->data); +cq_put (&usb->ep0->dummy_packets_Q, pkt->data); }recycle_frame (usb, pkt);
@@ -213,7 +213,7 @@ }/* update frame object fields before transmitting */ - pkt =cq_get (usb->ep0->empty_frame_Q); + pkt =cq_get (&usb->ep0->empty_frame_Q);if (!pkt) {fhci_dbg (usb->fhci,"there is no empty frame\n" );return -1 ;
@@ -222,7 +222,7 @@ pkt->info =0 ;if (data ==NULL ) { - data =cq_get (usb->ep0->dummy_packets_Q); + data =cq_get (&usb->ep0->dummy_packets_Q);BUG_ON (!data); pkt->info =PKT_DUMMY_PACKET ; }
@@ -246,7 +246,7 @@list_del_init (&td->frame_lh); td->status =USB_TD_OK ;if (pkt->info &PKT_DUMMY_PACKET ) -cq_put (usb->ep0->dummy_packets_Q, pkt->data); +cq_put (&usb->ep0->dummy_packets_Q, pkt->data);recycle_frame (usb, pkt); usb->actual_frame->total_bytes -= (len +PROTOCOL_OVERHEAD );fhci_err (usb->fhci,"host transaction failed\n" );
drivers/usb/host/fhci-tds.c +17 -18
@@ -106,33 +106,33 @@cpm_muram_free (cpm_muram_offset (ep->td_base));if (ep->conf_frame_Q) { - size =cq_howmany (ep->conf_frame_Q); + size =cq_howmany (&ep->conf_frame_Q);for (; size; size--) { -struct packet *pkt =cq_get (ep->conf_frame_Q); +struct packet *pkt =cq_get (&ep->conf_frame_Q);kfree (pkt); } -cq_delete (ep->conf_frame_Q); +cq_delete (&ep->conf_frame_Q); }if (ep->empty_frame_Q) { - size =cq_howmany (ep->empty_frame_Q); + size =cq_howmany (&ep->empty_frame_Q);for (; size; size--) { -struct packet *pkt =cq_get (ep->empty_frame_Q); +struct packet *pkt =cq_get (&ep->empty_frame_Q);kfree (pkt); } -cq_delete (ep->empty_frame_Q); +cq_delete (&ep->empty_frame_Q); }if (ep->dummy_packets_Q) { - size =cq_howmany (ep->dummy_packets_Q); + size =cq_howmany (&ep->dummy_packets_Q);for (; size; size--) { -u8 *buff =cq_get (ep->dummy_packets_Q); +u8 *buff =cq_get (&ep->dummy_packets_Q);kfree (buff); } -cq_delete (ep->dummy_packets_Q); +cq_delete (&ep->dummy_packets_Q); }kfree (ep);
@@ -175,10 +175,9 @@ ep->td_base =cpm_muram_addr (ep_offset);/* zero all queue pointers */ - ep->conf_frame_Q =cq_new (ring_len +2 ); - ep->empty_frame_Q =cq_new (ring_len +2 ); - ep->dummy_packets_Q =cq_new (ring_len +2 ); -if (!ep->conf_frame_Q || !ep->empty_frame_Q || !ep->dummy_packets_Q) { +if (cq_new (&ep->conf_frame_Q, ring_len +2 ) || +cq_new (&ep->empty_frame_Q, ring_len +2 ) || +cq_new (&ep->dummy_packets_Q, ring_len +2 )) { err_for ="frame_queues" ; goto err; }
@@ -199,8 +198,8 @@ err_for ="buffer" ; goto err; } -cq_put (ep->empty_frame_Q, pkt); -cq_put (ep->dummy_packets_Q, buff); +cq_put (&ep->empty_frame_Q, pkt); +cq_put (&ep->dummy_packets_Q, buff); }/* we put the endpoint parameter RAM right behind the TD ring */
@@ -319,7 +318,7 @@if ((buf ==DUMMY2_BD_BUFFER ) && !(td_status & ~TD_W ))continue ; - pkt =cq_get (ep->conf_frame_Q); + pkt =cq_get (&ep->conf_frame_Q);if (!pkt)fhci_err (usb->fhci,"no frame to confirm\n" );
@@ -460,9 +459,9 @@out_be16 (&td->length, pkt->len);/* put the frame to the confirmation queue */ -cq_put (ep->conf_frame_Q, pkt); +cq_put (&ep->conf_frame_Q, pkt); -if (cq_howmany (ep->conf_frame_Q) ==1 ) +if (cq_howmany (&ep->conf_frame_Q) ==1 )out_8 (&usb->fhci->regs->usb_comm,USB_CMD_STR_FIFO );return 0 ;
include/linux/kfifo.h +8 -7
@@ -1,6 +1,7 @@/* -* A simple kernel FIFO implementation. +* A generic kernel FIFO implementation. * +* Copyright (C) 2009 Stefani Seibold <[email protected]> * Copyright (C) 2004 Stelian Pop <[email protected]> * * This program is free software; you can redistribute it and/or modify
@@ -32,14 +33,14 @@spinlock_t *lock;/* protects concurrent modifications */ }; -extern struct kfifo *kfifo_init (unsigned char *buffer,unsigned int size, -gfp_t gfp_mask,spinlock_t *lock); -extern struct kfifo *kfifo_alloc (unsigned int size,gfp_t gfp_mask, -spinlock_t *lock); +extern void kfifo_init (struct kfifo *fifo, +unsigned char *buffer,unsigned int size,spinlock_t *lock); +extern __must_check int kfifo_alloc (struct kfifo *fifo, +unsigned int size,gfp_t gfp_mask,spinlock_t *lock);extern void kfifo_free (struct kfifo *fifo); -extern unsigned int __kfifo_put (struct kfifo *fifo, +extern __must_check unsigned int __kfifo_put (struct kfifo *fifo,const unsigned char *buffer,unsigned int len); -extern unsigned int __kfifo_get (struct kfifo *fifo, +extern __must_check unsigned int __kfifo_get (struct kfifo *fifo,unsigned char *buffer,unsigned int len);/**
include/scsi/libiscsi.h +2 -1
@@ -28,6 +28,7 @@#include <linux/mutex.h> #include <linux/timer.h> #include <linux/workqueue.h> +#include <linux/kfifo.h> #include <scsi/iscsi_proto.h> #include <scsi/iscsi_if.h> #include <scsi/scsi_transport_iscsi.h>
@@ -231,7 +232,7 @@ };struct iscsi_pool { -struct kfifo *queue;/* FIFO Queue */ +struct kfifo queue;/* FIFO Queue */ void **pool;/* Pool of elements */ int max;/* Max number of elements */ };
include/scsi/libiscsi_tcp.h +1 -1
@@ -80,7 +80,7 @@int data_offset;struct iscsi_r2t_info *r2t;/* in progress solict R2T */ struct iscsi_pool r2tpool; -struct kfifo *r2tqueue; +struct kfifo r2tqueue;void *dd_data; };
include/scsi/libsrp.h +1 -1
@@ -21,7 +21,7 @@struct srp_queue {void *pool;void *items; -struct kfifo *queue; +struct kfifo queue;spinlock_t lock; };
kernel/kfifo.c +33 -33
114 lines not on this page · raw message
net/dccp/probe.c +9 -11
@@ -43,7 +43,7 @@static const char procname[] ="dccpprobe" ; static struct { - struct kfifo *fifo; + struct kfifo fifo; spinlock_t lock; wait_queue_head_t wait; struct timespec tstart;
@@ -67,7 +67,7 @@ len +=vscnprintf (tbuf+len,sizeof (tbuf)-len, fmt, args);va_end (args); -kfifo_put (dccpw.fifo, tbuf, len); +kfifo_put (&dccpw.fifo, tbuf, len);wake_up (&dccpw.wait); }
@@ -110,7 +110,7 @@static int dccpprobe_open (struct inode *inode,struct file *file) { -kfifo_reset (dccpw.fifo); +kfifo_reset (&dccpw.fifo);getnstimeofday (&dccpw.tstart);return 0 ; }
@@ -132,11 +132,11 @@return -ENOMEM ; error =wait_event_interruptible (dccpw.wait, -__kfifo_len (dccpw.fifo) !=0 ); +__kfifo_len (&dccpw.fifo) !=0 );if (error) goto out_free; - cnt =kfifo_get (dccpw.fifo, tbuf, len); + cnt =kfifo_get (&dccpw.fifo, tbuf, len); error =copy_to_user (buf, tbuf, cnt) ? -EFAULT :0 ; out_free:
@@ -157,10 +157,8 @@init_waitqueue_head (&dccpw.wait);spin_lock_init (&dccpw.lock); - dccpw.fifo =kfifo_alloc (bufsize,GFP_KERNEL , &dccpw.lock); -if (IS_ERR (dccpw.fifo)) -return PTR_ERR (dccpw.fifo); - +if (kfifo_alloc (&dccpw.fifo, bufsize,GFP_KERNEL , &dccpw.lock)) +return ret;if (!proc_net_fops_create (&init_net, procname,S_IRUSR , &dccpprobe_fops)) goto err0;
@@ -173,14 +171,14 @@ err1:proc_net_remove (&init_net, procname); err0: -kfifo_free (dccpw.fifo); +kfifo_free (&dccpw.fifo);return ret; }module_init (dccpprobe_init); static __exit void dccpprobe_exit(void) { -kfifo_free (dccpw.fifo); +kfifo_free (&dccpw.fifo);proc_net_remove (&init_net, procname);unregister_jprobe (&dccp_send_probe);