Re: [PATCH] staging:iio: Add missing __devinit and __devexit annotations

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 08/17/2012 06:29 PM, Lars-Peter Clausen wrote:
> Autogenerated using the following coccinelle semantic patch:
> 
> // <smpl>
> @r1@
> identifier driver;
> identifier fn;
> position p;
> type T;
> @@
> T driver = {
>  .remove =
> (
>  fn@p
> |
>  __devexit_p(fn@p)
> )
> };
> 
> @r2@
> identifier r1.fn;
> position p != r1.p;
> @@
> fn@p
> 
> @r3@
> identifier r1.fn;
> position r1.p;
> @@
> (
>  __devexit_p(fn@p)
> |
> -fn@p
> +__devexit_p(fn)
> )
> 
> @depends on !r2@
> identifier r1.fn;
> @@
>  static
> -int fn
> +int __devexit fn
>  (...) { ... }
> 
> @r11@
> identifier driver;
> identifier fn;
> position p;
> type T;
> @@
> T driver = {
> 	.probe = fn@p
> };
> 
> @r12@
> identifier r11.fn;
> position p != r11.p;
> @@
> fn@p
> 
> @depends on !r12@
> identifier r11.fn;
> @@
>  static
> -int fn
> +int __devinit fn
>  (...) { ... }
> // </smpl>
> 
> Signed-off-by: Lars-Peter Clausen <lars@xxxxxxxxxx>
merged to togreg

