void pointers do not need to be cast to other pointer types.
The semantic patch used to find this:
@r@
expression x;
void* e;
type T;
identifier f;
@@
(
  *((T *)e)
|
  ((T *)x)[...]
|
  ((T *)x)->f
|
- (T *)
  e
)
Signed-off-by: Shraddha Barke <shraddha.6596@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  */
 static int deliver_netinfo_thread(void *data)
 {
-       struct dim2_hdm *dev = (struct dim2_hdm *)data;
+       struct dim2_hdm *dev = data;
 
        while (!kthread_should_stop()) {
                wait_event_interruptible(dev->netinfo_waitq,
  */
 static irqreturn_t dim2_ahb_isr(int irq, void *_dev)
 {
-       struct dim2_hdm *dev = (struct dim2_hdm *)_dev;
+       struct dim2_hdm *dev = _dev;
        struct dim_channel *buffer[DMA_CHANNELS + 1];
        unsigned long flags;