@ -618,12 +618,12 @@ static int mrf24j40_probe(struct spi_device *spi)
printk ( KERN_INFO " mrf24j40: probe(). IRQ: %d \n " , spi - > irq ) ;
devrec = kzalloc ( sizeof ( struct mrf24j40 ) , GFP_KERNEL ) ;
devrec = devm_ kzalloc( & spi - > dev , sizeof ( struct mrf24j40 ) , GFP_KERNEL ) ;
if ( ! devrec )
goto err_devrec ;
devrec - > buf = kzalloc ( 3 , GFP_KERNEL ) ;
goto err_ret ;
devrec - > buf = devm_ kzalloc( & spi - > dev , 3 , GFP_KERNEL ) ;
if ( ! devrec - > buf )
goto err_buf ;
goto err_ret ;
spi - > mode = SPI_MODE_0 ; /* TODO: Is this appropriate for right here? */
if ( spi - > max_speed_hz > MAX_SPI_SPEED_HZ )
@ -638,7 +638,7 @@ static int mrf24j40_probe(struct spi_device *spi)
devrec - > dev = ieee802154_alloc_device ( 0 , & mrf24j40_ops ) ;
if ( ! devrec - > dev )
goto err_alloc_dev ;
goto err_ret ;
devrec - > dev - > priv = devrec ;
devrec - > dev - > parent = & devrec - > spi - > dev ;
@ -676,12 +676,13 @@ static int mrf24j40_probe(struct spi_device *spi)
val & = ~ 0x3 ; /* Clear RX mode (normal) */
write_short_reg ( devrec , REG_RXMCR , val ) ;
ret = request_threaded_irq ( spi - > irq ,
NULL ,
mrf24j40_isr ,
IRQF_TRIGGER_LOW | IRQF_ONESHOT ,
dev_name ( & spi - > dev ) ,
devrec ) ;
ret = devm_request_threaded_irq ( & spi - > dev ,
spi - > irq ,
NULL ,
mrf24j40_isr ,
IRQF_TRIGGER_LOW | IRQF_ONESHOT ,
dev_name ( & spi - > dev ) ,
devrec ) ;
if ( ret ) {
dev_err ( printdev ( devrec ) , " Unable to get IRQ " ) ;
@ -695,11 +696,7 @@ err_read_reg:
ieee802154_unregister_device ( devrec - > dev ) ;
err_register_device :
ieee802154_free_device ( devrec - > dev ) ;
err_alloc_dev :
kfree ( devrec - > buf ) ;
err_buf :
kfree ( devrec ) ;
err_devrec :
err_ret :
return ret ;
}
@ -709,15 +706,11 @@ static int mrf24j40_remove(struct spi_device *spi)
dev_dbg ( printdev ( devrec ) , " remove \n " ) ;
free_irq ( spi - > irq , devrec ) ;
ieee802154_unregister_device ( devrec - > dev ) ;
ieee802154_free_device ( devrec - > dev ) ;
/* TODO: Will ieee802154_free_device() wait until ->xmit() is
* complete ? */
/* Clean up the SPI stuff. */
kfree ( devrec - > buf ) ;
kfree ( devrec ) ;
return 0 ;
}