> ---
>  drivers/staging/iio/accel/adis16201_core.c          |    2 +-
>  drivers/staging/iio/accel/adis16203_core.c          |    2 +-
>  drivers/staging/iio/accel/adis16204_core.c          |    2 +-
>  drivers/staging/iio/accel/adis16209_core.c          |    2 +-
>  drivers/staging/iio/accel/adis16220_core.c          |    2 +-
>  drivers/staging/iio/accel/adis16240_core.c          |    2 +-
>  drivers/staging/iio/accel/lis3l02dq_core.c          |    2 +-
>  drivers/staging/iio/accel/sca3000_core.c            |    2 +-
>  drivers/staging/iio/adc/ad7192.c                    |    2 +-
>  drivers/staging/iio/adc/ad7476_core.c               |    2 +-
>  drivers/staging/iio/adc/ad7780.c                    |    2 +-
>  drivers/staging/iio/adc/ad7793.c                    |    2 +-
>  drivers/staging/iio/adc/ad7887_core.c               |    2 +-
>  drivers/staging/iio/adc/max1363_core.c              |    4 ++--
>  drivers/staging/iio/gyro/adis16060_core.c           |    4 ++--
>  drivers/staging/iio/gyro/adis16080_core.c           |    2 +-
>  drivers/staging/iio/gyro/adis16130_core.c           |    2 +-
>  drivers/staging/iio/gyro/adis16260_core.c           |    2 +-
>  drivers/staging/iio/gyro/adxrs450_core.c            |    2 +-
>  drivers/staging/iio/imu/adis16400_core.c            |    2 +-
>  drivers/staging/iio/light/tsl2563.c                 |    2 +-
>  drivers/staging/iio/meter/ade7753.c                 |    2 +-
>  drivers/staging/iio/meter/ade7754.c                 |    2 +-
>  drivers/staging/iio/meter/ade7758_core.c            |    2 +-
>  drivers/staging/iio/meter/ade7759.c                 |    2 +-
>  drivers/staging/iio/meter/ade7854-spi.c             |    2 +-
>  drivers/staging/iio/trigger/iio-trig-gpio.c         |    6 +++---
>  drivers/staging/iio/trigger/iio-trig-periodic-rtc.c |    6 +++---
>  28 files changed, 34 insertions(+), 34 deletions(-)
> 
> diff --git a/drivers/staging/iio/accel/adis16201_core.c b/drivers/staging/iio/accel/adis16201_core.c
> index ec2332f..8e37d6e 100644
> --- a/drivers/staging/iio/accel/adis16201_core.c
> +++ b/drivers/staging/iio/accel/adis16201_core.c
> @@ -565,7 +565,7 @@ error_ret:
>  	return ret;
>  }
>  
> -static int adis16201_remove(struct spi_device *spi)
> +static int __devexit adis16201_remove(struct spi_device *spi)
>  {
>  	struct iio_dev *indio_dev = spi_get_drvdata(spi);
>  
> diff --git a/drivers/staging/iio/accel/adis16203_core.c b/drivers/staging/iio/accel/adis16203_core.c
> index 34b76c5..002fa9d 100644
> --- a/drivers/staging/iio/accel/adis16203_core.c
> +++ b/drivers/staging/iio/accel/adis16203_core.c
> @@ -500,7 +500,7 @@ error_ret:
>  	return ret;
>  }
>  
> -static int adis16203_remove(struct spi_device *spi)
> +static int __devexit adis16203_remove(struct spi_device *spi)
>  {
>  	struct iio_dev *indio_dev = spi_get_drvdata(spi);
>  
> diff --git a/drivers/staging/iio/accel/adis16204_core.c b/drivers/staging/iio/accel/adis16204_core.c
> index 02fb101..05bdb7c 100644
> --- a/drivers/staging/iio/accel/adis16204_core.c
> +++ b/drivers/staging/iio/accel/adis16204_core.c
> @@ -558,7 +558,7 @@ error_ret:
>  	return ret;
>  }
>  
> -static int adis16204_remove(struct spi_device *spi)
> +static int __devexit adis16204_remove(struct spi_device *spi)
>  {
>  	struct iio_dev *indio_dev = spi_get_drvdata(spi);
>  
> diff --git a/drivers/staging/iio/accel/adis16209_core.c b/drivers/staging/iio/accel/adis16209_core.c
> index 4fa2229..b7333bf 100644
> --- a/drivers/staging/iio/accel/adis16209_core.c
> +++ b/drivers/staging/iio/accel/adis16209_core.c
> @@ -573,7 +573,7 @@ error_ret:
>  	return ret;
>  }
>  
> -static int adis16209_remove(struct spi_device *spi)
> +static int __devexit adis16209_remove(struct spi_device *spi)
>  {
>  	struct iio_dev *indio_dev = spi_get_drvdata(spi);
>  
> diff --git a/drivers/staging/iio/accel/adis16220_core.c b/drivers/staging/iio/accel/adis16220_core.c
> index c31e1ec..c755089 100644
> --- a/drivers/staging/iio/accel/adis16220_core.c
> +++ b/drivers/staging/iio/accel/adis16220_core.c
> @@ -663,7 +663,7 @@ error_ret:
>  	return ret;
>  }
>  
> -static int adis16220_remove(struct spi_device *spi)
> +static int __devexit adis16220_remove(struct spi_device *spi)
>  {
>  	struct iio_dev *indio_dev = spi_get_drvdata(spi);
>  
> diff --git a/drivers/staging/iio/accel/adis16240_core.c b/drivers/staging/iio/accel/adis16240_core.c
> index dafc0d8..0fc26a4 100644
> --- a/drivers/staging/iio/accel/adis16240_core.c
> +++ b/drivers/staging/iio/accel/adis16240_core.c
> @@ -619,7 +619,7 @@ error_ret:
>  	return ret;
>  }
>  
> -static int adis16240_remove(struct spi_device *spi)
> +static int __devexit adis16240_remove(struct spi_device *spi)
>  {
>  
>  	struct iio_dev *indio_dev = spi_get_drvdata(spi);
> diff --git a/drivers/staging/iio/accel/lis3l02dq_core.c b/drivers/staging/iio/accel/lis3l02dq_core.c
> index 0c2b4ba..54ce17f 100644
> --- a/drivers/staging/iio/accel/lis3l02dq_core.c
> +++ b/drivers/staging/iio/accel/lis3l02dq_core.c
> @@ -780,7 +780,7 @@ err_ret:
>  }
>  
>  /* fixme, confirm ordering in this function */
> -static int lis3l02dq_remove(struct spi_device *spi)
> +static int __devexit lis3l02dq_remove(struct spi_device *spi)
>  {
>  	int ret;
>  	struct iio_dev *indio_dev = spi_get_drvdata(spi);
> diff --git a/drivers/staging/iio/accel/sca3000_core.c b/drivers/staging/iio/accel/sca3000_core.c
> index cc040e1..581cdbd 100644
> --- a/drivers/staging/iio/accel/sca3000_core.c
> +++ b/drivers/staging/iio/accel/sca3000_core.c
> @@ -1233,7 +1233,7 @@ error_ret:
>  	return ret;
>  }
>  
> -static int sca3000_remove(struct spi_device *spi)
> +static int __devexit sca3000_remove(struct spi_device *spi)
>  {
>  	struct iio_dev *indio_dev = spi_get_drvdata(spi);
>  	struct sca3000_state *st = iio_priv(indio_dev);
> diff --git a/drivers/staging/iio/adc/ad7192.c b/drivers/staging/iio/adc/ad7192.c
> index e381d4b..504e7ab 100644
> --- a/drivers/staging/iio/adc/ad7192.c
> +++ b/drivers/staging/iio/adc/ad7192.c
> @@ -1068,7 +1068,7 @@ error_put_reg:
>  	return ret;
>  }
>  
> -static int ad7192_remove(struct spi_device *spi)
> +static int __devexit ad7192_remove(struct spi_device *spi)
>  {
>  	struct iio_dev *indio_dev = spi_get_drvdata(spi);
>  	struct ad7192_state *st = iio_priv(indio_dev);
> diff --git a/drivers/staging/iio/adc/ad7476_core.c b/drivers/staging/iio/adc/ad7476_core.c
> index 4d30a79..4f6d59e 100644
> --- a/drivers/staging/iio/adc/ad7476_core.c
> +++ b/drivers/staging/iio/adc/ad7476_core.c
> @@ -196,7 +196,7 @@ error_ret:
>  	return ret;
>  }
>  
> -static int ad7476_remove(struct spi_device *spi)
> +static int __devexit ad7476_remove(struct spi_device *spi)
>  {
>  	struct iio_dev *indio_dev = spi_get_drvdata(spi);
>  	struct ad7476_state *st = iio_priv(indio_dev);
> diff --git a/drivers/staging/iio/adc/ad7780.c b/drivers/staging/iio/adc/ad7780.c
> index 1ece2ac..43f4654 100644
> --- a/drivers/staging/iio/adc/ad7780.c
> +++ b/drivers/staging/iio/adc/ad7780.c
> @@ -270,7 +270,7 @@ error_put_reg:
>  	return ret;
>  }
>  
> -static int ad7780_remove(struct spi_device *spi)
> +static int __devexit ad7780_remove(struct spi_device *spi)
>  {
>  	struct iio_dev *indio_dev = spi_get_drvdata(spi);
>  	struct ad7780_state *st = iio_priv(indio_dev);
> diff --git a/drivers/staging/iio/adc/ad7793.c b/drivers/staging/iio/adc/ad7793.c
> index 76fdd71..d39a02a 100644
> --- a/drivers/staging/iio/adc/ad7793.c
> +++ b/drivers/staging/iio/adc/ad7793.c
> @@ -949,7 +949,7 @@ error_put_reg:
>  	return ret;
>  }
>  
> -static int ad7793_remove(struct spi_device *spi)
> +static int __devexit ad7793_remove(struct spi_device *spi)
>  {
>  	struct iio_dev *indio_dev = spi_get_drvdata(spi);
>  	struct ad7793_state *st = iio_priv(indio_dev);
> diff --git a/drivers/staging/iio/adc/ad7887_core.c b/drivers/staging/iio/adc/ad7887_core.c
> index 397b849..5517905 100644
> --- a/drivers/staging/iio/adc/ad7887_core.c
> +++ b/drivers/staging/iio/adc/ad7887_core.c
> @@ -219,7 +219,7 @@ error_put_reg:
>  	return ret;
>  }
>  
> -static int ad7887_remove(struct spi_device *spi)
> +static int __devexit ad7887_remove(struct spi_device *spi)
>  {
>  	struct iio_dev *indio_dev = spi_get_drvdata(spi);
>  	struct ad7887_state *st = iio_priv(indio_dev);
> diff --git a/drivers/staging/iio/adc/max1363_core.c b/drivers/staging/iio/adc/max1363_core.c
> index 816bb2c..adb90fe 100644
> --- a/drivers/staging/iio/adc/max1363_core.c
> +++ b/drivers/staging/iio/adc/max1363_core.c
> @@ -1367,7 +1367,7 @@ error_out:
>  	return ret;
>  }
>  
> -static int max1363_remove(struct i2c_client *client)
> +static int __devexit max1363_remove(struct i2c_client *client)
>  {
>  	struct iio_dev *indio_dev = i2c_get_clientdata(client);
>  	struct max1363_state *st = iio_priv(indio_dev);
> @@ -1434,7 +1434,7 @@ static struct i2c_driver max1363_driver = {
>  		.name = "max1363",
>  	},
>  	.probe = max1363_probe,
> -	.remove = max1363_remove,
> +	.remove = __devexit_p(max1363_remove),
>  	.id_table = max1363_id,
>  };
>  module_i2c_driver(max1363_driver);
> diff --git a/drivers/staging/iio/gyro/adis16060_core.c b/drivers/staging/iio/gyro/adis16060_core.c
> index 9931e20..87151a7 100644
> --- a/drivers/staging/iio/gyro/adis16060_core.c
> +++ b/drivers/staging/iio/gyro/adis16060_core.c
> @@ -184,7 +184,7 @@ error_ret:
>  }
>  
>  /* fixme, confirm ordering in this function */
> -static int adis16060_r_remove(struct spi_device *spi)
> +static int __devexit adis16060_r_remove(struct spi_device *spi)
>  {
>  	iio_device_unregister(spi_get_drvdata(spi));
>  	iio_device_free(spi_get_drvdata(spi));
> @@ -210,7 +210,7 @@ error_ret:
>  	return ret;
>  }
>  
> -static int adis16060_w_remove(struct spi_device *spi)
> +static int __devexit adis16060_w_remove(struct spi_device *spi)
>  {
>  	return 0;
>  }
> diff --git a/drivers/staging/iio/gyro/adis16080_core.c b/drivers/staging/iio/gyro/adis16080_core.c
> index 345e4fa..a739025 100644
> --- a/drivers/staging/iio/gyro/adis16080_core.c
> +++ b/drivers/staging/iio/gyro/adis16080_core.c
> @@ -177,7 +177,7 @@ error_ret:
>  }
>  
>  /* fixme, confirm ordering in this function */
> -static int adis16080_remove(struct spi_device *spi)
> +static int __devexit adis16080_remove(struct spi_device *spi)
>  {
>  	iio_device_unregister(spi_get_drvdata(spi));
>  	iio_device_free(spi_get_drvdata(spi));
> diff --git a/drivers/staging/iio/gyro/adis16130_core.c b/drivers/staging/iio/gyro/adis16130_core.c
> index bf61cd0..fbf96b0 100644
> --- a/drivers/staging/iio/gyro/adis16130_core.c
> +++ b/drivers/staging/iio/gyro/adis16130_core.c
> @@ -154,7 +154,7 @@ error_ret:
>  }
>  
>  /* fixme, confirm ordering in this function */
> -static int adis16130_remove(struct spi_device *spi)
> +static int __devexit adis16130_remove(struct spi_device *spi)
>  {
>  	iio_device_unregister(spi_get_drvdata(spi));
>  	iio_device_free(spi_get_drvdata(spi));
> diff --git a/drivers/staging/iio/gyro/adis16260_core.c b/drivers/staging/iio/gyro/adis16260_core.c
> index 93aa431..dec2504 100644
> --- a/drivers/staging/iio/gyro/adis16260_core.c
> +++ b/drivers/staging/iio/gyro/adis16260_core.c
> @@ -698,7 +698,7 @@ error_ret:
>  	return ret;
>  }
>  
> -static int adis16260_remove(struct spi_device *spi)
> +static int __devexit adis16260_remove(struct spi_device *spi)
>  {
>  	int ret;
>  	struct iio_dev *indio_dev = spi_get_drvdata(spi);
> diff --git a/drivers/staging/iio/gyro/adxrs450_core.c b/drivers/staging/iio/gyro/adxrs450_core.c
> index 6513119..d93527d 100644
> --- a/drivers/staging/iio/gyro/adxrs450_core.c
> +++ b/drivers/staging/iio/gyro/adxrs450_core.c
> @@ -409,7 +409,7 @@ error_ret:
>  	return ret;
>  }
>  
> -static int adxrs450_remove(struct spi_device *spi)
> +static int __devexit adxrs450_remove(struct spi_device *spi)
>  {
>  	iio_device_unregister(spi_get_drvdata(spi));
>  	iio_device_free(spi_get_drvdata(spi));
> diff --git a/drivers/staging/iio/imu/adis16400_core.c b/drivers/staging/iio/imu/adis16400_core.c
> index 4ce9e3d..b9f8438 100644
> --- a/drivers/staging/iio/imu/adis16400_core.c
> +++ b/drivers/staging/iio/imu/adis16400_core.c
> @@ -1204,7 +1204,7 @@ error_ret:
>  }
>  
>  /* fixme, confirm ordering in this function */
> -static int adis16400_remove(struct spi_device *spi)
> +static int __devexit adis16400_remove(struct spi_device *spi)
>  {
>  	int ret;
>  	struct iio_dev *indio_dev =  spi_get_drvdata(spi);
> diff --git a/drivers/staging/iio/light/tsl2563.c b/drivers/staging/iio/light/tsl2563.c
> index 9d740be..954ca2c 100644
> --- a/drivers/staging/iio/light/tsl2563.c
> +++ b/drivers/staging/iio/light/tsl2563.c
> @@ -805,7 +805,7 @@ fail1:
>  	return err;
>  }
>  
> -static int tsl2563_remove(struct i2c_client *client)
> +static int __devexit tsl2563_remove(struct i2c_client *client)
>  {
>  	struct tsl2563_chip *chip = i2c_get_clientdata(client);
>  	struct iio_dev *indio_dev = iio_priv_to_dev(chip);
> diff --git a/drivers/staging/iio/meter/ade7753.c b/drivers/staging/iio/meter/ade7753.c
> index f04ece7..6caf80c 100644
> --- a/drivers/staging/iio/meter/ade7753.c
> +++ b/drivers/staging/iio/meter/ade7753.c
> @@ -553,7 +553,7 @@ error_ret:
>  }
>  
>  /* fixme, confirm ordering in this function */
> -static int ade7753_remove(struct spi_device *spi)
> +static int __devexit ade7753_remove(struct spi_device *spi)
>  {
>  	int ret;
>  	struct iio_dev *indio_dev = spi_get_drvdata(spi);
> diff --git a/drivers/staging/iio/meter/ade7754.c b/drivers/staging/iio/meter/ade7754.c
> index 6cee28a..ab912ca 100644
> --- a/drivers/staging/iio/meter/ade7754.c
> +++ b/drivers/staging/iio/meter/ade7754.c
> @@ -575,7 +575,7 @@ error_ret:
>  }
>  
>  /* fixme, confirm ordering in this function */
> -static int ade7754_remove(struct spi_device *spi)
> +static int __devexit ade7754_remove(struct spi_device *spi)
>  {
>  	int ret;
>  	struct iio_dev *indio_dev = spi_get_drvdata(spi);
> diff --git a/drivers/staging/iio/meter/ade7758_core.c b/drivers/staging/iio/meter/ade7758_core.c
> index 6d3725a..958f8f2 100644
> --- a/drivers/staging/iio/meter/ade7758_core.c
> +++ b/drivers/staging/iio/meter/ade7758_core.c
> @@ -962,7 +962,7 @@ error_ret:
>  	return ret;
>  }
>  
> -static int ade7758_remove(struct spi_device *spi)
> +static int __devexit ade7758_remove(struct spi_device *spi)
>  {
>  	struct iio_dev *indio_dev = spi_get_drvdata(spi);
>  	struct ade7758_state *st = iio_priv(indio_dev);
> diff --git a/drivers/staging/iio/meter/ade7759.c b/drivers/staging/iio/meter/ade7759.c
> index b3f7e0f..d494052 100644
> --- a/drivers/staging/iio/meter/ade7759.c
> +++ b/drivers/staging/iio/meter/ade7759.c
> @@ -497,7 +497,7 @@ error_ret:
>  }
>  
>  /* fixme, confirm ordering in this function */
> -static int ade7759_remove(struct spi_device *spi)
> +static int __devexit ade7759_remove(struct spi_device *spi)
>  {
>  	int ret;
>  	struct iio_dev *indio_dev = spi_get_drvdata(spi);
> diff --git a/drivers/staging/iio/meter/ade7854-spi.c b/drivers/staging/iio/meter/ade7854-spi.c
> index 9fb2f8b..7dae035 100644
> --- a/drivers/staging/iio/meter/ade7854-spi.c
> +++ b/drivers/staging/iio/meter/ade7854-spi.c
> @@ -330,7 +330,7 @@ static int __devinit ade7854_spi_probe(struct spi_device *spi)
>  	return 0;
>  }
>  
> -static int ade7854_spi_remove(struct spi_device *spi)
> +static int __devexit ade7854_spi_remove(struct spi_device *spi)
>  {
>  	ade7854_remove(spi_get_drvdata(spi));
>  
> diff --git a/drivers/staging/iio/trigger/iio-trig-gpio.c b/drivers/staging/iio/trigger/iio-trig-gpio.c
> index 90b2684..de26d54 100644
> --- a/drivers/staging/iio/trigger/iio-trig-gpio.c
> +++ b/drivers/staging/iio/trigger/iio-trig-gpio.c
> @@ -51,7 +51,7 @@ static const struct iio_trigger_ops iio_gpio_trigger_ops = {
>  	.owner = THIS_MODULE,
>  };
>  
> -static int iio_gpio_trigger_probe(struct platform_device *pdev)
> +static int __devinit iio_gpio_trigger_probe(struct platform_device *pdev)
>  {
>  	struct iio_gpio_trigger_info *trig_info;
>  	struct iio_trigger *trig, *trig2;
> @@ -130,7 +130,7 @@ error_free_completed_registrations:
>  	return ret;
>  }
>  
> -static int iio_gpio_trigger_remove(struct platform_device *pdev)
> +static int __devexit iio_gpio_trigger_remove(struct platform_device *pdev)
>  {
>  	struct iio_trigger *trig, *trig2;
>  	struct iio_gpio_trigger_info *trig_info;
> @@ -153,7 +153,7 @@ static int iio_gpio_trigger_remove(struct platform_device *pdev)
>  
>  static struct platform_driver iio_gpio_trigger_driver = {
>  	.probe = iio_gpio_trigger_probe,
> -	.remove = iio_gpio_trigger_remove,
> +	.remove = __devexit_p(iio_gpio_trigger_remove),
>  	.driver = {
>  		.name = "iio_gpio_trigger",
>  		.owner = THIS_MODULE,
> diff --git a/drivers/staging/iio/trigger/iio-trig-periodic-rtc.c b/drivers/staging/iio/trigger/iio-trig-periodic-rtc.c
> index 4ceaa18..b837801 100644
> --- a/drivers/staging/iio/trigger/iio-trig-periodic-rtc.c
> +++ b/drivers/staging/iio/trigger/iio-trig-periodic-rtc.c
> @@ -101,7 +101,7 @@ static const struct iio_trigger_ops iio_prtc_trigger_ops = {
>  	.set_trigger_state = &iio_trig_periodic_rtc_set_state,
>  };
>  
> -static int iio_trig_periodic_rtc_probe(struct platform_device *dev)
> +static int __devinit iio_trig_periodic_rtc_probe(struct platform_device *dev)
>  {
>  	char **pdata = dev->dev.platform_data;
>  	struct iio_prtc_trigger_info *trig_info;
> @@ -167,7 +167,7 @@ error_free_completed_registrations:
>  	return ret;
>  }
>  
> -static int iio_trig_periodic_rtc_remove(struct platform_device *dev)
> +static int __devexit iio_trig_periodic_rtc_remove(struct platform_device *dev)
>  {
>  	struct iio_trigger *trig, *trig2;
>  	struct iio_prtc_trigger_info *trig_info;
> @@ -188,7 +188,7 @@ static int iio_trig_periodic_rtc_remove(struct platform_device *dev)
>  
>  static struct platform_driver iio_trig_periodic_rtc_driver = {
>  	.probe = iio_trig_periodic_rtc_probe,
> -	.remove = iio_trig_periodic_rtc_remove,
> +	.remove = __devexit_p(iio_trig_periodic_rtc_remove),
>  	.driver = {
>  		.name = "iio_prtc_trigger",
>  		.owner = THIS_MODULE,
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux